From 98b1a0affd69bbe63223c21fdd2c404e8bedfccb Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 20 五月 2020 17:25:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into 2.1.2 --- fanli/src/main/java/com/yeshi/fanli/service/impl/lable/TaoKeGoodsServiceImpl.java | 206 +++++++++++++++++++++++++++++++++------------------ 1 files changed, 133 insertions(+), 73 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/lable/TaoKeGoodsServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/lable/TaoKeGoodsServiceImpl.java index dd4e65f..4e2b0d0 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/lable/TaoKeGoodsServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/lable/TaoKeGoodsServiceImpl.java @@ -9,14 +9,14 @@ import javax.annotation.Resource; -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; - import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; +import org.yeshi.utils.JsonUtil; +import org.yeshi.utils.taobao.TbImgUtil; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import com.yeshi.fanli.dto.ConfigParamsDTO; import com.yeshi.fanli.entity.bus.lable.QualityFactory; import com.yeshi.fanli.entity.taobao.SearchFilter; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; @@ -24,28 +24,34 @@ import com.yeshi.fanli.entity.taobao.TaoBaoSearchNav; import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult; import com.yeshi.fanli.entity.taobao.TaoBaoShopInfo; -import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.service.inter.lable.QualityGoodsService; import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService; +import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService; +import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService; 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.util.taobao.TaoKeApiUtil; -import org.yeshi.utils.JsonUtil; -import org.yeshi.utils.taobao.TbImgUtil; +import com.yeshi.fanli.vo.goods.GoodsDetailVO; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; @Service public class TaoKeGoodsServiceImpl implements TaoKeGoodsService { @Resource - private HongBaoManageService manageService; + private HongBaoManageService hongBaoManageService; + + @Resource + private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService; @Resource private TaoBaoShopService taoBaoShopService; - + @Resource private QualityGoodsService qualityGoodsService; - @Cacheable(value = "taoKeMaterialCache", key = "'listByMaterial-'+#materialId +'-'+#pageIndex") @Override @@ -79,9 +85,7 @@ Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); - Map<String, String> map = manageService.convertMap(); - String proportion = map.get("hongbao_goods_proportion"); - String fcRate = map.get("hongbao_fc_ratio"); + BigDecimal proportion = hongBaoManageService.getFanLiRate(); listGoods.parallelStream().forEach(taoBaoGoodsBrief -> { @@ -119,8 +123,8 @@ taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl)); } - arrayGoods - .add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null))); + arrayGoods.add( + gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null))); }); @@ -208,9 +212,7 @@ int fh = sf.getHongbao(); boolean ft = sf.isTmall(); - Map<String, String> map = manageService.convertMap(); - String proportion = map.get("hongbao_goods_proportion"); - String fcRate = map.get("hongbao_fc_ratio"); + BigDecimal proportion = hongBaoManageService.getFanLiRate(); if (fq == 0 && fh == 0 && !ft) { if (result != null && result.getTaoBaoGoodsBriefs() != null) @@ -221,7 +223,7 @@ if (!StringUtil.isNullOrEmpty(startBiz30day)) { int biz30day = Integer.parseInt(startBiz30day); if (count < biz30day) { - break; + continue; } } @@ -229,10 +231,10 @@ double sales = count; String salesCountMidea = String.format("%.1f", sales / 10000); bf.setSalesCount(salesCountMidea + "涓�"); - re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, "")); + re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), "")); } else { bf.setSalesCount(count + ""); - re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, "")); + re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), "")); } } } else { @@ -254,13 +256,13 @@ double sales = count; String salesCountMidea = String.format("%.1f", sales / 10000); taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�"); - taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, - fcRate, ""); + taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, + proportion.toString(), ""); re.add(taoBaoGoodsBriefExtra); } else { taoBaoGoodsBrief.setSalesCount(count + ""); - taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, - fcRate, ""); + taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, + proportion.toString(), ""); re.add(taoBaoGoodsBriefExtra); } } @@ -274,6 +276,75 @@ return data; } + + + @Override + @Cacheable(value = "searchWuLiaoCache", key = "'searchWuLiaoV2-'+#sf+'-'+#platform+'-'+#version") + public JSONObject searchWuLiaoV2(SearchFilter sf,String platform,String version) { + + // 娣樺疂鐗╂枡鎺ュ彛鏌ヨ + TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf); + + List<TaoBaoSearchNav> navList = TaoBaoUtil.getBaseNav(); + if (result.getNavList() != null) + navList.addAll(result.getNavList()); + + Gson gson = new GsonBuilder().create(); + JSONObject data = new JSONObject(); + data.put("nav", gson.toJson(navList)); + + List<GoodsDetailVO> re = new ArrayList<GoodsDetailVO>(); + List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs(); + + int fq = sf.getQuan(); + int fh = sf.getHongbao(); + boolean ft = sf.isTmall(); + + ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(platform, version); + + if (fq == 0 && fh == 0 && !ft) { + if (result != null && result.getTaoBaoGoodsBriefs() != null) + for (TaoBaoGoodsBrief bf : result.getTaoBaoGoodsBriefs()) { + int count = bf.getBiz30day(); + + String startBiz30day = sf.getStartBiz30day(); + if (!StringUtil.isNullOrEmpty(startBiz30day)) { + int biz30day = Integer.parseInt(startBiz30day); + if (count < biz30day) { + continue; + } + } + + GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(bf, paramsDTO); + re.add(goodsDetailVO); + } + } else { + if (taoBaoGoodsBriefs != null) + for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) { + + int count = taoBaoGoodsBrief.getBiz30day(); + String startBiz30day = sf.getStartBiz30day(); + if (!StringUtil.isNullOrEmpty(startBiz30day)) { + int biz30day = Integer.parseInt(startBiz30day); + if (count < biz30day) { + break; + } + } + GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, paramsDTO); + re.add(goodsDetailVO); + } + } + + Gson gson2 = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) + .excludeFieldsWithoutExposeAnnotation().create(); + + data.put("result", gson2.toJson(re)); + data.put("count", result.getTaoBaoHead().getDocsfound()); + + return data; + } + + @Override @Cacheable(value = "searchWuLiaoCache", key = "'searchWuLiaoList-'+#sf") @@ -286,8 +357,7 @@ return result.getTaoBaoGoodsBriefs(); } - - + @Override public JSONObject listByWuLiao(int page, String key, String cateIds, String filterParams, String order, String startprice, String endprice, String searchParam) { @@ -418,9 +488,7 @@ int fh = sf.getHongbao(); boolean ft = sf.isTmall(); - Map<String, String> map = manageService.convertMap(); - String proportion = map.get("hongbao_goods_proportion"); - String fcRate = map.get("hongbao_fc_ratio"); + BigDecimal proportion = hongBaoManageService.getFanLiRate(); if (fq == 0 && fh == 0 && !ft) { if (result != null && result.getTaoBaoGoodsBriefs() != null) @@ -430,10 +498,10 @@ double sales = count; String salesCountMidea = String.format("%.1f", sales / 10000); bf.setSalesCount(salesCountMidea + "涓�"); - re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, "")); + re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), "")); } else { bf.setSalesCount(count + ""); - re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, "")); + re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), "")); } } } else { @@ -445,13 +513,13 @@ double sales = count; String salesCountMidea = String.format("%.1f", sales / 10000); taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�"); - taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, - fcRate, ""); + taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, + proportion.toString(), ""); re.add(taoBaoGoodsBriefExtra); } else { taoBaoGoodsBrief.setSalesCount(count + ""); - taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, - fcRate, ""); + taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, + proportion.toString(), ""); re.add(taoBaoGoodsBriefExtra); } } @@ -465,13 +533,11 @@ return data; } - - - @Override - public void setSearchFilter(SearchFilter searchfilter, String filter, String order, - String startprice, String endprice, String fastFilter, Integer totalSales) { - + @Override + public void setSearchFilter(SearchFilter searchfilter, String filter, String order, String startprice, + String endprice, String fastFilter, Integer totalSales) { + if (!StringUtil.isNullOrEmpty(startprice)) { searchfilter.setStartPrice(new BigDecimal(startprice)); } @@ -512,8 +578,7 @@ } } } - - + if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(order)) { if (Integer.parseInt(order) == 1 || Integer.parseInt(order) == 0) { searchfilter.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW); @@ -529,60 +594,55 @@ } else { searchfilter.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW); } - + } - @Override - @Cacheable(value = "qualityCache",key="'countByQuality-'+#start+'-'+#searchKey+'-'+#systemCid+'-'+#listLabId") - public List<QualityFactory> queryByQuality(long start, int count,String searchKey, Long systemCid, + @Cacheable(value = "qualityCache", key = "'countByQuality-'+#start+'-'+#searchKey+'-'+#systemCid+'-'+#listLabId") + public List<QualityFactory> queryByQuality(long start, int count, String searchKey, Long systemCid, List<Long> listLabId) { - + /* 1銆� 绮鹃�夊簱绛涢�� */ List<QualityFactory> listQuality = null; - + if (listLabId != null && listLabId.size() > 0) { // 鍚爣绛� - listQuality = qualityGoodsService.listQueryByKeyAndlabIDs(start, count, searchKey, - listLabId, null, systemCid, null, null, null, null, null); - } else { - listQuality = qualityGoodsService.listQueryByKey(start, count, searchKey, null, + listQuality = qualityGoodsService.listQueryByKeyAndlabIDs(start, count, searchKey, listLabId, null, systemCid, null, null, null, null, null); + } else { + listQuality = qualityGoodsService.listQueryByKey(start, count, searchKey, null, systemCid, null, null, null, + null, null); } - + return listQuality; } - @Override - @Cacheable(value = "qualityCache",key="'countByQuality-'+#searchKey+'-'+#systemCid+'-'+#listLabId") + @Cacheable(value = "qualityCache", key = "'countByQuality-'+#searchKey+'-'+#systemCid+'-'+#listLabId") public long countByQuality(String searchKey, Long systemCid, List<Long> listLabId) { - + long incount = 0; - + if (listLabId != null && listLabId.size() > 0) { // 鍚爣绛� - incount = qualityGoodsService.countQueryKeyAndlabIDs(searchKey, listLabId, systemCid, - null, null, null, null, null); + incount = qualityGoodsService.countQueryKeyAndlabIDs(searchKey, listLabId, systemCid, null, null, null, + null, null); } else { incount = qualityGoodsService.countQueryByKey(searchKey, systemCid, null, null, null, null, null); } - + return incount; } - - @Override - public JSONObject listQualityGoods(List<QualityFactory> listQuality, List<TaoBaoGoodsBrief> searchWuLiaoList, - Map<String, String> map ) { - + public JSONObject listQualityGoods(List<QualityFactory> listQuality, List<TaoBaoGoodsBrief> searchWuLiaoList, + Map<String, String> map) { + JSONArray array = new JSONArray(); Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); - - String proportion = map.get("hongbao_goods_proportion"); - String fcRate = map.get("hongbao_fc_ratio"); + + BigDecimal proportion = hongBaoManageService.getFanLiRate(); /* 閬嶅巻鍒楄〃鏁版嵁 */ for (QualityFactory selectionGoods : listQuality) { @@ -602,7 +662,7 @@ taoBaoGoodsBrief.setSalesCount(biz30day + ""); } - array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null))); + array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null))); } if (searchWuLiaoList != null && searchWuLiaoList.size() > 0) { @@ -620,7 +680,7 @@ } array.add(gson - .toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null))); + .toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null))); } } @@ -631,8 +691,8 @@ data.put("nav", gsonBuilder.toJson(navList)); data.put("count", 5000); data.put("result", array); - + return data; } - + } -- Gitblit v1.8.0