提交 23a57087 作者: 洪东保

权限相关接口

父级 b33c9eef
......@@ -40,8 +40,6 @@ public class RobotWebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private RobotJwtAuthenticationTokenFilter robotJwtAuthenticationTokenFilter;
// @Resource
// private RobotJwtCustomTokenFilter robotJwtCustomTokenFilter;
@Autowired
private CustomWhiteConfigProperties customWhiteConfigProperties;
......@@ -134,8 +132,6 @@ public class RobotWebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
// auth.userDetailsService(userDetailsService).passwordEncoder(new BCryptPasswordEncoder());
// auth.userDetailsService(mobileUserDetailsService).passwordEncoder(new BCryptPasswordEncoder());
auth.authenticationProvider(customAuthenticationProvider());
}
......
......@@ -98,63 +98,52 @@ public class UserServiceImpl implements UserService {
stringStringHashMap.put("userId", userId);
stringStringHashMap.put("tenantId", permissionTenantId);
stringStringHashMap.put("language", sysTenant.getLanguage());
// iUserLoginInfoService.updateInfo(null, userId, tenantId, null);
stringStringHashMap.put("nick", nick);
UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken = new UsernamePasswordAuthenticationToken(userId, permissionTenantId);
usernamePasswordAuthenticationToken.setDetails(stringStringHashMap);
Authentication authentication = authenticationManager.authenticate(usernamePasswordAuthenticationToken);
SecurityContextHolder.getContext().setAuthentication(authentication);
RobotSecurityUser userDetail = (RobotSecurityUser) authentication.getPrincipal();
System.out.println(userId.toString());
String token = jwtUtil.generateToken(userDetail);
List<SysMenu> menuList = commonMapper.getMenuList(permissionTenantId);
// 需要对menuList进行过滤
// 根据uid查询对应角色,然后查询角色对应的菜单权限
// List<String> roleIdList = getRoleIdByUserId(permissionTenantId, userId, path);
// List<SysMenu> menuList1 = CollectionUtils.isEmpty(roleIdList) ? new ArrayList<>() : commonMapper.getMenuByRoleList(roleIdList, permissionTenantId);
// Set<Integer> menuSet = menuList1.stream().map(SysMenu::getId).collect(Collectors.toSet());
// List<SysMenu> filteredMenu = menuList.stream().filter(menu -> menuSet.contains(menu.getId())).collect(Collectors.toList());
// menuList = (List<SysMenu>) CollectionUtils.intersection(filteredMenu, menuList);
menuList.sort(Comparator.comparingInt(SysMenu::getSort));
// 总库去掉部分菜单
if ("system".equals(userDetail.getUsername())) {
List<String> removeMenuList = Arrays.asList(removeMenus.split(","));
int size = menuList.size();
for (int i = 0; i < size; i++) {
SysMenu sysMenu = menuList.get(i);
String tempName = sysMenu.getName();
if (removeMenuList.contains(tempName)) {
menuList.remove(sysMenu);
size -= 1;
i -= 1;
}
}
}
RoleTree loginMenus = getLoginMenus(menuList);
HashSet<String> set = new HashSet<>();
for (SysMenu sysMenu : menuList) {
set.add(sysMenu.getPerms());
}
if (set.contains("interactCenter")) {
//看是否勾选了首页配置 121是首页菜单的id
loginMenus.getInteractCenter().add("modelList");
loginMenus.getInteractCenter().add("modelPage");
}
if (set.contains("robotCenter")) {
//看是否勾选了首页配置 121是首页菜单的id
loginMenus.getRobotCenter().add("robotPage");
}
if (set.contains("processCenter")) {
//看是否勾选了首页配置 121是首页菜单的id
loginMenus.getProcessCenter().add("processPage");
}
userDetail.setMenus(loginMenus);
// SysPlatformSetting platformInfo = relPlatformSettingService.getPlatformInfoByCurrentTenantId(userDetail.getTenantId());
// SysPlatformSetting newSysPlatformSetting = new SysPlatformSetting();
// BeanUtil.copyProperties(platformInfo, newSysPlatformSetting);
// newSysPlatformSetting.setDocKnowledge(0);
// userDetail.setSysPlatformSetting(newSysPlatformSetting);
// List<SysMenu> menuList = commonMapper.getMenuList(permissionTenantId);
// // 需要对menuList进行过滤
// // 根据uid查询对应角色,然后查询角色对应的菜单权限
//
// menuList.sort(Comparator.comparingInt(SysMenu::getSort));
//
// // 总库去掉部分菜单
// if ("system".equals(userDetail.getUsername())) {
// List<String> removeMenuList = Arrays.asList(removeMenus.split(","));
// int size = menuList.size();
// for (int i = 0; i < size; i++) {
// SysMenu sysMenu = menuList.get(i);
// String tempName = sysMenu.getName();
// if (removeMenuList.contains(tempName)) {
// menuList.remove(sysMenu);
// size -= 1;
// i -= 1;
// }
// }
// }
// RoleTree loginMenus = getLoginMenus(menuList);
// HashSet<String> set = new HashSet<>();
// for (SysMenu sysMenu : menuList) {
// set.add(sysMenu.getPerms());
// }
// if (set.contains("interactCenter")) {
// //看是否勾选了首页配置 121是首页菜单的id
// loginMenus.getInteractCenter().add("modelList");
// loginMenus.getInteractCenter().add("modelPage");
// }
// if (set.contains("robotCenter")) {
// //看是否勾选了首页配置 121是首页菜单的id
// loginMenus.getRobotCenter().add("robotPage");
// }
// if (set.contains("processCenter")) {
// //看是否勾选了首页配置 121是首页菜单的id
// loginMenus.getProcessCenter().add("processPage");
// }
// userDetail.setMenus(loginMenus);
redisUtils.set(token, userDetail, Long.parseLong(expireTime));
return token;
......
......@@ -3,22 +3,19 @@ package com.cmeeting.constant;
/**
* @author 王长伟
*/
public class CategoryConstant {
public interface CategoryConstant {
String ALL = "全部";
String ALL_EN = "all";
public static final String ALL = "全部";
public static final String ALL_EN = "all";
public static final String ROOT = "ROOT";
String ROOT = "ROOT";
/**
* 根父级id
*/
public static final String ROOT_ID = "0";
String ROOT_ID = "0";
/**
* 根级路径
*/
public static final String ROOT_PATH = "/";
String ROOT_PATH = "/";
}
package com.cmeeting.constant;
public interface PermissionPruposeType {
Integer ADMIN_AUTH = 0; // 超管授权纪要功能
Integer TEMPLATE_TYPE_PERMISSION = 1;//纪要类型分享
Integer TEMPLATE_PERMISSION = 2;//纪要模板分享
Integer PERSONAL_CLOSE = 3; //用户自己关闭纪要功能
/**
* 超管授权纪要功能
*/
Integer ADMIN_AUTH = 0;
/**
* 纪要类型分享
*/
Integer TEMPLATE_TYPE_PERMISSION = 1;
/**
* 纪要模板分享
*/
Integer TEMPLATE_PERMISSION = 2;
/**
* 用户自己关闭纪要功能
*/
Integer PERSONAL_CLOSE = 3;
}
......@@ -3,6 +3,13 @@ package com.cmeeting.constant;
public interface RecordTemplateConstant {
String TEMPLATE_TYPE_SYSTEM = "system";
String TEMPLATE_TYPE_CUSTOM = "custom";
String REL_TYPE_DEPT = "1";
String REL_TYPE_USER = "2";
/**
* 部门
*/
Integer REL_TYPE_DEPT = 0;
/**
* 用户
*/
Integer REL_TYPE_USER = 1;
}
package com.cmeeting.controller;
import com.azure.core.annotation.Get;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.cmeeting.constant.CategoryConstant;
import com.cmeeting.constant.PermissionPruposeType;
import com.cmeeting.pojo.ModulePermission;
import com.cmeeting.service.ModulePermissionService;
import com.cmeeting.util.R;
import com.cmeeting.vo.PermissionVO;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.validation.Valid;
@RestController
@RequestMapping("/permission")
......@@ -17,9 +21,71 @@ public class PermissionController {
@Resource
private ModulePermissionService modulePermissionService;
@PostMapping("/checkList")
public R list(@Validated @RequestBody PermissionVO.CheckList vo){
return R.ok(modulePermissionService.permissionList(vo.getSearch(), vo.getCategoryId(), vo.getUserType(), vo.getPurpose()));
/**
* 查询待选择用户接口
*
* @return 树形结构部门
*/
@PostMapping("/list")
public R list(@Validated @RequestBody PermissionVO.CheckList vo) {
return R.ok(modulePermissionService.permissionList(vo.getSearch(), vo.getCategoryId(), vo.getUserType(), vo.getPurpose(), vo.getTargetId(), null, null));
}
/**
* 已授权用户
*
* @param vo
* @return
*/
@PostMapping("/authList")
public R authList(@Validated @RequestBody PermissionVO.CheckedList vo) {
return R.ok(modulePermissionService.checkedList(vo.getSearch(), vo.getPurpose(), vo.getTargetId()));
}
/**
* 授权用户
* @param vo
* @return
*/
@PostMapping("/auth")
public R auth(@Validated @RequestBody PermissionVO.Auth vo) {
return R.ok(modulePermissionService.auth(vo.getAuthData()));
}
@PostMapping("/remove")
public R remove(@Validated PermissionVO.Add vo) {
boolean needTarget = vo.getPurpose().equals(PermissionPruposeType.TEMPLATE_TYPE_PERMISSION)
|| vo.getPurpose().equals(PermissionPruposeType.TEMPLATE_PERMISSION);
if (needTarget && vo.getTargetId() == null) {
throw new RuntimeException("param error! `purpose` equals 1 or 2, but `targetId` is null.");
}
return R.ok(modulePermissionService.remove(new LambdaQueryWrapper<ModulePermission>()
.eq(!vo.getRelId().equals(CategoryConstant.ALL_EN), ModulePermission::getType, vo.getType())
.eq(!vo.getRelId().equals(CategoryConstant.ALL_EN), ModulePermission::getUserType, vo.getUserType())
.eq(ModulePermission::getPurpose, vo.getPurpose())
.eq(!vo.getRelId().equals(CategoryConstant.ALL_EN), ModulePermission::getRelId, vo.getRelId())
.eq(vo.getTargetId() != null, ModulePermission::getTargetId, vo.getTargetId()))
);
}
/**
* 用户自己取消使用生成纪要功能列表
* @return
*/
@GetMapping("/personalCancelList")
public R personalCancelList() {
return R.ok(modulePermissionService.personalCancelList());
}
/**
* 用户自己取消使用生成纪要功能
*/
@GetMapping("/personalCancel")
public R personalCancel() {
return R.ok();
}
}
......@@ -34,5 +34,18 @@ public class PermissionCheckedDTO implements Serializable {
private String deptName;
private Boolean check = false;
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class CateOrUser{
private String id;
/**
* 0 部门 / 1 用户
*/
private Integer type;
private String name;
private String deptName;
}
}
......@@ -8,6 +8,8 @@ import java.util.Date;
/**
* 核心模块权限实体类
*
* aigc后台系统中智能体权限类
*/
@Data
@AllArgsConstructor
......
......@@ -6,7 +6,7 @@ import java.util.Date;
import lombok.Data;
/**
* 权限表
* meeting内部权限表
* @TableName module_permission
*/
@TableName(value ="module_permission")
......@@ -19,7 +19,7 @@ public class ModulePermission {
private Long id;
/**
* 类型,0-分类,1-用户
* 类型,0-分类,1-用户 RecordTemplateConstant
*/
private Integer type;
......
......@@ -16,5 +16,5 @@ import java.util.List;
public interface IShareUserService extends IService<ShareUser>{
PermissionCheckedDTO findName(String categoryId, String search, String tenantId);
PermissionCheckedDTO findName(String categoryId, String search, String tenantId, List<String> categoryList, List<String> userList);
}
......@@ -3,6 +3,7 @@ package com.cmeeting.service;
import com.cmeeting.dto.PermissionCheckedDTO;
import com.cmeeting.pojo.ModulePermission;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cmeeting.vo.PermissionVO;
import java.util.List;
......@@ -13,5 +14,12 @@ import java.util.List;
*/
public interface ModulePermissionService extends IService<ModulePermission> {
PermissionCheckedDTO permissionList(String search, String categoryId, Integer userType, Integer purpose);
PermissionCheckedDTO permissionList(String search, String categoryId, Integer userType, Integer purpose, Integer targetId, List<String> categoryList, List<String> userList);
PermissionCheckedDTO permissionList(String search, String categoryId, Integer userType, Integer purpose, List<String> categoryList, List<String> userList);
List<PermissionCheckedDTO.CateOrUser> checkedList(String search, Integer purpose, Long targetId);
Boolean auth(List<PermissionVO.Add> authData);
List<PermissionCheckedDTO.User> personalCancelList();
}
......@@ -11,9 +11,9 @@ import java.util.List;
public interface SysUserSyncService extends IService<SysUserSync> {
String getDeptPathByUserId(String userId);
PermissionCheckedDTO listByCategoryId(String categoryId, String search, String tenangId);
PermissionCheckedDTO listByCategoryId(String categoryId, String search, String tenantId, List<String> categoryList, List<String> userList);
List<PermissionCheckedDTO.User> findInUserIdsOrShareCateIds(List<String> userIds, List<String> shareCateIds, String s, String search);
List<PermissionCheckedDTO.User> findInUserIdsOrShareCateIds(List<String> userIds, List<String> shareCateIds, String tenantId, String search);
List<PermissionCheckedDTO.User> findByParam(List<String> userIds, List<String> notInCateIds, List<String> shareCateIds, String tenantId, String search, String categoryId);
}
package com.cmeeting.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cmeeting.ad.util.SecurityUtil;
import com.cmeeting.constant.CategoryConstant;
import com.cmeeting.constant.PermissionPruposeType;
import com.cmeeting.constant.RecordTemplateConstant;
import com.cmeeting.constant.UserTypeConstant;
import com.cmeeting.dto.PermissionCheckedDTO;
import com.cmeeting.pojo.ModulePermission;
......@@ -9,10 +15,14 @@ import com.cmeeting.service.IShareUserService;
import com.cmeeting.service.ModulePermissionService;
import com.cmeeting.mapper.primary.ModulePermissionMapper;
import com.cmeeting.service.SysUserSyncService;
import com.cmeeting.vo.PermissionVO;
import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @author Administrator
......@@ -29,17 +39,117 @@ public class ModulePermissionServiceImpl extends ServiceImpl<ModulePermissionMap
private IShareUserService iShareUserService;
@Override
public PermissionCheckedDTO permissionList(String search, String categoryId, Integer userType, Integer purpose) {
public PermissionCheckedDTO permissionList(String search, String categoryId, Integer userType, Integer purpose, Integer targetId, List<String> categoryIdList, List<String> userIdList) {
PermissionCheckedDTO dto = permissionList(search, categoryId, userType, purpose, categoryIdList, userIdList);
List<ModulePermission> permissions = baseMapper.selectList(new LambdaQueryWrapper<ModulePermission>()
.eq(ModulePermission::getUserType, userType)
.eq(ModulePermission::getPurpose, purpose)
.eq(targetId != null, ModulePermission::getTargetId, targetId)
.select(ModulePermission::getRelId, ModulePermission::getType)
);
if (CollUtil.isNotEmpty(permissions)) {
Set<String> deptIds = permissions.stream()
.filter(e -> e.getType().equals(RecordTemplateConstant.REL_TYPE_DEPT))
.map(ModulePermission::getRelId).collect(Collectors.toSet());
List<PermissionCheckedDTO.Category> categoryList = dto.getCategoryList();
if (CollUtil.isNotEmpty(deptIds) && CollUtil.isEmpty(categoryList)) {
for (PermissionCheckedDTO.Category category : categoryList) {
if (deptIds.contains(category.getId())) {
category.setCheck(true);
}
}
}
List<PermissionCheckedDTO.User> userList = dto.getUserList();
Set<String> userIds = permissions.stream().filter(e -> e.getType().equals(RecordTemplateConstant.REL_TYPE_USER))
.map(ModulePermission::getRelId).collect(Collectors.toSet());
if (CollUtil.isNotEmpty(userIds) && CollUtil.isEmpty(userList)) {
for (PermissionCheckedDTO.User user : userList) {
if (userIds.contains(user.getId())) {
user.setCheck(true);
}
}
}
}
return dto;
}
@Override
public PermissionCheckedDTO permissionList(String search, String categoryId, Integer userType, Integer purpose, List<String> categoryList, List<String> userList) {
PermissionCheckedDTO dto = new PermissionCheckedDTO();
if (userType != null) {
if (userType == UserTypeConstant.SYNC) {
return iSysUserSyncService.listByCategoryId(categoryId, search, SecurityUtil.getTenantId());
dto = iSysUserSyncService.listByCategoryId(categoryId, search, SecurityUtil.getTenantId(), categoryList, userList);
} else if (userType == UserTypeConstant.ADMIN) {
return iShareUserService.findName(categoryId, search, SecurityUtil.getTenantId());
dto = iShareUserService.findName(categoryId, search, SecurityUtil.getTenantId(), categoryList, userList);
}
} else {
dto = iSysUserSyncService.listByCategoryId(categoryId, search, SecurityUtil.getTenantId(), categoryList, userList);
PermissionCheckedDTO dto1 = iShareUserService.findName(categoryId, search, SecurityUtil.getTenantId(), categoryList, userList);
dto.getUserList().addAll(dto1.getUserList());
dto.getCategoryList().addAll(dto1.getCategoryList());
}
return dto;
}
@Override
public List<PermissionCheckedDTO.CateOrUser> checkedList(String search, Integer purpose, Long targetId) {
List<PermissionCheckedDTO.CateOrUser> retList = new ArrayList<>();
List<ModulePermission> modulePermissions = baseMapper.selectList(new LambdaQueryWrapper<ModulePermission>()
.eq(ModulePermission::getPurpose, purpose)
.eq(targetId != null, ModulePermission::getTargetId, targetId)
.select(ModulePermission::getRelId, ModulePermission::getType)
);
if (CollUtil.isNotEmpty(modulePermissions)) {
List<String> cateIds = modulePermissions.stream().filter(e -> Objects.equals(e.getType(), RecordTemplateConstant.REL_TYPE_DEPT)).map(ModulePermission::getRelId).collect(Collectors.toList());
List<String> userIds = modulePermissions.stream().filter(e -> Objects.equals(e.getType(), RecordTemplateConstant.REL_TYPE_USER)).map(ModulePermission::getRelId).collect(Collectors.toList());
PermissionCheckedDTO permissionCheckedDTO = permissionList(search, null, null, purpose, cateIds, userIds);
if (CollUtil.isNotEmpty(permissionCheckedDTO.getUserList())) {
for (PermissionCheckedDTO.User user : permissionCheckedDTO.getUserList()) {
PermissionCheckedDTO.CateOrUser cateOrUser = PermissionCheckedDTO.CateOrUser.builder()
.id(user.getId()).name(user.getName()).deptName(user.getDeptName()).type(RecordTemplateConstant.REL_TYPE_USER).build();
retList.add(cateOrUser);
}
}
if (CollUtil.isNotEmpty(permissionCheckedDTO.getCategoryList())) {
for (PermissionCheckedDTO.Category category : permissionCheckedDTO.getCategoryList()) {
PermissionCheckedDTO.CateOrUser cateOrUser = PermissionCheckedDTO.CateOrUser.builder()
.id(category.getId()).name(category.getName()).deptName(category.getName()).type(RecordTemplateConstant.REL_TYPE_DEPT).build();
retList.add(cateOrUser);
}
}
}
return retList;
}
@Override
public Boolean auth(List<PermissionVO.Add> authData) {
if (CollUtil.isNotEmpty(authData)) {
List<ModulePermission> list = new ArrayList<>();
for (PermissionVO.Add authDatum : authData) {
ModulePermission permission = BeanUtil.copyProperties(authDatum, ModulePermission.class);
permission.setCreateTime(new Date());
list.add(permission);
}
return this.saveBatch(list);
}
return false;
}
@Override
public List<PermissionCheckedDTO.User> personalCancelList() {
List<PermissionCheckedDTO.User> retList = new ArrayList<>();
List<ModulePermission> modulePermissions = baseMapper.selectList(new LambdaQueryWrapper<ModulePermission>()
.eq(ModulePermission::getPurpose, PermissionPruposeType.PERSONAL_CLOSE)
.select(ModulePermission::getRelId)
);
if (CollUtil.isNotEmpty(modulePermissions)) {
List<String> userIds = modulePermissions.stream().map(ModulePermission::getRelId).collect(Collectors.toList());
PermissionCheckedDTO permissionCheckedDTO = permissionList(null, null, UserTypeConstant.SYNC, PermissionPruposeType.PERSONAL_CLOSE, null, userIds);
retList = permissionCheckedDTO.getUserList();
}
return null;
return retList;
}
}
......
......@@ -43,8 +43,7 @@ public class ShareUserServiceImpl extends ServiceImpl<ShareUserMapper, ShareUser
private SysUserSyncService iSysUserSyncService;
@Override
public PermissionCheckedDTO findName(String categoryId, String search, String tenantId) {
List<String> categoryList;
public PermissionCheckedDTO findName(String categoryId, String search, String tenantId, List<String> categoryList, List<String> userList) {
PermissionCheckedDTO dto = new PermissionCheckedDTO();
List<ShareUser> shareUsers = baseMapper.selectList(new LambdaQueryWrapper<ShareUser>().eq(ShareUser::getTenantId, tenantId).select(ShareUser::getRelId, ShareUser::getType));
......@@ -74,7 +73,11 @@ public class ShareUserServiceImpl extends ServiceImpl<ShareUserMapper, ShareUser
}
}
List<String> shareCateIds = cateList.stream().map(SysUserSyncCategory::getDeptId).collect(Collectors.toList());
categoryList = shareCateIds;
if (categoryList != null) {
categoryList.addAll(shareCateIds);
} else {
categoryList = shareCateIds;
}
List<String> noExitParentIds = new ArrayList<>();
List<String> childrenDeptIds = new ArrayList<>();
......@@ -117,7 +120,6 @@ public class ShareUserServiceImpl extends ServiceImpl<ShareUserMapper, ShareUser
}
dto.setCategoryList(cates);
List<PermissionCheckedDTO.User> users = new ArrayList<>();
//所有直接分享的用户
List<String> userIds = shareUsers.stream().filter(e -> e.getType() == 1).map(ShareUser::getRelId).collect(Collectors.toList());
......
......@@ -58,7 +58,7 @@ public class SysUserSyncServiceImpl extends ServiceImpl<SysUserSysMapper, SysUse
@Override
public PermissionCheckedDTO listByCategoryId(String categoryId, String search, String tenantId) {
public PermissionCheckedDTO listByCategoryId(String categoryId, String search, String tenantId, List<String> categoryList, List<String> userList) {
PermissionCheckedDTO dto = new PermissionCheckedDTO();
// 顶层分类查询所有parentId不存在的分类及用户
List<String> noExitParentIds = new ArrayList<>();
......@@ -85,6 +85,7 @@ public class SysUserSyncServiceImpl extends ServiceImpl<SysUserSysMapper, SysUse
.in(StrUtil.isBlank(search) && CategoryConstant.ROOT.equals(categoryId) && CollUtil.isNotEmpty(noExitParentIds), SysUserSyncCategory::getDeptId, noExitParentIds)
.eq(StrUtil.isBlank(search) && StrUtil.isNotBlank(categoryId) && !CategoryConstant.ROOT.equals(categoryId), SysUserSyncCategory::getParentId, categoryId)
.like(StrUtil.isNotBlank(search), SysUserSyncCategory::getName, search)
.in(CollUtil.isNotEmpty(categoryList), SysUserSyncCategory::getDeptId, categoryList) // 指定分类
.select(SysUserSyncCategory::getDeptId, SysUserSyncCategory::getName));
List<PermissionCheckedDTO.Category> cates = new ArrayList<>();
......@@ -105,7 +106,6 @@ public class SysUserSyncServiceImpl extends ServiceImpl<SysUserSysMapper, SysUse
users = baseMapper.findName(childrenDeptIds, null, search, tenantId, null);
}
} else {
List<String> userList = new ArrayList<>();
List<String> deptIds = categories.stream().map(SysUserSyncCategory::getDeptId).collect(Collectors.toList());
if (CategoryConstant.ROOT_ID.equals(categoryId)) {
List<SysUserSync> sysUserSyncList = this.list(new LambdaQueryWrapper<SysUserSync>()
......
package com.cmeeting.vo;
import com.cmeeting.pojo.ModulePermission;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.jetbrains.annotations.NotNull;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@Data
public class PermissionVO {
......@@ -25,6 +28,7 @@ public class PermissionVO {
private Integer purpose;
@NotNull
private Integer userType;
private Integer targetId;
}
......@@ -34,12 +38,59 @@ public class PermissionVO {
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class List {
public static class CheckedList {
/**
* purpose为0/3时为空,为1时是纪要类型id,2时纪要模板id
*/
private Long targetId;
private String search;
/**
* 0-授权纪要功能,1-纪要类型分享,2-纪要模板分享,3-用户自己关闭纪要功能
*/
@NotNull
private Integer purpose;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class Auth {
@NotEmpty(message = "param ids cant be null!")
private List<Add> authData;
}
@Data
public static class Add {
/**
* 类型,0-分类,1-用户
*/
@NotNull
private Integer type;
/**
* 用户类型,2-通讯录,3-超管分享
*/
@NotNull
private Integer userType;
/**
* 0-授权纪要功能,1-纪要类型分享,2-纪要模板分享,3-用户自己关闭纪要功能
*/
@NotNull
private Integer purpose;
/**
* 关联id(分类id或用户id) 为all时 表示所有人授权/清空所有权限
*/
@NotNull
private String relId;
/**
* purpose为0/3时为空,为1时是纪要类型id,2时纪要模板id
*/
private Long targetId;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论