This commit is contained in:
fuenmao
2026-08-26 15:30:31 +08:00
parent 9ae5e0bc54
commit db3d58bc99
16 changed files with 565 additions and 39 deletions
@@ -72,6 +72,7 @@ public class OnboardingPublicSubmissionController
public async Task UploadMaterial(
[FromQuery] string token,
[FromQuery] long materialTypeId,
[FromQuery] long? taskMaterialId,
[FromForm] IFormFile file)
{
if (file == null || file.Length == 0)
@@ -84,7 +85,8 @@ public class OnboardingPublicSubmissionController
Token = token,
MaterialTypeId = materialTypeId,
FileName = file.FileName,
FileLength = file.Length
FileLength = file.Length,
TaskMaterialId = taskMaterialId
});
var fileId = await _fileService.UploadFile(SysDictConst.FILE_ENGINE_ALIYUN_OSS, file);
@@ -92,7 +94,8 @@ public class OnboardingPublicSubmissionController
{
Token = token,
MaterialTypeId = materialTypeId,
FileId = fileId
FileId = fileId,
TaskMaterialId = taskMaterialId
});
}
}
@@ -44,4 +44,35 @@ public class OnboardingPublicTaskController
var fileId = await _service.GetContractSourceFileId(input);
return await _fileService.Download(new BaseIdInput { Id = fileId });
}
/// <summary>
/// 通过任务 Token 内联输出候选人已上传的图片材料,供手机端预览。
/// </summary>
[HttpGet("material-source")]
public async Task<FileStreamResult> MaterialSource(
[FromQuery] OnboardingPublicMaterialSourceInput input)
{
var material = await _service.GetMaterialSource(input);
var source = await _fileService.Download(new BaseIdInput { Id = material.FileId })
?? throw Oops.Bah("上传文件不存在");
return new FileStreamResult(
source.FileStream,
GetImageContentType(material.FileSuffix));
}
/// <summary>
/// 根据图片扩展名设置浏览器可内联展示的响应类型。
/// </summary>
private static string GetImageContentType(string suffix)
{
return suffix?.TrimStart('.').ToLowerInvariant() switch
{
"png" => "image/png",
"jpg" or "jpeg" => "image/jpeg",
"gif" => "image/gif",
"bmp" => "image/bmp",
"webp" => "image/webp",
_ => "application/octet-stream"
};
}
}
@@ -32,4 +32,13 @@ public class OnboardingTaskQueryController
{
return await _service.Detail(input);
}
/// <summary>
/// 获取或重新生成入职任务专属填写链接。
/// </summary>
[HttpGet("get-link")]
public async Task<dynamic> GetTaskLink([FromQuery] BaseIdInput input)
{
return await _service.GetTaskLink(input);
}
}
+16 -1
View File
@@ -276,7 +276,7 @@
提交入职资料进入审核。
</summary>
</member>
<member name="M:SimpleAdmin.Web.Core.OnboardingPublicSubmissionController.UploadMaterial(System.String,System.Int64,Microsoft.AspNetCore.Http.IFormFile)">
<member name="M:SimpleAdmin.Web.Core.OnboardingPublicSubmissionController.UploadMaterial(System.String,System.Int64,System.Nullable{System.Int64},Microsoft.AspNetCore.Http.IFormFile)">
<summary>
校验并上传员工入职材料。
</summary>
@@ -301,6 +301,16 @@
下载根据当前任务资料动态生成并已替换变量的合同文件。
</summary>
</member>
<member name="M:SimpleAdmin.Web.Core.OnboardingPublicTaskController.MaterialSource(SimpleAdmin.Application.OnboardingPublicMaterialSourceInput)">
<summary>
通过任务 Token 内联输出候选人已上传的图片材料,供手机端预览。
</summary>
</member>
<member name="M:SimpleAdmin.Web.Core.OnboardingPublicTaskController.GetImageContentType(System.String)">
<summary>
根据图片扩展名设置浏览器可内联展示的响应类型。
</summary>
</member>
<member name="T:SimpleAdmin.Web.Core.OnboardingTaskContractVariableController">
<summary>
提供任务合同变量维护相关 HTTP 接口。
@@ -361,6 +371,11 @@
查询入职任务完整详情。
</summary>
</member>
<member name="M:SimpleAdmin.Web.Core.OnboardingTaskQueryController.GetTaskLink(SimpleAdmin.Core.BaseIdInput)">
<summary>
获取或重新生成入职任务专属填写链接。
</summary>
</member>
<member name="T:SimpleAdmin.Web.Core.OnboardingTemplateController">
<summary>
提供入职模板聚合配置接口。