From 7e7db2fa55a9a3af46d4fd8ede0dee147f101d64 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 09 五月 2020 21:41:27 +0800
Subject: [PATCH] 2.1需求

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/push/DeviceTokenHWServiceImpl.java |   39 +++++++++++++++++++++++++++++++--------
 1 files changed, 31 insertions(+), 8 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/push/DeviceTokenHWServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/push/DeviceTokenHWServiceImpl.java
index 5b03516..ef76ef9 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/push/DeviceTokenHWServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/push/DeviceTokenHWServiceImpl.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.push.DeviceTokenHWMapper;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
@@ -20,29 +21,32 @@
 	private DeviceTokenHWMapper deviceTokenHWMapper;
 
 	@Override
-	public List<DeviceTokenHW> getDeviceTokenList(int page, int pageSize) {
-		return deviceTokenHWMapper.selectList((page - 1) * pageSize, pageSize);
+	public List<DeviceTokenHW> getDeviceTokenList(int page, int pageSize, List<Integer> versionList) {
+		return deviceTokenHWMapper.selectList((page - 1) * pageSize, pageSize, versionList);
 	}
 
 	@Override
-	public Long getDeviceTokenCount() {
-		Long count = deviceTokenHWMapper.selectCount();
+	public Long countDeviceToken(List<Integer> versionList) {
+		Long count = deviceTokenHWMapper.selectCount(versionList);
 		return count == null ? 0 : count;
 	}
 
+	@Transactional
 	@Override
-	public void addDeviceToken(String token, String device, Long uid) {
+	public void addDeviceToken(String token, String device, Long uid, int version) {
 		if (StringUtil.isNullOrEmpty(device))
 			return;
 		//
 		if (uid != null && uid == 0)
 			uid = null;
 
-		List<DeviceTokenHW> list = deviceTokenHWMapper.selectByDevice(device);
+		List<DeviceTokenHW> list = deviceTokenHWMapper.selectByDeviceForUpdate(device);
 		if (list == null || list.size() == 0) {
 			DeviceTokenHW deviceTokenHW = new DeviceTokenHW();
 			deviceTokenHW.setDevice(device);
 			deviceTokenHW.setDeviceToken(token);
+			deviceTokenHW.setDeviceTokenMd5(StringUtil.Md5(token));
+			deviceTokenHW.setVersion(version);
 			deviceTokenHW.setUpdateTime(new Date());
 			if (uid != null)
 				deviceTokenHW.setUser(new UserInfo(uid));
@@ -51,8 +55,11 @@
 			for (DeviceTokenHW deviceTokenHW : list) {
 				DeviceTokenHW update = new DeviceTokenHW();
 				update.setId(deviceTokenHW.getId());
-				if (!StringUtil.isNullOrEmpty(token))
+				if (!StringUtil.isNullOrEmpty(token)) {
 					update.setDeviceToken(token);
+					update.setDeviceTokenMd5(StringUtil.Md5(token));
+					update.setVersion(version);
+				}
 				update.setUpdateTime(new Date());
 				if (uid != null)
 					update.setUser(new UserInfo(uid));
@@ -65,7 +72,7 @@
 	public List<DeviceTokenHW> getDeviceTokenByUid(Long uid) {
 		if (uid == null)
 			return null;
-		return deviceTokenHWMapper.selectByUid(uid);
+		return deviceTokenHWMapper.selectByUid(uid, null);
 	}
 
 	@Override
@@ -80,4 +87,20 @@
 		}
 	}
 
+	@Override
+	public void bindUid(String device, Long uid) {
+		deviceTokenHWMapper.bindUidByDevice(uid, device);
+	}
+
+	@Override
+	public List<DeviceTokenHW> getDeviceTokenByUid(Long uid, List<Integer> versionList) {
+		if (uid == null)
+			return null;
+
+		if (versionList != null && versionList.size() == 0)
+			return null;
+
+		return deviceTokenHWMapper.selectByUid(uid, versionList);
+	}
+
 }

--
Gitblit v1.8.0