using System; using System.Collections.Generic; using System.Linq; using System.Web; using FangYar.Model.TBL; using System.Text; using System.Web.Script.Serialization; namespace FangYar.WebUI.ashx { /// /// SysMenuHandler 的摘要说明 /// public class SysMenuHandler : IHttpHandler { private FangYar.BLL.TBL.SysMenuBLL bll = new BLL.TBL.SysMenuBLL(); private FangYar.BLL.ToTree_BLL blltree = new BLL.ToTree_BLL(); public void ProcessRequest(HttpContext context) { // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Other, "基础菜单操作请求", ""); context.Response.ContentType = "text/plain"; string action = context.Request.Params["Action"]; string returnstr = ""; switch (action) { case "List": returnstr = GetModelList(context); break; case "Del": returnstr = DelModel(context); break; case "Add": returnstr = AddModel(context); break; case "Edit": returnstr = EditModel(context); break; case "EditFlag": returnstr = EditFlag(context); break; case "getMenuTree": returnstr = getMenuTree(context); break; case "getMenuTitile": returnstr = getMenuTitile(context); break; // 权限控制下的方法 case "List_Authoritytype": returnstr = GetModelList_Authoritytype(context); break; case "getMenuTree_Authoritytype": returnstr = getMenuTree_Authoritytype(context); break; case "Add_Authoritytype": returnstr = AddModel_Authoritytype(context); break; case "Edit_Authoritytype": returnstr = EditModel_Authoritytype(context); break; } context.Response.Write(returnstr); } //查询 private string GetModelList(HttpContext context) { string returnstr = ""; try { string keywords = context.Request.Params["keywords"]; string limit = context.Request.Params["limit"]; string page = context.Request.Params["page"]; string menuid = context.Request.Params["menuid"]; //点击菜单ID int pageIndex = 1; int pageSize = 10; if (!string.IsNullOrEmpty(limit)) { pageIndex = int.Parse(page); } if (!string.IsNullOrEmpty(page)) { pageSize = int.Parse(limit); } string where = " 1=1 "; //搜索 if (!string.IsNullOrEmpty(keywords)) { where += " and (APP_ID like'%" + keywords + "%' or MENU_TITLE like'%" + keywords + "%') "; } //菜单树点击 if (!string.IsNullOrEmpty(menuid)) { where += " and( ID like'%" + menuid.Replace(",", "") + "%' or MENU_PARENT like'%" + menuid.Replace(",", "") + "%') "; } where += "order by menu_order "; returnstr = "{\"code\":0,\"msg\":\"\","; int count = bll.Count(where); returnstr += "\"count\":" + count + ",\"data\":"; if (count == 0) { returnstr += "[]"; } else { List list = bll.QueryList(pageIndex, pageSize, where, null); returnstr += FangYar.Common.JsonHelper.ToJson(list); } returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "基础菜单操作请求", "查询异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "基础菜单操作请求", "查询"); return returnstr; } //删除 private string DelModel(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string UIDList = context.Request.Params["UIDList"]; UIDList = UIDList.Replace(",", "','"); if (bll.Delete(UIDList)) { bll.DeleteRoleMenu(UIDList); msg = "删除成功!"; code = 1; } else { msg = "删除失败!"; } } catch (Exception e) { msg = "删除失败!"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "基础菜单操作请求", "删除异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\"}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Delete, "基础菜单操作请求", "删除"); return returnstr; } //添加 private string AddModel(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string appID = context.Request.Params["appID"]; string menuTitle = context.Request.Params["menuTitle"]; string menuIcon = context.Request.Params["menuIcon"]; string menuUrl = context.Request.Params["menuUrl"]; string menuParent = context.Request.Params["menuParent"]; string menuType = context.Request.Params["menuType"];//菜单类型 string menuFlag = context.Request.Params["menuFlag"];//菜单状态 string menuLevel = context.Request.Params["menuLevel"]; string menuOrder = context.Request.Params["menuOrder"]; string menuMap = context.Request.Params["needmap"]; string menuAction = context.Request.Params["menuAction"]; string authoritytype = context.Request.Params["authoritytype"]; string org_id = context.Request.Params["org_id"]; if (string.IsNullOrEmpty(appID)) { msg = "所属应用不能为空"; } else if (string.IsNullOrEmpty(menuTitle)) { msg = "菜单名称不能为空"; } else { FangYar.Model.TBL.TBL_SYS_MENU_Model model = new Model.TBL.TBL_SYS_MENU_Model(); model.ID = Guid.NewGuid().ToString("N"); model.APP_ID = appID; model.MENU_TITLE = menuTitle; model.MENU_ICON = menuIcon; model.MENU_URL = menuUrl; model.MENU_PARENT = menuParent; model.MENU_TYPE = menuType; model.MENU_FLAG = menuFlag; model.MENU_LEVEL = menuLevel; model.MENU_ORDER = int.Parse(menuOrder); model.MENU_MAP = menuMap; model.MENU_ACTION = menuAction; model.AUTHORITYTYPE = authoritytype; model.ORG_ID = org_id; if (bll.Add(model)) { msg = "添加成功!"; code = 1; } else { msg = "添加失败!"; } } } catch (Exception ex) { msg = "添加失败!"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "基础菜单操作请求", "添加异常:" + ex); } returnstr = "{\"msg\":\"" + msg + "\",\"code\":" + code + "}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Add, "基础菜单操作请求", "添加"); return returnstr; } //修改 private string EditModel(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string ID = context.Request.Params["ID"]; string appID = context.Request.Params["appID"]; string menuTitle = context.Request.Params["menuTitle"]; string menuIcon = context.Request.Params["menuIcon"]; string menuUrl = context.Request.Params["menuUrl"]; string menuParent = context.Request.Params["menuParent"]; string menuType = context.Request.Params["menuType"]; string menuFlag = context.Request.Params["menuFlag"]; string menuLevel = context.Request.Params["menuLevel"]; string menuOrder = context.Request.Params["menuOrder"]; string menuMap = context.Request.Params["needmap"]; string menuAction = context.Request.Params["menuAction"]; string authoritytype = context.Request.Params["authoritytype"]; string org_id = context.Request.Params["org_id"]; FangYar.Model.TBL.TBL_SYS_MENU_Model model = bll.GetModelByID(ID); if (model == null) { msg = "应用记录不存在!"; } else { model.MENU_TITLE = menuTitle; model.MENU_ICON = menuIcon; model.MENU_URL = menuUrl; model.MENU_PARENT = menuParent; model.MENU_TYPE = menuType; model.MENU_FLAG = menuFlag; model.MENU_LEVEL = menuLevel; model.MENU_ORDER = int.Parse(menuOrder); model.MENU_MAP = menuMap; model.MENU_ACTION = menuAction; model.APP_ID = appID; model.AUTHORITYTYPE = authoritytype; model.ORG_ID = org_id; if (bll.Edit(model)) { msg = "修改成功!"; code = 1; } else { msg = "修改失败"; } } } catch (Exception e) { msg = "修改失败!"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "基础菜单操作请求", "修改异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\"}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Update, "基础菜单操作请求", "修改"); return returnstr; } //菜单状态,禁用与启用 private string EditFlag(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string id = context.Request.Params["ID"]; string menuFlag = context.Request.Params["menuFlag"]; FangYar.Model.TBL.TBL_SYS_MENU_Model model = bll.GetModelByID(id); if (model == null) { msg = "该记录不存在"; } else { if (menuFlag == "0") { model.MENU_FLAG = "1"; } else if (menuFlag == "1") { model.MENU_FLAG = "0"; } if (bll.Edit(model)) { msg = "修改成功!"; code = 1; } else { msg = "修改失败!"; } } } catch (Exception e) { msg = "修改失败!"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "基础菜单操作请求", "菜单状态,禁用与启用异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\"}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Update, "基础菜单操作请求", "菜单状态,禁用与启用"); return returnstr; } //菜单树 private string getMenuTree(HttpContext context) { string returnstr = ""; try { string treeid = context.Request.Params["treeid"]; string where = null; if (!string.IsNullOrEmpty(treeid)) { where = " ID = " + treeid; } List list = new List(); list = blltree.GetTree("ID", "MENU_PARENT", " CONCAT(MENU_TITLE, IFNULL(CONCAT('(',MENU_ACTION,')'),'') ) ", "TBL_SYS_MENU", where, list); returnstr = "{\"data\":"; if (list.Count == 0) { returnstr += "[]"; } else { returnstr += FangYar.Common.JsonHelper.ToJson(list); } returnstr += "}"; } catch (Exception e) { returnstr = "{\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "基础菜单操作请求", "菜单树异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "基础菜单操作请求", "菜单树"); return returnstr; } //查询一条记录 private string getMenuTitile(HttpContext context) { string returnstr = ""; try { string ID = context.Request.Params["ID"]; int count = bll.Count("ID ='" + ID + "'"); if (count > 0) { returnstr = "{\"code\":1,\"data\":"; FangYar.Model.TBL.TBL_SYS_MENU_Model model = bll.GetModelByID(ID); returnstr += FangYar.Common.JsonHelper.ToJson(model); returnstr += "}"; } else { returnstr = "{\"code\":0,\"data\":[]}"; } } catch (Exception e) { returnstr = "{\"code\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "基础菜单操作请求", "查询一条记录异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "基础菜单操作请求", "查询一条记录"); return returnstr; } //-----------------------权限下的方法------------------------ //查询 private string GetModelList_Authoritytype(HttpContext context) { string returnstr = ""; try { string keywords = context.Request.Params["keywords"]; string limit = context.Request.Params["limit"]; string page = context.Request.Params["page"]; string menuid = context.Request.Params["menuid"]; //点击菜单ID string authoritytype = context.Request.Params["authoritytype"]; string org_id = context.Request.Params["org_id"]; int pageIndex = 1; int pageSize = 10; if (!string.IsNullOrEmpty(limit)) { pageIndex = int.Parse(page); } if (!string.IsNullOrEmpty(page)) { pageSize = int.Parse(limit); } string where = " 1=1 "; //搜索 if (!string.IsNullOrEmpty(keywords)) { where += " and (APP_ID like'%" + keywords + "%' or MENU_TITLE like'%" + keywords + "%') "; } //菜单树点击 if (!string.IsNullOrEmpty(menuid)) { where += " and( ID like'%" + menuid.Replace(",", "") + "%' or MENU_PARENT like'%" + menuid.Replace(",", "") + "%') "; } if (!string.IsNullOrEmpty(authoritytype)) { where += " and AUTHORITYTYPE ='" + authoritytype + "'"; } if (!string.IsNullOrEmpty(org_id)) { where += " and ORG_ID='" + org_id + "' "; } where += "order by menu_order "; returnstr = "{\"code\":0,\"msg\":\"\","; int count = bll.Count(where); returnstr += "\"count\":" + count + ",\"data\":"; if (count == 0) { returnstr += "[]"; } else { List list = bll.QueryList(pageIndex, pageSize, where, null); returnstr += FangYar.Common.JsonHelper.ToJson(list); } returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "基础菜单操作请求", "查询异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "基础菜单操作请求", "查询"); return returnstr; } //菜单树 private string getMenuTree_Authoritytype(HttpContext context) { string returnstr = ""; try { string treeid = context.Request.Params["treeid"]; string authoritytype = context.Request.Params["authoritytype"]; string org_id = context.Request.Params["org_id"]; string where = " (( 1=1 "; if (!string.IsNullOrEmpty(treeid)) { where += " and ID = " + treeid; } if (!string.IsNullOrEmpty(authoritytype)) { where += " and AUTHORITYTYPE ='" + authoritytype + "'"; } if (!string.IsNullOrEmpty(org_id)) { where += " and ORG_ID='" + org_id + "' "; } where += " ) "; where += " or AUTHORITYTYPE='0') "; //string where = null; //if (!string.IsNullOrEmpty(treeid)) //{ // where += " ID = " + treeid; //} List list = new List(); list = blltree.GetTree("ID", "MENU_PARENT", " CONCAT(MENU_TITLE, IFNULL(CONCAT('(',MENU_ACTION,')'),'') ) ", "TBL_SYS_MENU", where, list); returnstr = "{\"data\":"; if (list.Count == 0) { returnstr += "[]"; } else { returnstr += FangYar.Common.JsonHelper.ToJson(list); } returnstr += "}"; } catch (Exception e) { returnstr = "{\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "基础菜单操作请求", "菜单树异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "基础菜单操作请求", "菜单树"); return returnstr; } //添加 private string AddModel_Authoritytype(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string appID = context.Request.Params["appID"]; string menuTitle = context.Request.Params["menuTitle"]; string menuIcon = context.Request.Params["menuIcon"]; string menuUrl = context.Request.Params["menuUrl"]; string menuParent = context.Request.Params["menuParent"]; string menuType = context.Request.Params["menuType"];//菜单类型 string menuFlag = context.Request.Params["menuFlag"];//菜单状态 string menuLevel = context.Request.Params["menuLevel"]; string menuOrder = context.Request.Params["menuOrder"]; string menuMap = context.Request.Params["needmap"]; string menuAction = context.Request.Params["menuAction"]; string authoritytype = context.Request.Params["authoritytype"]; string org_id = context.Request.Params["org_id"]; if (string.IsNullOrEmpty(appID)) { msg = "所属应用不能为空"; } else if (string.IsNullOrEmpty(menuTitle)) { msg = "菜单名称不能为空"; } else { FangYar.Model.TBL.TBL_SYS_MENU_Model model = new Model.TBL.TBL_SYS_MENU_Model(); model.ID = Guid.NewGuid().ToString("N"); model.APP_ID = appID; model.MENU_TITLE = menuTitle; model.MENU_ICON = menuIcon; model.MENU_URL = menuUrl; model.MENU_PARENT = menuParent; model.MENU_TYPE = menuType; model.MENU_FLAG = menuFlag; model.MENU_LEVEL = menuLevel; model.MENU_ORDER = int.Parse(menuOrder); model.MENU_MAP = menuMap; model.MENU_ACTION = menuAction; model.AUTHORITYTYPE = authoritytype; model.ORG_ID = org_id; if (bll.Add(model)) { msg = "添加成功!"; code = 1; } else { msg = "添加失败!"; } } } catch (Exception e) { msg = "添加失败!"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "基础菜单操作请求", "添加异常:" + e); } returnstr = "{\"msg\":\"" + msg + "\",\"code\":" + code + "}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Add, "基础菜单操作请求", "添加"); return returnstr; } //修改 private string EditModel_Authoritytype(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string ID = context.Request.Params["ID"]; string appID = context.Request.Params["appID"]; string menuTitle = context.Request.Params["menuTitle"]; string menuIcon = context.Request.Params["menuIcon"]; string menuUrl = context.Request.Params["menuUrl"]; string menuParent = context.Request.Params["menuParent"]; string menuType = context.Request.Params["menuType"]; string menuFlag = context.Request.Params["menuFlag"]; string menuLevel = context.Request.Params["menuLevel"]; string menuOrder = context.Request.Params["menuOrder"]; string menuMap = context.Request.Params["needmap"]; string menuAction = context.Request.Params["menuAction"]; string authoritytype = context.Request.Params["authoritytype"]; string org_id = context.Request.Params["org_id"]; FangYar.Model.TBL.TBL_SYS_MENU_Model model = bll.GetModelByID(ID); if (model == null) { msg = "应用记录不存在!"; } else { model.MENU_TITLE = menuTitle; model.MENU_ICON = menuIcon; model.MENU_URL = menuUrl; model.MENU_PARENT = menuParent; model.MENU_TYPE = menuType; model.MENU_FLAG = menuFlag; model.MENU_LEVEL = menuLevel; model.MENU_ORDER = int.Parse(menuOrder); model.MENU_MAP = menuMap; model.MENU_ACTION = menuAction; model.APP_ID = appID; model.AUTHORITYTYPE = authoritytype; model.ORG_ID = org_id; if (bll.Edit(model)) { msg = "修改成功!"; code = 1; } else { msg = "修改失败"; } } } catch (Exception e) { msg = "修改失败!"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "基础菜单操作请求", "修改异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\"}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Update, "基础菜单操作请求", "修改"); return returnstr; } public bool IsReusable { get { return false; } } } }