DTOpenCodeServices.cs 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788
  1. using FCS.Common;
  2. using FCS.Interface;
  3. using FCS.Models;
  4. using FCS.Models.Entity;
  5. using System;
  6. using System.Collections;
  7. using System.Collections.Generic;
  8. using System.Data;
  9. using System.Data.SqlClient;
  10. using System.Diagnostics;
  11. using System.Linq;
  12. using System.Linq.Expressions;
  13. using System.Reflection;
  14. namespace FCS.Services
  15. {
  16. /// <summary>
  17. /// 数据服务
  18. /// </summary>
  19. public class DTOpenCodeServices : BaseServices, IDTOpenCode
  20. {
  21. #region 足球相关
  22. /// <summary>
  23. /// 添加区域表信息
  24. /// </summary>
  25. /// <param name="lottery"></param>
  26. /// <param name="model"></param>
  27. /// <returns></returns>
  28. public bool AddArea(FCSLottery lottery, F_Area model)
  29. {
  30. var TableName = EnumHelper.GetFCSLotteryTableName(lottery);
  31. var sqlString = string.Format(AddAreaSql, TableName);
  32. var param = new SqlParameter[]{
  33. new SqlParameter("@Name",model.Name),
  34. new SqlParameter("@ParentId",model.ParentId),
  35. new SqlParameter("@LogoImage",model.LogoImage),
  36. new SqlParameter("@SortCode",model.SortCode),
  37. new SqlParameter("@ID",model.Id),
  38. new SqlParameter ("@Remark",model.Remark),
  39. new SqlParameter ("@CreateDateTime",model.CreateDateTime),
  40. };
  41. var result = SqlHelper.ExecuteNonQuery(CommandType.Text, sqlString, param);
  42. return result > 0;
  43. }
  44. public F_EuropeanEvents GetAreaId(string Name)
  45. {
  46. var sqlString = string.Format(LastItemSql, Name);
  47. var ds = SqlHelper.ExecuteDataset(CommandType.Text, sqlString);
  48. if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  49. {
  50. var result = LoadData<F_EuropeanEvents>(ds.Tables[0].Rows[0]);
  51. return result;
  52. }
  53. return null;
  54. }
  55. /// <summary>
  56. /// 添加赛事数据
  57. /// </summary>
  58. /// <param name="lottery"></param>
  59. /// <param name="model"></param>
  60. /// <returns></returns>
  61. public bool AddEvents(FCSLottery lottery, F_Events model)
  62. {
  63. var TableName = EnumHelper.GetFCSLotteryTableName(lottery);
  64. var sqlString = string.Format(AddEventsSql, TableName);
  65. var param = new SqlParameter[]{
  66. new SqlParameter("@Name",model.Name),
  67. new SqlParameter("@AreaId",model.AreaId),
  68. new SqlParameter("@LogoImage",model.LogoImage),
  69. new SqlParameter("@ID",model.Id),
  70. new SqlParameter ("@Remark",model.Remark),
  71. new SqlParameter ("@EventType",model.EventType),
  72. };
  73. var result = SqlHelper.ExecuteNonQuery(CommandType.Text, sqlString, param);
  74. return result > 0;
  75. }
  76. /// <summary>
  77. /// 获取枚举list
  78. /// </summary>
  79. /// <returns></returns>
  80. public List<DataItemDetail> GetDataItem(DataItemDetailEnum dateItem)
  81. {
  82. var sqlString = string.Format(SelectDataItemDetailSql, dateItem.ToString());
  83. var ds = SqlHelper.ExecuteDataset(CommandType.Text, sqlString);
  84. if (ds != null && ds.Tables.Count > 0)
  85. {
  86. var result = LoadDataList<DataItemDetail>(ds.Tables[0]);
  87. return result;
  88. }
  89. return null;
  90. }
  91. /// <summary>
  92. /// 获取球队列表
  93. /// </summary>
  94. /// <returns></returns>
  95. public List<F_Team> GetTeamList()
  96. {
  97. var sqlString = string.Format(GetTeamListSql);
  98. var ds = SqlHelper.ExecuteDataset(CommandType.Text, sqlString);
  99. if (ds != null && ds.Tables.Count > 0)
  100. {
  101. var result = LoadDataList<F_Team>(ds.Tables[0]);
  102. return result;
  103. }
  104. return null;
  105. }
  106. /// <summary>
  107. /// 获取国家列表
  108. /// </summary>
  109. /// <returns></returns>
  110. public List<F_Area> GetContryList()
  111. {
  112. var sqlString = string.Format(GetContryListSql);
  113. var ds = SqlHelper.ExecuteDataset(CommandType.Text, sqlString);
  114. if (ds != null && ds.Tables.Count > 0)
  115. {
  116. var result = LoadDataList<F_Area>(ds.Tables[0]);
  117. return result;
  118. }
  119. return null;
  120. }
  121. /// <summary>
  122. /// 获取球员列表
  123. /// </summary>
  124. /// <returns></returns>
  125. public List<F_Players> GetPlayerList()
  126. {
  127. var sqlString = string.Format(GetPlayerListSql);
  128. var ds = SqlHelper.ExecuteDataset(CommandType.Text, sqlString);
  129. if (ds != null && ds.Tables.Count > 0)
  130. {
  131. var result = LoadDataList<F_Players>(ds.Tables[0]);
  132. return result;
  133. }
  134. return null;
  135. }
  136. /// <summary>
  137. /// 添加球队信息
  138. /// </summary>
  139. /// <param name="lottery"></param>
  140. /// <param name="model"></param>
  141. /// <returns></returns>
  142. public bool AddTeam(FCSLottery lottery, F_Team model)
  143. {
  144. var TableName = EnumHelper.GetFCSLotteryTableName(lottery);
  145. var sqlString = string.Format(AddTeamSql, TableName);
  146. var param = new SqlParameter[]{
  147. new SqlParameter("@ID",model.Id),
  148. new SqlParameter("@Name",model.Name),
  149. new SqlParameter("@CityName",model.CityName),
  150. new SqlParameter("@Describe",model.Describe),
  151. new SqlParameter("@Venue",model.Venue),
  152. new SqlParameter ("@Coach",model.Coach),
  153. new SqlParameter ("@Address",model.Address),
  154. new SqlParameter ("@SetUpDateTime",model.SetUpDateTime),
  155. new SqlParameter ("@Advantage",model.Advantage),
  156. new SqlParameter ("@Style",model.Style),
  157. new SqlParameter ("@Weaknesses",model.Weaknesses),
  158. new SqlParameter ("@Website",model.Website),
  159. new SqlParameter ("@LogoImage",model.LogoImage),
  160. new SqlParameter ("@Remark",model.Remark),
  161. new SqlParameter ("@EventId",model.EventId),
  162. new SqlParameter ("@CreateDateTime",model.CreateDateTime),
  163. };
  164. var result = SqlHelper.ExecuteNonQuery(CommandType.Text, sqlString, param);
  165. return result > 0;
  166. }
  167. /// <summary>
  168. /// 添加球员信息
  169. /// </summary>
  170. /// <param name="lottery"></param>
  171. /// <param name="model"></param>
  172. /// <returns></returns>
  173. public bool AddPlayers(FCSLottery lottery, F_Players model)
  174. {
  175. var TableName = EnumHelper.GetFCSLotteryTableName(lottery);
  176. var sqlString = string.Format(AddPlayersSql, TableName);
  177. var param = new SqlParameter[]{
  178. new SqlParameter ("@ID",model.Id),
  179. new SqlParameter ("@ChineseName",model.ChineseName),
  180. new SqlParameter ("@EnglishName",model.EnglishName),
  181. new SqlParameter ("@Nationality",model.Nationality),
  182. new SqlParameter ("@Weight",model.Weight),
  183. new SqlParameter ("@Stature",model.Stature),
  184. new SqlParameter ("@Birthday",model.Birthday),
  185. new SqlParameter ("@GoodFoot",model.GoodFoot),
  186. new SqlParameter ("@Honor",model.Honor),
  187. new SqlParameter ("@Describe",model.Describe),
  188. new SqlParameter ("@LogoImage",model.LogoImage),
  189. new SqlParameter ("@FromAddress",model.FromAddress),
  190. new SqlParameter ("@Celebrity",model.Celebrity),
  191. new SqlParameter ("@Remark",model.Remark),
  192. };
  193. var result = SqlHelper.ExecuteNonQuery(CommandType.Text, sqlString, param);
  194. return result > 0;
  195. }
  196. /// <summary>
  197. /// 添加球队球员关系
  198. /// </summary>
  199. /// <param name="lottery"></param>
  200. /// <param name="model"></param>
  201. /// <returns></returns>
  202. public bool AddRelation(FCSLottery lottery, F_Relation model)
  203. {
  204. var TableName = EnumHelper.GetFCSLotteryTableName(lottery);
  205. var sqlString = string.Format(AddRelationsSql, TableName);
  206. var param = new SqlParameter[]{
  207. new SqlParameter ("@ID",model.Id),
  208. new SqlParameter ("@TeamId",model.TeamId),
  209. new SqlParameter ("@PlayerId",model.PlayerId),
  210. new SqlParameter ("@Position",model.Position),
  211. new SqlParameter ("@PoloShirt",model.PoloShirt),
  212. };
  213. var result = SqlHelper.ExecuteNonQuery(CommandType.Text, sqlString, param);
  214. return result > 0;
  215. }
  216. /// <summary>
  217. /// 添加公司信息
  218. /// </summary>
  219. /// <param name="lottery"></param>
  220. /// <param name="model"></param>
  221. /// <returns></returns>
  222. public bool AddBankerCompany(FCSLottery lottery, BankerCompany model)
  223. {
  224. var TableName = EnumHelper.GetFCSLotteryTableName(lottery);
  225. var sqlString = string.Format(AddBankerCompanysql, TableName);
  226. var param = new SqlParameter[]{
  227. new SqlParameter("@Id",model.Id),
  228. new SqlParameter("@Name",model.Name),
  229. new SqlParameter("@CompanyType",model.CompanyType),
  230. new SqlParameter("@CreateDateTime",model.CreateDateTime),
  231. new SqlParameter("@Remark",model.Remark),
  232. };
  233. var result = SqlHelper.ExecuteNonQuery(CommandType.Text, sqlString, param);
  234. return result > 0;
  235. }
  236. /// <summary>
  237. /// 添加公司关系信息
  238. /// </summary>
  239. /// <param name="lottery"></param>
  240. /// <param name="model"></param>
  241. /// <returns></returns>
  242. public bool AddBankerCompanyRelation(FCSLottery lottery, BankerCompanyRelation model)
  243. {
  244. var TableName = EnumHelper.GetFCSLotteryTableName(lottery);
  245. var sqlString = string.Format(AddBankerCompanyRelationsql, TableName);
  246. var param = new SqlParameter[]{
  247. new SqlParameter("@Id",model.Id),
  248. new SqlParameter("@BankerCompanyId",model.BankerCompanyId),
  249. new SqlParameter("@BankerCompanyType",model.BankerCompanyType),
  250. new SqlParameter("@CreateDateTime",model.CreateDateTime),
  251. new SqlParameter("@Remark",model.Remark),
  252. };
  253. var result = SqlHelper.ExecuteNonQuery(CommandType.Text, sqlString, param);
  254. return result > 0;
  255. }
  256. /// <summary>
  257. /// 添加固化分析信息
  258. /// </summary>
  259. /// <param name="lottery"></param>
  260. /// <param name="model"></param>
  261. /// <returns></returns>
  262. public bool AddCuringAnalysis(FCSLottery lottery, F_CuringAnalysis model)
  263. {
  264. var TableName = EnumHelper.GetFCSLotteryTableName(lottery);
  265. var sqlString = string.Format(AddCuringAnalysissql, TableName);
  266. var param = new SqlParameter[]{
  267. new SqlParameter("@Id",model.Id),
  268. new SqlParameter("@ChangeDateTime",model.ChangeDateTime),
  269. new SqlParameter("@CreateDateTime",model.CreateDateTime),
  270. new SqlParameter("@CuringAnalysisType",model.CuringAnalysisType),
  271. new SqlParameter("@CuringType",model.CuringType),
  272. new SqlParameter("@GameId",model.GameId),
  273. new SqlParameter("@Init_Disc",model.Init_Disc),
  274. new SqlParameter("@Init_FOdd",model.Init_FOdd),
  275. new SqlParameter("@Init_POdd",model.Init_POdd),
  276. new SqlParameter("@Init_SOdd",model.Init_SOdd),
  277. new SqlParameter("@Kelly_FOdd",model.Kelly_FOdd),
  278. new SqlParameter("@Kelly_POdd",model.Kelly_POdd),
  279. new SqlParameter("@Kelly_SOdd",model.Kelly_SOdd),
  280. new SqlParameter("@Loss_Odd",model.Loss_Odd),
  281. new SqlParameter("@Newest_Disc",model.Newest_Disc),
  282. new SqlParameter("@Newest_FOdd",model.Newest_FOdd),
  283. new SqlParameter("@Newest_POdd",model.Newest_POdd),
  284. new SqlParameter("@Newest_SOdd",model.Newest_SOdd),
  285. new SqlParameter("@Probability_FOdd",model.Probability_FOdd),
  286. new SqlParameter("@Probability_POdd",model.Probability_POdd),
  287. new SqlParameter("@Probability_SOdd",model.Probability_SOdd),
  288. new SqlParameter("@Remark",model.Remark),
  289. };
  290. var result = SqlHelper.ExecuteNonQuery(CommandType.Text, sqlString, param);
  291. return result > 0;
  292. }
  293. /// <summary>
  294. /// 添加固化分析信息
  295. /// </summary>
  296. /// <param name="lottery"></param>
  297. /// <param name="model"></param>
  298. /// <returns></returns>
  299. public bool AddOddsCuring(FCSLottery lottery, F_OddsCuring model)
  300. {
  301. var TableName = EnumHelper.GetFCSLotteryTableName(lottery);
  302. var sqlString = string.Format("", TableName);
  303. var param = new SqlParameter[]{
  304. new SqlParameter("@Id",model.Id),
  305. new SqlParameter("@ChangeDateTime",model.ChangeDateTime),
  306. new SqlParameter("@CreateDateTime",model.CreateDateTime),
  307. new SqlParameter("@CuringAnalysisType",model.BankerCompanyId),
  308. new SqlParameter("@CuringType",model.BankerCompanyName),
  309. new SqlParameter("@GameId",model.GameId),
  310. new SqlParameter("@Init_Disc",model.HomeTeamId),
  311. new SqlParameter("@Init_FOdd",model.HomeTeamName),
  312. new SqlParameter("@Init_POdd",model.Init_FOdd),
  313. new SqlParameter("@Init_SOdd",model.Init_POdd),
  314. new SqlParameter("@Kelly_FOdd",model.Init_SOdd),
  315. new SqlParameter("@Kelly_POdd",model.Kelly_FOdd),
  316. new SqlParameter("@Kelly_SOdd",model.Kelly_POdd),
  317. new SqlParameter("@Loss_Odd",model.Kelly_SOdd),
  318. new SqlParameter("@Newest_Disc",model.Loss_Odd),
  319. new SqlParameter("@Newest_FOdd",model.Newest_FOdd),
  320. new SqlParameter("@Newest_POdd",model.Newest_POdd),
  321. new SqlParameter("@Newest_SOdd",model.Newest_SOdd),
  322. new SqlParameter("@Probability_FOdd",model.Probability_FOdd),
  323. new SqlParameter("@Probability_POdd",model.Probability_POdd),
  324. new SqlParameter("@Probability_SOdd",model.Probability_SOdd),
  325. new SqlParameter("@Newest_SOdd",model.Remark),
  326. new SqlParameter("@Probability_FOdd",model.VisitingTeamId),
  327. new SqlParameter("@Probability_POdd",model.VisitingTeamName),
  328. };
  329. var result = SqlHelper.ExecuteNonQuery(CommandType.Text, sqlString, param);
  330. return result > 0;
  331. }
  332. public bool AddNews(NewsTypeEnum news, Base_News model)
  333. {
  334. var TableName = "Base_News";
  335. var sqlString = string.Format(AddNewsSql, TableName);
  336. var param = new SqlParameter[]{
  337. new SqlParameter ("@ID",model.Id),
  338. new SqlParameter ("@TypeId",model.TypeId),
  339. new SqlParameter ("@ParentId",model.ParentId),
  340. new SqlParameter ("@Category",model.Category),
  341. new SqlParameter ("@CategoryId",model.CategoryId),
  342. new SqlParameter ("@FullHead",model.FullHead),
  343. new SqlParameter ("@FullHeadColor",model.FullHeadColor),
  344. new SqlParameter ("@BriefHead",model.BriefHead),
  345. new SqlParameter ("@AuthorName",model.AuthorName),
  346. new SqlParameter ("@CompileName",model.CompileName),
  347. new SqlParameter ("@TagWord",model.TagWord),
  348. new SqlParameter ("@Keyword",model.Keyword),
  349. new SqlParameter ("@SourceName",model.SourceName),
  350. new SqlParameter ("@SourceAddress",model.SourceAddress),
  351. new SqlParameter ("@NewsContent",model.NewsContent),
  352. new SqlParameter ("@ReleaseTime",model.ReleaseTime),
  353. new SqlParameter ("@DeleteMark",model.DeleteMark),
  354. new SqlParameter ("@CreateDate",model.CreateDate),
  355. new SqlParameter ("@IsHot",model.IsHot),
  356. new SqlParameter ("@IsStick",model.IsStick),
  357. new SqlParameter ("@IsRecommend",model.IsRecommend),
  358. new SqlParameter ("@EnabledMark",model.EnabledMark),
  359. };
  360. var result = SqlHelper.ExecuteNonQuery(CommandType.Text, sqlString, param);
  361. return result > 0;
  362. }
  363. #endregion
  364. #region SQL语句
  365. /// <summary>
  366. /// 通过赛事id获取赛事名称
  367. /// </summary>
  368. private static string GetTeamListSql = @"select Id,Name from F_Team ";
  369. /// <summary>
  370. /// 获取所有的球员
  371. /// </summary>
  372. private static string GetPlayerListSql = @"select Id,ChineseName from F_Players ";
  373. /// <summary>
  374. /// 获取所有的球员
  375. /// </summary>
  376. private static string GetContryListSql = @"select Id,Name from F_Area where ParentId is not null";
  377. /// <summary>
  378. /// 新增队员信息
  379. /// </summary>
  380. private static string AddPlayersSql = @"IF NOT EXISTS(SELECT TOP 1 1 FROM {0} WHERE ChineseName = @ChineseName)
  381. BEGIN
  382. INSERT INTO {0}(Id,ChineseName,EnglishName,Nationality,Weight,Stature,Birthday,GoodFoot,Honor,Describe,LogoImage,FromAddress,Celebrity,Remark)
  383. SELECT @Id,@ChineseName,@EnglishName,@Nationality,@Weight,@Stature,@Birthday,@GoodFoot,@Honor,@Describe,@LogoImage,@FromAddress,@Celebrity,@Remark
  384. END";
  385. /// <summary>
  386. /// 新增球队球员关系
  387. /// </summary>
  388. private static string AddRelationsSql = @"IF NOT EXISTS(SELECT TOP 1 1 FROM {0} WHERE TeamId = @TeamId and PlayerId = @PlayerId)
  389. BEGIN
  390. INSERT INTO {0}(Id,TeamId,PlayerId,Position,PoloShirt)
  391. SELECT @Id,@TeamId,@PlayerId,@Position,@PoloShirt
  392. END";
  393. /// <summary>
  394. /// 添加区域表sql语句
  395. /// </summary>
  396. private static string AddTeamSql = @"IF NOT EXISTS(SELECT TOP 1 1 FROM {0} WHERE Name = @Name)
  397. BEGIN
  398. INSERT INTO {0}(Name,Id,CityName,CreateDateTime,Describe,Venue,Coach,Address,SetUpDateTime,Advantage,Style,Weaknesses,Website,LogoImage,Remark,EventId)
  399. SELECT @Name,@Id,@CityName,@CreateDateTime,@Describe,@Venue,@Coach,@Address,@SetUpDateTime,@Advantage,@Style,@Weaknesses,@Website,@LogoImage,@Remark,@EventId
  400. END";
  401. /// <summary>
  402. /// 添加公司表sql语句
  403. /// </summary>
  404. private static string AddBankerCompanysql = @"IF NOT EXISTS(SELECT TOP 1 1 FROM {0} WHERE Name = @Name)
  405. BEGIN
  406. INSERT INTO {0}(Name,Id,CompanyType,CreateDateTime,Remark)
  407. SELECT @Name,@Id,@CompanyType,@CreateDateTime,@Remark
  408. END";
  409. /// <summary>
  410. /// 添加公司关系表sql语句
  411. /// </summary>
  412. private static string AddBankerCompanyRelationsql = @"IF NOT EXISTS(SELECT TOP 1 1 FROM {0} WHERE Name = @Name)
  413. BEGIN
  414. INSERT INTO {0}(BankerCompanyType,Id,BankerCompanyType,CreateDateTime,Remark)
  415. SELECT @BankerCompanyType,@Id,@BankerCompanyType,@CreateDateTime,@Remark
  416. END";
  417. /// <summary>
  418. /// 添加固化分析表sql语句
  419. /// </summary>
  420. private static string AddCuringAnalysissql = @"IF NOT EXISTS(SELECT TOP 1 1 FROM {0} WHERE Name = @Name)
  421. BEGIN
  422. INSERT INTO {0}(Id,
  423. ChangeDateTime,
  424. CreateDateTime,
  425. CuringAnalysisType,
  426. CuringType,
  427. GameId,
  428. Init_Disc,
  429. Init_FOdd,
  430. Init_POdd,
  431. Init_SOdd,
  432. Kelly_FOdd,
  433. Kelly_POdd,
  434. Kelly_SOdd,
  435. Loss_Odd,
  436. Newest_Disc,
  437. Newest_FOdd,
  438. Newest_POdd,
  439. Newest_SOdd,
  440. Probability_FOdd,
  441. Probability_POdd,
  442. Probability_SOdd,
  443. Remark)
  444. SELECT @Id,
  445. @ChangeDateTime,
  446. @CreateDateTime,
  447. @CuringAnalysisType,
  448. @CuringType,
  449. @GameId,
  450. @Init_Disc,
  451. @Init_FOdd,
  452. @Init_POdd,
  453. @Init_SOdd,
  454. @Kelly_FOdd,
  455. @Kelly_POdd,
  456. @Kelly_SOdd,
  457. @Loss_Odd,
  458. @Newest_Disc,
  459. @Newest_FOdd,
  460. @Newest_POdd,
  461. @Newest_SOdd,
  462. @Probability_FOdd,
  463. @Probability_POdd,
  464. @Probability_SOdd,
  465. @Remark
  466. END";
  467. private static string AddAreaSql = @"IF NOT EXISTS(SELECT TOP 1 1 FROM {0} WHERE Name = @Name)
  468. BEGIN
  469. INSERT INTO {0}(Name,Id,ParentId,CreateDateTime,LogoImage,SortCode,Remark)
  470. SELECT @Name,@Id,@ParentId,@CreateDateTime,@LogoImage,@SortCode,@Remark
  471. END";
  472. /// <summary>
  473. /// 添加各区域的赛事
  474. /// </summary>
  475. private static string AddEventsSql = @"IF NOT EXISTS(SELECT TOP 1 1 FROM {0} WHERE Name = @Name)
  476. BEGIN
  477. INSERT INTO {0}(Name,Id,AreaId,CreateDateTime,Remark,LogoImage,EventType)
  478. SELECT @Name,@Id,@AreaId,GETDATE(),@Remark,@LogoImage,@EventType
  479. END";
  480. /// <summary>
  481. /// 获取区域表国家的GUiD
  482. /// </summary>
  483. private static string LastItemSql = @" SELECT TOP 1 * FROM[Berry].[dbo].[F_Area] WHERE Name = '{0}'";
  484. private static string SelectDataItemDetailSql = @" select a.Id, a.ItemName as Name,a.ItemValue ,B.ItemName as parentName,b.Id as parentId ,b.ItemCode from Base_DataItemDetail as a left join Base_DataItem as b on a.ItemId=b.Id WHERE b.ItemCode='{0}'";
  485. /// <summary>
  486. /// 新增英超新闻
  487. /// </summary>
  488. private static string AddNewsSql = @"IF NOT EXISTS(SELECT TOP 1 1 FROM {0} WHERE FullHead = @FullHead)
  489. BEGIN
  490. INSERT INTO {0}(Id,TypeId,ParentId,Category,CategoryId,FullHead,FullHeadColor,BriefHead,AuthorName,CompileName,TagWord,Keyword,SourceName,SourceAddress,NewsContent,ReleaseTime,DeleteMark,CreateDate,IsHot,IsStick,IsRecommend,EnabledMark)
  491. SELECT @Id,@TypeId,@ParentId,@Category,@CategoryId,@FullHead,@FullHeadColor,@BriefHead,@AuthorName,@CompileName,@TagWord,@Keyword,@SourceName,@SourceAddress,@NewsContent,@ReleaseTime,@DeleteMark,@CreateDate,@IsHot,@IsStick,@IsRecommend,@EnabledMark
  492. END";
  493. #endregion
  494. #region 篮球相关
  495. /// <summary>
  496. /// 获取篮球球队
  497. /// </summary>
  498. /// <returns></returns>
  499. public List<B_Team> GetBasketTeamList()
  500. {
  501. var sqlString = string.Format(GetBasketTeamListSql);
  502. var ds = SqlHelper.ExecuteDataset(CommandType.Text, sqlString);
  503. if (ds != null && ds.Tables.Count > 0)
  504. {
  505. var result = LoadDataList<B_Team>(ds.Tables[0]);
  506. return result;
  507. }
  508. return null;
  509. }
  510. /// <summary>
  511. /// 获取篮球球员
  512. /// </summary>
  513. /// <returns></returns>
  514. public List<B_Players> GetBasketPalyerList()
  515. {
  516. var sqlString = string.Format(GetBasketPlayerListSql);
  517. var ds = SqlHelper.ExecuteDataset(CommandType.Text, sqlString);
  518. if (ds != null && ds.Tables.Count > 0)
  519. {
  520. var result = LoadDataList<B_Players>(ds.Tables[0]);
  521. return result;
  522. }
  523. return null;
  524. }
  525. #endregion
  526. #region 篮球sql
  527. /// <summary>
  528. /// 获取赛事
  529. /// </summary>
  530. private static string GetBasketTeamListSql = @"select Id,Name from B_Team ";
  531. /// <summary>
  532. /// 获取球员
  533. /// </summary>
  534. private static string GetBasketPlayerListSql = @"select Id,ChineseName from B_Players ";
  535. #endregion
  536. #region 公共方法
  537. /// <summary>
  538. /// 批量新增(SqlBulkCopy)
  539. /// </summary>
  540. /// <typeparam name="T"></typeparam>
  541. /// <param name="list"></param>
  542. public void SqlBulkCopyAdd<T>(IEnumerable<T> list)
  543. {
  544. if (list.Count() <= 0)
  545. return;
  546. DataTable dt = ListToDataTable<T>(list.ToList());
  547. SqlConnection conn = new SqlConnection(SqlHelper.GetConnSting());
  548. conn.Open();
  549. //声明SqlBulkCopy ,using释放非托管资源
  550. using (SqlBulkCopy sqlBC = new SqlBulkCopy(conn))
  551. {
  552. //一次批量的插入的数据量
  553. // sqlBC.BatchSize = 1000;
  554. //超时之前操作完成所允许的秒数,如果超时则事务不会提交 ,数据将回滚,所有已复制的行都会从目标表中移除
  555. sqlBC.BulkCopyTimeout = 60;
  556. ////設定 NotifyAfter 属性,以便在每插入10000 条数据时,呼叫相应事件。
  557. //sqlBC.NotifyAfter = 10000;
  558. //sqlBC.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnSqlRowsCopied);
  559. //设置要批量写入的表
  560. sqlBC.DestinationTableName = EntityAttributeHelper.GetEntityTable<T>();
  561. //自定义的datatable和数据库的字段进行对应
  562. for (int i = 0; i < dt.Columns.Count; i++)
  563. {
  564. sqlBC.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);//dt字段名和数据库表的字段名
  565. }
  566. //批量写入
  567. sqlBC.WriteToServer(dt);
  568. }
  569. conn.Close();
  570. }
  571. /// <summary>
  572. /// 将泛类型集合List类转换成DataTable
  573. /// </summary>
  574. /// <param name="entitys">泛类型集合</param>
  575. /// <returns></returns>
  576. public DataTable ListToDataTable<T>(List<T> entitys)
  577. {
  578. //检查实体集合不能为空
  579. if (entitys == null || entitys.Count < 1)
  580. {
  581. throw new Exception("需转换的集合为空");
  582. }
  583. //取出第一个实体的所有Propertie
  584. Type entityType = entitys[0].GetType();
  585. PropertyInfo[] entityProperties = entityType.GetProperties();
  586. //生成DataTable的structure
  587. //生产代码中,应将生成的DataTable结构Cache起来,此处略
  588. DataTable dt = new DataTable();
  589. for (int i = 0; i < entityProperties.Length; i++)
  590. {
  591. //dt.Columns.Add(entityProperties[i].Name, entityProperties[i].PropertyType);
  592. dt.Columns.Add(entityProperties[i].Name);
  593. }
  594. //将所有entity添加到DataTable中
  595. foreach (T entity in entitys)
  596. {
  597. try
  598. {
  599. //检查所有的的实体都为同一类型
  600. if (entity.GetType() != entityType)
  601. {
  602. throw new Exception("要转换的集合元素类型不一致");
  603. }
  604. object[] entityValues = new object[entityProperties.Length];
  605. for (int i = 0; i < entityProperties.Length; i++)
  606. {
  607. entityValues[i] = entityProperties[i].GetValue(entity, null);
  608. }
  609. dt.Rows.Add(entityValues);
  610. }
  611. catch (Exception e)
  612. {
  613. //throw;
  614. }
  615. }
  616. return dt;
  617. }
  618. /// <summary>
  619. /// DataTable转换List
  620. /// </summary>
  621. /// <typeparam name="T"></typeparam>
  622. /// <param name="dataset"></param>
  623. /// <returns></returns>
  624. public List<T> DataSetToList<T>(DataSet dataset)
  625. {
  626. DataTable dataTable = dataset.Tables[0];
  627. // 返回值初始化
  628. List<T> result = new List<T>();
  629. for (int j = 0; j < dataTable.Rows.Count; j++)
  630. {
  631. T _t = (T)Activator.CreateInstance(typeof(T));
  632. PropertyInfo[] propertys = _t.GetType().GetProperties();
  633. foreach (PropertyInfo pi in propertys)
  634. {
  635. for (int i = 0; i < dataTable.Columns.Count; i++)
  636. {
  637. // 属性与字段名称一致的进行赋值
  638. if (pi.Name.Equals(dataTable.Columns[i].ColumnName))
  639. {
  640. // 数据库NULL值单独处理
  641. if (dataTable.Rows[j][i] != DBNull.Value)
  642. pi.SetValue(_t, dataTable.Rows[j][i], null);
  643. else
  644. pi.SetValue(_t, null, null);
  645. break;
  646. }
  647. }
  648. }
  649. result.Add(_t);
  650. }
  651. return result;
  652. }
  653. #endregion
  654. #region 查询
  655. /// <summary>
  656. /// 单表查询
  657. /// </summary>
  658. /// <typeparam name="T"></typeparam>
  659. /// <returns></returns>
  660. public IEnumerable<T> Query<T>(string where = "", string json = "", string select = "a.*")
  661. {
  662. var sql = @"
  663. SELECT {3} FROM {0} a
  664. {2}
  665. WHERE 1=1 {1}
  666. ".FormatMe(EntityAttributeHelper.GetEntityTable<T>(), where, json, select);
  667. var ds = SqlHelper.ExecuteDataset(CommandType.Text, sql);
  668. if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  669. {
  670. var result = DataSetToList<T>(ds);
  671. return result;
  672. }
  673. return new List<T>();
  674. }
  675. /// <summary>
  676. /// 单表查询
  677. /// </summary>
  678. /// <typeparam name="T"></typeparam>
  679. /// <returns></returns>
  680. public IEnumerable<U> Query<T, U>(string where = "", string json = "", string select = "a.*")
  681. {
  682. var sql = @"
  683. SELECT {3} FROM {0} a
  684. {2}
  685. WHERE 1=1 {1}
  686. ".FormatMe(EntityAttributeHelper.GetEntityTable<T>(), where, json, select);
  687. var ds = SqlHelper.ExecuteDataset(CommandType.Text, sql);
  688. if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  689. {
  690. var result = DataSetToList<U>(ds);
  691. return result;
  692. }
  693. return new List<U>();
  694. }
  695. /// <summary>
  696. /// 单表查询
  697. /// </summary>
  698. /// <typeparam name="T"></typeparam>
  699. /// <returns></returns>
  700. public IEnumerable<T> Query1<T>(string where = "")
  701. {
  702. var sql = @"
  703. SELECT * FROM {0} WHERE 1=1 {1}
  704. ".FormatMe(EntityAttributeHelper.GetEntityTable<T>(), where);
  705. var ds = SqlHelper.ExecuteDataset(CommandType.Text, sql);
  706. if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  707. {
  708. var result = DataSetToList<T>(ds);
  709. return result;
  710. }
  711. return null;
  712. }
  713. #endregion
  714. #region 删除
  715. public void Delete<T>(string where = "")
  716. {
  717. var sql = @" DELETE {0} WHERE 1=1 {1} ".FormatMe(EntityAttributeHelper.GetEntityTable<T>(), where);
  718. var result = SqlHelper.ExecuteNonQuery(CommandType.Text, sql);
  719. Trace.WriteLine("删除数据的条数:" + result);
  720. }
  721. #endregion
  722. #region 更改
  723. public void Update<T>(string where = "")
  724. {
  725. var sql = @" Update {0} set IsObtain=1 WHERE 1=1 {1} ".FormatMe(EntityAttributeHelper.GetEntityTable<T>(), where);
  726. var result = SqlHelper.ExecuteNonQuery(CommandType.Text, sql);
  727. Trace.WriteLine("更改数据的条数:" + result);
  728. }
  729. #endregion
  730. }
  731. }