yujian
2019-07-31 f4548a3ee46afe45da4ee2a42dc169c575deee9f
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -54,7 +54,6 @@
import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanDrawBackService;
import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.service.inter.user.UserMoneyService;
import com.yeshi.fanli.service.inter.user.UserNotificationService;
import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
import com.yeshi.fanli.util.CMQManager;
import com.yeshi.fanli.util.Constant;
@@ -72,9 +71,6 @@
   @Resource
   private UserInfoMapper userInfoMapper;
   @Resource
   private UserNotificationService userNotificationService;
   @Resource
   private TaoBaoUnionConfigService taoBaoUnionConfigService;
@@ -143,18 +139,19 @@
            } else if (!StringUtil.isNullOrEmpty(list.get(0).getRelationId())) {
               shareOrderMap.put(orderId, list);
            } else {
               // 通过红包查询
               CommonOrder commonOrder = commonOrderService
                     .selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO, list.get(0).getTradeId());
               PidUser pidUser = null;// pidUserMapper.selectByPid(pid);
               if (pidUser != null && pidUser.getType() == PidUser.TYPE_SHARE_GOODS) {// 商品分享订单
                  // List<PidOrder> pidOrderList = new ArrayList<>();
                  // for (TaoBaoOrder order : list) {
                  // pidOrderList.add(TaoBaoOrderUtil.convertToPidOrder(order));
                  // }
                  // sharePidOrderMap.put(orderId, pidOrderList);
                  shareOrderMap.put(orderId, list);
               } else {// 普通返利订单
                  fanliOrderMap.put(orderId, list);
               if (commonOrder != null) {
                  HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
                  if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null
                        && hongBaoOrder.getHongBaoV2().getType() == HongBaoV2.TYPE_SHARE_GOODS) {
                     shareOrderMap.put(orderId, list);
                     continue;
                  }
               }
               fanliOrderMap.put(orderId, list);
            }
         }
      }
