From 744594ef1a2f530fc3e86ea9dc48b62247f79420 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 19 五月 2020 17:13:23 +0800
Subject: [PATCH] 饿了么绘图,添加口碑

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/push/XMPushServiceImpl.java |  179 +++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 125 insertions(+), 54 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/push/XMPushServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/push/XMPushServiceImpl.java
index 680c6b5..ce8c2f3 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/push/XMPushServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/push/XMPushServiceImpl.java
@@ -1,19 +1,22 @@
 package com.yeshi.fanli.service.impl.push;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.annotation.Resource;
 
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
-import com.yeshi.fanli.dao.mybatis.AppVersionInfoMapper;
-import com.yeshi.fanli.entity.AppVersionInfo;
+import com.yeshi.fanli.dto.push.PushTypeEnum;
 import com.yeshi.fanli.entity.bus.user.AccountMessage;
+import com.yeshi.fanli.entity.push.DeviceTokenXM;
 import com.yeshi.fanli.entity.system.SystemZnx;
 import com.yeshi.fanli.entity.xinge.MessageInfo;
 import com.yeshi.fanli.entity.xinge.PushRecord;
-import com.yeshi.fanli.exception.PushException;
+import com.yeshi.fanli.exception.push.PushException;
 import com.yeshi.fanli.log.PushLogHelper;
+import com.yeshi.fanli.service.inter.push.DeviceTokenXMService;
 import com.yeshi.fanli.service.inter.push.XMPushService;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.push.PushUtils;
@@ -24,17 +27,35 @@
 public class XMPushServiceImpl implements XMPushService {
 
 	@Resource
-	private AppVersionInfoMapper appVersionInfoMapper;
+	private DeviceTokenXMService deviceTokenXMService;
 
+	private List<String> getRegIds(Long uid) {
+		List<DeviceTokenXM> list = deviceTokenXMService.listByUid(uid);
+
+		List<String> regIds = new ArrayList<>();
+		if (list != null)
+			for (DeviceTokenXM token : list)
+				regIds.add(token.getRegisterId());
+		return regIds;
+	}
+
+	@Async("pushExecutor")
 	@Override
-	public void pushGoods(Long uid, Long auctionId, String title, String content) throws PushException {
+	public void pushGoods(Long uid, Long auctionId, String title, String content, String versions)
+			throws PushException {
+
 		String gid = auctionId + "";
 		JSONObject json = new JSONObject();
 		// json.put("url", "http://item.taobao.com/item.htm?id=" + gid);// IOS浣跨敤
 		json.put("id", gid);
-		json.put("type", "goodsdetail");
+		json.put("type", PushTypeEnum.goodsdetail.name());
 		json.put("miPushUrl", String.format("%s.ui.recommend.GoodsBrowserActivity",
 				Constant.systemCommonConfig.getAndroidBaseactivityName()));
+
+		// 鐗堟湰鎺ㄩ��
+		if (versions != null && versions.trim().length() > 0) {
+			json.put("app_version", versions);
+		}
 
 		MessageInfo info = new MessageInfo();
 		info.setTitle(title);
@@ -55,18 +76,25 @@
 		} else {
 			info.setAlias(uid + "");
 			// 灏忕背 鍗曟帹
-			PushUtils.singlePushXiaoMi(info, json, pushRecord);
+			PushUtils.singlePushXiaoMi(info, json, getRegIds(uid), pushRecord);
 		}
 	}
 
+	@Async("pushExecutor")
 	@Override
-	public void pushUrl(Long uid, String url, String title, String content) throws PushException {
+	public void pushUrl(Long uid, String url, String title, String content, String versions) throws PushException {
+
 		JSONObject json = new JSONObject();
 		json.put("url", url);
-		json.put("type", "url");
+		json.put("type", PushTypeEnum.url.name());
 		json.put("webUrl", url);
 		json.put("miPushUrl", String.format("%s.ui.invite.ShareBrowserActivity",
 				Constant.systemCommonConfig.getAndroidBaseactivityName()));
+
+		// 鐗堟湰鎺ㄩ��
+		if (versions != null && versions.trim().length() > 0) {
+			json.put("app_version", versions);
+		}
 
 		MessageInfo info = new MessageInfo();
 		info.setTitle(title);
@@ -88,19 +116,18 @@
 			}
 		} else {
 			info.setAlias(uid + "");
-			PushUtils.singlePushXiaoMi(info, json, pushRecord);
+			PushUtils.singlePushXiaoMi(info, json, getRegIds(uid), pushRecord);
 		}
-
 	}
 
