From b44f60ae27bbe0b7aec29414c629747b7755e964 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期三, 09 十月 2019 09:52: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/service/impl/user/integral/IntegralExchangeServiceImpl.java |  181 +++++++++++++++++++++++----------------------
 1 files changed, 93 insertions(+), 88 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/integral/IntegralExchangeServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/integral/IntegralExchangeServiceImpl.java
index 1444958..863ed09 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/integral/IntegralExchangeServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/integral/IntegralExchangeServiceImpl.java
@@ -46,81 +46,83 @@
 
 	@Resource(name = "taskExecutor")
 	private TaskExecutor executor;
-	
+
 	@Resource
 	private IntegralExchangeMapper integralExchangeMapper;
-	
+
 	@Resource
 	private ConfigService configService;
-	
+
 	@Resource
 	private UserInfoExtraService userInfoExtraService;
-	
+
 	@Resource
 	private UserSystemCouponService userSystemCouponService;
-	
+
 	@Resource
 	private UserTaoLiJinOriginService userTaoLiJinOriginService;
-	
+
 	@Resource
 	private HongBaoV2Service hongBaoV2Service;
-	
+
 	@Resource
 	private UserMoneyDetailService userMoneyDetailService;
-	
+
 	@Resource
 	private UserInfoService userInfoService;
-	
+
 	@Resource
 	private CodePublishRecordService codePublishRecordService;
-	
+
 	@Resource
 	private IntegralExchangeRecordService integralExchangeRecordService;
-	
+
 	@Resource
 	private UserOtherMsgNotificationService userOtherMsgNotificationService;
-	
+
 	@Resource
 	private MsgInviteDetailService msgInviteDetailService;
-	
+
 	@Resource
 	private IntegralDetailService integralDetailService;
-	
 
 	@Override
