From 83326b4b2a8a10d11ae18dcedd2e6904dd69d2b2 Mon Sep 17 00:00:00 2001
From: liuhaonan <konodioda2333@vip.qq.com>
Date: 星期五, 11 二月 2022 12:32:11 +0800
Subject: [PATCH] 功能完善
---
ximon-admin/src/main/java/com/sandu/ximon/admin/config/RealtimeServerBean.java | 35 +
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/DownloadFileToLocal.java | 17
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxProgramAPIUtil.java | 39 +
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/GetScreenHeight.java | 14
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/ClearVideoPlay.java | 9
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/GetTimeSchedule.java | 10
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/Constant.java | 252 +++++++
ximon-admin/src/main/java/com/sandu/ximon/admin/entity/ProgramsTask.java | 15
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/FileUtil.java | 89 ++
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/LightemitUtils.java | 378 +++++++++++
ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Command.java | 16
ximon-admin/src/main/java/com/sandu/ximon/admin/config/NginxConfigBean.java | 15
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/HtmlTemplateUtils.java | 62 +
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/Clear.java | 12
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/GetScreenWidth.java | 14
ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Layer.java | 14
dao/src/main/java/com/sandu/ximon/dao/domain/PoleLightemitEntity.java | 89 ++
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/GetPicture.java | 15
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java | 711 ++++++++++++++++++++++
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/ClearPlayerTask.java | 8
ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Program.java | 20
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/IsScreenOpen.java | 14
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/PlayerProgram.java | 28
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/PostHtml.java | 20
24 files changed, 1,896 insertions(+), 0 deletions(-)
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/PoleLightemitEntity.java b/dao/src/main/java/com/sandu/ximon/dao/domain/PoleLightemitEntity.java
new file mode 100644
index 0000000..fc1e85a
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/PoleLightemitEntity.java
@@ -0,0 +1,89 @@
+package com.sandu.ximon.dao.domain;
+
+import cn.hutool.core.date.DateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * led骞垮憡灞忎富琛�
+ *
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2019-04-20 13:34:54
+ */
+@Data
+@TableName("pole_lightemit")
+public class PoleLightemitEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * LED ID
+ */
+ @TableId
+ private Long lightemitId;
+ /**
+ * LED鍚嶇О
+ */
+ private String lightemitName;
+ /**
+ * LED鎺у埗鍗$紪鍙�
+ */
+ private String lightemitControlCode;
+ /**
+ * 鎵�鏄剧ず鍥剧墖鍦板潃
+ */
+ private String url;
+ /**
+ * 鏄剧ず鏃堕棿
+ */
+ private Integer playTime;
+ /**
+ * 鍔犲叆鏃堕棿锛堝瓨鍌ㄥ崟鐏暟鎹洿鏂版椂闂达級
+ */
+ private DateTime addTime;
+ /*
+ 璇锋眰鏁版嵁
+ */
+ private String requestBody;
+ /**
+ * 鎾斁璁剧疆 0锛氫娇鐢ㄦ挱鏀炬帴鍙o紱 1锛氫娇鐢▁ixunplayer鎾斁鎺ュ彛
+ */
+ private Integer playerSetting;
+ /**
+ * 鐘舵�� 0锛氱鐢� 1锛氭甯�
+ */
+ private Integer status;
+ /**
+ * 鐘舵�� 0锛氱鐢� 1锛氭甯�
+ */
+ private String remark;
+ /**
+ * 鍒涘缓鑰匢D
+ */
+ private Long createUserId;
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ private DateTime createTime;
+ /**
+ * 缁戝畾鐏潌ID
+ */
+ @TableField(exist = false)
+ private Long streetlightId;
+ /**
+ * 鐏潌鍚嶇О
+ */
+ @TableField(exist = false)
+ private String streetlightName;
+
+ /**
+ * led灞忓箷寮�鍏�
+ */
+ @TableField(exist = false)
+ private Boolean isOpen;
+
+}
\ No newline at end of file
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/config/NginxConfigBean.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/config/NginxConfigBean.java
new file mode 100644
index 0000000..7d10894
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/config/NginxConfigBean.java
@@ -0,0 +1,15 @@
+package com.sandu.ximon.admin.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Data
+@Component
+@ConfigurationProperties(prefix = "nginx-config")
+public class NginxConfigBean {
+
+ private String filePath;
+
+ private String url;
+}
\ No newline at end of file
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/config/RealtimeServerBean.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/config/RealtimeServerBean.java
new file mode 100644
index 0000000..45a305d
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/config/RealtimeServerBean.java
@@ -0,0 +1,35 @@
+package com.sandu.ximon.admin.config;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * @program: machine-fast
+ * @description: led鏈嶅嫏鍣ㄥ湴鍧�
+ * @author: YSS
+ * @create: 2019-04-24 13:24
+ **/
+@Component
+@ConfigurationProperties(prefix = "realtime-server")
+public class RealtimeServerBean {
+
+ private String command;
+
+ private String url;
+
+ public void setCommand(String command) {
+ this.command = command;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public String getCommand() {
+ return command;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Command.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Command.java
new file mode 100644
index 0000000..f283c6f
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Command.java
@@ -0,0 +1,16 @@
+package com.sandu.ximon.admin.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class Command implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ private String id;
+ private String preDownloadURL;
+ private String notificationURL;
+ private ProgramsTask task;
+ private String _type = "PlayXixunTask";
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Layer.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Layer.java
new file mode 100644
index 0000000..ef4ea72
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Layer.java
@@ -0,0 +1,14 @@
+package com.sandu.ximon.admin.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class Layer implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ private List<Source> sources; //绱犳潗閮介渶瑕佸姞鍏ュ埌杩欎釜list閲岄潰
+ private boolean repeat = true; //濡傛灉璇ュ�间负false锛屽畠浼氬湪鎾斁鏃堕暱鍒拌揪鍚庣粨鏉熸挱鏀撅紝鍚﹀垯浠栦細寰幆鎾斁鐩村埌list涓渶闀跨殑閭d釜layer鎾斁缁撴潫鏃剁粨鏉熸挱鏀�
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Program.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Program.java
new file mode 100644
index 0000000..1326c9c
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Program.java
@@ -0,0 +1,20 @@
+package com.sandu.ximon.admin.entity;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class Program {
+
+
+ private String _id; //璇蜂娇鐢║UID璧嬪��
+ private String name; //濂借鐨勫悕瀛�
+ private int width; //鑺傜洰瀹�
+ private int height; //鑺傜洰楂樺害
+ private List<Layer> layers; //鎵�鏈夌礌鏉愰兘鍖呭惈鍦ㄨlist涓�
+ private long totalSize; //灏唋ayers涓殑sources鐨剆ize绱姞璧嬪�肩粰浠栵紝琛ㄧず鑺傜洰鎵�鏈夌礌鏉愬崰鐢ㄧ殑绌洪棿
+ //濡傛灉涓簍rue锛屽垯璇ヨ妭鐩潵鑷涓夋柟鎺ュ彛锛屼笉鏄潵鑷垜浠嚜宸辩殑web锛屼簩娆″紑鍙戣鍔″繀璧嬪�间负true
+ private boolean isOthers=true;
+ private int version; //2涓虹畝鏄撹妭鐩紝9涓哄畾鐐硅妭鐩紝鍏朵粬涓洪珮绾ц妭鐩紝璇疯祴鍊煎叾浠栥��
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/entity/ProgramsTask.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/entity/ProgramsTask.java
new file mode 100644
index 0000000..561b0ae
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/entity/ProgramsTask.java
@@ -0,0 +1,15 @@
+package com.sandu.ximon.admin.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class ProgramsTask implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ private String _id; //浣跨敤UUID璧嬪��
+ private String name; //鑺傜洰鍚�
+ private List<TaskItem> items;
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java
new file mode 100644
index 0000000..3a816b4
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java
@@ -0,0 +1,711 @@
+//package com.sandu.ximon.admin.service;
+//
+//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+//import com.google.gson.Gson;
+//import com.sandu.common.service.impl.BaseServiceImpl;
+//import com.sandu.ximon.admin.config.NginxConfigBean;
+//import com.sandu.ximon.admin.config.RealtimeServerBean;
+//import com.sandu.ximon.admin.entity.*;
+//import com.sandu.ximon.admin.utils.Constant;
+//import com.sandu.ximon.admin.utils.FileUtil;
+//import com.sandu.ximon.admin.utils.HtmlTemplateUtils;
+//import com.sandu.ximon.admin.utils.LightemitUtils;
+//import com.sandu.ximon.admin.utils.request.SubTitleSet;
+//import com.sandu.ximon.dao.domain.PoleLightemitEntity;
+//import org.apache.commons.lang3.StringUtils;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.cache.annotation.EnableCaching;
+//import org.springframework.context.ApplicationContext;
+//import org.springframework.scheduling.annotation.Async;
+//import org.springframework.stereotype.Service;
+//
+//import javax.annotation.PostConstruct;
+//import java.io.File;
+//import java.io.IOException;
+//import java.util.*;
+//
+//
+//@Service
+//@EnableCaching
+//public class PoleLightemitService extends BaseServiceImpl<PoleLightemitDao, PoleLightemitEntity> {
+//
+// @Autowired
+// PoleStreetlightLightemitService poleStreetlightLightemitService;
+// LightemitUtils lightemitUtils;
+// @Autowired
+// RealtimeServerBean realtimeServerBean;
+// @Value("${server.port}")
+// private String port;
+// @Autowired
+// ApplicationContext applicationContext;
+// @Autowired
+// FfmpegUtils ffmpegUtils;
+// @Autowired
+// FileUploadPathBean fileUploadPathBean;
+// @Autowired
+// NginxConfigBean nginxConfigBean;
+// @Autowired
+// PoleLightemitDao poleLightemitDao;
+//
+// @PostConstruct
+// public void init(){
+// //閲嶆柊鑾峰彇鍗曚緥
+// lightemitUtils = applicationContext.getBean(LightemitUtils.class);
+// }
+//
+// /*@Override
+// public PageUtils queryPage(Map<String, Object> params, Long userId) {
+//
+// String key = (String)params.get("key");
+//
+// Long groupId = StringUtils.isNotBlank((String)params.get("group"))? Long.valueOf((String)params.get("group")): null;
+//
+// String order = (String)params.get("order");
+//
+// String column = (String)params.get("sortby");
+//
+// IPage<PoleLightemitEntity> page = new Page<>();
+// //鑾峰彇瑙掕壊鍒楄〃
+// Long roleId = (sysUserRoleService.queryRoleId(userId));
+//
+// if(roleId == null || roleId == 0){
+// return null;
+// }
+//
+// if(roleId.longValue() == Constant.SUPER_ADMIN){
+//// page = this.page(
+//// new Query<PoleLightemitEntity>().getPage(params),
+//// new QueryWrapper<PoleLightemitEntity>().like(StringUtils.isNotBlank(key),"lightemit_name", key));
+// if (order != null && order.equals("ASC") && column.equals("isOpen")) {
+// Map<String, Object> map = new HashMap<>();
+// Integer pg = 1;
+// Integer size = 200;
+// map.put("page",pg);
+// params.put("limit",size);
+// page = baseMapper.superAdminSelectPageVo(PageTransform.transformPage(params),key,groupId,order,column);
+// ledOnlineCheck(page.getRecords());
+// page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(true)).collect(Collectors.toList()));
+// return new PageUtils(page);
+// }else if (order != null && order.equals("DESC") && column.equals("isOpen")){
+// Map<String, Object> map = new HashMap<>();
+// Integer pg = 1;
+// Integer size = 200;
+// map.put("page",pg);
+// params.put("limit",size);
+// page = baseMapper.superAdminSelectPageVo(PageTransform.transformPage(params),key,groupId,order,column);
+// ledOnlineCheck(page.getRecords());
+// page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(false)).collect(Collectors.toList()));
+// return new PageUtils(page);
+// }else {
+// page = baseMapper.superAdminSelectPageVo(PageTransform.transformPage(params), key, groupId,order,column);
+// }
+//
+// }else if(roleId.longValue() == Constant.ADMIN){
+// if (order != null && order.equals("ASC") && column.equals("isOpen")) {
+// Map<String, Object> map = new HashMap<>();
+// Integer pg = 1;
+// Integer size = 200;
+// map.put("page",pg);
+// params.put("limit",size);
+// page = baseMapper.adminSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
+// ledOnlineCheck(page.getRecords());
+// page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(true)).collect(Collectors.toList()));
+// return new PageUtils(page);
+// }else if (order != null && order.equals("DESC") && column.equals("isOpen")){
+// Map<String, Object> map = new HashMap<>();
+// Integer pg = 1;
+// Integer size = 200;
+// map.put("page",pg);
+// params.put("limit",size);
+// page = baseMapper.adminSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
+// ledOnlineCheck(page.getRecords());
+// page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(false)).collect(Collectors.toList()));
+// return new PageUtils(page);
+// }else {
+// page = baseMapper.adminSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
+// }
+//
+// }else if(roleId.longValue() == Constant.USER){
+// if (order != null && order.equals("ASC") && column.equals("isOpen")) {
+// Map<String, Object> map = new HashMap<>();
+// Integer pg = 1;
+// Integer size = 200;
+// map.put("page",pg);
+// params.put("limit",size);
+// page = baseMapper.userSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
+// ledOnlineCheck(page.getRecords());
+// page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(true)).collect(Collectors.toList()));
+// return new PageUtils(page);
+// }else if (order != null && order.equals("DESC") && column.equals("isOpen")){
+// Map<String, Object> map = new HashMap<>();
+// Integer pg = 1;
+// Integer size = 200;
+// map.put("page",pg);
+// params.put("limit",size);
+// page = baseMapper.userSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
+// ledOnlineCheck(page.getRecords());
+// page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(false)).collect(Collectors.toList()));
+// return new PageUtils(page);
+// }else {
+// page = baseMapper.userSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
+// }
+//
+// }
+// ledOnlineCheck(page.getRecords());
+// return new PageUtils(page);
+// }
+//*//*
+// @Override
+// public List<PoleLightemitEntity> getAll(Long userId) {
+// //鑾峰彇瑙掕壊鍒楄〃
+// Long roleId = (sysUserRoleService.queryRoleId(userId));
+//
+// if(roleId == null || roleId == 0){
+// return null;
+// }
+// List<PoleLightemitEntity> list = null;
+// if(roleId.longValue() == Constant.SUPER_ADMIN){
+// list = poleLightemitDao.selectAll();
+// }else if(roleId.longValue() == Constant.ADMIN){
+// list = poleLightemitDao.selectAllByCompany(userId);
+// }else if(roleId.longValue() == Constant.USER){
+// list = poleLightemitDao.selectAllByUser(userId);
+// }
+// return list;
+// }
+//*/
+//
+///* public void ledOnlineCheck(List<PoleLightemitEntity> list) {
+//
+// for(PoleLightemitEntity poleLightemitEntity : list){
+// poleLightemitEntity.setIsOpen(lightemitUtils.getIsScreenOpen(poleLightemitEntity.getLightemitControlCode()).contains("true"));
+// }
+// }*/
+//
+//
+// /* public void savePoleLightemit(PoleLightemitEntity poleLightemit) {
+// this.save(poleLightemit);
+// poleStreetlightLightemitService.saveStreetlightLightemit(poleLightemit.getLightemitId(),poleLightemit.getStreetlightId());
+// }*/
+//
+//
+// /* public void updatePoleLightemit(PoleLightemitEntity poleLightemit) {
+// this.updateById(poleLightemit);
+// poleStreetlightLightemitService.saveStreetlightLightemit(poleLightemit.getLightemitId(),poleLightemit.getStreetlightId());
+// }*/
+//
+// /**
+// * 鏌ヨ鏉冮檺鑼冨洿鍐呯殑鎵�鏈塴ed灞忎俊鎭�
+// * @param
+// * @return
+// */
+// /* public List<PoleLightemitEntity> selectLightemitByUserId(Long userId) {
+// List<PoleLightemitEntity> list = new ArrayList<>();
+//
+// Long roleId = sysUserRoleService.queryRoleId(userId);
+//
+// if(roleId == null || roleId == 0){
+// return new ArrayList<>();
+// }
+// if(roleId.longValue() == Constant.SUPER_ADMIN){
+// list = this.list();
+// }else if(roleId.longValue() == Constant.ADMIN){
+// list = baseMapper.selectCompanyLightemitByUserId(userId);
+// }else if(roleId.longValue() == Constant.USER){
+// list = baseMapper.selectLightemitByUserId(userId);
+// }
+// return list;
+// }
+//*/
+// /*
+// 閫氳繃灞忓箷缂栫爜鏌ヨ
+// */
+//
+// public PoleLightemitEntity selectByLightemitControlCode(String lightemitControlCode) {
+// QueryWrapper<PoleLightemitEntity> queryWrapper = new QueryWrapper<>();
+// queryWrapper.eq("lightemit_control_code", lightemitControlCode);
+// return this.getOne(queryWrapper);
+// }
+//
+// /*
+// led涓婁紶鍥剧墖
+// */
+// @Async("taskExecutor")
+// public void photoUpload(String lightemitControlCode, String path, List<String> filenameList, String userName) throws IOException {
+// //鑾峰彇灞忓箷瀹�
+// String screenWidth = lightemitUtils.getScreenWidth(lightemitControlCode);
+// String screenHeight = lightemitUtils.getScreenHeight(lightemitControlCode);
+//
+// //html鍦板潃
+// String filenameTemp = path + userName + "_"+lightemitControlCode + ".html";
+// File htmlFile = new File(filenameTemp);
+// if (!htmlFile.exists() || htmlFile.delete()) {
+// htmlFile.createNewFile();
+// }
+//
+// //鑾峰彇body鐨刪tml
+// Map<String, Object> params = new HashMap<>();
+// params.put("imgList",filenameList);
+// params.put("screenWidth",screenWidth);
+// params.put("screenHeight",screenHeight);
+//
+// String body = new HtmlTemplateUtils().renderPath("classpath:templates/lightemitTemplates/photoTemplates.html", params);
+//
+// boolean flag = new FileUtil().writeToFile(body, filenameTemp);
+//
+// if(flag){
+// //娓呭睆鎿嶄綔
+// lightemitUtils.clear(lightemitControlCode);
+// //娓呴櫎鎾斁鍒楄〃
+// lightemitUtils.clearVideoPlay(lightemitControlCode);
+// //娓呴櫎鑺傜洰鍒楄〃
+// lightemitUtils.clearPlayerTask(lightemitControlCode);
+// //鎺ㄩ�佸浘鐗�
+// lightemitUtils.postHtml(lightemitControlCode,userName);
+// }
+// }
+//
+// /*
+// led涓婁紶瑙嗛
+// */
+//
+// @Async("taskExecutor")
+// public void videoUpload(String lightemitControlCode, String filename, String path, String userName) throws IOException {
+// //鑾峰彇灞忓箷瀹�
+// String screenWidth = lightemitUtils.getScreenWidth(lightemitControlCode);
+// String screenHeight = lightemitUtils.getScreenHeight(lightemitControlCode);
+//
+// //鍙戦�佽棰戣嚦寮�鍙戞澘骞舵挱鏀�
+// lightemitUtils.postVideo(screenWidth, screenHeight, filename, lightemitControlCode);
+//
+// //娓呭睆
+// lightemitUtils.clear(lightemitControlCode);
+//
+// }
+//
+// /**
+// * LED涓婁紶鍗曡瀛楀箷
+// */
+// @Async("taskExecutor")
+// public Boolean subTitleSet(SubTitleSetEntity subTitleSetEntity, String path, String userName) {
+// if(subTitleSetEntity == null){
+// return false;
+// }
+// if(subTitleSetEntity.getDirection().equals(Constant.LEFT) || subTitleSetEntity.getDirection().equals(Constant.RIGHT)){
+// //瀛楀箷妯悜婊氬姩
+// this.BuildHorizonSingSubTitleText(subTitleSetEntity);
+// }else if (subTitleSetEntity.getDirection().equals(Constant.UP) || subTitleSetEntity.getDirection().equals(Constant.DOWN)){
+// //瀛楀箷绾靛悜婊氬姩
+// try {
+// this.BuildVerticalSingSubTitleText(subTitleSetEntity, path, userName);
+// }catch (IOException e){
+// return false;
+// }
+// }
+// return true;
+// }
+//
+// /**
+// * LED涓婁紶澶氳瀛楀箷
+// */
+// @Async("taskExecutor")
+// public Boolean subMultiTitleSet(SubTitleSetEntity subTitleSetEntity, String path, String userName) {
+// try{
+// this.BuildVerticalMultiSubTitleText(subTitleSetEntity, path, userName);
+// return true;
+// }catch (IOException e){
+// return false;
+// }
+// }
+//
+// /*
+// 鍒犻櫎
+// */
+//
+// /* public void deleteByIds(List<Long> lightemitIds) {
+// this.removeByIds(lightemitIds);
+// //鍒犻櫎鍏崇郴琛ㄤ腑鐨勬暟鎹�
+// poleStreetlightLightemitService.remove(
+// new UpdateWrapper<PoleStreetlightLightemitEntity>().in("lightemit_id", lightemitIds.toArray()));
+// }*/
+//
+// /*
+// 鐔欒瑙嗛璁剧疆
+// */
+//
+// @Async("taskExecutor")
+// public void videoXixunPlayer(String lightemitControlCode, String ip, String filename, Long filesize, Integer videoTime) {
+// //鑾峰彇灞忓箷瀹�
+// Integer screenWidth = Integer.valueOf(lightemitUtils.getScreenWidth(lightemitControlCode));
+// Integer screenHeight = Integer.valueOf(lightemitUtils.getScreenHeight(lightemitControlCode));
+// Source source = new Source();
+// Layer layer = new Layer();
+// Program pro = new Program();
+// TaskItem items = new TaskItem();
+// ProgramsTask task = new ProgramsTask();
+// Command command = new Command();
+// XixunPlayer xixun = new XixunPlayer();
+// source.set_id(UUID.randomUUID().toString());//鎵�鏈塤id閮藉彲鐢║UID闅忔満鐢熸垚
+// source.setId(filename);//璇锋眰澶存嫾鎺ヨID涓鸿璧勬簮鐨勫畬鏁翠笅杞藉湴鍧�
+// source.set_type("Video"); //璁剧疆璧勬簮绫诲瀷锛屽叾浠栬祫婧愮被鍨嬭鍙傝�儀ixunplayer鑺傜洰json璇存槑鏂囨。
+// source.setFileExt(".mp4"); //璧勬簮鍚庣紑鍚�
+// source.setHeight(screenHeight); //璧勬簮楂樺害
+// source.setWidth(screenWidth); //璧勬簮瀹藉害
+// source.setLeft(0); //璺濆乏
+// source.setMd5("dd135d5d2d44d619a542db773ab529a4");
+// source.setMime("video/mp4");
+// source.setName(filename);
+// source.setPlayTime(0); //鎾斁璧峰鏃堕棿
+// source.setSize(filesize); //璧勬簮瀛楄妭鏁帮紝瑕佺簿鍑�
+// source.setTimeSpan(videoTime); //璇ヨ祫婧愭挱鏀炬椂闀�
+// source.setTop(0); //璺濋《
+// List<Source> list=new ArrayList<Source>();
+// list.add(source);
+// layer.setSources(list);
+// pro.set_id(UUID.randomUUID().toString());
+// pro.setHeight(screenHeight); //鑺傜洰楂樺害
+// List<Layer> list1=new ArrayList<Layer>();
+// list1.add(layer);
+// pro.setLayers(list1);
+// pro.setName("demo"); //鑺傜洰鍚嶇О
+// pro.setOthers(true);//濡傛灉涓簍rue锛屽垯璇ヨ妭鐩潵鑷涓夋柟鎺ュ彛锛屼笉鏄潵鑷垜浠嚜宸辩殑web锛屼簩娆″紑鍙戣鍔″繀璧嬪�间负true
+// pro.setTotalSize(filesize); //鎵�鏈夎祫婧愭�诲瓧鑺傛暟
+// pro.setVersion(0); //楂樼骇鑺傜洰=0锛岀畝鏄撹妭鐩�=2
+// pro.setWidth(screenWidth); //鑺傜洰瀹藉害
+// items.set_id(UUID.randomUUID().toString());
+// items.set_program(pro);
+// items.setRepeatTimes(1);
+// items.setSchedules(null);//瀹氭椂娈碉紝涓嶅仛瀹氭椂鍙负null
+// task.set_id(UUID.randomUUID().toString());
+// task.setName("杩欐槸涓�涓ず渚�");
+// List<TaskItem> list2=new ArrayList<TaskItem>();
+// list2.add(items);
+// task.setItems(list2);
+// command.setId(UUID.randomUUID().toString());
+// //杩欓噷鏄笅鏂圭殑post鍥炶皟鍦板潃锛岄渶瑕佷慨鏀笽P鍦板潃
+// command.setNotificationURL("http://" + ip + ":" + port + "/machine-fast/serv/download/getJSON");
+// //璧勬簮涓嬭浇閾炬帴鐨勮姹傚ご
+// command.setPreDownloadURL("http://" + ip + ":" + port + "/machine-fast/serv/download/downloadFile/");
+// command.setTask(task);
+// xixun.set_id(UUID.randomUUID().toString());
+// xixun.setCommand(command);
+// xixun.setType("commandXixunPlayer"); //鍛戒护鍥哄畾绫诲瀷锛屼笉鍙洿鏀�
+// String jsondata = new Gson().toJson(xixun);
+// lightemitUtils.clear(lightemitControlCode);
+// this.updateRequestBody(lightemitControlCode,jsondata);
+// lightemitUtils.post(realtimeServerBean.getCommand() + lightemitControlCode,jsondata);
+// }
+//
+// /*
+// 鎺ㄩ�佸ぉ姘旀暟鎹�
+// */
+//
+// //@Async("taskExecutor")
+// /* public Boolean pushWeather(String lightemitControlCode, PoleSensorEntity sensorEntity, PoleStreetlightEntity streetlightEntity) {
+// if(StringUtils.isBlank(lightemitControlCode)){
+// return Boolean.valueOf(false);
+// }
+// Integer screenHeight = Integer.parseInt(lightemitUtils.getScreenHeight(lightemitControlCode));
+// String size = String.valueOf(screenHeight/18);
+// //瀛楀箷涓讳綋鎷兼帴
+// String body =
+// "<head><style type=\"text/css\">body{background-color:#000;}</style></head>" +
+// "<p style=\"font-size:" + size + "px;line-height:17px;color:#fff\">" +
+// (streetlightEntity == null || streetlightEntity.getCity() == null? "": streetlightEntity.getCity().replace("甯�", "")) + "<br/>" +
+// "娓╁害锛�" + (sensorEntity == null || sensorEntity.getTemperature() == null? "-": sensorEntity.getTemperature()) + "鈩�<br/>" +
+// "婀垮害锛�" + (sensorEntity == null || sensorEntity.getHumidity() == null? "-": sensorEntity.getHumidity()) + "%RH<br/>" +
+// "浜害锛�" + (sensorEntity == null || sensorEntity.getBrightness() == null? "-": sensorEntity.getBrightness()) + "lux<br/>" +
+// "椋庨�燂細" + (sensorEntity == null || sensorEntity.getWindSpeed() == null? "-": sensorEntity.getWindSpeed()) + "m/s<br/>" +
+// "CO2锛�" + (sensorEntity == null || sensorEntity.getEco2() == null? "-": sensorEntity.getEco2()) + "ppm<br/>" +
+// "鐢查啗锛�" + (sensorEntity == null || sensorEntity.getEch2o() == null? "-": sensorEntity.getEch2o()) + "mg/m鲁<br/>" +
+// "TVOC锛�" + (sensorEntity == null || sensorEntity.getTvoc() == null? "-": sensorEntity.getTvoc()) + "mg/m鲁<br/>" +
+// "PM25锛�" + (sensorEntity == null || sensorEntity.getPm25() == null? "-": sensorEntity.getPm25()) + "mg/m鲁<br/>" +
+// "PM10锛�" + (sensorEntity == null || sensorEntity.getPm10() == null? "-": sensorEntity.getPm10()) + "mg/m鲁<br/>";
+//
+// //缁勮璇锋眰鍙傛暟
+// SubTitleSet subTitleSet = new SubTitleSet();
+// subTitleSet.html = body;
+// subTitleSet.num = 1;
+//
+// //娓呭睆鎿嶄綔
+// lightemitUtils.clear(lightemitControlCode);
+// //娓呴櫎鎾斁鍒楄〃
+// lightemitUtils.clearVideoPlay(lightemitControlCode);
+// //娓呴櫎鑺傜洰鍒楄〃
+// lightemitUtils.clearPlayerTask(lightemitControlCode);
+// try{
+// lightemitUtils.subTitleSet(subTitleSet, lightemitControlCode, false);
+// return true;
+// }catch (Exception e){
+// return false;
+// }finally {
+// //涓�鍒嗛挓鍚庢竻闄ゅ睆骞�
+// new Timer().schedule(new TimerTask() {
+// @Override
+// public void run() {
+// lightemitUtils.clear(lightemitControlCode);
+// //娓呴櫎鎾斁鍒楄〃
+// lightemitUtils.clearVideoPlay(lightemitControlCode);
+// //娓呴櫎鑺傜洰鍒楄〃
+// lightemitUtils.clearPlayerTask(lightemitControlCode);
+// //鎺ㄩ�佹渶鍚庡懡浠�
+// lightemitUtils.sendLastCommand(lightemitControlCode);
+// }
+// }, 60*1000);
+// }
+// }*/
+//
+// /*
+// 鏇存柊璇锋眰鏁版嵁
+// */
+//
+// public void updateRequestBody(String ledCode, String postBody) {
+// baseMapper.updateRequestBody(ledCode, postBody);
+// }
+//
+// /*
+// 鏍规嵁led灞忕紪鐮佽幏鍙栫伅鏉嗘墍鏈変俊鎭�
+// */
+//
+// public PoleStreetlightEntity getStreetlightByLedCode(String ledCode) {
+// return baseMapper.getStreetlightByLedCode(ledCode);
+// }
+//
+// /*
+// 鏍规嵁led灞忕紪鐮佽缃煶閲�
+// */
+//
+// @Async("taskExecutor")
+// public void setVolume(String lightemitControlCode, Integer volume) {
+// lightemitUtils.setVoiume(lightemitControlCode, volume);
+// }
+//
+//
+// public List<PoleLightemitEntity> listOfStreetlight(String streetlightId) {
+// return baseMapper.listOfStreetlight(streetlightId);
+// }
+//
+//
+// public List<PoleLightemitEntity> selectLedByStreetlightId(String streetlightId) {
+// return baseMapper.getLedByStreetlightId(streetlightId);
+// }
+//
+// /*
+// 涓婁紶姘村钩婊氬姩鍗曡瀛楀箷
+// */
+// private void BuildHorizonSingSubTitleText(SubTitleSetEntity subTitleSetEntity){
+// //鎷艰LED灞忓箷璁剧疆璇锋眰body
+// SubTitleSet subTitleSet = new SubTitleSet();
+// subTitleSet.num = subTitleSetEntity.getNum() != null ? subTitleSetEntity.getNum(): subTitleSet.num;
+// subTitleSet.interval = subTitleSetEntity.getInterval() != null ? subTitleSetEntity.getInterval(): subTitleSet.interval;
+// subTitleSet.step = subTitleSetEntity.getStep() != null ? subTitleSetEntity.getStep(): subTitleSet.step;
+// subTitleSet.direction = subTitleSetEntity.getDirection() != null ? subTitleSetEntity.getDirection(): subTitleSet.direction;
+// subTitleSet.align = subTitleSetEntity.getAlign() != null ? subTitleSetEntity.getAlign(): subTitleSet.align;
+// //鎷兼帴html 鑳屾櫙榛樿鏄捐壊涓虹櫧鑹�
+// subTitleSet.html = "<head><style type=\"text/css\">body{background-color:" +
+// (subTitleSetEntity.getColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getColor())? subTitleSetEntity.getColor(): "#000000") +
+// "}</style></head><i style=\"color:" +
+// (subTitleSetEntity.getFontColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontColor())? subTitleSetEntity.getFontColor(): "#ffffff")
+// + "; font-size: " +
+// (subTitleSetEntity.getFontSize() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontSize())? subTitleSetEntity.getFontSize(): "1")
+// + "em\">" + subTitleSetEntity.getContent() + "</i>";
+//
+// //鑾峰彇鎵�鏈塴ed鏁版嵁
+// Collection poleLightemitControllers = this.listByIds(Arrays.asList(subTitleSetEntity.getId()));
+// if (!poleLightemitControllers.isEmpty()) {
+// Iterator iterator = poleLightemitControllers.iterator();
+// while (iterator.hasNext()){
+// PoleLightemitEntity poleLightemitEntity = (PoleLightemitEntity) iterator.next();
+// //娓呭睆鎿嶄綔
+// lightemitUtils.clear(poleLightemitEntity.getLightemitControlCode());
+// //娓呴櫎鎾斁鍒楄〃
+// lightemitUtils.clearVideoPlay(poleLightemitEntity.getLightemitControlCode());
+// //娓呴櫎鑺傜洰鍒楄〃
+// lightemitUtils.clearPlayerTask(poleLightemitEntity.getLightemitControlCode());
+// //鍙戦�佸瓧骞曡缃姹�
+// lightemitUtils.subTitleSet(subTitleSet, poleLightemitEntity.getLightemitControlCode(),true);
+// }
+// }
+// }
+//
+// /*
+// 涓婁紶鍨傜洿婊氬姩鍗曡瀛楀箷
+// */
+// private void BuildVerticalSingSubTitleText(SubTitleSetEntity subTitleSetEntity, String path, String userName) throws IOException {
+// //html鍦板潃
+// //鑾峰彇鎵�鏈塴ed鏁版嵁
+// Collection poleLightemitControllers = this.listByIds(Arrays.asList(subTitleSetEntity.getId()));
+// if (!poleLightemitControllers.isEmpty()) {
+// Iterator iterator = poleLightemitControllers.iterator();
+// while (iterator.hasNext()) {
+// PoleLightemitEntity poleLightemitEntity = (PoleLightemitEntity) iterator.next();
+//
+// String lightemitControlCode = poleLightemitEntity.getLightemitControlCode();
+//
+// //鑾峰彇灞忓箷瀹�
+// Integer screenWidth = Integer.valueOf(lightemitUtils.getScreenWidth(lightemitControlCode));
+// Integer screenHeight = Integer.valueOf(lightemitUtils.getScreenHeight(lightemitControlCode));
+//
+// String filenameTemp = path + userName + "_"+ lightemitControlCode + ".html";
+// File htmlFile = new File(filenameTemp);
+// if (!htmlFile.exists() || htmlFile.delete()) {
+// htmlFile.createNewFile();
+// }
+//
+// //鑻ュ悜涓嬫粴鍔紝鏂囧瓧椤哄簭鐩稿弽
+// if(Constant.DOWN.equals(subTitleSetEntity.getDirection())){
+// subTitleSetEntity.setContent(StringUtils.reverse(subTitleSetEntity.getContent()));
+// }
+//
+// Map<String, Object> params = new HashMap<>();
+// params.put("direction", subTitleSetEntity.getDirection());
+// params.put("screenWidth", screenWidth);
+// params.put("screenHeight", screenHeight);
+// params.put("fontSize", subTitleSetEntity.getFontSize() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontSize())? subTitleSetEntity.getFontSize(): "1");
+// params.put("align", subTitleSetEntity.getAlign());
+// params.put("fontColor", subTitleSetEntity.getFontColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontColor())? subTitleSetEntity.getFontColor(): "#ffffff");
+// params.put("backgroundColor", subTitleSetEntity.getColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getColor())? subTitleSetEntity.getColor(): "#000000");
+// params.put("interval", subTitleSetEntity.getInterval() != null? subTitleSetEntity.getInterval(): 50);
+// params.put("step", subTitleSetEntity.getStep() != null? subTitleSetEntity.getStep(): 1);
+// params.put("num", subTitleSetEntity.getNum() != null? subTitleSetEntity.getNum(): -1);
+// params.put("contentArray", subTitleSetEntity.getContent().toCharArray());
+//
+// String body = new HtmlTemplateUtils().renderPath("classpath:templates/lightemitTemplates/buildVerticalSingSubTitleTemplates.html", params);
+//
+// boolean flag = new FileUtil().writeToFile(body, filenameTemp);
+//
+// if(flag){
+// //娓呭睆鎿嶄綔
+// lightemitUtils.clear(lightemitControlCode);
+// //娓呴櫎鎾斁鍒楄〃
+// lightemitUtils.clearVideoPlay(lightemitControlCode);
+// //娓呴櫎鑺傜洰鍒楄〃
+// lightemitUtils.clearPlayerTask(lightemitControlCode);
+// //鎺ㄩ��
+// lightemitUtils.postHtmlUseNginx(lightemitControlCode,userName);
+// }
+// }
+// }
+// }
+//
+//
+// /*
+// 涓婁紶鍨傜洿婊氬姩澶氳瀛楀箷
+// */
+// private void BuildVerticalMultiSubTitleText(SubTitleSetEntity subTitleSetEntity, String path, String userName) throws IOException {
+// //html鍦板潃
+// //鑾峰彇鎵�鏈塴ed鏁版嵁
+// Collection poleLightemitControllers = this.listByIds(Arrays.asList(subTitleSetEntity.getId()));
+// if (!poleLightemitControllers.isEmpty()) {
+// Iterator iterator = poleLightemitControllers.iterator();
+// while (iterator.hasNext()) {
+// PoleLightemitEntity poleLightemitEntity = (PoleLightemitEntity) iterator.next();
+//
+// String lightemitControlCode = poleLightemitEntity.getLightemitControlCode();
+//
+// //鑾峰彇灞忓箷瀹�
+// Integer screenWidth = Integer.valueOf(lightemitUtils.getScreenWidth(lightemitControlCode));
+// Integer screenHeight = Integer.valueOf(lightemitUtils.getScreenHeight(lightemitControlCode));
+//
+// String filenameTemp = path + userName + "_" + lightemitControlCode + ".html";
+// File htmlFile = new File(filenameTemp);
+// if (!htmlFile.exists() || htmlFile.delete()) {
+// htmlFile.createNewFile();
+// }
+//
+// Map<String, Object> params = new HashMap<>();
+// params.put("direction", subTitleSetEntity.getDirection());
+// params.put("screenWidth", screenWidth);
+// params.put("screenHeight", screenHeight);
+// params.put("fontSize", subTitleSetEntity.getFontSize() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontSize())? subTitleSetEntity.getFontSize(): "1");
+// params.put("align", subTitleSetEntity.getAlign());
+// params.put("fontColor", subTitleSetEntity.getFontColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontColor())? subTitleSetEntity.getFontColor(): "#ffffff");
+// params.put("backgroundColor", subTitleSetEntity.getColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getColor())? subTitleSetEntity.getColor(): "#000000");
+// params.put("interval", subTitleSetEntity.getInterval() != null? subTitleSetEntity.getInterval(): 50);
+// params.put("step", subTitleSetEntity.getStep() != null? subTitleSetEntity.getStep(): 1);
+// params.put("num", subTitleSetEntity.getNum() != null? subTitleSetEntity.getNum(): -1);
+// params.put("contentArray", subTitleSetEntity.getContent().split("\n"));
+//
+// String body = new HtmlTemplateUtils().renderPath("classpath:templates/lightemitTemplates/buildVerticalSingSubTitleTemplates.html", params);
+//
+// boolean flag = new FileUtil().writeToFile(body, filenameTemp);
+//
+// if (flag) {
+// //娓呭睆鎿嶄綔
+// lightemitUtils.clear(lightemitControlCode);
+// //娓呴櫎鎾斁鍒楄〃
+// lightemitUtils.clearVideoPlay(lightemitControlCode);
+// //娓呴櫎鑺傜洰鍒楄〃
+// lightemitUtils.clearPlayerTask(lightemitControlCode);
+// //鎺ㄩ��
+// lightemitUtils.postHtmlUseNginx(lightemitControlCode, userName);
+// }
+// }
+// }
+// }
+//
+// @Override
+// public void xixunplaySetting(String lightemitControlCode) {
+// //鑾峰彇灞忓箷瀹�
+//// Integer screenWidth = Integer.valueOf(lightemitUtils.getScreenWidth(lightemitControlCode));
+//// Integer screenHeight = Integer.valueOf(lightemitUtils.getScreenHeight(lightemitControlCode));
+//// Source source = new Source();
+//// Layer layer = new Layer();
+//// Program pro = new Program();
+//// TaskItem items = new TaskItem();
+//// ProgramsTask task = new ProgramsTask();
+//// Command payload = new Command();
+//// XixunPlayer xixun = new XixunPlayer();
+//// source.set_id(UUID.randomUUID().toString());//鎵�鏈塤id閮藉彲鐢║UID闅忔満鐢熸垚
+//// source.setId(filename);//璇锋眰澶存嫾鎺ヨID涓鸿璧勬簮鐨勫畬鏁翠笅杞藉湴鍧�
+//// source.set_type("Video"); //璁剧疆璧勬簮绫诲瀷锛屽叾浠栬祫婧愮被鍨嬭鍙傝�儀ixunplayer鑺傜洰json璇存槑鏂囨。
+//// source.setFileExt(".mp4"); //璧勬簮鍚庣紑鍚�
+//// source.setHeight(screenHeight); //璧勬簮楂樺害
+//// source.setWidth(screenWidth); //璧勬簮瀹藉害
+//// source.setLeft(0); //璺濆乏
+//// source.setMd5("dd135d5d2d44d619a542db773ab529a4");
+//// source.setMime("video/mp4");
+//// source.setName(filename);
+//// source.setPlayTime(0); //鎾斁璧峰鏃堕棿
+//// source.setSize(filesize); //璧勬簮瀛楄妭鏁帮紝瑕佺簿鍑�
+//// source.setTimeSpan(videoTime); //璇ヨ祫婧愭挱鏀炬椂闀�
+//// source.setTop(0); //璺濋《
+//// List<Source> list = new ArrayList<Source>();
+//// list.add(source);
+//// layer.setSources(list);
+//// pro.set_id(UUID.randomUUID().toString());
+//// pro.setHeight(screenHeight); //鑺傜洰楂樺害
+//// List<Layer> list1=new ArrayList<Layer>();
+//// list1.add(layer);
+//// pro.setLayers(list1);
+//// pro.setName("demo"); //鑺傜洰鍚嶇О
+//// pro.setOthers(true);//濡傛灉涓簍rue锛屽垯璇ヨ妭鐩潵鑷涓夋柟鎺ュ彛锛屼笉鏄潵鑷垜浠嚜宸辩殑web锛屼簩娆″紑鍙戣鍔″繀璧嬪�间负true
+//// pro.setTotalSize(filesize); //鎵�鏈夎祫婧愭�诲瓧鑺傛暟
+//// pro.setVersion(0); //楂樼骇鑺傜洰=0锛岀畝鏄撹妭鐩�=2
+//// pro.setWidth(screenWidth); //鑺傜洰瀹藉害
+//// items.set_id(UUID.randomUUID().toString());
+//// items.set_program(pro);
+//// items.setRepeatTimes(1);
+//// items.setSchedules(null);//瀹氭椂娈碉紝涓嶅仛瀹氭椂鍙负null
+//// task.set_id(UUID.randomUUID().toString());
+//// task.setName("杩欐槸涓�涓ず渚�");
+//// List<TaskItem> list2=new ArrayList<TaskItem>();
+//// list2.add(items);
+//// task.setItems(list2);
+//// payload.setId(UUID.randomUUID().toString());
+//// //杩欓噷鏄笅鏂圭殑post鍥炶皟鍦板潃锛岄渶瑕佷慨鏀笽P鍦板潃
+//// payload.setNotificationURL("http://" + ip + ":" + port + "/machine-fast/serv/download/getJSON");
+//// //璧勬簮涓嬭浇閾炬帴鐨勮姹傚ご
+//// payload.setPreDownloadURL("http://" + ip + ":" + port + "/machine-fast/serv/download/downloadFile/");
+//// payload.setTask(task);
+//// xixun.set_id(UUID.randomUUID().toString());
+//// xixun.setCommand(payload);
+//// xixun.setType("commandXixunPlayer"); //鍛戒护鍥哄畾绫诲瀷锛屼笉鍙洿鏀�
+//// String jsondata = new Gson().toJson(xixun);
+//// lightemitUtils.clear(lightemitControlCode);
+//// this.updateRequestBody(lightemitControlCode,jsondata);
+//// lightemitUtils.post(realtimeServerBean.getCommand() + lightemitControlCode,jsondata);
+// }
+//}
\ No newline at end of file
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/Constant.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/Constant.java
new file mode 100644
index 0000000..fc44f61
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/Constant.java
@@ -0,0 +1,252 @@
+package com.sandu.ximon.admin.utils;
+
+/**
+ * 甯搁噺
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+public class Constant {
+ /** 瓒呯骇绠$悊鍛業D 涓庤鑹睮D*/
+ public static final int SUPER_ADMIN = 1;
+ /** 瓒呯骇绠$悊鍛業D 涓庤鑹睮D*/
+ public static final int ADMIN = 2;
+ /** 瓒呯骇绠$悊鍛業D 涓庤鑹睮D*/
+ public static final int USER = 3;
+ /**
+ * 褰撳墠椤电爜
+ */
+ public static final String PAGE = "page";
+ /**
+ * 姣忛〉鏄剧ず璁板綍鏁�
+ */
+ public static final String LIMIT = "limit";
+ /**
+ * 鎺掑簭瀛楁
+ */
+ public static final String ORDER_FIELD = "sidx";
+ /**
+ * 鎺掑簭鏂瑰紡
+ */
+ public static final String ORDER = "order";
+ /**
+ * 鍗囧簭
+ */
+ public static final String ASC = "asc";
+ /**
+ * 璺伅绫诲瀷
+ */
+ public static final int TYPE_LIGHT = 54448;
+ /**
+ * 鎺х伅瀹氭椂Tesk
+ */
+ public static final String LIGHT_BATCH_TESK = "lightbatchTesk";
+ /**
+ * 宸�
+ */
+ public static final String LEFT = "left";
+ /**
+ * 鍙�
+ */
+ public static final String RIGHT = "right";
+ /**
+ * 涓�
+ */
+ public static final String UP = "up";
+ /**
+ * 涓�
+ */
+ public static final String DOWN = "down";
+ /**
+ * 闈欐��
+ */
+ public static final String STATIC = "static";
+ /**
+ * 鑿滃崟绫诲瀷
+ *
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2016骞�11鏈�15鏃� 涓嬪崍1:24:29
+ */
+ public enum MenuType {
+ /**
+ * 鐩綍
+ */
+ CATALOG(0),
+ /**
+ * 鑿滃崟
+ */
+ MENU(1),
+ /**
+ * 鎸夐挳
+ */
+ BUTTON(2);
+
+ private int value;
+
+ MenuType(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+ }
+
+ /*
+ 瀹氭椂鍒楄〃绫诲瀷
+ */
+ public enum ScheduleType {
+
+ /*
+ 缁�
+ */
+ GROUP(0),
+ /*
+ 鍒�
+ */
+ COLUMN(1),;
+
+ private int value;
+
+ ScheduleType(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+ }
+
+ /**
+ * 瀹氭椂浠诲姟鐘舵��
+ *
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2016骞�12鏈�3鏃� 涓婂崍12:07:22
+ */
+ public enum ScheduleStatus {
+ /**
+ * 姝e父
+ */
+ NORMAL(0),
+ /**
+ * 鏆傚仠
+ */
+ PAUSE(1);
+
+ private int value;
+
+ ScheduleStatus(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+ }
+
+ /**
+ * 浜戞湇鍔″晢
+ */
+ public enum CloudService {
+ /**
+ * 涓冪墰浜�
+ */
+ QINIU(1),
+ /**
+ * 闃块噷浜�
+ */
+ ALIYUN(2),
+ /**
+ * 鑵捐浜�
+ */
+ QCLOUD(3);
+
+ private int value;
+
+ CloudService(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+ }
+
+ /**
+ * led瀛楀箷绫诲瀷
+ */
+ public enum SubTitleType {
+
+ /**
+ * 鍗曡鏂囨湰
+ */
+ SINGLE(0),
+
+ /**
+ * 澶氳鏂囨湰
+ */
+ MULTI(1);
+
+ private int value;
+
+ SubTitleType(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+ }
+
+ public enum LinkType {
+ /**
+ * 鏈夌嚎杩炴帴
+ */
+ WIRED(0),
+ /**
+ * nb杩炴帴
+ */
+ NBLINK(1),
+ /**
+ * MQTT杩炴帴
+ */
+ MQTTLINK(2),
+ /**
+ * MQTT涓插彛涓绘澘绫诲瀷
+ */
+ MQTT_MAINBOARDLINK(3);
+
+ private int value;
+
+ LinkType(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+ }
+
+ // led鑺傜洰鍗曚釜璧勬簮绫诲瀷
+ public enum ledProgramFileType {
+ /*
+ 鍥剧墖
+ */
+ IMAGE(0),
+ /*
+ 瑙嗛
+ */
+ VIDEO(1);
+
+ private int value;
+ ledProgramFileType(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+ }
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/FileUtil.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/FileUtil.java
new file mode 100644
index 0000000..f03b484
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/FileUtil.java
@@ -0,0 +1,89 @@
+package com.sandu.ximon.admin.utils;
+
+import java.io.*;
+
+/**
+ * @program: machine-fast
+ * @description: 鏂囦欢鎿嶄綔绫�
+ * @author: YSS
+ * @create: 2019-04-24 13:58
+ **/
+public class FileUtil {
+
+ /**
+ * 瀛楁鍐欏叆鏂囦欢
+ * @param newStr 瀛楁
+ * @param filePath 鏂囦欢璺緞
+ * @return
+ * @throws
+ */
+ public boolean writeToFile(String newStr,String filePath) throws IOException {
+
+ OutputStream outputStream = null;
+ OutputStreamWriter outputStreamWriter = null;
+ BufferedWriter bufferedWriter = null;
+
+ try{
+ outputStream = new FileOutputStream(new File(filePath));
+ outputStreamWriter = new OutputStreamWriter(outputStream, "utf-8");
+ bufferedWriter = new BufferedWriter(outputStreamWriter);
+ bufferedWriter.write(newStr);
+ bufferedWriter.flush();
+ }catch (Exception e){
+ return false;
+ }finally {
+ try{
+ if(bufferedWriter != null){
+ bufferedWriter.close();
+ }
+ if(outputStreamWriter != null){
+ outputStreamWriter.close();
+ }
+ if(outputStream != null){
+ outputStream.close();
+ }
+ return true;
+ }catch (IOException e){
+ return false;
+ }
+ }
+ }
+
+ public byte[] fileToByte(String filePath){
+ byte[] buffer = null;
+ File file = new File(filePath);
+ FileInputStream fileInputStream = null;
+ ByteArrayOutputStream byteArrayOutputStream = null;
+
+
+ try {
+ fileInputStream = new FileInputStream(file);
+ byteArrayOutputStream = new ByteArrayOutputStream();
+
+ byte[] b = new byte[1024];
+
+ int n;
+ while ((n = fileInputStream.read(b)) != -1){
+ byteArrayOutputStream.write(b, 0, n);
+ }
+ buffer = byteArrayOutputStream.toByteArray();
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if(byteArrayOutputStream != null){
+ byteArrayOutputStream.close();
+ }
+ if(fileInputStream != null){
+ fileInputStream.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ return buffer;
+ }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/HtmlTemplateUtils.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/HtmlTemplateUtils.java
new file mode 100644
index 0000000..551050c
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/HtmlTemplateUtils.java
@@ -0,0 +1,62 @@
+package com.sandu.ximon.admin.utils;
+
+
+import java.io.*;
+import java.util.Map;
+
+import org.springframework.core.io.ClassPathResource;
+import org.thymeleaf.TemplateEngine;
+import org.thymeleaf.context.Context;
+
+/**
+ * @program: machine-fast
+ * @description: thymeleaf娓叉煋宸ュ叿绫�
+ * @author: YSS
+ * @create: 2019-09-09 17:55
+ **/
+public class HtmlTemplateUtils {
+
+ private final TemplateEngine templateEngine = new TemplateEngine();
+
+ // 瑙f瀽妯℃澘
+ public String render(String template, Map<String, Object> params){
+ Context context = new Context();
+ context.setVariables(params);
+ return templateEngine.process(template, context);
+ }
+
+ // 鏂囦欢璇诲彇鍖呰鏂规硶
+ public String renderPath(String path, Map<String, Object> params){
+ InputStream inputStream = null;
+ InputStreamReader inputStreamReader = null;
+ BufferedReader bufferedReader = null;
+ String body = "";
+ try {
+// File file = ResourceUtils.getFile(path);
+ ClassPathResource classPathResource = new ClassPathResource(path);
+ inputStream = classPathResource.getInputStream();
+ inputStreamReader = new InputStreamReader(inputStream, "utf-8");
+ bufferedReader = new BufferedReader(inputStreamReader);
+ String s = "";
+ while ((s = bufferedReader.readLine()) != null){
+ body += s + "\n";
+ }
+ return this.render(body, params);
+ } catch (IOException e) {
+ return body;
+ }finally {
+ try{
+ if(bufferedReader != null){
+ bufferedReader.close();
+ }
+ if(inputStreamReader != null){
+ inputStreamReader.close();
+ }
+ if(inputStream != null){
+ inputStream.close();
+ }
+ }catch (IOException e){
+ }
+ }
+ };
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/LightemitUtils.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/LightemitUtils.java
new file mode 100644
index 0000000..0fb8c5b
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/LightemitUtils.java
@@ -0,0 +1,378 @@
+//package com.sandu.ximon.admin.utils;
+//
+//import com.alibaba.fastjson.JSONObject;
+//import com.google.gson.Gson;
+//import com.sandu.ximon.admin.config.NginxConfigBean;
+//import com.sandu.ximon.admin.config.RealtimeServerBean;
+//import com.sandu.ximon.admin.service.PoleLightemitService;
+//import com.sandu.ximon.admin.utils.request.*;
+//import com.sandu.ximon.dao.domain.PoleLightemitEntity;
+//import com.squareup.okhttp.*;
+//import org.apache.commons.lang.StringEscapeUtils;
+//import org.apache.commons.lang.StringUtils;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.context.ApplicationContext;
+//import org.springframework.stereotype.Component;
+//
+//import java.io.IOException;
+//
+//@Component
+//public class LightemitUtils {
+// @Autowired
+// RealtimeServerBean realtimeServerBean;
+//
+// PoleLightemitService poleLightemitService;
+// @Autowired
+// ApplicationContext applicationContext;
+// @Autowired
+// NginxConfigBean nginxConfigBean;
+// //body灏佽缂栫爜
+// private final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
+//
+// private OkHttpClient client = new OkHttpClient();
+//
+//
+// public void init(){
+// //閲嶆柊鑾峰彇鍗曚緥
+// poleLightemitService = applicationContext.getBean(PoleLightemitService.class);
+// }
+// /**
+// * post璇锋眰灏佽鏂规硶
+// * @param url url
+// * @param json body
+// * @return
+// */
+// public String post(String url, String json){
+// RequestBody body = RequestBody.create(JSON, json);
+// Request request = new Request.Builder()
+// .url(url)
+// .post(body)
+// .build();
+// try {
+// Response response = client.newCall(request).execute();
+// return response.body().string();
+// } catch (IOException e) {
+// LogUtils.error(e.getMessage());
+// return "";
+// }
+// }
+//
+// /**
+// * 鑾峰彇led灞忓搴�
+// * @param ledCode led灞忕紪鍙�
+// * @return
+// */
+// public String getScreenWidth(String ledCode){
+// String postBody = new Gson().toJson(new GetScreenWidth());
+// //璇锋眰鍦板潃
+// String url = realtimeServerBean.getCommand() + ledCode;
+// //璇锋眰
+// String result = post(url,postBody);
+// if(StringUtils.isNotBlank(result)){
+// try{
+// return JSONObject.parseObject(result).get("result").toString();
+// }catch (Exception e){
+// return "64";
+// }
+// }else{
+// return "64";
+// }
+// }
+//
+// /**
+// * 鑾峰彇led灞忛珮搴�
+// * @param ledCode led灞忕紪鍙�
+// * @return
+// */
+// public String getScreenHeight(String ledCode){
+// String postBody = new Gson().toJson(new GetScreenHeight());
+// //璇锋眰鍦板潃
+// String url = realtimeServerBean.getCommand() + ledCode;
+// //璇锋眰
+// String result = post(url,postBody);
+// if(StringUtils.isNotBlank(result)){
+// try{
+// return JSONObject.parseObject(result).get("result").toString();
+// }catch (Exception e){
+// return "64";
+// }
+// }else{
+// return "64";
+// }
+// }
+//
+// /**
+// * 娓呭睆鎿嶄綔
+// * @param ledCode
+// */
+// public void clear(String ledCode){
+// String postBody = new Gson().toJson(new Clear());
+// //璇锋眰鍦板潃
+// String url = realtimeServerBean.getCommand() + ledCode;
+// //璇锋眰
+//// poleLightemitService.updateRequestBody(ledCode, "");
+// String result = post(url,postBody);
+// }
+//
+// /**
+// * html浼犺緭鑷砽ed灞�
+// * @param ledCode
+// * @param username
+// */
+// public void postHtml(String ledCode, String username){
+//
+// PostHtml postHtml = new PostHtml(realtimeServerBean.getUrl() + username + "_" + ledCode + ".html");
+// String postBody = new Gson().toJson(postHtml);
+//
+// //璇锋眰鍦板潃
+// String url = realtimeServerBean.getCommand() + ledCode;
+// //淇濆瓨led鏁版嵁
+// poleLightemitService.updateRequestBody(ledCode, postBody);
+// //璇锋眰
+// String result = post(url,postBody);
+// }
+// /**
+// * html浼犺緭鑷砽ed灞�, 閫氳繃url鑾峰彇html
+// * @param ledCode
+// * @param username
+// */
+// public void postHtmlUseNginx(String ledCode, String username){
+//
+// PostHtml postHtml = new PostHtml(nginxConfigBean.getUrl() + username + "_" + ledCode + ".html");
+// String postBody = new Gson().toJson(postHtml);
+//
+// //璇锋眰鍦板潃
+// String url = realtimeServerBean.getCommand() + ledCode;
+// //淇濆瓨led鏁版嵁
+// poleLightemitService.updateRequestBody(ledCode, postBody);
+// //璇锋眰
+// String result = post(url,postBody);
+// }
+//
+// /**
+// * 瑙嗛浼犺緭鑷砽ed灞�
+// * @param screenWidth
+// * @param screenHeight
+// * @param filename
+// * @param ledCode
+// */
+// public void postVideo(String screenWidth, String screenHeight, String filename, String ledCode) {
+//
+// //led寮�鍙戞澘涓嬭浇瑙嗛璇锋眰body
+// DownloadFileToLocal downloadFileToLocal = new DownloadFileToLocal();
+// downloadFileToLocal.url = realtimeServerBean.getUrl() + filename;
+// downloadFileToLocal.path += filename;
+//
+// //led寮�鍙戞澘涓嬭浇瑙嗛璇锋眰
+// this.post(realtimeServerBean.getCommand() + ledCode, new Gson().toJson(downloadFileToLocal));
+//
+// //led寮�鍙戞澘瑙嗛鍒楄〃璇锋眰body
+// SetPlayList setPlayList = new SetPlayList();
+// setPlayList.list[0] = "/data/data/com.xixun.xy.conn/files/local/abc/"+filename;
+//// setPlayList.pathList[0] = "";
+// try{
+// setPlayList.width = Integer.valueOf(screenWidth);
+// setPlayList.height = Integer.valueOf(screenHeight);
+// }catch (Exception e){
+// return;
+// }
+// String postBody = new Gson().toJson(setPlayList);
+// //淇濆瓨led鏁版嵁
+// poleLightemitService.updateRequestBody(ledCode, postBody);
+// //led寮�鍙戞澘瑙嗛鍒楄〃璇锋眰
+// this.post(realtimeServerBean.getCommand() + ledCode, postBody);
+// }
+//
+// /**
+// * led灞忓瓧骞曡缃�
+// * @param subTitleSet
+// * @param ledCode
+// */
+// public void subTitleSet(SubTitleSet subTitleSet, String ledCode, Boolean isSave){
+// String postBody = new Gson().toJson(subTitleSet);
+// if(isSave == true){
+// poleLightemitService.updateRequestBody(ledCode, postBody);
+// }
+// this.post(realtimeServerBean.getCommand() + ledCode, postBody);
+// }
+//
+// /**
+// * 娓呴櫎鎾斁鍒楄〃
+// * @param ledCode
+// */
+// public void clearVideoPlay(String ledCode) {
+//// poleLightemitService.updateRequestBody(ledCode, "");
+// this.post(realtimeServerBean.getCommand() + ledCode, new Gson().toJson(new ClearVideoPlay()));
+// }
+//
+// /**
+// * 娓呴櫎鑺傜洰鍒楄〃
+// * @param ledCode
+// */
+// public void clearPlayerTask(String ledCode) {
+//// poleLightemitService.updateRequestBody(ledCode, "");
+// this.post(realtimeServerBean.getCommand() + ledCode, new Gson().toJson(new ClearPlayerTask()));
+// }
+//
+// /**
+// * 鑾峰彇led灞忕敾闈�
+// * @param ledCode
+// */
+// public String getPicture(String ledCode) {
+// String result = this.post(realtimeServerBean.getCommand() + ledCode, new Gson().toJson(new GetPicture()));
+// //鑾峰彇base64鍥剧墖鏁版嵁
+// if(StringUtils.isBlank(result)){
+// return "";
+// }
+// String re;
+//
+// try{
+// re = JSONObject.parseObject(result).get("result").toString();
+// }catch (Exception e){
+// re = "0";
+// }
+//
+// if(StringUtils.isBlank(re)){
+// return "";
+// }
+// //鍘婚櫎鎹㈣绗�
+// re.replaceAll("\r|\n*","");
+// return re;
+// }
+//
+// /**
+// * 鍒ゆ柇led灞忔槸鍚﹀紑鍚�
+// * @param ledCode
+// * @return
+// */
+// public String getIsScreenOpen(String ledCode){
+// String result = this.post(realtimeServerBean.getCommand() + ledCode, new Gson().toJson(new IsScreenOpen()));
+// //鑾峰彇base64鍥剧墖鏁版嵁
+// if(StringUtils.isNotBlank(result)){
+// String re;
+// try{
+// re = JSONObject.parseObject(result).get("result").toString();
+// }catch (Exception e){
+// re = "false";
+// }
+// return re;
+// }else{
+// return "";
+// }
+// }
+//
+// /*
+// 鍚姩xwalk
+// */
+// /*public void startActivity(String ledCode){
+// String result = this.post(realtimeServerBean.getCommand() + ledCode, new Gson().toJson(new StartActivity()));
+// }*/
+//
+// /*
+// 浣跨敤xwalk鍔犺浇缃戦〉
+// */
+// /*public void callXwalkFn(String ledCode,String username){
+//
+// CallXwalkFn callXwalkFn = new CallXwalkFn();
+//
+// callXwalkFn.setArgUrl(realtimeServerBean.getUrl() + username + "_" + ledCode + ".html");
+// String postBody = new Gson().toJson(callXwalkFn);
+//
+// //璇锋眰鍦板潃
+// String url = realtimeServerBean.getCommand() + ledCode;
+// //璇锋眰
+// String result = post(url,postBody);
+// }*/
+//
+// /*
+// 鎺у埗灞忓箷寮�鍏�
+// */
+// public String setScreenOpen(String ledCode, Boolean bool) {
+// String result = this.post(realtimeServerBean.getCommand() + ledCode, new Gson().toJson(new setScreenOpen(bool)));
+// //鑾峰彇base64鍥剧墖鏁版嵁
+// if(StringUtils.isNotBlank(result)){
+// String re = "";
+// try{
+// re = JSONObject.parseObject(result).get("result").toString();
+// }catch (Exception e){
+// re = "false";
+// }
+// return re;
+// }else{
+// return "";
+// }
+// }
+//
+// //鍙戦�佹渶鏂扮殑鏁版嵁
+// public void sendLastCommand(String lightemitControlCode) {
+// PoleLightemitEntity poleLightemitEntity = poleLightemitService.selectByLightemitControlCode(lightemitControlCode);
+// if(poleLightemitEntity == null || StringUtils.isBlank(poleLightemitEntity.getRequestBody())){
+// return;
+// }
+// this.post(realtimeServerBean.getCommand() + lightemitControlCode, poleLightemitEntity.getRequestBody());
+// }
+//
+// /*
+// 璁剧疆led闊抽噺
+// */
+// public void setVoiume(String ledCode,Integer volume){
+//
+// SetVolume setVolume = new SetVolume();
+// setVolume.arg1 = volume;
+// String postBody = new Gson().toJson(setVolume);
+//
+// //璇锋眰
+// String result = post(realtimeServerBean.getCommand() + ledCode,postBody);
+// }
+//
+// /*
+// 鑾峰彇led闊抽噺
+// */
+// /*public String getVoiume(String ledCode){
+// GetVolume getVolume = new GetVolume();
+// String postBody = new Gson().toJson(getVolume);
+//
+// //璇锋眰
+// String result = post(realtimeServerBean.getCommand() + ledCode,postBody);
+// //璇锋眰
+// if(StringUtils.isNotBlank(result)){
+// try{
+// return JSONObject.parseObject(result).get("result").toString();
+// }catch (Exception e){
+// return "0";
+// }
+// }else{
+// return "0";
+// }
+// }
+//*/
+// /**
+// * 鏌ヨ瀹氭椂
+// * @param ledCode
+// * @return
+// */
+// public String getTimeSchedule(String ledCode) {
+// String result = this.post(realtimeServerBean.getCommand() + ledCode, new Gson().toJson(new GetTimeSchedule()));
+// //鑾峰彇瀹氭椂json鏁版嵁
+//// Map map = new Gson().fromJson(result,Map.class);
+//// Gson gson = new Gson();
+//// Task task =gson.fromJson((String)gson.fromJson(result,Map.class).get("task"),Task.class);
+//// Schedules schedules =gson.fromJson((String)gson.fromJson(result,Map.class).get("schedule"),Schedules.class);
+// if(StringUtils.isBlank(result)){
+// return "";
+// }
+// String re;
+//
+// //鍘婚櫎瀛楃涓蹭腑鐨刓
+// re = StringEscapeUtils.unescapeJavaScript(result);
+// //鍘婚櫎瀛楃涓蹭腑鐨剗"
+// re = re.replace("}\"","}");
+// //鍘婚櫎瀛楃涓蹭腑"{
+// re = re.replace("\"{","{");
+// re = re.replace("\"null\"","{}");
+// if(StringUtils.isBlank(re)){
+// return "";
+// }
+// return re;
+// }
+//}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxProgramAPIUtil.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxProgramAPIUtil.java
new file mode 100644
index 0000000..0ca8c09
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxProgramAPIUtil.java
@@ -0,0 +1,39 @@
+package com.sandu.ximon.admin.utils;
+
+import com.alibaba.fastjson.JSON;
+import com.sandu.ximon.admin.config.VnnoxUrl;
+import com.sandu.ximon.admin.utils.request.CommonHeader;
+import com.sandu.ximon.admin.utils.request.PlayerProgram;
+import com.sandu.ximon.admin.utils.response.VnnoxResultResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component("VnnoxProgramAPIUtil")
+public class VnnoxProgramAPIUtil {
+
+
+ @Autowired
+ private RedisUtils redisUtils;
+
+ public static VnnoxProgramAPIUtil getBean(){
+ return (VnnoxProgramAPIUtil) SpringContextUtil.getBean("VnnoxProgramAPIUtil");
+ }
+
+
+ /**
+ * 鏅�氳妭鐩挱鏀�
+ * @param
+ * @return
+ */
+ //public VnnoxResultResponse normalProgram(Map<String,Object> program) {
+ public VnnoxResultResponse normalProgram(PlayerProgram program) {
+
+ String result = VnnoxRequestUtil.PostWithHeader(
+ VnnoxUrl.getUrl(VnnoxUrl.NORMAL_PROGRAM),
+ program.toJson(),
+ new CommonHeader(CommonHeader.JSON, true)
+ );
+ LogUtils.error("鑺傜洰鎾斁response:"+result);
+ return JSON.parseObject(result,VnnoxResultResponse.class);
+ }
+}
\ No newline at end of file
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/Clear.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/Clear.java
new file mode 100644
index 0000000..d3a80ad
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/Clear.java
@@ -0,0 +1,12 @@
+package com.sandu.ximon.admin.utils.request;
+
+/**
+ * @program: machine-fast
+ * @description: 娓呭睆璇锋眰body
+ * @author: YSS
+ * @create: 2019-04-24 14:16
+ **/
+public class Clear {
+
+ public final String type = "clear";
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/ClearPlayerTask.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/ClearPlayerTask.java
new file mode 100644
index 0000000..c8e2789
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/ClearPlayerTask.java
@@ -0,0 +1,8 @@
+package com.sandu.ximon.admin.utils.request;
+
+/**
+ * 娓呴櫎鎾斁鍒楄〃
+ */
+public class ClearPlayerTask {
+ public final String type = "clearPlayerTask";
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/ClearVideoPlay.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/ClearVideoPlay.java
new file mode 100644
index 0000000..06ac16e
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/ClearVideoPlay.java
@@ -0,0 +1,9 @@
+package com.sandu.ximon.admin.utils.request;
+
+/**+
+ * 娓呴櫎鎾斁鍒楄〃
+ */
+public class ClearVideoPlay {
+
+ public final String type = "clearPlayList";
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/DownloadFileToLocal.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/DownloadFileToLocal.java
new file mode 100644
index 0000000..c88c05b
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/DownloadFileToLocal.java
@@ -0,0 +1,17 @@
+package com.sandu.ximon.admin.utils.request;
+
+/**
+ * @program: machine-fast
+ * @description: 涓婁紶鏂囦欢鑷砽ed寮�鍙戞澘
+ * @author: YSS
+ * @create: 2019-04-24 17:15
+ **/
+public class DownloadFileToLocal {
+
+ public final String type = "downloadFileToLocal";
+
+ public String url;
+
+ public String path = "/abc/";
+
+}
\ No newline at end of file
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/GetPicture.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/GetPicture.java
new file mode 100644
index 0000000..5b6df63
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/GetPicture.java
@@ -0,0 +1,15 @@
+package com.sandu.ximon.admin.utils.request;
+
+/**
+ * @description: 鑾峰彇褰撳墠led灞忓箷鍥惧儚
+ **/
+public class GetPicture {
+
+ public final String type = "callCardService";
+
+ public final String fn = "screenshot";
+
+ public final int arg1 = 100;
+
+ public final int arg2 = 100;
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/GetScreenHeight.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/GetScreenHeight.java
new file mode 100644
index 0000000..1286f49
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/GetScreenHeight.java
@@ -0,0 +1,14 @@
+package com.sandu.ximon.admin.utils.request;
+
+/**
+ * @program: machine-fast
+ * @description: 鑾峰彇led灞忛珮搴﹁姹俠ody
+ * @author: YSS
+ * @create: 2019-04-24 11:40
+ **/
+public class GetScreenHeight {
+
+ public final String type = "callCardService";
+
+ public final String fn = "getScreenHeight";
+}
\ No newline at end of file
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/GetScreenWidth.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/GetScreenWidth.java
new file mode 100644
index 0000000..20b4308
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/GetScreenWidth.java
@@ -0,0 +1,14 @@
+package com.sandu.ximon.admin.utils.request;
+
+/**
+ * @program: machine-fast
+ * @description: 鑾峰彇led灞忓搴﹁姹俠ody
+ * @author: YSS
+ * @create: 2019-04-24 10:41
+ **/
+public class GetScreenWidth {
+
+ public final String type = "callCardService";
+
+ public final String fn = "getScreenWidth";
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/GetTimeSchedule.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/GetTimeSchedule.java
new file mode 100644
index 0000000..9bab972
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/GetTimeSchedule.java
@@ -0,0 +1,10 @@
+package com.sandu.ximon.admin.utils.request;
+
+/**
+ * @description: 鏌ヨ瀹氭椂
+ **/
+
+public class GetTimeSchedule {
+// "type":"getTimedScreening"
+ private String type = "getTimedScreening";
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/IsScreenOpen.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/IsScreenOpen.java
new file mode 100644
index 0000000..fb5ae09
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/IsScreenOpen.java
@@ -0,0 +1,14 @@
+package com.sandu.ximon.admin.utils.request;
+
+/**
+ * @program: machine-fast
+ * @description: 鏌ヨ灞忓箷鐘舵�佽姹俠ody
+ * @author: YSS
+ * @create: 2019-04-25 13:24
+ **/
+public class IsScreenOpen {
+
+ public final String type = "callCardService";
+
+ public final String fn = "isScreenOpen";
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/PlayerProgram.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/PlayerProgram.java
new file mode 100644
index 0000000..89bb825
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/PlayerProgram.java
@@ -0,0 +1,28 @@
+package com.sandu.ximon.admin.utils.request;
+
+import com.sandu.ximon.admin.config.VnnoxConstant;
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 鏅�氳妭鐩�
+ */
+@Data
+public class PlayerProgram implements VnnoxRequest {
+
+ // 闇�瑕佸鐞嗙殑鎾斁鍣↖D闆嗗悎,鏈�澶氭敮鎸�100涓挱鏀惧櫒鍚屾椂澶勭悊
+ private List<String> playerIds;
+ // 鎾斁鏃堕棿鎺掓湡锛屽鏋滀负绌猴紝浼氬叏澶�24灏忔椂寰幆鎾斁
+ private Map schedule;
+ // 闇�瑕佹挱鏀剧殑椤甸潰鍐呭闆嗗悎
+ private List<Map<String,Object>> pages ;
+ // 鑺傜洰涓嬭浇杩涘害閫氱煡鎺ュ彛锛屼細閫氳繃姝ゆ帴鍙e皢鑺傜洰鐨勪笅杞借繘搴﹀彂缁欏鎴凤紝鎺ュ彛鐨勫搷搴旀椂闂翠笉鑳借秴杩�3s
+ 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/PostHtml.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/PostHtml.java
new file mode 100644
index 0000000..47eddd1
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/PostHtml.java
@@ -0,0 +1,20 @@
+package com.sandu.ximon.admin.utils.request;
+
+/**
+ * @program: machine-fast
+ * @description: 鎻愪氦html椤甸潰璇锋眰body绫�
+ * @author: YSS
+ * @create: 2019-04-24 14:27
+ **/
+public class PostHtml {
+
+ public final String type="loadUrl";
+
+ public String url;//url:'file:///mnt/sdcard/test.html, //涔熷彲浠ユ槸鏈湴璺緞
+
+ public final boolean persistent = true ;//鎸佷箙鍖栵紝閲嶅惎浼氳嚜鍔ㄥ姞杞絬rl
+
+ public PostHtml(String url) {
+ this.url = url;
+ }
+}
--
Gitblit v1.9.3