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
}
}