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 | 127 +++++++++++++++++++++++++++++++++++++++--- 1 files changed, 118 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 896c7ce..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,19 +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.service.CoachService; -import com.dsh.account.service.CoachTypeService; -import com.dsh.account.service.RechargeRecordsService; +import com.dsh.account.model.vo.VipPaymentListVO; +import com.dsh.account.service.*; +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.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * 充值记录控制器 @@ -23,6 +34,10 @@ public class FinanceController { @Autowired private RechargeRecordsService rechargeRecordsService; + @Autowired + private IVipPaymentService vipPaymentService; + @Autowired + private TAppUserService appUserService; /** @@ -30,8 +45,102 @@ */ @ResponseBody @RequestMapping("/finance/rechargeList") - public List<RechargeRecordsVO> rechargeList(@RequestBody RechargeRecordsQuery query){ - List<RechargeRecordsVO> list = rechargeRecordsService.rechargeList(query); - return list; + 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) { + List<RechargeRecords> payStatus = rechargeRecordsService.list(new QueryWrapper<RechargeRecords>().eq("payStatus", 2)); + for (RechargeRecords list : payStatus) { + TAppUser byId = appUserService.getById(list.getAppUserId()); + Integer addUserId = byId.getAddUserId(); + + } + return payStatus; + } + + /** + * 加入会员列表数据 + */ + @ResponseBody + @RequestMapping("/finance/vipPaymentList") + 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