From 40a7c2dc7772c2e128aa4571a99011d6007e54bc Mon Sep 17 00:00:00 2001 From: zhihao <18915542763@163.com> Date: Thu, 21 May 2026 19:13:54 +0800 Subject: [PATCH] =?UTF-8?q?czh-20260521-=E8=AE=A1=E5=88=92=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E9=83=A8=E5=88=86bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/tasklist/entity/TaskList.java | 4 ++++ .../tasklist/mapper/xml/TaskListMapper.xml | 18 ++++-------------- .../service/impl/TaskListServiceImpl.java | 15 +++++++++------ 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/jeecg-module-supervision/src/main/java/org/jeecg/modules/tasklist/entity/TaskList.java b/jeecg-module-supervision/src/main/java/org/jeecg/modules/tasklist/entity/TaskList.java index 9cf95b5..767014f 100644 --- a/jeecg-module-supervision/src/main/java/org/jeecg/modules/tasklist/entity/TaskList.java +++ b/jeecg-module-supervision/src/main/java/org/jeecg/modules/tasklist/entity/TaskList.java @@ -84,4 +84,8 @@ public class TaskList implements Serializable { @TableField(exist = false) @Schema(description = "创建时间字符串") private java.lang.String createTimeStr; + + @TableField(exist = false) + @Schema(description = "当前用户权限等级:1=所有者,2=可编辑,3=可阅读") + private java.lang.String myPermission; } diff --git a/jeecg-module-supervision/src/main/java/org/jeecg/modules/tasklist/mapper/xml/TaskListMapper.xml b/jeecg-module-supervision/src/main/java/org/jeecg/modules/tasklist/mapper/xml/TaskListMapper.xml index d6aac66..720c930 100644 --- a/jeecg-module-supervision/src/main/java/org/jeecg/modules/tasklist/mapper/xml/TaskListMapper.xml +++ b/jeecg-module-supervision/src/main/java/org/jeecg/modules/tasklist/mapper/xml/TaskListMapper.xml @@ -7,17 +7,7 @@ FROM task_list t WHERE t.del_flag = '0' AND ( - -- 条件1:同一部门的人能看到互相创建的清单 - -- 注意:task_list.create_by 存的是 username,所以用 u.username 匹配 - - EXISTS ( - SELECT 1 FROM sys_user u - WHERE u.username = t.create_by - AND u.org_code = #{orgCode} - ) - OR - - -- 条件2:当前用户是所有者(permission=1) + -- 条件1:当前用户是所有者(permission=1) EXISTS ( SELECT 1 FROM task_list_permission p WHERE p.main_id = t.id @@ -25,7 +15,7 @@ AND p.permission = '1' AND p.del_flag = '0' ) - -- 条件3:当前用户是协作者(permission=2/3) + -- 条件2:当前用户是协作者(permission=2/3) OR EXISTS ( SELECT 1 FROM task_list_permission p WHERE p.main_id = t.id @@ -33,7 +23,7 @@ AND p.permission IN ('2', '3') AND p.del_flag = '0' ) - -- 条件4:清单中某任务的负责人/参与人是当前用户 + -- 条件3:清单中某任务的负责人/参与人是当前用户 OR EXISTS ( SELECT 1 FROM task_list_detial d WHERE d.main_id = t.id @@ -44,7 +34,7 @@ ) ) ) - -- 条件5:密级过滤(用户密级数值 > 清单密级数值才能看到) + -- 条件4:密级过滤(用户密级数值 > 清单密级数值才能看到) AND ( t.secret_level IS NULL OR t.secret_level < #{userSecLevel} diff --git a/jeecg-module-supervision/src/main/java/org/jeecg/modules/tasklist/service/impl/TaskListServiceImpl.java b/jeecg-module-supervision/src/main/java/org/jeecg/modules/tasklist/service/impl/TaskListServiceImpl.java index 0a5d63b..dd90ee2 100644 --- a/jeecg-module-supervision/src/main/java/org/jeecg/modules/tasklist/service/impl/TaskListServiceImpl.java +++ b/jeecg-module-supervision/src/main/java/org/jeecg/modules/tasklist/service/impl/TaskListServiceImpl.java @@ -197,8 +197,8 @@ public class TaskListServiceImpl extends ServiceImpl i LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = loginUser.getId(); - Integer sortOrder = 1; - taskListFavoriteMapper.shiftSortOrderUpByType(userId, "0", sortOrder); + Integer maxSort = taskListFavoriteService.getMaxSortOrderByType(userId, null, "0"); + Integer sortOrder = maxSort + 1; TaskListFavorite favorite = new TaskListFavorite(); favorite.setMainId(null); @@ -500,7 +500,7 @@ public class TaskListServiceImpl extends ServiceImpl i query.in(TaskList::getId, mainIds); query.and(w -> w.lt(TaskList::getSecretLevel, finalUserSecLevel).or().isNull(TaskList::getSecretLevel)); query.orderByAsc(TaskList::getCreateTime); - return enrichListSummaries(taskListMapper.selectList(query)); + return enrichListSummaries(taskListMapper.selectList(query), userId); } @Override @@ -514,7 +514,7 @@ public class TaskListServiceImpl extends ServiceImpl i String orgCode = loginUser.getOrgCode(); List lists = taskListMapper.selectVisibleLists(userId, userSecLevel, orgCode); - return enrichListSummaries(lists); + return enrichListSummaries(lists, userId); } @Override @@ -541,14 +541,14 @@ public class TaskListServiceImpl extends ServiceImpl i query.in(TaskList::getId, mainIds); query.and(w -> w.lt(TaskList::getSecretLevel, finalUserSecLevel).or().isNull(TaskList::getSecretLevel)); query.orderByAsc(TaskList::getCreateTime); - return enrichListSummaries(taskListMapper.selectList(query)); + return enrichListSummaries(taskListMapper.selectList(query), userId); } private String normalizePid(String pid) { return oConvertUtils.isNotEmpty(pid) ? pid : null; } - private List enrichListSummaries(List lists) { + private List enrichListSummaries(List lists, String currentUserId) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for (TaskList list : lists) { if (list.getCreateTime() != null) { @@ -564,6 +564,9 @@ public class TaskListServiceImpl extends ServiceImpl i if (ownerUser != null) { list.setOwnerName(ownerUser.getRealname()); } + if (currentUserId != null && currentUserId.equals(owner.getUserId())) { + list.setMyPermission("1"); + } } LambdaQueryWrapper collabQuery = new LambdaQueryWrapper<>();