+	@Async("pushExecutor")
 	@Override
-	public void pushZNX(Long uId, AccountMessage msg, SystemZnx systemZNX) throws PushException {
-		MessageInfo info = new MessageInfo();
+	public void pushZNX(Long uId, AccountMessage msg, SystemZnx systemZNX, String versions) throws PushException {
 
+		MessageInfo info = new MessageInfo();
 		info.setPackageName(Constant.systemCommonConfig.getAndroidPackageName());
 
 		JSONObject contentJson = new JSONObject();
-
 		contentJson.put("isOpen", 0);
 		contentJson.put("createTime", java.lang.System.currentTimeMillis());
 
@@ -116,10 +143,15 @@
 			contentJson.put("id", id);
 
 			JSONObject json = new JSONObject();
-			json.put("type", "ZNX");
+			json.put("type", PushTypeEnum.ZNX.name());
 			json.put("content", contentJson);
-			json.put("miPushUrl", String.format("%s.ui.mine.AppMailDetailActivity",
-					Constant.systemCommonConfig.getAndroidBaseactivityName()));
+			json.put("miPushUrl",
+					String.format("%s.ui.main.MainActivity", Constant.systemCommonConfig.getAndroidBaseactivityName()));
+
+			// 鐗堟湰鎺ㄩ��
+			if (versions != null && versions.trim().length() > 0) {
+				json.put("app_version", versions);
+			}
 
 			PushRecord pushRecord = new PushRecord();
 
@@ -145,27 +177,38 @@
 			contentJson.put("id", msg.getId() + "");
 
 			JSONObject json = new JSONObject();
-			json.put("type", "ZNX");
+			json.put("type", PushTypeEnum.ZNX.name());
 			json.put("content", contentJson);
-			json.put("miPushUrl", String.format("%s.ui.mine.AppMailDetailActivity",
-					Constant.systemCommonConfig.getAndroidBaseactivityName()));
+			json.put("miPushUrl",
+					String.format("%s.ui.main.MainActivity", Constant.systemCommonConfig.getAndroidBaseactivityName()));
+
+			// 鐗堟湰鎺ㄩ��
+			if (versions != null && versions.trim().length() > 0) {
+				json.put("app_version", versions);
+			}
+
 			// 灏忕背 鍗曟帹
 			try {
-				PushUtils.singlePushXiaoMi(info, json, pushRecord);
+				PushUtils.singlePushXiaoMi(info, json, getRegIds(uId), pushRecord);
 			} catch (Exception e) {
 				PushLogHelper.xmError(e);
 			}
 		}
 	}
 
+	@Async("pushExecutor")
 	@Override
-	public void pushWEEX(Long uid, String title, String content, String weexUrl) throws PushException {
-		// TODO 鎺ㄩ�亀eex椤甸潰
+	public void pushWEEX(Long uid, String title, String content, String weexUrl, String versions) throws PushException {
+
 		JSONObject json = new JSONObject();
 		json.put("url", weexUrl);
-		json.put("type", "weex");
-		// 璁剧疆鍙帹閫佺増鏈�,1.4.8浠ュ悗鐨勭増鏈彲鎺ㄩ��
-		json.put("app_version", getVersionByMinVersionCode(31));
+		json.put("type", PushTypeEnum.weex.name());
+
+		// 鐗堟湰鎺ㄩ��
+		if (versions != null && versions.trim().length() > 0) {
+			json.put("app_version", versions);
+		}
+
 		MessageInfo info = new MessageInfo();
 		info.setTitle(title);
 		info.setContent(content);
@@ -186,32 +229,22 @@
 			}
 		} else {
 			info.setAlias(uid + "");
-			PushUtils.singlePushXiaoMi(info, json, pushRecord);
+			PushUtils.singlePushXiaoMi(info, json, getRegIds(uid), pushRecord);
 		}
 	}
 
