From 24a8d17e007545f7426c48352109aa1a9c6587ee Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 06 五月 2020 12:02:09 +0800 Subject: [PATCH] IOS上线隐藏我的界面的banner与超级会员升级信息 --- fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackBalanceServiceImpl.java | 79 +++++++++++++++++++++++++++------------ 1 files changed, 54 insertions(+), 25 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 5e87890..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,22 +32,25 @@ } @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; + @Transactional(rollbackFor = Exception.class) + public void addRedPack(Long uid, BigDecimal money, RedPackDetail detail) throws RedPackBalanceException { + if (uid == null || uid == 0 || money == null || detail == null) + throw new RedPackBalanceException(1, "鍙傛暟浼犻�掍笉瀹屾暣"); + // 鍔犲叆鏄庣粏 + redPackDetailService.insertSelective(detail); + // 娣诲姞绾㈠寘 RedPackBalance redPackBalance = redPackBalanceMapper.selectForUpdate(uid); if (redPackBalance == null) { redPackBalance = new RedPackBalance(); @@ -58,28 +63,52 @@ 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) - throw new RedPackBalanceException(1, "鍙傛暟浼犻�掍笉瀹屾暣"); - // 鍔犲叆鏄庣粏 - redPackDetailService.insertSelective(detail); - // 鍑忓皯绾㈠寘 - 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