From 1b3a14a25d8f5013158ef2842e9be0e24240f2b5 Mon Sep 17 00:00:00 2001
From: 张晓波 <bingbo1993@126.com>
Date: 星期一, 30 十月 2023 08:52:26 +0800
Subject: [PATCH] 人脸 缓存同步菜单

---
 hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/service/impl/FaceServerImpl.java         |   18 +++
 hd/pipe/UserCore/src/main/resources/mapping/SysMenusMapper.xml                                             |   79 +++++++++++++++
 hd/pipe/StaffManage/src/main/resources/mapping/PlatUserMapper.xml                                          |   36 +++++++
 hd/pipe/StaffManage/src/main/java/com/thhy/staff/config/StartListener.java                                 |   25 +++++
 hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/service/impl/SysMenusServiceImpl.java |   16 +++
 hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/controller/FaceController.java           |   10 ++
 hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/controller/GetUserTask.java              |   45 +++++++++
 hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/service/FaceServer.java                  |    2 
 hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/platuser/entity/PlatUser.java                 |    2 
 hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/controller/SysMenusController.java    |   23 ++++
 hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/mapper/SysMenusMapper.java            |    2 
 hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/service/ISysMenusService.java         |    3 
 hd/pipe/common/src/main/java/com/thhy/general/config/InsertAop.java                                        |    5 
 hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/platuser/mapper/PlatUserMapper.java           |    4 
 14 files changed, 267 insertions(+), 3 deletions(-)

diff --git a/hd/pipe/StaffManage/src/main/java/com/thhy/staff/config/StartListener.java b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/config/StartListener.java
new file mode 100644
index 0000000..ea8eeab
--- /dev/null
+++ b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/config/StartListener.java
@@ -0,0 +1,25 @@
+package com.thhy.staff.config;
+
+import com.thhy.staff.modules.biz.face.controller.GetUserTask;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Timer;
+
+@Configuration
+public class StartListener implements ApplicationRunner {
+
+
+    @Value("${file.vfprefix}")
+    private String vfPrefix;
+
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        GetUserTask gutask = new GetUserTask(vfPrefix);
+        Timer timer = new Timer();
+        timer.schedule(gutask,1000,300000);
+    }
+}
diff --git a/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/controller/FaceController.java b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/controller/FaceController.java
index 2e948f2..e8aad12 100644
--- a/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/controller/FaceController.java
+++ b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/controller/FaceController.java
@@ -112,5 +112,15 @@
         }
     }
 
+    @RequestMapping("/allPerson")
+    public JSONObject allPerson(@RequestBody String mess){
+        faceServer.allPerson(mess);
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("code",0);
+        jsonObject.put("msg","OK");
+        jsonObject.put("success",true);
+        return jsonObject;
+    }
+
 
 }
diff --git a/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/controller/GetUserTask.java b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/controller/GetUserTask.java
new file mode 100644
index 0000000..7dc7260
--- /dev/null
+++ b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/controller/GetUserTask.java
@@ -0,0 +1,45 @@
+package com.thhy.staff.modules.biz.face.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.thhy.general.utils.SpringContextUtils;
+import com.thhy.staff.config.EmqxConfig;
+import com.thhy.staff.modules.biz.face.mapper.FaceDeviceMapper;
+import com.thhy.staff.utils.MqUtils;
+import java.util.List;
+import java.util.TimerTask;
+
+public class GetUserTask extends TimerTask {
+
+    private String prefix;
+
+    private FaceDeviceMapper faceDeviceMapper;
+
+    public FaceDeviceMapper getFaceDeviceMapper() {
+        return SpringContextUtils.getBean(FaceDeviceMapper.class);
+    }
+
+    private EmqxConfig emqxConfig;
+
+    public EmqxConfig getEmqxConfig() {
+        return SpringContextUtils.getBean(EmqxConfig.class);
+    }
+
+    public GetUserTask(String urlPrefix) {
+        this.prefix = urlPrefix;
+    }
+
+    @Override
+    public void run() {
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("method","get_person_all");
+
+        JSONObject dataJson = new JSONObject();
+        dataJson.put("path",prefix+"allPerson");
+        jsonObject.put("data",dataJson);
+        jsonObject.put("params",new JSONObject());
+        EmqxConfig emqxConfig = getEmqxConfig();
+        FaceDeviceMapper faceDeviceMapper = getFaceDeviceMapper();
+        List<String> sns = faceDeviceMapper.queryDevSn();
+        MqUtils.createClient(emqxConfig,sns,jsonObject.toJSONString());
+    }
+}
diff --git a/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/service/FaceServer.java b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/service/FaceServer.java
index 0c57764..31cdbbd 100644
--- a/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/service/FaceServer.java
+++ b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/service/FaceServer.java
@@ -20,4 +20,6 @@
     void removeNotify(String mess);
 
     String queryOriStrById(String id);