-	public List<IntegralExchange> listValidCache(long start, int count){
+	public IntegralExchange selectByPrimaryKey(Long id) {
+		return integralExchangeMapper.selectByPrimaryKey(id);
+	}
+
+	@Override
+	public List<IntegralExchange> listValidCache(long start, int count) {
 		return integralExchangeMapper.listValid(start, count);
 	}
-	
+
 	@Override
-	public Long countValid(){
+	public Long countValid() {
 		return integralExchangeMapper.countValid();
 	}
-	
-	
+
 	@Override
-	public ExchangeTipVO verifyExchange(Long uid, Long id) throws IntegralExchangeException{
-		if (uid == null || uid <= 0) 
+	public ExchangeTipVO verifyExchange(Long uid, Long id) throws IntegralExchangeException {
+		if (uid == null || uid <= 0)
 			throw new IntegralExchangeException(1, "鐢ㄦ埛鏈櫥褰�");
-		
-		if (id == null || id <= 0) 
+
+		if (id == null || id <= 0)
 			throw new IntegralExchangeException(1, "鍏戞崲id涓嶆纭�");
-		
+
 		UserInfoExtraVO extraVO = userInfoExtraService.getInfoExtraVOByUid(uid);
 		if (extraVO == null)
 			throw new IntegralExchangeException(1, "鐢ㄦ埛鐩稿叧淇℃伅涓嶅瓨鍦�");
-		
+
 		IntegralExchange exchange = integralExchangeMapper.selectByPrimaryKey(id);
 		if (exchange == null)
 			throw new IntegralExchangeException(1, "鍏戞崲鏂瑰紡涓嶅瓨鍦�");
-		
+
 		Integer state = exchange.getState();
 		if (state == null || state != 1)
 			throw new IntegralExchangeException(1, "鍏戞崲娲诲姩鏈紑鍚�");
-		
-		
+
 		Integer goldCoin = exchange.getGoldCoin();
-		
+
 		ExchangeTipVO exchangeTip = new ExchangeTipVO();
 		exchangeTip.setId(id);
 		ExchangeTypeEnum type = exchange.getType();
@@ -128,7 +130,7 @@
 			exchangeTip.setType(type.name());
 			return exchangeTip;
 		}
-		
+
 		long exchangeCount = 0;
 		if (ExchangeTypeEnum.freeCouponBuy == type) {
 			exchangeCount = integralExchangeRecordService.countRecordByUid(id, uid, null);
@@ -136,7 +138,7 @@
 				throw new IntegralExchangeException(1, "鑷喘鍏嶅崟鍒革紝浠呰兘鍏戞崲涓�娆�");
 			}
 		}
-		
+
 		Integer upperLimit = exchange.getUpperLimit();
 		if (upperLimit != null) { // 鏄惁鏈夐檺鍒舵瘡鏃ユ鏁�
 			Integer today = 1;
@@ -145,7 +147,7 @@
 				throw new IntegralExchangeException(1, "浠婃棩鍏戞崲宸茶揪涓婇檺");
 			}
 		}
-		
+
 		Integer goldCoinHas = extraVO.getGoldCoin();
 		if (goldCoin.intValue() > goldCoinHas.intValue()) {
 			exchangeTip.setType("notEnough");
@@ -153,7 +155,7 @@
 			exchangeTip.setGoldCoin((goldCoin.intValue() - goldCoinHas.intValue()) + "閲戝竵");
 			return exchangeTip;
 		}
-		
+
 		if (ExchangeTypeEnum.freeCouponBuy == type) {
 			exchangeTip.setTip("鑷喘鍏嶅崟鍒镐粎鑳借嚜宸变娇鐢紝涓旀瘡涓敤鎴稩D鍙兘鍏戞崲涓�娆°�俓r\n娉�:鍏戞崲鎴愬姛鍚庤鍒扳�滄垜鐨�-绂忓埄涓績鈥濅腑鏌ョ湅");
 		} else if (ExchangeTypeEnum.freeCouponGive == type) {
@@ -161,25 +163,25 @@
 		} else if (ExchangeTypeEnum.rebatePercentCoupon == type) {
 			exchangeTip.setTip("杩斿埄濂栧姳鍒稿厬鎹㈡鏁颁笉闄愶紝璧犻�佹鏁颁笉闄愶紝鍙楄禒浜鸿嫢鏃犫�滈個璇蜂汉鈥濇垚鍔熼鍙栧悗灏嗘垚涓轰綘鐨勪竴绾ч槦鍛樸�俓r\n娉�:鍏戞崲鎴愬姛鍚庤鍒扳�滄垜鐨�-绂忓埄涓績鈥濅腑鏌ョ湅");
 		} else if (ExchangeTypeEnum.inviteCodePublish == type) {
-			if(codePublishRecordService.countValidRecord(uid) > 0)
+			if (codePublishRecordService.countValidRecord(uid) > 0)
 				throw new IntegralExchangeException(1, "涓夊ぉ涔嬪唴涓嶅彲閲嶅鍏戞崲");
 			exchangeTip.setInviteCode(extraVO.getInviteCode());
 			exchangeTip.setTip("鍏戞崲鎴愬姛鍚庯紝灏嗗彂甯冧簬鈥滄縺娲婚個璇风爜鍏戞崲鍔熻兘涓�濓紝闇�婵�娲婚個璇风殑鐢ㄦ埛鍙敤閲戝竵鍏戞崲锛屾湰娆″睍绀烘湁鏁堟湡涓�3澶┿��");
 		} else if (ExchangeTypeEnum.taoLiJin == type) {
 			exchangeTip.setName(exchange.getAmount().setScale(0) + "鍏冩帹骞跨孩鍖�");
 			exchangeTip.setTip("娉�:鍏戞崲鎴愬姛鍚庤鍒扳�滄垜鐨�-鎺ㄥ箍绾㈠寘鈥濅腑鏌ョ湅");
-		} else if (ExchangeTypeEnum.cash == type) {	
+		} else if (ExchangeTypeEnum.cash == type) {
 			exchangeTip.setName(exchange.getAmount().setScale(0) + "鍏冪幇閲戠孩鍖�");
 			exchangeTip.setTip("娉細鍏戞崲鎴愬姛鍚庤鍒扳�滄垜鐨�-璐︽埛浣欓鈥濅腑鏌ョ湅");
 		} else {
 			throw new IntegralExchangeException(1, "鍏戞崲鏂瑰紡涓嶅瓨鍦�");
 		}
-		
+
 		exchangeTip.setGoldCoin(goldCoin + "閲戝竵");
 		exchangeTip.setType(type.name());
 		return exchangeTip;
 	}
-	
+
 	@Override
 	public IntegralExchange exchange(Long uid, Long id) throws IntegralExchangeException {
 		if (uid == null || uid <= 0)
@@ -199,7 +201,7 @@
 		Integer state = exchange.getState();
 		if (state == null || state != 1)
 			throw new IntegralExchangeException(1, "鍏戞崲娲诲姩鏈紑鍚�");
-		
+
 		long exchangeCount = 0;
 		ExchangeTypeEnum type = exchange.getType();
 		if (ExchangeTypeEnum.freeCouponBuy == type) {
@@ -208,55 +210,59 @@
 				throw new IntegralExchangeException(1, "鑷喘鍏嶅崟鍒革紝浠呰兘鍏戞崲涓�娆�");
 			}
 		}
