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-admin/src/main/java/com/ruoyi/web/controller/product/MedicalInsuranceAccountController.java |   75 +++++++++++++++++++++++++++++++++----
 1 files changed, 67 insertions(+), 8 deletions(-)

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 617a077..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")
@@ -19,29 +32,75 @@
     @Autowired
     MedicalInsuranceAccountService medicalInsuranceAccountService;
 
+    @Autowired
+    private MedicalInsuranceAccountMapper medicalInsuranceAccountMapper;
+
+    @Autowired
+    private MedicalInsuranceDailyClaimMapper medicalInsuranceDailyClaimMapper;
+
+    @Autowired
+    UserAccountService userAccountService;
+
+
     /**
      * 领取保险金
      */
     @GetMapping("/getInsuranceBenefit")
-    public Result getInsuranceBenefit(@RequestParam(value = "id") Integer id) {
+    public Result getInsuranceBenefit(@RequestParam(value = "account") String account) {
         try {
-            return medicalInsuranceAccountService.getInsuranceBenefit(id);
+            return medicalInsuranceAccountService.getInsuranceBenefit(account);
         }catch (Exception e){
-            e.getMessage();
+            e.printStackTrace();
             return Result.error("购买失败!");
         }
     }
 
     /**
-     * 领取保险金
+     * 查询领取状态
      */
     @GetMapping("/getReceiveStatus")
-    public Result getReceiveStatus(@RequestParam(value = "userId") Integer userId) {
+    public Result getReceiveStatus(@RequestParam(value = "account") String account) {
         try {
-            return medicalInsuranceAccountService.getReceiveStatus(userId);
+            return medicalInsuranceAccountService.getReceiveStatus(account);
         }catch (Exception e){
-            e.getMessage();
-            return Result.error("购买失败!");
+            e.printStackTrace();
+            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);
+    }
+
 }

--
Gitblit v1.9.3