提交 b44968b6 作者: 洪东保

模板页面list接口

父级 7c7a46d8
package com.cmeeting.constant;
public interface AuthTypeConstant {
/**
* 不自动授权
*/
Integer NO_AUTH = 0;
/**
* 授权给所有人
*/
Integer ALL = 1;
/**
* 授权选择的人
*/
Integer SELECT = 2;
}
...@@ -72,6 +72,8 @@ public interface MeetingRecordTemplateMapper extends BaseMapper<MeetingRecordTem ...@@ -72,6 +72,8 @@ public interface MeetingRecordTemplateMapper extends BaseMapper<MeetingRecordTem
*/ */
List<MeetTypeDto> selectTemplate(String type); List<MeetTypeDto> selectTemplate(String type);
List<MeetTypeDto> selectCustomTemplate(String userId);
/** /**
* 停用系统模板 * 停用系统模板
* @param meetTypeId * @param meetTypeId
......
package com.cmeeting.service.impl; package com.cmeeting.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
...@@ -11,8 +12,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -11,8 +12,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cmeeting.ad.entity.RobotSecurityUser; import com.cmeeting.ad.entity.RobotSecurityUser;
import com.cmeeting.ad.entity.SysUserSync; import com.cmeeting.ad.entity.SysUserSync;
import com.cmeeting.ad.util.SecurityUtil; import com.cmeeting.ad.util.SecurityUtil;
import com.cmeeting.constant.AuthTypeConstant;
import com.cmeeting.constant.CommonConstant; import com.cmeeting.constant.CommonConstant;
import com.cmeeting.constant.MeetingTypeConstant; import com.cmeeting.constant.MeetingTypeConstant;
import com.cmeeting.constant.PermissionPruposeType;
import com.cmeeting.constant.RecordTemplateConstant; import com.cmeeting.constant.RecordTemplateConstant;
import com.cmeeting.dto.MeetTypeDto; import com.cmeeting.dto.MeetTypeDto;
import com.cmeeting.dto.RecordTemplateDto; import com.cmeeting.dto.RecordTemplateDto;
...@@ -22,6 +25,7 @@ import com.cmeeting.mapper.primary.*; ...@@ -22,6 +25,7 @@ import com.cmeeting.mapper.primary.*;
import com.cmeeting.mapper.secondary.SysUserSysMapper; import com.cmeeting.mapper.secondary.SysUserSysMapper;
import com.cmeeting.pojo.*; import com.cmeeting.pojo.*;
import com.cmeeting.service.MeetingRecordTemplateService; import com.cmeeting.service.MeetingRecordTemplateService;
import com.cmeeting.service.ModulePermissionService;
import com.cmeeting.service.SysUserSyncService; import com.cmeeting.service.SysUserSyncService;
import com.cmeeting.util.MinioUtils; import com.cmeeting.util.MinioUtils;
import com.cmeeting.vo.EditRecordTemplateVo; import com.cmeeting.vo.EditRecordTemplateVo;
...@@ -54,6 +58,8 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -54,6 +58,8 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
@Autowired @Autowired
private MeetTemplateEnableMapper meetTemplateEnableMapper; private MeetTemplateEnableMapper meetTemplateEnableMapper;
@Resource @Resource
private ModulePermissionService modulePermissionService;
@Resource
private SysUserSyncService sysUserSyncService; private SysUserSyncService sysUserSyncService;
@Value(value = "${permission.tenantId}") @Value(value = "${permission.tenantId}")
private String permissionTenantId; private String permissionTenantId;
...@@ -73,34 +79,34 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -73,34 +79,34 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
Integer size = vo.getSize(); Integer size = vo.getSize();
//查出所有系统模板 //查出所有系统模板
LambdaQueryWrapper<MeetingRecordTemplate> systemQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<MeetingRecordTemplate> systemQueryWrapper = new LambdaQueryWrapper<>();
systemQueryWrapper.eq(MeetingRecordTemplate::getIsDel,Boolean.FALSE); systemQueryWrapper.eq(MeetingRecordTemplate::getIsDel, Boolean.FALSE);
systemQueryWrapper.eq(MeetingRecordTemplate::getType,RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM); systemQueryWrapper.eq(MeetingRecordTemplate::getType, RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM);
systemQueryWrapper.like(vo.getName() != null,MeetingRecordTemplate::getName,vo.getName()); systemQueryWrapper.like(vo.getName() != null, MeetingRecordTemplate::getName, vo.getName());
systemQueryWrapper.like(vo.getMeetingType() != null,MeetingRecordTemplate::getMeetingType,vo.getMeetingType()); systemQueryWrapper.like(vo.getMeetingType() != null, MeetingRecordTemplate::getMeetingType, vo.getMeetingType());
systemQueryWrapper.like(StringUtils.isNotEmpty(vo.getCreateUser()),MeetingRecordTemplate::getCreateUserName,vo.getCreateUser()); systemQueryWrapper.like(StringUtils.isNotEmpty(vo.getCreateUser()), MeetingRecordTemplate::getCreateUserName, vo.getCreateUser());
systemQueryWrapper.between(vo.getStartTime() != null && vo.getEndTime() != null,MeetingRecordTemplate::getUpdateTime,vo.getStartTime(),vo.getEndTime()); systemQueryWrapper.between(vo.getStartTime() != null && vo.getEndTime() != null, MeetingRecordTemplate::getUpdateTime, vo.getStartTime(), vo.getEndTime());
systemQueryWrapper.orderByDesc(MeetingRecordTemplate::getId); systemQueryWrapper.orderByDesc(MeetingRecordTemplate::getId);
List<MeetingRecordTemplate> systemTemplateList = baseMapper.selectList(systemQueryWrapper); List<MeetingRecordTemplate> systemTemplateList = baseMapper.selectList(systemQueryWrapper);
//用户可见的系统模板权限 //用户可见的系统模板权限
List<MeetingRecordTemplate> authorizedSystemTemplateList = new ArrayList<>(); List<MeetingRecordTemplate> authorizedSystemTemplateList = new ArrayList<>();
Map<Integer, List<String>> authorizedUserMap = selectAuthorizedUsers().stream().collect(Collectors.toMap(item -> item.getRecordTemplateId(), item -> item.getUserIdList())); Map<Integer, List<String>> authorizedUserMap = selectAuthorizedUsers().stream().collect(Collectors.toMap(item -> item.getRecordTemplateId(), item -> item.getUserIdList()));
for (MeetingRecordTemplate systemTemplate : systemTemplateList) { for (MeetingRecordTemplate systemTemplate : systemTemplateList) {
if(authorizedUserMap.containsKey(systemTemplate.getId())){ if (authorizedUserMap.containsKey(systemTemplate.getId())) {
List<String> authorizedUserIds = authorizedUserMap.get(systemTemplate.getId()); List<String> authorizedUserIds = authorizedUserMap.get(systemTemplate.getId());
if(authorizedUserIds.contains(user.getId())) if (authorizedUserIds.contains(user.getId()))
authorizedSystemTemplateList.add(systemTemplate); authorizedSystemTemplateList.add(systemTemplate);
} }
} }
//查出用户个人的自定义模板 //查出用户个人的自定义模板
LambdaQueryWrapper<MeetingRecordTemplate> customQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<MeetingRecordTemplate> customQueryWrapper = new LambdaQueryWrapper<>();
customQueryWrapper.eq(MeetingRecordTemplate::getIsDel,Boolean.FALSE); customQueryWrapper.eq(MeetingRecordTemplate::getIsDel, Boolean.FALSE);
customQueryWrapper.eq(MeetingRecordTemplate::getType,RecordTemplateConstant.TEMPLATE_TYPE_CUSTOM); customQueryWrapper.eq(MeetingRecordTemplate::getType, RecordTemplateConstant.TEMPLATE_TYPE_CUSTOM);
customQueryWrapper.eq(MeetingRecordTemplate::getCreateUser, user.getId()); customQueryWrapper.eq(MeetingRecordTemplate::getCreateUser, user.getId());
customQueryWrapper.like(vo.getName() != null,MeetingRecordTemplate::getName,vo.getName()); customQueryWrapper.like(vo.getName() != null, MeetingRecordTemplate::getName, vo.getName());
customQueryWrapper.like(vo.getMeetingType() != null,MeetingRecordTemplate::getMeetingType,vo.getMeetingType()); customQueryWrapper.like(vo.getMeetingType() != null, MeetingRecordTemplate::getMeetingType, vo.getMeetingType());
customQueryWrapper.like(StringUtils.isNotEmpty(vo.getCreateUser()),MeetingRecordTemplate::getCreateUserName,vo.getCreateUser()); customQueryWrapper.like(StringUtils.isNotEmpty(vo.getCreateUser()), MeetingRecordTemplate::getCreateUserName, vo.getCreateUser());
customQueryWrapper.between(vo.getStartTime() != null && vo.getEndTime() != null,MeetingRecordTemplate::getUpdateTime,vo.getStartTime(),vo.getEndTime()); customQueryWrapper.between(vo.getStartTime() != null && vo.getEndTime() != null, MeetingRecordTemplate::getUpdateTime, vo.getStartTime(), vo.getEndTime());
customQueryWrapper.orderByDesc(MeetingRecordTemplate::getId); customQueryWrapper.orderByDesc(MeetingRecordTemplate::getId);
List<MeetingRecordTemplate> customTemplateList = baseMapper.selectList(customQueryWrapper); List<MeetingRecordTemplate> customTemplateList = baseMapper.selectList(customQueryWrapper);
...@@ -108,7 +114,7 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -108,7 +114,7 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
resultList.addAll(authorizedSystemTemplateList); resultList.addAll(authorizedSystemTemplateList);
resultList.addAll(customTemplateList); resultList.addAll(customTemplateList);
List<MeetingRecordTemplate> records = getUsersByOffset(resultList, current, size); List<MeetingRecordTemplate> records = getUsersByOffset(resultList, current, size);
if(!CollectionUtils.isEmpty(records)){ if (!CollectionUtils.isEmpty(records)) {
List<SysUserSync> simpleUserList = sysUserSysMapper.getSimpleUserList(user.getTenantId()); List<SysUserSync> simpleUserList = sysUserSysMapper.getSimpleUserList(user.getTenantId());
Map<String, String> simpleUserMap = CollectionUtils.isEmpty(simpleUserList) Map<String, String> simpleUserMap = CollectionUtils.isEmpty(simpleUserList)
? new HashMap<>() : simpleUserList.stream().collect(Collectors.toMap(SysUserSync::getUserId, SysUserSync::getName)); ? new HashMap<>() : simpleUserList.stream().collect(Collectors.toMap(SysUserSync::getUserId, SysUserSync::getName));
...@@ -127,6 +133,7 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -127,6 +133,7 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
/** /**
* 上传附件模板到minio * 上传附件模板到minio
*
* @param file * @param file
* @param id * @param id
* @return * @return
...@@ -145,9 +152,9 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -145,9 +152,9 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
String uuid = IdUtil.fastSimpleUUID(); String uuid = IdUtil.fastSimpleUUID();
String originalFilePath = separator + nowDate + separator + uuid + point + originalSuffix; String originalFilePath = separator + nowDate + separator + uuid + point + originalSuffix;
// 获取文件流 // 获取文件流
try(InputStream is = file.getInputStream()){ try (InputStream is = file.getInputStream()) {
minioUtils.upload(originalFilePath,is); minioUtils.upload(originalFilePath, is);
}catch (Exception e){ } catch (Exception e) {
throw new RuntimeException(e.getMessage()); throw new RuntimeException(e.getMessage());
} }
detail.setTemplate(originalFilePath); detail.setTemplate(originalFilePath);
...@@ -157,6 +164,7 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -157,6 +164,7 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
/** /**
* 获取模板授权的人员 * 获取模板授权的人员
*
* @return * @return
*/ */
@Override @Override
...@@ -177,19 +185,19 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -177,19 +185,19 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
List<RecordTemplatePermission> userPermissions = permissions.stream().filter(item -> "2".equals(item.getRelType()) && template.getId().equals(item.getTemplateId())).collect(Collectors.toList()); List<RecordTemplatePermission> userPermissions = permissions.stream().filter(item -> "2".equals(item.getRelType()) && template.getId().equals(item.getTemplateId())).collect(Collectors.toList());
List<String> authorizedUsers = new ArrayList<>(); List<String> authorizedUsers = new ArrayList<>();
if(!CollectionUtils.isEmpty(userPermissions)){ if (!CollectionUtils.isEmpty(userPermissions)) {
for (RecordTemplatePermission userPermission : userPermissions) { for (RecordTemplatePermission userPermission : userPermissions) {
authorizedUsers.add(userPermission.getRelId()); authorizedUsers.add(userPermission.getRelId());
} }
} }
if(!CollectionUtils.isEmpty(deptPermissions)){ if (!CollectionUtils.isEmpty(deptPermissions)) {
List<String> deptPath = new ArrayList<>(); List<String> deptPath = new ArrayList<>();
for (RecordTemplatePermission deptPermission : deptPermissions) { for (RecordTemplatePermission deptPermission : deptPermissions) {
String deptId = deptPermission.getRelId(); String deptId = deptPermission.getRelId();
getDeptPath(deptPath,deptId,permissionTenantId); getDeptPath(deptPath, deptId, permissionTenantId);
} }
List<String> usersByDept = sysUserSysMapper.getUsersByDept(deptPath,permissionTenantId); List<String> usersByDept = sysUserSysMapper.getUsersByDept(deptPath, permissionTenantId);
if(!CollectionUtils.isEmpty(usersByDept)) if (!CollectionUtils.isEmpty(usersByDept))
authorizedUsers.addAll(usersByDept); authorizedUsers.addAll(usersByDept);
} }
resultItem.setUserIdList(authorizedUsers); resultItem.setUserIdList(authorizedUsers);
...@@ -203,21 +211,21 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -203,21 +211,21 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
RobotSecurityUser user = SecurityUtil.getUser(); RobotSecurityUser user = SecurityUtil.getUser();
//查出所有系统模板 //查出所有系统模板
LambdaQueryWrapper<MeetingRecordTemplate> systemQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<MeetingRecordTemplate> systemQueryWrapper = new LambdaQueryWrapper<>();
systemQueryWrapper.eq(MeetingRecordTemplate::getIsDel,Boolean.FALSE); systemQueryWrapper.eq(MeetingRecordTemplate::getIsDel, Boolean.FALSE);
systemQueryWrapper.eq(MeetingRecordTemplate::getType,RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM); systemQueryWrapper.eq(MeetingRecordTemplate::getType, RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM);
systemQueryWrapper.like(vo.getName() != null,MeetingRecordTemplate::getName,vo.getName()); systemQueryWrapper.like(vo.getName() != null, MeetingRecordTemplate::getName, vo.getName());
systemQueryWrapper.like(vo.getMeetingType() != null,MeetingRecordTemplate::getMeetingType,vo.getMeetingType()); systemQueryWrapper.like(vo.getMeetingType() != null, MeetingRecordTemplate::getMeetingType, vo.getMeetingType());
systemQueryWrapper.orderByDesc(MeetingRecordTemplate::getId); systemQueryWrapper.orderByDesc(MeetingRecordTemplate::getId);
List<MeetingRecordTemplate> systemTemplateList = baseMapper.selectList(systemQueryWrapper); List<MeetingRecordTemplate> systemTemplateList = baseMapper.selectList(systemQueryWrapper);
if(CollectionUtils.isEmpty(systemTemplateList)) return new ArrayList<>(); if (CollectionUtils.isEmpty(systemTemplateList)) return new ArrayList<>();
//用户可见的系统模板权限 //用户可见的系统模板权限
List<MeetingRecordTemplate> records = new ArrayList<>(); List<MeetingRecordTemplate> records = new ArrayList<>();
//查出所有系统模板授权人员信息 //查出所有系统模板授权人员信息
List<RecordTemplatePermission> userPermissions = permissionMapper.selectList(new LambdaQueryWrapper<RecordTemplatePermission>() List<RecordTemplatePermission> userPermissions = permissionMapper.selectList(new LambdaQueryWrapper<RecordTemplatePermission>()
.eq(RecordTemplatePermission::getTemplateType, RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM) .eq(RecordTemplatePermission::getTemplateType, RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM)
.eq(RecordTemplatePermission::getRelId,user.getId()) .eq(RecordTemplatePermission::getRelId, user.getId())
.eq(RecordTemplatePermission::getRelType,RecordTemplateConstant.REL_TYPE_USER) .eq(RecordTemplatePermission::getRelType, RecordTemplateConstant.REL_TYPE_USER)
); );
//当前登录人员被直接授权的模板 //当前登录人员被直接授权的模板
List<Integer> templateIdsAccepted = CollectionUtils.isEmpty(userPermissions) List<Integer> templateIdsAccepted = CollectionUtils.isEmpty(userPermissions)
...@@ -226,17 +234,17 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -226,17 +234,17 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
//查出所有系统模板授权部门信息 //查出所有系统模板授权部门信息
List<RecordTemplatePermission> deptPermissions = permissionMapper.selectList(new LambdaQueryWrapper<RecordTemplatePermission>() List<RecordTemplatePermission> deptPermissions = permissionMapper.selectList(new LambdaQueryWrapper<RecordTemplatePermission>()
.eq(RecordTemplatePermission::getTemplateType, RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM) .eq(RecordTemplatePermission::getTemplateType, RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM)
.eq(RecordTemplatePermission::getRelId,user.getId()) .eq(RecordTemplatePermission::getRelId, user.getId())
.eq(RecordTemplatePermission::getRelType,RecordTemplateConstant.REL_TYPE_DEPT)); .eq(RecordTemplatePermission::getRelType, RecordTemplateConstant.REL_TYPE_DEPT));
//查出当前登录人的部门向上路径 //查出当前登录人的部门向上路径
String deptPathByUser = sysUserSyncService.getDeptPathByUserId(user.getId()); String deptPathByUser = sysUserSyncService.getDeptPathByUserId(user.getId());
if(StringUtils.isNotEmpty(deptPathByUser) && !CollectionUtils.isEmpty(deptPermissions)){ if (StringUtils.isNotEmpty(deptPathByUser) && !CollectionUtils.isEmpty(deptPermissions)) {
List<Integer> templateIdsDeptAccepted = deptPermissions.stream().filter(item -> deptPathByUser.contains(item.getRelId())) List<Integer> templateIdsDeptAccepted = deptPermissions.stream().filter(item -> deptPathByUser.contains(item.getRelId()))
.map(RecordTemplatePermission::getTemplateId).collect(Collectors.toList()); .map(RecordTemplatePermission::getTemplateId).collect(Collectors.toList());
if(!CollectionUtils.isEmpty(templateIdsDeptAccepted)) templateIdsAccepted.addAll(templateIdsDeptAccepted); if (!CollectionUtils.isEmpty(templateIdsDeptAccepted)) templateIdsAccepted.addAll(templateIdsDeptAccepted);
} }
for (MeetingRecordTemplate template : systemTemplateList) { for (MeetingRecordTemplate template : systemTemplateList) {
if(templateIdsAccepted.contains(template.getId())){ if (templateIdsAccepted.contains(template.getId())) {
records.add(template); records.add(template);
} }
} }
...@@ -283,9 +291,9 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -283,9 +291,9 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
} }
/** /**
* 更新模板 * 更新模板
*
* @param recordTemplateVo 模板参数 * @param recordTemplateVo 模板参数
*/ */
@Override @Override
...@@ -417,105 +425,48 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -417,105 +425,48 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
if (role.equals(RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM)) { if (role.equals(RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM)) {
return baseMapper.selectTemplate(RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM); return baseMapper.selectTemplate(RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM);
} }
List<MeetTypeDto> meetTypeDtos = baseMapper.selectCustomTemplate(userId);
List<ModulePermission> permissions = modulePermissionService.list(new LambdaQueryWrapper<ModulePermission>()
.and(e -> e.eq(ModulePermission::getPurpose, PermissionPruposeType.TEMPLATE_TYPE_PERMISSION)
.or().eq(ModulePermission::getPurpose, PermissionPruposeType.TEMPLATE_PERMISSION)
).and(e -> e.eq(ModulePermission::getType, RecordTemplateConstant.REL_TYPE_USER).eq(ModulePermission::getRelId, userId)
.or().eq(ModulePermission::getType, RecordTemplateConstant.REL_TYPE_DEPT).in(ModulePermission::getRelId, parentDeptIdList))
.select(ModulePermission::getTargetId, ModulePermission::getPurpose)
);
Set<Long> typeIds = permissions.stream().filter(e -> e.getPurpose().equals(PermissionPruposeType.TEMPLATE_TYPE_PERMISSION)).map(ModulePermission::getTargetId).collect(Collectors.toSet());
Set<Long> ids = permissions.stream().filter(e -> e.getPurpose().equals(PermissionPruposeType.TEMPLATE_PERMISSION)).map(ModulePermission::getTargetId).collect(Collectors.toSet());
meetTypeDtos.forEach(meetTypeDto -> {
if (meetTypeDto.getId() != 1) {
// 查询指定授权的模板 - 从会议类型维度查询 Integer authType = meetTypeDto.getAuthType();
List<MeetTypeDto> permissionTmplInMeetTypeDtoList = baseMapper.selectPermissionTmplInMeetType(userId, parentDeptIdList); if (AuthTypeConstant.NO_AUTH.equals(authType)) {
permissionTmplInMeetTypeDtoList.stream().forEach(meetTypeDto -> { meetTypeDto.getRecordTemplateDTOList().removeIf(template -> template.getType().equals(RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM) && !ids.contains(template.getId()));
meetTypeDto.getRecordTemplateDTOList().removeIf(template -> ObjectUtils.isEmpty(template.getId())); } else if (AuthTypeConstant.SELECT.equals(authType)) {
}); meetTypeDto.getRecordTemplateDTOList().removeIf(template ->
template.getType().equals(RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM) && !typeIds.contains(meetTypeDto.getId()) && !ids.contains(template.getId()));
// 查询指定授权的模板 - 从纪要模板维度查询
List<MeetTypeDto> permissionDeptTmplDtoList = baseMapper.selectPermissionTmpl(userId, parentDeptIdList);
permissionDeptTmplDtoList.stream().forEach(meetTypeDto -> {
meetTypeDto.getRecordTemplateDTOList().removeIf(template -> ObjectUtils.isEmpty(template.getId()));
});
// 合并 permissionDeptTmplDtoList 到 permissionTmplInMeetTypeDtoList
for (MeetTypeDto deptDto : permissionDeptTmplDtoList) {
boolean exists = false;
for (MeetTypeDto typeDto : permissionTmplInMeetTypeDtoList) {
if (typeDto.getId().equals(deptDto.getId())) {
exists = true;
// 合并 recordTemplateDTOList
Map<Long, RecordTemplateDto> templateMap = new HashMap<>();
typeDto.getRecordTemplateDTOList().forEach(t -> templateMap.put(t.getId(), t));
deptDto.getRecordTemplateDTOList().forEach(t -> templateMap.putIfAbsent(t.getId(), t));
typeDto.setRecordTemplateDTOList(new ArrayList<>(templateMap.values()));
break;
}
}
if (!exists) {
permissionTmplInMeetTypeDtoList.add(deptDto);
}
}
// 获取非授权的模板,包括系统通用并启用的和自己创建的
MeetTypeDto enabledSystemTemplate = baseMapper.selectEnabledSystemTemplate();
List<MeetTypeDto> recordTemplateDtoList = baseMapper.selectAllTmplWithoutPermission(enabledSystemTemplate.getId(), userId);
recordTemplateDtoList.add(enabledSystemTemplate);
recordTemplateDtoList.stream().forEach(meetTypeDto -> {
meetTypeDto.getRecordTemplateDTOList().removeIf(template -> ObjectUtils.isEmpty(template.getId()));
});
// 合并 recordTemplateDtoList 到 permissionTmplInMeetTypeDtoList
for (MeetTypeDto deptDto : recordTemplateDtoList) {
boolean exists = false;
for (MeetTypeDto typeDto : permissionTmplInMeetTypeDtoList) {
if (typeDto.getId().equals(deptDto.getId())) {
exists = true;
// 合并 recordTemplateDTOList
Map<Long, RecordTemplateDto> templateMap = new HashMap<>();
typeDto.getRecordTemplateDTOList().forEach(t -> templateMap.put(t.getId(), t));
deptDto.getRecordTemplateDTOList().forEach(t -> templateMap.putIfAbsent(t.getId(), t));
typeDto.setRecordTemplateDTOList(new ArrayList<>(templateMap.values()));
break;
}
}
if (!exists) {
permissionTmplInMeetTypeDtoList.add(deptDto);
} }
} }
permissionTmplInMeetTypeDtoList.forEach(meetTypeDto -> {
boolean systemType = meetTypeDto.getRecordTemplateDTOList().stream()
.anyMatch(template -> RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM.equals(template.getType()));
if (systemType) {
// meetTypeDto.setType(MeetingTypeConstant.TYPE_SYSTEM);
} else {
// meetTypeDto.setType(MeetingTypeConstant.TYPE_CUSTOM);
}
}); });
// 对纪要模板排序 return meetTypeDtos;
for (MeetTypeDto meetTypeDto : permissionTmplInMeetTypeDtoList) {
meetTypeDto.getRecordTemplateDTOList().sort(Comparator.comparing(RecordTemplateDto::getCreateTime));
}
boolean isAdmin = RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM.equals(role);
if (!isAdmin) {
// MeetTypeDto dto1 = permissionTmplInMeetTypeDtoList.stream().filter(dto -> dto.getType().equals(MeetingTypeConstant.TYPE_SYSTEM)).findFirst().get();
// dto1.getRecordTemplateDTOList().removeIf(template -> !template.getEnable());
}
return permissionTmplInMeetTypeDtoList;
} }
/** /**
* 获取部门的路径 * 获取部门的路径
*
* @param deptPath * @param deptPath
* @param deptId * @param deptId
*/ */
private void getDeptPath(List<String> deptPath, String deptId, String tenantId) { private void getDeptPath(List<String> deptPath, String deptId, String tenantId) {
if(!deptPath.contains(deptId)) deptPath.add(deptId); if (!deptPath.contains(deptId)) deptPath.add(deptId);
List<String> subDeptIds = sysUserSysMapper.getSubDeptId(deptId,tenantId); List<String> subDeptIds = sysUserSysMapper.getSubDeptId(deptId, tenantId);
if(CollectionUtils.isEmpty(subDeptIds)) return; if (CollectionUtils.isEmpty(subDeptIds)) return;
for (String subDeptId : subDeptIds) { for (String subDeptId : subDeptIds) {
//部门id去重 //部门id去重
if(!deptPath.contains(subDeptId)){ if (!deptPath.contains(subDeptId)) {
deptPath.add(subDeptId); deptPath.add(subDeptId);
getDeptPath(deptPath,subDeptId,tenantId); getDeptPath(deptPath, subDeptId, tenantId);
} }
} }
...@@ -523,6 +474,7 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -523,6 +474,7 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
/** /**
* 手动分页,偏移取每一页数据 * 手动分页,偏移取每一页数据
*
* @param list * @param list
* @param current * @param current
* @param size * @param size
......
...@@ -272,6 +272,31 @@ ...@@ -272,6 +272,31 @@
where t1.is_del = 0 where t1.is_del = 0
</select> </select>
<select id="selectCustomTemplate" resultMap="meetTypeWithRecordsMap">
select t1.id as type_id,
t1.name as type_name,
t1.personal_permission,
t1.auth_type,
t1.rel_id as rel_type_id,
t1.content as type_content,
t1.create_time as type_create_time,
t1.create_user as type_create_user,
t2.id as temp_id,
t2.name as template_name,
t2.type,
t2.type_detail,
t2.prompt,
t2.refer_template_id,
t2.create_user as template_create_user,
t2.create_time as template_create_time,
if(t1.id != 1 and t3.id is null, 0, 1) as `enable`
from meet_type t1
left join cmt_meeting_record_template t2 on t2.meeting_type = t1.id and t2.is_del = 0
and ((t2.type = 'system' and t2.enable = 1) or (t2.type = 'custom' and t2.create_user = #{userId}))
left join meet_template_enable t3 on t3.rel_id = t2.id and t3.user_id = #{userId}
where t1.is_del = 0
</select>
<update id="enableSystemTemplate"> <update id="enableSystemTemplate">
update update
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论