yonge %!s(int64=4) %!d(string=hai) anos
pai
achega
ec51d93962

+ 15 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -2566,14 +2566,21 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (calenderDetail.getPaymentOrderId() != null) {
             StudentPaymentOrder oldStudentPaymentOrder = studentPaymentOrderDao.get(calenderDetail.getPaymentOrderId());
             if (oldStudentPaymentOrder != null) {
-                if (oldStudentPaymentOrder.getStatus() == SUCCESS) {
-                    throw new BizException("您已支付请勿重复提交");
-                } else if (oldStudentPaymentOrder.getStatus() == ING) {
-                    oldStudentPaymentOrder.setStatus(CLOSE);
-                    studentPaymentOrderService.update(oldStudentPaymentOrder);
-                    if (oldStudentPaymentOrder.getBalancePaymentAmount() != null && oldStudentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
-                        sysUserCashAccountService.updateBalance(oldStudentPaymentOrder.getUserId(), oldStudentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "关闭订单");
-                    }
+                
+                // 查询订单状态
+                PayStatus payStatus = studentPaymentOrderService.queryPayStatus(oldStudentPaymentOrder.getPaymentChannel(), oldStudentPaymentOrder.getOrderNo(), oldStudentPaymentOrder.getTransNo());
+                if(payStatus != PayStatus.FAILED){
+                	if(payStatus == PayStatus.SUCCESSED){
+                		throw new BizException("订单已支付成功,请勿重复支付");
+                	}else if(payStatus == PayStatus.PAYING){
+                		throw new BizException("订单还在交易中,请稍后重试");
+                	}
+                }
+                
+                oldStudentPaymentOrder.setStatus(CLOSE);
+                studentPaymentOrderService.update(oldStudentPaymentOrder);
+                if (oldStudentPaymentOrder.getBalancePaymentAmount() != null && oldStudentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
+                    sysUserCashAccountService.updateBalance(oldStudentPaymentOrder.getUserId(), oldStudentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "关闭订单");
                 }
             }
         }

+ 8 - 0
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -252,6 +252,14 @@ public class MusicGroupController extends BaseController {
             List<StudentPaymentOrder> list = studentPaymentOrderService.queryByCondition(GroupType.MUSIC, calender.getMusicGroupId(), userId, DealStatusEnum.ING,
                     OrderTypeEnum.RENEW);
             if (list.size() > 0) {
+            	StudentPaymentOrder applyOrder = list.get(0);
+            	// 查询订单状态
+                PayStatus payStatus = studentPaymentOrderService.queryPayStatus(applyOrder.getPaymentChannel(), applyOrder.getOrderNo(), applyOrder.getTransNo());
+                if(payStatus == PayStatus.SUCCESSED){
+            		throw new BizException("订单已支付成功,请勿重复支付");
+            	}else if(payStatus == PayStatus.PAYING){
+            		throw new BizException("订单还在交易中,请稍后重试");
+            	}
                 return failed(HttpStatus.CONTINUE, "您有待支付的订单");
             }
         }