|
@@ -191,19 +191,26 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
StudentPaymentOrder studentPaymentOrder = Optional.ofNullable(dto.getOrderNo())
|
|
|
.map(studentPaymentOrderService::findOrderByOrderNo)
|
|
|
.orElseThrow(() -> new BizException("未查询到继续支付的订单!"));
|
|
|
- //关闭订单 退余额 退优惠券
|
|
|
- studentPaymentOrderService.quitCouponAndBalance(studentPaymentOrder);
|
|
|
- //将订单关闭
|
|
|
- studentPaymentOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
- studentPaymentOrder.setUpdateTime(new Date());
|
|
|
- studentPaymentOrderService.update(studentPaymentOrder);
|
|
|
- //从缓存取出上次传入参数
|
|
|
- RBucket<Object> cache = redissonClient.getBucket(BUY_2_QQHE_LOCK + studentPaymentOrder.getOrderNo());
|
|
|
- if (!cache.isExists()) {
|
|
|
- return BaseController.failed("订单超时,请重新购买!");
|
|
|
+ if (studentPaymentOrder.getStatus().getCode().equals(DealStatusEnum.ING.getCode())) {
|
|
|
+ checkOrder(studentPaymentOrder);
|
|
|
+ //关闭订单 退余额 退优惠券
|
|
|
+ studentPaymentOrderService.quitCouponAndBalance(studentPaymentOrder);
|
|
|
+ //将订单关闭
|
|
|
+ studentPaymentOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
+ studentPaymentOrder.setUpdateTime(new Date());
|
|
|
+ studentPaymentOrderService.update(studentPaymentOrder);
|
|
|
+ //从缓存取出上次传入参数
|
|
|
+ RBucket<Object> cache = redissonClient.getBucket(BUY_2_QQHE_LOCK + studentPaymentOrder.getOrderNo());
|
|
|
+ if (!cache.isExists()) {
|
|
|
+ return BaseController.failed("订单超时,请重新购买!");
|
|
|
+ }
|
|
|
+ Map<String, Object> cacheMap = (Map<String, Object>) cache.get();
|
|
|
+ dto = (MemberPayParamDto) cacheMap.get("dto");
|
|
|
+ } else if (studentPaymentOrder.getStatus().getCode().equals(DealStatusEnum.SUCCESS.getCode())) {
|
|
|
+ return BaseController.failed("该订单已支付成功!");
|
|
|
+ } else {
|
|
|
+ return BaseController.failed("该订单已关闭,请重新购买!");
|
|
|
}
|
|
|
- Map<String, Object> cacheMap = (Map<String, Object>) cache.get();
|
|
|
- dto = (MemberPayParamDto) cacheMap.get("dto");
|
|
|
}
|
|
|
|
|
|
int val = dto.getVal();
|
|
@@ -261,13 +268,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
//订单是ing 才可以关闭
|
|
|
if (orderByOrderNo.getStatus().getCode().equals(DealStatusEnum.ING.getCode())) {
|
|
|
//有第三方支付编号的 要主动去查询一下
|
|
|
- if (StringUtils.isNotBlank(orderByOrderNo.getTransNo())) {
|
|
|
- Map<String, Object> payment = Payment.queryPayment(orderByOrderNo.getTransNo());
|
|
|
- String status = (String) payment.get("status");
|
|
|
- if (status.equals("succeeded")) {
|
|
|
- throw new BizException("该订单已经支付成功,无法关闭。");
|
|
|
- }
|
|
|
- }
|
|
|
+ checkOrder(orderByOrderNo);
|
|
|
//关闭订单 退余额 退优惠券
|
|
|
studentPaymentOrderService.quitCouponAndBalance(orderByOrderNo);
|
|
|
//将订单关闭
|
|
@@ -281,6 +282,17 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
return BaseController.succeed();
|
|
|
}
|
|
|
|
|
|
+ //检查订单在第三方是否支付成功
|
|
|
+ private void checkOrder(StudentPaymentOrder orderByOrderNo) throws Exception {
|
|
|
+ if (StringUtils.isNotBlank(orderByOrderNo.getTransNo())) {
|
|
|
+ Map<String, Object> payment = Payment.queryPayment(orderByOrderNo.getTransNo());
|
|
|
+ String status = (String) payment.get("status");
|
|
|
+ if (status.equals("succeeded")) {
|
|
|
+ throw new BizException("该订单已经支付成功,无法关闭。");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private SysUser getSysUser() {
|
|
|
Optional<SysUser> sysUserOpt = Optional.ofNullable(sysUserFeignService.queryUserInfo());
|
|
|
sysUserOpt.filter(s -> s.getOrganId() == 59).orElseThrow(() -> new BizException("该分部无此活动"));
|