From ab9e60fa9a8e43d797446730a5dc9ebfb6b3f4e6 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 27 六月 2019 09:48:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/TaoLiJinControllerV2.java |  128 +++++++++++++++++++++++++++---------------
 1 files changed, 81 insertions(+), 47 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/TaoLiJinControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/TaoLiJinControllerV2.java
index 37d8c72..633a56b 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/TaoLiJinControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/TaoLiJinControllerV2.java
@@ -11,6 +11,7 @@
 
 import javax.annotation.Resource;
 
+import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -26,14 +27,13 @@
 import com.google.gson.stream.JsonReader;
 import com.google.gson.stream.JsonWriter;
 import com.yeshi.fanli.entity.accept.AcceptData;
-import com.yeshi.fanli.entity.bus.lable.QualityFactory;
 import com.yeshi.fanli.entity.bus.tlj.DeviceTaoLiJinRecord;
 import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinDetail.TaoLiJinDetailTypeEnum;
 import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinOrigin;
 import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinOrigin.TaoLiJinOriginEnum;
-import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
 import com.yeshi.fanli.entity.bus.user.UserMoneyExtra;
 import com.yeshi.fanli.entity.bus.user.UserRank;
+import com.yeshi.fanli.entity.taobao.ShareHotGoods;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
 import com.yeshi.fanli.exception.tlj.UserTaoLiJinOriginException;
@@ -45,9 +45,9 @@
 import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
 import com.yeshi.fanli.service.inter.monitor.BusinessEmergent110Service;
 import com.yeshi.fanli.service.inter.monitor.MonitorService;
+import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService;
 import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
 import com.yeshi.fanli.service.inter.tlj.DeviceTaoLiJinRecordService;
-import com.yeshi.fanli.service.inter.tlj.GoodsTaoLiJinRateService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinDetailService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
@@ -60,6 +60,7 @@
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
+import com.yeshi.fanli.util.taobao.TaoLiJinUtil;
 import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
 import com.yeshi.fanli.vo.tlj.TaoLiJinDetailVO;
 import com.yeshi.fanli.vo.user.UserTaoLiJinRecordVO;
@@ -120,15 +121,18 @@
 	private QualityGoodsService qualityGoodsService;
 	
 	@Resource
-	private GoodsTaoLiJinRateService goodsTaoLiJinRateService;
-	
-	@Resource
 	private DeviceTaoLiJinRecordService deviceTaoLiJinRecordService;
 
 	@Resource
 	private JumpDetailV2Service jumpDetailV2Service;
 	
