mirror of
http://git.pig4cloud.com/pig/pigx.git
synced 2026-11-08 12:39:05 +08:00
feat(tenant): 在listTenantUser方法中增加tenantId过滤条件
This commit is contained in:
1 parent
7be922ef0f
commit
e1f5bf6325
1 file changed
+77
-89
+77
-89
@@ -105,14 +105,13 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
* 获取正常状态租户
|
* 获取正常状态租户
|
||||||
* <p>
|
* <p>
|
||||||
* 1. 状态正常 2. 开始时间小于等于当前时间 3. 结束时间大于等于当前时间
|
* 1. 状态正常 2. 开始时间小于等于当前时间 3. 结束时间大于等于当前时间
|
||||||
*
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Cacheable(value = CacheConstants.TENANT_DETAILS)
|
@Cacheable(value = CacheConstants.TENANT_DETAILS)
|
||||||
public List<SysTenant> getNormalTenant() {
|
public List<SysTenant> getNormalTenant() {
|
||||||
return baseMapper
|
return baseMapper
|
||||||
.selectList(Wrappers.<SysTenant>lambdaQuery().eq(SysTenant::getStatus, TenantStateEnum.NORMAL.getCode()));
|
.selectList(Wrappers.<SysTenant>lambdaQuery().eq(SysTenant::getStatus, TenantStateEnum.NORMAL.getCode()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -120,7 +119,6 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
* <p>
|
* <p>
|
||||||
* 1. 保存租户 2. 初始化权限相关表 - sys_user - sys_role - sys_menu - sys_user_role -
|
* 1. 保存租户 2. 初始化权限相关表 - sys_user - sys_role - sys_menu - sys_user_role -
|
||||||
* sys_role_menu - sys_dict - sys_dict_item - sys_client_details - sys_public_params
|
* sys_role_menu - sys_dict - sys_dict_item - sys_client_details - sys_public_params
|
||||||
*
|
|
||||||
* @param sysTenant 租户实体
|
* @param sysTenant 租户实体
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -147,7 +145,7 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
dictItemList.addAll(
|
dictItemList.addAll(
|
||||||
dictItemService.list(Wrappers.<SysDictItem>lambdaQuery().in(SysDictItem::getDictId, dictIdList)));
|
dictItemService.list(Wrappers.<SysDictItem>lambdaQuery().in(SysDictItem::getDictId, dictIdList)));
|
||||||
List<SysMenu> newMenuList = menuService.list(Wrappers.<SysMenu>lambdaQuery()
|
List<SysMenu> newMenuList = menuService.list(Wrappers.<SysMenu>lambdaQuery()
|
||||||
.in(SysMenu::getMenuId, StrUtil.split(sysTenant.getMenuId(), CharUtil.COMMA)));
|
.in(SysMenu::getMenuId, StrUtil.split(sysTenant.getMenuId(), CharUtil.COMMA)));
|
||||||
// 查询当前租户菜单
|
// 查询当前租户菜单
|
||||||
menuList.addAll(newMenuList);
|
menuList.addAll(newMenuList);
|
||||||
// 查询客户端配置
|
// 查询客户端配置
|
||||||
@@ -195,13 +193,13 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
dictService.saveBatch(dictList.stream().peek(d -> d.setId(null)).toList());
|
dictService.saveBatch(dictList.stream().peek(d -> d.setId(null)).toList());
|
||||||
// 处理字典项最新关联的字典ID
|
// 处理字典项最新关联的字典ID
|
||||||
List<SysDictItem> itemList = dictList.stream()
|
List<SysDictItem> itemList = dictList.stream()
|
||||||
.flatMap(dict -> dictItemList.stream()
|
.flatMap(dict -> dictItemList.stream()
|
||||||
.filter(item -> item.getDictType().equals(dict.getDictType()))
|
.filter(item -> item.getDictType().equals(dict.getDictType()))
|
||||||
.peek(item -> {
|
.peek(item -> {
|
||||||
item.setDictId(dict.getId());
|
item.setDictId(dict.getId());
|
||||||
item.setId(null);
|
item.setId(null);
|
||||||
}))
|
}))
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
// 插入客户端
|
// 插入客户端
|
||||||
clientServices.saveBatch(clientDetailsList.stream().peek(d -> d.setId(null)).toList());
|
clientServices.saveBatch(clientDetailsList.stream().peek(d -> d.setId(null)).toList());
|
||||||
@@ -217,7 +215,6 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改租户
|
* 修改租户
|
||||||
*
|
|
||||||
* @param tenantDTO 新旧套餐数据
|
* @param tenantDTO 新旧套餐数据
|
||||||
* @return true/false
|
* @return true/false
|
||||||
*/
|
*/
|
||||||
@@ -248,31 +245,31 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
Collection<String> disjunctionList = CollUtil.disjunction(newMenuIdList, oldMenuIdList);
|
Collection<String> disjunctionList = CollUtil.disjunction(newMenuIdList, oldMenuIdList);
|
||||||
// 1. 如果旧套餐包含差集元素则删除
|
// 1. 如果旧套餐包含差集元素则删除
|
||||||
CollUtil.intersection(oldMenuIdList, disjunctionList)
|
CollUtil.intersection(oldMenuIdList, disjunctionList)
|
||||||
.forEach(menuId -> TenantBroker.runAs(tenantDTO.getId(), (tenantId -> {
|
.forEach(menuId -> TenantBroker.runAs(tenantDTO.getId(), (tenantId -> {
|
||||||
// 查询租户菜单元信息
|
// 查询租户菜单元信息
|
||||||
SysMenu menu = CollUtil.findOneByField(sysMenuList, SysMenu.Fields.menuId, Long.parseLong(menuId));
|
SysMenu menu = CollUtil.findOneByField(sysMenuList, SysMenu.Fields.menuId, Long.parseLong(menuId));
|
||||||
|
|
||||||
// 根据path 或者 permisson 删除目标租户菜单
|
// 根据path 或者 permisson 删除目标租户菜单
|
||||||
menuService.remove(Wrappers.<SysMenu>lambdaQuery()
|
menuService.remove(Wrappers.<SysMenu>lambdaQuery()
|
||||||
.eq(StrUtil.isNotBlank(menu.getPath()), SysMenu::getPath, menu.getPath())
|
.eq(StrUtil.isNotBlank(menu.getPath()), SysMenu::getPath, menu.getPath())
|
||||||
.or()
|
.or()
|
||||||
.eq(StrUtil.isNotBlank(menu.getPermission()), SysMenu::getPermission, menu.getPermission()));
|
.eq(StrUtil.isNotBlank(menu.getPermission()), SysMenu::getPermission, menu.getPermission()));
|
||||||
})));
|
})));
|
||||||
|
|
||||||
// 2. 如果旧套餐不包含差集元素则新增
|
// 2. 如果旧套餐不包含差集元素则新增
|
||||||
List<SysMenu> newTenantMenuIdList = CollUtil.subtract(disjunctionList, oldMenuIdList)
|
List<SysMenu> newTenantMenuIdList = CollUtil.subtract(disjunctionList, oldMenuIdList)
|
||||||
.stream()
|
.stream()
|
||||||
.map(menuId -> TenantBroker.applyAs(tenantDTO.getId(), (tenantId -> {
|
.map(menuId -> TenantBroker.applyAs(tenantDTO.getId(), (tenantId -> {
|
||||||
// 查询租户菜单元信息
|
// 查询租户菜单元信息
|
||||||
SysMenu menu = CollUtil.findOneByField(sysMenuList, SysMenu.Fields.menuId, Long.parseLong(menuId));
|
SysMenu menu = CollUtil.findOneByField(sysMenuList, SysMenu.Fields.menuId, Long.parseLong(menuId));
|
||||||
|
|
||||||
// 新增租户菜单,但未维护上下级关系
|
// 新增租户菜单,但未维护上下级关系
|
||||||
SysMenu newMenu = new SysMenu();
|
SysMenu newMenu = new SysMenu();
|
||||||
BeanUtils.copyProperties(menu, newMenu, SysMenu.Fields.menuId);
|
BeanUtils.copyProperties(menu, newMenu, SysMenu.Fields.menuId);
|
||||||
menuService.save(newMenu);
|
menuService.save(newMenu);
|
||||||
return newMenu;
|
return newMenu;
|
||||||
})))
|
})))
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
// 3. 更新新增菜单上下级关系
|
// 3. 更新新增菜单上下级关系
|
||||||
for (SysMenu tenantMenu : newTenantMenuIdList) {
|
for (SysMenu tenantMenu : newTenantMenuIdList) {
|
||||||
@@ -288,10 +285,10 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
|
|
||||||
// 根据path 或者 permisson 查询目标父菜单
|
// 根据path 或者 permisson 查询目标父菜单
|
||||||
SysMenu tenantParentMenu = menuService.getOne(Wrappers.<SysMenu>lambdaQuery()
|
SysMenu tenantParentMenu = menuService.getOne(Wrappers.<SysMenu>lambdaQuery()
|
||||||
.eq(StrUtil.isNotBlank(parentMenu.getPath()), SysMenu::getPath, parentMenu.getPath())
|
.eq(StrUtil.isNotBlank(parentMenu.getPath()), SysMenu::getPath, parentMenu.getPath())
|
||||||
.or()
|
.or()
|
||||||
.eq(StrUtil.isNotBlank(parentMenu.getPermission()), SysMenu::getPermission,
|
.eq(StrUtil.isNotBlank(parentMenu.getPermission()), SysMenu::getPermission,
|
||||||
parentMenu.getPermission()),
|
parentMenu.getPermission()),
|
||||||
false);
|
false);
|
||||||
|
|
||||||
tenantMenu.setParentId(tenantParentMenu.getMenuId());
|
tenantMenu.setParentId(tenantParentMenu.getMenuId());
|
||||||
@@ -309,44 +306,41 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取用户所属租户列表
|
* 获取用户所属租户列表
|
||||||
*
|
|
||||||
* @return 用户所属租户列表
|
* @return 用户所属租户列表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<SysTenant> getUserTenant() {
|
public List<SysTenant> getUserTenant() {
|
||||||
MPJLambdaWrapper<SysTenant> wrapper = new MPJLambdaWrapper<SysTenant>().selectAll(SysTenant.class)
|
MPJLambdaWrapper<SysTenant> wrapper = new MPJLambdaWrapper<SysTenant>().selectAll(SysTenant.class)
|
||||||
.leftJoin(SysTenantUser.class, SysTenantUser::getTenantId, SysTenant::getId)
|
.leftJoin(SysTenantUser.class, SysTenantUser::getTenantId, SysTenant::getId)
|
||||||
.eq(SysTenantUser::getUserId, SecurityUtils.getUser().getId())
|
.eq(SysTenantUser::getUserId, SecurityUtils.getUser().getId())
|
||||||
.eq(SysTenant::getStatus, TenantStateEnum.NORMAL.getCode());
|
.eq(SysTenant::getStatus, TenantStateEnum.NORMAL.getCode());
|
||||||
|
|
||||||
return baseMapper.selectJoinList(wrapper)
|
return baseMapper.selectJoinList(wrapper)
|
||||||
.stream()
|
.stream()
|
||||||
.filter(tenant -> tenant.getStartTime().isBefore(LocalDateTime.now()))
|
.filter(tenant -> tenant.getStartTime().isBefore(LocalDateTime.now()))
|
||||||
.filter(tenant -> tenant.getEndTime().isAfter(LocalDateTime.now()))
|
.filter(tenant -> tenant.getEndTime().isAfter(LocalDateTime.now()))
|
||||||
.toList();
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取用户租户分页信息
|
* 获取用户租户分页信息
|
||||||
*
|
* @param page 分页参数
|
||||||
* @param page 分页参数
|
|
||||||
* @param userDTO 用户信息
|
* @param userDTO 用户信息
|
||||||
* @return 用户租户分页结果
|
* @return 用户租户分页结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Page getUserTenantPage(Page page, UserDTO userDTO) {
|
public Page getUserTenantPage(Page page, UserDTO userDTO) {
|
||||||
MPJLambdaWrapper<SysUser> wrapper = new MPJLambdaWrapper<SysUser>().selectAll(SysUser.class)
|
MPJLambdaWrapper<SysUser> wrapper = new MPJLambdaWrapper<SysUser>().selectAll(SysUser.class)
|
||||||
.innerJoin(SysTenantUser.class, SysTenantUser::getUserId, SysUser::getUserId)
|
.innerJoin(SysTenantUser.class, SysTenantUser::getUserId, SysUser::getUserId)
|
||||||
.like(StrUtil.isNotBlank(userDTO.getUsername()), SysUser::getUsername, userDTO.getUsername())
|
.like(StrUtil.isNotBlank(userDTO.getUsername()), SysUser::getUsername, userDTO.getUsername())
|
||||||
.like(StrUtil.isNotBlank(userDTO.getPhone()), SysUser::getPhone, userDTO.getPhone())
|
.like(StrUtil.isNotBlank(userDTO.getPhone()), SysUser::getPhone, userDTO.getPhone())
|
||||||
.like(StrUtil.isNotBlank(userDTO.getEmail()), SysUser::getEmail, userDTO.getEmail())
|
.like(StrUtil.isNotBlank(userDTO.getEmail()), SysUser::getEmail, userDTO.getEmail())
|
||||||
.eq(Objects.nonNull(userDTO.getTenantId()), SysTenantUser::getTenantId, userDTO.getTenantId());
|
.eq(Objects.nonNull(userDTO.getTenantId()), SysTenantUser::getTenantId, userDTO.getTenantId());
|
||||||
return TenantBroker.noneAs(() -> sysUserMapper.selectJoinPage(page, wrapper));
|
return TenantBroker.noneAs(() -> sysUserMapper.selectJoinPage(page, wrapper));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 移除租户用户
|
* 移除租户用户
|
||||||
*
|
|
||||||
* @param tenantUserDTO 租户用户信息
|
* @param tenantUserDTO 租户用户信息
|
||||||
* @return 是否移除成功
|
* @return 是否移除成功
|
||||||
*/
|
*/
|
||||||
@@ -356,8 +350,8 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
|
|
||||||
// 删除租户用户关系
|
// 删除租户用户关系
|
||||||
sysTenantUserMapper.delete(Wrappers.<SysTenantUser>lambdaQuery()
|
sysTenantUserMapper.delete(Wrappers.<SysTenantUser>lambdaQuery()
|
||||||
.eq(SysTenantUser::getTenantId, tenantUserDTO.getTenantId())
|
.eq(SysTenantUser::getTenantId, tenantUserDTO.getTenantId())
|
||||||
.in(SysTenantUser::getUserId, userIdList));
|
.in(SysTenantUser::getUserId, userIdList));
|
||||||
|
|
||||||
TenantBroker.runAs(tenantUserDTO.getTenantId(), (tenantId -> {
|
TenantBroker.runAs(tenantUserDTO.getTenantId(), (tenantId -> {
|
||||||
// 删除用户岗位
|
// 删除用户岗位
|
||||||
@@ -372,19 +366,18 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据用户信息查询租户用户列表
|
* 根据用户信息查询租户用户列表
|
||||||
*
|
|
||||||
* @param userDTO 用户信息传输对象
|
* @param userDTO 用户信息传输对象
|
||||||
* @return 租户用户列表
|
* @return 租户用户列表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<SysUser> listTenantUser(UserDTO userDTO) {
|
public List<SysUser> listTenantUser(UserDTO userDTO) {
|
||||||
return TenantBroker.noneAs(() -> sysUserMapper.selectList(Wrappers.<SysUser>lambdaQuery()
|
return TenantBroker.noneAs(() -> sysUserMapper.selectList(Wrappers.<SysUser>lambdaQuery()
|
||||||
.like(StrUtil.isNotBlank(userDTO.getUsername()), SysUser::getUsername, userDTO.getUsername())));
|
.ne(SysUser::getTenantId, userDTO.getTenantId())
|
||||||
|
.like(StrUtil.isNotBlank(userDTO.getUsername()), SysUser::getUsername, userDTO.getUsername())));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存租户用户信息
|
* 保存租户用户信息
|
||||||
*
|
|
||||||
* @param tenantUserDTO 租户用户信息DTO
|
* @param tenantUserDTO 租户用户信息DTO
|
||||||
* @return 保存是否成功
|
* @return 保存是否成功
|
||||||
*/
|
*/
|
||||||
@@ -394,9 +387,9 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
TenantBroker.runAs(tenantUserDTO.getTenantId(), (tenantId -> {
|
TenantBroker.runAs(tenantUserDTO.getTenantId(), (tenantId -> {
|
||||||
for (Long userId : tenantUserDTO.getUserIds()) {
|
for (Long userId : tenantUserDTO.getUserIds()) {
|
||||||
List<SysTenantUser> sysTenantUsers = sysTenantUserMapper
|
List<SysTenantUser> sysTenantUsers = sysTenantUserMapper
|
||||||
.selectList(Wrappers.<SysTenantUser>lambdaQuery()
|
.selectList(Wrappers.<SysTenantUser>lambdaQuery()
|
||||||
.eq(SysTenantUser::getTenantId, tenantId)
|
.eq(SysTenantUser::getTenantId, tenantId)
|
||||||
.eq(SysTenantUser::getUserId, userId));
|
.eq(SysTenantUser::getUserId, userId));
|
||||||
if (CollUtil.isEmpty(sysTenantUsers)) {
|
if (CollUtil.isEmpty(sysTenantUsers)) {
|
||||||
// 插入租户用户关系
|
// 插入租户用户关系
|
||||||
SysTenantUser sysTenantUser = new SysTenantUser();
|
SysTenantUser sysTenantUser = new SysTenantUser();
|
||||||
@@ -406,8 +399,8 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<SysUserRole> userRoleList = sysUserRoleMapper.selectList(Wrappers.<SysUserRole>lambdaQuery()
|
List<SysUserRole> userRoleList = sysUserRoleMapper.selectList(Wrappers.<SysUserRole>lambdaQuery()
|
||||||
.eq(SysUserRole::getUserId, userId)
|
.eq(SysUserRole::getUserId, userId)
|
||||||
.eq(SysUserRole::getRoleId, tenantUserDTO.getRoleId()));
|
.eq(SysUserRole::getRoleId, tenantUserDTO.getRoleId()));
|
||||||
if (CollUtil.isEmpty(userRoleList)) {
|
if (CollUtil.isEmpty(userRoleList)) {
|
||||||
// 插入用户角色关系
|
// 插入用户角色关系
|
||||||
SysUserRole sysUserRole = new SysUserRole();
|
SysUserRole sysUserRole = new SysUserRole();
|
||||||
@@ -417,8 +410,8 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<SysUserDept> userDeptList = sysUserDeptMapper.selectList(Wrappers.<SysUserDept>lambdaQuery()
|
List<SysUserDept> userDeptList = sysUserDeptMapper.selectList(Wrappers.<SysUserDept>lambdaQuery()
|
||||||
.eq(SysUserDept::getUserId, userId)
|
.eq(SysUserDept::getUserId, userId)
|
||||||
.eq(SysUserDept::getDeptId, tenantUserDTO.getDeptId()));
|
.eq(SysUserDept::getDeptId, tenantUserDTO.getDeptId()));
|
||||||
|
|
||||||
if (CollUtil.isEmpty(userDeptList)) {
|
if (CollUtil.isEmpty(userDeptList)) {
|
||||||
// 插入用户部门关系
|
// 插入用户部门关系
|
||||||
@@ -429,8 +422,8 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<SysUserPost> userPostList = sysUserPostMapper.selectList(Wrappers.<SysUserPost>lambdaQuery()
|
List<SysUserPost> userPostList = sysUserPostMapper.selectList(Wrappers.<SysUserPost>lambdaQuery()
|
||||||
.eq(SysUserPost::getUserId, userId)
|
.eq(SysUserPost::getUserId, userId)
|
||||||
.eq(SysUserPost::getPostId, tenantUserDTO.getPostId()));
|
.eq(SysUserPost::getPostId, tenantUserDTO.getPostId()));
|
||||||
|
|
||||||
if (CollUtil.isEmpty(userPostList) && Objects.nonNull(tenantUserDTO.getPostId())) {
|
if (CollUtil.isEmpty(userPostList) && Objects.nonNull(tenantUserDTO.getPostId())) {
|
||||||
// 插入用户岗位关系
|
// 插入用户岗位关系
|
||||||
@@ -446,7 +439,6 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取租户角色列表
|
* 获取租户角色列表
|
||||||
*
|
|
||||||
* @param userDTO 用户信息
|
* @param userDTO 用户信息
|
||||||
* @return 租户角色列表
|
* @return 租户角色列表
|
||||||
*/
|
*/
|
||||||
@@ -455,10 +447,10 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
return TenantBroker.applyAs(userDTO.getTenantId(), tenantId -> {
|
return TenantBroker.applyAs(userDTO.getTenantId(), tenantId -> {
|
||||||
// 过滤有权限配置的菜单
|
// 过滤有权限配置的菜单
|
||||||
List<SysRole> sysRoles = sysRoleMapper.selectList(Wrappers.lambdaQuery())
|
List<SysRole> sysRoles = sysRoleMapper.selectList(Wrappers.lambdaQuery())
|
||||||
.stream()
|
.stream()
|
||||||
.filter(role -> roleMenuMapper
|
.filter(role -> roleMenuMapper
|
||||||
.exists(Wrappers.<SysRoleMenu>lambdaQuery().eq(SysRoleMenu::getRoleId, role.getRoleId())))
|
.exists(Wrappers.<SysRoleMenu>lambdaQuery().eq(SysRoleMenu::getRoleId, role.getRoleId())))
|
||||||
.toList();
|
.toList();
|
||||||
List<SysDept> sysDepts = sysDeptMapper.selectList(Wrappers.lambdaQuery());
|
List<SysDept> sysDepts = sysDeptMapper.selectList(Wrappers.lambdaQuery());
|
||||||
List<SysPost> sysPosts = sysPostMapper.selectList(Wrappers.lambdaQuery());
|
List<SysPost> sysPosts = sysPostMapper.selectList(Wrappers.lambdaQuery());
|
||||||
return Map.of("sysRoles", sysRoles, "sysDepts", sysDepts, "sysPosts", sysPosts);
|
return Map.of("sysRoles", sysRoles, "sysDepts", sysDepts, "sysPosts", sysPosts);
|
||||||
@@ -467,7 +459,6 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 移除租户
|
* 移除租户
|
||||||
*
|
|
||||||
* @param ids 租户ID列表
|
* @param ids 租户ID列表
|
||||||
* @return 是否移除成功
|
* @return 是否移除成功
|
||||||
*/
|
*/
|
||||||
@@ -476,13 +467,12 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
public Boolean removeTenant(Long[] ids) {
|
public Boolean removeTenant(Long[] ids) {
|
||||||
baseMapper.deleteByIds(CollUtil.toList(ids));
|
baseMapper.deleteByIds(CollUtil.toList(ids));
|
||||||
sysTenantUserMapper
|
sysTenantUserMapper
|
||||||
.delete(Wrappers.<SysTenantUser>lambdaQuery().in(SysTenantUser::getTenantId, CollUtil.toList(ids)));
|
.delete(Wrappers.<SysTenantUser>lambdaQuery().in(SysTenantUser::getTenantId, CollUtil.toList(ids)));
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新用户租户信息
|
* 更新用户租户信息
|
||||||
*
|
|
||||||
* @param userDto 用户数据传输对象
|
* @param userDto 用户数据传输对象
|
||||||
* @return 更新结果
|
* @return 更新结果
|
||||||
*/
|
*/
|
||||||
@@ -490,14 +480,13 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
@CacheEvict(value = CacheConstants.USER_DETAILS, key = "#userDto.username")
|
@CacheEvict(value = CacheConstants.USER_DETAILS, key = "#userDto.username")
|
||||||
public R updateUserTenant(UserDTO userDto) {
|
public R updateUserTenant(UserDTO userDto) {
|
||||||
return R.ok(TenantBroker.noneAs(() -> sysUserMapper.update(Wrappers.<SysUser>lambdaUpdate()
|
return R.ok(TenantBroker.noneAs(() -> sysUserMapper.update(Wrappers.<SysUser>lambdaUpdate()
|
||||||
.set(SysUser::getTenantId, userDto.getTenantId())
|
.set(SysUser::getTenantId, userDto.getTenantId())
|
||||||
.eq(SysUser::getUserId, userDto.getUserId()))));
|
.eq(SysUser::getUserId, userDto.getUserId()))));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存新的租户菜单,维护成新的菜单
|
* 保存新的租户菜单,维护成新的菜单
|
||||||
*
|
* @param menuList 菜单列表
|
||||||
* @param menuList 菜单列表
|
|
||||||
* @param originParentId 原始上级
|
* @param originParentId 原始上级
|
||||||
* @param targetParentId 目标上级
|
* @param targetParentId 目标上级
|
||||||
*/
|
*/
|
||||||
@@ -515,22 +504,21 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取或更新当前用户的租户信息
|
* 获取或更新当前用户的租户信息
|
||||||
*
|
|
||||||
* @return 更新后的租户ID,如果无需更新则返回null
|
* @return 更新后的租户ID,如果无需更新则返回null
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Long getOrUpdateTenant() {
|
public Long getOrUpdateTenant() {
|
||||||
PigxUser loginUser = SecurityUtils.getUser();
|
PigxUser loginUser = SecurityUtils.getUser();
|
||||||
boolean match = this.getNormalTenant()
|
boolean match = this.getNormalTenant()
|
||||||
.stream()
|
.stream()
|
||||||
.filter(tenant -> tenant.getStartTime().isBefore(LocalDateTime.now()))
|
.filter(tenant -> tenant.getStartTime().isBefore(LocalDateTime.now()))
|
||||||
.filter(tenant -> tenant.getEndTime().isAfter(LocalDateTime.now()))
|
.filter(tenant -> tenant.getEndTime().isAfter(LocalDateTime.now()))
|
||||||
.anyMatch(tenant -> tenant.getId().equals(loginUser.getTenantId()));
|
.anyMatch(tenant -> tenant.getId().equals(loginUser.getTenantId()));
|
||||||
|
|
||||||
if (!match) {
|
if (!match) {
|
||||||
SysTenantUser tenantUser = sysTenantUserMapper.selectOne(Wrappers.<SysTenantUser>lambdaQuery()
|
SysTenantUser tenantUser = sysTenantUserMapper.selectOne(Wrappers.<SysTenantUser>lambdaQuery()
|
||||||
.eq(SysTenantUser::getUserId, SecurityUtils.getUser().getId())
|
.eq(SysTenantUser::getUserId, SecurityUtils.getUser().getId())
|
||||||
.ne(SysTenantUser::getTenantId, loginUser.getTenantId()), false);
|
.ne(SysTenantUser::getTenantId, loginUser.getTenantId()), false);
|
||||||
// 如果当前用户没有租户信息,则不进行任何操作
|
// 如果当前用户没有租户信息,则不进行任何操作
|
||||||
if (Objects.isNull(tenantUser)) {
|
if (Objects.isNull(tenantUser)) {
|
||||||
return null;
|
return null;
|
||||||
@@ -576,10 +564,10 @@ class TenantDefaultConfig {
|
|||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public TenantDefaultConfig() {
|
public TenantDefaultConfig() {
|
||||||
List<String> args = Arrays.stream(ReflectUtil.getFields(this.getClass()))
|
List<String> args = Arrays.stream(ReflectUtil.getFields(this.getClass()))
|
||||||
.map(Field::getName)
|
.map(Field::getName)
|
||||||
.map(StrUtil::toUnderlineCase)
|
.map(StrUtil::toUnderlineCase)
|
||||||
.map(String::toUpperCase)
|
.map(String::toUpperCase)
|
||||||
.toList();
|
.toList();
|
||||||
Map<String, Object> paramsMap = ParamResolver.getMap(args.toArray(new String[] {}));
|
Map<String, Object> paramsMap = ParamResolver.getMap(args.toArray(new String[] {}));
|
||||||
for (Field field : ReflectUtil.getFields(this.getClass())) {
|
for (Field field : ReflectUtil.getFields(this.getClass())) {
|
||||||
String key = StrUtil.toUnderlineCase(field.getName()).toUpperCase();
|
String key = StrUtil.toUnderlineCase(field.getName()).toUpperCase();
|
||||||
|
|||||||
Reference in new issue
Block a user