TopicManage.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data.Common;
  4. using System.Linq;
  5. using System.Text;
  6. using CB.Entity;
  7. using CB.Interface.Infrastructure;
  8. using System.Data;
  9. using CB.Common;
  10. namespace CB.Data.SqlServer
  11. {
  12. public class TopicManage : Repository<TopicInfo>, ITopicService
  13. {
  14. public TopicManage(string interfaceId)
  15. : base(interfaceId)
  16. {
  17. }
  18. public override bool Save(TopicInfo entity)
  19. {
  20. DbParameter[] pars ={
  21. DbHelper.MakeInParam(InterfaceId,"@Cid",(DbType)SqlDbType.Int,4,entity.Cid),
  22. DbHelper.MakeInParam(InterfaceId,"@Title",(DbType)SqlDbType.NVarChar,300,entity.Title),
  23. DbHelper.MakeInParam(InterfaceId,"@Context",(DbType)SqlDbType.NVarChar,0,entity.Context),
  24. DbHelper.MakeInParam(InterfaceId,"@Status",(DbType)SqlDbType.Int,2,entity.Status),
  25. DbHelper.MakeInParam(InterfaceId,"@Uid",(DbType)SqlDbType.Int,4,entity.Uid),
  26. DbHelper.MakeInParam(InterfaceId,"@UserName",(DbType)SqlDbType.NVarChar,20,entity.UserName),
  27. DbHelper.MakeInParam(InterfaceId,"@thumbsURL",(DbType)SqlDbType.NVarChar,2000,entity.thumbsURL),
  28. DbHelper.MakeInParam(InterfaceId,"@thumbsSize",(DbType)SqlDbType.NVarChar,1000,entity.thumbsSize),
  29. DbHelper.MakeInParam(InterfaceId,"@FileName",(DbType)SqlDbType.NVarChar,2000,entity.FileName),
  30. DbHelper.MakeInParam(InterfaceId,"@FilteType",(DbType)SqlDbType.NVarChar,500,entity.FilteType),
  31. DbHelper.MakeInParam(InterfaceId,"@FileURL",(DbType)SqlDbType.NVarChar,2000,entity.FileURL),
  32. DbHelper.MakeInParam(InterfaceId,"@FileSize",(DbType)SqlDbType.NVarChar,1000,entity.FileSize)
  33. };
  34. return DbHelper.ExecuteNonQuery(InterfaceId, CommandType.Text, @"INSERT INTO [DT_Topic] ([Cid],[Title],[Context],[Status],[Uid],[UserName],
  35. [LastUpDateTime],[Addtime],[thumbsURL],[thumbsSize],[FileName],[FilteType],[FileURL],[FileSize])
  36. VALUES (@Cid,@Title,@Context,@Status,@Uid,@UserName,GETDATE(),GETDATE(),@thumbsURL,@thumbsSize,@FileName,@FilteType,@FileURL,@FileSize)", pars) > 0;
  37. }
  38. public override bool Update(TopicInfo entity)
  39. {
  40. DbParameter[] pars ={
  41. DbHelper.MakeInParam(InterfaceId,"@Tid",(DbType)SqlDbType.Int,4,entity.Tid),
  42. DbHelper.MakeInParam(InterfaceId,"@Cid",(DbType)SqlDbType.Int,4,entity.Cid),
  43. DbHelper.MakeInParam(InterfaceId,"@Title",(DbType)SqlDbType.NVarChar,300,entity.Title),
  44. DbHelper.MakeInParam(InterfaceId,"@Context",(DbType)SqlDbType.NVarChar,0,entity.Context),
  45. DbHelper.MakeInParam(InterfaceId,"@Status",(DbType)SqlDbType.Int,2,entity.Status),
  46. DbHelper.MakeInParam(InterfaceId,"@thumbsURL",(DbType)SqlDbType.NVarChar,2000,entity.thumbsURL),
  47. DbHelper.MakeInParam(InterfaceId,"@thumbsSize",(DbType)SqlDbType.NVarChar,1000,entity.thumbsSize),
  48. DbHelper.MakeInParam(InterfaceId,"@FileName",(DbType)SqlDbType.NVarChar,2000,entity.FileName),
  49. DbHelper.MakeInParam(InterfaceId,"@FilteType",(DbType)SqlDbType.NVarChar,500,entity.FilteType),
  50. DbHelper.MakeInParam(InterfaceId,"@FileURL",(DbType)SqlDbType.NVarChar,2000,entity.FileURL),
  51. DbHelper.MakeInParam(InterfaceId,"@FileSize",(DbType)SqlDbType.NVarChar,1000,entity.FileSize)
  52. };
  53. return DbHelper.ExecuteNonQuery(InterfaceId, CommandType.Text, @"UPDATE [DT_Topic] SET [Cid]=@Cid,[Title]=@Title,[Context]=@Context,
  54. [Status]=@Status,[LastUpDateTime]=GETDATE(),[thumbsURL]=@thumbsURL,[thumbsSize]=@thumbsSize,[FileName]=@FileName,
  55. [FilteType]=@FilteType,[FileURL]=@FileURL,[FileSize]=@FileSize WHERE [Tid]=@Tid", pars) > 0;
  56. }
  57. public override bool Delete(int id)
  58. {
  59. return DbHelper.ExecuteNonQuery(InterfaceId, CommandType.Text, "DELETE FROM [DT_Topic] WHERE [Tid]=" + id) > 0;
  60. }
  61. public override TopicInfo Get<TKey>(TKey key)
  62. {
  63. TopicInfo Entity = null;
  64. DbParameter[] para =
  65. {
  66. DbHelper.MakeInParam(InterfaceId,"@Tid",(DbType)SqlDbType.Int,4,key)
  67. };
  68. using (IDataReader reader = DbHelper.ExecuteReader(InterfaceId, CommandType.Text,
  69. @"SELECT TOP 1 [Tid],[Cid] ,[Title],[Context],[Status],[Uid],[UserName],[Hits],[LastUpDateTime],[Addtime]
  70. ,[thumbsURL],[thumbsSize],[FileName],[FilteType],[FileURL],[FileSize] FROM [DT_Topic] WHERE Tid= @Tid",
  71. para))
  72. {
  73. if (reader.Read())
  74. {
  75. Entity = LoadEntity(reader);
  76. }
  77. reader.Dispose();
  78. }
  79. return Entity;
  80. }
  81. public override IList<TopicInfo> ToList()
  82. {
  83. IList<TopicInfo> list = new List<TopicInfo>();
  84. using (DataTable dt = DbHelper.ExecuteDatatable(InterfaceId, @"SELECT [Tid],[Cid],[Title],[Context],[Status],[Uid],[UserName],[Hits],
  85. [LastUpDateTime],[Addtime],[thumbsURL],[thumbsSize],[FileName],[FilteType],[FileURL],[FileSize] FROM [DT_Topic]"))
  86. {
  87. if (null != dt && 0 < dt.Rows.Count)
  88. {
  89. foreach (DataRow dr in dt.Rows)
  90. { list.Add(LoadEntity(dr)); }
  91. }
  92. dt.Dispose();
  93. }
  94. return list;
  95. }
  96. public override IList<TopicInfo> ToList(TopicInfo entity)
  97. {
  98. IList<TopicInfo> list = new List<TopicInfo>();
  99. DbParameter[] para =
  100. {
  101. DbHelper.MakeInParam(InterfaceId,"@cid",(DbType)SqlDbType.Int,4,entity.Cid)
  102. };
  103. using (DataTable dt = DbHelper.ExecuteDatatable(InterfaceId, CommandType.Text, @"SELECT [Tid],[Cid],[Title],[Context],[Status],[Uid],[UserName],[Hits],
  104. [LastUpDateTime],[Addtime],[thumbsURL],[thumbsSize],[FileName],[FilteType],[FileURL],[FileSize] FROM [DT_Topic] WHERE [Cid]=@cid", para))
  105. {
  106. if (null != dt && 0 < dt.Rows.Count)
  107. {
  108. foreach (DataRow dr in dt.Rows)
  109. { list.Add(LoadEntity(dr)); }
  110. }
  111. dt.Dispose();
  112. }
  113. return list;
  114. }
  115. public override IList<TopicInfo> ToPaging(TopicInfo entity, int pageSize, int pageIndex, out int recordCount)
  116. {
  117. string where = "1=1 ";
  118. if (null != entity)
  119. {
  120. if (!string.IsNullOrEmpty(entity.Title))
  121. where += " AND [Title] Like '%" + entity.Title + "%'";
  122. if (0 < entity.ParentId)
  123. where += " AND [Cid] IN (SELECT [Cid] FROM [DT_TopicClass] WHERE [ParentId]=" + entity.ParentId + ")";
  124. if (0 < entity.Cid)
  125. where += " AND [Cid]=" + entity.Cid;
  126. }
  127. recordCount = 0;
  128. string field = "[Tid],[Cid],[Title],[Context],[Status],[Uid],[UserName],[Hits],[LastUpDateTime],[Addtime],[thumbsURL],[thumbsSize],[FileName],[FilteType],[FileURL],[FileSize]"
  129. , orderField = "[Tid] DESC"
  130. , tableName = "[DT_Topic]";
  131. DbParameter[] para =
  132. {
  133. DbHelper.MakeInParam(InterfaceId,"@pageSize",(DbType)SqlDbType.Int,4,pageSize),
  134. DbHelper.MakeInParam(InterfaceId,"@page",(DbType)SqlDbType.Int,4,pageIndex),
  135. DbHelper.MakeInParam(InterfaceId,"@tableName",(DbType)SqlDbType.NVarChar,500,tableName),
  136. DbHelper.MakeInParam(InterfaceId,"@field",(DbType)SqlDbType.NVarChar,1000,field),
  137. DbHelper.MakeInParam(InterfaceId,"@orderField",(DbType)SqlDbType.NVarChar,50,orderField),
  138. DbHelper.MakeInParam(InterfaceId,"@where",(DbType)SqlDbType.NVarChar,2000,where)
  139. };
  140. IList<TopicInfo> list = new List<TopicInfo>();
  141. using (IDataReader reader = DbHelper.ExecuteReader(InterfaceId, CommandType.StoredProcedure, "usp_st_page", para))
  142. {
  143. while (reader.Read())
  144. {
  145. list.Add(LoadEntity(reader));
  146. }
  147. if (reader.NextResult() && reader.Read())
  148. {
  149. recordCount = reader.GetInt32(0);
  150. }
  151. reader.Dispose();
  152. }
  153. return list;
  154. }
  155. public IList<TopicInfo> ToPaging(string cids, int pageSize, int pageIndex, out int recordCount, string orderStr)
  156. {
  157. string where = "1=1 ";
  158. if (cids != "")
  159. where += " AND cid in(" + cids + ")";
  160. recordCount = 0;
  161. string field =
  162. "Tid, Cid, Title, Context, Status, Uid, UserName, Hits, LastUpDateTime, Addtime,thumbsURL, thumbsSize, FileName, FilteType, FileURL, FileSize"
  163. ,
  164. orderField = orderStr//"Tid DESC"
  165. , tableName = "[DT_Topic]";
  166. DbParameter[] para =
  167. {
  168. DbHelper.MakeInParam(InterfaceId,"@pageSize",(DbType)SqlDbType.Int,4,pageSize),
  169. DbHelper.MakeInParam(InterfaceId,"@page",(DbType)SqlDbType.Int,4,pageIndex),
  170. DbHelper.MakeInParam(InterfaceId,"@tableName",(DbType)SqlDbType.NVarChar,500,tableName),
  171. DbHelper.MakeInParam(InterfaceId,"@field",(DbType)SqlDbType.NVarChar,1000,field),
  172. DbHelper.MakeInParam(InterfaceId,"@orderField",(DbType)SqlDbType.NVarChar,50,orderField),
  173. DbHelper.MakeInParam(InterfaceId,"@where",(DbType)SqlDbType.NVarChar,2000,where)
  174. };
  175. IList<TopicInfo> list = new List<TopicInfo>();
  176. using (IDataReader reader = DbHelper.ExecuteReader(InterfaceId, CommandType.StoredProcedure, "usp_st_page", para))
  177. {
  178. while (reader.Read())
  179. {
  180. list.Add(LoadEntity(reader));
  181. }
  182. if (reader.NextResult() && reader.Read())
  183. {
  184. recordCount = reader.GetInt32(0);
  185. }
  186. reader.Dispose();
  187. }
  188. return list;
  189. }
  190. protected override TopicInfo LoadEntity(DataRow dr)
  191. {
  192. TopicInfo info = new TopicInfo
  193. {
  194. Id = TypeConverter.ObjectToInt(dr["Tid"]),
  195. Tid = TypeConverter.ObjectToInt(dr["Tid"]),
  196. LastUpDateTime = TypeConverter.ObjectToDateTime(dr["LastUpDateTime"], DateTime.MinValue),
  197. Addtime = TypeConverter.ObjectToDateTime(dr["Addtime"], DateTime.MinValue),
  198. Cid = TypeConverter.ObjectToInt(dr["Cid"]),
  199. Title = dr["Title"].ToString(),
  200. Context = dr["Context"].ToString(),
  201. Status = TypeConverter.ObjectToInt(dr["Status"]),
  202. Uid = TypeConverter.ObjectToInt(dr["Uid"]),
  203. UserName = dr["UserName"].ToString(),
  204. Hits = TypeConverter.ObjectToInt(dr["Hits"]),
  205. thumbsURL = dr["thumbsURL"].ToString(),
  206. thumbsSize = dr["thumbsSize"].ToString(),
  207. FileName = dr["FileName"].ToString(),
  208. FilteType = dr["FilteType"].ToString(),
  209. FileURL = dr["FileURL"].ToString(),
  210. FileSize = dr["FileSize"].ToString(),
  211. };
  212. LoadFileInfo(ref info);
  213. return info;
  214. }
  215. protected override TopicInfo LoadEntity(IDataReader reader)
  216. {
  217. TopicInfo info = new TopicInfo
  218. {
  219. Id = TypeConverter.ObjectToInt(reader["Tid"]),
  220. Tid = TypeConverter.ObjectToInt(reader["Tid"]),
  221. LastUpDateTime = TypeConverter.ObjectToDateTime(reader["LastUpDateTime"], DateTime.MinValue),
  222. Addtime = TypeConverter.ObjectToDateTime(reader["Addtime"], DateTime.MinValue),
  223. Cid = TypeConverter.ObjectToInt(reader["Cid"]),
  224. Title = reader["Title"].ToString(),
  225. Context = reader["Context"].ToString(),
  226. Status = TypeConverter.ObjectToInt(reader["Status"]),
  227. Uid = TypeConverter.ObjectToInt(reader["Uid"]),
  228. UserName = reader["UserName"].ToString(),
  229. Hits = TypeConverter.ObjectToInt(reader["Hits"]),
  230. thumbsURL = reader["thumbsURL"].ToString(),
  231. thumbsSize = reader["thumbsSize"].ToString(),
  232. FileName = reader["FileName"].ToString(),
  233. FilteType = reader["FilteType"].ToString(),
  234. FileURL = reader["FileURL"].ToString(),
  235. FileSize = reader["FileSize"].ToString(),
  236. };
  237. LoadFileInfo(ref info);
  238. return info;
  239. }
  240. private void LoadFileInfo(ref TopicInfo info)
  241. {
  242. if (!string.IsNullOrEmpty(info.thumbsURL))
  243. { info.ListThumbsURL = new List<string>(info.thumbsURL.Split(';')); }
  244. if (!string.IsNullOrEmpty(info.thumbsSize))
  245. { info.ListThumbsSize = new List<string>(info.thumbsSize.Split(';')); }
  246. if (!string.IsNullOrEmpty(info.FileName))
  247. { info.ListFileName = new List<string>(info.FileName.Split(';')); }
  248. if (!string.IsNullOrEmpty(info.FilteType))
  249. { info.ListFilteType = new List<string>(info.FilteType.Split(';')); }
  250. if (!string.IsNullOrEmpty(info.FileURL))
  251. { info.ListFileURL = new List<string>(info.FileURL.Split(';')); }
  252. if (!string.IsNullOrEmpty(info.FileSize))
  253. { info.ListFileSize = new List<string>(info.FileSize.Split(';')); }
  254. }
  255. }
  256. }