ZXApiBLL.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  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", false);
  87. List<Base_News> news = NewsBLL.GetPageList(page, rows, dict, out count, "CreateDate", true);
  88. //GetPageList(n => n.IsDelete == false && n.TypeId == 1 && ids.Contains(n.CategoryId), page).ToList();
  89. if (news.Count > 0 || news.Any())
  90. {
  91. //分类名称
  92. News_Preview preview = new News_Preview
  93. {
  94. NewsType = Category
  95. };
  96. //项目名称
  97. Base_DataItem entity = DataItemBLL.GetBaseDataItemListbyEnCode(Category);
  98. preview.ItemName = entity.ItemName;
  99. List<NewsPreviewItem> newsPreviewItem = news.Select(n => new NewsPreviewItem
  100. {
  101. AddTime = n.CreateDate.ToString("yyyy-MM-dd"),
  102. NewsId = n.PK.ToString(),
  103. Title = n.FullHead
  104. }).ToList();
  105. preview.NewsPreviewItem = newsPreviewItem;
  106. return preview;
  107. }
  108. }
  109. catch (Exception ee)
  110. {
  111. LogHelper.Error(typeof(ZXApiBLL), ee.Message + "GetColorNewsList");
  112. }
  113. return null;
  114. }
  115. public static GetZX_NewsDetails GetNewsDetails(string id)
  116. {
  117. GetZX_NewsDetails res = new GetZX_NewsDetails();
  118. try
  119. {
  120. var tmpnews = NewsBLL.GetItem(int.Parse(id));
  121. List<Base_News> data = NewsBLL.GetGetNewsDetails(tmpnews.NewsId);
  122. //获取数据
  123. if (data != null)
  124. {
  125. var tmp = data.SingleOrDefault(w => w.NewsId == tmpnews.NewsId);
  126. res = new GetZX_NewsDetails
  127. {
  128. NewsId = tmp.NewsId,
  129. PK = tmp.PK,
  130. FullHead = tmp.FullHead,
  131. CreateDate = tmp.CreateDate.ToString("yyyy-MM-dd"),
  132. CreateUserName = tmp.CreateUserName,
  133. NewsContent = tmp.NewsContent,
  134. PeriodsNumber = tmp.PeriodsNumber,
  135. IsRecommend = tmp.IsRecommend,
  136. IsHot = tmp.IsHot ?? false,
  137. PV = tmp.PV,
  138. TitleElement = tmp.TitleElement,
  139. DescriptionElement = tmp.DescriptionElement,
  140. KeywordElement = tmp.KeywordElement,
  141. Category=tmp.Category
  142. };
  143. #region 新增上一期、下一期预告
  144. // List<OnThene> preAndNext = GetNewsListByPk(res.PK ?? 1);
  145. List<OnThene> list = new List<OnThene>();
  146. #region 上一期
  147. Base_News dataPre = data.SingleOrDefault(w => w.PK == tmp.PK - 1);
  148. if (dataPre != null)
  149. {
  150. //上一期
  151. OnThene onThene = new OnThene
  152. {
  153. Which = 1,
  154. Title = dataPre.FullHead,
  155. NewsId = dataPre.PK.ToString()
  156. };
  157. list.Add(onThene);
  158. }
  159. else
  160. {
  161. //上一期
  162. OnThene onThene = new OnThene
  163. {
  164. Which = 1,
  165. Title = "已经是最新一期啦",
  166. NewsId = ""
  167. };
  168. list.Add(onThene);
  169. }
  170. #endregion
  171. #region 下一期
  172. Base_News dataNext = data.SingleOrDefault(w => w.PK == tmp.PK + 1);
  173. if (dataNext != null)
  174. {
  175. //下一期
  176. OnThene onThene = new OnThene
  177. {
  178. Which = 2,
  179. Title = dataNext.FullHead,
  180. NewsId = dataNext.PK.ToString()
  181. };
  182. list.Add(onThene);
  183. }
  184. else
  185. {
  186. //下一期
  187. OnThene onThene = new OnThene
  188. {
  189. Which = 2,
  190. Title = "已经是最后一期啦",
  191. NewsId = ""
  192. };
  193. list.Add(onThene);
  194. }
  195. #endregion
  196. res.PreAndNextNewsList = list;
  197. #endregion
  198. return res;
  199. }
  200. }
  201. catch (Exception ee)
  202. {
  203. LogHelper.Error(typeof(ZXApiBLL), ee.Message + "GetNewsDetails");
  204. }
  205. return res;
  206. }
  207. /// <summary>
  208. /// 彩种下面的分类名称和文章列表
  209. /// </summary>
  210. /// <param name="Category">彩种名称,值为"FC3D", "SSQ", "PL3", "QT"</param>
  211. /// <returns></returns>
  212. public static ClassiFication GetClassiFicationNewsList(string Category)
  213. {
  214. try
  215. {
  216. List<DataItemModel> data = DataItemBLL.GetDataItemList(new List<string>() { { Category } });
  217. List<ItemList> res = data.Select(d => new ItemList
  218. {
  219. ItemId = d.ItemDetailId,
  220. SimpleSpelling = d.SimpleSpelling.ToUpper(),
  221. ItemName = d.ItemName
  222. }).ToList();
  223. //文章Ids
  224. string firstId = res[0].ItemId;
  225. List<EExpression> listexp = new List<EExpression>();
  226. listexp.Add(new EExpression("CategoryId", "=", firstId));
  227. List<Base_News> news = NewsBLL.GetList(1, 20, listexp, "ReleaseTime",true);
  228. List<NewsPreviewItem> newsPreviewItem = new List<NewsPreviewItem>();
  229. if (news.Count > 0)
  230. {
  231. foreach (Base_News n in news)
  232. {
  233. NewsPreviewItem preItem = new NewsPreviewItem
  234. {
  235. AddTime = n.CreateDate.ToString("yyyy-MM-dd"),
  236. NewsId = n.PK.ToString(),
  237. Title = n.FullHead
  238. };
  239. newsPreviewItem.Add(preItem);
  240. }
  241. }
  242. ClassiFication result = new ClassiFication
  243. {
  244. ItemList = res,
  245. NewsList = newsPreviewItem
  246. };
  247. return result;
  248. }
  249. catch (Exception ee)
  250. {
  251. LogHelper.Error(typeof(ZXApiBLL), ee.Message + "GetClassiFicationNewsList");
  252. }
  253. return null;
  254. }
  255. public static List<NewsPreviewItem> GetNewsList(int page, int rows, string ItemId, string order = null, bool isdes = false)
  256. {
  257. //分类Ids
  258. List<NewsPreviewItem> newsPreviewItem = new List<NewsPreviewItem>();
  259. try
  260. {
  261. int count = 0;
  262. //获取数据
  263. Dictionary<string, object> dict = new Dictionary<string, object>();
  264. dict["CategoryId"] = new List<string>() { { ItemId } };
  265. List<Base_News> news = NewsBLL.GetPageList(page, rows, dict, out count, "CreateDate", true);
  266. if (news.Count > 0)
  267. {
  268. newsPreviewItem = news.Select(n => new NewsPreviewItem
  269. {
  270. AddTime = n.CreateDate.ToString("yyyy-MM-dd"),
  271. NewsId = n.PK.ToString(),
  272. Title = n.FullHead
  273. }).ToList();
  274. }
  275. else
  276. {
  277. //如果为空,则默认查询太湖字谜和彩神通字谜下面子分类咨询
  278. List<Base_DataItemDetail> list = DataItemBLL.GetListbyItemId(ItemId);
  279. if (list != null)
  280. {
  281. List<string> itemDetailIds = list.Select(d => d.ItemDetailId).ToList();
  282. //获取数据
  283. dict["CategoryId"] = itemDetailIds;
  284. List<Base_News> temp = NewsBLL.GetPageList(page, rows, dict, out count, "CreateDate", true);
  285. newsPreviewItem = temp.Select(n => new NewsPreviewItem
  286. {
  287. AddTime = n.CreateDate.ToString("yyyy-MM-dd"),
  288. NewsId = n.PK.ToString(),
  289. Title = n.FullHead
  290. }).ToList();
  291. }
  292. }
  293. }
  294. catch (Exception ee)
  295. {
  296. LogHelper.Error(typeof(ZXApiBLL), ee.Message + "GetNewsList");
  297. }
  298. return newsPreviewItem;
  299. }
  300. }
  301. }