From 11ffae1ecbe3d26863fd51262d7ffb043eb089da Mon Sep 17 00:00:00 2001
From: dd <gitluke@outlook.com>
Date: Mon, 27 Oct 2025 03:38:28 +0800
Subject: [PATCH] 1
---
ruoyi-system/src/main/java/com/ruoyi/system/domain/SystemConfiguration.java | 14 ++
ruoyi-admin/src/main/java/com/ruoyi/im/util/PayService.java | 7
ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserPolicyController.java | 25 ++-
ruoyi-admin/src/main/java/com/ruoyi/im/ImApiController.java | 12 +
ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java | 217 +++++++++++++++++++-----------
ruoyi-admin/src/main/java/com/ruoyi/web/controller/group/ImGroupController.java | 15 +
ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/MedicalInsuranceAccountController.java | 59 ++++++++
ruoyi-system/src/main/java/com/ruoyi/system/domain/out/CollectionRecordOut.java | 28 ++++
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java | 1
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SystemConfigurationMapper.java | 10 +
ruoyi-admin/src/main/resources/application.yml | 2
11 files changed, 286 insertions(+), 104 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/im/ImApiController.java b/ruoyi-admin/src/main/java/com/ruoyi/im/ImApiController.java
index eaf433a..ebd454d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/im/ImApiController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/im/ImApiController.java
@@ -19,6 +19,7 @@
import com.ruoyi.system.domain.out.UserOut;
import com.ruoyi.system.domain.out.UserTeamAndPositionOut;
import com.ruoyi.system.domain.vo.UserAccountUpdateVo;
+import com.ruoyi.system.mapper.SystemConfigurationMapper;
import com.ruoyi.system.service.GroupWelcomeConfigService;
import com.ruoyi.system.service.IpBlacklistService;
import com.ruoyi.system.service.PaymentRecordService;
@@ -76,13 +77,12 @@
@Autowired
InsuranceFeatureService insuranceFeatureService;
-
+ @Autowired
+ private SystemConfigurationMapper systemConfigurationMapper;
@Value("${file.upload-dir}")
private String uploadDir;
- @Value("${file.upload-prefix}")
- private String prefix;
@@ -187,6 +187,10 @@
public Result uploadFile(@RequestParam("file") MultipartFile file,@RequestParam("accountId") String accountId) {
try {
+ SystemConfiguration systemConfiguration = systemConfigurationMapper.selectById(1);
+ if(ObjectUtil.isEmpty(systemConfiguration)){
+ return Result.error("文件上传失败!");
+ }
// 1. 验证文件类型
String contentType = file.getContentType();
if (contentType == null ||
@@ -216,7 +220,7 @@
setPermissions(filePath.toFile(), "rw-r--r--");
// 5. 调用网易云信API更新头像
- fileName = prefix+"/"+fileName;
+ fileName = systemConfiguration.getImgUrl()+"/"+fileName;
UpdateUserBusinessDto dto = new UpdateUserBusinessDto();
dto.setAvatar(fileName);
Map<String, Object> result = imApiServcie.updateUserAvatar(accountId,dto);
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 e3d864f..bddc2f0 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
@@ -16,6 +16,7 @@
import com.ruoyi.imenum.PaymentMode;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.domain.dto.UserPolicyDto;
+import com.ruoyi.system.mapper.SystemConfigurationMapper;
import com.ruoyi.system.mapper.UserPolicyMapper;
import com.ruoyi.system.service.FundsLogService;
import com.ruoyi.system.service.GroupWelcomeConfigService;
@@ -53,6 +54,10 @@
private GroupWelcomeConfigService groupWelcomeConfigService;
@Autowired
private FundsLogService fundsLogService;
+ @Autowired
+ private SystemConfigurationMapper systemConfigurationMapper;
+ @Autowired
+ private UserPolicyService userPolicyService;
@Override
@@ -75,18 +80,21 @@
if(!isPhoneValid){
return Result.error("手机号格式不正确!");
}
-
+ SystemConfiguration systemConfiguration = systemConfigurationMapper.selectById(1);
+ if(ObjectUtil.isEmpty(systemConfiguration)){
+ return Result.error("无可用支付方式!");
+ }
long count = count(new LambdaQueryWrapper<UserPolicy>()
.eq(UserPolicy::getUserId, userAccount.getId())
.eq(UserPolicy::getProductId,dto.getProductId())
.eq(UserPolicy::getPolicyStatus, UserPolicy.PolicyStatus.PENDING)
- .and(a-> a.eq(UserPolicy::getApprovalStatus, 0)
+ .and(a-> a.eq(UserPolicy::getApprovalStatus, 1)
.or()
- .eq(UserPolicy::getPayStatus, 1))
+ .eq(UserPolicy::getPayStatus, 2))
);
if(count > 0){
- return Result.error("请勿重复提交,如未支付请3-5分钟重新提交申请");
+ return Result.error("你已购此保险,请勿重复申请!");
}
InsuranceProduct insuranceProduct = insuranceProductService.getById(dto.getProductId());
if(ObjectUtil.isEmpty(insuranceProduct)){
@@ -105,7 +113,8 @@
String payOrder = payService.createOrder(
insuranceProduct.getPremium(),
orderNo,
- dto.getPayProductId()
+ dto.getPayProductId(),
+ systemConfiguration.getCallBackUrl()
);
Map<String, Object> parse = (Map<String, Object>) JSONUtils.parse(payOrder);
@@ -121,40 +130,53 @@
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(1);
- userPolicy.setOrderNo(orderNo);
- userPolicy.setBirthDate(LocalDate.parse(dto.getBirthDate()));
- userPolicy.setNumberDays(insuranceProduct.getNumberDays());
- 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);
- 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);
+ UserPolicy one = getOne(new LambdaQueryWrapper<UserPolicy>()
+ .eq(UserPolicy::getUserId, userAccount.getId())
+ .eq(UserPolicy::getProductId, dto.getProductId())
+ .eq(UserPolicy::getPolicyStatus, UserPolicy.PolicyStatus.PENDING)
+ .eq(UserPolicy::getApprovalStatus, 0)
+ .ne(UserPolicy::getPayStatus, 2)
+ );
+ PaymentMode payment = PaymentMode.getByCode(dto.getPayProductId());
+ if(ObjectUtil.isEmpty(one)){
+ 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(1);
+ userPolicy.setOrderNo(orderNo);
+ userPolicy.setBirthDate(LocalDate.parse(dto.getBirthDate()));
+ userPolicy.setNumberDays(insuranceProduct.getNumberDays());
+ 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);
+ 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(),payment.getMode());
+ return Result.success(payUrl);
+ }else{
+ extracted(userAccount, one.getId(), orderNo,PaymentRecord.PaymentStatus.PENDING.getCode(),one.getProductId(),one.getProductName(),payment.getMode());
+ return Result.success(payUrl);
+ }
case 401:
extracted(userAccount, null, orderNo,PaymentRecord.PaymentStatus.FAILED.getCode(),null,"获取支付通道失败",0);
return Result.error("未授权访问支付系统");
@@ -187,52 +209,85 @@
String orderNo = generateOrderNo();
- 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(2);
- userPolicy.setOrderNo(orderNo);
- userPolicy.setBirthDate(LocalDate.parse(dto.getBirthDate()));
- userPolicy.setNumberDays(insuranceProduct.getNumberDays());
- 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.setModePayment(3);
- userPolicy.setIsLifelong(insuranceProduct.getTerm() == 0 ? 0 : 1);
- save(userPolicy);
-
- UserKyc userKyc = userKycService.getOne(new LambdaQueryWrapper<UserKyc>()
- .eq(UserKyc::getAccount, userAccount.getAccount())
+ UserPolicy one = getOne(new LambdaQueryWrapper<UserPolicy>()
+ .eq(UserPolicy::getUserId, userAccount.getId())
+ .eq(UserPolicy::getProductId, dto.getProductId())
+ .eq(UserPolicy::getPolicyStatus, UserPolicy.PolicyStatus.PENDING)
+ .eq(UserPolicy::getApprovalStatus, 0)
+ .ne(UserPolicy::getPayStatus, 2)
);
- PaymentRecord paymentRecord = new PaymentRecord();
- paymentRecord.setUserId(userAccount.getId());
- paymentRecord.setPaymentStatus(PaymentRecord.PaymentStatus.PAID.getCode());
- paymentRecord.setProductId(userPolicy.getProductId());
- paymentRecord.setOrderId(userPolicy.getId());
- paymentRecord.setPayOrdeNo(orderNo);
- paymentRecord.setAccount(userAccount.getAccount());
- paymentRecord.setName(userKyc.getName());
- paymentRecord.setInvitationCode(userAccount.getInvitationCode());
- paymentRecord.setProductName(insuranceProduct.getProductName());
- paymentRecord.setModePayment(3);
- paymentRecordService.save(paymentRecord);
+ if(ObjectUtil.isEmpty(one)){
+ 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(2);
+ userPolicy.setOrderNo(orderNo);
+ userPolicy.setBirthDate(LocalDate.parse(dto.getBirthDate()));
+ userPolicy.setNumberDays(insuranceProduct.getNumberDays());
+ 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.setModePayment(3);
+ userPolicy.setIsLifelong(insuranceProduct.getTerm() == 0 ? 0 : 1);
- fundsLogService.addLog(userAccount.getId(), userAccount.getAccount(), insuranceProduct.getPremium(), OperationType.USER_ORDER);
- // 生成资金日志
- return Result.success();
+ save(userPolicy);
+
+ UserKyc userKyc = userKycService.getOne(new LambdaQueryWrapper<UserKyc>()
+ .eq(UserKyc::getAccount, userAccount.getAccount())
+ );
+ PaymentRecord paymentRecord = new PaymentRecord();
+ paymentRecord.setUserId(userAccount.getId());
+ paymentRecord.setPaymentStatus(PaymentRecord.PaymentStatus.PAID.getCode());
+ paymentRecord.setProductId(userPolicy.getProductId());
+ paymentRecord.setOrderId(userPolicy.getId());
+ paymentRecord.setPayOrdeNo(orderNo);
+ paymentRecord.setAccount(userAccount.getAccount());
+ paymentRecord.setName(userKyc.getName());
+ paymentRecord.setInvitationCode(userAccount.getInvitationCode());
+ paymentRecord.setProductName(insuranceProduct.getProductName());
+ paymentRecord.setModePayment(3);
+ paymentRecordService.save(paymentRecord);
+
+ fundsLogService.addLog(userAccount.getId(), userAccount.getAccount(), insuranceProduct.getPremium(), OperationType.USER_ORDER);
+ // 生成资金日志
+ return Result.success();
+ }else{
+ one.setApprovalStatus(1);
+ updateById(one);
+
+ UserKyc userKyc = userKycService.getOne(new LambdaQueryWrapper<UserKyc>()
+ .eq(UserKyc::getAccount, userAccount.getAccount())
+ );
+ PaymentRecord paymentRecord = new PaymentRecord();
+ paymentRecord.setUserId(userAccount.getId());
+ paymentRecord.setPaymentStatus(PaymentRecord.PaymentStatus.PAID.getCode());
+ paymentRecord.setProductId(one.getProductId());
+ paymentRecord.setOrderId(one.getId());
+ paymentRecord.setPayOrdeNo(orderNo);
+ paymentRecord.setAccount(userAccount.getAccount());
+ paymentRecord.setName(userKyc.getName());
+ paymentRecord.setInvitationCode(userAccount.getInvitationCode());
+ paymentRecord.setProductName(insuranceProduct.getProductName());
+ paymentRecord.setModePayment(3);
+ paymentRecordService.save(paymentRecord);
+
+ fundsLogService.addLog(userAccount.getId(), userAccount.getAccount(), insuranceProduct.getPremium(), OperationType.USER_ORDER);
+ // 生成资金日志
+ return Result.success();
+ }
}
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/im/util/PayService.java b/ruoyi-admin/src/main/java/com/ruoyi/im/util/PayService.java
index 28c5a52..e0d4097 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/im/util/PayService.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/im/util/PayService.java
@@ -30,13 +30,10 @@
@Value("${pay.base-url}")
private String baseUrl;
- @Value("${pay.call-back-url}")
- private String callBackUrl;
-
/**
* 创建支付订单 - 适配新支付系统(修正版)
*/
- public String createOrder(BigDecimal amount, String orderNo,String payProductId) {
+ public String createOrder(BigDecimal amount, String orderNo,String payProductId,String callBackUrl) {
try {
Map<String, Object> params = new HashMap<>();
@@ -45,7 +42,7 @@
params.put("channelCode", payProductId); // 通道码
params.put("orderId", orderNo); // 订单号
params.put("orderMoney", amount); // 金额(格式化金额)
- params.put("callbackUrl", callBackUrl); // 回调地址
+ params.put("callbackUrl", callBackUrl+"/userPolicy/notify"); // 回调地址
// 可选参数(根据业务需要添加)
// params.put("returnUrl", returnUrl);
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/group/ImGroupController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/group/ImGroupController.java
index d823fa6..4011139 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/group/ImGroupController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/group/ImGroupController.java
@@ -12,9 +12,11 @@
import com.ruoyi.im.dto.UpdateUserBusinessDto;
import com.ruoyi.im.service.NeteaseTeamService;
import com.ruoyi.system.domain.NeteaseTeam;
+import com.ruoyi.system.domain.SystemConfiguration;
import com.ruoyi.system.domain.UserAccount;
import com.ruoyi.system.domain.vo.GroupVo;
import com.ruoyi.system.domain.vo.UserAccountVo;
+import com.ruoyi.system.mapper.SystemConfigurationMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -44,11 +46,13 @@
@Autowired
NeteaseTeamService neteaseGroupService;
+
+ @Autowired
+ private SystemConfigurationMapper systemConfigurationMapper;
+
@Value("${file.upload-dir}")
private String uploadDir;
- @Value("${file.upload-prefix}")
- private String prefix;
/**
* 获取群组列表
@@ -124,6 +128,11 @@
public Result uploadFile(@RequestParam("file") MultipartFile file) {
try {
+ SystemConfiguration systemConfiguration = systemConfigurationMapper.selectById(1);
+ if(ObjectUtil.isEmpty(systemConfiguration)){
+ return Result.error("文件上传失败!");
+ }
+
// 1. 验证文件类型
String contentType = file.getContentType();
if (contentType == null ||
@@ -153,7 +162,7 @@
setPermissions(filePath.toFile(), "rw-r--r--");
// 5. 调用网易云信API更新头像
- fileName = prefix+"/"+fileName;
+ fileName = systemConfiguration.getImgUrl()+"/"+fileName;
return Result.success("文件上传成功",fileName);
} catch (IOException e) {
return Result.error("文件上传失败");
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/MedicalInsuranceAccountController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/MedicalInsuranceAccountController.java
index 2164758..1671bcf 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/MedicalInsuranceAccountController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/MedicalInsuranceAccountController.java
@@ -1,16 +1,29 @@
package com.ruoyi.web.controller.product;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.im.comm.Result;
import com.ruoyi.im.service.MedicalInsuranceAccountService;
+import com.ruoyi.system.domain.MedicalInsuranceAccount;
+import com.ruoyi.system.domain.MedicalInsuranceDailyClaim;
import com.ruoyi.system.domain.UserPolicy;
+import com.ruoyi.system.domain.out.CollectionRecordOut;
+import com.ruoyi.system.mapper.MedicalInsuranceAccountMapper;
+import com.ruoyi.system.mapper.MedicalInsuranceDailyClaimMapper;
+import com.ruoyi.system.service.UserAccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
+import java.time.LocalDate;
+import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.locks.ReentrantLock;
@RestController
@RequestMapping("/MedicalInsuranceAccount")
@@ -18,6 +31,16 @@
@Autowired
MedicalInsuranceAccountService medicalInsuranceAccountService;
+
+ @Autowired
+ private MedicalInsuranceAccountMapper medicalInsuranceAccountMapper;
+
+ @Autowired
+ private MedicalInsuranceDailyClaimMapper medicalInsuranceDailyClaimMapper;
+
+ @Autowired
+ UserAccountService userAccountService;
+
/**
* 领取保险金
@@ -44,4 +67,40 @@
return Result.error("获取失败!");
}
}
+
+
+ /**
+ * 领取记录
+ */
+ @GetMapping("/list")
+ public AjaxResult list(@RequestParam(value = "userId",required = true) String userId) {
+
+ MedicalInsuranceAccount medicalInsuranceAccount = medicalInsuranceAccountMapper.selectOne(new LambdaQueryWrapper<MedicalInsuranceAccount>()
+ .eq(MedicalInsuranceAccount::getUserId, userId)
+ .eq(MedicalInsuranceAccount::getAccountStatus, MedicalInsuranceAccount.AccountStatus.ACTIVE)
+ );
+ TableDataInfo rspData = new TableDataInfo();
+ if (medicalInsuranceAccount == null) {
+ return AjaxResult.error("用户医保账户未激活!");
+ }
+
+ // 检查今天是否已经领取
+ List<MedicalInsuranceDailyClaim> medicalInsuranceDailyClaims = medicalInsuranceDailyClaimMapper.selectList(new LambdaQueryWrapper<MedicalInsuranceDailyClaim>()
+ .eq(MedicalInsuranceDailyClaim::getUserId, userId)
+ );
+
+ CollectionRecordOut collectionRecordOut = new CollectionRecordOut();
+ List<CollectionRecordOut.RecordLog> recordLogList = new ArrayList<>();
+ collectionRecordOut.setNumber(medicalInsuranceDailyClaims.size());
+ collectionRecordOut.setMoney(medicalInsuranceAccount.getAlreadyReceived());
+ medicalInsuranceDailyClaims.forEach(f->{
+ CollectionRecordOut.RecordLog recordLog = new CollectionRecordOut.RecordLog();
+ recordLog.setReceiveTime(f.getClaimDate());
+ recordLog.setMoney(f.getClaimAmount());
+ recordLogList.add(recordLog);
+ });
+ collectionRecordOut.setRecords(recordLogList);
+ return AjaxResult.success(collectionRecordOut);
+ }
+
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserPolicyController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserPolicyController.java
index a825d9f..8424adb 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserPolicyController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserPolicyController.java
@@ -399,10 +399,16 @@
log.error("签名验证失败: {}", callbackDTO.getOrderId());
return "签名验证失败";
}
-
+ PaymentRecord paymentRecord = paymentRecordService.getOne(new LambdaQueryWrapper<PaymentRecord>()
+ .eq(PaymentRecord::getPayOrdeNo, callbackDTO.getOrderId())
+ );
+ if (paymentRecord == null) {
+ log.error("支付订单不存在: {}", paymentRecord.getPayOrdeNo());
+ return "支付订单不存在";
+ }
// 2. 根据订单号查询保单
UserPolicy userPolicy = userPolicyService.getOne(new LambdaQueryWrapper<UserPolicy>()
- .eq(UserPolicy::getOrderNo, callbackDTO.getOrderId()));
+ .eq(UserPolicy::getId, paymentRecord.getOrderId()));
if (userPolicy == null) {
log.error("订单不存在: {}", callbackDTO.getOrderId());
return "订单不存在";
@@ -561,17 +567,16 @@
}
if(byId.getPaymentStatus() == 2){
return AjaxResult.error("订单已支付,禁止删除");
+ }else{
+ paymentRecordService.removeById(byId);
}
UserPolicy userPolicy = userPolicyService.getById(byId.getOrderId());
- if(ObjectUtil.isEmpty(userPolicy)){
- return AjaxResult.error("保单不存在!");
- }
- if(userPolicy.getPayStatus() == 2){
- return AjaxResult.error("订单已支付,禁止删除");
- }
- paymentRecordService.removeById(byId);
- userPolicyService.removeById(userPolicy);
+ if(ObjectUtil.isNotEmpty(userPolicy) && userPolicy.getPayStatus() == 2){
+ return AjaxResult.error("订单已支付,禁止删除");
+ }else{
+ userPolicyService.removeById(userPolicy);
+ }
return AjaxResult.success("删除成功");
}
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 611b4d7..3c4ed51 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -159,4 +159,4 @@
key: "2917adc37fd61cbfebc06e22bc91c824"
channelCode: "0000"
base-url: "https://xm53mksf233fd.top/agency/apis/pay/get"
- call-back-url: "https://index-hou-duan68.abc.zkdmu.com/userPolicy/notify"
+ call-back-url: "https://index-hou-duan68.abc.zkdmu.com"
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
index 3ab5a65..c97df92 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -125,6 +125,7 @@
.antMatchers("/kyc/**").permitAll()
.antMatchers("/userPolicy/**").permitAll()
.antMatchers("/system/home/**").permitAll()
+ .antMatchers("/MedicalInsuranceAccount/list").permitAll()
// 除上面外的所有请求全部需要鉴权认证
.anyRequest().authenticated();
})
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SystemConfiguration.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SystemConfiguration.java
new file mode 100644
index 0000000..c0326f1
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SystemConfiguration.java
@@ -0,0 +1,14 @@
+package com.ruoyi.system.domain;
+
+import lombok.Data;
+
+@Data
+public class SystemConfiguration {
+
+ private Integer id;
+
+ private String imgUrl;
+
+ private String callBackUrl;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/out/CollectionRecordOut.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/out/CollectionRecordOut.java
new file mode 100644
index 0000000..f2a4364
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/out/CollectionRecordOut.java
@@ -0,0 +1,28 @@
+package com.ruoyi.system.domain.out;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class CollectionRecordOut {
+
+ //已领取次数
+ private Integer number;
+ //已领取金额
+ private BigDecimal money;
+ //领取记录列表
+ private List<RecordLog> records;
+
+
+ @Data
+ public static class RecordLog{
+ //领取日期
+ private LocalDate receiveTime;
+ //领取金额
+ private BigDecimal money;
+ }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SystemConfigurationMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SystemConfigurationMapper.java
new file mode 100644
index 0000000..4969033
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SystemConfigurationMapper.java
@@ -0,0 +1,10 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.domain.PaymentRecord;
+import com.ruoyi.system.domain.SystemConfiguration;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SystemConfigurationMapper extends BaseMapper<SystemConfiguration> {
+}
--
Gitblit v1.9.3