From cbffadc9c547b1fd45e0dcb22a9ec81d5813bc21 Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期一, 21 十一月 2022 16:11:12 +0800
Subject: [PATCH] changes

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java |  893 +++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 508 insertions(+), 385 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java
index 9d3efe8..56a7ae8 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/utils/NovaAPIUtil.java
@@ -101,7 +101,7 @@
             throw new RuntimeException(e);
         }
 
-        if (loginSn.get(sn) != null && loginSn.get(sn)) {
+        if (loginSn.get(sn) != null && loginSn.get(sn) && loginType == 0) {
             return new StatusVO(0);
         }
         if (loginInfo == null) {
@@ -250,7 +250,6 @@
     }
 
 
-
     /**
      * 鐢熸垚鑺傜洰
      *
@@ -299,9 +298,6 @@
         //鑺傜洰
         sendProgramFilePaths.setProgramPath(filePathConfig.getOutPutPath() + "/program" + pageInfo.getProgramID());
         //鏂囦欢
-//        Map<String, String> mediasPath = new HashMap();
-//        mediasPath.put("C:/Users/Administrator/Desktop/novaWin/demo/java/test.png", "test.png");
-//        sendProgramFilePaths.setMediasPath(mediasPath);
         sendProgramFilePaths.setMediasPath(pageInfo.getFileMap());
 
         transfromProgramVO.setSendProgramFilePaths(sendProgramFilePaths);
@@ -313,68 +309,53 @@
         List<TrasfromStatusVO> svoList = new ArrayList<>();
         System.out.println("ViplexCore Demo nvStartTransferProgramAsync(鍙戦�佽妭鐩�) begin... ");
 //        System.out.println(trasfromProgram);
-//        instance.nvStartTransferProgramAsync(trasfromProgram, callBack);
-//        String trasfromProgram = String.format(
-//                "{\"sn\": \"%s\",\"iconPath\": \"\",\"iconName\": \"\",\"sendProgramFilePaths\": {\"programPath\": \"%s/program13\",\"mediasPath\": {\"C:/Users/Administrator/Desktop/novaWin/demo/java/test.png\": \"test.png\"}},\"programName\": \"jiemu1\",\"deviceIdentifier\": \"Demo\",\"startPlayAfterTransferred\": true,\"insertPlay\": true}",
-//                g_sn,
-//                rootDir);
+        CountDownLatch countDownLatch = new CountDownLatch(pageInfo.getSnList().size());
         pageInfo.getSnList().forEach(sn -> {
-            CountDownLatch countDownLatch = new CountDownLatch(1);
-            new Thread(new Runnable() {
-                @Override
-                public void run() {
-                    if (transfromProgramVO == null) {
-                        return;
-                    }
-                    transfromProgramVO.setSn(sn);
-                    System.out.println(transfromProgramVO);
-                    StatusVO login = login(sn, 0);
-                    //鎺ㄩ�佺粨鏋�
-                    TrasfromStatusVO trasfromStatusVO = new TrasfromStatusVO();
-                    trasfromStatusVO.setSn(sn);
-                    if (login.getStatusCode() != 0) {
-                        trasfromStatusVO.setStatusCode(login.getStatusCode());
-                        trasfromStatusVO.setStatusData(login.getStatusData());
-                        return;
-                    }
-                    System.out.println("program: " + JSON.toJSONString(transfromProgramVO));
-                    instance.nvStartTransferProgramAsync(JSON.toJSONString(transfromProgramVO), new ViplexCore.CallBack() {
-                        @Override
-                        public void dataCallBack(int code, String data) {
 
-                            trasfromStatusVO.setStatusCode(code);
-                            trasfromStatusVO.setStatusData(data);
-                            System.out.println("\nViplexCore 鍙戦�佽妭鐩� code:" + code);
-                            System.out.println("\nViplexCore 鍙戦�佽妭鐩� data:" + data);
-                            //鑺傜洰鍙戝竷鎴愬姛
-                            if (trasfromStatusVO.getStatusCode() == 0) {
-                                countDownLatch.countDown();
-                                svoList.add(trasfromStatusVO);
-                            } else if (trasfromStatusVO.getStatusCode() != 65362) {
-                                //涓婁紶澶辫触
-                                System.out.println("涓婁紶澶辫触");
-                                svoList.add(trasfromStatusVO);
-                                countDownLatch.countDown();
-                            }
-                        }
-                    });
-
-                }
-            }).start();
-
-            try {
-                countDownLatch.await(30000, TimeUnit.MILLISECONDS);
-            } catch (InterruptedException e) {
-                throw new RuntimeException(e);
+            if (transfromProgramVO == null) {
+                return;
             }
+            transfromProgramVO.setSn(sn);
+            System.out.println(transfromProgramVO);
+            StatusVO login = login(sn, 0);
+            //鎺ㄩ�佺粨鏋�
+            TrasfromStatusVO trasfromStatusVO = new TrasfromStatusVO();
+            trasfromStatusVO.setSn(sn);
+            if (login.getStatusCode() != 0) {
+                trasfromStatusVO.setStatusCode(login.getStatusCode());
+                trasfromStatusVO.setStatusData(login.getStatusData());
+                countDownLatch.countDown();
+                return;
+            }
+            System.out.println("program: " + JSON.toJSONString(transfromProgramVO));
+            instance.nvStartTransferProgramAsync(JSON.toJSONString(transfromProgramVO), new ViplexCore.CallBack() {
+                @Override
+                public void dataCallBack(int code, String data) {
+
+                    trasfromStatusVO.setStatusCode(code);
+                    trasfromStatusVO.setStatusData(data);
+                    System.out.println("\nViplexCore 鍙戦�佽妭鐩� code:" + code);
+                    System.out.println("\nViplexCore 鍙戦�佽妭鐩� data:" + data);
+                    //鑺傜洰鍙戝竷鎴愬姛
+                    if (trasfromStatusVO.getStatusCode() == 0) {
+                        countDownLatch.countDown();
+                        svoList.add(trasfromStatusVO);
+                    } else if (trasfromStatusVO.getStatusCode() != 65362) {
+                        //涓婁紶澶辫触
+                        System.out.println("涓婁紶澶辫触");
+                        svoList.add(trasfromStatusVO);
+                        countDownLatch.countDown();
+                    }
+                }
+            });
         });
-
-
+        try {
+            countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
         return svoList;
     }
-
-
-
 
 
     /**
@@ -384,31 +365,26 @@
      */
     public List<NewNovaLed> getOnlineStatus(List<NewNovaLed> newNovaListBos, boolean onlineStatus) {
         List<NewNovaLed> online = new ArrayList<>();
+        CountDownLatch countDownLatch = new CountDownLatch(newNovaListBos.size());
         //璁剧疆寮�鍏冲睆鐘舵��
         newNovaListBos.forEach(led -> {
             //鑾峰彇淇℃伅涔嬪墠鍏堢櫥褰�
-            CountDownLatch countDownLatch = new CountDownLatch(1);
-            new Thread(new Runnable() {
-                @Override
-                public void run() {
-                    StatusVO login = login(led.getSn(), 0);
-                    if (login.getStatusCode() == 0) {
-                        //鐧婚檰鎴愬姛 璁剧疆涓哄湪绾�
-                        led.setIsOnline(1);
-                        led.setOnlineSign(1);
-                        online.add(led);
-                    } else {
-                        led.setIsOnline(0);
-                    }
-                    countDownLatch.countDown();
-                }
-            }).start();
-            try {
-                countDownLatch.await(30000, TimeUnit.MILLISECONDS);
-            } catch (InterruptedException e) {
-                throw new RuntimeException(e);
+            StatusVO login = login(led.getSn(), 0);
+            if (login.getStatusCode() == 0) {
+                //鐧婚檰鎴愬姛 璁剧疆涓哄湪绾�
+                led.setIsOnline(1);
+                led.setOnlineSign(1);
+                online.add(led);
+            } else {
+                led.setIsOnline(0);
             }
+            countDownLatch.countDown();
         });
+        try {
+            countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
         if (onlineStatus) {
             return online;
         }
@@ -425,40 +401,37 @@
         StatusVO login = login(led.getSn(), 0);
 
         StatusVO result = new StatusVO();
+        CountDownLatch countDownLatch = new CountDownLatch(1);
         if (login.getStatusCode() == 0) {
-
-            CountDownLatch countDownLatch = new CountDownLatch(1);
-            new Thread(new Runnable() {
+            //鎺ㄩ�佺粨鏋�
+            TrasfromStatusVO trasfromStatusVO = new TrasfromStatusVO();
+            trasfromStatusVO.setSn(led.getSn());
+            instance.nvGetProductInfoAsync("{\n" +
+                    "  \"sn\":\"" + led.getSn() + "\"\n" +
+                    "}", new ViplexCore.CallBack() {
                 @Override
-                public void run() {
-                    //鎺ㄩ�佺粨鏋�
-                    TrasfromStatusVO trasfromStatusVO = new TrasfromStatusVO();
-                    trasfromStatusVO.setSn(led.getSn());
-                    instance.nvGetProductInfoAsync("{\n" +
-                            "  \"sn\":\"" + led.getSn() + "\"\n" +
-                            "}", new ViplexCore.CallBack() {
-                        @Override
-                        public void dataCallBack(int code, String data) {
-                            result.setStatusCode(code);
-                            result.setStatusData(data);
-                            System.out.println("\nViplexCore 鑾峰彇灞忓箷淇℃伅 code:" + code);
-                            System.out.println("\nViplexCore 鑾峰彇灞忓箷淇℃伅 data:" + data);
-                            countDownLatch.countDown();
-                        }
-                    });
-
+                public void dataCallBack(int code, String data) {
+                    result.setStatusCode(code);
+                    result.setStatusData(data);
+                    System.out.println("\nViplexCore 鑾峰彇灞忓箷淇℃伅 code:" + code);
+                    System.out.println("\nViplexCore 鑾峰彇灞忓箷淇℃伅 data:" + data);
+                    countDownLatch.countDown();
                 }
-            }).start();
+            });
             try {
                 countDownLatch.await(30000, TimeUnit.MICROSECONDS);
             } catch (InterruptedException e) {
                 throw new RuntimeException(e);
             }
-        } else {
+        } /*else {
             throw new BusinessException("璁惧鐧诲綍澶辫触,缁忔鏌ヨ澶囨槸鍚﹁繛鎺�");
-        }
-        NewNovaInfoBo newNovaInfoBo = JSON.parseObject(result.getStatusData(), NewNovaInfoBo.class);
-        led.setInfo(newNovaInfoBo);
+        }*/
+        if (result.getStatusCode() == 0) {
+            NewNovaInfoBo newNovaInfoBo = JSON.parseObject(result.getStatusData(), NewNovaInfoBo.class);
+            led.setInfo(newNovaInfoBo);
+        } /*else {
+            throw new BusinessException("璁惧鐧诲綍澶辫触,缁忔鏌ヨ澶囨槸鍚﹁繛鎺�");
+        }*/
         return led;
     }
 
@@ -470,35 +443,34 @@
 
         System.out.println("ViplexCore Demo nvGetScreenPowerStateAsync(鑾峰彇灞忓箷寮�鍏�) begin... ");
 
+        CountDownLatch countDownLatch = new CountDownLatch(newNovaLsit.size());
         newNovaLsit.forEach(newNova -> {
-            CountDownLatch countDownLatch = new CountDownLatch(1);
-            new Thread(new Runnable() {
-                @Override
-                public void run() {
-                    //鎺ㄩ�佺粨鏋�
-                    instance.nvGetScreenPowerStateAsync("{\n" +
-                            "  \"sn\":\"" + newNova.getSn() + "\"\n" +
-                            "}", new ViplexCore.CallBack() {
-                        @Override
-                        public void dataCallBack(int code, String data) {
-
-                            System.out.println("\nViplexCore 鑾峰彇灞忓箷寮�鍏� code:" + code);
-                            System.out.println("\nViplexCore 鑾峰彇灞忓箷寮�鍏� data:" + data);
-                            if (code == 0 && data.contains("OPEN")) {
-                                newNova.setScreenPower(1);
-                            }
-                            countDownLatch.countDown();
-                        }
-                    });
-
-                }
-            }).start();
-            try {
-                countDownLatch.await(30000, TimeUnit.MILLISECONDS);
-            } catch (InterruptedException e) {
-                throw new RuntimeException(e);
+            StatusVO login = login(newNova.getSn(), 0);
+            if (login.getStatusCode() != 0) {
+                countDownLatch.countDown();
+                return;
             }
+            //鎺ㄩ�佺粨鏋�
+            instance.nvGetScreenPowerStateAsync("{\n" +
+                    "  \"sn\":\"" + newNova.getSn() + "\"\n" +
+                    "}", new ViplexCore.CallBack() {
+                @Override
+                public void dataCallBack(int code, String data) {
+
+                    System.out.println("\nViplexCore 鑾峰彇灞忓箷寮�鍏� code:" + code);
+                    System.out.println("\nViplexCore 鑾峰彇灞忓箷寮�鍏� data:" + data);
+                    if (code == 0 && data.contains("OPEN")) {
+                        newNova.setScreenPower(1);
+                    }
+                    countDownLatch.countDown();
+                }
+            });
         });
+        try {
+            countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
 
         return newNovaLsit;
     }
@@ -556,35 +528,34 @@
 
         System.out.println("ViplexCore Demo nvGetVolumeAsync(鑾峰彇闊抽噺) begin... ");
 
+        CountDownLatch countDownLatch = new CountDownLatch(newNovaLsit.size());
         newNovaLsit.forEach(newNova -> {
-            CountDownLatch countDownLatch = new CountDownLatch(1);
-            new Thread(new Runnable() {
-                @Override
-                public void run() {
-                    //鎺ㄩ�佺粨鏋�
-                    instance.nvGetVolumeAsync("{\n" +
-                            "  \"sn\":\"" + newNova.getSn() + "\"\n" +
-                            "}", new ViplexCore.CallBack() {
-                        @Override
-                        public void dataCallBack(int code, String data) {
-
-                            System.out.println("\nViplexCore 鑾峰彇闊抽噺 code:" + code);
-                            System.out.println("\nViplexCore 鑾峰彇闊抽噺 data:" + data);
-                            if (code == 0) {
-                                newNova.setVolume((BigDecimal) JSON.parseObject(data, Map.class).get("ratio"));
-                            }
-                            countDownLatch.countDown();
-                        }
-                    });
-
-                }
-            }).start();
-            try {
-                countDownLatch.await(30000, TimeUnit.MILLISECONDS);
-            } catch (InterruptedException e) {
-                throw new RuntimeException(e);
+            StatusVO login = login(newNova.getSn(), 0);
+            if (login.getStatusCode() != 0) {
+                countDownLatch.countDown();
+                return;
             }
+            //鎺ㄩ�佺粨鏋�
+            instance.nvGetVolumeAsync("{\n" +
+                    "  \"sn\":\"" + newNova.getSn() + "\"\n" +
+                    "}", new ViplexCore.CallBack() {
+                @Override
+                public void dataCallBack(int code, String data) {
+
+                    System.out.println("\nViplexCore 鑾峰彇闊抽噺 code:" + code);
+                    System.out.println("\nViplexCore 鑾峰彇闊抽噺 data:" + data);
+                    if (code == 0) {
+                        newNova.setVolume((BigDecimal) JSON.parseObject(data, Map.class).get("ratio"));
+                    }
+                    countDownLatch.countDown();
+                }
+            });
         });
+        try {
+            countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
 
         return newNovaLsit;
     }
@@ -639,35 +610,34 @@
         System.out.println("ViplexCore Demo nvGetScreenBrightnessAsync(鑾峰彇浜害) begin... ");
 
 
+        CountDownLatch countDownLatch = new CountDownLatch(newNovaLsit.size());
         newNovaLsit.forEach(newNova -> {
-            CountDownLatch countDownLatch = new CountDownLatch(1);
-            new Thread(new Runnable() {
-                @Override
-                public void run() {
-                    //鎺ㄩ�佺粨鏋�
-                    instance.nvGetScreenBrightnessAsync("{\n" +
-                            "  \"sn\":\"" + newNova.getSn() + "\"\n" +
-                            "}", new ViplexCore.CallBack() {
-                        @Override
-                        public void dataCallBack(int code, String data) {
-
-                            System.out.println("\nViplexCore 鑾峰彇浜害 code:" + code);
-                            System.out.println("\nViplexCore 鑾峰彇浜害 data:" + data);
-                            if (code == 0) {
-                                newNova.setBrightness((BigDecimal) JSON.parseObject(data, Map.class).get("ratio"));
-                            }
-                            countDownLatch.countDown();
-                        }
-                    });
-
-                }
-            }).start();
-            try {
-                countDownLatch.await(30000, TimeUnit.MILLISECONDS);
-            } catch (InterruptedException e) {
-                throw new RuntimeException(e);
+            StatusVO login = login(newNova.getSn(), 0);
+            if (login.getStatusCode() != 0) {
+                countDownLatch.countDown();
+                return;
             }
+            //鎺ㄩ�佺粨鏋�
+            instance.nvGetScreenBrightnessAsync("{\n" +
+                    "  \"sn\":\"" + newNova.getSn() + "\"\n" +
+                    "}", new ViplexCore.CallBack() {
+                @Override
+                public void dataCallBack(int code, String data) {
+
+                    System.out.println("\nViplexCore 鑾峰彇浜害 code:" + code);
+                    System.out.println("\nViplexCore 鑾峰彇浜害 data:" + data);
+                    if (code == 0) {
+                        newNova.setBrightness((BigDecimal) JSON.parseObject(data, Map.class).get("ratio"));
+                    }
+                    countDownLatch.countDown();
+                }
+            });
         });
+        try {
+            countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
 
         return newNovaLsit;
     }
@@ -719,41 +689,40 @@
 
         System.out.println("ViplexCore Demo nvGetSyncPlayAsync(鑾峰彇鍚屾) begin... ");
 
+        CountDownLatch countDownLatch = new CountDownLatch(newNovaLsit.size());
         newNovaLsit.forEach(newNova -> {
-            CountDownLatch countDownLatch = new CountDownLatch(1);
-            new Thread(new Runnable() {
-                @Override
-                public void run() {
-                    //鎺ㄩ�佺粨鏋�
-                    instance.nvGetSyncPlayAsync("{\n" +
-                            "  \"sn\":\"" + newNova.getSn() + "\"\n" +
-                            "}", new ViplexCore.CallBack() {
-                        @Override
-                        public void dataCallBack(int code, String data) {
-
-                            System.out.println("\nViplexCore 鑾峰彇鍚屾 code:" + code);
-                            System.out.println("\nViplexCore 鑾峰彇鍚屾 data:" + data);
-                            if (code == 0) {
-                                boolean enable = (boolean) JSON.parseObject(data, Map.class).get("enable");
-                                if (enable) {
-                                    newNova.setSync(1);
-                                }
-                            } else {
-                                newNova.setSync(-1);
-                            }
-                            countDownLatch.countDown();
-                        }
-                    });
-
-                }
-            }).start();
-            try {
-                countDownLatch.await(30000, TimeUnit.MILLISECONDS);
-            } catch (InterruptedException e) {
-                throw new RuntimeException(e);
+            StatusVO login = login(newNova.getSn(), 0);
+            if (login.getStatusCode() != 0) {
+                countDownLatch.countDown();
+                return;
             }
-        });
+            //鎺ㄩ�佺粨鏋�
+            instance.nvGetSyncPlayAsync("{\n" +
+                    "  \"sn\":\"" + newNova.getSn() + "\"\n" +
+                    "}", new ViplexCore.CallBack() {
+                @Override
+                public void dataCallBack(int code, String data) {
 
+                    System.out.println("\nViplexCore 鑾峰彇鍚屾 code:" + code);
+                    System.out.println("\nViplexCore 鑾峰彇鍚屾 data:" + data);
+                    if (code == 0) {
+                        boolean enable = (boolean) JSON.parseObject(data, Map.class).get("enable");
+                        if (enable) {
+                            newNova.setSync(1);
+                        }
+                    } else {
+                        newNova.setSync(-1);
+                    }
+                    countDownLatch.countDown();
+                }
+            });
+
+        });
+        try {
+            countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
         return newNovaLsit;
     }
 
@@ -767,40 +736,39 @@
         if (param.getNovaList() == null || param.getNovaList().size() == 0) {
             throw new BusinessException("鍚屾璁惧涓嶈兘涓虹┖ !");
         }
+        CountDownLatch countDownLatch = new CountDownLatch(param.getNovaList().size());
         param.getNovaList().forEach(newNova -> {
-            CountDownLatch countDownLatch = new CountDownLatch(1);
-            new Thread(new Runnable() {
-                @Override
-                public void run() {
-                    login(newNova.getSn(), 0);
-                    String str = "{\n" +
-                            "  \"sn\":\"" + newNova.getSn() + "\",\n" +
-                            "  \"enable\":" + param.isSync() + "\n" +
-                            "}";
 
-                    System.out.println("str : " + str);
-                    //鎺ㄩ�佺粨鏋�
-                    instance.nvSetSyncPlayAsync(str, new ViplexCore.CallBack() {
-                        @Override
-                        public void dataCallBack(int code, String data) {
-
-                            System.out.println("\nViplexCore 璁剧疆鍚屾 code:" + code);
-                            System.out.println("\nViplexCore 璁剧疆鍚屾 data:" + data);
-                            if (code == 0) {
-                                newNova.setStatus(true);
-                            }
-                            countDownLatch.countDown();
-                        }
-                    });
-
-                }
-            }).start();
-            try {
-                countDownLatch.await(30000, TimeUnit.MILLISECONDS);
-            } catch (InterruptedException e) {
-                throw new RuntimeException(e);
+            StatusVO login = login(newNova.getSn(), 0);
+            if (login.getStatusCode() != 0) {
+                countDownLatch.countDown();
+                return;
             }
+            String str = "{\n" +
+                    "  \"sn\":\"" + newNova.getSn() + "\",\n" +
+                    "  \"enable\":" + param.isSync() + "\n" +
+                    "}";
+
+            System.out.println("str : " + str);
+            //鎺ㄩ�佺粨鏋�
+            instance.nvSetSyncPlayAsync(str, new ViplexCore.CallBack() {
+                @Override
+                public void dataCallBack(int code, String data) {
+
+                    System.out.println("\nViplexCore 璁剧疆鍚屾 code:" + code);
+                    System.out.println("\nViplexCore 璁剧疆鍚屾 data:" + data);
+                    if (code == 0) {
+                        newNova.setStatus(true);
+                    }
+                    countDownLatch.countDown();
+                }
+            });
         });
+        try {
+            countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
 
         return param.getNovaList();
     }
@@ -814,60 +782,61 @@
         if (param.getNovaList() == null || param.getNovaList().size() == 0) {
             throw new BusinessException("閲嶅惎璁惧涓嶈兘涓虹┖ !");
         }
+        CountDownLatch countDownLatch = new CountDownLatch(1);
         param.getNovaList().forEach(newNova -> {
-                    CountDownLatch countDownLatch = new CountDownLatch(1);
-                    new Thread(new Runnable() {
-                        @Override
-                        public void run() {
-                            StatusVO login = login(newNova.getSn(), 1);
-                            if (login.getStatusCode() != 0) {
-                                countDownLatch.countDown();
-                                return;
-                            }
-                            //鎺ㄩ�佺粨鏋�
-                            instance.nvSetReBootTaskAsync("{\n" +
-                                    "  \"sn\":\"" + newNova.getSn() + "\",\n" +
-                                    "  \"taskInfo\":{\n" +
-                                    "    \"type\":\"REBOOT\",\n" +
-                                    "    \"source\":{\n" +
-                                    "      \"type\":0,\n" +
-                                    "      \"platform\":4\n" +
-                                    "    },\n" +
-                                    "    \"executionType\":\"IMMEDIATELY\",\n" +
-                                    "    \"reason\":\"Just to reboot\",\n" +
-                                    "    \"conditions\":[\n" +
-                                    "      {\n" +
-                                    "        \"cron\":[\n" +
-                                    "          \"0 15 10 ? * *\",\n" +
-                                    "          \"0 0 12 * * ?\"\n" +
-                                    "        ],\n" +
-                                    "        \"enable\":false\n" +
-                                    "      }\n" +
-                                    "    ]\n" +
-                                    "  }\n" +
-                                    "}", new ViplexCore.CallBack() {
-                                @Override
-                                public void dataCallBack(int code, String data) {
-
-                                    System.out.println("\nViplexCore 閲嶅惎 code:" + code);
-                                    System.out.println("\nViplexCore 閲嶅惎 data:" + data);
-                                    if (code == 0) {
-                                        newNova.setStatus(true);
-                                    }
-                                    countDownLatch.countDown();
-                                }
-                            });
-
-                        }
-                    }).start();
-                    try {
-                        countDownLatch.await(30000, TimeUnit.MILLISECONDS);
-                    } catch (InterruptedException e) {
-                        throw new RuntimeException(e);
+                    logout(newNova.getSn(), 0);
+                    StatusVO login = login(newNova.getSn(), 1);
+                    if (login.getStatusCode() != 0) {
+                        countDownLatch.countDown();
+                        return;
                     }
-                    login(newNova.getSn(), 0);
+
+                    String rebootStr = "{\n" +
+                            "  \"sn\":\"" + newNova.getSn() + "\",\n" +
+                            "  \"taskInfo\":{\n" +
+                            "    \"type\":\"REBOOT\",\n" +
+                            "    \"source\":{\n" +
+                            "      \"type\":0,\n" +
+                            "      \"platform\":1\n" +
+                            "    },\n" +
+                            "    \"executionType\":\"IMMEDIATELY\",\n" +
+                            "    \"reason\":\"Just to test\",\n" +
+                            "    \"conditions\":[\n" +
+                            "      {\n" +
+                            "        \"cron\":[\n" +
+                            "          \"0 15 10 ? * *\",\n" +
+                            "          \"0 0 12 * * ?\"\n" +
+                            "        ],\n" +
+                            "        \"enable\":false\n" +
+                            "      }\n" +
+                            "    ]\n" +
+                            "  }\n" +
+                            "}";
+                    System.out.println("rebootStr : " + rebootStr);
+                    //鎺ㄩ�佺粨鏋�
+                    instance.nvSetReBootTaskAsync(rebootStr, new ViplexCore.CallBack() {
+                        @Override
+                        public void dataCallBack(int code, String data) {
+
+                            System.out.println("\nViplexCore 閲嶅惎 code:" + code);
+                            System.out.println("\nViplexCore 閲嶅惎 data:" + data);
+                            if (code == 0) {
+                                newNova.setStatus(true);
+                            }
+                            countDownLatch.countDown();
+                        }
+                    });
+//                    StatusVO logout = logout(newNova.getSn(), 1);
+//                    if (logout.getStatusCode() == 0) {
+//                    login(newNova.getSn(), 0);
+//                    }
                 }
         );
+        try {
+            countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
 
         return param.getNovaList();
     }
@@ -882,59 +851,55 @@
         if (param.getNovaList() == null || param.getNovaList().size() == 0) {
             throw new BusinessException("瀵规椂璁惧涓嶈兘涓虹┖ !");
         }
-
+        CountDownLatch countDownLatch = new CountDownLatch(param.getNovaList().size());
         param.getNovaList().forEach(newNova -> {
-            CountDownLatch countDownLatch = new CountDownLatch(1);
-            new Thread(new Runnable() {
-                @Override
-                public void run() {
-//                    login(newNova.getSn(), 0);
-                    String ntpStr="{\n" +
-                            "  \"sn\":\""+newNova.getSn()+"\",\n" +
-                            "  \"TimingInfo\":{\n" +
-                            "    \"source\":{\n" +
-                            "      \"type\":1,\n" +
-                            "      \"platform\":1\n" +
-                            "    },\n" +
-                            "    \"taskArray\":[\n" +
-                            "      {\n" +
-                            "        \"type\":\"NTP_CONFIG\",\n" +
-                            "        \"action\":4,\n" +
-                            "        \"data\":{\n" +
-                            "          \"enable\":"+param.isNtp()+",\n" +
-                            "          \"server\":\"http://ntp1.aliyun.com\"\n" +
-                            "        }\n" +
-                            "      }\n" +
-                            "    ]\n" +
-                            "  }\n" +
-                            "}";
-                    System.out.println("ntpStr"+ ntpStr);
-
-                    //鎺ㄩ�佺粨鏋�
-                    instance.nvSetNetTimingInfoAsync(ntpStr, new ViplexCore.CallBack() {
-                        @Override
-                        public void dataCallBack(int code, String data) {
-
-                            System.out.println("\nViplexCore ntp code:" + code);
-                            System.out.println("\n鏃堕棿 ntp :" + DateTime.now());
-                            System.out.println("\nViplexCore ntp data:" + data);
-                            if (code == 0 && data.contains("\"status\":1")) {
-                                System.out.println("results: " + data.contains("\"status\":1"));
-                                newNova.setStatus(true);
-                            }
-                            countDownLatch.countDown();
-                        }
-                    });
-
-                }
-            }).start();
-            try {
-                countDownLatch.await(30000, TimeUnit.MILLISECONDS);
-            } catch (InterruptedException e) {
-                throw new RuntimeException(e);
+            StatusVO login = login(newNova.getSn(), 0);
+            if (login.getStatusCode() != 0) {
+                countDownLatch.countDown();
+                return;
             }
-        });
+            String ntpStr = "{\n" +
+                    "  \"sn\":\"" + newNova.getSn() + "\",\n" +
+                    "  \"TimingInfo\":{\n" +
+                    "    \"source\":{\n" +
+                    "      \"type\":1,\n" +
+                    "      \"platform\":1\n" +
+                    "    },\n" +
+                    "    \"taskArray\":[\n" +
+                    "      {\n" +
+                    "        \"type\":\"NTP_CONFIG\",\n" +
+                    "        \"action\":4,\n" +
+                    "        \"data\":{\n" +
+                    "          \"enable\":" + param.isNtp() + ",\n" +
+                    "          \"server\":\"ntp1.aliyun.com\"\n" +
+                    "        }\n" +
+                    "      }\n" +
+                    "    ]\n" +
+                    "  }\n" +
+                    "}";
+            System.out.println("ntpStr" + ntpStr);
 
+            //鎺ㄩ�佺粨鏋�
+            instance.nvSetNetTimingInfoAsync(ntpStr, new ViplexCore.CallBack() {
+                @Override
+                public void dataCallBack(int code, String data) {
+
+                    System.out.println("\nViplexCore ntp code:" + code);
+                    System.out.println("\n鏃堕棿 ntp :" + DateTime.now());
+                    System.out.println("\nViplexCore ntp data:" + data);
+                    if (code == 0 && data.contains("\"status\":1")) {
+                        System.out.println("results: " + data.contains("\"status\":1"));
+                        newNova.setStatus(true);
+                    }
+                    countDownLatch.countDown();
+                }
+            });
+        });
+        try {
+            countDownLatch.await(20000, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
         return param.getNovaList();
     }
 
@@ -947,52 +912,210 @@
         System.out.println("ViplexCore Demo nvDownLoadScreenshotAsync(鎴睆) begin... ");
         NovaFileConfig config = SpringContextHolder.getBean(NovaFileConfig.class);
         String shotPath = config.getScreenShotPath();
+        CountDownLatch countDownLatch = new CountDownLatch(param.getScreenShotList().size());
         param.getScreenShotList().forEach(newNova -> {
-            CountDownLatch countDownLatch = new CountDownLatch(1);
-            new Thread(new Runnable() {
 
-                @Override
-                public void run() {
-                    login(newNova.getSn(), 0);
-                    String pictureName = newNova.getSn() + ".png";
-                    String str = "{\n" +
-                            "  \"sn\":\"" + newNova.getSn() + "\",\n" +
-                            "  \"width\":400,\n" +
-                            "  \"height\":400,\n" +
-                            "  \"downLoadDirectoryPath\":\"" + shotPath.replace(File.separator, "/") + "\",\n" +
-                            "  \"pictureName\":\"" + pictureName + "\",\n" +
-                            "  \"pictureType\":0\n" +
-                            "}";
-                    System.out.println("str" + str);
-                    //鎺ㄩ�佺粨鏋�
-                    instance.nvDownLoadScreenshotAsync(str, new ViplexCore.CallBack() {
-                        @Override
-                        public void dataCallBack(int code, String data) {
-
-                            System.out.println("\nViplexCore 鎴睆 code:" + code);
-                            System.out.println("\nViplexCore 鎴睆 data:" + data);
-                            newNova.setCode(code);
-                            if (code == 0) {
-                                String img = config.getScreenShotPath() + pictureName;
-                                newNova.setScreenShot(config.getFileUrl() + img.replace(config.getUploadRootPath(), "").replace(File.separator, "/"));
-                            } else {
-                                newNova.setScreenShot(data);
-                            }
-                            countDownLatch.countDown();
-                        }
-                    });
-
-                }
-            }).start();
-            try {
-                countDownLatch.await(30000, TimeUnit.MILLISECONDS);
-            } catch (InterruptedException e) {
-                throw new RuntimeException(e);
+            StatusVO login = login(newNova.getSn(), 0);
+            if (login.getStatusCode() != 0) {
+                countDownLatch.countDown();
+                return;
             }
+            String pictureName = newNova.getSn() + ".png";
+            String str = "{\n" +
+                    "  \"sn\":\"" + newNova.getSn() + "\",\n" +
+                    "  \"width\":400,\n" +
+                    "  \"height\":400,\n" +
+                    "  \"downLoadDirectoryPath\":\"" + shotPath.replace(File.separator, "/") + "\",\n" +
+                    "  \"pictureName\":\"" + pictureName + "\",\n" +
+                    "  \"pictureType\":0\n" +
+                    "}";
+            System.out.println("str" + str);
+            //鎺ㄩ�佺粨鏋�
+            instance.nvDownLoadScreenshotAsync(str, new ViplexCore.CallBack() {
+                @Override
+                public void dataCallBack(int code, String data) {
+
+                    System.out.println("\nViplexCore 鎴睆 code:" + code);
+                    System.out.println("\nViplexCore 鎴睆 data:" + data);
+                    newNova.setCode(code);
+                    if (code == 0) {
+                        String img = config.getScreenShotPath() + pictureName;
+                        newNova.setScreenShot(config.getFileUrl() + img.replace(config.getUploadRootPath(), "").replace(File.separator, "/"));
+                    } else {
+                        newNova.setScreenShot(data);
+                    }
+                    countDownLatch.countDown();
+                }
+            });
+
         });
+        try {
+            countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
 
         return param.getScreenShotList();
     }
 
 
+    /**
+     * 鑾峰彇灞忓箷灏哄
+     */
+    public List<NewNovaLed> getDisplayInfoAsync(List<NewNovaLed> newNovaLsit) {
+
+        System.out.println("ViplexCore Demo nvGetDisplayInfoAsync(鑾峰彇鍒嗚鲸鐜�) begin... ");
+//PlayerInfoVO
+        CountDownLatch countDownLatch = new CountDownLatch(newNovaLsit.size());
+        newNovaLsit.forEach(newNova -> {
+            StatusVO login = login(newNova.getSn(), 0);
+            if (login.getStatusCode() != 0) {
+                countDownLatch.countDown();
+                return;
+            }
+            //鎺ㄩ�佺粨鏋�
+            instance.nvGetDisplayInfoAsync("{\n" +
+                    "  \"sn\":\"" + newNova.getSn() + "\"\n" +
+                    "}", new ViplexCore.CallBack() {
+                @Override
+                public void dataCallBack(int code, String data) {
+
+                    System.out.println("\nViplexCore 鑾峰彇鍒嗚鲸鐜� code:" + code);
+                    System.out.println("\nViplexCore 鑾峰彇鍒嗚鲸鐜� data:" + data);
+                    if (code == 0) {
+                        PlayerInfoVO playerInfoVO = JSON.parseObject(data, PlayerInfoVO.class);
+                        PlayerInfoVO.TaskArrayDTO.DataDTO dataDTO = playerInfoVO.getTaskArray().get(0).getData();
+                        newNova.setWidth(dataDTO.getWidth());
+                        newNova.setHeight(dataDTO.getHeight());
+                        newNova.setRotation(dataDTO.getRotation());
+                    }
+                    countDownLatch.countDown();
+                }
+            });
+
+        });
+        try {
+            countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
+        return newNovaLsit;
+
+    }
+
+
+    /**
+     * 鑾峰彇瑙嗛婧�
+     */
+    public List<NewNovaLed> getVideoInfoAsync(List<NewNovaLed> newNovaLsit) {
+
+        System.out.println("ViplexCore Demo nvGetVideoControlInfoAsync(鑾峰彇瑙嗛婧�) begin... ");
+
+        CountDownLatch countDownLatch = new CountDownLatch(newNovaLsit.size());
+        newNovaLsit.forEach(newNova -> {
+            StatusVO login = login(newNova.getSn(), 0);
+            if (login.getStatusCode() != 0) {
+                countDownLatch.countDown();
+                return;
+            }
+            //鎺ㄩ�佺粨鏋�
+            instance.nvGetVideoControlInfoAsync("{\n" +
+                    "  \"sn\":\"" + newNova.getSn() + "\"\n" +
+                    "}", new ViplexCore.CallBack() {
+                @Override
+                public void dataCallBack(int code, String data) {
+
+                    System.out.println("\nViplexCore 鑾峰彇瑙嗛婧� code:" + code);
+                    System.out.println("\nViplexCore 鑾峰彇瑙嗛婧� data:" + data);
+                    if (code == 0) {
+                        VideoInfoVO videoInfoVO = JSON.parseObject(data, VideoInfoVO.class);
+                        newNova.setVideoControlInfo(videoInfoVO.getVideoSource());
+                    }
+                    countDownLatch.countDown();
+                }
+            });
+
+        });
+        try {
+            countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
+        return newNovaLsit;
+    }
+
+    /**
+     * 鑾峰彇鏃跺尯
+     */
+    public List<NewNovaLed> getTimezone(List<NewNovaLed> newNovaLsit) {
+
+        System.out.println("ViplexCore Demo nvGetCurrentTimeAndZoneAsync(鑾峰彇鏃跺尯) begin... ");
+
+        CountDownLatch countDownLatch = new CountDownLatch(newNovaLsit.size());
+        newNovaLsit.forEach(newNova -> {
+            StatusVO login = login(newNova.getSn(), 0);
+            if (login.getStatusCode() != 0) {
+                countDownLatch.countDown();
+                return;
+            }
+            //鎺ㄩ�佺粨鏋�
+            instance.nvGetCurrentTimeAndZoneAsync("{\n" +
+                    "  \"sn\":\"" + newNova.getSn() + "\"\n" +
+                    "}", new ViplexCore.CallBack() {
+                @Override
+                public void dataCallBack(int code, String data) {
+
+                    System.out.println("\nViplexCore 鑾峰彇鏃跺尯 code:" + code);
+                    System.out.println("\nViplexCore 鑾峰彇鏃跺尯 data:" + data);
+                    if (code == 0) {
+                        Map map = JSON.parseObject(data, Map.class);
+                        newNova.setTimeZone(map.get("timeZone").toString());
+                        newNova.setCurrentTime(map.get("currentTime").toString());
+                    }
+                    countDownLatch.countDown();
+                }
+            });
+
+        });
+        try {
+            countDownLatch.await(30000, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
+        return newNovaLsit;
+    }
+
+
+    /**
+     * 閫�鍑虹櫥褰�
+     */
+    public StatusVO logout(String sn, Integer type) {
+
+        System.out.println("ViplexCore Demo nvLogoutAsync(閫�鍑虹櫥褰�) begin... ");
+        CountDownLatch countDownLatch = new CountDownLatch(1);
+
+        StatusVO logout = new StatusVO();
+        //鎺ㄩ�佺粨鏋�
+        instance.nvLogoutAsync("{\n" +
+                "  \"sn\":\"" + sn + "\",\n" +
+                "  \"loginType\":" + type + "\n" +
+                "}", new ViplexCore.CallBack() {
+            @Override
+            public void dataCallBack(int code, String data) {
+
+                System.out.println("\nViplexCore 閫�鍑虹櫥褰� code:" + code);
+                System.out.println("\nViplexCore 閫�鍑虹櫥褰� data:" + data);
+                logout.setStatusCode(code);
+                logout.setStatusData(data);
+                countDownLatch.countDown();
+            }
+        });
+
+        try {
+            countDownLatch.await(10000, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
+        return logout;
+    }
 }

--
Gitblit v1.9.3