admin
2020-04-10 d960fdbfe07a65cb80ccb764bfb15ce78ebfd84a
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java
@@ -37,7 +37,6 @@
import com.yeshi.fanli.entity.order.HongBaoOrder;
import com.yeshi.fanli.entity.order.HongBaoV2SettleTemp;
import com.yeshi.fanli.entity.order.InviteOrderSubsidy;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import com.yeshi.fanli.exception.money.InviteOrderSubsidyDebtException;
import com.yeshi.fanli.exception.money.OrderMoneySettleException;
@@ -62,7 +61,6 @@
import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
import com.yeshi.fanli.util.rocketmq.MQTopicName;
import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil;
@Service
public class OrderMoneySettleServiceImpl implements OrderMoneySettleService {
@@ -114,6 +112,15 @@
   @Resource
   private HongBaoV2SettleTempService hongBaoV2SettleTempService;
   // 下级被封禁,红包失效
   private void invalidHongBaoForbidden(Long id) {
      HongBaoV2 updateHongBaoV2 = new HongBaoV2(id);
      updateHongBaoV2.setState(HongBaoV2.STATE_SHIXIAO);
      updateHongBaoV2.setBeizhu("封禁失效");
      updateHongBaoV2.setUpdateTime(new Date());
      hongBaoV2Mapper.updateByPrimaryKeySelective(updateHongBaoV2);
   }
   @Transactional(rollbackFor = Exception.class)
   @Override
   public void inviteSettleTB(Long uid) throws OrderMoneySettleException {
@@ -145,6 +152,7 @@
                  // 上级用户不是正常用户,订单均不能到账
                  UserInfo userInfo = userInfoMapper.selectAvailableByPrimaryKey(co.getUserInfo().getId());
                  if (userInfo == null || userInfo.getState() != UserInfo.STATE_NORMAL) {
                     invalidHongBaoForbidden(item.getId());
                     hongBaoList.remove(i);
                     i--;
                  }
@@ -210,6 +218,7 @@
                  // 上级用户不是正常用户,订单均不能到账
                  UserInfo userInfo = userInfoMapper.selectAvailableByPrimaryKey(co.getUserInfo().getId());
                  if (userInfo == null || userInfo.getState() != UserInfo.STATE_NORMAL) {
                     invalidHongBaoForbidden(item.getId());
                     hongBaoList.remove(i);
                     i--;
                  }
@@ -269,6 +278,7 @@
                  // 上级用户不是正常用户,订单均不能到账
                  UserInfo userInfo = userInfoMapper.selectAvailableByPrimaryKey(co.getUserInfo().getId());
                  if (userInfo == null || userInfo.getState() != UserInfo.STATE_NORMAL) {
                     invalidHongBaoForbidden(item.getId());
                     hongBaoList.remove(i);
                     i--;
                  }
@@ -324,6 +334,7 @@
      Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiActual, mqMsg);
      String taskKey = getTaskKey(uid);
      msg.setKey(taskKey);
      // 添加事务消息
      try {
         orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
@@ -479,7 +490,7 @@
                  Long uid = its.next();
                  if (userSubMoneyMap.get(uid) != null) {
                     // 减去维权资金
                     userMoney.put(uid, userMoney.get(uid).subtract(userSubMoneyMap.get(uid)));
                     userMoney.put(uid, userMoney.get(uid).subtract(userSubMoneyMap.get(uid)));
                  }
               }
            }
@@ -532,8 +543,9 @@
         UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
         // 新版通知
         userMoneyMsgNotificationService.fanliOrderReceived(uid, orderId, sourceType, userGoodsCount.get(uid), money,
               user.getMyHongBao());
               user.getMyHongBao(), orderList.get(0).getThirdCreateTime());
      }
      // 通知免单到账
      try {
@@ -830,7 +842,8 @@
         // 新版通知
         userMoneyMsgNotificationService.shareOrderReceived(uid, Constant.SOURCE_TYPE_TAOBAO, shareOrders.size(),
               shareGoodsCount, sharemoney, userInfoMapper.selectAvailableByPrimaryKey(uid).getMyHongBao());
               shareGoodsCount, sharemoney, userInfoMapper.selectAvailableByPrimaryKey(uid).getMyHongBao(), null,
               null);
         for (String orderId : drawBackOrders)
            taoBaoWeiQuanDrawBackService.doWeiQuanShare(orderId);
@@ -928,8 +941,8 @@
         // 新版通知
         userMoneyMsgNotificationService.shareOrderReceived(uid, Constant.SOURCE_TYPE_TAOBAO, shareOrders.size(),
               shareGoodsCount, sharemoney, userInfoMapper.selectAvailableByPrimaryKey(uid).getMyHongBao());
               shareGoodsCount, sharemoney, userInfoMapper.selectAvailableByPrimaryKey(uid).getMyHongBao(), null,
               null);
      }
      hongBaoV2SettleTempService.addTemp(recieveHongBaoIds, key);
@@ -1052,4 +1065,5 @@
      }
      return debtMoney;
   }
}