From 98e2112989d9a2ab734bcd429fb4945c33c64eef Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 17 十二月 2019 12:46:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div
---
fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackBalanceServiceImpl.java | 77 ++++++++++++++++++++++++--------------
1 files changed, 48 insertions(+), 29 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 227f4f7..e8cc4a8 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
@@ -2,6 +2,7 @@
import java.math.BigDecimal;
import java.util.Date;
+import java.util.List;
import javax.annotation.Resource;
@@ -14,13 +15,14 @@
import com.yeshi.fanli.exception.redpack.RedPackBalanceException;
import com.yeshi.fanli.service.inter.redpack.RedPackBalanceService;
import com.yeshi.fanli.service.inter.redpack.RedPackDetailService;
+import com.yeshi.fanli.vo.redpack.RedPackBalanceVO;
@Service
public class RedPackBalanceServiceImpl implements RedPackBalanceService {
@Resource
private RedPackBalanceMapper redPackBalanceMapper;
-
+
@Resource
private RedPackDetailService redPackDetailService;
@@ -30,40 +32,21 @@
}
@Override
- public BigDecimal getBalance(Long uid) {
+ public BigDecimal getBalance(Long uid){
if (uid == null || uid == 0)
return new BigDecimal(0);
RedPackBalance redPackBalance = redPackBalanceMapper.selectByPrimaryKey(uid);
- if (redPackBalance != null)
- return redPackBalance.getMoney();
-
+ if (redPackBalance != null && redPackBalance.getMoney() != null)
+ 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.setCreateTime(new Date());
- redPackBalance.setUpdateTime(new Date());
- redPackBalanceMapper.insertSelective(redPackBalance);
- } else {
- redPackBalanceMapper.addRedPack(uid, money);
- }
- }
-
-
+
+
@Override
@Transactional(rollbackFor = Exception.class)
public void addRedPack(Long uid, BigDecimal money, RedPackDetail detail) throws RedPackBalanceException {
- if (uid == null || uid == 0 || money == null || detail == null)
+ if (uid == null || uid == 0 || money == null || detail == null)
throw new RedPackBalanceException(1, "鍙傛暟浼犻�掍笉瀹屾暣");
// 鍔犲叆鏄庣粏
redPackDetailService.insertSelective(detail);
@@ -80,16 +63,52 @@
redPackBalanceMapper.addRedPack(uid, money);
}
}
-
-
+
@Override
@Transactional(rollbackFor = Exception.class)
public void subRedPack(Long uid, BigDecimal money, RedPackDetail detail) throws RedPackBalanceException {
- if (uid == null || uid == 0 || money == null || detail == null)
+ if (uid == null || uid == 0 || money == null || detail == null)
throw new RedPackBalanceException(1, "鍙傛暟浼犻�掍笉瀹屾暣");
// 鍔犲叆鏄庣粏
redPackDetailService.insertSelective(detail);
+
+ RedPackBalance balance = redPackBalanceMapper.selectForUpdate(uid);
+ if (balance.getMoney() == null)
+ throw new RedPackBalanceException(2, "绾㈠寘浣欓涓嶈冻");
+
+ if (balance.getMoney().compareTo(money) < 0)
+ throw new RedPackBalanceException(2, "绾㈠寘浣欓涓嶈冻");
+
// 鍑忓皯绾㈠寘
redPackBalanceMapper.subRedPack(uid, money);
}
+
+
+ @Override
+ public RedPackBalance selectForUpdate(Long uid) {
+ return redPackBalanceMapper.selectForUpdate(uid);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void resetRedPack(Long uid, RedPackDetail detail) throws RedPackBalanceException {
+ if (uid == null || uid == 0 || detail == null)
+ throw new RedPackBalanceException(1, "鍙傛暟浼犻�掍笉瀹屾暣");
+ // 鍔犲叆鏄庣粏
+ redPackDetailService.insertSelective(detail);
+ // 閲嶇疆
+ redPackBalanceMapper.resetRedPack(uid);
+ }
+
+
+ @Override
+ public List<RedPackBalanceVO> query(Integer start, Integer count, String key, Integer state,Integer order){
+ return redPackBalanceMapper.query(start, count, key, state,order);
+ }
+
+ @Override
+ public long count(String key, Integer state){
+ return redPackBalanceMapper.count(key, state);
+ }
+
}
--
Gitblit v1.8.0