-
+	@Resource(name = "taskExecutor")
+	private TaskExecutor executor;
+	
+	@Resource
+	private ShareHotGoodsService shareHotGoodsService;
+	
+	
 	/**
 	 * 鑾峰彇娣樼ぜ閲戝垎浜褰�
 	 * 
@@ -323,7 +327,21 @@
 					return new JsonPrimitive(TimeUtil.getGernalTime(value.getTime(), "yyyy.MM.dd HH:mm"));
 				}
 			}
+		}).registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
+			@Override
+			public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) {
+				if (value == null) {
+					return new JsonPrimitive("");
+				} else {
+					// 淇濈暀2浣嶅皬鏁�
+					value = value.setScale(2);
+					return new JsonPrimitive(value.toString());
+				}
+			}
 		});
+		
+		
+		
 		Gson gson = gsonBuilder.create();
 
 		JSONObject data = new JSONObject();
@@ -372,10 +390,11 @@
 			data.put("content", "鑷喘鐩存帴鎶电幇锛屼紭鎯犵湡瀹炲彲瑙侊紒");
 			data.put("type", 1);
 			data.put("money", money.setScale(2).toString());
-			data.put("usage", "棰嗗彇鎴愬姛锛屽幓鈥滈椤�-鍒嗕韩鐖嗘鈥濅娇鐢�>");
-			data.put("jumpDetail", jumpDetailV2Service.getByTypeCache("share_taolijin_goods"));
+			data.put("usage", "棰嗗彇鎴愬姛锛屽凡瀛樺叆鈥滄垜鐨�-鎺ㄥ箍绾㈠寘鈥�");
+			data.put("jumpName", "鍘讳娇鐢�");
+			data.put("jumpDetail", jumpDetailV2Service.getByTypeCache("share_goods_hot"));
 			data.put("tip", configTaoLiJinService.getValueByKey("hongbao_newbies_tip"));
-			data.put("rules", configTaoLiJinService.getValueByKey("taolijin_rules"));
+			data.put("rules", configTaoLiJinService.getValueByKey("newbies_rules_link"));
 			
 			out.print(JsonUtil.loadTrueResult(data));
 			return;
@@ -384,7 +403,6 @@
 		
 		// 鐧诲綍鐢ㄦ埛
 		JSONObject data = new JSONObject();
-		data.put("rules", configTaoLiJinService.getValueByKey("taolijin_rules"));
 		data.put("icon", configTaoLiJinService.getValueByKey("taolijin_system_icon"));
 		
 		if (type.equals(TaoLiJinOriginEnum.newbiesWin.name())) {
@@ -406,9 +424,11 @@
 			data.put("content", "鑷喘鐩存帴鎶电幇锛屼紭鎯犵湡瀹炲彲瑙侊紒");
 			data.put("type", 1);
 			data.put("money", hasMoney.setScale(2).toString());
-			data.put("usage", "棰嗗彇鎴愬姛锛屽幓鈥滈椤�-鍒嗕韩鐖嗘鈥濅娇鐢�>");
-			data.put("jumpDetail", jumpDetailV2Service.getByTypeCache("share_taolijin_goods"));
+			data.put("usage", "棰嗗彇鎴愬姛锛屽凡瀛樺叆鈥滄垜鐨�-鎺ㄥ箍绾㈠寘鈥�");
+			data.put("jumpName", "鍘讳娇鐢�");
+			data.put("jumpDetail", jumpDetailV2Service.getByTypeCache("share_goods_hot"));
 			data.put("tip", configTaoLiJinService.getValueByKey("hongbao_newbies_tip"));
+			data.put("rules", configTaoLiJinService.getValueByKey("newbies_rules_link"));
 			
 		} else if(type.equals(TaoLiJinOriginEnum.rankWin.name())) {
 			boolean isRank = false;
@@ -422,11 +442,12 @@
 				UserRank userRank = userInfoExtraService.gerUserRank(uid);
 				if (userRank != null) {
 					try {
-						isRank = true;
 						UserTaoLiJinOrigin origin = userTaoLiJinOriginService.addRankWinMoney(uid, userRank);
 						hasMoney = origin.getMoney();
+						isRank = true;
 					} catch (UserTaoLiJinOriginException e) {
 						if (e.getCode() != 2) {
+							isRank = false;
 							out.print(JsonUtil.loadFalseResult(e.getMsg()));
 							return;
 						}
@@ -440,9 +461,10 @@
 				data.put("content", "鎺ㄥ箍绾㈠寘锛屽ソ鍙嬬鍒╋紒");
 				data.put("type", 2);
 				data.put("money", "鏈湀璐︽埛绛夌骇鏈揪鍒癨r\n缁х画鍔犳补");
-				data.put("usage", "鍘烩�滄垜鐨�-璐︽埛绛夌骇鈥濇煡鐪� >");
+				data.put("jumpName", "鍘绘煡鐪�");
 				data.put("jumpDetail", jumpDetailV2Service.getByTypeCache("user_rank"));
 				data.put("tip", configTaoLiJinService.getValueByKey("hongbao_rank_not_enough_tip"));
+				data.put("rules", configTaoLiJinService.getValueByKey("rank_rules_link"));
 				out.print(JsonUtil.loadTrueResult(data));
 				return;
 			} else {
@@ -450,9 +472,11 @@
 				data.put("content", "鎺ㄥ箍绾㈠寘锛屽ソ鍙嬬鍒╋紒");
 				data.put("type", 1);
 				data.put("money", hasMoney.setScale(2).toString());
-				data.put("usage", "宸插瓨鍏モ�滄垜鐨�-鎺ㄥ箍绾㈠寘鈥濓紝鍘绘煡鐪� >");
-				data.put("jumpDetail", jumpDetailV2Service.getByTypeCache("user_taolijin"));
+				data.put("usage", "棰嗗彇鎴愬姛锛屽凡瀛樺叆鈥滄垜鐨�-鎺ㄥ箍绾㈠寘鈥�");
+				data.put("jumpName", "鍘讳娇鐢�");
+				data.put("jumpDetail", jumpDetailV2Service.getByTypeCache("share_goods_hot"));
 				data.put("tip", configTaoLiJinService.getValueByKey("hongbao_rank_tip"));
+				data.put("rules", configTaoLiJinService.getValueByKey("rank_rules_link"));
 			}
 			
 		} else {
@@ -472,64 +496,74 @@
 	 * @param out
 	 */
 	@RequestMapping(value = "getShareGoods", method = RequestMethod.POST)
