2021与蓝度共同重构项目,服务端
liuhaonan
2022-08-19 d44a97ad0162dd0de1619ac1b568f25b003a956e
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxAPIUtil.java
@@ -1,16 +1,19 @@
package com.sandu.ximon.admin.utils;
import com.alibaba.fastjson.JSON;
import com.sandu.common.execption.BusinessException;
import com.sandu.ximon.admin.config.VnnoxConstant;
import com.sandu.ximon.admin.config.VnnoxUrl;
import com.sandu.ximon.admin.utils.request.*;
import com.sandu.ximon.admin.utils.response.*;
import com.sandu.ximon.dao.domain.LedPlayerEntity;
import lombok.AllArgsConstructor;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.net.URISyntaxException;
import java.util.*;
@Component("VnnoxAPIUtil")
@AllArgsConstructor
@@ -26,17 +29,17 @@
    /**
     * 获取token
     */
    public void getToken () {
    public void getToken() {
        String result = VnnoxRequestUtil.PostWithHeader(
                VnnoxUrl.getUrl(VnnoxUrl.GET_TOKEN),
                new VnnoxGetTokenRequest().toJson(),
                new CommonHeader(CommonHeader.FORM, false)
        );
        CommonResponse commonResponse = JSON.parseObject(result,CommonResponse.class);
        CommonResponse commonResponse = JSON.parseObject(result, CommonResponse.class);
        VnnoxGetTokenResponse response = new VnnoxGetTokenResponse().parse(commonResponse);
        //  将token保存到redis缓存中
        redisUtils.set(VnnoxConstant.REDIS_TOKEN_NAME,response.getToken(),(long)(response.getExpire()-30));
        redisUtils.set(VnnoxConstant.REDIS_TOKEN_NAME, response.getToken(), (long) (response.getExpire() - 30));
    }
@@ -47,16 +50,19 @@
     * @param start 从第几条记录开始读取,默认0
     * @return
     */
    public VnnoxPlayerListResponse getPlayerList(Integer count, Integer start) {
    public VnnoxPlayerListResponse getPlayerList(Integer count, Integer start, String name) throws URISyntaxException {
        List<NameValuePair> urlParameters = new ArrayList<>();
        urlParameters.add(new BasicNameValuePair("count", count.toString()));
        urlParameters.add(new BasicNameValuePair("start", start.toString()));
        urlParameters.add(new BasicNameValuePair("name", name));
        String result = VnnoxRequestUtil.GetWithHeader(
                VnnoxUrl.getUrl(VnnoxUrl.GET_PLAYER_LIST),
                new VnnoxGetPlayerListRequest(count, start).toJson(),
                urlParameters,
                new CommonHeader(CommonHeader.JSON, true)
        );
        VnnoxPlayerListResponse response =
                new VnnoxPlayerListResponse().parse(JSON.parseObject(result, CommonResponse.class));
        return response;
        return new VnnoxPlayerListResponse().parse(JSON.parseObject(result, CommonResponse.class));
    }
    /**
@@ -67,6 +73,9 @@
     */
    public List<LedPlayerEntity> syncCurrentInfo(List<LedPlayerEntity> list) {
        List<String> playerIds = new ArrayList<>();
        if (list.isEmpty()) {
            return list;
        }
        for (LedPlayerEntity playerEntity : list) {
            playerIds.add(playerEntity.getPlayerId());
@@ -194,6 +203,47 @@
        return response.getData();
    }
    /**
     * 批量屏幕截图
     *
     * @param players
     * @return
     */
    public VnnoxResult screenShot(List<String> players) {
        VnnoxBaseRequest request = new VnnoxBaseRequest();
        request.setPlayerIds(players);
        request.setNoticeUrl(VnnoxConstant.SCREEN_SHOT_NOTIFY_URL);
        String result = VnnoxRequestUtil.PostWithHeader(
                VnnoxUrl.getUrl(VnnoxUrl.SCREEN_SHOT),
                request.toJson(),
                new CommonHeader(CommonHeader.JSON, true)
        );
        //TODO
        System.out.println("result+     " + result);
//        result+     {"logid":1660889486514,"status":2,"errmsg":"playerIds must be array and is not empty"}
//        {"logid":1660889534521,"status":0,"data":{"success":["f788af56421f3e8e8da39a63238fd212"],"fail":[]}}
        if (result.startsWith("{") && result.endsWith("}")) {
            VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
            if (response.getStatus() == 0) {
                return response.getData();
            } else {
                System.out.println(response.getErrmsg());
                VnnoxResult vnnoxResult = new VnnoxResult();
                vnnoxResult.getFail().addAll(players);
                return vnnoxResult;
            }
        } else {
            System.out.println("数据解析异常!");
            VnnoxResult vnnoxResult = new VnnoxResult();
            vnnoxResult.getFail().addAll(players);
            return vnnoxResult;
        }
    }
    /**
     * 设备重启
     *
@@ -215,4 +265,48 @@
        return response.getData();
    }
    /**
     * 同步播放
     */
    public VnnoxResult syncPlay(List<String> playerId, Integer option) {
        VnnoxBaseRequest request = new VnnoxBaseRequest();
        request.setPlayerIds(playerId);
        request.setOption(option);
        request.setNoticeUrl(VnnoxConstant.SCREEN_SHOT_NOTIFY_URL);
        String result = VnnoxRequestUtil.PostWithHeader(
                VnnoxUrl.getUrl(VnnoxUrl.SIMU_LCAST),
                request.toJson(),
                new CommonHeader(CommonHeader.JSON, true)
        );
        VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
        return response.getData();
    }
    /**
     * NTP_SYNC
     */
    public VnnoxResult ntpSync(List<String> playerId, boolean enable) {
//        VnnoxBaseRequest request = new VnnoxBaseRequest();
//        request.setPlayerIds(playerId);
//        request.setEnable(enable);
//        request.setServer("ntp1.aliyun.com");
//        request.setNoticeUrl(VnnoxConstant.SCREEN_SHOT_NOTIFY_URL);
        Map map = new HashMap();
        map.put("server", "ntp1.aliyun.com");
        map.put("enable", enable);
        map.put("noticeUrl", VnnoxConstant.SCREEN_SHOT_NOTIFY_URL);
        map.put("playerIds", playerId);
        String s = JSON.toJSONString(map);
        String result = VnnoxRequestUtil.PostWithHeader(
                VnnoxUrl.getUrl(VnnoxUrl.NTP_SYNC),
                s,
                new CommonHeader(CommonHeader.JSON, true)
        );
        VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
        return response.getData();
    }
}