<%@ WebHandler Language="C#" Class="function" %> using System; using System.Web; using System.Web.SessionState; using System.Collections.Generic; using System.Collections.Specialized; using System.Data; using Curtain.DataAccess; using DK.XuWei.WebMes; /// /// TP_SYS_FUNCTION /// xuwei create 2020-01-02 /// public class function : IHttpHandler, IReadOnlySessionState { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; if (mes.LoginCheck() && context.Request["m"] is object) { Button b = new Button(); if(mes.RightCheck("系统管理")) { b.btnIndex = true; b.btnInsert = true; b.btnInsertBatch = false; b.btnCopy = true; b.btnUpdate = true; b.btnDelete = true; b.btnCancel = false; b.btnSearch = true; b.btnDetail = true; b.btnCheckbox = true; b.btnExport = false; b.btnReload = true; }; switch (context.Request["m"].ToString().ToLower()) { case "b": { //按钮 context.Response.Write(new JsonResult(b).ToJson()); break; } case "a": { //添加 if (b.btnDetail && context.Request["id"].ToString() != "") context.Response.Write(detail()); else { xRecord r = new xRecord(); context.Response.Write(new JsonResult(r).ToJson()); } break; } case "s": { //搜索 if (b.btnIndex) context.Response.Write(search(context.Request.Form)); else context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson()); break; } case "t": { //详细 if (b.btnDetail) context.Response.Write(detail()); else context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson()); break; } case "i": { //插入 if (b.btnInsert) context.Response.Write(insert(context.Request.Form)); else context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson()); break; } case "u": { //修改 if (b.btnUpdate) context.Response.Write(update(context.Request.Form)); else context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson()); break; } case "d": { //删除 if (b.btnDelete) context.Response.Write(delete()); else context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson()); break; } case "e": { //导出 if (b.btnExport) { context.Response.Write(export()); } else { context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson()); } break; } default: { break; } } } else { context.Response.Write(new JsonResult(JsonStatus.loginError).ToJson()); } } /// /// TP_SYS_FUNCTION 查询 /// /// json private string search(NameValueCollection form) { using(IDataAccess conn=DataAccess.Create()) { int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1; int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10; string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "FUNCTIONLEVEL"; string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : ""; string sqlStr = @" SELECT m.FUNCTIONCODE, m.URL, m.FUNCTIONNAME, m.FULLNAME, m.FUNCTIONFLAG, m.FUNCTIONBUTTONFLAG, m.REMARK, m.FORMNAME, m.BUTTONNAME, m.FUNCTIONLEVEL, m.FUNCTIONPROGRAM, m.IS_PDA, m.IS_PC, m.IS_WEB, m.FUNCTIONCODE AS SID FROM TP_SYS_FUNCTION m WHERE 1 = 1 "; List sqlPara = new List(); if(!string.IsNullOrEmpty(form["FUNCTIONCODE"])) { sqlStr += " AND m.FUNCTIONCODE = @FUNCTIONCODE@ "; sqlPara.Add(new CDAParameter("FUNCTIONCODE", form["FUNCTIONCODE"].ToString())); } if(!string.IsNullOrEmpty(form["URL"])) { sqlStr += " AND INSTR( m.URL, @URL@ ) > 0 "; sqlPara.Add(new CDAParameter("URL", form["URL"].ToString())); } if(!string.IsNullOrEmpty(form["FUNCTIONNAME"])) { sqlStr += " AND INSTR( m.FUNCTIONNAME, @FUNCTIONNAME@ ) > 0 "; sqlPara.Add(new CDAParameter("FUNCTIONNAME", form["FUNCTIONNAME"].ToString())); } if(!string.IsNullOrEmpty(form["FULLNAME"])) { sqlStr += " AND INSTR( m.FULLNAME, @FULLNAME@ ) > 0 "; sqlPara.Add(new CDAParameter("FULLNAME", form["FULLNAME"].ToString())); } if(!string.IsNullOrEmpty(form["FUNCTIONFLAG"])) { sqlStr += " AND INSTR( m.FUNCTIONFLAG, @FUNCTIONFLAG@ ) > 0 "; sqlPara.Add(new CDAParameter("FUNCTIONFLAG", form["FUNCTIONFLAG"].ToString())); } if(!string.IsNullOrEmpty(form["FUNCTIONBUTTONFLAG"])) { sqlStr += " AND INSTR( m.FUNCTIONBUTTONFLAG, @FUNCTIONBUTTONFLAG@ ) > 0 "; sqlPara.Add(new CDAParameter("FUNCTIONBUTTONFLAG", form["FUNCTIONBUTTONFLAG"].ToString())); } if(!string.IsNullOrEmpty(form["REMARK"])) { sqlStr += " AND INSTR( m.REMARK, @REMARK@ ) > 0 "; sqlPara.Add(new CDAParameter("REMARK", form["REMARK"].ToString())); } if(!string.IsNullOrEmpty(form["FORMNAME"])) { sqlStr += " AND INSTR( m.FORMNAME, @FORMNAME@ ) > 0 "; sqlPara.Add(new CDAParameter("FORMNAME", form["FORMNAME"].ToString())); } if(!string.IsNullOrEmpty(form["BUTTONNAME"])) { sqlStr += " AND INSTR( m.BUTTONNAME, @BUTTONNAME@ ) > 0 "; sqlPara.Add(new CDAParameter("BUTTONNAME", form["BUTTONNAME"].ToString())); } if(!string.IsNullOrEmpty(form["FUNCTIONLEVEL"])) { sqlStr += " AND INSTR( m.FUNCTIONLEVEL, @FUNCTIONLEVEL@ ) > 0 "; sqlPara.Add(new CDAParameter("FUNCTIONLEVEL", form["FUNCTIONLEVEL"].ToString())); } if(!string.IsNullOrEmpty(form["FUNCTIONPROGRAM"])) { sqlStr += " AND INSTR( m.FUNCTIONPROGRAM, @FUNCTIONPROGRAM@ ) > 0 "; sqlPara.Add(new CDAParameter("FUNCTIONPROGRAM", form["FUNCTIONPROGRAM"].ToString())); } if(!string.IsNullOrEmpty(form["IS_PDA"])) { sqlStr += " AND INSTR( m.IS_PDA, @IS_PDA@ ) > 0 "; sqlPara.Add(new CDAParameter("IS_PDA", form["IS_PDA"].ToString())); } if(!string.IsNullOrEmpty(form["IS_PC"])) { sqlStr += " AND INSTR( m.IS_PC, @IS_PC@ ) > 0 "; sqlPara.Add(new CDAParameter("IS_PC", form["IS_PC"].ToString())); } if(!string.IsNullOrEmpty(form["IS_WEB"])) { sqlStr += " AND INSTR( m.IS_WEB, @IS_WEB@ ) > 0 "; sqlPara.Add(new CDAParameter("IS_WEB", form["IS_WEB"].ToString())); } if(sort != "") { sqlStr += " ORDER BY " + sort + " " + order; } int total = 0; DataTable dt = conn.SelectPages(page, rows,out total, sqlStr, sqlPara.ToArray()); return new JsonResult(dt) { total = total}.ToJson(); } } /// /// 详细 TP_SYS_FUNCTION /// /// json private string detail() { using(IDataAccess conn= DataAccess.Create()) { DataTable dt = conn.ExecuteDatatable(@" SELECT m.URL, m.FUNCTIONNAME, m.FULLNAME, m.FUNCTIONFLAG, m.FUNCTIONBUTTONFLAG, m.REMARK, m.FORMNAME, m.BUTTONNAME, m.FUNCTIONLEVEL, m.FUNCTIONPROGRAM, m.IS_PDA, m.IS_PC, m.IS_WEB, m.FUNCTIONCODE FROM TP_SYS_FUNCTION m WHERE m.FUNCTIONCODE = @FUNCTIONCODE@ ", new CDAParameter("FUNCTIONCODE",HttpContext.Current.Request["id"].ToString()) ); return new JsonResult(dt).ToJson(); } } /// /// 插入 TP_SYS_FUNCTION /// /// json private string insert(NameValueCollection form) { using(IDataAccess conn= DataAccess.Create()) { //string primaryKey = conn.GetSequenceNextval("SEQ_TP_SYS_FUNCTION").ToString(); int result = conn.ExecuteNonQuery(@" INSERT INTO TP_SYS_FUNCTION ( URL, FUNCTIONNAME, FULLNAME, FUNCTIONFLAG, FUNCTIONBUTTONFLAG, REMARK, FORMNAME, BUTTONNAME, FUNCTIONLEVEL, FUNCTIONPROGRAM, IS_PDA, IS_PC, IS_WEB, FUNCTIONCODE ) VALUES ( @URL@, @FUNCTIONNAME@, @FULLNAME@, @FUNCTIONFLAG@, @FUNCTIONBUTTONFLAG@, @REMARK@, @FORMNAME@, @BUTTONNAME@, @FUNCTIONLEVEL@, @FUNCTIONPROGRAM@, @IS_PDA@, @IS_PC@, @IS_WEB@, @FUNCTIONCODE@ ) ", new CDAParameter("URL",form["URL"].ToString()), new CDAParameter("FUNCTIONNAME",form["FUNCTIONNAME"].ToString()), new CDAParameter("FULLNAME",form["FULLNAME"].ToString()), new CDAParameter("FUNCTIONFLAG",form["FUNCTIONFLAG"].ToString()), new CDAParameter("FUNCTIONBUTTONFLAG",form["FUNCTIONBUTTONFLAG"].ToString()), new CDAParameter("REMARK",form["REMARK"].ToString()), new CDAParameter("FORMNAME",form["FORMNAME"].ToString()), new CDAParameter("BUTTONNAME",form["BUTTONNAME"].ToString()), new CDAParameter("FUNCTIONLEVEL",form["FUNCTIONLEVEL"].ToString()), new CDAParameter("FUNCTIONPROGRAM",form["FUNCTIONPROGRAM"].ToString()), new CDAParameter("IS_PDA",form["IS_PDA"].ToString()), new CDAParameter("IS_PC",form["IS_PC"].ToString()), new CDAParameter("IS_WEB",form["IS_WEB"].ToString()), new CDAParameter("FUNCTIONCODE",form["FUNCTIONCODE"].ToString()) ); return new JsonResult(JsonStatus.success).ToJson(); } } /// /// 更新 TP_SYS_FUNCTION /// /// json private string update(NameValueCollection form) { using(IDataAccess conn=DataAccess.Create()) { int result = conn.ExecuteNonQuery(@" UPDATE TP_SYS_FUNCTION SET URL = @URL@, FUNCTIONNAME = @FUNCTIONNAME@, FULLNAME = @FULLNAME@, FUNCTIONFLAG = @FUNCTIONFLAG@, FUNCTIONBUTTONFLAG = @FUNCTIONBUTTONFLAG@, REMARK = @REMARK@, FORMNAME = @FORMNAME@, BUTTONNAME = @BUTTONNAME@, FUNCTIONLEVEL = @FUNCTIONLEVEL@, FUNCTIONPROGRAM = @FUNCTIONPROGRAM@, IS_PDA = @IS_PDA@, IS_PC = @IS_PC@, IS_WEB = @IS_WEB@, FUNCTIONCODE = @FUNCTIONCODE@ WHERE FUNCTIONCODE = @FUNCTIONCODE@ ", new CDAParameter("URL",form["URL"].ToString()), new CDAParameter("FUNCTIONNAME",form["FUNCTIONNAME"].ToString()), new CDAParameter("FULLNAME",form["FULLNAME"].ToString()), new CDAParameter("FUNCTIONFLAG",form["FUNCTIONFLAG"].ToString()), new CDAParameter("FUNCTIONBUTTONFLAG",form["FUNCTIONBUTTONFLAG"].ToString()), new CDAParameter("REMARK",form["REMARK"].ToString()), new CDAParameter("FORMNAME",form["FORMNAME"].ToString()), new CDAParameter("BUTTONNAME",form["BUTTONNAME"].ToString()), new CDAParameter("FUNCTIONLEVEL",form["FUNCTIONLEVEL"].ToString()), new CDAParameter("FUNCTIONPROGRAM",form["FUNCTIONPROGRAM"].ToString()), new CDAParameter("IS_PDA",form["IS_PDA"].ToString()), new CDAParameter("IS_PC",form["IS_PC"].ToString()), new CDAParameter("IS_WEB",form["IS_WEB"].ToString()), new CDAParameter("FUNCTIONCODE",HttpContext.Current.Request["id"].ToString()) ); return new JsonResult(JsonStatus.success).ToJson(); } } /// /// 删除 TP_SYS_FUNCTION /// /// json private string delete() { using(IDataAccess conn= DataAccess.Create()) { if (HttpContext.Current.Request["id"] is object) { int result = conn.ExecuteNonQuery(@" DELETE TP_SYS_FUNCTION WHERE INSTR(',' || @FUNCTIONCODE@ || ',' , ',' || FUNCTIONCODE || ',') > 0 ", new CDAParameter("FUNCTIONCODE", HttpContext.Current.Request["id"].ToString()) ); return new JsonResult(JsonStatus.success).ToJson(); } else { return new JsonResult(JsonStatus.otherError).ToJson(); } } } /// /// 导出 TP_SYS_FUNCTION /// /// json private string export() { return search(new NameValueCollection()); } private class Button { public bool btnIndex = false; public bool btnInsert = false; public bool btnInsertBatch = false; public bool btnCopy = false; public bool btnUpdate = false; public bool btnDelete = false; public bool btnCancel = false; public bool btnSearch = false; public bool btnDetail = false; public bool btnCheckbox = false; public bool btnExport = false; public bool btnReload = false; } private class xRecord { public string sid { get; set; } public string URL { get; set; } public string FUNCTIONNAME { get; set; } public string FULLNAME { get; set; } public string FUNCTIONFLAG { get; set; } public string FUNCTIONBUTTONFLAG { get; set; } public string REMARK { get; set; } public string FORMNAME { get; set; } public string BUTTONNAME { get; set; } public string FUNCTIONLEVEL { get; set; } public string FUNCTIONPROGRAM { get; set; } public string IS_PDA { get; set; } public string IS_PC { get; set; } public string IS_WEB { get; set; } } public bool IsReusable { get { return false; } } }