package com.dsh.utils;
|
|
import cn.jiguang.common.resp.APIConnectionException;
|
import cn.jiguang.common.resp.APIRequestException;
|
import cn.jpush.api.JPushClient;
|
import cn.jpush.api.push.PushResult;
|
import cn.jpush.api.push.model.Platform;
|
import cn.jpush.api.push.model.PushPayload;
|
import cn.jpush.api.push.model.audience.Audience;
|
import cn.jpush.api.push.model.notification.Notification;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Component;
|
|
import java.util.List;
|
|
/**
|
* @author 张鹏
|
* @date 2020/09/02 15:20
|
* @description 极光推送工具
|
*/
|
@Component
|
public class JPushClientUtils {
|
|
private static final Logger logger = LoggerFactory.getLogger(JPushClientUtils.class);
|
|
/**
|
* 极光推送 api key
|
*/
|
private static String appKey;
|
/**
|
* 极光推送 masterSecret
|
*/
|
private static String masterSecret;
|
|
@Value("${jPush.appKey}")
|
public void setAppKey(String appKey) {
|
JPushClientUtils.appKey = appKey;
|
}
|
|
@Value("${jPush.masterSecret}")
|
public void setMasterSecret(String masterSecret) {
|
JPushClientUtils.masterSecret = masterSecret;
|
}
|
|
private static JPushClient jPushClient;
|
|
|
/**
|
* 根据设备id推送
|
* @param regeSterIds 设备号
|
* @param msgContent 内容
|
* @return
|
*/
|
public static boolean senPushByRegesterId(List<String> regeSterIds, String msgContent) {
|
jPushClient = new JPushClient(masterSecret, appKey);
|
boolean flag = false;
|
try {
|
PushPayload payload = JPushClientUtils.buildPushObject_all_all_regesterIds(regeSterIds, msgContent);
|
System.out.println("处理后的结果:" + payload);
|
PushResult result = jPushClient.sendPush(payload);
|
System.out.println("结果:" + result);
|
if (result.getResponseCode() == 200) {
|
logger.info("Get result ----" + result);
|
flag = true;
|
}
|
} catch (APIConnectionException e) {
|
logger.error("Connection error. Should retry later. ", e);
|
flag = false;
|
} catch (APIRequestException e) {
|
logger.error("Error response from JPush server. Should review and fix it. ", e);
|
logger.info("HTTP Status: " + e.getStatus());
|
logger.info("Error Code: " + e.getErrorCode());
|
logger.info("Error Message: " + e.getErrorMessage());
|
logger.info("Msg ID: " + e.getMsgId());
|
flag = false;
|
}
|
return flag;
|
}
|
|
|
public static PushPayload buildPushObject_all_all_regesterIds(List<String> regesterIds, String content) {
|
System.out.println("----------------开始处理推送消息----------------");
|
return PushPayload.newBuilder().setPlatform(Platform.all()).setAudience(Audience.registrationId(regesterIds))
|
.setNotification(Notification.alert(content)).build();
|
|
}
|
}
|