fix 人脸url重新获取

This commit is contained in:
2024-01-15 13:47:29 +08:00
parent 8285e9e7da
commit 10f0918753
8 changed files with 51 additions and 50 deletions

View File

@@ -52,13 +52,13 @@ public class AssignmentsController : ControllerBase
await _assignmentService.UpdateDeviceTaskStatusAsync(request); await _assignmentService.UpdateDeviceTaskStatusAsync(request);
} }
/// <summary> /// <summary>
/// 获取新token /// 获取新人脸照片
/// </summary> /// </summary>
/// <param name="taskId"></param> /// <param name="taskId"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("token")] [HttpGet("renewfaceurl")]
public async Task<string> Token(long taskId) public async Task<string> RenewFaceUrlAsync(long taskId)
{ {
return await _assignmentService.Token(taskId); return await _assignmentService.RenewFaceUrlAsync(taskId);
} }
} }

View File

@@ -21,9 +21,9 @@ public interface IAssignmentService : IScopeDependency
Task UpdateDeviceTaskStatusAsync(UpdateDeviceTaskStatusRequest request); Task UpdateDeviceTaskStatusAsync(UpdateDeviceTaskStatusRequest request);
/// <summary> /// <summary>
/// 获取新token /// 获取新人脸照片
/// </summary> /// </summary>
/// <param name="taskId"></param> /// <param name="taskId"></param>
/// <returns></returns> /// <returns></returns>
Task<string> Token(long taskId); Task<string> RenewFaceUrlAsync(long taskId);
} }

View File

@@ -153,22 +153,21 @@ public class AssignmentService : IAssignmentService
}).ToList(); }).ToList();
}); });
} }
/// <summary> /// <summary>
/// 获取新token /// 获取新token
/// </summary> /// </summary>
/// <param name="taskId"></param> /// <param name="taskId"></param>
/// <returns></returns> /// <returns></returns>
/// <exception cref="NotImplementedException"></exception> /// <exception cref="NotImplementedException"></exception>
public async Task<string> Token(long taskId) public async Task<string> RenewFaceUrlAsync(long taskId)
{ {
var task = await _dbContext.Queryable<DeviceTaskEntity>().Where(x => x.Id == taskId).FirstAsync(); var task = await _dbContext.Queryable<DeviceTaskEntity>().Where(x => x.Id == taskId).FirstAsync();
task.ThrowIfNull("该任务不存在"); task.ThrowIfNull("该任务不存在");
var isSuccess = task.Status != DeviceTaskStatusEnumType.Success ? true : false; (task.Status != DeviceTaskStatusEnumType.Process).ThrowIfTrue($"设备任务下发状态需为{DeviceTaskStatusEnumType.Process.GetDescription()}");
isSuccess.ThrowIfTrue("设备任务下发状态需为完成");
string newtoken=""; return Scoped.Request.Value.Create((sp) =>
Scoped.Request.Value.Create((sp) =>
{ {
FaceUrlOptions faceUrlOptions = sp.GetService<IOptions<FaceUrlOptions>>().Value; FaceUrlOptions faceUrlOptions = sp.GetService<IOptions<FaceUrlOptions>>().Value;
var dataProtectionProvider = sp.GetService<IDataProtectionProvider>(); var dataProtectionProvider = sp.GetService<IDataProtectionProvider>();
@@ -176,14 +175,14 @@ public class AssignmentService : IAssignmentService
var timeLimitedDataProtector = dataProtectionProvider var timeLimitedDataProtector = dataProtectionProvider
.CreateProtector("down:face") .CreateProtector("down:face")
.ToTimeLimitedDataProtector(); .ToTimeLimitedDataProtector();
var userCode = task.UserCode; var userCode = task.UserCode;
var key = $"face:{userCode}"; var key = $"face:{userCode}";
var token = timeLimitedDataProtector.Protect(key, TimeSpan.FromSeconds(faceUrlOptions.Limit)); var token = timeLimitedDataProtector.Protect(key, TimeSpan.FromSeconds(faceUrlOptions.Limit));
newtoken = faceUrlOptions.Url + token;
});
return newtoken; return faceUrlOptions.Url + token;
});
} }

View File

