From 91ec2fe7b1087b18f40bba6ffda07ad601d562ed Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 22 Dec 2022 10:48:15 +0800
Subject: [PATCH] 20221222

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java |   77 ++++++++++++++++++++++++++++++++++++--
 1 files changed, 72 insertions(+), 5 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
index ea09b5f..fde6ad8 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
@@ -2,6 +2,8 @@
 
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
+import cc.mrbird.febs.common.enumerates.StarRatingEnum;
 import cc.mrbird.febs.mall.conversion.MallGoodsConversion;
 import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.entity.*;
@@ -38,6 +40,7 @@
     private final MallGoodsStyleMapper mallGoodsStyleMapper;
     private final MallGoodsImagesMapper mallGoodsImagesMapper;
     private final MallShoppingCartMapper mallShoppingCartMapper;
+    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
 
     @Override
     public IPage<AdminMallGoodsVo> getCategoryListInPage(MallGoods mallGoods, QueryRequest request) {
@@ -109,10 +112,26 @@
         //新增商品
         MallGoods mallGoods = MallGoodsConversion.INSTANCE.dtoToEntity(addMallGoodsDto);
         mallGoods.setIsSale(MallGoods.ISSALE_STATUS_DISABLED);
+        //根据商品现价获取商品星级
+        String presentPrice = mallGoods.getPresentPrice();
 
-        if (mallGoods.getHasCarriage() == 2) {
-            mallGoods.setCarriage(BigDecimal.ZERO);
+        Integer minValue = StarRatingEnum.NORMAL.getMinValue();
+        Integer maxValue = StarRatingEnum.NORMAL.getMaxValue();
+        if(new BigDecimal(presentPrice).compareTo(new BigDecimal(minValue)) < 0
+        || new BigDecimal(presentPrice).compareTo(new BigDecimal(maxValue)) > 0){
+            return new FebsResponse().fail().message("商品现价不能小于"+ minValue + "不能大于" + maxValue);
         }
+        String starRating = StarRatingEnum.NORMAL.belongStarRating(presentPrice);
+        mallGoods.setStarRating(starRating);
+        //根据商品现价获取商品补贴金额
+        DataDictionaryCustom subsidyPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.SUBSIDY_PERCENT.getType()
+                , DataDictionaryEnum.SUBSIDY_PERCENT.getCode());
+        BigDecimal subsidyPercent = new BigDecimal(subsidyPercentDic.getValue()).multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN);
+        BigDecimal subsidyAmount = subsidyPercent.multiply(new BigDecimal(presentPrice)).setScale(2, BigDecimal.ROUND_DOWN);
+        mallGoods.setSubsidyAmount(subsidyAmount);
+//        if (mallGoods.getHasCarriage() == 2) {
+//            mallGoods.setCarriage(BigDecimal.ZERO);
+//        }
         mallGoodsMapper.insert(mallGoods);
 
         String thumbs = addMallGoodsDto.getThumbs();
@@ -323,7 +342,7 @@
                         return new FebsResponse().fail().message("商品规格原价不能小于0");
                     }
                     BigDecimal presentPrice = addSku.getPresentPrice();
-                    if (presentPrice.compareTo(BigDecimal.ZERO) <= 0) {
+                    if (presentPrice.compareTo(BigDecimal.ZERO) < 0) {
                         return new FebsResponse().fail().message("商品规格现价不能小于0");
                     }
 
@@ -341,9 +360,27 @@
         }
 
         BeanUtil.copyProperties(mallGoodsUpdateDto, mallGoods);
-        if (mallGoods.getHasCarriage() == 2) {
-            mallGoods.setCarriage(BigDecimal.ZERO);
+//        if (mallGoods.getHasCarriage() == 2) {
+//            mallGoods.setCarriage(BigDecimal.ZERO);
+//        }
+
+        //根据商品现价获取商品星级
+        String presentPrice = mallGoods.getPresentPrice();
+
+        Integer minValue = StarRatingEnum.NORMAL.getMinValue();
+        Integer maxValue = StarRatingEnum.NORMAL.getMaxValue();
+        if(new BigDecimal(presentPrice).compareTo(new BigDecimal(minValue)) < 0
+                || new BigDecimal(presentPrice).compareTo(new BigDecimal(maxValue)) > 0){
+            return new FebsResponse().fail().message("商品现价不能小于"+ minValue + "不能大于" + maxValue);
         }
+        String starRating = StarRatingEnum.NORMAL.belongStarRating(presentPrice);
+        mallGoods.setStarRating(starRating);
+        //根据商品现价获取商品补贴金额
+        DataDictionaryCustom subsidyPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.SUBSIDY_PERCENT.getType()
+                , DataDictionaryEnum.SUBSIDY_PERCENT.getCode());
+        BigDecimal subsidyPercent = new BigDecimal(subsidyPercentDic.getValue()).multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN);
+        BigDecimal subsidyAmount = subsidyPercent.multiply(new BigDecimal(presentPrice)).setScale(2, BigDecimal.ROUND_DOWN);
+        mallGoods.setSubsidyAmount(subsidyAmount);
 
         mallGoodsMapper.updateById(mallGoods);
 
@@ -473,5 +510,35 @@
         return mallGoodsMapper.getAllGoodsTree();
     }
 
+    @Override
+    public FebsResponse goodsHot(Long id) {
+        MallGoods mallGoods = mallGoodsMapper.selectById(id);
+        if (ObjectUtil.isEmpty(mallGoods)) {
+            return new FebsResponse().fail().message("商品不存在,请刷新当前页面");
+        }
+        mallGoods.setIsHot(MallGoods.ISHOT_STATE_YES);
+        mallGoodsMapper.updateById(mallGoods);
+        return new FebsResponse().success();
+    }
+
+    @Override
+    public FebsResponse goodsNotHot(Long id) {
+        MallGoods mallGoods = mallGoodsMapper.selectById(id);
+        if (ObjectUtil.isEmpty(mallGoods)) {
+            return new FebsResponse().fail().message("商品不存在,请刷新当前页面");
+        }
+        mallGoods.setIsHot(MallGoods.ISHOT_STATE_NO);
+        mallGoodsMapper.updateById(mallGoods);
+        return new FebsResponse().success();
+    }
+
+    public static void main(String[] args) {
+
+        //根据商品原价获取商品补贴金额
+        BigDecimal subsidyPercent = new BigDecimal("5").multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN);
+        BigDecimal subsidyAmount = subsidyPercent.multiply(new BigDecimal("1")).setScale(2,BigDecimal.ROUND_DOWN);
+        System.out.println(subsidyAmount);
+    }
+
 
 }

--
Gitblit v1.9.1