xuhy
2025-12-29 dc717956d674f7e307453e6da74077733137683a
Merge remote-tracking branch 'origin/master'
3个文件已添加
1个文件已修改
177 ■■■■■ 已修改文件
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/InsuranceController.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/dto/BuyInsuranceDto.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TInsuranceOrder.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/UserInsuranceVo.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/InsuranceController.java
New file
@@ -0,0 +1,83 @@
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<UserInsuranceVo> getCourseList() {
        String userId = tokenService.getLoginUserApplet().getUserId();
        UserInsuranceVo insuranceVo = new UserInsuranceVo();
        TInsuranceOrder one = tInsuranceOrderService.getOne(Wrappers.<TInsuranceOrder>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.<TInsuranceOrder>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("购买失败");
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/dto/BuyInsuranceDto.java
New file
@@ -0,0 +1,25 @@
package com.ruoyi.system.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("购买保险参数")
public class BuyInsuranceDto {
    @ApiModelProperty("姓名")
    private String name;
    @ApiModelProperty("手机号")
    private String phone;
    @ApiModelProperty("身份证号")
    private String idCard;
    @ApiModelProperty("凭证")
    private String img;
    @ApiModelProperty("1线上2线下")
    private Integer type;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/TInsuranceOrder.java
@@ -6,7 +6,9 @@
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@@ -33,95 +35,138 @@
    @TableId(value = "id",  type = IdType.ASSIGN_ID)
    private String id;
    @TableField("insurance_id")
    @ApiModelProperty(value = "保险id")
    private String insuranceId;
    @TableField("app_user_id")
    @ApiModelProperty(value = "用户id")
    private String appUserId;
    @TableField("name")
    @ApiModelProperty(value = "姓名")
    private String name;
    @TableField("phone")
    @ApiModelProperty(value = "手机号")
    private String phone;
    @TableField("id_card")
    @ApiModelProperty(value = "身份证号码")
    private String idCard;
    /**
     * 支付凭证
     */
    @TableField("img")
    @ApiModelProperty(value = "支付凭证")
    private String img;
    /**
     * 1线上2线下
     */
    @TableField("pay_type")
    @ApiModelProperty(value = "1线上2线下")
    private Integer payType;
    /**
     * 支付编号
     */
    @TableField("pay_no")
    @ApiModelProperty(value = "支付编号")
    private String payNo;
    /**
     * 支付金额
     */
    @TableField("pay_money")
    @ApiModelProperty(value = "支付金额")
    private BigDecimal payMoney;
    /**
     * 支付时间
     */
    @TableField("pay_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "支付时间")
    private Date payTime;
    @TableField("end_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "截至时间")
    private Date endTime;
    /**
     * 支付流水号
     */
    @TableField("transaction_id")
    @ApiModelProperty(value = "支付流水号")
    private String transactionId;
    /**
     * 0未付款 1已退  2已支付
     */
    @TableField("status")
    @ApiModelProperty(value = "0未付款 1已退  2已支付 3已过期")
    private Integer status;
    /**
     * 退款时间
     */
    @TableField("refund_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "退款时间")
    private Date refundTime;
    /**
     * 申请退款时间
     */
    @TableField("request_refund_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "申请退款时间")
    private Date requestRefundTime;
    @ApiModelProperty(value = "银行卡号")
    @TableField("bank_card_number")
    private String bankCardNumber;
    @ApiModelProperty(value = "持卡人姓名")
    @TableField("cardholder_name")
    private String cardholderName;
    /**
     * 退款金额
     */
    @TableField("refund_money")
    @ApiModelProperty(value = "退款金额")
    private Double refundMoney;
    /**
     * 退款原因
     */
    @TableField("refund_reason")
    @ApiModelProperty(value = "退款原因")
    private String refundReason;
    /**
     * 申请退款原因图片
     */
    @TableField("refund_reason_pictures")
    @ApiModelProperty(value = "申请退款原因图片")
    private String refundReasonPictures;
    /**
     * 退款单号
     */
    @TableField("refund_number")
    @ApiModelProperty(value = "退款单号")
    private String refundNumber;
    /**
     * 退款流水号
     */
    @TableField("refund_transaction_id")
    @ApiModelProperty(value = "退款流水号")
    private String refundTransactionId;
    /**
     * 退款审核状态 1=待审核 2=通过 3=驳回
     */
    @TableField("refund_status")
    @ApiModelProperty(value = "退款审核状态 1=待审核 2=通过 3=驳回")
    private Integer refundStatus;
    /**
     * 退款凭证
     */
    @TableField("refund_voucher")
    @ApiModelProperty(value = "退款凭证")
    private String refundVoucher;
    /**
     * 驳回原因
     */
    @TableField("reject_reason")
    @ApiModelProperty(value = "驳回原因")
    private String rejectReason;
ruoyi-system/src/main/java/com/ruoyi/system/vo/UserInsuranceVo.java
New file
@@ -0,0 +1,24 @@
package com.ruoyi.system.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel("用户保险信息")
public class UserInsuranceVo {
    @ApiModelProperty("用户id")
    private String userId;
    @ApiModelProperty("保险支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date payTime;
    @ApiModelProperty("保险到期时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endTime;
}