admin
2020-11-09 2147d023563a7c9d05d97547c00d6b0162c0644c
fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoWeiQuanOrderServiceImpl.java
@@ -6,6 +6,9 @@
import javax.annotation.Resource;
import com.yeshi.fanli.exception.money.TeamRewardDebtException;
import com.yeshi.fanli.exception.order.TaoBaoOrderException;
import com.yeshi.fanli.service.manger.order.TeamRewardManager;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -31,133 +34,140 @@
@Service
public class TaoBaoWeiQuanOrderServiceImpl implements TaoBaoWeiQuanOrderService {
   @Resource
   private TaoBaoWeiQuanOrderMapper taoBaoWeiQuanOrderMapper;
    @Resource
    private TaoBaoWeiQuanOrderMapper taoBaoWeiQuanOrderMapper;
   @Resource
   private UserOrderMsgNotificationService userOrderMsgNotificationService;
    @Resource
    private TeamRewardManager teamRewardManager;
   @Resource
   private MsgOrderDetailService msgOrderDetailService;
   @Resource
   private CommonOrderService commonOrderService;
    @Resource
    private CommonOrderService commonOrderService;
   @Resource
   private UserOrderWeiQuanRecordService userOrderWeiQuanRecordService;
    @Resource
    private UserOrderWeiQuanRecordService userOrderWeiQuanRecordService;
   @Resource
   private RocketMQManager rocketMQManager;
    @Resource
    private RocketMQManager rocketMQManager;
   @Transactional(rollbackFor = Exception.class)
   @Override
   public void addWeiQuanOrder(TaoBaoWeiQuanOrder order) {
      if (order == null)
         return;
    @Transactional(rollbackFor = Exception.class)
    @Override
    public void addWeiQuanOrder(TaoBaoWeiQuanOrder order) {
        if (order == null)
            return;
      boolean isAdd = false;
      boolean isUpdate = false;
      Long id = null;
        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("维权成功")))
            return;
         // 更新金额,状态与时间
         TaoBaoWeiQuanOrder update = new TaoBaoWeiQuanOrder();
         update.setId(taoBaoWeiQuanOrder.getId());
         update.setFanMoney(order.getFanMoney());
         update.setJieSuanTime(order.getJieSuanTime());
         update.setMoney(order.getMoney());
         update.setState(order.getState());
         update.setUpdateTime(new Date());
         update.setWeiQuanFinishTime(order.getWeiQuanFinishTime());
         taoBaoWeiQuanOrderMapper.updateByPrimaryKeySelective(update);
         isUpdate = true;
         try {
            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(taoBaoWeiQuanOrder);
               }
            }
         } catch (Exception e) {
        TaoBaoWeiQuanOrder taoBaoWeiQuanOrder = taoBaoWeiQuanOrderMapper
                .selectByOrderIdAndOrderItemId(order.getOrderId(), order.getOrderItemId());
        if (taoBaoWeiQuanOrder != null) {
            id = taoBaoWeiQuanOrder.getId();
            // 已经是最新的状态了
            if (taoBaoWeiQuanOrder.getState() != null && (taoBaoWeiQuanOrder.getState().contains("维权成功")))
                return;
            // 更新金额,状态与时间
            TaoBaoWeiQuanOrder update = new TaoBaoWeiQuanOrder();
            update.setId(taoBaoWeiQuanOrder.getId());
            update.setFanMoney(order.getFanMoney());
            update.setJieSuanTime(order.getJieSuanTime());
            update.setMoney(order.getMoney());
            update.setState(order.getState());
            update.setUpdateTime(new Date());
            update.setWeiQuanFinishTime(order.getWeiQuanFinishTime());
            taoBaoWeiQuanOrderMapper.updateByPrimaryKeySelective(update);
            isUpdate = true;
            try {
                if (order.getState().contains("维权成功")) {
                    weiQuanSuccess(order);
                }
            } catch (Exception e) {
         }
      } else {
         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);
            }
         }
      }
            }
        } else {
            order.setCreateTime(new Date());
            order.setUpdateTime(new Date());
            taoBaoWeiQuanOrderMapper.insertSelective(order);
            id = order.getId();
            isAdd = true;
            if (order.getState().contains("维权成功")) {
                weiQuanSuccess(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);
            rocketMQManager.sendNormalMsg(message, null);
         }
      }
        // 增加或修改
        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);
                rocketMQManager.sendNormalMsg(message, null);
            }
        }
   }
    }
   @Override
   public List<TaoBaoWeiQuanOrder> getWeiQuanSuccessOrders(String orderId) {
      return taoBaoWeiQuanOrderMapper.selectListByOrderIdAndState(orderId, "维权成功");
   }
   @Override
   public TaoBaoWeiQuanOrder listByorderItemId(String tradeId) {
      return taoBaoWeiQuanOrderMapper.selectByOrderItemId(tradeId);
   }
    /**
     * 维权成功
     *
     * @param order
     */
    private void weiQuanSuccess(TaoBaoWeiQuanOrder order) {
        // 更改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);
            try {
                teamRewardManager.weiQuan(order.getOrderId(), Constant.SOURCE_TYPE_TAOBAO, order.getOrderItemId());
            } catch (TaoBaoOrderException e) {
                e.printStackTrace();
            } catch (TeamRewardDebtException e) {
                e.printStackTrace();
            }
        }
   @Override
   public List<TaoBaoWeiQuanOrder> listByState(String state, int page, int pageSize) {
      return taoBaoWeiQuanOrderMapper.listByState(state, (page - 1) * pageSize, pageSize);
   }
    }
   @Override
   public long countByState(String state) {
      return taoBaoWeiQuanOrderMapper.countByState(state);
   }
    @Override
    public List<TaoBaoWeiQuanOrder> getWeiQuanSuccessOrders(String orderId) {
        return taoBaoWeiQuanOrderMapper.selectListByOrderIdAndState(orderId, "维权成功");
    }
   @Override
   public List<TaoBaoWeiQuanOrder> listByOrderId(String orderId) {
      return taoBaoWeiQuanOrderMapper.listByOrderId(orderId);
   }
    @Override
    public TaoBaoWeiQuanOrder listByorderItemId(String tradeId) {
        return taoBaoWeiQuanOrderMapper.selectByOrderItemId(tradeId);
    }
   @Override
   public TaoBaoWeiQuanOrder selectByTradeId(String tradeId) {
      return taoBaoWeiQuanOrderMapper.selectByOrderItem(tradeId);
   }
    @Override
    public List<TaoBaoWeiQuanOrder> listByState(String state, int page, int pageSize) {
        return taoBaoWeiQuanOrderMapper.listByState(state, (page - 1) * pageSize, pageSize);
    }
   @Override
   public List<TaoBaoWeiQuanOrder> listByBeginWeiQuan(int page, int pageSize) {
      return taoBaoWeiQuanOrderMapper.listByBeginWeiQuan((page - 1) * pageSize, pageSize);
   }
    @Override
    public long countByState(String state) {
        return taoBaoWeiQuanOrderMapper.countByState(state);
    }
    @Override
    public List<TaoBaoWeiQuanOrder> listByOrderId(String orderId) {
        return taoBaoWeiQuanOrderMapper.listByOrderId(orderId);
    }
    @Override
    public TaoBaoWeiQuanOrder selectByTradeId(String tradeId) {
        return taoBaoWeiQuanOrderMapper.selectByOrderItem(tradeId);
    }
    @Override
    public List<TaoBaoWeiQuanOrder> listByBeginWeiQuan(int page, int pageSize) {
        return taoBaoWeiQuanOrderMapper.listByBeginWeiQuan((page - 1) * pageSize, pageSize);
    }
}