From f652b25812e4d53d64311c442d231791a02d2caa Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Mon, 23 Sep 2024 00:29:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E6=88=91=E7=9A=84?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=9F=A5=E8=AF=A2=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dal/mysql/worklog/LogInstanceMapper.java | 41 ++------ .../worklog/LogInstanceServiceImpl.java | 8 +- .../mapper/worklog/LogInstanceMapper.xml | 99 +++++++------------ 3 files changed, 50 insertions(+), 98 deletions(-) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/worklog/LogInstanceMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/worklog/LogInstanceMapper.java index dd42948b..db0446d2 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/worklog/LogInstanceMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/worklog/LogInstanceMapper.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.dal.mysql.worklog; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; +import cn.iocoder.yudao.framework.datapermission.core.aop.DataPermissionContextHolder; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX; @@ -48,15 +49,18 @@ public interface LogInstanceMapper extends BaseMapperX { default IPage selectPageResult(@Param("page") IPage page, @Param("reqVO") LogInstancePageReqVO reqVO, @Param("userId") Long userId, - @Param("pagingType") Integer pagingType, @Param("userIds") List userIds) { + MPJLambdaWrapperX queryWrapper = new MPJLambdaWrapperX<>(); queryWrapper.selectAll(LogInstanceDO.class); queryWrapper.selectAs("e.read_status", LogInstanceRespVO::getReadStatus); queryWrapper.selectAs("COALESCE(c.readCount, 0)", LogInstanceRespVO::getReadCount); queryWrapper.selectAs("COALESCE(d.unreadCount, 0)", LogInstanceRespVO::getUnreadCount); 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 .eq(LogReadDo::getLogInstanceId, LogInstanceDO::getId) .eq(LogReadDo::getReadUserId, userId) @@ -64,12 +68,12 @@ public interface LogInstanceMapper extends BaseMapperX { 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 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::getFormId, reqVO.getFormId()); queryWrapper.eqIfPresent(LogInstanceDO::getStartUserId, reqVO.getStartUserId()); queryWrapper.betweenIfPresent(LogInstanceDO::getTime, reqVO.getCreateTime()); queryWrapper.inIfPresent(LogInstanceDO::getStartUserId, userIds); + queryWrapper.ne(LogInstanceDO::getStartUserId, userId); if (reqVO.getReadStatus() != null) { queryWrapper.eq("e.read_status", reqVO.getReadStatus()); @@ -82,40 +86,15 @@ public interface LogInstanceMapper extends BaseMapperX { } queryWrapper.groupBy(LogInstanceDO::getId); 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); return selectJoinPage(page, LogInstanceRespVO.class, queryWrapper); } - default PageResult selectPage(LogInstancePageReqVO reqVO, Long userId, - Integer pagingType, List userIds) { - - LambdaQueryWrapperX queryWrapper = new LambdaQueryWrapperX() - .eqIfPresent(LogInstanceDO::getFormId, reqVO.getFormId()) - .eqIfPresent(LogInstanceDO::getDeptId, reqVO.getDeptId()) - .eqIfPresent(LogInstanceDO::getStartUserId, reqVO.getStartUserId()) - .betweenIfPresent(LogInstanceDO::getTime, reqVO.getCreateTime()); - - if (pagingType == 0) { - queryWrapper.ne(LogInstanceDO::getStartUserId, userId); - } else if (pagingType == 1) { - queryWrapper.eq(LogInstanceDO::getStartUserId, userId); - } - - if (reqVO.getIsBoss() != null && reqVO.getIsProduce() == null) { - queryWrapper.inIfPresent(LogInstanceDO::getStartUserId, userIds); - } - - return selectPage(reqVO, queryWrapper.orderByDesc(LogInstanceDO::getTime)); - - } + IPage selectMyPageResult(@Param("page") IPage page, + @Param("reqVO") LogInstancePageReqVO reqVO, + @Param("userId") Long userId); @DataPermission(enable = false) List selectRaedUser(@Param("userId")Long userId, @Param("deptId")Long deptId); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/worklog/LogInstanceServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/worklog/LogInstanceServiceImpl.java index ce3cf11a..ebde0cd3 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/worklog/LogInstanceServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/worklog/LogInstanceServiceImpl.java @@ -245,7 +245,13 @@ public class LogInstanceServiceImpl implements LogInstanceService { } Page page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); - IPage pageList = logInstanceMapper.selectPageResult(page, pageReqVO, getLoginUserId(), pagingType, leaderUserIds); + IPage pageList = new Page<>(); + if (pagingType == 0) { + pageList = logInstanceMapper.selectPageResult(page, pageReqVO, getLoginUserId(), leaderUserIds); + }else if (pagingType == 1) { + pageList = logInstanceMapper.selectMyPageResult(page, pageReqVO, getLoginUserId()); + } + List records = pageList.getRecords(); if (!records.isEmpty()) { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/worklog/LogInstanceMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/worklog/LogInstanceMapper.xml index b3491b5b..d6c4932b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/worklog/LogInstanceMapper.xml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/worklog/LogInstanceMapper.xml @@ -153,70 +153,37 @@ limit 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file