|
@@ -34,6 +34,9 @@ import java.util.stream.Collectors;
|
34
|
34
|
@Slf4j
|
35
|
35
|
public class HKServiceImpl implements IHKService {
|
36
|
36
|
|
|
37
|
+ @Autowired
|
|
38
|
+ private TpUnitHkSettingMapper tpUnitHkSettingMapper;
|
|
39
|
+
|
37
|
40
|
@Autowired
|
38
|
41
|
private TaUserMapper taUserMapper;
|
39
|
42
|
|
|
@@ -51,14 +54,9 @@ public class HKServiceImpl implements IHKService {
|
51
|
54
|
@Autowired
|
52
|
55
|
private TaUserVerifyMapper taUserVerifyMapper;
|
53
|
56
|
|
54
|
|
- @Autowired
|
55
|
|
- private TaUserHkMapper taUserHkMapper;
|
56
|
|
-
|
57
|
|
-// @Autowired
|
58
|
|
-// private TaRemotelyDoorMapper taRemotelyDoorMapper;
|
59
|
57
|
|
60
|
58
|
@Autowired
|
61
|
|
- private TpUnitHkSettingMapper tpUnitHkSettingMapper;
|
|
59
|
+ private TaUserHkMapper taUserHkMapper;
|
62
|
60
|
|
63
|
61
|
/**
|
64
|
62
|
* 获取设备UUID
|
|
@@ -85,10 +83,9 @@ public class HKServiceImpl implements IHKService {
|
85
|
83
|
if (null == userVerify) {
|
86
|
84
|
throw new WisdomException("审核数据不存在!");
|
87
|
85
|
}
|
88
|
|
- TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
|
89
|
86
|
|
90
|
87
|
// 海康数据
|
91
|
|
- TaUserHk taUserHk = taUserHkMapper.selectByUserIdAndCommunityId(userVerify.getUserId(), userVerify.getCommunityId());
|
|
88
|
+ TaUserHk taUserHk = taUserHkMapper.selectByUserVerifyIdAndCommunityId(userVerify.getUserVerifyId(), userVerify.getCommunityId());
|
92
|
89
|
if (null == taUserHk) {
|
93
|
90
|
taUserHk = new TaUserHk();
|
94
|
91
|
}
|
|
@@ -96,6 +93,9 @@ public class HKServiceImpl implements IHKService {
|
96
|
93
|
// 海康权限信息
|
97
|
94
|
TpUnitHkSetting unitHkSetting = getUnitHkSetting(userVerify.getCommunityId(), userVerify.getUnitId());
|
98
|
95
|
|
|
96
|
+ // 设备树
|
|
97
|
+ TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
|
|
98
|
+
|
99
|
99
|
// 这两个值一般都是同时存在的
|
100
|
100
|
// 当这两个值不存在的时候,就添加海康人员
|
101
|
101
|
if (null == taUserHk.getHkUserId() && null == taUserHk.getHkPersonNo()) {
|
|
@@ -106,7 +106,7 @@ public class HKServiceImpl implements IHKService {
|
106
|
106
|
* 2.根据部门编号推送 海康
|
107
|
107
|
*/
|
108
|
108
|
taUserMapper.updateById(user);
|
109
|
|
- addUserAndOpenCard(responseBean, user, tpEquipmentTree, taUserHk, unitHkSetting);
|
|
109
|
+ addUserAndOpenCard(responseBean, user, tpEquipmentTree, taUserHk, unitHkSetting, userVerify);
|
110
|
110
|
}
|
111
|
111
|
|
112
|
112
|
// 卡片操作
|
|
@@ -122,11 +122,21 @@ public class HKServiceImpl implements IHKService {
|
122
|
122
|
}
|
123
|
123
|
|
124
|
124
|
|
|
125
|
+ // 判断是否成功
|
|
126
|
+ if ("0".equals(responseBean.getCode())) {
|
|
127
|
+ responseBean.addSuccess("操作成功!");
|
|
128
|
+ return responseBean;
|
|
129
|
+ }
|
|
130
|
+ throw new WisdomException("操作失败!");
|
|
131
|
+ }
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+ @Override
|
|
135
|
+ public ResponseBean addAuthoritiesAnddownloadAuthorityByPersonIds(TaUserVerify userVerify, TaUserHk taUserHk, TpEquipmentTree tpEquipmentTree) {
|
125
|
136
|
|
126
|
|
- // 推送海康
|
|
137
|
+ ResponseBean responseBean = new ResponseBean();
|
127
|
138
|
|
128
|
139
|
// 给用户添加 海康门禁权限
|
129
|
|
-
|
130
|
140
|
List<TpEquipment> tpEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(userVerify.getCommunityId(), userVerify.getUnitId(), 4);
|
131
|
141
|
List<Map<String, Object>> equipmentUUID = getEquipmentUUID(tpEquipments);
|
132
|
142
|
StringBuilder doorUuids = new StringBuilder();
|
|
@@ -139,14 +149,15 @@ public class HKServiceImpl implements IHKService {
|
139
|
149
|
});
|
140
|
150
|
|
141
|
151
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(doorUuids)) {
|
142
|
|
-
|
143
|
152
|
Map<String, Object> map = Maps.newHashMap();
|
144
|
153
|
map.put("personIds",String.valueOf(taUserHk.getHkUserId()));
|
145
|
154
|
map.put("doorUuids", doorUuids.substring(0, doorUuids.lastIndexOf(",")));
|
146
|
155
|
map.put("secret", tpEquipmentTree.getSecret());
|
147
|
156
|
map.put("appkey", tpEquipmentTree.getAppkey());
|
148
|
157
|
map.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
|
149
|
|
- HKOpenApi.addAuthoritiesByPersonIds(map);
|
|
158
|
+ map.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
|
|
159
|
+ String addAuthoritiesJSONString = HKOpenApi.addAuthoritiesByPersonIds(map);
|
|
160
|
+ validHKError(addAuthoritiesJSONString);
|
150
|
161
|
|
151
|
162
|
// 下发门禁权限
|
152
|
163
|
Map<String, Object> downloadAuthorityByPersonIdsMap = Maps.newHashMap();
|
|
@@ -157,36 +168,13 @@ public class HKServiceImpl implements IHKService {
|
157
|
168
|
downloadAuthorityByPersonIdsMap.put("secret", tpEquipmentTree.getSecret());
|
158
|
169
|
downloadAuthorityByPersonIdsMap.put("appkey", tpEquipmentTree.getAppkey());
|
159
|
170
|
downloadAuthorityByPersonIdsMap.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
|
160
|
|
- HKOpenApi.downloadAuthorityByPersonIds(downloadAuthorityByPersonIdsMap);
|
161
|
|
-
|
|
171
|
+ downloadAuthorityByPersonIdsMap.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
|
|
172
|
+ String downloadAuthorityJSON = HKOpenApi.downloadAuthorityByPersonIds(downloadAuthorityByPersonIdsMap);
|
|
173
|
+ validHKError(downloadAuthorityJSON);
|
162
|
174
|
}
|
163
|
175
|
|
164
|
|
- //--------- 可视对讲 ----------
|
165
|
|
-
|
166
|
|
- Map<String,Object> addOutDoorAuthMap = Maps.newHashMap();
|
167
|
|
- // app用户权限勿动
|
168
|
|
- addOutDoorAuthMap.put("authName", unitHkSetting.getPermissionId());
|
169
|
|
- addOutDoorAuthMap.put("personIds", Arrays.asList(taUserHk.getHkUserId()));
|
170
|
|
- addOutDoorAuthMap.put("secret", tpEquipmentTree.getSecret());
|
171
|
|
- addOutDoorAuthMap.put("appkey", tpEquipmentTree.getAppkey());
|
172
|
|
- addOutDoorAuthMap.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
|
173
|
|
- addOutDoorAuthMap.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
|
174
|
|
-
|
175
|
|
- // 单元门口机
|
176
|
|
- List<TpEquipment> visualEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(userVerify.getCommunityId(), userVerify.getUnitId(), 3);
|
177
|
|
- List<String> visualList = visualEquipments.stream()
|
178
|
|
- .map(e-> tpConfigurationMapper.selectById(e.getUuidId()).getConfigurationValue())
|
179
|
|
- .collect(Collectors.toList());
|
180
|
|
-// List<String> visualList = new ArrayList<>();
|
181
|
|
-// visualList.add("10010100000");
|
182
|
|
- addOutDoorAuthMap.put("longNums", visualList);
|
183
|
|
- // 可视对讲下发 权限
|
184
|
|
- visualIntercomPermissions(addOutDoorAuthMap);
|
185
|
|
- if ("0".equals(responseBean.getCode())) {
|
186
|
|
- responseBean.addSuccess("操作成功!");
|
187
|
|
- return responseBean;
|
188
|
|
- }
|
189
|
|
- throw new WisdomException("操作失败!");
|
|
176
|
+ responseBean.addSuccess("操作成功!");
|
|
177
|
+ return responseBean;
|
190
|
178
|
}
|
191
|
179
|
|
192
|
180
|
@Override
|
|
@@ -206,7 +194,7 @@ public class HKServiceImpl implements IHKService {
|
206
|
194
|
* @param response
|
207
|
195
|
* @param user
|
208
|
196
|
*/
|
209
|
|
- private void addUserAndOpenCard(ResponseBean response, TaUser user, TpEquipmentTree tpEquipmentTree, TaUserHk taUserHk, TpUnitHkSetting unitHkSetting) {
|
|
197
|
+ private void addUserAndOpenCard(ResponseBean response, TaUser user, TpEquipmentTree tpEquipmentTree, TaUserHk taUserHk, TpUnitHkSetting unitHkSetting, TaUserVerify userVerify) {
|
210
|
198
|
// Map<String, Object> parDept = Maps.newHashMap();
|
211
|
199
|
// parDept.put("pageNo", 1);
|
212
|
200
|
// parDept.put("pageSize", 100);
|
|
@@ -223,14 +211,14 @@ public class HKServiceImpl implements IHKService {
|
223
|
211
|
parUser.put("personNo", taUserHk.getHkPersonNo());
|
224
|
212
|
parUser.put("personName", user.getUserName());
|
225
|
213
|
// parUser.put("phoneNo", user.getLoginName());
|
226
|
|
- parUser.put("deptUuid", unitHkSetting.getDepartmentId());
|
227
|
214
|
parUser.put("remark", user.getLoginName());
|
|
215
|
+ parUser.put("deptUuid", unitHkSetting.getDepartmentId());
|
228
|
216
|
parUser.put("secret", tpEquipmentTree.getSecret());
|
229
|
217
|
parUser.put("appkey", tpEquipmentTree.getAppkey());
|
230
|
|
- parUser.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
|
231
|
218
|
parUser.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
|
|
219
|
+ parUser.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
|
232
|
220
|
Map<String, Object> resultMap = JSONObject.parseObject(HKOpenApi.addUser(parUser), HashMap.class);
|
233
|
|
- int errorCode = (int) resultMap.get("errorCode");
|
|
221
|
+ Integer errorCode = (Integer) resultMap.get("errorCode");
|
234
|
222
|
if (errorCode == 0) {
|
235
|
223
|
Map<String, Object> resultDataMap = (Map<String, Object>) resultMap.get("data");
|
236
|
224
|
|
|
@@ -238,19 +226,17 @@ public class HKServiceImpl implements IHKService {
|
238
|
226
|
Integer personId = (Integer) resultDataMap.get("personId");
|
239
|
227
|
|
240
|
228
|
taUserHk.setHkUserId(personId);
|
241
|
|
- // 存储海康人员ID
|
|
229
|
+
|
242
|
230
|
int row = 0;
|
243
|
231
|
if (null == taUserHk.getId()) {
|
244
|
|
- taUserHk.setTaUserId(user.getUserId());
|
|
232
|
+ // 存储的是审核id
|
|
233
|
+ taUserHk.setTaUserId(userVerify.getUserVerifyId());
|
245
|
234
|
taUserHk.setCommunityId(tpEquipmentTree.getCommunityId());
|
|
235
|
+ taUserHk.setCreateDate(new Date());
|
|
236
|
+ taUserHk.setUpdateDate(new Date());
|
246
|
237
|
// 存储海康人员ID
|
247
|
238
|
row = taUserHkMapper.insert(taUserHk);
|
248
|
|
- taUserHk.setCreateUser(taUserHk.getId());
|
249
|
|
- taUserHk.setCreateDate(new Date());
|
250
|
|
- taUserHkMapper.updateById(taUserHk);
|
251
|
239
|
} else {
|
252
|
|
- taUserHk.setUpdateUser(taUserHk.getId());
|
253
|
|
- taUserHk.setUpdateDate(new Date());
|
254
|
240
|
row = taUserHkMapper.updateById(taUserHk);
|
255
|
241
|
}
|
256
|
242
|
|
|
@@ -340,8 +326,8 @@ public class HKServiceImpl implements IHKService {
|
340
|
326
|
parOpenCard.put("endTime", time);
|
341
|
327
|
parOpenCard.put("secret", tpEquipmentTree.getSecret());
|
342
|
328
|
parOpenCard.put("appkey", tpEquipmentTree.getAppkey());
|
343
|
|
- parOpenCard.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
|
344
|
329
|
parOpenCard.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
|
|
330
|
+ parOpenCard.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
|
345
|
331
|
JSONObject openCardJSON = JSONObject.parseObject(HKOpenApi.openCard(parOpenCard));
|
346
|
332
|
int code = (int) openCardJSON.get("errorCode");
|
347
|
333
|
if (code == 0) {
|
|
@@ -356,6 +342,18 @@ public class HKServiceImpl implements IHKService {
|
356
|
342
|
return response;
|
357
|
343
|
}
|
358
|
344
|
|
|
345
|
+ /**
|
|
346
|
+ * 校验错误
|
|
347
|
+ * @param json
|
|
348
|
+ */
|
|
349
|
+ private void validHKError(String json) {
|
|
350
|
+ Map<String, Object> resultMap = JSONObject.parseObject(json, HashMap.class);
|
|
351
|
+ Integer errorCode = (Integer) resultMap.get("errorCode");
|
|
352
|
+ if (errorCode.intValue() != 0) {
|
|
353
|
+ throw new RuntimeException(String.valueOf(resultMap.get("errorMessage")));
|
|
354
|
+ }
|
|
355
|
+ }
|
|
356
|
+
|
359
|
357
|
/**
|
360
|
358
|
* 获取部门 uuid
|
361
|
359
|
* <p>
|
|
@@ -380,7 +378,7 @@ public class HKServiceImpl implements IHKService {
|
380
|
378
|
private TpUnitHkSetting getUnitHkSetting(Integer communityId, Integer unitId) {
|
381
|
379
|
TpUnitHkSetting tpUnitHkSetting = tpUnitHkSettingMapper.selectByCommunityIdAndUnitId(communityId, unitId);
|
382
|
380
|
if (null == tpUnitHkSetting) {
|
383
|
|
- throw new WisdomException(ResponseErrorsMessages.NOT_PERMISSIONS_SET.getCode(), ResponseErrorsMessages.NOT_PERMISSIONS_SET.getMsg());
|
|
381
|
+ throw new WisdomException("权限组未配置");
|
384
|
382
|
}
|
385
|
383
|
return tpUnitHkSetting;
|
386
|
384
|
}
|
|
@@ -390,14 +388,14 @@ public class HKServiceImpl implements IHKService {
|
390
|
388
|
*
|
391
|
389
|
* @param map
|
392
|
390
|
*/
|
393
|
|
- private void visualIntercomPermissions(Map<String,Object> map) {
|
|
391
|
+ private String visualIntercomPermissions(Map<String,Object> map) {
|
394
|
392
|
// TODO 目前下发的 authName权限组是我们自定义的, 后面肯定是按照小区的 期楼栋号来设置的
|
395
|
393
|
// TODO longNums设备编号, 可视对讲的机器编号, 应该根据 期楼栋号 下面的机器编号来设置的
|
396
|
394
|
|
397
|
395
|
//--------- 可视对讲 ----------
|
398
|
396
|
|
399
|
397
|
// 可视对讲 根据人员 ID 集添加权限并下发
|
400
|
|
- HKOpenApi.addOutDoorAuth(map);
|
|
398
|
+ return HKOpenApi.addOutDoorAuth(map);
|
401
|
399
|
|
402
|
400
|
}
|
403
|
401
|
|
|
@@ -412,61 +410,61 @@ public class HKServiceImpl implements IHKService {
|
412
|
410
|
downloadFingerMap.put("opType", 1);
|
413
|
411
|
downloadFingerMap.put("personIds", map.get("personIds"));
|
414
|
412
|
downloadFingerMap.put("longNums", map.get("longNums"));
|
415
|
|
- downloadFingerMap.put("opUserUuid", map.get("opUserUuid"));
|
416
|
413
|
downloadFingerMap.put("openapi_ip_port_http", map.get("openapi_ip_port_http"));
|
|
414
|
+ downloadFingerMap.put("opUserUuid", map.get("opUserUuid"));
|
417
|
415
|
// 可视对讲 指定人员指纹权限下载
|
418
|
416
|
HKOpenApi.downloadFinger(downloadFingerMap);
|
419
|
417
|
}
|
420
|
418
|
|
421
|
419
|
@Override
|
422
|
|
- public ResponseBean syncControl(Integer userVerifyId) {
|
423
|
|
- // TODO 暂时只支持开单元门
|
|
420
|
+ public ResponseBean visualIntercomPermissions(TpUnitHkSetting unitHkSetting, TpEquipmentTree tpEquipmentTree, TaUserHk taUserHk, TaUserVerify userVerify) {
|
424
|
421
|
|
425
|
422
|
ResponseBean responseBean = new ResponseBean();
|
426
|
423
|
|
427
|
|
- // 查询当前的房产
|
428
|
|
- TaUserVerify userVerify = taUserVerifyMapper.selectById(userVerifyId);
|
429
|
|
- TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
|
430
|
|
- // 单元门口机
|
431
|
|
- List<TpEquipment> tpEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(userVerify.getCommunityId(), userVerify.getUnitId(), 3);
|
|
424
|
+ if (null == unitHkSetting) {
|
|
425
|
+ responseBean.addError("海康权限信息 未配置");
|
|
426
|
+ return responseBean;
|
|
427
|
+ }
|
432
|
428
|
|
433
|
|
- if (CollectionUtils.isEmpty(tpEquipments)) {
|
434
|
|
- responseBean.addError("无设备信息!");
|
|
429
|
+ if (null == tpEquipmentTree) {
|
|
430
|
+ responseBean.addError("设备树 未配置");
|
435
|
431
|
return responseBean;
|
436
|
432
|
}
|
437
|
433
|
|
438
|
|
- String str = "";
|
439
|
|
- for (TpEquipment e : tpEquipments) {
|
440
|
|
- TpConfiguration tpConfiguration = tpConfigurationMapper.selectById(e.getUuidId());
|
441
|
|
- str += tpConfiguration.getConfigurationValue();
|
442
|
|
- str += ",";
|
|
434
|
+ if (null == userVerify) {
|
|
435
|
+ responseBean.addError("审核数据 不能为null");
|
|
436
|
+ return responseBean;
|
443
|
437
|
}
|
444
|
438
|
|
445
|
|
- // 查询设备编号
|
446
|
|
-
|
447
|
|
- Map<String,Object> parMap = com.beust.jcommander.internal.Maps.newHashMap();
|
448
|
|
- parMap.put("longNums", str);
|
449
|
|
- parMap.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
|
450
|
|
- parMap.put("secret", tpEquipmentTree.getSecret());
|
451
|
|
- parMap.put("appkey", tpEquipmentTree.getAppkey());
|
452
|
|
- parMap.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
|
453
|
|
- String data = HKOpenApi.syncControl(parMap);
|
454
|
|
- JSONObject jsonObject = JSONObject.parseObject(data);
|
455
|
|
- int errorCode = jsonObject.getInteger("errorCode");
|
456
|
|
- if (errorCode == 0) {
|
457
|
|
-//
|
458
|
|
-// // 记录 远程开门次数
|
459
|
|
-// TaRemotelyDoor taRemotelyDoor = new TaRemotelyDoor();
|
460
|
|
-// taRemotelyDoor.setCommunityId(userVerify.getCommunityId());
|
461
|
|
-// taRemotelyDoor.setTaUserVerifyId(userVerify.getUserId());
|
462
|
|
-// taRemotelyDoor.setUnitId(userVerify.getUnitId());
|
463
|
|
-// taRemotelyDoor.setCreateDate(new Date());
|
464
|
|
-// taRemotelyDoorMapper.insertSelective(taRemotelyDoor);
|
465
|
|
-//
|
466
|
|
-// responseBean.addSuccess("操作成功!");
|
467
|
|
-// return responseBean;
|
|
439
|
+ //--------- 可视对讲 ----------
|
|
440
|
+
|
|
441
|
+ Map<String,Object> addOutDoorAuthMap = Maps.newHashMap();
|
|
442
|
+ // app用户权限勿动
|
|
443
|
+ addOutDoorAuthMap.put("authName", unitHkSetting.getPermissionId());
|
|
444
|
+ addOutDoorAuthMap.put("personIds", Arrays.asList(taUserHk.getHkUserId()));
|
|
445
|
+ addOutDoorAuthMap.put("secret", tpEquipmentTree.getSecret());
|
|
446
|
+ addOutDoorAuthMap.put("appkey", tpEquipmentTree.getAppkey());
|
|
447
|
+ addOutDoorAuthMap.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
|
|
448
|
+ addOutDoorAuthMap.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
|
|
449
|
+
|
|
450
|
+ // 单元门口机
|
|
451
|
+ List<TpEquipment> visualEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(userVerify.getCommunityId(), userVerify.getUnitId(), 3);
|
|
452
|
+ List<String> visualList = visualEquipments.stream()
|
|
453
|
+ .map(e-> tpConfigurationMapper.selectById(e.getUuidId()).getConfigurationValue())
|
|
454
|
+ .collect(Collectors.toList());
|
|
455
|
+// List<String> visualList = new ArrayList<>();
|
|
456
|
+// visualList.add("10010100000");
|
|
457
|
+ addOutDoorAuthMap.put("longNums", visualList);
|
|
458
|
+ // 可视对讲下发 权限
|
|
459
|
+ String permissionsJSON = visualIntercomPermissions(addOutDoorAuthMap);
|
|
460
|
+ JSONObject addCardsJsonObject = JSONObject.parseObject(permissionsJSON);
|
|
461
|
+ Integer addCardsResultCode = addCardsJsonObject.getInteger("errorCode");
|
|
462
|
+ if (0 == addCardsResultCode.intValue()) {
|
|
463
|
+ responseBean.addSuccess("操作成功!");
|
|
464
|
+ return responseBean;
|
468
|
465
|
}
|
469
|
|
- responseBean.addError("操作失败!");
|
470
|
|
- return responseBean;
|
|
466
|
+
|
|
467
|
+ responseBean.addError("操作失败");
|
|
468
|
+ throw new RuntimeException(addCardsJsonObject.getString("errorMessage"));
|
471
|
469
|
}
|
472
|
470
|
}
|