admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/service/impl/money/TeamEincomeRecordServiceImpl.java
@@ -1,100 +1,100 @@
package com.yeshi.fanli.service.impl.money;
import java.math.BigDecimal;
import java.util.ArrayList;
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.money.TeamEincomeRecordMapper;
import com.yeshi.fanli.entity.money.TeamEincomeRecord;
import com.yeshi.fanli.exception.ParamsException;
import com.yeshi.fanli.exception.money.TeamEincomeRecordException;
import com.yeshi.fanli.service.inter.money.TeamEincomeRecordService;
@Service
public class TeamEincomeRecordServiceImpl implements TeamEincomeRecordService {
   @Resource
   private TeamEincomeRecordMapper teamEincomeRecordMapper;
   @Override
   public void addTeamEincomeRecord(TeamEincomeRecord record) throws TeamEincomeRecordException, ParamsException {
      if (record.getUid() == null || record.getMoney() == null || record.getType() == null
            || record.getPreRecieveTime() == null)
         throw new ParamsException(1, "参数不完整");
      TeamEincomeRecord oldRecord = teamEincomeRecordMapper.selectByUidAndPreRecieveTimeAndTypeAndSourceType(record.getUid(),
            record.getPreRecieveTime(), record.getType(),record.getSourceType());
      if (oldRecord != null)
         throw new TeamEincomeRecordException(1, "已存在");
      if (record.getCreateTime() == null)
         record.setCreateTime(new Date());
      teamEincomeRecordMapper.insertSelective(record);
   }
   @Override
   public List<TeamEincomeRecord> listCanRecieveRecord(Date preRecieveTime, Long uid, List<Integer> typeList) {
      return teamEincomeRecordMapper.listByUidAndPreRecieveTimeAndState(uid, preRecieveTime, typeList,
            TeamEincomeRecord.STATE_NOT_RECIEVE);
   }
   @Override
   public TeamEincomeRecord selectByPrimaryKeyForUpdate(Long id) {
      return teamEincomeRecordMapper.selectByPrimaryKeyForUpdate(id);
   }
   @Transactional
   @Override
   public void setRecieved(Long id) {
      TeamEincomeRecord record = teamEincomeRecordMapper.selectByPrimaryKeyForUpdate(id);
      if (record != null) {
         TeamEincomeRecord update = new TeamEincomeRecord();
         update.setId(id);
         update.setRecieveTime(new Date());
         update.setState(TeamEincomeRecord.STATE_RECIEVED);
         update.setUpdateTime(new Date());
         teamEincomeRecordMapper.updateByPrimaryKeySelective(update);
      }
   }
   @Override
   public BigDecimal getEstimateDividents(Date preGetTime, Long uid) {
      List<Integer> typeList = new ArrayList<Integer>();
      List<TeamEincomeRecord> list = listCanRecieveRecord(preGetTime, uid, typeList);
      BigDecimal money = new BigDecimal(0);
      if (list != null)
         for (TeamEincomeRecord record : list) {
            money = money.add(record.getMoney());
         }
      return money;
   }
   @Override
   public List<Long> listCanRecieveUid(Date preRecieveTime, List<Integer> typeList, int page, int pageSize) {
      return teamEincomeRecordMapper.listCanRecieveUid(preRecieveTime, typeList, (page - 1) * pageSize, pageSize);
   }
   @Override
   public long countCanRecieveUid(Date preRecieveTime, List<Integer> typeList) {
      return teamEincomeRecordMapper.countCanRecieveUid(preRecieveTime, typeList);
   }
   @Override
   public BigDecimal sumRecieveByType(Long uid, int type) {
      BigDecimal money = teamEincomeRecordMapper.sumRecieveByType(uid, type);
      if (money == null) {
         money = new BigDecimal(0);
      }
      return money;
   }
}
package com.yeshi.fanli.service.impl.money;
import java.math.BigDecimal;
import java.util.ArrayList;
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.money.TeamEincomeRecordMapper;
import com.yeshi.fanli.entity.money.TeamEincomeRecord;
import com.yeshi.fanli.exception.ParamsException;
import com.yeshi.fanli.exception.money.TeamEincomeRecordException;
import com.yeshi.fanli.service.inter.money.TeamEincomeRecordService;
@Service
public class TeamEincomeRecordServiceImpl implements TeamEincomeRecordService {
   @Resource
   private TeamEincomeRecordMapper teamEincomeRecordMapper;
   @Override
   public void addTeamEincomeRecord(TeamEincomeRecord record) throws TeamEincomeRecordException, ParamsException {
      if (record.getUid() == null || record.getMoney() == null || record.getType() == null
            || record.getPreRecieveTime() == null)
         throw new ParamsException(1, "参数不完整");
      TeamEincomeRecord oldRecord = teamEincomeRecordMapper.selectByUidAndPreRecieveTimeAndTypeAndSourceType(record.getUid(),
            record.getPreRecieveTime(), record.getType(),record.getSourceType());
      if (oldRecord != null)
         throw new TeamEincomeRecordException(1, "已存在");
      if (record.getCreateTime() == null)
         record.setCreateTime(new Date());
      teamEincomeRecordMapper.insertSelective(record);
   }
   @Override
   public List<TeamEincomeRecord> listCanRecieveRecord(Date preRecieveTime, Long uid, List<Integer> typeList) {
      return teamEincomeRecordMapper.listByUidAndPreRecieveTimeAndState(uid, preRecieveTime, typeList,
            TeamEincomeRecord.STATE_NOT_RECIEVE);
   }
   @Override
   public TeamEincomeRecord selectByPrimaryKeyForUpdate(Long id) {
      return teamEincomeRecordMapper.selectByPrimaryKeyForUpdate(id);
   }
   @Transactional
   @Override
   public void setRecieved(Long id) {
      TeamEincomeRecord record = teamEincomeRecordMapper.selectByPrimaryKeyForUpdate(id);
      if (record != null) {
         TeamEincomeRecord update = new TeamEincomeRecord();
         update.setId(id);
         update.setRecieveTime(new Date());
         update.setState(TeamEincomeRecord.STATE_RECIEVED);
         update.setUpdateTime(new Date());
         teamEincomeRecordMapper.updateByPrimaryKeySelective(update);
      }
   }
   @Override
   public BigDecimal getEstimateDividents(Date preGetTime, Long uid) {
      List<Integer> typeList = new ArrayList<Integer>();
      List<TeamEincomeRecord> list = listCanRecieveRecord(preGetTime, uid, typeList);
      BigDecimal money = new BigDecimal(0);
      if (list != null)
         for (TeamEincomeRecord record : list) {
            money = money.add(record.getMoney());
         }
      return money;
   }
   @Override
   public List<Long> listCanRecieveUid(Date preRecieveTime, List<Integer> typeList, int page, int pageSize) {
      return teamEincomeRecordMapper.listCanRecieveUid(preRecieveTime, typeList, (page - 1) * pageSize, pageSize);
   }
   @Override
   public long countCanRecieveUid(Date preRecieveTime, List<Integer> typeList) {
      return teamEincomeRecordMapper.countCanRecieveUid(preRecieveTime, typeList);
   }
   @Override
   public BigDecimal sumRecieveByType(Long uid, int type) {
      BigDecimal money = teamEincomeRecordMapper.sumRecieveByType(uid, type);
      if (money == null) {
         money = new BigDecimal(0);
      }
      return money;
   }
}