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