From 6af1c2b1e2f77d28e25e5999c271e68de7c641a5 Mon Sep 17 00:00:00 2001 From: weizhiqiang <598748873@qq.com> Date: Tue, 22 Oct 2024 21:52:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=95=86=E5=9F=8E=E5=95=86=E5=93=81?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ShopMaterialController.java | 8 --- .../ShopMaterialStoreController.java | 8 +++ .../shopmaterial/entity/ShopMaterial.java | 8 +++ .../service/ShopMaterialService.java | 4 +- .../service/ShopMaterialStoreService.java | 4 ++ .../service/impl/ShopMaterialServiceImpl.java | 51 ++++++++----------- .../impl/ShopMaterialStoreServiceImpl.java | 47 +++++++++++++++++ 7 files changed, 89 insertions(+), 41 deletions(-) diff --git a/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/controller/ShopMaterialController.java b/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/controller/ShopMaterialController.java index 28045e21..d60b4221 100644 --- a/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/controller/ShopMaterialController.java +++ b/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/controller/ShopMaterialController.java @@ -47,14 +47,6 @@ public class ShopMaterialController { shopMaterialService.saveOrUpdateEntity(inputObject, outputObject); } - @ApiOperation(id = "queryShopMaterialById", value = "根据id获取商城商品信息", method = "GET", allUse = "0") - @ApiImplicitParams(value = { - @ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required")}) - @RequestMapping("/post/ShopMaterialController/queryShopMaterialById") - public void queryShopMaterialById(InputObject inputObject, OutputObject outputObject) { - shopMaterialService.queryShopMaterialById(inputObject, outputObject); - } - @ApiOperation(id = "queryShopMaterialList", value = "获取商城商品信息列表", method = "POST", allUse = "0") @ApiImplicitParams(classBean = CommonPageInfo.class) @RequestMapping("/post/ShopMaterialController/queryShopMaterialList") diff --git a/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/controller/ShopMaterialStoreController.java b/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/controller/ShopMaterialStoreController.java index 6c212b15..14fab5ec 100644 --- a/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/controller/ShopMaterialStoreController.java +++ b/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/controller/ShopMaterialStoreController.java @@ -38,4 +38,12 @@ public class ShopMaterialStoreController { shopMaterialStoreService.saveShopMaterialStore(inputObject, outputObject); } + @ApiOperation(id = "queryShopMaterialById", value = "根据id获取商城商品信息", method = "GET", allUse = "0") + @ApiImplicitParams(value = { + @ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required")}) + @RequestMapping("/post/ShopMaterialStoreController/queryShopMaterialById") + public void queryShopMaterialById(InputObject inputObject, OutputObject outputObject) { + shopMaterialStoreService.queryShopMaterialById(inputObject, outputObject); + } + } diff --git a/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/entity/ShopMaterial.java b/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/entity/ShopMaterial.java index 10c71f4e..5a20b1b2 100644 --- a/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/entity/ShopMaterial.java +++ b/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/entity/ShopMaterial.java @@ -85,6 +85,14 @@ public class ShopMaterial extends OperatorUserInfo { @Property(value = "实际销量") private String realSales; + @TableField(exist = false) + @Property("默认门店id") + private String defaultStoreId; + + @TableField(exist = false) + @Property("该商品随机支持的门店信息") + private ShopMaterialStore shopMaterialStore; + @TableField(exist = false) @ApiModelProperty(value = "上架的规格信息", required = "json") private List shopMaterialNormsList; diff --git a/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/service/ShopMaterialService.java b/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/service/ShopMaterialService.java index 4aa5c9eb..df74de25 100644 --- a/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/service/ShopMaterialService.java +++ b/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/service/ShopMaterialService.java @@ -25,7 +25,7 @@ public interface ShopMaterialService extends SkyeyeBusinessService void queryShopMaterialByNormsIdList(InputObject inputObject, OutputObject outputObject); - void queryShopMaterialById(InputObject inputObject, OutputObject outputObject); - void queryBrandShopMaterialList(InputObject inputObject, OutputObject outputObject); + + ShopMaterial queryShopMaterialByMaterialId(String materialId); } diff --git a/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/service/ShopMaterialStoreService.java b/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/service/ShopMaterialStoreService.java index 9bc6124f..fbab3ce0 100644 --- a/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/service/ShopMaterialStoreService.java +++ b/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/service/ShopMaterialStoreService.java @@ -41,4 +41,8 @@ public interface ShopMaterialStoreService extends SkyeyeBusinessService queryShopMaterialList(InputObject inputObject, OutputObject outputObject); + Map queryShopMaterialStoreByMaterialIds(String... materialIds); + + void queryShopMaterialById(InputObject inputObject, OutputObject outputObject); + } diff --git a/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/service/impl/ShopMaterialServiceImpl.java b/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/service/impl/ShopMaterialServiceImpl.java index 8d86991e..7a7350ff 100644 --- a/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/service/impl/ShopMaterialServiceImpl.java +++ b/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/service/impl/ShopMaterialServiceImpl.java @@ -21,7 +21,6 @@ import com.skyeye.common.object.OutputObject; import com.skyeye.common.util.mybatisplus.MybatisPlusUtil; import com.skyeye.material.classenum.MaterialShelvesState; import com.skyeye.material.entity.Material; -import com.skyeye.material.service.MaterialNormsService; import com.skyeye.material.service.MaterialService; import com.skyeye.shopmaterial.dao.ShopMaterialDao; import com.skyeye.shopmaterial.entity.ShopMaterial; @@ -54,9 +53,6 @@ public class ShopMaterialServiceImpl extends SkyeyeBusinessServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq(MybatisPlusUtil.toColumns(ShopMaterial::getMaterialId), materialId); - ShopMaterial shopMaterial = super.getOne(queryWrapper); - if (ObjectUtil.isEmpty(shopMaterial)) { - return null; - } - return selectById(shopMaterial.getId()); - } - @Override public ShopMaterial selectById(String id) { ShopMaterial shopMaterial = super.selectById(id); @@ -190,22 +176,6 @@ public class ShopMaterialServiceImpl extends SkyeyeBusinessServiceImpl { - shopMaterialNorms.setEstimatePurchasePrice(null); - }); - outputObject.setBean(shopMaterial); - outputObject.settotal(CommonNumConstants.NUM_ONE); - } - @Override public void queryBrandShopMaterialList(InputObject inputObject, OutputObject outputObject) { MPJLambdaWrapper wrapper = new MPJLambdaWrapper() @@ -216,12 +186,20 @@ public class ShopMaterialServiceImpl extends SkyeyeBusinessServiceImpl shopMaterialList = skyeyeBaseMapper.selectJoinList(ShopMaterial.class, wrapper); // 根据id批量查询详细的商品信息 List idList = shopMaterialList.stream().map(ShopMaterial::getId).collect(Collectors.toList()); + // 批量查询商品所属门店信息(门店随机) + List materialIds = shopMaterialList.stream().map(ShopMaterial::getMaterialId).distinct().collect(Collectors.toList()); + Map stringShopMaterialStoreMap = shopMaterialStoreService.queryShopMaterialStoreByMaterialIds(materialIds.toArray(new String[]{})); shopMaterialList = selectByIds(idList.toArray(new String[]{})); shopMaterialList.forEach(shopMaterial -> { shopMaterial.getMaterialMation().setMaterialNorms(null); shopMaterial.getMaterialMation().setUnitGroupMation(null); shopMaterial.getMaterialMation().setMaterialProcedure(null); shopMaterial.getMaterialMation().setNormsSpec(null); + // 设置门店信息 + shopMaterial.setShopMaterialStore(stringShopMaterialStoreMap.get(shopMaterial.getMaterialId())); + if (ObjectUtil.isNotEmpty(shopMaterial.getShopMaterialStore())) { + shopMaterial.setDefaultStoreId(shopMaterial.getShopMaterialStore().getStoreId()); + } }); // 根据品牌id进行分组,并且每个品牌下只取8条数据 @@ -247,4 +225,15 @@ public class ShopMaterialServiceImpl extends SkyeyeBusinessServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(MybatisPlusUtil.toColumns(ShopMaterial::getMaterialId), materialId); + ShopMaterial shopMaterial = getOne(queryWrapper, false); + if (ObjectUtil.isEmpty(shopMaterial)) { + return null; + } + return selectById(shopMaterial.getId()); + } + } diff --git a/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/service/impl/ShopMaterialStoreServiceImpl.java b/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/service/impl/ShopMaterialStoreServiceImpl.java index 1275aea3..ca7af6a6 100644 --- a/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/service/impl/ShopMaterialStoreServiceImpl.java +++ b/skyeye-erp/erp-pro/src/main/java/com/skyeye/shopmaterial/service/impl/ShopMaterialStoreServiceImpl.java @@ -13,18 +13,25 @@ import com.github.pagehelper.PageHelper; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.skyeye.annotation.service.SkyeyeService; import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl; +import com.skyeye.common.constans.CommonNumConstants; import com.skyeye.common.entity.search.CommonPageInfo; import com.skyeye.common.object.InputObject; import com.skyeye.common.object.OutputObject; import com.skyeye.common.util.mybatisplus.MybatisPlusUtil; import com.skyeye.material.entity.Material; +import com.skyeye.material.service.MaterialNormsService; import com.skyeye.rest.shop.service.IShopStoreService; import com.skyeye.shopmaterial.dao.ShopMaterialStoreDao; +import com.skyeye.shopmaterial.entity.ShopMaterial; +import com.skyeye.shopmaterial.entity.ShopMaterialNorms; import com.skyeye.shopmaterial.entity.ShopMaterialStore; +import com.skyeye.shopmaterial.service.ShopMaterialService; import com.skyeye.shopmaterial.service.ShopMaterialStoreService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -44,6 +51,12 @@ public class ShopMaterialStoreServiceImpl extends SkyeyeBusinessServiceImpl queryWrapper = new QueryWrapper<>(); @@ -156,4 +169,38 @@ public class ShopMaterialStoreServiceImpl extends SkyeyeBusinessServiceImpl queryShopMaterialStoreByMaterialIds(String... materialIds) { + List idList = Arrays.asList(materialIds).stream() + .filter(materialId -> StrUtil.isNotEmpty(materialId)).distinct().collect(Collectors.toList()); + if (CollectionUtil.isEmpty(idList)) { + return new HashMap<>(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in(MybatisPlusUtil.toColumns(ShopMaterialStore::getMaterialId), idList); + List shopMaterialStoreList = list(queryWrapper); + Map collect = shopMaterialStoreList.stream() + .collect(Collectors.toMap(ShopMaterialStore::getMaterialId, shopMaterialStore -> shopMaterialStore, (existingValue, newValue) -> existingValue)); + return collect; + } + + @Override + public void queryShopMaterialById(InputObject inputObject, OutputObject outputObject) { + String id = inputObject.getParams().get("id").toString(); + ShopMaterialStore shopMaterialStore = selectById(id); + ShopMaterial shopMaterial = shopMaterialService.queryShopMaterialByMaterialId(shopMaterialStore.getMaterialId()); + shopMaterial.getMaterialMation().setMaterialNorms(null); + shopMaterial.getMaterialMation().setUnitGroupMation(null); + shopMaterial.getMaterialMation().setMaterialProcedure(null); + shopMaterial.getMaterialMation().setNormsSpec(null); + materialNormsService.setDataMation(shopMaterial.getShopMaterialNormsList(), ShopMaterialNorms::getNormsId); + shopMaterial.getShopMaterialNormsList().forEach(shopMaterialNorms -> { + shopMaterialNorms.setEstimatePurchasePrice(null); + }); + shopMaterial.setShopMaterialStore(shopMaterialStore); + shopMaterial.setDefaultStoreId(shopMaterialStore.getStoreId()); + outputObject.setBean(shopMaterialStore); + outputObject.settotal(CommonNumConstants.NUM_ONE); + } + }