From 7e7db2fa55a9a3af46d4fd8ede0dee147f101d64 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 09 五月 2020 21:41:27 +0800
Subject: [PATCH] 2.1需求

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/CommonContentControllerV2.java |  142 +++++++++++++++++++++++++++++++---------------
 1 files changed, 95 insertions(+), 47 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/CommonContentControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/CommonContentControllerV2.java
index 302b704..f01d507 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/CommonContentControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/CommonContentControllerV2.java
@@ -1,12 +1,12 @@
 package com.yeshi.fanli.controller.client.v2;
 
 import java.io.PrintWriter;
-import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
 import javax.annotation.Resource;
 
+import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -14,6 +14,7 @@
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
+import com.yeshi.fanli.dto.ConfigParamsDTO;
 import com.yeshi.fanli.dto.common.CommonContentNav;
 import com.yeshi.fanli.dto.common.CommonContentResult;
 import com.yeshi.fanli.dto.common.CommonContentTypeEnum;
@@ -26,15 +27,19 @@
 import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
 import com.yeshi.fanli.entity.jd.JDGoods;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
 import com.yeshi.fanli.service.inter.goods.CommonTemplateContentService;
 import com.yeshi.fanli.service.inter.goods.JDCommonTemplateContentService;
 import com.yeshi.fanli.service.inter.goods.PDDCommonTemplateContentService;
 import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
+import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
 import com.yeshi.fanli.tag.PageEntity;
 import com.yeshi.fanli.util.Constant;
 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;
@@ -51,9 +56,9 @@
 
 	@Resource
 	private SwiperPictureService swiperPictureService;
-	
+
 	@Resource
-	private HongBaoManageService hongBaoManageService;
+	private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
 
 	@Resource
 	private CommonTemplateContentService commonTemplateContentService;
@@ -64,7 +69,6 @@
 	@Resource
 	private PDDCommonTemplateContentService pddCommonTemplateContentService;
 
-	
 	/**
 	 * 閫氱敤妯℃澘瀵艰埅
 	 * 
@@ -78,7 +82,7 @@
 			out.print(JsonUtil.loadFalseResult(1, "璇蜂紶鍏ey"));
 			return;
 		}
-		
+
 		List<CommonContentNav> list = null;
 		if (type == null || type == Constant.SOURCE_TYPE_TAOBAO) {
 			list = commonTemplateContentService.getNavList(CommonContentTypeEnum.valueOf(key));
@@ -87,14 +91,14 @@
 		} else if (type == Constant.SOURCE_TYPE_PDD) {
 			list = pddCommonTemplateContentService.getNavList(PDDCommonContentTypeEnum.valueOf(key));
 		}
-		
+
 		if (list == null) {
 			list = new ArrayList<CommonContentNav>();
 		}
-		
+
 		out.print(JsonUtil.loadTrueResult(new Gson().toJson(list)));
 	}
-	
+
 	/**
 	 * 鑾峰彇鍐呭
 	 * 
@@ -105,7 +109,8 @@
 	 * @param out
 	 */
 	@RequestMapping(value = "getNavGoodsList", method = RequestMethod.POST)
