package com.ruoyi.web.controller.api; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.BaseModel; import com.ruoyi.common.core.domain.R; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.BuyInsuranceDto; import com.ruoyi.system.model.TBanner; import com.ruoyi.system.model.TCourse; import com.ruoyi.system.model.TInsuranceOrder; import com.ruoyi.system.query.GetCourseListQuery; import com.ruoyi.system.service.TInsuranceOrderService; import com.ruoyi.system.vo.UserInsuranceVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import java.util.Objects; @Slf4j @RestController @RequestMapping("/insurance") @Api(tags = "保险模块") public class InsuranceController { private final TInsuranceOrderService tInsuranceOrderService; private final TokenService tokenService; public InsuranceController(TInsuranceOrderService tInsuranceOrderService, TokenService tokenService) { this.tInsuranceOrderService = tInsuranceOrderService; this.tokenService = tokenService; } /** * 获取是否支付了保险费 是否到期 */ @GetMapping("/getInsurance") @ApiOperation(value = "保险模块--获取用户是否有保险",response = TBanner.class) public R getCourseList() { String userId = tokenService.getLoginUserApplet().getUserId(); UserInsuranceVo insuranceVo = new UserInsuranceVo(); TInsuranceOrder one = tInsuranceOrderService.getOne(Wrappers.lambdaQuery().eq(TInsuranceOrder::getAppUserId, userId).eq(TInsuranceOrder::getStatus, 2).orderByDesc(BaseModel::getCreateTime).last("LIMIT 1")); if(one!=null){ insuranceVo.setUserId(userId); insuranceVo.setPayTime(one.getPayTime()); insuranceVo.setEndTime(one.getEndTime()); } return R.ok(insuranceVo); } @PostMapping("/buyInsurance") @ApiOperation(value = "保险模块--购买保险") public R buyInsurance(@RequestBody BuyInsuranceDto dto) { String userId = tokenService.getLoginUserApplet().getUserId(); // 查询保险订单 TInsuranceOrder one = tInsuranceOrderService.getOne(Wrappers.lambdaQuery().eq(TInsuranceOrder::getAppUserId, userId).eq(TInsuranceOrder::getStatus, 2).orderByDesc(BaseModel::getCreateTime).last("LIMIT 1")); if(one!=null){ return R.fail("您已购买保险"); } TInsuranceOrder insuranceOrder = new TInsuranceOrder(); insuranceOrder.setAppUserId(userId); insuranceOrder.setName(dto.getName()); insuranceOrder.setPhone(dto.getPhone()); insuranceOrder.setIdCard(dto.getIdCard()); insuranceOrder.setImg(dto.getImg()); insuranceOrder.setPayType(dto.getType()); boolean save = tInsuranceOrderService.save(insuranceOrder); if(save){ return R.ok("购买成功"); } return R.fail("购买失败"); } }