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<>();