From 4ce545f944744ced5c6b70fbe47497cf1939bd1b Mon Sep 17 00:00:00 2001 From: Tankaikai Date: Fri, 11 Apr 2025 11:54:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=87=E6=8D=A2=E5=BA=97=E9=93=BA=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=20=E2=88=9A=20=E4=B8=8B=E5=8D=95=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E4=BC=9A=E5=91=98=20=E2=88=9A=20=E6=B3=A8=E5=86=8C=E4=BC=9A?= =?UTF-8?q?=E5=91=98=20=E2=88=9A=20=E5=AE=8C=E5=96=84=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E5=8F=B7=20=E2=88=9A=20=E4=BC=9A=E5=91=98=E6=B5=81=E6=B0=B4?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=90=8C=E6=AD=A5=20=E2=88=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ShopSyncServiceImpl.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopSyncServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopSyncServiceImpl.java index 9abbe036..a03f6bb2 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopSyncServiceImpl.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopSyncServiceImpl.java @@ -9,6 +9,7 @@ import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONWriter; import com.czg.account.entity.ShopConfig; import com.czg.account.entity.ShopInfo; +import com.czg.account.enums.BranchDataSyncMethodEnum; import com.czg.account.service.ShopConfigService; import com.czg.account.service.ShopInfoService; import com.czg.account.service.ShopUserService; @@ -19,6 +20,7 @@ import com.czg.product.service.*; import com.czg.product.vo.ProductGroupVo; import com.czg.utils.AssertUtil; import com.mybatisflex.core.query.QueryWrapper; +import com.mybatisflex.core.row.DbChain; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; @@ -219,6 +221,7 @@ public class ShopSyncServiceImpl implements ShopSyncService { @Override @Transactional(rollbackFor = Exception.class) public void syncUnitBySourceShop(Long sourceShopId, Long unitId, Long sysUserId) { + assertAutoSync(sourceShopId); AssertUtil.isNull(unitId, "{}不能为空", "单位ID"); Set shopIds = checkSourceShopInfo(sourceShopId, 1); if (CollUtil.isEmpty(shopIds)) { @@ -285,6 +288,7 @@ public class ShopSyncServiceImpl implements ShopSyncService { @Override @Transactional(rollbackFor = Exception.class) public void syncSpecBySourceShop(Long sourceShopId, Long specId, Long sysUserId) { + assertAutoSync(sourceShopId); AssertUtil.isNull(specId, "{}不能为空", "规格ID"); Set shopIds = checkSourceShopInfo(sourceShopId, 1); if (CollUtil.isEmpty(shopIds)) { @@ -375,6 +379,7 @@ public class ShopSyncServiceImpl implements ShopSyncService { @Override @Transactional(rollbackFor = Exception.class) public void syncCategoryBySourceShop(Long sourceShopId, Long categoryId, Long sysUserId) { + assertAutoSync(sourceShopId); AssertUtil.isNull(categoryId, "{}不能为空", "分类ID"); Set shopIds = checkSourceShopInfo(sourceShopId, 1); if (CollUtil.isEmpty(shopIds)) { @@ -452,6 +457,7 @@ public class ShopSyncServiceImpl implements ShopSyncService { @Override @Transactional(rollbackFor = Exception.class) public void syncProductBySourceShop(Long sourceShopId, Long productId, Long sysUserId) { + assertAutoSync(sourceShopId); AssertUtil.isNull(productId, "{}不能为空", "商品ID"); Set shopIds = checkSourceShopInfo(sourceShopId, 1); if (CollUtil.isEmpty(shopIds)) { @@ -560,6 +566,7 @@ public class ShopSyncServiceImpl implements ShopSyncService { @Override @Transactional(rollbackFor = Exception.class) public void syncGroupBySourceShop(Long sourceShopId, Long groupId, Long sysUserId) { + assertAutoSync(sourceShopId); AssertUtil.isNull(groupId, "{}不能为空", "分组ID"); Set shopIds = checkSourceShopInfo(sourceShopId, 1); if (CollUtil.isEmpty(shopIds)) { @@ -778,6 +785,7 @@ public class ShopSyncServiceImpl implements ShopSyncService { @Override @Transactional(rollbackFor = Exception.class) public void syncConsGroupBySourceShop(Long sourceShopId, Long consGroupId, Long sysUserId) { + assertAutoSync(sourceShopId); AssertUtil.isNull(consGroupId, "{}不能为空", "耗材分组ID"); Set shopIds = checkSourceShopInfo(sourceShopId, 2); if (CollUtil.isEmpty(shopIds)) { @@ -839,6 +847,7 @@ public class ShopSyncServiceImpl implements ShopSyncService { @Override @Transactional(rollbackFor = Exception.class) public void syncConsInfoBySourceShop(Long sourceShopId, Long consInfoId, Long sysUserId) { + assertAutoSync(sourceShopId); AssertUtil.isNull(consInfoId, "{}不能为空", "耗材ID"); Set shopIds = checkSourceShopInfo(sourceShopId, 2); if (CollUtil.isEmpty(shopIds)) { @@ -894,6 +903,7 @@ public class ShopSyncServiceImpl implements ShopSyncService { @Override @Transactional(rollbackFor = Exception.class) public void syncConsProBySourceShop(Long sourceShopId, Long sourceProdId, Long sysUserId) { + assertAutoSync(sourceShopId); AssertUtil.isNull(sourceProdId, "{}不能为空", "商品ID"); Set shopIds = checkSourceShopInfo(sourceShopId, 2); if (CollUtil.isEmpty(shopIds)) { @@ -940,4 +950,19 @@ public class ShopSyncServiceImpl implements ShopSyncService { prodConsRelationService.saveBatch(newSaveList, 100); } } + + /** + * 断言是否支持自动同步 + * + * @param sourceShopId 源店铺ID + */ + private void assertAutoSync(Long sourceShopId) { + String branchDataSyncMethod = DbChain.table("tb_shop_config").select("branch_data_sync_method").where("id = ?", sourceShopId).objAs(String.class); + if (branchDataSyncMethod == null) { + throw new CzgException("主店未配置数据同步方式"); + } + if (!BranchDataSyncMethodEnum.AUTO.getValue().equals(branchDataSyncMethod)) { + throw new CzgException("主店数据同步方式不是自动同步"); + } + } }