diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Controllers/AssignmentsController.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Controllers/AssignmentsController.cs
index 6250a029..6d739d5d 100644
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Controllers/AssignmentsController.cs
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Controllers/AssignmentsController.cs
@@ -51,4 +51,14 @@ public class AssignmentsController : ControllerBase
{
await _assignmentService.UpdateDeviceTaskStatusAsync(request);
}
+ ///
+ /// 获取新token
+ ///
+ ///
+ ///
+ [HttpGet("token")]
+ public async Task Token(long taskId)
+ {
+ return await _assignmentService.Token(taskId);
+ }
}
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/IAssignmentService.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/IAssignmentService.cs
index 5fa65f35..db8f6f3b 100644
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/IAssignmentService.cs
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/IAssignmentService.cs
@@ -19,4 +19,11 @@ public interface IAssignmentService : IScopeDependency
///
///
Task UpdateDeviceTaskStatusAsync(UpdateDeviceTaskStatusRequest request);
+
+ ///
+ /// 获取新token
+ ///
+ ///
+ ///
+ Task Token(long taskId);
}
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs
index 9657e8ea..1ff5f76a 100644
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs
@@ -152,6 +152,39 @@ public class AssignmentService : IAssignmentService
}).ToList();
});
}
+ ///
+ /// 获取新token
+ ///
+ ///
+ ///
+ ///
+ public async Task Token(long taskId)
+ {
+ var task = await _dbContext.Queryable().Where(x => x.Id == taskId).FirstAsync();
+
+ task.ThrowIfNull("该任务不存在");
+ if (task.Status != DeviceTaskStatusEnumType.Success)
+ {
+ return "";
+ }
+ string newtoken="";
+ Scoped.Request.Value.Create((sp) =>
+ {
+ FaceUrlOptions faceUrlOptions = sp.GetService>().Value;
+ var dataProtectionProvider = sp.GetService();
+
+ var timeLimitedDataProtector = dataProtectionProvider
+ .CreateProtector("down:face")
+ .ToTimeLimitedDataProtector();
+ var userCode = task.UserCode;
+
+ var key = $"face:{userCode}";
+ var token = timeLimitedDataProtector.Protect(key, TimeSpan.FromSeconds(faceUrlOptions.Limit));
+ newtoken = faceUrlOptions.Url + token;
+ });
+
+ return newtoken;
+ }
public async Task UpdateDeviceTaskStatusAsync(UpdateDeviceTaskStatusRequest request)