From 39c683421f75449c7a85280fa499bae3a2f5241b Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期一, 26 八月 2019 09:27:49 +0800 Subject: [PATCH] 金币领取 --- fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityGoodsServiceImpl.java | 76 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 76 insertions(+), 0 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityGoodsServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityGoodsServiceImpl.java index e10a3ab..aa6924d 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityGoodsServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityGoodsServiceImpl.java @@ -22,13 +22,17 @@ import com.yeshi.fanli.entity.bus.lable.QualityFactory; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService; +import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.service.inter.lable.LabelService; import com.yeshi.fanli.service.inter.lable.QualityGoodsService; +import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService; import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; import com.yeshi.fanli.util.taobao.TaoBaoUtil; +import com.yeshi.fanli.vo.goods.GoodsDetailVO; import net.sf.json.JSONArray; @@ -55,6 +59,13 @@ @Resource private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService; + + @Resource + private HongBaoManageService hongBaoManageService; + + @Resource + private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService; + @Override @Cacheable(value = "qualityCache", key = "'listQueryByCouponAmount-'+#start+'-'+#key+'-'+#endAmount+'-'+#startPropor") @@ -172,9 +183,16 @@ @Cacheable(value = "qualityCache", key = "'listQueryByClassId-'+#start+'-'+#cid") public List<QualityFactory> listQueryByClassId(long start, int count, Long cid) { List<QualityFactory> list = qualityFactoryMapper.listQuery(start, count, null, cid, null, null, 1); + + if (list == null) { + list = new ArrayList<QualityFactory>(); + } + List<TaoBaoGoodsBrief> goodsList = new ArrayList<>(); for (QualityFactory qf : list) goodsList.add(qf.getTaoBaoGoodsBrief()); + //杩囨护鍟嗗搧淇℃伅 + goodsList=taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList); goodsList = daTaoKeGoodsDetailService.filterTaoBaoGoods(goodsList);// 杩囨护澶ф窐瀹㈡爣棰� for (int i = 0; i < list.size(); i++) { if (i < goodsList.size()) @@ -226,6 +244,7 @@ return qualityFactoryMapper.listRecommendToIndex(start, count, proportion, commision, couponAmount, tkRate, couponRatio); } + @Override public long countRecommend(Double proportion, Integer commision, Integer couponAmount, double tkRate, @@ -310,7 +329,64 @@ return array; } + + + + /** + * 棣栭〉鏈�搴曢儴@鍟嗗搧淇℃伅娴� + */ + @Override + @Cacheable(value = "qualityCache", key = "'getRecommendToIndexV2-'+#start") + public JSONArray getRecommendToIndexV2(long start, int count) { + + // 杩斿埄閲戦2鍏冧互涓婏紱 + Integer commision = 2; + // 浼樻儬鍒搁潰棰濋珮浜�5鍏冧互涓� + Integer couponAmount = 5; + // 浣i噾姣斾緥楂樼殑:5%浠ヤ笂锛� + double tkRate = 5.0; + // 浼樻儬鐜囬珮浜�10%浠ヤ笂锛堜紭鎯犵巼=浼樻儬鍒搁潰棰�/鍟嗗搧鍦ㄥ敭浠�*100%锛� + Double couponRatio = 10.0; + + BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); + Double pop = 50.0; + if (fanLiRate != null) { + pop = Double.parseDouble(fanLiRate.toString()); + } + + List<QualityFactory> listQuery = listRecommend(start, count, pop, commision, couponAmount, tkRate, couponRatio); + + if (listQuery == null || listQuery.size() == 0) { + return null; + } + + JSONArray array = new JSONArray(); + Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create(); + // 閬嶅巻鍒楄〃鏁版嵁 + // + List<TaoBaoGoodsBrief> goodsList = new ArrayList<>(); + for (QualityFactory quality : listQuery) { + if (quality.getTaoBaoGoodsBrief() != null) + goodsList.add(quality.getTaoBaoGoodsBrief()); + } + + try { + goodsList = daTaoKeGoodsDetailService.filterTaoBaoGoods(goodsList); + } catch (Exception e) { + } + + BigDecimal shareRate = hongBaoManageService.getShareRate(); + for (TaoBaoGoodsBrief taoBaoGoodsBrief : goodsList) { + GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, fanLiRate, shareRate); + array.add(gson.toJson(detailVO)); + } + + return array; + } + + + @Override @Cacheable(value = "qualityCache", key = "'countRecommendToIndex-'+#proportion") public long countRecommendToIndex(String proportion) { -- Gitblit v1.8.0