Administrator
2018-11-22 2476fd546a0438c0b00ecf9fc2d51a2cfe22f9b7
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -45,6 +45,7 @@
import com.yeshi.fanli.exception.TaoBaoWeiQuanException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
import com.yeshi.fanli.service.inter.order.LostOrderService;
import com.yeshi.fanli.service.inter.order.OrderItemServcie;
import com.yeshi.fanli.service.inter.order.OrderProcessService;
import com.yeshi.fanli.service.inter.order.OrderService;
@@ -128,6 +129,9 @@
   @Resource
   private RedisManager redisManager;
   @Resource
   private LostOrderService lostOrderService;
   @Override
   public void processOrder(Map<String, List<TaoBaoOrder>> orders) {
      List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
@@ -163,6 +167,7 @@
   /**
    * 利用redis的原子性将订单号锁住,不让其他处理
    *
    * @param orderId
    */
   private void redisLockOrder(String orderId) {
@@ -172,6 +177,7 @@
   /**
    * 订单解锁
    *
    * @param orderId
    */
   private void redisUnlockOrder(String orderId) {
@@ -181,6 +187,7 @@
   /**
    * 订单是否被锁住了
    *
    * @param orderId
    * @return
    */
@@ -202,12 +209,16 @@
         try {
            String orderId = its.next();
            // 处理红包与子红包
//            if (isRedisLockOrder(orderId))
//               continue;
//            redisLockOrder(orderId);
            // if (isRedisLockOrder(orderId))
            // continue;
            // redisLockOrder(orderId);
            processShopingFanliOrder(orderId, orders.get(orderId));
//            redisUnlockOrder(orderId);
            // redisUnlockOrder(orderId);
            // 出错了就不处理该订单了,需要定期检查
            // 更改丢失订单的状态
            lostOrderService.processSuceess(orderId);
         } catch (HongBaoException e1) {
            e1.printStackTrace();
         } catch (OrderItemException e2) {
@@ -383,8 +394,13 @@
         } else// 计算订单的总金额
         {
            BigDecimal money = new BigDecimal(0);
            for (TaoBaoOrder o : orderList)
               money = money.add(o.getPayment());
            for (TaoBaoOrder o : orderList) {
               if (o.getOrderState().equalsIgnoreCase("订单结算"))
                  money = money.add(o.getSettlement());
               else {
                  money = money.add(o.getPayment());
               }
            }
            updateOrder.setMoney(money);
            String thirdState = null;
            for (TaoBaoOrder o : orderList)