From 2147d023563a7c9d05d97547c00d6b0162c0644c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 09 十一月 2020 18:37:24 +0800
Subject: [PATCH] 刷单风险规则优化

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/lable/TaoKeGoodsServiceImpl.java |  114 +++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 94 insertions(+), 20 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 13e3adf..7193d26 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,6 +9,7 @@
 
 import javax.annotation.Resource;
 
+import com.yeshi.fanli.entity.SystemEnum;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.yeshi.utils.JsonUtil;
@@ -16,20 +17,24 @@
 
 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;
-import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
+import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBriefExtra;
 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.common.entity.taobao.TaoBaoShopInfo;
 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 com.yeshi.fanli.vo.goods.GoodsDetailVO;
 
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
@@ -38,7 +43,10 @@
 public class TaoKeGoodsServiceImpl implements TaoKeGoodsService {
 
 	@Resource
-	private HongBaoManageService manageService;
+	private HongBaoManageService hongBaoManageService;
+	
+	@Resource
+	private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
 
 	@Resource
 	private TaoBaoShopService taoBaoShopService;
@@ -61,7 +69,7 @@
 
 	@Override
 	@Cacheable(value = "taoKeMaterialCache", key = "'getBrandsGoods-'+#materialId +'-'+#pageIndex")
-	public JSONObject getBrandsGoods(Integer materialId, int pageIndex, int pageSize) throws Exception {
+	public JSONObject getBrandsGoods(Integer materialId, int pageIndex, int pageSize, SystemEnum system) throws Exception {
 
 		TaoBaoSearchResult result = TaoKeApiUtil.getMaterialByMaterialId(materialId, pageIndex, pageSize);
 
@@ -78,7 +86,7 @@
 		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
 				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
 
-		BigDecimal proportion = manageService.getFanLiRate();
+		BigDecimal proportion = hongBaoManageService.getFanLiRate(system);
 
 		listGoods.parallelStream().forEach(taoBaoGoodsBrief -> {
 
@@ -184,11 +192,11 @@
 	}
 
 	@Override
-	@Cacheable(value = "searchWuLiaoCache", key = "'searchWuLiao-'+#sf")
-	public JSONObject searchWuLiao(SearchFilter sf) {
+	@Cacheable(value = "searchWuLiaoCache", key = "'searchWuLiao-'+#sf+'-'+system")
+	public JSONObject searchWuLiao(SearchFilter sf,SystemEnum system) {
 
 		// 娣樺疂鐗╂枡鎺ュ彛鏌ヨ
-		TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf);
+		TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf,null,null);
 
 		List<TaoBaoSearchNav> navList = TaoBaoUtil.getBaseNav();
 		if (result.getNavList() != null)
@@ -205,7 +213,7 @@
 		int fh = sf.getHongbao();
 		boolean ft = sf.isTmall();
 
-		BigDecimal proportion = manageService.getFanLiRate();
+		BigDecimal proportion = hongBaoManageService.getFanLiRate(system);
 
 		if (fq == 0 && fh == 0 && !ft) {
 			if (result != null && result.getTaoBaoGoodsBriefs() != null)
@@ -271,13 +279,79 @@
 	}
 	
 	
-
 	@Override
-	@Cacheable(value = "searchWuLiaoCache", key = "'searchWuLiaoList-'+#sf")
-	public List<TaoBaoGoodsBrief> searchWuLiaoList(SearchFilter sf) {
+	@Cacheable(value = "searchWuLiaoCache", key = "'searchWuLiaoV2-'+#sf+'-'+#platform+'-'+#version+'-'+#system")
+	public JSONObject searchWuLiaoV2(SearchFilter sf,String platform,String version,SystemEnum system) {
 
 		// 娣樺疂鐗╂枡鎺ュ彛鏌ヨ
-		TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf);
+		TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf,null,null);
+
+		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,system);
+
+		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+'-'+system")
+	public List<TaoBaoGoodsBrief> searchWuLiaoList(SearchFilter sf,SystemEnum system) {
+		// 娣樺疂鐗╂枡鎺ュ彛鏌ヨ
+		TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf,null,null);
 		if (result == null)
 			return null;
 
@@ -286,7 +360,7 @@
 
 	@Override
 	public JSONObject listByWuLiao(int page, String key, String cateIds, String filterParams, String order,
-			String startprice, String endprice, String searchParam) {
+			String startprice, String endprice, String searchParam,SystemEnum system) {
 
 		SearchFilter sf = new SearchFilter();
 		sf.setKey(key);
@@ -397,7 +471,7 @@
 		}
 
 		// 娣樺疂鐗╂枡鎺ュ彛鏌ヨ
-		TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf);
+		TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf,null,null);
 
 		List<TaoBaoSearchNav> navList = TaoBaoUtil.getBaseNav();
 		if (result.getNavList() != null)
@@ -414,7 +488,7 @@
 		int fh = sf.getHongbao();
 		boolean ft = sf.isTmall();
 
-		BigDecimal proportion = manageService.getFanLiRate();
+		BigDecimal proportion = hongBaoManageService.getFanLiRate(system);
 
 		if (fq == 0 && fh == 0 && !ft) {
 			if (result != null && result.getTaoBaoGoodsBriefs() != null)
@@ -562,13 +636,13 @@
 
 	@Override
 	public JSONObject listQualityGoods(List<QualityFactory> listQuality, List<TaoBaoGoodsBrief> searchWuLiaoList,
-			Map<String, String> map) {
+			Map<String, String> map,SystemEnum system) {
 
 		JSONArray array = new JSONArray();
 		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
 				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
 
-		BigDecimal proportion = manageService.getFanLiRate();
+		BigDecimal proportion = hongBaoManageService.getFanLiRate(system);
 
 		/* 閬嶅巻鍒楄〃鏁版嵁 */
 		for (QualityFactory selectionGoods : listQuality) {

--
Gitblit v1.8.0