ソースを参照

fix: 订单显示待支付,收款显示已支付

xdd 2 ヶ月 前
コミット
e07b2c0412

+ 2 - 1
fs-admin/src/main/java/com/fs/store/controller/FsStorePaymentController.java

@@ -209,6 +209,8 @@ public class FsStorePaymentController extends BaseController
                     return R.error("订单支付状态异常,联系财务检查");
                 }
             }
+        } else if(payMode.equals("tzbk")){
+
         }
 
         return R.error("请检查外部订单号");
@@ -332,7 +334,6 @@ public class FsStorePaymentController extends BaseController
             }
             //易宝退款
 
-
             //小雨点退款
 //            payment.setRefundMoney(fsStorePayment.getRefundMoney());
 //            fsStorePaymentService.updateFsStorePayment(payment);

+ 5 - 6
fs-api/src/main/java/com/fs/app/controller/PayController.java

@@ -115,7 +115,7 @@ public class PayController {
             String retCode = resultDTO.getRetCode();
             if(!retCode.equals("00000000")){
                 logger.info("台州银行支付回调查询失败:"+retCode);
-                return "";
+                return "error";
             }
             String orderId = tzPaymentResultDTO.getOrderNo().replace("store","");
             if(StringUtils.isNotBlank(orderId)){
@@ -123,7 +123,7 @@ public class PayController {
                         tzPaymentResultDTO.getOrderFlowNo(),tzPaymentResultDTO.getChlTrxId(),tzPaymentResultDTO.getOrderFlowNo());
             }
         }
-        return "";
+        return "success";
 
     }
     @ApiOperation("台州银行第三方退款回调")
@@ -134,10 +134,9 @@ public class PayController {
         if(dto.getRefundOrdStatus().equals("90")){
             FsStorePayment storePayment=storePaymentService.selectFsStorePaymentByCode(dto.getRefundOrderNo());
             if(storePayment!=null){
-                storePayment.setRefundMoney(dto.getRefundOrdTransAmt());
-                storePayment.setStatus(-1);
-                storePayment.setRefundTime(new Date());
-                storePaymentService.updateFsStorePayment(storePayment);
+                storePaymentService.refund(dto.getRefundOrderNo());
+                Long orderId = storePayment.getOrderId();
+                orderService.refundOrder(orderId);
             }
             return "success";
         }

+ 10 - 8
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

@@ -1591,7 +1591,11 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             FsStoreOrder order=null;
             if(type.equals(1)){
                 FsStorePayment storePayment=paymentService.selectFsStorePaymentByCode(payCode);
-                if(storePayment==null||!storePayment.getStatus().equals(0)){
+                if(storePayment==null){
+                    throw new CustomException("当前支付记录未找到!");
+                }
+                if(!storePayment.getStatus().equals(0)){
+                    logger.warn("当前支付记录不为已支付,已经跳过: paycode: {}",storePayment.getPayCode());
                     return "";
                 }
                 FsStorePayment storePaymentMap=new FsStorePayment();
@@ -1609,8 +1613,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                     return "";
                 }
                 if(order!=null&&!order.getPaid().equals(0)){
-                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    return "";
+                    throw new CustomException("当前订单未找到! paycode:"+payCode);
                 }
             }
             else if(type.equals(2)){
@@ -1660,8 +1663,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         }
         catch (Exception e){
             logger.error("payConfirm: {} ",e.getMessage(),e);
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            return "";
+            throw new RuntimeException(e);
         }
         return "SUCCESS";
     }
@@ -3231,13 +3233,13 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                         if(ObjectUtil.isNotNull(body)){
                             if("80".equals(body.getStatus()) || "90".equals(body.getStatus())){
                                 // 更新订单状态和支付状态
-                                payment.setStatus(1);
-                                fsStorePaymentMapper.updateFsStorePayment(payment);
+//                                payment.setStatus(1);
+//                                fsStorePaymentMapper.updateFsStorePayment(payment);
                                 orderService.payConfirm(1, order.getId(), payment.getPayCode(),
                                         payment.getTradeNo(),
                                         body.getChlTrxId(),
                                         payment.getTradeNo());
-                                return R.error("订单已支付");
+                                return R.error("订单已支付,请刷新页面");
                             }
                         }
                     }

+ 1 - 1
fs-service-system/src/main/java/com/fs/store/service/impl/FsStorePaymentServiceImpl.java

@@ -258,7 +258,7 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
     public String refund(String orderCode) {
         FsStorePayment payment=fsStorePaymentMapper.selectFsStorePaymentByCode(orderCode);
         payment.setStatus(-1);

+ 3 - 2
fs-user-app/src/main/java/com/fs/app/controller/StoreOrderController.java

@@ -107,6 +107,7 @@ public class StoreOrderController extends  AppBaseController {
     @Login
     @ApiOperation("创建订单")
     @PostMapping("/create")
+    @RepeatSubmit(intervalTime = 3)
     public R create(@Validated @RequestBody FsStoreOrderCreateParam param){
         logger.info("开始处理创建订单请求, 参数: {}", param);
 
@@ -116,7 +117,7 @@ public class StoreOrderController extends  AppBaseController {
     @Login
     @ApiOperation("支付")
     @PostMapping("/pay")
-    @RepeatSubmit(intervalTime = 3)
+    @RepeatSubmit(intervalTime = 10)
     public R pay(@Validated @RequestBody FsStoreOrderPayParam param)
     {
         logger.info("开始处理支付请求, 订单号: {}, 支付类型: {}", param.getOrderId(), param.getPayType());
@@ -249,7 +250,7 @@ public class StoreOrderController extends  AppBaseController {
     @Login
     @ApiOperation("创建订单")
     @PostMapping("/createPackageOrder")
-    @RepeatSubmit(intervalTime = 1)
+    @RepeatSubmit(intervalTime = 3)
     public R createPackageOrder(@Validated @RequestBody FsStorePackageOrderCreateParam param){
         return orderService.createPackageOrder(Long.parseLong(getUserId()),param);
     }