package com.doumee.core.haikang.service; import com.alibaba.fastjson.JSONObject; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.haikang.model.param.request.*; import com.doumee.core.haikang.model.param.respose.*; import com.doumee.core.utils.Constants; import com.doumee.core.haikang.model.HKConstants; import com.doumee.core.haikang.model.HKTools; import com.doumee.core.haikang.model.param.BaseRequst; import com.doumee.core.haikang.model.param.BaseResponse; import com.doumee.dao.business.model.InterfaceLog; import com.doumee.service.business.InterfaceLogService; import com.hikvision.artemis.sdk.config.ArtemisConfig; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; import com.alibaba.fastjson.TypeReference; import java.io.InputStream; import java.util.Date; import java.util.List; @Slf4j public class HKService { private Logger logger = LoggerFactory.getLogger(HKService.class); /** * 获取根组织数据 * @return */ public static BaseResponse getRootOrg(BaseRequst param){ log.info("【海康获取根组织】================开始===="); try { String res = HKTools.getRootOrg (); TypeReference typeReference = new TypeReference< BaseResponse>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康获取根组织"); return result; }catch (Exception e){ log.error("【海康获取根组织】================失败====:\n"+ e.getMessage()); } return null; } /** * 修改组织数据 * @return */ public static BaseResponse editOrg(OrgEditRequest param){ log.info("【海康修改组织】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.editOrg(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康修改组织"); return result; }catch (Exception e){ log.error("【海康修改组织】================失败====:\n"+ e.getMessage()); } return null; } /** *批量新增组织数据 * @return */ public static BaseResponse addBatchOrg(List param){ log.info("【海康新增组织】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.addBatchOrg(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康新增组织"); return result; }catch (Exception e){ log.error("【海康新增组织】================失败====:\n"+ e.getMessage()); } return null; } /** *批量删除组织数据 * @return */ public static BaseResponse delBatchOrg(OrgDelRequest param){ log.info("【海康删除组织】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.delOrg(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse >(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康删除组织"); return result; }catch (Exception e){ log.error("【海康删除组织】================失败====:\n"+ e.getMessage()); } return null; } /** *新增人员信息(支持人脸数据) * @return */ public static BaseResponse addUser(UserAddRequest param){ log.info("【海康新增人员】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.addUser(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康新增人员"); return result; }catch (Exception e){ log.error("【海康新增人员】================失败====:\n"+ e.getMessage()); } return null; } /** *修改人员信息(不支持人脸数据) * @return */ public static BaseResponse editUser(UserAddRequest param){ log.info("【海康修改人员】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.editUser(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康修改人员"); return result; }catch (Exception e){ log.error("【海康修改人员】================失败====:\n"+ e.getMessage()); } return null; } /** *批量新增人员信息(无人脸) * @return */ public static BaseResponse addBatchUser(List param){ log.info("【海康批量新增人员】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.addBatchUser(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康批量新增人员"); return result; }catch (Exception e){ log.error("【海康批量新增人员】================失败====:\n"+ e.getMessage()); } return null; } /** *批量删除人员信息 * @return */ public static BaseResponse delBatchUser(List param){ log.info("【海康批量新增人员】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.delBatchUser(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康批量新增人员"); return result; }catch (Exception e){ log.error("【海康批量新增人员】================失败====:\n"+ e.getMessage()); } return null; } /** *添加人脸信息 * @return */ public static BaseResponse addFace(List param){ log.info("【海康添加人脸信息】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.addFace(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康添加人脸信息"); return result; }catch (Exception e){ log.error("【海康添加人脸信息】================失败====:\n"+ e.getMessage()); } return null; } /** *编辑人脸信息 * @return */ public static BaseResponse editFace(List param){ log.info("【海康编辑人脸信息】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.editFace(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康编辑人脸信息"); return result; }catch (Exception e){ log.error("【海康编辑人脸信息】================失败====:\n"+ e.getMessage()); } return null; } /** *删除人脸信息 * @return */ public static BaseResponse delFace(List param){ log.info("【海康删除人脸信息】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.editFace(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康删除人脸信息"); return result; }catch (Exception e){ log.error("【海康删除人脸信息】================失败====:\n"+ e.getMessage()); } return null; } /** * 获取海康人脸访问地址 * @return */ public static InputStream getFaceInputStream(FacePictureRequest param) { log.info("【海康人脸访问图片流】================开始===="+JSONObject.toJSONString(param)); try { InputStream res = HKTools.getFaceInputStream(JSONObject.toJSONString(param)); log.error("【海康人脸访问图片流】================成功====\n"); return res; }catch (Exception e){ log.error("【海康人脸访问图片流】================失败====:\n"+ e.getMessage()); } return null; } /** *获取车库列表数据(全量) * @return */ public static BaseResponse> parkList(ParkListRequest param){ log.info("【海康获取车库列表数据】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.parkList(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康获取车库列表数据"); return result; }catch (Exception e){ log.error("【海康获取车库列表数据】================失败====:\n"+ e.getMessage()); } return null; } /** *获取车库列表数据(全量) * @return */ public static BaseResponse> entranceList(EntranceListRequest param){ log.info("【海获取车库列表数据】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.entranceList(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康获取车库列表数据"); return result; }catch (Exception e){ log.error("【海康获取车库列表数据】================失败====:\n"+ e.getMessage()); } return null; } /** *固定车辆充值(包期) * @return */ public static BaseResponse carChargeAddtion(CarChargeAddRequest param){ log.info("【海康固定车辆充值】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.carChargeAddtion(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康固定车辆充值"); return result; }catch (Exception e){ log.error("【海康固定车辆充值】================失败====:\n"+ e.getMessage()); } return null; } /** *固定车辆取消包期 * @return */ public static BaseResponse carChargeDeletion(CarChargeDelRequest param){ log.info("【海康固定车辆取消包期】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.carChargeDeletion(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康固定车辆取消包期"); return result; }catch (Exception e){ log.error("【海康固定车辆取消包期】================失败====:\n"+ e.getMessage()); } return null; } /** *车位预约 * @return */ public static BaseResponse parkReservationAddition(ParkReservationAddRequest param){ log.info("【海康车位预约】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.parkAddition(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康车位预约"); return result; }catch (Exception e){ log.error("【海康车位预约】================失败====:\n"+ e.getMessage()); } return null; } /** *车位取消预约 * @return */ public static BaseResponse parkReservationDeletion(ParkReservationDelRequest param){ log.info("【海康车位取消预约】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.carChargeDeletion(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康车位取消预约"); return result; }catch (Exception e){ log.error("【海康车位取消预约】================失败====:\n"+ e.getMessage()); } return null; } /** *访客预约 * @return */ public static BaseResponse visitAppiontment(VisitAppointmentRequest param){ log.info("【海康访客预约】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.visitAppiontment(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康访客预约"); return result; }catch (Exception e){ log.error("【海康访客预约】================失败====:\n"+ e.getMessage()); } return null; } /** *访客预约取消 * @return */ public static BaseResponse cancelVisitAppiontment(VisitAppointmentCancelRequest param){ log.info("【海康访客预约取消】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.visitCancel(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康访客预约取消"); return result; }catch (Exception e){ log.error("【海康访客预约取消】================失败====:\n"+ e.getMessage()); } return null; } /** *访客预约签离 * @return */ public static BaseResponse outVisitAppiontment(VisitAppointmentOutRequest param){ log.info("【海康访客预约签离】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.visitOut(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse>(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康访客预约签离"); return result; }catch (Exception e){ log.error("【海康访客预约签离】================失败====:\n"+ e.getMessage()); } return null; } /** *访客免登记预约 * @return */ public static BaseResponse visitAppiontmentMDJ(VisitAppointmentMDJRequest param){ log.info("【海康访客免登记预约】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.visitAppiontmentMDJ(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse >(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康访客免登记预约"); return result; }catch (Exception e){ log.error("【海康访客免登记预约】================失败====:\n"+ e.getMessage()); } return null; } /** *访客权限组列表查询(分页) * @return */ public static BaseResponse privilegeGroup(PrivilegeGroupRequest param){ log.info("【海康访客权限组列表查询】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.privilegeGroup(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse >(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康访客权限组列表查询"); return result; }catch (Exception e){ log.error("【海康访客权限组列表查询】================失败====:\n"+ e.getMessage()); } return null; } /** *海康门禁点查询(分页) * @return */ public static BaseResponse doorSearch(DoorsListRequest param){ log.info("【海康门禁点查询】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.doorSearch(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse >(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康门禁点查询"); return result; }catch (Exception e){ log.error("【海康门禁点查询】================失败====:\n"+ e.getMessage()); } return null; } /** *门禁设备查询(分页) * @return */ public static BaseResponse acsDeviceList(AcsDeviceListRequest param){ log.info("【海康门禁设备查询】================开始===="+JSONObject.toJSONString(param)); try { String res = HKTools.acsDeviceList(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse >(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康门禁设备查询"); return result; }catch (Exception e){ log.error("【海康门禁设备查询】================失败====:\n"+ e.getMessage()); } return null; } /** *事件订阅 * @return */ public static BaseResponse eventSub(EventSubRequest param){ log.info("【海康事件订阅】================开始===="+JSONObject.toJSONString(param)); String res = null; try { res = HKTools.eventSub(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse >(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康事件订阅"); return result; }catch (Exception e){ log.error("【海康事件订阅】================失败====:\n"+ e.getMessage()); }finally { // saveInterfaceLog(param,res); } return null; } /** *事件订阅 * @return */ public static BaseResponse cancelEventSub(EventSubRequest param){ log.info("【海康取消事件订阅】================开始===="+JSONObject.toJSONString(param)); String res = null; try { res = HKTools.cancelEventSub(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse >(){}; BaseResponse result = JSONObject.parseObject(res, typeReference.getType()); logResult(result,"海康取消事件订阅"); return result; }catch (Exception e){ log.error("【海康取消事件订阅】================失败====:\n"+ e.getMessage()); }finally { // saveInterfaceLog(param,res); } return null; } private static void logResult(BaseResponse res,String name) { if(StringUtils.equals(res.getCode(),HKConstants.RESPONSE_SUCCEE)){ log.info("【"+name+"】================成功====\n"+res); }else{ log.error("【"+name+"】================失败====:\n"+ res); } } }