FengChaoYu 9 månader sedan
förälder
incheckning
3fa5fe1dfb

+ 6 - 4
mall-server-api/src/main/java/com/gree/mall/manager/bean/material/stock/WebsitSalesGoodsVO.java

@@ -1,6 +1,5 @@
 package com.gree.mall.manager.bean.material.stock;
 
-import com.gree.mall.manager.annotation.ZfireField;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
@@ -11,7 +10,6 @@ import java.math.BigDecimal;
 @Accessors(chain = true)
 public class WebsitSalesGoodsVO {
 
-    @ZfireField(hide = true)
     @ApiModelProperty(value = "商品编号")
     private String id;
 
@@ -21,11 +19,9 @@ public class WebsitSalesGoodsVO {
     @ApiModelProperty(value = "商品名称")
     private String goodsName;
 
-    @ZfireField(hide = true)
     @ApiModelProperty(value = "配件编号")
     private String partsNumber;
 
-    @ZfireField(hide = true)
     @ApiModelProperty(value = "配件名称")
     private String partsName;
 
@@ -70,4 +66,10 @@ public class WebsitSalesGoodsVO {
 
     @ApiModelProperty(value = "物料组")
     private String materialGroupName;
+
+    @ApiModelProperty(value = "市场价")
+    private BigDecimal marketPrice;
+
+    @ApiModelProperty(value = "销售价格")
+    private BigDecimal salesPrice;
 }

+ 1 - 1
mall-server-api/src/main/java/com/gree/mall/manager/controller/material/manage/WebsitPartsConfigController.java

@@ -39,7 +39,7 @@ public class WebsitPartsConfigController {
     @PostMapping("/detail")
     @ApiOperation("配件返还配置详情")
     public ResponseHelper<WebsitPartsConfigBean> detail(
-            @ApiParam(value = "purchaseId", required = true) @RequestParam String id
+            @ApiParam(value = "id", required = true) @RequestParam String id
     ) throws Exception {
         return ResponseHelper.success(websitPartsConfigLogic.detail(id));
     }

+ 26 - 5
mall-server-api/src/main/java/com/gree/mall/manager/logic/material/manage/WebsitSalesLogic.java

@@ -44,10 +44,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -661,11 +658,35 @@ public class WebsitSalesLogic {
         }
 
         List<WebsitSalesGoodsVO> goodsList = materialMapper.existStockGoods(companyId, websitId, type.getKey(), categoryId, goodsName,goodsSpecification);
-
+        if (CollectionUtil.isNotEmpty(goodsList) && WebsitGoodsTypeEnum.P.getKey().equals(type.getKey())) {
+            for (WebsitSalesGoodsVO vo : goodsList) {
+                this.computeSalesPrice(companyId, vo);
+            }
+        }
         return goodsList;
 
     }
 
+    private void computeSalesPrice(String companyId, WebsitSalesGoodsVO vo) {
+        final MaterialConfig materialConfig = materialConfigService.lambdaQuery()
+                .eq(MaterialConfig::getCompanyWechatId, companyId)
+                .one();
+        switch (Optional.ofNullable(vo.getPartType()).orElse("")) {
+            case "空调":
+                vo.setSalesPrice(vo.getMarketPrice().multiply(materialConfig.getPriceRate1()).setScale(2, BigDecimal.ROUND_HALF_UP));
+                break;
+            case "冰箱":
+                vo.setSalesPrice(vo.getMarketPrice().multiply(materialConfig.getPriceRate2()).setScale(2, BigDecimal.ROUND_HALF_UP));
+                break;
+            case "生活电器":
+                vo.setSalesPrice(vo.getMarketPrice().multiply(materialConfig.getPriceRate3()).setScale(2, BigDecimal.ROUND_HALF_UP));
+                break;
+            default:
+                vo.setSalesPrice(vo.getMarketPrice().multiply(new BigDecimal("1.2")).setScale(2, BigDecimal.ROUND_HALF_UP));
+                break;
+        }
+    }
+
     @Transactional
     public String importMaterialData(MultipartFile file) throws Exception {
         String batchId = StrUtil.uuid();

+ 8 - 7
mall-server-api/src/main/resources/mapper/MaterialMapper.xml

@@ -216,6 +216,8 @@
             b.market_price AS price,
             a.goods_id AS partsNumber,
             b.goods_name AS partsName,
+            b.market_price,
+            b.part_type,
         </if>
             b.goods_code,
             b.goods_spell,
@@ -232,13 +234,12 @@
         FROM
             websit_stock a
                 JOIN websit_goods b ON
-                    <if test="goodsType!=null and goodsType!='' and goodsType=='M'.toString()">
-                        a.goods_id = b.goods_id
-                    </if>
-                    <if test="goodsType!=null and goodsType!='' and goodsType=='P'.toString()">
-                        a.goods_id = b.goods_code
-                    </if>
-
+                <if test="goodsType!=null and goodsType!='' and goodsType=='M'.toString()">
+                    a.goods_id = b.goods_id
+                </if>
+                <if test="goodsType!=null and goodsType!='' and goodsType=='P'.toString()">
+                    a.goods_id = b.goods_code
+                </if>
                 <if test="goodsType=='M'.toString()">
                     LEFT JOIN websit_goods_price c ON a.goods_id = c.goods_id AND a.websit_id = c.websit_id
                 </if>