From 84d42b6997ae87fa64b75ae085fce11d05a6ca5a Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Sun, 12 Oct 2025 02:17:49 +0800
Subject: [PATCH] 1
---
ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java | 41 ++++++++++++++++++++++++++++++++---------
1 files changed, 32 insertions(+), 9 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java
index 7ecf00c..7a406e4 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java
@@ -13,6 +13,7 @@
import com.ruoyi.im.service.UserPolicyService;
import com.ruoyi.im.util.PayService;
import com.ruoyi.im.util.ValidatorUtil;
+import com.ruoyi.imenum.PaymentMode;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.domain.dto.UserPolicyDto;
import com.ruoyi.system.mapper.UserPolicyMapper;
@@ -75,7 +76,7 @@
.eq(UserPolicy::getPolicyStatus, UserPolicy.PolicyStatus.PENDING)
.and(a-> a.eq(UserPolicy::getApprovalStatus, 0)
.or()
- .eq(UserPolicy::getApprovalStatus, 1))
+ .eq(UserPolicy::getPayStatus, 1))
);
if(count > 0){
@@ -85,7 +86,7 @@
if(ObjectUtil.isEmpty(insuranceProduct)){
return Result.error("该产品停止购买或已下架!");
}
- if(userAccount.getBalance().compareTo(insuranceProduct.getPremium()) < 0){
+ if(!dto.getPayProductId().equals("0")){
String orderNo = generateOrderNo();
String payOrder = payService.createOrder(
insuranceProduct.getPremium(),
@@ -128,24 +129,32 @@
userPolicy.setCreatedAt(new Date());
userPolicy.setUpdatedAt(new Date());
userPolicy.setApprovalStatus(0);
+ PaymentMode payment = PaymentMode.getByCode(dto.getPayProductId());
+ if (payment != null) {
+ userPolicy.setModePayment(payment.getMode());
+ } else {
+ // 处理未知支付方式
+ userPolicy.setModePayment(0);
+ }
userPolicy.setIsLifelong(insuranceProduct.getTerm() == 0 ? 0 : 1);
save(userPolicy);
+ extracted(userAccount, userPolicy.getId(), orderNo,PaymentRecord.PaymentStatus.PENDING.getCode(),userPolicy.getProductId(),userPolicy.getProductName(),userPolicy.getModePayment());
return Result.success(payUrl);
case 401:
- extracted(userAccount, null, orderNo,PaymentRecord.PaymentStatus.FAILED.getCode(),null,"获取支付通道失败");
+ extracted(userAccount, null, orderNo,PaymentRecord.PaymentStatus.FAILED.getCode(),null,"获取支付通道失败",0);
return Result.error("未授权访问支付系统");
case 403:
- extracted(userAccount, null, orderNo,PaymentRecord.PaymentStatus.FAILED.getCode(),null,"获取支付通道失败");
+ extracted(userAccount, null, orderNo,PaymentRecord.PaymentStatus.FAILED.getCode(),null,"获取支付通道失败",0);
return Result.error("禁止访问支付系统");
case 404:
- extracted(userAccount, null, orderNo,PaymentRecord.PaymentStatus.FAILED.getCode(),null,"获取支付通道失败");
+ extracted(userAccount, null, orderNo,PaymentRecord.PaymentStatus.FAILED.getCode(),null,"获取支付通道失败",0);
return Result.error("支付接口不存在");
case 0014: // 注意:0014可能是字符串,需要根据实际情况处理
- extracted(userAccount, null, orderNo,PaymentRecord.PaymentStatus.FAILED.getCode(),null,"获取支付通道失败");
+ extracted(userAccount, null, orderNo,PaymentRecord.PaymentStatus.FAILED.getCode(),null,"获取支付通道失败",0);
return Result.error("当前支付不可用,请更换其他支付方式!");
default:
- extracted(userAccount, null, orderNo,PaymentRecord.PaymentStatus.FAILED.getCode(),null,"获取支付通道失败");
+ extracted(userAccount, null, orderNo,PaymentRecord.PaymentStatus.FAILED.getCode(),null,"获取支付通道失败",0);
// 其他错误码
String message = (String) parse.get("message");
if (message != null && !message.isEmpty()) {
@@ -155,6 +164,9 @@
}
}
}else{
+ if(userAccount.getBalance().compareTo(insuranceProduct.getPremium()) < 0){
+ return Result.error("余额不足!");
+ }
userAccount.setBalance(userAccount.getBalance().subtract(insuranceProduct.getPremium()));
userAccountService.updateById(userAccount);
@@ -183,6 +195,7 @@
userPolicy.setCreatedAt(new Date());
userPolicy.setUpdatedAt(new Date());
userPolicy.setApprovalStatus(0);
+ userPolicy.setModePayment(3);
userPolicy.setIsLifelong(insuranceProduct.getTerm() == 0 ? 0 : 1);
save(userPolicy);
@@ -200,12 +213,15 @@
paymentRecord.setName(userKyc.getName());
paymentRecord.setInvitationCode(userAccount.getInvitationCode());
paymentRecord.setProductName(insuranceProduct.getProductName());
+ paymentRecord.setModePayment(3);
paymentRecordService.save(paymentRecord);
return Result.success();
}
}
- private void extracted(UserAccount userAccount, Integer userPolicyId, String orderNo,Integer payCode,Integer productId,String productName) {
+
+ private void extracted(UserAccount userAccount, Integer userPolicyId,
+ String orderNo,Integer payCode,Integer productId,String productName,Integer modePayment) {
UserKyc userKyc = userKycService.getOne(new LambdaQueryWrapper<UserKyc>()
.eq(UserKyc::getAccount, userAccount.getAccount())
);
@@ -216,9 +232,16 @@
paymentRecord.setInvitationCode(userAccount.getInvitationCode());
paymentRecord.setProductName(productName);
paymentRecord.setPaymentStatus(payCode);
+ if(userPolicyId != null){
+ paymentRecord.setOrderId(userPolicyId);
+ }
+ if(userPolicyId != null){
+ paymentRecord.setOrderId(userPolicyId);
+ }
paymentRecord.setProductId(productId);
- paymentRecord.setOrderId(userPolicyId);
+
paymentRecord.setPayOrdeNo(orderNo);
+ paymentRecord.setModePayment(modePayment);
paymentRecordService.save(paymentRecord);
}
--
Gitblit v1.9.3