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