Sfoglia il codice sorgente

Merge branch 'main' of http://43.137.10.199:81/hfln/hfln-portal-service

hxd 4 mesi fa
parent
commit
80d08ff81d

+ 2 - 2
portal-service-domain/src/main/java/com/hfln/portal/domain/customer/util/WxOfficeAccountClient.java

@@ -42,7 +42,7 @@ public class WxOfficeAccountClient {
 
     private static final Gson gson = new Gson();
 
-    public void sendMsg(String devId, String devName, String phoneNo, String fwhOpenId) {
+    public void sendMsg(String devId, String devName, String phoneNo, String fwhOpenId, String msg) {
         // 1. 获取 access_token
         String accessToken = getAccessToken();
         if (accessToken == null) {
@@ -74,7 +74,7 @@ public class WxOfficeAccountClient {
         data.put("time3", time3);
 
         Map<String, String> const2 = new HashMap<>();
-        const2.put("value", "设备运行异常,给用户发送推送");
+        const2.put("value", msg);
         data.put("const2", const2);
 
         log.info("mqttutil--sendmessage:{}", JSON.toJSONString(data));

+ 50 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mqtt/MqttSubHandle.java

@@ -186,7 +186,7 @@ public class MqttSubHandle {
                     log.info("mqttutil--当前useropenid=" + user.getOpenid() + ", fwhopenId=" + fwhOpenId);
                     log.info("发送微信公众号信息:devName=" + devName.toString() + ", phoneNo=" + user.getPhone() + "fwhOpenId=" + fwhOpenId);
                     // 发送微信公告号消息
-                    wxOfficeAccountClient.sendMsg(devId, devName.toString(), user.getPhone(), fwhOpenId);
+                    wxOfficeAccountClient.sendMsg(devId, devName.toString(), user.getPhone(), fwhOpenId, "设备检测到跌倒,请前往小程序查看详细信息");
                     log.info("发送微信公众号消息发完了");
                 }
 
@@ -195,6 +195,55 @@ public class MqttSubHandle {
 
     }
 
+    @MqttSubscribe(topic = "/das/alarm_event", qos = 2)
+    public void subDasAlarmEvent(String payload) {
+
+        JSONObject obj = JSONObject.parseObject(payload);
+        String clientId = obj.getString("dev_id");
+        log.info("mqttsub, topic:{}, clientId:{}", "/das/event", clientId);
+
+        List<DevInfo> devs = devInfoService.queryByClientId(clientId);
+        List<Long> userIds = new ArrayList<>();
+        StringBuffer devName = new StringBuffer("");
+        String devId = "";
+        // 设备拥有者openid
+        if (devs != null && devs.size() > 0) {
+            DevInfo dev = devs.get(0);
+            userIds.add(dev.getUserId());
+            devName.append(dev.getDevName());
+            devId = dev.getClientId();
+        }
+            // 被分享者openid
+//						List<ShareVO> shares = baseDAO.queryAllByCondition(ShareVO.class, " and dev_id ='"+dev_id+"' ", null);
+//						if(shares !=null && shares.size()>0) {
+//							for(int i=0;i<shares.size();i++) {
+//								ShareVO share =shares.get(i);
+//								openids.add(share.getShared());
+//							}
+//						}
+
+        if (userIds.size() > 0) {
+            // 拥有者和被分享者phone
+            List<UserInfo> userInfos = userService.listByIds(userIds);
+            for (int i = 0; i < userInfos.size(); i++) {
+                UserInfo user = userInfos.get(i);
+
+                // 发送微信公众号消息
+                List<WxRelation> wxRelations = wxRelationService.queryByUnionId(user.getUnionId());
+                String fwhOpenId = "";
+                if (wxRelations != null && !wxRelations.isEmpty()) {
+                    fwhOpenId = wxRelations.get(0).getFwhOpenId();
+                }
+                log.info("mqttutil--当前useropenid=" + user.getOpenid() + ", fwhopenId=" + fwhOpenId);
+                log.info("发送微信公众号信息:devName=" + devName.toString() + ", phoneNo=" + user.getPhone() + "fwhOpenId=" + fwhOpenId);
+                // 发送微信公告号消息
+                wxOfficeAccountClient.sendMsg(devId, devName.toString(), user.getPhone(), fwhOpenId, "设备检测到跌倒,请前往小程序查看详细信息");
+                log.info("发送微信公众号消息发完了");
+            }
+
+        }
+    }
+
     @MqttSubscribe(topic = "/das/realtime_pos")
     public void subDasRealtimePos(String payload) {