yujian
2019-12-28 c3f10da9aa6f4d8fecccc1c9574567ee0766ab48
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -24,8 +24,6 @@
import com.aliyun.openservices.ons.api.transaction.TransactionProducer;
import com.aliyun.openservices.ons.api.transaction.TransactionStatus;
import com.google.gson.Gson;
import com.opensymphony.xwork2.util.Element;
import com.sun.org.apache.xml.internal.serializer.ElemDesc;
import com.yeshi.fanli.dao.mybatis.HongBaoV2Mapper;
import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
import com.yeshi.fanli.dao.mybatis.money.UserMoneyDetailMapper;
@@ -63,6 +61,7 @@
import com.yeshi.fanli.exception.user.UserAccountException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.elme.ElmeHongBaoOrderMapService;
import com.yeshi.fanli.service.inter.elme.ElmeOrderProcessService;
import com.yeshi.fanli.service.inter.elme.ElmeOrderService;
import com.yeshi.fanli.service.inter.hongbao.AccountDetailsHongBaoMapService;
import com.yeshi.fanli.service.inter.money.UserMoneyService;
@@ -264,6 +263,13 @@
         elmeOrder.setIsSettle(true);
      else
         elmeOrder.setIsSettle(false);
      if (!taoBaoOrder.getOrderState().equalsIgnoreCase("订单失效"))
         elmeOrder.setState(1);
      else {
         elmeOrder.setState(0);
         elmeOrder.setPayMoney(new BigDecimal(0));
      }
      elmeOrder.setTrackPid(
            String.format("mm_124933865_%s_%s", taoBaoOrder.getSourceMediaId(), taoBaoOrder.getAdPositionId()));
      if (!StringUtil.isNullOrEmpty(taoBaoOrder.getRelationId())) {
@@ -281,10 +287,11 @@
         for (TaoBaoOrder taoBaoOrder : orderList) {
            ElmeOrder elmeOrder = createElmeOrder(taoBaoOrder);
            try {
               elmeOrderService.addOrder(elmeOrder);
               elmeOrderProcessService.processOrder(elmeOrder);
            } catch (ElmeOrderException e) {
               e.printStackTrace();
            }
         }
      }
   }
@@ -410,7 +417,7 @@
   private HongBaoOrderMapper hongBaoOrderMapper;
   @Override
   @Transactional
   @Transactional(rollbackFor = Exception.class)
   public void fanli(HongBaoV2 hb1) throws TaoBaoWeiQuanException {
      // 查询最新的红包数据
      hb1 = hongBaoV2Mapper.selectByPrimaryKeyForUpdate(hb1.getId());
@@ -477,18 +484,26 @@
      String key = mainUser.getId() + "-" + UUID.randomUUID().toString();
      msg.setKey(key);
      try {
         orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
            @Override
            public TransactionStatus execute(Message arg0, Object arg1) {
               try {
                  orderMoneySettleService.ziGouSettle(hongBaoOrder.getCommonOrder().getOrderNo(),
                        hongBaoOrder.getCommonOrder().getSourceType(), key);
                  return TransactionStatus.CommitTransaction;
               } catch (Exception e) {
                  return TransactionStatus.RollbackTransaction;
         if (!Constant.IS_TEST)
            orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
               @Override
               public TransactionStatus execute(Message arg0, Object arg1) {
                  try {
                     orderMoneySettleService.ziGouSettle(hongBaoOrder.getCommonOrder().getOrderNo(),
                           hongBaoOrder.getCommonOrder().getSourceType(), key);
                     return TransactionStatus.CommitTransaction;
                  } catch (Exception e) {
                     return TransactionStatus.RollbackTransaction;
                  }
               }
            }, null);
         else{
            try {
               orderMoneySettleService.ziGouSettle(hongBaoOrder.getCommonOrder().getOrderNo(),
                     hongBaoOrder.getCommonOrder().getSourceType(), key);
            } catch (Exception e) {
            }
         }, null);
         }
      } catch (Exception e) {
         LogHelper.mqError(e.getMessage(), msg.getTopic(), msg.getTag(), new Gson().toJson(mqMsg));
      }
@@ -583,9 +598,7 @@
      } catch (OrderMoneySettleException e) {
         e.printStackTrace();
      }
      if (1 > 0)
         return;
      //
      try {
         orderMoneySettleService.inviteSettleJD(uid);
      } catch (OrderMoneySettleException e) {
@@ -1196,6 +1209,9 @@
   @Resource
   private ElmeOrderService elmeOrderService;
   @Resource
   private ElmeOrderProcessService elmeOrderProcessService;
   /**
    * 获取饿了么可以返利的红包
    * 
@@ -1261,13 +1277,12 @@
   @Transactional
   private void addHongBaoWithMQ(List<CommonOrderAddResultDTO> commonOrderList, String orderId, Long uid,
         int sourceType, int hongBaoType) {
      final List<CommonOrder> coList = convertCommonOrder(commonOrderList);
      int resultCode = 0;
      try {
         long time = TimeUtil.convertToTimeTemp("2019-12-06", "yyyy-MM-dd");
         if (!Constant.IS_TEST)
            time = TimeUtil.convertToTimeTemp("2020-01-01", "yyyy-MM-dd");
            time = TimeUtil.convertToTimeTemp("2019-12-20", "yyyy-MM-dd");
         if (coList.get(0).getThirdCreateTime().getTime() < time)
            resultCode = hongBaoV2Service.addHongBao(coList, hongBaoType);
@@ -1282,12 +1297,13 @@
      } catch (UserAccountException e) {
      }
      if (resultCode == 1) {// 只发送新增消息
         OrderMQMsg mqMsg = new OrderMQMsg(orderId, sourceType, uid, OrderMQMsg.HANDLE_TYPE_ADD,
               isCommonOrderValid(coList), 0, new Date());
         Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderStatistic, mqMsg);
         producer.send(msg);
      }
      if (!Constant.IS_TEST)
         if (resultCode == 1) {// 只发送新增消息
            OrderMQMsg mqMsg = new OrderMQMsg(orderId, sourceType, uid, OrderMQMsg.HANDLE_TYPE_ADD,
                  isCommonOrderValid(coList), 0, new Date());
            Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderStatistic, mqMsg);
            producer.send(msg);
         }
   }
   /**