-	private String getVersionByMinVersionCode(int versionCode) {
-		List<AppVersionInfo> list = appVersionInfoMapper
-				.listByPlatformAndMinVersionCode(AppVersionInfo.PLATFORM_ANDROID, versionCode);
-		String versions = "";
-		if (list != null)
-			for (AppVersionInfo appVersion : list) {
-				versions += appVersion.getVersion() + ",";
-
-			}
-		if (versions.endsWith(","))
-			versions = versions.substring(0, versions.length() - 1);
-
-		return versions;
-	}
-
+	@Async("pushExecutor")
 	@Override
-	public void pushBaiChuanUrl(Long uid, String title, String content, String url) throws PushException {
+	public void pushBaiChuanUrl(Long uid, String title, String content, String url, String versions)
+			throws PushException {
+
 		JSONObject json = new JSONObject();
 		json.put("url", url);
-		json.put("type", "baichuan");
-		// 璁剧疆鍙帹閫佺増鏈�,1.4.8浠ュ悗鐨勭増鏈彲鎺ㄩ��
-		json.put("app_version", getVersionByMinVersionCode(31));
+		json.put("type", PushTypeEnum.baichuan.name());
+		// 鐗堟湰鎺ㄩ��
+		if (versions != null && versions.trim().length() > 0) {
+			json.put("app_version", versions);
+		}
 
 		MessageInfo info = new MessageInfo();
 		info.setTitle(title);
@@ -231,20 +264,22 @@
 			}
 		} else {
 			info.setAlias(uid + "");
-			PushUtils.singlePushXiaoMi(info, json, pushRecord);
+			PushUtils.singlePushXiaoMi(info, json, getRegIds(uid), pushRecord);
 		}
-
 	}
 
+	@Async("pushExecutor")
 	@Override
-	public void pushWelfareCenter(Long uid, String title, String content) throws PushException {
+	public void pushWelfareCenter(Long uid, String title, String content, String versions) throws PushException {
+
 		JSONObject json = new JSONObject();
-		json.put("type", "welfare");
+		json.put("type", PushTypeEnum.welfare.name());
 		json.put("miPushUrl", String.format("%s.ui.mine.WelfareCenterActivity",
 				Constant.systemCommonConfig.getAndroidBaseactivityName()));
-
-		// 1.5.1涔嬪悗鐨勭増鏈彲鎺ㄩ��
-		json.put("app_version", getVersionByMinVersionCode(36));
+		// 鐗堟湰鎺ㄩ��
+		if (versions != null && versions.trim().length() > 0) {
+			json.put("app_version", versions);
+		}
 
 		MessageInfo info = new MessageInfo();
 		info.setTitle(title);
@@ -266,7 +301,43 @@
 			}
 		} else {
 			info.setAlias(uid + "");
-			PushUtils.singlePushXiaoMi(info, json, pushRecord);
+			PushUtils.singlePushXiaoMi(info, json, getRegIds(uid), pushRecord);
+		}
+	}
+
+	@Override
+	public void pushUserSignInNotification(Long uid, String title, String content, String versions)
+			throws PushException {
+		JSONObject json = new JSONObject();
+		json.put("type", PushTypeEnum.signin.name());
+		json.put("miPushUrl", String.format("%s.ui.goldtask.GoldTaskActivity",
+				Constant.systemCommonConfig.getAndroidBaseactivityName()));
+		// 鐗堟湰鎺ㄩ��
+		if (versions != null && versions.trim().length() > 0) {
+			json.put("app_version", versions);
+		}
+
+		MessageInfo info = new MessageInfo();
+		info.setTitle(title);
+		info.setContent(content);
+		info.setDescription(content);
+		// 灏忕背鎺ㄩ�佺綉椤�
+		info.setPackageName(Constant.systemCommonConfig.getAndroidPackageName());
+		info.setActivty(String.format("%s.ui.goldtask.GoldTaskActivity",
+				Constant.systemCommonConfig.getAndroidBaseactivityName()));
+
+		PushRecord pushRecord = new PushRecord();
+
+		// 灏忕背 鍏ㄦ帹
+		if (uid == null || uid == 0) {
+			try {
+				PushUtils.allPushXiaoMi(info, json, pushRecord);
+			} catch (Exception e) {
+				PushLogHelper.xmError(e);
+			}
+		} else {
+			info.setAlias(uid + "");
+			PushUtils.singlePushXiaoMi(info, json, getRegIds(uid), pushRecord);
 		}
 	}
 

--
Gitblit v1.8.0