From 4965d8affe8ab2f3302bda6c62f45dc5fd455f93 Mon Sep 17 00:00:00 2001
From: liuhaonan <konodioda2333@vip.qq.com>
Date: 星期五, 24 十二月 2021 18:13:33 +0800
Subject: [PATCH] LED节目完善
---
ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java | 2
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxPlayerResponse.java | 26
dao/src/main/resources/mapper/AdvisementPlayerFileMapper.xml | 12
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramController.java | 12
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxResultResponse.java | 15
dao/src/main/java/com/sandu/ximon/dao/domain/AdvisementPlayerFile.java | 9
ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeFileService.java | 11
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxSyncCurrentInfoRequest.java | 17
ximon-admin/src/main/java/com/sandu/ximon/admin/config/RedisConfig.java | 43 +
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxScreenStatusType.java | 12
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/CommonHeader.java | 42 +
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxSyncCurrentInfoResponse.java | 16
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramFileController.java | 9
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxPlayerListResponse.java | 29 +
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java | 4
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedPlayerEntityService.java | 33 +
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxGetTokenRequest.java | 17
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java | 86 +++
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxBaseRequest.java | 21
dao/src/main/resources/mapper/IpVolumeFileMapper.xml | 6
dao/src/main/java/com/sandu/ximon/dao/mapper/LedPlayerEntityMapper.java | 18
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxGetPlayerListRequest.java | 24
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LampPostController.java | 2
ximon-admin/src/main/java/com/sandu/ximon/admin/config/VnnoxUrl.java | 28 +
ximon-admin/src/main/java/com/sandu/ximon/admin/service/VnnoxService.java | 192 ++++++
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxGetTokenResponse.java | 25
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxResponse.java | 9
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxScreenStatusRequest.java | 19
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/CommonResponse.java | 21
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/SpringContextUtil.java | 62 ++
dao/src/main/java/com/sandu/ximon/dao/domain/LedPlayerEntity.java | 78 ++
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PlayPlanNvController.java | 11
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramService.java | 6
ximon-admin/src/main/java/com/sandu/ximon/admin/param/VnnoxParam.java | 35 +
dao/src/main/java/com/sandu/ximon/dao/domain/IpVolumeFile.java | 4
dao/src/main/java/com/sandu/ximon/dao/domain/LedPlayerInfoEntity.java | 18
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/SpringContextUtils.java | 43 +
dao/src/main/resources/mapper/LedPlayerEntityMapper.xml | 22
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxAPIUtil.java | 218 +++++++
ximon-admin/src/main/java/com/sandu/ximon/admin/AdminApplication.java | 2
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramFileService.java | 13
ximon-admin/src/main/java/com/sandu/ximon/admin/config/VnnoxConstant.java | 28 +
ximon-admin/src/main/java/com/sandu/ximon/admin/service/AdvisementPlayerFileService.java | 10
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeFileController.java | 10
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxRequest.java | 7
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxResult.java | 14
/dev/null | 15
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxRequestUtil.java | 105 +++
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxPlayerPageInfoResponse.java | 12
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxPlayerInfoResponse.java | 30 +
ximon-admin/src/main/java/com/sandu/ximon/admin/param/IpVolumeFileParam.java | 4
dao/src/main/java/com/sandu/ximon/dao/domain/LedV2RegisterResultEntity.java | 16
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/RedisUtils.java | 132 ++++
53 files changed, 1,598 insertions(+), 57 deletions(-)
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/AdvisementPlayerFile.java b/dao/src/main/java/com/sandu/ximon/dao/domain/AdvisementPlayerFile.java
index b7c9c38..a0a70fa 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/domain/AdvisementPlayerFile.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/AdvisementPlayerFile.java
@@ -22,6 +22,11 @@
private Long id;
/**
+ *
+ */
+ private String name;
+
+ /**
* 涓婁紶浜篿d
*/
private Long userId;
@@ -44,12 +49,12 @@
/**
* 鏂囦欢澶у皬
*/
- private Double fileSize;
+ private String fileSize;
/**
*
*/
- private String fileBase64;
+ private String fileUrl;
/**
*
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/IpVolumeFile.java b/dao/src/main/java/com/sandu/ximon/dao/domain/IpVolumeFile.java
index 607631d..8453e23 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/domain/IpVolumeFile.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/IpVolumeFile.java
@@ -44,12 +44,12 @@
/**
* 鏂囦欢澶у皬
*/
- private Double fileSize;
+ private String fileSize;
/**
*
*/
- private String fileBase64;
+ private String fileUrl;
/**
* 鍒涘缓鏃堕棿
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/LED.java b/dao/src/main/java/com/sandu/ximon/dao/domain/LED.java
deleted file mode 100644
index 0fb8378..0000000
--- a/dao/src/main/java/com/sandu/ximon/dao/domain/LED.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package com.sandu.ximon.dao.domain;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import java.io.Serializable;
-import java.time.LocalDateTime;
-import lombok.Data;
-
-/**
- * LED琛�
- * @TableName led
- */
-@TableName(value ="led")
-@Data
-public class LED implements Serializable {
- /**
- *
- */
- @TableId
- private Long id;
-
- /**
- *
- */
- private Long userId;
-
- /**
- * 绉嶇被 0:N 1:S
- */
- private Integer kind;
-
- /**
- * 鏉垮崱鍙�
- */
- private String cardNo;
-
- /**
- * 鍦ㄧ嚎鐘舵�� 0:鍦ㄧ嚎 1:绂荤嚎
- */
- private Integer state;
-
- /**
- * 鎵�灞炵伅鏉�
- */
- private Long blongsPole;
-
- /**
- * 鎾斁璁″垝id
- */
- private Long playplanId;
-
- /**
- * IP鍦板潃
- */
- private String ip;
-
- /**
- * 澶囨敞
- */
- private String remark;
-
- /**
- * 鐏潌ID
- */
- private String poleId;
-
- /**
- * 鍒涘缓鏃堕棿
- */
- private LocalDateTime createTime;
-
- /**
- * 鏈�杩戜氦浜掓椂闂�
- */
- private LocalDateTime updateTime;
-
- @TableField(exist = false)
- private static final long serialVersionUID = 1L;
-}
\ No newline at end of file
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/LedPlayerEntity.java b/dao/src/main/java/com/sandu/ximon/dao/domain/LedPlayerEntity.java
new file mode 100644
index 0000000..a52350b
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/LedPlayerEntity.java
@@ -0,0 +1,78 @@
+package com.sandu.ximon.dao.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.beans.Transient;
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+ *
+ * @TableName led
+ */
+@Data
+@TableName(value = "led")
+public class LedPlayerEntity implements Serializable {
+ /**
+ * 鎾斁鍣↖D
+ */
+ private Long id;
+
+ /**
+ * 鎾斁鍣ㄥ悕绉�(server)
+ */
+ private String playerName;
+
+ /**
+ * 鎾斁鍣↖D(Vnnox)
+ */
+ private String playerId;
+
+ /**
+ * 鎾斁鍣ㄥ敮涓�鏍囪瘑,濡傛灉涓簄ull浠h〃娌℃湁缁戝畾鎾斁鍣�(Vnnox)
+ */
+ private String sn;
+
+ /**
+ * 鍒涘缓鏃堕棿鎴�
+ */
+ private Long createTimestamp;
+
+
+ private static final long serialVersionUID = 1L;
+ @TableField(exist = false)
+ private Long streetlightId;
+ // player閰嶇疆淇℃伅(闊抽噺銆佸睆骞曞紑鍏崇姸鎬併�佹帹閫佺殑鑺傜洰ID)
+ @TableField(exist = false)
+ private LedPlayerInfoEntity playerInfo;
+ // 鎾斁鍣ㄧ被鍨�, 1-鍚屾鎾斁鍣紝2-寮傛鎾斁鍣�(Vnnox)
+ @TableField(exist = false)
+ private Integer playerType;
+ // 鎾斁鍣ㄥ綋鍓嶅湪绾跨姸鎬侊紝0-绂荤嚎锛�1-鍦ㄧ嚎(Vnnox)
+ @TableField(exist = false)
+ private Integer onlineStatus;
+ // 鎾斁鍣ㄥ綋鍓嶇増鏈彿
+ @TableField(exist = false)
+ private String version;
+ // 鎾斁鍣ㄥ綋鍓嶇郴缁熺増鏈彿
+ @TableField(exist = false)
+ private String osVersion;
+ // 鎾斁鍣ㄦ渶鍚庡績璺虫椂闂�(new)(Vnnox)
+ @TableField(exist = false)
+ private String lastOnlineTime;
+ // IP鍦板潃(Vnnox)
+ @TableField(exist = false)
+ private String ip;
+ // 鎾斁鍣ㄥ昂瀵稿搴�
+ @TableField(exist = false)
+ private Integer width;
+ // 鎾斁鍣ㄥ昂瀵搁珮搴�
+ @TableField(exist = false)
+ private Integer height;
+ // 灞忓箷缂╃暐鍥綰RL
+ @TableField(exist = false)
+ private String screenShotUrl;
+}
\ No newline at end of file
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/LedPlayerInfoEntity.java b/dao/src/main/java/com/sandu/ximon/dao/domain/LedPlayerInfoEntity.java
new file mode 100644
index 0000000..27656f7
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/LedPlayerInfoEntity.java
@@ -0,0 +1,18 @@
+package com.sandu.ximon.dao.domain;
+
+import lombok.Data;
+
+/**
+ * led璁惧璋冩暣淇℃伅
+ */
+@Data
+public class LedPlayerInfoEntity {
+
+ // 0:榛戝睆 1:浜睆
+ private Integer screenStatus;
+ // 灞忓箷闊抽噺
+ private Integer vol;
+ // 灞忓箷浜害
+ private Integer brightness;
+
+}
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/LedV2RegisterResultEntity.java b/dao/src/main/java/com/sandu/ximon/dao/domain/LedV2RegisterResultEntity.java
new file mode 100644
index 0000000..8b39051
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/LedV2RegisterResultEntity.java
@@ -0,0 +1,16 @@
+package com.sandu.ximon.dao.domain;
+
+import lombok.Data;
+
+/**
+ * 鍒ゆ柇led鏄惁娉ㄥ唽
+ */
+@Data
+public class LedV2RegisterResultEntity {
+
+ // 鏄惁娉ㄥ唽
+ private Integer register;
+ // 缁撴灉鎻愮ず
+ private String msg;
+
+}
\ No newline at end of file
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/LEDMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/LEDMapper.java
deleted file mode 100644
index 27bf96f..0000000
--- a/dao/src/main/java/com/sandu/ximon/dao/mapper/LEDMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.sandu.ximon.dao.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.sandu.ximon.dao.domain.LED;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * @Entity com.sandu.ximon.dao.domain.Led
- */
-@Mapper
-public interface LEDMapper extends BaseMapper<LED> {
-
-}
-
-
-
-
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/LedPlayerEntityMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/LedPlayerEntityMapper.java
new file mode 100644
index 0000000..42b09cb
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/LedPlayerEntityMapper.java
@@ -0,0 +1,18 @@
+package com.sandu.ximon.dao.mapper;
+
+import com.sandu.ximon.dao.domain.LedPlayerEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Entity com.sandu.ximon.dao.domain.LedPlayerEntity
+ */
+@Mapper
+public interface LedPlayerEntityMapper extends BaseMapper<LedPlayerEntity> {
+
+ boolean saveLed(LedPlayerEntity ledPlayerEntity);
+}
+
+
+
+
diff --git a/dao/src/main/resources/mapper/AdvisementPlayerFileMapper.xml b/dao/src/main/resources/mapper/AdvisementPlayerFileMapper.xml
index 0a26868..c67dd1a 100644
--- a/dao/src/main/resources/mapper/AdvisementPlayerFileMapper.xml
+++ b/dao/src/main/resources/mapper/AdvisementPlayerFileMapper.xml
@@ -6,19 +6,21 @@
<resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.AdvisementPlayerFile">
<id property="id" column="id" jdbcType="BIGINT"/>
+ <result property="name" column="name" jdbcType="VARCHAR"/>
<result property="userId" column="user_id" jdbcType="BIGINT"/>
<result property="userName" column="user_name" jdbcType="VARCHAR"/>
<result property="clientId" column="client_id" jdbcType="BIGINT"/>
<result property="fileName" column="file_name" jdbcType="VARCHAR"/>
- <result property="fileSize" column="file_size" jdbcType="DOUBLE"/>
- <result property="fileBase64" column="file_base64" jdbcType="VARCHAR"/>
+ <result property="fileSize" column="file_size" jdbcType="VARCHAR"/>
+ <result property="fileUrl" column="file_url" jdbcType="VARCHAR"/>
<result property="fileType" column="file_type" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
- id,user_id,user_name,
- client_id,file_name,file_size,
- file_base64,file_type,create_time
+ id,name,user_id,
+ user_name,client_id,file_name,
+ file_size,file_url,file_type,
+ create_time
</sql>
</mapper>
diff --git a/dao/src/main/resources/mapper/IpVolumeFileMapper.xml b/dao/src/main/resources/mapper/IpVolumeFileMapper.xml
index 6ab304b..f8740bc 100644
--- a/dao/src/main/resources/mapper/IpVolumeFileMapper.xml
+++ b/dao/src/main/resources/mapper/IpVolumeFileMapper.xml
@@ -10,14 +10,14 @@
<result property="userName" column="user_name" jdbcType="VARCHAR"/>
<result property="clientId" column="client_id" jdbcType="BIGINT"/>
<result property="fileName" column="file_name" jdbcType="VARCHAR"/>
- <result property="fileSize" column="file_size" jdbcType="DOUBLE"/>
- <result property="fileBase64" column="file_base64" jdbcType="VARCHAR"/>
+ <result property="fileSize" column="file_size" jdbcType="VARCHAR"/>
+ <result property="fileUrl" column="file_url" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,user_id,user_name,
client_id,file_name,file_size,
- file_base64,create_time
+ file_url,create_time
</sql>
</mapper>
diff --git a/dao/src/main/resources/mapper/LEDMapper.xml b/dao/src/main/resources/mapper/LEDMapper.xml
deleted file mode 100644
index 74da5e6..0000000
--- a/dao/src/main/resources/mapper/LEDMapper.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.sandu.ximon.dao.mapper.LEDMapper">
-
- <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.LED">
- <id property="id" column="id" jdbcType="BIGINT"/>
- <result property="userId" column="user__id" jdbcType="BIGINT"/>
- <result property="kind" column="kind" jdbcType="INTEGER"/>
- <result property="cardNo" column="card_no" jdbcType="VARCHAR"/>
- <result property="state" column="state" jdbcType="INTEGER"/>
- <result property="blongsPole" column="blongs_pole" jdbcType="BIGINT"/>
- <result property="playplanId" column="playplan_id" jdbcType="BIGINT"/>
- <result property="ip" column="ip" jdbcType="VARCHAR"/>
- <result property="remark" column="remark" jdbcType="VARCHAR"/>
- <result property="poleId" column="pole_id" jdbcType="VARCHAR"/>
- <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
- <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
- </resultMap>
-
- <sql id="Base_Column_List">
- id,user__id,kind,
- card_no,state,blongs_pole,
- playplan_id,ip,remark,
- pole_id,create_time,update_time
- </sql>
-</mapper>
diff --git a/dao/src/main/resources/mapper/LedPlayerEntityMapper.xml b/dao/src/main/resources/mapper/LedPlayerEntityMapper.xml
new file mode 100644
index 0000000..17fc660
--- /dev/null
+++ b/dao/src/main/resources/mapper/LedPlayerEntityMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sandu.ximon.dao.mapper.LedPlayerEntityMapper">
+
+ <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.LedPlayerEntity">
+ <id property="id" column="id" jdbcType="BIGINT"/>
+ <result property="playerName" column="player_name" jdbcType="VARCHAR"/>
+ <result property="playerId" column="player_id" jdbcType="VARCHAR"/>
+ <result property="sn" column="sn" jdbcType="VARCHAR"/>
+ <result property="createTimestamp" column="create_timestamp" jdbcType="BIGINT"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id,player_name,player_id,
+ sn,create_timestamp
+ </sql>
+ <insert id="saveLed" parameterType="com.sandu.ximon.dao.domain.LedPlayerEntity">
+ insert into led (player_name,player_id,sn,create_timestamp) values (#{playerName},#{playerId},#{sn},#{createTimestamp})
+ </insert>
+</mapper>
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/AdminApplication.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/AdminApplication.java
index 3087233..744d42d 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/AdminApplication.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/AdminApplication.java
@@ -2,6 +2,8 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
@SpringBootApplication(scanBasePackages = {"com.sandu.ximon.admin","com.sandu.common","com.sandu.ximon.dao"})
public class AdminApplication {
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/config/RedisConfig.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/config/RedisConfig.java
index 1791b47..758e918 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/config/RedisConfig.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/config/RedisConfig.java
@@ -1,7 +1,12 @@
package com.sandu.ximon.admin.config;
import com.sandu.common.config.BaseRedisConfig;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.*;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
* @author chenjiantian
@@ -10,4 +15,42 @@
*/
@Configuration
public class RedisConfig extends BaseRedisConfig {
+ @Autowired
+ private RedisConnectionFactory factory;
+
+ @Bean
+ public RedisTemplate<String, Object> redisTemplate() {
+ RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
+ redisTemplate.setKeySerializer(new StringRedisSerializer());
+ redisTemplate.setHashKeySerializer(new StringRedisSerializer());
+ redisTemplate.setHashValueSerializer(new StringRedisSerializer());
+ redisTemplate.setValueSerializer(new StringRedisSerializer());
+ redisTemplate.setConnectionFactory(factory);
+ return redisTemplate;
+ }
+
+ @Bean
+ public HashOperations<String, String, Object> hashOperations(RedisTemplate<String, Object> redisTemplate) {
+ return redisTemplate.opsForHash();
+ }
+
+ @Bean
+ public ValueOperations<String, String> valueOperations(RedisTemplate<String, String> redisTemplate) {
+ return redisTemplate.opsForValue();
+ }
+
+ @Bean
+ public ListOperations<String, Object> listOperations(RedisTemplate<String, Object> redisTemplate) {
+ return redisTemplate.opsForList();
+ }
+
+ @Bean
+ public SetOperations<String, Object> setOperations(RedisTemplate<String, Object> redisTemplate) {
+ return redisTemplate.opsForSet();
+ }
+
+ @Bean
+ public ZSetOperations<String, Object> zSetOperations(RedisTemplate<String, Object> redisTemplate) {
+ return redisTemplate.opsForZSet();
+ }
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/config/VnnoxConstant.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/config/VnnoxConstant.java
new file mode 100644
index 0000000..9ba2426
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/config/VnnoxConstant.java
@@ -0,0 +1,28 @@
+package com.sandu.ximon.admin.config;
+
+import com.google.gson.Gson;
+
+public class VnnoxConstant {
+
+ // VNNOX MINIO save bucket suffix(companyId)
+ public static final String MINIO_PREFIX = "vnnox.";
+
+ public static final String REDIS_TOKEN_NAME = "vnnox_token";
+ public static final String REDIS_SCREEN_STATUS = "vnnox_screen_status:";
+ public static final String REDIS_VOL = "vnnox_vol:";
+ public static final String REDIS_BRIGHTNESS = "vnnox_brightness:";
+ public static final String REDIS_PROGRESS = "vnnox_progress:";
+ public static final String REDIS_SCREEN_SHOT = "vnnox_screen_shot:";
+
+ public static final Long REDIS_MAX_SAVE_TIME = 180 * 24 * 60 * 60L;
+ public static final Long SCREEN_SHOT_TIMEOUT = 30 * 60L;
+
+ public static final String NOTIFY_URL = "http://47.106.172.9:8888/machine-fast/serv/vnnox/progress";
+ public static final String SCREEN_SHOT_NOTIFY_URL = "http://47.106.172.9:8888/machine-fast/serv/vnnox/screenshot";
+
+ public static final String username = "zhxm";
+ public static final String password = "xm2512209.";
+
+ public static final Gson GSON = new Gson();
+
+}
\ No newline at end of file
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/config/VnnoxUrl.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/config/VnnoxUrl.java
new file mode 100644
index 0000000..3f030ff
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/config/VnnoxUrl.java
@@ -0,0 +1,28 @@
+package com.sandu.ximon.admin.config;
+
+public class VnnoxUrl {
+
+ private static String url = "https://openapi.vnnox.com";
+ // 鑾峰彇鎺堟潈淇℃伅
+ public static final String GET_TOKEN = "/v1/oauth/token";
+ // 鑾峰彇LED鍒楄〃
+ public static String GET_PLAYER_LIST = "/v1/player/getPlayerList";
+ // 鑾峰彇褰撳墠鐘舵��
+ public static String SYNC_CURRENT_INFO = "/v1/player/get/syncCurrentInfo";
+ // 淇敼灞忓箷鐘舵��
+ public static String SCREEN_STATUS = "/v1/player/immediateControl/screenStatus";
+ // 淇敼闊抽噺
+ public static String CHANGE_VOL = "/v1/player/immediateControl/volume";
+ // 淇敼浜害
+ public static String CHANGE_BRIGHTNESS = "/v1/player/immediateControl/brightness";
+ // 鏅�氳妭鐩�
+ public static String NORMAL_PROGRAM = "/v1/player/program/normal";
+ // 鎴浘
+ public static String SCREEN_SHOT = "/v1/player/control/screenshot";
+ // 閲嶅惎
+ public static String REBOOT = "/v1/player/immediateControl/reboot";
+
+ public static String getUrl(String urlSuffix) {
+ return url + urlSuffix;
+ }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeFileController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeFileController.java
index 81c6b15..21273cb 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeFileController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeFileController.java
@@ -16,7 +16,7 @@
*/
@RestController
@AllArgsConstructor
-@RequestMapping("v1/IpVolumeFile")
+@RequestMapping("/v1/IpVolumeFile")
public class IpVolumeFileController {
private final IpVolumeFileService ipVolumeFileService;
@@ -26,13 +26,13 @@
return ResponseUtil.success(ipVolumeFileService.addFile(fileParam));
}
- @PostMapping("/delete/{id}")
+ @PostMapping("/delete/{fileId}")
public ResponseVO<Object> deleteFile(@PathVariable Long fileId){
return ResponseUtil.success(ipVolumeFileService.deleteFile(fileId));
}
- @PostMapping("/list}")
- public ResponseVO<Object> list(@RequestBody ReceiveParam receiveParam){
- return ResponseUtil.success(ipVolumeFileService.list(ipVolumeFileService.listFile(receiveParam)));
+ @PostMapping("/list")
+ public ResponseVO<Object> list(){
+ return ResponseUtil.success(ipVolumeFileService.list());
}
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramController.java
index 809ff95..ca0fca9 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramController.java
@@ -25,14 +25,14 @@
return ResponseUtil.success(ledProgramService.addProgram(ledProgramParam));
}
- @PostMapping("/update")
- public ResponseVO<Object> updateLEDProgram(@RequestBody @Validated LEDProgramParam ledProgramParam) {
- return ResponseUtil.success(ledProgramService.updateProgram(ledProgramParam));
+ @PostMapping("/update/{pid}")
+ public ResponseVO<Object> updateLEDProgram(@PathVariable Long pid, @RequestBody @Validated LEDProgramParam ledProgramParam) {
+ return ResponseUtil.success(ledProgramService.updateProgram(pid,ledProgramParam));
}
- @PostMapping("/delete/{id}")
- public ResponseVO<Object> deleteLEDProgram(@PathVariable Long id) {
- return ResponseUtil.success(ledProgramService.deleteProgram(id));
+ @PostMapping("/delete/{pid}")
+ public ResponseVO<Object> deleteLEDProgram(@PathVariable Long pid) {
+ return ResponseUtil.success(ledProgramService.deleteProgram(pid));
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramFileController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramFileController.java
index ed0820a..2beb54c 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramFileController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LEDProgramFileController.java
@@ -3,6 +3,7 @@
import com.sandu.common.domain.ResponseVO;
import com.sandu.common.util.ResponseUtil;
import com.sandu.ximon.admin.param.LEDProgramFileParam;
+import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.service.LEDProgramFileService;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
@@ -26,8 +27,14 @@
return ResponseUtil.success(ledProgramFileService.addProgramFile(param));
}
- @PostMapping("/delete{fileId}")
+ @PostMapping("/delete/{fileId}")
public ResponseVO<Object> addLEDProgram(@PathVariable Long fileId) {
return ResponseUtil.success(ledProgramFileService.deleteFile(fileId));
}
+
+ @GetMapping("/list")
+ public ResponseVO<Object> listfile() {
+ return ResponseUtil.success(ledProgramFileService.list(ledProgramFileService.listFile()));
+ }
+
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LampPostController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LampPostController.java
index 056b320..c8bb945 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LampPostController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LampPostController.java
@@ -15,7 +15,7 @@
import java.util.List;
/**
- * 鐏潌妯″潡浠ュ強璁剧疆鍒嗙粍鍒板搴旂伅鏉�
+ * 鐏潌妯″潡浠ュ強璁剧疆鍒嗙粍鍒板搴旂伅鏉� 寮冪敤
*/
@RestController
@AllArgsConstructor
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PlayPlanNvController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PlayPlanNvController.java
index 7fc29c9..3ad5ff3 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PlayPlanNvController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PlayPlanNvController.java
@@ -24,8 +24,8 @@
return ResponseUtil.success(playPlanNvService.addPlan(param));
}
- @PostMapping("/update")
- public ResponseVO<Object> updateLEDPlan(@RequestBody @Validated Long planId, PlayPlanParam param) {
+ @PostMapping("/update/{planId}")
+ public ResponseVO<Object> updateLEDPlan(@PathVariable Long planId,@RequestBody @Validated PlayPlanParam param) {
return ResponseUtil.success(playPlanNvService.updatePlan(planId, param));
}
@@ -34,8 +34,13 @@
return ResponseUtil.success(playPlanNvService.deletePlan(plianId));
}
- @PostMapping("/push{plianId}")
+ @PostMapping("/push/{plianId}")
public ResponseVO<Object> pushToLed(@PathVariable Long plianId) {
return ResponseUtil.success(playPlanNvService.pushToLed(plianId));
}
+ @GetMapping("/listPaln")
+ public ResponseVO<Object> list() {
+ return ResponseUtil.success(playPlanNvService.list());
+ }
+
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
index bf7a5df..186cc79 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
@@ -69,7 +69,7 @@
/**
* 璁剧疆涓夊厓鐮�
*/
- @PostMapping("/setMac")
+ @PostMapping("/setMac/{poleId}")
public ResponseVO<Object> setMac(@PathVariable Long poleId) {
return ResponseUtil.success(poleService.setMac(poleId));
}
@@ -77,7 +77,7 @@
/**
* 鎭㈠鐏潌鍑哄巶璁剧疆
*/
- @PostMapping("/poleReset")
+ @PostMapping("/poleReset/{poleId}")
public ResponseVO<Object> poleReset(@PathVariable Long poleId) {
return ResponseUtil.success(poleService.poleReset(poleId));
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java
new file mode 100644
index 0000000..a9d6e36
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java
@@ -0,0 +1,86 @@
+package com.sandu.ximon.admin.controller;
+
+import com.sandu.common.domain.ResponseVO;
+import com.sandu.common.util.ResponseUtil;
+import com.sandu.ximon.admin.param.VnnoxParam;
+import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.admin.service.LedPlayerEntityService;
+import com.sandu.ximon.admin.service.VnnoxService;
+import com.sandu.ximon.admin.utils.response.VnnoxResult;
+import com.sandu.ximon.dao.domain.LedV2RegisterResultEntity;
+import com.sandu.ximon.dao.enums.AdministratorEnums;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+/**
+ * @Author liuhaonan
+ * @Date 2021/12/23 9:35
+ * @Version 1.0
+ * 璇虹摝LED澶勭悊
+ */
+@RestController
+//@AllArgsConstructor
+@RequestMapping("/v1/Vnnox")
+public class VnnoxController {
+
+ @Autowired
+ private VnnoxService vnnoxService;
+ @Autowired
+ private LedPlayerEntityService ledPlayerEntityService;
+
+ @GetMapping("/screenShot")
+ public ResponseVO<Object> screenShot(@RequestBody VnnoxParam vnnoxWebRequest) {
+ Map<String, String> map = vnnoxService.getScreenShotUrl(vnnoxWebRequest.getId());
+ return ResponseUtil.success(map.get("url"));
+ }
+
+ @GetMapping("/reboot")
+ public ResponseVO<Object> reboot(@RequestBody VnnoxParam vnnoxWebRequest) {
+ VnnoxResult vnnoxResult = vnnoxService.reboot(vnnoxWebRequest.getPlayerList());
+ return ResponseUtil.success(vnnoxResult);
+ }
+
+ @GetMapping("/screenStatusChange")
+ public ResponseVO<Object> screenStatusChange(@RequestBody VnnoxParam vnnoxWebRequest) {
+ VnnoxResult vnnoxResult = vnnoxService.screenStatusChange(vnnoxWebRequest.getPlayerList(),vnnoxWebRequest.getScreenStatus());
+ return ResponseUtil.success(vnnoxResult);
+ }
+
+ @GetMapping("/volChange")
+ public ResponseVO<Object> volChange(@RequestBody VnnoxParam vnnoxWebRequest) {
+ VnnoxResult vnnoxResult = vnnoxService.volChange(vnnoxWebRequest.getPlayerList(),vnnoxWebRequest.getVol());
+ return ResponseUtil.success(vnnoxResult);
+ }
+
+ @GetMapping("/brightnessChange")
+ public ResponseVO<Object> brightnessChange(@RequestBody VnnoxParam vnnoxWebRequest) {
+ VnnoxResult vnnoxResult = vnnoxService.brightnessChange(vnnoxWebRequest.getPlayerList(),vnnoxWebRequest.getBrightness());
+ return ResponseUtil.success(vnnoxResult);
+ }
+
+ /* @RequestMapping("/changeLedName")
+ public R changeLedName(@RequestBody VnnoxParam vnnoxWebRequest) {
+ vnnoxService.changeLedName(vnnoxWebRequest.getId(),vnnoxWebRequest.getPlayerName());
+ return ResponseUtil.success();
+ }*/
+
+ @PostMapping("/validateSN")
+ public ResponseVO<Object> validateSN(@RequestBody Map map) {
+ String sn = (String)map.get("sn");
+ LedV2RegisterResultEntity ledV2RegisterResultEntity = vnnoxService.validateSN(sn);
+ return ResponseUtil.success(ledV2RegisterResultEntity);
+ }
+
+
+ @GetMapping("/list")
+ public ResponseVO<Object> list() {
+ if(AdministratorEnums.CUSTOMER.getCode().equals(SecurityUtils.getAdministratorIdentity())) {
+ return ResponseUtil.success("");
+ }else {
+ return ResponseUtil.success(ledPlayerEntityService.list());
+ }
+
+ }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/IpVolumeFileParam.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/IpVolumeFileParam.java
index f6c3253..83fa8f2 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/IpVolumeFileParam.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/IpVolumeFileParam.java
@@ -11,8 +11,8 @@
public class IpVolumeFileParam {
private String fileName;
- private Double fileSize;
- private String fileBase64;
+ private String fileSize;
+ private String fileUrl;
private String fileType;
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/VnnoxParam.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/VnnoxParam.java
new file mode 100644
index 0000000..26590ca
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/VnnoxParam.java
@@ -0,0 +1,35 @@
+package com.sandu.ximon.admin.param;
+
+import com.sandu.ximon.dao.domain.LedPlayerEntity;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class VnnoxParam {
+
+ // playerID
+ private Integer id;
+ // player瀹炰綋List
+ private List<LedPlayerEntity> playerList;
+ // playerIds
+ private List<String> playerIds;
+ // 灞忓箷鐘舵�� 0:鍏抽棴 1:寮�鍚�
+ private Integer screenStatus;
+ // 灞忓箷闊抽噺
+ private Integer vol;
+ // 灞忓箷浜害
+ private Integer brightness;
+ // 鏂囦欢ID
+ private Integer fileId;
+ // 鐏潌ID
+ private Long streetlightId;
+
+ private String playerName;
+
+ private String content;
+
+ // 鑺傜洰閮ㄥ垎
+ private Integer pid;
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AdvisementPlayerFileService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AdvisementPlayerFileService.java
index 741e83b..365a595 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AdvisementPlayerFileService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AdvisementPlayerFileService.java
@@ -27,11 +27,15 @@
public boolean addFile(IpVolumeFileParam fileParam) {
AdvisementPlayerFile file = new AdvisementPlayerFile();
file.setUserId(SecurityUtils.getClientId());
- file.setUserName(SecurityUtils.getUsername());
- file.setClientId(clientService.getClientId());
+ if(SecurityUtils.getClientId()!=null){
+ file.setUserName(SecurityUtils.getUsername());
+ }
+ if(clientService.getClientId()!=null){
+ file.setClientId(clientService.getClientId());
+ }
file.setFileName(fileParam.getFileName());
file.setFileSize(fileParam.getFileSize());
- file.setFileBase64(fileParam.getFileBase64());
+ file.setFileUrl(fileParam.getFileUrl());
return save(file);
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java
index da5c10d..8fbbdc6 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/ClientService.java
@@ -86,7 +86,7 @@
public Long getClientId(){
Long userId = SecurityUtils.getUserId();
Client one = getOne(Wrappers.lambdaQuery(Client.class).eq(Client::getId, userId));
- if(one.getSuperiorId()!=null){
+ if(one!=null&&one.getSuperiorId()!=null){
return one.getSuperiorId();
}else {
return userId;
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeFileService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeFileService.java
index ab158d6..8053284 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeFileService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeFileService.java
@@ -27,11 +27,16 @@
public boolean addFile(IpVolumeFileParam fileParam) {
IpVolumeFile file = new IpVolumeFile();
file.setUserId(SecurityUtils.getClientId());
- file.setUserName(SecurityUtils.getUsername());
- file.setClientId(clientService.getClientId());
+ if(SecurityUtils.getClientId()!=null){
+ file.setUserName(SecurityUtils.getUsername());
+ }
+
+ if(clientService.getClientId()!=null){
+ file.setClientId(clientService.getClientId());
+ }
file.setFileName(fileParam.getFileName());
file.setFileSize(fileParam.getFileSize());
- file.setFileBase64(fileParam.getFileBase64());
+ file.setFileUrl(fileParam.getFileUrl());
return save(file);
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramFileService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramFileService.java
index b11b94b..3e581c8 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramFileService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramFileService.java
@@ -1,5 +1,7 @@
package com.sandu.ximon.admin.service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.ximon.admin.param.LEDProgramFileParam;
@@ -34,5 +36,16 @@
return removeById(id);
}
+ public LambdaQueryWrapper<LEDProgramFile> listFile(){
+ LambdaQueryWrapper<LEDProgramFile> ledProgramFileLambdaQueryWrapper = Wrappers.lambdaQuery(LEDProgramFile.class);
+ if(SecurityUtils.getClientId()!=null){
+
+ return ledProgramFileLambdaQueryWrapper.eq(LEDProgramFile::getUserId,SecurityUtils.getUserId());
+ }else {
+ return ledProgramFileLambdaQueryWrapper;
+ }
+
+ }
+
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramService.java
index 54112b9..31cdcad 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDProgramService.java
@@ -31,15 +31,15 @@
}
- public boolean updateProgram(LEDProgramParam receiveParam) {
+ public boolean updateProgram(Long pid,LEDProgramParam receiveParam) {
- LEDProgram byId = getById(receiveParam.getId());
+ LEDProgram byId = getById(pid);
if (byId == null) {
throw new BusinessException("鏈壘鍒拌鑺傜洰");
}
LEDProgram led = new LEDProgram();
- led.setId(receiveParam.getId());
+ led.setId(pid);
//led.setUserId(SecurityUtils.getClientId());
led.setName(receiveParam.getName());
led.setPreview(receiveParam.getPreviewUrl());
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDService.java
deleted file mode 100644
index 16644c7..0000000
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LEDService.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.sandu.ximon.admin.service;
-
-import com.sandu.common.service.impl.BaseServiceImpl;
-import com.sandu.ximon.dao.domain.LED;
-import com.sandu.ximon.dao.mapper.LEDMapper;
-import lombok.AllArgsConstructor;
-import org.springframework.stereotype.Service;
-
-@Service
-@AllArgsConstructor
-public class LEDService extends BaseServiceImpl<LEDMapper, LED> {
-
- private final LEDMapper ledMapper;
-
-}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedPlayerEntityService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedPlayerEntityService.java
new file mode 100644
index 0000000..9581364
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedPlayerEntityService.java
@@ -0,0 +1,33 @@
+package com.sandu.ximon.admin.service;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.ximon.dao.domain.LedPlayerEntity;
+import com.sandu.ximon.dao.mapper.LedPlayerEntityMapper;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author liuhaonan
+ * @Date 2021/12/22 15:27
+ * @Version 1.0
+ */
+@Service
+@AllArgsConstructor
+public class LedPlayerEntityService extends BaseServiceImpl<LedPlayerEntityMapper, LedPlayerEntity> {
+ private final LedPlayerEntityMapper ledPlayerEntityMapper;
+
+ public LedPlayerEntity getBySn(String sn){
+ return getOne(Wrappers.lambdaQuery(LedPlayerEntity.class).eq(LedPlayerEntity::getSn, sn));
+ }
+
+ public boolean saveLed(LedPlayerEntity ledPlayerEntity){
+ return ledPlayerEntityMapper.saveLed(ledPlayerEntity);
+ }
+
+
+ /* public void listLed(String keyWord){
+
+ Wrappers.lambdaQuery(LedPlayerEntity.class).eq(LedPlayerEntity::get)
+ }*/
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/VnnoxService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/VnnoxService.java
new file mode 100644
index 0000000..bec5dee
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/VnnoxService.java
@@ -0,0 +1,192 @@
+package com.sandu.ximon.admin.service;
+
+import com.sandu.ximon.admin.config.VnnoxConstant;
+import com.sandu.ximon.admin.utils.RedisUtils;
+import com.sandu.ximon.admin.utils.VnnoxAPIUtil;
+import com.sandu.ximon.admin.utils.request.VnnoxScreenStatusType;
+import com.sandu.ximon.admin.utils.response.VnnoxPlayerListResponse;
+import com.sandu.ximon.admin.utils.response.VnnoxPlayerResponse;
+import com.sandu.ximon.admin.utils.response.VnnoxResult;
+import com.sandu.ximon.dao.domain.LedPlayerEntity;
+import com.sandu.ximon.dao.domain.LedV2RegisterResultEntity;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @Author liuhaonan
+ * @Date 2021/12/22 14:18
+ * @Version 1.0
+ */
+@Service
+@AllArgsConstructor
+public class VnnoxService {
+
+ // @Autowired
+ private VnnoxAPIUtil vnnoxAPIUtil;
+ // @Autowired
+ private RedisUtils redisUtils;
+ // @Autowired
+ private LedPlayerEntityService ledPlayerEntityService;
+
+ /**
+ * 璁惧鏍¢獙娉ㄥ唽
+ *
+ * @param sn
+ * @return
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public LedV2RegisterResultEntity validateSN(String sn) {
+ LedV2RegisterResultEntity ledV2RegisterResultEntity = new LedV2RegisterResultEntity();
+
+ // 鍒ゆ柇鏁版嵁搴撴槸鍚﹀瓨鍦紝鑻ヤ笉瀛樺湪锛屽垽鏂槸鍚﹀凡缁忔敞鍐屽埌Vnnox鏈嶅姟鍣�
+ //LedPlayerEntity ledPlayerEntity = vnnoxDao.getBySN(sn);
+ // LambdaQueryWrapper<LedPlayerEntity> eq = Wrappers.lambdaQuery(LedPlayerEntity.class).eq(LedPlayerEntity::getSn, sn);
+ LedPlayerEntity ledPlayerEntity = ledPlayerEntityService.getBySn(sn);
+ if (null != ledPlayerEntity) {
+ ledV2RegisterResultEntity.setRegister(1);
+ ledV2RegisterResultEntity.setMsg("璁惧宸插瓨鍦�!");
+ return ledV2RegisterResultEntity;
+ }
+
+ Integer page = 0;
+ Integer limit = 200;
+ List<VnnoxPlayerResponse> playerList;
+ // 鑾峰彇Vnnox鏈嶅姟鍣ㄥ垪琛�
+ VnnoxPlayerListResponse response = vnnoxAPIUtil.getPlayerList(limit, page);
+ playerList = response.getRows();
+ Integer total = response.getTotal() - limit;
+ while (total > 0) {
+ page = page + 1;
+ total = total - limit;
+ response = vnnoxAPIUtil.getPlayerList(limit, page);
+ playerList.addAll(response.getRows());
+ }
+ ledPlayerEntity = new LedPlayerEntity();
+ for (VnnoxPlayerResponse res : playerList) {
+ if (res.getSn().equals(sn)) {
+ ledPlayerEntity.setSn(sn);
+ ledPlayerEntity.setPlayerId(res.getPlayerId());
+ ledPlayerEntity.setPlayerName(res.getName());
+ ledPlayerEntity.setCreateTimestamp(new Date().getTime());
+ ledPlayerEntityService.saveLed(ledPlayerEntity);
+ ledV2RegisterResultEntity.setRegister(1);
+ ledV2RegisterResultEntity.setMsg("璁惧鏍¢獙閫氳繃锛岃澶囨敞鍐屾垚鍔�!");
+ return ledV2RegisterResultEntity;
+ }
+ }
+
+ ledV2RegisterResultEntity.setRegister(0);
+ ledV2RegisterResultEntity.setMsg("璁惧鏈敞鍐屽埌骞冲彴!");
+ return ledV2RegisterResultEntity;
+ }
+
+
+ /**
+ * 灞忓箷鐘舵�佽皟鏁�-POST-JSON
+ *
+ * @param playerList
+ * @param screenStatus
+ * @return
+ */
+ public VnnoxResult screenStatusChange(List<LedPlayerEntity> playerList, Integer screenStatus) {
+ VnnoxScreenStatusType type;
+ if (screenStatus.equals(0)) {
+ type = VnnoxScreenStatusType.CLOSE;
+ } else {
+ type = VnnoxScreenStatusType.OPEN;
+ }
+
+ VnnoxResult vnnoxResult = vnnoxAPIUtil.screenStatus(
+ playerList.stream().map(item -> item.getPlayerId()).collect(Collectors.toList()),
+ type
+ );
+ // 鏍规嵁灞忓箷鐘舵�佽皟鏁碦EDIS鏍囪瘑浣�
+ for (String playerId : vnnoxResult.getSuccess()) {
+ redisUtils.set(VnnoxConstant.REDIS_SCREEN_STATUS + playerId, screenStatus, VnnoxConstant.REDIS_MAX_SAVE_TIME);
+ }
+ return vnnoxResult;
+ }
+
+ public VnnoxResult volChange(List<LedPlayerEntity> playerList, Integer vol) {
+ VnnoxResult vnnoxResult = vnnoxAPIUtil.volChange(
+ playerList.stream().map(item -> item.getPlayerId()).collect(Collectors.toList()),
+ vol
+ );
+ // 鏍规嵁闊抽噺璋冩暣REDIS鏍囪瘑浣�
+ for (String playerId : vnnoxResult.getSuccess()) {
+ redisUtils.set(VnnoxConstant.REDIS_VOL + playerId, vol, VnnoxConstant.REDIS_MAX_SAVE_TIME);
+ }
+ return vnnoxResult;
+ }
+
+ public VnnoxResult brightnessChange(List<LedPlayerEntity> playerList, Integer brightness) {
+ VnnoxResult vnnoxResult = vnnoxAPIUtil.brightnessChange(
+ playerList.stream().map(item -> item.getPlayerId()).collect(Collectors.toList()),
+ brightness
+ );
+ // 鏍规嵁浜害璋冩暣REDIS鏍囪瘑浣�
+ for (String playerId : vnnoxResult.getSuccess()) {
+ redisUtils.set(VnnoxConstant.REDIS_BRIGHTNESS + playerId, brightness, VnnoxConstant.REDIS_MAX_SAVE_TIME);
+ }
+ return vnnoxResult;
+
+ }
+
+ public Map<String, String> getScreenShotUrl(Integer id) {
+ Map<String, String> map = new HashMap();
+
+ LedPlayerEntity playerEntity = ledPlayerEntityService.getById(id);
+ try {
+ redisUtils.delete(VnnoxConstant.REDIS_SCREEN_SHOT + playerEntity.getPlayerId());
+ } catch (Exception e) {
+
+ }
+ VnnoxResult vnnoxResult = vnnoxAPIUtil.screenShot(playerEntity.getPlayerId());
+
+ if (null == vnnoxResult) {
+ map.put("code", "500");
+ map.put("msg", "璁惧宸蹭笅绾�");
+ return map;
+ }
+
+ if (vnnoxResult.getSuccess().size() == 0) {
+ map.put("code", "500");
+ map.put("msg", "鑾峰彇缂╃暐鍥惧け璐�!");
+ return map;
+ }
+ String url = null;
+ Integer checkCount = 0;
+ while (checkCount < 10) {
+ url = redisUtils.get(VnnoxConstant.REDIS_SCREEN_SHOT + playerEntity.getPlayerId());
+ if (null != url) {
+ break;
+ }
+ try {
+ Thread.sleep(2000);
+ checkCount = checkCount + 1;
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ map.put("url", url);
+ map.put("code", "200");
+ return map;
+ }
+
+
+ public VnnoxResult reboot(List<LedPlayerEntity> playerList) {
+ return vnnoxAPIUtil.reboot(
+ playerList.stream().map(
+ item -> item.getPlayerId()
+ ).collect(Collectors.toList())
+ );
+ }
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/RedisUtils.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/RedisUtils.java
new file mode 100644
index 0000000..fe6467a
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/RedisUtils.java
@@ -0,0 +1,132 @@
+package com.sandu.ximon.admin.utils;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.google.gson.Gson;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.*;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Redis宸ュ叿绫�
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+@Component("RedisUtils")
+
+public class RedisUtils {
+ @Autowired
+ private RedisTemplate<String, Object> redisTemplate;
+ @Autowired
+ private ValueOperations<String, String> valueOperations;
+
+ private HashOperations<String, String, Object> hashOperations;
+
+ private ListOperations<String, Object> listOperations;
+
+ private SetOperations<String, Object> setOperations;
+
+ private ZSetOperations<String, Object> zSetOperations;
+ /** 榛樿杩囨湡鏃堕暱锛屽崟浣嶏細绉� */
+ public final static long DEFAULT_EXPIRE = 60 * 60 * 24;
+ /** 涓嶈缃繃鏈熸椂闀� */
+ public final static long NOT_EXPIRE = -1;
+ private final static Gson gson = new Gson();
+
+ /**
+ *
+ * @param key
+ * @param value
+ * @param expire 绉掓暟
+ * @return
+ */
+ public boolean set(String key, Object value, long expire){
+ valueOperations.set(key, toJson(value));
+ if(expire != NOT_EXPIRE){
+ return redisTemplate.expire(key, expire, TimeUnit.SECONDS);
+ }
+ return false;
+ }
+
+ public static RedisUtils getBean(){
+ return (RedisUtils)SpringContextUtils.getBean("RedisUtils");
+ }
+
+ public boolean set(String key, Object value){
+ return set(key, value, DEFAULT_EXPIRE);
+ }
+
+ public <T> T get(String key, Class<T> clazz, long expire) {
+ String value = valueOperations.get(key);
+ if(expire != NOT_EXPIRE){
+ redisTemplate.expire(key, expire, TimeUnit.SECONDS);
+ }
+ return value == null ? null : fromJson(value, clazz);
+ }
+
+ public <T> T get(String key, Class<T> clazz) {
+ return get(key, clazz, NOT_EXPIRE);
+ }
+
+ public String get(String key, long expire) {
+ String value = valueOperations.get(key);
+ if(expire != NOT_EXPIRE){
+ redisTemplate.expire(key, expire, TimeUnit.SECONDS);
+ }
+ return value;
+ }
+
+ public String get(String key) {
+ return get(key, NOT_EXPIRE);
+ }
+
+ public boolean delete(String key) {
+ return redisTemplate.delete(key);
+ }
+
+
+ public Set<String> allKeys(){
+ return redisTemplate.keys("*");
+ }
+
+ public Set<String> keys(String str) {
+ return redisTemplate.keys(str);
+ }
+
+ /**
+ * Object杞垚JSON鏁版嵁
+ */
+ private String toJson(Object object){
+ if(object instanceof Integer || object instanceof Long || object instanceof Float ||
+ object instanceof Double || object instanceof Boolean || object instanceof String){
+ return String.valueOf(object);
+ }
+ return gson.toJson(object);
+ }
+
+ /**
+ * JSON鏁版嵁锛岃浆鎴怬bject
+ */
+ private <T> T fromJson(String json, Class<T> clazz){
+ return gson.fromJson(json, clazz);
+ }
+
+
+ public String listToJson(List list) {
+ return JSON.toJSONString(list);
+ }
+
+ public List jsonToList(String json, Class clazz){
+ if(json.length() == 0) {
+ return null;
+ }
+ JSONArray jsonArray = JSON.parseArray(json);
+ return jsonArray.toJavaList(clazz);
+ }
+
+}
\ No newline at end of file
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/SpringContextUtil.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/SpringContextUtil.java
new file mode 100644
index 0000000..df7c8e6
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/SpringContextUtil.java
@@ -0,0 +1,62 @@
+package com.sandu.ximon.admin.utils;
+
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+@Component
+public class SpringContextUtil implements ApplicationContextAware {
+ /**
+ * 涓婁笅鏂囧璞″疄渚�
+ */
+ private static ApplicationContext applicationContext;
+
+ @Override
+ public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+ SpringContextUtil.applicationContext = applicationContext;
+ }
+
+ /**
+ * 鑾峰彇applicationContext
+ *
+ * @return
+ */
+ public static ApplicationContext getApplicationContext() {
+ return applicationContext;
+ }
+
+ /**
+ * 閫氳繃name鑾峰彇 Bean.
+ *
+ * @param name
+ * @return
+ */
+ public static Object getBean(String name) {
+ return getApplicationContext().getBean(name);
+ }
+
+ /**
+ * 閫氳繃class鑾峰彇Bean.
+ *
+ * @param clazz
+ * @param <T>
+ * @return
+ */
+ public static <T> T getBean(Class<T> clazz) {
+ return getApplicationContext().getBean(clazz);
+ }
+
+ /**
+ * 閫氳繃name,浠ュ強Clazz杩斿洖鎸囧畾鐨凚ean
+ *
+ * @param name
+ * @param clazz
+ * @param <T>
+ * @return
+ */
+ public static <T> T getBean(String name, Class<T> clazz) {
+ return getApplicationContext().getBean(name, clazz);
+ }
+
+}
\ No newline at end of file
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/SpringContextUtils.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/SpringContextUtils.java
new file mode 100644
index 0000000..749c21c
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/SpringContextUtils.java
@@ -0,0 +1,43 @@
+package com.sandu.ximon.admin.utils;
+
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+/**
+ * Spring Context 宸ュ叿绫�
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+@Component
+public class SpringContextUtils implements ApplicationContextAware {
+ public static ApplicationContext applicationContext;
+
+ @Override
+ public void setApplicationContext(ApplicationContext applicationContext)
+ throws BeansException {
+ SpringContextUtils.applicationContext = applicationContext;
+ }
+
+ public static Object getBean(String name) {
+ return applicationContext.getBean(name);
+ }
+
+ public static <T> T getBean(String name, Class<T> requiredType) {
+ return applicationContext.getBean(name, requiredType);
+ }
+
+ public static boolean containsBean(String name) {
+ return applicationContext.containsBean(name);
+ }
+
+ public static boolean isSingleton(String name) {
+ return applicationContext.isSingleton(name);
+ }
+
+ public static Class<? extends Object> getType(String name) {
+ return applicationContext.getType(name);
+ }
+
+}
\ No newline at end of file
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxAPIUtil.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxAPIUtil.java
new file mode 100644
index 0000000..f48ce5f
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxAPIUtil.java
@@ -0,0 +1,218 @@
+package com.sandu.ximon.admin.utils;
+
+import com.alibaba.fastjson.JSON;
+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.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Component("VnnoxAPIUtil")
+@AllArgsConstructor
+public class VnnoxAPIUtil {
+
+ //@Autowired
+ private RedisUtils redisUtils;
+
+ public static VnnoxAPIUtil getBean() {
+ return (VnnoxAPIUtil) SpringContextUtil.getBean("VnnoxAPIUtil");
+ }
+
+ /**
+ * 鑾峰彇token
+ */
+ 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);
+ VnnoxGetTokenResponse response = new VnnoxGetTokenResponse().parse(commonResponse);
+ // 灏唗oken淇濆瓨鍒皉edis缂撳瓨涓�
+ redisUtils.set(VnnoxConstant.REDIS_TOKEN_NAME,response.getToken(),(long)(response.getExpire()-30));
+ }
+
+
+ /**
+ * 鑾峰彇鎾斁鍣ㄥ垪琛�
+ *
+ * @param count 姣忔璇诲彇鏁伴噺锛岄粯璁�20锛屽彇鍊艰寖鍥达細1~100
+ * @param start 浠庣鍑犳潯璁板綍寮�濮嬭鍙栵紝榛樿0
+ * @return
+ */
+ public VnnoxPlayerListResponse getPlayerList(Integer count, Integer start) {
+
+ String result = VnnoxRequestUtil.GetWithHeader(
+ VnnoxUrl.getUrl(VnnoxUrl.GET_PLAYER_LIST),
+ new VnnoxGetPlayerListRequest(count, start).toJson(),
+ new CommonHeader(CommonHeader.JSON, true)
+ );
+ VnnoxPlayerListResponse response =
+ new VnnoxPlayerListResponse().parse(JSON.parseObject(result, CommonResponse.class));
+ return response;
+ }
+
+ /**
+ * 鑾峰彇褰撳墠灞忓箷淇℃伅-POST-JSON
+ *
+ * @param list
+ * @return
+ */
+ public List<LedPlayerEntity> syncCurrentInfo(List<LedPlayerEntity> list) {
+ List<String> playerIds = new ArrayList<>();
+
+ for (LedPlayerEntity playerEntity : list) {
+ playerIds.add(playerEntity.getPlayerId());
+ }
+
+ VnnoxSyncCurrentInfoRequest vnnoxSyncCurrentInfoRequest = new VnnoxSyncCurrentInfoRequest();
+ vnnoxSyncCurrentInfoRequest.setPlayerIds(playerIds);
+
+ String result = VnnoxRequestUtil.PostWithHeader(
+ VnnoxUrl.getUrl(VnnoxUrl.SYNC_CURRENT_INFO),
+ vnnoxSyncCurrentInfoRequest.toJson(),
+ new CommonHeader(CommonHeader.JSON, true)
+ );
+
+ VnnoxSyncCurrentInfoResponse response = JSON.parseObject(result, VnnoxSyncCurrentInfoResponse.class);
+
+ for (LedPlayerEntity playerEntity : list) {
+ for (VnnoxPlayerInfoResponse res : response.getData()) {
+ if (res.getPlayerId().equals(playerEntity.getPlayerId())) {
+ playerEntity.setPlayerType(res.getPlayerType());
+ playerEntity.setOnlineStatus(res.getOnlineStatus());
+ playerEntity.setVersion(res.getVersion());
+ playerEntity.setOsVersion(res.getOsVersion());
+ playerEntity.setLastOnlineTime(res.getLastOnlineTime());
+ playerEntity.setIp(res.getIp());
+ playerEntity.setWidth(res.getWidth());
+ playerEntity.setHeight(res.getHeight());
+ break;
+ }
+ }
+ }
+ return list;
+ }
+
+ /**
+ * 璋冩暣灞忓箷鐘舵�侊紙浜睆/榛戝睆锛�-POST-JSON
+ *
+ * @param playerIds
+ * @param type
+ * @return
+ */
+ public VnnoxResult screenStatus(List<String> playerIds, VnnoxScreenStatusType type) {
+ VnnoxScreenStatusRequest vnnoxScreenStatusRequest = new VnnoxScreenStatusRequest();
+ vnnoxScreenStatusRequest.setPlayerIds(playerIds);
+ vnnoxScreenStatusRequest.setStatus(type);
+
+ String result = VnnoxRequestUtil.PostWithHeader(
+ VnnoxUrl.getUrl(VnnoxUrl.SCREEN_STATUS),
+ vnnoxScreenStatusRequest.toJson(),
+ new CommonHeader(CommonHeader.JSON, true)
+ );
+
+ VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
+
+ return response.getData();
+ }
+
+
+ /**
+ * 闊抽噺璋冩暣-POST-JSON
+ *
+ * @param playerIds
+ * @param vol
+ * @return
+ */
+ public VnnoxResult volChange(List<String> playerIds, Integer vol) {
+
+ VnnoxBaseRequest request = new VnnoxBaseRequest();
+ request.setPlayerIds(playerIds);
+ request.setValue(vol);
+
+ String result = VnnoxRequestUtil.PostWithHeader(
+ VnnoxUrl.getUrl(VnnoxUrl.CHANGE_VOL),
+ request.toJson(),
+ new CommonHeader(CommonHeader.JSON, true)
+ );
+ VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
+
+ return response.getData();
+
+ }
+
+ /**
+ * 灞忓箷浜害璋冩暣
+ *
+ * @param playerIds
+ * @param brightness
+ * @return
+ */
+ public VnnoxResult brightnessChange(List<String> playerIds, Integer brightness) {
+ VnnoxBaseRequest request = new VnnoxBaseRequest();
+ request.setPlayerIds(playerIds);
+ request.setValue(brightness);
+
+ String result = VnnoxRequestUtil.PostWithHeader(
+ VnnoxUrl.getUrl(VnnoxUrl.CHANGE_BRIGHTNESS),
+ request.toJson(),
+ new CommonHeader(CommonHeader.JSON, true)
+ );
+ VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
+
+ return response.getData();
+ }
+
+ /**
+ * 灞忓箷鎴浘
+ *
+ * @param playerId
+ * @return
+ */
+ public VnnoxResult screenShot(String playerId) {
+ List<String> players = new ArrayList<>();
+ players.add(playerId);
+ 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)
+ );
+ VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
+
+ return response.getData();
+ }
+
+ /**
+ * 璁惧閲嶅惎
+ *
+ * @param playerIdList
+ * @return
+ */
+ public VnnoxResult reboot(List<String> playerIdList) {
+ VnnoxBaseRequest request = new VnnoxBaseRequest();
+ request.setPlayerIds(playerIdList);
+ request.setNoticeUrl(VnnoxConstant.SCREEN_SHOT_NOTIFY_URL);
+
+ String result = VnnoxRequestUtil.PostWithHeader(
+ VnnoxUrl.getUrl(VnnoxUrl.REBOOT),
+ request.toJson(),
+ new CommonHeader(CommonHeader.JSON, true)
+ );
+ VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
+
+ return response.getData();
+ }
+
+}
\ No newline at end of file
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxRequestUtil.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxRequestUtil.java
new file mode 100644
index 0000000..3b9e37a
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxRequestUtil.java
@@ -0,0 +1,105 @@
+package com.sandu.ximon.admin.utils;
+
+import com.sandu.ximon.admin.utils.request.CommonHeader;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicHeader;
+import org.apache.http.protocol.HTTP;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+public class VnnoxRequestUtil {
+
+ private static final String UTF8 = "utf-8";
+
+
+ public static String get(String url){
+ CloseableHttpClient client = HttpClients.createDefault();
+ HttpGet get = new HttpGet(url);
+ String result = null;
+ try {
+ HttpResponse httpResponse = client.execute(get);
+ InputStream inStream = httpResponse.getEntity().getContent();
+
+ result = streamToString(inStream,UTF8);
+
+ inStream.close();
+ } catch (Exception e) {
+ return null;
+ }
+ return result;
+ }
+
+ public static String GetWithHeader (String url, String params, CommonHeader header) {
+ CloseableHttpClient client = HttpClients.createDefault();
+ HttpGet get = new HttpGet(url);
+ for(String key: header.keySet()) {
+ get.setHeader(key, header.get(key));
+ }
+ String result = null;
+ try {
+ StringEntity s = new StringEntity(params, UTF8);
+ s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
+ "application/json"));
+ HttpResponse httpResponse = client.execute(get);
+ InputStream inStream = httpResponse.getEntity().getContent();
+
+ result = streamToString(inStream, UTF8);
+
+ inStream.close();
+ } catch (Exception e) {
+ return null;
+ }
+ return result;
+ }
+
+
+
+
+ public static String PostWithHeader (String URL, String json, CommonHeader header) {
+ CloseableHttpClient client = HttpClients.createDefault();
+ HttpPost post = new HttpPost(URL);
+ for(String key: header.keySet()) {
+ post.setHeader(key, header.get(key));
+ }
+ String result = null;
+ try {
+ StringEntity s = new StringEntity(json, UTF8);
+ s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
+ "application/json"));
+ post.setEntity(s);
+ HttpResponse httpResponse = client.execute(post);
+ InputStream inStream = httpResponse.getEntity().getContent();
+
+ result = streamToString(inStream,UTF8);
+
+ inStream.close();
+ } catch (Exception e) {
+ return null;
+ }
+ return result;
+ }
+
+
+
+ public static String streamToString(InputStream in, String encoding){
+ // 灏嗘祦杞崲涓哄瓧绗︿覆
+ try {
+ StringBuffer sb = new StringBuffer();
+ byte[] b = new byte[1024];
+ for (int n; (n = in.read(b)) != -1;) {
+ sb.append(new String(b, 0, n, encoding));
+ }
+ return sb.toString();
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new RuntimeException("鎻愬彇 requestBody 寮傚父", e);
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/CommonHeader.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/CommonHeader.java
new file mode 100644
index 0000000..e08c313
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/CommonHeader.java
@@ -0,0 +1,42 @@
+package com.sandu.ximon.admin.utils.request;
+
+import com.sandu.ximon.admin.config.VnnoxConstant;
+import com.sandu.ximon.admin.utils.RedisUtils;
+import com.sandu.ximon.admin.utils.VnnoxAPIUtil;
+import lombok.Data;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.HashMap;
+
+@Data
+public class CommonHeader extends HashMap<String, String> {
+
+ private static Logger logger = LoggerFactory.getLogger(CommonHeader.class);
+
+ public static final String FORM = "form";
+ public static final String JSON = "json";
+
+ public CommonHeader(String type,boolean hasToken){
+ super.put("username", VnnoxConstant.username);
+ if(type.equals(FORM)) {
+ super.put("Content-Type","application/x-www-form-urlencoded");
+ } else if(type.equals(JSON)) {
+ super.put("Content-Type","application/json");
+ }
+ if(hasToken) {
+ String token = null;
+ while(token == null) {
+ token = RedisUtils.getBean().get(VnnoxConstant.REDIS_TOKEN_NAME);
+ if(null == token) {
+ VnnoxAPIUtil.getBean().getToken();
+ logger.info("鍔犺浇vnnox token");
+ } else {
+ break;
+ }
+ }
+ super.put("token", token);
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxBaseRequest.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxBaseRequest.java
new file mode 100644
index 0000000..1240eb2
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxBaseRequest.java
@@ -0,0 +1,21 @@
+package com.sandu.ximon.admin.utils.request;
+
+import com.sandu.ximon.admin.config.VnnoxConstant;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class VnnoxBaseRequest implements VnnoxRequest {
+
+ private List<String> playerIds;
+
+ private Integer value;
+
+ private String noticeUrl;
+
+ @Override
+ public String toJson() {
+ return VnnoxConstant.GSON.toJson(this);
+ }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxGetPlayerListRequest.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxGetPlayerListRequest.java
new file mode 100644
index 0000000..45c6a04
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxGetPlayerListRequest.java
@@ -0,0 +1,24 @@
+package com.sandu.ximon.admin.utils.request;
+
+import com.sandu.ximon.admin.config.VnnoxConstant;
+import lombok.Data;
+
+@Data
+public class VnnoxGetPlayerListRequest implements VnnoxRequest{
+
+ private Integer count;
+
+ private Integer start;
+
+ private String name;
+
+ public VnnoxGetPlayerListRequest(Integer count, Integer start){
+ this.count = count;
+ this.start = start;
+ }
+
+ @Override
+ public String toJson() {
+ return VnnoxConstant.GSON.toJson(this);
+ }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxGetTokenRequest.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxGetTokenRequest.java
new file mode 100644
index 0000000..26e4ab2
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxGetTokenRequest.java
@@ -0,0 +1,17 @@
+package com.sandu.ximon.admin.utils.request;
+
+import com.sandu.ximon.admin.config.VnnoxConstant;
+import lombok.Data;
+
+@Data
+public class VnnoxGetTokenRequest implements VnnoxRequest{
+
+ private String username = VnnoxConstant.username;
+
+ private String password = VnnoxConstant.password;
+
+ @Override
+ public String toJson() {
+ return VnnoxConstant.GSON.toJson(this);
+ }
+}
\ No newline at end of file
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxRequest.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxRequest.java
new file mode 100644
index 0000000..a967749
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxRequest.java
@@ -0,0 +1,7 @@
+package com.sandu.ximon.admin.utils.request;
+
+public interface VnnoxRequest {
+
+ String toJson();
+
+}
\ No newline at end of file
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxScreenStatusRequest.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxScreenStatusRequest.java
new file mode 100644
index 0000000..7b2c003
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxScreenStatusRequest.java
@@ -0,0 +1,19 @@
+package com.sandu.ximon.admin.utils.request;
+
+import com.sandu.ximon.admin.config.VnnoxConstant;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class VnnoxScreenStatusRequest implements VnnoxRequest{
+
+ private List<String> playerIds;
+
+ private VnnoxScreenStatusType status;
+
+ @Override
+ public String toJson() {
+ return VnnoxConstant.GSON.toJson(this);
+ }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxScreenStatusType.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxScreenStatusType.java
new file mode 100644
index 0000000..971a240
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxScreenStatusType.java
@@ -0,0 +1,12 @@
+package com.sandu.ximon.admin.utils.request;
+
+/**
+ * 灞忓箷鐘舵��
+ */
+public enum VnnoxScreenStatusType {
+
+ OPEN,
+
+ CLOSE
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxSyncCurrentInfoRequest.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxSyncCurrentInfoRequest.java
new file mode 100644
index 0000000..b092a14
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxSyncCurrentInfoRequest.java
@@ -0,0 +1,17 @@
+package com.sandu.ximon.admin.utils.request;
+
+import com.sandu.ximon.admin.config.VnnoxConstant;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class VnnoxSyncCurrentInfoRequest implements VnnoxRequest{
+
+ private List<String> playerIds;
+
+ @Override
+ public String toJson() {
+ return VnnoxConstant.GSON.toJson(this);
+ }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/CommonResponse.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/CommonResponse.java
new file mode 100644
index 0000000..62d5dbd
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/CommonResponse.java
@@ -0,0 +1,21 @@
+package com.sandu.ximon.admin.utils.response;
+
+import com.alibaba.fastjson.JSON;
+import lombok.Data;
+
+import java.util.Map;
+
+@Data
+public class CommonResponse {
+
+ private Long logid;
+
+ private Integer status;
+
+ private Map data;
+
+ public String getDataJson(){
+ return JSON.toJSONString(data);
+ }
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxGetTokenResponse.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxGetTokenResponse.java
new file mode 100644
index 0000000..898e2ec
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxGetTokenResponse.java
@@ -0,0 +1,25 @@
+package com.sandu.ximon.admin.utils.response;
+
+import com.alibaba.fastjson.JSON;
+import lombok.Data;
+
+@Data
+public class VnnoxGetTokenResponse implements VnnoxResponse<VnnoxGetTokenResponse> {
+
+ // 鑾峰彇鐨勫嚟璇�
+ private String token;
+ // 鍑瘉鏈夋晥鏃堕棿锛屽崟浣嶏細绉�
+ private Integer expire;
+
+ @Override
+ public VnnoxPlayerListResponse parse(com.aliyuncs.CommonResponse commonEntity) {
+ return null;
+ }
+
+ @Override
+ public VnnoxGetTokenResponse parse(CommonResponse commonEntity) {
+ return JSON.parseObject(commonEntity.getDataJson(),VnnoxGetTokenResponse.class);
+ }
+
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxPlayerInfoResponse.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxPlayerInfoResponse.java
new file mode 100644
index 0000000..d7af1f3
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxPlayerInfoResponse.java
@@ -0,0 +1,30 @@
+package com.sandu.ximon.admin.utils.response;
+
+import lombok.Data;
+
+@Data
+public class VnnoxPlayerInfoResponse {
+ // 鎾斁鍣↖D
+ private String playerId;
+ // 鎾斁鍣ㄧ被鍨�,1-鍚屾鎾斁鍣紝2-寮傛鎾斁鍣�
+ private Integer playerType;
+ // 鎾斁鍣ㄥ悕绉�
+ private String name;
+ // 鎾斁鍣ㄥ綋鍓嶅湪绾跨姸鎬侊紝0-绂荤嚎锛�1-鍦ㄧ嚎
+ private Integer onlineStatus;
+ // 鎾斁鍣ㄥ敮涓�鏍囪瘑,濡傛灉涓簄ull浠h〃娌℃湁缁戝畾鎾斁鍣�
+ private String sn;
+ // 鎾斁鍣ㄥ綋鍓嶇増鏈彿
+ private String version;
+ // 鎾斁鍣ㄥ綋鍓嶇郴缁熺増鏈彿
+ private String osVersion;
+ // 鎾斁鍣╥p鍦板潃
+ private String ip;
+ // 鎾斁鍣ㄥ昂瀵稿搴�
+ private Integer width;
+ // 鎾斁鍣ㄥ昂瀵搁珮搴�
+ private Integer height;
+ // 鎾斁鍣ㄦ渶鍚庡績璺虫椂闂�(new)
+ private String lastOnlineTime;
+
+}
\ No newline at end of file
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxPlayerListResponse.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxPlayerListResponse.java
new file mode 100644
index 0000000..2daa4c8
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxPlayerListResponse.java
@@ -0,0 +1,29 @@
+package com.sandu.ximon.admin.utils.response;
+
+import com.alibaba.fastjson.JSON;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class VnnoxPlayerListResponse implements VnnoxResponse<VnnoxPlayerListResponse> {
+
+
+ private Integer total;
+
+ private VnnoxPlayerPageInfoResponse pageInfo;
+
+ private List<VnnoxPlayerResponse> rows;
+
+
+
+ @Override
+ public VnnoxPlayerListResponse parse(com.aliyuncs.CommonResponse commonEntity) {
+ return null;
+ }
+
+ @Override
+ public VnnoxPlayerListResponse parse(CommonResponse commonEntity) {
+ return JSON.parseObject(commonEntity.getDataJson(),VnnoxPlayerListResponse.class);
+ }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxPlayerPageInfoResponse.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxPlayerPageInfoResponse.java
new file mode 100644
index 0000000..9b580f2
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxPlayerPageInfoResponse.java
@@ -0,0 +1,12 @@
+package com.sandu.ximon.admin.utils.response;
+
+import lombok.Data;
+
+@Data
+public class VnnoxPlayerPageInfoResponse {
+
+ private Integer start;
+
+ private Integer count;
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxPlayerResponse.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxPlayerResponse.java
new file mode 100644
index 0000000..6d4047c
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxPlayerResponse.java
@@ -0,0 +1,26 @@
+package com.sandu.ximon.admin.utils.response;
+
+import lombok.Data;
+
+@Data
+public class VnnoxPlayerResponse {
+
+ // 鎾斁鍣↖D
+ private String playerId;
+ // 鎾斁鍣ㄧ被鍨�,1-鍚屾鎾斁鍣紝2-寮傛鎾斁鍣�
+ private Integer playerType;
+ // 鎾斁鍣ㄥ悕绉�
+ private String name;
+ // 鎾斁鍣ㄥ綋鍓嶅湪绾跨姸鎬侊紝0-绂荤嚎锛�1-鍦ㄧ嚎
+ private Integer onlineStatus;
+ // 鎾斁鍣ㄥ敮涓�鏍囪瘑,濡傛灉涓簄ull浠h〃娌℃湁缁戝畾鎾斁鍣�
+ private String sn;
+ // 鎾斁鍣ㄥ綋鍓嶇増鏈彿
+ private String version;
+ // 鎾斁鍣ㄦ渶鍚庡績璺虫椂闂�(new)
+ private String lastOnlineTime;
+ // IP鍦板潃
+ private String ip;
+
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxResponse.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxResponse.java
new file mode 100644
index 0000000..a0d3905
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxResponse.java
@@ -0,0 +1,9 @@
+package com.sandu.ximon.admin.utils.response;
+
+public interface VnnoxResponse<T> {
+
+ VnnoxPlayerListResponse parse(com.aliyuncs.CommonResponse commonEntity);
+
+ T parse(CommonResponse commonEntity);
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxResult.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxResult.java
new file mode 100644
index 0000000..c08995c
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxResult.java
@@ -0,0 +1,14 @@
+package com.sandu.ximon.admin.utils.response;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class VnnoxResult {
+
+ private List<String> success;
+
+ private List<String> fail;
+
+}
\ No newline at end of file
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxResultResponse.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxResultResponse.java
new file mode 100644
index 0000000..576d673
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxResultResponse.java
@@ -0,0 +1,15 @@
+package com.sandu.ximon.admin.utils.response;
+
+import lombok.Data;
+
+@Data
+public class VnnoxResultResponse {
+
+ private String logid;
+
+ private Integer status;
+
+ private VnnoxResult data;
+
+ private String errmsg;
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxSyncCurrentInfoResponse.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxSyncCurrentInfoResponse.java
new file mode 100644
index 0000000..9914fa7
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxSyncCurrentInfoResponse.java
@@ -0,0 +1,16 @@
+package com.sandu.ximon.admin.utils.response;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class VnnoxSyncCurrentInfoResponse {
+
+ private Long logid;
+
+ private Integer status;
+
+ private List<VnnoxPlayerInfoResponse> data;
+
+}
\ No newline at end of file
--
Gitblit v1.9.3