-		
+
 		Integer upperLimit = exchange.getUpperLimit();
-		if (upperLimit != null) {  // 鏄惁鏈夐檺鍒舵瘡鏃ユ鏁�
+		if (upperLimit != null) { // 鏄惁鏈夐檺鍒舵瘡鏃ユ鏁�
 			Integer today = 1;
 			exchangeCount = integralExchangeRecordService.countRecordByUid(id, uid, today);
 			if (exchangeCount >= upperLimit) {
 				throw new IntegralExchangeException(1, "鍏戞崲宸茶揪涓婇檺");
 			}
 		}
-		
+
 		Integer goldCoin = exchange.getGoldCoin();
 		Integer goldCoinHas = extraVO.getGoldCoin();
 		if (goldCoin.intValue() > goldCoinHas.intValue()) {
 			throw new IntegralExchangeException(1, "褰撳墠璐︽埛涓彲鐢ㄩ噾甯佷笉瓒筹紝鏃犳硶鍏戞崲璇ュ鍝侊紒");
 		}
-		
+
 		String thing = "";
 		String thingNum = "";
 		int couponNews = 0;
 		boolean once = false; // 鍏戞崲涓�娆℃槸鍚︽秷澶�
 		try {
 			if (ExchangeTypeEnum.freeCouponBuy == type) {
-				List<UserSystemCoupon> listCoupon = userSystemCouponService.getFreeCouponByType(uid, CouponTypeEnum.freeCouponBuy.name());
+				List<UserSystemCoupon> listCoupon = userSystemCouponService.getFreeCouponByType(uid,
+						CouponTypeEnum.freeCouponBuy.name());
 				if (listCoupon != null && listCoupon.size() > 0)
 					throw new IntegralExchangeException(1, "鑷喘鍏嶅崟鍒革紝浠呰兘鍏戞崲涓�娆�");
-				
+
 				thing = "鑷喘鍏嶅崟鍒�";
 				thingNum = "1寮�";
-				userSystemCouponService.exchangeCoupon(uid, CouponTypeEnum.freeCouponBuy.name(), UserSystemCoupon.SOURCE_EXCHANGE, null);
-				once = true; 
+				userSystemCouponService.exchangeCoupon(uid, CouponTypeEnum.freeCouponBuy.name(),
+						UserSystemCoupon.SOURCE_EXCHANGE, null);
+				once = true;
 				couponNews = 1;
 			} else if (ExchangeTypeEnum.freeCouponGive == type) {
 				thing = "璧犻�佸厤鍗曞埜";
 				thingNum = "1寮�";
-				userSystemCouponService.exchangeCoupon(uid, CouponTypeEnum.freeCouponGive.name(), UserSystemCoupon.SOURCE_EXCHANGE, null);
+				userSystemCouponService.exchangeCoupon(uid, CouponTypeEnum.freeCouponGive.name(),
+						UserSystemCoupon.SOURCE_EXCHANGE, null);
 				couponNews = 1;
 			} else if (ExchangeTypeEnum.rebatePercentCoupon == type) {
 				thing = "杩斿埄濂栧姳鍒�";
 				thingNum = "1寮�";
 				String percent = configService.get("exchange_rebate_percent");
-				userSystemCouponService.exchangeCoupon(uid, CouponTypeEnum.rebatePercentCoupon.name(), UserSystemCoupon.SOURCE_EXCHANGE, new BigDecimal(percent));
+				userSystemCouponService.exchangeCoupon(uid, CouponTypeEnum.rebatePercentCoupon.name(),
+						UserSystemCoupon.SOURCE_EXCHANGE, new BigDecimal(percent));
 				couponNews = 1;
 			} else if (ExchangeTypeEnum.inviteCodePublish == type) {
 				thing = "閭�璇风爜鍙戝竷鍗�";
 				thingNum = "3澶�";
-				if(codePublishRecordService.countValidRecord(uid) > 0)
+				if (codePublishRecordService.countValidRecord(uid) > 0)
 					throw new IntegralExchangeException(1, "涓夊ぉ涔嬪唴涓嶅彲閲嶅鍏戞崲");
 				codePublishRecordService.publishInviteCode(uid);
-				
+
 				exchange.setNeedJump(true);
 				exchange.setBtnName("鍘绘煡鐪�");
 			} else if (ExchangeTypeEnum.taoLiJin == type) {
@@ -267,7 +273,7 @@
 				thing = "鐜伴噾绾㈠寘";
 				BigDecimal money = exchange.getAmount();
 				thingNum = money + "鍏�";
-				
+
 				// 1銆佹彃鍏ョ孩鍖呮暟鎹�
 				HongBaoV2 hongBaoV2 = new HongBaoV2();
 				hongBaoV2.setMoney(money);
@@ -288,30 +294,31 @@
 			} else {
 				throw new IntegralExchangeException(1, "鍏戞崲鏂瑰紡涓嶅瓨鍦�");
 			}
-			
-			exchangeCount ++;
+
+			exchangeCount++;
 			String progress = exchange.getProgress();
 			if (!StringUtil.isNullOrEmpty(progress))
-				progress = progress.replace("{宸插厬鎹",exchangeCount + "").replace("{涓婇檺鏁皚", exchange.getUpperLimit() + "");
+				progress = progress.replace("{宸插厬鎹", exchangeCount + "").replace("{涓婇檺鏁皚",
+						exchange.getUpperLimit() + "");
 			exchange.setProgress(progress);
-			
+
 			// 鍓╀綑閲戝竵
 			int surplus = goldCoinHas.intValue() - goldCoin.intValue();
 			exchange.setUserGoldCoin(surplus + "鏋�");
-			
+
 			// 鏇存柊閲戝竵 + 绂忓埄涓績娑堟伅鏁�
-			if (extraVO.getCouponNews() != null && extraVO.getCouponNews() > 0) 
+			if (extraVO.getCouponNews() != null && extraVO.getCouponNews() > 0)
 				couponNews = couponNews + extraVO.getCouponNews();
-			
+
 			UserInfoExtraVO extraUpdate = new UserInfoExtraVO();
 			extraUpdate.setId(extraVO.getId());
 			extraUpdate.setGoldCoin(surplus);
 			extraUpdate.setCouponNews(couponNews);
 			userInfoExtraService.saveUserInfoExtra(extraUpdate);
-			
+
 			// 娣诲姞鍏戞崲璁板綍
 			integralExchangeRecordService.addExchangeRecord(id, uid);
-			
+
 			// 鍔犲叆鏄庣粏
 			IntegralDetail detail = new IntegralDetail();
 			detail.setUid(uid);
@@ -319,8 +326,8 @@
 			detail.setMoney(-goldCoin);
 			detail.setCreateTime(new Date());
 			integralDetailService.insertSelective(detail);
-			
-			// 娑堟伅 
+
+			// 娑堟伅
 			final String things = thing;
 			executor.execute(new Runnable() {
 				@Override
@@ -333,10 +340,10 @@
 					userOtherMsgNotificationService.exchangeMsg(uid, "", msgOther);
 				}
 			});
-			
+
 			if (once) // 鍏戞崲涔嬪悗娑堝け
 				exchange = null;
-			
+
 			return exchange;
 		} catch (IntegralExchangeException e) {
 			throw new IntegralExchangeException(1, e.getMsg());
@@ -345,10 +352,9 @@
 			throw new IntegralExchangeException(1, "鍏戞崲寮傚父");
 		}
 	}
