| 
					
				 | 
			
			
				@@ -5,8 +5,6 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.auth.api.entity.SysUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dto.req.OrderRefundReq; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dto.search.UserOrderRefundSearch; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.entity.UserOrder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.entity.UserOrderRefund; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.enums.CacheNameEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.service.UserOrderRefundService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.support.DistributedLock; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -23,71 +21,70 @@ import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.http.HttpStatus; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.web.bind.annotation.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.concurrent.Future; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.concurrent.TimeUnit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @RestController 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @RequestMapping("/userOrderRefunds") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Api(value = "用户退款表", tags = "用户退款表") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class UserOrderRefundController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	private SysUserFeignService sysUserFeignService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	private RedissonClient redissonClient; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private SysUserFeignService sysUserFeignService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private RedissonClient redissonClient; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private UserOrderRefundService userOrderRefundService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 查询单条 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @GetMapping("/detail/{id}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "详情", notes = "传入id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public HttpResponseResult<UserOrderRefundVo> detail(@PathVariable("id") Long id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		SysUser user = sysUserFeignService.queryUserInfo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (user == null || null == user.getId()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed(HttpStatus.FORBIDDEN, "请登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    	return succeed(userOrderRefundService.detail(id)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysUser user = sysUserFeignService.queryUserInfo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (user == null || null == user.getId()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed(HttpStatus.FORBIDDEN, "请登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return succeed(userOrderRefundService.detail(id)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 查询分页 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @PostMapping("/page") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "查询分页", notes = "传入orderRefundsSearch") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public HttpResponseResult<PageInfo<UserOrderRefundVo>> page(@RequestBody UserOrderRefundSearch query) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		SysUser user = sysUserFeignService.queryUserInfo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (user == null || null == user.getId()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed(HttpStatus.FORBIDDEN, "请登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		query.setUserId(user.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		IPage<UserOrderRefundVo> pages = userOrderRefundService.selectPage(PageUtil.getPage(query), query); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysUser user = sysUserFeignService.queryUserInfo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (user == null || null == user.getId()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed(HttpStatus.FORBIDDEN, "请登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        query.setUserId(user.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IPage<UserOrderRefundVo> pages = userOrderRefundService.selectPage(PageUtil.getPage(query), query); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return succeed(PageUtil.pageInfo(pages)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@ApiOperation(value = "订单退款") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	@PostMapping("/orderRefund") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public HttpResponseResult<Boolean> orderRefund(@RequestBody OrderRefundReq refundReq) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		SysUser user = sysUserFeignService.queryUserInfo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (user == null || null == user.getId()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return failed(HttpStatus.FORBIDDEN, "请登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		refundReq.setUserId(user.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "订单退款") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping("/orderRefund") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public HttpResponseResult<Boolean> orderRefund(@RequestBody OrderRefundReq refundReq) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysUser user = sysUserFeignService.queryUserInfo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (user == null || null == user.getId()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return failed(HttpStatus.FORBIDDEN, "请登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        refundReq.setUserId(user.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			HttpResponseResult<Boolean> res = DistributedLock.of(redissonClient) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					.runIfLockCanGet(CacheNameEnum.LOCK_EXECUTE_ORDER.getRedisKey(user.getId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							, () -> userOrderRefundService.orderRefund(refundReq), 60L, TimeUnit.SECONDS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(null != res){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				return res; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				return HttpResponseResult.failed("订单退款失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} catch (BizException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return HttpResponseResult.failed(e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return HttpResponseResult.failed("订单退款失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            HttpResponseResult<Boolean> res = DistributedLock.of(redissonClient) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .runIfLockCanGet(CacheNameEnum.LOCK_EXECUTE_ORDER.getRedisKey(user.getId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            , () -> userOrderRefundService.orderRefund(refundReq), 60L, TimeUnit.SECONDS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (null != res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return res; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return HttpResponseResult.failed("订单退款失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (BizException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return HttpResponseResult.failed(e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return HttpResponseResult.failed("订单退款失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |