|
@@ -1,6 +1,7 @@
|
|
|
package com.usky.meeting.service.impl;
|
|
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
+import com.usky.common.security.utils.SecurityUtils;
|
|
|
import com.usky.meet.utils.JwtUtils;
|
|
|
import com.usky.meet.utils.TimeUtils;
|
|
|
import com.usky.meeting.domain.MeetingFace;
|
|
@@ -9,6 +10,7 @@ import com.usky.meeting.server.FaceContrastServer;
|
|
|
import com.usky.meeting.service.MeetingFaceService;
|
|
|
import com.usky.common.mybatis.core.AbstractCrudService;
|
|
|
import com.usky.meeting.service.vo.FaceResultVO;
|
|
|
+import com.usky.meeting.service.vo.MeetingFaceVO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -32,14 +34,15 @@ public class MeetingFaceServiceImpl extends AbstractCrudService<MeetingFaceMappe
|
|
|
FaceContrastServer faceContrastServer;
|
|
|
|
|
|
@Override
|
|
|
- public FaceResultVO vef(String imageBase) {
|
|
|
+ public MeetingFaceVO vef(String imageBase) {
|
|
|
imageBase = JSONUtil.parseObj(imageBase).getStr("imageBase");
|
|
|
List<MeetingFace> faceList = lambdaQuery().orderByDesc(MeetingFace::getVefNum).list();
|
|
|
- FaceResultVO faceState = null;
|
|
|
+ MeetingFaceVO faceState = new MeetingFaceVO();
|
|
|
+ MeetingFaceVO faceState1 = new MeetingFaceVO();
|
|
|
// 如果人脸库为空,则第一次登录为录入人脸
|
|
|
- if (faceList.size() == 0){
|
|
|
- return initFace(imageBase);
|
|
|
- }else {
|
|
|
+ if (faceList.size() > 0){
|
|
|
+// return initFace(imageBase);
|
|
|
+// }else {
|
|
|
int faceLength = faceList.size();
|
|
|
for (MeetingFace face : faceList) {
|
|
|
FaceResultVO faceResult = faceContrastServer.faceContrast(face.getFaceBase(), imageBase);
|
|
@@ -50,24 +53,20 @@ public class MeetingFaceServiceImpl extends AbstractCrudService<MeetingFaceMappe
|
|
|
if (face.getFaceStatus() == 0){
|
|
|
// 成功
|
|
|
lambdaUpdate().set(MeetingFace::getVefNum,face.getVefNum()+1).eq(MeetingFace::getFid,face.getFid()).update();
|
|
|
- faceResult.setMsg(TimeUtils.timeQuantum()+"好,"+face.getFaceName());
|
|
|
- faceResult.setName(face.getFaceName());
|
|
|
- Map<String,String> map = new HashMap<>();
|
|
|
- map.put("score",String.valueOf(faceResult.getScore()));
|
|
|
- map.put("faceName",faceResult.getName());
|
|
|
- faceResult.setToken(JwtUtils.genereteToken(map));
|
|
|
- return faceResult;
|
|
|
+ faceState.setMsg(TimeUtils.timeQuantum()+"好,"+face.getFaceName());
|
|
|
+ faceState.setFaceName(face.getFaceName());
|
|
|
+ faceState.setUserId(face.getUserId());
|
|
|
+ return faceState;
|
|
|
}else {
|
|
|
// 失败 人脸被禁用
|
|
|
lambdaUpdate().set(MeetingFace::getVefNum,face.getVefNum()+1).eq(MeetingFace::getFid,face.getFid()).update();
|
|
|
- faceResult.setMsg(face.getFaceName()+",当前人脸被禁用");
|
|
|
- faceResult.setName(face.getFaceName());
|
|
|
- faceResult.setCode(FaceResultVO.FORBIDDEN_FACE);
|
|
|
- faceState = faceResult;
|
|
|
+ faceState1.setMsg(face.getFaceName()+FaceResultVO.FORBIDDEN_FACE+"当前人脸被禁用");
|
|
|
+ faceState1.setFaceName(face.getFaceName());
|
|
|
+ faceState1.setUserId(face.getUserId());
|
|
|
// 就算上一张人脸被禁用还得往下执行
|
|
|
// 可能当前用户存在多张人脸,
|
|
|
if (faceLength == 1){
|
|
|
- return faceResult;
|
|
|
+ return faceState1;
|
|
|
}
|
|
|
faceLength --;
|
|
|
}
|
|
@@ -76,33 +75,35 @@ public class MeetingFaceServiceImpl extends AbstractCrudService<MeetingFaceMappe
|
|
|
if (faceLength == 1){
|
|
|
// 判断当前人脸是否被禁用,如被禁用,提示被禁用
|
|
|
// 禁用优先级大于 没有检测到人脸
|
|
|
- return faceState != null?faceState: FaceResultVO.error(FaceResultVO.NOT_FOUND_FACE,"人脸库不存在该人脸",faceResult.getScore());
|
|
|
+ faceState.setMsg(FaceResultVO.NOT_FOUND_FACE+"人脸库不存在该人脸");
|
|
|
+ return faceState;
|
|
|
}
|
|
|
faceLength --;
|
|
|
}
|
|
|
}else {
|
|
|
// 接口返回异常
|
|
|
- return faceResult;
|
|
|
+ faceState.setMsg("人脸验证接口返回异常");
|
|
|
+ return faceState;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
// 空异常
|
|
|
- return FaceResultVO.error(FaceResultVO.NULL_ERROR,"空指针异常");
|
|
|
+ faceState.setMsg(FaceResultVO.NULL_ERROR+"空指针异常");
|
|
|
+ return faceState;
|
|
|
}
|
|
|
|
|
|
|
|
|
- public FaceResultVO initFace(String imageBase){
|
|
|
- FaceResultVO faceResult = new FaceResultVO();
|
|
|
- MeetingFace face = new MeetingFace();
|
|
|
- face.setFaceBase(imageBase);
|
|
|
- face.setCreateTime(LocalDateTime.now());
|
|
|
- face.setVefNum(0);
|
|
|
- face.setFaceName("admin");
|
|
|
- face.setFaceStatus(0);
|
|
|
- boolean save = save(face);
|
|
|
- faceResult.setCode(FaceResultVO.INIT_FACE);
|
|
|
- faceResult.setMsg("人脸初始化"+(save?"成功":"失败")+","+(save?"请验证登录":"请稍后再试"));
|
|
|
- faceResult.setName(face.getFaceName());
|
|
|
- return faceResult;
|
|
|
- }
|
|
|
+// public MeetingFaceVO initFace(String imageBase){
|
|
|
+// MeetingFaceVO faceResult = new MeetingFaceVO();
|
|
|
+// MeetingFace face = new MeetingFace();
|
|
|
+// face.setFaceBase(imageBase);
|
|
|
+// face.setCreateTime(LocalDateTime.now());
|
|
|
+// face.setVefNum(0);
|
|
|
+// face.setFaceName("admin");
|
|
|
+// face.setFaceStatus(0);
|
|
|
+// boolean save = save(face);
|
|
|
+// faceResult.setMsg("人脸初始化"+(save?"成功":"失败")+","+(save?"请验证登录":"请稍后再试"));
|
|
|
+// faceResult.setFaceName(face.getFaceName());
|
|
|
+// return faceResult;
|
|
|
+// }
|
|
|
}
|