+
+    void allPerson(String mess);
 }
diff --git a/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/service/impl/FaceServerImpl.java b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/service/impl/FaceServerImpl.java
index 707b5d1..a5ef6e8 100644
--- a/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/service/impl/FaceServerImpl.java
+++ b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/service/impl/FaceServerImpl.java
@@ -12,6 +12,7 @@
 import com.thhy.staff.modules.biz.face.mapper.FaceDeviceMapper;
 import com.thhy.staff.modules.biz.face.service.FaceServer;
 import com.thhy.staff.modules.biz.platuser.entity.DoorLis;
+import com.thhy.staff.modules.biz.platuser.entity.PlatUser;
 import com.thhy.staff.modules.biz.platuser.mapper.PlatUserMapper;
 import com.thhy.staff.utils.MqUtils;
 import org.checkerframework.checker.units.qual.A;
@@ -172,6 +173,23 @@
         return userMapper.queryOriStrById(id);
     }
 
+    @Override
+    public void allPerson(String mess) {
+        JSONObject jsonObject = JSONObject.parseObject(mess);
+        JSONArray jsonArray = jsonObject.getJSONArray("person_list");
+        for(Object obj : jsonArray){
+            JSONObject personJson = JSON.parseObject(obj.toString());
+            String faceId = personJson.getString("person_id");
+            int count = userMapper.countByFaceId(faceId);
+            if(count>0)continue;
+            PlatUser platUser = new PlatUser();
+            platUser.setFaceId(faceId);
+            platUser.setIdNo(personJson.getString("id_card"));
+            platUser.setRealName(personJson.getString("name"));
+            userMapper.insertSamplePlatUser(platUser);
+        }
+    }
+
     public static void main(String[] args) {
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("method","delete_person");
diff --git a/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/platuser/entity/PlatUser.java b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/platuser/entity/PlatUser.java
index 42f9162..9cc2101 100644
--- a/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/platuser/entity/PlatUser.java
+++ b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/platuser/entity/PlatUser.java
@@ -144,4 +144,6 @@
     private Integer isLogin;
 
     private String phone;
+
+    private String faceId;
 }
diff --git a/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/platuser/mapper/PlatUserMapper.java b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/platuser/mapper/PlatUserMapper.java
index b988c39..c9398a4 100644
--- a/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/platuser/mapper/PlatUserMapper.java
+++ b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/platuser/mapper/PlatUserMapper.java
@@ -115,4 +115,8 @@
     void syncFail(@Param("userId") String userId,@Param("syncFailReason")String syncFailReason);
 
     String queryOriStrById(String id);
+
+    int countByFaceId(String faceId);
+
+    void insertSamplePlatUser(PlatUser platUser);
 }
diff --git a/hd/pipe/StaffManage/src/main/resources/mapping/PlatUserMapper.xml b/hd/pipe/StaffManage/src/main/resources/mapping/PlatUserMapper.xml
index 4591523..70a6c79 100644
--- a/hd/pipe/StaffManage/src/main/resources/mapping/PlatUserMapper.xml
+++ b/hd/pipe/StaffManage/src/main/resources/mapping/PlatUserMapper.xml
@@ -930,4 +930,40 @@
         update sys_plat_user set sync_success = 2,sync_fail_reason = #{syncFailReason} where user_id = #{userId}
     </update>
 
