diff --git a/pom.xml b/pom.xml index 4c14c71..76a25ad 100644 --- a/pom.xml +++ b/pom.xml @@ -234,33 +234,9 @@ - com.gexin.platform - gexin-rp-fastjson - 1.0.0.7 - - - - com.google.protobuf - protobuf-java - 2.5.0 - - - - com.gexin.platform - gexin-rp-sdk-base - 4.0.0.37 - - - - com.gexin.platform - gexin-rp-sdk-http - 4.1.1.4 - - - - com.gexin.platform - gexin-rp-sdk-template - 4.0.0.29 + com.getui.push + restful-sdk + 1.0.6.0 diff --git a/src/main/java/com/ifish7/mq/push/AliyunPushApi.java b/src/main/java/com/ifish7/mq/push/AliyunPushApi.java index 568f062..a58763c 100644 --- a/src/main/java/com/ifish7/mq/push/AliyunPushApi.java +++ b/src/main/java/com/ifish7/mq/push/AliyunPushApi.java @@ -9,15 +9,18 @@ import com.aliyuncs.push.model.v20160801.PushRequest; import com.aliyuncs.push.model.v20160801.PushResponse; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.gexin.rp.sdk.base.IPushResult; -import com.gexin.rp.sdk.base.impl.SingleMessage; -import com.gexin.rp.sdk.base.impl.Target; -import com.gexin.rp.sdk.base.notify.Notify; -import com.gexin.rp.sdk.dto.GtReq; -import com.gexin.rp.sdk.http.IGtPush; -import com.gexin.rp.sdk.template.NotificationTemplate; -import com.gexin.rp.sdk.template.TransmissionTemplate; -import com.gexin.rp.sdk.template.style.Style0; +import com.getui.push.v2.sdk.ApiHelper; +import com.getui.push.v2.sdk.GtApiConfiguration; +import com.getui.push.v2.sdk.api.PushApi; +import com.getui.push.v2.sdk.common.ApiResult; +import com.getui.push.v2.sdk.dto.req.Audience; +import com.getui.push.v2.sdk.dto.req.message.PushChannel; +import com.getui.push.v2.sdk.dto.req.message.PushDTO; +import com.getui.push.v2.sdk.dto.req.message.PushMessage; +import com.getui.push.v2.sdk.dto.req.message.android.AndroidDTO; +import com.getui.push.v2.sdk.dto.req.message.android.GTNotification; +import com.getui.push.v2.sdk.dto.req.message.android.ThirdNotification; +import com.getui.push.v2.sdk.dto.req.message.android.Ups; import com.ifish7.mq.business.user.entity.TblAliyunDeviceInfo; import com.ifish7.mq.business.user.entity.TblPushList; import com.ifish7.mq.business.user.service.ITblAliyunDeviceInfoService; @@ -27,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import java.security.MessageDigest; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; @@ -41,8 +45,6 @@ public class AliyunPushApi { private final DefaultAcsClient client; - private final IGtPush iGtPush = new IGtPush(HOST_HTTPS, "099ng3u5ud5pVGqsH0GlK", "w3yLh3Ng4j5JYqGYH7C7o9"); - public AliyunPushApi(String regionId,String accessKeyId,String accessKeySecret){ client = new DefaultAcsClient(DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret)); @@ -53,8 +55,6 @@ public class AliyunPushApi { //推送类型 private static final String PUSH_TYPE = "NOTICE"; - private static final String HOST_HTTPS = "https://api.getui.com/apiex.htm"; - @Value("${android_app_key}") private String androidAppKey; @@ -154,33 +154,75 @@ public class AliyunPushApi { } } - private void gtPush(TblPushList pushList, TblAliyunDeviceInfo aliyunDeviceInfo) { - SingleMessage singleMessage = new SingleMessage(); - Notify notify = new Notify(); - notify.setTitle(pushList.getPushTitle()); - notify.setContent(pushList.getPushContext()); - notify.addExtKVToAll("/android/notification/importance","NORMAL"); - notify.addXMExtKV("/extra.channel_id", "131247"); - - TransmissionTemplate transmissionTemplate = new TransmissionTemplate(); - transmissionTemplate.setTransmissionType(2); // 透传消息接受方式设置:1:立即启动APP 2:客户端收到消息后需要自行处理 - - transmissionTemplate.setAppId(gtAppId); - transmissionTemplate.setAppkey(gtAppKey); - transmissionTemplate.set3rdNotifyInfo(notify); - singleMessage.setData(transmissionTemplate); - singleMessage.setOffline(true); - singleMessage.setOfflineExpireTime(72 * 3600000L); - Target target = new Target(); - target.setAppId(gtAppId); - target.setClientId(aliyunDeviceInfo.getAliyunDeviceId()); - IPushResult pushResult = iGtPush.pushMessageToSingle(singleMessage, target); - Map response = pushResult.getResponse(); - log.info("gtPush request : " + JSONObject.toJSONString(singleMessage) + " , response : " + JSONObject.toJSONString(response)); + public static ApiHelper apiHelper = null; + public static PushApi pushApi = null; + static { + System.setProperty("http.maxConnections", "200"); + GtApiConfiguration apiConfiguration = new GtApiConfiguration(); + //填写应用配置 + apiConfiguration.setAppId("C2ZpsHzexi5UKuUKyW0Ig"); + apiConfiguration.setAppKey("099ng3u5ud5pVGqsH0GlK"); + apiConfiguration.setMasterSecret("w3yLh3Ng4j5JYqGYH7C7o9"); + // 接口调用前缀,请查看文档: 接口调用规范 -> 接口前缀 + apiConfiguration.setDomain("https://restapi.getui.com/v2/"); + apiHelper = ApiHelper.build(apiConfiguration); + pushApi = apiHelper.creatApi(PushApi.class); } + private void gtPush(TblPushList pushList, TblAliyunDeviceInfo aliyunDeviceInfo) { + + //根据cid进行单推 + PushDTO pushDTO = new PushDTO<>(); + // 设置推送参数 + pushDTO.setRequestId(System.currentTimeMillis() + ""); + PushMessage pushMessage = new PushMessage(); + pushDTO.setPushMessage(pushMessage); + GTNotification notification = new GTNotification(); + pushMessage.setNotification(notification); + notification.setTitle(pushList.getPushTitle()); + notification.setBody(pushList.getPushContext()); + notification.setClickType("startapp"); + + PushChannel pushChannel = new PushChannel(); + pushDTO.setPushChannel(pushChannel); + /*配置安卓厂商参数*/ + AndroidDTO androidDTO = new AndroidDTO(); + Ups ups = new Ups(); + ThirdNotification thirdNotification = new ThirdNotification(); + thirdNotification.setTitle(pushList.getPushTitle()); + thirdNotification.setBody(pushList.getPushContext()); + thirdNotification.setClickType("startapp"); + ups.setNotification(thirdNotification); + Map> options = new HashMap<>(); + Map HO = new HashMap<>(); + HO.put("/android/notification/importance", "NORMAL"); + options.put("HO", HO); + Map HW = new HashMap<>(); + HW.put("/message/android/category", "WORK"); + options.put("HW", HW); + Map XM = new HashMap<>(); + XM.put("/extra.channel_id", "131247"); + options.put("XM", XM); + Map OP = new HashMap<>(); + OP.put("/channel_id", "push_oplus_category_content"); + options.put("OP", OP); + ups.setOptions(options); + androidDTO.setUps(ups); + pushChannel.setAndroid(androidDTO); + Audience audience = new Audience(); + pushDTO.setAudience(audience); + audience.addCid(aliyunDeviceInfo.getAliyunDeviceId()); + // 进行cid单推 + ApiResult>> apiResult = pushApi.pushToSingleByCid(pushDTO); + log.info("gtPush request : " + aliyunDeviceInfo.getAliyunDeviceId() + " , response : " + JSONObject.toJSONString(apiResult)); + + } public static void main(String[] args) { + + } + + /*public static void main(String[] args) { //8cfcfe16d96ef9345391de475bb5297d SingleMessage singleMessage = new SingleMessage(); Style0 style = new Style0(); @@ -207,7 +249,7 @@ public class AliyunPushApi { System.out.println(JSONObject.toJSONString(pushResult)); Map response = pushResult.getResponse(); System.out.println(response); - } + }*/ /** diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties index c59dacd..add0a58 100644 --- a/src/main/resources/log4j.properties +++ b/src/main/resources/log4j.properties @@ -4,7 +4,7 @@ log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.Target=System.out #\u53EF\u4EE5\u7075\u6D3B\u5730\u6307\u5B9A\u65E5\u5FD7\u8F93\u51FA\u683C\u5F0F\uFF0C\u4E0B\u9762\u4E00\u884C\u662F\u6307\u5B9A\u5177\u4F53\u7684\u683C\u5F0F log4j.appender.Console.layout = org.apache.log4j.PatternLayout -log4j.appender.Console.layout.ConversionPattern=[ifishMQ][%c] - %m%n +log4j.appender.Console.layout.ConversionPattern=[ifishMQ]][%p] [%d{yyyy-MM-dd HH\:mm\:ss}] [%c]%m%n #\u6587\u4EF6\u5927\u5C0F\u5230\u8FBE\u6307\u5B9A\u5C3A\u5BF8\u7684\u65F6\u5019\u4EA7\u751F\u4E00\u4E2A\u65B0\u7684\u6587\u4EF6 log4j.appender.File = org.apache.log4j.RollingFileAppender #\u6307\u5B9A\u8F93\u51FA\u76EE\u5F55 @@ -14,7 +14,7 @@ log4j.appender.File.MaxFileSize = 100 #\u8F93\u51FA\u6240\u4EE5\u65E5\u5FD7\uFF0C\u5982\u679C\u6362\u6210DEBUG\u8868\u793A\u8F93\u51FADEBUG\u4EE5\u4E0A\u7EA7\u522B\u65E5\u5FD7 log4j.appender.File.Threshold = ALL log4j.appender.File.layout = org.apache.log4j.PatternLayout -log4j.appender.File.layout.ConversionPattern =[ifishMQ][%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n +log4j.appender.File.layout.ConversionPattern =[ifishMQ]][%p] [%d{yyyy-MM-dd HH\:mm\:ss}] [%c]%m%n log4j.logger.org.springframework=INFO log4j.logger.org.apache.activemq=INFO