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;
}
}
}