Browse Source

联合丽格 1.0.1

huangzhiguo 1 year ago
parent
commit
416f432ea5

+ 7 - 0
src/main/java/com/caimei365/commodity/components/PriceUtilService.java

@@ -340,6 +340,7 @@ public class PriceUtilService {
         organizeId = organizeId == null?0:organizeId;
         // 设置图片
         product.setImage(ImageUtils.getImageURL("product", product.getImage(), 0, domain));
+        boolean taxFlag = ("0".equals(product.getIncludedTax()) && ("1".equals(product.getInvoiceType()) || "2".equals(product.getInvoiceType())));
         List<Sku> organizeSkus = priceMapper.findOrganizeSkus(product.getProductId());
         if (null != organizeSkus) {
             product.setPrice(organizeSkus.get(0).getPrice());
@@ -351,8 +352,14 @@ public class PriceUtilService {
             //设置展示的价格等级
             product.setPriceGrade(getPriceGrade(product.getPrice()));
         }
+        if (taxFlag) {
+            product.setPrice(MathUtil.add(product.getPrice(), MathUtil.div(MathUtil.mul(product.getPrice(), product.getTaxRate()), 100, 2)).doubleValue());
+        }
         // 价格等级
         organizeSkus.forEach(o -> {
+            if (taxFlag) {
+                o.setPrice(MathUtil.add(o.getPrice(), MathUtil.div(MathUtil.mul(o.getPrice(), product.getTaxRate()), 100, 2)).doubleValue());
+            }
             o.setPriceGrade(getPriceGrade(o.getPrice()));
         });
     }

+ 1 - 1
src/main/java/com/caimei365/commodity/model/vo/MallOrganizeProductVo.java

@@ -54,7 +54,7 @@ public class MallOrganizeProductVo {
     /**
      * 是否含税   0不含税,1含税,2未知
      */
-    private Integer includedTax;
+    private String includedTax;
     /**
      * 发票类型(基于是否含税基础)   1增值税票,2普通票, 3不能开票
      */

+ 7 - 2
src/main/java/com/caimei365/commodity/service/impl/MallOrganizeServiceImpl.java

@@ -61,7 +61,7 @@ public class MallOrganizeServiceImpl implements MallOrganizeService {
                 List<MallOrganizeProductVo> productVos = mallProducts.stream().filter(m -> m.getFloorId() == floor.getId()).collect(Collectors.toList());
                 productVos.forEach( product -> {
                     // 计算税费
-                    boolean taxFlag = (Integer.valueOf(0).equals(product.getIncludedTax()) && ("1".equals(product.getInvoiceType()) || "2".equals(product.getInvoiceType())));
+                    boolean taxFlag = ("0".equals(product.getIncludedTax()) && ("1".equals(product.getInvoiceType()) || "2".equals(product.getInvoiceType())));
                     if (taxFlag) {
                         product.setPrice(MathUtil.add(product.getPrice(), MathUtil.div(MathUtil.mul(product.getPrice(), product.getTaxRate()), 100, 2)).doubleValue());
                     }
@@ -129,6 +129,11 @@ public class MallOrganizeServiceImpl implements MallOrganizeService {
         // 活动商品信息
         List<MallOrganizeProductVo> menuList = mallOrganizeMapper.getImageProduct(imageId);
         menuList.forEach(p -> {
+            // 计算税费
+            boolean taxFlag = ("0".equals(p.getIncludedTax()) && ("1".equals(p.getInvoiceType()) || "2".equals(p.getInvoiceType())));
+            if (taxFlag) {
+                p.setPrice(MathUtil.add(p.getPrice(), MathUtil.div(MathUtil.mul(p.getPrice(), p.getTaxRate()), 100, 2)).doubleValue());
+            }
             // 价格等级
             p.setPriceGrade(priceUtilService.getPriceGrade(p.getPrice()));
             if (StringUtils.isBlank(p.getTopic())) {
@@ -154,7 +159,7 @@ public class MallOrganizeServiceImpl implements MallOrganizeService {
         List<MallOrganizeProductVo> organizeProducts = mallOrganizeMapper.getOrganizeProducts(floorId);
         organizeProducts.forEach(p -> {
             // 计算税费
-            boolean taxFlag = (Integer.valueOf(0).equals(p.getIncludedTax()) && ("1".equals(p.getInvoiceType()) || "2".equals(p.getInvoiceType())));
+            boolean taxFlag = ("0".equals(p.getIncludedTax()) && ("1".equals(p.getInvoiceType()) || "2".equals(p.getInvoiceType())));
             if (taxFlag) {
                 p.setPrice(MathUtil.add(p.getPrice(), MathUtil.div(MathUtil.mul(p.getPrice(), p.getTaxRate()), 100, 2)).doubleValue());
             }

+ 16 - 0
src/main/java/com/caimei365/commodity/service/impl/MallProductServiceImpl.java

@@ -10,11 +10,14 @@ import com.caimei365.commodity.model.vo.MallProductSkuVo;
 import com.caimei365.commodity.model.vo.PaginationVo;
 import com.caimei365.commodity.model.vo.ProductDetailVo;
 import com.caimei365.commodity.service.MallProductService;
+import com.caimei365.commodity.utils.MathUtil;
 import com.github.pagehelper.PageHelper;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -26,6 +29,7 @@ import java.util.Map;
  * @date : 2023/5/11
  */
 @Service
+@Slf4j
 public class MallProductServiceImpl implements MallProductService {
 
     @Autowired private MallProductMapper productMapper;
@@ -46,15 +50,27 @@ public class MallProductServiceImpl implements MallProductService {
         if (null != productList) {
             // 商品sku
             productList.forEach(product -> {
+                //税费标志
+                boolean taxFlag = "0".equals(product.getIncludedTax()) && ("1".equals(product.getInvoiceType()) || "2".equals(product.getInvoiceType()));
                 if (null != product.getProductId()) {
                     List<Sku> mallSkus = productMapper.getMallSkus(product.getProductId());
                     if (null != mallSkus) {
                         mallSkus.forEach(s -> {
+                            //添加税费
+                            if (taxFlag) {
+                                BigDecimal thisTaxFee = MathUtil.div(MathUtil.mul(s.getPrice(), product.getTaxRate()), 100, 2);
+                                s.setPrice(MathUtil.add(s.getPrice(), thisTaxFee).doubleValue());
+                            }
                             s.setPriceGrade(priceUtilService.getPriceGrade(s.getPrice()));
                         });
                         product.setSku(mallSkus);
                     }
                 }
+                //添加税费
+                if (taxFlag) {
+                    BigDecimal thisTaxFee = MathUtil.div(MathUtil.mul(product.getPrice(), product.getTaxRate()), 100, 2);
+                    product.setPrice(MathUtil.add(product.getPrice(), thisTaxFee).doubleValue());
+                }
             });
         }
         PaginationVo<MallOrganizeProductVo> page = new PaginationVo<>(productList);

+ 4 - 0
src/main/java/com/caimei365/commodity/service/impl/PageServiceImpl.java

@@ -5,6 +5,7 @@ import com.aliyun.oss.OSSClientBuilder;
 import com.caimei365.commodity.components.PriceUtilService;
 import com.caimei365.commodity.mapper.*;
 import com.caimei365.commodity.model.ResponseJson;
+import com.caimei365.commodity.model.dto.Sku;
 import com.caimei365.commodity.model.po.*;
 import com.caimei365.commodity.model.search.ProductListVo;
 import com.caimei365.commodity.model.vo.*;
@@ -766,6 +767,9 @@ public class PageServiceImpl implements PageService {
                 product.setPrice(MathUtil.add(product.getPrice(), MathUtil.div(MathUtil.mul(product.getPrice(), product.getTaxPoint()), 100, 2)).doubleValue());
             }
             organizeSkus.forEach(o -> {
+                if (taxFlag) {
+                    o.setPrice(MathUtil.add(o.getPrice(), MathUtil.div(MathUtil.mul(o.getPrice(), product.getTaxPoint()), 100, 2)).doubleValue());
+                }
                 // 设置价格等级
                 o.setPriceGrade(priceUtilService.getPriceGrade(o.getPrice()));
             });

+ 6 - 0
src/main/resources/mapper/MallProductMapper.xml

@@ -13,6 +13,9 @@
         copi.validFlag,
         p.name,
         p.mainImage,
+        p.includedTax,
+        p.invoiceType,
+        p.taxPoint as taxRate,
         s.name as shopName
         FROM product p
         LEFT JOIN shop s ON s.shopId = p.shopId
@@ -35,6 +38,9 @@
                cs.unit AS unit,
                copi.validFlag,
                p.name,
+               p.includedTax,
+               p.invoiceType,
+               p.taxPoint as taxRate,
                s.name as shopName
         FROM  product p
             LEFT JOIN shop s ON s.shopId = p.shopId