From 50cde33273f01e9f96e48652c0500216982c2b50 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Fri, 03 Jan 2025 14:44:16 +0800 Subject: [PATCH] feat(mall): 新增购买 VIP 可减免金额接口并调整接口访问方式 --- src/main/java/cc/mrbird/febs/mall/controller/ApiRunVipController.java | 11 ++++++++++- src/main/java/cc/mrbird/febs/mall/vo/ApiReduceAmountVo.java | 16 ++++++++++++++++ src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java | 23 +++++++++++++++++++++++ src/main/java/cc/mrbird/febs/mall/service/IRunVipService.java | 2 ++ 4 files changed, 51 insertions(+), 1 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiRunVipController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiRunVipController.java index 5a15e00..a697f26 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ApiRunVipController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiRunVipController.java @@ -76,7 +76,7 @@ @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiGrowInfoVo.class) }) - @PostMapping(value = "/growInfo") + @GetMapping(value = "/growInfo") public FebsResponse growInfo() { return iRunVipService.growInfo(); } @@ -98,6 +98,15 @@ return iRunVipService.growCharge(apiGrowChargeDto); } + @ApiOperation(value = "【购买VIP】可减免金额", notes = "【购买VIP】可减免金额") + @ApiResponses({ + @ApiResponse(code = 200, message = "success", response = ApiReduceAmountVo.class) + }) + @GetMapping(value = "/reduceAmount") + public FebsResponse reduceAmount() { + return iRunVipService.reduceAmount(); + } + @ApiOperation(value = "【购买VIP】APP支付", notes = "【购买VIP】APP支付") @PostMapping(value = "/balanceBuy") @SubmitRepeat diff --git a/src/main/java/cc/mrbird/febs/mall/service/IRunVipService.java b/src/main/java/cc/mrbird/febs/mall/service/IRunVipService.java index fa2ae09..e263a9b 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/IRunVipService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/IRunVipService.java @@ -30,4 +30,6 @@ FebsResponse growBuy(ApiGrowBuyDto apiGrowBuyDto); FebsResponse growCharge(ApiGrowChargeDto apiGrowChargeDto); + + FebsResponse reduceAmount(); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java index 9912a03..b1ee2da 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java @@ -447,6 +447,7 @@ apiGrowInfoVo.setLevelNow(runVipNow.getVipCode()); apiGrowInfoVo.setAmountNow(runVipNow.getPresentPrice()); + //获取runVips中的orderNumber为runVipNow.getOrderNumber() + 1的那个元素 RunVip runVipNext = runVips.stream().filter(runVip -> runVip.getOrderNumber() == runVipNow.getOrderNumber() + 1).findFirst().orElse(null); if(runVipNext != null){ @@ -668,4 +669,26 @@ mallChargeMapper.insert(mallCharge); return new FebsResponse().success().data("操作成功"); } + + @Override + public FebsResponse reduceAmount() { + Long memberId = LoginUserUtil.getLoginUser().getId(); + ApiReduceAmountVo apiReduceAmountVo = new ApiReduceAmountVo(); + MallMember mallMember = mallMemberMapper.selectById(memberId); + //减免价格 + RunVip runVip = this.baseMapper.selectOne(new LambdaQueryWrapper<RunVip>().eq(RunVip::getVipCode, mallMember.getLevel())); + BigDecimal reduceAmount = runVip.getPresentPrice(); + RunVipGrow runVipGrow = runVipGrowMapper.selectList( + new LambdaQueryWrapper<RunVipGrow>() + .eq(RunVipGrow::getMemberId, memberId) + .eq(RunVipGrow::getLevelNow, mallMember.getLevel()) + .orderByDesc(RunVipGrow::getId) + ).stream().findFirst().orElse(null); + if(runVipGrow != null){ + BigDecimal amountNow = runVipGrow.getAmountNow(); + reduceAmount = reduceAmount.add(amountNow); + } + apiReduceAmountVo.setReduceAmount(reduceAmount); + return new FebsResponse().success().data(apiReduceAmountVo); + } } diff --git a/src/main/java/cc/mrbird/febs/mall/vo/ApiReduceAmountVo.java b/src/main/java/cc/mrbird/febs/mall/vo/ApiReduceAmountVo.java new file mode 100644 index 0000000..d02437d --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/vo/ApiReduceAmountVo.java @@ -0,0 +1,16 @@ +package cc.mrbird.febs.mall.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@ApiModel(value = "ApiReduceAmountVo", description = "信息返回类") +public class ApiReduceAmountVo { + + @ApiModelProperty(value = "可减免金额") + private BigDecimal reduceAmount = BigDecimal.ZERO; + +} -- Gitblit v1.9.1