admin
2020-05-06 24a8d17e007545f7426c48352109aa1a9c6587ee
fanli/src/main/java/com/yeshi/fanli/service/impl/money/UserMoneyDebtServiceImpl.java
@@ -9,24 +9,30 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.yeshi.fanli.dao.mybatis.AlipayAccountValidNormalHistoryMapper;
import com.yeshi.fanli.dao.mybatis.money.UserMoneyDebtMapper;
import com.yeshi.fanli.dao.mybatis.money.UserMoneyDebtReturnHistoryMapper;
import com.yeshi.fanli.entity.bus.user.AlipayAccountValidNormalHistory;
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.money.UserMoneyDebt;
import com.yeshi.fanli.entity.money.UserMoneyDebt.UserMoneyDebtTypeEnum;
import com.yeshi.fanli.entity.money.UserMoneyDebtReturnHistory;
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.taobao.TaoBaoWeiQuanDrawBack;
import com.yeshi.fanli.exception.money.UserMoneyDebtException;
import com.yeshi.fanli.exception.money.UserMoneyDetailException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service;
import com.yeshi.fanli.service.inter.money.UserMoneyDebtService;
import com.yeshi.fanli.service.inter.msg.UserMoneyMsgNotificationService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanDrawBackService;
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.CommonOrderService;
import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.UserMoneyService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
@@ -49,6 +55,9 @@
   private HongBaoV2Service hongBaoV2Service;
   @Resource
   private HongBaoOrderService hongBaoOrderService;
   @Resource
   private UserMoneyService userMoneyService;
   @Resource
@@ -56,6 +65,12 @@
   @Resource
   private UserInfoService userInfoService;
   @Resource
   private AlipayAccountValidNormalHistoryMapper alipayAccountValidNormalHistoryMapper;
   @Resource
   private CommonOrderService commonOrderService;
   @Override
   public void addUserMoneyDebt(UserMoneyDebt debt) throws UserMoneyDebtException {
@@ -77,7 +92,7 @@
         UserMoneyDebt old = userMoneyDebtMapper.selectByUidAndTypeAndSourceId(debt.getUid(), debt.getType(),
               debt.getSourceId());
         if (old != null) {
            throw new UserMoneyDebtException(3, "对应维权已经存在");
            throw new UserMoneyDebtException(3, "对应售后已经存在");
         }
         userMoneyDebtMapper.insertSelective(debt);
      }
@@ -89,7 +104,7 @@
      return userMoneyDebtMapper.selectByTypeAndSourceId(type, sourceId);
   }
   @Transactional
   @Transactional(rollbackFor = Exception.class)
   @Override
   public void repayDebt(UserMoneyDebt debt, BigDecimal money) throws UserMoneyDebtException {
      if (debt == null || debt.getId() == null)
@@ -146,8 +161,25 @@
            }
            // 新版通知
            userMoneyMsgNotificationService.fanliOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(),Constant.SOURCE_TYPE_TAOBAO, money,
                  userInfoService.getBalance(uid));
            List<CommonOrder> orderList = commonOrderService.listBySourceTypeAndOrderId(Constant.SOURCE_TYPE_TAOBAO,
                  weiQuanDrawBack.getOrderId());
            int goodsCount = 0;
            for (CommonOrder co : orderList) {
               if (co.getState() != CommonOrder.STATE_SX)
                  goodsCount += co.getCount();
            }
            BigDecimal fanliMoney = new BigDecimal(0);
            List<HongBaoOrder> hongBaoOrderList = hongBaoOrderService
                  .listDetailByOrderIdAndSourceType(weiQuanDrawBack.getOrderId(), Constant.SOURCE_TYPE_TAOBAO);
            for (HongBaoOrder hongBaoOrder : hongBaoOrderList) {
               fanliMoney = fanliMoney.add(hongBaoOrder.getHongBaoV2().getMoney());
            }
            userMoneyMsgNotificationService.fanliOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(),
                  Constant.SOURCE_TYPE_TAOBAO, money, fanliMoney, goodsCount,
                  orderList.get(0).getThirdCreateTime());
            break;
         case HongBaoV2.TYPE_SHARE_GOODS:
@@ -158,8 +190,26 @@
                     weiQuanDrawBack, money);
               userMoneyService.subUserMoney(uid, money, userMoneyDetail);
               userMoneyMsgNotificationService.shareOrderWeiQuan(debt.getUid(), weiQuanDrawBack.getOrderId(),Constant.SOURCE_TYPE_TAOBAO,
                     money, userInfoService.getBalance(uid));
               // 新版通知
               List<CommonOrder> orderList1 = commonOrderService
                     .listBySourceTypeAndOrderId(Constant.SOURCE_TYPE_TAOBAO, weiQuanDrawBack.getOrderId());
               int goodsCount1 = 0;
               for (CommonOrder co : orderList1) {
                  if (co.getState() != CommonOrder.STATE_SX)
                     goodsCount1 += co.getCount();
               }
               BigDecimal fanliMoney1 = new BigDecimal(0);
               List<HongBaoOrder> hongBaoOrderList1 = hongBaoOrderService.listDetailByOrderIdAndSourceType(
                     weiQuanDrawBack.getOrderId(), Constant.SOURCE_TYPE_TAOBAO);
               for (HongBaoOrder hongBaoOrder : hongBaoOrderList1) {
                  fanliMoney1 = fanliMoney1.add(hongBaoOrder.getHongBaoV2().getMoney());
               }
               userMoneyMsgNotificationService.shareOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(),
                     Constant.SOURCE_TYPE_TAOBAO, money, fanliMoney1, goodsCount1,
                     orderList1.get(0).getThirdCreateTime());
            } catch (UserMoneyDetailException e) {
               throw new UserMoneyDebtException(12, "插入资金详情出错");
@@ -179,15 +229,31 @@
               throw new UserMoneyDebtException(12, "插入资金详情出错");
            }
            // 新版通知
            userMoneyMsgNotificationService.inviteOrderWeiQuan(uid, weiQuanDrawBack.getOrderId(),Constant.SOURCE_TYPE_TAOBAO, money,
                  userInfoService.getBalance(uid));
            break;
         }
      } else if (debt.getType() == UserMoneyDebtTypeEnum.extractVerify) {// 提现验证
         // 新版资金记录
         AlipayAccountValidNormalHistory aliPayAccountHistory = alipayAccountValidNormalHistoryMapper
               .selectByPrimaryKey(debt.getSourceId());
         AlipayAccountValidNormalHistory first = alipayAccountValidNormalHistoryMapper
               .selectLatestByUid(aliPayAccountHistory.getUid());
         if (aliPayAccountHistory == null)
            return;
         try {
            UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createExtractAccountValid(aliPayAccountHistory,
                  money);
            userMoneyService.subUserMoney(aliPayAccountHistory.getUid(), money, userMoneyDetail);
         } catch (UserMoneyDetailException e) {
            throw new UserMoneyDebtException(12, "插入资金详情出错");
         }
         userMoneyMsgNotificationService.alipayAccountValid(aliPayAccountHistory, "1个月",
               first.getId().longValue() != aliPayAccountHistory.getId());
      }
   }
   @Transactional
   @Transactional(rollbackFor = Exception.class)
   @Override
   public void repayDebt(Long uid) {
      // 查询是否有欠债