From 4e4c4876b6ea0c49c44ee86dbe07cc379194686d Mon Sep 17 00:00:00 2001 From: dzq Date: Fri, 13 Jun 2025 15:40:31 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=BA=97=E9=93=BA/=E6=99=BA=E8=83=BD?= =?UTF-8?q?=E6=9F=9C):=20=E5=A2=9E=E5=8A=A0=E6=8C=89=E5=BA=97=E9=93=BAID?= =?UTF-8?q?=E5=92=8C=E6=A8=A1=E5=BC=8F=E7=AD=9B=E9=80=89=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改店铺列表接口,支持传入mode参数进行筛选 智能柜详情接口改为按shopId查询相关数据 --- .../api/controller/CabinetCellController.java | 4 +-- .../api/controller/ShopController.java | 8 +++-- .../SmartCabinetApplicationService.java | 30 ++++++++++++++++--- .../shop/shop/ShopApplicationService.java | 4 +-- .../domain/shop/shop/db/ShopService.java | 2 +- .../domain/shop/shop/db/ShopServiceImpl.java | 4 +-- 6 files changed, 38 insertions(+), 14 deletions(-) diff --git a/agileboot-api/src/main/java/com/agileboot/api/controller/CabinetCellController.java b/agileboot-api/src/main/java/com/agileboot/api/controller/CabinetCellController.java index e625881..6b65b6f 100644 --- a/agileboot-api/src/main/java/com/agileboot/api/controller/CabinetCellController.java +++ b/agileboot-api/src/main/java/com/agileboot/api/controller/CabinetCellController.java @@ -41,8 +41,8 @@ public class CabinetCellController { private final CabinetMainboardModelFactory cabinetMainboardModelFactory; @GetMapping("/detail") - public ResponseDTO> getCabinetDetail() { - return ResponseDTO.ok(smartCabinetApplicationService.getCabinetDetail()); + public ResponseDTO> getCabinetDetail(@RequestParam Long shopId) { + return ResponseDTO.ok(smartCabinetApplicationService.getCabinetDetail(shopId)); } @PostMapping("/openCabinet/{cabinetId}/{pinNo}") diff --git a/agileboot-api/src/main/java/com/agileboot/api/controller/ShopController.java b/agileboot-api/src/main/java/com/agileboot/api/controller/ShopController.java index 77181da..4bed918 100644 --- a/agileboot-api/src/main/java/com/agileboot/api/controller/ShopController.java +++ b/agileboot-api/src/main/java/com/agileboot/api/controller/ShopController.java @@ -41,12 +41,14 @@ public class ShopController { private final CategoryApplicationService categoryApplicationService; @GetMapping("/list") - public ResponseDTO> getShopList(@RequestParam(required = false) String corpid) { + public ResponseDTO> getShopList(@RequestParam(required = false) String corpid, + @RequestParam(required = false) Long mode) { List shopList; + Long modeValue = mode != null ? mode : 4L; if (StringUtils.isNotBlank(corpid)) { - shopList = shopApplicationService.getShopListByCorpid(corpid); + shopList = shopApplicationService.getShopListByCorpid(corpid, modeValue); } else { - shopList = shopApplicationService.getShopListByCorpid(WeixinConstants.corpid); + shopList = shopApplicationService.getShopListByCorpid(WeixinConstants.corpid, modeValue); } return ResponseDTO.ok(shopList); } diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/smartCabinet/SmartCabinetApplicationService.java b/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/smartCabinet/SmartCabinetApplicationService.java index 88d9de5..13cb7a7 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/smartCabinet/SmartCabinetApplicationService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/cabinet/smartCabinet/SmartCabinetApplicationService.java @@ -30,6 +30,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -146,11 +147,32 @@ public class SmartCabinetApplicationService { * 获取所有智能柜的详细信息 * @return 包含柜体信息、单元格信息和商品信息的列表 */ - public List getCabinetDetail() { + public List getCabinetDetail(Long shopId) { // 获取所有智能柜、单元格和商品的基础数据 - List smartCabinets = smartCabinetService.selectAll(); - List cabinetCells = cabinetCellService.selectAll(); - List goodsList = shopGoodsService.selectAll(); + QueryWrapper smartCabinetEntityQueryWrapper = new QueryWrapper<>(); + smartCabinetEntityQueryWrapper.eq("shop_id", shopId) + .eq("deleted", false); + List smartCabinets = smartCabinetService.list(smartCabinetEntityQueryWrapper); + + QueryWrapper cabinetCellEntityQueryWrapper = new QueryWrapper<>(); + cabinetCellEntityQueryWrapper.in("cabinet_id", + smartCabinets.stream() + .map(SmartCabinetEntity::getCabinetId) + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.toList())) + .eq("deleted", false); + List cabinetCells = cabinetCellService.list(cabinetCellEntityQueryWrapper); + + QueryWrapper shopGoodsEntityQueryWrapper = new QueryWrapper<>(); + shopGoodsEntityQueryWrapper.in("goods_id", + cabinetCells.stream() + .map(CabinetCellEntity::getGoodsId) + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.toList())) + .eq("deleted", false); + List goodsList = shopGoodsService.list(shopGoodsEntityQueryWrapper); List result = new ArrayList<>(); // 遍历每个智能柜构建详细信息 diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/ShopApplicationService.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/ShopApplicationService.java index b4548cd..9149a27 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/ShopApplicationService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/ShopApplicationService.java @@ -37,8 +37,8 @@ public class ShopApplicationService { return new ShopDTO(shopEntity); } - public List getShopListByCorpid(String corpid) { - return shopService.getShopListByCorpid(corpid); + public List getShopListByCorpid(String corpid, Long mode) { + return shopService.getShopListByCorpid(corpid, mode); } public void addShop(AddShopCommand command) { diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/db/ShopService.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/db/ShopService.java index 665af47..31f05c5 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/db/ShopService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/db/ShopService.java @@ -28,5 +28,5 @@ public interface ShopService extends IService { Long countAllRecord(); - List getShopListByCorpid(String corpid); + List getShopListByCorpid(String corpid, Long mode); } diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/db/ShopServiceImpl.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/db/ShopServiceImpl.java index 08e7b29..042ac36 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/db/ShopServiceImpl.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/db/ShopServiceImpl.java @@ -50,10 +50,10 @@ public class ShopServiceImpl extends ServiceImpl impleme } @Override - public List getShopListByCorpid(String corpid) { + public List getShopListByCorpid(String corpid, Long mode) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("corpid", corpid) - .ne("mode", 4) + .ne("mode", mode) .eq("deleted", 0); return this.list(queryWrapper); }