yujian
2020-05-09 7e7db2fa55a9a3af46d4fd8ede0dee147f101d64
fanli/src/main/java/com/yeshi/fanli/service/impl/order/dividents/TeamDividentsSourceOrderUserMapServiceImpl.java
@@ -1,89 +1,165 @@
package com.yeshi.fanli.service.impl.order.dividents;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.yeshi.fanli.dao.mybatis.order.dividents.TeamDividentsSourceOrderUserMapMapper;
import com.yeshi.fanli.entity.order.dividents.TeamDividentsSourceOrderUserMap;
import com.yeshi.fanli.exception.ParamsException;
import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderUserMapService;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
@Service
public class TeamDividentsSourceOrderUserMapServiceImpl implements TeamDividentsSourceOrderUserMapService {
   @Resource
   private TeamDividentsSourceOrderUserMapMapper teamDividentsSourceOrderUserMapMapper;
   @Override
   public TeamDividentsSourceOrderUserMap selectByPrimaryKeyForUpdate(Long id) {
      // TODO Auto-generated method stub
      return null;
      return teamDividentsSourceOrderUserMapMapper.selectByPrimaryKeyForUpdate(id);
   }
   @Transactional
   @Override
   public void send(Long id) {
      // TODO Auto-generated method stub
      TeamDividentsSourceOrderUserMap map = teamDividentsSourceOrderUserMapMapper.selectByPrimaryKeyForUpdate(id);
      if (map == null)
         return;
      if (map.getState() == TeamDividentsSourceOrderUserMap.STATE_JS) {
         TeamDividentsSourceOrderUserMap update = new TeamDividentsSourceOrderUserMap();
         update.setId(id);
         update.setState(TeamDividentsSourceOrderUserMap.STATE_YILINGQU);
         update.setSendTime(new Date());
         update.setUpdateTime(new Date());
         teamDividentsSourceOrderUserMapMapper.updateByPrimaryKeySelective(update);
      }
   }
   @Override
   public void addDividentsSourceOrderUserMap(TeamDividentsSourceOrderUserMap map) throws ParamsException {
      // TODO Auto-generated method stub
      if (map == null || map.getMoney() == null || map.getRate() == null || map.getSourceOrder() == null
            || map.getSourceUid() == null || map.getTargetUid() == null || map.getType() == null) {
         throw new ParamsException(1, "参数不完整");
      }
      List<Integer> typeList = new ArrayList<Integer>();
      typeList.add(map.getType());
      long count = teamDividentsSourceOrderUserMapMapper.count(map.getSourceOrder().getId(), null, map.getTargetUid(),
            null, null, typeList);
      if (count > 0)
         return;
      if (map.getCreateTime() == null)
         map.setCreateTime(new Date());
      teamDividentsSourceOrderUserMapMapper.insertSelective(map);
   }
   @Override
   public List<TeamDividentsSourceOrderUserMap> listCanSend(Long sourceUid, Date maxPreSendTime, int page,
         int pageSize) {
      // TODO Auto-generated method stub
      return null;
      List<Integer> stateList = new ArrayList<Integer>();
      stateList.add(TeamDividentsSourceOrderUserMap.STATE_JS);
      return teamDividentsSourceOrderUserMapMapper.list(null, sourceUid, null, maxPreSendTime, stateList, null,
            (page - 1) * pageSize, pageSize);
   }
   @Override
   public long countCanSend(Long sourceUid, Date maxPreSendTime) {
      // TODO Auto-generated method stub
      return 0;
      List<Integer> stateList = new ArrayList<Integer>();
      stateList.add(TeamDividentsSourceOrderUserMap.STATE_JS);
      return teamDividentsSourceOrderUserMapMapper.count(null, sourceUid, null, maxPreSendTime, stateList, null);
   }
   @Override
   public long countBySourceOrderId(Long sourceOrderId) {
      // TODO Auto-generated method stub
      return 0;
      return teamDividentsSourceOrderUserMapMapper.count(sourceOrderId, null, null, null, null, null);
   }
   @Override
   public List<TeamDividentsSourceOrderUserMap> listBySourceOrderId(Long sourceOrderId) {
      // TODO Auto-generated method stub
      return null;
      return teamDividentsSourceOrderUserMapMapper.list(sourceOrderId, null, null, null, null, null, 0, 10000);
   }
   @Override
   public List<Long> listCanSendSourceUidByPreSendTime(Date preSendTime, int page, int count) {
      // TODO Auto-generated method stub
      return null;
      return teamDividentsSourceOrderUserMapMapper.listCanSendSourceUidByPreSendTime(preSendTime, (page - 1) * count,
            count);
   }
   @Override
   public Long countCanSendSourceUidByPreSendTime(Date preSendTime) {
      // TODO Auto-generated method stub
      return null;
      return teamDividentsSourceOrderUserMapMapper.countCanSendSourceUidByPreSendTime(preSendTime);
   }
   @Transactional
   @Override
   public void invalidBySourceOrderId(Long sourceOrderId) {
      // TODO Auto-generated method stub
      List<TeamDividentsSourceOrderUserMap> mapList = listBySourceOrderId(sourceOrderId);
      if (mapList != null)
         for (TeamDividentsSourceOrderUserMap map : mapList) {
            if (map.getState() == TeamDividentsSourceOrderUserMap.STATE_FK
                  || map.getState() == TeamDividentsSourceOrderUserMap.STATE_JS) {
               TeamDividentsSourceOrderUserMap update = new TeamDividentsSourceOrderUserMap();
               update.setId(map.getId());
               update.setUpdateTime(new Date());
               update.setState(TeamDividentsSourceOrderUserMap.STATE_SX);
               teamDividentsSourceOrderUserMapMapper.updateByPrimaryKeySelective(update);
            }
         }
   }
   @Override
   public void invalidOrderBySourceUid(Long sourceUid, String beiZhu) {
      List<Integer> stateList = new ArrayList<>();
      stateList.add(TeamDividentsSourceOrderUserMap.STATE_FK);
      stateList.add(TeamDividentsSourceOrderUserMap.STATE_JS);
      teamDividentsSourceOrderUserMapMapper.invalidOrderBySourceUid(sourceUid, beiZhu, stateList);
   }
   @Transactional
   @Override
   public void orderSettle(Long sourceOrderId, Date preSendTime, BigDecimal income) {
      // TODO Auto-generated method stub
      List<TeamDividentsSourceOrderUserMap> mapList = listBySourceOrderId(sourceOrderId);
      if (mapList != null)
         for (TeamDividentsSourceOrderUserMap map : mapList) {
            if (map.getState() == TeamDividentsSourceOrderUserMap.STATE_FK) {
               TeamDividentsSourceOrderUserMap update = new TeamDividentsSourceOrderUserMap();
               update.setId(map.getId());
               update.setMoney(MoneyBigDecimalUtil.div(income.multiply(map.getRate()), new BigDecimal(100), 3));
               update.setUpdateTime(new Date());
               update.setState(TeamDividentsSourceOrderUserMap.STATE_JS);
               update.setPreSendTime(preSendTime);
               teamDividentsSourceOrderUserMapMapper.updateByPrimaryKeySelective(update);
            }
         }
   }
   @Transactional
   @Override
   public void updateMoney(Long sourceOrderId, BigDecimal income) {
      // TODO Auto-generated method stub
      List<TeamDividentsSourceOrderUserMap> mapList = listBySourceOrderId(sourceOrderId);
      if (mapList != null)
         for (TeamDividentsSourceOrderUserMap map : mapList) {
            if (map.getState() == TeamDividentsSourceOrderUserMap.STATE_FK) {
               TeamDividentsSourceOrderUserMap update = new TeamDividentsSourceOrderUserMap();
               update.setId(map.getId());
               update.setMoney(MoneyBigDecimalUtil.div(income.multiply(map.getRate()), new BigDecimal(100), 3));
               update.setUpdateTime(new Date());
               teamDividentsSourceOrderUserMapMapper.updateByPrimaryKeySelective(update);
            }
         }
   }
}