feat 外部人员上传人脸

This commit is contained in:
2024-04-15 17:01:23 +08:00
parent 48bb170272
commit 9300f6545d
4 changed files with 94 additions and 3 deletions

View File

@@ -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;
/// <summary>
/// 人员face
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class GainfoFacesController : ControllerBase
{
private readonly IGainfoFaceService _gainfoFaceService;
public GainfoFacesController(IGainfoFaceService gainfoFaceService)
{
_gainfoFaceService = gainfoFaceService;
}
/// <summary>
/// 上传外部人员人脸照片
/// </summary>
/// <returns></returns>
[AllowAnonymous]
[HttpPost("external/face")]
public async Task UploadExternalFaceAsync(GainfoUploadFaceRequest request)
{
await _gainfoFaceService.UploadExternalFaceAsync(request);
}
}

View File

@@ -5,13 +5,13 @@ namespace Dlhis.Basic.Organization.Request;
public class GainfoUploadFaceRequest : IValidatableObject
{
/// <summary>
/// 用户档案号
/// no/idno
/// </summary>
[Required(ErrorMessage = "用户档案号")]
[Required(ErrorMessage = "no/idno不能为空")]
public string UserNo { get; set; }
/// <summary>
/// 人脸照片
/// 人脸base64
/// </summary>
[Required(ErrorMessage = "人脸照片不能为空")]
public string Face { get; set; }

View File

@@ -0,0 +1,8 @@
using Dlhis.Basic.Organization.Request;
namespace Dlhis.Basic.Organization.Services;
public interface IGainfoFaceService : IScopeDependency
{
Task UploadExternalFaceAsync(GainfoUploadFaceRequest request);
}

View File

@@ -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<GainfoFaceEntity>().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);
}
}
}