FengChaoYu il y a 3 semaines
Parent
commit
eaeece953c

+ 2 - 2
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/order/OrderLogic.java

@@ -496,8 +496,8 @@ public class OrderLogic {
             if (StringUtils.equals(orderStatus, OrderStatusEnum.CLOSE.toString())) {
                 orderStatusList.add(OrderStatusEnum.REFUND.toString());
                 orderStatusList.add(OrderStatusEnum.DTK.toString());
-            } else if (StringUtils.equals(orderStatus, OrderStatusEnum.DFH.toString())) {
-                orderStatusList.add(OrderStatusEnum.DJH.toString());
+            } else if (StringUtils.equals(orderStatus, OrderStatusEnum.DJH.toString())) {
+                orderStatusList.add(OrderStatusEnum.JHZ.toString());
             } else if (StringUtils.equals(orderStatus, OrderStatusEnum.DPS.toString())) {
                 orderStatusList.add(OrderStatusEnum.PSZ.toString());
             }

+ 11 - 2
mall-server-api/src/main/java/com/gree/mall/manager/controller/order/OrderController.java

@@ -411,8 +411,17 @@ public class OrderController {
     @ApiOperation("打印次数")
     public ResponseHelper printCount(
             @ApiParam(value = "订单号", required = true) @RequestParam String orderId
-    ) {
-        orderLogic.printCount(orderId);
+    ) throws Exception {
+        Lock obtain = redisLockRegistry.obtain(Constant.RedisPrefix.LOCK_ORDER + orderId);
+        if(!obtain.tryLock(10,TimeUnit.SECONDS)){
+            return ResponseHelper.error("系统繁忙,请稍后再试");
+        }
+        try {
+            orderLogic.printCount(orderId);
+        }finally {
+            obtain.unlock();
+        }
+
         return ResponseHelper.success();
     }
 

+ 10 - 0
mall-server-api/src/main/java/com/gree/mall/manager/logic/order/OrderLogic.java

@@ -346,6 +346,7 @@ public class OrderLogic {
         }
 
         if ((orderInfo.getOrderStatus().equals(OrderStatusEnum.DJH.toString())
+                || orderInfo.getOrderStatus().equals(OrderStatusEnum.JHZ.toString())
                 || orderInfo.getOrderStatus().equals(OrderStatusEnum.DFH.toString())
                 || orderInfo.getOrderStatus().equals(OrderStatusEnum.DPS.toString()))
                 && orderInfo.getExamineStatus().equals(ExamineStatusEnum.OK.getKey())) {
@@ -1265,10 +1266,19 @@ public class OrderLogic {
         }
     }
 
+    @Transactional
     public void printCount(String orderId) {
         OrderPrintRecord record = new OrderPrintRecord();
         record.setOrderId(orderId)
                 .insert();
+
+        final OrderInfo orderInfo = orderInfoService.getById(orderId);
+
+        orderInfoService.lambdaUpdate()
+                .set(OrderInfo::getOrderStatus, OrderStatusEnum.JHZ.toString())
+                .set(OrderInfo::getLastOrderStatus, orderInfo.getOrderStatus())
+                .eq(OrderInfo::getOrderId, orderId)
+                .update();
     }
 
     public List<OrderPrintRecord> queryPrintRecord(String orderId) {