From 1386342e710ed0b5ccd2eb0b25229e3fa2b0f99c Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 31 十二月 2025 17:04:43 +0800
Subject: [PATCH] 优化
---
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/InsuranceController.java | 41 +++++++++++++++++++++++++++++++++--------
1 files changed, 33 insertions(+), 8 deletions(-)
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/InsuranceController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/InsuranceController.java
index 0f3b0a4..654f79f 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/InsuranceController.java
+++ b/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;
@@ -24,11 +21,13 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import javax.validation.Valid;
import java.math.BigDecimal;
import java.math.RoundingMode;
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;
@@ -44,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;
}
@@ -75,7 +77,7 @@
@PostMapping("/buyInsurance")
@ApiOperation(value = "保险模块--购买保险")
- public R<?> buyInsurance(@RequestBody BuyInsuranceDto dto) throws ParseException {
+ public R<?> buyInsurance(@RequestBody @Valid BuyInsuranceDto dto) throws ParseException {
String userId = tokenService.getLoginUserApplet().getUserId();
TAppUser appUser = tAppUserService.getById(userId);
@@ -107,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();
@@ -134,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("无权限操作");
@@ -146,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);
--
Gitblit v1.7.1