Fc3dManage.cs 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Data.Common;
  5. using CB.Common;
  6. using CB.Data;
  7. using CB.Entity;
  8. using CB.Interface.Infrastructure;
  9. namespace CB.Data.SqlServer
  10. {
  11. public class FC3DManage : Repository<FC3DInfo>, IFC3DService
  12. {
  13. public FC3DManage(string interfaceId)
  14. : base(interfaceId)
  15. {
  16. }
  17. public override bool Save(FC3DInfo entity)
  18. {
  19. DbParameter[] pars ={
  20. DbHelper.MakeInParam(InterfaceId,"@Term",(DbType)SqlDbType.Int,4,entity.Term),
  21. DbHelper.MakeInParam(InterfaceId,"@OpenCode1",(DbType)SqlDbType.Int,4,entity.OpenCode1),
  22. DbHelper.MakeInParam(InterfaceId,"@OpenCode2",(DbType)SqlDbType.Int,4,entity.OpenCode2),
  23. DbHelper.MakeInParam(InterfaceId,"@OpenCode3",(DbType)SqlDbType.Int,4,entity.OpenCode3),
  24. DbHelper.MakeInParam(InterfaceId,"@OpenTime",(DbType)SqlDbType.DateTime,0,entity.OpenTime),
  25. DbHelper.MakeInParam(InterfaceId,"@ShiJiHao",(DbType)SqlDbType.NVarChar,0,entity.ShiJiHao),
  26. DbHelper.MakeInParam(InterfaceId,"@KaiJiHao",(DbType)SqlDbType.NVarChar,0,entity.KaiJiHao),
  27. DbHelper.MakeInParam(InterfaceId,"@Detail",(DbType)SqlDbType.NVarChar,500,entity.Detail)
  28. };
  29. return TypeConverter.ObjectToInt(DbHelper.ExecuteScalar(InterfaceId, CommandType.StoredProcedure, "usp_FC3D_save", pars)) > 0;
  30. }
  31. public override bool Update(FC3DInfo entity)
  32. {
  33. DbParameter[] pars ={
  34. DbHelper.MakeInParam(InterfaceId,"@Term",(DbType)SqlDbType.Int,4,entity.Term),
  35. DbHelper.MakeInParam(InterfaceId,"@OpenCode1",(DbType)SqlDbType.Int,4,entity.OpenCode1),
  36. DbHelper.MakeInParam(InterfaceId,"@OpenCode2",(DbType)SqlDbType.Int,4,entity.OpenCode2),
  37. DbHelper.MakeInParam(InterfaceId,"@OpenCode3",(DbType)SqlDbType.Int,4,entity.OpenCode3),
  38. DbHelper.MakeInParam(InterfaceId,"@OpenTime",(DbType)SqlDbType.DateTime,0,entity.OpenTime),
  39. DbHelper.MakeInParam(InterfaceId,"@ShiJiHao",(DbType)SqlDbType.NVarChar,0,entity.ShiJiHao),
  40. DbHelper.MakeInParam(InterfaceId,"@KaiJiHao",(DbType)SqlDbType.NVarChar,0,entity.KaiJiHao),
  41. DbHelper.MakeInParam(InterfaceId,"@Detail",(DbType)SqlDbType.NVarChar,500,entity.Detail)
  42. };
  43. return TypeConverter.ObjectToInt(DbHelper.ExecuteScalar(InterfaceId, CommandType.StoredProcedure, "usp_FC3D_save", pars)) > 0;
  44. }
  45. public override bool Delete(int id)
  46. {
  47. DbParameter[] pars ={
  48. DbHelper.MakeInParam(InterfaceId,"@Id",(DbType)SqlDbType.Int,4,id)
  49. };
  50. return TypeConverter.ObjectToInt(DbHelper.ExecuteScalar(InterfaceId, CommandType.StoredProcedure, "usp_FC3D_Delete", pars)) > 0;
  51. }
  52. public override FC3DInfo Get<TKey>(TKey key)
  53. {
  54. FC3DInfo Entity = null;
  55. DbParameter[] para =
  56. {
  57. DbHelper.MakeInParam(InterfaceId,"@Id",(DbType)SqlDbType.Int,4,key)
  58. };
  59. using (IDataReader reader = DbHelper.ExecuteReader(InterfaceId, CommandType.Text,
  60. "SELECT TOP 1 [Id],[Term],[OpenCode1],[OpenCode2],[OpenCode3],[OpenTime],[ShiJiHao],[KaiJiHao],[Detail],[Addtime] FROM [DT_FC3D] WHERE [Id]= @Id", para))
  61. {
  62. if (reader.Read())
  63. {
  64. Entity = LoadEntity(reader);
  65. }
  66. reader.Dispose();
  67. }
  68. return Entity;
  69. }
  70. public override IList<FC3DInfo> ToList()
  71. {
  72. IList<FC3DInfo> list = new List<FC3DInfo>();
  73. using (DataTable dt = DbHelper.ExecuteDatatable(InterfaceId,
  74. "SELECT [Id],[Term],[OpenCode1],[OpenCode2],[OpenCode3],[OpenTime],[ShiJiHao],[KaiJiHao],[Detail],[Addtime] FROM [DT_FC3D] ORDER BY [Term] ASC"))
  75. {
  76. if (null != dt && 0 < dt.Rows.Count)
  77. {
  78. foreach (DataRow dr in dt.Rows)
  79. {
  80. list.Add(LoadEntity(dr));
  81. }
  82. }
  83. dt.Dispose();
  84. }
  85. return list;
  86. }
  87. public override IList<FC3DInfo> ToList(FC3DInfo entity)
  88. {
  89. throw new NotImplementedException();
  90. }
  91. public override IList<FC3DInfo> ToPaging(FC3DInfo entity, int pageSize, int pageIndex, out int recordCount)
  92. {
  93. string where = "1=1 ";
  94. if (null != entity)
  95. {
  96. if (entity.Term > 0)
  97. where += " AND [Term]=" + entity.Term;
  98. }
  99. recordCount = 0;
  100. string field = "[Id],[Term],[OpenCode1],[OpenCode2],[OpenCode3],[OpenTime],[ShiJiHao],[KaiJiHao],[Detail],[Addtime]"
  101. , orderField = "Term desc"
  102. , tableName = "DT_FC3D";
  103. DbParameter[] para =
  104. {
  105. DbHelper.MakeInParam(InterfaceId,"@pageSize",(DbType)SqlDbType.Int,4,pageSize),
  106. DbHelper.MakeInParam(InterfaceId,"@page",(DbType)SqlDbType.Int,4,pageIndex),
  107. DbHelper.MakeInParam(InterfaceId,"@tableName",(DbType)SqlDbType.NVarChar,500,tableName),
  108. DbHelper.MakeInParam(InterfaceId,"@field",(DbType)SqlDbType.NVarChar,1000,field),
  109. DbHelper.MakeInParam(InterfaceId,"@orderField",(DbType)SqlDbType.NVarChar,50,orderField),
  110. DbHelper.MakeInParam(InterfaceId,"@where",(DbType)SqlDbType.NVarChar,2000,where)
  111. };
  112. IList<FC3DInfo> list = new List<FC3DInfo>();
  113. using (IDataReader reader = DbHelper.ExecuteReader(InterfaceId, CommandType.StoredProcedure, "usp_st_page", para))
  114. {
  115. while (reader.Read())
  116. {
  117. list.Add(LoadEntity(reader));
  118. }
  119. if (reader.NextResult() && reader.Read())
  120. {
  121. recordCount = reader.GetInt32(0);
  122. }
  123. reader.Dispose();
  124. }
  125. return list;
  126. }
  127. public IList<FC3DInfo> ToListForTrend(long term, LotterySearchField fields)
  128. {
  129. IList<FC3DInfo> list = new List<FC3DInfo>();
  130. DbParameter[] para;
  131. int numRepeat = null == fields ? 0 : fields.NumRepeat;
  132. switch (numRepeat)
  133. {
  134. //组三
  135. case 1:
  136. para = new DbParameter[]
  137. {
  138. DbHelper.MakeInParam(InterfaceId,"@statement",(DbType)SqlDbType.NVarChar,350,"SELECT TOP 2 [Term],[OpenCode1],[OpenCode2],[OpenCode3],[OpenTime],[ShiJiHao],[KaiJiHao] FROM [DT_FC3D] WHERE [Term]<=@qi AND (([OpenCode1] = [OpenCode2] AND [OpenCode1] != [OpenCode3]) OR ([OpenCode1] = [OpenCode3] AND [OpenCode2] != [OpenCode3]) OR ([OpenCode2] = [OpenCode3] AND [OpenCode1] != [OpenCode3])) ORDER BY [Term] DESC"),
  139. DbHelper.MakeInParam(InterfaceId,"@params",(DbType)SqlDbType.NVarChar,10,"@qi int"),
  140. DbHelper.MakeInParam(InterfaceId,"@qi",(DbType)SqlDbType.Int,4,term)
  141. };
  142. break;
  143. //豹子
  144. case 2:
  145. para = new DbParameter[]
  146. {
  147. DbHelper.MakeInParam(InterfaceId,"@statement",(DbType)SqlDbType.NVarChar,250,"SELECT TOP 2 [Term],[OpenCode1],[OpenCode2],[OpenCode3],[OpenTime],[ShiJiHao],[KaiJiHao] FROM [DT_FC3D] WHERE [Term]<=@qi AND [OpenCode1] = [OpenCode2] AND [OpenCode2] = [OpenCode3] ORDER BY [Term] DESC"),
  148. DbHelper.MakeInParam(InterfaceId,"@params",(DbType)SqlDbType.NVarChar,10,"@qi int"),
  149. DbHelper.MakeInParam(InterfaceId,"@qi",(DbType)SqlDbType.Int,4,term)
  150. };
  151. break;
  152. default:
  153. para = new DbParameter[]
  154. {
  155. DbHelper.MakeInParam(InterfaceId,"@statement",(DbType)SqlDbType.NVarChar,200,"SELECT TOP 2 [Term],[OpenCode1],[OpenCode2],[OpenCode3],[OpenTime],[ShiJiHao],[KaiJiHao] FROM [DT_FC3D] WHERE [Term]<=@qi ORDER BY [Term] DESC"),
  156. DbHelper.MakeInParam(InterfaceId,"@params",(DbType)SqlDbType.NVarChar,10,"@qi int"),
  157. DbHelper.MakeInParam(InterfaceId,"@qi",(DbType)SqlDbType.Int,4,term)
  158. };
  159. break;
  160. }
  161. using (IDataReader reader = DbHelper.ExecuteReader(InterfaceId, CommandType.StoredProcedure, "dbo.sp_executesql", para))
  162. {
  163. while (reader.Read())
  164. {
  165. var entity = new FC3DInfo
  166. {
  167. Term = TypeConverter.ObjectToInt(reader["Term"]),
  168. OpenCode1 = TypeConverter.ObjectToInt(reader["OpenCode1"]),
  169. OpenCode2 = TypeConverter.ObjectToInt(reader["OpenCode2"]),
  170. OpenCode3 = TypeConverter.ObjectToInt(reader["OpenCode3"]),
  171. OpenTime = TypeConverter.ObjectToDateTime(reader["OpenTime"], DateTime.MinValue),
  172. ShiJiHao = reader["ShiJiHao"].ToString().Trim(),
  173. KaiJiHao = reader["KaiJiHao"].ToString().Trim()
  174. };
  175. entity.OpenCode = new List<int>() { entity.OpenCode1, entity.OpenCode2, entity.OpenCode3 };
  176. list.Add(entity);
  177. }
  178. reader.Dispose();
  179. }
  180. return list;
  181. }
  182. protected override FC3DInfo LoadEntity(DataRow dr)
  183. {
  184. FC3DInfo entity = new FC3DInfo
  185. {
  186. Id = TypeConverter.ObjectToInt(dr["Id"]),
  187. Term = TypeConverter.ObjectToInt(dr["Term"]),
  188. OpenCode1 = TypeConverter.ObjectToInt(dr["OpenCode1"]),
  189. OpenCode2 = TypeConverter.ObjectToInt(dr["OpenCode2"]),
  190. OpenCode3 = TypeConverter.ObjectToInt(dr["OpenCode3"]),
  191. OpenTime = TypeConverter.ObjectToDateTime(dr["OpenTime"], DateTime.MinValue),
  192. ShiJiHao = dr["ShiJiHao"].ToString().Trim(),
  193. KaiJiHao = dr["KaiJiHao"].ToString().Trim(),
  194. Detail = dr["Detail"].ToString(),
  195. Addtime = TypeConverter.ObjectToDateTime(dr["Addtime"], DateTime.MinValue)
  196. };
  197. entity.OpenCode = new List<int>() { entity.OpenCode1, entity.OpenCode2, entity.OpenCode3 };
  198. return entity;
  199. }
  200. protected override FC3DInfo LoadEntity(IDataReader reader)
  201. {
  202. FC3DInfo entity = new FC3DInfo
  203. {
  204. Id = TypeConverter.ObjectToInt(reader["Id"]),
  205. Term = TypeConverter.ObjectToInt(reader["Term"]),
  206. OpenCode1 = TypeConverter.ObjectToInt(reader["OpenCode1"]),
  207. OpenCode2 = TypeConverter.ObjectToInt(reader["OpenCode2"]),
  208. OpenCode3 = TypeConverter.ObjectToInt(reader["OpenCode3"]),
  209. OpenTime = TypeConverter.ObjectToDateTime(reader["OpenTime"], DateTime.MinValue),
  210. ShiJiHao = reader["ShiJiHao"].ToString().Trim(),
  211. KaiJiHao = reader["KaiJiHao"].ToString().Trim(),
  212. Detail = reader["Detail"].ToString(),
  213. Addtime = TypeConverter.ObjectToDateTime(reader["Addtime"], DateTime.MinValue)
  214. };
  215. entity.OpenCode = new List<int>() { entity.OpenCode1, entity.OpenCode2, entity.OpenCode3 };
  216. return entity;
  217. }
  218. public IList<FC3DInfo> GetListToEnd(long term, LotterySearchField fields)
  219. {
  220. IList<FC3DInfo> list = new List<FC3DInfo>();
  221. DbParameter[] para;
  222. int numRepeat = null == fields ? 0 : fields.NumRepeat;
  223. switch (numRepeat)
  224. {
  225. //组三
  226. case 1:
  227. para = new DbParameter[]
  228. {
  229. DbHelper.MakeInParam(InterfaceId,"@statement",(DbType)SqlDbType.NVarChar,2000,"SELECT [Term],[OpenCode1],[OpenCode2],[OpenCode3],[OpenTime],[ShiJiHao],[KaiJiHao] FROM [DT_FC3D] WHERE [Term]>=@qi AND (([OpenCode1] = [OpenCode2] AND [OpenCode1] != [OpenCode3]) OR ([OpenCode1] = [OpenCode3] AND [OpenCode2] != [OpenCode3]) OR ([OpenCode2] = [OpenCode3] AND [OpenCode1] != [OpenCode3])) ORDER BY [Term] ASC"),
  230. DbHelper.MakeInParam(InterfaceId,"@params",(DbType)SqlDbType.NVarChar,10,"@qi int"),
  231. DbHelper.MakeInParam(InterfaceId,"@qi",(DbType)SqlDbType.Int,4,term)
  232. };
  233. break;
  234. //豹子
  235. case 2:
  236. para = new DbParameter[]
  237. {
  238. DbHelper.MakeInParam(InterfaceId,"@statement",(DbType)SqlDbType.NVarChar,2000,"SELECT [Term],[OpenCode1],[OpenCode2],[OpenCode3],[OpenTime],[ShiJiHao],[KaiJiHao] FROM [DT_FC3D] WHERE [Term]>=@qi AND [OpenCode1] = [OpenCode2] AND [OpenCode2] = [OpenCode3] ORDER BY [Term] ASC"),
  239. DbHelper.MakeInParam(InterfaceId,"@params",(DbType)SqlDbType.NVarChar,10,"@qi int"),
  240. DbHelper.MakeInParam(InterfaceId,"@qi",(DbType)SqlDbType.Int,4,term)
  241. };
  242. break;
  243. default:
  244. para = new DbParameter[]
  245. {
  246. DbHelper.MakeInParam(InterfaceId,"@statement",(DbType)SqlDbType.NVarChar,2000,"SELECT [Term],[OpenCode1],[OpenCode2],[OpenCode3],[OpenTime],[ShiJiHao],[KaiJiHao] FROM [DT_FC3D] WHERE [Term]>=@qi ORDER BY [Term] ASC"),
  247. DbHelper.MakeInParam(InterfaceId,"@params",(DbType)SqlDbType.NVarChar,10,"@qi int"),
  248. DbHelper.MakeInParam(InterfaceId,"@qi",(DbType)SqlDbType.Int,4,term)
  249. };
  250. break;
  251. }
  252. using (DataTable dt = DbHelper.ExecuteDatatable(InterfaceId, CommandType.StoredProcedure, "dbo.sp_executesql", para))
  253. {
  254. if (null != dt && 0 < dt.Rows.Count)
  255. {
  256. foreach (DataRow dr in dt.Rows)
  257. {
  258. var entity = new FC3DInfo
  259. {
  260. Term = TypeConverter.ObjectToInt(dr["Term"]),
  261. OpenCode1 = TypeConverter.ObjectToInt(dr["OpenCode1"]),
  262. OpenCode2 = TypeConverter.ObjectToInt(dr["OpenCode2"]),
  263. OpenCode3 = TypeConverter.ObjectToInt(dr["OpenCode3"]),
  264. OpenTime = TypeConverter.ObjectToDateTime(dr["OpenTime"], DateTime.MinValue),
  265. ShiJiHao = dr["ShiJiHao"].ToString().Trim(),
  266. KaiJiHao = dr["KaiJiHao"].ToString().Trim()
  267. };
  268. entity.OpenCode = new List<int>() { entity.OpenCode1, entity.OpenCode2, entity.OpenCode3 };
  269. list.Add(entity);
  270. }
  271. }
  272. dt.Dispose();
  273. }
  274. return list;
  275. }
  276. public IList<FC3DInfo> GetListToEnd(long term, TrendChartSearchField fields)
  277. {
  278. IList<FC3DInfo> list = new List<FC3DInfo>();
  279. DbParameter[] para;
  280. int numRepeat = null == fields ? 0 : fields.NumRepeat;
  281. string query = "";
  282. int topSize = 0;
  283. if (null != fields)
  284. {
  285. if (fields.Year > 0)
  286. {
  287. query += " and Term between " + (fields.Year * 1000).ToString() + " and " + ((fields.Year + 1) * 1000).ToString() + " ";
  288. fields.Record = 1500;
  289. }
  290. else if (fields.StartTerm > 0 && fields.EndTerm > 0)
  291. { query += " and Term between " + fields.StartTerm.ToString() + " and " + fields.EndTerm.ToString() + " "; fields.Record = 1500; }
  292. else if (fields.Record == 0)
  293. { fields.Record = 30; }
  294. topSize = fields.Record;
  295. }
  296. string topSql = "";
  297. if (topSize > 0) topSql = " top (" + topSize .ToString()+")";
  298. switch (numRepeat)
  299. {
  300. //组三
  301. case 1:
  302. para = new DbParameter[]
  303. {
  304. DbHelper.MakeInParam(InterfaceId,"@statement",(DbType)SqlDbType.NVarChar,2000,@"
  305. SELECT "+topSql+" [Term],[OpenCode1],[OpenCode2],[OpenCode3]" +
  306. ",[OpenTime],[ShiJiHao],[KaiJiHao] FROM [DT_FC3D] " +
  307. "WHERE OpenCode1 > -1 and [Term]>=@qi AND (([OpenCode1] = [OpenCode2] AND [OpenCode1] != [OpenCode3]) OR ([OpenCode1] = [OpenCode3] AND [OpenCode2] != [OpenCode3]) OR ([OpenCode2] = [OpenCode3] AND [OpenCode1] != [OpenCode3])) "+ query+" ORDER BY [Term] DESC"),
  308. DbHelper.MakeInParam(InterfaceId,"@params",(DbType)SqlDbType.NVarChar,10,"@qi int"),
  309. DbHelper.MakeInParam(InterfaceId,"@qi",(DbType)SqlDbType.Int,4,term)
  310. };
  311. break;
  312. //豹子
  313. case 2:
  314. para = new DbParameter[]
  315. {
  316. DbHelper.MakeInParam(InterfaceId,"@statement",(DbType)SqlDbType.NVarChar,2000,"SELECT "+topSql+" [Term],[OpenCode1],[OpenCode2],[OpenCode3],[OpenTime],[ShiJiHao],[KaiJiHao] FROM [DT_FC3D] WHERE OpenCode1 > -1 and [Term]>=@qi AND [OpenCode1] = [OpenCode2] AND [OpenCode2] = [OpenCode3] "+ query+"ORDER BY [Term] DESC"),
  317. DbHelper.MakeInParam(InterfaceId,"@params",(DbType)SqlDbType.NVarChar,10,"@qi int"),
  318. DbHelper.MakeInParam(InterfaceId,"@qi",(DbType)SqlDbType.Int,4,term)
  319. };
  320. break;
  321. default:
  322. para = new DbParameter[]
  323. {
  324. DbHelper.MakeInParam(InterfaceId,"@statement",(DbType)SqlDbType.NVarChar,2000,"SELECT "+topSql+" [Term],[OpenCode1],[OpenCode2],[OpenCode3],[OpenTime],[ShiJiHao],[KaiJiHao] FROM [DT_FC3D] WHERE OpenCode1 > -1 and [Term]>=@qi "+ query+" ORDER BY [Term] DESC"),
  325. DbHelper.MakeInParam(InterfaceId,"@params",(DbType)SqlDbType.NVarChar,10,"@qi int"),
  326. DbHelper.MakeInParam(InterfaceId,"@qi",(DbType)SqlDbType.Int,4,term)
  327. };
  328. break;
  329. }
  330. using (DataTable dt = DbHelper.ExecuteDatatable(InterfaceId, CommandType.StoredProcedure, "dbo.sp_executesql", para))
  331. {
  332. if (null != dt && 0 < dt.Rows.Count)
  333. {
  334. foreach (DataRow dr in dt.Rows)
  335. {
  336. var entity = new FC3DInfo
  337. {
  338. Term = TypeConverter.ObjectToInt(dr["Term"]),
  339. OpenCode1 = TypeConverter.ObjectToInt(dr["OpenCode1"]),
  340. OpenCode2 = TypeConverter.ObjectToInt(dr["OpenCode2"]),
  341. OpenCode3 = TypeConverter.ObjectToInt(dr["OpenCode3"]),
  342. OpenTime = TypeConverter.ObjectToDateTime(dr["OpenTime"], DateTime.MinValue),
  343. ShiJiHao = dr["ShiJiHao"].ToString().Trim(),
  344. KaiJiHao = dr["KaiJiHao"].ToString().Trim()
  345. };
  346. entity.OpenCode = new List<int>() { entity.OpenCode1, entity.OpenCode2, entity.OpenCode3 };
  347. list.Add(entity);
  348. }
  349. }
  350. dt.Dispose();
  351. }
  352. return list;
  353. }
  354. public int GetMaxTerm()
  355. {
  356. int MaxTerm = 0;
  357. using (IDataReader reader = DbHelper.ExecuteReader(InterfaceId, CommandType.StoredProcedure, "dbo.usp_TrendToolGetMaxTermByFC3D"))
  358. {
  359. while (reader.Read())
  360. {
  361. MaxTerm = TypeConverter.ObjectToInt(reader["Term"]);
  362. }
  363. reader.Dispose();
  364. }
  365. return MaxTerm;
  366. }
  367. }
  368. }