From f54231c073ae17228337571dd0c8cbf89344ac8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Tue, 5 Nov 2024 15:13:21 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=AF=E5=88=86=E6=A8=A1=E5=9D=97=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TbPointsExchangeRecordController.java | 2 +- .../cashierservice/entity/TbMemberPoints.java | 5 ++ .../entity/TbPointsBasicSetting.java | 12 +++- .../entity/dto/OrderDeductionPointsDTO.java | 4 ++ .../impl/TbMemberPointsServiceImpl.java | 58 ++++++++++++------- .../impl/TbPointsBasicSettingServiceImpl.java | 13 ++++- .../TbPointsExchangeRecordServiceImpl.java | 2 +- 7 files changed, 70 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/TbPointsExchangeRecordController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/TbPointsExchangeRecordController.java index 1f1881e..351fdba 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/TbPointsExchangeRecordController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/TbPointsExchangeRecordController.java @@ -108,7 +108,7 @@ public class TbPointsExchangeRecordController { * @return */ @PostMapping("refund") - public Result exchange(@RequestBody TbPointsExchangeRecord record) { + public Result refund(@RequestBody TbPointsExchangeRecord record) { tbPointsExchangeRecordService.refund(record); return Result.success(CodeEnum.SUCCESS); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbMemberPoints.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbMemberPoints.java index 9e111f3..e7a9b18 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbMemberPoints.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbMemberPoints.java @@ -64,4 +64,9 @@ public class TbMemberPoints { */ @TableField("last_float_points") private Integer lastFloatPoints; + /** + * 是否会员 1-是 0-否 + */ + @TableField("is_vip") + private Integer vip; } \ No newline at end of file diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPointsBasicSetting.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPointsBasicSetting.java index 1cf6299..e2f4361 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPointsBasicSetting.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPointsBasicSetting.java @@ -35,6 +35,10 @@ public class TbPointsBasicSetting { * 开启消费赠送积分 1-开启 0-关闭 */ private Integer enableRewards; + /** + * 赠积分适用群体 all-全部 vip-仅会员 + */ + private String rewardsGroup; /** * 每消费xx元赠送1积分 */ @@ -44,9 +48,13 @@ public class TbPointsBasicSetting { */ private Integer enableDeduction; /** - * 下单积分抵扣门槛 + * 抵扣适用群体 all-全部 vip-仅会员 + */ + private String deductionGroup; + /** + * 下单实付抵扣门槛 */ - private Integer minDeductionPoint; + private BigDecimal minPaymentAmount; /** * 下单最高抵扣比例 */ diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/OrderDeductionPointsDTO.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/OrderDeductionPointsDTO.java index 7f94b4d..f350cfd 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/OrderDeductionPointsDTO.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/OrderDeductionPointsDTO.java @@ -24,6 +24,10 @@ public class OrderDeductionPointsDTO { * 根据策略计算出的最多可以抵扣的金额 */ private BigDecimal maxDeductionAmount; + /** + * 下单实付抵扣门槛(实付金额不低于这个值) + */ + private BigDecimal minPaymentAmount; /** * 下单积分抵扣门槛(每次使用不低于这个值) */ diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbMemberPointsServiceImpl.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbMemberPointsServiceImpl.java index 71a4ed1..5eda70a 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbMemberPointsServiceImpl.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbMemberPointsServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.map.MapProxy; import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -120,9 +121,23 @@ public class TbMemberPointsServiceImpl extends ServiceImpl core.getMaxUsablePoints()) { throw new MsgException(StrUtil.format("使用积分不能超过最大使用限制{}", core.getMaxUsablePoints())); } - BigDecimal mul = NumberUtil.mul(new BigDecimal("0.01"), core.getEquivalentPoints()); - int minPoints = NumberUtil.round(mul, 0, RoundingMode.CEILING).intValue(); - if (points < minPoints) { - throw new MsgException(StrUtil.format("使用积分不能低于{}(0.01元)", minPoints)); - } BigDecimal money = NumberUtil.mul(points, NumberUtil.div(BigDecimal.ONE, core.getEquivalentPoints())); - return NumberUtil.roundDown(money, 2); + BigDecimal maxDeductionAmount = NumberUtil.roundDown(money, 2); + if (NumberUtil.isGreater(maxDeductionAmount, core.getMaxDeductionAmount())) { + return core.getMaxDeductionAmount(); + } + return maxDeductionAmount; } @Override @@ -282,6 +287,17 @@ public class TbMemberPointsServiceImpl extends ServiceImpllambdaQuery().eq(TbPointsBasicSetting::getShopId, entity.getShopId())); super.save(entity); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbPointsExchangeRecordServiceImpl.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbPointsExchangeRecordServiceImpl.java index eb2d578..c9374fb 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbPointsExchangeRecordServiceImpl.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbPointsExchangeRecordServiceImpl.java @@ -474,7 +474,7 @@ public class TbPointsExchangeRecordServiceImpl extends ServiceImpl