yujian
2020-05-09 7e7db2fa55a9a3af46d4fd8ede0dee147f101d64
fanli/src/main/java/com/yeshi/fanli/service/impl/money/tb/TaoBaoWeiQuanDrawBackServiceImpl.java
@@ -22,29 +22,23 @@
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanDrawBackMapper;
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.money.InviteOrderSubsidyDebt;
import com.yeshi.fanli.entity.money.UserMoneyDebt;
import com.yeshi.fanli.entity.money.UserMoneyDebt.UserMoneyDebtTypeEnum;
import com.yeshi.fanli.entity.money.UserMoneyDetail;
import com.yeshi.fanli.entity.order.CommonOrder;
import com.yeshi.fanli.entity.order.HongBaoOrder;
import com.yeshi.fanli.entity.order.InviteOrderSubsidy;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanDrawBack;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import com.yeshi.fanli.exception.money.InviteOrderSubsidyDebtException;
import com.yeshi.fanli.exception.money.UserMoneyDebtException;
import com.yeshi.fanli.exception.money.UserMoneyDetailException;
import com.yeshi.fanli.exception.order.TaoBaoWeiQuanException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.money.InviteOrderSubsidyDebtService;
import com.yeshi.fanli.service.inter.money.OrderTeamRewardDebtService;
import com.yeshi.fanli.service.inter.money.UserMoneyDebtService;
import com.yeshi.fanli.service.inter.money.UserMoneyDetailService;
import com.yeshi.fanli.service.inter.money.UserMoneyService;
import com.yeshi.fanli.service.inter.money.msg.UserMoneyMsgNotificationService;
import com.yeshi.fanli.service.inter.money.tb.TaoBaoWeiQuanDrawBackService;
import com.yeshi.fanli.service.inter.order.InviteOrderSubsidyService;
import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
@@ -85,14 +79,6 @@
   @Resource
   private UserMoneyService userMoneyService;
   @Resource
   private InviteOrderSubsidyService inviteOrderSubsidyService;
   @Resource
   private InviteOrderSubsidyDebtService inviteOrderSubsidyDebtService;
   @Resource
   private OrderTeamRewardDebtService orderTeamRewardDebtService;
   @Resource
   private UserMoneyDetailService userMoneyDetailService;
@@ -278,8 +264,24 @@
            userMoneyService.subUserMoney(uid, drawBackMoney, userMoneyDetail);
            // 新版通知
            List<CommonOrder> orderList = commonOrderMapper.listBySourceTypeAndOrderNo(Constant.SOURCE_TYPE_TAOBAO,
                  orderId);
            int goodsCount = 0;
            for (CommonOrder co : orderList) {
               if (co.getState() != CommonOrder.STATE_SX)
                  goodsCount += co.getCount();
            }
            BigDecimal fanliMoney = new BigDecimal(0);
            List<HongBaoOrder> hongBaoOrderList = hongBaoOrderMapper.listDetailByOrderIdAndSourceType(orderId,
                  Constant.SOURCE_TYPE_TAOBAO);
            for (HongBaoOrder hb : hongBaoOrderList) {
               fanliMoney = fanliMoney.add(hb.getHongBaoV2().getMoney());
            }
            userMoneyMsgNotificationService.fanliOrderWeiQuan(uid, orderId, Constant.SOURCE_TYPE_TAOBAO,
                  drawBackMoney, userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
                  drawBackMoney, fanliMoney, goodsCount, orderList.get(0).getThirdCreateTime());
         } else {// 记录资金记录,但是不显示给用户
            UserMoneyDetail userMoneyDetail = null;
@@ -473,9 +475,25 @@
            }
         }
         userMoneyService.subUserMoney(uid, drawBackMoney, userMoneyDetail);
         userMoneyMsgNotificationService.shareOrderWeiQuan(uid, orderId, Constant.SOURCE_TYPE_TAOBAO, drawBackMoney,
               userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
         // 新版通知
         List<CommonOrder> orderList = commonOrderMapper.listBySourceTypeAndOrderNo(Constant.SOURCE_TYPE_TAOBAO,
               orderId);
         int goodsCount = 0;
         for (CommonOrder co : orderList) {
            if (co.getState() != CommonOrder.STATE_SX)
               goodsCount += co.getCount();
         }
         BigDecimal fanliMoney = new BigDecimal(0);
         List<HongBaoOrder> hongBaoOrderList = hongBaoOrderMapper.listDetailByOrderIdAndSourceType(orderId,
               Constant.SOURCE_TYPE_TAOBAO);
         for (HongBaoOrder hb : hongBaoOrderList) {
            fanliMoney = fanliMoney.add(hb.getHongBaoV2().getMoney());
         }
         userMoneyMsgNotificationService.shareOrderWeiQuan(uid, orderId, Constant.SOURCE_TYPE_TAOBAO, drawBackMoney,
               fanliMoney, goodsCount, orderList.get(0).getThirdCreateTime());
      }
   }
@@ -529,11 +547,6 @@
               weiQuanDrawBack.setOrderItemId(weiQuanOrder.getOrderItemId());
               weiQuanDrawBack.setUser(child.getUserInfo());
               taoBaoWeiQuanDrawBackMapper.insertSelective(weiQuanDrawBack);// 加入返还记录
               // 加入邀请补贴返还记录
               doInviteOrderSubsidy(orderId, Constant.SOURCE_TYPE_TAOBAO, uid, settleMent, wqMoney,
                     weiQuanOrder.getOrderItemId());
               // 如果资金大于0才扣除
               if (drawBackMoney != null && drawBackMoney.compareTo(new BigDecimal(0)) > 0) {
@@ -565,45 +578,10 @@
                  userMoneyService.subUserMoney(uid, drawBackMoney, userMoneyDetail);
                  // 新版通知
                  userMoneyMsgNotificationService.inviteOrderWeiQuan(uid, orderId, Constant.SOURCE_TYPE_TAOBAO,
                        drawBackMoney, userInfoMapper.selectAvailableByPrimaryKey(uid).getMyHongBao());
               }
            }
      }
   }
   /**
    * 邀请订单补贴维权处理
    *
    * @param orderId
    * @param sourceType
    */
   private void doInviteOrderSubsidy(String orderId, int sourceType, Long uid, BigDecimal settleMent,
         BigDecimal weiQuanMoney, String tradeId) throws TaoBaoWeiQuanException {
      InviteOrderSubsidy subSidy = inviteOrderSubsidyService.getByOrderNoAndType(uid, orderId, sourceType);
      if (subSidy != null)// 添加借贷关系
      {
         BigDecimal drawBackMoney = computeDrawBackMoney(settleMent, weiQuanMoney, subSidy.getOriginalMoney());
         if (drawBackMoney.compareTo(new BigDecimal(0)) <= 0)
            return;
         InviteOrderSubsidyDebt debt = new InviteOrderSubsidyDebt();
         debt.setBeiZhu("订单售后:" + orderId + "-" + sourceType);
         debt.setOriginMoney(drawBackMoney);
         debt.setUid(uid);
         debt.setCreateTime(new Date());
         debt.setSourceId(subSidy.getId());
         debt.setTradeId(tradeId);
         try {
            inviteOrderSubsidyDebtService.addDebt(debt);
         } catch (InviteOrderSubsidyDebtException e) {
            throw new TaoBaoWeiQuanException(101, "邀请订单补贴异常");
         }
         //TODO 删除团队奖励维权处理
      }
   }
   @Override
   public TaoBaoWeiQuanDrawBack selectByOrderItemId(String orderItemId) {