czh-20260521-计划修复部分bug
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-14
@@ -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 < #{userSecLevel}
|
OR t.secret_level < #{userSecLevel}
|
||||||
|
|||||||
+9
-6
@@ -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<>();
|
||||||
|
|||||||
Reference in New Issue
Block a user