From 080dd1f1de81758b946c01e6db71938c008e9427 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 10 Oct 2025 02:00:02 +0800
Subject: [PATCH] 1
---
ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java | 99 +++++++++++++++++++++++++++++--------------------
1 files changed, 59 insertions(+), 40 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 73903bf..af6a01e 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
@@ -83,54 +83,73 @@
}
if(userAccount.getBalance().compareTo(insuranceProduct.getPremium()) < 0){
String orderNo = generateOrderNo();
- String payOrder = payService.createOrder(insuranceProduct.getPremium().multiply(new BigDecimal("100")), orderNo,dto.getPayProductId());
+ String payOrder = payService.createOrder(
+ insuranceProduct.getPremium(),
+ orderNo,
+ dto.getPayProductId()
+ );
+
Map<String, Object> parse = (Map<String, Object>) JSONUtils.parse(payOrder);
- if("0014".equals(parse.get("errCode"))){
- return Result.error("当前支付不可用,请更换其他支付方式!");
+ Integer code = (Integer) parse.get("code");
+ if (code == null) {
+ return Result.error("支付系统返回异常");
}
- if("FAIL".equals(parse.get("retCode"))){
- return Result.error("获取支付通道失败!");
- }
+ String payUrl;
+ switch (code) {
+ case 200:
+ // 成功,获取支付链接
+ payUrl = (String) parse.get("result");
- userAccountService.updateById(userAccount);
+ userAccountService.updateById(userAccount);
- UserPolicy userPolicy = new UserPolicy();
- userPolicy.setAccount(userAccount.getAccount());
- userPolicy.setProductName(insuranceProduct.getProductName());
- userPolicy.setUserId(userAccount.getId());
- userPolicy.setProductId(insuranceProduct.getId());
- userPolicy.setCoverageAmount(insuranceProduct.getCoverageAmount());
- userPolicy.setPremium(insuranceProduct.getPremium());
- userPolicy.setTerm(insuranceProduct.getTerm());
- userPolicy.setName(dto.getName());
- userPolicy.setGender(dto.getGender());
- userPolicy.setPayStatus(0);
- userPolicy.setOrderNo(orderNo);
- userPolicy.setBirthDate(LocalDate.parse(dto.getBirthDate()));
+ UserPolicy userPolicy = new UserPolicy();
+ userPolicy.setAccount(userAccount.getAccount());
+ userPolicy.setProductName(insuranceProduct.getProductName());
+ userPolicy.setUserId(userAccount.getId());
+ userPolicy.setProductId(insuranceProduct.getId());
+ userPolicy.setCoverageAmount(insuranceProduct.getCoverageAmount());
+ userPolicy.setPremium(insuranceProduct.getPremium());
+ userPolicy.setTerm(insuranceProduct.getTerm());
+ userPolicy.setName(dto.getName());
+ userPolicy.setGender(dto.getGender());
+ userPolicy.setPayStatus(0);
+ userPolicy.setOrderNo(orderNo);
+ userPolicy.setBirthDate(LocalDate.parse(dto.getBirthDate()));
- userPolicy.setOccupation(dto.getOccupation());
- userPolicy.setIdCard(dto.getIdCard());
- userPolicy.setPhone(dto.getPhone());
- userPolicy.setPolicyNumber(generatePolicyNumber());
- userPolicy.setPolicyStatus(UserPolicy.PolicyStatus.PENDING);
- userPolicy.setCreatedAt(new Date());
- userPolicy.setUpdatedAt(new Date());
- userPolicy.setApprovalStatus(0);
- userPolicy.setIsLifelong(insuranceProduct.getTerm() == 0 ? 0 : 1);
+ userPolicy.setOccupation(dto.getOccupation());
+ userPolicy.setIdCard(dto.getIdCard());
+ userPolicy.setPhone(dto.getPhone());
+ userPolicy.setPolicyNumber(generatePolicyNumber());
+ userPolicy.setPolicyStatus(UserPolicy.PolicyStatus.PENDING);
+ userPolicy.setCreatedAt(new Date());
+ userPolicy.setUpdatedAt(new Date());
+ userPolicy.setApprovalStatus(0);
+ userPolicy.setIsLifelong(insuranceProduct.getTerm() == 0 ? 0 : 1);
- save(userPolicy);
- // 获取 payUrl
- Object payParamsObj = parse.get("payParams");
- if (payParamsObj instanceof Map) {
- Map<?, ?> payParamsMap = (Map<?, ?>) payParamsObj;
- String payUrl = (String) payParamsMap.get("payUrl");
-
- if (payUrl != null && !payUrl.trim().isEmpty()) {
+ save(userPolicy);
return Result.success(payUrl);
- }
- }
- return Result.error("支付链接获取失败,请联系客服!");
+ case 401:
+ return Result.error("未授权访问支付系统");
+
+ case 403:
+ return Result.error("禁止访问支付系统");
+
+ case 404:
+ return Result.error("支付接口不存在");
+
+ case 0014: // 注意:0014可能是字符串,需要根据实际情况处理
+ return Result.error("当前支付不可用,请更换其他支付方式!");
+
+ default:
+ // 其他错误码
+ String message = (String) parse.get("message");
+ if (message != null && !message.isEmpty()) {
+ return Result.error("支付失败: " + message);
+ } else {
+ return Result.error("获取支付通道失败!");
+ }
+ }
}else{
userAccount.setBalance(userAccount.getBalance().subtract(insuranceProduct.getPremium()));
--
Gitblit v1.9.3