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 |   27 ++++++++++++++++-----------
 1 files changed, 16 insertions(+), 11 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 ddc3209..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
@@ -55,18 +55,15 @@
         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, 0)
-                .or()
-                .eq(UserPolicy::getApprovalStatus, 1)
+                .eq(UserPolicy::getApprovalStatus, 1))
+
         );
         if(count > 0){
             return Result.error("你已申购此保险,请勿重复申购");
@@ -75,6 +72,14 @@
         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());
@@ -86,9 +91,7 @@
         userPolicy.setName(dto.getName());
         userPolicy.setGender(dto.getGender());
 
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        LocalDateTime dateTime = LocalDateTime.parse(dto.getBirthDate(), formatter);
-        userPolicy.setBirthDate(dateTime.toLocalDate());
+        userPolicy.setBirthDate(LocalDate.parse(dto.getBirthDate()));
 
         userPolicy.setOccupation(dto.getOccupation());
         userPolicy.setIdCard(dto.getIdCard());
@@ -101,6 +104,8 @@
         userPolicy.setIsLifelong(insuranceProduct.getTerm() == 0 ? 0 : 1);
 
         save(userPolicy);
+
+
         return Result.success("购买成功,注意查看资料审核状态!");
     }
 

--
Gitblit v1.9.3