+    <select id="countByFaceId" resultType="int">
+        select count(user_id) from sys_plat_user where face_id = #{faceId}
+    </select>
+
+    <insert id="insertSamplePlatUser">
+        insert into sys_plat_user
+        <trim prefix="(" suffixOverrides="," suffix=")">
+            <if test="userId != null and userId != ''">
+                user_id,
+            </if>
+            <if test="realName != null and realName != ''">
+                real_name,
+            </if>
+            <if test="faceId != null and faceId != ''">
+                face_id,
+            </if>
+            <if test="idNo != null and idNo != ''">
+                id_no,
+            </if>
+        </trim>
+        <trim prefix="values (" suffixOverrides="," suffix=")">
+            <if test="userId != null and userId != ''">
+                #{userId},
+            </if>
+            <if test="realName != null and realName != ''">
+                #{realName},
+            </if>
+            <if test="faceId != null and faceId != ''">
+                #{faceId},
+            </if>
+            <if test="idNo != null and idNo != ''">
+                #{idNo},
+            </if>
+        </trim>
+    </insert>
+
 </mapper>
diff --git a/hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/controller/SysMenusController.java b/hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/controller/SysMenusController.java
index 88a954d..a306cfd 100644
--- a/hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/controller/SysMenusController.java
+++ b/hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/controller/SysMenusController.java
@@ -1,6 +1,9 @@
 package com.thhy.usercore.modules.sys.sysmenu.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.parser.JSONToken;
 import com.github.pagehelper.PageInfo;
 import com.thhy.general.utils.PagingUtils;
 import com.thhy.general.common.BasicResult;
@@ -17,7 +20,7 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
-import java.io.Serializable;
+import java.io.*;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -74,6 +77,24 @@
         return BasicResult.success(sysMenusList);
     }
 
