From 4c07eb5512914ebd38e1c1e4455094577864c9f0 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 19 八月 2025 11:47:43 +0800
Subject: [PATCH] 会员支付相关
---
cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java | 71 +++++++++++++++++++++++++++++++++--
1 files changed, 66 insertions(+), 5 deletions(-)
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java
index 03dc7c6..9d646c1 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java
@@ -1,25 +1,30 @@
package com.dsh.account.controller;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.dsh.account.entity.CoachType;
import com.dsh.account.entity.RechargeRecords;
import com.dsh.account.entity.TAppUser;
import com.dsh.account.entity.VipPayment;
import com.dsh.account.model.IncomeQuery;
+import com.dsh.account.model.dto.VipPaymentDto;
+import com.dsh.account.model.dto.VipRefundDto;
import com.dsh.account.model.query.RechargeRecordsQuery;
-import com.dsh.account.model.query.coachQuery.CoachQuery;
-import com.dsh.account.model.vo.CoachSerchVO;
import com.dsh.account.model.vo.RechargeRecordsVO;
+import com.dsh.account.model.vo.VipPaymentListVO;
import com.dsh.account.service.*;
-import net.bytebuddy.asm.Advice;
+import io.swagger.models.auth.In;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
-import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.stream.Collectors;
/**
* 充值记录控制器
@@ -82,4 +87,60 @@
public List<VipPayment> registrationList(@RequestBody IncomeQuery query) {
return rechargeRecordsService.listAll(query);
}
+ /**
+ * 退费
+ */
+ @ResponseBody
+ @RequestMapping("/finance/refund")
+ public String refund(@RequestBody VipRefundDto vipRefundDto) throws ParseException {
+ VipPayment vipPayment = vipPaymentService.getById(vipRefundDto.getId());
+ if (vipPayment==null){
+ return "500";
+ }
+ Integer appUserId = vipPayment.getAppUserId();
+ TAppUser appUser = appUserService.getById(appUserId);
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Date parse = simpleDateFormat.parse(vipRefundDto.getEndTime() + " 00:00:00");
+ appUser.setVipEndTime( parse);
+ if (parse.before(new Date())){
+ appUser.setIsVip(0);
+ }
+ appUserService.updateById(appUser);
+ vipPayment.setState(3);
+ vipPaymentService.updateById(vipPayment);
+ return "200";
+ }
+
+ @ResponseBody
+ @RequestMapping("/finance/vipPayment")
+ List<VipPaymentListVO> vipPayment(@RequestBody VipPaymentDto vipPaymentDto){
+ List<VipPaymentListVO> vipPaymentListVOS = new ArrayList<>();
+
+ List<Integer> payStatus = new ArrayList<>();
+ payStatus.add(2);
+ LambdaQueryWrapper<VipPayment> vipPaymentLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ vipPaymentLambdaQueryWrapper.in(!vipPaymentDto.getUserIds().isEmpty(),VipPayment::getAppUserId, vipPaymentDto.getUserIds());
+ vipPaymentLambdaQueryWrapper.in(!vipPaymentDto.getVipIds().isEmpty(),VipPayment::getVipId, vipPaymentDto.getVipIds());
+ vipPaymentLambdaQueryWrapper.in(VipPayment::getPayStatus,payStatus);
+ vipPaymentLambdaQueryWrapper.ge(StringUtils.hasLength(vipPaymentDto.getStartTime()), VipPayment::getInsertTime, vipPaymentDto.getStartTime());
+ vipPaymentLambdaQueryWrapper.le(StringUtils.hasLength(vipPaymentDto.getEndTime()), VipPayment::getInsertTime, vipPaymentDto.getEndTime());
+ if (vipPaymentDto.getIsRefund()!=null&&vipPaymentDto.getIsRefund()==1){
+ payStatus.add(3);
+ }
+ List<VipPayment> list = vipPaymentService.list(vipPaymentLambdaQueryWrapper);
+ // 使用 Stream + 手动拷贝提升性能和可读性(或使用 MapStruct)
+ vipPaymentListVOS = list.stream().map(vipDetail -> {
+ VipPaymentListVO vo = new VipPaymentListVO();
+ BeanUtils.copyProperties(vo, vipDetail); // 注意参数顺序是否正确
+ return vo;
+ }).collect(Collectors.toList());
+ for (VipPaymentListVO vipPaymentListVO : vipPaymentListVOS) {
+ if (vipPaymentListVO.getPayStatus()==2){
+ vipPaymentListVO.setIsRefund(0);
+ }else {
+ vipPaymentListVO.setIsRefund(1);
+ }
+ }
+ return vipPaymentListVOS;
+ }
}
--
Gitblit v1.7.1