From 6fdcc0c26dd33e87a024a69ed635d9aedb59cad6 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 07 一月 2020 12:02:50 +0800
Subject: [PATCH] 订单搜索引擎增量更新

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java |  162 ++++++++++++++++++++++++------------------------------
 1 files changed, 72 insertions(+), 90 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java
index 9d333e2..54ed7a0 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java
@@ -17,6 +17,7 @@
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import com.yeshi.fanli.dto.ConfigParamsDTO;
+import com.yeshi.fanli.dto.dataoke.DingDongTime;
 import com.yeshi.fanli.dto.jd.JDSearchResult;
 import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
 import com.yeshi.fanli.dto.pdd.PDDGoodsResult;
@@ -45,11 +46,11 @@
 import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
 import com.yeshi.fanli.service.inter.pdd.PDDGoodsService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
-import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
 import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
 import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsService;
 import com.yeshi.fanli.tag.PageEntity;
 import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.RedisKeyEnum;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.TaoBaoConstant;
@@ -97,9 +98,6 @@
 	private QualityFlashSaleService qualityFlashSaleService;
 
 	@Resource
-	private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService;
-
-	@Resource
 	private RecommendGoodsDeleteHistoryService recommendGoodsDeleteHistoryService;
 
 	@Resource
@@ -128,11 +126,9 @@
 
 	@Resource
 	private DaTaoKeGoodsService daTaoKeGoodsService;
-	
+
 	@Resource
 	private HongBaoV2CountService hongBaoV2CountService;
-	
-	
 
 	/**
 	 * 鏂扮増鎺ㄨ崘涓撻绠$悊(1.5.3)
@@ -150,7 +146,9 @@
 			JSONObject root = specialService.listCacheSpecialToIndex(acceptData, deviceSex);
 
 			// 2銆侀《閮ㄨ疆鎾浘
-			List<SwiperPicture> oldtopPicList = swiperPictureService.getByBannerCard("index_top");
+			List<SwiperPicture> oldtopPicList = swiperPictureService.getByBannerCardAndVersion("index_top",
+					acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()));
+
 			List<SwiperPicture> topPicList = new ArrayList<>();
 			if (oldtopPicList != null && oldtopPicList.size() > 0)
 				topPicList.addAll(oldtopPicList);
@@ -163,7 +161,8 @@
 					&& configService.iosOnLining(Integer.parseInt(acceptData.getVersion()))) {
 				// 濡傛灉IOS褰撳墠鐗堟湰澶勪簬瀹℃牳鐘舵�佸氨涓嶈繑鍥�
 			} else {
-				invitePicList = swiperPictureService.getByBannerCard("index_invite");
+				invitePicList = swiperPictureService.getByBannerCardAndVersion("index_invite", acceptData.getPlatform(),
+						Integer.parseInt(acceptData.getVersion()));
 			}
 
 			if (invitePicList == null) {
@@ -209,32 +208,35 @@
 
 	private JSONObject getSpikeGoodsContent(AcceptData acceptData) {
 		long nowTime = System.currentTimeMillis();
-		Calendar calendar=	Calendar.getInstance(); 
+		Calendar calendar = Calendar.getInstance();
 		calendar.setTimeInMillis(nowTime);
-		List<String> dtoList = DaTaoKeUtil.getDingDongQiangTime(calendar);	
+		List<DingDongTime> dtoList = DaTaoKeUtil.getDingDongQiangTime(calendar);
 		int dateNum = Integer.parseInt(TimeUtil.getGernalTime(nowTime, "ddHH"));
 		String timeStr = null;
 		int nextPos = 0;
 		for (int i = 0; i < dtoList.size() - 1; i++) {
-			if (dateNum >= Integer.parseInt(dtoList.get(i)) && dateNum < Integer.parseInt(dtoList.get(i + 1))) {
-				timeStr = dtoList.get(i);
+			if (dateNum >= Integer.parseInt(dtoList.get(i).getTime())
+					&& dateNum < Integer.parseInt(dtoList.get(i + 1).getTime())) {
+				timeStr = dtoList.get(i).getTime();
 				nextPos = i + 1;
 				break;
 			}
 		}
-		
+
 		if (timeStr == null)
-			timeStr = dtoList.get(dtoList.size() - 1);
+			timeStr = dtoList.get(dtoList.size() - 1).getTime();
 
 		long nextTime = nowTime + 1000 * 60 * 60L;// 榛樿涓�1灏忔椂
 		if (nextPos < dtoList.size()) {
-			nextTime = TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(nowTime, "yyyyMM") + dtoList.get(nextPos),
-					"yyyyMMddHH");
+			nextTime = TimeUtil.convertToTimeTemp(
+					TimeUtil.getGernalTime(nowTime, "yyyyMM") + dtoList.get(nextPos).getTime(), "yyyyMMddHH");
 		}
 
 		JSONArray array = null;
-		String timekey = String.format("spikeGoods_hour_new-%s-%s", acceptData.getPlatform(), acceptData.getVersion());
-		String cachekey = String.format("spikeGoodsList_new-%s-%s", acceptData.getPlatform(), acceptData.getVersion());
+		String timekey = RedisKeyEnum.getRedisKey(RedisKeyEnum.spikeGoodsHourNew,acceptData.getPlatform() +"-"+acceptData.getVersion());
+		String cachekey = RedisKeyEnum.getRedisKey(RedisKeyEnum.spikeGoodsListNew,acceptData.getPlatform() +"-"+acceptData.getVersion());
+
+		
 		Calendar nowCalendar = Calendar.getInstance();
 		nowCalendar.setTimeInMillis(nowTime);
 		int hour = nowCalendar.get(Calendar.HOUR_OF_DAY);
@@ -250,13 +252,12 @@
 		}
 
 		JumpDetailV2 jumpDetail = null;
-		if(VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion())) {
+		if (VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion())) {
 			jumpDetail = jumpDetailV2Service.getByTypeCache("spike_goods_list");
 		} else {
 			jumpDetail = jumpDetailV2Service.getByTypeCache("web");
 		}
-		
-		
+
 		if (array == null) {
 			array = new JSONArray();
 
@@ -277,12 +278,15 @@
 
 			/* 閬嶅巻鍒楄〃鏁版嵁 */
 