-	
-	
+
 	@Override
-	public ExchangeTipVO verifyInviteCode(Long uid, Long id) throws IntegralExchangeException{
+	public ExchangeTipVO verifyInviteCode(Long uid, Long id) throws IntegralExchangeException {
 		if (uid == null || uid <= 0)
 			throw new IntegralExchangeException(1, "鐢ㄦ埛鏈櫥褰�");
 
@@ -359,9 +365,9 @@
 		if (extraVO == null)
 			throw new IntegralExchangeException(1, "鐢ㄦ埛鐩稿叧淇℃伅涓嶅瓨鍦�");
 
-		if (!StringUtil.isNullOrEmpty(extraVO.getInviteCode())) 
+		if (!StringUtil.isNullOrEmpty(extraVO.getInviteCode()))
 			throw new IntegralExchangeException(1, "閭�璇风爜宸叉縺娲伙紝鏃犻渶鍏戞崲");
-		
+
 		CodePublishRecord record = codePublishRecordService.selectByPrimaryKey(id);
 		if (record == null)
 			throw new IntegralExchangeException(1, "鍏戞崲璁板綍涓嶅瓨鍦�");
@@ -379,15 +385,14 @@
 			exchangeTip.setTip("褰撳墠璐︽埛涓彲鐢ㄩ噾甯佷笉瓒筹紝鏃犳硶鍏戞崲璇ュ鍝侊紒");
 			exchangeTip.setGoldCoin((goldCoin.intValue() - goldCoinHas.intValue()) + "閲戝竵");
 			return exchangeTip;
-		} 
-		
+		}
+
 		exchangeTip.setTip("娉細鍏戞崲鎴愬姛鍚庤鍒扳�滄秷鎭�-绯荤粺娑堟伅鈥濇煡鐪�");
 		exchangeTip.setGoldCoin(goldCoin + "閲戝竵");
 		exchangeTip.setType(ExchangeTypeEnum.inviteCodeActivate.name());
 		return exchangeTip;
 	}
