From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 18 一月 2020 12:06:27 +0800
Subject: [PATCH] 用户注册信息

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgDeviceReadStateServiceImpl.java |   32 +++++++++++++++++++++++++++++---
 1 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgDeviceReadStateServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgDeviceReadStateServiceImpl.java
index 1f3fff7..7885691 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgDeviceReadStateServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgDeviceReadStateServiceImpl.java
@@ -1,10 +1,12 @@
 package com.yeshi.fanli.service.impl.msg;
 
 import java.util.Date;
+import java.util.List;
 
 import javax.annotation.Resource;
 
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import com.yeshi.fanli.dao.mybatis.msg.MsgDeviceReadStateMapper;
 import com.yeshi.fanli.entity.bus.msg.MsgDeviceReadState;
@@ -30,15 +32,17 @@
 	}
 
 	@Override
-	public void addUnreadDeviceMsg(String type, String device, int platform, int msgCount) {
+	public void addUnreadDeviceMsg(String type, String device, int platform, int msgCount, String msg, Date msgTime) {
 		MsgDeviceReadState state = msgDeviceReadStateMapper.selectByDeviceAndPlatformAndType(device, platform, type);
 		if (state != null) {
 			MsgDeviceReadState update = new MsgDeviceReadState();
 			update.setId(state.getId());
 			update.setUnReadCount(state.getUnReadCount() + msgCount);
 			update.setUpdateTime(new Date());
+			update.setLatestContent(msg);
+			update.setLatestContentTime(msgTime);
 			msgDeviceReadStateMapper.updateByPrimaryKeySelective(update);
-		} else {//
+		} else {
 			state = new MsgDeviceReadState();
 			state.setCreateTime(new Date());
 			state.setDevice(device);
@@ -46,13 +50,17 @@
 			state.setType(type);
 			state.setUnReadCount(msgCount);
 			state.setUpdateTime(new Date());
+			state.setLatestContent(msg);
+			state.setLatestContentTime(msgTime);
 			msgDeviceReadStateMapper.insertSelective(state);
 		}
 	}
 
+	@Transactional
 	@Override
 	public MsgDeviceReadState getByDeviceAndPlatformAndType(String type, String device, int platform) {
-		MsgDeviceReadState state = msgDeviceReadStateMapper.selectByDeviceAndPlatformAndType(device, platform, type);
+		MsgDeviceReadState state = msgDeviceReadStateMapper.selectByDeviceAndPlatformAndTypeForUpdate(device, platform,
+				type);
 		if (state == null) {
 			state = new MsgDeviceReadState();
 			state.setCreateTime(new Date());
@@ -86,4 +94,22 @@
 		}
 	}
 
+	@Override
+	public int getUnReadCount(String device, int platform) {
+		int totalCount = 0;
+		List<MsgDeviceReadState> stateList = msgDeviceReadStateMapper.listByDeviceAndPlatform(device, platform);
+		for (MsgDeviceReadState state : stateList) {
+			totalCount += state.getUnReadCount();
+		}
+		return totalCount;
+	}
+
+	@Override
+	public int getUnReadCount(String device, int platform, String type) {
+		MsgDeviceReadState state = getByDeviceAndPlatformAndType(type, device, platform);
+		if (state == null)
+			return 0;
+		return state.getUnReadCount() == null ? 0 : state.getUnReadCount();
+	}
+
 }

--
Gitblit v1.8.0