提交 d902da8e 作者: 张开石

1、添加获取会议纪要模板下拉框接口

2、sysUserSyncService添加根据userId向上获取部门集合的方法
父级 89a45de2
...@@ -2,6 +2,7 @@ package com.cmeeting.controller; ...@@ -2,6 +2,7 @@ package com.cmeeting.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cmeeting.constant.RecordTemplateConstant; import com.cmeeting.constant.RecordTemplateConstant;
import com.cmeeting.dto.RecordTemplateDto;
import com.cmeeting.pojo.MeetingRecordTemplate; import com.cmeeting.pojo.MeetingRecordTemplate;
import com.cmeeting.service.MeetingRecordTemplateService; import com.cmeeting.service.MeetingRecordTemplateService;
import com.cmeeting.service.RecordTemplatePermissionService; import com.cmeeting.service.RecordTemplatePermissionService;
...@@ -77,6 +78,16 @@ public class RecordTemplateController { ...@@ -77,6 +78,16 @@ public class RecordTemplateController {
} }
/** /**
* 获取会议模板下拉框,有权限控制
* @return
*/
@GetMapping("/select")
public R select() {
List<RecordTemplateDto> recordTemplateDtoList =recordTemplateService.getTemplateSelect();
return R.ok(recordTemplateDtoList);
}
/**
* 纪要模板列表,通过type区分为系统模板还是自定义模板 * 纪要模板列表,通过type区分为系统模板还是自定义模板
* @param vo * @param vo
* @return * @return
......
package com.cmeeting.dto; package com.cmeeting.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -29,24 +27,5 @@ public class MeetTypeDto { ...@@ -29,24 +27,5 @@ public class MeetTypeDto {
// 类型描述的内容 // 类型描述的内容
private String content; private String content;
// 会议模板 // 会议模板
private List<RecordTemplateDTO> recordTemplateDTOList; private List<RecordTemplateDto> recordTemplateDTOList;
}
@Data
class RecordTemplateDTO {
// 模板id
private Long id;
// 模板名称
private String name;
// 模板描述
private String typeDetail;
// 生成模板的提示词
private String prompt;
// 引用(参考)模板id
private Long referTemplateId;
// 模板创建时间,格式:yyyy-MM-dd HH:mm:ss
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
// 是否启用
private Boolean enable;
} }
\ No newline at end of file
package com.cmeeting.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class RecordTemplateDto {
// 模板id
private Long id;
// 模板名称
private String name;
// 模板描述
private String typeDetail;
// 生成模板的提示词
private String prompt;
// 引用(参考)模板id
private Long referTemplateId;
// 模板创建时间,格式:yyyy-MM-dd HH:mm:ss
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
// 是否启用
private Boolean enable;
}
\ No newline at end of file
package com.cmeeting.mapper.primary; package com.cmeeting.mapper.primary;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cmeeting.dto.RecordTemplateDto;
import com.cmeeting.pojo.MeetingRecordTemplate; import com.cmeeting.pojo.MeetingRecordTemplate;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
...@@ -11,4 +13,25 @@ import java.util.List; ...@@ -11,4 +13,25 @@ import java.util.List;
public interface MeetingRecordTemplateMapper extends BaseMapper<MeetingRecordTemplate> { public interface MeetingRecordTemplateMapper extends BaseMapper<MeetingRecordTemplate> {
List<MeetingRecordTemplate> getAuthorizedSystemTemplate(); List<MeetingRecordTemplate> getAuthorizedSystemTemplate();
/**
* 查询授权的模板-会议类型维度
* @return
*/
List<RecordTemplateDto> selectPermissionTmplInMeetType(@Param("userId") String userId,
@Param("deptIdList") List<String> deptIdList);
/**
* 获取指定授权的模板-纪要模板维度
* @return
*/
List<RecordTemplateDto> selectPermissionTmpl(@Param("userId") String userId,
@Param("deptIdList") List<String> deptIdList);
/**
* 获取非授权的模板,包括系统通用的和自己创建的
* @param userId
* @return
*/
List<RecordTemplateDto> selectAllTmplWithoutPermission(String userId);
} }
\ No newline at end of file
...@@ -8,6 +8,7 @@ import lombok.experimental.Accessors; ...@@ -8,6 +8,7 @@ import lombok.experimental.Accessors;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* 外接系统部门表(SysUserSyncCategory)实体类 * 外接系统部门表(SysUserSyncCategory)实体类
...@@ -70,4 +71,6 @@ public class SysUserSyncCategory implements Serializable { ...@@ -70,4 +71,6 @@ public class SysUserSyncCategory implements Serializable {
*/ */
private String tenantId; private String tenantId;
@TableField(exist = false)
private List<SysUserSyncCategory> children;
} }
...@@ -2,6 +2,7 @@ package com.cmeeting.service; ...@@ -2,6 +2,7 @@ package com.cmeeting.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.cmeeting.dto.RecordTemplateDto;
import com.cmeeting.dto.UserDTO; import com.cmeeting.dto.UserDTO;
import com.cmeeting.pojo.MeetingRecordTemplate; import com.cmeeting.pojo.MeetingRecordTemplate;
import com.cmeeting.vo.EditRecordTemplateVo; import com.cmeeting.vo.EditRecordTemplateVo;
...@@ -69,4 +70,10 @@ public interface MeetingRecordTemplateService extends IService<MeetingRecordTemp ...@@ -69,4 +70,10 @@ public interface MeetingRecordTemplateService extends IService<MeetingRecordTemp
* @param id 模板id * @param id 模板id
*/ */
void delete(Long id); void delete(Long id);
/**
* 获取模板下拉列表,有权限控制
* @return
*/
List<RecordTemplateDto> getTemplateSelect();
} }
...@@ -2,10 +2,10 @@ package com.cmeeting.service; ...@@ -2,10 +2,10 @@ package com.cmeeting.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.cmeeting.ad.entity.RobotSecurityUser;
import com.cmeeting.ad.entity.SysUserSync; import com.cmeeting.ad.entity.SysUserSync;
import com.cmeeting.dto.PermissionCheckedDTO; import com.cmeeting.dto.PermissionCheckedDTO;
import com.cmeeting.dto.SysUserSyncDTO; import com.cmeeting.dto.SysUserSyncDTO;
import com.cmeeting.pojo.SysUserSyncCategory;
import java.util.List; import java.util.List;
...@@ -13,6 +13,14 @@ import java.util.List; ...@@ -13,6 +13,14 @@ import java.util.List;
public interface SysUserSyncService extends IService<SysUserSync> { public interface SysUserSyncService extends IService<SysUserSync> {
String getDeptPathByUserId(String userId); String getDeptPathByUserId(String userId);
/**
* 向上获取部门集合,包含当前部门
*
* @return
*/
List<SysUserSyncCategory> getCategoryListByUserId(String userId);
PermissionCheckedDTO listByCategoryId(String categoryId, String search, String tenantId, List<String> categoryList, List<String> userList); 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 tenantId, String search); List<PermissionCheckedDTO.User> findInUserIdsOrShareCateIds(List<String> userIds, List<String> shareCateIds, String tenantId, String search);
......
...@@ -13,14 +13,12 @@ import com.cmeeting.ad.entity.SysUserSync; ...@@ -13,14 +13,12 @@ import com.cmeeting.ad.entity.SysUserSync;
import com.cmeeting.ad.util.SecurityUtil; import com.cmeeting.ad.util.SecurityUtil;
import com.cmeeting.constant.MeetingTypeConstant; import com.cmeeting.constant.MeetingTypeConstant;
import com.cmeeting.constant.RecordTemplateConstant; import com.cmeeting.constant.RecordTemplateConstant;
import com.cmeeting.dto.RecordTemplateDto;
import com.cmeeting.dto.UserDTO; import com.cmeeting.dto.UserDTO;
import com.cmeeting.exception.RobotBaseException; import com.cmeeting.exception.RobotBaseException;
import com.cmeeting.mapper.primary.*; import com.cmeeting.mapper.primary.*;
import com.cmeeting.mapper.secondary.SysUserSysMapper; import com.cmeeting.mapper.secondary.SysUserSysMapper;
import com.cmeeting.pojo.MeetTemplateEnable; import com.cmeeting.pojo.*;
import com.cmeeting.pojo.MeetType;
import com.cmeeting.pojo.MeetingRecordTemplate;
import com.cmeeting.pojo.RecordTemplatePermission;
import com.cmeeting.service.MeetingRecordTemplateService; import com.cmeeting.service.MeetingRecordTemplateService;
import com.cmeeting.service.SysUserSyncService; import com.cmeeting.service.SysUserSyncService;
import com.cmeeting.util.MinioUtils; import com.cmeeting.util.MinioUtils;
...@@ -37,7 +35,6 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -37,7 +35,6 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.InputStream; import java.io.InputStream;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
...@@ -360,6 +357,35 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -360,6 +357,35 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
} }
/** /**
* 获取模板下拉列表,有权限控制
*
* @return
*/
@Override
public List<RecordTemplateDto> getTemplateSelect() {
// 获取当前用户向上的的部门集合
RobotSecurityUser loginUser = SecurityUtil.getUser();
List<SysUserSyncCategory> categoryList = sysUserSyncService.getCategoryListByUserId(loginUser.getUserId());
List<String> parentDeptIdList = categoryList.stream().map(SysUserSyncCategory::getDeptId).collect(Collectors.toList());
List<RecordTemplateDto> resultList = new ArrayList<>();
// 查询指定授权的模板 - 从会议类型维度查询
List<RecordTemplateDto> permissionTmplInMeetTypeDtoList = baseMapper.selectPermissionTmplInMeetType(loginUser.getUserId(), parentDeptIdList);
resultList.addAll(permissionTmplInMeetTypeDtoList);
// 查询指定授权的模板 - 从纪要模板维度查询
List<RecordTemplateDto> permissionDeptTmplDtoList = baseMapper.selectPermissionTmpl(loginUser.getUserId(), parentDeptIdList);
resultList.addAll(permissionDeptTmplDtoList);
// 获取非授权的模板,包括系统通用的和自己创建的
List<RecordTemplateDto> recordTemplateDtoList = baseMapper.selectAllTmplWithoutPermission(loginUser.getUserId());
resultList.addAll(recordTemplateDtoList);
return resultList;
}
/**
* 获取部门的路径 * 获取部门的路径
* @param deptPath * @param deptPath
* @param deptId * @param deptId
......
...@@ -66,6 +66,43 @@ public class SysUserSyncServiceImpl extends ServiceImpl<SysUserSysMapper, SysUse ...@@ -66,6 +66,43 @@ public class SysUserSyncServiceImpl extends ServiceImpl<SysUserSysMapper, SysUse
} }
/**
* 向上获取部门集合,包含当前部门
*
* @return
*/
@Override
public List<SysUserSyncCategory> getCategoryListByUserId(String userId) {
SysUserSync sysUserSync = baseMapper.selectOne(new LambdaQueryWrapper<SysUserSync>().eq(SysUserSync::getTenantId, perTenantId).eq(SysUserSync::getUserId, userId));
String deptId = sysUserSync.getDeptId();
// 获取当前租户所有部门
// 查询当前租户下所有部门
List<SysUserSyncCategory> allDeptList = iSysUserSyncCategoryService.list(new LambdaQueryWrapper<SysUserSyncCategory>().eq(SysUserSyncCategory::getTenantId, perTenantId));
// 从所有部门中向上递归查找父级部门
List<SysUserSyncCategory> parentDeptList = new ArrayList<>();
SysUserSyncCategory currentDept = allDeptList.stream()
.filter(dept -> dept.getDeptId().equals(deptId))
.findFirst()
.orElse(null);
while (currentDept != null && !currentDept.getDeptId().equals(CategoryConstant.ROOT_ID)) {
parentDeptList.add(currentDept);
SysUserSyncCategory finalCurrentDept = currentDept;
currentDept = allDeptList.stream()
.filter(dept -> dept.getDeptId().equals(finalCurrentDept.getParentId()))
.findFirst()
.orElse(null);
}
return parentDeptList;
}
@Override @Override
public PermissionCheckedDTO listByCategoryId(String categoryId, String search, String tenantId, List<String> categoryList, List<String> userList) { public PermissionCheckedDTO listByCategoryId(String categoryId, String search, String tenantId, List<String> categoryList, List<String> userList) {
PermissionCheckedDTO dto = new PermissionCheckedDTO(); PermissionCheckedDTO dto = new PermissionCheckedDTO();
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<result property="authType" column="meeting_type_auth_type" /> <result property="authType" column="meeting_type_auth_type" />
<result property="relId" column="meeting_type_rel_id" /> <result property="relId" column="meeting_type_rel_id" />
<result property="content" column="meeting_type_content" /> <result property="content" column="meeting_type_content" />
<collection property="recordTemplateDTOList" javaType="List" ofType="com.cmeeting.dto.RecordTemplateDTO"> <collection property="recordTemplateDTOList" javaType="List" ofType="com.cmeeting.dto.RecordTemplateDto">
<id property="id" column="template_id" /> <id property="id" column="template_id" />
<result property="name" column="template_name" /> <result property="name" column="template_name" />
<result property="typeDetail" column="template_type_detail" /> <result property="typeDetail" column="template_type_detail" />
......
...@@ -7,4 +7,141 @@ ...@@ -7,4 +7,141 @@
<select id="getAuthorizedSystemTemplate" resultType="com.cmeeting.pojo.MeetingRecordTemplate"> <select id="getAuthorizedSystemTemplate" resultType="com.cmeeting.pojo.MeetingRecordTemplate">
</select> </select>
<!-- 查询授权的模板-会议类型维度 -->
<select id="selectPermissionTmplInMeetType" resultType="com.cmeeting.dto.RecordTemplateDto">
select
cmt_meeting_record_template.id as template_id,
cmt_meeting_record_template.name as template_name,
cmt_meeting_record_template.type_detail as template_type_detail,
cmt_meeting_record_template.prompt as template_prompt
from
meet_type,
cmt_meeting_record_template,
module_permission
where
meet_type.is_del = 0
and cmt_meeting_record_template.is_del = 0
and meet_type.auth_type = 2
and meet_type.id = cmt_meeting_record_template.meeting_type
and cmt_meeting_record_template.type = 'custom'
and module_permission.type = 0
and module_permission.purpose = 1
and module_permission.target_id = meet_type.id
and module_permission.rel_id in
<foreach collection="deptIdList" item="deptId" open="(" separator="," close=")" index="index">
#{deptId}
</foreach>
union
select
cmt_meeting_record_template.id as template_id,
cmt_meeting_record_template.name as template_name,
cmt_meeting_record_template.type_detail as template_type_detail,
cmt_meeting_record_template.prompt as template_prompt
from
meet_type,
cmt_meeting_record_template,
module_permission
where
meet_type.is_del = 0
and cmt_meeting_record_template.is_del = 0
and meet_type.auth_type = 2
and meet_type.id = cmt_meeting_record_template.meeting_type
and cmt_meeting_record_template.type = 'custom'
and module_permission.type = 1
and module_permission.purpose = 1
and module_permission.target_id = meet_type.id
and module_permission.rel_id = #{userId}
union
select
cmt_meeting_record_template.id as template_id,
cmt_meeting_record_template.name as template_name,
cmt_meeting_record_template.type_detail as template_type_detail,
cmt_meeting_record_template.prompt as template_prompt
from
meet_type,
cmt_meeting_record_template
where
meet_type.is_del = 0
and cmt_meeting_record_template.is_del = 0
and meet_type.auth_type = 1
and meet_type.id = cmt_meeting_record_template.meeting_type
and cmt_meeting_record_template.type = 'custom'
</select>
<!-- 获取指定授权的模板-纪要模板维度 -->
<select id="selectPermissionTmpl" resultType="com.cmeeting.dto.RecordTemplateDto">
select
cmt_meeting_record_template.id as template_id,
cmt_meeting_record_template.name as template_name,
cmt_meeting_record_template.type_detail as template_type_detail,
cmt_meeting_record_template.prompt as template_prompt
from
cmt_meeting_record_template,
module_permission
where
cmt_meeting_record_template.is_del = 0
and cmt_meeting_record_template.type = 'custom'
and module_permission.type = 0
and module_permission.purpose = 2
and module_permission.target_id = cmt_meeting_record_template.id
and module_permission.rel_id in
<foreach collection="deptIdList" item="deptId" open="(" separator="," close=")" index="index">
#{deptId}
</foreach>
union
select
cmt_meeting_record_template.id as template_id,
cmt_meeting_record_template.name as template_name,
cmt_meeting_record_template.type_detail as template_type_detail,
cmt_meeting_record_template.prompt as template_prompt
from
cmt_meeting_record_template,
module_permission
where
cmt_meeting_record_template.is_del = 0
and cmt_meeting_record_template.type = 'custom'
and module_permission.type = 1
and module_permission.purpose = 2
and module_permission.target_id = cmt_meeting_record_template.id
and module_permission.rel_id = #{userId}
union
select
cmt_meeting_record_template.id as template_id,
cmt_meeting_record_template.name as template_name,
cmt_meeting_record_template.type_detail as template_type_detail,
cmt_meeting_record_template.prompt as template_prompt
from
cmt_meeting_record_template,
module_permission
where
cmt_meeting_record_template.is_del = 0
and cmt_meeting_record_template.type = 'custom'
and module_permission.type = 1
and module_permission.purpose = 2
and module_permission.target_id = cmt_meeting_record_template.id
and module_permission.rel_id = 'all'
</select>
<!-- 获取非授权的模板,包括系统通用的和自己创建的 -->
<select id="selectAllTmplWithoutPermission" resultType="com.cmeeting.dto.RecordTemplateDto">
select
cmt_meeting_record_template.id as template_id,
cmt_meeting_record_template.name as template_name,
cmt_meeting_record_template.type_detail as template_type_detail,
cmt_meeting_record_template.prompt as template_prompt
from
cmt_meeting_record_template
where
cmt_meeting_record_template.is_del = 0
and (cmt_meeting_record_template.type = 'system' or cmt_meeting_record_template.user_id = #{userId})
</select>
</mapper> </mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论