-	public void getNavContent(AcceptData acceptData, String key, Integer type, Integer page, String cid, PrintWriter out) {
+	public void getNavContent(AcceptData acceptData, String key, Integer type, Integer page, String cid,
+			PrintWriter out) {
 		if (StringUtil.isNullOrEmpty(key)) {
 			out.print(JsonUtil.loadFalseResult(1, "璇蜂紶鍏ey"));
 			return;
@@ -120,12 +125,12 @@
 			getListTB(acceptData, key, page, cid, out);
 			return;
 		}
-		
+
 		if (type == Constant.SOURCE_TYPE_JD) {
 			getListJD(acceptData, key, page, cid, out);
 			return;
 		}
-		
+
 		if (type == Constant.SOURCE_TYPE_PDD) {
 			getListPDD(acceptData, key, page, cid, out);
 			return;
@@ -133,35 +138,53 @@
 		out.print(JsonUtil.loadFalseResult("goodsType鍙傛暟涓嶆纭�"));
 	}
 
-	
 	private void getListTB(AcceptData acceptData, String key, Integer page, String cid, PrintWriter out) {
-		CommonContentResult result = commonTemplateContentService.getContentList(CommonContentTypeEnum.valueOf(key),
-				cid, page, Constant.PAGE_SIZE);
-
-		// 淇濈暀鏆傛椂涓嶅紑鍚紝寰呭悗缁紑鍚�
-		List<SwiperPicture> bannerList = new ArrayList<>();
+		CommonContentResult result = null;
+		CommonContentTypeEnum type = CommonContentTypeEnum.valueOf(key);
+		if (type == CommonContentTypeEnum.guessLikeDevice) {
+			// 鐚滀綘鍠滄
+			String idfa = acceptData.getIdfa();
+			String imei = acceptData.getImei();
+			result = guessLikeDeviceTB(idfa, imei, acceptData.getUtdid(), page);
+		} else {
+			// 澶ф窐瀹㈤〉鐮佸彧鑳戒负10,50,100,200
+			result = commonTemplateContentService.getContentList(type, cid, page, 10);
+		}
 
 		JSONObject root = new JSONObject();
-		if (page == 1)
+		if (page == 1) {
+			// 淇濈暀鏆傛椂涓嶅紑鍚紝寰呭悗缁紑鍚�
+			List<SwiperPicture> bannerList = new ArrayList<>();
 			root.put("bannerList", new Gson().toJson(bannerList));
+		}
 
 		JSONArray array = new JSONArray();
 		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create();
-		List<TaoBaoGoodsBrief> goodsList = result.getGoodsList();
-		BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
-		BigDecimal shareRate = hongBaoManageService.getShareRate();
+		List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
+		if (result != null)
+			goodsList = result.getGoodsList();
+
+		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+				acceptData.getVersion());
 		for (TaoBaoGoodsBrief taoBaoGoodsBrief : goodsList) {
-			array.add(gson.toJson(GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, fanLiRate, shareRate)));
+			GoodsDetailVO vo = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, paramsDTO);
+			if (type == CommonContentTypeEnum.mianDan)// 鍏嶅崟鍟嗗搧
+			{
+				vo.getMoneyInfo().setFanliMoney("楼" + TaoBaoUtil.getAfterUseCouplePrice(taoBaoGoodsBrief));
+				vo.getMoneyInfo().setShareMoney("楼" + TaoBaoUtil.getAfterUseCouplePrice(taoBaoGoodsBrief));
+				vo.getMoneyInfo().setMaxMoney(null);
+			}
+			array.add(gson.toJson(vo));
 		}
-		
+
 		root.put("list", array);
-		root.put("count", result.getCount());
+		root.put("count", result != null ? result.getCount() : 0);
 		out.print(JsonUtil.loadTrueResult(root));
 	}
