!61 czh-20260630-优化计划,增加分页、滚动加载等
Merge pull request !61 from 陈志浩/refactor/tasklist-20260630
This commit is contained in:
+58
-14
@@ -316,24 +316,52 @@ public class TaskListController {
|
||||
@AutoLog(value = "任务清单表-获取我所有的清单")
|
||||
@Operation(summary = "获取我所有的清单")
|
||||
@GetMapping(value = "/myOwnLists")
|
||||
public Result<List<TaskList>> myOwnLists() {
|
||||
List<TaskList> list = taskListService.getMyOwnLists();
|
||||
return Result.OK(list);
|
||||
public Result<Map<String, Object>> myOwnLists(
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "20") Integer pageSize,
|
||||
@RequestParam(name = "keyword", required = false) String keyword) {
|
||||
List<TaskList> list = taskListService.getMyOwnListsPage(pageNo, pageSize, keyword);
|
||||
int total = taskListService.countMyOwnLists(keyword);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("records", list);
|
||||
result.put("total", total);
|
||||
result.put("pageNo", pageNo);
|
||||
result.put("pageSize", pageSize);
|
||||
return Result.OK(result);
|
||||
}
|
||||
|
||||
@AutoLog(value = "任务清单表-获取所有清单")
|
||||
@Operation(summary = "获取所有清单")
|
||||
@GetMapping(value = "/allLists")
|
||||
public Result<List<TaskList>> getAllLists() {
|
||||
return Result.OK(taskListService.getAllLists());
|
||||
public Result<Map<String, Object>> getAllLists(
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "20") Integer pageSize,
|
||||
@RequestParam(name = "keyword", required = false) String keyword) {
|
||||
List<TaskList> list = taskListService.getAllListsPage(pageNo, pageSize, keyword);
|
||||
int total = taskListService.countAllLists(keyword);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("records", list);
|
||||
result.put("total", total);
|
||||
result.put("pageNo", pageNo);
|
||||
result.put("pageSize", pageSize);
|
||||
return Result.OK(result);
|
||||
}
|
||||
|
||||
@AutoLog(value = "任务清单表-获取我协作的清单")
|
||||
@Operation(summary = "获取我协作的清单")
|
||||
@GetMapping(value = "/myCollabLists")
|
||||
public Result<List<TaskList>> myCollabLists() {
|
||||
List<TaskList> list = taskListService.getMyCollabLists();
|
||||
return Result.OK(list);
|
||||
public Result<Map<String, Object>> myCollabLists(
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "20") Integer pageSize,
|
||||
@RequestParam(name = "keyword", required = false) String keyword) {
|
||||
List<TaskList> list = taskListService.getMyCollabListsPage(pageNo, pageSize, keyword);
|
||||
int total = taskListService.countMyCollabLists(keyword);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("records", list);
|
||||
result.put("total", total);
|
||||
result.put("pageNo", pageNo);
|
||||
result.put("pageSize", pageSize);
|
||||
return Result.OK(result);
|
||||
}
|
||||
|
||||
@AutoLog(value = "任务清单表-获取协作人列表")
|
||||
@@ -518,17 +546,33 @@ public class TaskListController {
|
||||
@AutoLog(value = "任务清单表-我负责的任务")
|
||||
@Operation(summary = "获取当前用户负责的任务")
|
||||
@GetMapping(value = "/myResponsibleTasks")
|
||||
public Result<List<TaskListDetial>> myResponsibleTasks() {
|
||||
List<TaskListDetial> list = taskListService.myResponsibleTasks();
|
||||
return Result.OK(list);
|
||||
public Result<Map<String, Object>> myResponsibleTasks(
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "50") Integer pageSize) {
|
||||
List<TaskListDetial> list = taskListService.myResponsibleTasksPage(pageNo, pageSize);
|
||||
int total = taskListService.countMyResponsibleTasks();
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("records", list);
|
||||
result.put("total", total);
|
||||
result.put("pageNo", pageNo);
|
||||
result.put("pageSize", pageSize);
|
||||
return Result.OK(result);
|
||||
}
|
||||
|
||||
@AutoLog(value = "任务清单表-我关注的任务")
|
||||
@Operation(summary = "获取当前用户关注的任务")
|
||||
@GetMapping(value = "/myFollowedTasks")
|
||||
public Result<List<TaskListDetial>> myFollowedTasks() {
|
||||
List<TaskListDetial> list = taskListService.myFollowedTasks();
|
||||
return Result.OK(list);
|
||||
public Result<Map<String, Object>> myFollowedTasks(
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "50") Integer pageSize) {
|
||||
List<TaskListDetial> list = taskListService.myFollowedTasksPage(pageNo, pageSize);
|
||||
int total = taskListService.countMyFollowedTasks();
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("records", list);
|
||||
result.put("total", total);
|
||||
result.put("pageNo", pageNo);
|
||||
result.put("pageSize", pageSize);
|
||||
return Result.OK(result);
|
||||
}
|
||||
|
||||
@AutoLog(value = "任务清单表-获取当前用户密级")
|
||||
|
||||
+2
-1
@@ -59,7 +59,8 @@ public class TaskListDetialController {
|
||||
}
|
||||
|
||||
@GetMapping(value = "/listAllByMainId")
|
||||
public Result<List<TaskListDetial>> listAllByMainId(@RequestParam(name = "mainId") String mainId) {
|
||||
public Result<List<TaskListDetial>> listAllByMainId(
|
||||
@RequestParam(name = "mainId") String mainId) {
|
||||
List<TaskListDetial> list = taskListDetialService.queryAllByMainId(mainId);
|
||||
return Result.OK(list);
|
||||
}
|
||||
|
||||
+12
@@ -25,6 +25,10 @@ public interface TaskListDetialMapper extends BaseMapper<TaskListDetial> {
|
||||
|
||||
List<TaskListDetial> selectAllByMainId(@Param("mainId") String mainId);
|
||||
|
||||
List<TaskListDetial> selectAllByMainIdPage(@Param("mainId") String mainId, @Param("offset") Integer offset, @Param("pageSize") Integer pageSize);
|
||||
|
||||
int countAllByMainId(@Param("mainId") String mainId);
|
||||
|
||||
List<TaskListDetial> selectTopLevelByMainId(@Param("mainId") String mainId);
|
||||
|
||||
List<TaskListDetial> selectSubTasksByPage(@Param("parentId") String parentId, @Param("offset") Integer offset, @Param("pageSize") Integer pageSize);
|
||||
@@ -59,5 +63,13 @@ public interface TaskListDetialMapper extends BaseMapper<TaskListDetial> {
|
||||
|
||||
List<TaskListDetial> selectByFollowersId(@Param("followersId") String followersId, @Param("userId") String userId);
|
||||
|
||||
List<TaskListDetial> selectByAssigneeIdPage(@Param("assigneeId") String assigneeId, @Param("userId") String userId, @Param("offset") Integer offset, @Param("pageSize") Integer pageSize);
|
||||
|
||||
int countByAssigneeId(@Param("assigneeId") String assigneeId, @Param("userId") String userId);
|
||||
|
||||
List<TaskListDetial> selectByFollowersIdPage(@Param("followersId") String followersId, @Param("userId") String userId, @Param("offset") Integer offset, @Param("pageSize") Integer pageSize);
|
||||
|
||||
int countByFollowersId(@Param("followersId") String followersId, @Param("userId") String userId);
|
||||
|
||||
void appendAssigner(@Param("taskId") String taskId, @Param("userId") String userId, @Param("userName") String userName);
|
||||
}
|
||||
|
||||
+12
@@ -25,4 +25,16 @@ public interface TaskListMapper extends BaseMapper<TaskList> {
|
||||
@Param("userSecLevel") Integer userSecLevel,
|
||||
@Param("orgCode") String orgCode);
|
||||
|
||||
List<TaskList> selectVisibleListsPage(@Param("userId") String userId,
|
||||
@Param("userSecLevel") Integer userSecLevel,
|
||||
@Param("orgCode") String orgCode,
|
||||
@Param("offset") Integer offset,
|
||||
@Param("pageSize") Integer pageSize,
|
||||
@Param("keyword") String keyword);
|
||||
|
||||
int countVisibleLists(@Param("userId") String userId,
|
||||
@Param("userSecLevel") Integer userSecLevel,
|
||||
@Param("orgCode") String orgCode,
|
||||
@Param("keyword") String keyword);
|
||||
|
||||
}
|
||||
|
||||
+48
@@ -189,4 +189,52 @@
|
||||
AND (assign_id IS NULL OR assign_id NOT LIKE CONCAT('%', #{userId}, '%'))
|
||||
</update>
|
||||
|
||||
<select id="selectAllByMainIdPage" resultType="org.jeecg.modules.demo.tasklist.entity.TaskListDetial">
|
||||
SELECT * FROM task_list_detial
|
||||
WHERE main_id = #{mainId} AND del_flag = '0'
|
||||
ORDER BY sort_order ASC
|
||||
LIMIT #{offset}, #{pageSize}
|
||||
</select>
|
||||
|
||||
<select id="countAllByMainId" resultType="int">
|
||||
SELECT COUNT(*) FROM task_list_detial
|
||||
WHERE main_id = #{mainId} AND type = '1' AND del_flag = '0'
|
||||
</select>
|
||||
|
||||
<select id="selectByAssigneeIdPage" resultType="org.jeecg.modules.demo.tasklist.entity.TaskListDetial">
|
||||
SELECT d.*, t.tasklist_name AS listName, p.permission AS myPermission
|
||||
FROM task_list_detial d
|
||||
LEFT JOIN task_list t ON d.main_id = t.id AND t.del_flag = '0'
|
||||
LEFT JOIN task_list_permission p ON d.main_id = p.main_id
|
||||
AND p.user_id = #{userId} AND p.del_flag = '0'
|
||||
WHERE d.type = '1' AND d.del_flag = '0'
|
||||
AND d.assignee_id LIKE CONCAT('%', #{assigneeId}, '%')
|
||||
ORDER BY d.create_time DESC
|
||||
LIMIT #{offset}, #{pageSize}
|
||||
</select>
|
||||
|
||||
<select id="countByAssigneeId" resultType="int">
|
||||
SELECT COUNT(*) FROM task_list_detial d
|
||||
WHERE d.type = '1' AND d.del_flag = '0'
|
||||
AND d.assignee_id LIKE CONCAT('%', #{assigneeId}, '%')
|
||||
</select>
|
||||
|
||||
<select id="selectByFollowersIdPage" resultType="org.jeecg.modules.demo.tasklist.entity.TaskListDetial">
|
||||
SELECT d.*, t.tasklist_name AS listName, p.permission AS myPermission
|
||||
FROM task_list_detial d
|
||||
LEFT JOIN task_list t ON d.main_id = t.id AND t.del_flag = '0'
|
||||
LEFT JOIN task_list_permission p ON d.main_id = p.main_id
|
||||
AND p.user_id = #{userId} AND p.del_flag = '0'
|
||||
WHERE d.type = '1' AND d.del_flag = '0'
|
||||
AND d.followers_id LIKE CONCAT('%', #{followersId}, '%')
|
||||
ORDER BY d.create_time DESC
|
||||
LIMIT #{offset}, #{pageSize}
|
||||
</select>
|
||||
|
||||
<select id="countByFollowersId" resultType="int">
|
||||
SELECT COUNT(*) FROM task_list_detial d
|
||||
WHERE d.type = '1' AND d.del_flag = '0'
|
||||
AND d.followers_id LIKE CONCAT('%', #{followersId}, '%')
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
+78
@@ -42,4 +42,82 @@
|
||||
ORDER BY t.create_time ASC
|
||||
</select>
|
||||
|
||||
<select id="selectVisibleListsPage" resultType="org.jeecg.modules.demo.tasklist.entity.TaskList">
|
||||
SELECT DISTINCT t.*
|
||||
FROM task_list t
|
||||
WHERE t.del_flag = '0'
|
||||
AND (
|
||||
EXISTS (
|
||||
SELECT 1 FROM task_list_permission p
|
||||
WHERE p.main_id = t.id
|
||||
AND p.user_id = #{userId}
|
||||
AND p.permission = '1'
|
||||
AND p.del_flag = '0'
|
||||
)
|
||||
OR EXISTS (
|
||||
SELECT 1 FROM task_list_permission p
|
||||
WHERE p.main_id = t.id
|
||||
AND p.user_id = #{userId}
|
||||
AND p.permission IN ('2', '3')
|
||||
AND p.del_flag = '0'
|
||||
)
|
||||
OR EXISTS (
|
||||
SELECT 1 FROM task_list_detial d
|
||||
WHERE d.main_id = t.id
|
||||
AND d.del_flag = '0'
|
||||
AND (
|
||||
d.assignee_id LIKE CONCAT('%', #{userId}, '%')
|
||||
OR d.participant_id LIKE CONCAT('%', #{userId}, '%')
|
||||
)
|
||||
)
|
||||
)
|
||||
AND (
|
||||
t.secret_level IS NULL
|
||||
OR t.secret_level < #{userSecLevel}
|
||||
)
|
||||
<if test="keyword != null and keyword != ''">
|
||||
AND t.tasklist_name LIKE CONCAT('%', #{keyword}, '%')
|
||||
</if>
|
||||
ORDER BY t.create_time ASC
|
||||
LIMIT #{offset}, #{pageSize}
|
||||
</select>
|
||||
|
||||
<select id="countVisibleLists" resultType="int">
|
||||
SELECT COUNT(DISTINCT t.id)
|
||||
FROM task_list t
|
||||
WHERE t.del_flag = '0'
|
||||
AND (
|
||||
EXISTS (
|
||||
SELECT 1 FROM task_list_permission p
|
||||
WHERE p.main_id = t.id
|
||||
AND p.user_id = #{userId}
|
||||
AND p.permission = '1'
|
||||
AND p.del_flag = '0'
|
||||
)
|
||||
OR EXISTS (
|
||||
SELECT 1 FROM task_list_permission p
|
||||
WHERE p.main_id = t.id
|
||||
AND p.user_id = #{userId}
|
||||
AND p.permission IN ('2', '3')
|
||||
AND p.del_flag = '0'
|
||||
)
|
||||
OR EXISTS (
|
||||
SELECT 1 FROM task_list_detial d
|
||||
WHERE d.main_id = t.id
|
||||
AND d.del_flag = '0'
|
||||
AND (
|
||||
d.assignee_id LIKE CONCAT('%', #{userId}, '%')
|
||||
OR d.participant_id LIKE CONCAT('%', #{userId}, '%')
|
||||
)
|
||||
)
|
||||
)
|
||||
AND (
|
||||
t.secret_level IS NULL
|
||||
OR t.secret_level < #{userSecLevel}
|
||||
)
|
||||
<if test="keyword != null and keyword != ''">
|
||||
AND t.tasklist_name LIKE CONCAT('%', #{keyword}, '%')
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
+4
@@ -18,6 +18,10 @@ public interface ITaskListDetialService extends IService<TaskListDetial> {
|
||||
|
||||
List<TaskListDetial> queryAllByMainId(String mainId);
|
||||
|
||||
List<TaskListDetial> queryAllByMainIdPage(String mainId, Integer pageNo, Integer pageSize);
|
||||
|
||||
int countAllByMainId(String mainId);
|
||||
|
||||
List<TaskListDetial> queryTopLevelByMainId(String mainId);
|
||||
|
||||
void toggleStatus(String taskId);
|
||||
|
||||
+20
@@ -78,10 +78,22 @@ public interface ITaskListService extends IService<TaskList> {
|
||||
|
||||
List<TaskList> getMyOwnLists();
|
||||
|
||||
List<TaskList> getMyOwnListsPage(Integer pageNo, Integer pageSize, String keyword);
|
||||
|
||||
int countMyOwnLists(String keyword);
|
||||
|
||||
List<TaskList> getAllLists();
|
||||
|
||||
List<TaskList> getAllListsPage(Integer pageNo, Integer pageSize, String keyword);
|
||||
|
||||
int countAllLists(String keyword);
|
||||
|
||||
List<TaskList> getMyCollabLists();
|
||||
|
||||
List<TaskList> getMyCollabListsPage(Integer pageNo, Integer pageSize, String keyword);
|
||||
|
||||
int countMyCollabLists(String keyword);
|
||||
|
||||
List<CollaboratorVO> getCollaborators(String taskListId);
|
||||
|
||||
void addCollaborator(AddCollaboratorReq req);
|
||||
@@ -96,5 +108,13 @@ public interface ITaskListService extends IService<TaskList> {
|
||||
|
||||
List<TaskListDetial> myResponsibleTasks();
|
||||
|
||||
List<TaskListDetial> myResponsibleTasksPage(Integer pageNo, Integer pageSize);
|
||||
|
||||
int countMyResponsibleTasks();
|
||||
|
||||
List<TaskListDetial> myFollowedTasks();
|
||||
|
||||
List<TaskListDetial> myFollowedTasksPage(Integer pageNo, Integer pageSize);
|
||||
|
||||
int countMyFollowedTasks();
|
||||
}
|
||||
|
||||
+15
@@ -285,6 +285,21 @@ public class TaskListDetialServiceImpl extends ServiceImpl<TaskListDetialMapper,
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaskListDetial> queryAllByMainIdPage(String mainId, Integer pageNo, Integer pageSize) {
|
||||
if (pageNo == null || pageNo < 1) pageNo = 1;
|
||||
if (pageSize == null || pageSize < 1) pageSize = 50;
|
||||
int offset = (pageNo - 1) * pageSize;
|
||||
List<TaskListDetial> list = taskListDetialMapper.selectAllByMainIdPage(mainId, offset, pageSize);
|
||||
fillCreateByName(list);
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int countAllByMainId(String mainId) {
|
||||
return taskListDetialMapper.countAllByMainId(mainId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaskListDetial> queryTopLevelByMainId(String mainId) {
|
||||
List<TaskListDetial> list = taskListDetialMapper.selectTopLevelByMainId(mainId);
|
||||
|
||||
+180
@@ -509,6 +509,67 @@ public class TaskListServiceImpl extends ServiceImpl<TaskListMapper, TaskList> i
|
||||
return enrichListSummaries(taskListMapper.selectList(query), userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaskList> getMyOwnListsPage(Integer pageNo, Integer pageSize, String keyword) {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
String userId = loginUser.getId();
|
||||
Integer userSecLevel = loginUser.getUserSecurityLevel();
|
||||
if (userSecLevel == null) {
|
||||
userSecLevel = 3;
|
||||
}
|
||||
final Integer finalUserSecLevel = userSecLevel;
|
||||
|
||||
LambdaQueryWrapper<TaskListPermission> permQuery = new LambdaQueryWrapper<>();
|
||||
permQuery.eq(TaskListPermission::getUserId, userId);
|
||||
permQuery.eq(TaskListPermission::getPermission, "1");
|
||||
List<TaskListPermission> perms = taskListPermissionMapper.selectList(permQuery);
|
||||
|
||||
List<String> mainIds = perms.stream().map(TaskListPermission::getMainId).collect(java.util.stream.Collectors.toList());
|
||||
if (mainIds.isEmpty()) {
|
||||
return java.util.Collections.emptyList();
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<TaskList> query = new LambdaQueryWrapper<>();
|
||||
query.in(TaskList::getId, mainIds);
|
||||
query.and(w -> w.lt(TaskList::getSecretLevel, finalUserSecLevel).or().isNull(TaskList::getSecretLevel));
|
||||
if (keyword != null && !keyword.trim().isEmpty()) {
|
||||
query.like(TaskList::getTasklistName, keyword.trim());
|
||||
}
|
||||
query.orderByAsc(TaskList::getCreateTime);
|
||||
com.baomidou.mybatisplus.core.metadata.IPage<TaskList> page = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(pageNo, pageSize);
|
||||
com.baomidou.mybatisplus.core.metadata.IPage<TaskList> pageResult = taskListMapper.selectPage(page, query);
|
||||
return enrichListSummaries(pageResult.getRecords(), userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int countMyOwnLists(String keyword) {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
String userId = loginUser.getId();
|
||||
Integer userSecLevel = loginUser.getUserSecurityLevel();
|
||||
if (userSecLevel == null) {
|
||||
userSecLevel = 3;
|
||||
}
|
||||
final Integer finalUserSecLevel = userSecLevel;
|
||||
|
||||
LambdaQueryWrapper<TaskListPermission> permQuery = new LambdaQueryWrapper<>();
|
||||
permQuery.eq(TaskListPermission::getUserId, userId);
|
||||
permQuery.eq(TaskListPermission::getPermission, "1");
|
||||
List<TaskListPermission> perms = taskListPermissionMapper.selectList(permQuery);
|
||||
|
||||
List<String> mainIds = perms.stream().map(TaskListPermission::getMainId).collect(java.util.stream.Collectors.toList());
|
||||
if (mainIds.isEmpty()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<TaskList> query = new LambdaQueryWrapper<>();
|
||||
query.in(TaskList::getId, mainIds);
|
||||
query.and(w -> w.lt(TaskList::getSecretLevel, finalUserSecLevel).or().isNull(TaskList::getSecretLevel));
|
||||
if (keyword != null && !keyword.trim().isEmpty()) {
|
||||
query.like(TaskList::getTasklistName, keyword.trim());
|
||||
}
|
||||
return taskListMapper.selectCount(query).intValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaskList> getAllLists() {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
@@ -523,6 +584,34 @@ public class TaskListServiceImpl extends ServiceImpl<TaskListMapper, TaskList> i
|
||||
return enrichListSummaries(lists, userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaskList> getAllListsPage(Integer pageNo, Integer pageSize, String keyword) {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
String userId = loginUser.getId();
|
||||
Integer userSecLevel = loginUser.getUserSecurityLevel();
|
||||
if (userSecLevel == null) {
|
||||
userSecLevel = 3;
|
||||
}
|
||||
String orgCode = loginUser.getOrgCode();
|
||||
if (pageNo == null || pageNo < 1) pageNo = 1;
|
||||
if (pageSize == null || pageSize < 1) pageSize = 20;
|
||||
int offset = (pageNo - 1) * pageSize;
|
||||
List<TaskList> lists = taskListMapper.selectVisibleListsPage(userId, userSecLevel, orgCode, offset, pageSize, keyword);
|
||||
return enrichListSummaries(lists, userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int countAllLists(String keyword) {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
String userId = loginUser.getId();
|
||||
Integer userSecLevel = loginUser.getUserSecurityLevel();
|
||||
if (userSecLevel == null) {
|
||||
userSecLevel = 3;
|
||||
}
|
||||
String orgCode = loginUser.getOrgCode();
|
||||
return taskListMapper.countVisibleLists(userId, userSecLevel, orgCode, keyword);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaskList> getMyCollabLists() {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
@@ -550,6 +639,67 @@ public class TaskListServiceImpl extends ServiceImpl<TaskListMapper, TaskList> i
|
||||
return enrichListSummaries(taskListMapper.selectList(query), userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaskList> getMyCollabListsPage(Integer pageNo, Integer pageSize, String keyword) {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
String userId = loginUser.getId();
|
||||
Integer userSecLevel = loginUser.getUserSecurityLevel();
|
||||
if (userSecLevel == null) {
|
||||
userSecLevel = 3;
|
||||
}
|
||||
final Integer finalUserSecLevel = userSecLevel;
|
||||
|
||||
LambdaQueryWrapper<TaskListPermission> permQuery = new LambdaQueryWrapper<>();
|
||||
permQuery.eq(TaskListPermission::getUserId, userId);
|
||||
permQuery.ne(TaskListPermission::getPermission, "1");
|
||||
List<TaskListPermission> perms = taskListPermissionMapper.selectList(permQuery);
|
||||
|
||||
List<String> mainIds = perms.stream().map(TaskListPermission::getMainId).collect(java.util.stream.Collectors.toList());
|
||||
if (mainIds.isEmpty()) {
|
||||
return java.util.Collections.emptyList();
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<TaskList> query = new LambdaQueryWrapper<>();
|
||||
query.in(TaskList::getId, mainIds);
|
||||
query.and(w -> w.lt(TaskList::getSecretLevel, finalUserSecLevel).or().isNull(TaskList::getSecretLevel));
|
||||
if (keyword != null && !keyword.trim().isEmpty()) {
|
||||
query.like(TaskList::getTasklistName, keyword.trim());
|
||||
}
|
||||
query.orderByAsc(TaskList::getCreateTime);
|
||||
com.baomidou.mybatisplus.core.metadata.IPage<TaskList> page = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(pageNo, pageSize);
|
||||
com.baomidou.mybatisplus.core.metadata.IPage<TaskList> pageResult = taskListMapper.selectPage(page, query);
|
||||
return enrichListSummaries(pageResult.getRecords(), userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int countMyCollabLists(String keyword) {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
String userId = loginUser.getId();
|
||||
Integer userSecLevel = loginUser.getUserSecurityLevel();
|
||||
if (userSecLevel == null) {
|
||||
userSecLevel = 3;
|
||||
}
|
||||
final Integer finalUserSecLevel = userSecLevel;
|
||||
|
||||
LambdaQueryWrapper<TaskListPermission> permQuery = new LambdaQueryWrapper<>();
|
||||
permQuery.eq(TaskListPermission::getUserId, userId);
|
||||
permQuery.ne(TaskListPermission::getPermission, "1");
|
||||
List<TaskListPermission> perms = taskListPermissionMapper.selectList(permQuery);
|
||||
|
||||
List<String> mainIds = perms.stream().map(TaskListPermission::getMainId).collect(java.util.stream.Collectors.toList());
|
||||
if (mainIds.isEmpty()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<TaskList> query = new LambdaQueryWrapper<>();
|
||||
query.in(TaskList::getId, mainIds);
|
||||
query.and(w -> w.lt(TaskList::getSecretLevel, finalUserSecLevel).or().isNull(TaskList::getSecretLevel));
|
||||
if (keyword != null && !keyword.trim().isEmpty()) {
|
||||
query.like(TaskList::getTasklistName, keyword.trim());
|
||||
}
|
||||
return taskListMapper.selectCount(query).intValue();
|
||||
}
|
||||
|
||||
private String normalizePid(String pid) {
|
||||
return oConvertUtils.isNotEmpty(pid) ? pid : null;
|
||||
}
|
||||
@@ -859,12 +1009,42 @@ public class TaskListServiceImpl extends ServiceImpl<TaskListMapper, TaskList> i
|
||||
return taskListDetialMapper.selectByAssigneeId(loginUser.getId(), loginUser.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaskListDetial> myResponsibleTasksPage(Integer pageNo, Integer pageSize) {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
if (pageNo == null || pageNo < 1) pageNo = 1;
|
||||
if (pageSize == null || pageSize < 1) pageSize = 50;
|
||||
int offset = (pageNo - 1) * pageSize;
|
||||
return taskListDetialMapper.selectByAssigneeIdPage(loginUser.getId(), loginUser.getId(), offset, pageSize);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int countMyResponsibleTasks() {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
return taskListDetialMapper.countByAssigneeId(loginUser.getId(), loginUser.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaskListDetial> myFollowedTasks() {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
return taskListDetialMapper.selectByFollowersId(loginUser.getId(), loginUser.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaskListDetial> myFollowedTasksPage(Integer pageNo, Integer pageSize) {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
if (pageNo == null || pageNo < 1) pageNo = 1;
|
||||
if (pageSize == null || pageSize < 1) pageSize = 50;
|
||||
int offset = (pageNo - 1) * pageSize;
|
||||
return taskListDetialMapper.selectByFollowersIdPage(loginUser.getId(), loginUser.getId(), offset, pageSize);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int countMyFollowedTasks() {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
return taskListDetialMapper.countByFollowersId(loginUser.getId(), loginUser.getId());
|
||||
}
|
||||
|
||||
private String getSecretText(Integer level) {
|
||||
if (level == null) return "非密";
|
||||
switch (level) {
|
||||
|
||||
Reference in New Issue
Block a user