| ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/InsuranceController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ruoyi-system/src/main/java/com/ruoyi/system/dto/BuyInsuranceDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ruoyi-system/src/main/java/com/ruoyi/system/model/TInsuranceOrder.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ruoyi-system/src/main/java/com/ruoyi/system/vo/UserInsuranceVo.java | ●●●●● 补丁 | 查看 | 原始文档 | 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; }