From 9dd8b05fd73a4f7a39d1086b1f31d34fac361223 Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Wed, 26 Apr 2023 11:17:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=90=AFsaas=E5=A4=9A=E7=A7=9F?= =?UTF-8?q?=E6=88=B7=E5=8A=9F=E8=83=BD=E5=90=8E=EF=BC=8C=E7=A7=9F=E6=88=B7?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E5=9C=A8=E6=B7=BB=E5=8A=A0=E5=88=86?= =?UTF-8?q?=E7=B1=BB=E5=AD=97=E5=85=B8=E6=97=B6=EF=BC=8C=E6=8A=A5=E9=94=99?= =?UTF-8?q?=20#4846?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/mapper/SysCategoryMapper.java | 20 +++++++++++++++---- .../modules/system/rule/CategoryCodeRule.java | 12 +++++++---- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysCategoryMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysCategoryMapper.java index 3abefa62..efb194c3 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysCategoryMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysCategoryMapper.java @@ -1,14 +1,15 @@ package org.jeecg.modules.system.mapper; -import java.util.List; -import java.util.Map; - +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.jeecg.modules.system.entity.SysCategory; import org.jeecg.modules.system.model.TreeSelectModel; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; +import java.util.Map; /** * @Description: 分类字典 @@ -34,5 +35,16 @@ public interface SysCategoryMapper extends BaseMapper { @Select("SELECT ID FROM sys_category WHERE CODE = #{code,jdbcType=VARCHAR}") public String queryIdByCode(@Param("code") String code); + /** + * 获取分类字典最大的code + * @param page + * @return + */ + @InterceptorIgnore(tenantLine = "true") + @Select("SELECT code FROM sys_category WHERE code IS NOT NULL AND pid=#{categoryPid} ORDER BY code DESC") + List getMaxCategoryCodeByPage(@Param("page") Page page, @Param("categoryPid") String categoryPid); + @InterceptorIgnore(tenantLine = "true") + @Select("SELECT code FROM sys_category WHERE ID = #{id}") + SysCategory selectSysCategoryById(@Param("id") String id); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/rule/CategoryCodeRule.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/rule/CategoryCodeRule.java index 9a23fcaa..dff63ae0 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/rule/CategoryCodeRule.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/rule/CategoryCodeRule.java @@ -1,7 +1,7 @@ package org.jeecg.modules.system.rule; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.handler.IFillRuleHandler; import org.jeecg.common.util.SpringContextUtils; @@ -50,16 +50,20 @@ public class CategoryCodeRule implements IFillRuleHandler { * 3.添加子节点有兄弟元素 YouBianCodeUtil.getNextYouBianCode(lastCode); * */ //找同类 确定上一个最大的code值 - LambdaQueryWrapper query = new LambdaQueryWrapper().eq(SysCategory::getPid, categoryPid).isNotNull(SysCategory::getCode).orderByDesc(SysCategory::getCode); SysCategoryMapper baseMapper = (SysCategoryMapper) SpringContextUtils.getBean("sysCategoryMapper"); - List list = baseMapper.selectList(query); + //update-begin---author:wangshuai ---date:20230424 for:【issues/4846】开启saas多租户功能后,租户管理员在添加分类字典时,报错------------ + Page page = new Page<>(1,1); + List list = baseMapper.getMaxCategoryCodeByPage(page,categoryPid); + //update-end---author:wangshuai ---date:20230424 for:【issues/4846】开启saas多租户功能后,租户管理员在添加分类字典时,报错------------ if (list == null || list.size() == 0) { if (ROOT_PID_VALUE.equals(categoryPid)) { //情况1 categoryCode = YouBianCodeUtil.getNextYouBianCode(null); } else { //情况2 - SysCategory parent = (SysCategory) baseMapper.selectById(categoryPid); + //update-begin---author:wangshuai ---date:20230424 for:【issues/4846】开启saas多租户功能后,租户管理员在添加分类字典时,报错------------ + SysCategory parent = (SysCategory) baseMapper.selectSysCategoryById(categoryPid); + //update-end---author:wangshuai ---date:20230424 for:【issues/4846】开启saas多租户功能后,租户管理员在添加分类字典时,报错------------ categoryCode = YouBianCodeUtil.getSubYouBianCode(parent.getCode(), null); } } else {