소스 검색

修改齐齐哈尔购买会员逻辑

hgw 3 년 전
부모
커밋
be56f6d3ad
1개의 변경된 파일31개의 추가작업 그리고 19개의 파일을 삭제
  1. 31 19
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java

+ 31 - 19
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java

@@ -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("该分部无此活动"));