|  |  |  | 
|---|
|  |  |  | package com.doumee.core.haikang.model; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONObject; | 
|---|
|  |  |  | import com.doumee.config.SpringContextUtil; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.param.request.CarPictureRequest; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.param.request.FacePictureCheckRequest; | 
|---|
|  |  |  | import com.doumee.core.haikang.service.HKService; | 
|---|
|  |  |  | import com.doumee.core.utils.Constants; | 
|---|
|  |  |  | import com.doumee.dao.business.model.InterfaceLog; | 
|---|
|  |  |  | import com.doumee.service.business.InterfaceLogService; | 
|---|
|  |  |  | import com.hikvision.artemis.sdk.ArtemisHttpUtil; | 
|---|
|  |  |  | 
|---|
|  |  |  | import org.apache.commons.lang3.StringUtils; | 
|---|
|  |  |  | import org.apache.http.HttpEntity; | 
|---|
|  |  |  | import org.apache.http.HttpResponse; | 
|---|
|  |  |  | import org.apache.tomcat.util.bcel.Const; | 
|---|
|  |  |  | import org.yaml.snakeyaml.scanner.Constant; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.io.*; | 
|---|
|  |  |  | import java.net.HttpURLConnection; | 
|---|
|  |  |  | import java.net.InetSocketAddress; | 
|---|
|  |  |  | import java.net.Proxy; | 
|---|
|  |  |  | import java.net.URL; | 
|---|
|  |  |  | import java.text.DateFormat; | 
|---|
|  |  |  | import java.text.ParseException; | 
|---|
|  |  |  | import java.text.SimpleDateFormat; | 
|---|
|  |  |  | import java.util.*; | 
|---|
|  |  |  | import java.io.File; | 
|---|
|  |  |  | import java.io.FileOutputStream; | 
|---|
|  |  |  | import java.io.InputStream; | 
|---|
|  |  |  | import java.util.Date; | 
|---|
|  |  |  | import java.util.HashMap; | 
|---|
|  |  |  | import java.util.Map; | 
|---|
|  |  |  | import java.util.UUID; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static void main(String[] args) throws Exception { | 
|---|
|  |  |  | ArtemisConfig.host = "10.50.60.253"; | 
|---|
|  |  |  | ArtemisConfig.appKey = "27786546"; | 
|---|
|  |  |  | ArtemisConfig.appSecret = "kC5dohxU7CvEqgGhVt4R"; | 
|---|
|  |  |  | ArtemisConfig.host = "10.50.250.253:1443"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ArtemisConfig.appKey = "23154099"; | 
|---|
|  |  |  | ArtemisConfig.appSecret = "88wFsg3xfn7o8QMsWEO2"; | 
|---|
|  |  |  | HKConstants.https = "https://"; | 
|---|
|  |  |  | CarPictureRequest param = new CarPictureRequest(); | 
|---|
|  |  |  | /*   CarPictureRequest param = new CarPictureRequest(); | 
|---|
|  |  |  | param.setPicUri( "HKIMG=/pic?0dd400=4c40ip-feo831-933*9o4=3=2109*2l0001893117*0t7=6*2ps==014b*=787d*069d70361-95754d-9*l108od0b192=001"); | 
|---|
|  |  |  | param.setAswSyscode("3fa3e5e3-db3e-41ba-97fc-39c948778dfe"); | 
|---|
|  |  |  | InputStream is = HKService.getCarPicture(param); | 
|---|
|  |  |  | 
|---|
|  |  |  | outStream.close(); //写入数据 | 
|---|
|  |  |  | } catch ( Exception e) { | 
|---|
|  |  |  | throw new RuntimeException(e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }*/ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | FacePictureCheckRequest param = new FacePictureCheckRequest(); | 
|---|
|  |  |  | param.setFacePicUrl("http://10.50.250.253:8088/file/member/20241016/d0cded86-a55d-43be-bc01-4f628a1400cf.jpg"); | 
|---|
|  |  |  | System.out.println(facePictureCheck(JSONObject.toJSONString(param))); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public static InterfaceLogService interfaceLogService = null; | 
|---|
|  |  |  | private static void saveInterfaceLog(String s, String result,Map<String, String> path) { | 
|---|
|  |  |  | private static void saveInterfaceLog(String s, String result,Map<String, String> path,String name) { | 
|---|
|  |  |  | //      InterfaceLogService bean = SpringContextUtil.getBean(InterfaceLogService.class); | 
|---|
|  |  |  | if(interfaceLogService !=null){ | 
|---|
|  |  |  | InterfaceLog hkMonitoryLogDO=new InterfaceLog(); | 
|---|
|  |  |  | 
|---|
|  |  |  | hkMonitoryLogDO.setIsdeleted(0); | 
|---|
|  |  |  | hkMonitoryLogDO.setRequest(s); | 
|---|
|  |  |  | hkMonitoryLogDO.setRepose(result); | 
|---|
|  |  |  | hkMonitoryLogDO.setName(path.get(HKConstants.https)); | 
|---|
|  |  |  | hkMonitoryLogDO.setName("【安防平台】"+name); | 
|---|
|  |  |  | hkMonitoryLogDO.setUrl(HKConstants.https + ArtemisConfig.host+path.get(HKConstants.https)); | 
|---|
|  |  |  | interfaceLogService.create(hkMonitoryLogDO); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | private static Map<String, String> getPath(String str) { | 
|---|
|  |  |  | final String getCamsApi = HKConstants.ARTEMIS_PATH  + str; | 
|---|
|  |  |  | Map<String, String> path = new HashMap<String, String>(2) { | 
|---|
|  |  |  | { | 
|---|
|  |  |  | put(HKConstants.https, getCamsApi);// 根据现场环境部署确认是http还是https | 
|---|
|  |  |  | } | 
|---|
|  |  |  | { | 
|---|
|  |  |  | put(HKConstants.https, getCamsApi);// 根据现场环境部署确认是http还是https | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | return  path; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static InputStream getFaceInputStream(String body)  throws  Exception{ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, String> path = getPath(HKConstants.InterfacePath.facePicture); | 
|---|
|  |  |  | Map<String, String> path = getPath(HKConstants.InterfacePath.facePicture[0]); | 
|---|
|  |  |  | //参数根据接口实际情况设置 | 
|---|
|  |  |  | HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null); | 
|---|
|  |  |  | if (200==resp.getStatusLine().getStatusCode()) { | 
|---|
|  |  |  | 
|---|
|  |  |  | InputStream in = entity.getContent(); | 
|---|
|  |  |  | return  in; | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | log.error("人脸下载出错"); | 
|---|
|  |  |  | throw  new Exception("人脸下载出错"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static InputStream getVisitPicture(String body)  throws  Exception{ | 
|---|
|  |  |  | Map<String, String> path = getPath(HKConstants.InterfacePath.visitPicture); | 
|---|
|  |  |  | Map<String, String> path = getPath(HKConstants.InterfacePath.visitPicture[0]); | 
|---|
|  |  |  | //参数根据接口实际情况设置 | 
|---|
|  |  |  | HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null); | 
|---|
|  |  |  | if (200==resp.getStatusLine().getStatusCode()) { | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static InputStream getDevicePicture(String body)  throws  Exception{ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, String> path = getPath(HKConstants.InterfacePath.devicePicture); | 
|---|
|  |  |  | Map<String, String> path = getPath(HKConstants.InterfacePath.devicePicture[0]); | 
|---|
|  |  |  | //参数根据接口实际情况设置 | 
|---|
|  |  |  | HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null); | 
|---|
|  |  |  | if (200==resp.getStatusLine().getStatusCode()) { | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static InputStream getCarPicture(String body)  throws  Exception{ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, String> path = getPath(HKConstants.InterfacePath.carPicture); | 
|---|
|  |  |  | Map<String, String> path = getPath(HKConstants.InterfacePath.carPicture[0]); | 
|---|
|  |  |  | //参数根据接口实际情况设置 | 
|---|
|  |  |  | HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null); | 
|---|
|  |  |  | if (200==resp.getStatusLine().getStatusCode()) { | 
|---|
|  |  |  | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | throw  new Exception("查询车辆抓拍图片下载出错"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 分页获取待办列表 | 
|---|
|  |  |  | * @param body | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static String getTodoListPage(Map<String, String> body)  throws  Exception{ | 
|---|
|  |  |  | return startDoGetStringArtemis(HKConstants.InterfacePath.getTodoListPage,body); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | *   获取门禁点列表 | 
|---|
|  |  |  | 
|---|
|  |  |  | return  startDoPostStringArtemis(HKConstants.InterfacePath.visitCancel,body); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static String startDoPostStringArtemis(String pathStr,String body){ | 
|---|
|  |  |  | Map<String, String> path = getPath(pathStr); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static String startDoPostStringArtemis(String[] pathStr,String body ){ | 
|---|
|  |  |  | Map<String, String> path = getPath(pathStr[0]); | 
|---|
|  |  |  | Map<String, String> header = new HashMap<>(); | 
|---|
|  |  |  | header.put("tagId", UUID.randomUUID().toString().replace("-", "")); | 
|---|
|  |  |  | String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post请求application/json类型参数 | 
|---|
|  |  |  | saveInterfaceLog(body,result,path); | 
|---|
|  |  |  | saveInterfaceLog(body,result,path,pathStr[1]); | 
|---|
|  |  |  | return result; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public static String startDoGetStringArtemis(String[] pathStr,Map<String,String> body ){ | 
|---|
|  |  |  | Map<String, String> path = getPath(pathStr[0]); | 
|---|
|  |  |  | Map<String, String> header = new HashMap<>(); | 
|---|
|  |  |  | header.put("tagId", UUID.randomUUID().toString().replace("-", "")); | 
|---|
|  |  |  | String result = ArtemisHttpUtil.doGetArtemis(path, body, null, null,  header); | 
|---|
|  |  |  | saveInterfaceLog(JSONObject.toJSONString(body),result,path,pathStr[1]); | 
|---|
|  |  |  | return result; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public static String startDoPostStringArtemis(String[] pathStr,String param,String body ){ | 
|---|
|  |  |  | Map<String, String> path = getPath(pathStr[0]+StringUtils.defaultString(param,"")); | 
|---|
|  |  |  | Map<String, String> header = new HashMap<>(); | 
|---|
|  |  |  | header.put("tagId", UUID.randomUUID().toString().replace("-", "")); | 
|---|
|  |  |  | String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", header);// post请求application/json类型参数 | 
|---|
|  |  |  | saveInterfaceLog(body,result,path,pathStr[1]); | 
|---|
|  |  |  | return result; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public static String startDoPostStringArtemis(String pathStr,Map<String, String> querys,Map<String, String> header,String body){ | 
|---|
|  |  |  | Map<String, String> path = getPath(pathStr); | 
|---|
|  |  |  | public static String startDoPostStringArtemis(String[] pathStr,Map<String, String> querys,Map<String, String> header,String body){ | 
|---|
|  |  |  | Map<String, String> path = getPath(pathStr[0]); | 
|---|
|  |  |  | header.put("tagId", UUID.randomUUID().toString().replace("-", "")); | 
|---|
|  |  |  | String result = ArtemisHttpUtil.doPostStringArtemis(path, body, querys, null, "application/json", header);// post请求application/json类型参数 | 
|---|
|  |  |  | saveInterfaceLog(body,result,path); | 
|---|
|  |  |  | saveInterfaceLog(body,result,path,pathStr[1]); | 
|---|
|  |  |  | return result; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | *   获取全量组织信息 | 
|---|
|  |  |  | * @param body | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static String orgAllList(String body) { | 
|---|
|  |  |  | return startDoPostStringArtemis(HKConstants.InterfacePath.orgAllList,body); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | *   获取访客预约记录列表 | 
|---|
|  |  |  | * @param body | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | 
|---|
|  |  |  | return startDoPostStringArtemis(HKConstants.InterfacePath.iccmAppointmentRecords,body); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | *   获取全量组织列表 | 
|---|
|  |  |  | *   根据微信公众号信息获取AccessToken | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static String wxAccessToken(String configId,String tagId) { | 
|---|
|  |  |  | String[] wxAccessToken= HKConstants.InterfacePath.wxAccessToken; | 
|---|
|  |  |  | wxAccessToken[0] = HKConstants.InterfacePath.wxAccessToken+"?tagId="+tagId+"&configId"+configId; | 
|---|
|  |  |  | return startDoPostStringArtemis(wxAccessToken,""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | *   根据配置微信公众号编号查询微信公众号信息 | 
|---|
|  |  |  | * @param body | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static String orgAllList(String body) { | 
|---|
|  |  |  | return startDoPostStringArtemis(HKConstants.InterfacePath.orgAllList,body); | 
|---|
|  |  |  | public static String getWxConfig(Map<String,String>  body) { | 
|---|
|  |  |  | return startDoGetStringArtemis(HKConstants.InterfacePath.getWxConfig,body); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | *   根据配置微信公众号编号查询微信公众号信息 | 
|---|
|  |  |  | * @param body | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static String nhEventPageList(Map<String,String> body) { | 
|---|
|  |  |  | return startDoGetStringArtemis(HKConstants.InterfacePath.nhEventPageList,body); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | *   查询消防设备部件状态 | 
|---|
|  |  |  | * @param body | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static String fireDeviceStatusSearch(String body) { | 
|---|
|  |  |  | return startDoPostStringArtemis(HKConstants.InterfacePath.fireDeviceStatusSearch,body); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 分页查询消防传感器部件状态 | 
|---|
|  |  |  | * @param body | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static String sensorStatusSearch(String body) { | 
|---|
|  |  |  | return startDoPostStringArtemis(HKConstants.InterfacePath.sensorStatusSearch,body); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 分页查询设备下的所有报警记录 | 
|---|
|  |  |  | * @param body | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static String findDeviceAlarmPage(String body) { | 
|---|
|  |  |  | return startDoPostStringArtemis(HKConstants.InterfacePath.findDeviceAlarmPage,body); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | *   询消防设备列表 | 
|---|
|  |  |  | * @param body | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static String fireChannelSearch(String body) { | 
|---|
|  |  |  | return startDoPostStringArtemis(HKConstants.InterfacePath.fireChannelSearch,body); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | *   询消防设备列表 | 
|---|
|  |  |  | * @param body | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static String fireDeviceSearch(String body) { | 
|---|
|  |  |  | return startDoPostStringArtemis(HKConstants.InterfacePath.fireDeviceSearch,body); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | *   获取全量用户列表 | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static String platformStatus(String param) { | 
|---|
|  |  |  | if(StringUtils.isNotBlank(param)){ | 
|---|
|  |  |  | return startDoPostStringArtemis(HKConstants.InterfacePath.platformStatus+"?platformIds="+param,null); | 
|---|
|  |  |  | return startDoPostStringArtemis(HKConstants.InterfacePath.platformStatus,"?platformIds="+param,null); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | return startDoPostStringArtemis(HKConstants.InterfacePath.platformStatus,null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | return startDoPostStringArtemis(HKConstants.InterfacePath.applyST,body); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static String getMenuUrl(String menuId, String token) { | 
|---|
|  |  |  | String url = HKConstants.InterfacePath.goMenuUrl[0]; | 
|---|
|  |  |  | url = url.replace("${menuId}", menuId).replace("${token}",token); | 
|---|
|  |  |  | return  url; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|