using YLErp.Helpers; namespace YLErp.Modules.TempFilesModule { public class TempFilesService : YLBaseService { public TempFilesService(OptUserInfo optUser) : base(optUser) { } /// /// 可以查看所有文件 /// public bool QueryAllFile { get; set; } /// /// 查询已上传的文件 /// /// /// /// /// public List QueryTempFile(DateTime createDate, params string[] fileTypes) { return QueryTempFileFromDb(createDate, createDate, fileTypes).OrderByDescending(O => O.optDate).ToList(); } /// /// 查询已上传的文件 /// /// /// /// /// public List QueryTempFile(DateTime createDateStart, DateTime createDateEnd, params string[] fileTypes) { return QueryTempFileFromDb(createDateStart, createDateEnd, fileTypes).ToList(); } /// /// 查询已上传的文件 /// /// /// /// /// public IQueryable QueryTempFileFromDb(DateTime createDateStart, DateTime createDateEnd, params string[] fileTypes) { var query = DbContext.tempfiles.Where(O => O.validStatus); if (!QueryAllFile && PS.GetErpConfig().NeedIsolateSACInfo) { query = query.Where(O => O.optUserName == UserName); } if (fileTypes.Length > 0) { query = query.Where(O => fileTypes.Contains(O.fileType)); } if (createDateStart > default(DateTime)) { query = query.Where(O => O.createDate >= createDateStart); } if (createDateEnd > default(DateTime)) { query = query.Where(O => O.createDate <= createDateEnd); } return query; } /// /// 保存文件 /// /// public void SaveTempFile(List files) { foreach (var item in files) { var query = DbContext.tempfiles.Where(O => O.createDate == item.createDate && O.fileType == item.fileType && O.optUserName == item.optUserName); if (item.fileType != "报送模板") { query = query.Where(O => O.fileName == item.fileName); } var delFile = query.ToList(); if (delFile != null) { DbContext.tempfiles.RemoveRange(delFile); } var f = new tempfile(); f.createDate = item.createDate; f.fileType = item.fileType; f.fileName = item.fileName; f.filePath = System.IO.Path.Combine(item.filePath, item.fileName); f.optDate = item.optDate; f.optUserName = item.optUserName; f.validStatus = item.validStatus; DbContext.tempfiles.Add(f); } DbContext.SaveChanges(); } /// /// 删除已上传的文件 /// /// public void DeleteTempFile(string encryptId) { if (string.IsNullOrWhiteSpace(encryptId)) { return; } int id = DataProtectHelper.DecryptInt(encryptId); var query = DbContext.tempfiles.Where(O => O.id == id); if (!QueryAllFile) { query = query.Where(O => O.optUserName == UserName); } var info = query.FirstOrDefault(); if (info != null) { info.validStatus = false; DbContext.SaveChanges(); } } } }