ZtUtil.cs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404
  1. using CP.Business;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Web;
  6. using CP.Common;
  7. using System.Text;
  8. using CP.Model;
  9. namespace CP.Web
  10. {
  11. /// <summary>
  12. /// 开奖号型码类:开机号、试机号、开奖号
  13. /// </summary>
  14. public enum OpenCodeType
  15. {
  16. /// <summary>
  17. /// 默认
  18. /// </summary>
  19. Normal,
  20. /// <summary>
  21. /// 开机号
  22. /// </summary>
  23. KaiJiHao,
  24. /// <summary>
  25. /// 试机号
  26. /// </summary>
  27. ShiJiHao,
  28. /// <summary>
  29. /// 开奖号
  30. /// </summary>
  31. KaiJiangHao
  32. }
  33. public class ZtUtil
  34. {
  35. public static string GetHotContent(int id)
  36. {
  37. var ztPage = ZtPageBll.GetById(id);
  38. return ztPage.Content;
  39. }
  40. public static string GetColumn(string lotteryCode) {
  41. var datas = ZtColumnBll.GetList(lotteryCode);
  42. var sp = new StringBuilder();
  43. foreach (var item in datas)
  44. {
  45. sp.Append("<li>");
  46. sp.AppendFormat("<div class=\"columnImg\"><img src=\"{0}\" /></div>", item.Logo);
  47. sp.Append("<div class=\"synopsis\">");
  48. sp.AppendFormat("<h1><a href=\"/zt/{0}/\" target=\"_blank\">{1}</a></h1>", item.RewriteUrl, item.Name);
  49. sp.AppendFormat("<p>{0}</p>", Utils.GetSubString(Utils.RemoveHtml(item.About), 56, ""));
  50. sp.Append("</div>");
  51. sp.Append("<div class=\"keyWord\">");
  52. sp.AppendFormat("<p>{0}</p>", item.Words);
  53. sp.Append("</div>");
  54. sp.Append("</li>");
  55. }
  56. return sp.ToString();
  57. }
  58. public static string GetHotColumn(string lotteryCode, int topSize)
  59. {
  60. var datas = ZtColumnBll.GetList(lotteryCode);
  61. if (datas == null || datas.Count ==0)
  62. return "";
  63. datas = datas.OrderByDescending(item => item.Status).ToList();
  64. datas = datas.Take(topSize).ToList();
  65. var sp = new StringBuilder();
  66. foreach (var item in datas)
  67. {
  68. sp.AppendFormat("<li class=\"spcaile {0}\"><a href=\"/zt/{1}/\" target=\"_blank\">{2}</a></li>",
  69. GetColumnTypeCss(item.TypeName), item.RewriteUrl, item.Name);
  70. }
  71. return sp.ToString();
  72. }
  73. /// <summary>
  74. /// 专栏类型CSS样式
  75. /// </summary>
  76. /// <param name="typeName"></param>
  77. /// <returns></returns>
  78. public static string GetColumnTypeCss(string typeName)
  79. {
  80. if (string.IsNullOrEmpty(typeName))
  81. return "";
  82. switch (typeName)
  83. {
  84. case "tool":
  85. return "tools";
  86. case "tuku":
  87. return "tuku";
  88. case "article":
  89. return "news";
  90. case "rule":
  91. return "plays";
  92. case "opencode":
  93. return "lotte";
  94. }
  95. return "";
  96. }
  97. /// <summary>
  98. /// 获取专题类型对应的名称
  99. /// </summary>
  100. /// <param name="columnType"></param>
  101. /// <returns></returns>
  102. public static string GetColumnTypeName(string columnType)
  103. {
  104. if (string.IsNullOrEmpty(columnType))
  105. return "";
  106. switch (columnType)
  107. {
  108. case "tool":
  109. return "工具类";
  110. case "tuku":
  111. return "图库图谜";
  112. case "article":
  113. return "资讯预测";
  114. case "rule":
  115. return "玩法技巧";
  116. case "opencode":
  117. return "开奖类";
  118. }
  119. return "";
  120. }
  121. /// <summary>
  122. /// 自定义列表翻页方法
  123. /// </summary>
  124. /// <param name="page">页码</param>
  125. /// <param name="pagesize">每页Size</param>
  126. /// <param name="recordCount">总条数</param>
  127. /// <param name="fomartUrl">fomartURL链接格式</param>
  128. /// <param name="showIndexCount">显示页码个数</param>
  129. /// <returns></returns>
  130. public static string ListPage(int pageIndex, int pageSize, int recordCount, string fomartUrl, int showIndexCount)
  131. {
  132. if (0 >= recordCount)
  133. return "";
  134. var sp = new StringBuilder();
  135. int pageCount = recordCount / pageSize;
  136. if (0 != recordCount % pageSize)
  137. pageCount++;
  138. if (recordCount < pageSize)
  139. pageCount = 1;
  140. int left = showIndexCount / 2;
  141. int right = showIndexCount - left;
  142. int startIndex = pageIndex - left;
  143. int endIndex = pageIndex + right - 1;
  144. if (0 >= startIndex)
  145. {
  146. startIndex = 1;
  147. endIndex = showIndexCount;
  148. }
  149. if (endIndex > pageCount)
  150. endIndex = pageCount;
  151. if (pageIndex > 1)
  152. {
  153. sp.AppendFormat("<a href=\"{0}\">第一页</a>", string.Format(fomartUrl, 1));
  154. sp.AppendFormat("<a href=\"{0}\">上一页</a>", string.Format(fomartUrl, pageIndex > 1 ? pageIndex - 1 : 1));
  155. }
  156. for (int i = startIndex; i <= endIndex; i++)
  157. {
  158. if (i == pageIndex)
  159. { sp.AppendFormat("<span>{0}</span>", i); }
  160. else
  161. { sp.AppendFormat("<a href=\"{0}\">{1}</a>", string.Format(fomartUrl, i), i); }
  162. }
  163. if (pageIndex < pageCount)
  164. {
  165. sp.AppendFormat("<a href=\"{0}\">下一页</a>", string.Format(fomartUrl, pageIndex + 1));
  166. sp.AppendFormat("<a href=\"{0}\">最后一页</a>", string.Format(fomartUrl, pageCount));
  167. }
  168. return sp.ToString();
  169. }
  170. #region 专题相关
  171. /// <summary>
  172. /// 专栏获取彩种相关开奖信息及开奖号码
  173. /// </summary>
  174. /// <param name="lotteryCode">彩种编号</param>
  175. /// <returns></returns>
  176. public static string[] GetColumnOpenData(string lotteryCode)
  177. {
  178. string openDay = "", css = "";
  179. var openInfo = new StringBuilder();
  180. switch (lotteryCode)
  181. {
  182. case "ssq":
  183. css = "ssq";
  184. openDay = "每周二、四、日<span>21:20</span>";
  185. //var ssq = CB.Data.Caches.GetFCSSQInfo(0, OpenCodeType.KaiJiangHao);
  186. var ssq = FcssqData.GetFcssqInfoByQi(0);
  187. if (null != ssq)
  188. {
  189. openInfo.Append("<li class=\"belowL\">");
  190. openInfo.Append("<ul class=\"up\" id=\"navigation\">");
  191. openInfo.Append("<li class=\"caiz\">双色球</li>");
  192. openInfo.AppendFormat("<li class=\"qihao\">第<span>{0}</span>期开奖结果</li>", ssq.qi.ToString());
  193. openInfo.Append("<li class=\"ballbox\">");
  194. openInfo.AppendFormat("<span class=\"ball red\">{0}</span><span class=\"ball red\">{1}</span><span class=\"ball red\">{2}</span><span class=\"ball red\">{3}</span>",
  195. ssq.n1.ToString("00"), ssq.n2.ToString("00"), ssq.n3.ToString("00"), ssq.n4.ToString("00"));
  196. openInfo.AppendFormat("<span class=\"ball red\">{0}</span><span class=\"ball red\">{1}</span><span class=\"ball blue\">{2}</span>",
  197. ssq.n5.ToString("00"), ssq.n6.ToString("00"), ssq.n7.ToString("00"));
  198. openInfo.Append("</li>");
  199. openInfo.Append("</ul>");
  200. openInfo.Append("</li>");
  201. openInfo.AppendFormat("<li class=\"belowL\">开奖时间:{0} 兑奖截止:{1}</li>",
  202. ssq.date.ToString("yyyy年MM月dd日"), ssq.date.AddDays(60).ToString("yyyy年MM月dd日"));
  203. }
  204. break;
  205. case "3d":
  206. css = "fc3d";
  207. openDay = "每日<span>20:30</span>";
  208. //var fc3d = CB.Data.Caches.GetFC3DInfo(0, OpenCodeType.KaiJiangHao);
  209. var fc3d = FcsdData.GetFcsdInfoByQi(0);
  210. if (null != fc3d)
  211. {
  212. openInfo.Append("<li class=\"belowL\">");
  213. openInfo.Append("<ul class=\"up\" id=\"navigation\">");
  214. openInfo.Append("<li class=\"caiz\">福彩3D</li>");
  215. openInfo.AppendFormat("<li class=\"qihao\">第<span>{0}</span>期开奖结果</li>", fc3d.qi.ToString());
  216. openInfo.Append("<li class=\"ballbox\">");
  217. openInfo.AppendFormat("<span class=\"ball red\">{0}</span><span class=\"ball red\">{1}</span><span class=\"ball red\">{2}</span>",
  218. fc3d.n1.ToString(), fc3d.n2.ToString(), fc3d.n3.ToString());
  219. openInfo.Append("</li>");
  220. openInfo.Append("</ul>");
  221. openInfo.Append("</li>");
  222. openInfo.AppendFormat("<li class=\"belowL\">开奖时间:{0} 兑奖截止:{1}</li>",
  223. fc3d.date.ToString("yyyy年MM月dd日"), fc3d.date.AddDays(60).ToString("yyyy年MM月dd日"));
  224. }
  225. break;
  226. case "dlt":
  227. css = "dlt";
  228. openDay = "每周一、三、六<span>20:30</span>";
  229. //var dlt = CB.Data.Caches.GetTCDLTInfo(0, OpenCodeType.KaiJiangHao);
  230. var dlt = TcdltData.GetTcdltInfoByQi(0);
  231. if (null != dlt)
  232. {
  233. openInfo.Append("<li class=\"belowL\">");
  234. openInfo.Append("<ul class=\"up\" id=\"navigation\">");
  235. openInfo.Append("<li class=\"caiz\">大乐透</li>");
  236. openInfo.AppendFormat("<li class=\"qihao\">第<span>{0}</span>期开奖结果</li>", dlt.qi.ToString());
  237. openInfo.Append("<li class=\"ballbox\">");
  238. openInfo.AppendFormat("<span class=\"ball red\">{0}</span><span class=\"ball red\">{1}</span><span class=\"ball red\">{2}</span><span class=\"ball red\">{3}</span>",
  239. dlt.n1.ToString("00"), dlt.n2.ToString("00"), dlt.n3.ToString("00"), dlt.n4.ToString("00"));
  240. openInfo.AppendFormat("<span class=\"ball red\">{0}</span><span class=\"ball blue\">{1}</span><span class=\"ball blue\">{2}</span>",
  241. dlt.n5.ToString("00"), dlt.n6.ToString("00"), dlt.n7.ToString("00"));
  242. openInfo.Append("</li>");
  243. openInfo.Append("</ul>");
  244. openInfo.Append("</li>");
  245. openInfo.AppendFormat("<li class=\"belowL\">开奖时间:{0} 兑奖截止:{1}</li>",
  246. dlt.date.ToString("yyyy年MM月dd日"), dlt.date.AddDays(60).ToString("yyyy年MM月dd日"));
  247. }
  248. break;
  249. case "p3":
  250. css = "p3";
  251. openDay = "每日<span>20:30</span>";
  252. //var p3 = CB.Data.Caches.GetTCP3Info(0, OpenCodeType.KaiJiangHao);
  253. var p3 = Tcp3Data.GetTcp3InfoByQi(0);
  254. if (null != p3)
  255. {
  256. openInfo.Append("<li class=\"belowL\">");
  257. openInfo.Append("<ul class=\"up\" id=\"navigation\">");
  258. openInfo.Append("<li class=\"caiz\">排列三</li>");
  259. openInfo.AppendFormat("<li class=\"qihao\">第<span>{0}</span>期开奖结果</li>", p3.qi.ToString());
  260. openInfo.Append("<li class=\"ballbox\">");
  261. openInfo.AppendFormat("<span class=\"ball red\">{0}</span><span class=\"ball red\">{1}</span><span class=\"ball red\">{2}</span>",
  262. p3.n1.ToString(), p3.n2.ToString(), p3.n3.ToString());
  263. openInfo.Append("</li>");
  264. openInfo.Append("</ul>");
  265. openInfo.Append("</li>");
  266. openInfo.AppendFormat("<li class=\"belowL\">开奖时间:{0} 兑奖截止:{1}</li>",
  267. p3.date.ToString("yyyy年MM月dd日"), p3.date.AddDays(60).ToString("yyyy年MM月dd日"));
  268. }
  269. break;
  270. }
  271. return new string[] { css, openDay, openInfo.ToString() };
  272. }
  273. /// <summary>
  274. /// 图库图片获取上一期号 限制P3/3D
  275. /// </summary>
  276. /// <param name="qi"></param>
  277. /// <param name="lottery"></param>
  278. /// <returns></returns>
  279. public static int GetUpTerm(int qi, string lottery)
  280. {
  281. int year = qi / 1000;
  282. int minQi = year * 1000 + 001;
  283. int lastQi = qi - 1;
  284. if (minQi > lastQi)
  285. {
  286. year = year - 1;
  287. int endQi = year * 1000 + 153;
  288. if (lottery.ToLower() == "3d" || lottery.ToLower() == "p3")
  289. {
  290. endQi = endQi + 205;
  291. if (2014 == year)//2014年少一期
  292. { endQi = endQi - 1; }
  293. }
  294. if (0 == (year % 4))
  295. { endQi = endQi + 1; }
  296. lastQi = endQi;
  297. }
  298. return lastQi;
  299. }
  300. /// <summary>
  301. /// 获取下一期号
  302. /// </summary>
  303. /// <param name="qi"></param>
  304. /// <param name="lottery"></param>
  305. /// <returns></returns>
  306. public static int GetNextTerm(int qi, string lottery)
  307. {
  308. int year = qi / 1000;
  309. int endQi = year * 1000 + 153;
  310. if (lottery == "3d" || lottery == "p3")
  311. {
  312. endQi = endQi + 205;
  313. if (2014 == year)//2014年少一期
  314. { endQi = endQi - 1; }
  315. }
  316. if (0 == (year % 4))
  317. { endQi = endQi + 1; }
  318. if (qi < endQi)
  319. return qi + 1;
  320. return (year + 1) * 1000 + 1;
  321. }
  322. /// <summary>
  323. /// WAP端专题页子导航
  324. /// </summary>
  325. /// <param name="lottery">专题所属彩种</param>
  326. /// <param name="localColumnId">当前专题ID</param>
  327. /// <returns></returns>
  328. public static string GetColumnNavForWap(string lottery)
  329. {
  330. var list = ZtColumnBll.GetList(lottery);
  331. if (null == list || 0 >= list.Count)
  332. return "";
  333. var sp = new StringBuilder();
  334. sp.Append("<ul>");
  335. if (3 < list.Count)
  336. {
  337. for (int i = 0; i < 3; i++)
  338. {
  339. sp.AppendFormat("<li><a href=\"/zt/{0}/\">{1}</a></li>",
  340. list[i].RewriteUrl, list[i].Name);
  341. }
  342. sp.Append("</ul>");
  343. sp.Append("<ul class=\"enlarge\" id=\"enlarge\" style=\"display:none;\">");
  344. for (int i = 3; i < list.Count; i++)
  345. {
  346. sp.AppendFormat("<li><a href=\"/zt/{0}/\">{1}</a></li>",
  347. list[i].RewriteUrl, list[i].Name);
  348. }
  349. sp.Append("</ul>");
  350. sp.Append("<div class=\"unfold\" onclick=\"unfold()\" id=\"unfold\"></div>");
  351. }
  352. else
  353. {
  354. foreach (var item in list)
  355. {
  356. sp.AppendFormat("<li><a href=\"/zt/{0}/\">{1}</a></li>",
  357. item.RewriteUrl, item.Name);
  358. }
  359. sp.Append("</ul>");
  360. }
  361. return sp.ToString();
  362. }
  363. #endregion
  364. }
  365. /// <summary>
  366. /// 专栏配置
  367. /// </summary>
  368. public class ColumnConfigInfo
  369. {
  370. /// <summary>
  371. /// 图库图片URL总路径
  372. /// </summary>
  373. public string TukuFileUrl { get; set; }
  374. /// <summary>
  375. /// 图库WEB服务地址
  376. /// </summary>
  377. public string TukuWebServiceUrl { get; set; }
  378. /// <summary>
  379. /// 图库域名
  380. /// </summary>
  381. public string TukuDomain { get; set; }
  382. }
  383. }