Переглянути джерело

Merge branch 'dev' of ssh://10.10.100.21/source/smartschool-platform into dev

FANGLH 6 роки тому
батько
коміт
5b68b56a15

+ 6 - 0
applications/device/device-sdk-dahua/src/main/java/com/usoftchina/smartschool/device/dahua/lib/DahuaSdk.java

@@ -39,6 +39,10 @@ public class DahuaSdk {
      */
     private int tryTimes = 1;
 
+    private fDisConnect disConnect;
+
+    private fHaveReConnect haveReConnect;
+
     /**
      * 拷贝DLL资源到临时目录,解决fat jar无法加载DLL问题
      *
@@ -95,6 +99,8 @@ public class DahuaSdk {
      * @return
      */
     public boolean init(fDisConnect disConnect, fHaveReConnect haveReConnect) {
+        this.disConnect = disConnect;
+        this.haveReConnect = haveReConnect;
         initialized = instance.CLIENT_Init(disConnect, new NativeLong());
         if (!initialized) {
             logger.error("SDK initialize failed");

+ 18 - 8
applications/device/device-sdk-dahua/src/main/java/com/usoftchina/smartschool/device/dahua/service/DahuaDataAnalyzeService.java

@@ -29,12 +29,12 @@ public class DahuaDataAnalyzeService {
     /**
      * 多个登录设备的监听句柄
      */
-    private Map<Long, NativeLong> analyzerHandles;
+    private Map<Long, AnalyzerData> analyzers;
     private final Logger logger = LoggerFactory.getLogger(DahuaDataAnalyzeService.class);
 
     public DahuaDataAnalyzeService(DahuaSdk sdk) {
         this.sdk = sdk;
-        this.analyzerHandles = new HashMap<>();
+        this.analyzers = new HashMap<>();
     }
 
     /**
@@ -45,11 +45,21 @@ public class DahuaDataAnalyzeService {
      */
     public void startListen(DeviceInfo device, NativeLong loginHandle) {
         long key = loginHandle.longValue();
-        if (key != 0 && !analyzerHandles.containsKey(key)) {
+        if (key != 0 && !analyzers.containsKey(key)) {
+            fAnalyzerDataCallBack callback = new AnalyzerDataCallBack(device);
             NativeLong lAnalyzerHandle = sdk.getInstance().CLIENT_RealLoadPictureEx(loginHandle, 0,
-                    DahuaEvents.EVENT_IVS_ALL, true, new AnalyzerDataCallBack(device),
-                    new NativeLong(), null);
-            analyzerHandles.put(key, lAnalyzerHandle);
+                    DahuaEvents.EVENT_IVS_ALL, true, callback, new NativeLong(), null);
+            analyzers.put(key, new AnalyzerData(lAnalyzerHandle, callback));
+        }
+    }
+
+    class AnalyzerData {
+        public NativeLong handle;
+        public fAnalyzerDataCallBack callback;
+
+        public AnalyzerData(NativeLong handle, fAnalyzerDataCallBack callback) {
+            this.handle = handle;
+            this.callback = callback;
         }
     }
 
@@ -104,8 +114,8 @@ public class DahuaDataAnalyzeService {
      */
     public void stopListen(NativeLong loginHandle) {
         long key = loginHandle.longValue();
-        if (key != 0 && analyzerHandles.containsKey(key)) {
-            boolean bRet = sdk.getInstance().CLIENT_StopLoadPic(analyzerHandles.get(key));
+        if (key != 0 && analyzers.containsKey(key)) {
+            boolean bRet = sdk.getInstance().CLIENT_StopLoadPic(analyzers.get(key).handle);
             if (!bRet) {
                 throw new DahuaSdkException(sdk.getLastError());
             }

+ 3 - 1
applications/school/school-server/src/main/resources/mapper/PortalMapper.xml

@@ -10,7 +10,9 @@
   </select>
 
   <select id="getParentsCount" resultType="int">
-    select count(*) from sys_parents where school_id = #{schoolId} and parents_status = 1
+    SELECT COUNT(*) FROM  (
+      SELECT DISTINCT PARENTSTU.PARENT_ID FROM SYS_PARENTS_STU PARENTSTU LEFT JOIN SYS_STUDENT STU ON PARENTSTU.STU_ID = STU.STU_ID
+      WHERE STU.SCHOOL_ID = #{schoolId} GROUP BY PARENT_ID) RESOURCE
   </select>
 
   <select id="getGradeCount" resultType="int">

+ 1 - 0
base-servers/gateway-server/src/main/resources/application.yml

@@ -144,3 +144,4 @@ auth:
     - /api/school/wxSchool/stuScore/getScoreByStu*
     - /api/school/wxSchool/taskNotify/taskDetail*
     - /api/school/wxSchool/outInRecord/inout/detail*
+    - /api/device/**