pom.xml
@@ -39,6 +39,15 @@ <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf</artifactId> </dependency> </dependencies> <dependencyManagement> ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java
@@ -12,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.net.URISyntaxException; import java.util.Map; /** @@ -67,9 +68,10 @@ }*/ @PostMapping("/validateSN") public ResponseVO<Object> validateSN(@RequestBody Map map) { public ResponseVO<Object> validateSN(@RequestBody Map map) throws URISyntaxException { String sn = (String)map.get("sn"); LedV2RegisterResultEntity ledV2RegisterResultEntity = vnnoxService.validateSN(sn); String name = (String)map.get("name"); LedV2RegisterResultEntity ledV2RegisterResultEntity = vnnoxService.validateSN(name,sn); return ResponseUtil.success(ledV2RegisterResultEntity); } ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Source.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,46 @@ package com.sandu.ximon.admin.entity; import lombok.Data; import java.io.Serializable; /** * @program: machine-fast * @description: * @author: YSS * @create: 2019-07-17 16:59 **/ @Data public class Source implements Serializable { private static final long serialVersionUID = 1L; private String id; private String _id; private String _type; private String md5; //ç´ æå¦ææå¤§å°éè¦è®¡ç®å®çmd5 private String name; //ç´ æåå private int left; //æ¾ç¤ºå¨å·¦ä¸è§çåæ private int top; private int width; //å®½é« private int height; private long size; //æä»¶å¤§å° private int playTime; //èµ·å§ææ¾æ¶é´ private int timeSpan; //æç»ææ¾æ¶é¿ private String fileExt; private String mime; } ximon-admin/src/main/java/com/sandu/ximon/admin/entity/SubTitleSetEntity.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,38 @@ package com.sandu.ximon.admin.entity; import lombok.Data; import java.io.Serializable; /** * @program: machine-fast * @description: åå¹è®¾ç½®æ¥åç±» * @author: YSS * @create: 2019-04-24 18:14 **/ @Data public class SubTitleSetEntity implements Serializable { private Long[] id; private String color; private String content; private String fontSize; private String fontColor; private Integer num; private Integer interval; private Integer step; private String direction; private String align; private Integer textType; } ximon-admin/src/main/java/com/sandu/ximon/admin/entity/TaskItem.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ package com.sandu.ximon.admin.entity; import lombok.Data; import java.io.Serializable; @Data public class TaskItem implements Serializable { private static final long serialVersionUID = 1L; private String _id; //UUID private Program _program; //å°å è£ å¥½çèç®èµå¼ç»ä» private int repeatTimes; //é夿¬¡æ° // private List<Schedule> schedules=null; //å¯ä»¥ä¸ºä¸ä¸ªprogramæ·»å å¤ä¸ªå®æ¶æ®µ } ximon-admin/src/main/java/com/sandu/ximon/admin/entity/XixunPlayer.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ package com.sandu.ximon.admin.entity; import lombok.Data; import java.io.Serializable; @Data public class XixunPlayer implements Serializable { private static final long serialVersionUID = 1L; private String type="commandXixunPlayer"; private String _id; private Command command; } ximon-admin/src/main/java/com/sandu/ximon/admin/service/VnnoxService.java
@@ -13,6 +13,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.net.URISyntaxException; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -42,7 +43,7 @@ * @return */ @Transactional(rollbackFor = Exception.class) public LedV2RegisterResultEntity validateSN(String sn) { public LedV2RegisterResultEntity validateSN(String name,String sn) throws URISyntaxException { LedV2RegisterResultEntity ledV2RegisterResultEntity = new LedV2RegisterResultEntity(); // å¤ææ°æ®åºæ¯å¦åå¨ï¼è¥ä¸åå¨ï¼å¤ææ¯å¦å·²ç»æ³¨åå°Vnnoxæå¡å¨ @@ -56,16 +57,16 @@ } Integer page = 0; Integer limit = 200; Integer limit = 100; List<VnnoxPlayerResponse> playerList; // è·åVnnoxæå¡å¨å表 VnnoxPlayerListResponse response = vnnoxAPIUtil.getPlayerList(limit, page); VnnoxPlayerListResponse response = vnnoxAPIUtil.getPlayerList(limit, page,name); playerList = response.getRows(); Integer total = response.getTotal() - limit; while (total > 0) { page = page + 1; total = total - limit; response = vnnoxAPIUtil.getPlayerList(limit, page); response = vnnoxAPIUtil.getPlayerList(limit, page,name); playerList.addAll(response.getRows()); } ledPlayerEntity = new LedPlayerEntity(); ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java
@@ -1,102 +1,107 @@ package com.sandu.ximon.admin.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.ximon.admin.config.XiXunConfig; import com.sandu.ximon.admin.entity.*; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.admin.utils.JsonUtil; import com.sandu.ximon.dao.domain.PoleXixunPlayerEntity; import com.sandu.ximon.dao.mapper.PoleXixunPlayerEntityMapper; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; import java.util.*; @Service @AllArgsConstructor public class XiXunPlayerService extends BaseServiceImpl<PoleXixunPlayerEntityMapper, PoleXixunPlayerEntity> { private final PoleXixunPlayerEntityMapper poleXixunPlayerEntityMapper; private final XiXunConfig config; public void insert(ProgramPro programPro, Long userId) { SimpleDateFormat sdf=new SimpleDateFormat("yy-MM-dd HH:mm:ss"); Date date = new Date(); // Program program = new Program(); //package com.sandu.ximon.admin.service; // //import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; //import com.google.gson.Gson; //import com.google.gson.GsonBuilder; //import com.sandu.common.service.impl.BaseServiceImpl; //import com.sandu.ximon.admin.config.RealtimeServerBean; //import com.sandu.ximon.admin.config.XiXunConfig; //import com.sandu.ximon.admin.entity.*; //import com.sandu.ximon.admin.security.SecurityUtils; //import com.sandu.ximon.admin.utils.JsonUtil; //import com.sandu.ximon.admin.utils.LightemitUtils; //import com.sandu.ximon.dao.domain.PoleLightemitEntity; //import com.sandu.ximon.dao.domain.PoleXixunPlayerEntity; //import com.sandu.ximon.dao.mapper.PoleXixunPlayerEntityMapper; //import lombok.AllArgsConstructor; //import org.springframework.stereotype.Service; // //import java.text.SimpleDateFormat; //import java.util.*; // //@Service //@AllArgsConstructor //public class XiXunPlayerService extends BaseServiceImpl<PoleXixunPlayerEntityMapper, PoleXixunPlayerEntity> { // // private final PoleXixunPlayerEntityMapper poleXixunPlayerEntityMapper; // private final XiXunConfig config; // private final LightemitUtils lightemitUtils; // private final RealtimeServerBean realtimeServerBean; // // // public void insert(ProgramPro programPro, Long userId) { // SimpleDateFormat sdf=new SimpleDateFormat("yy-MM-dd HH:mm:ss"); // Date date = new Date(); //// Program program = new Program(); //// try { //// program = JsonUtil.convertJsonStringToObject(json,Program.class); //// } catch (Exception e) { //// e.printStackTrace(); //// } // String json = JsonUtil.jsonObj2Sting(programPro); // PoleXixunPlayerEntity poleXixunPlayer = new PoleXixunPlayerEntity(); // poleXixunPlayer.setProgramCode(programPro.get_id()); // poleXixunPlayer.setProgramName(programPro.getName()); // poleXixunPlayer.setHeight(programPro.getHeight()); // poleXixunPlayer.setWidth(programPro.getWidth()); // poleXixunPlayer.setTotalSize((float) programPro.getTotalSize()/1000000+"MB"); // poleXixunPlayer.setRequestBody(json); // poleXixunPlayer.setCreatTime(sdf.format(date)); // poleXixunPlayer.setCreateUserId(SecurityUtils.getClientId()); // // this.save(poleXixunPlayer); // } // // public void videoXixunPlayer(long programId,Long[] lightemitIds) { // // ProgramPro pro = new ProgramPro(); // ItemPro items = new ItemPro(); // TaskPro taskPro = new TaskPro(); // CommandPro command = new CommandPro(); // XixunPlayerPro xixun = new XixunPlayerPro(); // PoleXixunPlayerEntity poleXixunPlayerEntity = new PoleXixunPlayerEntity(); // items.set_id(UUID.randomUUID().toString()); // QueryWrapper<PoleXixunPlayerEntity> queryWrapper = new QueryWrapper<>(); // queryWrapper.eq("program_id",programId); // poleXixunPlayerEntity = this.getOne(queryWrapper); // String json = poleXixunPlayerEntity.getRequestBody(); // try { // program = JsonUtil.convertJsonStringToObject(json,Program.class); // pro = JsonUtil.convertJsonStringToObject(json, ProgramPro.class); // } catch (Exception e) { // e.printStackTrace(); // } String json = JsonUtil.jsonObj2Sting(programPro); PoleXixunPlayerEntity poleXixunPlayer = new PoleXixunPlayerEntity(); poleXixunPlayer.setProgramCode(programPro.get_id()); poleXixunPlayer.setProgramName(programPro.getName()); poleXixunPlayer.setHeight(programPro.getHeight()); poleXixunPlayer.setWidth(programPro.getWidth()); poleXixunPlayer.setTotalSize((float) programPro.getTotalSize()/1000000+"MB"); poleXixunPlayer.setRequestBody(json); poleXixunPlayer.setCreatTime(sdf.format(date)); poleXixunPlayer.setCreateUserId(SecurityUtils.getClientId()); this.save(poleXixunPlayer); } public void videoXixunPlayer(long programId,Long[] lightemitIds) { ProgramPro pro = new ProgramPro(); ItemPro items = new ItemPro(); TaskPro taskPro = new TaskPro(); CommandPro command = new CommandPro(); XixunPlayerPro xixun = new XixunPlayerPro(); PoleXixunPlayerEntity poleXixunPlayerEntity = new PoleXixunPlayerEntity(); items.set_id(UUID.randomUUID().toString()); QueryWrapper<PoleXixunPlayerEntity> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("program_id",programId); poleXixunPlayerEntity = this.getOne(queryWrapper); String json = poleXixunPlayerEntity.getRequestBody(); try { pro = JsonUtil.convertJsonStringToObject(json, ProgramPro.class); } catch (Exception e) { e.printStackTrace(); } items.set_program(pro); items.setRepeatTimes(1); items.setSchedulePros(null);//宿¶æ®µï¼ä¸å宿¶å¯ä¸ºnull taskPro.set_id(UUID.randomUUID().toString()); taskPro.setName(poleXixunPlayerEntity.getProgramName()); List<ItemPro> list2=new ArrayList<ItemPro>(); list2.add(items); taskPro.setItems(list2); command.setId(UUID.randomUUID().toString()); //è¿éæ¯ä¸æ¹çpoståè°å°åï¼éè¦ä¿®æ¹IPå°å command.setNotificationURL("http://" + config.getIp() + ":" + config.getPort() + "/machine-fast/serv/download/getJSON"); //èµæºä¸è½½é¾æ¥ç请æ±å¤´ // items.set_program(pro); // items.setRepeatTimes(1); // items.setSchedulePros(null);//宿¶æ®µï¼ä¸å宿¶å¯ä¸ºnull // taskPro.set_id(UUID.randomUUID().toString()); // taskPro.setName(poleXixunPlayerEntity.getProgramName()); // List<ItemPro> list2=new ArrayList<ItemPro>(); // list2.add(items); // taskPro.setItems(list2); // command.setId(UUID.randomUUID().toString()); // //è¿éæ¯ä¸æ¹çpoståè°å°åï¼éè¦ä¿®æ¹IPå°å // command.setNotificationURL("http://" + config.getIp() + ":" + config.getPort() + "/machine-fast/serv/download/getJSON"); // //èµæºä¸è½½é¾æ¥ç请æ±å¤´ // command.setPreDownloadURL("http://" + config.getIp() + ":" + config.getPort() + "/machine-fast/serv/download/downliadFileById/"); // command.setTask(taskPro); // xixun.set_id(UUID.randomUUID().toString()); // xixun.setCommand(command); // xixun.setType("commandXixunPlayer"); //å½ä»¤åºå®ç±»åï¼ä¸å¯æ´æ¹ Gson gson = new GsonBuilder().disableHtmlEscaping().create(); // String jsondata = JSON.toJSONString(xixun); String jsondata = gson.toJson(xixun); /* Collection<PoleLightemitEntity> poleLightemitEntities = poleLightemitService.listByIds(Arrays.asList(lightemitIds)); if(poleLightemitEntities != null){ for (PoleLightemitEntity entity: poleLightemitEntities) { lightemitUtils.clear(entity.getLightemitControlCode()); poleLightemitService.updateRequestBody(entity.getLightemitControlCode(), jsondata); lightemitUtils.post(realtimeServerBean.getCommand() + entity.getLightemitControlCode(), jsondata); } }*/ } } // // // Gson gson = new GsonBuilder().disableHtmlEscaping().create(); //// String jsondata = JSON.toJSONString(xixun); // String jsondata = gson.toJson(xixun); // //// Collection<PoleLightemitEntity> poleLightemitEntities = poleLightemitService.listByIds(Arrays.asList(lightemitIds)); //// //// if(poleLightemitEntities != null){ //// for (PoleLightemitEntity entity: poleLightemitEntities) { //// lightemitUtils.clear(entity.getLightemitControlCode()); //// poleLightemitService.updateRequestBody(entity.getLightemitControlCode(), jsondata); //// lightemitUtils.post(realtimeServerBean.getCommand() + entity.getLightemitControlCode(), jsondata); //// } //// } // } // //} ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxAPIUtil.java
@@ -7,8 +7,11 @@ import com.sandu.ximon.admin.utils.response.*; import com.sandu.ximon.dao.domain.LedPlayerEntity; import lombok.AllArgsConstructor; import org.apache.http.NameValuePair; import org.apache.http.message.BasicNameValuePair; import org.springframework.stereotype.Component; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; @@ -42,21 +45,38 @@ /** * è·åææ¾å¨å表 * * @param count æ¯æ¬¡è¯»åæ°éï¼é»è®¤20ï¼åå¼èå´ï¼1~100 * @param start ä»ç¬¬å æ¡è®°å½å¼å§è¯»åï¼é»è®¤0 * @return */ public VnnoxPlayerListResponse getPlayerList(Integer count, Integer start) { // 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)); // System.out.println("----------------------------------------"); // System.out.println("----------------------------------------"); // System.out.println("----------------------------------------"); // System.out.println(response); // return response; // } public VnnoxPlayerListResponse getPlayerList(Integer count, Integer start,String name) throws URISyntaxException { List<NameValuePair> urlParameters = new ArrayList<>(); urlParameters.add(new BasicNameValuePair("count",count.toString())); urlParameters.add(new BasicNameValuePair("start",start.toString())); urlParameters.add(new BasicNameValuePair("name",name)); String result = VnnoxRequestUtil.GetWithHeader( VnnoxUrl.getUrl(VnnoxUrl.GET_PLAYER_LIST), new VnnoxGetPlayerListRequest(count, start).toJson(), urlParameters, new CommonHeader(CommonHeader.JSON, true) ); VnnoxPlayerListResponse response = new VnnoxPlayerListResponse().parse(JSON.parseObject(result, CommonResponse.class)); return response; return new VnnoxPlayerListResponse().parse(JSON.parseObject(result,CommonResponse.class)); } /** ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxRequestUtil.java
@@ -2,7 +2,9 @@ import com.sandu.ximon.admin.utils.request.CommonHeader; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.utils.URIBuilder; import org.apache.http.entity.StringEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; @@ -12,6 +14,10 @@ import java.io.IOException; import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; import java.util.List; import java.util.Map; public class VnnoxRequestUtil { @@ -35,29 +41,53 @@ 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(); // 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 GetWithHeader (String url, List<NameValuePair> urlParameters, Map<String, String> header) throws URISyntaxException { result = streamToString(inStream, UTF8); inStream.close(); } catch (Exception e) { return null; } return result; URI finalURI = new URIBuilder(url).setParameters(urlParameters).build(); CloseableHttpClient client = HttpClients.createDefault(); HttpGet get = new HttpGet(finalURI); 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; } ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/SetPlayList.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.sandu.ximon.admin.utils.request; /** * @program: machine-fast * @description: è®¾ç½®ææ¾å表请æ±body * @author: YSS * @create: 2019-04-24 17:24 **/ public class SetPlayList { public final String type = "setPlayList"; public String[] list = new String[1] ; // public String[] pathList = new String[1]; public Integer width = 128; public Integer height = 128; public Integer top = 0; public Integer left = 0; } ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/SetVolume.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ package com.sandu.ximon.admin.utils.request; /** * @program: machine-fast * @description: 设置é³é * @author: YSS * @create: 2019-09-17 18:03 **/ public class SetVolume { public final String type = "callCardService"; public final String fn = "setVolume"; public Integer arg1 = 15; } ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/SubTitleSet.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ package com.sandu.ximon.admin.utils.request; /** * @program: machine-fast * @description: ledå±åå¹è®¾ç½®è¯·æ±body * @author: YSS * @create: 2019-04-24 18:12 **/ public class SubTitleSet { public final String type = "invokeBuildInJs";//method scrollMarquee public String method = "scrollMarquee"; public Number num = -1;// æ»å¨5次, 注æç±»å为Number, å¡«0忢æ»å¨ï¼å¡«è´æ°æ°¸ä¹ æ»å¨ public String html = ""; public Number interval = 100;//æ¥è¿é´éï¼å使¯«ç§ï¼æ³¨æç±»å为Number public Number step = 1;//æ¥è¿è·ç¦»ï¼åä½åç´ ï¼æ³¨æç±»å为Number public String direction = "left";//å¾å·¦æ»å¨ï¼å¯å¡«å¼leftã right public String align = "top";//å¨ä¸æ¹æ¾ç¤ºï¼å¯å¡«å¼topãcenterãbottom } ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/setScreenOpen.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ package com.sandu.ximon.admin.utils.request; /** * @program: machine-fast * @description: 设置ledå¼å ³body * @author: YSS * @create: 2019-05-30 17:30 **/ public class setScreenOpen { public final String type = "callCardService"; public final String fn = "setScreenOpen"; public Boolean arg1 = true; public setScreenOpen (Boolean bool){ this.arg1 = bool; } } ximon-admin/src/main/resources/application.yml
@@ -30,3 +30,20 @@ mchKey: dsd #微信æ¯ä»åæ·å¯é¥ # ledå±å¹æå¡å¨å°åï¼æ´æ¹éè¦åæ¶æ´æ¹ï¼ realtime-server: command: http://101.132.131.91:8081/payload/ url: http://101.132.131.91:8081/ # nginxç¸å ³å°å nginx: port: 443 cameraSaveUrl: D:/NginX/nginx-1.15.9/data/file/cameraPresetPoint nginx-config: filePath: D:\NginX\nginx-1.15.9\data\file\ url: http://47.106.172.9:443/download/ apkUrl: http://47.106.172.9:443/apk/ lcdUrl: http://47.106.172.9:443/download/lcd/