!23 czh-20260521-计划修复部分bug

Merge pull request !23 from 陈志浩/feature/tasklist
This commit is contained in:
陈志浩
2026-05-21 11:18:17 +00:00
committed by Gitee
3 changed files with 17 additions and 20 deletions
@@ -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;
}
@@ -7,17 +7,7 @@
FROM task_list t
WHERE t.del_flag = '0'
AND (
-- 条件1同一部门的人能看到互相创建的清单
-- 注意:task_list.create_by 存的是 username,所以用 u.username 匹配
<if test="orgCode != null and orgCode != ''">
EXISTS (
SELECT 1 FROM sys_user u
WHERE u.username = t.create_by
AND u.org_code = #{orgCode}
)
OR
</if>
-- 条件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 &lt; #{userSecLevel}
@@ -197,8 +197,8 @@ public class TaskListServiceImpl extends ServiceImpl<TaskListMapper, TaskList> 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<TaskListMapper, TaskList> 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<TaskListMapper, TaskList> i
String orgCode = loginUser.getOrgCode();
List<TaskList> lists = taskListMapper.selectVisibleLists(userId, userSecLevel, orgCode);
return enrichListSummaries(lists);
return enrichListSummaries(lists, userId);
}
@Override
@@ -541,14 +541,14 @@ public class TaskListServiceImpl extends ServiceImpl<TaskListMapper, TaskList> 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<TaskList> enrichListSummaries(List<TaskList> lists) {
private List<TaskList> enrichListSummaries(List<TaskList> 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<TaskListMapper, TaskList> i
if (ownerUser != null) {
list.setOwnerName(ownerUser.getRealname());
}
if (currentUserId != null && currentUserId.equals(owner.getUserId())) {
list.setMyPermission("1");
}
}
LambdaQueryWrapper<TaskListPermission> collabQuery = new LambdaQueryWrapper<>();