From f4455675057977fdf8e08b29a459576e91583a3c Mon Sep 17 00:00:00 2001 From: yang <2119157836@qq.com> Date: Mon, 13 Jan 2025 16:18:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(memberCenter):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E4=BC=9A=E5=91=98=E6=94=AF=E4=BB=98=E9=87=91=E9=A2=9D=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98=E5=8C=96=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 MemberController 中添加 calculatePayment 方法,用于根据会员等级和活动计算支付金额 - 在 MemberService 接口中新增 calculatePayment 方法 - 实现 MemberServiceImpl 中的 calculatePayment 方法,支持折扣活动的计算 - 在 ModelImage 实体中添加 isTop 字段,用于表示是否置顶 - 优化 ModelImageServiceImpl 中的保存逻辑,设置创建时间 --- .../memberCenter/MemberController.java | 13 +++++++++++++ .../memberCenter/service/MemberService.java | 3 +++ .../service/impl/MemberServiceImpl.java | 18 ++++++++++++++++++ .../com/mcwl/resource/domain/ModelImage.java | 5 +++++ .../service/impl/ModelImageServiceImpl.java | 1 + 5 files changed, 40 insertions(+) diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/MemberController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/MemberController.java index 9a384bd..d3a6810 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/MemberController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/MemberController.java @@ -19,6 +19,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import javax.validation.constraints.NotNull; import java.util.List; import java.util.Optional; @@ -140,4 +141,16 @@ public class MemberController { } + /** + * 根据会员等级和活动计算支付金额 + */ + @GetMapping("calculatePayment") + public AjaxResult calculatePayment(@NotNull(message = "请选择会员") Long memberLevelId, @RequestParam(required = false) Long promotionId) { + MemberLevel memberLevel = memberLevelService.getById(memberLevelId); + Double unitPrice = memberLevel.getUnitPrice(); + unitPrice = memberService.calculatePayment(unitPrice, promotionId); + return AjaxResult.success(unitPrice); + } + + } diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/MemberService.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/MemberService.java index 28112ec..e8c5e9d 100644 --- a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/MemberService.java +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/MemberService.java @@ -3,6 +3,7 @@ package com.mcwl.memberCenter.service; import com.baomidou.mybatisplus.extension.service.IService; import com.mcwl.memberCenter.domain.Member; +import javax.validation.constraints.NotNull; import java.util.List; public interface MemberService extends IService { @@ -41,4 +42,6 @@ public interface MemberService extends IService { * @param consumePoints 消费积分 */ void consumePoints(Double consumePoints); + + Double calculatePayment(Double unitPrice, Long promotionId); } diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberServiceImpl.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberServiceImpl.java index 92f79ad..490e93a 100644 --- a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberServiceImpl.java +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberServiceImpl.java @@ -214,6 +214,24 @@ public class MemberServiceImpl extends ServiceImpl impleme } + @Override + public Double calculatePayment(Double unitPrice, Long promotionId) { + if (Objects.isNull(promotionId)) { + return unitPrice; + } + + Promotion promotion = promotionMapper.selectById(promotionId); + if (Objects.isNull(promotion)) { + return unitPrice; + } + PromotionEnum activityType = promotion.getActivityType(); + if (activityType == PromotionEnum.DISCOUNT) { + return unitPrice * promotion.getActivityValue(); + } + + return unitPrice; + } + private void saveMemberConsume(Double consumePoints, Long userId, double points) { MemberConsume memberConsume = new MemberConsume(); memberConsume.setUserId(userId); diff --git a/mcwl-resource/src/main/java/com/mcwl/resource/domain/ModelImage.java b/mcwl-resource/src/main/java/com/mcwl/resource/domain/ModelImage.java index 747f4d2..9daec80 100644 --- a/mcwl-resource/src/main/java/com/mcwl/resource/domain/ModelImage.java +++ b/mcwl-resource/src/main/java/com/mcwl/resource/domain/ModelImage.java @@ -85,4 +85,9 @@ public class ModelImage extends BaseEntity { * 状态 */ private Integer status; + + /** + * 是否置顶 + */ + private Integer isTop; } diff --git a/mcwl-resource/src/main/java/com/mcwl/resource/service/impl/ModelImageServiceImpl.java b/mcwl-resource/src/main/java/com/mcwl/resource/service/impl/ModelImageServiceImpl.java index 412040c..25c6af0 100644 --- a/mcwl-resource/src/main/java/com/mcwl/resource/service/impl/ModelImageServiceImpl.java +++ b/mcwl-resource/src/main/java/com/mcwl/resource/service/impl/ModelImageServiceImpl.java @@ -82,6 +82,7 @@ public class ModelImageServiceImpl extends ServiceImpl