实体
/// <summary>
/// 会员培训表
/// </summary>
public partial class Train : FullAuditedAggregateRoot<Guid>, IMultiTenant
{
/// <summary>
/// 培训ID,唯一的,不可重复、签到二维码
/// </summary>
public Guid? TenantId { get; set; }
/// <summary>
/// 培训ID
/// </summary>
public string? TrainId { get; set; }
public string? OrgId { get; set; }
/// <summary>
/// 教室ID
/// </summary>
public string? TeacherId { get; set; }
/// <summary>
/// 培训标题
/// </summary>
public string? Title { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? AddTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public DateTime? EndTime { get; set; }
/// <summary>
/// 是否启用 0启用 1禁用
/// </summary>
public int? IsEnable { get; set; }
/// <summary>
/// 是否需要线上培训 0、需要、1不需要
/// </summary>
public int? IsNeedTrain { get; set; }
/// <summary>
/// 是否需要线上考试 0、需要、1不需要
/// </summary>
public int? IsNeedExam { get; set; }
/// <summary>
/// 培训考试主题ID
/// </summary>
public Guid TrainingExaminationQuestionBankID { get; set; }
/// <summary>
/// 培训参与人员
/// </summary>
public string? Participants { get; set; }
/// <summary>
/// 培训对象 0会员
/// </summary>
public int? TargetGroup { get; set; }
/// <summary>
/// 培训时间
/// </summary>
public string? Often { get; set; }
/// <summary>
/// 讲师
/// </summary>
public string? Lecturer { get; set; }
/// <summary>
/// 文件上传
/// </summary>
public string? Documents { get; set; }
/// <summary>
/// 礼品id
/// </summary>
public Guid? Giftid { get; set; }
/// <summary>
/// 礼品名称
/// </summary>
public string? GiftsName { get; set; }
/// <summary>
/// 礼品数量
/// </summary>
public int? GiftsNum { get; set; }
/// <summary>
/// 封面图url
/// </summary>
public string? Cover { get; set; }
}
DTO
public class TrainDTO
{
public Guid? TenantId { get; set; }
/// <summary>
/// 培训ID,唯一的,不可重复、签到二维码
/// </summary>
public string? TrainId { get; set; }
public string? OrgId { get; set; }
/// <summary>
/// 教室ID
/// </summary>
public string? TeacherId { get; set; }
/// <summary>
/// 培训标题
/// </summary>
public string? Title { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? AddTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public DateTime? EndTime { get; set; }
/// <summary>
/// 是否启用 0启用 1禁用
/// </summary>
public int? IsEnable { get; set; }
/// <summary>
/// 是否需要线上培训 0、需要、1不需要
/// </summary>
public int? IsNeedTrain { get; set; }
/// <summary>
/// 是否需要线上考试 0、需要、1不需要
/// </summary>
public int? IsNeedExam { get; set; }
/// <summary>
/// 培训考试主题ID
/// </summary>
public Guid TrainingExaminationQuestionBankID { get; set; }
/// <summary>
/// 培训参与人员
/// </summary>
public string? Participants { get; set; }
/// <summary>
/// 培训对象 0会员
/// </summary>
public int? TargetGroup { get; set; }
/// <summary>
/// 培训时间
/// </summary>
public string? Often { get; set; }
/// <summary>
/// 讲师
/// </summary>
public string? Lecturer { get; set; }
/// <summary>
/// 文件上传
/// </summary>
public List<IFormFile>? AttachFiles { get; set; }
public string? Documents { get; set; }
/// <summary>
/// 礼品id
/// </summary>
public Guid? Giftid { get; set; }
/// <summary>
/// 礼品名称
/// </summary>
public string? GiftsName { get; set; }
/// <summary>
/// 礼品数量
/// </summary>
public int? GiftsNum { get; set; }
/// <summary>
/// 封面图url
/// </summary>
public List<IFormFile>? CoverFiles { get; set; }
public string ? Cover { get; set; }
}
关键是
public List? AttachFiles { get; set; } 接收前端文件
public string? Documents { get; set; } 保存文件路径到数据库
引用
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
注入
private readonly IHostEnvironment _webHostEnvironment;
private readonly IConfiguration _configuration;
public TrainAppService(IHostEnvironment webHostEnvironment, IConfiguration configuration)
{
_webHostEnvironment = webHostEnvironment;
_configuration = configuration;
}
/// <summary>
/// 创建培训
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<bool> AddTrain(TrainDTO input)
{
//处理文件
var files = input.AttachFiles;
var files2 = input.CoverFiles;
if (input.AttachFiles.Count>0)
{
var file = input.AttachFiles[0];
var root = _webHostEnvironment.ContentRootPath;
var sectionValue = _configuration.GetValue<string>("ContentRootPath");
if (!string.IsNullOrWhiteSpace(sectionValue))
{
root = sectionValue;
}
var vdir = $@"file\blmodel\";
string dir = Path.Combine(root, vdir);
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
var Extension = Path.GetExtension(file.FileName);
var newName = DateTime.Now.ToString("yyyyMMddHHmmssffff") + Extension;
string FilePath = dir + newName;
using (FileStream fs = System.IO.File.Create(dir + newName))
{
file.CopyTo(fs);
fs.Flush();
}
input.Documents = dir + newName;
}
映射添加
Train train = ObjectMapper.Map<TrainDTO, Train>(input);
var obj = await Repository.InsertAsync(train);
if (obj != null)
{
return true;
}
return false;
}