using NGTools.Tools; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace NGTools { public partial class frmMain : System.Web.UI.Page { StringBuilder result = new StringBuilder(); StringBuilder sb = new StringBuilder(); DataTable dtMenu = new DataTable(); protected void Page_Load(object sender, EventArgs e) { if (Request["action"] == "getSystemTree") { string json = _GetMainMenu(); Response.Write(json); Response.End(); } if (Request["action"] == "updateLogin") { _updateLogin(); } } private int _updateLogin() { string strUserName = Request.Form["username"]; string strLoginflag = Request.Form["loginflag"]; string strDateTime = Request.Form["datetime"]; string strSQL = "update user set loginflag='" + strLoginflag + "',logintime='" + strDateTime + "' where user_name='" + strUserName + "'"; int num = MySQLHelper.ExecuteNonQuery(strSQL); return num; } #region 根据DataTable生成EasyUI Accord Tree Json树结构 /// /// 根据DataTable生成EasyUI Main Tree Json树结构 /// /// 返回json数据 private string _GetMainMenu() { dtMenu = _GetTable(); DataView dv = dtMenu.DefaultView; if (Session["userName"].ToString() == "廖德云") { dv.RowFilter = "Parent_ID='M00'"; } else { dv.RowFilter = "Parent_ID='M00' and QYFlag='1'"; } DataTable dtFirstMenu = dv.ToTable(); string json = "["; for (int i = 0; i < dtFirstMenu.Rows.Count; i++) { dv.RowFilter = "Parent_ID='" + dtFirstMenu.Rows[i]["Menu_ID"] + "' and QYFlag='1'"; DataTable dtTemp = dv.ToTable(); result = new StringBuilder(); sb = new StringBuilder(); json += "{\"id\":\"" + dtFirstMenu.Rows[i]["Menu_ID"] + "\","; json += "\"iconCls\":\"" + dtFirstMenu.Rows[i]["iconCls"] + "\","; json += "\"text\":\"" + dtFirstMenu.Rows[i]["Menu_Name"] + "\","; if (dtTemp.Rows.Count > 0) { json += "\"children\":" + _GetChildrenTree(dtMenu, dtTemp, "Menu_ID", "Menu_Name", "Menu_URL", "Parent_ID", dtFirstMenu.Rows[i]["Menu_ID"]) + "},"; } else { json += "\"children\":[]" + "},"; } } json = json.TrimEnd(',') + "]"; return json; } /// /// 查询菜单数据库表 /// /// public DataTable _GetTable() { DataTable dtTemp = MySQLHelper.ExecuteDataTable(stringSQL.strSQL_Menu); return dtTemp; } /// /// 根据DataTable生成EasyUI children Tree Json树结构 /// /// 数据源 /// ID列 /// Text列 /// 节点Url /// 关系字段 /// 父ID private string _GetTree(DataTable tabel, string idCol, string txtCol, string url, string rela, object pId) { result.Append(sb.ToString()); sb.Clear(); if (tabel.Rows.Count > 0) { sb.Append("["); string filer = string.Format("{0}='{1}'", rela, pId); DataRow[] rows = tabel.Select(filer); if (rows.Length > 0) { foreach (DataRow row in rows) { DataView dv = tabel.DefaultView; dv.RowFilter = "parent_id='" + row["Menu_ID"].ToString() + "'"; if (dv.ToTable().Rows.Count > 0) { sb.Append("{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"attributes\":\"" + row[url] + "?GNID=" + row["Menu_ID"].ToString() + "\",\"state\":\"closed\"" + ",\"iconCls\":\"" + row["iconCls"] + "\""); } else { sb.Append("{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"attributes\":\"" + row[url] + "?GNID=" + row["Menu_ID"].ToString() + "\",\"state\":\"open\"" + ",\"iconCls\":\"" + row["iconCls"] + "\""); } if (tabel.Select(string.Format("{0}='{1}'", rela, row[idCol])).Length > 0) { sb.Append(",\"children\":"); _GetTree(tabel, idCol, txtCol, url, rela, row[idCol]); result.Append(sb.ToString()); sb.Clear(); } result.Append(sb.ToString()); sb.Clear(); sb.Append("},"); } sb = sb.Remove(sb.Length - 1, 1); } sb.Append("]"); result.Append(sb.ToString()); sb.Clear(); } return result.ToString(); } private int getMenuEnable(string strMenu) { if (Session["userName"].ToString() == "廖德云") { return 1; } if (Session["regDateTime"].ToString() != "") { DateTime dtReg = DateTime.Parse(Session["regDateTime"].ToString()); if (dtReg.AddDays(10) >= DateTime.Now) { return 1; } } DataTable dtBuyMenu_ID = MySQLHelper.ExecuteDataTable("select * from buy_total where user_id='" + Session["userAccount"].ToString() + "'"); DataRow[] dr = dtBuyMenu_ID.Select("Menu_ID='" + strMenu + "'"); if (dr.Length > 0) { if (dr[0]["Buy_Type"].ToString() == "无限制") { return 1; } else { if (dr[0]["remaintimes"].ToString() == "" || dr[0]["remaintimes"].ToString() == "0") { if (dr[0]["endDate"].ToString() == "") { return 0; } else { DateTime dtEndDate = DateTime.Parse(dr[0]["endDate"].ToString()); if (dtEndDate > DateTime.Now) { return 1; } else { return 0; } } } else { return 1; } } } else { return 0; } } /// /// 根据DataTable生成EasyUI children Tree Json树结构 /// /// 数据源 /// ID列 /// Text列 /// 节点Url /// 关系字段 /// 父ID private string _GetChildrenTree(DataTable dtMain, DataTable tabel, string idCol, string txtCol, string url, string rela, object pId) { result.Append(sb.ToString()); sb.Clear(); sb.Append("["); string filer = string.Format("{0}='{1}'", rela, pId); DataRow[] rows = tabel.Select(filer); if (rows.Length > 0) { foreach (DataRow row in rows) { DataView dv = dtMain.DefaultView; dv.RowFilter = "parent_id='" + row["Menu_ID"].ToString() + "'"; if (row["Menu_ID"].ToString() == "M1001" || row["Menu_ID"].ToString() == "M1005" || row["Menu_ID"].ToString() == "M1006") { if (Session["userName"].ToString() == "廖德云")//只有开发人员才有这个功能 { if (dv.ToTable().Rows.Count > 0) { if (row[url].ToString() == "") { sb.Append("{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"attributes\":\"" + row[url] + "\",\"state\":\"closed\"" + ",\"iconCls\":\"" + row["iconCls"] + "\",\"MDJG\":\"" + row["MDJG"] + "\",\"CSJG\":\"" + row["CSJG"] + "\",\"BNJG\":\"" + row["BNJG"] + "\""); } else { sb.Append("{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"attributes\":\"" + row[url] + "?GNID=" + row["Menu_ID"].ToString() + "&enable=" + getMenuEnable(row["Menu_ID"].ToString()).ToString() + "\",\"state\":\"closed\"" + ",\"iconCls\":\"" + row["iconCls"] + "\",\"MDJG\":\"" + row["MDJG"] + "\",\"CSJG\":\"" + row["CSJG"] + "\",\"BNJG\":\"" + row["BNJG"] + "\""); } } else { if (row[url].ToString() == "") { sb.Append("{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"attributes\":\"" + row[url] + "\",\"state\":\"open\"" + ",\"iconCls\":\"" + row["iconCls"] + "\",\"MDJG\":\"" + row["MDJG"] + "\",\"CSJG\":\"" + row["CSJG"] + "\",\"BNJG\":\"" + row["BNJG"] + "\""); } else { sb.Append("{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"attributes\":\"" + row[url] + "?GNID=" + row["Menu_ID"].ToString() + "&enable=" + getMenuEnable(row["Menu_ID"].ToString()).ToString() + "\",\"state\":\"open\"" + ",\"iconCls\":\"" + row["iconCls"] + "\",\"MDJG\":\"" + row["MDJG"] + "\",\"CSJG\":\"" + row["CSJG"] + "\",\"BNJG\":\"" + row["BNJG"] + "\""); } } } else { continue; } } else { //从购买的模块中加载 如果没有 则继续下一个 if (dv.ToTable().Rows.Count > 0) { if (row[url].ToString() == "") { sb.Append("{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"attributes\":\"" + row[url] + "\",\"state\":\"closed\"" + ",\"iconCls\":\"" + row["iconCls"] + "\",\"MDJG\":\"" + row["MDJG"] + "\",\"CSJG\":\"" + row["CSJG"] + "\",\"BNJG\":\"" + row["BNJG"] + "\""); } else { sb.Append("{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"attributes\":\"" + row[url] + "?GNID=" + row["Menu_ID"].ToString() + "&enable=" + getMenuEnable(row["Menu_ID"].ToString()).ToString() + "\",\"state\":\"closed\"" + ",\"iconCls\":\"" + row["iconCls"] + "\",\"MDJG\":\"" + row["MDJG"] + "\",\"CSJG\":\"" + row["CSJG"] + "\",\"BNJG\":\"" + row["BNJG"] + "\""); } } else { if (row[url].ToString() == "") { sb.Append("{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"attributes\":\"" + row[url] + "\",\"state\":\"open\"" + ",\"iconCls\":\"" + row["iconCls"] + "\",\"MDJG\":\"" + row["MDJG"] + "\",\"CSJG\":\"" + row["CSJG"] + "\",\"BNJG\":\"" + row["BNJG"] + "\""); } else { sb.Append("{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"attributes\":\"" + row[url] + "?GNID=" + row["Menu_ID"].ToString() + "&enable=" + getMenuEnable(row["Menu_ID"].ToString()).ToString() + "\",\"state\":\"open\"" + ",\"iconCls\":\"" + row["iconCls"] + "\",\"MDJG\":\"" + row["MDJG"] + "\",\"CSJG\":\"" + row["CSJG"] + "\",\"BNJG\":\"" + row["BNJG"] + "\""); } } } if (dtMain.Select(string.Format("{0}='{1}'", rela, row[idCol])).Length > 0) { DataView dvTemp = dtMenu.DefaultView; dvTemp.RowFilter = "parent_id='" + row["Menu_ID"].ToString() + "'"; tabel = dvTemp.ToTable(); sb.Append(",\"children\":"); _GetChildrenTree(dtMain, tabel, idCol, txtCol, url, rela, row[idCol]); result.Append(sb.ToString()); sb.Clear(); } result.Append(sb.ToString()); sb.Clear(); sb.Append("},"); } sb = sb.Remove(sb.Length - 1, 1); } sb.Append("]"); result.Append(sb.ToString()); sb.Clear(); return result.ToString(); } #endregion ///      /// 获取web客户端ip     ///      ///  public static string GetWebClientIp() { string userIP = "未获取用户IP"; try { if (System.Web.HttpContext.Current == null || System.Web.HttpContext.Current.Request == null || System.Web.HttpContext.Current.Request.ServerVariables == null) return ""; string CustomerIP = ""; //CDN加速后取到的IP simone 090805 CustomerIP = System.Web.HttpContext.Current.Request.Headers["Cdn-Src-Ip"]; if (!string.IsNullOrEmpty(CustomerIP)) { return CustomerIP; } CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (!String.IsNullOrEmpty(CustomerIP)) return CustomerIP; if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null) { CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (CustomerIP == null) CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; } else { CustomerIP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; } if (string.Compare(CustomerIP, "unknown", true) == 0) return System.Web.HttpContext.Current.Request.UserHostAddress; return CustomerIP; } catch { } return userIP; }   } }