From 77d72d1d78606fa480fd506421eb095023c06aae Mon Sep 17 00:00:00 2001 From: wanghao Date: Wed, 11 Feb 2026 15:33:14 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SysMessageNoticeServiceImpl.java | 70 +++++++------------ 1 file changed, 25 insertions(+), 45 deletions(-) diff --git a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/message/service/impl/SysMessageNoticeServiceImpl.java b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/message/service/impl/SysMessageNoticeServiceImpl.java index 75262bd..961a953 100644 --- a/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/message/service/impl/SysMessageNoticeServiceImpl.java +++ b/jeecg-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/message/service/impl/SysMessageNoticeServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; import org.jeecg.common.exception.ExceptionAssertsUtil; import org.jeecg.common.system.vo.LoginUser; @@ -53,7 +54,7 @@ public class SysMessageNoticeServiceImpl extends ServiceImpl queryPageList(SysMessageNoticeQuery query, Page page) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - setQueryData(query, wrapper, NoticeConstants.QUERY_SOURCE_ADMIN); + setQueryData(query, wrapper); Page resultPage = this.page(page, wrapper); if (CollUtil.isEmpty(resultPage.getRecords())) { return new Page<>(); @@ -65,8 +66,16 @@ public class SysMessageNoticeServiceImpl extends ServiceImpl queryPageAppList(SysMessageNoticeQuery query, Page page) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - setQueryData(query, wrapper, NoticeConstants.QUERY_SOURCE_APP); + LoginUser loginUser = GlobalUtils.getLoginUser(); + // 构建范围过滤条件:用户ID + 组织树 + List scopes = new ArrayList<>(); + scopes.add(loginUser.getId()); + scopes.addAll(GlobalUtils.getOrgCodeTreeByCode(loginUser.getOrgCode())); + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(SysMessageNotice.class); + wrapper.leftJoin(SysMessageNoticeScope.class, SysMessageNoticeScope::getNoticeId, SysMessageNotice::getId); + wrapper.in(SysMessageNoticeScope::getScopeId, scopes); + wrapper.distinct(); return this.page(page, wrapper).getRecords(); } @@ -151,30 +160,22 @@ public class SysMessageNoticeServiceImpl extends ServiceImpl wrapper, Integer source) { + private void setQueryData(SysMessageNoticeQuery query, LambdaQueryWrapper wrapper) { // 设置权限过滤 - applyPermissionFilter(wrapper, source); - if (NoticeConstants.QUERY_SOURCE_ADMIN.equals(source)) { - // 设置查询条件 - applyQueryConditions(query, wrapper); - } - // 设置排序 + applyAdminPermissionFilter(wrapper); wrapper.orderByDesc(SysMessageNotice::getCreateTime); - } - - /** - * 应用权限过滤 - * - * @param wrapper 查询包装器 - * @param source 查询来源 - */ - private void applyPermissionFilter(LambdaQueryWrapper wrapper, Integer source) { - if (NoticeConstants.QUERY_SOURCE_ADMIN.equals(source)) { - applyAdminPermissionFilter(wrapper); - } else if (NoticeConstants.QUERY_SOURCE_APP.equals(source)) { - applyAppPermissionFilter(wrapper); + if (query == null) { + return; + } + if (StrUtil.isNotEmpty(query.getTitle())) { + wrapper.like(SysMessageNotice::getTitle, query.getTitle()); + } + if (StrUtil.isNotEmpty(query.getScopeType())) { + wrapper.eq(SysMessageNotice::getScopeType, query.getScopeType()); + } + if (ObjUtil.isNotEmpty(query.getStartDate()) && ObjUtil.isNotEmpty(query.getEndDate())) { + wrapper.between(SysMessageNotice::getCreateTime, DateUtil.beginOfDay(query.getStartDate()), DateUtil.endOfDay(query.getEndDate())); } } @@ -239,27 +240,6 @@ public class SysMessageNoticeServiceImpl extends ServiceImpl wrapper) { - if (query == null) { - return; - } - if (StrUtil.isNotEmpty(query.getTitle())) { - wrapper.like(SysMessageNotice::getTitle, query.getTitle()); - } - if (StrUtil.isNotEmpty(query.getScopeType())) { - wrapper.eq(SysMessageNotice::getScopeType, query.getScopeType()); - } - if (ObjUtil.isNotEmpty(query.getStartDate()) && ObjUtil.isNotEmpty(query.getEndDate())) { - wrapper.between(SysMessageNotice::getCreateTime, DateUtil.beginOfDay(query.getStartDate()), DateUtil.endOfDay(query.getEndDate())); - } - } - /** * 设置结果数据 * 将消息通知列表转换为VO列表,并填充范围信息