From 2fbed9fdece4f168a4ab4036af4c93342ff44a27 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Tue, 17 Aug 2021 12:25:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AE=9A=E6=97=B6=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=9C=AA=E8=AF=BB=E6=B6=88=E6=81=AF=E6=9D=A1=E6=95=B0=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/service/impl/ShiroServiceImpl.java | 2 + .../controller/sys/MsgController.java | 12 ++++ .../service/message/SysMsgService.java | 7 +++ frontend/src/api/system/msg.js | 9 +++ .../src/components/Notification/index.vue | 58 ++++++++++++++----- frontend/src/utils/request.js | 5 +- 6 files changed, 75 insertions(+), 18 deletions(-) diff --git a/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java index 68c20a92f2..8ebf604a00 100644 --- a/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java +++ b/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java @@ -45,6 +45,8 @@ public class ShiroServiceImpl implements ShiroService { //验证链接 filterChainDefinitionMap.put("/api/link/validate**", ANON); filterChainDefinitionMap.put("/api/map/areaEntitys/**", ANON); + //未读消息数量 + filterChainDefinitionMap.put("/api/sys_msg/unReadCount", ANON); filterChainDefinitionMap.put("/**/*.json", ANON); filterChainDefinitionMap.put("/system/ui/**", ANON); diff --git a/backend/src/main/java/io/dataease/controller/sys/MsgController.java b/backend/src/main/java/io/dataease/controller/sys/MsgController.java index 1b4ce8bc8f..729edbae37 100644 --- a/backend/src/main/java/io/dataease/controller/sys/MsgController.java +++ b/backend/src/main/java/io/dataease/controller/sys/MsgController.java @@ -6,6 +6,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport; import io.dataease.base.domain.SysMsgChannel; import io.dataease.base.domain.SysMsgSetting; import io.dataease.base.domain.SysMsgType; +import io.dataease.commons.exception.DEException; import io.dataease.commons.utils.AuthUtils; import io.dataease.commons.utils.PageUtils; import io.dataease.commons.utils.Pager; @@ -21,6 +22,7 @@ import org.apache.commons.lang3.ObjectUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; @Api(tags = "系统:消息管理") @@ -46,6 +48,16 @@ public class MsgController { return listPager; } + @ApiOperation("查询未读数量") + @PostMapping("/unReadCount") + public Long unReadCount(@RequestBody Map request) { + if(null == request || null == request.get("userId")) { + throw new RuntimeException("缺少用户ID"); + } + Long userId = request.get("userId"); + return sysMsgService.queryCount(userId); + } + @ApiOperation("设置已读") @PostMapping("/setReaded/{msgId}") public void setReaded(@PathVariable Long msgId) { diff --git a/backend/src/main/java/io/dataease/service/message/SysMsgService.java b/backend/src/main/java/io/dataease/service/message/SysMsgService.java index 0bfa10c343..798e0b42a2 100644 --- a/backend/src/main/java/io/dataease/service/message/SysMsgService.java +++ b/backend/src/main/java/io/dataease/service/message/SysMsgService.java @@ -105,6 +105,13 @@ public class SysMsgService { return msgGridDtos; } + public Long queryCount(Long userId) { + SysMsgExample example = new SysMsgExample(); + SysMsgExample.Criteria criteria = example.createCriteria(); + criteria.andUserIdEqualTo(userId).andStatusEqualTo(false); + return sysMsgMapper.countByExample(example); + } + public void setReaded(Long msgId) { SysMsg sysMsg = new SysMsg(); sysMsg.setMsgId(msgId); diff --git a/frontend/src/api/system/msg.js b/frontend/src/api/system/msg.js index 83accc340f..45ac7c687b 100644 --- a/frontend/src/api/system/msg.js +++ b/frontend/src/api/system/msg.js @@ -9,6 +9,15 @@ export function query(pageIndex, pageSize, data) { }) } +export function unReadCount(data) { + return request({ + url: '/api/sys_msg/unReadCount', + method: 'post', + loading: false, + data + }) +} + export function updateStatus(msgId) { return request({ url: '/api/sys_msg/setReaded/' + msgId, diff --git a/frontend/src/components/Notification/index.vue b/frontend/src/components/Notification/index.vue index 6e0d6cae1a..fa07c8e79d 100644 --- a/frontend/src/components/Notification/index.vue +++ b/frontend/src/components/Notification/index.vue @@ -53,14 +53,14 @@ class-name="notification" icon-class="notification" /> - {{ paginationConfig.total }} + {{ count || paginationConfig.total }}