diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysNoticeController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysNoticeController.java index c0f6635e8..3ae141aec 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysNoticeController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysNoticeController.java @@ -54,7 +54,6 @@ public class SysNoticeController extends BaseController /** * 根据通知公告编号获取详细信息 */ - @RequiresPermissions("system:notice:query") @GetMapping(value = "/{noticeId}") public AjaxResult getInfo(@PathVariable Long noticeId) { @@ -125,6 +124,19 @@ public class SysNoticeController extends BaseController return success(); } + /** + * 已读用户列表数据 + */ + @RequiresPermissions("system:notice:list") + @GetMapping("/readUsers/list") + @ResponseBody + public TableDataInfo readUsersList(Long noticeId, String searchValue) + { + startPage(); + List list = noticeReadService.selectReadUsersByNoticeId(noticeId, searchValue); + return getDataTable(list); + } + /** * 删除通知公告 */ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeReadMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeReadMapper.java index 173e6cf30..529b8e142 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeReadMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeReadMapper.java @@ -1,9 +1,10 @@ package com.ruoyi.system.mapper; import java.util.List; +import java.util.Map; import org.apache.ibatis.annotations.Param; -import com.ruoyi.system.domain.SysNoticeRead; import com.ruoyi.system.domain.SysNotice; +import com.ruoyi.system.domain.SysNoticeRead; /** * 公告已读记录 数据层 @@ -55,6 +56,15 @@ public interface SysNoticeReadMapper */ public List selectNoticeListWithReadStatus(@Param("userId") Long userId, @Param("limit") int limit); + /** + * 查询已阅读某公告的用户列表 + * + * @param noticeId 公告ID + * @param searchValue 搜索值 + * @return 已读用户列表 + */ + public List> selectReadUsersByNoticeId(@Param("noticeId") Long noticeId, @Param("searchValue") String searchValue); + /** * 公告删除时清理对应已读记录 * diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeReadService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeReadService.java index 8b6902768..56e958a32 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeReadService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeReadService.java @@ -1,6 +1,7 @@ package com.ruoyi.system.service; import java.util.List; +import java.util.Map; import com.ruoyi.system.domain.SysNotice; /** @@ -43,6 +44,15 @@ public interface ISysNoticeReadService */ public void markReadBatch(Long userId, Long[] noticeIds); + /** + * 查询已阅读某公告的用户列表 + * + * @param noticeId 公告ID + * @param searchValue 搜索值 + * @return 已读用户列表 + */ + public List> selectReadUsersByNoticeId(Long noticeId, String searchValue); + /** * 删除公告时清理对应已读记录 * diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java index fb1e420fd..7252dc22c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java @@ -49,7 +49,7 @@ public interface ISysNoticeService * @return 结果 */ public int deleteNoticeById(Long noticeId); - + /** * 批量删除公告信息 * diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeReadServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeReadServiceImpl.java index 7c6c00acd..f8e63a650 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeReadServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeReadServiceImpl.java @@ -1,10 +1,11 @@ package com.ruoyi.system.service.impl; import java.util.List; +import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ruoyi.system.domain.SysNoticeRead; import com.ruoyi.system.domain.SysNotice; +import com.ruoyi.system.domain.SysNoticeRead; import com.ruoyi.system.mapper.SysNoticeReadMapper; import com.ruoyi.system.service.ISysNoticeReadService; @@ -62,6 +63,15 @@ public class SysNoticeReadServiceImpl implements ISysNoticeReadService noticeReadMapper.insertNoticeReadBatch(userId, noticeIds); } + /** + * 查询已阅读某公告的用户列表 + */ + @Override + public List> selectReadUsersByNoticeId(Long noticeId, String searchValue) + { + return noticeReadMapper.selectReadUsersByNoticeId(noticeId, searchValue); + } + /** * 删除公告时清理对应已读记录 */ diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysNoticeReadMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysNoticeReadMapper.xml index 3af8092e9..86e5136dd 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysNoticeReadMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysNoticeReadMapper.xml @@ -63,4 +63,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + diff --git a/ruoyi-ui/src/api/system/notice.js b/ruoyi-ui/src/api/system/notice.js index c620e4753..6f048071b 100644 --- a/ruoyi-ui/src/api/system/notice.js +++ b/ruoyi-ui/src/api/system/notice.js @@ -68,3 +68,12 @@ export function markNoticeReadAll(ids) { params: { ids } }) } + +// 查询公告已读用户列表 +export function listNoticeReadUsers(query) { + return request({ + url: '/system/notice/readUsers/list', + method: 'get', + params: query + }) +} diff --git a/ruoyi-ui/src/layout/components/HeaderNotice/DetailView.vue b/ruoyi-ui/src/layout/components/HeaderNotice/DetailView.vue new file mode 100644 index 000000000..e547a969f --- /dev/null +++ b/ruoyi-ui/src/layout/components/HeaderNotice/DetailView.vue @@ -0,0 +1,362 @@ + + + + + diff --git a/ruoyi-ui/src/layout/components/HeaderNotice/index.vue b/ruoyi-ui/src/layout/components/HeaderNotice/index.vue index 6ee927375..161d91edb 100644 --- a/ruoyi-ui/src/layout/components/HeaderNotice/index.vue +++ b/ruoyi-ui/src/layout/components/HeaderNotice/index.vue @@ -23,38 +23,24 @@ {{ unreadCount }} - -
- - {{ previewNoticeType === '1' ? '通知' : '公告' }} - - {{ previewCreateBy }} - {{ previewCreateTime }} -
-
-
-
+ + + diff --git a/ruoyi-ui/src/views/system/notice/index.vue b/ruoyi-ui/src/views/system/notice/index.vue index 8d5f32107..5b0f0b60c 100644 --- a/ruoyi-ui/src/views/system/notice/index.vue +++ b/ruoyi-ui/src/views/system/notice/index.vue @@ -72,12 +72,11 @@ - + + +