using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Text; using CB.Entity; using CB.Common; using System.Data; using CB.Config; using System.Text.RegularExpressions; using System.Diagnostics; namespace CB.Framework { /// /// 前台页面基类 /// public class WebPage : PageBase { #region 属性 /// /// 页面标题 /// public string pageTitle = ""; /// /// 页面关键字 /// public string pageKeyWords = ""; /// /// 页面描述 /// public string pageDescription = ""; /// /// 开奖时间 /// protected string kjsj = ""; /// /// 兑奖时间 /// protected string djsj = ""; /// /// 开奖直播中的切换彩种 /// protected string lotMuen = ""; #endregion public List chartids = new List{ 1, 26, 14, 96, 5, 191, 4, 202, 32, 17, 192, 100, 108, 16,43,44,45,46,47,48,49,58,50,51,52,53,54,55,56,57,58,59,60,70,71,72,73,74,75,76,77,78,79,80,158,81,82,83,84,85,86,87,88,89,90,91,159 }; public WebPage() { } /// /// 页面数据初始化 /// protected override void InitData() { } /// /// 页面热点推荐内容 /// /// /// public static string GetHotContent(int id) { return CB.Data.Caches.GetRecommendContent(id); } #region 彩种logo样式 /// /// 获取彩种Logo样式 /// /// /// public static string GetLotteryLogoCss(int lotId) { string css = ""; switch (lotId) { case 1://福彩3D css = "fc3d"; break; case 2://排列三 css = "p3"; break; case 3://排列五 css = "p5"; break; case 4://双色球 css = "ssq"; break; case 5://七乐彩 css = "qlc"; break; case 12://大乐透 css = "dlt"; break; case 14://重庆时时彩 css = "ssc"; break; case 15://广东快乐十分 case 91: case 92: case 93: case 94: case 99: css = "klsf"; break; case 16://十一运夺金 css = "yydj"; break; case 19://七星彩 css = "qxc"; break; case 20://华东11选5 css = "yyxw"; break; case 28://好彩1 css = "hc1"; break; case 95: case 29://群英会 css = "qyh"; break; case 31://广东11选5 case 70: case 71: case 72: case 73: case 74: case 75: case 76: case 77: case 78: case 79: case 80: case 81: case 82: case 83: case 84: case 85: case 100: case 106: case 107: case 108: case 109: case 110: case 111: css = "yyxw"; break; case 66://22选5 case 67: css = "ee5"; break; case 63://6+1 case 64: css = "lj1"; break; case 68://新疆35选7 css = "swxq"; break; case 61://36选7 case 69: css = "slxq"; break; case 59://快乐彩 case 90: case 98: css = "klye"; break; case 65://华东15选5 css = "swxw"; break; case 60://福建31选7 css = "syxq"; break; case 62: css = "qws"; break; case 86://快3 case 87: case 88: case 89: case 96: case 97: css="ks"; break; case 101: css = "hbssxw"; break; case 102: css = "ssl"; break; case 114: css = "klb"; break; case 115: css = "pks"; break; //--2016-12 新增彩种 case 103://山东快乐扑克3 css = "klpk"; break; case 104://幸运赛车 css = "xysc"; break; case 105://河南快赢481(泳坛夺金) css = "hnky"; break; //-- } return css; } #endregion #region 走势图、遗漏、图表模板相关 /// /// 根据模板和数据生成HTML /// /// 模板ID /// /// public static string BuildTemplateData(int tid, Dictionary data) { var template = CB.Data.Caches.GetTemplateInfo(tid); if (null == template) return ""; string content = CB.Data.TemplateFiles.GetFileContent(template.FilePath); if (TemplateMethodType.Normal == template.MethodType) return content; if (null == data || 0 >= data.Count) return content; if (TemplateMethodType.Replace == template.MethodType) { foreach (var key in data.Keys) { content = content.Replace(key, data[key]); } return content; } return ""; } #endregion #region 根据资源文件名,生成对应版本号的HTML代码 /// /// 根据资源文件名,生成对应版本号的HTML代码 /// /// 多个文件请用逗号","分隔 /// public string GetResourceFiles(string files) { if (string.IsNullOrWhiteSpace(files)) return ""; return GetResourceFiles(files.Split(',')); } /// /// 根据资源文件名,生成对应版本号的HTML代码 /// /// 资源文件名 /// public string GetResourceFiles(string[] files) { if (null == files || 0 >= files.Length) return ""; return CB.Config.ResourcesConfigs.GetMultiResourcesFilesHtml(files); } #endregion #region 走势图表获取相关栏目详细 /// /// 走势图表菜单导航 /// /// 走势图ID /// 彩种ID /// 走势图表类型 /// 固定推荐字符串 /// public static string GetTrendMenu(int chartId, int lotteryId, int tid, string otherLink) { var p = CB.Data.Caches.GetTrendTypeList(); IList list; var sp = new StringBuilder(); var c = new StringBuilder(); c.Append("
"); sp.Append("
    "); foreach (var item in p) { list = CB.Data.Caches.GetTrendChartList(lotteryId, item.Id, 0); if (null != list && 0 < list.Count) { if (tid != item.Id) { c.Append("
    "); sp.AppendFormat("
  • {1}
  • ", item.Path, item.Name); } else { c.Append("
    "); sp.AppendFormat("
  • {1}
  • ", item.Path, item.Name); } c.Append("
      "); foreach (var l in list) { if (!l.Name.Contains("手机版")) { c.AppendFormat("{2}", chartId == l.Id ? " class=\"select\"" : "", 2002 == item.Id ? l.Url : string.Format("{0}{1}_{2}.htm", CB.Data.Caches.GetTrendPath(l.Tid), l.Cid, l.Id), l.Name); } } c.Append("
    "); c.Append("
    "); } } if (1 == lotteryId || 2 == lotteryId || 4 == lotteryId || 12 == lotteryId) { sp.Append("
  • 专题
  • "); c.Append("
    "); c.Append("
      "); string lotteryCode = ""; switch (lotteryId) { case 1: lotteryCode = "3d"; break; case 2: lotteryCode = "p3"; break; case 4: lotteryCode = "ssq"; break; case 12: lotteryCode = "dlt"; break; } var l = CB.Data.Caches.GetColumnList(lotteryCode); int t = 15; if (t > l.Count) t = l.Count; for (int i = 0; i < t; i++) { c.AppendFormat("
    • {1}
    • ", l[i].RewriteUrl, l[i].Name); } c.Append("
    "); c.Append("
    "); } sp.Append("
"); if (!string.IsNullOrEmpty(otherLink)) { sp.Append(otherLink); } sp.Append("
"); c.Append("
"); return sp.ToString() + c.ToString(); } /// /// 走势图表列表 /// /// 彩种ID /// 走势图表类型 /// protected virtual string GetTrendChart(int lotteryId, int tid) { var list = CB.Data.Caches.GetTrendChartList(lotteryId, tid, 0); if (null == list || 0 >= list.Count) return ""; var sp = new StringBuilder(list.Count * 100); string css = ""; foreach (var item in list) { if (TrendChartStatus.New == item.Status) css = " class=\"new\""; if (TrendChartStatus.Hot == item.Status) css = " class=\"hot\""; if (!item.Name.Contains("手机版")) { sp.AppendFormat("{3}", css, item.Cid, item.Id, item.Name); } } return sp.ToString(); } protected virtual string WapGetTrendChart(int lotteryId, int tid, List chartids,bool isWap=false) { var list = CB.Data.Caches.GetTrendChartList(lotteryId, tid, 0); var lottery = CB.Data.Caches.GetLotteryInfo(lotteryId); if (null == list || 0 >= list.Count) return ""; var sp = new StringBuilder(list.Count * 100); string css = ""; int i = 1; int c = 0; foreach (var item in list) { if (i%3==1) { sp.Append("
    "); } if (TrendChartStatus.New == item.Status) css = " "; if (TrendChartStatus.Hot == item.Status) css = " "; //if (chartids.Contains(item.Id)) //{ //modified by zizi, at 2016-5-20 if (tid != 2002) { if ((!item.Name.Contains("手机版") && !isWap) || (item.Name.Contains("手机版") && isWap)) { var _name = isWap ? item.Name.Replace("手机版", "") : item.Name; var _id = isWap ? MobPcConvert.GetSyncIdFromM(item.Id) : item.Id; if (_id == 0 && isWap) _id = item.Id; var txtReg = "^"+lottery.Name; if (txtReg.Contains("+")) txtReg = txtReg.Replace("+", @"[\+]"); //TODO: 2016-7-15 保持移动端和pc端的地址一致 sp.AppendFormat("
  • {3}{0}
  • ", css, item.Cid, _id,//item.Id, // style=\"color:#2574c5\" RemovePreffixLotName(Regex.Replace(_name, txtReg, "", RegexOptions.IgnoreCase))); } else { c++; i--; } } else { if (!item.Name.Contains("手机版")) { sp.AppendFormat("
  • {2}{0}
  • ", css, item.Url, // style=\"color:#2574c5\" RemovePreffixLotName(Regex.Replace(item.Name, "^" + lottery.Name, "", RegexOptions.IgnoreCase))); } else { c++; i--; } } if (i%3==0 ||i==list.Count-c) { if (list.Count-c==i&&(list.Count-c)%3!=0) { int tnum = 3-(list.Count-c) % 3; for (int j = 0; j < tnum; j++) { if (list.Count - c < 3) continue; sp.Append("
  • "); } } sp.Append("
"); } i++; //} //else //{ // string path=""; // switch(tid) // { // case 2001: // path = "zs"; // break; // case 2002: // path = "tool"; // break; // case 2003: // path = "yl"; // break; // case 2004: // path = "tb"; // break; // default: // path = "tb"; // break; // } // if (tid != 2002) // { // sp.AppendFormat("
  • {3}{0}
  • ", css, item.Cid, item.Id, // Regex.Replace(item.Name, "^" + lottery.Name, "", RegexOptions.IgnoreCase), path); // } // else // { // sp.AppendFormat("
  • {2}{0}
  • ", css, item.Url, // Regex.Replace(item.Name, "^" + lottery.Name, "", RegexOptions.IgnoreCase)); // } //} } var _sp = sp.ToString(); return _sp.Replace("
      ", ""); } /// /// 获取帮助文章列表 /// /// /// protected virtual string GetHelpList(int cid) { //2016-02-22 128PC版除了双色球和3D二个彩种,其它彩种的帮助不显示出来 if (cid != 1 && cid != 4) return ""; var list = CB.Data.Caches.GetHelpList(cid); if (null == list || 0 >= list.Count) return ""; int count = list.Count; var sp = new StringBuilder(count * 500); sp.Append("
      "); sp.Append("

      帮助

      "); sp.Append("
        "); string part = "", all = ""; if (count > 4) { all = "显示全部"; part = "收起"; } for (int i = 0; i < count - 2; i++) { sp.Append("
      • "); sp.Append(1 == list[i].Status ? list[i].Title : string.Format("{1}", list[i].Tid, list[i].Title)); if (3 == i) sp.Append(all); sp.Append("
      • "); } sp.Append("
      • "); sp.Append(1 == list[count - 1].Status ? list[count - 1].Title : string.Format("{1}", list[count - 1].Tid, list[count - 1].Title)); sp.Append(part); sp.Append("
      • "); sp.Append("
      "); sp.Append(GetHotContent(28)); sp.Append("
      "); return sp.ToString(); } /// /// 智能推荐 /// /// /// protected virtual string GetTrendSmart(int chartId) { var list = CB.Data.Caches.GetTrendSmartList(chartId, 17); if (null == list && 0 >= list.Count) { return ""; } var sp = new StringBuilder(2200); sp.Append("
      "); sp.Append("
        "); sp.Append("
      • 猜您会喜欢:
      • "); foreach (var item in list) { if (2002 == item.Tid) { sp.AppendFormat("
      • {1}
      • ", item.Url, item.Name); } else { sp.AppendFormat("
      • {3}
      • ", CB.Data.Caches.GetTrendPath(item.Tid), item.Cid, item.Id, item.Name); } } sp.Append("
      "); sp.Append("
      "); return sp.ToString(); } /// /// 智能推荐(加强) /// /// /// protected virtual string GetTrendSmart2(int chartId, int lotteryId) { var list = CB.Data.Caches.GetTrendSmartList(chartId, 17); if (null == list && 0 >= list.Count) { return ""; } if (lotteryId > 0 && list.Count == 0) { list = CB.Data.Caches.GetTrendChartList(lotteryId, 2001, 0); list = list.Where(t => !t.Name.Contains("手机版")).ToList(); } var sp = new StringBuilder(2200); sp.Append("
      "); sp.Append("
        "); sp.Append("
      • 猜您会喜欢:
      • "); foreach (var item in list) { if (2002 == item.Tid) { sp.AppendFormat("
      • {1}
      • ", item.Url, item.Name); } else { sp.AppendFormat("
      • {3}
      • ", CB.Data.Caches.GetTrendPath(item.Tid), item.Cid, item.Id, item.Name); } } sp.Append("
      "); sp.Append("
      "); return sp.ToString(); } /// /// 更新走势图表智能推荐关联 /// /// 走势图表ID protected static void UpdateTrendSmart(int chartId) { string smart = Utils.GetCookie("trendchart-smart"); if (null == smart || 0 == smart.Length) { Utils.WriteCookie("trendchart-smart", chartId.ToString(), 10); return; } int startid = TypeConverter.StrToInt(smart); if (0 < startid && 0 < chartId && startid != chartId) { CB.Data.TrendChartService.UpdateTrendSmart(startid, chartId); } } #endregion #region 专题相关 /// /// 专栏获取彩种相关开奖信息及开奖号码 /// /// 彩种编号 /// protected virtual string[] GetColumnOpenData(string lotteryCode) { string openDay = "", css = ""; var openInfo = new StringBuilder(); switch (lotteryCode) { case "ssq": css = "ssq"; openDay = "每周二、四、日21:20"; var ssq = CB.Data.Caches.GetFCSSQInfo(0, OpenCodeType.KaiJiangHao); if (null != ssq) { openInfo.Append("
    • "); openInfo.Append("
        "); openInfo.Append("
      • 双色球
      • "); openInfo.AppendFormat("
      • {0}期开奖结果
      • ", ssq.Term.ToString()); openInfo.Append("
      • "); openInfo.AppendFormat("{0}{1}{2}{3}", ssq.OpenCode1.ToString("00"), ssq.OpenCode2.ToString("00"), ssq.OpenCode3.ToString("00"), ssq.OpenCode4.ToString("00")); openInfo.AppendFormat("{0}{1}{2}", ssq.OpenCode5.ToString("00"), ssq.OpenCode6.ToString("00"), ssq.OpenCode7.ToString("00")); openInfo.Append("
      • "); openInfo.Append("
      "); openInfo.Append("
    • "); openInfo.AppendFormat("
    • 开奖时间:{0} 兑奖截止:{1}
    • ", ssq.OpenTime.ToString("yyyy年MM月dd日"), ssq.OpenTime.AddDays(60).ToString("yyyy年MM月dd日")); } break; case "3d": css = "fc3d"; openDay = "每日20:30"; var fc3d = CB.Data.Caches.GetFC3DInfo(0, OpenCodeType.KaiJiangHao); if (null != fc3d) { openInfo.Append("
    • "); openInfo.Append("
        "); openInfo.Append("
      • 福彩3D
      • "); openInfo.AppendFormat("
      • {0}期开奖结果
      • ", fc3d.Term.ToString()); openInfo.Append("
      • "); openInfo.AppendFormat("{0}{1}{2}", fc3d.OpenCode1.ToString(), fc3d.OpenCode2.ToString(), fc3d.OpenCode3.ToString()); openInfo.Append("
      • "); openInfo.Append("
      "); openInfo.Append("
    • "); openInfo.AppendFormat("
    • 开奖时间:{0} 兑奖截止:{1}
    • ", fc3d.OpenTime.ToString("yyyy年MM月dd日"), fc3d.OpenTime.AddDays(60).ToString("yyyy年MM月dd日")); } break; case "dlt": css = "dlt"; openDay = "每周一、三、六20:30"; var dlt = CB.Data.Caches.GetTCDLTInfo(0, OpenCodeType.KaiJiangHao); if (null != dlt) { openInfo.Append("
    • "); openInfo.Append("
        "); openInfo.Append("
      • 大乐透
      • "); openInfo.AppendFormat("
      • {0}期开奖结果
      • ", dlt.Term.ToString()); openInfo.Append("
      • "); openInfo.AppendFormat("{0}{1}{2}{3}", dlt.OpenCode1.ToString("00"), dlt.OpenCode2.ToString("00"), dlt.OpenCode3.ToString("00"), dlt.OpenCode4.ToString("00")); openInfo.AppendFormat("{0}{1}{2}", dlt.OpenCode5.ToString("00"), dlt.OpenCode6.ToString("00"), dlt.OpenCode7.ToString("00")); openInfo.Append("
      • "); openInfo.Append("
      "); openInfo.Append("
    • "); openInfo.AppendFormat("
    • 开奖时间:{0} 兑奖截止:{1}
    • ", dlt.OpenTime.ToString("yyyy年MM月dd日"), dlt.OpenTime.AddDays(60).ToString("yyyy年MM月dd日")); } break; case "p3": css = "p3"; openDay = "每日20:30"; var p3 = CB.Data.Caches.GetTCP3Info(0, OpenCodeType.KaiJiangHao); if (null != p3) { openInfo.Append("
    • "); openInfo.Append("
        "); openInfo.Append("
      • 排列三
      • "); openInfo.AppendFormat("
      • {0}期开奖结果
      • ", p3.Term.ToString()); openInfo.Append("
      • "); openInfo.AppendFormat("{0}{1}{2}", p3.OpenCode1.ToString(), p3.OpenCode2.ToString(), p3.OpenCode3.ToString()); openInfo.Append("
      • "); openInfo.Append("
      "); openInfo.Append("
    • "); openInfo.AppendFormat("
    • 开奖时间:{0} 兑奖截止:{1}
    • ", p3.OpenTime.ToString("yyyy年MM月dd日"), p3.OpenTime.AddDays(60).ToString("yyyy年MM月dd日")); } break; } return new string[] { css, openDay, openInfo.ToString() }; } /// /// 专栏类型CSS样式 /// /// /// public static string GetColumnTypeCss(string typeName) { if (string.IsNullOrEmpty(typeName)) return ""; switch (typeName) { case "tool": return "tools"; case "tuku": return "tuku"; case "article": return "news"; case "rule": return "plays"; case "opencode": return "lotte"; } return ""; } /// /// 获取专题类型对应的名称 /// /// /// public static string GetColumnTypeName(string columnType) { if (string.IsNullOrEmpty(columnType)) return ""; switch (columnType) { case "tool": return "工具类"; case "tuku": return "图库图谜"; case "article": return "资讯预测"; case "rule": return "玩法技巧"; case "opencode": return "开奖类"; } return ""; } /// /// 图库图片获取上一期号 限制P3/3D /// /// /// /// public static int GetUpTerm(int qi, string lottery) { int year = qi / 1000; int minQi = year * 1000 + 001; int lastQi = qi - 1; if (minQi > lastQi) { year = year - 1; int endQi = year * 1000 + 153; if (lottery.ToLower() == "3d" || lottery.ToLower() == "p3") { endQi = endQi + 205; if (2014 == year)//2014年少一期 { endQi = endQi - 1; } } if (0 == (year % 4)) { endQi = endQi + 1; } lastQi = endQi; } return lastQi; } /// /// 获取下一期号 /// /// /// /// public static int GetNextTerm(int qi, string lottery) { int year = qi / 1000; int endQi = year * 1000 + 153; if (lottery == "3d" || lottery == "p3") { endQi = endQi + 205; if (2014 == year)//2014年少一期 { endQi = endQi - 1; } } if (0 == (year % 4)) { endQi = endQi + 1; } if (qi < endQi) return qi + 1; return (year + 1) * 1000 + 1; } /// /// 图库图片地址 /// /// /// 是否压缩包 /// /// public static string GetTKFileUrl(int term, string code, bool isRar) { string fileFormat = ".jpg"; if (isRar) fileFormat = ".rar"; return string.Format("{0}{1}/{2}{3}", ColumnConfigs.GetConfig().TukuFileUrl, term, code, fileFormat); } /// /// WAP端专题页子导航 /// /// 专题所属彩种 /// 当前专题ID /// public static string GetColumnNavForWap(string lottery) { var list = CB.Data.Caches.GetColumnList(lottery); if (null == list || 0 >= list.Count) return ""; var sp = new StringBuilder(); sp.Append("
        "); if (3 < list.Count) { for (int i = 0; i < 3; i++) { sp.AppendFormat("
      • {1}
      • ", list[i].RewriteUrl, list[i].Name); } sp.Append("
      "); sp.Append("
        "); for (int i = 3; i < list.Count; i++) { sp.AppendFormat("
      • {1}
      • ", list[i].RewriteUrl, list[i].Name); } sp.Append("
      "); sp.Append("
      "); } else { foreach (var item in list) { sp.AppendFormat("
    • {1}
    • ", item.RewriteUrl, item.Name); } sp.Append(""); } return sp.ToString(); } #endregion /// /// 错误提示页 /// /// /// protected static void ShowError() { HttpContext.Current.Server.Transfer("/404.aspx"); HttpContext.Current.Response.End(); } /// /// 自定义列表翻页方法 /// /// 页码 /// 每页Size /// 总条数 /// fomartURL链接格式 /// 显示页码个数 /// public static string ListPage(int pageIndex, int pageSize, int recordCount, string fomartUrl, int showIndexCount) { if (0 >= recordCount) return ""; var sp = new StringBuilder(); int pageCount = recordCount / pageSize; if (0 != recordCount % pageSize) pageCount++; if (recordCount < pageSize) pageCount = 1; int left = showIndexCount / 2; int right = showIndexCount - left; int startIndex = pageIndex - left; int endIndex = pageIndex + right - 1; if (0 >= startIndex) { startIndex = 1; endIndex = showIndexCount; } if (endIndex > pageCount) endIndex = pageCount; if (pageIndex > 1) { sp.AppendFormat("第一页", string.Format(fomartUrl, 1)); sp.AppendFormat("上一页", string.Format(fomartUrl, pageIndex > 1 ? pageIndex - 1 : 1)); } for (int i = startIndex; i <= endIndex; i++) { if (i == pageIndex) { sp.AppendFormat("{0}", i); } else { sp.AppendFormat("{1}", string.Format(fomartUrl, i), i); } } if (pageIndex < pageCount) { sp.AppendFormat("下一页", string.Format(fomartUrl, pageIndex + 1)); sp.AppendFormat("最后一页", string.Format(fomartUrl, pageCount)); } return sp.ToString(); } #region 开奖公告 开奖号相关 /// /// 开奖号格式显示 /// /// /// /// /// public static string GetLotteryAward(int[] kjh, int sumLength, int splitLength) { if (kjh.Length < sumLength) return ""; string color = sumLength > splitLength ? " ball-red" : " ball-yellow"; StringBuilder sp = new StringBuilder(128); int i = 0; foreach (int num in kjh) { i++; if (i > splitLength) color = " ball-blue"; sp.AppendFormat("{1}", color, num); } return sp.ToString(); } /// /// 获取热门开机号 /// /// 需要的热门类型如:(sd,dlt,ssq) /// public static string GetHotKjih(string types) { string[] type = types.Split(','); string result = ""; foreach (string item in type) { switch (item) { case "sd": FC3DInfo sd = CB.Data.Caches.GetFC3DInfo(0); result += "
    • 福彩3D
      " + sd.OpenCode1 + "" + sd.OpenCode2 + "" + sd.OpenCode3 + "
    • "; break; case "dlt": TCDLTInfo dlt = CB.Data.Caches.GetTCDLTInfo(0); result += "
    • 大乐透
      " + dlt.OpenCode1 + "" + dlt.OpenCode2 + "" + dlt.OpenCode3 + "" + dlt.OpenCode4 + "" + dlt.OpenCode5 + "" + dlt.OpenCode6 + "" + dlt.OpenCode7 + "
    • "; break; case "ssq": FCSSQInfo ssq = CB.Data.Caches.GetFCSSQInfo(0); result += "
    • 双色球
      " + ssq.OpenCode1 + "" + ssq.OpenCode2 + "" + ssq.OpenCode3 + "" + ssq.OpenCode4 + "" + ssq.OpenCode5 + "" + ssq.OpenCode6 + "" + ssq.OpenCode7 + "
    • "; break; case "ps": TCP3Info ps = CB.Data.Caches.GetTCP3Info(0); result += "
    • 排列三
      " + ps.OpenCode1 + "" + ps.OpenCode2 + "" + ps.OpenCode3 + "
    • "; break; } } return result; } #region 内容显示格式转换 /// /// 获取未开奖号详细显示格式 /// /// 开奖号 /// 区分长度 /// public string GetLotteryAward(int sumLength, int splitLength) { string color = sumLength > splitLength ? " ball-red" : " ball-yellow"; StringBuilder sp = new StringBuilder(128); for (int i = 0; i < sumLength; i++) { if (i >= splitLength) color = " ball-blue"; sp.AppendFormat("", color); } return sp.ToString(); } /// /// 格式化开奖号显示方式 /// /// 开奖号 /// 区分长度 /// public string GetInitKjh(int[] kjh, int splitLength) { if (kjh.Length == 0) return ""; int i = 0; StringBuilder sp = new StringBuilder(128); foreach (int d in kjh) { i++; if (i < splitLength) sp.AppendFormat("{0},", d); if (i == splitLength) sp.AppendFormat("{0} |", d); if (i > splitLength) sp.AppendFormat(" {0},", d); } string str = sp.ToString(); return Utils.GetSubString(str, str.Length - 1); } /// /// 将日期转换成星期几 /// /// /// public string GetWday(DateTime date) { DateTime dt = date; string wday = ""; switch (dt.DayOfWeek) { case DayOfWeek.Monday: wday = "星期一"; break; case DayOfWeek.Tuesday: wday = "星期二"; break; case DayOfWeek.Wednesday: wday = "星期三"; break; case DayOfWeek.Thursday: wday = "星期四"; break; case DayOfWeek.Friday: wday = "星期五"; break; case DayOfWeek.Saturday: wday = "星期六"; break; case DayOfWeek.Sunday: wday = "星期日"; break; } return wday; } /// /// 一位变两位 /// /// /// public string GetTnumber(int number) { if (number.ToString().Length > 1) { return number.ToString(); } else { return number.ToString().PadLeft(2, '0'); } } /// /// 将数字变为三位的字符串 /// /// /// public string GetThnumber(string sjh) { string[] sjhs = sjh.Split(','); string result = ""; for (int i = 0; i < 3 - sjhs.Length; i++) { result += "0"; } foreach (var item in sjhs) { result += item; } return result; } public string GetStrMoney(string money) { int index = money.IndexOf('.'); string result = "0"; if (index > 9) { result = money.Substring(0, index - 8) + "亿" + money.Substring(index - 8, 4) + "万"; } else if (index > 5 && index <= 9) { result = money.Substring(0, index - 4) + "万"; } else if (index <= 5 && index > -1) { result = money; } else if (index == -1) { if (money.Length >= 9) { result = money.Substring(0, money.Length - 8) + "亿" + money.Substring(money.Length - 8, 4) + "万"; } else if (money.Length >= 5 && money.Length < 9) { result = money.Substring(0, money.Length - 4) + "万"; } } return result; } #endregion #region 分析数据 /// /// 奇偶比 /// /// 开奖号数组 /// 开奖号的位数 /// 计算的位数 /// public static string Getjiou(int[] num, int sumcount, int count) { if (num.Length != sumcount) { return ""; } int j = 0, o = 0, k = 0; foreach (int i in num) { if (k < count) { if (i % 2 == 0) { o++; }//偶数个数 else { j++; }//奇数个数 } k++; } return string.Format("{0}:{1}", j, o); } /// /// 和值 /// /// 开奖号数组 /// 计算的位数 /// public static int Gethz(int[] num, int length) { int hz = 0; int i = 0; foreach (int item in num) { if (i == length) break; hz += item; i++; } return hz; } /// /// 跨度 /// /// 开奖号数组 /// 计算的位数 /// public static int Getkd(int[] num, int length) { List list = new List(); int i = 0; foreach (int item in num) { if (i == length) break; list.Add(item); i++; } list.Sort(); return Math.Abs(list[0] - list[list.Count - 1]); } /// /// 算三区比 一区:1-11 二区:12-22 三区23-33 /// /// 开奖号数组 /// 计算的位数 /// 三区比 public static string Getsanqu(int[] num, int length) { int sanqu1 = 0, sanqu2 = 0, sanqu3 = 0; int i = 0; foreach (int item in num) { if (i == length) break; if (item >= 1 && item <= 11) sanqu1++; if (item >= 12 && item <= 22) sanqu2++; if (item >= 23 && item <= 33) sanqu3++; i++; } return string.Format("{0}:{1}:{2}", sanqu1, sanqu2, sanqu3); } #endregion /// /// 格式化整型数字 /// /// /// protected static string FormatSize(int size) { string Num = size.ToString("#,###"); if (Num == "") return "0"; else return Num; } #endregion /// /// 获取3D/P3是直选还是组选 /// /// public string GetZhiZuXuan() { string zhizuxuan = WRequest.GetString("zuhe"); return (zhizuxuan.IndexOf("直选", StringComparison.Ordinal) > 0) ? "直选" : "组选"; } #region 彩种参数名 public string GetLot(int id) { switch (id) { case 1: return "sd"; case 2: return "p3"; case 3: return "p5"; case 4: return "ssq"; case 5: return "qlc"; case 12: return "dlt"; case 19: return "qxc"; case 28: return "hc1"; case 60: return "fj31x7"; case 61: return "fj36x7"; case 62: return "js7ws"; case 63: return "zj6j1"; case 64: return "df6j1"; case 65: return "hd15x5"; case 66: return "hb22x5"; case 67: return "hn22x5"; case 68: return "xj35x7"; case 69: return "ny36x7"; default: return "sd"; } } #endregion /// /// 获得彩种菜单 /// public string GetLotMunes() { string result = ""; var lots = CB.Data.LotteryService.ToList().Where(it => it.Frequency == false && it.Status == true); foreach (var item in lots) { result += "
    • " + item.Name + "
    • "; } return result; } #region MyRegion /// /// 热门推荐 /// /// public static string HotRecommend(int chartId, TrendChartInfo entity, string lotteryName,string replacestr, Dictionary viewbag,bool showAspx=false) { var rlist = CB.Data.Caches.GetTrendChartList(entity.Cid, entity.Tid, 0); return TrendChartToString(rlist, entity, lotteryName, replacestr, viewbag, showAspx); } public static string SmartRecommend(int chartId,TrendChartInfo entity, string lotteryName, string replacestr, Dictionary viewbag,bool showAspx=false) { var list = CB.Data.Caches.GetTrendSmartList(chartId, 12); if (null == list && 0 >= list.Count) { return ""; } return TrendChartToString(list, entity, lotteryName, replacestr, viewbag,showAspx); } public static string TrendChartToString(IList rlist, TrendChartInfo entity, string lotteryName, string replacestr, Dictionary viewbag,bool showAspx) { replacestr = RemovePreffixLotName(replacestr); var zr = new StringBuilder(); if (null != rlist && 0 < rlist.Count) { var _index = 0; zr.Append("
        "); foreach (var item in rlist) { if (entity.Name.Contains("手机版")) { if (item.Name == entity.Name.Substring(3)) { //modified by zizi , at 2016-5-20(改成电脑版) zr.AppendFormat( "
      • {2}
      • ", item.Cid, item.Id, replacestr); _index++; } } else { if (item.Name == entity.Name) { //modified by zizi , at 2016-5-20(去掉前面的彩种名称) zr.AppendFormat( "
      • {2}
      • ", item.Cid, item.Id, replacestr); //Regex.Replace(item.Name, "^" + lottery.Name, "", RegexOptions.IgnoreCase)); _index++; } } if (_index == 3) { zr.Append("
        "); _index = 0; } } if (zr.Length == 0) zr.Append("
          "); foreach (var item in rlist.Where(e => e.Tid == entity.Tid)) { if (item.Name != entity.Name.Substring(3) && !item.Name.Contains("手机版")) { //modified by zizi , at 2016-5-20(去掉前面的彩种名称) if (showAspx) zr.AppendFormat("
        • {1}
        • ", item.Url, Regex.Replace(item.Name, "^" + lotteryName, "", RegexOptions.IgnoreCase)); else zr.AppendFormat("
        • {2}
        • ", item.Cid, item.Id, Regex.Replace(item.Name, "^" + lotteryName, "", RegexOptions.IgnoreCase)); //item.Name); _index++; } if (_index == 3) { zr.Append("
          "); _index = 0; } } if (_index < 3 && _index > 0) { //补空 for (var i = _index; i < 3; i++) { zr.Append("
        • "); } zr.Append("
        "); } //读取razor模板[_trendChartfooter.cshtml] var zrs = zr.ToString(); if (zrs.EndsWith("
          ")) zrs = zrs.Remove(zrs.Length - 4, 4); if (viewbag == null) viewbag = new Dictionary(); if (!viewbag.ContainsKey("recommend1")) viewbag.Add("recommend1", CB.Data.RecommendsService.Get(31).Content); if (!viewbag.ContainsKey("recommend2")) viewbag.Add("recommend2", zrs); zr = TemplateEngine.Template.GetTemplateContent("_trendChartfooter", null, viewbag); } return zr.ToString(); } /// /// 临时解决去掉彩种前缀名问题【临时】 /// /// /// public static string RemovePreffixLotName(string lotName) { lotName = lotName.Replace("手机版", ""); var seps = new string[] { "体彩P5", "P3", "排列三", "排列五", "3D", "3d", "体彩排列3", "体彩排列三" }; foreach (var s in seps) { if (lotName.StartsWith(s)) { return lotName.Replace(s, null); } } return lotName; } public static string LotteryNameReplace(string itemName, string lotteryName) { var txtReg = "^" + lotteryName; if (txtReg.Contains("+")) txtReg = txtReg.Replace("+", @"[\+]"); return RemovePreffixLotName(Regex.Replace(itemName.Replace("手机版", ""), txtReg, "", RegexOptions.IgnoreCase)).Trim(); } #endregion } }