Просмотр исходного кода

小区ID 设置错误问题处理

wuxw лет назад: 6
Родитель
Сommit
c566219416

+ 17 - 8
Api/src/main/java/com/java110/api/listener/machineTranslate/MachineHeartbeatListener.java

@@ -2,6 +2,7 @@ package com.java110.api.listener.machineTranslate;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.aliyuncs.utils.StringUtils;
 import com.java110.api.listener.AbstractServiceApiListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
@@ -56,7 +57,7 @@ public class MachineHeartbeatListener extends AbstractServiceApiListener {
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "machineCode", "请求报文中未包含设备编码");
-        Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含小区信息");
+        //Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含小区信息");
         Assert.hasKeyAndValue(reqJson, "authCode", "请求报文中未包含设备鉴权码");
     }
 
@@ -71,31 +72,39 @@ public class MachineHeartbeatListener extends AbstractServiceApiListener {
         outParam.put("message", "success");
         JSONArray data = null;
         Map<String, String> reqHeader = context.getRequestHeaders();
+
         HttpHeaders headers = new HttpHeaders();
-        if (reqHeader != null && !reqHeader.isEmpty()) {
-            for (String key : reqHeader.keySet()) {
-                headers.add(key, reqHeader.get(key));
-            }
+        if (reqHeader == null || !reqHeader.containsKey("communityId") || StringUtils.isEmpty(reqHeader.get("communityId"))) {
+            outParam.put("code", -1);
+            outParam.put("message", "请求地址中未包含小区信息");
+            responseEntity = new ResponseEntity<>(outParam.toJSONString(), headers, HttpStatus.OK);
+            context.setResponseEntity(responseEntity);
+            return;
+        }
+        for (String key : reqHeader.keySet()) {
+            headers.add(key, reqHeader.get(key));
         }
 
+        String communityId = reqHeader.get("communityId");
+
         //检查设备是否合法
         MachineDto machineDto = new MachineDto();
         machineDto.setMachineCode(reqJson.getString("machineCode"));
-        machineDto.setCommunityId(reqJson.getString("communityId"));
+        machineDto.setCommunityId(communityId);
         int machineCount = machineInnerServiceSMOImpl.queryMachinesCount(machineDto);
         if (machineCount < 1) {
             outParam.put("code", -1);
             outParam.put("message", "该设备【" + reqJson.getString("machineCode") + "】未在该小区【" + reqJson.getString("communityId") + "】注册");
             responseEntity = new ResponseEntity<>(outParam.toJSONString(), headers, HttpStatus.OK);
             context.setResponseEntity(responseEntity);
-            return ;
+            return;
         }
 
 
         //查询删除的业主信息
         MachineTranslateDto machineTranslateDto = new MachineTranslateDto();
         machineTranslateDto.setMachineCode(reqJson.getString("machineCode"));
-        machineTranslateDto.setMachineCode(reqJson.getString("communityId"));
+        machineTranslateDto.setCommunityId(communityId);
         machineTranslateDto.setStatusCd(StatusConstant.STATUS_CD_INVALID);
         List<MachineTranslateDto> machineTranslateDtos = machineTranslateInnerServiceSMOImpl.queryMachineTranslates(machineTranslateDto);
         //如果有失效数据,则告诉设备删除