From 7f2f5ef5637a6871f4329e464eeba97eb59e94a3 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期三, 21 八月 2019 10:45:38 +0800
Subject: [PATCH] Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/IntegralControllerV2.java |  104 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 93 insertions(+), 11 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/IntegralControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/IntegralControllerV2.java
index a6ad85a..ce38a85 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/IntegralControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/IntegralControllerV2.java
@@ -33,7 +33,9 @@
 import com.yeshi.fanli.entity.bus.user.UserRank;
 import com.yeshi.fanli.entity.integral.CodePublishRecord;
 import com.yeshi.fanli.entity.integral.IntegralExchange;
+import com.yeshi.fanli.entity.integral.IntegralTask;
 import com.yeshi.fanli.entity.integral.IntegralTaskClass;
+import com.yeshi.fanli.entity.integral.IntegralTaskRank;
 import com.yeshi.fanli.entity.integral.IntegralTaskClass.UniqueKeyEnum;
 import com.yeshi.fanli.entity.integral.IntegralTaskRecord;
 import com.yeshi.fanli.exception.integral.IntegralExchangeException;
@@ -45,7 +47,9 @@
 import com.yeshi.fanli.service.inter.integral.IntegralExchangeRecordService;
 import com.yeshi.fanli.service.inter.integral.IntegralExchangeService;
 import com.yeshi.fanli.service.inter.integral.IntegralTaskClassService;
+import com.yeshi.fanli.service.inter.integral.IntegralTaskRankService;
 import com.yeshi.fanli.service.inter.integral.IntegralTaskRecordService;
+import com.yeshi.fanli.service.inter.integral.IntegralTaskService;
 import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
 import com.yeshi.fanli.util.Constant;
@@ -86,9 +90,15 @@
 	
 	@Resource
 	private IntegralDetailService integralDetailService;
+	
+	@Resource
+	private IntegralTaskRankService integralTaskRankService;
 
 	@Resource
 	private CodePublishRecordService codePublishRecordService;
+	
+	@Resource
+	private IntegralTaskService integralTaskService;
 
 	/**
 	 * 鑾峰彇浠诲姟鍒楄〃
@@ -120,8 +130,19 @@
 				list = new ArrayList<IntegralTaskClassVO>();
 			}
 			long count = integralTaskClassService.countTaskClass();
-
+			
+			// 鐢ㄦ埛绛惧埌
+			Integer signState = 0;
+			int signDays = 1;
 			if (page == 1) {
+				
+				// 绛惧埌
+				try { 
+					signState = integralTaskClassService.finishedDailySign(uid);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+				
 				UserInfoExtraVO extraVO = userInfoExtraService.getInfoExtraVOByUid(uid);
 				if (extraVO == null) {
 					out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鐩稿叧淇℃伅涓嶅瓨鍦�"));
@@ -139,21 +160,82 @@
 					out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛绛夌骇涓嶅瓨鍦�"));
 					return;
 				}
-
-				boolean signState = false;
-				IntegralTaskClass taskClass = integralTaskClassService.getByUniqueKey(UniqueKeyEnum.dailySign.name());
-				if (taskClass != null)
-					signState = integralTaskRecordService.isToDaySign(uid, taskClass.getId());
-
-				// 绛惧埌鏃ユ湡
+				
+				// 绛惧埌鏃ユ湡淇℃伅
 				DailySignVO dailySignVO = integralTaskClassService.getDailySignList(uid, userRank.getId());
-				data.put("signState", signState);
+				if (dailySignVO != null) {
+					signDays = dailySignVO.getDays();
+				}
+				
+				boolean ejectSign = false;
+				if (signState == 1) 
+					ejectSign = true;
+
+				data.put("signState", ejectSign);
 				data.put("goldCoin", extraVO.getGoldCoin());
 				data.put("portrait", userInfo.getPortrait());
 				data.put("userRank", gson.toJson(userRank));
 				data.put("dailySign", dailySignVO);
 			}
 
+			
+			for (IntegralTaskClassVO taskClassVO : list) {
+				String progress = taskClassVO.getProgress();
+				if (StringUtil.isNullOrEmpty(progress))
+					continue;
+				
+				Integer taskNum = taskClassVO.getTaskNum();
+				if (taskNum == null)
+					continue;
+
+				UniqueKeyEnum uniqueKey = taskClassVO.getUniqueKey();
+				if (uniqueKey == UniqueKeyEnum.dailySign) {
+					if (signState == 0) {
+						taskClassVO.setLightUp(true); // 绛惧埌澶辫触
+					} else if (signState == 1) {
+						taskClassVO.setLightUp(false);
+					} else if (signState == 2) {
+						taskClassVO.setLightUp(false);
+					}
+
+					// 鏍规嵁澶╂暟鍙樺寲鏇存敼绛惧埌閲戦
+					Integer num = integralTaskRecordService.getNowdaySignNum(uid, taskClassVO.getId());
+					
+					String uniqueKeyTask = UniqueKeyEnum.dailySign.name() + num;
+					IntegralTask integralTask = integralTaskService.getByCidAndUniqueKey(taskClassVO.getId(), uniqueKeyTask);
+					Integer goldCoin = 0;
+					if (integralTask != null) {
+						goldCoin = integralTask.getGoldCoin();
+						Integer baseDoubleNum = integralTask.getDoubleNum();
+						if (baseDoubleNum != null && baseDoubleNum > 0)
+							goldCoin = goldCoin * baseDoubleNum;
+					}
+					taskClassVO.setTotalCoin(goldCoin);
+				} else {
+					taskClassVO.setLightUp(true);
+				}
+				
+				Integer dateType = 1; // 鏌ヨ褰撴棩
+				if (uniqueKey == UniqueKeyEnum.orderReward)
+					dateType = null; // 鏌ヨ鍘嗗彶
+
+				Long id = taskClassVO.getId();
+				int countFinished = 0;
+				Integer totalGoldCoin = integralTaskRecordService.getTotalGoldCoin(uid, id, dateType);
+				if (totalGoldCoin != null && totalGoldCoin > 0) {
+					taskClassVO.setFinishedCoin("+" + totalGoldCoin);
+					if (uniqueKey != UniqueKeyEnum.dailySign)
+						countFinished = integralTaskRecordService.countFinished(uid, id, dateType);
+				}
+				progress = progress.replace("{宸插畬鎴恾", countFinished + "").replace("{鎬讳换鍔", taskNum + "");
+				
+				if (signState == 0 && uniqueKey == UniqueKeyEnum.dailySign) {
+					progress = "鏈鍒�";
+					taskClassVO.setBtnName("绛惧埌");
+				} 
+				taskClassVO.setProgress(progress);
+			}
+			
 			data.put("count", count);
 			data.put("list", gson.toJson(list));
 			out.print(JsonUtil.loadTrueResult(data));
@@ -564,9 +646,9 @@
 		}
 
 		// 鏌ヨ鍒楄〃
-		List<IntegralDetailVO> list = integralDetailService.listDetailForClient(uid, index, date);
+		List<IntegralDetailVO> list = integralDetailService.listDetailForClient(uid, index, date, type);
 		// 缁熻鎬绘潯鏁�
-		long count = integralDetailService.countDetailForClient(uid, index, date);
+		long count = integralDetailService.countDetailForClient(uid, index, date, type);
 
 		GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
 		gsonBuilder.registerTypeAdapter(TaoLiJinDetailTypeEnum.class, new TypeAdapter<TaoLiJinDetailTypeEnum>() {

--
Gitblit v1.8.0