diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index b6ed108fb..341147b47 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -144,8 +144,8 @@ tenant: excludes: - sys_menu - sys_config - - sys_dict_type - - sys_dict_data + - sys_tenant + - sys_tenant_package - sys_role_dept - sys_role_menu - sys_user_post diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictData.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictData.java index 14a9cf72d..5d18cbd2c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictData.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictData.java @@ -3,7 +3,7 @@ package com.ruoyi.system.domain; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.core.constant.UserConstants; -import com.ruoyi.common.mybatis.core.domain.BaseEntity; +import com.ruoyi.common.mybatis.core.domain.TenantEntity; import lombok.Data; import lombok.EqualsAndHashCode; @@ -16,7 +16,7 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = true) @TableName("sys_dict_data") -public class SysDictData extends BaseEntity { +public class SysDictData extends TenantEntity { /** * 字典编码 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictType.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictType.java index bbab81226..1d2271b67 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictType.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictType.java @@ -2,7 +2,7 @@ package com.ruoyi.system.domain; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.ruoyi.common.mybatis.core.domain.BaseEntity; +import com.ruoyi.common.mybatis.core.domain.TenantEntity; import lombok.Data; import lombok.EqualsAndHashCode; @@ -15,7 +15,7 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = true) @TableName("sys_dict_type") -public class SysDictType extends BaseEntity { +public class SysDictType extends TenantEntity { /** * 字典主键 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTenantServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTenantServiceImpl.java index 4a7193f9a..4c785cd87 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTenantServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTenantServiceImpl.java @@ -16,6 +16,7 @@ import com.ruoyi.common.core.utils.SpringUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.TableDataInfo; +import com.ruoyi.common.mybatis.helper.TenantHelper; import com.ruoyi.system.domain.*; import com.ruoyi.system.domain.bo.SysTenantBo; import com.ruoyi.system.domain.vo.SysTenantVo; @@ -49,6 +50,8 @@ public class SysTenantServiceImpl implements ISysTenantService { private final SysRoleMenuMapper sysRoleMenuMapper; private final SysRoleDeptMapper sysRoleDeptMapper; private final SysUserRoleMapper sysUserRoleMapper; + private final SysDictTypeMapper sysDictTypeMapper; + private final SysDictDataMapper sysDictDataMapper; /** * 查询租户 @@ -108,6 +111,8 @@ public class SysTenantServiceImpl implements ISysTenantService { @Override @Transactional(rollbackFor = Exception.class) public Boolean insertByBo(SysTenantBo bo) { + TenantHelper.enableIgnore(); + SysTenant add = BeanUtil.toBean(bo, SysTenant.class); // 获取所有租户编号 @@ -128,6 +133,7 @@ public class SysTenantServiceImpl implements ISysTenantService { SysDept dept = new SysDept(); dept.setTenantId(tenantId); dept.setDeptName(bo.getCompanyName()); + dept.setLeader(bo.getUsername()); dept.setParentId(Constants.TOP_PARENT_ID); dept.setAncestors(Constants.TOP_PARENT_ID.toString()); sysDeptMapper.insert(dept); @@ -154,6 +160,20 @@ public class SysTenantServiceImpl implements ISysTenantService { userRole.setRoleId(roleId); sysUserRoleMapper.insert(userRole); + List dictTypeList = sysDictTypeMapper.selectList(); + List dictDataList = sysDictDataMapper.selectList(); + for (SysDictType dictType : dictTypeList) { + dictType.setDictId(null); + dictType.setTenantId(tenantId); + } + for (SysDictData dictData : dictDataList) { + dictData.setDictCode(null); + dictData.setTenantId(tenantId); + } + sysDictTypeMapper.insertBatch(dictTypeList); + sysDictDataMapper.insertBatch(dictDataList); + + TenantHelper.disableIgnore(); return true; } diff --git a/script/sql/ry_vue_5.X.sql b/script/sql/ry_vue_5.X.sql index e87e7f399..6482de5d7 100644 --- a/script/sql/ry_vue_5.X.sql +++ b/script/sql/ry_vue_5.X.sql @@ -525,6 +525,7 @@ drop table if exists sys_dict_type; create table sys_dict_type ( dict_id bigint(20) not null comment '字典主键', + tenant_id varchar(20) not null comment '租户编号', dict_name varchar(100) default '' comment '字典名称', dict_type varchar(100) default '' comment '字典类型', status char(1) default '0' comment '状态(0正常 1停用)', @@ -535,17 +536,17 @@ create table sys_dict_type update_time datetime comment '更新时间', remark varchar(500) default null comment '备注', primary key (dict_id), - unique (dict_type) + unique (tenant_id, dict_type) ) engine=innodb comment = '字典类型表'; -insert into sys_dict_type values(1, '用户性别', 'sys_user_sex', '0', 103, 1, sysdate(), null, null, '用户性别列表'); -insert into sys_dict_type values(2, '菜单状态', 'sys_show_hide', '0', 103, 1, sysdate(), null, null, '菜单状态列表'); -insert into sys_dict_type values(3, '系统开关', 'sys_normal_disable', '0', 103, 1, sysdate(), null, null, '系统开关列表'); -insert into sys_dict_type values(6, '系统是否', 'sys_yes_no', '0', 103, 1, sysdate(), null, null, '系统是否列表'); -insert into sys_dict_type values(7, '通知类型', 'sys_notice_type', '0', 103, 1, sysdate(), null, null, '通知类型列表'); -insert into sys_dict_type values(8, '通知状态', 'sys_notice_status', '0', 103, 1, sysdate(), null, null, '通知状态列表'); -insert into sys_dict_type values(9, '操作类型', 'sys_oper_type', '0', 103, 1, sysdate(), null, null, '操作类型列表'); -insert into sys_dict_type values(10, '系统状态', 'sys_common_status', '0', 103, 1, sysdate(), null, null, '登录状态列表'); +insert into sys_dict_type values(1, '000000', '用户性别', 'sys_user_sex', '0', 103, 1, sysdate(), null, null, '用户性别列表'); +insert into sys_dict_type values(2, '000000', '菜单状态', 'sys_show_hide', '0', 103, 1, sysdate(), null, null, '菜单状态列表'); +insert into sys_dict_type values(3, '000000', '系统开关', 'sys_normal_disable', '0', 103, 1, sysdate(), null, null, '系统开关列表'); +insert into sys_dict_type values(6, '000000', '系统是否', 'sys_yes_no', '0', 103, 1, sysdate(), null, null, '系统是否列表'); +insert into sys_dict_type values(7, '000000', '通知类型', 'sys_notice_type', '0', 103, 1, sysdate(), null, null, '通知类型列表'); +insert into sys_dict_type values(8, '000000', '通知状态', 'sys_notice_status', '0', 103, 1, sysdate(), null, null, '通知状态列表'); +insert into sys_dict_type values(9, '000000', '操作类型', 'sys_oper_type', '0', 103, 1, sysdate(), null, null, '操作类型列表'); +insert into sys_dict_type values(10, '000000', '系统状态', 'sys_common_status', '0', 103, 1, sysdate(), null, null, '登录状态列表'); -- ---------------------------- @@ -555,6 +556,7 @@ drop table if exists sys_dict_data; create table sys_dict_data ( dict_code bigint(20) not null comment '字典编码', + tenant_id varchar(20) not null comment '租户编号', dict_sort int(4) default 0 comment '字典排序', dict_label varchar(100) default '' comment '字典标签', dict_value varchar(100) default '' comment '字典键值', @@ -572,31 +574,31 @@ create table sys_dict_data primary key (dict_code) ) engine=innodb comment = '字典数据表'; -insert into sys_dict_data values(1, 1, '男', '0', 'sys_user_sex', '', '', 'Y', '0', 103, 1, sysdate(), null, null, '性别男'); -insert into sys_dict_data values(2, 2, '女', '1', 'sys_user_sex', '', '', 'N', '0', 103, 1, sysdate(), null, null, '性别女'); -insert into sys_dict_data values(3, 3, '未知', '2', 'sys_user_sex', '', '', 'N', '0', 103, 1, sysdate(), null, null, '性别未知'); -insert into sys_dict_data values(4, 1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', '0', 103, 1, sysdate(), null, null, '显示菜单'); -insert into sys_dict_data values(5, 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', '0', 103, 1, sysdate(), null, null, '隐藏菜单'); -insert into sys_dict_data values(6, 1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', '0', 103, 1, sysdate(), null, null, '正常状态'); -insert into sys_dict_data values(7, 2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', '0', 103, 1, sysdate(), null, null, '停用状态'); -insert into sys_dict_data values(12, 1, '是', 'Y', 'sys_yes_no', '', 'primary', 'Y', '0', 103, 1, sysdate(), null, null, '系统默认是'); -insert into sys_dict_data values(13, 2, '否', 'N', 'sys_yes_no', '', 'danger', 'N', '0', 103, 1, sysdate(), null, null, '系统默认否'); -insert into sys_dict_data values(14, 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', '0', 103, 1, sysdate(), null, null, '通知'); -insert into sys_dict_data values(15, 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', '0', 103, 1, sysdate(), null, null, '公告'); -insert into sys_dict_data values(16, 1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 103, 1, sysdate(), null, null, '正常状态'); -insert into sys_dict_data values(17, 2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', '0', 103, 1, sysdate(), null, null, '关闭状态'); -insert into sys_dict_data values(29, 99, '其他', '0', 'sys_oper_type', '', 'info', 'N', '0', 103, 1, sysdate(), null, null, '其他操作'); -insert into sys_dict_data values(18, 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', '0', 103, 1, sysdate(), null, null, '新增操作'); -insert into sys_dict_data values(19, 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', '0', 103, 1, sysdate(), null, null, '修改操作'); -insert into sys_dict_data values(20, 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', '0', 103, 1, sysdate(), null, null, '删除操作'); -insert into sys_dict_data values(21, 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', '0', 103, 1, sysdate(), null, null, '授权操作'); -insert into sys_dict_data values(22, 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', '0', 103, 1, sysdate(), null, null, '导出操作'); -insert into sys_dict_data values(23, 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', '0', 103, 1, sysdate(), null, null, '导入操作'); -insert into sys_dict_data values(24, 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', '0', 103, 1, sysdate(), null, null, '强退操作'); -insert into sys_dict_data values(25, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', '0', 103, 1, sysdate(), null, null, '生成操作'); -insert into sys_dict_data values(26, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', '0', 103, 1, sysdate(), null, null, '清空操作'); -insert into sys_dict_data values(27, 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', '0', 103, 1, sysdate(), null, null, '正常状态'); -insert into sys_dict_data values(28, 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', '0', 103, 1, sysdate(), null, null, '停用状态'); +insert into sys_dict_data values(1, '000000', 1, '男', '0', 'sys_user_sex', '', '', 'Y', '0', 103, 1, sysdate(), null, null, '性别男'); +insert into sys_dict_data values(2, '000000', 2, '女', '1', 'sys_user_sex', '', '', 'N', '0', 103, 1, sysdate(), null, null, '性别女'); +insert into sys_dict_data values(3, '000000', 3, '未知', '2', 'sys_user_sex', '', '', 'N', '0', 103, 1, sysdate(), null, null, '性别未知'); +insert into sys_dict_data values(4, '000000', 1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', '0', 103, 1, sysdate(), null, null, '显示菜单'); +insert into sys_dict_data values(5, '000000', 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', '0', 103, 1, sysdate(), null, null, '隐藏菜单'); +insert into sys_dict_data values(6, '000000', 1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', '0', 103, 1, sysdate(), null, null, '正常状态'); +insert into sys_dict_data values(7, '000000', 2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', '0', 103, 1, sysdate(), null, null, '停用状态'); +insert into sys_dict_data values(12, '000000', 1, '是', 'Y', 'sys_yes_no', '', 'primary', 'Y', '0', 103, 1, sysdate(), null, null, '系统默认是'); +insert into sys_dict_data values(13, '000000', 2, '否', 'N', 'sys_yes_no', '', 'danger', 'N', '0', 103, 1, sysdate(), null, null, '系统默认否'); +insert into sys_dict_data values(14, '000000', 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', '0', 103, 1, sysdate(), null, null, '通知'); +insert into sys_dict_data values(15, '000000', 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', '0', 103, 1, sysdate(), null, null, '公告'); +insert into sys_dict_data values(16, '000000', 1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 103, 1, sysdate(), null, null, '正常状态'); +insert into sys_dict_data values(17, '000000', 2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', '0', 103, 1, sysdate(), null, null, '关闭状态'); +insert into sys_dict_data values(29, '000000', 99, '其他', '0', 'sys_oper_type', '', 'info', 'N', '0', 103, 1, sysdate(), null, null, '其他操作'); +insert into sys_dict_data values(18, '000000', 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', '0', 103, 1, sysdate(), null, null, '新增操作'); +insert into sys_dict_data values(19, '000000', 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', '0', 103, 1, sysdate(), null, null, '修改操作'); +insert into sys_dict_data values(20, '000000', 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', '0', 103, 1, sysdate(), null, null, '删除操作'); +insert into sys_dict_data values(21, '000000', 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', '0', 103, 1, sysdate(), null, null, '授权操作'); +insert into sys_dict_data values(22, '000000', 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', '0', 103, 1, sysdate(), null, null, '导出操作'); +insert into sys_dict_data values(23, '000000', 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', '0', 103, 1, sysdate(), null, null, '导入操作'); +insert into sys_dict_data values(24, '000000', 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', '0', 103, 1, sysdate(), null, null, '强退操作'); +insert into sys_dict_data values(25, '000000', 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', '0', 103, 1, sysdate(), null, null, '生成操作'); +insert into sys_dict_data values(26, '000000', 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', '0', 103, 1, sysdate(), null, null, '清空操作'); +insert into sys_dict_data values(27, '000000', 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', '0', 103, 1, sysdate(), null, null, '正常状态'); +insert into sys_dict_data values(28, '000000', 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', '0', 103, 1, sysdate(), null, null, '停用状态'); -- ----------------------------