From bff2fbdfda25eb57dab169f28d48f1621beb981b Mon Sep 17 00:00:00 2001
From: 张晓波 <bingbo1993@126.com>
Date: 星期五, 13 十月 2023 08:49:49 +0800
Subject: [PATCH] 删除大屏 mq
---
hd/pipe/StaffManage/src/main/java/com/thhy/staff/utils/MqUtils.java | 52 +++++++++++++
hd/pipe/StaffManage/pom.xml | 6 +
hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/entity/UserFaceVo.java | 25 ++++++
hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/service/impl/FaceServerImpl.java | 71 +++++++++++++++++
hd/pipe/StaffManage/src/main/resources/mapping/PlatUserMapper.xml | 25 ++++++
hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/controller/FaceController.java | 28 +++++++
hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/entity/FaceResult.java | 6 +
hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/service/FaceServer.java | 7 +
hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/platuser/mapper/PlatUserMapper.java | 9 ++
9 files changed, 229 insertions(+), 0 deletions(-)
diff --git a/hd/pipe/StaffManage/pom.xml b/hd/pipe/StaffManage/pom.xml
index 82f5be1..8eb8a9a 100644
--- a/hd/pipe/StaffManage/pom.xml
+++ b/hd/pipe/StaffManage/pom.xml
@@ -82,6 +82,12 @@
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
</dependency>
+
+ <dependency>
+ <groupId>org.eclipse.paho</groupId>
+ <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
+ <version>1.2.2</version>
+ </dependency>
</dependencies>
<repositories>
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 c37c313..fe93497 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
@@ -1,7 +1,9 @@
package com.thhy.staff.modules.biz.face.controller;
+import com.alibaba.fastjson.JSONObject;
import com.thhy.general.common.BasicResult;
import com.thhy.staff.modules.biz.face.entity.FaceResult;
+import com.thhy.staff.modules.biz.face.service.FaceDeviceService;
import com.thhy.staff.modules.biz.face.service.FaceServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
@@ -15,9 +17,35 @@
@Autowired
private FaceServer faceServer;
+ @Autowired
+ private FaceDeviceService deviceService;
+
@RequestMapping("/device/login")
public FaceResult login(@RequestBody String mess){
FaceResult faceResult = faceServer.login(mess);
return faceResult;
}
+
+
+ @RequestMapping("/syncPerson")
+ public JSONObject syncPerson(@RequestBody String mess){
+ JSONObject jsonObject = faceServer.syncPerson(mess);
+ return jsonObject;
+ }
+
+ @RequestMapping("/syncPersonSingle")
+ public JSONObject syncPersonSingle(@RequestBody String mess){
+ JSONObject jsonObject = faceServer.syncPersonSingle(mess);
+ return jsonObject;
+ }
+
+ @RequestMapping("/sp/notify")
+ public JSONObject personNotify(@RequestBody String mess){
+ faceServer.personNotify(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/entity/FaceResult.java b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/entity/FaceResult.java
index 7c1f1e2..480f63d 100644
--- a/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/entity/FaceResult.java
+++ b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/entity/FaceResult.java
@@ -39,4 +39,10 @@
this.mqinfo.put("willContent",faceDevice.getDevSno()+"-offline");
this.token = UUIDUtils.create();
}
+
+ public FaceResult(boolean success){
+ this.success = success;
+ this.code = 0;
+ this.msg = "OK";
+ }
}
diff --git a/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/entity/UserFaceVo.java b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/entity/UserFaceVo.java
new file mode 100644
index 0000000..f16b14b
--- /dev/null
+++ b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/modules/biz/face/entity/UserFaceVo.java
@@ -0,0 +1,25 @@
+package com.thhy.staff.modules.biz.face.entity;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class UserFaceVo implements Serializable {
+
+ @JSONField(name = "person_id")
+ private String userId;
+
+ @JSONField(name = "person_name")
+ private String realName;
+
+ @JSONField(name = "person_type")
+ private String personType = "4";
+
+ private int sex;
+
+ private String templateImgUrl;
+}
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 0bb4b41..78a0f91 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
@@ -1,8 +1,15 @@
package com.thhy.staff.modules.biz.face.service;
+import com.alibaba.fastjson.JSONObject;
import com.thhy.staff.modules.biz.face.entity.FaceResult;
public interface FaceServer {
FaceResult login(String mess);
+
+ JSONObject syncPerson(String mess);
+
+ JSONObject syncPersonSingle(String mess);
+
+ void personNotify(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 2a02292..98cf8ac 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
@@ -1,24 +1,34 @@
package com.thhy.staff.modules.biz.face.service.impl;
import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
+import com.alibaba.nacos.api.utils.StringUtils;
import com.thhy.general.utils.DeepCopyUtils;
import com.thhy.staff.config.EmqxConfig;
import com.thhy.staff.config.EmqxProperties;
import com.thhy.staff.modules.biz.face.entity.FaceDevice;
import com.thhy.staff.modules.biz.face.entity.FaceResult;
+import com.thhy.staff.modules.biz.face.entity.UserFaceVo;
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.mapper.PlatUserMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
@Service
public class FaceServerImpl implements FaceServer {
@Autowired
private FaceDeviceMapper faceDeviceMapper;
+
+ @Autowired
+ private PlatUserMapper userMapper;
@Autowired
private EmqxConfig emqxConfig;
@@ -40,4 +50,65 @@
FaceResult faceResult = new FaceResult(true,faceDevice,emqxConfig.toString());
return faceResult;
}
+
+ @Override
+ public JSONObject syncPerson(String mess) {
+ JSONObject reqJson = JSONObject.parseObject(mess);
+ JSONObject paramJson = reqJson.getJSONObject("path_params");
+
+ List<UserFaceVo> faceVoList = userMapper.queryUserFace(paramJson.getIntValue("offset"),paramJson.getIntValue("limit"));
+
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("code",0);
+ jsonObject.put("msg","OK");
+ jsonObject.put("success",true);
+ jsonObject.put("offset",paramJson.getIntValue("offset")+paramJson.getIntValue("limit"));
+ jsonObject.put("person_list",faceVoList);
+ return jsonObject;
+ }
+
+ @Override
+ public JSONObject syncPersonSingle(String mess) {
+ JSONObject reqJson = JSONObject.parseObject(mess);
+ JSONObject paramJson = reqJson.getJSONObject("path_params");
+ JSONArray userIdArray = paramJson.getJSONArray("person_list");
+ String userId = userIdArray.getString(0);
+
+ UserFaceVo userFaceVo = userMapper.queryUserFaceSingle(userId);
+
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("code",0);
+ jsonObject.put("msg","OK");
+ jsonObject.put("success",true);
+ jsonObject.put("offset",0);
+ List<UserFaceVo> faceVoList = new ArrayList<>();
+ faceVoList.add(userFaceVo);
+ jsonObject.put("person_list",faceVoList);
+ return jsonObject;
+ }
+
+ @Override
+ public void personNotify(String mess) {
+ JSONObject reqJson = JSONObject.parseObject(mess);
+ if(reqJson.containsKey("success")&&reqJson.getBooleanValue("success")){
+ String userIds = reqJson.getString("successful");
+ if(!StringUtils.isEmpty(userIds)){
+ String[] userIdArray = new String[]{userIds};
+ if(userIds.contains(",")){
+ userIdArray = userIds.split(",");
+ }
+ userMapper.syncResult(1,userIdArray);
+ }
+ JSONArray failJsonArray = reqJson.getJSONArray("failed");
+ if(failJsonArray.size()>0){
+ for(Object obj : failJsonArray){
+ JSONObject failUserInfo = JSON.parseObject(obj.toString());
+ String userId = failUserInfo.getString("person_id");
+ JSONArray failInfoArray = failUserInfo.getJSONArray("info");
+ String failReason = failInfoArray.getJSONObject(0).getString("reason");
+ userMapper.syncFail(userId,failReason);
+ }
+ }
+ }
+ }
}
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 63d930f..1111e32 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
@@ -2,6 +2,7 @@
import com.thhy.general.config.SysUserInfo;
import com.thhy.staff.modules.biz.depart.entity.OtherUser;
+import com.thhy.staff.modules.biz.face.entity.UserFaceVo;
import com.thhy.staff.modules.biz.group.entity.GroupUser;
import com.thhy.staff.modules.biz.platuser.entity.*;
import org.apache.ibatis.annotations.Param;
@@ -104,4 +105,12 @@
int countFaceRecordByGroup(String groupId);
PlatUserFace queryFaceUserByJobNum(String jobNum);
+
+ List<UserFaceVo> queryUserFace(@Param("offset") int offset,@Param("limit") int limit);
+
+ UserFaceVo queryUserFaceSingle(String userId);
+
+ void syncResult(@Param("syncSuccess") int syncSuccess,@Param("userIdArray")String[] userIdArray);
+
+ void syncFail(@Param("user_id") String userId,@Param("syncFailReason")String syncFailReason);
}
diff --git a/hd/pipe/StaffManage/src/main/java/com/thhy/staff/utils/MqUtils.java b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/utils/MqUtils.java
new file mode 100644
index 0000000..31f6ae0
--- /dev/null
+++ b/hd/pipe/StaffManage/src/main/java/com/thhy/staff/utils/MqUtils.java
@@ -0,0 +1,52 @@
+package com.thhy.staff.utils;
+
+import com.thhy.general.utils.UUIDUtils;
+import com.thhy.staff.config.EmqxConfig;
+import org.eclipse.paho.client.mqttv3.MqttClient;
+import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
+import org.eclipse.paho.client.mqttv3.MqttException;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
+
+public class MqUtils {
+
+ public static void createClient(EmqxConfig emqxConfig){
+ String broker = "tcp://"+emqxConfig.getHost()+":"+emqxConfig.getPort();
+ String clientId = UUIDUtils.create();
+ MemoryPersistence persistence = new MemoryPersistence();
+
+ try {
+ MqttClient client = new MqttClient(broker, clientId, persistence);
+
+ // MQTT 连接选项
+ MqttConnectOptions connOpts = new MqttConnectOptions();
+ connOpts.setUserName(emqxConfig.getUsername());
+ connOpts.setPassword(emqxConfig.getPassword().toCharArray());
+ // 保留会话
+ connOpts.setCleanSession(true);
+
+ // 设置回调
+ //client.setCallback(new OnMessageCallback());
+
+ // 建立连接
+ System.out.println("Connecting to broker: " + broker);
+ client.connect(connOpts);
+
+ System.out.println("Connected");
+ //System.out.println("Publishing message: " + content);
+
+ // 订阅
+ //client.subscribe(subTopic);
+
+ // 消息发布所需参数
+ /* MqttMessage message = new MqttMessage(content.getBytes());
+ message.setQos(qos);
+ client.publish(pubTopic, message);
+ System.out.println("Message published");*/
+
+ client.disconnect();
+ } catch (MqttException e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/hd/pipe/StaffManage/src/main/resources/mapping/PlatUserMapper.xml b/hd/pipe/StaffManage/src/main/resources/mapping/PlatUserMapper.xml
index 8ff8540..bca8d0f 100644
--- a/hd/pipe/StaffManage/src/main/resources/mapping/PlatUserMapper.xml
+++ b/hd/pipe/StaffManage/src/main/resources/mapping/PlatUserMapper.xml
@@ -888,4 +888,29 @@
where spu.job_num = #{jobNum}
</select>
+ <select id="queryUserFace" resultType="com.thhy.staff.modules.biz.face.entity.UserFaceVo">
+ select user_id as userId,real_name as realName,sex,photo as templateImgUrl
+ from sys_plat_user spu
+ limit #{offset},#{limit}
+ </select>
+
+ <select id="queryUserFaceSingle" resultType="com.thhy.staff.modules.biz.face.entity.UserFaceVo">
+ select user_id as userId,real_name as realName,sex,photo as templateImgUrl
+ from sys_plat_user spu
+ where user_id = #{userId}
+ </select>
+
+ <update id="syncResult">
+ update sys_plat_user set sync_success = #{syncSuccess}
+ <where>
+ <foreach item="item" index="index" collection="userIdArray" open="user_id in (" separator="," close=")">
+ #{item}
+ </foreach>
+ </where>
+ </update>
+
+ <update id="syncFail">
+ update sys_plat_user set sync_success = 2,sync_fail_reason = #{syncFailReason} where user_id = #{userId}
+ </update>
+
</mapper>
--
Gitblit v1.9.3