Browse Source

关闭订单,更新库存

刘俊驰 1 year ago
parent
commit
ad23bb2cc1

+ 37 - 31
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderServiceImpl.java

@@ -813,9 +813,9 @@ public class OmsOrderServiceImpl implements OmsOrderService {
         if (detail == null) {
             throw new BizException("订单不存在");
         }
-        if (detail.getStatus() != 1 ) {
-            throw new BizException("当前订单状态不允许修改");
-        }
+//        if (detail.getStatus() != 1 ) {
+//            throw new BizException("当前订单状态不允许修改");
+//        }
         OmsOrder omsOrder = new OmsOrder();
         omsOrder.setId(detail.getId());
         omsOrder.setStatus(status);
@@ -826,9 +826,9 @@ public class OmsOrderServiceImpl implements OmsOrderService {
         return true;
     }
 
-    // 直接修改订单状态为完成
+    // 直接修改订单状态为完成/关闭
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public int updateStatus(OmsOrderWrapper.OrderStatusUpdate orderStatusUpdate) {
 
 
@@ -843,34 +843,40 @@ public class OmsOrderServiceImpl implements OmsOrderService {
             orderItemExample.createCriteria().andOrderIdIn(orderIds);
             List<OmsOrderItem> omsOrderItems = omsOrderItemMapper.selectByExample(orderItemExample);
             List<String> stockJsons = omsOrderItems.stream().map(OmsOrderItem::getStockJson)
-                .filter(o ->!StringUtils.isEmpty(o)).collect(Collectors.toList());
-            List<OrderSkuSync.SkuSync> skuSyncList = new ArrayList<>();
-            for (String stockJson : stockJsons) {
-                List<OrderSkuSync.SkuSync> skuSyncs = JSON.parseArray(stockJson, OrderSkuSync.SkuSync.class);
-                skuSyncList.addAll(skuSyncs);
-            }
-            Map<Long, Integer> internalMap = skuSyncList.stream().filter(o -> "INTERNAL".equals(o.getType()))
-                .collect(Collectors.groupingBy(OrderSkuSync.SkuSync::getRecordId, Collectors.summingInt(OrderSkuSync.SkuSync::getCount)));
-            Map<Long, Integer> taxMap = skuSyncList.stream().filter(o -> "TAX".equals(o.getType()))
-                .collect(Collectors.groupingBy(OrderSkuSync.SkuSync::getRecordId, Collectors.summingInt(OrderSkuSync.SkuSync::getCount)));
-            List<PmsProductSkuStockRecord> updateList = new ArrayList<>();
-            for (Map.Entry<Long, Integer> entry : internalMap.entrySet()) {
-                PmsProductSkuStockRecord skuStockRecord = new PmsProductSkuStockRecord();
-                skuStockRecord.setId(entry.getKey());
-                skuStockRecord.setInternalSaleStock(entry.getValue());
-                updateList.add(skuStockRecord);
-            }
-            for (Map.Entry<Long, Integer> entry : taxMap.entrySet()) {
-                PmsProductSkuStockRecord skuStockRecord = new PmsProductSkuStockRecord();
-                skuStockRecord.setId(entry.getKey());
-                skuStockRecord.setTaxSaleStock(entry.getValue());
-                updateList.add(skuStockRecord);
-            }
-            for (PmsProductSkuStockRecord pmsProductSkuStockRecord : updateList) {
-                pmsProductSkuStockRecordMapper.updateStock(pmsProductSkuStockRecord);
-            }
+                .filter(o -> !StringUtils.isEmpty(o)).collect(Collectors.toList());
+            if (!CollectionUtils.isEmpty(stockJsons)) {
+                List<OrderSkuSync.SkuSync> skuSyncList = new ArrayList<>();
+                for (String stockJson : stockJsons) {
+                    List<OrderSkuSync.SkuSync> skuSyncs = JSON.parseArray(stockJson, OrderSkuSync.SkuSync.class);
+                    skuSyncList.addAll(skuSyncs);
+                }
+                Map<Long, Integer> internalMap = skuSyncList.stream().filter(o -> "INTERNAL".equals(o.getType()))
+                    .collect(Collectors.groupingBy(OrderSkuSync.SkuSync::getRecordId, Collectors.summingInt(OrderSkuSync.SkuSync::getCount)));
+                Map<Long, Integer> taxMap = skuSyncList.stream().filter(o -> "TAX".equals(o.getType()))
+                    .collect(Collectors.groupingBy(OrderSkuSync.SkuSync::getRecordId, Collectors.summingInt(OrderSkuSync.SkuSync::getCount)));
+                List<PmsProductSkuStockRecord> updateList = new ArrayList<>();
+                for (Map.Entry<Long, Integer> entry : internalMap.entrySet()) {
+                    PmsProductSkuStockRecord skuStockRecord = new PmsProductSkuStockRecord();
+                    skuStockRecord.setId(entry.getKey());
+                    skuStockRecord.setInternalSaleStock(entry.getValue());
+                    updateList.add(skuStockRecord);
+                }
+                for (Map.Entry<Long, Integer> entry : taxMap.entrySet()) {
+                    PmsProductSkuStockRecord skuStockRecord = new PmsProductSkuStockRecord();
+                    skuStockRecord.setId(entry.getKey());
+                    skuStockRecord.setTaxSaleStock(entry.getValue());
+                    updateList.add(skuStockRecord);
+                }
+                for (PmsProductSkuStockRecord pmsProductSkuStockRecord : updateList) {
+                    pmsProductSkuStockRecordMapper.updateStock(pmsProductSkuStockRecord);
+                }
+                List<Long> skuIds = updateList.stream().map(PmsProductSkuStockRecord::getProductSkuId).collect(Collectors.toList());
+                if (!CollectionUtils.isEmpty(skuIds)) {
+                    syncSkuStock(skuIds);
+                }
 
 
+            }
         }
 
         OmsOrder record = new OmsOrder();

+ 1 - 1
mec-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/model/OmsOrder.java

@@ -61,7 +61,7 @@ public class OmsOrder implements Serializable {
     @ApiModelProperty(value = "订单来源:0->PC订单;1->app订单 2->学校订单 ")
     private Integer sourceType;
 
-    @ApiModelProperty(value = "订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单")
+    @ApiModelProperty(value = "订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 6 未拉起支付 7 取消")
     private Integer status;
 
     @ApiModelProperty(value = "订单类型:0->正常订单;1->秒杀订单")