From 499597d357c23896beeafe6f48af42c122571eb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A3=B7=E5=8F=B6?= <14103883+leaf-phos@user.noreply.gitee.com> Date: Thu, 23 Jan 2025 10:15:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/TransactionBillConverterImpl.java | 5 +--- .../ss/vip/service/impl/VipServiceImpl.java | 3 +++ .../ruoyi/ss/vipLevel/domain/VipLevel.java | 26 +++++++++---------- .../service/impl/VipLevelValidatorImpl.java | 15 +++++++++-- .../app/AppTransactionBillController.java | 2 +- 5 files changed, 31 insertions(+), 20 deletions(-) diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillConverterImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillConverterImpl.java index 74922fff..17311c37 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillConverterImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillConverterImpl.java @@ -123,10 +123,7 @@ public class TransactionBillConverterImpl implements TransactionBillConverter { bo.setPlatform(deptService.selectDeptById(Constants.ROOT_DEPT)); bo.setAgent(userService.selectSmUserByUserId(device.getAgentId())); bo.setVip(vipService.selectVipById(dto.getVipId())); - - if (bo.getVip() != null && bo.getSuit() != null) { - bo.setPrice(RechargeUtils.calcRechargePrePayPrice(bo.getVip(), bo.getSuit())); - } + bo.setPrice(RechargeUtils.calcRechargePrePayPrice(bo.getVip(), bo.getSuit())); return bo; } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/vip/service/impl/VipServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/vip/service/impl/VipServiceImpl.java index 813c66b2..bfb087b4 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/vip/service/impl/VipServiceImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/vip/service/impl/VipServiceImpl.java @@ -46,6 +46,9 @@ public class VipServiceImpl implements VipService @Override public VipVO selectVipById(Long id) { + if (id == null) { + return null; + } return vipMapper.selectVipById(id); } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/vipLevel/domain/VipLevel.java b/smart-switch-service/src/main/java/com/ruoyi/ss/vipLevel/domain/VipLevel.java index 774531cf..2c93e04c 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/vipLevel/domain/VipLevel.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/vipLevel/domain/VipLevel.java @@ -2,11 +2,7 @@ package com.ruoyi.ss.vipLevel.domain; import java.math.BigDecimal; -import javax.validation.constraints.DecimalMax; -import javax.validation.constraints.DecimalMin; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; +import javax.validation.constraints.*; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.constants.DictTypeConstants; @@ -32,35 +28,39 @@ public class VipLevel extends BaseEntity @Excel(name = "价格") @ApiModelProperty("价格") + @DecimalMin(value = "0.01", message = "价格不允许小于0.01元") private BigDecimal price; @Excel(name = "时长(天)") @ApiModelProperty("时长(天)") + @Min(value = 1, message = "时长不允许小于1天") private Integer time; @Excel(name = "描述") @ApiModelProperty("描述") + @Size(max = 200, message = "描述不允许超过200个字符") private String description; @Excel(name = "限制类型", readConverterExp = "1=不限制,2=自然周,3=30天") @ApiModelProperty("限制类型") - @NotBlank(message = "限制类型不允许为空", groups = {ValidGroup.Create.class}) + @NotBlank(message = "限制类型不允许为空", groups = {ValidGroup.Create.class, ValidGroup.FrontCreate.class}) @DictValid(type = DictTypeConstants.VIP_LEVEL_LIMIT_TYPE, message = "非法的限制类型") private String limitType; @Excel(name = "限制次数") @ApiModelProperty("限制次数") + @Min(value = 0, message = "限制次数不允许小于0") private Integer limitCount; @Excel(name = "状态", dictType = DictTypeConstants.VIP_LEVEL_STATUS) @ApiModelProperty("状态") - @NotBlank(message = "状态不允许为空", groups = {ValidGroup.Create.class}) + @NotBlank(message = "状态不允许为空", groups = {ValidGroup.Create.class, ValidGroup.FrontCreate.class}) @DictValid(type = DictTypeConstants.VIP_LEVEL_STATUS, message = "非法的状态") private String status; - @Excel(name = "定价名称") - @ApiModelProperty("定价名称") - @NotBlank(message = "定价名称不允许为空", groups = {ValidGroup.Create.class}) + @Excel(name = "名称") + @ApiModelProperty("名称") + @NotBlank(message = "会员名称不允许为空", groups = {ValidGroup.Create.class, ValidGroup.FrontCreate.class}) private String name; @Excel(name = "原价") @@ -70,7 +70,7 @@ public class VipLevel extends BaseEntity @Excel(name = "限制总次数") @ApiModelProperty("限制总次数") @Min(value = 0, message = "限制总次数不允许小于0") - @NotNull(message = "限制总次数不允许为空", groups = {ValidGroup.Create.class}) + @NotNull(message = "限制总次数不允许为空", groups = {ValidGroup.Create.class, ValidGroup.FrontCreate.class}) private Integer limitTotal; @Excel(name = "商户ID") @@ -80,13 +80,13 @@ public class VipLevel extends BaseEntity @Excel(name = "折扣") @ApiModelProperty("折扣") - @NotNull(message = "折扣不允许为空", groups = {ValidGroup.Create.class}) + @NotNull(message = "折扣不允许为空", groups = {ValidGroup.Create.class, ValidGroup.FrontCreate.class}) @DecimalMin(value = "0.1", message = "折扣不允许小于0.1折") @DecimalMax(value = "10", message = "折扣不允许大于10折") private BigDecimal discount; @Excel(name = "可用店铺ID") @ApiModelProperty("可用店铺ID") - @NotNull(message = "可用店铺ID不允许为空", groups = {ValidGroup.Create.class}) + @NotNull(message = "可用店铺不允许为空", groups = {ValidGroup.Create.class, ValidGroup.FrontCreate.class}) private Long storeId; } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/vipLevel/service/impl/VipLevelValidatorImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/vipLevel/service/impl/VipLevelValidatorImpl.java index 5fc086bf..b8644a3b 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/vipLevel/service/impl/VipLevelValidatorImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/vipLevel/service/impl/VipLevelValidatorImpl.java @@ -1,5 +1,8 @@ package com.ruoyi.ss.vipLevel.service.impl; +import com.ruoyi.ss.store.domain.StoreVo; +import com.ruoyi.ss.store.service.StoreService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.utils.ServiceUtil; @@ -10,15 +13,23 @@ import com.ruoyi.ss.vipLevel.service.VipLevelValidator; @Service public class VipLevelValidatorImpl implements VipLevelValidator { + @Autowired + private StoreService storeService; + @Override public void afterValid(VipLevelVO vo) { ServiceUtil.assertion(vo == null, "VIP等级定价不存在"); - + // 判断限制次数是否必填 - if (!VipLevelLimitType.NONE.getType().equals(vo.getLimitType())) { + if (!VipLevelLimitType.NONE.getType().equals(vo.getLimitType())) { ServiceUtil.assertion(vo.getLimitCount() == null, "限制次数不能为空"); ServiceUtil.assertion(vo.getLimitCount() <= 0, "限制次数不能小于等于0"); } + + // 判断店铺是否生效的店铺 + StoreVo store = storeService.selectSmStoreById(vo.getStoreId()); + ServiceUtil.assertion(store == null, "ID为%s的店铺不存在", vo.getStoreId()); + ServiceUtil.assertion(store.getEnabled() == null || !store.getEnabled(), "店铺【%s】暂未生效,请等待审核通过后重试", store.getName()); } } diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppTransactionBillController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppTransactionBillController.java index 4b8933c5..89732123 100644 --- a/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppTransactionBillController.java +++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/app/AppTransactionBillController.java @@ -225,7 +225,7 @@ public class AppTransactionBillController extends BaseController @ApiOperation("下单前获取订单预存金额") @GetMapping("/recharge/prePayPrice") - public AjaxResult prePayPrice(@RequestParam @ApiParam("会员ID") Long vipId, + public AjaxResult prePayPrice(@RequestParam(required = false) @ApiParam("会员ID") Long vipId, @RequestParam @ApiParam("套餐ID") Long suitId) { return success(transactionBillService.calcRechargePrePayPrice(vipId, suitId)); }