-	
-	
+
 	/**
 	 * 浜笢閫氱敤涓撻妯℃澘
+	 * 
 	 * @param acceptData
 	 * @param key
 	 * @param page
@@ -175,36 +198,38 @@
 			data.put("bannerList", new Gson().toJson(bannerList));
 		}
 
-		JDSearchResult result = jdCommonTemplateContentService.getContentList(JDCommonContentTypeEnum.valueOf(key), cid, page, Constant.PAGE_SIZE);
+		JDSearchResult result = jdCommonTemplateContentService.getContentList(JDCommonContentTypeEnum.valueOf(key), cid,
+				page, Constant.PAGE_SIZE);
 		JSONArray array = new JSONArray();
-		
+
 		long count = 0;
 		if (result != null) {
 			PageEntity pageEntity = result.getPageEntity();
 			if (pageEntity != null) {
 				count = pageEntity.getTotalCount();
 			}
-			
+
 			List<JDGoods> goodsList = result.getGoodsList();
 			if (goodsList != null && goodsList.size() > 0) {
-				BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
-				BigDecimal shareRate = hongBaoManageService.getShareRate();
 				Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
 						.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+				ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+						acceptData.getVersion());
+
 				for (JDGoods goods : goodsList) {
-					array.add(gson.toJson(GoodsDetailVOFactory.convertJDGoods(goods, fanLiRate, shareRate)));
+					array.add(gson.toJson(GoodsDetailVOFactory.convertJDGoods(goods, paramsDTO)));
 				}
 			}
 		}
-		
+
 		data.put("list", array);
 		data.put("count", count);
 		out.print(JsonUtil.loadTrueResult(data));
 	}
-	
-	
+
 	/**
-	 *   鎷煎澶氶�氱敤涓撻妯℃澘
+	 * 鎷煎澶氶�氱敤涓撻妯℃澘
+	 * 
 	 * @param acceptData
 	 * @param key
 	 * @param page
@@ -217,37 +242,60 @@
 			// 2銆侀《閮ㄨ疆鎾浘
 			List<SwiperPicture> bannerList = null;
 			if (Constant.IS_TEST) {
-				bannerList = swiperPictureService.getByBannerCard("index_top");
-			}	
-			
+				bannerList = swiperPictureService.getByBannerCardAndVersion("index_top", acceptData.getPlatform(),
+						Integer.parseInt(acceptData.getVersion()));
+			}
+
 			if (bannerList == null) {
 				bannerList = new ArrayList<SwiperPicture>();
 			}
 
 			data.put("bannerList", new Gson().toJson(bannerList));
 		}
-		
-		PDDGoodsResult result = pddCommonTemplateContentService.getContentList(PDDCommonContentTypeEnum.valueOf(key), cid, page, Constant.PAGE_SIZE);
+
+		PDDGoodsResult result = pddCommonTemplateContentService.getContentList(PDDCommonContentTypeEnum.valueOf(key),
+				cid, page, Constant.PAGE_SIZE);
 		JSONArray array = new JSONArray();
 		long count = 0;
 		if (result != null) {
 			count = result.getTotalCount();
-			
+
 			List<PDDGoodsDetail> goodsList = result.getGoodsList();
 			if (goodsList != null && goodsList.size() > 0) {
-				BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
-				BigDecimal shareRate = hongBaoManageService.getShareRate();
 				Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
 						.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+				ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+						acceptData.getVersion());
+
 				for (PDDGoodsDetail goods : goodsList) {
-					array.add(gson.toJson(GoodsDetailVOFactory.convertPDDGoods(goods, fanLiRate, shareRate)));
+					array.add(gson.toJson(GoodsDetailVOFactory.convertPDDGoods(goods, paramsDTO)));
 				}
 			}
 		}
-		
+
 		data.put("list", array);
 		data.put("count", count);
 		out.print(JsonUtil.loadTrueResult(data));
 	}
 
+	/**
+	 * 鐚滀綘鍠滄-娣樺疂璁惧鎺ㄨ崘
+	 * 
+	 * @param acceptData
+	 * @param page
+	 * @return
+	 */
+	@Cacheable(value = "commonContentCache", key = "#idfa+'-'+#imei+'-'+#page")
+	private CommonContentResult guessLikeDeviceTB(String idfa, String imei, String utdid, Integer page) {
+		TaoBaoSearchResult searchResult = TaoKeApiUtil.guessDeviceLike(page, Constant.PAGE_SIZE, imei, idfa, utdid);
+		if (searchResult != null && searchResult.getTaoBaoGoodsBriefs() != null
+				&& searchResult.getTaoBaoGoodsBriefs().size() > 0) {
+			CommonContentResult result = new CommonContentResult();
+			result.setCount(searchResult.getPageEntity().getTotalCount());
+			result.setGoodsList(searchResult.getTaoBaoGoodsBriefs());
+			return result;
+		}
+		return null;
+	}
+
 }

--
Gitblit v1.8.0