|
@@ -72,6 +72,9 @@ public class FaceServicelimpl extends ServiceImpl<TaFaceMapper, TaFace> impleme
|
72
|
72
|
@Autowired
|
73
|
73
|
private TaUserHkMapper taUserHkMapper;
|
74
|
74
|
|
|
75
|
+ @Autowired
|
|
76
|
+ private TpUnitHkSettingMapper tpUnitHkSettingMapper;
|
|
77
|
+
|
75
|
78
|
@Override
|
76
|
79
|
@Transactional(rollbackFor = Exception.class)
|
77
|
80
|
public ResponseBean addFace(Integer userId, Integer userVerifyId, MultipartFile uploadFile) {
|
|
@@ -83,8 +86,6 @@ public class FaceServicelimpl extends ServiceImpl<TaFaceMapper, TaFace> impleme
|
83
|
86
|
return responseBean;
|
84
|
87
|
}
|
85
|
88
|
|
86
|
|
- TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
|
87
|
|
-
|
88
|
89
|
// 当前人脸图片url
|
89
|
90
|
String faceImg = img(uploadFile);
|
90
|
91
|
|
|
@@ -105,7 +106,7 @@ public class FaceServicelimpl extends ServiceImpl<TaFaceMapper, TaFace> impleme
|
105
|
106
|
taFace.setUpdateDate(new Date());
|
106
|
107
|
|
107
|
108
|
/*验证身份*/
|
108
|
|
- responseBean = addVerify(userId, userVerifyId, uploadFile, faceImg, taFace, tpEquipmentTree);
|
|
109
|
+ responseBean = addVerify(userId, userVerifyId, uploadFile, faceImg, taFace);
|
109
|
110
|
return responseBean;
|
110
|
111
|
}
|
111
|
112
|
|
|
@@ -128,7 +129,6 @@ public class FaceServicelimpl extends ServiceImpl<TaFaceMapper, TaFace> impleme
|
128
|
129
|
return responseBean;
|
129
|
130
|
}
|
130
|
131
|
|
131
|
|
- TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
|
132
|
132
|
// 人脸图片地址url
|
133
|
133
|
String faceImg = img(uploadFile);
|
134
|
134
|
|
|
@@ -141,6 +141,12 @@ public class FaceServicelimpl extends ServiceImpl<TaFaceMapper, TaFace> impleme
|
141
|
141
|
// 海康数据
|
142
|
142
|
TaUserHk taUserHk = taUserHkMapper.selectByUserVerifyIdAndCommunityId(userVerify.getUserVerifyId(), userVerify.getCommunityId());
|
143
|
143
|
|
|
144
|
+ // 海康权限信息
|
|
145
|
+ TpUnitHkSetting tpUnitHkSetting = getUnitHkSetting(userVerify.getCommunityId(), userVerify.getUnitId());
|
|
146
|
+
|
|
147
|
+ // 设备树
|
|
148
|
+ TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
|
|
149
|
+
|
144
|
150
|
//当前修改的id否存在
|
145
|
151
|
TaFace face = taFaceMapper.getByUserVerifyId(userVerifyId);
|
146
|
152
|
if (null == face) {
|
|
@@ -152,7 +158,7 @@ public class FaceServicelimpl extends ServiceImpl<TaFaceMapper, TaFace> impleme
|
152
|
158
|
face.setFaceImg(faceImg);
|
153
|
159
|
face.setUpdateUser(userId);
|
154
|
160
|
face.setUpdateDate(new Date());
|
155
|
|
- ResponseBean resps = checKout(faceImg, face, false, uploadFile, userId, userVerify.getCommunityId(), userVerify.getRoomNoId(), userVerify.getUnitId(), tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer(), tpEquipmentTree.getOpUserUuid(), taUserHk);
|
|
161
|
+ ResponseBean resps = checKout(faceImg, face, false, uploadFile, tpUnitHkSetting, userVerify, tpEquipmentTree, taUserHk);
|
156
|
162
|
if (resps.getCode().equals("0")) {
|
157
|
163
|
resps.addSuccess(face);
|
158
|
164
|
} else {
|
|
@@ -167,20 +173,34 @@ public class FaceServicelimpl extends ServiceImpl<TaFaceMapper, TaFace> impleme
|
167
|
173
|
* @param taFace
|
168
|
174
|
* @param isA
|
169
|
175
|
* @param uploadFile
|
170
|
|
- * @param userId
|
171
|
|
- * @param communityId
|
172
|
|
- * @param roomNoId
|
173
|
|
- * @param unitId
|
174
|
|
- * @param appkey
|
175
|
|
- * @param secret
|
176
|
|
- * @param openapi_ip_port_http 海康服务器地址
|
|
176
|
+ * @param unitHkSetting
|
|
177
|
+ * @param userVerify
|
|
178
|
+ * @param tpEquipmentTree
|
|
179
|
+ * @param taUserHk
|
177
|
180
|
* @return
|
178
|
181
|
*/
|
179
|
|
- public ResponseBean checKout(String faceImg, TaFace taFace, boolean isA, MultipartFile uploadFile, Integer userId, Integer communityId, Integer roomNoId, Integer unitId, String appkey, String secret, String openapi_ip_port_http,String opUserUuid, TaUserHk taUserHk) {
|
|
182
|
+ public ResponseBean checKout(String faceImg, TaFace taFace, boolean isA, MultipartFile uploadFile, TpUnitHkSetting unitHkSetting , TaUserVerify userVerify, TpEquipmentTree tpEquipmentTree, TaUserHk taUserHk) {
|
180
|
183
|
ResponseBean responseBean = new ResponseBean();
|
181
|
|
- TaUser user = taUserMapper.selectById(userId);
|
|
184
|
+
|
|
185
|
+ if (null == unitHkSetting) {
|
|
186
|
+ responseBean.addError(ResponseErrorsMessages.NO_HK_AUTH.getCode(), ResponseErrorsMessages.NO_HK_AUTH.getMsg());
|
|
187
|
+ return responseBean;
|
|
188
|
+ }
|
|
189
|
+
|
|
190
|
+ if (null == tpEquipmentTree) {
|
|
191
|
+ responseBean.addError(ResponseErrorsMessages.NO_ET.getCode(), ResponseErrorsMessages.NO_ET.getMsg());
|
|
192
|
+ return responseBean;
|
|
193
|
+ }
|
|
194
|
+
|
|
195
|
+ if (null == userVerify) {
|
|
196
|
+ responseBean.addError(ResponseErrorsMessages.NOT_VERIFY.getCode(), ResponseErrorsMessages.NOT_VERIFY.getMsg());
|
|
197
|
+ return responseBean;
|
|
198
|
+ }
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+ TaUser user = taUserMapper.selectById(userVerify.getUserId());
|
182
|
202
|
if (taUserHk.getHkUserId() == null) {
|
183
|
|
- log.error("本地库人员ID:{} 的海康人员ID不存在", userId);
|
|
203
|
+ log.error("本地库人员ID:{} 的海康人员ID不存在", userVerify.getUserId());
|
184
|
204
|
throw new WisdomException(ResponseErrorsMessages.NOT_PUSH_FACE.getCode(), ResponseErrorsMessages.NOT_PUSH_FACE.getMsg());
|
185
|
205
|
}
|
186
|
206
|
AESDecode aesd = new AESDecode();
|
|
@@ -192,25 +212,39 @@ public class FaceServicelimpl extends ServiceImpl<TaFaceMapper, TaFace> impleme
|
192
|
212
|
Integer faceNum = (Integer) jsonObject.get("face_num");
|
193
|
213
|
|
194
|
214
|
/*推送海康*/
|
195
|
|
- String data = HKOpenApi.HKpersonGroupId(uploadFile, taUserHk.getHkUserId(), taUserHk.getHkPersonNo(), user.getUserName(), taUserHk.getHkCardNo(), appkey, secret, openapi_ip_port_http, opUserUuid);
|
|
215
|
+ // 修改人脸操作
|
|
216
|
+ String data = HKOpenApi.HKpersonGroupId(uploadFile, taUserHk.getHkUserId(), taUserHk.getHkPersonNo(), user.getUserName(), taUserHk.getHkCardNo(), tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer(), tpEquipmentTree.getOpUserUuid());
|
|
217
|
+
|
|
218
|
+ // 等待 1s
|
|
219
|
+ Thread.sleep(1000);
|
|
220
|
+
|
196
|
221
|
/*boolean isA为true进行添加,为false进行修改*/
|
197
|
222
|
if (0 == type && 1 == faceNum) {
|
198
|
223
|
if (null == data) {
|
199
|
|
- log.error("未得到,海康数据反馈!");
|
200
|
|
- throw new WisdomException(ResponseErrorsMessages.NOT_PUSH_FACE.getCode(), ResponseErrorsMessages.NOT_PUSH_FACE.getMsg());
|
|
224
|
+ log.error("海康人脸推送失败!");
|
|
225
|
+ throw new RuntimeException("人脸推送失败!");
|
201
|
226
|
}
|
|
227
|
+
|
|
228
|
+ // 下发卡权限
|
|
229
|
+ // 下发可是对讲卡权限
|
|
230
|
+ ihkService.visualIntercomPermissions(unitHkSetting, tpEquipmentTree, taUserHk, userVerify, user);
|
|
231
|
+
|
202
|
232
|
if (isA) {
|
203
|
233
|
taFaceMapper.insert(taFace);
|
204
|
234
|
} else {
|
205
|
235
|
taFaceMapper.updateById(taFace);
|
206
|
236
|
}
|
|
237
|
+
|
|
238
|
+ // 等待 1s
|
|
239
|
+ Thread.sleep(3000);
|
|
240
|
+
|
|
241
|
+ responseBean.addSuccess("操作成功");
|
|
242
|
+
|
207
|
243
|
responseBean.addSuccess(taFace);
|
208
|
244
|
|
209
|
|
- // 设备树
|
210
|
|
- TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(communityId);
|
211
|
245
|
// 所有设备
|
212
|
246
|
//List<TpEquipment> tpEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(communityId, unitId, 4);
|
213
|
|
- List<TpEquipment> tpEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitIdAndFace(communityId, unitId, 4);
|
|
247
|
+ List<TpEquipment> tpEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitIdAndFace(tpEquipmentTree.getCommunityId(), userVerify.getUnitId(), 4);
|
214
|
248
|
if (CollectionUtils.isNotEmpty(tpEquipments)) {
|
215
|
249
|
List<Map<String, Object>> equipmentUUID = getEquipmentUUID(tpEquipments);
|
216
|
250
|
StringBuilder doorUuids = new StringBuilder();
|
|
@@ -235,7 +269,7 @@ public class FaceServicelimpl extends ServiceImpl<TaFaceMapper, TaFace> impleme
|
235
|
269
|
}
|
236
|
270
|
|
237
|
271
|
// 单元门口机
|
238
|
|
- List<TpEquipment> visualEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(communityId, unitId, 3);
|
|
272
|
+ List<TpEquipment> visualEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(tpEquipmentTree.getCommunityId(), userVerify.getUnitId(), 3);
|
239
|
273
|
if (CollectionUtils.isNotEmpty(visualEquipments)) {
|
240
|
274
|
List<String> visualList = visualEquipments.stream()
|
241
|
275
|
.map(e-> tpConfigurationMapper.selectById(e.getUuidId()).getConfigurationValue())
|
|
@@ -318,7 +352,7 @@ public class FaceServicelimpl extends ServiceImpl<TaFaceMapper, TaFace> impleme
|
318
|
352
|
/**
|
319
|
353
|
* 各种身份校验
|
320
|
354
|
*/
|
321
|
|
- public ResponseBean addVerify(Integer userid, Integer userVerifyId, MultipartFile uploadFile, String faceImg, TaFace taFace, TpEquipmentTree tpEquipmentTree) {
|
|
355
|
+ public ResponseBean addVerify(Integer userid, Integer userVerifyId, MultipartFile uploadFile, String faceImg, TaFace taFace) {
|
322
|
356
|
ResponseBean response = new ResponseBean();
|
323
|
357
|
|
324
|
358
|
TaUserVerify userVerify = taUserVerifyMapper.selectById(userVerifyId);
|
|
@@ -337,12 +371,19 @@ public class FaceServicelimpl extends ServiceImpl<TaFaceMapper, TaFace> impleme
|
337
|
371
|
// 海康数据
|
338
|
372
|
TaUserHk taUserHk = taUserHkMapper.selectByUserVerifyIdAndCommunityId(userVerify.getUserVerifyId(), userVerify.getCommunityId());
|
339
|
373
|
|
|
374
|
+ // 海康权限信息
|
|
375
|
+ TpUnitHkSetting tpUnitHkSetting = getUnitHkSetting(userVerify.getCommunityId(), userVerify.getUnitId());
|
|
376
|
+
|
|
377
|
+ // 设备树
|
|
378
|
+ TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
|
|
379
|
+
|
|
380
|
+
|
340
|
381
|
//查询当前用户是否有人脸记录
|
341
|
382
|
TaFace face = taFaceMapper.getByUserVerifyId(userVerifyId);
|
342
|
383
|
if (null == face) {
|
343
|
384
|
boolean isA = true;
|
344
|
385
|
if (Constant.EFFECTIVE_STATUS.equals(taUser.getStatus())) {
|
345
|
|
- ResponseBean responseBean = checKout(faceImg, taFace, isA, uploadFile, userid, userVerify.getCommunityId(), userVerify.getRoomNoId(), userVerify.getUnitId(),tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer(), tpEquipmentTree.getOpUserUuid(), taUserHk);
|
|
386
|
+ ResponseBean responseBean = checKout(faceImg, taFace, isA, uploadFile, tpUnitHkSetting, userVerify,tpEquipmentTree, taUserHk);
|
346
|
387
|
if (responseBean.getCode().equals("0")) {
|
347
|
388
|
responseBean.addSuccess("人脸录入成功");
|
348
|
389
|
} else {
|
|
@@ -355,6 +396,18 @@ public class FaceServicelimpl extends ServiceImpl<TaFaceMapper, TaFace> impleme
|
355
|
396
|
return response;
|
356
|
397
|
}
|
357
|
398
|
|
|
399
|
+ /**
|
|
400
|
+ * 海康权限组
|
|
401
|
+ * @return
|
|
402
|
+ */
|
|
403
|
+ private TpUnitHkSetting getUnitHkSetting(Integer communityId, Integer unitId) {
|
|
404
|
+ TpUnitHkSetting tpUnitHkSetting = tpUnitHkSettingMapper.selectByCommunityIdAndUnitId(communityId, unitId);
|
|
405
|
+ if (null == tpUnitHkSetting) {
|
|
406
|
+ throw new WisdomException("权限组未配置");
|
|
407
|
+ }
|
|
408
|
+ return tpUnitHkSetting;
|
|
409
|
+ }
|
|
410
|
+
|
358
|
411
|
@Override
|
359
|
412
|
public ResponseBean deleteFace(Integer userId, Integer userVerifyId) {
|
360
|
413
|
ResponseBean responseBean= new ResponseBean();
|