using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.Text; using System.Collections; using System.Reflection; using System.Web.Script.Serialization; using FangYar.Model.TBL; namespace FangYar.WebUI.ashx { /// /// BaseMenuHandler 的摘要说明 /// public class BaseMenuHandler : IHttpHandler { private FangYar.BLL.TBL.BaseMenuBLL bll = new BLL.TBL.BaseMenuBLL(); 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 "menuList": returnstr = GetmenuList(context); break; case "List": returnstr = GetModel(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; } context.Response.Write(returnstr); } //查询 private string GetModel(HttpContext context) { string returnstr = ""; try { string keyword = context.Request.Params["keywords"]; string page = context.Request.Params["page"]; string limit = context.Request.Params["limit"]; int pageIndex = 1; int pageSize = 10;// if (!string.IsNullOrEmpty(page)) { pageIndex = int.Parse(page); } if (!string.IsNullOrEmpty(limit)) { pageSize = int.Parse(limit); } string where = null; if (!string.IsNullOrEmpty(keyword)) { where = "MENU_CODE like '" + keyword + "' or MENU_TITLE like '" + keyword + "' "; } 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)) { 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 menuCode = context.Request.Params["menuCode"]; 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"]; if (string.IsNullOrEmpty(menuCode)) { msg = "菜单标示CODE不能为空"; } else if (string.IsNullOrEmpty(menuTitle)) { msg = "菜单名称不能为空"; } else { FangYar.Model.TBL.TBL_BASE_MENU_Model model = new Model.TBL.TBL_BASE_MENU_Model(); model.ID = Guid.NewGuid().ToString("N"); model.MENU_CODE = menuCode; 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 = menuOrder; 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(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string ID = context.Request.Params["ID"]; string menuCode = context.Request.Params["menuCode"]; 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"]; FangYar.Model.TBL.TBL_BASE_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 = menuOrder; 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 menuType = context.Request.Params["menuFlag"]; FangYar.Model.TBL.TBL_BASE_MENU_Model model = bll.GetModelByID(id); if (model == null) { msg = "该记录不存在"; } else { if (menuType == "0") { model.MENU_FLAG = "1"; } else if (menuType == "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 GetmenuList(HttpContext context) { string teturnstr = ""; try { FangYar.Model.BaseUserModel model = new Model.BaseUserModel(); List list = bll.QueryWhere(null); List listParent = new List(); for (int i = 0; i < list.Count; i++) { if (list[i].MENU_PARENT == "-1") { MenuJsonModel returnobj = new MenuJsonModel(); returnobj.title = list[i].MENU_TITLE; returnobj.icon = "iconfont " + list[i].MENU_ICON; returnobj.href = ""; returnobj.spread = true; returnobj.id = list[i].ID; returnobj.order = int.Parse(list[i].MENU_ORDER); listParent.Add(returnobj); } } listParent = listParent.OrderBy(a => a.order).ToList();//排序 for (int j = 0; j < listParent.Count; j++) { listParent[j].children = new List(); for (int k = 0; k < list.Count; k++) { if (list[k].MENU_PARENT == listParent[j].id) { MenuJsonModel returnChild = new MenuJsonModel(); returnChild.title = list[k].MENU_TITLE; returnChild.icon = "iconfont " + list[k].MENU_ICON; returnChild.href = list[k].MENU_URL; returnChild.spread = false; returnChild.id = list[k].ID; returnChild.order = int.Parse(list[k].MENU_ORDER); listParent[j].children.Add(returnChild); } } listParent[j].children.OrderBy(a => a.order).ToList(); } teturnstr = tojson(listParent); } catch (Exception e) { // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "基础菜单请求", "数据库查询生成菜单异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "基础菜单请求", "数据库查询生成菜单"); return teturnstr; } //转json public string tojson(List obj) { try { StringBuilder stringBuilder = new StringBuilder(); JavaScriptSerializer json = new JavaScriptSerializer(); json.Serialize(obj, stringBuilder); return stringBuilder.ToString(); } catch (Exception e) { string str = "基础菜单请求—转json异常:" + e; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "BaseMenuHandler" }); } return "{}"; } public bool IsReusable { get { return false; } } } }