admin
2020-02-18 ddf5db7d31af51fcf697eac0cee7dd46ff73bcc1
fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyExtraServiceImpl.java
@@ -1,22 +1,26 @@
package com.yeshi.fanli.service.impl.money;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.yeshi.fanli.dao.mybatis.user.UserMoneyExtraMapper;
import com.yeshi.fanli.entity.bus.user.UserMoneyExtra;
import com.yeshi.fanli.service.inter.money.UserMoneyExtraService;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.service.inter.user.integral.IntegralTaskRecordService;
@Service
public class UserMoneyExtraServiceImpl implements UserMoneyExtraService {
   @Resource
   private UserMoneyExtraMapper userMoneyExtraMapper;
   @Resource
   private IntegralTaskRecordService integralTaskRecordService;
   @Override
   public UserMoneyExtra selectByPrimaryKey(Long uid) {
@@ -28,40 +32,32 @@
      userMoneyExtraMapper.updateByPrimaryKeySelective(record);   
   }
   
   @Override
   public List<UserMoneyExtra> listValid(int page, int count) {
      return userMoneyExtraMapper.listValid((page-1) * count, count);
   }
   
   @Override
   public void addTaoLiJin(Long uid, BigDecimal money, boolean canSelf) {
      if (uid == null || money == null) {
   @Transactional(rollbackFor = Exception.class)
   public void taoLiJinExchange(int page, int count) {
      List<UserMoneyExtra> listValid = userMoneyExtraMapper.listValid((page-1) * count, count);
      if (listValid == null || listValid.isEmpty())
         return;
      }
      
      UserMoneyExtra record = new UserMoneyExtra();
      record.setUid(uid);
      UserMoneyExtra existExtra = userMoneyExtraMapper.selectByPrimaryKey(record.getUid());
      if (existExtra == null) {
         record.setTlj(money);
      BigDecimal zero = new BigDecimal(0);
      for (UserMoneyExtra moneyExtra: listValid) {
         BigDecimal tlj = moneyExtra.getTlj();
         BigDecimal tljSelf = moneyExtra.getTljSelf();
         if (tlj == null || tlj.compareTo(zero) <= 0 || tljSelf == null || tljSelf.intValue() <= 0)
            continue;
         
         if (canSelf) {
            record.setTljSelf(money);
         } else {
            record.setTljSelf(new BigDecimal(0));
         }
         integralTaskRecordService.taoLiJinExchange(moneyExtra.getUid(), tljSelf.intValue(), tlj);
         
         record.setCreateTime(new Date());
         record.setUpdateTime(new Date());
         userMoneyExtraMapper.insertSelective(record);
      } else {
         BigDecimal tlj = existExtra.getTlj();
         record.setTlj(MoneyBigDecimalUtil.add(tlj, money));
         if (canSelf) {
            BigDecimal tljSelf = existExtra.getTljSelf();
            record.setTljSelf(MoneyBigDecimalUtil.add(tljSelf, money));
         }
         record.setUpdateTime(new Date());
         userMoneyExtraMapper.updateByPrimaryKeySelective(record);
         moneyExtra.setTlj(zero);
         moneyExtra.setTljSelf(zero);
         userMoneyExtraMapper.updateByPrimaryKeySelective(moneyExtra);
      }
   }
}