czh-20260521-计划修复部分bug

This commit is contained in:
zhihao
2026-05-21 19:13:54 +08:00
parent b89d04634a
commit 40a7c2dc77
3 changed files with 17 additions and 20 deletions
@@ -84,4 +84,8 @@ public class TaskList implements Serializable {
@TableField(exist = false) @TableField(exist = false)
@Schema(description = "创建时间字符串") @Schema(description = "创建时间字符串")
private java.lang.String createTimeStr; 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 FROM task_list t
WHERE t.del_flag = '0' WHERE t.del_flag = '0'
AND ( AND (
-- 条件1同一部门的人能看到互相创建的清单 -- 条件1当前用户是所有者(permission=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
EXISTS ( EXISTS (
SELECT 1 FROM task_list_permission p SELECT 1 FROM task_list_permission p
WHERE p.main_id = t.id WHERE p.main_id = t.id
@@ -25,7 +15,7 @@
AND p.permission = '1' AND p.permission = '1'
AND p.del_flag = '0' AND p.del_flag = '0'
) )
-- 条件3:当前用户是协作者(permission=2/3 -- 条件2:当前用户是协作者(permission=2/3
OR EXISTS ( OR EXISTS (
SELECT 1 FROM task_list_permission p SELECT 1 FROM task_list_permission p
WHERE p.main_id = t.id WHERE p.main_id = t.id
@@ -33,7 +23,7 @@
AND p.permission IN ('2', '3') AND p.permission IN ('2', '3')
AND p.del_flag = '0' AND p.del_flag = '0'
) )
-- 条件4:清单中某任务的负责人/参与人是当前用户 -- 条件3:清单中某任务的负责人/参与人是当前用户
OR EXISTS ( OR EXISTS (
SELECT 1 FROM task_list_detial d SELECT 1 FROM task_list_detial d
WHERE d.main_id = t.id WHERE d.main_id = t.id
@@ -44,7 +34,7 @@
) )
) )
) )
-- 条件5:密级过滤(用户密级数值 > 清单密级数值才能看到) -- 条件4:密级过滤(用户密级数值 > 清单密级数值才能看到)
AND ( AND (
t.secret_level IS NULL t.secret_level IS NULL
OR t.secret_level &lt; #{userSecLevel} OR t.secret_level &lt; #{userSecLevel}
@@ -197,8 +197,8 @@ public class TaskListServiceImpl extends ServiceImpl<TaskListMapper, TaskList> i
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userId = loginUser.getId(); String userId = loginUser.getId();
Integer sortOrder = 1; Integer maxSort = taskListFavoriteService.getMaxSortOrderByType(userId, null, "0");
taskListFavoriteMapper.shiftSortOrderUpByType(userId, "0", sortOrder); Integer sortOrder = maxSort + 1;
TaskListFavorite favorite = new TaskListFavorite(); TaskListFavorite favorite = new TaskListFavorite();
favorite.setMainId(null); favorite.setMainId(null);
@@ -500,7 +500,7 @@ public class TaskListServiceImpl extends ServiceImpl<TaskListMapper, TaskList> i
query.in(TaskList::getId, mainIds); query.in(TaskList::getId, mainIds);
query.and(w -> w.lt(TaskList::getSecretLevel, finalUserSecLevel).or().isNull(TaskList::getSecretLevel)); query.and(w -> w.lt(TaskList::getSecretLevel, finalUserSecLevel).or().isNull(TaskList::getSecretLevel));
query.orderByAsc(TaskList::getCreateTime); query.orderByAsc(TaskList::getCreateTime);
return enrichListSummaries(taskListMapper.selectList(query)); return enrichListSummaries(taskListMapper.selectList(query), userId);
} }
@Override @Override
@@ -514,7 +514,7 @@ public class TaskListServiceImpl extends ServiceImpl<TaskListMapper, TaskList> i
String orgCode = loginUser.getOrgCode(); String orgCode = loginUser.getOrgCode();
List<TaskList> lists = taskListMapper.selectVisibleLists(userId, userSecLevel, orgCode); List<TaskList> lists = taskListMapper.selectVisibleLists(userId, userSecLevel, orgCode);
return enrichListSummaries(lists); return enrichListSummaries(lists, userId);
} }
@Override @Override
@@ -541,14 +541,14 @@ public class TaskListServiceImpl extends ServiceImpl<TaskListMapper, TaskList> i
query.in(TaskList::getId, mainIds); query.in(TaskList::getId, mainIds);
query.and(w -> w.lt(TaskList::getSecretLevel, finalUserSecLevel).or().isNull(TaskList::getSecretLevel)); query.and(w -> w.lt(TaskList::getSecretLevel, finalUserSecLevel).or().isNull(TaskList::getSecretLevel));
query.orderByAsc(TaskList::getCreateTime); query.orderByAsc(TaskList::getCreateTime);
return enrichListSummaries(taskListMapper.selectList(query)); return enrichListSummaries(taskListMapper.selectList(query), userId);
} }
private String normalizePid(String pid) { private String normalizePid(String pid) {
return oConvertUtils.isNotEmpty(pid) ? pid : null; 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"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (TaskList list : lists) { for (TaskList list : lists) {
if (list.getCreateTime() != null) { if (list.getCreateTime() != null) {
@@ -564,6 +564,9 @@ public class TaskListServiceImpl extends ServiceImpl<TaskListMapper, TaskList> i
if (ownerUser != null) { if (ownerUser != null) {
list.setOwnerName(ownerUser.getRealname()); list.setOwnerName(ownerUser.getRealname());
} }
if (currentUserId != null && currentUserId.equals(owner.getUserId())) {
list.setMyPermission("1");
}
} }
LambdaQueryWrapper<TaskListPermission> collabQuery = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TaskListPermission> collabQuery = new LambdaQueryWrapper<>();