admin
2020-05-06 24a8d17e007545f7426c48352109aa1a9c6587ee
fanli/src/main/java/com/yeshi/fanli/service/manger/money/TeamEincomeManager.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.service.manger.money;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -13,10 +14,12 @@
import com.yeshi.fanli.entity.money.UserMoneyDetail;
import com.yeshi.fanli.exception.ParamsException;
import com.yeshi.fanli.exception.money.TeamEincomeRecordException;
import com.yeshi.fanli.exception.money.UserMoneyDetailException;
import com.yeshi.fanli.service.inter.money.TeamEincomeRecordService;
import com.yeshi.fanli.service.inter.money.UserMoneyService;
import com.yeshi.fanli.service.inter.money.msg.UserMoneyMsgNotificationService;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
import com.yeshi.fanli.util.factory.money.TeamEincomeRecordFactory;
/**
@@ -90,7 +93,8 @@
   }
   /**
    * 到账到用户余额
    * @throws UserMoneyDetailException
    * 团队收益 到账到用户余额
    * @Title: addTOUserAccount
    * @Description: 
    * @param day
@@ -99,9 +103,14 @@
    * @throws
    */
   @Transactional(rollbackFor = Exception.class)
   public void addTOUserAccount(Date preSendTime, Long uid) {
   public void addTeamIncomeTOUserAccount(Date preSendTime, Long uid) throws UserMoneyDetailException {
      List<Integer> typeList = new ArrayList<>();
      typeList.add(TeamEincomeRecord.TYPE_TEAM_SUBSIDY);
      typeList.add(TeamEincomeRecord.TYPE_TEAM_REWARD);
      Date now = new Date();
      List<TeamEincomeRecord> list = teamEincomeRecordService.listCanRecieveRecord(preSendTime, uid);
      List<TeamEincomeRecord> list = teamEincomeRecordService.listCanRecieveRecord(preSendTime, uid, typeList);
      BigDecimal money = new BigDecimal(0);
      for (TeamEincomeRecord record : list) {
         record = teamEincomeRecordService.selectByPrimaryKeyForUpdate(record.getId());
@@ -109,12 +118,33 @@
         teamEincomeRecordService.setRecieved(record.getId());
      }
      // TODO 到账
      UserMoneyDetail detail = null;
      UserMoneyDetail detail = UserMoneyDetailFactory.createTeamReward(uid, money, preSendTime);
      userMoneyService.addUserMoney(uid, money, detail);
      // 发送消息
      BigDecimal balance = userMoneyService.getBalance(uid);
      userMoneyMsgNotificationService.teamReceive(uid, money, balance, now);
   }
   @Transactional(rollbackFor = Exception.class)
   public void addTeamDividentsTOUserAccount(Date preSendTime, Long uid) throws UserMoneyDetailException {
      List<Integer> typeList = new ArrayList<>();
      typeList.add(TeamEincomeRecord.TYPE_TEAM_DIVIDENTS);
      Date now = new Date();
      List<TeamEincomeRecord> list = teamEincomeRecordService.listCanRecieveRecord(preSendTime, uid, typeList);
      BigDecimal money = new BigDecimal(0);
      for (TeamEincomeRecord record : list) {
         record = teamEincomeRecordService.selectByPrimaryKeyForUpdate(record.getId());
         money = money.add(record.getMoney());
         teamEincomeRecordService.setRecieved(record.getId());
      }
      UserMoneyDetail detail = UserMoneyDetailFactory.createTeamDividents(uid, money, preSendTime);
      userMoneyService.addUserMoney(uid, money, detail);
      // 发送消息
      BigDecimal balance = userMoneyService.getBalance(uid);
      userMoneyMsgNotificationService.teamDividend(uid, money, balance, now);
   }
}