From 721a3a12cd1d77c79f9d0f28862a0acedbfcd1b0 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 11 Oct 2023 17:22:50 +0800
Subject: [PATCH] uni-push多人推送

---
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java |   61 ++++++++++++++++++++++--------
 1 files changed, 45 insertions(+), 16 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java
index 3389cd7..33d26e6 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/service/impl/PushServiceImpl.java
@@ -46,26 +46,28 @@
 
 		//uni-push 一次推送最多500名用户,所以分批推送
 		List<List<String>> groupList = groupListByQuantity(cIdList, 400);
-		groupList.forEach(item->{
+		Boolean push = false;
+		for(List<String> cids :groupList){
 			PushVO pushVO = new PushVO();
 
-			pushVO.setCIds(cIdList);
+			pushVO.setCIds(cids);
 			pushVO.setTitle(messageRecordList.get(0).getTheme());
 			pushVO.setContent(messageRecordList.get(0).getContent());
 
-			HashMap<String,Object> payload = new HashMap<>();
-			payload.put("title",messageRecordList.get(0).getTheme());
-			payload.put("content",messageRecordList.get(0).getContent());
-			payload.put("payload","test");
+			HashMap<String, Object> payload = new HashMap<>();
+			payload.put("title", messageRecordList.get(0).getTheme());
+			payload.put("content", messageRecordList.get(0).getContent());
+			payload.put("payload", "test");
 			pushVO.setPayload(payload);
-			 pushMessage(pushVO);
+			push = pushMessage(pushVO);
+		}
 
-		});
-		return true;
+		return push;
 	}
 
 	/**
 	 * 新增测试信息
+	 *
 	 * @param messageRecordList
 	 */
 	private void addSendMsgTest(List<MessageRecord> messageRecordList) {
@@ -120,10 +122,10 @@
 		cIdList.add(clientIdByUserId);
 		pushVO.setCIds(cIdList);
 
-		HashMap<String,Object> payload = new HashMap<>();
-		payload.put("title",pushVO.getTitle());
-		payload.put("content",pushVO.getContent());
-		payload.put("payload","test");
+		HashMap<String, Object> payload = new HashMap<>();
+		payload.put("title", pushVO.getTitle());
+		payload.put("content", pushVO.getContent());
+		payload.put("payload", "test");
 		pushVO.setPayload(payload);
 
 
@@ -136,6 +138,32 @@
 		cIdList.add(getClientIdByUserId(pushVO.getUserId()));
 //		return geTuiUtils.pushMsg(cIdList, pushVO.getTitle(), pushVO.getContent());
 		return geTuiUtils.myPushMessage(cIdList, pushVO.getTitle(), pushVO.getContent());
+	}
+
+	@Override
+	public Boolean pushMessageByUserList(PushVO pushVO) {
+
+		if (Func.isEmpty(pushVO.getUserId())) {
+			throw new ServiceException("请填写用户id!");
+		}
+
+		//获取userIdList
+		List<String> userIdList = Arrays.asList(pushVO.getUserId().split(","));
+		List<MessageRecord> messageRecordList = new ArrayList<>();
+
+		userIdList.forEach(userId->{
+			MessageRecord messageRecord = new MessageRecord();
+
+			messageRecord.setContent(pushVO.getContent());
+			messageRecord.setTheme(pushVO.getTitle());
+			messageRecord.setRecipient(userId);
+
+			messageRecordList.add(messageRecord);
+		});
+
+		Boolean aBoolean = pushMessageList(messageRecordList);
+
+		return aBoolean;
 	}
 
 	/**
@@ -169,7 +197,7 @@
 
 		params.put("requestId", UUID.randomUUID());
 
-		params.put("payload",pushVO.getPayload());
+		params.put("payload", pushVO.getPayload());
 		UniCloudReturnRes uniCloudReturnRes = template.postForObject(UNI_CLOUD_PUSH_URL, params, UniCloudReturnRes.class);
 		return uniCloudReturnRes.getErrCode().equals("0") ? true : false;
 
@@ -177,12 +205,13 @@
 
 	/**
 	 * 对集合按指定数量进行分组
-	 * @param list 分组的集合
+	 *
+	 * @param list     分组的集合
 	 * @param quantity 数量
 	 * @param <T>
 	 * @return
 	 */
-	public  <T> List<List<T>> groupListByQuantity(List list, int quantity) {
+	public <T> List<List<T>> groupListByQuantity(List list, int quantity) {
 		if (list == null || list.size() == 0) {
 			return list;
 		}

--
Gitblit v1.9.3