package com.stylefeng.guns.modular.system.util; import cn.jiguang.common.ClientConfig; 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.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.util.Map; /** * 极光推送工具类 */ @Component public class JGPushUtil { @Value("${jiguang.open}") private Boolean open; @Value("${jiguang.appKey-driver}") private String appKeyDriver; @Value("${jiguang.masterSecret-driver}") private String masterSecretDriver; @Value("${jiguang.appKey-dispatch}") private String appKeyDispatch; @Value("${jiguang.masterSecret-dispatch}") private String masterSecretDispatch; private PushPayload buildPushObject_all_all_alert(String content, String...tags) { return PushPayload.newBuilder() .setPlatform(Platform.all())//设置推送平台为全部平台 .setAudience(Audience.alias(tags))//通过别名的方式发送(用户owner_id,员工user_id) .setNotification(Notification.alert(content)) .build(); } private PushPayload buildPushObject_all_all_alert(String title, String content, Map map, String...tags) { return PushPayload.newBuilder() .setPlatform(Platform.all())//设置推送平台为全部平台 .setAudience(Audience.alias(tags))//通过别名的方式发送(用户owner_id,员工user_id) .setNotification(Notification.android(content, title, map)) .setNotification(Notification.ios(content, map)) .setNotification(Notification.winphone(content, map)) .build(); } /** * 推送 * @param tags * @param content */ public void push(Integer type, String content, String...tags){ if(!open){ return; } String masterSecret = (type == 1 ? masterSecretDriver : masterSecretDispatch); String appKey = (type == 1 ? appKeyDriver : appKeyDispatch); JPushClient jpushClient = new JPushClient(masterSecret, appKey, null, ClientConfig.getInstance()); PushPayload payload = this.buildPushObject_all_all_alert(content, tags); try { PushResult result = jpushClient.sendPush(payload); System.err.println(result.statusCode); } catch (APIConnectionException e) { e.printStackTrace(); } catch (APIRequestException e) { e.printStackTrace(); } } public void push(Integer type, String content, String title, Map map, String...tags){ if(!open){ return; } String masterSecret = (type == 1 ? masterSecretDriver : masterSecretDispatch); String appKey = (type == 1 ? appKeyDriver : appKeyDispatch); JPushClient jpushClient = new JPushClient(masterSecret, appKey, null, ClientConfig.getInstance()); PushPayload payload = this.buildPushObject_all_all_alert(title, content, map, tags); try { PushResult result = jpushClient.sendPush(payload); System.err.println(result.statusCode); } catch (APIConnectionException e) { e.printStackTrace(); } catch (APIRequestException e) { e.printStackTrace(); } } }