yonge 4 years ago
parent
commit
3860e2984f

+ 13 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ReplacementInstrumentActivityServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service.impl;
 
 import ch.qos.logback.core.util.StringCollectionUtil;
+
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
@@ -22,8 +23,8 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
-
 import com.ym.mec.util.http.HttpUtil;
+
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -276,6 +277,17 @@ public class ReplacementInstrumentActivityServiceImpl extends BaseServiceImpl<In
         if (replacementInstrumentActivity.getPayStatus().equals(1) && replacementPayDto.getRePay()) {
             StudentPaymentOrder oldOrder = studentPaymentOrderService.getUserReplacementIngOrder(userId, replacementInstrumentActivity.getId());
             if (oldOrder != null) {
+                
+                // 查询订单状态
+                PayStatus payStatus = studentPaymentOrderService.queryPayStatus(oldOrder.getPaymentChannel(), oldOrder.getOrderNo(), oldOrder.getTransNo());
+                if(payStatus != PayStatus.FAILED){
+                	if(payStatus == PayStatus.SUCCESSED){
+                		throw new BizException("订单已支付成功,请勿重复支付");
+                	}else if(payStatus == PayStatus.PAYING){
+                		throw new BizException("订单还在交易中,请稍后重试");
+                	}
+                }
+                
                 oldOrder.setStatus(DealStatusEnum.FAILED);
                 oldOrder.setMemo("用户手动关闭");
                 studentPaymentOrderService.callOrderCallBack(oldOrder);

+ 16 - 0
mec-student/src/main/java/com/ym/mec/student/controller/ReplacementInstrumentActivityController.java

@@ -7,15 +7,20 @@ import com.ym.mec.biz.dal.dto.ReplacementInstrumentActivityStatDto;
 import com.ym.mec.biz.dal.dto.ReplacementPayDto;
 import com.ym.mec.biz.dal.entity.ReplacementInstrumentActivity;
 import com.ym.mec.biz.dal.entity.ReplacementInstrumentCooperation;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.enums.PayStatus;
 import com.ym.mec.biz.service.ReplacementInstrumentActivityService;
 import com.ym.mec.biz.service.ReplacementInstrumentCooperationService;
+import com.ym.mec.biz.service.StudentPaymentOrderService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
+
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
@@ -33,6 +38,8 @@ public class ReplacementInstrumentActivityController extends BaseController {
     private SysUserFeignService sysUserFeignService;
     @Autowired
     private ReplacementInstrumentCooperationService replacementInstrumentCooperationService;
+    @Autowired
+    private StudentPaymentOrderService studentPaymentOrderService;
 
     @ApiOperation(value = "新增调查问卷")
     @PostMapping("/insert")
@@ -162,6 +169,15 @@ public class ReplacementInstrumentActivityController extends BaseController {
         }
         //判断用户是否已存在订单
         if (replacementInstrumentActivity.getPayStatus().equals(1) && !replacementPayDto.getRePay()) {
+        	
+        	StudentPaymentOrder applyOrder = studentPaymentOrderService.getUserReplacementIngOrder(replacementInstrumentActivity.getUserId(), replacementInstrumentActivity.getId());
+        	// 查询订单状态
+            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, "您有待支付的订单");
         }
         Map payMap = replacementInstrumentActivityService.pay(replacementPayDto);