Explorar el Código

Merge branch 'feature/1113-vipCourse' into test

刘俊驰 hace 9 meses
padre
commit
469bbef64a

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java

@@ -1447,7 +1447,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
                 .eq(CourseSchedule::getId, courseId)
                 .eq(CourseSchedule::getLock, 0)
                 .eq(CourseSchedule::getStatus, CourseScheduleEnum.NOT_START)
-                .eq(CourseSchedule::getType, CourseScheduleEnum.PRACTICE));
+                .in(CourseSchedule::getType, CourseScheduleEnum.PRACTICE, CourseScheduleEnum.VIP));
         if (ObjectUtil.isEmpty(schedule)) {
             throw new BizException("无法调整该课程,课程不存在");
         }
@@ -1465,7 +1465,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         //查询是否有人购买
         CourseScheduleStudentPayment studentPayment = paymentDao.selectOne(Wrappers.<CourseScheduleStudentPayment>lambdaQuery()
                 .eq(CourseScheduleStudentPayment::getCourseId, courseId)
-                .eq(CourseScheduleStudentPayment::getCourseType, CourseScheduleEnum.PRACTICE));
+                .in(CourseScheduleStudentPayment::getCourseType, CourseScheduleEnum.PRACTICE,CourseScheduleEnum.VIP));
         if (ObjectUtil.isEmpty(studentPayment)) {
             throw new BizException("课程无人购买");
         }

+ 18 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserPaymentCoreServiceImpl.java

@@ -1674,15 +1674,26 @@ DISCOUNT("畅学卡")
         // 执行状态锁定
         String lockNameInner = redisCacheService.getPaymentCacheKey(orderRefundBill.getBillNo());
         DistributedLock.of(redissonClient).runIfLockCanGet(lockNameInner, () -> {
-            RefundResp refundResp = paymentServiceContext.getPaymentService(paymentOrder.getPaymentVendor()).refund(refundOrder);
-            // 申请请求失败
-            if (PaymentStatus.FAILED == refundResp.getPaymentStatus()) {
+            if (StringUtils.isEmpty(paymentOrder.getTransNo())) {
+                orderRefundBill.setStatus(TradeStatusEnum.succeeded);
+                userOrderRefundBillService.save(orderRefundBill);
+            }
+            try {
+                RefundResp refundResp = paymentServiceContext.getPaymentService(paymentOrder.getPaymentVendor()).refund(refundOrder);
+                // 申请请求失败
+                if (PaymentStatus.FAILED == refundResp.getPaymentStatus()) {
+                    orderRefundBill.setStatus(TradeStatusEnum.failed);
+                    orderRefundBill.setPayFailMsg(refundResp.getMsg());
+                } else {
+                    orderRefundBill.setTransNo(refundResp.getTransNo());
+                    orderRefundBill.setStatus(TradeStatusEnum.pending);
+                }
+            } catch (Exception e) {
                 orderRefundBill.setStatus(TradeStatusEnum.failed);
-                orderRefundBill.setPayFailMsg(refundResp.getMsg());
-            } else {
-                orderRefundBill.setTransNo(refundResp.getTransNo());
-                orderRefundBill.setStatus(TradeStatusEnum.pending);
+                orderRefundBill.setPayFailMsg(e.getMessage());
+                log.error("refundOnly orderNo={}", orderRefundBill.getBillNo(), e);
             }
+
             userOrderRefundBillService.save(orderRefundBill);
 
         }, 10L, TimeUnit.SECONDS);