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