+    @RequestMapping("syncMenu")
+    public BasicResult syncMenu(){
+        String value = "";
+        try {
+            InputStream ins = new FileInputStream(new File("D:\\dd.txt"));
+            byte[] bytes = new byte[ins.available()];
+            ins.read(bytes);
+            value = new String(bytes,"UTF-8");
+
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+
+        List<MenuTreeVo> sysMenusList = JSONArray.parseArray(value,MenuTreeVo.class);
+        sysMenusService.syncMenu(sysMenusList);
+        return BasicResult.success(sysMenusList);
+    }
+
     @RequestMapping("allRoleMenu")
     public BasicResult allRoleMenu(@RequestBody MenuDto menuDto){
         menuDto.setParentId("0");
diff --git a/hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/mapper/SysMenusMapper.java b/hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/mapper/SysMenusMapper.java
index a68cd06..9fa353d 100644
--- a/hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/mapper/SysMenusMapper.java
+++ b/hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/mapper/SysMenusMapper.java
@@ -28,6 +28,8 @@
 
     void insert(SysMenus sysmenus);
 
+    void insertVo(MenuTreeVo menuTreeVo);
+
     void update(SysMenus sysmenus);
 
     int deletelogic(Serializable menuId);
diff --git a/hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/service/ISysMenusService.java b/hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/service/ISysMenusService.java
index 2ea58dc..bc74ef3 100644
--- a/hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/service/ISysMenusService.java
+++ b/hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/service/ISysMenusService.java
@@ -1,5 +1,6 @@
 package com.thhy.usercore.modules.sys.sysmenu.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.thhy.usercore.modules.sys.sysmenu.entity.*;
 import com.thhy.usercore.modules.sys.sysmenubutton.entity.MenuButtonVo;
 
@@ -34,6 +35,8 @@
 
     List<MenuTreeVo> findAllTree(MenuDto menuDto);
 
+    void syncMenu(List<MenuTreeVo> sysMenusList);
+
     List<MenuButtonTreeVo> allRoleMenu(MenuDto menuDto);
 
     List<MenuButtonVo> MenuEnableButtons(MenuButtonDto menuButtonDto);
diff --git a/hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/service/impl/SysMenusServiceImpl.java b/hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/service/impl/SysMenusServiceImpl.java
index 5aed559..bdbf448 100644
--- a/hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/service/impl/SysMenusServiceImpl.java
+++ b/hd/pipe/UserCore/src/main/java/com/thhy/usercore/modules/sys/sysmenu/service/impl/SysMenusServiceImpl.java
@@ -1,5 +1,8 @@
 package com.thhy.usercore.modules.sys.sysmenu.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.thhy.general.utils.UserInfoUtils;
 import com.thhy.general.common.BasicStatus;
 import com.thhy.general.exception.BasicException;
@@ -138,6 +141,19 @@
     }
 
     @Override
+    @Transactional
+    public void syncMenu(List<MenuTreeVo> sysMenusList) {
+        for(MenuTreeVo tree : sysMenusList){
+
+            sysMenusMapper.insertVo(tree);
+            if(tree.getChildrens().size()>0){
+
+                syncMenu(tree.getChildrens());
+            }
+        }
+    }
+
+    @Override
     public List<MenuButtonTreeVo> allRoleMenu(MenuDto menuDto) {
         List<MenuButtonTreeVo> sysMenusList = sysMenusMapper.menuRoleTree(menuDto);
         for(MenuButtonTreeVo mv : sysMenusList){
diff --git a/hd/pipe/UserCore/src/main/resources/mapping/SysMenusMapper.xml b/hd/pipe/UserCore/src/main/resources/mapping/SysMenusMapper.xml
index 6f8e3d6..51ae824 100644
--- a/hd/pipe/UserCore/src/main/resources/mapping/SysMenusMapper.xml
+++ b/hd/pipe/UserCore/src/main/resources/mapping/SysMenusMapper.xml
@@ -195,7 +195,86 @@
         </trim>
     </insert>
 
+    <insert id="insertVo">
+        insert into sys_menus
+        <trim prefix="(" suffix=")" suffixOverrides="," >
+            <if test="menuId != null">
+                menu_id,
+            </if>
+            <if test="isUse != null">
+                is_use,
+            </if>
+            <if test="path != null">
+                path,
+            </if>
+            <if test="name != null">
+                name,
+            </if>
+            <if test="hidden != null">
+                hidden,
+            </if>
+            <if test="redirect != null">
+                redirect,
+            </if>
+            <if test="parentId != null">
+                parent_id,
+            </if>
+            <if test="title != null">
+                title,
+            </if>
+            <if test="icon != null">
+                icon,
+            </if>
+            <if test="component != null">
+                component,
+            </if>
+            <if test="level != null">
+                level,
+            </if>
+            <if test="isDefault != null">
+                is_default,
+            </if>
+        </trim>
 
+        <trim prefix="values (" suffix=")" suffixOverrides="," >
+            <if test="menuId != null">
+                #{menuId},
+            </if>
+            <if test="isUse != null">
+                #{isUse},
+            </if>
+            <if test="path != null">
+                #{path},
+            </if>
+            <if test="name != null">
+                #{name},
+            </if>
+            <if test="hidden != null">
+                #{hidden},
+            </if>
+            <if test="redirect != null">
+                #{redirect},
+            </if>
+            <if test="parentId != null">
+                #{parentId},
+            </if>
+            <if test="title != null">
+                #{title},
+            </if>
+            <if test="icon != null">
+                #{icon},
+            </if>
+            <if test="component != null">
+                #{component},
+            </if>
+            <if test="level != null">
+                #{level},
+            </if>
+            <if test="isDefault != null">
+                #{isDefault},
+            </if>
+        </trim>
+    </insert>
     <!--更新操作-->
     <update id="update">
         update sys_menus
diff --git a/hd/pipe/common/src/main/java/com/thhy/general/config/InsertAop.java b/hd/pipe/common/src/main/java/com/thhy/general/config/InsertAop.java
index 4ee1449..c764fa9 100644
--- a/hd/pipe/common/src/main/java/com/thhy/general/config/InsertAop.java
+++ b/hd/pipe/common/src/main/java/com/thhy/general/config/InsertAop.java
@@ -26,7 +26,7 @@
 
     @Around("pointcut()")
     public Object invoke(ProceedingJoinPoint invocation) throws Throwable {
-        String methodName = invocation.getSignature().getName();
+        /*String methodName = invocation.getSignature().getName();
 
         if(methodName.contains("insert")||methodName.contains("Insert")){
             Object j = invocation.getArgs()[0];
@@ -65,7 +65,8 @@
             return invocation.proceed();
         }else{
             return invocation.proceed();
-        }
+        }*/
+        return invocation.proceed();
     }
 
 

--
Gitblit v1.9.3