|  | @@ -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.entity.SysUser;
 | 
	
		
			
				|  |  |  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.search.OrderSearch;
 | 
	
		
			
				|  |  |  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 io.swagger.annotations.*;
 | 
	
		
			
				|  |  |  import org.redisson.api.RedissonClient;
 | 
	
		
			
				|  |  | +import org.slf4j.Logger;
 | 
	
		
			
				|  |  | +import org.slf4j.LoggerFactory;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  |  import org.springframework.http.HttpStatus;
 | 
	
		
			
				|  |  |  import org.springframework.web.bind.annotation.*;
 | 
	
	
		
			
				|  | @@ -37,8 +38,6 @@ import java.time.LocalDateTime;
 | 
	
		
			
				|  |  |  import java.time.LocalTime;
 | 
	
		
			
				|  |  |  import java.time.temporal.TemporalAdjusters;
 | 
	
		
			
				|  |  |  import java.util.Date;
 | 
	
		
			
				|  |  | -import java.util.concurrent.ExecutionException;
 | 
	
		
			
				|  |  | -import java.util.concurrent.Future;
 | 
	
		
			
				|  |  |  import java.util.concurrent.TimeUnit;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 | 
	
	
		
			
				|  | @@ -49,6 +48,8 @@ import java.util.concurrent.TimeUnit;
 | 
	
		
			
				|  |  |  @RequestMapping("/userOrder")
 | 
	
		
			
				|  |  |  @Api(value = "订单接口", tags = "订单接口")
 | 
	
		
			
				|  |  |  public class UserOrderController extends BaseController {
 | 
	
		
			
				|  |  | +    private final static Logger log = LoggerFactory.getLogger(UserOrderController.class);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private SysUserFeignService sysUserFeignService;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
	
		
			
				|  | @@ -66,15 +67,12 @@ public class UserOrderController extends BaseController {
 | 
	
		
			
				|  |  |          orderReq.setUserId(user.getId());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          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);
 | 
	
		
			
				|  |  | -            return httpResponseResultFuture.get();
 | 
	
		
			
				|  |  |          } catch (BizException e) {
 | 
	
		
			
				|  |  |              return HttpResponseResult.failed(e.getMessage());
 | 
	
		
			
				|  |  | -        } catch (ExecutionException e) {
 | 
	
		
			
				|  |  | -            return HttpResponseResult.failed(e.getCause().getMessage());
 | 
	
		
			
				|  |  | -        } catch (Exception e) {
 | 
	
		
			
				|  |  | +        }  catch (Exception e) {
 | 
	
		
			
				|  |  |              e.printStackTrace();
 | 
	
		
			
				|  |  |              return HttpResponseResult.failed("下单失败");
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -94,14 +92,11 @@ public class UserOrderController extends BaseController {
 | 
	
		
			
				|  |  |          payReq.setIpAddress(WebUtil.getRemoteIp(request));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          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);
 | 
	
		
			
				|  |  | -            return httpResponseResultFuture.get();
 | 
	
		
			
				|  |  |          } catch (BizException e) {
 | 
	
		
			
				|  |  |              return HttpResponseResult.failed(e.getMessage());
 | 
	
		
			
				|  |  | -        } catch (ExecutionException e) {
 | 
	
		
			
				|  |  | -            return HttpResponseResult.failed(e.getCause().getMessage());
 | 
	
		
			
				|  |  |          } catch (Exception e) {
 | 
	
		
			
				|  |  |              e.printStackTrace();
 | 
	
		
			
				|  |  |              return HttpResponseResult.failed("付款失败");
 | 
	
	
		
			
				|  | @@ -151,12 +146,12 @@ public class UserOrderController extends BaseController {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          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 {
 | 
	
		
			
				|  |  | -            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) {
 | 
	
		
			
				|  |  |              e.printStackTrace();
 | 
	
		
			
				|  |  |              return HttpResponseResult.failed("取消订单失败");
 |