Browse Source

👣 重构底层支持自选多租户

master
wangxiang 3 years ago
parent
commit
871e458fc7
  1. 4
      kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/Role.java
  2. 36
      kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/RoleTenant.java
  3. 16
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/mapper/RoleTenantMapper.java
  4. 16
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/RoleTenantService.java
  5. 20
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/RoleServiceImpl.java
  6. 20
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/RoleTenantServiceImpl.java
  7. 5
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/RoleTenantMapper.xml
  8. 14
      kicc-ui/src/views/system/role/role.data.ts
  9. 1
      kicc-ui/src/views/system/user/user.data.ts

4
kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/Role.java

@ -56,4 +56,8 @@ public class Role extends CommonEntity { @@ -56,4 +56,8 @@ public class Role extends CommonEntity {
@TableField(exist = false)
private String[] menuIds;
/** 菜单组 */
@TableField(exist = false)
private String[] tenantIds;
}

36
kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/RoleTenant.java

@ -0,0 +1,36 @@ @@ -0,0 +1,36 @@
package com.cloud.kicc.system.api.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
*<p>
* 角色和多租户关联表
*</p>
*
* @Author: entfrm开发团队-王翔
* @Date: 2022/2/24
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("sys_role_tenant")
public class RoleTenant implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 角色ID
*/
private String roleId;
/**
* 多租户ID
*/
private String multiTenantId;
}

16
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/mapper/RoleTenantMapper.java

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
package com.cloud.kicc.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cloud.kicc.system.api.entity.RoleTenant;
/**
*<p>
* 角色和多租户关联表 Mapper 接口
*</p>
*
* @Author: entfrm开发团队-王翔
* @Date: 2022/2/24
*/
public interface RoleTenantMapper extends BaseMapper<RoleTenant> {
}

16
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/RoleTenantService.java

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
package com.cloud.kicc.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cloud.kicc.system.api.entity.RoleTenant;
/**
*<p>
* 角色和多租户关联表 服务类
*</p>
*
* @Author: entfrm开发团队-王翔
* @Date: 2022/2/24
*/
public interface RoleTenantService extends IService<RoleTenant> {
}

20
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/RoleServiceImpl.java

@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cloud.kicc.system.api.entity.Role;
import com.cloud.kicc.system.api.entity.RoleMenu;
import com.cloud.kicc.system.api.entity.RoleTenant;
import com.cloud.kicc.system.mapper.RoleMapper;
import com.cloud.kicc.system.service.RoleMenuService;
import com.cloud.kicc.system.service.RoleService;
import com.cloud.kicc.system.service.RoleTenantService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -27,12 +29,14 @@ import java.util.List; @@ -27,12 +29,14 @@ import java.util.List;
public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements RoleService {
private final RoleMenuService roleMenuService;
private final RoleTenantService RoleTenantService;
@Override
@Transactional(rollbackFor = Exception.class)
public boolean insertRole(Role role) {
// 新增角色信息
baseMapper.insert(role);
insertRoleTenant(role);
return insertRoleMenu(role);
}
@ -61,6 +65,22 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro @@ -61,6 +65,22 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
return rows;
}
public boolean insertRoleTenant(Role role) {
boolean rows = true;
// 新增用户与多租户管理
List<RoleTenant> list = new ArrayList();
for (String tenantId : role.getTenantIds()) {
RoleTenant rt = new RoleTenant();
rt.setRoleId(role.getId());
rt.setMultiTenantId(tenantId);
list.add(rt);
}
if (list.size() > 0) {
rows = RoleTenantService.saveBatch(list);
}
return rows;
}
@Override
public List<Role> selectMyRolesByUserId(String userId) {
return baseMapper.selectRolesByUserId(userId);

20
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/RoleTenantServiceImpl.java

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
package com.cloud.kicc.system.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cloud.kicc.system.api.entity.RoleTenant;
import com.cloud.kicc.system.mapper.RoleTenantMapper;
import com.cloud.kicc.system.service.RoleTenantService;
import org.springframework.stereotype.Service;
/**
*<p>
* 角色和菜单关联表 服务实现类
*</p>
*
* @Author: entfrm开发团队-王翔
* @Date: 2022/2/24
*/
@Service
public class RoleTenantServiceImpl extends ServiceImpl<RoleTenantMapper, RoleTenant> implements RoleTenantService {
}

5
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/RoleTenantMapper.xml

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cloud.kicc.system.mapper.RoleTenantMapper">
</mapper>

14
kicc-ui/src/views/system/role/role.data.ts

@ -10,6 +10,7 @@ import { FormSchema } from '/@/components/Table'; @@ -10,6 +10,7 @@ import { FormSchema } from '/@/components/Table';
import { h } from 'vue';
import { Switch, Tag } from 'ant-design-vue';
import { changeStatus } from '/@/api/platform/system/controller/role';
import { listTenant } from '/@/api/platform/system/controller/tenant';
import { useMessage } from '/@/hooks/web/useMessage';
/** 通用变量统一声明区域 */
@ -125,6 +126,19 @@ export const formSchema: FormSchema[] = [ @@ -125,6 +126,19 @@ export const formSchema: FormSchema[] = [
},
required: true
},
{
field: 'tenantIds',
label: '多租户',
component: 'ApiSelect',
required: true,
componentProps: {
mode: 'multiple',
api: listTenant,
labelField: 'name',
valueField: 'id',
resultField: 'data'
}
},
{
field: 'status',
label: '状态',

1
kicc-ui/src/views/system/user/user.data.ts

@ -239,6 +239,7 @@ export const userFormSchema: FormSchema[] = [ @@ -239,6 +239,7 @@ export const userFormSchema: FormSchema[] = [
field: 'roleIds',
label: '授权角色',
component: 'ApiSelect',
required: true,
componentProps: {
mode: 'multiple',
api: listRole,

Loading…
Cancel
Save