From ec11034c61b31f9f99e0c6c99fb54fc4bc517b50 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Mon, 13 Apr 2026 13:33:44 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E7=9F=A5=E5=85=AC=E5=91=8A=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E9=98=85=E8=AF=BB=E7=94=A8=E6=88=B7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/SysNoticeController.java | 25 +- .../main/resources/static/ruoyi/js/ry-ui.js | 14 +- .../templates/system/notice/notice.html | 247 +++++++++--------- .../templates/system/notice/readUsers.html | 65 +++++ .../system/mapper/SysNoticeReadMapper.java | 12 +- .../system/service/ISysNoticeReadService.java | 10 + .../impl/SysNoticeReadServiceImpl.java | 12 +- .../mapper/system/SysNoticeReadMapper.xml | 22 ++ 8 files changed, 279 insertions(+), 128 deletions(-) create mode 100644 ruoyi-admin/src/main/resources/templates/system/notice/readUsers.html diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java index 5007d783..cd307c8c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java @@ -109,7 +109,6 @@ public class SysNoticeController extends BaseController /** * 查询公告详细 */ - @RequiresPermissions("system:notice:list") @GetMapping("/view/{noticeId}") public String view(@PathVariable("noticeId") Long noticeId, ModelMap mmap) { @@ -157,6 +156,30 @@ public class SysNoticeController extends BaseController return success(); } + /** + * 已读用户页面 + */ + @RequiresPermissions("system:notice:list") + @GetMapping("/readUsers/{noticeId}") + public String readUsers(@PathVariable("noticeId") Long noticeId, ModelMap mmap) + { + mmap.put("notice", noticeService.selectNoticeById(noticeId)); + return prefix + "/readUsers"; + } + + /** + * 已读用户列表数据 + */ + @RequiresPermissions("system:notice:list") + @PostMapping("/readUsers/list") + @ResponseBody + public TableDataInfo readUsersList(Long noticeId, String searchValue) + { + startPage(); + List list = noticeReadService.selectReadUsersByNoticeId(noticeId, searchValue); + return getDataTable(list); + } + /** * 删除公告 */ diff --git a/ruoyi-admin/src/main/resources/static/ruoyi/js/ry-ui.js b/ruoyi-admin/src/main/resources/static/ruoyi/js/ry-ui.js index 3901bc70..0a925ee0 100644 --- a/ruoyi-admin/src/main/resources/static/ruoyi/js/ry-ui.js +++ b/ruoyi-admin/src/main/resources/static/ruoyi/js/ry-ui.js @@ -993,13 +993,15 @@ var table = { closeItem(dataId); }, // 右侧弹出窗口打开 - popupRight: function(title, url){ - var width = 150; + popupRight: function(title, url, width, height) { + var defaultWidth = 150; if (top.location !== self.location) { if ($(top.window).outerWidth() < 400) { - width = 50; + defaultWidth = 50; } } + var finalWidth = width || ($(window).outerWidth() - defaultWidth) + 'px'; + var finalHeight = height || '100%'; top.layer.open({ type: 2, offset: 'r', @@ -1008,7 +1010,7 @@ var table = { title: title, shade: 0.3, shadeClose: true, - area: [($(window).outerWidth() - width) + 'px', '100%'], + area: [finalWidth, finalHeight], content: url }); }, @@ -1657,7 +1659,9 @@ var table = { if (!format) format = "yyyy-MM-dd"; switch (typeof date) { case "string": - date = new Date(date.replace(/-/g, "/")); + date = date.replace("T", " "); + date = date.replace(/-/g, "/"); + date = new Date(date); break; case "number": date = new Date(date); diff --git a/ruoyi-admin/src/main/resources/templates/system/notice/notice.html b/ruoyi-admin/src/main/resources/templates/system/notice/notice.html index 4ad5c895..954164e4 100644 --- a/ruoyi-admin/src/main/resources/templates/system/notice/notice.html +++ b/ruoyi-admin/src/main/resources/templates/system/notice/notice.html @@ -1,121 +1,128 @@ - - - - - - -
-
-
-
-
-
    -
  • - 公告标题: -
  • -
  • - 操作人员: -
  • -
  • - 公告类型: -
  • -
  • -  搜索 -  重置 -
  • -
-
-
-
- - - -
-
-
-
-
- - - + + + + + + +
+
+
+
+
+
    +
  • + 公告标题: +
  • +
  • + 操作人员: +
  • +
  • + 公告类型: +
  • +
  • +  搜索 +  重置 +
  • +
+
+
+
+ + + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/system/notice/readUsers.html b/ruoyi-admin/src/main/resources/templates/system/notice/readUsers.html new file mode 100644 index 00000000..60dba1cf --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/system/notice/readUsers.html @@ -0,0 +1,65 @@ + + + + + + +
+
+
+
+
+
+
+ + + + diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeReadMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeReadMapper.java index 69e9b8d6..4ee80a34 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeReadMapper.java +++ b/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; /** * 公告已读记录 数据层 @@ -62,4 +63,13 @@ public interface SysNoticeReadMapper * @return 结果 */ public int deleteByNoticeIds(@Param("noticeIds") String[] noticeIds); + + /** + * 查询已阅读某公告的用户列表 + * + * @param noticeId 公告ID + * @param searchValue 搜索值 + * @return 已读用户列表 + */ + public List> selectReadUsersByNoticeId(@Param("noticeId") Long noticeId, @Param("searchValue") String searchValue); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeReadService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeReadService.java index de1df9b4..8be59bb0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeReadService.java +++ b/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; /** @@ -49,4 +50,13 @@ public interface ISysNoticeReadService * @param ids 公告ID字符串(逗号分隔) */ public void deleteByNoticeIds(String ids); + + /** + * 查询已阅读某公告的用户列表 + * + * @param noticeId 公告ID + * @param searchValue 搜索值 + * @return 已读用户列表 + */ + public List> selectReadUsersByNoticeId(Long noticeId, String searchValue); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeReadServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeReadServiceImpl.java index e5b1e14e..a4ffa75a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeReadServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeReadServiceImpl.java @@ -1,11 +1,12 @@ 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.common.core.text.Convert; -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; @@ -71,4 +72,13 @@ public class SysNoticeReadServiceImpl implements ISysNoticeReadService { noticeReadMapper.deleteByNoticeIds(Convert.toStrArray(ids)); } + + /** + * 查询已阅读某公告的用户列表 + */ + @Override + public List> selectReadUsersByNoticeId(Long noticeId, String searchValue) + { + return noticeReadMapper.selectReadUsersByNoticeId(noticeId, searchValue); + } } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysNoticeReadMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysNoticeReadMapper.xml index 3af8092e..c0b3d22b 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysNoticeReadMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysNoticeReadMapper.xml @@ -63,4 +63,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + +