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