Kaynağa Gözat

Merge branch 'usky-zyj' of uskycloud/usky-modules into server-165

James 1 yıl önce
ebeveyn
işleme
cf7a27680b

+ 3 - 2
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/controller/web/MeetingFaceController.java

@@ -11,6 +11,7 @@ import com.usky.meeting.annotation.FaceLog;
 import com.usky.meeting.domain.MeetingFace;
 import com.usky.meeting.service.MeetingFaceService;
 import com.usky.meeting.service.vo.FaceResultVO;
+import com.usky.meeting.service.vo.MeetingFaceVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -40,8 +41,8 @@ public class MeetingFaceController {
     @PostMapping("/vef")
     @ApiOperation(value="人脸验证", notes="根据传入的base64编码和数据的base64编码进行对比")
     @FaceLog
-    public FaceResultVO faceVef(@RequestBody String imageBase){
-        return faceService.vef(imageBase);
+    public ApiResult<MeetingFaceVO> faceVef(@RequestBody String imageBase){
+        return ApiResult.success(faceService.vef(imageBase));
     }
 
     @GetMapping("/faceList")

+ 2 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/domain/MeetingDevice.java

@@ -5,6 +5,7 @@ import java.io.Serializable;
 
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -29,6 +30,7 @@ public class MeetingDevice implements Serializable {
 
     @Id
     @TableId
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
     private Long deviceId;
 
     /**

+ 5 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/domain/MeetingFace.java

@@ -82,5 +82,10 @@ public class MeetingFace implements Serializable {
      */
     private Integer tenantId;
 
+    /**
+     * 用户ID
+     */
+    private Long userId;
+
 
 }

+ 2 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/domain/MeetingFloor.java

@@ -5,6 +5,7 @@ import java.io.Serializable;
 
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -29,6 +30,7 @@ public class MeetingFloor implements Serializable {
 
     @Id
     @TableId
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
     private Long floorId;
 
     /**

+ 2 - 1
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/MeetingFaceService.java

@@ -3,6 +3,7 @@ package com.usky.meeting.service;
 import com.usky.meeting.domain.MeetingFace;
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.meeting.service.vo.FaceResultVO;
+import com.usky.meeting.service.vo.MeetingFaceVO;
 
 /**
  * <p>
@@ -19,5 +20,5 @@ public interface MeetingFaceService extends CrudService<MeetingFace> {
      * @param imageBase
      * @return
      */
-    FaceResultVO vef(String imageBase);
+    MeetingFaceVO vef(String imageBase);
 }

+ 35 - 34
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/impl/MeetingFaceServiceImpl.java

@@ -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;
+//    }
 }

+ 22 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/vo/MeetingFaceVO.java

@@ -0,0 +1,22 @@
+package com.usky.meeting.service.vo;
+
+import lombok.Data;
+
+@Data
+public class MeetingFaceVO {
+
+    /**
+     * 返回消息
+     */
+    private String msg;
+
+    /**
+     * 人脸名称
+     */
+    private String faceName;
+
+    /**
+     * 用户ID
+     */
+    private Long userId;
+}

+ 1 - 0
service-meeting/service-meeting-biz/src/main/resources/mapper/meeting/MeetingFaceMapper.xml

@@ -16,6 +16,7 @@
         <result column="update_extend3" property="updateExtend3" />
         <result column="dept_id" property="deptId" />
         <result column="tenant_id" property="tenantId" />
+        <result column="user_id" property="userId" />
     </resultMap>
 
 </mapper>