service 接口
/**
* 获取下拉树列表分享文件夹树结构
* OpeKnowledgeBaseVO用他的子结构 文件管理对象 OpeKnowledgeFolderVO文件夹管理对象 泛型为文件夹管理对象
*
*/
List<OpeKnowledgeFolderVO> getsharTree(OpeKnowledgeBaseVO opeKnowledgeBaseVO);
实现类
@Override
public List<OpeKnowledgeFolderVO> getsharTree(OpeKnowledgeBaseVO opeKnowledgeBaseVO) {
// 1 获取分享文件列表
List<OpeKnowledgeBaseVO> opeKnowledgeBaseVOS = opeKnowledgeBaseMapper.listKnowledgeBaseOfRecycle(opeKnowledgeBaseVO);
// 3 去除重复的id
HashSet<Long> wjjids = new HashSet<>(); //Long为id类型 因为是去重复的id
// 2遍历出分享文件列表的
for (OpeKnowledgeBaseVO knowledgeBaseVO : opeKnowledgeBaseVOS) {
// 4把遍历出来的数据ID添加到去重中
wjjids.add(knowledgeBaseVO.getWjjid());
}
// 7.通过集合形式放在里边
ArrayList<OpeKnowledgeFolderVO> opeKnowledgeFolderVOArrayList = new ArrayList<>();
// 6通过id查找OpeKnowledgeFolderVO
for (Long wjjid : wjjids) { //5先遍历出来处理过的id
OpeKnowledgeFolderVO opeKnowledgeFolderVO = opeKnowledgeFolderMapper.selectOpeKnowledgeFolderById(wjjid);
// 8.放在集合中
opeKnowledgeFolderVOArrayList.add(opeKnowledgeFolderVO);
}
return opeKnowledgeFolderVOArrayList;
}
@GetMapping("/fileShareTreeSelect")
// 返回前端的参数AjaxResult 传两个参数 实体类参数 service调里边的方法 再返回service里定义的树结构
public AjaxResult fileShareTreeSelect(OpeKnowledgeBaseVO opeKnowledgeBaseVO){
List<OpeKnowledgeFolderVO> opeKnowledgeFolderVOS = opeKnowledgeFolderService.getsharTree(opeKnowledgeBaseVO);
return AjaxResult.success(opeKnowledgeFolderService.buildFolderTreeSelect(opeKnowledgeFolderVOS));
}
获取树的sql mapper
<select id="listKnowledgeBaseOfRecycle" parameterType="OpeKnowledgeBase" resultMap="OpeKnowledgeBaseResult">
SELECT
a.id,
( SELECT f.NAME FROM ope_knowledge_folder f WHERE f.id = a.wjjid ) folder_name,
a.wjjid,
a.file_name,
a.file_type,
a.file_des,
a.file_path,
a.file_del_falg,
a.create_by,
( SELECT nick_name FROM sys_user su WHERE su.user_id = a.create_by ) create_by_name,
a.create_time,
'knowledge' file_source
FROM
ope_knowledge_base a
<where>
<if test="wjjid != null ">and a.wjjid = #{wjjid}</if>
<if test="fileName != null and fileName != ''">and a.file_name like concat('%', #{fileName}, '%')</if>
<if test="fileType != null and fileType != ''">and a.file_type = #{fileType}</if>
<if test="fileDes != null and fileDes != ''">and a.file_des like concat('%', #{fileDes}, '%')</if>
<if test="filePath != null and filePath != ''">and a.file_path = #{filePath}</if>
<if test="fileDelFalg != null and fileDelFalg != ''">and a.file_del_falg = #{fileDelFalg}</if>
<if test="createBy != null and createBy != ''">and a.create_by = #{createBy}</if>
</where>
ORDER BY
a.create_time DESC
</select>