FileInfoService.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  1. using Lottomat.Application.Entity.PublicInfoManage;
  2. using Lottomat.Application.IService.PublicInfoManage;
  3. using Lottomat.Data;
  4. using Lottomat.Data.Repository;
  5. using Lottomat.Util.Extension;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Data.Common;
  9. using System.Linq.Expressions;
  10. using System.Text;
  11. using Lottomat.Application.Code;
  12. using Lottomat.Util;
  13. using Lottomat.Utils.Date;
  14. namespace Lottomat.Application.Service.PublicInfoManage
  15. {
  16. /// <summary>
  17. /// 版 本 1.0
  18. /// Copyright (c) 2016-2017
  19. /// 创建人:赵轶
  20. /// 日 期:2015.12.15 10:56
  21. /// 描 述:文件信息
  22. /// </summary>
  23. public class FileInfoService : RepositoryFactory<FileInfoEntity>, IFileInfoService
  24. {
  25. #region 获取数据
  26. /// <summary>
  27. /// 获取所有数据
  28. /// </summary>
  29. /// <param name="condition"></param>
  30. /// <returns></returns>
  31. public IEnumerable<FileInfoEntity> GetList(Expression<Func<FileInfoEntity, bool>> condition)
  32. {
  33. return this.BaseRepository().FindList(condition);
  34. }
  35. /// <summary>
  36. /// 所有文件(夹)列表
  37. /// </summary>
  38. /// <param name="folderId">文件夹Id</param>
  39. /// <param name="userId">用户Id</param>
  40. /// <returns></returns>
  41. public IEnumerable<FileInfoEntity> GetList(string folderId, string userId)
  42. {
  43. var strSql = new StringBuilder();
  44. strSql.Append(@"SELECT *
  45. FROM ( SELECT FolderId AS FileId ,
  46. ParentId AS FolderId ,
  47. FolderName AS FileName ,
  48. '' AS FileSize ,
  49. 'folder' AS FileType ,
  50. CreateUserId,
  51. ModifyDate,
  52. IsShare
  53. FROM Base_FileFolder where DeleteMark = 0
  54. UNION
  55. SELECT FileId ,
  56. FolderId ,
  57. FileName ,
  58. FileSize ,
  59. FileType ,
  60. CreateUserId,
  61. ModifyDate,
  62. IsShare
  63. FROM Base_FileInfo where DeleteMark = 0
  64. ) t WHERE CreateUserId = @userId");
  65. var parameter = new List<DbParameter>
  66. {
  67. DbParameters.CreateDbParameter("@userId", userId)
  68. };
  69. if (!folderId.IsEmpty())
  70. {
  71. strSql.Append(" AND FolderId = @folderId");
  72. parameter.Add(DbParameters.CreateDbParameter("@folderId", folderId));
  73. }
  74. else
  75. {
  76. strSql.Append(" AND FolderId = '0'");
  77. }
  78. strSql.Append(" ORDER BY ModifyDate ASC");
  79. return this.BaseRepository().FindList(strSql.ToString(), parameter.ToArray());
  80. }
  81. /// <summary>
  82. /// 文档列表
  83. /// </summary>
  84. /// <param name="userId">用户Id</param>
  85. /// <returns></returns>
  86. public IEnumerable<FileInfoEntity> GetDocumentList(string userId)
  87. {
  88. var strSql = new StringBuilder();
  89. strSql.Append(@"SELECT FileId ,
  90. FolderId ,
  91. FileName ,
  92. FileSize ,
  93. FileType ,
  94. CreateUserId ,
  95. ModifyDate,
  96. IsShare
  97. FROM Base_FileInfo
  98. WHERE DeleteMark = 0
  99. AND FileType IN ( 'log', 'txt', 'pdf', 'doc', 'docx', 'ppt', 'pptx',
  100. 'xls', 'xlsx' )
  101. AND CreateUserId = @userId");
  102. var parameter = new List<DbParameter>
  103. {
  104. DbParameters.CreateDbParameter("@userId", userId)
  105. };
  106. strSql.Append(" ORDER BY ModifyDate ASC");
  107. return this.BaseRepository().FindList(strSql.ToString(), parameter.ToArray());
  108. }
  109. /// <summary>
  110. /// 图片列表
  111. /// </summary>
  112. /// <param name="userId">用户Id</param>
  113. /// <returns></returns>
  114. public IEnumerable<FileInfoEntity> GetImageList(string userId)
  115. {
  116. var strSql = new StringBuilder();
  117. strSql.Append(@"SELECT FileId ,
  118. FolderId ,
  119. FileName ,
  120. FileSize ,
  121. FileType ,
  122. CreateUserId ,
  123. ModifyDate ,
  124. IsShare
  125. FROM Base_FileInfo
  126. WHERE DeleteMark = 0
  127. AND FileType IN ( 'ico', 'gif', 'jpeg', 'jpg', 'png', 'psd' )
  128. AND CreateUserId = @userId");
  129. var parameter = new List<DbParameter>
  130. {
  131. DbParameters.CreateDbParameter("@userId", userId)
  132. };
  133. strSql.Append(" ORDER BY ModifyDate ASC");
  134. return this.BaseRepository().FindList(strSql.ToString(), parameter.ToArray());
  135. }
  136. /// <summary>
  137. /// 回收站文件(夹)列表
  138. /// </summary>
  139. /// <param name="userId">用户Id</param>
  140. /// <returns></returns>
  141. public IEnumerable<FileInfoEntity> GetRecycledList(string userId)
  142. {
  143. var strSql = new StringBuilder();
  144. strSql.Append(@"SELECT *
  145. FROM ( SELECT FolderId AS FileId ,
  146. ParentId AS FolderId ,
  147. FolderName AS FileName ,
  148. '' AS FileSize ,
  149. 'folder' AS FileType ,
  150. CreateUserId,
  151. ModifyDate
  152. FROM Base_FileFolder where DeleteMark = 1
  153. UNION
  154. SELECT FileId ,
  155. FolderId ,
  156. FileName ,
  157. FileSize ,
  158. FileType ,
  159. CreateUserId,
  160. ModifyDate
  161. FROM Base_FileInfo where DeleteMark = 1
  162. ) t WHERE CreateUserId = @userId");
  163. var parameter = new List<DbParameter>
  164. {
  165. DbParameters.CreateDbParameter("@userId", userId)
  166. };
  167. strSql.Append(" ORDER BY ModifyDate DESC");
  168. return this.BaseRepository().FindList(strSql.ToString(), parameter.ToArray());
  169. }
  170. /// <summary>
  171. /// 我的文件(夹)共享列表
  172. /// </summary>
  173. /// <param name="userId">用户Id</param>
  174. /// <returns></returns>
  175. public IEnumerable<FileInfoEntity> GetMyShareList(string userId)
  176. {
  177. var strSql = new StringBuilder();
  178. strSql.Append(@"SELECT *
  179. FROM ( SELECT FolderId AS FileId ,
  180. ParentId AS FolderId ,
  181. FolderName AS FileName ,
  182. '' AS FileSize ,
  183. 'folder' AS FileType ,
  184. CreateUserId,
  185. ModifyDate
  186. FROM Base_FileFolder WHERE DeleteMark = 0 AND IsShare = 1
  187. UNION
  188. SELECT FileId ,
  189. FolderId ,
  190. FileName ,
  191. FileSize ,
  192. FileType ,
  193. CreateUserId,
  194. ModifyDate
  195. FROM Base_FileInfo WHERE DeleteMark = 0 AND IsShare = 1
  196. ) t WHERE CreateUserId = @userId");
  197. var parameter = new List<DbParameter>
  198. {
  199. DbParameters.CreateDbParameter("@userId", userId)
  200. };
  201. strSql.Append(" ORDER BY ModifyDate DESC");
  202. return this.BaseRepository().FindList(strSql.ToString(), parameter.ToArray());
  203. }
  204. /// <summary>
  205. /// 他人文件(夹)共享列表
  206. /// </summary>
  207. /// <param name="userId">用户Id</param>
  208. /// <returns></returns>
  209. public IEnumerable<FileInfoEntity> GetOthersShareList(string userId)
  210. {
  211. var strSql = new StringBuilder();
  212. strSql.Append(@"SELECT *
  213. FROM ( SELECT FolderId AS FileId ,
  214. ParentId AS FolderId ,
  215. FolderName AS FileName ,
  216. '' AS FileSize ,
  217. 'folder' AS FileType ,
  218. CreateUserId,
  219. CreateUserName,
  220. ShareTime AS ModifyDate
  221. FROM Base_FileFolder WHERE DeleteMark = 0 AND IsShare = 1
  222. UNION
  223. SELECT FileId ,
  224. FolderId ,
  225. FileName ,
  226. FileSize ,
  227. FileType ,
  228. CreateUserId,
  229. CreateUserName,
  230. ShareTime AS ModifyDate
  231. FROM Base_FileInfo WHERE DeleteMark = 0 AND IsShare = 1
  232. ) t WHERE CreateUserId != @userId");
  233. var parameter = new List<DbParameter>
  234. {
  235. DbParameters.CreateDbParameter("@userId", userId)
  236. };
  237. strSql.Append(" ORDER BY ModifyDate DESC");
  238. return this.BaseRepository().FindList(strSql.ToString(), parameter.ToArray());
  239. }
  240. /// <summary>
  241. /// 文件实体
  242. /// </summary>
  243. /// <param name="keyValue">主键值</param>
  244. /// <returns></returns>
  245. public FileInfoEntity GetEntity(string keyValue)
  246. {
  247. return this.BaseRepository().FindEntity(keyValue);
  248. }
  249. #endregion
  250. #region 提交数据
  251. /// <summary>
  252. /// 还原文件
  253. /// </summary>
  254. /// <param name="keyValue">主键</param>
  255. public void RestoreFile(string keyValue)
  256. {
  257. FileInfoEntity fileInfoEntity = new FileInfoEntity();
  258. fileInfoEntity.Modify(keyValue);
  259. fileInfoEntity.DeleteMark = (int)DeleteMarkEnum.NotDelete;
  260. this.BaseRepository().Update(fileInfoEntity);
  261. }
  262. /// <summary>
  263. /// 删除文件
  264. /// </summary>
  265. /// <param name="keyValue">主键</param>
  266. public void RemoveForm(string keyValue)
  267. {
  268. FileInfoEntity fileInfoEntity = new FileInfoEntity();
  269. fileInfoEntity.Modify(keyValue);
  270. fileInfoEntity.DeleteMark = (int)DeleteMarkEnum.Delete;
  271. this.BaseRepository().Update(fileInfoEntity);
  272. }
  273. /// <summary>
  274. /// 彻底删除文件
  275. /// </summary>
  276. /// <param name="keyValue">主键</param>
  277. public void ThoroughRemoveForm(string keyValue)
  278. {
  279. this.BaseRepository().Delete(keyValue);
  280. }
  281. /// <summary>
  282. /// 保存文件表单(新增、修改)
  283. /// </summary>
  284. /// <param name="keyValue">主键值</param>
  285. /// <param name="fileInfoEntity">文件信息实体</param>
  286. /// <returns></returns>
  287. public void SaveForm(string keyValue, FileInfoEntity fileInfoEntity)
  288. {
  289. if (!string.IsNullOrEmpty(keyValue))
  290. {
  291. fileInfoEntity.Modify(keyValue);
  292. this.BaseRepository().Update(fileInfoEntity);
  293. }
  294. else
  295. {
  296. fileInfoEntity.Create();
  297. this.BaseRepository().Insert(fileInfoEntity);
  298. }
  299. }
  300. /// <summary>
  301. /// 共享文件
  302. /// </summary>
  303. /// <param name="keyValue">主键</param>
  304. /// <param name="IsShare">是否共享:1-共享 0取消共享</param>
  305. public void ShareFile(string keyValue, int IsShare)
  306. {
  307. FileInfoEntity fileInfoEntity = new FileInfoEntity
  308. {
  309. FileId = keyValue,
  310. IsShare = IsShare,
  311. ShareTime = DateTimeHelper.Now
  312. };
  313. this.BaseRepository().Update(fileInfoEntity);
  314. }
  315. #endregion
  316. }
  317. }