ZXApiBLL.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  1. using Business.TK;
  2. using Business.ZX;
  3. using Cache;
  4. using Common;
  5. using M55128_rec.Business.TK;
  6. using M55128_rec.Models.ViewModels.ConsultationMangerModel;
  7. using Models;
  8. using Models.Entity.LottomatBaseDB;
  9. using Models.Views;
  10. using Services;
  11. using System;
  12. using System.Collections.Generic;
  13. using System.Linq;
  14. using System.Web;
  15. namespace M55128_rec.Business.ZX
  16. {
  17. public static class ZXApiBLL
  18. {
  19. //private static LogHelper log = null;
  20. private static readonly string[] types = { "FC3D", "SSQ", "PL3", "QT" };
  21. static ZXApiBLL()
  22. {
  23. // log = new LogHelper();
  24. }
  25. public static List<News_Preview> GetCacheHomeNewsList()
  26. {
  27. if (!Ctrl.ZXViewNeedUpdate())
  28. {
  29. Ctrl.SETZXView(GetHomeNewsList());
  30. }
  31. return Ctrl.GetZXView() as List<News_Preview>;
  32. }
  33. public static List<News_Preview> GetHomeNewsList()
  34. {
  35. List<News_Preview> res = new List<News_Preview>();
  36. var data = DataItemBLL.GetBaseDataItemListbyEnCode(types.ToList()) ;
  37. try
  38. {
  39. foreach (string code in types)
  40. {
  41. List<Base_News> news = NewsBLL.GetHomeNewsList(code);
  42. if (news.Count > 0)
  43. {
  44. News_Preview preview = new News_Preview
  45. {
  46. NewsType = code
  47. };
  48. var tmpbaseitme = data.Single(w => w.ItemCode == code);
  49. preview.ItemName = tmpbaseitme.ItemName;
  50. List<NewsPreviewItem> newsPreviewItem = new List<NewsPreviewItem>();
  51. foreach (Base_News n in news)
  52. {
  53. NewsPreviewItem preItem = new NewsPreviewItem
  54. {
  55. AddTime = n.CreateDate.ToString("yyyy-MM-dd"),
  56. NewsId = n.PK.ToString(),
  57. Title = n.FullHead,
  58. PeriodsNumber=n.PeriodsNumber
  59. };
  60. newsPreviewItem.Add(preItem);
  61. }
  62. preview.NewsPreviewItem = newsPreviewItem;
  63. res.Add(preview);
  64. }
  65. }
  66. }
  67. catch (Exception ee)
  68. {
  69. LogHelper.Error(typeof(ZXApiBLL), ee.Message + "GetHomeNewsList");
  70. }
  71. return res;
  72. }
  73. public static News_Preview GetColorNewsList(int page, int rows, string Category, string order = null, bool isdes = false)
  74. {
  75. try
  76. {
  77. List<DataItemModel> data = DataItemBLL.GetDataItemList(new List<string>() { { Category } });
  78. //分类Ids
  79. string[] ids = data.Select(d => d.ItemDetailId).ToArray();
  80. int count = 0;
  81. Dictionary<string, Object> dict = new Dictionary<string, object>();
  82. dict["IsDelete"] = 0;
  83. dict["TypeId"] = 1;
  84. dict["CategoryId"] = ids.ToList();
  85. //获取数据
  86. List<Base_News> news = NewsBLL.GetPageList(page, rows, dict, out count, "CreateDate", true);
  87. //GetPageList(n => n.IsDelete == false && n.TypeId == 1 && ids.Contains(n.CategoryId), page).ToList();
  88. if (news.Count > 0 || news.Any())
  89. {
  90. //分类名称
  91. News_Preview preview = new News_Preview
  92. {
  93. NewsType = Category
  94. };
  95. //项目名称
  96. Base_DataItem entity = DataItemBLL.GetBaseDataItemListbyEnCode(Category);
  97. preview.ItemName = entity.ItemName;
  98. List<NewsPreviewItem> newsPreviewItem = news.Select(n => new NewsPreviewItem
  99. {
  100. AddTime = n.CreateDate.ToString("yyyy-MM-dd"),
  101. NewsId = n.PK.ToString(),
  102. Title = n.FullHead
  103. }).ToList();
  104. preview.NewsPreviewItem = newsPreviewItem;
  105. return preview;
  106. }
  107. }
  108. catch (Exception ee)
  109. {
  110. LogHelper.Error(typeof(ZXApiBLL), ee.Message + "GetColorNewsList");
  111. }
  112. return null;
  113. }
  114. public static GetZX_NewsDetails GetNewsDetails(string id)
  115. {
  116. GetZX_NewsDetails res = new GetZX_NewsDetails();
  117. try
  118. {
  119. var tmpnews = NewsBLL.GetItem(int.Parse(id));
  120. List<Base_News> data = NewsBLL.GetGetNewsDetails(tmpnews.NewsId);
  121. //获取数据
  122. if (data != null)
  123. {
  124. var tmp = data.SingleOrDefault(w => w.NewsId == tmpnews.NewsId);
  125. res = new GetZX_NewsDetails
  126. {
  127. NewsId = tmp.NewsId,
  128. PK = tmp.PK,
  129. FullHead = tmp.FullHead,
  130. CreateDate = tmp.CreateDate.ToString("yyyy-MM-dd"),
  131. CreateUserName = tmp.CreateUserName,
  132. NewsContent = tmp.NewsContent,
  133. PeriodsNumber = tmp.PeriodsNumber,
  134. IsRecommend = tmp.IsRecommend,
  135. IsHot = tmp.IsHot ?? false,
  136. PV = tmp.PV,
  137. TitleElement = tmp.TitleElement,
  138. DescriptionElement = tmp.DescriptionElement,
  139. KeywordElement = tmp.KeywordElement,
  140. Category=tmp.Category
  141. };
  142. #region 新增上一期、下一期预告
  143. // List<OnThene> preAndNext = GetNewsListByPk(res.PK ?? 1);
  144. List<OnThene> list = new List<OnThene>();
  145. #region 上一期
  146. Base_News dataPre = data.SingleOrDefault(w => w.PK == tmp.PK - 1);
  147. if (dataPre != null)
  148. {
  149. //上一期
  150. OnThene onThene = new OnThene
  151. {
  152. Which = 1,
  153. Title = dataPre.FullHead,
  154. NewsId = dataPre.PK.ToString()
  155. };
  156. list.Add(onThene);
  157. }
  158. else
  159. {
  160. //上一期
  161. OnThene onThene = new OnThene
  162. {
  163. Which = 1,
  164. Title = "已经是最新一期啦",
  165. NewsId = ""
  166. };
  167. list.Add(onThene);
  168. }
  169. #endregion
  170. #region 下一期
  171. Base_News dataNext = data.SingleOrDefault(w => w.PK == tmp.PK + 1);
  172. if (dataNext != null)
  173. {
  174. //下一期
  175. OnThene onThene = new OnThene
  176. {
  177. Which = 2,
  178. Title = dataNext.FullHead,
  179. NewsId = dataNext.PK.ToString()
  180. };
  181. list.Add(onThene);
  182. }
  183. else
  184. {
  185. //下一期
  186. OnThene onThene = new OnThene
  187. {
  188. Which = 2,
  189. Title = "已经是最后一期啦",
  190. NewsId = ""
  191. };
  192. list.Add(onThene);
  193. }
  194. #endregion
  195. res.PreAndNextNewsList = list;
  196. #endregion
  197. return res;
  198. }
  199. }
  200. catch (Exception ee)
  201. {
  202. LogHelper.Error(typeof(ZXApiBLL), ee.Message + "GetNewsDetails");
  203. }
  204. return res;
  205. }
  206. /// <summary>
  207. /// 彩种下面的分类名称和文章列表
  208. /// </summary>
  209. /// <param name="Category">彩种名称,值为"FC3D", "SSQ", "PL3", "QT"</param>
  210. /// <returns></returns>
  211. public static ClassiFication GetClassiFicationNewsList(string Category)
  212. {
  213. try
  214. {
  215. List<DataItemModel> data = DataItemBLL.GetDataItemList(new List<string>() { { Category } });
  216. List<ItemList> res = data.Select(d => new ItemList
  217. {
  218. ItemId = d.ItemDetailId,
  219. SimpleSpelling = d.SimpleSpelling.ToUpper(),
  220. ItemName = d.ItemName
  221. }).ToList();
  222. //文章Ids
  223. string firstId = res[0].ItemId;
  224. List<EExpression> listexp = new List<EExpression>();
  225. listexp.Add(new EExpression("CategoryId", "=", firstId));
  226. List<Base_News> news = NewsBLL.GetList(1, 20, listexp, "ReleaseTime",true);
  227. List<NewsPreviewItem> newsPreviewItem = new List<NewsPreviewItem>();
  228. if (news.Count > 0)
  229. {
  230. foreach (Base_News n in news)
  231. {
  232. NewsPreviewItem preItem = new NewsPreviewItem
  233. {
  234. AddTime = n.CreateDate.ToString("yyyy-MM-dd"),
  235. NewsId = n.PK.ToString(),
  236. Title = n.FullHead
  237. };
  238. newsPreviewItem.Add(preItem);
  239. }
  240. }
  241. ClassiFication result = new ClassiFication
  242. {
  243. ItemList = res,
  244. NewsList = newsPreviewItem
  245. };
  246. return result;
  247. }
  248. catch (Exception ee)
  249. {
  250. LogHelper.Error(typeof(ZXApiBLL), ee.Message + "GetClassiFicationNewsList");
  251. }
  252. return null;
  253. }
  254. public static List<NewsPreviewItem> GetNewsList(int page, int rows, string ItemId, string order = null, bool isdes = false)
  255. {
  256. //分类Ids
  257. List<NewsPreviewItem> newsPreviewItem = new List<NewsPreviewItem>();
  258. try
  259. {
  260. int count = 0;
  261. //获取数据
  262. Dictionary<string, object> dict = new Dictionary<string, object>();
  263. dict["CategoryId"] = new List<string>() { { ItemId } };
  264. List<Base_News> news = NewsBLL.GetPageList(page, rows, dict, out count, "CreateDate", true);
  265. if (news.Count > 0)
  266. {
  267. newsPreviewItem = news.Select(n => new NewsPreviewItem
  268. {
  269. AddTime = n.CreateDate.ToString("yyyy-MM-dd"),
  270. NewsId = n.PK.ToString(),
  271. Title = n.FullHead
  272. }).ToList();
  273. }
  274. else
  275. {
  276. //如果为空,则默认查询太湖字谜和彩神通字谜下面子分类咨询
  277. List<Base_DataItemDetail> list = DataItemBLL.GetListbyItemId(ItemId);
  278. if (list != null)
  279. {
  280. List<string> itemDetailIds = list.Select(d => d.ItemDetailId).ToList();
  281. //获取数据
  282. dict["CategoryId"] = itemDetailIds;
  283. List<Base_News> temp = NewsBLL.GetPageList(page, rows, dict, out count, "CreateDate", true);
  284. newsPreviewItem = temp.Select(n => new NewsPreviewItem
  285. {
  286. AddTime = n.CreateDate.ToString("yyyy-MM-dd"),
  287. NewsId = n.PK.ToString(),
  288. Title = n.FullHead
  289. }).ToList();
  290. }
  291. }
  292. }
  293. catch (Exception ee)
  294. {
  295. LogHelper.Error(typeof(ZXApiBLL), ee.Message + "GetNewsList");
  296. }
  297. return newsPreviewItem;
  298. }
  299. }
  300. }