Mr.qian há 1 mês atrás
pai
commit
e9c702f18b

+ 14 - 19
mall-service/src/main/java/com/txz/mall/service/impl/StoreOrderServiceImpl.java

@@ -584,7 +584,7 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
             example.createCriteria().andEqualTo("orderId", storeOrder.getOrderId());
             storeOrderMapper.updateByConditionSelective(storeOrderForUpdate, example);
             storeOrderStatusService.createLog(storeOrder.getId(), storeOrder.getOrderId(), Constants.ORDER_STATUS_DELIVERY_ORDER, "订单发货");
-            upOrderIndex(1, storeOrder.getOrderId(), pinkOrderStatusEnum.getKey());
+            upOrderIndex(storeOrder.getOrderId(), pinkOrderStatusEnum, null);
             // 维护拼团订单状态
             StorePink storePinkForUpdate = new StorePink();
             storePinkForUpdate.setOrderStatus(pinkOrderStatusEnum.getKey());
@@ -2039,7 +2039,7 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
                 Condition condition = new Condition(StorePink.class);
                 condition.createCriteria().andEqualTo("orderId", orderNo);
                 storePinkMapper.updateByConditionSelective(storePinkForUpdate, condition);
-                upOrderIndex(2, storeOrder.getOrderId(), StorePinkStatusEnum.LOTTERY_FAILED.getKey());
+                upOrderIndex(storeOrder.getOrderId(), pinkOrderStatusEnum, StorePinkStatusEnum.LOTTERY_FAILED);
                 // 维护每日统计表
                 dailySalesSummaryOfProductsService.updateDailySalesSummaryOfProducts(orderNo, storePinkForUpdate);
                 //**分库整改
@@ -2086,7 +2086,7 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
                 Condition condition = new Condition(StorePink.class);
                 condition.createCriteria().andEqualTo("orderId", orderNo);
                 storePinkMapper.updateByConditionSelective(storePinkForUpdate, condition);
-                upOrderIndex(2, storeOrder.getOrderId(), StorePinkStatusEnum.LOTTERY_FAILED.getKey());
+                upOrderIndex(storeOrder.getOrderId(), pinkOrderStatusEnum, StorePinkStatusEnum.LOTTERY_FAILED);
                 // 维护每日统计表
                 dailySalesSummaryOfProductsService.updateDailySalesSummaryOfProducts(orderNo, storePinkForUpdate);
                 // storePinkService.update(storePinkForUpdate);
@@ -2436,7 +2436,7 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
         storeOrderCondition.createCriteria().andEqualTo("orderId", orderNo);
         int i = storeOrderMapper.updateByConditionSelective(storeOrderForUpdate, storeOrderCondition);
         if (i > 0) {
-            upOrderIndex(1, orderNo, status);
+            upOrderIndex(orderNo, PinkOrderStatusEnum.getEnum(status), null);
         }
     }
     
@@ -2446,20 +2446,15 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
      * @param orderNo
      * @param status
      */
