using Lottomat.Application.Entity.PublicInfoManage; using Lottomat.Application.IService.PublicInfoManage; using Lottomat.Data; using Lottomat.Data.Repository; using Lottomat.Util.Extension; using System; using System.Collections.Generic; using System.Data.Common; using System.Linq.Expressions; using System.Text; using Lottomat.Application.Code; using Lottomat.Util; using Lottomat.Utils.Date; namespace Lottomat.Application.Service.PublicInfoManage { /// /// 版 本 1.0 /// Copyright (c) 2016-2017 /// 创建人:赵轶 /// 日 期:2015.12.15 10:56 /// 描 述:文件信息 /// public class FileInfoService : RepositoryFactory, IFileInfoService { #region 获取数据 /// /// 获取所有数据 /// /// /// public IEnumerable GetList(Expression> condition) { return this.BaseRepository().FindList(condition); } /// /// 所有文件(夹)列表 /// /// 文件夹Id /// 用户Id /// public IEnumerable GetList(string folderId, string userId) { var strSql = new StringBuilder(); strSql.Append(@"SELECT * FROM ( SELECT FolderId AS FileId , ParentId AS FolderId , FolderName AS FileName , '' AS FileSize , 'folder' AS FileType , CreateUserId, ModifyDate, IsShare FROM Base_FileFolder where DeleteMark = 0 UNION SELECT FileId , FolderId , FileName , FileSize , FileType , CreateUserId, ModifyDate, IsShare FROM Base_FileInfo where DeleteMark = 0 ) t WHERE CreateUserId = @userId"); var parameter = new List { DbParameters.CreateDbParameter("@userId", userId) }; if (!folderId.IsEmpty()) { strSql.Append(" AND FolderId = @folderId"); parameter.Add(DbParameters.CreateDbParameter("@folderId", folderId)); } else { strSql.Append(" AND FolderId = '0'"); } strSql.Append(" ORDER BY ModifyDate ASC"); return this.BaseRepository().FindList(strSql.ToString(), parameter.ToArray()); } /// /// 文档列表 /// /// 用户Id /// public IEnumerable GetDocumentList(string userId) { var strSql = new StringBuilder(); strSql.Append(@"SELECT FileId , FolderId , FileName , FileSize , FileType , CreateUserId , ModifyDate, IsShare FROM Base_FileInfo WHERE DeleteMark = 0 AND FileType IN ( 'log', 'txt', 'pdf', 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx' ) AND CreateUserId = @userId"); var parameter = new List { DbParameters.CreateDbParameter("@userId", userId) }; strSql.Append(" ORDER BY ModifyDate ASC"); return this.BaseRepository().FindList(strSql.ToString(), parameter.ToArray()); } /// /// 图片列表 /// /// 用户Id /// public IEnumerable GetImageList(string userId) { var strSql = new StringBuilder(); strSql.Append(@"SELECT FileId , FolderId , FileName , FileSize , FileType , CreateUserId , ModifyDate , IsShare FROM Base_FileInfo WHERE DeleteMark = 0 AND FileType IN ( 'ico', 'gif', 'jpeg', 'jpg', 'png', 'psd' ) AND CreateUserId = @userId"); var parameter = new List { DbParameters.CreateDbParameter("@userId", userId) }; strSql.Append(" ORDER BY ModifyDate ASC"); return this.BaseRepository().FindList(strSql.ToString(), parameter.ToArray()); } /// /// 回收站文件(夹)列表 /// /// 用户Id /// public IEnumerable GetRecycledList(string userId) { var strSql = new StringBuilder(); strSql.Append(@"SELECT * FROM ( SELECT FolderId AS FileId , ParentId AS FolderId , FolderName AS FileName , '' AS FileSize , 'folder' AS FileType , CreateUserId, ModifyDate FROM Base_FileFolder where DeleteMark = 1 UNION SELECT FileId , FolderId , FileName , FileSize , FileType , CreateUserId, ModifyDate FROM Base_FileInfo where DeleteMark = 1 ) t WHERE CreateUserId = @userId"); var parameter = new List { DbParameters.CreateDbParameter("@userId", userId) }; strSql.Append(" ORDER BY ModifyDate DESC"); return this.BaseRepository().FindList(strSql.ToString(), parameter.ToArray()); } /// /// 我的文件(夹)共享列表 /// /// 用户Id /// public IEnumerable GetMyShareList(string userId) { var strSql = new StringBuilder(); strSql.Append(@"SELECT * FROM ( SELECT FolderId AS FileId , ParentId AS FolderId , FolderName AS FileName , '' AS FileSize , 'folder' AS FileType , CreateUserId, ModifyDate FROM Base_FileFolder WHERE DeleteMark = 0 AND IsShare = 1 UNION SELECT FileId , FolderId , FileName , FileSize , FileType , CreateUserId, ModifyDate FROM Base_FileInfo WHERE DeleteMark = 0 AND IsShare = 1 ) t WHERE CreateUserId = @userId"); var parameter = new List { DbParameters.CreateDbParameter("@userId", userId) }; strSql.Append(" ORDER BY ModifyDate DESC"); return this.BaseRepository().FindList(strSql.ToString(), parameter.ToArray()); } /// /// 他人文件(夹)共享列表 /// /// 用户Id /// public IEnumerable GetOthersShareList(string userId) { var strSql = new StringBuilder(); strSql.Append(@"SELECT * FROM ( SELECT FolderId AS FileId , ParentId AS FolderId , FolderName AS FileName , '' AS FileSize , 'folder' AS FileType , CreateUserId, CreateUserName, ShareTime AS ModifyDate FROM Base_FileFolder WHERE DeleteMark = 0 AND IsShare = 1 UNION SELECT FileId , FolderId , FileName , FileSize , FileType , CreateUserId, CreateUserName, ShareTime AS ModifyDate FROM Base_FileInfo WHERE DeleteMark = 0 AND IsShare = 1 ) t WHERE CreateUserId != @userId"); var parameter = new List { DbParameters.CreateDbParameter("@userId", userId) }; strSql.Append(" ORDER BY ModifyDate DESC"); return this.BaseRepository().FindList(strSql.ToString(), parameter.ToArray()); } /// /// 文件实体 /// /// 主键值 /// public FileInfoEntity GetEntity(string keyValue) { return this.BaseRepository().FindEntity(keyValue); } #endregion #region 提交数据 /// /// 还原文件 /// /// 主键 public void RestoreFile(string keyValue) { FileInfoEntity fileInfoEntity = new FileInfoEntity(); fileInfoEntity.Modify(keyValue); fileInfoEntity.DeleteMark = (int)DeleteMarkEnum.NotDelete; this.BaseRepository().Update(fileInfoEntity); } /// /// 删除文件 /// /// 主键 public void RemoveForm(string keyValue) { FileInfoEntity fileInfoEntity = new FileInfoEntity(); fileInfoEntity.Modify(keyValue); fileInfoEntity.DeleteMark = (int)DeleteMarkEnum.Delete; this.BaseRepository().Update(fileInfoEntity); } /// /// 彻底删除文件 /// /// 主键 public void ThoroughRemoveForm(string keyValue) { this.BaseRepository().Delete(keyValue); } /// /// 保存文件表单(新增、修改) /// /// 主键值 /// 文件信息实体 /// public void SaveForm(string keyValue, FileInfoEntity fileInfoEntity) { if (!string.IsNullOrEmpty(keyValue)) { fileInfoEntity.Modify(keyValue); this.BaseRepository().Update(fileInfoEntity); } else { fileInfoEntity.Create(); this.BaseRepository().Insert(fileInfoEntity); } } /// /// 共享文件 /// /// 主键 /// 是否共享:1-共享 0取消共享 public void ShareFile(string keyValue, int IsShare) { FileInfoEntity fileInfoEntity = new FileInfoEntity { FileId = keyValue, IsShare = IsShare, ShareTime = DateTimeHelper.Now }; this.BaseRepository().Update(fileInfoEntity); } #endregion } }