fix 人脸url重新获取
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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>
|
||||||
/// 唯一值
|
/// 唯一值
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user