-    private void upOrderIndex(Integer type, String orderNo, Integer status) {
+    private void upOrderIndex(String orderNo, PinkOrderStatusEnum status, StorePinkStatusEnum storePinkStatus) {
         OrderIndex orderIndex = new OrderIndex();
-        if (type == 1) {
-            orderIndex.setStatus(status);
-            if (PinkOrderStatusEnum.GROUP_ORDER_PAID.getKey().equals(status)) {
-                Date date = new Date();
-                orderIndex.setPayTime(date);
-            }
-            if (status > 3) {
-                orderIndex.setStorePinkStatus(StorePinkStatusEnum.RESULTS_ANNOUNCED.getKey());
-            }
-            
-        } else {
-            orderIndex.setStorePinkStatus(status);
+        orderIndex.setStatus(status.getKey());
+        if (PinkOrderStatusEnum.GROUP_ORDER_PAID == status) {
+            Date date = new Date();
+            orderIndex.setPayTime(date);
+        }
+        if (ObjectUtil.isNotEmpty(storePinkStatus)) {
+            orderIndex.setStorePinkStatus(storePinkStatus.getKey());
         }
         Condition orderIndexCondition = new Condition(OrderIndex.class);
         orderIndexCondition.createCriteria().andEqualTo("orderId", orderNo);
@@ -2579,7 +2574,7 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
             storePinkUpdateCondition.createCriteria().andEqualTo("orderId", storePink.getOrderId());
             //**分库整改
             storePinkMapper.updateByConditionSelective(storePinkForUpdate, storePinkUpdateCondition);
-            upOrderIndex(1, storeOrder.getOrderId(), pinkOrderStatusEnum.getKey());
+            upOrderIndex(storeOrder.getOrderId(), pinkOrderStatusEnum, null);
             // 维护每日统计
             dailySalesSummaryOfProductsService.updateDailySalesSummaryOfProducts(storePink.getOrderId(), storePinkForUpdate);
             // storePinkMapper.updateByPrimaryKeySelective(storePinkForUpdate);
@@ -2621,7 +2616,7 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
                     Example example = new Example(StoreOrder.class);
                     example.createCriteria().andEqualTo("orderId", storeOrder.getOrderId());
                     storeOrderMapper.updateByConditionSelective(storeOrderForUpdate, example);
-                    upOrderIndex(1, storeOrder.getOrderId(), pinkOrderStatusEnum.getKey());
+                    upOrderIndex(storeOrder.getOrderId(), pinkOrderStatusEnum, null);
                     storeOrderStatusService.createLog(storeOrder.getId(), storeOrder.getOrderId(), Constants.ORDER_STATUS_RECEIVE_ORDER, I18nUtil.get("automatic.order.receipt.confirmation"));
                     
                     // 维护拼团订单状态

+ 30 - 0
mall-service/src/main/java/com/txz/mall/service/impl/StorePinkServiceImpl.java

@@ -11,6 +11,7 @@ import com.txz.cif.dto.Result;
 import com.txz.cif.dto.UserDTO;
 import com.txz.cif.param.AccomplishParam;
 import com.txz.cif.param.OrderParam;
+import com.txz.mall.configurer.AsyncConfig;
 import com.txz.mall.constants.Constants;
 import com.txz.mall.core.AbstractService;
 import com.txz.mall.core.ServiceException;
@@ -208,6 +209,34 @@ public class StorePinkServiceImpl extends AbstractService<StorePink> implements
     @Resource
     private StoreOrderStatusService storeOrderStatusService;
     
+    @Resource
+    private OrderIndexService orderIndexService;
+    
+        @Resource
+private  AsyncConfig asyncConfig;
+    
+    /**
+     * 中间索引表状态同步
+     *
+     * @param orderNo
+     * @param status
+     */
+    private void upOrderIndex(String orderNo, PinkOrderStatusEnum status, StorePinkStatusEnum storePinkStatus) {
+        OrderIndex orderIndex = new OrderIndex();
+        orderIndex.setStatus(status.getKey());
+        if (PinkOrderStatusEnum.GROUP_ORDER_PAID == status) {
+            Date date = new Date();
+            orderIndex.setPayTime(date);
+        }
+        if (ObjectUtil.isNotEmpty(storePinkStatus)) {
+            orderIndex.setStorePinkStatus(storePinkStatus.getKey());
+        }
+        Condition orderIndexCondition = new Condition(OrderIndex.class);
+        orderIndexCondition.createCriteria().andEqualTo("orderId", orderNo);
+        orderIndexService.update(orderIndex, orderIndexCondition);
+    }
+    
+    
     @Override
     public void theSelection(String spsCode, Date date) {
         log.info("theSelection:" + spsCode);
@@ -234,6 +263,7 @@ public class StorePinkServiceImpl extends AbstractService<StorePink> implements
             String s = I18nUtil.get("no.group.buying.orders");
             throw new ServiceException(s + spsCode);
         }
+        //异步更新索引表,同步拼团单状态
         long count = list.stream().filter(i -> i.getLId().equals(1)).count();
         if (count >= 1) {
             throw new ServiceException(I18nUtil.get("already.have.a.chosen.one") + spsCode);