|
@@ -135,7 +135,6 @@ public class AppmanageServiceImpl implements AppmanageService {
|
|
|
AppUserInfo userInfo = new AppUserInfo();
|
|
|
userInfo.setAppid(appid);
|
|
|
userInfo.setUserid(userid);
|
|
|
- userInfo.setRoles(roleid);
|
|
|
useridlist.add(userid);
|
|
|
userInfoMapper.insert(userInfo);
|
|
|
});
|
|
@@ -202,43 +201,36 @@ public class AppmanageServiceImpl implements AppmanageService {
|
|
|
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
|
|
|
// 查询当前应用的应用管理员信息
|
|
|
- if (ids.length == 1){ // 删除单条信息时
|
|
|
- QueryWrapper<AppBaseInfo> baseInfoPOQueryWrapper = new QueryWrapper<>();
|
|
|
- baseInfoPOQueryWrapper.select("admin").in("id", ids[0]);
|
|
|
- AppBaseInfo appBaseInfo = baseInfoMapper.selectOne(baseInfoPOQueryWrapper);
|
|
|
- if (!appBaseInfo.getAdmin().equals(loginUser.getId())) return false;
|
|
|
- }else { // 批量删除应用信息时,如果有一个应用不是当前登录用户所创建,则返回false
|
|
|
- for (String id : ids) {
|
|
|
- // 不能删除基础平台的应用信息
|
|
|
- if (id.equals("0")) return false;
|
|
|
- AppBaseInfo appBaseInfo = baseInfoMapper.selectById(id);
|
|
|
- if (!appBaseInfo.getAdmin().equals(loginUser.getId())) return false;
|
|
|
-
|
|
|
- // 删除所属该应用的基础信息、环境信息、文档信息、用户信息
|
|
|
- baseInfoMapper.deleteById(id);
|
|
|
- envInfoMapper.delete(new QueryWrapper<AppEnvInfo>().eq("appid", id));
|
|
|
- docInfoMapper.delete(new QueryWrapper<AppDocInfo>().eq("appid", id));
|
|
|
- // 简易注册下的应用信息不具备用户、菜单、权限等信息,所有不需要删除
|
|
|
- if (appBaseInfo.getAddType().equals("easy")) return true ;
|
|
|
- userInfoMapper.delete(new QueryWrapper<AppUserInfo>().eq("appid", id));
|
|
|
-
|
|
|
- // 删除该应用下所创建的菜单
|
|
|
- // 查询该应用的一级菜单
|
|
|
- LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>();
|
|
|
- query.eq(SysPermission::getMenuType,CommonConstant.MENU_TYPE_0);
|
|
|
- query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0);
|
|
|
- query.eq(SysPermission::getAppId, id);
|
|
|
- List<SysPermission> list = sysPermissionService.list(query);
|
|
|
- for (SysPermission sysPermission : list){
|
|
|
- sysPermissionService.deletePermission(sysPermission.getId());
|
|
|
- }
|
|
|
+ for (String id : ids) {
|
|
|
+ // 不能删除基础平台的应用信息
|
|
|
+ if (id.equals("0")) return false;
|
|
|
+ AppBaseInfo appBaseInfo = baseInfoMapper.selectById(id);
|
|
|
+ if (!(appBaseInfo.getAdmin().equals(loginUser.getId()))) return false;
|
|
|
+
|
|
|
+ // 删除所属该应用的基础信息、环境信息、文档信息、用户信息
|
|
|
+ baseInfoMapper.deleteById(id);
|
|
|
+ envInfoMapper.delete(new QueryWrapper<AppEnvInfo>().eq("appid", id));
|
|
|
+ docInfoMapper.delete(new QueryWrapper<AppDocInfo>().eq("appid", id));
|
|
|
+ // 简易注册下的应用信息不具备用户、菜单、权限等信息,所有不需要删除
|
|
|
+ if (appBaseInfo.getAddType().equals("easy")) break;
|
|
|
+ userInfoMapper.delete(new QueryWrapper<AppUserInfo>().eq("appid", id));
|
|
|
+
|
|
|
+ // 删除该应用下所创建的菜单
|
|
|
+ // 查询该应用的一级菜单
|
|
|
+ LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>();
|
|
|
+ query.eq(SysPermission::getMenuType,CommonConstant.MENU_TYPE_0);
|
|
|
+ query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0);
|
|
|
+ query.eq(SysPermission::getAppId, id);
|
|
|
+ List<SysPermission> list = sysPermissionService.list(query);
|
|
|
+ for (SysPermission sysPermission : list){
|
|
|
+ sysPermissionService.deletePermission(sysPermission.getId());
|
|
|
+ }
|
|
|
|
|
|
- // 删除该应用下所创建的角色信息
|
|
|
- String[] Approleids = sysRoleService.listRoleIdsByAppId(id);
|
|
|
- if (Approleids!=null){
|
|
|
- boolean tag = sysRoleService.deleteBatchRole(Approleids);
|
|
|
- if (!tag) return false;
|
|
|
- }
|
|
|
+ // 删除该应用下所创建的角色信息
|
|
|
+ String[] Approleids = sysRoleService.listRoleIdsByAppId(id);
|
|
|
+ if (Approleids!=null){
|
|
|
+ boolean tag = sysRoleService.deleteBatchRole(Approleids);
|
|
|
+ if (!tag) return false;
|
|
|
}
|
|
|
}
|
|
|
// 记录日志
|
|
@@ -301,20 +293,22 @@ public class AppmanageServiceImpl implements AppmanageService {
|
|
|
@Transactional
|
|
|
public Boolean editUserInfo(AppUpdataUserInfo updataUserInfo) {
|
|
|
String appid = updataUserInfo.getAppid();
|
|
|
- // 删除用户 删除应用用户默认权限
|
|
|
+ // 移除应用用户时,将去角色收回
|
|
|
if (updataUserInfo.getDelUserids()!=null&&!updataUserInfo.getDelUserids().isEmpty()){
|
|
|
updataUserInfo.getDelUserids().forEach(userid -> {
|
|
|
System.out.println("删除用户:"+userid);
|
|
|
+ // 获取要移除的用户的信息
|
|
|
QueryWrapper<AppUserInfo> userInfoPOQueryWrapper = new QueryWrapper<>();
|
|
|
userInfoPOQueryWrapper.eq("appid",appid).eq("userid",userid);
|
|
|
- AppUserInfo userInfoPO = userInfoMapper.selectOne(userInfoPOQueryWrapper);
|
|
|
- // 先去除字符串两端的空格
|
|
|
- String userDefaultRoleId = userInfoPO.getRoles().trim();
|
|
|
- // 根据逗号分割字符串
|
|
|
- String[] parts = userDefaultRoleId.split(",");
|
|
|
- QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<SysUserRole>();
|
|
|
- queryWrapper.eq("role_id", parts[0]).eq("user_id",userid);
|
|
|
- sysUserRoleService.remove(queryWrapper);
|
|
|
+ AppUserInfo userInfo = userInfoMapper.selectOne(userInfoPOQueryWrapper);
|
|
|
+ // 获取该用户在该应用下的角色信息
|
|
|
+ List<String> roleIds = sysUserRoleService.listByAppId(appid, userid);
|
|
|
+ // 删除该用户在该应用下的角色信息
|
|
|
+ roleIds.forEach(roleId -> {
|
|
|
+ QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<SysUserRole>();
|
|
|
+ queryWrapper.eq("role_id", roleId).eq("user_id",userid);
|
|
|
+ sysUserRoleService.remove(queryWrapper);
|
|
|
+ });
|
|
|
QueryWrapper<AppUserInfo> wrapper = new QueryWrapper<>();
|
|
|
wrapper.eq("appid",updataUserInfo.getAppid()).eq("userid",userid);
|
|
|
userInfoMapper.delete(wrapper);
|
|
@@ -470,25 +464,22 @@ public class AppmanageServiceImpl implements AppmanageService {
|
|
|
AppBaseInfo appBaseInfo = baseInfoMapper.selectById(queryParams.getAppid());
|
|
|
// 查询用户角色信息
|
|
|
appUserInfos.forEach(map -> {
|
|
|
- QueryWrapper<AppUserInfo> appUserInfoQueryWrapper = new QueryWrapper<>();
|
|
|
- appUserInfoQueryWrapper.select("roles")
|
|
|
- .eq("userid", map.get("id")).eq("appid", queryParams.getAppid());
|
|
|
- AppUserInfo roleInfo = userInfoMapper.selectOne(appUserInfoQueryWrapper);
|
|
|
- // 查询应用基础信息的相关用户信息
|
|
|
String roleNameInfo = baseInfoToUserInfoRoles(appBaseInfo, (String) map.get("id"));
|
|
|
- // 使用 Stream API 将字符串转换为 List
|
|
|
- if (roleInfo!=null){
|
|
|
- // 将应用用户表中存的的角色信息字符串转换为List
|
|
|
- List<String> list = Arrays.stream(roleInfo.getRoles().split(","))
|
|
|
- .collect(Collectors.toList());
|
|
|
- QueryWrapper<SysRole> sysRoleQueryWrapper = new QueryWrapper<>();
|
|
|
- sysRoleQueryWrapper.select("role_name").in("id", list);
|
|
|
+ List<String> roleIds = sysUserRoleService.listByAppId(queryParams.getAppid(), (String) map.get("id"));
|
|
|
+
|
|
|
+ if (!roleIds.isEmpty()){
|
|
|
// 查询角色名信息
|
|
|
+ QueryWrapper<SysRole> sysRoleQueryWrapper = new QueryWrapper<>();
|
|
|
+ sysRoleQueryWrapper.select("role_name").in("id", roleIds);
|
|
|
List<SysRole> sysRoles = sysRoleMapper.selectList(sysRoleQueryWrapper);
|
|
|
if (!sysRoles.isEmpty()&&!roleNameInfo.isEmpty()){
|
|
|
roleNameInfo =roleNameInfo +", "+ sysRoles.stream()
|
|
|
.map(SysRole::getRoleName)
|
|
|
.collect(Collectors.joining(", "));
|
|
|
+ }else {
|
|
|
+ roleNameInfo = sysRoles.stream()
|
|
|
+ .map(SysRole::getRoleName)
|
|
|
+ .collect(Collectors.joining(", "));
|
|
|
}
|
|
|
}
|
|
|
map.put("roles", roleNameInfo);
|
|
@@ -619,28 +610,6 @@ public class AppmanageServiceImpl implements AppmanageService {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 角色分配用户时添加应用用户角色信息
|
|
|
- * @param sysUserRole
|
|
|
- */
|
|
|
- @Override
|
|
|
- public boolean addAppUserRoleInfos(SysUserRole sysUserRole){
|
|
|
- // 根据角色id查询所属的应用id
|
|
|
- SysRole sysRole = sysRoleMapper.selectById(sysUserRole.getRoleId());
|
|
|
- String appid = sysRole.getAppId();
|
|
|
- QueryWrapper<AppUserInfo> appUserInfoQueryWrapper = new QueryWrapper<>();
|
|
|
- // 先查询应用用户原来的角色信息,若为空,则直接更新,若不为空,将原角色信息与新的角色信息进行拼接后再更新,新旧角色id信息通过逗号分隔的字符串
|
|
|
- appUserInfoQueryWrapper.eq("appid",appid).eq("userid",sysUserRole.getUserId());
|
|
|
- AppUserInfo appUserInfo = userInfoMapper.selectOne(appUserInfoQueryWrapper);
|
|
|
- String appUserRolesInfo = appUserInfo.getRoles();
|
|
|
- if (appUserRolesInfo!=null){
|
|
|
- appUserInfo.setRoles(appUserRolesInfo+","+sysUserRole.getRoleId());
|
|
|
- }else {
|
|
|
- appUserInfo.setRoles(sysUserRole.getRoleId());
|
|
|
- }
|
|
|
- int i = userInfoMapper.updateById(appUserInfo);
|
|
|
- return i>0;
|
|
|
- }
|
|
|
|
|
|
private String baseInfoToUserInfoRoles(AppBaseInfo appBaseInfo, String userid){
|
|
|
String roleNameInfo = "";
|