From d9eb7903ff1f1e06334e07066d3f95eed1ea1ea0 Mon Sep 17 00:00:00 2001 From: zhangyuan Date: Tue, 2 Aug 2022 11:20:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/visit/form/DhLoginPassFormDTO.java | 23 +++ .../dto/visit/form/DhPersonDelFormDTO.java | 22 +++ .../dto/visit/form/DhPersonListFormDTO.java | 26 +++ .../dto/visit/form/DhPublicKeyFormDTO.java | 21 +++ .../modules/visit/utils/DhDeviceUtil.java | 166 +++++++++++++----- 5 files changed, 217 insertions(+), 41 deletions(-) create mode 100644 epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhLoginPassFormDTO.java create mode 100644 epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonDelFormDTO.java create mode 100644 epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonListFormDTO.java create mode 100644 epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPublicKeyFormDTO.java diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhLoginPassFormDTO.java b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhLoginPassFormDTO.java new file mode 100644 index 0000000..42e4c95 --- /dev/null +++ b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhLoginPassFormDTO.java @@ -0,0 +1,23 @@ +package com.epmet.plugin.power.dto.visit.form; + +import lombok.Data; + +import java.io.Serializable; + + +/** + * 海康社区人员信息下放 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-20 + */ +@Data +public class DhLoginPassFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + private String loginName; + + private String loginPass; + +} \ No newline at end of file diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonDelFormDTO.java b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonDelFormDTO.java new file mode 100644 index 0000000..6a2c810 --- /dev/null +++ b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonDelFormDTO.java @@ -0,0 +1,22 @@ +package com.epmet.plugin.power.dto.visit.form; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + + +/** + * 海康社区人员信息下放 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-20 + */ +@Data +public class DhPersonDelFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + private List personIds; + +} \ No newline at end of file diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonListFormDTO.java b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonListFormDTO.java new file mode 100644 index 0000000..fc59e74 --- /dev/null +++ b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPersonListFormDTO.java @@ -0,0 +1,26 @@ +package com.epmet.plugin.power.dto.visit.form; + +import lombok.Data; + +import java.io.Serializable; + + +/** + * 海康社区人员信息下放 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-20 + */ +@Data +public class DhPersonListFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + + private Integer pageNum; + + private Integer pageSize; + + private String code; + +} \ No newline at end of file diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPublicKeyFormDTO.java b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPublicKeyFormDTO.java new file mode 100644 index 0000000..5400419 --- /dev/null +++ b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/visit/form/DhPublicKeyFormDTO.java @@ -0,0 +1,21 @@ +package com.epmet.plugin.power.dto.visit.form; + +import lombok.Data; + +import java.io.Serializable; + + +/** + * 海康社区人员信息下放 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-20 + */ +@Data +public class DhPublicKeyFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + private String loginName; + +} \ No newline at end of file diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/utils/DhDeviceUtil.java b/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/utils/DhDeviceUtil.java index 000195a..c737eb4 100644 --- a/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/utils/DhDeviceUtil.java +++ b/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/visit/utils/DhDeviceUtil.java @@ -52,7 +52,9 @@ public class DhDeviceUtil { private final String GET_PERSON_IDENTITY = "/CardSolution/card/person/personidentity"; private final String GET_DOOR_PLAN = "/CardSolution/card/accessControl/timeQuantum/1/page"; private final String GET_DOOR_CHANNEL = "/CardSolution/card/accessControl/channel/bycondition/combined"; - private final String ADD_PERSON = " /CardSolution/card/person"; + private final String ADD_PERSON = "/CardSolution/card/person"; + private final String LIST_PERSON = "/CardSolution/card/person/bycondition/combined"; + private final String DEL_PERSON = "/CardSolution/card/person/delete"; private final String ADD_PERSON_IMG = "/CardSolution/common/saveMobileBase64ImageToByte"; private final String ADD_AUTH = "/CardSolution/card/accessControl/doorAuthority/update"; private final String OPEN_CARD = "/CardSolution/card/card/open/batch"; @@ -73,10 +75,13 @@ public class DhDeviceUtil { } String url = dhCloudProperties.getUrl().concat(GET_PUBLIC_KEY); - Map paramsMap = new HashMap<>(4); - paramsMap.put("loginName", dhCloudProperties.getLoginName()); + Map paramsMap = new HashMap<>(4); + + DhPublicKeyFormDTO dto = new DhPublicKeyFormDTO(); + dto.setLoginName(dhCloudProperties.getLoginName()); + + String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(dto), paramsMap).getData(); - String data = HttpClientManager.getInstance().sendPost(url, paramsMap).getData(); if (null == data) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "publicKey获取失败"); } @@ -85,10 +90,10 @@ public class DhDeviceUtil { if (!toResult.containsKey("publicKey")) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "publicKey获取失败"); } - String accessToken = toResult.get("publicKey").toString(); + String publicKey = toResult.get("publicKey").toString(); - redisUtils.set(key, accessToken, RedisUtils.MINUTE_THIRTY_EXPIRE); - return accessToken; + redisUtils.set(key, publicKey, RedisUtils.MINUTE_THIRTY_EXPIRE); + return publicKey; } /** @@ -107,11 +112,20 @@ public class DhDeviceUtil { } String url = dhCloudProperties.getUrl().concat(GET_LOGIN_PASS); - Map paramsMap = new HashMap<>(8); - paramsMap.put("loginName", dhCloudProperties.getLoginName()); - paramsMap.put("loginPass", publicKey); + Map paramsMap = new HashMap<>(4); + + DhLoginPassFormDTO dto = new DhLoginPassFormDTO(); + dto.setLoginName(dhCloudProperties.getLoginName()); + String pwd; + try { + pwd = RSAUtils.getPwdByRsa(publicKey, "hg123456"); + } catch (Exception e) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "密码加密失败"); + } + dto.setLoginPass(pwd); + + String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(dto), paramsMap).getData(); - String data = HttpClientManager.getInstance().sendPost(url, paramsMap).getData(); if (null == data) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "loginPass获取失败"); } @@ -142,12 +156,12 @@ public class DhDeviceUtil { String urlParam = getDhUrlParams(); url = url + urlParam; - Map paramsMap = new HashMap<>(4); - DhDeptFormDTO dto = new DhDeptFormDTO(); - dto.setName("访客部门"); - dto.setParentId(1L); + Map paramsMap = new HashMap<>(4); +// DhDeptFormDTO dto = new DhDeptFormDTO(); +// dto.setName("访客部门"); +// dto.setParentId(1L); - String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(dto), paramsMap).getData(); + String data = HttpClientManager.getInstance().sendGet(url, paramsMap).getData(); if (null == data) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询部门列表失败"); @@ -162,16 +176,84 @@ public class DhDeviceUtil { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询部门列表失败"); } Object registerResult = result.getData(); + + JSONArray jsonArray = JSON.parseArray(registerResult.toString()); + for (int i = 0; i < jsonArray.size(); i++) { + if ("临时人员".equals(jsonArray.getJSONObject(i).get("name").toString())) { + return Long.parseLong(jsonArray.getJSONObject(i).get("id").toString()); + } + } + + return null; + } + + /** + * 人员预处理 + * + * @param + * @return java.lang.String + * @author zhy + * @date 2022/5/23 10:08 + */ + public void personHandle(String code) { + String url = dhCloudProperties.getUrl().concat(LIST_PERSON); + String urlParam = getDhUrlParams(); + url = url + urlParam; + + Map paramsMap = new HashMap<>(4); + DhPersonListFormDTO dto = new DhPersonListFormDTO(); + dto.setPageNum(1); + dto.setPageSize(10); + dto.setCode(code); + + String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(dto), paramsMap).getData(); + + if (null == data) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询人员列表失败"); + } + JSONObject toResult = JSON.parseObject(data); + DhResult result = ConvertUtils.mapToEntity(toResult, DhResult.class); + if (null != toResult.get("success")) { + result.setCode(200); + } + if (!result.getSuccess()) { + logger.info(result.getErrMsg()); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询人员列表失败"); + } + Object registerResult = result.getData(); + JSONObject jsonObject = JSON.parseObject(registerResult.toString()); - if (null != jsonObject) { - return Long.parseLong(jsonObject.toString()); + + List ids = new ArrayList<>(); + JSONArray jsonArray = JSON.parseArray(jsonObject.get("pageData").toString()); + for (int i = 0; i < jsonArray.size(); i++) { + ids.add(Integer.parseInt(jsonArray.getJSONObject(i).get("id").toString())); + } + DhPersonDelFormDTO del = new DhPersonDelFormDTO(); + del.setPersonIds(ids); + delPerson(del); + } + + + /** + * 删除人员 + * + * @param + * @return java.lang.String + * @author zhy + * @date 2022/5/23 10:08 + */ + public void delPerson(DhPersonDelFormDTO dto) { + String url = dhCloudProperties.getUrl().concat(DEL_PERSON); + String urlParam = getDhUrlParams(); + url = url + urlParam; + + Map paramsMap = new HashMap<>(4); + + String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(dto), paramsMap).getData(); + if (null == data) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "删除人员失败"); } -// JSONArray jsonArray = JSON.parseArray(registerResult.toString()); -// JSONObject jsonObject = jsonArray.getJSONObject(0); -// if (null != jsonObject) { -// return Long.parseLong(jsonObject.get("deptId").toString()); -// } - return 0L; } /** @@ -187,14 +269,14 @@ public class DhDeviceUtil { String urlParam = getDhUrlParams(); url = url + urlParam; - Map paramsMap = new HashMap<>(4); - DhIdentityFormDTO dto = new DhIdentityFormDTO(); - dto.setName("访客"); - dto.setSubsidyAmount(0D); - dto.setIsCashRecharge(1); - dto.setIsMachineRecharge(1); + Map paramsMap = new HashMap<>(4); +// DhIdentityFormDTO dto = new DhIdentityFormDTO(); +// dto.setName("访客"); +// dto.setSubsidyAmount(0D); +// dto.setIsCashRecharge(1); +// dto.setIsMachineRecharge(1); - String data = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(dto), paramsMap).getData(); + String data = HttpClientManager.getInstance().sendGet(url, paramsMap).getData(); if (null == data) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取身份列表失败"); @@ -210,10 +292,12 @@ public class DhDeviceUtil { } Object registerResult = result.getData(); JSONArray jsonArray = JSON.parseArray(registerResult.toString()); - JSONObject jsonObject = jsonArray.getJSONObject(0); - if (null != jsonObject) { - return jsonObject.get("id").toString(); + for (int i = 0; i < jsonArray.size(); i++) { + if ("默认身份".equals(jsonArray.getJSONObject(i).get("name").toString())) { + return jsonArray.getJSONObject(i).get("id").toString(); + } } + return ""; } @@ -319,17 +403,18 @@ public class DhDeviceUtil { * @date 2022/5/23 11:04 */ public Long addPerson(DhPersonFormDTO dto) { + personHandle(dto.getCode()); String url = dhCloudProperties.getUrl().concat(ADD_PERSON); String urlParam = getDhUrlParams(); url = url + urlParam; Long deptId = getDept(); - if (0L == deptId) { - return null; + if (null == deptId) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询临时人员部门失败"); } String identity = getIdentity(); if (StringUtils.isBlank(identity)) { - return null; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取身份失败"); } dto.setDeptId(deptId); dto.setPersonIdentityId(identity); @@ -351,9 +436,8 @@ public class DhDeviceUtil { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "新增人员失败"); } Object registerResult = result.getData(); - JSONObject jsonObject = JSON.parseObject(registerResult.toString()); - if (null != jsonObject) { - return Long.parseLong(jsonObject.toString()); + if (null != registerResult) { + return Long.parseLong(registerResult.toString()); } return null; } @@ -410,7 +494,7 @@ public class DhDeviceUtil { public String addPersonCard(DhPersonFormDTO dto) { Long personId = addPerson(dto); if (personId == null) { - return "添加人员信息失败"; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "添加人员信息失败"); } DhPersonCardFormDTO cardFormDTO = new DhPersonCardFormDTO(); String url = dhCloudProperties.getUrl().concat(OPEN_CARD);