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