You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
621 lines
28 KiB
621 lines
28 KiB
namespace CounsellorBL.BLStructure.SYS
|
|
{
|
|
using CounsellorBL.Common;
|
|
using CounsellorBL.Helper;
|
|
using MonumentDefine;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using OT.COM.ArsenalDB;
|
|
using OT.COM.LogisticsUtil;
|
|
using OT.COM.SignalerMessage;
|
|
using SoldierData.EnterprizeV4;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using static CounsellorBL.Common.EntityBaseExtension;
|
|
|
|
public class AuthManageService : SingleDataTableTemplate<tb_sys_program>
|
|
{
|
|
public AuthManageService()
|
|
{
|
|
dgReadCommandGenerator = readCommandGenerator;
|
|
|
|
dgReadCommandPostDataHandler = readCommandPostDataHandler;
|
|
|
|
dgUpdateCommandGenerator = updateCommandGenerator;
|
|
}
|
|
|
|
|
|
private class ResViewModel
|
|
{
|
|
public string uid { get; set; } = null;
|
|
public string name { get; set; } = null;
|
|
public string module_name { get; set; } = null;
|
|
public string parent { get; set; } = null;
|
|
public string module_UID { get; set; } = null;
|
|
public string action_name { get; set; } = null;
|
|
public string action_UID { get; set; } = null;
|
|
public int sequence { get; set; } = 0;
|
|
}
|
|
|
|
protected string readCommandGenerator(CRequestMessage i_crmInput, JArray i_jaData, tb_sys_session i_sSessionUser, out Command o_c,
|
|
[System.Runtime.CompilerServices.CallerLineNumber] int i_nCodeLine = 0,
|
|
[System.Runtime.CompilerServices.CallerMemberName] string i_sMemberName = "",
|
|
[System.Runtime.CompilerServices.CallerFilePath] string i_sSourcePath = "")
|
|
{
|
|
Command cRes = null;
|
|
string sMsg;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
QueryJsonElementCollection lBlocks = new QueryJsonElementCollection();
|
|
|
|
QueryJsonElement qjeA = lBlocks.GetInst();
|
|
qjeA.table = tb_sys_program.TABLENAME;
|
|
qjeA.displaycols = new List<string>() { tb_sys_program.CN_UID, tb_sys_program.CN_NAME, tb_sys_program.CN_SEQ };
|
|
|
|
QueryJsonElement qjeB = lBlocks.GetInst();
|
|
qjeB.table = tb_sys_module.TABLENAME;
|
|
qjeB.jointype = QueryJsonElement.JOIN;
|
|
qjeB.jointable = qjeA;
|
|
qjeB.joincols = new Dictionary<string, string>() {
|
|
{ tb_sys_module.CN_UID,tb_sys_program.CN_MODULE_UID }};
|
|
qjeB.aliascols = new Dictionary<string, List<string>>()
|
|
{ { tb_sys_module .CN_UID, new List<string>(){ "module_UID" } } ,{ tb_sys_module.CN_NAME, new List<string>(){ "module_name" } }};
|
|
qjeB.displaycols = new List<string>() { tb_sys_module.CN_CODE, tb_sys_module.CN_SEQ, tb_sys_module.CN_PARENT };
|
|
|
|
|
|
QueryJsonElement qjeC = lBlocks.GetInst();
|
|
qjeC.table = tb_sys_program2action.TABLENAME;
|
|
qjeC.jointype = QueryJsonElement.JOIN;
|
|
qjeC.jointable = qjeA;
|
|
qjeC.joincols = new Dictionary<string, string>() {
|
|
{ tb_sys_program2action.CN_PROGRAM_UID,tb_sys_program.CN_UID }};
|
|
qjeC.aliascols = new Dictionary<string, List<string>>()
|
|
{ { tb_sys_program2action .CN_UID, new List<string>(){ "action_UID" } } };
|
|
qjeC.displaycols = new List<string>() { tb_sys_program2action.CN_ACTION_NAME, tb_sys_program2action.CN_SEQUENCE };
|
|
|
|
|
|
lBlocks.Add(qjeA);
|
|
lBlocks.Add(qjeB);
|
|
lBlocks.Add(qjeC);
|
|
|
|
sMsg = MakeSelectJoinByBlocks(lBlocks, out cRes);
|
|
}
|
|
while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.DBLog(Util.GetLastExceptionMsg(ex), i_nCodeLine, i_sMemberName, i_sSourcePath);
|
|
sMsg = $"{nameof(readCommandGenerator)} unknwon exception. i_crmInput={JsonConvert.SerializeObject(i_crmInput)}. Call from {i_sMemberName} {i_sSourcePath}({i_nCodeLine}).";
|
|
#if DEBUG
|
|
System.Diagnostics.Debug.WriteLine(sMsg);
|
|
#endif
|
|
}
|
|
|
|
o_c = cRes;
|
|
return sMsg;
|
|
}
|
|
|
|
protected string readCommandPostDataHandler(CRequestMessage i_crmInput, ArsenalInterface i_aiArsenal, Command i_cCmd, JArray i_jaData, tb_sys_session i_sSessionUser, out object o_oReault,
|
|
[System.Runtime.CompilerServices.CallerLineNumber] int i_nCodeLine = 0,
|
|
[System.Runtime.CompilerServices.CallerMemberName] string i_sMemberName = "",
|
|
[System.Runtime.CompilerServices.CallerFilePath] string i_sSourcePath = "")
|
|
{
|
|
string sMsg = null;
|
|
object oResultData = null;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
List<ResViewModel> qds = i_aiArsenal.RunQueryList<ResViewModel>(i_cCmd);
|
|
|
|
if (!i_cCmd.IsSuccess)
|
|
{
|
|
sMsg = i_cCmd.LastErrorCode;
|
|
break;
|
|
}
|
|
|
|
string[] saCrudArray = { "btnQry", "btnAdd", "btnUpd", "btnDel" };
|
|
List<tb_sys_action> lActionList = GetAction();
|
|
|
|
oResultData = qds
|
|
.Select(x => new
|
|
{
|
|
x.uid,
|
|
x.name,
|
|
modulename = x.module_name,
|
|
moduleparent = x.parent,
|
|
moduleuid = x.module_UID,
|
|
actionname = x.action_name,
|
|
action = lActionList.Where(c => c.uid == x.action_name).Select(c => c.name).SingleOrDefault(),
|
|
action_id = x.action_UID,
|
|
x.sequence
|
|
})
|
|
.GroupBy(x => new { x.uid, x.name, x.moduleuid, x.modulename, x.moduleparent })
|
|
.Select(x => new
|
|
{
|
|
x.Key.uid,
|
|
x.Key.name,
|
|
x.Key.moduleuid,
|
|
x.Key.modulename,
|
|
x.Key.moduleparent,
|
|
view = x.Where(c => c.actionname.Trim() == saCrudArray[0]).Select(c => c.action_id).SingleOrDefault(),
|
|
create = x.Where(c => c.actionname.Trim() == saCrudArray[1]).Select(c => c.action_id).SingleOrDefault(),
|
|
edit = x.Where(c => c.actionname.Trim() == saCrudArray[2]).Select(c => c.action_id).SingleOrDefault(),
|
|
delete = x.Where(c => c.actionname.Trim() == saCrudArray[3]).Select(c => c.action_id).SingleOrDefault(),
|
|
other = x.Where(c => !saCrudArray.Contains(c.actionname.Trim()))
|
|
.OrderBy(c => c.sequence)
|
|
.Select(c => new { c.action, c.action_id })
|
|
}).ToList();
|
|
}
|
|
while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.DBLog(Util.GetLastExceptionMsg(ex), i_nCodeLine, i_sMemberName, i_sSourcePath);
|
|
sMsg = $"{nameof(readCommandGenerator)} unknwon exception. i_crmInput={JsonConvert.SerializeObject(i_crmInput)}. Call from {i_sMemberName} {i_sSourcePath}({i_nCodeLine}).";
|
|
#if DEBUG
|
|
System.Diagnostics.Debug.WriteLine(sMsg);
|
|
#endif
|
|
}
|
|
|
|
o_oReault = oResultData;
|
|
return sMsg;
|
|
}
|
|
|
|
private List<tb_sys_action> GetAction()
|
|
{
|
|
// 查詢action
|
|
tb_sys_action cData = new tb_sys_action();
|
|
cData.SetFullDirtyEx(EColumnFilter.ES_NO);
|
|
Command cSelect = Command.SetupSelectCmd(cData);
|
|
ArsenalInterface ai = ArsenalDBMgr.GetInst(cSelect);
|
|
List<tb_sys_action> qdAction = ai.RunQueryList<tb_sys_action>(cSelect);
|
|
return qdAction;
|
|
}
|
|
|
|
private QueryJsonElementCollection getProgramActionQJE(out QueryJsonElement o_qjeA, out QueryJsonElement o_qjeB)
|
|
{
|
|
QueryJsonElementCollection lBlocks = new QueryJsonElementCollection();
|
|
|
|
o_qjeA = lBlocks.GetInst();
|
|
o_qjeA.table = tb_sys_program.TABLENAME;
|
|
o_qjeA.displaycols = new List<string>() { tb_sys_program.CN_UID, tb_sys_program.CN_NAME };
|
|
|
|
o_qjeB = lBlocks.GetInst();
|
|
o_qjeB.table = tb_sys_program2action.TABLENAME;
|
|
o_qjeB.jointype = QueryJsonElement.LEFT_JOIN;
|
|
o_qjeB.jointable = o_qjeA;
|
|
o_qjeB.joincols = new Dictionary<string, string>() {
|
|
{ tb_sys_program2action.CN_PROGRAM_UID,tb_sys_program.CN_UID }};
|
|
o_qjeB.displaycols = new List<string>() { tb_sys_program2action.CN_ACTION_NAME };
|
|
|
|
lBlocks.Add(o_qjeA);
|
|
lBlocks.Add(o_qjeB);
|
|
return lBlocks;
|
|
}
|
|
|
|
protected string getRoleAuthCommandGenerator(CRequestMessage i_crmInput, JArray i_jaData, tb_sys_session i_sSessionUser, out Command o_cCmd,
|
|
[System.Runtime.CompilerServices.CallerLineNumber] int i_nCodeLine = 0,
|
|
[System.Runtime.CompilerServices.CallerMemberName] string i_sMemberName = "",
|
|
[System.Runtime.CompilerServices.CallerFilePath] string i_sSourcePath = "")
|
|
{
|
|
return getAuthCommandGeneratorBase(BLWording.ROLE_ID, i_jaData[0][BLWording.ROLE_ID].ToObject<string>(), out o_cCmd);
|
|
}
|
|
|
|
public CResponseMessage GetRoleAuth(CRequestMessage i_crmInput)
|
|
{
|
|
return simpleQuery(i_crmInput, BLWording.QRY_MASTER, getRoleAuthCommandGenerator, actionsPostDataHandler);
|
|
}
|
|
|
|
protected string getUserAuthCommandGenerator(CRequestMessage i_crmInput, JArray i_jaData, tb_sys_session i_sSessionUser, out Command o_cCmd,
|
|
[System.Runtime.CompilerServices.CallerLineNumber] int i_nCodeLine = 0,
|
|
[System.Runtime.CompilerServices.CallerMemberName] string i_sMemberName = "",
|
|
[System.Runtime.CompilerServices.CallerFilePath] string i_sSourcePath = "")
|
|
{
|
|
return getAuthCommandGeneratorBase(BLWording.USER_ID, i_jaData[0][BLWording.USER_ID].ToObject<string>(), out o_cCmd);
|
|
}
|
|
|
|
protected string actionsPostDataHandler(CRequestMessage i_crmInput, ArsenalInterface i_aiArsenal, Command i_cCmd, JArray i_jaData, tb_sys_session i_sSessionUser, out object o_oReault,
|
|
[System.Runtime.CompilerServices.CallerLineNumber] int i_nCodeLine = 0,
|
|
[System.Runtime.CompilerServices.CallerMemberName] string i_sMemberName = "",
|
|
[System.Runtime.CompilerServices.CallerFilePath] string i_sSourcePath = "")
|
|
{
|
|
string sMsg = null;
|
|
object oResultData = null;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
List<ResViewModel> qds = i_aiArsenal.RunQueryList<ResViewModel>(i_cCmd);
|
|
|
|
if (!i_cCmd.IsSuccess)
|
|
{
|
|
sMsg = i_cCmd.LastErrorCode;
|
|
break;
|
|
}
|
|
|
|
string[] saCrudArray = { "btnQry", "btnAdd", "btnUpd", "btnDel" };
|
|
List<tb_sys_action> lActionList = GetAction();
|
|
oResultData = qds.Select(x => new
|
|
{
|
|
x.uid,
|
|
x.name,
|
|
actionname = x.action_name,
|
|
})
|
|
.GroupBy(x => x.uid)
|
|
.Select(x => new
|
|
{
|
|
uid = x.Key,
|
|
view = x.Any(c => c.actionname == saCrudArray[0]),
|
|
create = x.Any(c => c.actionname == saCrudArray[1]),
|
|
edit = x.Any(c => c.actionname == saCrudArray[2]),
|
|
delete = x.Any(c => c.actionname == saCrudArray[3]),
|
|
other = x.Where(c => !saCrudArray.Contains(c.actionname)).Select(c => lActionList.Where(z => z.uid == c.actionname).Select(z => z.name))
|
|
}).ToList();
|
|
}
|
|
while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.DBLog(Util.GetLastExceptionMsg(ex), i_nCodeLine, i_sMemberName, i_sSourcePath);
|
|
sMsg = $"{nameof(actionsPostDataHandler)} unknwon exception. i_crmInput={JsonConvert.SerializeObject(i_crmInput)}. Call from {i_sMemberName} {i_sSourcePath}({i_nCodeLine}).";
|
|
#if DEBUG
|
|
System.Diagnostics.Debug.WriteLine(sMsg);
|
|
#endif
|
|
}
|
|
|
|
o_oReault = oResultData;
|
|
return sMsg;
|
|
}
|
|
|
|
public CResponseMessage GetUserAuth(CRequestMessage i_crmInput)
|
|
{
|
|
return simpleQuery(i_crmInput, BLWording.QRY_MASTER, getUserAuthCommandGenerator, actionsPostDataHandler);
|
|
}
|
|
|
|
protected string getAuthCommandGeneratorBase(string i_sGrandType, string i_sGrandUID, out Command o_cCmd,
|
|
[System.Runtime.CompilerServices.CallerLineNumber] int i_nCodeLine = 0,
|
|
[System.Runtime.CompilerServices.CallerMemberName] string i_sMemberName = "",
|
|
[System.Runtime.CompilerServices.CallerFilePath] string i_sSourcePath = "")
|
|
{
|
|
Command cRes = null;
|
|
string sMsg;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
QueryJsonElementCollection lBlocks = getProgramActionQJE(out QueryJsonElement qjeA, out QueryJsonElement qjeB);
|
|
|
|
QueryJsonElement qjeC = lBlocks.GetInst();
|
|
qjeC.table = tb_sys_program2action_grant.TABLENAME;
|
|
qjeC.jointype = QueryJsonElement.LEFT_JOIN;
|
|
qjeC.jointable = qjeB;
|
|
qjeC.joincols = new Dictionary<string, string>() {
|
|
{ tb_sys_program2action_grant.CN_PROGRAM2ACTION_UID,tb_sys_program2action.CN_UID }
|
|
};
|
|
qjeC.displaycols = new List<string>() { tb_sys_program2action_grant.CN_PROGRAM2ACTION_UID };
|
|
qjeC.wherecols = new WhereNode(WhereNode.ENodeOperation.ENO_AND,
|
|
new WhereNode(tb_sys_program2action_grant.CN_GRANT_TYPE, WhereNode.EColumnOperation.EOT_EQ, typeof(tb_sys_program2action_grant), i_sGrandType),
|
|
new WhereNode(tb_sys_program2action_grant.CN_GRANT_UID, WhereNode.EColumnOperation.EOT_EQ, typeof(tb_sys_program2action_grant), i_sGrandUID)
|
|
);
|
|
|
|
lBlocks.Add(qjeC);
|
|
|
|
sMsg = MakeSelectJoinByBlocks(lBlocks, out cRes);
|
|
}
|
|
while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.DBLog(Util.GetLastExceptionMsg(ex), i_nCodeLine, i_sMemberName, i_sSourcePath);
|
|
sMsg = $"{nameof(getAuthCommandGeneratorBase)} unknwon exception. i_sGrandType={i_sGrandType}, i_sGrandUID={i_sGrandUID}. Call from {i_sMemberName} {i_sSourcePath}({i_nCodeLine}).";
|
|
#if DEBUG
|
|
System.Diagnostics.Debug.WriteLine(sMsg);
|
|
#endif
|
|
}
|
|
o_cCmd = cRes;
|
|
return sMsg;
|
|
}
|
|
|
|
protected string getDepAuthCommandGenerator(CRequestMessage i_crmInput, JArray i_jaData, tb_sys_session i_sSessionUser, out Command o_cCmd,
|
|
[System.Runtime.CompilerServices.CallerLineNumber] int i_nCodeLine = 0,
|
|
[System.Runtime.CompilerServices.CallerMemberName] string i_sMemberName = "",
|
|
[System.Runtime.CompilerServices.CallerFilePath] string i_sSourcePath = "")
|
|
{
|
|
return getAuthCommandGeneratorBase(BLWording.DEPT_ID, i_jaData[0][BLWording.DEPT_ID].ToObject<string>(), out o_cCmd);
|
|
}
|
|
|
|
// 部門權限
|
|
public CResponseMessage GetDepAuth(CRequestMessage i_crmInput)
|
|
{
|
|
return simpleQuery(i_crmInput, BLWording.QRY_MASTER, getDepAuthCommandGenerator, actionsPostDataHandler);
|
|
}
|
|
|
|
protected string updateCommandGenerator(CRequestMessage i_crmInput, JArray i_jaData, tb_sys_session i_sSessionUser, out List<Command> o_lcResult, List<string> i_saQryContainKeys,
|
|
[System.Runtime.CompilerServices.CallerLineNumber] int i_nCodeLine = 0,
|
|
[System.Runtime.CompilerServices.CallerMemberName] string i_sMemberName = "",
|
|
[System.Runtime.CompilerServices.CallerFilePath] string i_sSourcePath = "")
|
|
{
|
|
string sMsg = null;
|
|
List<Command> lCmds = new List<Command>();
|
|
|
|
try
|
|
{
|
|
do
|
|
{
|
|
|
|
List<string> data = new List<string>();
|
|
|
|
foreach (JToken jtk in i_jaData)
|
|
{
|
|
data.Add(jtk[BLWording.DATA].ToString());
|
|
}
|
|
|
|
QueryJsonElementCollection lBlocks = new QueryJsonElementCollection();
|
|
QueryJsonElement qjeOrigin = lBlocks.GetInst();
|
|
ArsenalInterface ai;
|
|
|
|
string sGrand_type = null;
|
|
if (i_crmInput.param.ContainsKey(BLWording.ROLE_ID))
|
|
{
|
|
sGrand_type = BLWording.ROLE_ID;
|
|
}
|
|
else if (i_crmInput.param.ContainsKey(BLWording.DEPT_ID))
|
|
{
|
|
sGrand_type = BLWording.DEPT_ID;
|
|
}
|
|
else if (i_crmInput.param.ContainsKey(BLWording.USER_ID))
|
|
{
|
|
sGrand_type = BLWording.USER_ID;
|
|
}
|
|
|
|
if (sGrand_type == null)
|
|
{
|
|
sMsg = MessageWording.PARAM_NOT_EXPECTED;
|
|
break;
|
|
}
|
|
|
|
|
|
string sGrand_id = i_crmInput.param[sGrand_type] as string;
|
|
// 查詢原始資料
|
|
|
|
qjeOrigin.table = tb_sys_program2action_grant.TABLENAME;
|
|
qjeOrigin.displaycols = new List<string>() { tb_sys_program2action_grant.CN_UID, tb_sys_program2action_grant.CN_GRANT_TYPE, tb_sys_program2action_grant.CN_GRANT_UID, tb_sys_program2action_grant.CN_PROGRAM2ACTION_UID };
|
|
qjeOrigin.wherecols = new WhereNode(WhereNode.ENodeOperation.ENO_AND,
|
|
new WhereNode(tb_sys_program2action_grant.CN_GRANT_TYPE, WhereNode.EColumnOperation.EOT_EQ, typeof(tb_sys_program2action_grant), sGrand_type),
|
|
new WhereNode(tb_sys_program2action_grant.CN_GRANT_UID, WhereNode.EColumnOperation.EOT_EQ, typeof(tb_sys_program2action_grant), sGrand_id));
|
|
lBlocks.Add(qjeOrigin);
|
|
sMsg = MakeSelectJoinByBlocks(lBlocks, out Command cRes);
|
|
|
|
if (sMsg != null)
|
|
{
|
|
break;
|
|
}
|
|
|
|
ai = ArsenalDBMgr.GetInst(cRes);
|
|
|
|
List<tb_sys_program2action_grant> qds = ai.RunQueryList<tb_sys_program2action_grant>(cRes);
|
|
|
|
if (!cRes.IsSuccess)
|
|
{
|
|
sMsg = cRes.LastErrorCode;
|
|
break;
|
|
}
|
|
|
|
if (data.Any())
|
|
{
|
|
var origin = qds.Select(x => x.program2action_uid).ToList();
|
|
var addIDs = data.Except(origin);
|
|
var delIDs = origin.Except(data);
|
|
|
|
if (addIDs.Any())
|
|
{
|
|
foreach (string sUID in addIDs)
|
|
{
|
|
tb_sys_program2action_grant cNew = new tb_sys_program2action_grant()
|
|
{
|
|
grant_type = sGrand_type,
|
|
grant_uid = sGrand_id,
|
|
program2action_uid = sUID
|
|
};
|
|
lCmds.Add(Command.SetupInsertCmd(cNew));
|
|
}
|
|
}
|
|
|
|
if (delIDs.Any())
|
|
{
|
|
foreach (string sUID in delIDs)
|
|
{
|
|
tb_sys_program2action_grant cCond = new tb_sys_program2action_grant()
|
|
{
|
|
grant_type = sGrand_type,
|
|
grant_uid = sGrand_id,
|
|
program2action_uid = sUID
|
|
};
|
|
lCmds.Add(Command.SetupDeleteCmd(cCond));
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
tb_sys_program2action_grant cCond = new tb_sys_program2action_grant()
|
|
{
|
|
grant_type = sGrand_type,
|
|
grant_uid = sGrand_id
|
|
};
|
|
lCmds.Add(Command.SetupDeleteCmd(cCond));
|
|
|
|
}
|
|
}
|
|
while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.DBLog(Util.GetLastExceptionMsg(ex), i_nCodeLine, i_sMemberName, i_sSourcePath);
|
|
sMsg = $"{nameof(updateCommandGenerator)} unknwon exception. i_crmInput={JsonConvert.SerializeObject(i_crmInput)}. Call from {i_sMemberName} {i_sSourcePath}({i_nCodeLine}).";
|
|
#if DEBUG
|
|
System.Diagnostics.Debug.WriteLine(sMsg);
|
|
#endif
|
|
}
|
|
|
|
o_lcResult = lCmds;
|
|
return sMsg;
|
|
}
|
|
|
|
|
|
|
|
protected string getRoleCommandGenerator(CRequestMessage i_crmInput, JArray i_jaData, tb_sys_session i_sSessionUser, out Command o_cCmd,
|
|
[System.Runtime.CompilerServices.CallerLineNumber] int i_nCodeLine = 0,
|
|
[System.Runtime.CompilerServices.CallerMemberName] string i_sMemberName = "",
|
|
[System.Runtime.CompilerServices.CallerFilePath] string i_sSourcePath = "")
|
|
{
|
|
Command cRes = null;
|
|
string sMsg = null;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
tb_sys_role cData = new tb_sys_role();
|
|
cData.SetFullDirty();
|
|
cRes = Command.SetupSelectCmd(cData);
|
|
}
|
|
while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.DBLog(Util.GetLastExceptionMsg(ex), i_nCodeLine, i_sMemberName, i_sSourcePath);
|
|
sMsg = $"{nameof(getRoleCommandGenerator)} unknwon exception. i_crmInput={JsonConvert.SerializeObject(i_crmInput)}. Call from {i_sMemberName} {i_sSourcePath}({i_nCodeLine}).";
|
|
#if DEBUG
|
|
System.Diagnostics.Debug.WriteLine(sMsg);
|
|
#endif
|
|
}
|
|
|
|
o_cCmd = cRes;
|
|
return sMsg;
|
|
}
|
|
|
|
protected string getRoleCommandPostDataHandler(CRequestMessage i_crmInput, ArsenalInterface i_aiArsenal, Command i_cCmd, JArray i_jaData, tb_sys_session i_sSessionUser, out object o_oReault,
|
|
[System.Runtime.CompilerServices.CallerLineNumber] int i_nCodeLine = 0,
|
|
[System.Runtime.CompilerServices.CallerMemberName] string i_sMemberName = "",
|
|
[System.Runtime.CompilerServices.CallerFilePath] string i_sSourcePath = ""
|
|
)
|
|
{
|
|
string sMsg = null;
|
|
object oResultData = null;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
List<tb_sys_role> qdRole = i_aiArsenal.RunQueryList<tb_sys_role>(i_cCmd);
|
|
Dictionary<object, string> resp = new Dictionary<object, string>();
|
|
foreach (var role in qdRole)
|
|
{
|
|
resp.Add(role.uid, role.name);
|
|
}
|
|
oResultData = resp;
|
|
}
|
|
while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.DBLog(Util.GetLastExceptionMsg(ex), i_nCodeLine, i_sMemberName, i_sSourcePath);
|
|
sMsg = $"{nameof(getRoleCommandPostDataHandler)} unknwon exception. i_crmInput={JsonConvert.SerializeObject(i_crmInput)}. Call from {i_sMemberName} {i_sSourcePath}({i_nCodeLine}).";
|
|
#if DEBUG
|
|
System.Diagnostics.Debug.WriteLine(sMsg);
|
|
#endif
|
|
}
|
|
|
|
o_oReault = oResultData;
|
|
return sMsg;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 取得角色
|
|
/// </summary>
|
|
/// <param name="i_crmInput"></param>
|
|
/// <returns></returns>
|
|
[Auth(false)]
|
|
public CResponseMessage GetRole(CRequestMessage i_crmInput)
|
|
{
|
|
return simpleQuery(i_crmInput, null, getRoleCommandGenerator, getRoleCommandPostDataHandler);
|
|
}
|
|
|
|
protected string getUserCommandGenerator(CRequestMessage i_crmInput, JArray i_jaData, tb_sys_session i_sSessionUser, out Command o_cCmd,
|
|
[System.Runtime.CompilerServices.CallerLineNumber] int i_nCodeLine = 0,
|
|
[System.Runtime.CompilerServices.CallerMemberName] string i_sMemberName = "",
|
|
[System.Runtime.CompilerServices.CallerFilePath] string i_sSourcePath = "")
|
|
{
|
|
Command cRes = null;
|
|
string sMsg = null;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
tb_sys_user cData = new tb_sys_user();
|
|
cData.SetFullDirty();
|
|
cRes = Command.SetupSelectCmd(cData);
|
|
}
|
|
while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.DBLog(Util.GetLastExceptionMsg(ex), i_nCodeLine, i_sMemberName, i_sSourcePath);
|
|
sMsg = $"{nameof(getUserCommandGenerator)} unknwon exception. i_crmInput={JsonConvert.SerializeObject(i_crmInput)}. Call from {i_sMemberName} {i_sSourcePath}({i_nCodeLine}).";
|
|
#if DEBUG
|
|
System.Diagnostics.Debug.WriteLine(sMsg);
|
|
#endif
|
|
}
|
|
|
|
o_cCmd = cRes;
|
|
return sMsg;
|
|
}
|
|
|
|
protected string getUserCommandPostDataHandler(CRequestMessage i_crmInput, ArsenalInterface i_aiArsenal, Command i_cCmd, JArray i_jaData, tb_sys_session i_sSessionUser, out object o_oReault,
|
|
[System.Runtime.CompilerServices.CallerLineNumber] int i_nCodeLine = 0,
|
|
[System.Runtime.CompilerServices.CallerMemberName] string i_sMemberName = "",
|
|
[System.Runtime.CompilerServices.CallerFilePath] string i_sSourcePath = ""
|
|
)
|
|
{
|
|
string sMsg = null;
|
|
object oResultData = null;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
List<tb_sys_user> qdUser = i_aiArsenal.RunQueryList<tb_sys_user>(i_cCmd);
|
|
if (qdUser.Count > 0)
|
|
{
|
|
Dictionary<object, string> resp = new Dictionary<object, string>();
|
|
foreach (var user in qdUser)
|
|
{
|
|
resp.Add(user.uid, user.account);
|
|
}
|
|
|
|
oResultData = resp;
|
|
}
|
|
}
|
|
while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.DBLog(Util.GetLastExceptionMsg(ex), i_nCodeLine, i_sMemberName, i_sSourcePath);
|
|
sMsg = $"{nameof(getUserCommandPostDataHandler)} unknwon exception. i_crmInput={JsonConvert.SerializeObject(i_crmInput)}. Call from {i_sMemberName} {i_sSourcePath}({i_nCodeLine}).";
|
|
#if DEBUG
|
|
System.Diagnostics.Debug.WriteLine(sMsg);
|
|
#endif
|
|
}
|
|
|
|
o_oReault = oResultData;
|
|
return sMsg;
|
|
}
|
|
[Auth(false)]
|
|
public CResponseMessage GetUser(CRequestMessage i_crmInput)
|
|
{
|
|
return simpleQuery(i_crmInput, null, getUserCommandGenerator, getUserCommandPostDataHandler);
|
|
|
|
}
|
|
}
|
|
}
|