| package com.doumee.core.haikang.model; | 
|   | 
| import com.alibaba.fastjson.JSONObject; | 
| import com.doumee.config.SpringContextUtil; | 
| 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 com.hikvision.artemis.sdk.config.ArtemisConfig; | 
| import lombok.extern.slf4j.Slf4j; | 
| 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.BufferedReader; | 
| import java.io.IOException; | 
| import java.io.InputStream; | 
| import java.io.InputStreamReader; | 
| 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.*; | 
|   | 
|   | 
| @Slf4j | 
| public class HKTools { | 
|   | 
| //    private static final Logger logger = LoggerFactory.getLogger(HKUtil.class); | 
|   | 
|   | 
|     public static void main(String[] args) throws Exception { | 
| //            Proxy proxy = new Proxy(Proxy.Type.DIRECT, new InetSocketAddress("127.0.0.1",Integer.valueOf("1080"))); | 
|             URL realUrl = new URL("https://10.50.60.253/artemis/api/eventService/v1/eventSubscriptionByEventTypes"); | 
|             HttpURLConnection con = (HttpURLConnection) realUrl.openConnection(); | 
|         con.setRequestMethod("GET"); | 
| //        con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) ;Gecko/20100101 Firefox/57.0"); | 
|         BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); | 
|         String inputLine; | 
|         StringBuffer content = new StringBuffer(); | 
|         while ((inputLine = in.readLine()) != null) { | 
|             content.append(inputLine); | 
|         } | 
|         in.close(); | 
|         con.disconnect(); | 
|   | 
|         System.out.println(content.toString()); | 
|   | 
|     } | 
|     private static void saveInterfaceLog(String s, String result,Map<String, String> path) { | 
|         InterfaceLogService bean = SpringContextUtil.getBean(InterfaceLogService.class); | 
|         if(bean !=null){ | 
|             InterfaceLog hkMonitoryLogDO=new InterfaceLog(); | 
|             hkMonitoryLogDO.setType(0); | 
|             hkMonitoryLogDO.setCreateDate(new Date()); | 
|             hkMonitoryLogDO.setIsdeleted(0); | 
|             hkMonitoryLogDO.setRequest(s); | 
|             hkMonitoryLogDO.setRepose(result); | 
|             hkMonitoryLogDO.setName(path.get(HKConstants.https)); | 
|             hkMonitoryLogDO.setUrl(HKConstants.https + ArtemisConfig.host+path.get(HKConstants.https)); | 
|             bean.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 | 
|             } | 
|         }; | 
|         return  path; | 
|     } | 
|   | 
|     /** | 
|      * 获取门禁时间数据集合 | 
|      * @return | 
|      */ | 
|     public static String getRootOrg() { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.rootOrg); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, "", null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog("",result,path); | 
|         return  result; | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 更新组织信息 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String editOrg(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.editOrg); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|   | 
|     /** | 
|      * 新增组织信息 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String addBatchOrg(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.addBatchOrg); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      * 删除组织信息 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String delOrg(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.delBatchOrg); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|   | 
|     /** | 
|      * 新增人员信息 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String addUser(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.addUser); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 批量新增人员信息 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String addBatchUser(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.addBatchUser); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|   | 
|     /** | 
|      * 批量删除人员信息 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String delBatchUser(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.delBatchUser); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|   | 
|     /** | 
|      * 修改人员信息 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String editUser(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.editUser); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      *    添加人脸信息 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String addFace(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.addFace); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      *    编辑人脸信息 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String editFace(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.editFace); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      *    删除人脸信息 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String delFace(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.delFace); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      *    全量获取车库信息 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String parkList(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.getParkList); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      *    根据车库编码查询出入口列表 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String entranceList(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.getEntranceList); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      *    车辆预约 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String parkAddition(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.parkAddition); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      *    车辆取消预约 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String parkDeletion(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.parkDeletion); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      *    固定车辆充值(包期) | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String carChargeAddtion(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.carChargeAddtion); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      *    固定车辆取消包期 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String carChargeDeletion(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.carChargeDeletion); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 获取人脸数据(提取人脸访问地址) | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static InputStream getFaceInputStream(String body)  throws  Exception{ | 
|   | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.facePicture); | 
|         //参数根据接口实际情况设置 | 
|         HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null); | 
|         if (200==resp.getStatusLine().getStatusCode()) { | 
|             HttpEntity entity = resp.getEntity(); | 
|             InputStream in = entity.getContent(); | 
|             return  in; | 
|         }else{ | 
|             throw  new Exception("人脸下载出错"); | 
|         } | 
|     } | 
|     /** | 
|      * 获取访客记录中的图片 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static InputStream getVisitPicture(String body)  throws  Exception{ | 
|   | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.visitPicture); | 
|         //参数根据接口实际情况设置 | 
|         HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null); | 
|         if (200==resp.getStatusLine().getStatusCode()) { | 
|             HttpEntity entity = resp.getEntity(); | 
|             InputStream in = entity.getContent(); | 
|             return  in; | 
|         }else{ | 
|             throw  new Exception("获取访客记录中的图片下载出错"); | 
|         } | 
|     } | 
|     /** | 
|      * 获取门禁事件的图片 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static InputStream getDevicePicture(String body)  throws  Exception{ | 
|   | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.devicePicture); | 
|         //参数根据接口实际情况设置 | 
|         HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null); | 
|         if (200==resp.getStatusLine().getStatusCode()) { | 
|             HttpEntity entity = resp.getEntity(); | 
|             InputStream in = entity.getContent(); | 
|             return  in; | 
|         }else{ | 
|             throw  new Exception("获取门禁事件的图片下载出错"); | 
|         } | 
|     } | 
|     /** | 
|      * 查询车辆抓拍图片 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static InputStream getCarPicture(String body)  throws  Exception{ | 
|   | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.carPicture); | 
|         //参数根据接口实际情况设置 | 
|         HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null); | 
|         if (200==resp.getStatusLine().getStatusCode()) { | 
|             HttpEntity entity = resp.getEntity(); | 
|             InputStream in = entity.getContent(); | 
|             return  in; | 
|         }else{ | 
|             throw  new Exception("查询车辆抓拍图片下载出错"); | 
|         } | 
|     } | 
|     /** | 
|      *    获取门禁点列表 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String doorSearch(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.doorSearch); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      *    获取门禁设备列表 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String acsDeviceList(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.acsDeviceList); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      *    增量获取门禁设备列表 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String acsDeviceTimeRangeList(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.acsDeviceList); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      *    访客预约 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String visitAppiontment(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.visitAppiontment); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      *    访客免登记预约 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String visitAppiontmentMDJ(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.visitAppiontmentMDJ); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|   | 
|     /** | 
|      *    取消访客预约 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String visitCancel(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.visitCancel); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      *    签离访客预约 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String visitOut(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.visitOut); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      *    访客权限组 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String privilegeGroup(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.privilegeGroup); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      *    事件订阅 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String eventSub(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.eventSub); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|     /** | 
|      *    取消事件订阅 | 
|      * @param body | 
|      * @return | 
|      */ | 
|     public static String cancelEventSub(String body) { | 
|         Map<String, String> path = getPath(HKConstants.InterfacePath.cancelEventSub); | 
|         String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post请求application/json类型参数 | 
|         saveInterfaceLog(body,result,path); | 
|         return  result; | 
|     } | 
|   | 
|   | 
|   | 
|   | 
| } |