dcs 1 年之前
父节点
当前提交
3f22a368c9

+ 1 - 7
virgo.manager/src/main/java/com/bosshand/virgo/controller/MessageController.java

@@ -75,13 +75,7 @@ public class MessageController {
     @ApiOperation(value = "根据type统计未读消息", notes = "根据type统计未读消息")
     @RequestMapping(value = "/countUnread/messageType/{userId}/{messageType}", method = RequestMethod.GET)
     public Response countUnread(@PathVariable int messageType, @PathVariable long userId) {
-        return Response.ok(messageService.count(messageType, userId, false));
-    }
-
-    @ApiOperation(value = "根据type统计已读消息", notes = "根据type统计已读消息")
-    @RequestMapping(value = "/countRead/messageType/{userId}/{messageType}", method = RequestMethod.GET)
-    public Response countRead(@PathVariable int messageType, @PathVariable long userId) {
-        return Response.ok(messageService.count(messageType, userId, true));
+        return Response.ok(messageService.countUnread(messageType, userId));
     }
 
 }

+ 3 - 1
virgo.manager/src/main/java/com/bosshand/virgo/message/dao/NotificationMessageDao.java

@@ -3,6 +3,7 @@ package com.bosshand.virgo.message.dao;
 import com.bosshand.virgo.message.model.NotificationMessage;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.HashMap;
 import java.util.List;
 
 @Mapper
@@ -24,5 +25,6 @@ public interface NotificationMessageDao {
 
 	public List<NotificationMessage> getList();
 
-    List<NotificationMessage> count(int messageType, long userId, boolean viewed);
+	List<HashMap<Integer,Long>> countUnread(int messageType, long userId);
+
 }

+ 3 - 6
virgo.manager/src/main/java/com/bosshand/virgo/message/service/MessageService.java

@@ -13,10 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Service
 public class MessageService {
@@ -65,8 +62,8 @@ public class MessageService {
 		return notificationMessageDao.getMessageByMessageType(messageType, userId);
 	}
 
-	public List<NotificationMessage> count(int messageType, long userId, boolean viewed) {
-		return notificationMessageDao.count(messageType, userId, viewed);
+	public List<HashMap<Integer,Long>> countUnread(int messageType, long userId) {
+		return notificationMessageDao.countUnread(messageType, userId);
 	}
 
 	public List<NotificationMessage> getMessageByViewed(long userId, boolean viewed) {

+ 2 - 3
virgo.manager/src/main/resources/mapper/NotificationMessage.xml

@@ -52,9 +52,8 @@
 		where a.userId = #{userId} and a.viewed = #{viewed} order by a.sentTime DESC
 	</select>
 
-	<select id="count" resultMap="NotificationMessageResult">
-		<include refid="query"/>
-		where a.userId = #{userId} and a.messageType = #{messageType} and a.viewed = #{viewed} order by a.sentTime DESC
+	<select id="countUnread" resultType="java.util.HashMap">
+		SELECT messageType, COUNT(DISTINCT id) as 'count' FROM mgr_user_message where userId = #{userId} and messageType = #{messageType} and viewed = 0 GROUP BY messageType
 	</select>
 
 	<update id="updateViewed">