浏览代码

新增消息数量

hubin 1 年之前
父节点
当前提交
e740e3f2aa

+ 24 - 0
src/main/java/com/aizuda/boot/modules/system/entity/vo/InformMessageVO.java

@@ -10,13 +10,37 @@ import java.util.List;
 @Getter
 @Setter
 public class InformMessageVO {
+
+    @Schema(description = "总数量")
+    private Long totalNum;
+
+    @Schema(description = "通知总数量")
+    private Long noticeNum;
+
     @Schema(description = "通知")
     private List<SysMessage> noticeList;
 
+    @Schema(description = "消息总数量")
+    private Long messageNum;
+
     @Schema(description = "消息")
     private List<SysMessage> messageList;
 
+    @Schema(description = "待办总数量")
+    private Long todoNum;
+
     @Schema(description = "待办")
     private List<SysMessage> todoList;
 
+    public Long getNoticeNum() {
+        return null == noticeNum ? 0 : noticeNum;
+    }
+
+    public Long getMessageNum() {
+        return null == messageNum ? 0 : messageNum;
+    }
+
+    public Long getTodoNum() {
+        return null == todoNum ? 0 : todoNum;
+    }
 }

+ 19 - 9
src/main/java/com/aizuda/boot/modules/system/service/impl/SysMessageServiceImpl.java

@@ -12,8 +12,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
-
 /**
  * 系统消息表 服务实现类
  *
@@ -39,15 +37,27 @@ public class SysMessageServiceImpl extends BaseServiceImpl<SysMessageMapper, Sys
     public InformMessageVO getInformByUser() {
         UserSession userSession = UserSession.getLoginInfo();
         InformMessageVO vo = new InformMessageVO();
-        vo.setNoticeList(this.listCategoryByUser(userSession.getId(), 0));
-        vo.setMessageList(this.listCategoryByUser(userSession.getId(), 1));
-        vo.setTodoList(this.listCategoryByUser(userSession.getId(), 2));
+        // 通知
+        Page<SysMessage> noticePage = this.pageCategoryByUser(userSession.getId(), 0);
+        vo.setNoticeNum(noticePage.getTotal());
+        vo.setNoticeList(noticePage.getRecords());
+        // 消息
+        Page<SysMessage> messagePage = this.pageCategoryByUser(userSession.getId(), 1);
+        vo.setMessageNum(messagePage.getTotal());
+        vo.setMessageList(messagePage.getRecords());
+        // 待办
+        Page<SysMessage> todoPage = this.pageCategoryByUser(userSession.getId(), 2);
+        vo.setTodoNum(todoPage.getTotal());
+        vo.setTodoList(todoPage.getRecords());
+        // 总数量
+        vo.setTotalNum(vo.getNoticeNum() + vo.getMessageNum() + vo.getTodoNum());
         return vo;
     }
 
-    public List<SysMessage> listCategoryByUser(Long userId, Integer category) {
-        return lambdaQuery().select(SysMessage::getId, SysMessage::getTitle, SysMessage::getContent, SysMessage::getCreateTime)
-                .eq(SysMessage::getCategory, category).eq(SysMessage::getUserId, userId).eq(SysMessage::getViewed, 0)
-                .orderByDesc(SysMessage::getCreateTime).last("LIMIT 5").list();
+    public Page<SysMessage> pageCategoryByUser(Long userId, Integer category) {
+        return super.page(Page.of(1, 5), Wrappers.<SysMessage>lambdaQuery().select(SysMessage::getId, SysMessage::getTitle,
+                        SysMessage::getContent, SysMessage::getCreateTime).eq(SysMessage::getCategory, category)
+                .eq(SysMessage::getUserId, userId).eq(SysMessage::getViewed, 0).orderByDesc(SysMessage::getCreateTime));
     }
+
 }