@@ -295,16 +292,20 @@
         LogHelper.error("返利失败:" + hb1.getId());
         return;
      }
      // 维权中的不返利
      List<TaoBaoWeiQuanOrder> taoBaoWeiQuanList = taoBaoWeiQuanOrderMapper
            .selectListByOrderIdAndState(hongBaoOrder.getCommonOrder().getOrderNo(), "维权创建");
      if (taoBaoWeiQuanList != null && taoBaoWeiQuanList.size() > 0)
         return;
      taoBaoWeiQuanList = taoBaoWeiQuanOrderMapper
            .selectListByOrderIdAndState(hongBaoOrder.getCommonOrder().getOrderNo(), "等待处理");
      if (taoBaoWeiQuanList != null && taoBaoWeiQuanList.size() > 0)
         return;
      if (hongBaoOrder.getCommonOrder() != null
            && hongBaoOrder.getCommonOrder().getSourceType() == Constant.SOURCE_TYPE_TAOBAO) {
         // 维权中的不返利
         List<TaoBaoWeiQuanOrder> taoBaoWeiQuanList = taoBaoWeiQuanOrderMapper
               .selectListByOrderIdAndState(hongBaoOrder.getCommonOrder().getOrderNo(), "维权创建");
         if (taoBaoWeiQuanList != null && taoBaoWeiQuanList.size() > 0)
            return;
         taoBaoWeiQuanList = taoBaoWeiQuanOrderMapper
               .selectListByOrderIdAndState(hongBaoOrder.getCommonOrder().getOrderNo(), "等待处理");
         if (taoBaoWeiQuanList != null && taoBaoWeiQuanList.size() > 0)
            return;
      }
      // 查询同一订单号的红包
      List<CommonOrder> orderList = commonOrderService.listBySourceTypeAndOrderId(
@@ -385,21 +386,11 @@
         }
         // 站内信+推送
         UserInfo user = userInfoMapper.selectByPrimaryKey(uid);
         try {
            userNotificationService.orderFanliRecieved(uid, hongBaoOrder.getCommonOrder().getOrderNo(),
                  userGoodsCount.get(uid), user.getMyHongBao(), money);
         } catch (Exception e) {
            try {
               LogHelper.errorDetailInfo(e);
            } catch (Exception e1) {
               e1.printStackTrace();
            }
         }
         UserInfo user = userInfoMapper.selectByPKey(uid);
         // 新版通知
         userMoneyMsgNotificationService.fanliOrderReceived(uid, hongBaoOrder.getCommonOrder().getOrderNo(),
               userGoodsCount.get(uid), money, user.getMyHongBao());
               hongBaoOrder.getCommonOrder().getSourceType(), userGoodsCount.get(uid), money, user.getMyHongBao());
      }
      // 通知免单到账
      try {
@@ -412,9 +403,8 @@
      if (hongBaoOrder.getCommonOrder().getSettleTime() != null && hongBaoOrder.getCommonOrder().getSettleTime()
            .getTime() >= TimeUtil.convertToTimeTemp("2018-08-05", "yyyy-MM-dd")) {
         try {
            taoBaoWeiQuanDrawBackService.doWeiQuanFanli(hongBaoOrder.getCommonOrder().getOrderNo());
            if (hongBaoOrder.getCommonOrder().getSourceType() == Constant.SOURCE_TYPE_TAOBAO)
               taoBaoWeiQuanDrawBackService.doWeiQuanFanli(hongBaoOrder.getCommonOrder().getOrderNo());
         } catch (TaoBaoWeiQuanException e) {
            if (e.getCode() == TaoBaoWeiQuanException.CODE_NEDD_UPDATE_ORDER) {
               List<TaoBaoOrder> olist = taoBaoOrderService
@@ -453,7 +443,7 @@
   public void weiQuanOrder(List<TaoBaoWeiQuanOrder> orderList) {
      if (orderList != null)
         for (TaoBaoWeiQuanOrder order : orderList) {
            if (order.getState().equalsIgnoreCase("维权成功")) {
            if (order.getState().contains("维权成功")) {
               CMQManager.getInstance().addWeiQuanOrderMsg(order);
            }
         }
@@ -657,8 +647,8 @@
            long invalidCount = hongBaoV2Mapper.countInviteOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_SX,
                  minDate, maxDate);
            UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInvite(uid, (int) validCount,
                  (int) weiQuanCount, (int) invalidCount, invitemoney, new Date());
            UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInvite(uid, Constant.SOURCE_TYPE_TAOBAO,
                  (int) validCount, (int) weiQuanCount, (int) invalidCount, invitemoney, new Date());
            // 增加资金
            userMoneyService.addUserMoney(uid, invitemoney, userMoneyDetail);
@@ -672,18 +662,9 @@
            }
         }
         // 发送推送
         try {
            // 提成到账消息通知
            userNotificationService.tiChengInviteRecieved(uid, inviteOrders.size(), inviteGoodsCount, null,
                  invitemoney);
         } catch (Exception e) {
            e.printStackTrace();
         }
         // 新版通知
         userMoneyMsgNotificationService.inviteOrderReceived(uid, inviteOrders.size(), inviteGoodsCount, invitemoney,
               userInfoMapper.selectByPKey(uid).getMyHongBao());
         userMoneyMsgNotificationService.inviteOrderReceived(uid, Constant.SOURCE_TYPE_TAOBAO, inviteOrders.size(),
               inviteGoodsCount, invitemoney, userInfoMapper.selectByPKey(uid).getMyHongBao());
         for (String orderId : drawBackOrders)
            taoBaoWeiQuanDrawBackService.doWeiQuanInvite(orderId);
@@ -756,8 +737,8 @@
            long invalidCount = commonOrderService.countByUidAndOrderStateWithOrderBalanceTime(uid,
                  CommonOrder.STATE_SX, minDate, maxDate);
            UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, (int) validCount,
                  (int) weiQuanCount, (int) invalidCount, sharemoney, new Date());
            UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, Constant.SOURCE_TYPE_TAOBAO,
                  (int) validCount, (int) weiQuanCount, (int) invalidCount, sharemoney, new Date());
            // 添加资金
            userMoneyService.addUserMoney(uid, sharemoney, userMoneyDetail);
@@ -771,18 +752,9 @@
            }
         }
         // 发送推送
         try {
            // 提成到账消息通知
            userNotificationService.tiChengShareRecieved(uid, shareOrders.size(), shareGoodsCount, null,
                  sharemoney);
         } catch (Exception e) {
            e.printStackTrace();
         }
         // 新版通知
         userMoneyMsgNotificationService.shareOrderReceived(uid, shareOrders.size(), shareGoodsCount, sharemoney,
               userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
         userMoneyMsgNotificationService.shareOrderReceived(uid, Constant.SOURCE_TYPE_TAOBAO, shareOrders.size(),
               shareGoodsCount, sharemoney, userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
         for (String orderId : drawBackOrders)
            taoBaoWeiQuanDrawBackService.doWeiQuanShare(orderId);
@@ -827,7 +799,6 @@
               orderMapper.insertSelective(order);
               oldOrder = order;
            } else {
               Long targetUid = null;
               if (pid.equalsIgnoreCase(TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID)
                     && !StringUtil.isNullOrEmpty(orderList.get(0).getRelationId())) {
@@ -924,6 +895,20 @@
         }
         // 尚未找到和PID对应的用户
         if (uid == null) {
            // 通过红包查询
            CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
                  orderList.get(0).getTradeId());
            if (commonOrder != null) {
               HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
               if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null
                     && hongBaoOrder.getHongBaoV2().getType() == HongBaoV2.TYPE_SHARE_GOODS) {
                  uid = hongBaoOrder.getHongBaoV2().getUserInfo().getId();
               }
            }
         }
         if (uid == null)
            return;