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/util/push/XiaoMiPushUtil.java |  108 ++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 80 insertions(+), 28 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/util/push/XiaoMiPushUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/push/XiaoMiPushUtil.java
index 831dedb..c44ede6 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/push/XiaoMiPushUtil.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/push/XiaoMiPushUtil.java
@@ -1,6 +1,7 @@
 package com.yeshi.fanli.util.push;
 
 import java.io.IOException;
+import java.util.List;
 import java.util.Map;
 
 import javax.annotation.PostConstruct;
@@ -8,21 +9,20 @@
 import org.json.simple.parser.ParseException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.yeshi.utils.JsonUtil;
 
 import com.xiaomi.xmpush.server.Constants;
 import com.xiaomi.xmpush.server.Message;
 import com.xiaomi.xmpush.server.Message.Builder;
 import com.xiaomi.xmpush.server.Result;
 import com.xiaomi.xmpush.server.Sender;
-import com.yeshi.fanli.entity.system.System;
 import com.yeshi.fanli.entity.xinge.MessageInfo;
 import com.yeshi.fanli.entity.xinge.PushRecord;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.log.PushLogHelper;
-import com.yeshi.fanli.service.inter.config.SystemService;
+import com.yeshi.fanli.service.inter.config.BusinessSystemService;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.PropertiesUtil;
-import org.yeshi.utils.JsonUtil;
 
 import net.sf.json.JSONObject;
 
@@ -32,12 +32,12 @@
 	private static XiaoMiPushUtil xiaoMiPushUtil;
 
 	@Autowired
-	private SystemService systemService;
+	private BusinessSystemService businessSystemService;
 
 	@PostConstruct
 	public void init() {
 		xiaoMiPushUtil = this;
-		xiaoMiPushUtil.systemService = this.systemService;
+		xiaoMiPushUtil.businessSystemService = this.businessSystemService;
 	}
 
 	// AppKey
