public ActionResult FaceCheck(FaceRegisterRequest request)
        {
            FaceCheckResponse response = BaiduApiBll.FaceCheck(request.ImgPath, request.ImgType);

            if (response.result == null)
            {
                return(Json(new JsonSimpleResponse()
                {
                    State = false, ErrorMsg = "检测异常"
                }));
            }
            var faceInfo = response.result.face_list.FirstOrDefault();

            if (response.error_code == 0 && response.result.face_num == 1 && faceInfo.face_probability == 1 && faceInfo.liveness.livemapscore >= 0.8 && faceInfo.quality.blur == 0 && faceInfo.quality.completeness == 1 && faceInfo.quality.illumination > 40 && faceInfo.angle.pitch < 20 && faceInfo.angle.pitch > -20 && faceInfo.angle.roll < 20 && faceInfo.angle.roll > -20 && faceInfo.angle.yaw < 20 && faceInfo.angle.yaw > -20 && faceInfo.quality.occlusion.left_eye <= 0.6 && faceInfo.quality.occlusion.right_eye <= 0.6 && faceInfo.quality.occlusion.nose <= 0.7 && faceInfo.quality.occlusion.mouth <= 0.7 && faceInfo.quality.occlusion.left_cheek <= 0.8 && faceInfo.quality.occlusion.rigth_cheek <= 0.8 && faceInfo.quality.occlusion.chin <= 0.6)
            {
                return(Json(new JsonSimpleResponse()
                {
                    State = true, ErrorMsg = "检测通过"
                }));
            }
            return(Json(new JsonSimpleResponse()
            {
                State = false, ErrorMsg = "检测异常"
            }));
        }
        public ActionResult UpdateFace(FaceRegisterRequest request)
        {
            StudentInfoBll studentInfoBll = new StudentInfoBll();
            var            response       = BaiduApiBll.FaceUpdate(request.ImgPath, request.ImgType, GetCurrentUser().StudentId.ToString(), request.UserInfo);

            if (response.error_code == 0)
            {
                var result = studentInfoBll.UpdatePassportKey(GetCurrentUser().StudentId, response.result.face_token);
                return(Json(new JsonResponse <FaceRecognitionResponse>()
                {
                    Data = response, ErrorCode = 1, ErrorMsg = "操作成功"
                }));
            }
            return(Json(new JsonResponse <FaceRecognitionResponse>()
            {
                Data = response, ErrorCode = 0, ErrorMsg = "操作失败"
            }));
        }
        public ActionResult BindFace(FaceRegisterRequest request)
        {
            FaceRecognitionResponse response = BaiduApiBll.FaceRegister(request.ImgPath, request.ImgType, GetCurrentUser().StudentId.ToString(), request.UserInfo);

            if (response.error_code == 0)
            {
                StudentInfoBll studentInfoBll = new StudentInfoBll();
                studentInfoBll.AddStudentPassport(GetCurrentUser().StudentId, StudentAccountSourceEnum.人脸识别, response.result.face_token, "");
                return(Json(new JsonResponse <FaceRecognitionResponse>()
                {
                    Data = response, ErrorCode = 1, ErrorMsg = "绑定成功"
                }));
            }
            return(Json(new JsonResponse <FaceRecognitionResponse>()
            {
                Data = response, ErrorCode = 0, ErrorMsg = "绑定失败"
            }));
        }
        public ActionResult FaceLogin(FaceRegisterRequest request)
        {
            FaceRecognitionResponse response = BaiduApiBll.FaceLogin(request.ImgPath, request.ImgType);

            //状态码不为0或者识别得分小于80,验证失败
            if (response.error_code > 0 || response.result.user_list.FirstOrDefault().score < 80)
            {
                var errorCode = -1;
                //状态码为18,QPS超限额
                if (response.error_code == 18)
                {
                    errorCode = -2;
                }
                return(Json(new JsonResponse <FaceRecognitionResponse>()
                {
                    State = false, ErrorCode = errorCode, Data = response, ErrorMsg = "登录失败,请稍后再试"
                }));
            }

            StudentInfoBll studentInfoBll  = new StudentInfoBll();
            var            studentPassport = studentInfoBll.GetStudentPassport(response.result.user_list.FirstOrDefault().user_id._ToInt32(), StudentAccountSourceEnum.人脸识别);

            if (studentPassport != null)
            {
                var       sumStudent = studentInfoBll.GetSumStudentTip(studentPassport.Bsp_StudentId);
                LoginInfo info       = sumStudent.ConvertTo <LoginInfo>();
                LoginStudent.Info = JsonConvert.SerializeObject(info);
                return(Json(new JsonSimpleResponse()
                {
                    State = true, ErrorCode = 1, ErrorMsg = "登录成功"
                }));
            }
            return(Json(new JsonSimpleResponse()
            {
                State = false, ErrorCode = -1, ErrorMsg = "登录失败"
            }));
        }