dcs 1 年之前
父节点
当前提交
7a3d58cf66

+ 17 - 8
virgo.manager/src/main/java/com/bosshand/virgo/controller/MessageController.java

@@ -1,18 +1,16 @@
 package com.bosshand.virgo.controller;
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-
 import com.alibaba.fastjson.JSONObject;
 import com.bosshand.virgo.core.response.Response;
 import com.bosshand.virgo.message.model.NotificationMessage;
 import com.bosshand.virgo.message.service.MessageService;
-
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 @RestController
 @RequestMapping(value = "message")
@@ -21,6 +19,17 @@ public class MessageController {
     @Autowired
     private MessageService messageService;
 
+    @ApiOperation("分页获取消息列表")
+    @RequestMapping(value = "/{currPage}/{pageSize}", method = RequestMethod.POST)
+    public Response list(@RequestBody NotificationMessage notificationMessage, @PathVariable int currPage, @PathVariable int pageSize) {
+        int totalCount = messageService.getTotalCount(notificationMessage);
+        List<NotificationMessage> dataList = messageService.getLimit(notificationMessage, currPage, pageSize);
+        Map<String, Object> result = new HashMap<>();
+        result.put("dataList", dataList);
+        result.put("totalCount", totalCount);
+        return Response.ok(result);
+    }
+
     @ApiOperation(value = "个人消息列表", notes = "个人消息列表")
     @RequestMapping(value = "/{userId}", method = RequestMethod.GET)
     public Response getByUserId(@PathVariable long userId) {

+ 16 - 11
virgo.manager/src/main/java/com/bosshand/virgo/message/dao/NotificationMessageDao.java

@@ -2,6 +2,7 @@ package com.bosshand.virgo.message.dao;
 
 import com.bosshand.virgo.message.model.NotificationMessage;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.HashMap;
 import java.util.List;
@@ -9,22 +10,26 @@ import java.util.List;
 @Mapper
 public interface NotificationMessageDao {
 
-	public List<NotificationMessage> getMessageByUserId(long userId);
-	
-	public List<NotificationMessage> getMessageByMessageType(int messageType, long userId);
+    int getTotalCount(NotificationMessage notificationMessage);
 
-	public List<NotificationMessage> getMessageByViewed(long userId, boolean viewed);
+    List<NotificationMessage> getLimit(@Param("p") NotificationMessage p, @Param("currIndex") int currIndex, @Param("pageSize") int pageSize);
 
-	public NotificationMessage get(long id);
+    List<NotificationMessage> getMessageByUserId(long userId);
 
-	public int insert(NotificationMessage notificationMessage);
+    List<NotificationMessage> getMessageByMessageType(int messageType, long userId);
 
-	public int updateViewed(long id);
-	
-	public int updatePushed(long id);
+    List<NotificationMessage> getMessageByViewed(long userId, boolean viewed);
 
-	public List<NotificationMessage> getList();
+    NotificationMessage get(long id);
 
-	List<HashMap<Integer,Long>> countUnread(long userId);
+    int insert(NotificationMessage notificationMessage);
+
+    int updateViewed(long id);
+
+    int updatePushed(long id);
+
+    List<NotificationMessage> getList();
+
+    List<HashMap<Integer, Long>> countUnread(long userId);
 
 }

+ 34 - 34
virgo.manager/src/main/java/com/bosshand/virgo/message/model/NotificationMessage.java

@@ -22,7 +22,7 @@ public class NotificationMessage implements Serializable {
     @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     Date sentTime;
 
-    boolean viewed;
+    Boolean viewed;
 
     long userId;
 
@@ -30,32 +30,16 @@ public class NotificationMessage implements Serializable {
 
     String sendUserName;
 
-    boolean systemMessage;
+    Boolean systemMessage;
 
     /**
      * push to app
      */
-    boolean pushed;
+    Boolean pushed;
 
     String json;
 
-    private int isCC;
-
-    public int getIsCC() {
-        return isCC;
-    }
-
-    public void setIsCC(int isCC) {
-        this.isCC = isCC;
-    }
-
-    public String getTitle() {
-        return title;
-    }
-
-    public void setTitle(String title) {
-        this.title = title;
-    }
+    Boolean isCC;
 
     public long getId() {
         return id;
@@ -73,6 +57,14 @@ public class NotificationMessage implements Serializable {
         this.message = message;
     }
 
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
     public int getMessageType() {
         return messageType;
     }
@@ -89,6 +81,14 @@ public class NotificationMessage implements Serializable {
         this.sentTime = sentTime;
     }
 
+    public Boolean getViewed() {
+        return viewed;
+    }
+
+    public void setViewed(Boolean viewed) {
+        this.viewed = viewed;
+    }
+
     public long getUserId() {
         return userId;
     }
@@ -105,27 +105,27 @@ public class NotificationMessage implements Serializable {
         this.sender = sender;
     }
 
-    public boolean isSystemMessage() {
-        return systemMessage;
+    public String getSendUserName() {
+        return sendUserName;
     }
 
-    public void setSystemMessage(boolean systemMessage) {
-        this.systemMessage = systemMessage;
+    public void setSendUserName(String sendUserName) {
+        this.sendUserName = sendUserName;
     }
 
-    public boolean isViewed() {
-        return viewed;
+    public Boolean getSystemMessage() {
+        return systemMessage;
     }
 
-    public void setViewed(boolean viewed) {
-        this.viewed = viewed;
+    public void setSystemMessage(Boolean systemMessage) {
+        this.systemMessage = systemMessage;
     }
 
-    public boolean isPushed() {
+    public Boolean getPushed() {
         return pushed;
     }
 
-    public void setPushed(boolean pushed) {
+    public void setPushed(Boolean pushed) {
         this.pushed = pushed;
     }
 
@@ -137,11 +137,11 @@ public class NotificationMessage implements Serializable {
         this.json = json;
     }
 
-    public String getSendUserName() {
-        return sendUserName;
+    public Boolean getCC() {
+        return isCC;
     }
 
-    public void setSendUserName(String sendUserName) {
-        this.sendUserName = sendUserName;
+    public void setCC(Boolean CC) {
+        isCC = CC;
     }
 }

+ 9 - 0
virgo.manager/src/main/java/com/bosshand/virgo/message/service/MessageService.java

@@ -54,6 +54,15 @@ public class MessageService {
 		return notificationMessageDao.get(id);
 	}
 
+	public int getTotalCount(NotificationMessage notificationMessage) {
+		return notificationMessageDao.getTotalCount(notificationMessage);
+	}
+
+	public List<NotificationMessage> getLimit(NotificationMessage notificationMessage, int currPage, int pageSize) {
+		int currIndex = (currPage - 1) * pageSize;
+		return notificationMessageDao.getLimit(notificationMessage, currIndex, pageSize);
+	}
+
 	public List<NotificationMessage> getMessageByUserId(long userId) {
 		return notificationMessageDao.getMessageByUserId(userId);
 	}

+ 30 - 1
virgo.manager/src/main/resources/mapper/NotificationMessage.xml

@@ -20,8 +20,37 @@
 	</resultMap>
 	
 	<sql id="query">
-		SELECT *, b.name as sendUserName FROM mgr_user_message a LEFT JOIN mgr_user b on a.sender = b.id
+		SELECT a.*, b.name as sendUserName FROM mgr_user_message a LEFT JOIN mgr_user b on a.sender = b.id
 	</sql>
+
+	<select id="getTotalCount" parameterType="com.bosshand.virgo.message.model.NotificationMessage" resultType="Integer">
+		SELECT count(*) FROM mgr_user_message
+		<where>
+			<if test="message != null">and message = #{message}</if>
+			<if test="title != null">and title = #{title}</if>
+			<if test="messageType != 0">and messageType = #{messageType}</if>
+			<if test="viewed != null">and viewed = #{viewed}</if>
+			<if test="userId != 0">and userId = #{userId}</if>
+			<if test="sender != null">and sender = #{sender}</if>
+			<if test="pushed != null">and pushed = #{pushed}</if>
+			<if test="isCC != null">and isCC = #{isCC}</if>
+		</where>
+	</select>
+
+	<select id="getLimit" resultMap="NotificationMessageResult">
+		<include refid="query"/>
+		<where>
+			<if test="p.message != null">and a.message = #{p.message}</if>
+			<if test="p.title != null">and a.title = #{p.title}</if>
+			<if test="p.messageType != 0">and a.messageType = #{p.messageType}</if>
+			<if test="p.viewed != null">and a.viewed = #{p.viewed}</if>
+			<if test="p.userId != 0">and a.userId = #{p.userId}</if>
+			<if test="p.sender != null">and a.sender = #{p.sender}</if>
+			<if test="p.pushed != null">and a.pushed = #{p.pushed}</if>
+			<if test="p.isCC != null">and a.isCC = #{p.isCC}</if>
+		</where>
+		order by a.sentTime desc limit #{currIndex} , #{pageSize}
+	</select>
 	
 	<insert id="insert">
 		INSERT INTO mgr_user_message(messageType, title, message, sentTime, viewed, userId, sender, systemMessage, pushed, json, isCC) VALUES