yujian
2019-11-04 148af6b2f57be264c84d0991237fbd7ddea491a4
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -30,9 +30,10 @@
import com.yeshi.fanli.dao.mybatis.order.HongBaoOrderMapper;
import com.yeshi.fanli.dao.mybatis.order.OrderMapper;
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper;
import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum;
import com.yeshi.fanli.dto.mq.order.body.OrderMQMsg;
import com.yeshi.fanli.dto.mq.order.body.OrderMoneyRecievedMQMsg;
import com.yeshi.fanli.dto.order.CommonOrderAddResultDTO;
import com.yeshi.fanli.dto.order.OrderMQMsgDTO;
import com.yeshi.fanli.dto.order.OrderMoneyRecievedMQMsgDTO;
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.bus.user.Order;
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
@@ -391,11 +392,31 @@
            return;
      }
      // 查询该订单之前是否有到账
      List<HongBaoOrder> list = hongBaoOrderMapper.listByOrderIdAndSourceType(
            hongBaoOrder.getCommonOrder().getOrderNo(), hongBaoOrder.getCommonOrder().getSourceType());
      List<Long> hongBaoIdList = new ArrayList<>();
      if (list != null) {
         for (HongBaoOrder ho : list) {
            hongBaoIdList.add(ho.getHongBaoV2().getId());
         }
      }
      List<HongBaoV2> allHongBaoList = hongBaoV2Mapper.listByIds(hongBaoIdList);
      boolean first = true;
      for (HongBaoV2 v2 : allHongBaoList)
         if (v2.getState() == HongBaoV2.STATE_YILINGQU) {
            first = false;
            break;
         }
      // 自购到账事务消息
      OrderMoneyRecievedMQMsgDTO mqMsg = new OrderMoneyRecievedMQMsgDTO(OrderMoneyRecievedMQMsgDTO.TYPE_ZIGOU,
      OrderMoneyRecievedMQMsg mqMsg = new OrderMoneyRecievedMQMsg(OrderMoneyRecievedMQMsg.TYPE_ZIGOU,
            mainUser.getId(), hongBaoOrder.getCommonOrder().getSourceType(),
            hongBaoOrder.getCommonOrder().getOrderNo(), null, new Date());
      Message msg = new Message(MQTopicName.TOPIC_FANLI.name(), "actual", new Gson().toJson(mqMsg).getBytes());
      mqMsg.setOrderFirst(first);
      Message msg = new Message(MQTopicName.TOPIC_ORDER.name(), OrderTopicTagEnum.orderFanLiActual.name(),
            new Gson().toJson(mqMsg).getBytes());
      String key = mainUser.getId() + "-" + UUID.randomUUID().toString();
      msg.setKey(key);
      try {
@@ -503,7 +524,7 @@
      } catch (OrderMoneySettleException e) {
         e.printStackTrace();
      }
      if(1>0)
      if (1 > 0)
         return;
      try {
@@ -1177,12 +1198,12 @@
    */
   private void addHongBaoWithMQ(List<CommonOrderAddResultDTO> commonOrderList, String orderId, Long uid,
         int sourceType, int hongBaoType) {
      // TODO 区分添加与修改
      final List<CommonOrder> coList = convertCommonOrder(commonOrderList);
      OrderMQMsgDTO mqMsg = new OrderMQMsgDTO(orderId, sourceType, uid);
      Message msg = new Message(MQTopicName.TOPIC_ORDER.name(),
            String.format(MQTagConstant.TAG_ORDER_STATISTIC_PREFIX + "%s-%s", sourceType, hongBaoType),
      OrderMQMsg mqMsg = new OrderMQMsg(orderId, sourceType, uid);
      Message msg = new Message(MQTopicName.TOPIC_ORDER.name(), OrderTopicTagEnum.orderStatistic.name(),
            new Gson().toJson(mqMsg).getBytes());
      SendResult result=   orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
      SendResult result = orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
         @Override
         public TransactionStatus execute(Message arg0, Object arg1) {
            int resultCode = 0;
@@ -1196,10 +1217,10 @@
               }
            }
            return TransactionStatus.CommitTransaction;
//            if (resultCode != 0)
//               return TransactionStatus.CommitTransaction;
//            else
//               return TransactionStatus.RollbackTransaction;
            // if (resultCode != 0)
            // return TransactionStatus.CommitTransaction;
            // else
            // return TransactionStatus.RollbackTransaction;
         }
      }, null);
      System.out.println(result);