namespace Yw.Application
{
///
/// AttachFile
///
[Route("DOCS/Attach/File/Std")]
[ApiDescriptionSettings("DOCS", Name = "附加文件(Std)", Order = 89000)]
public class SysAttachFile_StdController : IDynamicApiController
{
///
/// 通过 AttachType 和 AttachID 获取
///
[Route("GetByAttachTypeAndAttachID@V1.0")]
[HttpGet]
public List GetByAttachTypeAndAttachID([FromQuery][Required] AttachInput input)
{
var keyContent = $"DOCS_Sys_Attach_File_Std_GetByAttachTypeAndAttachID_{input.AttachType}_{input.AttachID}";
var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent);
var vm_list = MemoryCacheHelper.GetSet(cacheKey, () =>
{
var all = new Yw.Service.SysAttachFile().GetByAttachTypeAndAttachID(input.AttachType, input.AttachID);
Yw.Service.SysAttachFile.PublishCache(cacheKey);
var vmList = all?.Select(x => new SysAttachFileStdDto(x)).ToList();
return vmList;
}, Yw.Service.ConfigHelper.CacheLevel5);
return vm_list;
}
///
/// 通过 AttachType 和 AttachID 获取(包含标签)
///
[Route("GetByAttachTypeAndAttachIDContainsFlags@V1.0")]
[HttpGet]
public List GetByAttachTypeAndAttachIDContainsFlags([FromQuery][Required] AttachAndFlagsInput input)
{
var flags = FlagsHelper.ToList(input.Flags);
var list = new Yw.Service.SysAttachFile().GetByAttachTypeAndAttachIDContainsFlags(input.AttachType, input.AttachID, flags);
var vmList = list?.Select(x => new SysAttachFileStdDto(x)).ToList();
return vmList;
}
///
/// 通过 AttachType 和 AttachID 获取(包含标签)默认
///
[Route("GetDefaultByAttachTypeAndAttachIDContainsFlags@V1.0")]
[HttpGet]
public SysAttachFileStdDto GetDefaultByAttachTypeAndAttachIDContainsFlags([FromQuery][Required] AttachAndFlagsInput input)
{
var flags = FlagsHelper.ToList(input.Flags);
var list = new Yw.Service.SysAttachFile().GetByAttachTypeAndAttachIDContainsFlags(input.AttachType, input.AttachID, flags);
var model = list?.FirstOrDefault();
return model == null ? null : new SysAttachFileStdDto(model);
}
}
}