From 065912f2c7ebe1b27dc933d2d2aba7cd1fd8245f Mon Sep 17 00:00:00 2001 From: dzq Date: Wed, 25 Jun 2025 16:19:06 +0800 Subject: [PATCH] =?UTF-8?q?fix(shop):=20=E6=B7=BB=E5=8A=A0=E5=95=86?= =?UTF-8?q?=E5=BA=97=E6=A8=A1=E5=BC=8F=E4=BF=AE=E6=94=B9=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E5=95=86=E5=93=81=E7=BB=91=E5=AE=9A=E6=A3=80=E6=9F=A5=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在更新商店模式时,新增检查逻辑确保商店下的柜子没有绑定商品时才允许修改模式为3 --- .../shop/shop/ShopApplicationService.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) 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 6a70c63..dc0aa9f 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 @@ -1,6 +1,10 @@ package com.agileboot.domain.shop.shop; import com.agileboot.common.core.page.PageDTO; +import com.agileboot.domain.cabinet.cell.db.CabinetCellEntity; +import com.agileboot.domain.cabinet.cell.db.CabinetCellService; +import com.agileboot.domain.cabinet.smartCabinet.db.SmartCabinetEntity; +import com.agileboot.domain.cabinet.smartCabinet.db.SmartCabinetService; import com.agileboot.domain.common.command.BulkOperationCommand; import com.agileboot.domain.shop.shop.command.AddShopCommand; import com.agileboot.domain.shop.shop.command.UpdateShopCommand; @@ -10,6 +14,7 @@ import com.agileboot.domain.shop.shop.dto.ShopDTO; import com.agileboot.domain.shop.shop.model.ShopModel; import com.agileboot.domain.shop.shop.model.ShopModelFactory; import com.agileboot.domain.shop.shop.query.SearchShopQuery; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import java.util.List; import java.util.stream.Collectors; @@ -23,6 +28,8 @@ import org.springframework.stereotype.Service; public class ShopApplicationService { private final ShopService shopService; private final ShopModelFactory shopModelFactory; + private final SmartCabinetService smartCabinetService; + private final CabinetCellService cabinetCellService; public PageDTO getShopPage(SearchShopQuery query) { Page page = shopService.getShopList(query.toPage(), query.toQueryWrapper()); @@ -56,6 +63,29 @@ public class ShopApplicationService { public void updateShop(UpdateShopCommand command) { ShopModel model = shopModelFactory.loadById(command.getShopId()); + + if (command.getMode() != null && !command.getMode().equals(model.getMode())) { + if (command.getMode().equals(3)) { + QueryWrapper smartCabinetQueryWrapper = new QueryWrapper<>(); + smartCabinetQueryWrapper.eq("shop_id", command.getShopId()) + .eq("deleted", false); + List cabinetEntities = smartCabinetService.list(smartCabinetQueryWrapper); + + if (cabinetEntities != null && !cabinetEntities.isEmpty()) { + QueryWrapper cabinetCellQueryWrapper = new QueryWrapper<>(); + cabinetCellQueryWrapper.in("cabinet_id", cabinetEntities.stream() + .map(SmartCabinetEntity::getCabinetId) + .collect(Collectors.toList())) + .isNotNull("goods_id") + .eq("deleted", false); + List cells = cabinetCellService.list(cabinetCellQueryWrapper); + if (cells!= null && !cells.isEmpty()) { + throw new RuntimeException("该商店下存在已绑定商品的柜子,请先解绑商品后再修改模式"); + } + } + } + } + model.loadUpdateCommand(command); model.updateById(); }