-	public void getShareGoods(AcceptData acceptData, Long uid, Integer page, PrintWriter out) {
+	public void getShareGoods(AcceptData acceptData, Long uid, PrintWriter out) {
 		if (uid == null || uid <= 0) {
 			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
 			return;
 		}
 		
-		if (page == null || page < 1) {
-			page = 1;
+		String day = TimeUtil.getGernalTime(java.lang.System.currentTimeMillis());
+		List<ShareHotGoods> listHot = shareHotGoodsService.listByDay(day);
+		if (listHot == null) {
+			listHot = new ArrayList<ShareHotGoods>(); 
 		}
-
-		int pageSize = 10;
 		
-		List<QualityFactory> listFreeGoods = qualityGoodsService.listFreeGoods((page - 1) * pageSize, pageSize);
-		if (listFreeGoods == null) {
-			listFreeGoods = new ArrayList<QualityFactory>(); 
-		}
-		long count = listFreeGoods.size();
 		
 		JSONArray array = new JSONArray();
 		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
 				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
 		
 		boolean isNewUser = userInfoExtraService.isNewUser(uid);
+		if (isNewUser) {
+			// 鍒ゅ畾涓鸿�佺敤鎴凤細 鏂颁汉鍙浣跨敤浜嗘柊浜虹孩鍖咃紝涔熷氨鏄偅1鍧楅挶锛岄偅涔堬紝浠栫湅鍒扮殑鍒嗕韩鐖嗘涓殑鍟嗗搧-灏卞彧鑳藉垎浜��
+			long countRecord = userTaoLiJinRecordService.countRecordByUid(uid);
+			if (countRecord > 0) {
+				isNewUser = false;
+			}
+		}
+		
 		
 		BigDecimal proportion = hongBaoManageService.getFanLiRate();
-		for (QualityFactory qualityFactory : listFreeGoods) {
-			TaoBaoGoodsBrief taoBaoGoodsBrief = qualityFactory.getTaoBaoGoodsBrief();
+		for (ShareHotGoods hotGoods : listHot) {
+			TaoBaoGoodsBrief taoBaoGoodsBrief = hotGoods.getGoods();
 			if (taoBaoGoodsBrief == null) {
 				continue;
 			}
 			
-			TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null);
+			// 璁$畻鎺ㄥ箍绾㈠寘
+			String warningRate = configTaoLiJinService.getValueByKey("warning_value");
+			BigDecimal spreadMoney = TaoLiJinUtil.getSpreadMoney(warningRate, taoBaoGoodsBrief);
 			
-			// 鏄剧ず绫诲瀷
-			if (isNewUser) {
-				extra.setMoneyType(1);
-			} else {
-				extra.setMoneyType(2);
-			}
-			
-			// 鍘绘帀鏍囩
-			extra.setLabels(null);
-			
-			BigDecimal spreadMoney = goodsTaoLiJinRateService.getGoodsSpreadMoney(taoBaoGoodsBrief);
 			// 鎺ㄥ箍绾㈠寘 涓嶈兘灏忎簬1
-			if (spreadMoney.compareTo(new BigDecimal(1)) < 0) {
+			if (spreadMoney.compareTo(new BigDecimal(1.1)) < 0) {
 				continue;
 			}
 			
-			extra.setSpreadMoney("鎺ㄥ箍绾㈠寘 楼"+ spreadMoney);
+			TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null);
+			// 鍘绘帀鏍囩
+			extra.setLabels(null);
+						
+			// 鏄剧ず绫诲瀷
+			if (isNewUser) {
+				extra.setMoneyType(1);
+				extra.setSpreadMoney("鎺ㄥ箍绾㈠寘 楼"+ 1);
+			} else {
+				extra.setMoneyType(2);
+				extra.setSpreadMoney("鎺ㄥ箍绾㈠寘 楼"+ spreadMoney);
+			}
 			array.add(gson.toJson(extra));
 		}
 		
-		// 杩囨湡
-		userTaoLiJinOriginService.overdueHongBao(uid);
-				
+		executor.execute(new Runnable() {
+			@Override
+			public void run() {
+				// 杩囨湡
+				userTaoLiJinOriginService.overdueHongBao(uid);
+			}
+		});
+		
 		JSONObject data = new JSONObject();
-		data.put("count", count);
+		data.put("count", array.size());
 		data.put("list", array);
 		out.print(JsonUtil.loadTrueResult(data));
 	}

--
Gitblit v1.8.0