liujie
2025-12-31 1386342e710ed0b5ccd2eb0b25229e3fa2b0f99c
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/InsuranceController.java
@@ -11,10 +11,7 @@
import com.ruoyi.system.dto.BuyInsuranceDto;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.GetCourseListQuery;
import com.ruoyi.system.service.TAppUserService;
import com.ruoyi.system.service.TBannerService;
import com.ruoyi.system.service.TInsuranceOrderService;
import com.ruoyi.system.service.TInsuranceService;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.UserInsuranceVo;
import com.ruoyi.system.wxPay.utils.WxRefundUtil;
import com.ruoyi.system.wxPay.utils.WxV3Pay;
@@ -30,6 +27,7 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Date;
import java.util.Map;
import java.util.Objects;
@@ -45,13 +43,16 @@
    private final TInsuranceService tInsuranceService;
    private final WxV3Pay wxV3Pay;
    private final TAppUserService  tAppUserService;
    private final TCourseOrderService tCourseOrderService;
    public InsuranceController(TInsuranceOrderService tInsuranceOrderService, TokenService tokenService, TInsuranceService tInsuranceService, WxV3Pay wxV3Pay, TAppUserService tAppUserService) {
    public InsuranceController(TInsuranceOrderService tInsuranceOrderService, TokenService tokenService, TInsuranceService tInsuranceService, WxV3Pay wxV3Pay, TAppUserService tAppUserService, TCourseOrderService tCourseOrderService) {
        this.tInsuranceOrderService = tInsuranceOrderService;
        this.tokenService = tokenService;
        this.tInsuranceService = tInsuranceService;
        this.wxV3Pay = wxV3Pay;
        this.tAppUserService = tAppUserService;
        this.tCourseOrderService = tCourseOrderService;
    }
@@ -108,13 +109,16 @@
        String payNo = OrderNos.getDid();
        insuranceOrder.setPayNo(payNo);
        boolean save = tInsuranceOrderService.save(insuranceOrder);
        if(dto.getType()==2){
            return R.ok();
        }
        Map<String, Object> result = wxV3Pay.jsApiInsurance(payNo, insuranceOrder.getPayMoney().multiply(BigDecimal.valueOf(100)).longValue(), appUser.getOpenId(),"购买保险","");
        return R.ok(result);
    }
    @ApiOperation(value = "保险模块--缴费记录")
    @ApiOperation(value = "保险模块--缴费记录",response = TInsuranceOrder.class)
    @PostMapping("/getInsuranceOrderList")
    public R<?> getInsuranceOrderList(@RequestBody BasePage query) {
        String userId = tokenService.getLoginUserApplet().getUserId();
@@ -135,6 +139,26 @@
        order1.setRequestRefundTime(new Date());
        order1.setRefundMoney(order1.getPayMoney().doubleValue());
        Integer type = order1.getType();
        String insuranceId = order1.getInsuranceId();
        TInsurance insurance = tInsuranceService.getById(insuranceId);
        if(insurance==null){
            return R.fail("保险已关闭,无法退款");
        }
        // 判断是否过期
        if(order1.getEndTime().before(new Date())){
            return R.fail("保险已过期,无法退款");
        }
        // 判断是否有当前的课程 待支付 和已完成
        int count = tCourseOrderService.countOrderNum( userId, type);
        if(count>0){
            return R.fail("请先完成课程");
        }
        if(!userId.equals(order1.getAppUserId())){
            return R.fail("无权限操作");
@@ -147,7 +171,7 @@
        if(payTime==null){
            return R.fail("状态不允许退款");
        }
        if(payTime.plusDays(2).isBefore(LocalDateTime.now()) || order.getPayType()==2){
        if(payTime.plusDays(2).isBefore(LocalDateTime.now()) || order1.getPayType()==2){
            order1.setBankCardNumber(order.getBankCardNumber());
            order1.setCardholderName(order.getCardholderName());
            order1.setRefundStatus(1);