admin
2020-05-20 98b1a0affd69bbe63223c21fdd2c404e8bedfccb
fanli/src/main/java/com/yeshi/fanli/service/impl/order/HongBaoOrderServiceImpl.java
@@ -1,5 +1,7 @@
package com.yeshi.fanli.service.impl.order;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
@@ -7,9 +9,10 @@
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dao.mybatis.order.HongBaoOrderMapper;
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.order.HongBaoOrder;
import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.vo.order.HongBaoCountVO;
@Service
public class HongBaoOrderServiceImpl implements HongBaoOrderService {
@@ -59,8 +62,8 @@
   }
   @Override
   public long countByOrderNoAndHongBaoType(String orderNo, int type) {
      return hongBaoOrderMapper.countByOrderNoAndHongBaoType(orderNo, type, Constant.SOURCE_TYPE_TAOBAO);
   public long countByOrderNoAndHongBaoType(String orderNo, int hongBaotype, int sourceType) {
      return hongBaoOrderMapper.countByOrderNoAndHongBaoType(orderNo, hongBaotype, sourceType);
   }
   @Override
@@ -68,4 +71,80 @@
      return hongBaoOrderMapper.selectByCommonOrderId(commonOrderId);
   }
   @Override
   public HongBaoOrder selectDetailByHongBaoId(Long hongBaoId) {
      return hongBaoOrderMapper.selectByHongBaoId(hongBaoId);
   }
   @Override
   public List<HongBaoOrder> listByOrderIdAndSourceType(String orderId, int sourceType) {
      return hongBaoOrderMapper.listByOrderIdAndSourceType(orderId, sourceType);
   }
   @Override
   public List<HongBaoOrder> listDetailByOrderIdAndSourceType(String orderId, int sourceType) {
      return hongBaoOrderMapper.listDetailByOrderIdAndSourceType(orderId, sourceType);
   }
   @Override
   public List<HongBaoOrder> listDetailByOrderIdAndSourceTypeAndUid(String orderId, int sourceType, Long uid) {
      return hongBaoOrderMapper.listDetailByOrderIdAndSourceTypeAndUid(orderId, sourceType,uid);
   }
   @Override
   public HongBaoCountVO getHongBaoCountVO(List<HongBaoOrder> list) {
      HongBaoCountVO countVO =  new HongBaoCountVO();
      if (list == null || list.size() == 0) {
         countVO.setTotalMoney(new BigDecimal(0));
         countVO.setValidMoney(new BigDecimal(0));
         countVO.setCurrentState(HongBaoV2.STATE_SHIXIAO);
      } else {
         int type = 0;
         int invalid = 0;
         int arrivalAccount = 0;
         BigDecimal totalMoney = new BigDecimal(0);
         BigDecimal validMoney = new BigDecimal(0);
         Date accountTime =  null;
         for (HongBaoOrder hongBaoOrder: list) {
            HongBaoV2 hongBao = hongBaoOrder.getHongBaoV2();
            totalMoney = totalMoney.add(hongBao.getMoney());
            Integer state = hongBao.getState();
            if (state != HongBaoV2.STATE_SHIXIAO) {
               validMoney = validMoney.add(hongBao.getMoney());
            }
            if (state == HongBaoV2.STATE_SHIXIAO) {
               invalid ++;
            } else if (state == HongBaoV2.STATE_YILINGQU) {
               arrivalAccount ++;
            }
            // 到账时间
            Date getTime = hongBao.getGetTime();
            if (getTime != null && (accountTime == null || accountTime.getTime() < getTime.getTime())) {
               accountTime = getTime;
            }
            if (type == 0) {
               type = hongBao.getType();
            }
         }
         countVO.setTotalMoney(totalMoney);
         countVO.setValidMoney(validMoney);
         countVO.setCurrentState(HongBaoV2.STATE_SHIXIAO);
         if (invalid == list.size()) {
            countVO.setCurrentState(HongBaoV2.STATE_SHIXIAO);
         } else if (arrivalAccount > 0) {
            countVO.setCurrentState(HongBaoV2.STATE_YILINGQU);
         } else {
            countVO.setCurrentState(HongBaoV2.STATE_BUKELINGQU);
         }
      }
      return countVO;
   }
}