From 5e179f4180fd2dc93623699af614df9a2497ded6 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Thu, 25 Sep 2025 02:27:38 +0800
Subject: [PATCH] 1
---
ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java | 50 +++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 43 insertions(+), 7 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 10c667e..aef921a 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
@@ -1,7 +1,9 @@
package com.ruoyi.im.service.impl;
import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.im.comm.Result;
import com.ruoyi.im.service.InsuranceProductService;
import com.ruoyi.im.service.UserPolicyService;
@@ -16,6 +18,10 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.text.ParseException;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.Random;
import java.util.concurrent.atomic.AtomicLong;
@@ -31,26 +37,52 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public Result purchaseApplication(UserPolicyDto dto) {
- UserAccount userAccount = userAccountService.getById(dto.getUserId());
+ public Result purchaseApplication(UserPolicyDto dto) throws ParseException {
+ UserAccount userAccount = userAccountService.getOne(new LambdaQueryWrapper<UserAccount>()
+ .eq(UserAccount::getAccount,dto.getAccount()));
if(ObjectUtil.isEmpty(userAccount)){
return Result.error("请重新登录,未查询到你的信息!");
}
+
+ if(userAccount.getKycStatus() == 2){
+ return Result.error("请先实名认证");
+ }else if(userAccount.getKycStatus() == 0){
+ return Result.error("实名认证审核中,请耐心等等");
+ }
+
// 验证手机号
boolean isPhoneValid = ValidatorUtil.isValidPhone(dto.getPhone());
if(!isPhoneValid){
return Result.error("手机号格式不正确!");
}
- // 验证身份证
- boolean isIdCardValid = ValidatorUtil.isValidIdCard(dto.getIdCard());
- if(!isIdCardValid){
- return Result.error("身份证格式不正确!");
+
+ long count = count(new LambdaQueryWrapper<UserPolicy>()
+ .eq(UserPolicy::getUserId, userAccount.getId())
+ .eq(UserPolicy::getProductId,dto.getProductId())
+ .eq(UserPolicy::getPolicyStatus, UserPolicy.PolicyStatus.ACTIVE)
+ .and(a-> a.eq(UserPolicy::getApprovalStatus, 0)
+ .or()
+ .eq(UserPolicy::getApprovalStatus, 1))
+
+ );
+ if(count > 0){
+ return Result.error("你已申购此保险,请勿重复申购");
}
InsuranceProduct insuranceProduct = insuranceProductService.getById(dto.getProductId());
if(ObjectUtil.isEmpty(insuranceProduct)){
return Result.error("该产品停止购买或已下架!");
}
+ if(userAccount.getBalance().compareTo(insuranceProduct.getPremium()) < 0){
+ return Result.error("余额不足!");
+ }
+
+ userAccount.setBalance(userAccount.getBalance().subtract(insuranceProduct.getPremium()));
+
+ 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());
@@ -58,7 +90,9 @@
userPolicy.setTerm(insuranceProduct.getTerm());
userPolicy.setName(dto.getName());
userPolicy.setGender(dto.getGender());
- userPolicy.setBirthDate(dto.getBirthDate());
+
+ userPolicy.setBirthDate(LocalDate.parse(dto.getBirthDate()));
+
userPolicy.setOccupation(dto.getOccupation());
userPolicy.setIdCard(dto.getIdCard());
userPolicy.setPhone(dto.getPhone());
@@ -70,6 +104,8 @@
userPolicy.setIsLifelong(insuranceProduct.getTerm() == 0 ? 0 : 1);
save(userPolicy);
+
+
return Result.success("购买成功,注意查看资料审核状态!");
}
--
Gitblit v1.9.3