diff --git a/pom.xml b/pom.xml index 277ffbf6..e81ab7e5 100644 --- a/pom.xml +++ b/pom.xml @@ -63,6 +63,12 @@ + + + io.github.jpush + jiguang-sdk + 5.2.3 + com.vladsch.flexmark diff --git a/src/main/java/com/peanut/config/JiguangApiConfig.java b/src/main/java/com/peanut/config/JiguangApiConfig.java new file mode 100644 index 00000000..ca57bc67 --- /dev/null +++ b/src/main/java/com/peanut/config/JiguangApiConfig.java @@ -0,0 +1,47 @@ +package com.peanut.config; + +import cn.jiguang.sdk.api.*; +import feign.Logger; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import java.net.InetSocketAddress; +import java.net.Proxy; + +@Slf4j +@Configuration +public class JiguangApiConfig { + + @Value("${jiguang.api.app-key}") + private String appKey; + @Value("${jiguang.api.master-secret}") + private String masterSecret; + + @Bean + public PushApi pushApi() { + okhttp3.OkHttpClient okHttpClient = new okhttp3.OkHttpClient().newBuilder() + // 自定义proxy,其他设置参考https://square.github.io/okhttp/5.x/okhttp/okhttp3/-ok-http-client/-builder/index.html + .proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy_host", 8000))) + .build(); + + return new PushApi.Builder() + // .setClient(new feign.okhttp.OkHttpClient(okHttpClient)) // sdk默认使用的feign-okhttp,可自定义,可选 + // .setOptions(new Request.Options(10, TimeUnit.SECONDS, 60, TimeUnit.SECONDS, true)) // 可自定义超时参数,可选 + // .setRetryer(new Retryer.Default(100, SECONDS.toMillis(1), 5)) // 可自定义重试参数,可选 + // .setLoggerLevel(Logger.Level.FULL) // 可自定义日志打印级别,可选 + .setAppKey(appKey) // 必填 + .setMasterSecret(masterSecret) // 必填 + .setLoggerLevel(Logger.Level.FULL) + .build(); + } + + @Bean + public DeviceApi deviceApi() { + return new DeviceApi.Builder() + .setAppKey(appKey) + .setMasterSecret(masterSecret) + .build(); + } + +} diff --git a/src/main/java/com/peanut/modules/common/controller/JiGuangPushController.java b/src/main/java/com/peanut/modules/common/controller/JiGuangPushController.java new file mode 100644 index 00000000..50a59008 --- /dev/null +++ b/src/main/java/com/peanut/modules/common/controller/JiGuangPushController.java @@ -0,0 +1,51 @@ +package com.peanut.modules.common.controller; + +import cn.jiguang.sdk.api.PushApi; +import cn.jiguang.sdk.bean.push.PushSendParam; +import cn.jiguang.sdk.bean.push.PushSendResult; +import cn.jiguang.sdk.bean.push.audience.Audience; +import cn.jiguang.sdk.bean.push.message.notification.NotificationMessage; +import cn.jiguang.sdk.constants.ApiConstants; +import com.peanut.common.utils.R; +import com.peanut.common.utils.ShiroUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import java.util.Arrays; + +@Slf4j +@RestController("commonJiGuangPush") +@RequestMapping("common/jiGuangPush") +public class JiGuangPushController { + + @Autowired + private PushApi pushApi; + + //推送测试 + @RequestMapping("/sendTest") + public R sendTest(){ + PushSendParam param = new PushSendParam(); + // 通知内容 + NotificationMessage.Android android = new NotificationMessage.Android(); + android.setAlert("this is android alert"); + android.setTitle("this is android title"); + NotificationMessage notificationMessage = new NotificationMessage(); + notificationMessage.setAlert("this is alert"); + notificationMessage.setAndroid(android); + param.setNotification(notificationMessage); + // 目标人群 + Audience audience = new Audience(); + audience.setAliasList(Arrays.asList(ShiroUtils.getUId()+"")); + param.setAudience(audience); +// param.setAudience(ApiConstants.Audience.ALL); + // 指定平台 +// param.setPlatform(Arrays.asList(Platform.android)); + param.setPlatform(ApiConstants.Platform.ALL); + // 发送 + PushSendResult result = pushApi.send(param); + return R.ok().put("result",result); + } + + +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 3140c8fb..045d501a 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -126,4 +126,8 @@ ragflow: url: http://125.39.141.154:81 authorization: Bearer ragflow-A5NTQzNGVlMzE2NjExZjBiZjk3MTZlZm +jiguang: + api: + app-key: 215f72f1b85f4028404addb3 + master-secret: bae0c6a0b57419c018cef53a