|
@@ -5,14 +5,19 @@ import com.yonge.cooleshow.mall.common.api.CommonPage;
|
|
|
import com.yonge.cooleshow.mall.common.api.CommonResult;
|
|
|
import com.yonge.cooleshow.admin.dto.*;
|
|
|
import com.yonge.cooleshow.admin.service.OmsOrderService;
|
|
|
+import com.yonge.cooleshow.mall.common.enums.OrderCacheEnum;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.redisson.api.RLock;
|
|
|
+import org.redisson.api.RedissonClient;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import java.util.List;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
/**
|
|
|
* 订单管理Controller
|
|
@@ -21,10 +26,13 @@ import java.util.List;
|
|
|
@Controller
|
|
|
@Api(tags = "OmsOrderController", description = "订单管理")
|
|
|
@RequestMapping("/order")
|
|
|
+@Slf4j
|
|
|
public class OmsOrderController {
|
|
|
@Autowired
|
|
|
private OmsOrderService orderService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private RedissonClient redissonClient;
|
|
|
@ApiOperation("查询订单")
|
|
|
@RequestMapping(value = "/list", method = RequestMethod.GET)
|
|
|
@ResponseBody
|
|
@@ -39,10 +47,24 @@ public class OmsOrderController {
|
|
|
@RequestMapping(value = "/update/delivery", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
public CommonResult delivery(@RequestBody List<OmsOrderDeliveryParam> deliveryParamList) {
|
|
|
- int count = orderService.delivery(deliveryParamList);
|
|
|
- if (count > 0) {
|
|
|
- return CommonResult.success(count);
|
|
|
+
|
|
|
+ RLock lock = redissonClient.getLock(OrderCacheEnum.LOCK_REFUND_ORDER_MALL + ":delivery");
|
|
|
+ try {
|
|
|
+ boolean b = lock.tryLock(60, 60, TimeUnit.SECONDS);
|
|
|
+ if (b) {
|
|
|
+ int count = orderService.delivery(deliveryParamList);
|
|
|
+ if (count > 0) {
|
|
|
+ return CommonResult.success(count);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (InterruptedException e) {
|
|
|
+ log.error("批量发货异常", e);
|
|
|
+ } finally {
|
|
|
+ if (lock.getHoldCount() >0) {
|
|
|
+ lock.unlock();
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
return CommonResult.failed();
|
|
|
}
|
|
|
|