@@ -57,6 +57,9 @@
 	 * @return
 	 */
 	public static String allPushAndroidForXM(MessageInfo info, Map<String, Object> map) {
+		if (Constant.IS_TEST)
+			return null;
+
 		String name = info.getPackageName();
 		if (!Constant.systemCommonConfig.getAndroidPackageName().equalsIgnoreCase(name)
 				&& !Constant.systemCommonConfig.getIosBundleId().equalsIgnoreCase(name)) {
@@ -73,6 +76,7 @@
 
 		Message message = null; // 鍋氬惊鐜紶鏉ョ殑key
 		Builder builder = new Message.Builder().restrictedPackageName(PackageName).title(title).payload(payload)
+				.notifyId((int) (Math.random() * Integer.MAX_VALUE))
 				.description(description).passThrough(0) // 璁剧疆娑堟伅鏄惁閫氳繃閫忎紶鏂瑰紡鑷矨pp,
 															// 1琛ㄧず閫忎紶锛�0琛ㄧず閫氱煡鏍忔秷鎭紙榛樿锛�
 				.notifyType(1); // 璁剧疆閫氱煡绫诲瀷, type绫诲瀷(1-榛樿鎻愮ず闊�, 2-浣跨敤榛樿闇囧姩鎻愮ず,
@@ -96,6 +100,60 @@
 	}
 
 	/**
+	 * 鎵归噺鎺ㄩ��
+	 * 
+	 * @param info
+	 * @param map
+	 * @param regList
+	 *            鏈�澶т釜鏁颁负1000
+	 * @return
+	 */
+	public static String pushBatchAndroidForXM(MessageInfo info, Map<String, Object> map, List<String> regList) {
+		if (Constant.IS_TEST)
+			return null;
+		if (regList == null || regList.size() == 0)
+			return "";
+
+		String name = info.getPackageName();
+		if (!Constant.systemCommonConfig.getAndroidPackageName().equalsIgnoreCase(name)
+				&& !Constant.systemCommonConfig.getIosBundleId().equalsIgnoreCase(name)) {
+			return null;
+		}
+
+		// 浠巌nfo涓彇椤甸潰浼犳潵鐨勫��
+		Constants.useOfficial(); // 鍚姩鎺ㄩ�佹柟娉�
+		String PackageName = info.getPackageName();
+		Sender sender = new Sender(XIAOMI_F_ANDROID_APP_SECERT); // 鐢宠鐨凙ppSecert
+		String title = info.getTitle();
+		String payload = info.getContent();
+		String description = info.getContent();
+
+		Message message = null; // 鍋氬惊鐜紶鏉ョ殑key
+		Builder builder = new Message.Builder().restrictedPackageName(PackageName).title(title).payload(payload)
+				.notifyId((int) (Math.random() * Integer.MAX_VALUE))
+				.description(description).passThrough(0) // 璁剧疆娑堟伅鏄惁閫氳繃閫忎紶鏂瑰紡鑷矨pp,
+															// 1琛ㄧず閫忎紶锛�0琛ㄧず閫氱煡鏍忔秷鎭紙榛樿锛�
+				.notifyType(1); // 璁剧疆閫氱煡绫诲瀷, type绫诲瀷(1-榛樿鎻愮ず闊�, 2-浣跨敤榛樿闇囧姩鎻愮ず,
+								// 3-浣跨敤榛樿led鐏厜鎻愮ず)
+		// 灏唀xtra鏀惧叆MessageInfo瀵硅薄涓紝 寰幆閬嶅巻extra涓殑key 鍜� value
+		if (map != null) {
+			for (String key : map.keySet()) {
+				builder.extra(key, map.get(key).toString());
+			}
+		}
+		message = builder.build();
+		try {
+			Result result = sender.send(message, regList, 3);
+			return result.getMessageId();// 鎴愬姛 杩斿洖娑堟伅鐨処d锛� 澶辫触杩斿洖null
+		} catch (IOException e) {
+			e.printStackTrace();
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+	/**
 	 * 
 	 * 鏂规硶璇存槑: 灏忕背鎺ㄩ�佸畨鍗擄紙鍗曟帹锛�
 	 * 
@@ -105,7 +163,8 @@
 	 * @param system
 	 * @return
 	 */
-	public static String singlePushAndroidForXM(MessageInfo info, Map<String, Object> map, System system) {
+	public static String singlePushAndroidForXM(MessageInfo info, Map<String, Object> map, List<String> regIds,
+			System system) {
 		String name = info.getPackageName();
 		if (!Constant.systemCommonConfig.getAndroidPackageName().equalsIgnoreCase(name)
 				&& !Constant.systemCommonConfig.getIosBundleId().equalsIgnoreCase(name)) {
@@ -121,8 +180,10 @@
 		Message message = null; // 鍋氬惊鐜紶鏉ョ殑key
 		Builder builder = new Message.Builder().restrictedPackageName(PackageName).title(title).description(content)
 				.passThrough(0) // 璁剧疆娑堟伅鏄惁閫氳繃閫忎紶鏂瑰紡鑷矨pp, 1琛ㄧず閫忎紶锛�0琛ㄧず閫氱煡鏍忔秷鎭紙榛樿锛�
-				.notifyType(1); // 璁剧疆閫氱煡绫诲瀷, type绫诲瀷(1-榛樿鎻愮ず闊�, 2-浣跨敤榛樿闇囧姩鎻愮ず,
-								// 3-浣跨敤榛樿led鐏厜鎻愮ず)
+				.notifyId((int) (Math.random() * Integer.MAX_VALUE)).notifyType(1); // 璁剧疆閫氱煡绫诲瀷,
+																					// type绫诲瀷(1-榛樿鎻愮ず闊�,
+																					// 2-浣跨敤榛樿闇囧姩鎻愮ず,
+		// 3-浣跨敤榛樿led鐏厜鎻愮ず)
 		// 灏唀xtra鏀惧叆MessageInfo瀵硅薄涓紝 寰幆閬嶅巻extra涓殑key 鍜� value
 		if (map != null) {
 			for (String key : map.keySet()) {
@@ -131,7 +192,8 @@
 		}
 		message = builder.build();
 		try {
-			Result result = sender.sendToAlias(message, uId, 3);
+			Result result = sender.send(message, regIds, 3); // sender.sendToAlias(message,
+																// uId, 3);
 			PushLogHelper.xmInfo("鎺ㄩ�佺粨鏋�:" + result.getReason());
 			return result.getMessageId();
 		} catch (IOException e) {
@@ -149,14 +211,13 @@
 	 * @author mawurui createTime 2018骞�3鏈�8鏃� 涓婂崍9:55:14
 	 * @param info
 	 */
-	public static void pushByHongBao(String alias, System system) {
+	public static void pushByHongBao(List<String> regIds, System system) {
 		MessageInfo info = new MessageInfo();
-		info.setAlias(alias);
 		info.setTitle("鏂板埌绾㈠寘");
 		info.setDescription("绾㈠寘鍒版潵浜�...");
 		JSONObject jsonObject = new JSONObject();
 		jsonObject.put("type", "hongbao");
-		XiaoMiPushUtil.singlePushAndroidForXM(info, JsonUtil.parseData(jsonObject), system);
+		XiaoMiPushUtil.singlePushAndroidForXM(info, JsonUtil.parseData(jsonObject), regIds, system);
 	}
 
 	/**
@@ -166,14 +227,13 @@
 	 * @author mawurui createTime 2018骞�3鏈�8鏃� 涓婂崍10:00:16
 	 * @param info
 	 */
-	public static void pushByApply(String alias, System system) {
+	public static void pushByApply(List<String> regIds, System system) {
 		MessageInfo info = new MessageInfo();
-		info.setAlias(alias);
 		info.setTitle("鎻愮幇鐢宠");
 		info.setDescription("鎻愮幇瀹℃牳涓�...");
 		JSONObject jsonObject = new JSONObject();
 		jsonObject.put("type", "cash");
-		XiaoMiPushUtil.singlePushAndroidForXM(info, JsonUtil.parseData(jsonObject), system);
+		XiaoMiPushUtil.singlePushAndroidForXM(info, JsonUtil.parseData(jsonObject), regIds, system);
 	}
 
 	/**
@@ -185,9 +245,8 @@
 	 * @param state
 	 * @param system
 	 */
-	public static void pushByExtract(String alias, int state, System system) {
+	public static void pushByExtract(List<String> regIds, int state, System system) {
 		MessageInfo info = new MessageInfo();
-		info.setAlias(alias);
 		if (state == 0) {
 			info.setTitle("鎻愮幇鎴愬姛");
 			info.setDescription("鎮ㄦ湁涓�绗斾氦鏄擄紝宸叉彁鐜版垚鍔燂紒");
@@ -200,13 +259,7 @@
 		}
 		JSONObject jsonObject = new JSONObject();
 		jsonObject.put("type", "cash");
-		XiaoMiPushUtil.singlePushAndroidForXM(info, JsonUtil.parseData(jsonObject), system);
-	}
-
-	public static int allFanLiQuanDevice(MessageInfo info, JSONObject json, PushRecord pushRecord) {
-		System b_android = xiaoMiPushUtil.systemService.getSystem("ANDROID",
-				Constant.systemCommonConfig.getAndroidPackageName());
-		return pushApp(info, json, pushRecord, b_android);
+		XiaoMiPushUtil.singlePushAndroidForXM(info, JsonUtil.parseData(jsonObject), regIds, system);
 	}
 
 	/**
@@ -220,7 +273,7 @@
 		// jsonXm 杞崲涓� map
 		JSONObject mapXm = JSONObject.fromObject(json);
 		String android = allPushAndroidForXM(info, mapXm);
-		LogHelper.userInfo("瀹夊崜鎺ㄩ�佹祴璇曪細" + android);
+		LogHelper.userInfo("灏忕背鎺ㄩ�侊細" + android);
 		pushRecord.setAndroidPushId(android);
 		if (android != null) {
 			return 1;
@@ -229,12 +282,11 @@
 		}
 	}
 
-	public static void pushZNX(Long uid, String title, String content, String msgId) {
+	public static void pushZNX(List<String> regIds, String title, String content, String msgId) {
 		// 灏忕背寮�濮嬫帹閫�
 		MessageInfo info = new MessageInfo();
 		info.setActivty(
 				String.format("%s.ui.BrowserActivity", Constant.systemCommonConfig.getAndroidBaseactivityName()));
-		info.setAlias(uid + "");
 		info.setTitle(title);
 		info.setContent(content);
 		info.setPackageName(Constant.systemCommonConfig.getAndroidPackageName());
@@ -251,7 +303,7 @@
 		contentJson.put("createTime", java.lang.System.currentTimeMillis());
 		json.put("content", contentJson);
 		JSONObject mapXm = JSONObject.fromObject(json);
-		XiaoMiPushUtil.singlePushAndroidForXM(info, mapXm, null);
+		XiaoMiPushUtil.singlePushAndroidForXM(info, mapXm, regIds, null);
 	}
 
 }

--
Gitblit v1.8.0