yujian
2020-03-28 393e3a365b5ebbed6e9eef07fbd18881cde73711
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
@@ -17,10 +17,14 @@
import org.yeshi.utils.entity.DateInfo;
import org.yeshi.utils.taobao.TbImgUtil;
import com.aliyun.openservices.ons.api.Message;
import com.aliyun.openservices.ons.api.Producer;
import com.yeshi.fanli.dao.mybatis.order.CommonOrderGoodsMapper;
import com.yeshi.fanli.dao.mybatis.order.CommonOrderMapper;
import com.yeshi.fanli.dao.mybatis.order.CommonOrderTradeIdMapMapper;
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper;
import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum;
import com.yeshi.fanli.dto.mq.order.body.OrderConfirmMQMsg;
import com.yeshi.fanli.dto.order.CommonOrderAddResultDTO;
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.entity.accept.AcceptData;
@@ -71,6 +75,8 @@
import com.yeshi.fanli.util.jd.JDApiUtil;
import com.yeshi.fanli.util.jd.JDUtil;
import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
import com.yeshi.fanli.util.rocketmq.MQTopicName;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.util.user.UserLevelUtil;
@@ -129,6 +135,9 @@
   @Resource
   private UserInfoService userInfoService;
   @Resource(name = "producer")
   private Producer orderProducer;
   // 奖励订单图片
   public final static String PIC_REWARD = "http://img.flqapp.com/resource/order/order_state_reward.png";
@@ -995,7 +1004,53 @@
         newCommonOrder.setUserInfo(new UserInfo(uid));
         commonOrderList.add(addCommonOrder(newCommonOrder));
      }
      addConfirmMQMsg(commonOrderList);
      return commonOrderList;
   }
   private void addConfirmMQMsg(List<CommonOrderAddResultDTO> resultList) {
      // 订单是否新增或者更新过
      boolean isAddOrUpdate = false;
      for (CommonOrderAddResultDTO dto : resultList)
         if (dto.getType() == CommonOrderAddResultDTO.TYPE_ADD
               || dto.getType() == CommonOrderAddResultDTO.TYPE_UPDATE) {
            isAddOrUpdate = true;
            break;
         }
      boolean hasSettleOrder = false;
      // 查询是否有结算的订单
      if (isAddOrUpdate) {
         for (CommonOrderAddResultDTO dto : resultList) {
            if (dto.getCommonOrder().getSettleTime() != null && dto.getCommonOrder().getSettlement() != null) {
               hasSettleOrder = true;
               break;
            }
         }
      }
      // 有结算的订单
      if (hasSettleOrder) {
         if (!Constant.IS_TEST) {
            // 统计结算金额
            BigDecimal settlement = new BigDecimal("0");
            CommonOrder firstOrder = null;
            for (CommonOrderAddResultDTO dto : resultList)
               if (dto.getCommonOrder().getSettlement() != null) {
                  settlement = settlement.add(dto.getCommonOrder().getSettlement());
                  if (firstOrder == null)
                     firstOrder = dto.getCommonOrder();
               }
            if (firstOrder != null) {
               Date placeDate = firstOrder.getThirdCreateTime();
               OrderConfirmMQMsg mqMsg = new OrderConfirmMQMsg(firstOrder.getOrderNo(), firstOrder.getSourceType(),
                     settlement, firstOrder.getUserInfo().getId(), placeDate, new Date());
               Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderConfirm,
                     mqMsg);
               orderProducer.send(msg);
            }
         }
      }
   }
   @Transactional(rollbackFor = Exception.class)
@@ -1846,14 +1901,6 @@
            order.setObtainTime(thirdCreateTime.getTime());
         }
         // 2.1显示返利说明连接>
         if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
            if (thirdCreateTime.getTime() > TimeUtil.convertDateToTemp(Constant.ORDER_SHOW_BRACE_TIME)) {
               String rebateLink = configService.get(ConfigKeyEnum.orderRebateDescLink.getKey());
               order.setRebateLink(rebateLink + "?orderNo=" + orderNo +"&sourceType=" + sourceType);
            }
         }
         Date settleTime = order.getSettleTime();
         if (settleTime != null) {
            order.setReceiveTime("收货时间:" + format.format(settleTime));
@@ -1890,6 +1937,17 @@
            }
         }
         // 2.1显示返利说明连接>
         if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
            if (CommonOrder.STATE_SX != orderState && thirdCreateTime.getTime() > TimeUtil.convertDateToTemp(Constant.ORDER_SHOW_BRACE_TIME)) {
               String rebateLink = configService.get(ConfigKeyEnum.orderRebateDescLink.getKey());
               order.setRebateLink(rebateLink + "?orderNo=" + orderNo +"&sourceType=" + sourceType);
            }
         }
         BigDecimal hongBao = order.getHongBao();
         if (hongBao == null) {
            hongBao = new BigDecimal(0);