From 28a60b0977d66b75fb9a2c3306840bc18ec271f6 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 19 八月 2025 17:51:18 +0800 Subject: [PATCH] 会员支付相关 --- cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java | 97 ++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 88 insertions(+), 9 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 86b0cec..32da855 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,24 +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; /** * 充值记录控制器 @@ -39,15 +45,31 @@ */ @ResponseBody @RequestMapping("/finance/rechargeList") - public List<RechargeRecordsVO> rechargeList(@RequestBody RechargeRecordsQuery query){ - return rechargeRecordsService.rechargeList(query); + public List<RechargeRecordsVO> rechargeList(@RequestBody RechargeRecordsQuery query) { + List<RechargeRecordsVO> rechargeRecordsVOS = rechargeRecordsService.rechargeList(query); + for (RechargeRecordsVO rechargeRecordsVO : rechargeRecordsVOS) { + TAppUser byId = appUserService.getById(rechargeRecordsVO.getAppUserId()); + if (byId == null) continue; + Date vipEndTime = byId.getVipEndTime(); + if (vipEndTime == null) { + rechargeRecordsVO.setType(2); + continue; + } + if (rechargeRecordsVO.getPayTime().after(vipEndTime)) { + rechargeRecordsVO.setType(2); + } else { + rechargeRecordsVO.setType(1); + } + } + return rechargeRecordsVOS; } + /** * 数据统计-充值记录列表数据 */ @ResponseBody @RequestMapping("/finance/rechargeList1") - public List<RechargeRecords> rechargeList1(@RequestBody RechargeRecordsQuery query){ + public List<RechargeRecords> rechargeList1(@RequestBody RechargeRecordsQuery query) { List<RechargeRecords> payStatus = rechargeRecordsService.list(new QueryWrapper<RechargeRecords>().eq("payStatus", 2)); for (RechargeRecords list : payStatus) { TAppUser byId = appUserService.getById(list.getAppUserId()); @@ -56,12 +78,69 @@ } return payStatus; } + /** * 加入会员列表数据 */ @ResponseBody @RequestMapping("/finance/vipPaymentList") - public List<VipPayment> registrationList(@RequestBody IncomeQuery query){ + 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 + @PostMapping("/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()!=null&&!vipPaymentDto.getUserIds().isEmpty(),VipPayment::getAppUserId, vipPaymentDto.getUserIds()); + vipPaymentLambdaQueryWrapper.in(vipPaymentDto.getVipIds()!=null&&!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(vipDetail,vo); // 注意参数顺序是否正确 + 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