393 lines
16 KiB
C#
393 lines
16 KiB
C#
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树结构
|
||
/// <summary>
|
||
/// 根据DataTable生成EasyUI Main Tree Json树结构
|
||
/// </summary>
|
||
/// <returns>返回json数据</returns>
|
||
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;
|
||
}
|
||
/// <summary>
|
||
/// 查询菜单数据库表
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public DataTable _GetTable()
|
||
{
|
||
DataTable dtTemp = MySQLHelper.ExecuteDataTable(stringSQL.strSQL_Menu);
|
||
return dtTemp;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 根据DataTable生成EasyUI children Tree Json树结构
|
||
/// </summary>
|
||
/// <param name="tabel">数据源</param>
|
||
/// <param name="idCol">ID列</param>
|
||
/// <param name="txtCol">Text列</param>
|
||
/// <param name="url">节点Url</param>
|
||
/// <param name="rela">关系字段</param>
|
||
/// <param name="pId">父ID</param>
|
||
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;
|
||
}
|
||
|
||
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 根据DataTable生成EasyUI children Tree Json树结构
|
||
/// </summary>
|
||
/// <param name="tabel">数据源</param>
|
||
/// <param name="idCol">ID列</param>
|
||
/// <param name="txtCol">Text列</param>
|
||
/// <param name="url">节点Url</param>
|
||
/// <param name="rela">关系字段</param>
|
||
/// <param name="pId">父ID</param>
|
||
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
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 获取web客户端ip
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
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;
|
||
|
||
}
|
||
|
||
|
||
}
|
||
} |