From 28cf328a098334b51a3e9d2d56f983fb8c862211 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 23 五月 2020 09:54:38 +0800
Subject: [PATCH] 足迹、收藏订单兼容新需求

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgDeviceReadStateServiceImpl.java |   21 ++++++++++++++++++---
 1 files changed, 18 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 7438db7..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
@@ -6,6 +6,7 @@
 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;
@@ -31,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);
@@ -47,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());
@@ -97,4 +104,12 @@
 		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