From df300df7832cc3d24f1b09297998e8bee8cfd126 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期二, 20 八月 2019 18:06:43 +0800
Subject: [PATCH] 签到弹框bug

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java |  207 +++++++++++++++++++++++++++++++--------------------
 1 files changed, 125 insertions(+), 82 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java
index 46b9769..5db76ad 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java
@@ -1824,16 +1824,38 @@
 					jumpBtn.put("params", jumpLink);
 					jumpBtn.put("jumpDetail", jumpDetailV2Service.getByTypeCache("orderList"));
 				}
-			} else if (UserSystemCoupon.STATE_IN_USE == state) {
+			} else if (UserSystemCoupon.STATE_IN_USE == state && give) {
+				userCouponVO.setCouponEffect("璧犻�佷腑");
+				String tips = null;
 				if (CouponTypeEnum.freeCouponGive == type) {
 					userCouponVO.setState(UserSystemCoupon.STATE_GIVE_IN);
+					tips = configService.get("give_free_coupon_tips");
 				}
 				
-				if (give && CouponTypeEnum.rebatePercentCoupon == type) {
+				if (CouponTypeEnum.rebatePercentCoupon == type) {
 					userCouponVO.setState(UserSystemCoupon.STATE_GIVE_IN);
+					tips = configService.get("give_free_coupon_tips");
 				}
+				
+				if (!StringUtil.isNullOrEmpty(tips)) {
+					UserSystemCouponGiveRecord record = userSystemCouponGiveRecordService.getRecordByUidAndCouponId(uid, userCouponVO.getId());
+					if (record != null) {
+						TokenRecord tokenRecord = tokenRecordService.getNearByTypeAndIdentify(CouponTypeEnum.freeCoupon.name(), record.getId().toString());
+						if (tokenRecord != null && !StringUtil.isNullOrEmpty(tokenRecord.getToken())) {
+							String projectChineseName = Constant.systemCommonConfig.getProjectChineseName();
+							while(tips.contains("{APP鍚嶇О}")) {
+								tips = tips.replace("{APP鍚嶇О}", projectChineseName);
+							}
+							tips = tips.replace("{鍙d护}", tokenRecord.getToken()).replace("{涓嬭浇閾炬帴}", configService.get("app_down_link"));
+						}
+					}
+				} else {
+					tips = "";
+				}
+				userCouponVO.setGiveTips(tips);
+				
 			} else if (UserSystemCoupon.STATE_END_USE == state) {
-				if (CouponTypeEnum.freeCouponGive == type) {
+				if (give && CouponTypeEnum.freeCouponGive == type) {
 					userCouponVO.setState(UserSystemCoupon.STATE_GIVE_END);
 				}
 				
@@ -1873,109 +1895,130 @@
 		if (type != CouponTypeEnum.freeCouponGive && type != CouponTypeEnum.rebatePercentCoupon )
 			throw new UserSystemCouponException(1, "璇ュ埜涓嶆敮鎸佽禒閫�");
 		
+		String tips = null;
 		TokenTypeEnum tokenTypeEnum = null;
 		if (type == CouponTypeEnum.freeCouponGive) {
 			tokenTypeEnum = TokenTypeEnum.freeCoupon;
+			tips = configService.get("give_free_coupon_tips");
 		} else if (type == CouponTypeEnum.rebatePercentCoupon){
 			tokenTypeEnum = TokenTypeEnum.rebatePercentCoupon;
+			tips = configService.get("give_rebate_percent_coupon_tips");
 		} else {
 			throw new UserSystemCouponException(1, "璇ュ埜涓嶆敮鎸佽禒閫�");
 		}
 		
-		String token = null;
-		Date nowDate = new Date();
-		TokenRecord record = tokenRecordService.getNearByTypeAndIdentify(tokenTypeEnum.name(), id+"");
-		if (record != null && record.getEndTime().getTime() > nowDate.getTime()) {
-			token = record.getToken();
-		} else {
-			for (int i = 0; i < 5; i++) {
-				try {
-					// TODO 鍙d护鐢熸垚瑙勫垯寰呭畾
-					long num = 10000 + (long) (Math.random() * 10000);
-					token = UserUtil.getInviteCode(num);
-					
-					String endDay = DateUtil.plusDay(Constant.TOKEN_DAYS - 1,nowDate);
-					SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-					Date endTime = format.parse(endDay);
-					
-					TokenRecord tokenRecord = new TokenRecord();
-					tokenRecord.setUid(uid);
-					tokenRecord.setIdentify(id+"");
-					tokenRecord.setType(tokenTypeEnum);
-					tokenRecord.setStartTime(nowDate);
-					tokenRecord.setEndTime(endTime);
-					tokenRecord.setToken(token);
-					tokenRecord.setState(0);
-					tokenRecordService.insertSelective(tokenRecord);
-				} catch (Exception e) {
-					LogHelper.errorDetailInfo(e);
-					token = null;
+		if (StringUtil.isNullOrEmpty(tips))
+			throw new UserSystemCouponException(1, "tips鏁版嵁缂哄け");
+		
+		
+		// 鏄惁鏈�杩戠敓鎴愬彛浠ゆ湁鏁�
+		UserSystemCouponGiveRecord record = userSystemCouponGiveRecordService.getRecordByUidAndCouponId(uid, id);
+		if (record != null) {
+			TokenRecord tokenRecord = tokenRecordService.getNearByTypeAndIdentify(tokenTypeEnum.name(), id+"");
+			if (tokenRecord != null && !StringUtil.isNullOrEmpty(tokenRecord.getToken())) {
+				String projectChineseName = Constant.systemCommonConfig.getProjectChineseName();
+				while(tips.contains("{APP鍚嶇О}")) {
+					tips = tips.replace("{APP鍚嶇О}", projectChineseName);
 				}
-				
-				if(!StringUtil.isNullOrEmpty(token)) {
-					break;
-				}
-			}
-			
-			if(StringUtil.isNullOrEmpty(token))
-				throw new UserSystemCouponException(1, "鍙d护鐢熸垚澶辫触");
-			
-			// 鎻掑叆璧犻�佽褰�
-			try {
-				String endDay = DateUtil.plusDay(Constant.GIVE_DAYS - 1, new Date());
-				SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-				Date endTime = format.parse(endDay);
-				
-				UserSystemCouponGiveRecord giveRecord = new UserSystemCouponGiveRecord();
-				giveRecord.setCouponId(id);
-				giveRecord.setGiveUid(uid);
-				giveRecord.setGiveTime(nowDate);
-				giveRecord.setEndTime(endTime);
-				userSystemCouponGiveRecordService.insertSelective(giveRecord);
-			} catch (Exception e) {
-				LogHelper.errorDetailInfo(e);
-				throw new UserSystemCouponException(1, "璧犻�佽褰曞垱寤哄け璐�");
+				tips = tips.replace("{鍙d护}", tokenRecord.getToken()).replace("{涓嬭浇閾炬帴}", configService.get("app_down_link"));
+				return tips;
 			}
 		}
 		
+		
+		Long giveRecordId = null;
+		Date nowDate = new Date();
+		
+		// 鎻掑叆璧犻�佽褰�
+		try {
+			UserSystemCouponGiveRecord giveRecord = new UserSystemCouponGiveRecord();
+			giveRecord.setCouponId(id);
+			giveRecord.setGiveUid(uid);
+			giveRecord.setGiveTime(nowDate);
+			giveRecord.setEndTime(DateUtil.plusDayDate(Constant.GIVE_DAYS, nowDate));
+			userSystemCouponGiveRecordService.insertSelective(giveRecord);
+			giveRecordId = giveRecord.getId();
+		} catch (Exception e) {
+			LogHelper.errorDetailInfo(e);
+			throw new UserSystemCouponException(1, "璧犻�佽褰曞垱寤哄け璐�");
+		}
+		
+		String token = null;
+		for (int i = 0; i < 5; i++) {
+			try {
+				// TODO 鍙d护鐢熸垚瑙勫垯寰呭畾
+				long num = 10000 + (long) (Math.random() * 10000);
+				token = UserUtil.getInviteCode(num);
+				
+				TokenRecord tokenRecord = new TokenRecord();
+				tokenRecord.setUid(uid);
+				tokenRecord.setIdentify(giveRecordId+"");
+				tokenRecord.setType(tokenTypeEnum);
+				tokenRecord.setStartTime(nowDate);
+				tokenRecord.setEndTime(DateUtil.plusDayDate(Constant.TOKEN_DAYS, nowDate));
+				tokenRecord.setToken(token);
+				tokenRecord.setState(0);
+				tokenRecordService.insertSelective(tokenRecord);
+			} catch (Exception e) {
+				LogHelper.errorDetailInfo(e);
+				token = null;
+			}
+			
+			if(!StringUtil.isNullOrEmpty(token)) {
+				break;
+			}
+		}
+			
 		if(StringUtil.isNullOrEmpty(token))
 			throw new UserSystemCouponException(1, "鍙d护鐢熸垚澶辫触");
-
+			
 		userSystemCoupon.setState(UserSystemCoupon.STATE_IN_USE);
 		userSystemCoupon.setGive(true);
+		userSystemCoupon.setUpdateTime(nowDate);
 		userSystemCouponMapper.updateByPrimaryKeySelective(userSystemCoupon);
 		
-		String tips = "閫佺粰浣犱竴寮犺繑鍒╁鍔卞埜蹇幓棰嗗彇鍚э紝澶嶅埗鏈潯娑堟伅[&%s&]锛屾墦寮�[杩斿埄鍒竇App棰嗗彇锛屼娇鐢ㄥ悗鍙杩斿埄鍔犲�嶃�俓r\n" 
-				+"----------------------------\r\n" 
-				+ "涓嬭浇[杩斿埄鍒竇App閾炬帴:%s\r\n"
-				+ "PS锛氬彛浠ゅ皢浼�24灏忔椂鍐呭け鏁堬紝璇峰強鏃堕鍙栥��";
-		
-		tips = String.format(tips, token, configService.get("app_down_link"));
-		
+		// 鎻掑叆浣跨敤鍒歌褰�
+		UserSystemCouponRecord couponRecord = new UserSystemCouponRecord();
+		couponRecord.setState(UserSystemCouponRecord.STATE_GIVE_ON);
+		couponRecord.setUserSystemCoupon(userSystemCoupon);
+		couponRecord.setCouponType(type.name());
+		couponRecord.setCreateTime(nowDate);
+		couponRecord.setUpdateTime(nowDate);
+		userSystemCouponRecordService.insertSelective(couponRecord);
+				
+		String projectChineseName = Constant.systemCommonConfig.getProjectChineseName();
+		while(tips.contains("{APP鍚嶇О}")) {
+			tips = tips.replace("{APP鍚嶇О}", projectChineseName);
+		}
+		tips = tips.replace("{鍙d护}", token).replace("{涓嬭浇閾炬帴}", configService.get("app_down_link"));
 		return tips;
 	}
 
 	
 	@Override
-	public void updateGiveRecord(Long uid, Long id, String couponType) {
-		Date date = new Date();
-		// 鏇存柊鍒哥姸鎬侊細宸蹭娇鐢�
-		UserSystemCoupon userCoupon = new UserSystemCoupon();
-		userCoupon.setId(id);
-		userCoupon.setState(UserSystemCoupon.STATE_END_USE);
-		userCoupon.setUseTime(date);
-		userCoupon.setUpdateTime(date);
-		userSystemCouponMapper.updateByPrimaryKeySelective(userCoupon);
+	public void sendBackGive(Long id) {
+		UserSystemCoupon userSystemCoupon = userSystemCouponMapper.selectByPrimaryKey(id);
+		if (userSystemCoupon == null)
+			return;
+		
+		Integer state = userSystemCoupon.getState();
+		if (state != UserSystemCoupon.STATE_IN_USE) 
+			return;
+		
+		Date now = new Date();
+		Date endTime = userSystemCoupon.getEndTime();
+		if (endTime != null && endTime.getTime() < now.getTime()) {
+			
+			// TODO 杩囨湡
+			return;
+		}
+			
+		userSystemCoupon.setGive(false);
+		userSystemCoupon.setUseTime(null);
+		userSystemCoupon.setState(UserSystemCoupon.STATE_CAN_USE);
+		userSystemCoupon.setUpdateTime(new Date());
+		userSystemCouponMapper.updateByPrimaryKey(userSystemCoupon);
 
-		// 鎻掑叆浣跨敤鍒歌褰�
-		UserSystemCouponRecord couponRecord = new UserSystemCouponRecord();
-		couponRecord.setState(UserSystemCouponRecord.STATE_SUCCESS);
-		couponRecord.setUserSystemCoupon(userCoupon);
-		couponRecord.setCouponType(couponType);
-		couponRecord.setCreateTime(date);
-		couponRecord.setUpdateTime(date);
-		userSystemCouponRecordService.insertSelective(couponRecord);
+		// TODO 娑堟伅
 	}
-	
-	
 }

--
Gitblit v1.8.0