using Learun.DataBase.Repository; using System; using System.Collections.Generic; using System.Data.Common; using System.Text; namespace Learun.Application.OA.File.FileInfo { /// /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 /// Copyright (c) 2013-2017 /// 创建人:陈彬彬 /// 日 期:2018.06.20 /// 描 述:文件管理 /// public class FileInfoService : RepositoryFactory { #region 获取数据 public IEnumerable GetList(string userId) { string sql = "select * from LR_OA_FileInfo where F_CreateUserId = @userId and F_DeleteMark = 0"; return this.BaseRepository().FindList(sql, new { userId = userId }); } public IEnumerable GetList() { string sql = "select * from LR_OA_FileInfo where F_DeleteMark = 0"; return this.BaseRepository().FindList(); } /// /// 所有文件(夹)列表 /// /// 文件夹Id /// 用户Id /// public IEnumerable GetList(string folderId, string userId) { var strSql = new StringBuilder(); string folderCondition = ""; string fileCondition = ""; if (!string.IsNullOrEmpty(folderId)) { folderCondition = " AND F_ParentId = @folderId"; fileCondition=" AND F_FolderId = @folderId"; } else { fileCondition = " AND F_FolderId = '0'"; } strSql.Append(@"SELECT * FROM ( SELECT F_FolderId AS F_FileId , F_ParentId AS F_FolderId , F_FolderName AS F_FileName , '' AS F_FileSize , 'folder' AS F_FileType , F_CreateUserId, F_ModifyDate, F_IsShare FROM LR_OA_FileFolder where F_DeleteMark = 0"); strSql.Append(folderCondition); strSql.Append(" UNION "); strSql.Append(@"SELECT F_FileId , F_FolderId , F_FileName , F_FileSize , F_FileType , F_CreateUserId, F_ModifyDate, F_IsShare FROM LR_OA_FileInfo where F_DeleteMark = 0 "); strSql.Append(fileCondition); strSql.Append(") t WHERE F_CreateUserId = @userId"); strSql.Append(" ORDER BY CASE WHEN F_FileType = 'folder' THEN 1 ELSE 2 END, F_ModifyDate ASC"); return this.BaseRepository().FindList(strSql.ToString(), new { userId = userId, folderId = folderId }); } /// /// 文档列表 /// /// 用户Id /// public IEnumerable GetDocumentList(string userId) { var strSql = new StringBuilder(); strSql.Append(@"SELECT F_FileId , F_FolderId , F_FileName , F_FileSize , F_FileType , F_CreateUserId , F_ModifyDate, F_IsShare FROM LR_OA_FileInfo WHERE F_DeleteMark = 0 AND F_FileType IN ( 'log', 'txt', 'pdf', 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx' ) AND F_CreateUserId = @userId"); strSql.Append(" ORDER BY F_ModifyDate ASC"); return this.BaseRepository().FindList(strSql.ToString(), new { userId = userId }); } /// /// 图片列表 /// /// 用户Id /// public IEnumerable GetImageList(string userId) { var strSql = new StringBuilder(); strSql.Append(@"SELECT F_FileId , F_FolderId , F_FileName , F_FileSize , F_FileType , F_CreateUserId , F_ModifyDate, F_IsShare FROM LR_OA_FileInfo WHERE F_DeleteMark = 0 AND F_FileType IN ( 'ico', 'gif', 'jpeg', 'jpg', 'png', 'psd' ) AND F_CreateUserId = @userId"); strSql.Append(" ORDER BY F_ModifyDate ASC"); return this.BaseRepository().FindList(strSql.ToString(), new { userId = userId }); } /// /// 回收站文件(夹)列表 /// /// 用户Id /// public IEnumerable GetRecycledList(string userId) { var strSql = new StringBuilder(); strSql.Append(@"SELECT * FROM ( SELECT F_FolderId AS F_FileId , F_ParentId AS F_FolderId , F_FolderName AS F_FileName , '' AS F_FileSize , 'folder' AS F_FileType , F_CreateUserId, F_ModifyDate FROM LR_OA_FileFolder where F_DeleteMark = 1 UNION SELECT F_FileId , F_FolderId , F_FileName , F_FileSize , F_FileType , F_CreateUserId, F_ModifyDate FROM LR_OA_FileInfo where F_DeleteMark = 1 ) t WHERE F_CreateUserId = @userId"); strSql.Append(" ORDER BY F_ModifyDate DESC"); return this.BaseRepository().FindList(strSql.ToString(), new { userId = userId }); } /// /// 我的文件(夹)共享列表 /// /// 用户Id /// public IEnumerable GetMyShareList(string userId) { var strSql = new StringBuilder(); strSql.Append(@"SELECT * FROM ( SELECT F_FolderId AS F_FileId , F_ParentId AS F_FolderId , F_FolderName AS F_FileName , '' AS F_FileSize , 'folder' AS F_FileType , F_CreateUserId, F_ModifyDate FROM LR_OA_FileFolder WHERE F_DeleteMark = 0 AND F_IsShare = 1 UNION SELECT F_FileId , F_FolderId , F_FileName , F_FileSize , F_FileType , F_CreateUserId, F_ModifyDate FROM LR_OA_FileInfo WHERE F_DeleteMark = 0 AND F_IsShare = 1 ) t WHERE F_CreateUserId = @userId"); strSql.Append(" ORDER BY F_ModifyDate DESC"); return this.BaseRepository().FindList(strSql.ToString(), new { userId = userId }); } /// /// 他人文件(夹)共享列表 /// /// 用户Id /// public IEnumerable GetOthersShareList(string userId) { var strSql = new StringBuilder(); strSql.Append(@"SELECT * FROM ( SELECT F_FolderId AS F_FileId , F_ParentId AS F_FolderId , F_FolderName AS F_FileName , '' AS F_FileSize , 'folder' AS F_FileType , F_CreateUserId, F_CreateUserName, F_ShareTime AS F_ModifyDate FROM LR_OA_FileFolder WHERE F_DeleteMark = 0 AND F_IsShare = 1 UNION SELECT F_FileId , F_FolderId , F_FileName , F_FileSize , F_FileType , F_CreateUserId, F_CreateUserName, F_ShareTime AS F_ModifyDate FROM LR_OA_FileInfo WHERE F_DeleteMark = 0 AND F_IsShare = 1 ) t WHERE F_CreateUserId != @userId"); strSql.Append(" ORDER BY F_ModifyDate DESC"); return this.BaseRepository().FindList(strSql.ToString(), new { userId = userId }); } /// /// 文件实体 /// /// 主键值 /// 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.F_DeleteMark = 0; this.BaseRepository().Update(fileInfoEntity); } /// /// 删除文件 /// /// 主键 public void RemoveForm(string keyValue) { FileInfoEntity fileInfoEntity = new FileInfoEntity(); fileInfoEntity.Modify(keyValue); fileInfoEntity.F_DeleteMark = 1; this.BaseRepository().Update(fileInfoEntity); } /// /// 彻底删除文件 /// /// 主键 public void ThoroughRemoveForm(string keyValue) { this.BaseRepository().Delete(t => t.F_FileId == 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(); fileInfoEntity.F_FileId = keyValue; fileInfoEntity.F_IsShare = IsShare; fileInfoEntity.F_ShareTime = DateTime.Now; this.BaseRepository().Update(fileInfoEntity); } #endregion } }