xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/utils/AliPushUtil.java
@@ -9,12 +9,14 @@
import darabonba.core.client.ClientOverrideConfiguration;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
//import javax.net.ssl.KeyManager;
//import javax.net.ssl.X509TrustManager;
import java.util.concurrent.CompletableFuture;
@Slf4j
@Component
public class AliPushUtil {
    @Value("${ali.push.accessKeyId}")
@@ -27,6 +29,10 @@
    private Long appKey;
    @Value("${ali.push.iosAppKey}")
    private Long iosAppKey;
    @Value("${ali.push.channelId}")
    private String channelId;
    @Value("${ali.push.iosChannelId}")
    private String iosChannelId;
    /**
     * 消息类型  MESSAGE 消息  NOTICE  通知
     */
@@ -50,62 +56,74 @@
    /**
     *
     *  消息推送方法
     * @param account 运维手机号
     * @param title 标题
     * @param body 消息内容
     * @throws Exception
     */
    public String pushMessage(Integer deviceType,String account, String title, String body) throws Exception {
    public String pushMessage(Integer deviceType,String account, String title, String body){
        StaticCredentialProvider credentialProvider = StaticCredentialProvider.create(
                Credential.builder()
                        .accessKeyId(accessKeyId)
                        .accessKeySecret(accessKeySecret)
                        .build()
        );
        try {
            StaticCredentialProvider credentialProvider = StaticCredentialProvider.create(
                    Credential.builder()
                            .accessKeyId(accessKeyId)
                            .accessKeySecret(accessKeySecret)
                            .build()
            );
        // Configure the Client
        try (AsyncClient client = AsyncClient.builder()
                .region(regionId) // Region ID
                .credentialsProvider(credentialProvider)
                .overrideConfiguration(
                    ClientOverrideConfiguration.create()
                    .setEndpointOverride("cloudpush.aliyuncs.com")
                )
                .build()) {
            // Configure the Client
            try (AsyncClient client = AsyncClient.builder()
                    .region(regionId) // Region ID
                    .credentialsProvider(credentialProvider)
                    .overrideConfiguration(
                            ClientOverrideConfiguration.create()
                                    .setEndpointOverride("cloudpush.aliyuncs.com")
                    )
                    .build()) {
            // 判断账号类型
            Long appKeys = appKey;
            if(deviceType == 2){
                appKeys = iosAppKey;
                // 判断账号类型
                Long appKeys = appKey;
                if(deviceType == 2){
                    appKeys = iosAppKey;
                }
                String channelIds = channelId;
                if(deviceType == 2){
                    channelIds = iosChannelId;
                }
                PushRequest pushRequest = PushRequest.builder()
                        .appKey(appKeys)
                        .pushType(PUSH_TYPE)
                        .deviceType(DEVICE_TYPE_ALL)
                        .target(TARGET)
                        .targetValue(account)
                        .title(title)
                        .body(body)
                        .androidNotificationChannel(channelIds)
                        .build();
                CompletableFuture<PushResponse> response = client.push(pushRequest);
                PushResponse resp = response.get();
                String json = new Gson().toJson(resp);
                log.info("运维APP-消息推送:{}",json);
                JSONObject jsonObject = JSONObject.parseObject(json);
                Integer statusCode = jsonObject.getInteger("statusCode");
                if(statusCode == 200){
                    log.info("运维APP-消息推送成功");
                    JSONObject resultBody = jsonObject.getJSONObject("body");
                    return resultBody.getString("messageId");
                }else{
                    log.info("运维APP-消息推送失败");
                    return null;
                }
            }
            PushRequest pushRequest = PushRequest.builder()
                    .appKey(appKeys)
                    .pushType(PUSH_TYPE)
                    .deviceType(DEVICE_TYPE_ALL)
                    .target(TARGET)
                    .targetValue(account)
                    .title(title)
                    .body(body)
                    .build();
            CompletableFuture<PushResponse> response = client.push(pushRequest);
            PushResponse resp = response.get();
            String json = new Gson().toJson(resp);
            log.info("运维APP-消息推送:{}",json);
            JSONObject jsonObject = JSONObject.parseObject(json);
            Integer statusCode = jsonObject.getInteger("statusCode");
            if(statusCode == 200){
                log.info("运维APP-消息推送成功");
                JSONObject resultBody = jsonObject.getJSONObject("body");
                return resultBody.getString("messageId");
            }else{
                log.info("运维APP-消息推送失败");
                return null;
            }
        } catch (Exception e) {
            log.info("运维APP-消息推送失败-异常");
            e.printStackTrace();
            return null;
        }
    }