@@ -59,12 +59,12 @@ public class MenusController : ControllerBase
/// <summary> /// <summary>
/// 当前类型的权限分配 /// 当前类型的权限分配
/// </summary> /// </summary>
/// <param name="uniqueType">权限分配类型 MenuAssignmentTypeEnumType</param> /// <param name="uniqueType">权限分配类型 AssignTypeEnumType</param>
/// <param name="uniqueValue">类型对应的唯一值</param> /// <param name="uniqueValue">类型对应的唯一值</param>
/// <returns></returns> /// <returns></returns>
[HttpGet("assignments")] [HttpGet("assignments")]
public async Task<List<string>> GetAssignmentsAsync( public async Task<List<string>> GetAssignmentsAsync(
[EnumDataType(typeof(MenuAssignmentTypeEnumType))] MenuAssignmentTypeEnumType uniqueType, [EnumDataType(typeof(AssignTypeEnumType))] AssignTypeEnumType uniqueType,
[Required] string uniqueValue) [Required] string uniqueValue)
{ {
return await _menuService.GetAssignmentCodesAsync(uniqueType, uniqueValue); return await _menuService.GetAssignmentCodesAsync(uniqueType, uniqueValue);

View File

@@ -6,10 +6,10 @@ namespace Dlhis.Sys.Menu.Request;
public class MenuPermissionAssignmentRequest public class MenuPermissionAssignmentRequest
{ {
/// <summary> /// <summary>
/// 权限类型 MenuAssignmentTypeEnumType /// 权限类型 AssignTypeEnumType
/// </summary> /// </summary>
[EnumDataType(typeof(MenuAssignmentTypeEnumType))] [EnumDataType(typeof(AssignTypeEnumType))]
public MenuAssignmentTypeEnumType UniqueType { get; set; } public AssignTypeEnumType UniqueType { get; set; }
/// <summary> /// <summary>
/// 唯一值 /// 唯一值

View File

@@ -13,7 +13,7 @@ public interface IMenuService : IScopeDependency
Task AssignmentAsync(MenuPermissionAssignmentRequest request); Task AssignmentAsync(MenuPermissionAssignmentRequest request);
Task<List<string>> GetAssignmentCodesAsync(MenuAssignmentTypeEnumType permissionType, string uniqueData); Task<List<string>> GetAssignmentCodesAsync(AssignTypeEnumType permissionType, string uniqueData);
Task<List<string>> GetAllAssignmentPermissionsAsync(); Task<List<string>> GetAllAssignmentPermissionsAsync();

View File

@@ -65,13 +65,14 @@ public class MenuService : IMenuService
public async Task AssignmentAsync(MenuPermissionAssignmentRequest request) public async Task AssignmentAsync(MenuPermissionAssignmentRequest request)
{ {
(request.UniqueType == MenuAssignmentTypeEnumType.Role).ThrowIfTrue("暂不支持角色分配"); (request.UniqueType == AssignTypeEnumType.Role).ThrowIfTrue("暂不支持角色分配");
//清空覆盖 //清空覆盖
var permissionsToDelete = await _dbContext.Queryable<MenuPermissionEntity>() var permissionsToDelete = await _dbContext.Queryable<MenuPermissionEntity>()
.Where(x => x.UniqueType == request.UniqueType) .Where(x => x.UniqueType == request.UniqueType)
.Where(x => x.UniqueValue == request.UniqueValue) .Where(x => x.UniqueValue == request.UniqueValue)
.ToListAsync(); .ToListAsync();
//触发日志记录 //触发日志记录
await _dbContext.DeleteAsync(permissionsToDelete); await _dbContext.DeleteAsync(permissionsToDelete);
@@ -80,13 +81,14 @@ public class MenuService : IMenuService
Code = x, Code = x,
UniqueType = request.UniqueType, UniqueType = request.UniqueType,
UniqueValue = request.UniqueValue UniqueValue = request.UniqueValue
}).ToList(); }).ToList();
await _dbContext.InsertAsync(permissions); await _dbContext.InsertAsync(permissions);
} }
public async Task<List<string>> GetAssignmentCodesAsync(MenuAssignmentTypeEnumType uniqueType, string uniqueData) public async Task<List<string>> GetAssignmentCodesAsync(AssignTypeEnumType uniqueType, string uniqueData)
{ {
var permissionCodes = await _dbContext.Queryable<MenuPermissionEntity>() var permissionCodes = await _dbContext.Queryable<MenuPermissionEntity>()
.Where(x => x.UniqueType == uniqueType) .Where(x => x.UniqueType == uniqueType)
@@ -275,7 +277,7 @@ public class MenuService : IMenuService
// var groupCodes = await GetAssignmentCodesAsync(MenuPermissionTypeEnumType.Group, manager.usergrp); // var groupCodes = await GetAssignmentCodesAsync(MenuPermissionTypeEnumType.Group, manager.usergrp);
//user //user
var userCodes = await GetAssignmentCodesAsync(MenuAssignmentTypeEnumType.User, user.Id.ToString()); var userCodes = await GetAssignmentCodesAsync(AssignTypeEnumType.User, user.Id.ToString());
var all = userCodes;// gP.Concat(uP).Distinct().ToList(); var all = userCodes;// gP.Concat(uP).Distinct().ToList();
return all; return all;

View File

@@ -5,21 +5,22 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
namespace Dlhis.User.Identity.Controllers namespace Dlhis.User.Identity.Controllers;
{
/// <summary>
/// OAuth2认证
/// </summary>
[Route("api/[controller]")] [Route("api/[controller]")]
[ApiController] [ApiController]
public class OAuth2Controller : ControllerBase public class OAuth2Controller : ControllerBase
{ {
private readonly IHttpClientFactory _httpClientFactory; private readonly IHttpClientFactory _httpClientFactory;
private readonly IOptions<IdentityServerOptions> _identityServerOption; private readonly IOptions<IdentityServerOptions> _identityServerOption;
private readonly IServiceProvider _serviceProvider;
public OAuth2Controller(IHttpClientFactory httpClientFactory, IOptions<IdentityServerOptions> identityServerOption, IServiceProvider serviceProvider) public OAuth2Controller(IHttpClientFactory httpClientFactory, IOptions<IdentityServerOptions> identityServerOption)
{ {
_httpClientFactory = httpClientFactory; _httpClientFactory = httpClientFactory;
_identityServerOption = identityServerOption; _identityServerOption = identityServerOption;
_serviceProvider = serviceProvider;
} }
[HttpPost("clientgrant")] [HttpPost("clientgrant")]
@@ -35,4 +36,3 @@ namespace Dlhis.User.Identity.Controllers
return JObject.Parse(result); return JObject.Parse(result);
} }
} }
}