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