Эх сурвалжийг харах

建材市场兼容app端,支持省市区筛选

yzc 2 жил өмнө
parent
commit
b96b4c25d6

+ 2 - 2
sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/KwpGoods.java

@@ -54,9 +54,9 @@ public class KwpGoods extends BaseModel implements Serializable {
     private String goodsType;
 
     /**
-     * 省份code
+     * 区域ode
      */
-    private Integer provinceCode;
+    private Integer areaCode;
 
     /**
      * 库存数量

+ 2 - 2
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/KwpGoods.java

@@ -49,9 +49,9 @@ public class KwpGoods extends BaseModel {
     private String goodsType;
 
     /**
-     * 省份code
+     * 区域code
      */
-    private Integer provinceCode;
+    private Integer areaCode;
 
     /**
      * 库存数量

+ 7 - 2
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/BuildingMaterialsMarketListParam.java

@@ -28,9 +28,14 @@ public class BuildingMaterialsMarketListParam extends PageRequest {
     private List<String> goodsTypes;
 
     /**
-     * 省份code
+     * 区域code
      */
-    private Integer provinceCode;
+    private Integer areaCode;
+
+    /**
+     * 区域等级
+     */
+    private Integer areaLevel;
 
     /**
      * 交易方式(预付款、货到付款、线下付款)

+ 13 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/res/BuildingMaterialsMarketList.java

@@ -1,11 +1,13 @@
 package com.sckw.product.model.vo.res;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 import lombok.experimental.Accessors;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 
 /**
  * @desc: 建材市场列表响应
@@ -43,11 +45,22 @@ public class BuildingMaterialsMarketList {
      */
     private String spec;
 
+    /**
+     * 库存
+     */
+    private BigDecimal amount;
+
     /**
      * 价格
      */
     private BigDecimal price;
 
+    /**
+     * 上架时间
+     */
+    @JsonFormat(pattern="yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate addedTime;
+
     /**
      * 单位(吨、方、件、箱、其他)
      */

+ 11 - 9
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

@@ -25,7 +25,6 @@ import com.sckw.product.model.vo.req.*;
 import com.sckw.product.model.vo.res.*;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
-import com.sckw.system.api.model.dto.res.SysAreaCacheResDto;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -72,8 +71,7 @@ public class KwpGoodsService {
         KwpGoods goods = BeanUtils.copyProperties(addGoodsParam, KwpGoods.class);
         if (Objects.nonNull(addGoodsParam.getAddressInfo())) {
             Integer cityCode = addGoodsParam.getAddressInfo().getCityCode();
-            SysAreaCacheResDto area = remoteSystemService.queryAreaCacheById(cityCode);
-            goods.setProvinceCode(area.getProvinceCode());
+            goods.setAreaCode(cityCode);
         }
         goods.setEntId(entId).setStatus(GoodsStatusEnum.SAVED.getCode());
         kwpGoodsMapper.insert(goods);
@@ -96,8 +94,7 @@ public class KwpGoodsService {
         //添加商品信息
         KwpGoods goods = BeanUtils.copyProperties(addGoodsParam, KwpGoods.class);
         Integer cityCode = addGoodsParam.getAddressInfo().getCityCode();
-        SysAreaCacheResDto area = remoteSystemService.queryAreaCacheById(cityCode);
-        goods.setCode(NumberUtils.createRandomVcode()).setProvinceCode(area.getProvinceCode()).setEntId(entId)
+        goods.setCode(NumberUtils.createRandomVcode()).setAreaCode(cityCode).setEntId(entId)
                 .setAddedTime(new Date()).setStatus(GoodsStatusEnum.PUT_ON_SHELVES.getCode());
         kwpGoodsMapper.insert(goods);
         addGoodsOtherInfo(goods.getId(), addGoodsParam);
@@ -225,8 +222,7 @@ public class KwpGoodsService {
         BeanUtils.copyProperties(param, goods);
         if (Objects.nonNull(param.getAddressInfo())) {
             Integer cityCode = param.getAddressInfo().getCityCode();
-            SysAreaCacheResDto area = remoteSystemService.queryAreaCacheById(cityCode);
-            goods.setProvinceCode(area.getProvinceCode());
+            goods.setAreaCode(cityCode);
         }
         kwpGoodsMapper.updateById(goods);
         updateGoodsOtherInfo(param);
@@ -309,7 +305,7 @@ public class KwpGoodsService {
         if (Objects.isNull(param.getAmount()) || param.getAmount().compareTo(BigDecimal.ZERO) < 0) {
             throw new BusinessException("库存数量不能为空且最小为零!");
         }
-        if (Objects.isNull(param.getTaxRate())|| param.getTaxRate().compareTo(BigDecimal.ZERO) < 0) {
+        if (Objects.isNull(param.getTaxRate()) || param.getTaxRate().compareTo(BigDecimal.ZERO) < 0) {
             throw new BusinessException("发票税率不能为空最小为零!");
         }
         if (StringUtils.isBlank(param.getTrading())) {
@@ -639,8 +635,14 @@ public class KwpGoodsService {
         LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
         wrapper.in(CollectionUtils.isNotEmpty(params.getGoodsTypes()), KwpGoods::getGoodsType, params.getGoodsTypes())
                 .in(CollectionUtils.isNotEmpty(params.getTradings()), KwpGoods::getTrading, params.getTradings())
-                .eq(Objects.nonNull(params.getProvinceCode()), KwpGoods::getProvinceCode, params.getProvinceCode())
                 .eq(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode()).eq(KwpGoods::getDelFlag, Global.NO);
+        if (Objects.nonNull(params.getAreaCode()) && Objects.nonNull(params.getAreaLevel())) {
+            switch (params.getAreaLevel()) {
+                case 1 -> wrapper.likeRight(KwpGoods::getAreaCode, String.valueOf(params.getAreaCode()).substring(0, 2));
+                case 2 -> wrapper.likeRight(KwpGoods::getAreaCode, String.valueOf(params.getAreaCode()).substring(0, 4));
+                case 3 -> wrapper.eq(KwpGoods::getAreaCode, params.getAreaCode());
+            }
+        }
         if (StringUtils.isNotBlank(params.getKeywords())) {
             List<EntCacheResDto> entList = remoteSystemService.queryEntCacheByName(params.getKeywords());
             List<Long> entIds = entList.stream().map(EntCacheResDto::getId).toList();