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();
}
}
}
}