+			ConfigParamsDTO configParamsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
+					acceptData.getVersion());
+
 			for (DaTaoKeDetailV2 detail : listGoods) {
 				TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(detail);
 				if (taoBaoGoodsBrief == null) {
 					continue;
 				}
-				GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE));
+				GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, configParamsDTO);
 
 				JSONObject params = new JSONObject();
 				params.put("url", configService.get("spike_goods_link") + "?id=" + taoBaoGoodsBrief.getAuctionId());
@@ -342,10 +346,9 @@
 		return root;
 	}
 
-	
-	
 	/**
 	 * 闄愭椂绉掓潃鍒楄〃
+	 * 
 	 * @param acceptData
 	 * @param page
 	 * @param auctionId
@@ -354,43 +357,30 @@
 	 */
 	@RequestMapping("getSpikTime")
 	public void getSpikTime(AcceptData acceptData, PrintWriter out) {
+		List<DingDongTime> timeList = DaTaoKeUtil.getDingDongQiangTime(Calendar.getInstance());
 		List<SpikeTimeVO> list = new ArrayList<SpikeTimeVO>();
-		SpikeTimeVO spikeTime1 = new SpikeTimeVO();
-		spikeTime1.setTime("08:00");
-		spikeTime1.setState("杩涜涓�");
-		spikeTime1.setRequestTime("2408");
-		
-		SpikeTimeVO spikeTime2 = new SpikeTimeVO();
-		spikeTime2.setTime("10:00");
-		spikeTime2.setState("杩涜涓�");
-		spikeTime2.setChecked(true);
-		spikeTime2.setRequestTime("2410");
-		
-		SpikeTimeVO spikeTime3 = new SpikeTimeVO();
-		spikeTime3.setTime("13:00");
-		spikeTime3.setState("鍗冲皢寮�濮�");
-		spikeTime3.setRequestTime("2413");
-		
-		SpikeTimeVO spikeTime4 = new SpikeTimeVO();
-		spikeTime4.setTime("15:00");
-		spikeTime4.setState("鍗冲皢寮�濮�");
-		spikeTime4.setRequestTime("2415");
-		
-		list.add(spikeTime1);
-		list.add(spikeTime2);
-		list.add(spikeTime3);
-		list.add(spikeTime4);
-		
+		for (int i = 0; i < timeList.size(); i++) {
+			SpikeTimeVO spikeTime1 = new SpikeTimeVO();
+			spikeTime1.setTime(timeList.get(i).getTime().subSequence(2, 4) + ":00");
+			if (timeList.get(i).getState() <= 0)
+				spikeTime1.setState("杩涜涓�");
+			else
+				spikeTime1.setState("鍗冲皢寮�濮�");
+			if (timeList.get(i).getState() == 0)
+				spikeTime1.setChecked(true);
+			spikeTime1.setRequestTime(timeList.get(i).getTime());
+			list.add(spikeTime1);
+		}
+
 		JSONObject data = new JSONObject();
 		data.put("count", list.size());
 		data.put("list", list);
-		out.print(JsonUtil.loadTrueResult(data));	
+		out.print(JsonUtil.loadTrueResult(data));
 	}
