优化工作日志分页查询逻辑和排序条件。

This commit is contained in:
furongxin 2024-09-20 21:55:05 +08:00
parent ad7aae0daf
commit 7a041e64f1

View File

@ -57,9 +57,6 @@ public interface LogInstanceMapper extends BaseMapperX<LogInstanceDO> {
queryWrapper.selectAs("COALESCE(c.readCount, 0)", LogInstanceRespVO::getReadCount); queryWrapper.selectAs("COALESCE(c.readCount, 0)", LogInstanceRespVO::getReadCount);
queryWrapper.selectAs("COALESCE(d.unreadCount, 0)", LogInstanceRespVO::getUnreadCount); queryWrapper.selectAs("COALESCE(d.unreadCount, 0)", LogInstanceRespVO::getUnreadCount);
queryWrapper.selectAs("COALESCE(b.comment, 0)", LogInstanceRespVO::getComment); queryWrapper.selectAs("COALESCE(b.comment, 0)", LogInstanceRespVO::getComment);
queryWrapper.innerJoin(UserPostDO.class, "userPost", UserPostDO::getUserId, LogInstanceDO::getStartUserId);
queryWrapper.innerJoin(DeptDO.class, "dept", DeptDO::getId, LogInstanceDO::getDeptId);
queryWrapper.innerJoin(PostDO.class, "post", PostDO::getId, UserPostDO::getPostId);
queryWrapper.leftJoin(LogReadDo.class, "e", on -> on queryWrapper.leftJoin(LogReadDo.class, "e", on -> on
.eq(LogReadDo::getLogInstanceId, LogInstanceDO::getId) .eq(LogReadDo::getLogInstanceId, LogInstanceDO::getId)
.eq(LogReadDo::getReadUserId, userId) .eq(LogReadDo::getReadUserId, userId)
@ -67,6 +64,7 @@ public interface LogInstanceMapper extends BaseMapperX<LogInstanceDO> {
queryWrapper.leftJoin("(SELECT log_instance_id, COUNT(log_instance_id) AS readCount FROM work_log_read where read_status = 1 GROUP BY log_instance_id) c on t.id = c.log_instance_id"); queryWrapper.leftJoin("(SELECT log_instance_id, COUNT(log_instance_id) AS readCount FROM work_log_read where read_status = 1 GROUP BY log_instance_id) c on t.id = c.log_instance_id");
queryWrapper.leftJoin("(SELECT log_instance_id, COUNT(log_instance_id) AS unReadCount FROM work_log_read where read_status = 0 GROUP BY log_instance_id) AS d ON t.id = d.log_instance_id"); queryWrapper.leftJoin("(SELECT log_instance_id, COUNT(log_instance_id) AS unReadCount FROM work_log_read where read_status = 0 GROUP BY log_instance_id) AS d ON t.id = d.log_instance_id");
queryWrapper.leftJoin("(SELECT work_log_id, COUNT(work_log_id) AS comment FROM work_log_comment GROUP BY work_log_id) AS b ON t.id = b.work_log_id"); queryWrapper.leftJoin("(SELECT work_log_id, COUNT(work_log_id) AS comment FROM work_log_comment GROUP BY work_log_id) AS b ON t.id = b.work_log_id");
// queryWrapper.eq(pagingType == 1, LogInstanceDO::getStartUserId, userId);
queryWrapper.eqIfPresent(LogInstanceDO::getDeptId, reqVO.getDeptId()); queryWrapper.eqIfPresent(LogInstanceDO::getDeptId, reqVO.getDeptId());
queryWrapper.eqIfPresent(LogInstanceDO::getFormId, reqVO.getFormId()); queryWrapper.eqIfPresent(LogInstanceDO::getFormId, reqVO.getFormId());
queryWrapper.eqIfPresent(LogInstanceDO::getStartUserId, reqVO.getStartUserId()); queryWrapper.eqIfPresent(LogInstanceDO::getStartUserId, reqVO.getStartUserId());
@ -82,15 +80,15 @@ public interface LogInstanceMapper extends BaseMapperX<LogInstanceDO> {
if (reqVO.getIsProduce() != null && reqVO.getIsProduce() == 2) { if (reqVO.getIsProduce() != null && reqVO.getIsProduce() == 2) {
queryWrapper.notLike(DeptDO::getFlag, "166"); queryWrapper.notLike(DeptDO::getFlag, "166");
} }
if (pagingType == 0) {
queryWrapper.ne(LogInstanceDO::getStartUserId, userId);
}
if (pagingType == 1) {
queryWrapper.eq(LogInstanceDO::getStartUserId, userId);
}
queryWrapper.groupBy(LogInstanceDO::getId); queryWrapper.groupBy(LogInstanceDO::getId);
queryWrapper.orderByDesc(LogInstanceDO::getTime); queryWrapper.orderByDesc(LogInstanceDO::getTime);
if (pagingType == 0) {
queryWrapper.innerJoin(UserPostDO.class, "userPost", UserPostDO::getUserId, LogInstanceDO::getStartUserId);
queryWrapper.innerJoin(DeptDO.class, "dept", DeptDO::getId, LogInstanceDO::getDeptId);
queryWrapper.innerJoin(PostDO.class, "post", PostDO::getId, UserPostDO::getPostId);
queryWrapper.ne(LogInstanceDO::getStartUserId, userId);
queryWrapper.orderByAsc(PostDO::getSort); queryWrapper.orderByAsc(PostDO::getSort);
}
queryWrapper.orderByDesc(LogInstanceDO::getCreateTime); queryWrapper.orderByDesc(LogInstanceDO::getCreateTime);
return selectJoinPage(page, LogInstanceRespVO.class, queryWrapper); return selectJoinPage(page, LogInstanceRespVO.class, queryWrapper);