PageBase.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. using System;
  2. using System.Text;
  3. using System.Collections.Generic;
  4. using System.Net;
  5. using HttpCodeLib;
  6. using System.Text.RegularExpressions;
  7. using CB.Common;
  8. using CB.Common.HttpHelper;
  9. using PostDataType = CB.Common.HttpHelper.PostDataType;
  10. namespace CB.Framework
  11. {
  12. /// <summary>
  13. /// 页面基类
  14. /// </summary>
  15. public class PageBase : System.Web.UI.Page
  16. {
  17. public PageBase()
  18. { }
  19. /// <summary>
  20. /// 页面数据初始化
  21. /// </summary>
  22. protected virtual void InitData()
  23. {
  24. }
  25. /// <summary>
  26. /// 同步55125首页文章显示
  27. /// </summary>
  28. /// <param name="topSize"></param>
  29. /// <param name="pageSize"></param>
  30. /// <param name="cid"></param>
  31. /// <param name="maxLength">文章标题最大长度</param>
  32. /// <returns></returns>
  33. protected virtual string GetSynArticle(int topSize, int pageSize, int cid, int maxLength)
  34. {
  35. var list = CB.Data.Synchronize.Article.GetArticleList(topSize, pageSize, cid);
  36. if (null == list || 0 >= list.Count)
  37. return "";
  38. var sp = new StringBuilder(400 * list.Count);
  39. foreach (var item in list)
  40. {
  41. sp.AppendFormat("<li><a href=\"{0}\" target=\"_blank\">{1}</a><span class=\"time\">{2}</span></li>",
  42. item.Url, CB.Common.Utils.GetSubString(item.Title, maxLength, ""), item.Time.ToString("MM-dd"));
  43. }
  44. return sp.ToString();
  45. }
  46. protected virtual string GetSynArticle(int topSize, int pageSize, int cid, int maxLength, bool wap, bool showDate = false)
  47. {
  48. var list = CB.Data.Synchronize.Article.GetArticleList(topSize, pageSize, cid, wap);
  49. if (null == list || 0 >= list.Count)
  50. return "";
  51. var sp = new StringBuilder(400 * list.Count);
  52. var fortstr = "<li><a href=\"{0}\" target=\"_blank\">{1}</a><span></span></li>";
  53. if (showDate)
  54. fortstr = "<li><a href=\"{0}\" target=\"_blank\">{1}</a><span class=\"time\">{2}</span></li>";
  55. foreach (var item in list)
  56. {
  57. var lst = new List<object>() { item.Url, CB.Common.Utils.GetSubString(item.Title, maxLength, "") };
  58. if (showDate)
  59. lst.Add(item.Time.ToString("MM-dd"));
  60. sp.AppendFormat(fortstr, lst.ToArray());
  61. }
  62. return sp.ToString();
  63. }
  64. private static HttpHelper helper = new HttpHelper();
  65. /// <summary>
  66. /// 调用平台新接口获取资讯数据
  67. /// </summary>
  68. /// <param name="topSize"></param>
  69. /// <param name="pageSize"></param>
  70. /// <param name="categoryId"></param>
  71. /// <param name="maxLength"></param>
  72. /// <returns></returns>
  73. protected virtual string GetSynArticle(int topSize, int pageSize, string categoryId, int maxLength, bool showDate = true)
  74. {
  75. StringBuilder builder = new StringBuilder();
  76. try
  77. {
  78. var obj = new
  79. {
  80. CategoryId = categoryId,
  81. PageSize = pageSize,
  82. PageIndex = topSize
  83. };
  84. string json = obj.TO_Josin();
  85. if (!string.IsNullOrEmpty(json))
  86. {
  87. HttpItem item = new HttpItem
  88. {
  89. Url = "http://m.api.55128.cn/api/v1/ZxNews/GetNewsList",
  90. Method = "POST",
  91. PostDataType = PostDataType.String,
  92. Postdata = json,
  93. Accept = "application/json",
  94. ContentType = "application/json"
  95. };
  96. HttpResult result = helper.GetHtml(item);
  97. if (result.StatusCode == HttpStatusCode.OK)
  98. {
  99. string resJson = result.Html;
  100. if (!string.IsNullOrEmpty(resJson))
  101. {
  102. Rootobject rootobject = resJson.TO_Object<Rootobject>();
  103. if (rootobject != null)
  104. {
  105. ItemData itemData = rootobject.Data;
  106. //拿到实际咨询数据
  107. List<Row> rows = itemData.Rows;
  108. var fortstr = "<li><a href=\"//m.55128.cn/m/zx/ssq/{0}.html\" target=\"_blank\">{1}</a><span class=\"time\">{2}</span></li>";
  109. if (showDate)
  110. fortstr = "<li><a href=\"//m.55128.cn/m/zx/ssq/{0}.html\" target=\"_blank\">{1}</a><span></span></li>";
  111. foreach (var row in rows)
  112. {
  113. var lst = new List<object>() { row.NewsId, CB.Common.Utils.GetSubString(row.Title, maxLength, "") };
  114. if (showDate)
  115. lst.Add(row.AddTime);
  116. builder.AppendFormat(fortstr, lst.ToArray());
  117. }
  118. }
  119. }
  120. }
  121. }
  122. }
  123. catch (Exception e)
  124. {
  125. Console.WriteLine(e.Message);
  126. }
  127. return builder.ToString();
  128. }
  129. protected virtual string GetSynArticle(int topSize, int pageSize, int cid)
  130. {
  131. var list = CB.Data.Synchronize.Article.GetArticleList(topSize, pageSize, cid);
  132. if (null == list || 0 >= list.Count)
  133. return "";
  134. var sp = new StringBuilder(400 * list.Count);
  135. int num = 0;
  136. IList<int> nums = new int[] { 3, 4, 7, 8 };
  137. foreach (var item in list)
  138. {
  139. num++;
  140. if (!nums.Contains(num))
  141. {
  142. if (num != list.Count)
  143. {
  144. sp.Append("<li><a href=\"" + GetUrl(item.Url, item.Title) + "\" target=\"_blank\">" + item.Time.ToString("yyyy") + "年" + item.Title.Replace(item.Time.ToString("yyyy"), "") + "</a><span>" + item.Time.ToString("MM-dd") + "</span></li>");
  145. }
  146. else
  147. {
  148. sp.Append("<li class=\"last\"><a href=\"" + GetUrl(item.Url, item.Title) + "\" target=\"_blank\">" + item.Time.ToString("yyyy") + "年" + item.Title.Replace(item.Time.ToString("yyyy"), "") + "</a><span>" + item.Time.ToString("MM-dd") + "</span></li>");
  149. }
  150. }
  151. else
  152. {
  153. sp.Append("<li class=\"bg_grey\"><a href=\"" + GetUrl(item.Url, item.Title) + "\" target=\"_blank\">" + item.Time.ToString("yyyy") + "年" + item.Title.Replace(item.Time.ToString("yyyy"), "") + "</a><span>" + item.Time.ToString("MM-dd") + "</span></li>");
  154. }
  155. }
  156. return sp.ToString();
  157. }
  158. /// <summary>
  159. ///
  160. /// </summary>
  161. /// <param name="Url"></param>
  162. /// <returns></returns>
  163. private string GetUrl(string Url, string Title)
  164. {
  165. //http://www.55125.cn/kaijiang/3d/20171009_2257272.htm
  166. //http://zx.55128.cn/kaijiang/ssq/2017117.htm
  167. //2017年双色球第117期开奖结果
  168. string temp = string.Empty;
  169. if (!string.IsNullOrEmpty(Url))
  170. {
  171. Url = Url.Replace("http://", "").Replace(".htm", "");
  172. // www.55125.cn/kaijiang/3d/20171009_2257272
  173. string[] array = Url.Split("//".ToCharArray());
  174. //
  175. string typeCode = array[2];
  176. string qishu = RemoveNotNumber(Title);
  177. string shu = qishu.Substring(qishu.Length - 3, 3);
  178. string res = array[3].Substring(0, 4) + shu;
  179. temp = "http://zx.55128.cn/kaijiang/" + typeCode + "/" + res + ".htm";
  180. }
  181. return temp;
  182. }
  183. public static string RemoveNotNumber(string Title)
  184. {
  185. return Regex.Replace(Title, @"[^\d]", "");
  186. }
  187. protected virtual string GetSynArticle(int topSize, int pageSize, int cid, bool wap)
  188. {
  189. var list = CB.Data.Synchronize.Article.GetArticleList(topSize, pageSize, cid, wap);
  190. if (null == list || 0 >= list.Count)
  191. return "";
  192. var sp = new StringBuilder(400 * list.Count);
  193. int num = 0;
  194. IList<int> nums = new int[] { 3, 4, 7, 8 };
  195. foreach (var item in list)
  196. {
  197. num++;
  198. if (!nums.Contains(num))
  199. {
  200. if (num != list.Count)
  201. {
  202. sp.Append("<li><a href=\"" + item.Url + "\" target=\"_blank\">" + item.Time.ToString("yyyy") + "年" + item.Title.Replace(item.Time.ToString("yyyy"), "") + "</a><span>" + item.Time.ToString("MM-dd") + "</span></li>");
  203. }
  204. else
  205. {
  206. sp.Append("<li class=\"last\"><a href=\"" + item.Url + "\" target=\"_blank\">" + item.Time.ToString("yyyy") + "年" + item.Title.Replace(item.Time.ToString("yyyy"), "") + "</a><span>" + item.Time.ToString("MM-dd") + "</span></li>");
  207. }
  208. }
  209. else
  210. {
  211. sp.Append("<li class=\"bg_grey\"><a href=\"" + item.Url + "\" target=\"_blank\">" + item.Time.ToString("yyyy") + "年" + item.Title.Replace(item.Time.ToString("yyyy"), "") + "</a><span>" + item.Time.ToString("MM-dd") + "</span></li>");
  212. }
  213. }
  214. return sp.ToString();
  215. }
  216. /// <summary>
  217. /// TOP专题文章
  218. /// </summary>
  219. /// <param name="topSize"></param>
  220. /// <param name="cid"></param>
  221. /// <param name="tagId"></param>
  222. /// <param name="maxLength"></param>
  223. /// <param name="fomartUrl"></param>
  224. /// <returns></returns>
  225. protected virtual string GetColumnArticle(int topSize, int cid, int tagId, int maxLength, string fomartUrl)
  226. {
  227. var list = CB.Data.Caches.GetColumnArticleList(topSize, cid, tagId);
  228. if (null == list || 0 >= list.Count)
  229. return "";
  230. var sp = new StringBuilder(400 * list.Count);
  231. foreach (var item in list)
  232. {
  233. sp.AppendFormat("<li><a href=\"{0}\" target=\"_blank\">{1}</a><span class=\"time\">{2}</span></li>",
  234. string.Format(fomartUrl, item.Id, item.Addtime.ToString("yyyyMMdd")), CB.Common.Utils.GetSubString(item.Title, maxLength, ""), item.Addtime.ToString("MM-dd"));
  235. }
  236. return sp.ToString();
  237. }
  238. protected virtual string GetColumnArticle(int topSize, int cid, int tagId, int maxLength, string fomartUrl, string wap)
  239. {
  240. var list = CB.Data.Caches.GetColumnArticleList(topSize, cid, tagId);
  241. if (null == list || 0 >= list.Count)
  242. return "";
  243. var sp = new StringBuilder(400 * list.Count);
  244. foreach (var item in list)
  245. {
  246. sp.AppendFormat("<li><a href=\"{0}\">{1}</a><span></span></li>",
  247. string.Format(fomartUrl, item.Id), CB.Common.Utils.GetSubString(item.Title, maxLength, ""));
  248. }
  249. return sp.ToString();
  250. }
  251. #region 实体类
  252. public class Rootobject
  253. {
  254. public int Status { get; set; }
  255. public ItemData Data { get; set; }
  256. public string Message { get; set; }
  257. public object BackUrl { get; set; }
  258. public object ExecutionTime { get; set; }
  259. }
  260. public class ItemData
  261. {
  262. public int TotalPage { get; set; }
  263. public int PageIndex { get; set; }
  264. public int TotalRow { get; set; }
  265. public List<Row> Rows { get; set; }
  266. }
  267. public class Row
  268. {
  269. public string NewsId { get; set; }
  270. public string AddTime { get; set; }
  271. public string Title { get; set; }
  272. }
  273. #endregion
  274. }
  275. }