| | |
| | | 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") |
| | |
| | | @Autowired |
| | | MedicalInsuranceAccountService medicalInsuranceAccountService; |
| | | |
| | | @Autowired |
| | | private MedicalInsuranceAccountMapper medicalInsuranceAccountMapper; |
| | | |
| | | @Autowired |
| | | private MedicalInsuranceDailyClaimMapper medicalInsuranceDailyClaimMapper; |
| | | |
| | | @Autowired |
| | | UserAccountService userAccountService; |
| | | |
| | | |
| | | /** |
| | | * 领取保险金 |
| | | */ |
| | | @GetMapping("/getInsuranceBenefit") |
| | | public Result getInsuranceBenefit(@RequestParam(value = "userId") Integer userId) { |
| | | public Result getInsuranceBenefit(@RequestParam(value = "account") String account) { |
| | | try { |
| | | return medicalInsuranceAccountService.getInsuranceBenefit(userId); |
| | | return medicalInsuranceAccountService.getInsuranceBenefit(account); |
| | | }catch (Exception e){ |
| | | 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.printStackTrace(); |
| | | return Result.error("购买失败!"); |
| | | 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); |
| | | } |
| | | |
| | | } |