admin
2020-05-20 98b1a0affd69bbe63223c21fdd2c404e8bedfccb
fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoWeiQuanOrderServiceImpl.java
@@ -1,22 +1,32 @@
package com.yeshi.fanli.service.impl.order.tb;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.aliyun.openservices.ons.api.Message;
import com.aliyun.openservices.ons.api.Producer;
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper;
import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum;
import com.yeshi.fanli.dto.mq.order.body.BanLiShopOrderMQMsg;
import com.yeshi.fanli.dto.mq.order.body.OrderWeiQuanMQMsg;
import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail;
import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail.MsgTypeOrderTypeEnum;
import com.yeshi.fanli.entity.order.CommonOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import com.yeshi.fanli.service.inter.order.CommonOrderService;
import com.yeshi.fanli.service.inter.order.UserOrderWeiQuanRecordService;
import com.yeshi.fanli.service.inter.order.msg.MsgOrderDetailService;
import com.yeshi.fanli.service.inter.order.msg.UserOrderMsgNotificationService;
import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
import com.yeshi.fanli.util.rocketmq.MQTopicName;
@Service
public class TaoBaoWeiQuanOrderServiceImpl implements TaoBaoWeiQuanOrderService {
@@ -32,17 +42,28 @@
   @Resource
   private CommonOrderService commonOrderService;
   @Resource
   private UserOrderWeiQuanRecordService userOrderWeiQuanRecordService;
   @Resource(name = "producer")
   private Producer producer;
   @Transactional(rollbackFor = Exception.class)
   @Override
   public void addWeiQuanOrder(TaoBaoWeiQuanOrder order) {
      if (order == null)
         return;
      boolean isAdd = false;
      boolean isUpdate = false;
      Long id = null;
      TaoBaoWeiQuanOrder taoBaoWeiQuanOrder = taoBaoWeiQuanOrderMapper
            .selectByOrderIdAndOrderItemId(order.getOrderId(), order.getOrderItemId());
      if (taoBaoWeiQuanOrder != null) {
         id = taoBaoWeiQuanOrder.getId();
         // 已经是最新的状态了
         if (taoBaoWeiQuanOrder.getState() != null && (taoBaoWeiQuanOrder.getState().contains("维权成功")
               || taoBaoWeiQuanOrder.getState().contains("维权失败")))
         if (taoBaoWeiQuanOrder.getState() != null && (taoBaoWeiQuanOrder.getState().contains("维权成功")))
            return;
         // 更新金额,状态与时间
         TaoBaoWeiQuanOrder update = new TaoBaoWeiQuanOrder();
@@ -54,7 +75,7 @@
         update.setUpdateTime(new Date());
         update.setWeiQuanFinishTime(order.getWeiQuanFinishTime());
         taoBaoWeiQuanOrderMapper.updateByPrimaryKeySelective(update);
         isUpdate = true;
         try {
            if (order.getState().contains("维权成功")) {
               // 更改CommonOrder的状态
@@ -65,20 +86,7 @@
                  updateCommonOrder.setState(CommonOrder.STATE_WQ);
                  updateCommonOrder.setUpdateTime(new Date());
                  commonOrderService.updateByPrimaryKeySelective(updateCommonOrder);
               }
               List<MsgOrderDetail> msgList = msgOrderDetailService.listMsgOrderByOrderId(order.getOrderId());
               for (MsgOrderDetail msg : msgList) {
                  if (msg.getType() == MsgTypeOrderTypeEnum.fanli) {
                     userOrderMsgNotificationService.orderFanLiStateChanged(msg.getUser().getId(),
                           order.getOrderId(), Constant.SOURCE_TYPE_TAOBAO, null, null, CommonOrder.STATE_WQ);
                  } else if (msg.getType() == MsgTypeOrderTypeEnum.invite) {
                     userOrderMsgNotificationService.orderInviteStateChanged(msg.getUser().getId(),
                           order.getOrderId(), Constant.SOURCE_TYPE_TAOBAO, null, null, CommonOrder.STATE_WQ);
                  } else if (msg.getType() == MsgTypeOrderTypeEnum.share) {
                     userOrderMsgNotificationService.orderShareStateChanged(msg.getUser().getId(),
                           order.getOrderId(), Constant.SOURCE_TYPE_TAOBAO, null, null, CommonOrder.STATE_WQ);
                  }
                  userOrderWeiQuanRecordService.addTaoBaoWeiQuan(taoBaoWeiQuanOrder);
               }
            }
         } catch (Exception e) {
@@ -88,7 +96,33 @@
         order.setCreateTime(new Date());
         order.setUpdateTime(new Date());
         taoBaoWeiQuanOrderMapper.insertSelective(order);
         id = order.getId();
         isAdd = true;
         if (order.getState().contains("维权成功")) {
            // 更改CommonOrder的状态
            CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
                  order.getOrderItemId());
            if (commonOrder != null) {
               CommonOrder updateCommonOrder = new CommonOrder(commonOrder.getId());
               updateCommonOrder.setState(CommonOrder.STATE_WQ);
               updateCommonOrder.setUpdateTime(new Date());
               commonOrderService.updateByPrimaryKeySelective(updateCommonOrder);
               userOrderWeiQuanRecordService.addTaoBaoWeiQuan(order);
            }
         }
      }
      // 增加或修改
      if (isAdd || isUpdate) {
         if (id != null) {
            OrderWeiQuanMQMsg msg = new OrderWeiQuanMQMsg(order.getOrderId(), order.getOrderItemId(),
                  Constant.SOURCE_TYPE_TAOBAO);
            Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.taoBaoOrderWeiQuan,
                  msg);
            producer.send(message);
         }
      }
   }
   @Override
@@ -121,4 +155,8 @@
      return taoBaoWeiQuanOrderMapper.selectByOrderItem(tradeId);
   }
   @Override
   public List<TaoBaoWeiQuanOrder> listByBeginWeiQuan(int page, int pageSize) {
      return taoBaoWeiQuanOrderMapper.listByBeginWeiQuan((page - 1) * pageSize, pageSize);
   }
}