From 2a61e014dc6df8b7c8e0b655a0d70699661a1fea Mon Sep 17 00:00:00 2001 From: 07 <15989082884@163.com> Date: Tue, 11 Oct 2022 16:59:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AEBUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/HikAccessControlServiceImpl.java | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/oldwei/hikdev/service/impl/HikAccessControlServiceImpl.java b/src/main/java/com/oldwei/hikdev/service/impl/HikAccessControlServiceImpl.java index de9bd2f..1512350 100644 --- a/src/main/java/com/oldwei/hikdev/service/impl/HikAccessControlServiceImpl.java +++ b/src/main/java/com/oldwei/hikdev/service/impl/HikAccessControlServiceImpl.java @@ -3,9 +3,12 @@ package com.oldwei.hikdev.service.impl; import cn.hutool.core.codec.Base64; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpStatus; +import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.aliyuncs.utils.StringUtils; import com.oldwei.hikdev.component.DataCache; import com.oldwei.hikdev.constant.DataCachePrefixConstant; import com.oldwei.hikdev.constant.HikConstant; @@ -286,7 +289,13 @@ public class HikAccessControlServiceImpl implements IHikAccessControlService { //读取返回的json并解析 ptrOutBuff.read(); String strResult = new String(ptrOutBuff.byValue).trim(); - JSONObject jsonResult = JSONObject.parseObject(strResult); + JSONObject jsonResult; + log.info(strResult); + if(StringUtils.isEmpty(strResult)){ + jsonResult = new JSONObject(); + }else{ + jsonResult = JSONObject.parseObject(strResult); + } result.put("data", jsonResult); if (dwState != HikConstant.NET_SDK_CONFIG_STATUS_SUCCESS) { //返回NET_SDK_CONFIG_STATUS_SUCCESS代表流程走通了,但并不代表下发成功,比如有些设备可能因为人员已存在等原因下发失败,所以需要解析Json报文 如果statusCode=1无异常情况,否则就是有异常情况 @@ -1009,7 +1018,18 @@ public class HikAccessControlServiceImpl implements IHikAccessControlService { HikDevResponse result = new HikDevResponse(); Boolean stdBoolean = this.hikDevService.NET_DVR_STDXMLConfig(longUserId, strXMLInput, strXMLOutput); - getDeleteProcess(deviceSn); + + while(true) { + HikDevResponse process = getDeleteProcess(deviceSn); + log.info(JSONUtil.toJsonStr(process)); + if(process.get("code").equals(HttpStatus.HTTP_INTERNAL_ERROR)){ + break; + } + + if(process.get("msg").equals("success")){ + break; + } + } if (!stdBoolean) { int iErr = this.hikDevService.NET_DVR_GetLastError(); log.info("NET_DVR_STDXMLConfig失败,错误号:" + iErr); @@ -1072,6 +1092,12 @@ public class HikAccessControlServiceImpl implements IHikAccessControlService { String strResult = new String(ptrOutBuff.byValue).trim(); JSONObject jsonResult = JSONObject.parseObject(strResult); log.info(jsonResult.toJSONString()); + if(jsonResult.getJSONObject("UserInfoDetailDeleteProcess").getString("status").equals("success")){ + result.ok("success"); + }else{ + result.ok("process"); + } +// {"UserInfoDetailDeleteProcess":{"status":"success"}} //姓名 // String strName = StringEncodingUtil.guessEncodingTransformString(struCardRecord.byName); // //卡号