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.
272 lines
12 KiB
272 lines
12 KiB
namespace CounsellorBL.GROUP
|
|
{
|
|
using CounsellorBL.Common;
|
|
using CounsellorBL.Helper;
|
|
using MonumentDefine;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using OT.COM.ArsenalDB;
|
|
using OT.COM.SignalerMessage;
|
|
using SoldierData.EnterprizeV4;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Util = OT.COM.LogisticsUtil.Util;
|
|
|
|
class BranchService : SingleDataTableTemplate<tb_grp_branch>
|
|
{
|
|
public BranchService()
|
|
{
|
|
dgReadCommandGenerator = readCommandGenerator;
|
|
|
|
}
|
|
public new CResponseMessage Read(CRequestMessage i_crmInput) => base.Read(i_crmInput);
|
|
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 = "")
|
|
{
|
|
string sMsg;
|
|
Command cRes = null;
|
|
|
|
try
|
|
{
|
|
do
|
|
{
|
|
List<string> lsColumns = EntityBase.GetAllColumnName(typeof(tb_grp_branch));
|
|
Dictionary<string, object> dicWhereData = i_jaData[0][BLWording.WHEREDATA].ToObject<Dictionary<string, object>>();
|
|
|
|
Dictionary<string, string> dicCondition = new Dictionary<string, string>();
|
|
foreach (var data in dicWhereData)
|
|
{
|
|
if (data.Key != tb_grp_branch.CN_GROUP_UID)
|
|
{
|
|
dicCondition.Add(data.Key, data.Value.ToString());
|
|
}
|
|
}
|
|
QueryJsonElementCollection lBlocks = new QueryJsonElementCollection();
|
|
|
|
QueryJsonElement qjeBranch = lBlocks.GetInst();
|
|
qjeBranch.table = tb_grp_branch.TABLENAME;
|
|
qjeBranch.displaycols = lsColumns;
|
|
|
|
List<WhereNode> wnQuery = new List<WhereNode>();
|
|
if (dicWhereData.ContainsKey(tb_grp_branch.CN_GROUP_UID))
|
|
{
|
|
var lsGroupUID = new List<string>();
|
|
foreach (var uid in dicWhereData[tb_grp_branch.CN_GROUP_UID] as JArray)
|
|
{
|
|
lsGroupUID.Add(uid.ToString());
|
|
}
|
|
wnQuery.Add(new WhereNode(tb_grp_branch.CN_GROUP_UID, WhereNode.EColumnOperation.EOT_IN, typeof(tb_grp_branch), lsGroupUID.ToArray()));
|
|
}
|
|
if (wnQuery.Any())
|
|
{
|
|
qjeBranch.wherecols = new WhereNode(WhereNode.ENodeOperation.ENO_AND, wnQuery.ToArray());
|
|
}
|
|
qjeBranch.dicwherecols = dicCondition;
|
|
|
|
lBlocks.Add(qjeBranch);
|
|
|
|
|
|
QueryJsonElement qjeGroup = lBlocks.GetInst<tb_grp_group>();
|
|
qjeGroup.aliascols = new Dictionary<string, List<string>>() {
|
|
{ tb_grp_group.CN_NAME, new List<string>(){ "group_name" } }
|
|
};
|
|
qjeGroup.jointype = QueryJsonElement.JOIN;
|
|
qjeGroup.jointable = qjeBranch;
|
|
qjeGroup.joincols = new Dictionary<string, string>() {
|
|
{tb_grp_group.CN_UID, tb_grp_branch.CN_GROUP_UID }
|
|
};
|
|
lBlocks.Add(qjeGroup);
|
|
|
|
sMsg = MakeSelectJoinByBlocks(lBlocks, out Command cRead);
|
|
|
|
if (sMsg != null)
|
|
{
|
|
break;
|
|
}
|
|
cRes = cRead;
|
|
}
|
|
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;
|
|
}
|
|
public CResponseMessage GetBranchName(CRequestMessage i_crmInput)
|
|
{
|
|
string sMsg;
|
|
Command cRes = null;
|
|
CResponseMessage crmRes = null;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
Dictionary<string, object> dicCondition = GetQueryMasterFirstWhereData(i_crmInput); // 取得condition
|
|
|
|
QueryJsonElementCollection lBlocks = new QueryJsonElementCollection();
|
|
QueryJsonElement qjeA = lBlocks.GetInst();
|
|
qjeA.table = tb_grp_branch.TABLENAME;
|
|
qjeA.displaycols = new List<string>() {
|
|
tb_grp_branch.CN_UID,
|
|
tb_grp_branch.CN_BRANCH_NAME,
|
|
tb_grp_branch.CN_GROUP_UID,
|
|
tb_grp_branch.CN_ADDRESS,
|
|
tb_grp_branch.CN_IP_ADDRESS,
|
|
tb_grp_branch.CN_PHONE_NUMBER,
|
|
tb_grp_branch.CN_QRCODE_PAYTYPE,
|
|
tb_grp_branch.CN_PUBLIC_STATUS,
|
|
tb_grp_branch.CN_CONTACT_PERSON,
|
|
tb_grp_branch.CN_SEQ
|
|
};
|
|
lBlocks.Add(qjeA);
|
|
|
|
QueryJsonElement qjeB = lBlocks.GetInst();
|
|
qjeB.table = tb_grp_group.TABLENAME;
|
|
qjeB.jointype = QueryJsonElement.JOIN;
|
|
qjeB.jointable = qjeA;
|
|
qjeB.aliascols = new Dictionary<string, List<string>>() {
|
|
{ tb_grp_group.CN_NAME, new List<string>(){ "group_name" } }
|
|
};
|
|
qjeB.joincols = new Dictionary<string, string>() {
|
|
{ tb_grp_group.CN_UID,tb_grp_branch.CN_GROUP_UID }};
|
|
if (dicCondition.ContainsKey(tb_grp_branch.CN_GROUP_UID))
|
|
{
|
|
qjeB.wherecols = new WhereNode(tb_grp_group.CN_UID, WhereNode.EColumnOperation.EOT_EQ, typeof(tb_grp_group), dicCondition[tb_grp_branch.CN_GROUP_UID]);
|
|
}
|
|
if (dicCondition.ContainsKey(tb_grp_group.CN_FB_GROUP_ID))
|
|
{
|
|
qjeB.wherecols = new WhereNode(tb_grp_group.CN_FB_GROUP_ID, WhereNode.EColumnOperation.EOT_EQ, typeof(tb_grp_group), dicCondition[tb_grp_group.CN_FB_GROUP_ID]);
|
|
}
|
|
lBlocks.Add(qjeB);
|
|
|
|
sMsg = MakeSelectJoinByBlocks(lBlocks, out cRes);
|
|
if (sMsg != null)
|
|
{
|
|
break;
|
|
}
|
|
ArsenalInterface ai = ArsenalDBMgr.GetInst(cRes);
|
|
QueryDataSet qds = ai.RunQueryDataSet(cRes);
|
|
if (cRes.IsSuccess == false)
|
|
{
|
|
sMsg = cRes.LastErrorCode;
|
|
break;
|
|
}
|
|
crmRes = new CSuccessResponseMessage(null, i_crmInput);
|
|
crmRes.param.Add(BLWording.DATA, qds);
|
|
}
|
|
while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.DBLog(Util.GetLastExceptionMsg(ex));
|
|
sMsg = $"{nameof(GetBranchName)} unknwon exception. i_crmInput={JsonConvert.SerializeObject(i_crmInput)}. ";
|
|
#if DEBUG
|
|
System.Diagnostics.Debug.WriteLine(sMsg);
|
|
#endif
|
|
}
|
|
|
|
if (null != sMsg)
|
|
{
|
|
crmRes = new CErrorResponseMessage(sMsg, i_crmInput);
|
|
}
|
|
return crmRes;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 取得登入帳號人員管理裡設訂所屬分店的資料
|
|
/// </summary>
|
|
/// <param name="i_crmInput"></param>
|
|
/// <returns></returns>
|
|
public CResponseMessage GetBranchAuth(CRequestMessage i_crmInput)
|
|
{
|
|
string sMsg = null;
|
|
CResponseMessage crmRes = null;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var lsBranch = ProjectHelper.GetUserBranch(i_crmInput);
|
|
tb_grp_branch cBranch = new tb_grp_branch();
|
|
cBranch.SetFullDirty();
|
|
WhereNode wn1 = new WhereNode(tb_grp_branch.CN_UID, WhereNode.EColumnOperation.EOT_IN, typeof(tb_grp_branch), lsBranch.ToArray());
|
|
WhereNode wn2 = new WhereNode(tb_grp_branch.CN_STATUS_FLAG, WhereNode.EColumnOperation.EOT_EQ, typeof(tb_grp_branch), (int)Enums.Flag.Enable);
|
|
Command cSelect = Command.SetupSelectCmd(cBranch, new WhereNode(WhereNode.ENodeOperation.ENO_AND, wn1, wn2));
|
|
ArsenalInterface ai = ArsenalDBMgr.GetInst(cSelect);
|
|
List<tb_grp_branch> qdsBranch = ai.RunQueryList<tb_grp_branch>(cSelect);
|
|
|
|
crmRes = new CSuccessResponseMessage(null, i_crmInput);
|
|
crmRes.param.Add(BLWording.DATA, qdsBranch);
|
|
}
|
|
while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.DBLog(Util.GetLastExceptionMsg(ex));
|
|
sMsg = $"{nameof(GetBranchAuth)} unknwon exception. i_crmInput={JsonConvert.SerializeObject(i_crmInput)}. ";
|
|
#if DEBUG
|
|
System.Diagnostics.Debug.WriteLine(sMsg);
|
|
#endif
|
|
}
|
|
|
|
if (null != sMsg)
|
|
{
|
|
crmRes = new CErrorResponseMessage(sMsg, i_crmInput);
|
|
}
|
|
return crmRes;
|
|
}
|
|
[Auth(false)]
|
|
public CResponseMessage GetPayType(CRequestMessage i_crmInput)
|
|
{
|
|
string sMsg = null;
|
|
CResponseMessage crmRes = null;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
// var lsBranch = ProjectHelper.GetLoginUser(i_crmInput).receive_branch_uid;
|
|
tb_grp_branch cBranch = new tb_grp_branch();
|
|
cBranch.SetFullDirty();
|
|
var session = ProjectHelper.GetLoginUser(i_crmInput);
|
|
if (session == null)
|
|
{
|
|
sMsg = "Session error!!";
|
|
Logger.Error($"Session error!! i_crmInput={JsonConvert.SerializeObject(i_crmInput)}. ");
|
|
}
|
|
WhereNode wn1 = new WhereNode(tb_grp_branch.CN_UID, WhereNode.EColumnOperation.EOT_EQ, typeof(tb_grp_branch), session.receive_branch_uid);
|
|
WhereNode wn2 = new WhereNode(tb_grp_branch.CN_STATUS_FLAG, WhereNode.EColumnOperation.EOT_EQ, typeof(tb_grp_branch), (int)Enums.Flag.Enable);
|
|
Command cSelect = Command.SetupSelectCmd(cBranch, new WhereNode(WhereNode.ENodeOperation.ENO_AND, wn1, wn2));
|
|
ArsenalInterface ai = ArsenalDBMgr.GetInst(cSelect);
|
|
List<tb_grp_branch> qdsBranch = ai.RunQueryList<tb_grp_branch>(cSelect);
|
|
|
|
crmRes = new CSuccessResponseMessage(null, i_crmInput);
|
|
crmRes.param.Add(BLWording.DATA, qdsBranch);
|
|
}
|
|
while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.DBLog(Util.GetLastExceptionMsg(ex));
|
|
sMsg = $"{nameof(GetPayType)} unknwon exception. i_crmInput={JsonConvert.SerializeObject(i_crmInput)}. ";
|
|
#if DEBUG
|
|
System.Diagnostics.Debug.WriteLine(sMsg);
|
|
#endif
|
|
}
|
|
|
|
if (null != sMsg)
|
|
{
|
|
crmRes = new CErrorResponseMessage(sMsg, i_crmInput);
|
|
}
|
|
return crmRes;
|
|
}
|
|
}
|
|
}
|