|
@@ -13,6 +13,7 @@ import com.yonge.cooleshow.biz.dal.entity.TenantStaff;
|
|
import com.yonge.cooleshow.biz.dal.entity.UserOrder;
|
|
import com.yonge.cooleshow.biz.dal.entity.UserOrder;
|
|
import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
import com.yonge.cooleshow.biz.dal.service.TenantStaffService;
|
|
import com.yonge.cooleshow.biz.dal.service.TenantStaffService;
|
|
|
|
+import com.yonge.cooleshow.biz.dal.service.UserOrderService;
|
|
import com.yonge.cooleshow.biz.dal.service.UserPaymentCoreService;
|
|
import com.yonge.cooleshow.biz.dal.service.UserPaymentCoreService;
|
|
import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
|
|
import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
|
|
import com.yonge.cooleshow.common.entity.HttpResponseResult;
|
|
import com.yonge.cooleshow.common.entity.HttpResponseResult;
|
|
@@ -26,6 +27,7 @@ import io.swagger.annotations.ApiImplicitParam;
|
|
import io.swagger.annotations.ApiImplicitParams;
|
|
import io.swagger.annotations.ApiImplicitParams;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
+import org.redisson.api.RedissonClient;
|
|
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.validation.annotation.Validated;
|
|
import org.springframework.validation.annotation.Validated;
|
|
@@ -36,6 +38,7 @@ import javax.servlet.http.HttpServletRequest;
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
|
|
|
|
import static com.yonge.cooleshow.common.entity.HttpResponseResult.failed;
|
|
import static com.yonge.cooleshow.common.entity.HttpResponseResult.failed;
|
|
|
|
+import static com.yonge.cooleshow.common.entity.HttpResponseResult.succeed;
|
|
|
|
|
|
@Validated
|
|
@Validated
|
|
@RestController
|
|
@RestController
|
|
@@ -45,6 +48,10 @@ public class UserOrderController {
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
|
+ private UserOrderService userOrderService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private RedissonClient redissonClient;
|
|
|
|
+ @Autowired
|
|
private SysUserFeignService sysUserFeignService;
|
|
private SysUserFeignService sysUserFeignService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
@@ -108,8 +115,9 @@ public class UserOrderController {
|
|
return R.from(paymentConfig);
|
|
return R.from(paymentConfig);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
@ApiOperation(value = "取消订单")
|
|
@ApiOperation(value = "取消订单")
|
|
- @PostMapping("/orderCancel/v2")
|
|
|
|
|
|
+ @PostMapping("/orderCancel")
|
|
@ApiImplicitParams({
|
|
@ApiImplicitParams({
|
|
@ApiImplicitParam(name = "orderNo", value = "订单号", paramType = "query", dataType = "String", required = true),
|
|
@ApiImplicitParam(name = "orderNo", value = "订单号", paramType = "query", dataType = "String", required = true),
|
|
@ApiImplicitParam(name = "reason", value = "取消说明", paramType = "query", dataType = "String")
|
|
@ApiImplicitParam(name = "reason", value = "取消说明", paramType = "query", dataType = "String")
|
|
@@ -124,6 +132,52 @@ public class UserOrderController {
|
|
}
|
|
}
|
|
payReq.setUserId(user.getId());
|
|
payReq.setUserId(user.getId());
|
|
|
|
|
|
|
|
+ UserOrder order = userOrderService.getByOrderNo(payReq.getOrderNo());
|
|
|
|
+ if (null == order) {
|
|
|
|
+ return failed("订单不存在");
|
|
|
|
+ }
|
|
|
|
+ if(order.getPaymentVersion().equals(EPaymentVersion.V2)){
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 用户取消支付
|
|
|
|
+ userPaymentCoreService.cancelPayment(JwtUserInfo.builder().userId(user.getId().toString()).clientType(ClientEnum.STUDENT.getCode()).build(), payReq.getOrderNo());
|
|
|
|
+ } else {
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ HttpResponseResult<Boolean> res = DistributedLock.of(redissonClient)
|
|
|
|
+ .runIfLockToFunction(CacheNameEnum.LOCK_EXECUTE_ORDER.getRedisKey(payReq.getOrderNo())
|
|
|
|
+ , userOrderService::orderCancel, payReq, 10L);
|
|
|
|
+ if (null != res) {
|
|
|
|
+ return res;
|
|
|
|
+ } else {
|
|
|
|
+ return HttpResponseResult.failed("取消订单失败");
|
|
|
|
+ }
|
|
|
|
+ } catch (com.yonge.toolset.base.exception.BizException e) {
|
|
|
|
+ return HttpResponseResult.failed(e.getMessage());
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ return HttpResponseResult.failed("取消订单失败");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return succeed();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @ApiOperation(value = "取消订单")
|
|
|
|
+ @PostMapping("/orderCancel/v2")
|
|
|
|
+ @ApiImplicitParams({
|
|
|
|
+ @ApiImplicitParam(name = "orderNo", value = "订单号", paramType = "query", dataType = "String", required = true),
|
|
|
|
+ @ApiImplicitParam(name = "reason", value = "取消说明", paramType = "query", dataType = "String")
|
|
|
|
+ })
|
|
|
|
+ public HttpResponseResult<Boolean> orderCancelV2(@ApiIgnore @RequestBody OrderPayReq payReq) {
|
|
|
|
+ SysUser user = sysUserFeignService.queryUserInfo();
|
|
|
|
+ if (user == null || null == user.getId()) {
|
|
|
|
+ return failed(HttpStatus.FORBIDDEN, "请登录");
|
|
|
|
+ }
|
|
|
|
+ if (StringUtil.isEmpty(payReq.getOrderNo())) {
|
|
|
|
+ return failed("订单号不能为空");
|
|
|
|
+ }
|
|
|
|
+ payReq.setUserId(user.getId());
|
|
|
|
+
|
|
// 用户取消支付
|
|
// 用户取消支付
|
|
userPaymentCoreService.cancelPayment(JwtUserInfo.builder().userId(user.getId().toString()).clientType(ClientEnum.TENANT.getCode()).build(), payReq.getOrderNo());
|
|
userPaymentCoreService.cancelPayment(JwtUserInfo.builder().userId(user.getId().toString()).clientType(ClientEnum.TENANT.getCode()).build(), payReq.getOrderNo());
|
|
|
|
|
|
@@ -145,7 +199,7 @@ public class UserOrderController {
|
|
// 用户取消支付
|
|
// 用户取消支付
|
|
|
|
|
|
|
|
|
|
- return HttpResponseResult.succeed(userPaymentCoreService.orderPayType(payTypeReq));
|
|
|
|
|
|
+ return succeed(userPaymentCoreService.orderPayType(payTypeReq));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|