-	
-	
-	
+
 	/**
 	 * 闄愭椂绉掓潃鍒楄〃
+	 * 
 	 * @param acceptData
 	 * @param page
 	 * @param auctionId
@@ -402,7 +392,7 @@
 		List<DaTaoKeDetailV2> detailList0 = daTaoKeGoodsDetailV2Service.getDingDongQiangData(qtime);
 		if (detailList0 == null)
 			detailList0 = new ArrayList<>();
-		
+
 		List<DaTaoKeDetailV2> detailList = new ArrayList<>();
 		detailList.addAll(detailList0);
 		JSONArray array = new JSONArray();
@@ -416,13 +406,12 @@
 				}
 			}
 		}
-		
+
 		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
 				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
 		if (detailList != null) {
-			BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
-			BigDecimal shareRate = hongBaoManageService.getShareRate();
-		    ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
+			ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
+					acceptData.getVersion());
 
 			for (DaTaoKeDetailV2 detail : detailList) {
 				array.add(gson.toJson(GoodsDetailVOFactory.convertTaoBao(TaoBaoUtil.convert(detail), paramsDTO)));
@@ -432,12 +421,9 @@
 		JSONObject data = new JSONObject();
 		data.put("count", detailList.size());
 		data.put("list", array);
-		out.print(JsonUtil.loadTrueResult(data));	
+		out.print(JsonUtil.loadTrueResult(data));
 	}
-	
-	
-	
-	
+
 	/**
 	 * 閲戝竵鍏戞崲淇℃伅
 	 * 
@@ -569,9 +555,8 @@
 				}
 			}
 
-			BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
-			BigDecimal shareRate = hongBaoManageService.getShareRate();
-		    ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
+			ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
+					acceptData.getVersion());
 
 			for (TaoBaoGoodsBrief goods : goodsList) {
 				GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
@@ -589,7 +574,8 @@
 				List<TLJBuyGoods> list = homeRecommendGoodsService.getZiGouLiJianHotGoods(acceptData.getDevice());
 				if (list != null && list.size() > 0) {
 					BigDecimal rateBuy = TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE;
-					 ConfigParamsDTO paramsBuy = new ConfigParamsDTO(rateBuy, rateBuy, Constant.MAX_REWARD_RATE);
+					ConfigParamsDTO paramsBuy = new ConfigParamsDTO(rateBuy, rateBuy, Constant.MAX_REWARD_RATE,
+							hongBaoManageService.getVIPFanLiRate());
 					for (int i = list.size() - 1; i >= 0; i--) {
 						TLJBuyGoods goods = list.get(i);
 						GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods.getGoods(), paramsBuy);
@@ -639,15 +625,14 @@
 
 					// filter
 					try {
-						gList = daTaoKeGoodsDetailService.filterTaoBaoGoods(gList);
+						gList = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(gList);
 					} catch (Exception e) {
 					}
 
 					// 璁惧鎺ㄨ崘
 					if (gList != null) {
-						BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
-						BigDecimal shareRate = hongBaoManageService.getShareRate();
-						 ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
+						ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
+								acceptData.getVersion());
 						for (TaoBaoGoodsBrief goods : gList) {
 							if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && goods.getCouponAmount() != null
 									&& goods.getCouponAmount().compareTo(new BigDecimal("5")) >= 0
@@ -682,10 +667,10 @@
 					}
 				}
 			}
-			JSONArray localArray = qualityGoodsService.getRecommendToIndexV2((page - 1) * pageSize, pageSize);
+			JSONArray localArray = qualityGoodsService.getRecommendToIndexV2((page - 1) * pageSize, pageSize,acceptData.getPlatform(),acceptData.getVersion());
 			array.addAll(localArray);
 		} else {// 浠庣簿閫夊簱鏉�
-			array = qualityGoodsService.getRecommendToIndexV2((page - 1) * pageSize, pageSize);
+			array = qualityGoodsService.getRecommendToIndexV2((page - 1) * pageSize, pageSize,acceptData.getPlatform(),acceptData.getVersion());
 			if (array == null) {
 				out.print(JsonUtil.loadFalseResult("娌℃湁鏇村浜�"));
 				return;
@@ -718,9 +703,8 @@
 
 			List<JDGoods> goodsList = result.getGoodsList();
 			if (goodsList != null && goodsList.size() > 0) {
-				BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
-				BigDecimal shareRate = hongBaoManageService.getShareRate();
-			    ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
+				ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
+						acceptData.getVersion());
 
 				Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
 						.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
@@ -752,9 +736,8 @@
 			Gson gson = JsonUtil.getApiCommonGson();
 			List<PDDGoodsDetail> goodsList = result.getGoodsList();
 			if (goodsList != null && goodsList.size() > 0) {
-				BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
-				BigDecimal shareRate = hongBaoManageService.getShareRate();
-			    ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
+				ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
+						acceptData.getVersion());
 
 				for (PDDGoodsDetail goods : goodsList) {
 					GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(goods, paramsDTO);
@@ -787,9 +770,8 @@
 			JSONArray arrayKeys = JSONArray.fromObject(keys);
 			if (arrayKeys != null && arrayKeys.size() > 0) {
 				count = arrayKeys.size();
-				BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
-				BigDecimal shareRate = hongBaoManageService.getShareRate();
-			    ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
+				ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
+						acceptData.getVersion());
 
 				int j = 1;
 				for (int i = (page - 1) * 3; i < arrayKeys.size(); i++) {
@@ -802,7 +784,8 @@
 					List<DaTaoKeDetailV2> listTaoKe = daTaoKeGoodsService.getSearchDiscoveryGoods(words);
 					if (listTaoKe != null && listTaoKe.size() > 0) {
 						for (DaTaoKeDetailV2 daTaoKeDetailV2 : listTaoKe) {
-							listGoods.add(GoodsDetailVOFactory.convertTaoBao(TaoBaoUtil.convert(daTaoKeDetailV2), paramsDTO));
+							listGoods.add(
+									GoodsDetailVOFactory.convertTaoBao(TaoBaoUtil.convert(daTaoKeDetailV2), paramsDTO));
 							if (listGoods.size() >= 3)
 								break;
 						}
@@ -856,7 +839,7 @@
 					special.setTimeTask(true);
 				else
 					special.setTimeTask(false);
-				
+
 				if (special.isTimeTask()) {
 					if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) {
 						list.remove(i--);
@@ -879,7 +862,6 @@
 			out.print(JsonUtil.loadTrueResult(data));
 	}
 
-	
 	/**
 	 * 鑾峰彇涓撻娓犻亾娲诲姩
 	 * 
@@ -907,14 +889,14 @@
 			} else {
 				// 璧氶挶鐗�
 				tips = configService.get("tip_guide_share_invite");
-			} 
+			}
 		}
-		
+
 		if (StringUtil.isNullOrEmpty(tips)) {
 			out.print(JsonUtil.loadFalseResult("鏆傛棤鎻愮ず"));
 			return;
 		}
-		
+
 		JSONObject data = JSONObject.fromObject(tips);
 		out.print(JsonUtil.loadTrueResult(data));
 	}

--
Gitblit v1.8.0