From 093826435e1014834ca986d049372cc4c30b8789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Thu, 5 Feb 2026 15:06:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(shop):=20=E4=BF=AE=E6=94=B9=E7=BB=8F?= =?UTF-8?q?=E9=94=80=E5=95=86=E8=AE=BE=E7=BD=AE=E5=AE=9E=E4=BD=93ID?= =?UTF-8?q?=E7=94=9F=E6=88=90=E7=AD=96=E7=95=A5=E5=B9=B6=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E6=9B=B4=E6=96=B0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将ShopDealerSetting实体的@TableId注解type从AUTO改为INPUT - 新增saveOrUpdateByKey方法统一处理保存和更新操作 - 移除LambdaQueryWrapper手动构建的更新逻辑 - 简化控制器中的保存和更新接口实现 - 优化多租户场景下的数据操作逻辑 --- .../controller/ShopDealerSettingController.java | 17 +++++------------ .../shop/entity/ShopDealerSetting.java | 2 +- .../shop/service/ShopDealerSettingService.java | 8 ++++++++ .../impl/ShopDealerSettingServiceImpl.java | 14 ++++++++++++++ 4 files changed, 28 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/gxwebsoft/shop/controller/ShopDealerSettingController.java b/src/main/java/com/gxwebsoft/shop/controller/ShopDealerSettingController.java index e067ae8..c8891d1 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/ShopDealerSettingController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/ShopDealerSettingController.java @@ -13,7 +13,6 @@ import com.gxwebsoft.common.core.annotation.OperationLog; import com.gxwebsoft.common.system.entity.User; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -63,10 +62,10 @@ public class ShopDealerSettingController extends BaseController { @PostMapping() public ApiResult save(@RequestBody ShopDealerSettingSaveParam param) { ShopDealerSetting shopDealerSetting = buildEntity(param); - if (shopDealerSettingService.save(shopDealerSetting)) { - return success("添加成功"); + if (shopDealerSettingService.saveOrUpdateByKey(shopDealerSetting)) { + return success("保存成功"); } - return fail("添加失败"); + return fail("保存失败"); } @PreAuthorize("hasAuthority('shop:shopDealerSetting:update')") @@ -75,16 +74,10 @@ public class ShopDealerSettingController extends BaseController { @PutMapping() public ApiResult update(@RequestBody ShopDealerSettingSaveParam param) { ShopDealerSetting shopDealerSetting = buildEntity(param); - if (shopDealerSetting.getKey() == null || shopDealerSetting.getTenantId() == null) { + if (shopDealerSetting.getKey() == null) { return fail("修改失败"); } - boolean updated = shopDealerSettingService.update( - shopDealerSetting, - new LambdaQueryWrapper() - .eq(ShopDealerSetting::getKey, shopDealerSetting.getKey()) - .eq(ShopDealerSetting::getTenantId, shopDealerSetting.getTenantId()) - ); - if (updated) { + if (shopDealerSettingService.saveOrUpdateByKey(shopDealerSetting)) { return success("修改成功"); } return fail("修改失败"); diff --git a/src/main/java/com/gxwebsoft/shop/entity/ShopDealerSetting.java b/src/main/java/com/gxwebsoft/shop/entity/ShopDealerSetting.java index fd1b2ad..9a9e360 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/ShopDealerSetting.java +++ b/src/main/java/com/gxwebsoft/shop/entity/ShopDealerSetting.java @@ -20,7 +20,7 @@ public class ShopDealerSetting implements Serializable { private static final long serialVersionUID = 1L; @Schema(description = "设置项标示") - @TableId(value = "key", type = IdType.AUTO) + @TableId(value = "key", type = IdType.INPUT) private String key; @Schema(description = "设置项描述") diff --git a/src/main/java/com/gxwebsoft/shop/service/ShopDealerSettingService.java b/src/main/java/com/gxwebsoft/shop/service/ShopDealerSettingService.java index b9b1c7b..c923759 100644 --- a/src/main/java/com/gxwebsoft/shop/service/ShopDealerSettingService.java +++ b/src/main/java/com/gxwebsoft/shop/service/ShopDealerSettingService.java @@ -39,4 +39,12 @@ public interface ShopDealerSettingService extends IService { */ ShopDealerSetting getByIdRel(String key); + /** + * 根据 key + tenantId 保存或更新 + * + * @param setting 设置项 + * @return boolean + */ + boolean saveOrUpdateByKey(ShopDealerSetting setting); + } diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerSettingServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerSettingServiceImpl.java index 336fd7a..3923282 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerSettingServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerSettingServiceImpl.java @@ -7,6 +7,7 @@ import com.gxwebsoft.shop.entity.ShopDealerSetting; import com.gxwebsoft.shop.param.ShopDealerSettingParam; import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.PageResult; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.springframework.stereotype.Service; import java.util.List; @@ -44,4 +45,17 @@ public class ShopDealerSettingServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ShopDealerSetting::getKey, setting.getKey()); + if (setting.getTenantId() != null) { + wrapper.eq(ShopDealerSetting::getTenantId, setting.getTenantId()); + } + return this.saveOrUpdate(setting, wrapper); + } + }