From 6c930b8374bf5b991bc423f02ed22420e78b85ff Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 12 十一月 2019 09:51:24 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackBalanceServiceImpl.java |   40 ++++++++++++++++++++--------------------
 1 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackBalanceServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackBalanceServiceImpl.java
index 7da0ce9..04176c2 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackBalanceServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackBalanceServiceImpl.java
@@ -29,34 +29,29 @@
 		return redPackBalanceMapper.selectByPrimaryKey(uid);
 	}
 
+	private void verify(RedPackBalance redPackBalance) throws RedPackBalanceException{
+		if (redPackBalance == null)
+			return;
+		
+		if (redPackBalance.getState() != null && redPackBalance.getState() == RedPackBalance.STATE_LOCKED) 
+			throw new RedPackBalanceException(1, "绾㈠寘宸插皝绂侊紝鎰熻阿浣跨敤");
+	}
+	
 	@Override
-	public BigDecimal getBalance(Long uid) {
+	public BigDecimal getBalance(Long uid) throws RedPackBalanceException{
 		if (uid == null || uid == 0)
 			return new BigDecimal(0);
 		
 		RedPackBalance redPackBalance = redPackBalanceMapper.selectByPrimaryKey(uid);
-		if (redPackBalance != null)
-			return redPackBalance.getMoney();
+		if (redPackBalance != null) {
+			// 楠岃瘉
+			verify(redPackBalance);
+			
+			return redPackBalance.getMoney();
+		}
 		return new BigDecimal(0);
 	}
 
-	@Override
-	public void addRedPack(Long uid, BigDecimal money) {
-		if (uid == null || uid == 0 || money == null)
-			return;
-		RedPackBalance redPackBalance = redPackBalanceMapper.selectForUpdate(uid);
-		if (redPackBalance == null) {
-			redPackBalance = new RedPackBalance();
-			redPackBalance.setId(uid);
-			redPackBalance.setMoney(money);
-			redPackBalance.setState(RedPackBalance.STATE_INIT);
-			redPackBalance.setCreateTime(new Date());
-			redPackBalance.setUpdateTime(new Date());
-			redPackBalanceMapper.insertSelective(redPackBalance);
-		} else {
-			redPackBalanceMapper.addRedPack(uid, money);
-		}
-	}
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
@@ -76,6 +71,8 @@
 			redPackBalance.setUpdateTime(new Date());
 			redPackBalanceMapper.insertSelective(redPackBalance);
 		} else {
+			// 楠岃瘉
+			verify(redPackBalance);
 			redPackBalanceMapper.addRedPack(uid, money);
 		}
 	}
@@ -95,6 +92,9 @@
 		if (balance.getMoney().compareTo(money) < 0)
 			throw new RedPackBalanceException(2, "绾㈠寘浣欓涓嶈冻");
 
+		// 楠岃瘉
+		verify(balance);
+					
 		// 鍑忓皯绾㈠寘
 		redPackBalanceMapper.subRedPack(uid, money);
 	}

--
Gitblit v1.8.0