From f4f96b503bfa85fa6342fe4661e70ae525504593 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 27 六月 2019 17:43:26 +0800 Subject: [PATCH] 分享BUG修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityGoodsServiceImpl.java | 218 ++++++++++++++++++++++++++--------------------------- 1 files changed, 107 insertions(+), 111 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 3728429..b07d2a3 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 @@ -25,6 +25,7 @@ import com.yeshi.fanli.service.inter.lable.LabelService; import com.yeshi.fanli.service.inter.lable.QualityGoodsService; 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.taobao.TaoBaoUtil; @@ -52,41 +53,38 @@ @Resource private TaoBaoClassRelationMapper taoBaoClassRelationMapper; - - + @Resource + private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService; + @Override - @Cacheable(value = "qualityCache",key="'listQueryByCouponAmount-'+#start+'-'+#key+'-'+#endAmount+'-'+#startPropor") - public List<QualityFactory> listQueryByCouponAmount(long start, int count, Integer key, - Integer endAmount, Integer startPropor){ + @Cacheable(value = "qualityCache", key = "'listQueryByCouponAmount-'+#start+'-'+#key+'-'+#endAmount+'-'+#startPropor") + public List<QualityFactory> listQueryByCouponAmount(long start, int count, Integer key, Integer endAmount, + Integer startPropor) { return qualityFactoryMapper.listQueryByCouponAmount(start, count, key, endAmount, startPropor); } - + @Override - @Cacheable(value = "qualityCache",key="'countQueryByCouponAmount-'+#key+'-'+#endAmount+'-'+#startPropor") - public long countQueryByCouponAmount(Integer key, Integer endAmount, Integer startPropor){ + @Cacheable(value = "qualityCache", key = "'countQueryByCouponAmount-'+#key+'-'+#endAmount+'-'+#startPropor") + public long countQueryByCouponAmount(Integer key, Integer endAmount, Integer startPropor) { return qualityFactoryMapper.countQueryByCouponAmount(key, endAmount, startPropor); } - @Override - @Cacheable(value = "qualityCache",key="'listQueryByFlashSale-'+#start") + @Cacheable(value = "qualityCache", key = "'listQueryByFlashSale-'+#start") public List<QualityFactory> listQueryByFlashSale(long start, int count) { return qualityFactoryMapper.listQueryByFlashSale(start, count); } @Override - //@Cacheable(value = "qualityCache",key="'countQueryByFlashSale-'") + // @Cacheable(value = "qualityCache",key="'countQueryByFlashSale-'") public long countQueryByFlashSale() { return qualityFactoryMapper.countQueryByFlashSale(); } - + @Override public List<QualityFactory> listFlashSaleRandGoods() { return qualityFactoryMapper.listFlashSaleRandGoods(); } - - - /** * 灏忛噾棰濇煡璇細9.9/19.9/29.9/49.9 @@ -101,7 +99,7 @@ * @return */ @Override - @Cacheable(value = "quality9K9Cache",key="'get9k9ClassGoods-'+#start+'-'+#biz30day+'-'+#zkPrice+'-'+#minQuanPrice+'-'+#maxQuanPrice+'-'+#cids") + @Cacheable(value = "quality9K9Cache", key = "'get9k9ClassGoods-'+#start+'-'+#biz30day+'-'+#zkPrice+'-'+#minQuanPrice+'-'+#maxQuanPrice+'-'+#cids") public List<QualityFactory> get9k9ClassGoods(long start, int count, Integer biz30day, BigDecimal zkPrice, BigDecimal minQuanPrice, BigDecimal maxQuanPrice, String cids) { return qualityFactoryMapper.get9k9ClassGoods(start, count, biz30day, zkPrice, minQuanPrice, maxQuanPrice, cids); @@ -111,8 +109,8 @@ * 瀵瑰簲灏忛噾棰濇煡璇細9.9/19.9/29.9/49.9 */ @Override - @Cacheable(value = "quality9K9Cache",key="'count9k9ClassGoods-'+#biz30day+'-'+#zkPrice+'-'+#minQuanPrice+'-'+#maxQuanPrice+'-'+#cids") - public long count9k9ClassGoods(Integer biz30day, BigDecimal zkPrice, BigDecimal minQuanPrice, + @Cacheable(value = "quality9K9Cache", key = "'count9k9ClassGoods-'+#biz30day+'-'+#zkPrice+'-'+#minQuanPrice+'-'+#maxQuanPrice+'-'+#cids") + public long count9k9ClassGoods(Integer biz30day, BigDecimal zkPrice, BigDecimal minQuanPrice, BigDecimal maxQuanPrice, String cids) { return qualityFactoryMapper.count9k9ClassGoods(biz30day, zkPrice, minQuanPrice, maxQuanPrice, cids); } @@ -126,16 +124,16 @@ * @param labId * @return */ - public List<QualityFactory> listQueryByKeyAndlabIDs(long start, int count,String key, List<Long> listId, Integer sort, - Long systemCid, Integer hasQuan, Integer userType, Integer biz30day,Integer startprice, Integer endprice) { - return qualityFactoryMapper.listQueryByKeyAndlabIDs(start, count, key, listId, sort,systemCid, hasQuan, userType, - biz30day, startprice, endprice); + public List<QualityFactory> listQueryByKeyAndlabIDs(long start, int count, String key, List<Long> listId, + Integer sort, Long systemCid, Integer hasQuan, Integer userType, Integer biz30day, Integer startprice, + Integer endprice) { + return qualityFactoryMapper.listQueryByKeyAndlabIDs(start, count, key, listId, sort, systemCid, hasQuan, + userType, biz30day, startprice, endprice); } - public long countQueryKeyAndlabIDs(String key, List<Long> listId, Long systemCid, Integer hasQuan, Integer userType, - Integer biz30day,Integer startprice, Integer endprice) { - return qualityFactoryMapper.countQueryKeyAndlabIDs(key, listId,systemCid, hasQuan, userType, biz30day, + Integer biz30day, Integer startprice, Integer endprice) { + return qualityFactoryMapper.countQueryKeyAndlabIDs(key, listId, systemCid, hasQuan, userType, biz30day, startprice, endprice); } @@ -149,17 +147,16 @@ * @return */ @Override - public List<QualityFactory> listQueryByKey(long start, int count, String key, Integer sort,Long systemCid, - Integer hasQuan, Integer userType, Integer biz30day,Integer startprice, Integer endprice) { - return qualityFactoryMapper.listQueryByKey(start, count, key, sort, systemCid,hasQuan, userType, biz30day, + public List<QualityFactory> listQueryByKey(long start, int count, String key, Integer sort, Long systemCid, + Integer hasQuan, Integer userType, Integer biz30day, Integer startprice, Integer endprice) { + return qualityFactoryMapper.listQueryByKey(start, count, key, sort, systemCid, hasQuan, userType, biz30day, startprice, endprice); } - public long countQueryByKey(String key, Long systemCid,Integer hasQuan, Integer userType, - Integer biz30day,Integer startprice, Integer endprice) { - - return qualityFactoryMapper.countQueryByKey(key, systemCid,hasQuan, userType, biz30day, - startprice, endprice); + public long countQueryByKey(String key, Long systemCid, Integer hasQuan, Integer userType, Integer biz30day, + Integer startprice, Integer endprice) { + + return qualityFactoryMapper.countQueryByKey(key, systemCid, hasQuan, userType, biz30day, startprice, endprice); } /** @@ -172,117 +169,117 @@ * @return */ @Override - @Cacheable(value = "qualityCache",key="'listQueryByClassId-'+#start+'-'+#cid") + @Cacheable(value = "qualityCache", key = "'listQueryByClassId-'+#start+'-'+#cid") public List<QualityFactory> listQueryByClassId(long start, int count, Long cid) { return qualityFactoryMapper.listQuery(start, count, null, cid, null, null, 1); } @Override - @Cacheable(value = "qualityCache",key="'countQueryClassId-'+#cid") + @Cacheable(value = "qualityCache", key = "'countQueryClassId-'+#cid") public long countQueryClassId(Long cid) { return qualityFactoryMapper.countQuery(null, cid, null, null, 1); } - - + @Override - @Cacheable(value = "qualityCache",key="'listQueryByRebateAmount-'+#start+'-'+#proportion+'-'+#endAmount+'-'+#endAmount+'-'+#tkRate") - public List<QualityFactory> listQueryByRebateAmount(long start, int count,String proportion, - Integer startAmount, Integer endAmount, double tkRate){ + @Cacheable(value = "qualityCache", key = "'listQueryByRebateAmount-'+#start+'-'+#proportion+'-'+#endAmount+'-'+#endAmount+'-'+#tkRate") + public List<QualityFactory> listQueryByRebateAmount(long start, int count, String proportion, Integer startAmount, + Integer endAmount, double tkRate) { return qualityFactoryMapper.listQueryByRebateAmount(start, count, proportion, startAmount, endAmount, tkRate); } - + @Override - @Cacheable(value = "qualityCache",key="'countQueryByRebateAmount-'+#proportion+'-'+#endAmount+'-'+#endAmount+'-'+#tkRate") - public long countQueryByRebateAmount(String proportion, Integer startAmount, Integer endAmount, double tkRate){ + @Cacheable(value = "qualityCache", key = "'countQueryByRebateAmount-'+#proportion+'-'+#endAmount+'-'+#endAmount+'-'+#tkRate") + public long countQueryByRebateAmount(String proportion, Integer startAmount, Integer endAmount, double tkRate) { return qualityFactoryMapper.countQueryByRebateAmount(proportion, startAmount, endAmount, tkRate); } - - - + @Override - //@Cacheable(value = "qualityCache",key="'queryToCouponColumn-'+#start") + // @Cacheable(value = "qualityCache",key="'queryToCouponColumn-'+#start") @Cacheable(value = "taoBaoCouponCache", key = "'queryToCouponColumn'+#start") - public List<QualityFactory> queryToCouponColumn(long start, int count){ + public List<QualityFactory> queryToCouponColumn(long start, int count) { return qualityFactoryMapper.queryToCouponColumn(start, count); } - + @Override - //@Cacheable(value = "qualityCache",key="'countQueryToCouponColumn'") + // @Cacheable(value = "qualityCache",key="'countQueryToCouponColumn'") @Cacheable(value = "taoBaoCouponCache", key = "'countQueryToCouponColumn'") - public long countQueryToCouponColumn(){ + public long countQueryToCouponColumn() { return qualityFactoryMapper.countQueryToCouponColumn(); } - /** * 棣栭〉鏈�搴曢儴@鍟嗗搧淇℃伅娴� */ @Override - public List<QualityFactory> listRecommend(long start, int count, Double proportion, Integer commision, Integer couponAmount, - double tkRate, Double couponRatio) { - return qualityFactoryMapper.listRecommendToIndex(start, count, proportion, commision, couponAmount, tkRate, couponRatio); + public List<QualityFactory> listRecommend(long start, int count, Double proportion, Integer commision, + Integer couponAmount, double tkRate, Double couponRatio) { + return qualityFactoryMapper.listRecommendToIndex(start, count, proportion, commision, couponAmount, tkRate, + couponRatio); } @Override - public long countRecommend(Double proportion, Integer commision, Integer couponAmount, double tkRate, Double couponRatio) { + public long countRecommend(Double proportion, Integer commision, Integer couponAmount, double tkRate, + Double couponRatio) { return qualityFactoryMapper.countRecommendToIndex(proportion, commision, couponAmount, tkRate, couponRatio); } - @Override - public List<QualityFactory> listRecommendBykey(long start, int count, String key, Integer hasQuan, - Integer userType, Double startprice, Double endprice, Double startTkRate, Double endTkRate, Integer sort) { - return qualityFactoryMapper.listRecommendBykey(start, count, key, hasQuan, userType, - startprice, endprice, startTkRate, endTkRate, sort); + public List<QualityFactory> listRecommendBykey(long start, int count, String key, Integer hasQuan, Integer userType, + Double startprice, Double endprice, Double startTkRate, Double endTkRate, Integer sort) { + return qualityFactoryMapper.listRecommendBykey(start, count, key, hasQuan, userType, startprice, endprice, + startTkRate, endTkRate, sort); } @Override - public long countRecommendBykey(String key, Integer hasQuan, Integer userType, - Double startprice, Double endprice, Double startTkRate, Double endTkRate) { - return qualityFactoryMapper.countRecommendBykey(key, hasQuan, userType, startprice, endprice, startTkRate, endTkRate); + public long countRecommendBykey(String key, Integer hasQuan, Integer userType, Double startprice, Double endprice, + Double startTkRate, Double endTkRate) { + return qualityFactoryMapper.countRecommendBykey(key, hasQuan, userType, startprice, endprice, startTkRate, + endTkRate); } - - + /** * 棣栭〉鏈�搴曢儴@鍟嗗搧淇℃伅娴� */ @Override - @Cacheable(value = "qualityCache",key="'listQueryToRecommend-'+#start+'-'+#proportion") + @Cacheable(value = "qualityCache", key = "'listQueryToRecommend-'+#start+'-'+#proportion") public JSONArray getRecommendToIndex(long start, int count, String proportion) { - + // 杩斿埄閲戦2鍏冧互涓婏紱 - Integer commision = 2; + Integer commision = 2; // 浼樻儬鍒搁潰棰濋珮浜�5鍏冧互涓� Integer couponAmount = 5; // 浣i噾姣斾緥楂樼殑:5%浠ヤ笂锛� double tkRate = 5.0; - // 浼樻儬鐜囬珮浜�10%浠ヤ笂锛堜紭鎯犵巼=浼樻儬鍒搁潰棰�/鍟嗗搧鍦ㄥ敭浠�*100%锛� + // 浼樻儬鐜囬珮浜�10%浠ヤ笂锛堜紭鎯犵巼=浼樻儬鍒搁潰棰�/鍟嗗搧鍦ㄥ敭浠�*100%锛� Double couponRatio = 10.0; - + Double pop = 50.0; if (!StringUtil.isNullOrEmpty(proportion)) { pop = Double.parseDouble(proportion); } - - List<QualityFactory> listQuery = - listRecommend(start, count, pop, commision, couponAmount, tkRate, couponRatio); - + + 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) { + } - TaoBaoGoodsBrief taoBaoGoodsBrief = quality.getTaoBaoGoodsBrief(); - - if (taoBaoGoodsBrief == null) { - continue; - } - + for (TaoBaoGoodsBrief taoBaoGoodsBrief : goodsList) { int biz30day = taoBaoGoodsBrief.getBiz30day(); if (biz30day >= 10000) { double sales = biz30day; @@ -291,13 +288,13 @@ } else { taoBaoGoodsBrief.setSalesCount(biz30day + ""); } - - // 鏀瑰彉鍥剧墖灏哄 + + // 鏀瑰彉鍥剧墖灏哄 String pictUrl = taoBaoGoodsBrief.getPictUrl(); if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) { taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl)); } - + array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, null))); } @@ -305,88 +302,87 @@ } @Override - @Cacheable(value = "qualityCache",key="'countRecommendToIndex-'+#proportion") + @Cacheable(value = "qualityCache", key = "'countRecommendToIndex-'+#proportion") public long countRecommendToIndex(String proportion) { - + // 杩斿埄閲戦2鍏冧互涓婏紱 - Integer commision = 2; + Integer commision = 2; // 浼樻儬鍒搁潰棰濋珮浜�5鍏冧互涓� Integer couponAmount = 5; // 浣i噾姣斾緥楂樼殑:5%浠ヤ笂锛� double tkRate = 5.0; - // 浼樻儬鐜囬珮浜�10%浠ヤ笂锛堜紭鎯犵巼=浼樻儬鍒搁潰棰�/鍟嗗搧鍦ㄥ敭浠�*100%锛� + // 浼樻儬鐜囬珮浜�10%浠ヤ笂锛堜紭鎯犵巼=浼樻儬鍒搁潰棰�/鍟嗗搧鍦ㄥ敭浠�*100%锛� Double couponRatio = 10.0; - + Double pop = 50.0; if (!StringUtil.isNullOrEmpty(proportion)) { pop = Double.parseDouble(proportion); } - + return countRecommend(pop, commision, couponAmount, tkRate, couponRatio); } - + @Override - public List<QualityFactory> recommendByAuctionId(Long auctionId){ - - + public List<QualityFactory> recommendByAuctionId(Long auctionId) { + List<Long> list = new ArrayList<Long>(); list.add(auctionId); List<QualityFactory> listTaoBaoGoods = qualityFactoryMapper.listQueryByAuctionId(list); - + if (listTaoBaoGoods == null || listTaoBaoGoods.size() == 0) { return null; } - + QualityFactory qualityFactory = listTaoBaoGoods.get(0); TaoBaoGoodsBrief goodsBrief = qualityFactory.getTaoBaoGoodsBrief(); if (goodsBrief == null) { return null; } - + List<LabelGoods> listLab = labelGoodsMapper.queryByGoodsId(0, 200, goodsBrief.getId()); if (listLab == null || listLab.size() == 0) { return null; } - + // 鏍囩id List<Long> listId = new ArrayList<Long>(); - for (LabelGoods labelGoods: listLab) { + for (LabelGoods labelGoods : listLab) { Label label = labelGoods.getLabel(); if (label != null) { listId.add(label.getId()); } } - + if (listId.size() == 0) { return null; } - - return qualityFactoryMapper.listQueryBylabIDs(0, 10, listId, goodsBrief.getId(),qualityFactory.getSystemCid()); + + return qualityFactoryMapper.listQueryBylabIDs(0, 10, listId, goodsBrief.getId(), qualityFactory.getSystemCid()); } - + @Override public List<QualityFactory> listFreeGoods(long start, int count) { return qualityFactoryMapper.listFreeGoods(start, count); } - + @Override public long countFreeGoods() { return qualityFactoryMapper.countFreeGoods(); } - + @Override public List<QualityFactory> listByShopId(long start, int count, Long shopId) { return qualityFactoryMapper.listByShopId(start, count, shopId); } - + @Override public long countByShopId(Long shopId) { return qualityFactoryMapper.countByShopId(shopId); } @Override - public List<QualityFactory> listQueryEverydayRob(long start, int count, BigDecimal zkPrice, - BigDecimal minQuanPrice, BigDecimal maxQuanPrice) { + public List<QualityFactory> listQueryEverydayRob(long start, int count, BigDecimal zkPrice, BigDecimal minQuanPrice, + BigDecimal maxQuanPrice) { return qualityFactoryMapper.listQueryEverydayRob(start, count, zkPrice, minQuanPrice, maxQuanPrice); } -- Gitblit v1.8.0