From 322079529983e403be54745cd3041aa966020f32 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Fri, 18 Jul 2025 12:11:05 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=A4=96=E9=83=A8=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E6=8B=8D=E7=85=A7=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/Implements/GainfoFaceService.cs | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoFaceService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoFaceService.cs index fbebac61..5645ca05 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoFaceService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoFaceService.cs @@ -137,8 +137,35 @@ public class GainfoFaceService : IGainfoFaceService .SingleAsync(); gainfo.ThrowIfNull("人员信息不存在"); - + var face = await _faceDbContext.Queryable().Where(x => x.UserCode == gainfo.Code).SingleAsync(); + var faceSimilaritySetting = await _dbContext.Queryable().Where(x => x.Type == "faceSimilarity").SingleAsync(); + if (faceSimilaritySetting != null) + { + var faceSimilarity = await _hikService.GetSimilarityAsync(new GainfoFaceValidateRequest + { + SrcFacePicBinaryData = face.Face, + DistFacePicBinaryData = request.Face + }); + var acceptSimilarity = faceSimilaritySetting.Code.Adapt(); + + var isError = faceSimilarity < acceptSimilarity; + await _dbContext.InsertAsync(new HikValidateResultEntity + { + UserCode = face.UserCode, + Similarity = faceSimilarity, + AcceptSimilarity = acceptSimilarity, + CurrentFace = face.Face, + UploadFace = request.Face, + TenantId = gainfo.Factory, + }); + + if (isError) + { + throw new UserFriendlyException($"系统检测非本人更新,请重试(相似度{faceSimilarity})"); + } + } + var taskType = face == null ? DeviceTaskEnumType.Add : DeviceTaskEnumType.Update; if (face == null) {