-	
-	
+
 	@Override
 	public String exchangeInviteCode(Long uid, Long id) throws IntegralExchangeException {
 		if (uid == null || uid <= 0)
@@ -400,9 +405,9 @@
 		if (extraVO == null)
 			throw new IntegralExchangeException(1, "鐢ㄦ埛鐩稿叧淇℃伅涓嶅瓨鍦�");
 
-		if (!StringUtil.isNullOrEmpty(extraVO.getInviteCode())) 
+		if (!StringUtil.isNullOrEmpty(extraVO.getInviteCode()))
 			throw new IntegralExchangeException(1, "閭�璇风爜宸叉縺娲伙紝鏃犻渶鍏戞崲");
-		
+
 		CodePublishRecord record = codePublishRecordService.selectByPrimaryKey(id);
 		if (record == null)
 			throw new IntegralExchangeException(1, "鍏戞崲璁板綍涓嶅瓨鍦�");
@@ -415,24 +420,23 @@
 		Integer goldCoinHas = extraVO.getGoldCoin();
 		if (goldCoin.intValue() > goldCoinHas.intValue())
 			throw new IntegralExchangeException(1, "褰撳墠璐︽埛涓彲鐢ㄩ噾甯佷笉瓒筹紝鏃犳硶鍏戞崲璇ュ鍝侊紒");
-		 
-		
+
 		try {
 			UserInfoExtraVO inviteExtra = userInfoExtraService.getInfoExtraVOByUid(record.getUid());
 			if (inviteExtra == null || StringUtil.isNullOrEmpty(inviteExtra.getInviteCode()))
 				throw new IntegralExchangeException(1, "鍏戞崲澶辫触锛岃鐢ㄦ埛閭�璇风爜涓嶅瓨鍦�");
-			
+
 			String inviteCode = inviteExtra.getInviteCode();
-			
+
 			// 鍓╀綑閲戝竵
 			int surplus = goldCoinHas.intValue() - goldCoin.intValue();
-			
+
 			// 鏇存柊閲戝竵
 			UserInfoExtraVO extraUpdate = new UserInfoExtraVO();
 			extraUpdate.setId(extraVO.getId());
 			extraUpdate.setGoldCoin(surplus);
 			userInfoExtraService.saveUserInfoExtra(extraUpdate);
-			
+
 			// 鍔犲叆鏄庣粏
 			IntegralDetail detail = new IntegralDetail();
 			detail.setUid(uid);
@@ -440,34 +444,35 @@
 			detail.setMoney(-goldCoin);
 			detail.setCreateTime(new Date());
 			integralDetailService.insertSelective(detail);
-						
+
 			// 娣诲姞鍏戞崲璁板綍
 			integralExchangeRecordService.addExchangeRecord(exchange.getId(), uid);
-			
-			// 娑堟伅 
+
+			// 娑堟伅
 			executor.execute(new Runnable() {
 				@Override
 				public void run() {
 					UserInfo userInfo = userInfoService.selectByPKey(record.getUid());
 					if (userInfo == null)
 						return;
-					
+
 					String beizu = "閭�璇蜂汉锛�" + userInfo.getNickName() + "锛岄個璇风爜锛�" + inviteCode;
-					
+
 					MsgOtherExchangeContentDTO msgOther = new MsgOtherExchangeContentDTO();
 					msgOther.setState("閲戝竵鍏戞崲鎴愬姛");
 					msgOther.setExpend(goldCoin + "閲戝竵");
 					msgOther.setTotalGold(surplus + "閲戝竵");
 					msgOther.setThing("閭�璇风爜婵�娲诲崱");
-					
+
 					userOtherMsgNotificationService.exchangeMsg(uid, beizu, msgOther);
 				}
 			});
-			
+
 			return inviteCode;
 		} catch (Exception e) {
 			LogHelper.errorDetailInfo(e);
 			throw new IntegralExchangeException(1, "鍏戞崲澶辫触");
 		}
 	}
+
 }

--
Gitblit v1.8.0