From e5c863dd36bb1fcfe5eee9fd0e83950f0230a37d Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 31 Jul 2023 10:55:55 +0800
Subject: [PATCH] uni-push 2.0
---
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/utils/GeTuiUtils.java | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 100 insertions(+), 0 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/utils/GeTuiUtils.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/utils/GeTuiUtils.java
index 6bd0ed4..5f8306d 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/utils/GeTuiUtils.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/push/utils/GeTuiUtils.java
@@ -33,6 +33,8 @@
@Resource(name = "myPushApi")
private PushApi myPushApi;
+ private final String APP_PACKAGE_NAME = "com.hubei.jingchuReservoir";
+
/**
* 单点推送(离线不推送)
*
@@ -158,6 +160,8 @@
IosDTO iosDTO = new IosDTO();
iosDTO.setAps(aps);
iosDTO.setType("notify");
+
+
PushChannel pushChannel = new PushChannel();
pushChannel.setIos(iosDTO);
//安卓离线厂商通道推送消息体
@@ -265,4 +269,100 @@
System.out.println("code:" + apiResult.getCode() + ", msg: " + apiResult.getMsg());
}
}
+
+ /**
+ * 自定义消息批量推送,支持离线和在线推送
+ * @param cids
+ * @param title
+ * @param content
+ */
+ public Boolean myPushMessage(List<String> cids,String title,String content){
+ List<PushDTO<Audience>> list = new ArrayList<>(cids.size());
+ cids.forEach(cid -> {
+ PushDTO<Audience> pushDTO = new PushDTO<>();
+ /**设置个推通道**/
+ // 唯一标识
+ pushDTO.setRequestId(UUID.randomUUID().toString());
+ // 消息内容
+ PushMessage pushMessage = new PushMessage();
+ //0无限制、1仅wifi
+ pushMessage.setNetworkType(0);
+
+ GTNotification gtNotification = new GTNotification();
+ pushMessage.setNotification(gtNotification);
+ gtNotification.setTitle(title);
+ gtNotification.setBody(content);
+ gtNotification.setClickType("none");
+ pushDTO.setPushMessage(pushMessage);
+
+ // 消息接受人
+ Audience audience = new Audience();
+ audience.addCid(cid);
+ pushDTO.setAudience(audience);
+ /**设置个推通道结束**/
+
+ //配置推送条件
+ // 1: 表示该消息在用户在线时推送个推通道,用户离线时推送厂商通道;
+ // 2: 表示该消息只通过厂商通道策略下发,不考虑用户是否在线;
+ // 3: 表示该消息只通过个推通道下发,不考虑用户是否在线;
+ // 4: 表示该消息优先从厂商通道下发,若消息内容在厂商通道代发失败后会从个推通道下发。
+ Strategy strategy = new Strategy();
+ strategy.setDef(1);
+ Settings settings = new Settings();
+ settings.setStrategy(strategy);
+ pushDTO.setSettings(settings);
+ settings.setTtl(3600000);//消息有效期,走厂商消息需要设置该值
+ /**设置厂商通道**/
+ PushChannel pushChannel = new PushChannel();
+ /**设置Android配置**/
+ AndroidDTO androidDTO = new AndroidDTO();
+ Ups ups = new Ups();
+ ThirdNotification notification1 = new ThirdNotification();
+ ups.setNotification(notification1);
+ notification1.setTitle(title);//安卓离线展示的标题
+ notification1.setBody(content);//安卓离线展示的内容
+ notification1.setClickType("intent");
+ notification1.setIntent("intent:#Intent;launchFlags=0x04000000;action=android.intent.action.oppopush;component=com.hubei.jingchuReservoir/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title="+title +";S.content="+content+";S.payload=test;end");
+
+ //对不同厂商进行配置
+// ups.addOption("HW", "/message/android/notification/badge/class", "io.dcloud.PandoraEntry ");
+ ups.addOption("VV","/networkType",-1);
+
+ androidDTO.setUps(ups);
+ pushChannel.setAndroid(androidDTO);
+ /**设置Android配置结束**/
+
+ /**设置IOS配置**/
+ //推送苹果离线通知标题内容
+ Alert alert = new Alert();
+ alert.setTitle(title);//苹果离线通知栏标题
+ alert.setBody(content);//苹果离线通知栏内容
+ Aps aps = new Aps();
+ //1表示静默推送(无通知栏消息),静默推送时不需要填写其他参数。
+ //苹果建议1小时最多推送3条静默消息
+ aps.setContentAvailable(0);
+ aps.setSound("default");
+ aps.setAlert(alert);
+ IosDTO iosDTO = new IosDTO();
+ iosDTO.setAps(aps);
+ iosDTO.setType("notify");
+ pushChannel.setIos(iosDTO);
+ /**设置IOS配置结束**/
+ pushDTO.setPushChannel(pushChannel);
+ /**设置厂商通道结束**/
+
+
+ list.add(pushDTO);
+ });
+
+ PushBatchDTO pushBatchDTO = new PushBatchDTO();
+ pushBatchDTO.setAsync(true);
+ pushBatchDTO.setMsgList(list);
+
+
+ //推送消息
+ ApiResult<Map<String, Map<String, String>>> mapApiResult = myPushApi.pushBatchByCid(pushBatchDTO);
+
+ return mapApiResult.isSuccess();
+ }
}
--
Gitblit v1.9.3