|
@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
import com.yonge.cooleshow.biz.dal.dto.req.OrderPayReq;
|
|
import com.yonge.cooleshow.biz.dal.dto.req.OrderPayReq;
|
|
-import com.yonge.cooleshow.biz.dal.dto.req.OrderRefundReq;
|
|
|
|
import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
|
|
import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
|
|
import com.yonge.cooleshow.biz.dal.dto.search.OrderSearch;
|
|
import com.yonge.cooleshow.biz.dal.dto.search.OrderSearch;
|
|
import com.yonge.cooleshow.biz.dal.entity.UserOrder;
|
|
import com.yonge.cooleshow.biz.dal.entity.UserOrder;
|
|
@@ -25,6 +24,8 @@ import com.yonge.toolset.utils.string.StringUtil;
|
|
import com.yonge.toolset.utils.web.WebUtil;
|
|
import com.yonge.toolset.utils.web.WebUtil;
|
|
import io.swagger.annotations.*;
|
|
import io.swagger.annotations.*;
|
|
import org.redisson.api.RedissonClient;
|
|
import org.redisson.api.RedissonClient;
|
|
|
|
+import org.slf4j.Logger;
|
|
|
|
+import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.http.HttpStatus;
|
|
import org.springframework.http.HttpStatus;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
@@ -37,8 +38,6 @@ import java.time.LocalDateTime;
|
|
import java.time.LocalTime;
|
|
import java.time.LocalTime;
|
|
import java.time.temporal.TemporalAdjusters;
|
|
import java.time.temporal.TemporalAdjusters;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
-import java.util.concurrent.ExecutionException;
|
|
|
|
-import java.util.concurrent.Future;
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -49,6 +48,8 @@ import java.util.concurrent.TimeUnit;
|
|
@RequestMapping("/userOrder")
|
|
@RequestMapping("/userOrder")
|
|
@Api(value = "订单接口", tags = "订单接口")
|
|
@Api(value = "订单接口", tags = "订单接口")
|
|
public class UserOrderController extends BaseController {
|
|
public class UserOrderController extends BaseController {
|
|
|
|
+ private final static Logger log = LoggerFactory.getLogger(UserOrderController.class);
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private SysUserFeignService sysUserFeignService;
|
|
private SysUserFeignService sysUserFeignService;
|
|
@Autowired
|
|
@Autowired
|
|
@@ -66,15 +67,12 @@ public class UserOrderController extends BaseController {
|
|
orderReq.setUserId(user.getId());
|
|
orderReq.setUserId(user.getId());
|
|
|
|
|
|
try {
|
|
try {
|
|
- Future<HttpResponseResult<UserOrder>> httpResponseResultFuture = DistributedLock.of(redissonClient)
|
|
|
|
- .callIfLockCanGet(CacheNameEnum.LOCK_EXECUTE_ORDER.getRedisKey(user.getId())
|
|
|
|
|
|
+ return DistributedLock.of(redissonClient)
|
|
|
|
+ .runIfLockCanGet(CacheNameEnum.LOCK_EXECUTE_ORDER.getRedisKey(user.getId())
|
|
, () -> userOrderService.executeOrder(orderReq), 60L, TimeUnit.SECONDS);
|
|
, () -> userOrderService.executeOrder(orderReq), 60L, TimeUnit.SECONDS);
|
|
- return httpResponseResultFuture.get();
|
|
|
|
} catch (BizException e) {
|
|
} catch (BizException e) {
|
|
return HttpResponseResult.failed(e.getMessage());
|
|
return HttpResponseResult.failed(e.getMessage());
|
|
- } catch (ExecutionException e) {
|
|
|
|
- return HttpResponseResult.failed(e.getCause().getMessage());
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
|
+ } catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
return HttpResponseResult.failed("下单失败");
|
|
return HttpResponseResult.failed("下单失败");
|
|
}
|
|
}
|
|
@@ -94,14 +92,11 @@ public class UserOrderController extends BaseController {
|
|
payReq.setIpAddress(WebUtil.getRemoteIp(request));
|
|
payReq.setIpAddress(WebUtil.getRemoteIp(request));
|
|
|
|
|
|
try {
|
|
try {
|
|
- Future<HttpResponseResult<OrderPayRes>> httpResponseResultFuture = DistributedLock.of(redissonClient)
|
|
|
|
- .callIfLockCanGet(CacheNameEnum.LOCK_EXECUTE_ORDER.getRedisKey(user.getId())
|
|
|
|
|
|
+ return DistributedLock.of(redissonClient)
|
|
|
|
+ .runIfLockCanGet(CacheNameEnum.LOCK_EXECUTE_ORDER.getRedisKey(user.getId())
|
|
, () -> userOrderService.orderPay(payReq), 60L, TimeUnit.SECONDS);
|
|
, () -> userOrderService.orderPay(payReq), 60L, TimeUnit.SECONDS);
|
|
- return httpResponseResultFuture.get();
|
|
|
|
} catch (BizException e) {
|
|
} catch (BizException e) {
|
|
return HttpResponseResult.failed(e.getMessage());
|
|
return HttpResponseResult.failed(e.getMessage());
|
|
- } catch (ExecutionException e) {
|
|
|
|
- return HttpResponseResult.failed(e.getCause().getMessage());
|
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
return HttpResponseResult.failed("付款失败");
|
|
return HttpResponseResult.failed("付款失败");
|
|
@@ -151,12 +146,12 @@ public class UserOrderController extends BaseController {
|
|
}
|
|
}
|
|
payReq.setUserId(user.getId());
|
|
payReq.setUserId(user.getId());
|
|
|
|
|
|
- Future<HttpResponseResult<Boolean>> httpResponseResultFuture = DistributedLock.of(redissonClient)
|
|
|
|
- .callIfLockCanGet(CacheNameEnum.LOCK_EXECUTE_ORDER.getRedisKey(user.getId())
|
|
|
|
- , () -> userOrderService.orderCancel(payReq), 60L, TimeUnit.SECONDS);
|
|
|
|
-
|
|
|
|
try {
|
|
try {
|
|
- return httpResponseResultFuture.get();
|
|
|
|
|
|
+ return DistributedLock.of(redissonClient)
|
|
|
|
+ .runIfLockCanGet(CacheNameEnum.LOCK_EXECUTE_ORDER.getRedisKey(user.getId())
|
|
|
|
+ , () -> userOrderService.orderCancel(payReq), 60L, TimeUnit.SECONDS);
|
|
|
|
+ } catch (BizException e) {
|
|
|
|
+ return HttpResponseResult.failed(e.getMessage());
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
return HttpResponseResult.failed("取消订单失败");
|
|
return HttpResponseResult.failed("取消订单失败");
|