From 9300f6545d984345ec1e399b6d51a7e5d6969b60 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Mon, 15 Apr 2024 17:01:23 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E5=A4=96=E9=83=A8=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=BA=BA=E8=84=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/GainfoFacesController.cs | 32 ++++++++++++ .../Request/GainfoUploadFaceRequest.cs | 6 +-- .../Services/IGainfoFaceService.cs | 8 +++ .../Services/Implements/GainfoFaceService.cs | 51 +++++++++++++++++++ 4 files changed, 94 insertions(+), 3 deletions(-) create mode 100644 Src/Dlhis.Basic/Organization/Controllers/GainfoFacesController.cs create mode 100644 Src/Dlhis.Basic/Organization/Services/IGainfoFaceService.cs create mode 100644 Src/Dlhis.Basic/Organization/Services/Implements/GainfoFaceService.cs diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfoFacesController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfoFacesController.cs new file mode 100644 index 00000000..124b041d --- /dev/null +++ b/Src/Dlhis.Basic/Organization/Controllers/GainfoFacesController.cs @@ -0,0 +1,32 @@ +using Dlhis.Basic.Organization.Request; +using Dlhis.Basic.Organization.Services; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Dlhis.Basic.Organization.Controllers; + +/// +/// 人员face +/// +[Route("api/[controller]")] +[ApiController] +public class GainfoFacesController : ControllerBase +{ + private readonly IGainfoFaceService _gainfoFaceService; + + public GainfoFacesController(IGainfoFaceService gainfoFaceService) + { + _gainfoFaceService = gainfoFaceService; + } + + /// + /// 上传外部人员人脸照片 + /// + /// + [AllowAnonymous] + [HttpPost("external/face")] + public async Task UploadExternalFaceAsync(GainfoUploadFaceRequest request) + { + await _gainfoFaceService.UploadExternalFaceAsync(request); + } +} diff --git a/Src/Dlhis.Basic/Organization/Request/GainfoUploadFaceRequest.cs b/Src/Dlhis.Basic/Organization/Request/GainfoUploadFaceRequest.cs index 55b63b59..955e2b68 100644 --- a/Src/Dlhis.Basic/Organization/Request/GainfoUploadFaceRequest.cs +++ b/Src/Dlhis.Basic/Organization/Request/GainfoUploadFaceRequest.cs @@ -5,13 +5,13 @@ namespace Dlhis.Basic.Organization.Request; public class GainfoUploadFaceRequest : IValidatableObject { /// - /// 用户档案号 + /// no/idno /// - [Required(ErrorMessage = "用户档案号")] + [Required(ErrorMessage = "no/idno不能为空")] public string UserNo { get; set; } /// - /// 人脸照片 + /// 人脸base64 /// [Required(ErrorMessage = "人脸照片不能为空")] public string Face { get; set; } diff --git a/Src/Dlhis.Basic/Organization/Services/IGainfoFaceService.cs b/Src/Dlhis.Basic/Organization/Services/IGainfoFaceService.cs new file mode 100644 index 00000000..e2f00e2f --- /dev/null +++ b/Src/Dlhis.Basic/Organization/Services/IGainfoFaceService.cs @@ -0,0 +1,8 @@ +using Dlhis.Basic.Organization.Request; + +namespace Dlhis.Basic.Organization.Services; + +public interface IGainfoFaceService : IScopeDependency +{ + Task UploadExternalFaceAsync(GainfoUploadFaceRequest request); +} diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoFaceService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoFaceService.cs new file mode 100644 index 00000000..2b91d5d8 --- /dev/null +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoFaceService.cs @@ -0,0 +1,51 @@ +using Dlhis.Basic.Organization.Request; +using Dlhis.Entity.Basic.Entity; +using Dlhis.Entity.Basic.Enums; +using Kurisu.AspNetCore.Utils.Extensions; +using Kurisu.SqlSugar.Services; + +namespace Dlhis.Basic.Organization.Services.Implements; + +public class GainfoFaceService : IGainfoFaceService +{ + private readonly IGainfoStore _gainfoStore; + private readonly IDbContext _dbContext; + + public GainfoFaceService(IGainfoStore gainfoStore, IDbContext dbContext) + { + _gainfoStore = gainfoStore; + _dbContext = dbContext; + } + + public async Task UploadExternalFaceAsync(GainfoUploadFaceRequest request) + { + var gainfo = await _gainfoStore.Queryable(GainfoStatusEnumType.External).Where(x => x.No == request.UserNo).FirstAsync(); + gainfo.ThrowIfNull("人员信息不存在"); + + var faceContext = _dbContext.ChangeDb("face"); + var face = await faceContext.Queryable().Where(x => x.UserCode == gainfo.Code).SingleAsync(); + + if (face == null) + { + face = new GainfoFaceEntity + { + UserCode = gainfo.Code, + Face = request.Face, + CreateTime = DateTime.Now, + ModifiedTime = DateTime.Now, + CreatedBy = 1, + ModifiedBy = 1 + }; + + await faceContext.InsertAsync(face); + } + else + { + face.Face = request.Face; + face.ModifiedBy = 1; + face.ModifiedTime = DateTime.Now; + + await faceContext.UpdateAsync(face); + } + } +}