chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore - 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
@@ -0,0 +1,206 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Wellan.Common;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
|
||||
namespace Education
|
||||
{
|
||||
/// <summary>
|
||||
/// 群組權限
|
||||
/// </summary>
|
||||
public class BWCPG_DAC : DAC
|
||||
{
|
||||
private DbCommand cmdSelect = null;
|
||||
private DbCommand cmdSelectRight = null;
|
||||
private DbCommand cmdCheckExist = null;
|
||||
private DbCommand cmdInsert = null;
|
||||
private DbCommand cmdUpdate = null;
|
||||
|
||||
public BWCPG_DAC()
|
||||
{
|
||||
}
|
||||
|
||||
public BWCPG_DAC(string connectionConfig, string connectionConfigName)
|
||||
: base(connectionConfig, connectionConfigName)
|
||||
{
|
||||
}
|
||||
|
||||
private void PrepareSql()
|
||||
{
|
||||
EnsureQuery();
|
||||
string tblBwcpg = WGuard1.WCFA("BWCPG");
|
||||
|
||||
if (cmdSelect == null)
|
||||
{
|
||||
cmdSelect = Query.NewCommand(Query.ReplaceParamNamePrefix(
|
||||
"SELECT B.BPPRG AS BPPRG, B.BPGLP AS BPGLP, A.BPGLP AS BBPGLP, A.BPDSP AS BBPDSP, "
|
||||
+ " B.BPRT1 AS BPRT1, B.BPRTI AS BPRTI, B.BPRTM AS BPRTM, B.BPRTD AS BPRTD, "
|
||||
+ " B.BPRTF AS BPRTF, B.BPRTP AS BPRTP, B.TRDAT AS TRDAT, B.TRMOD AS TRMOD, "
|
||||
+ " B.TRUSR AS TRUSR "
|
||||
+ " FROM " + WGuard1.WCFA("BWEG") + " A "
|
||||
+ " LEFT OUTER JOIN " + tblBwcpg + " B ON A.BPGLP=B.BPGLP AND B.BPPRG=@BPPRG "
|
||||
+ " ORDER BY A.BPGLP "));
|
||||
cmdSelect.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString));
|
||||
}
|
||||
|
||||
if (cmdCheckExist == null)
|
||||
{
|
||||
cmdCheckExist = Query.NewCommand(Query.ReplaceParamNamePrefix("SELECT COUNT(1) FROM " + tblBwcpg + " WHERE BPPRG=@BPPRG AND BPGLP=@BPGLP"));
|
||||
cmdCheckExist.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString));
|
||||
cmdCheckExist.Parameters.Add(Query.NewParameter("BPGLP", DbType.AnsiString));
|
||||
}
|
||||
|
||||
if (cmdInsert == null)
|
||||
{
|
||||
cmdInsert = Query.NewCommand(Query.ReplaceParamNamePrefix(
|
||||
"INSERT INTO " + tblBwcpg + " (BPPRG, BPGLP, BPRT1, BPRTI, BPRTM, BPRTD, BPRTF, BPRTP, TRDAT, TRMOD, TRUSR) "
|
||||
+ " VALUES (@BPPRG, @BPGLP, @BPRT1, @BPRTI, @BPRTM, @BPRTD, @BPRTF, @BPRTP, @TRDAT, 'INSERT', @TRUSR)"));
|
||||
cmdInsert.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString));
|
||||
cmdInsert.Parameters.Add(Query.NewParameter("BPGLP", DbType.AnsiString));
|
||||
cmdInsert.Parameters.Add(Query.NewParameter("BPRT1", DbType.AnsiString));
|
||||
cmdInsert.Parameters.Add(Query.NewParameter("BPRTI", DbType.AnsiString));
|
||||
cmdInsert.Parameters.Add(Query.NewParameter("BPRTM", DbType.AnsiString));
|
||||
cmdInsert.Parameters.Add(Query.NewParameter("BPRTD", DbType.AnsiString));
|
||||
cmdInsert.Parameters.Add(Query.NewParameter("BPRTF", DbType.AnsiString));
|
||||
cmdInsert.Parameters.Add(Query.NewParameter("BPRTP", DbType.AnsiString));
|
||||
cmdInsert.Parameters.Add(Query.NewParameter("TRDAT", DbType.DateTime));
|
||||
cmdInsert.Parameters.Add(Query.NewParameter("TRUSR", DbType.AnsiString));
|
||||
}
|
||||
|
||||
if (cmdUpdate == null)
|
||||
{
|
||||
cmdUpdate = Query.NewCommand(Query.ReplaceParamNamePrefix(
|
||||
"UPDATE " + tblBwcpg
|
||||
+ " SET BPRT1=@BPRT1, BPRTI=@BPRTI, BPRTM=@BPRTM, BPRTD=@BPRTD, BPRTF=@BPRTF,"
|
||||
+ " BPRTP=@BPRTP, TRDAT=@TRDAT, TRMOD='UPDATE', TRUSR=@TRUSR"
|
||||
+ " WHERE BPPRG=@BPPRG AND BPGLP=@BPGLP"));
|
||||
cmdUpdate.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString));
|
||||
cmdUpdate.Parameters.Add(Query.NewParameter("BPGLP", DbType.AnsiString));
|
||||
cmdUpdate.Parameters.Add(Query.NewParameter("BPRT1", DbType.AnsiString));
|
||||
cmdUpdate.Parameters.Add(Query.NewParameter("BPRTI", DbType.AnsiString));
|
||||
cmdUpdate.Parameters.Add(Query.NewParameter("BPRTM", DbType.AnsiString));
|
||||
cmdUpdate.Parameters.Add(Query.NewParameter("BPRTD", DbType.AnsiString));
|
||||
cmdUpdate.Parameters.Add(Query.NewParameter("BPRTF", DbType.AnsiString));
|
||||
cmdUpdate.Parameters.Add(Query.NewParameter("BPRTP", DbType.AnsiString));
|
||||
cmdUpdate.Parameters.Add(Query.NewParameter("TRDAT", DbType.DateTime));
|
||||
cmdUpdate.Parameters.Add(Query.NewParameter("TRUSR", DbType.AnsiString));
|
||||
}
|
||||
|
||||
if (cmdSelectRight == null)
|
||||
{
|
||||
cmdSelectRight = Query.NewCommand(Query.ReplaceParamNamePrefix(
|
||||
"SELECT BPRT1, BPRTI, BPRTM, BPRTD, BPRTF, BPRTP "
|
||||
+ " FROM " + tblBwcpg + " WHERE BPPRG=@BPPRG AND BPGLP=@BPGLP "));
|
||||
cmdSelectRight.Parameters.Add(Query.NewParameter("BPPRG", DbType.AnsiString));
|
||||
cmdSelectRight.Parameters.Add(Query.NewParameter("BPGLP", DbType.AnsiString));
|
||||
}
|
||||
}
|
||||
|
||||
public DataTable Select(string bpprg)
|
||||
{
|
||||
PrepareSql();
|
||||
cmdSelect.Parameters["BPPRG"].Value = bpprg;
|
||||
return Query.Select(cmdSelect);
|
||||
}
|
||||
|
||||
public bool CheckExist(string bpprg, string bpglp)
|
||||
{
|
||||
PrepareSql();
|
||||
cmdCheckExist.Parameters["BPPRG"].Value = bpprg;
|
||||
cmdCheckExist.Parameters["BPGLP"].Value = bpglp;
|
||||
int i = Convert.ToInt16(Query.ExecuteScalar(cmdCheckExist));
|
||||
return i != 0;
|
||||
}
|
||||
|
||||
public void Insert(string bpprg, string bpglp, string bprt1, string bprti,
|
||||
string bprtm, string bprtd, string bprtf, string bprtp)
|
||||
{
|
||||
PrepareSql();
|
||||
FillParameters(cmdInsert, bpprg, bpglp, bprt1, bprti, bprtm, bprtd, bprtf, bprtp);
|
||||
Query.ExecuteNonQuery(cmdInsert);
|
||||
}
|
||||
|
||||
public void Update(string bpprg, string bpglp, string bprt1, string bprti,
|
||||
string bprtm, string bprtd, string bprtf, string bprtp)
|
||||
{
|
||||
PrepareSql();
|
||||
FillParameters(cmdUpdate, bpprg, bpglp, bprt1, bprti, bprtm, bprtd, bprtf, bprtp);
|
||||
Query.ExecuteNonQuery(cmdUpdate);
|
||||
}
|
||||
|
||||
public void SetAllRight(string bpprg, string bpglp, bool right)
|
||||
{
|
||||
string r = right ? "Y" : "N";
|
||||
if (!CheckExist(bpprg, bpglp))
|
||||
{
|
||||
Insert(bpprg, bpglp, r, r, r, r, r, r);
|
||||
}
|
||||
else
|
||||
{
|
||||
Update(bpprg, bpglp, r, r, r, r, r, r);
|
||||
}
|
||||
}
|
||||
|
||||
private void FillParameters(DbCommand cmd, string bpprg, string bpglp, string bprt1, string bprti,
|
||||
string bprtm, string bprtd, string bprtf, string bprtp)
|
||||
{
|
||||
cmd.Parameters["BPPRG"].Value = bpprg;
|
||||
cmd.Parameters["BPGLP"].Value = bpglp;
|
||||
cmd.Parameters["BPRT1"].Value = bprt1 == "Y" || bprt1 == "N" ? bprt1 : "N";
|
||||
cmd.Parameters["BPRTI"].Value = bprti == "Y" || bprti == "N" ? bprti : "N";
|
||||
cmd.Parameters["BPRTM"].Value = bprtm == "Y" || bprtm == "N" ? bprtm : "N";
|
||||
cmd.Parameters["BPRTD"].Value = bprtd == "Y" || bprtd == "N" ? bprtd : "N";
|
||||
cmd.Parameters["BPRTF"].Value = bprtf == "Y" || bprtf == "N" ? bprtf : "N";
|
||||
cmd.Parameters["BPRTP"].Value = bprtp == "Y" || bprtp == "N" ? bprtp : "N";
|
||||
cmd.Parameters["TRDAT"].Value = DateTime.UtcNow.AddHours(8);
|
||||
cmd.Parameters["TRUSR"].Value = WGuard1.CUSR;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得群組權限<para></para>
|
||||
/// "Y" 表示有權限 "N" 表示無權限 "" 表示未設定
|
||||
/// </summary>
|
||||
/// <param name="bpprg">程式名稱</param>
|
||||
/// <param name="bpglp">群組編號</param>
|
||||
/// <param name="right">權限</param>
|
||||
/// <returns>"Y" 表示有權限 "N" 表示無權限 "" 表示未設定</returns>
|
||||
public string GetRight(string bpprg, string bpglp, WRightName right)
|
||||
{
|
||||
PrepareSql();
|
||||
string funcName = "";
|
||||
switch (right)
|
||||
{
|
||||
case WRightName.Execute:
|
||||
funcName = "BPRT1";
|
||||
break;
|
||||
case WRightName.Insert:
|
||||
funcName = "BPRTI";
|
||||
break;
|
||||
case WRightName.Update:
|
||||
funcName = "BPRTM";
|
||||
break;
|
||||
case WRightName.Delete:
|
||||
funcName = "BPRTD";
|
||||
break;
|
||||
case WRightName.Search:
|
||||
funcName = "BPRTF";
|
||||
break;
|
||||
case WRightName.Print:
|
||||
funcName = "BPRTP";
|
||||
break;
|
||||
}
|
||||
|
||||
cmdSelectRight.Parameters["BPPRG"].Value = bpprg;
|
||||
cmdSelectRight.Parameters["BPGLP"].Value = bpglp;
|
||||
DataTable data = Query.Select(cmdSelectRight);
|
||||
|
||||
if (data.Rows.Count != 0)
|
||||
{
|
||||
return data.Rows[0][funcName].ToString();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user