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.
251 lines
10 KiB
251 lines
10 KiB
using EasyBL.WebApi.Message;
|
|
using Entity.Sugar;
|
|
using Newtonsoft.Json.Linq;
|
|
using SqlSugar;
|
|
using SqlSugar.Base;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
|
|
namespace EasyBL.WEBAPP.SYS
|
|
{
|
|
public class AuthantedProgramsService : ServiceBase
|
|
{
|
|
#region 查詢系統所有程式(系統授權)
|
|
|
|
/// <summary>
|
|
/// 查詢系統所有程式(系統授權)
|
|
/// </summary>
|
|
/// <param name="i_crm"></param>
|
|
/// <returns></returns>
|
|
public ResponseMessage GetAuthorizeBy_(RequestMessage i_crm)
|
|
{
|
|
ResponseMessage rm = null;
|
|
string sMsg = null;
|
|
var db = SugarBase.DB;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var sType = _fetchString(i_crm, @"Type");
|
|
var sRuleID = _fetchString(i_crm, @"RuleID");
|
|
var sChildSystem = _fetchString(i_crm, @"ChildSystem");
|
|
var sModuleID = _fetchString(i_crm, @"ModuleID");
|
|
var dic_SP = new Dictionary<string, string> {
|
|
{ "Role", "OSP_Common_GetProgramListByRuleId" },
|
|
{ "Dept", "OSP_Common_GetProgramListByDeptId" },
|
|
{ "Member", "OSP_Common_GetProgramListByMemberId" }
|
|
};
|
|
var spOrgID = new SugarParameter("@OrgID", i_crm.ORIGID);
|
|
var spRuleID = new SugarParameter("@RuleID", sRuleID);
|
|
var spChildSystem = new SugarParameter("@ChildSystem", sChildSystem);
|
|
var spModuleID = new SugarParameter("@ModuleID", sModuleID);
|
|
var dt = db.Ado.UseStoredProcedure().GetDataTable(dic_SP[sType], spOrgID, spRuleID, spChildSystem, spModuleID);
|
|
using (var tb_new = new DataTable())
|
|
{
|
|
foreach (DataColumn col in dt.Columns)
|
|
{
|
|
tb_new.Columns.Add(col.ToString());
|
|
}
|
|
var saAuth = db.Queryable<OTB_SYS_Arguments>()
|
|
.Where(x => x.OrgID == i_crm.ORIGID && x.ArgumentClassID == "99999" && x.Effective == "Y")
|
|
.ToList();
|
|
|
|
foreach (var _auth in saAuth)
|
|
{
|
|
tb_new.Columns.Add(_auth.ArgumentID);
|
|
}
|
|
foreach (DataRow row in dt.Rows)
|
|
{
|
|
var row_new = tb_new.NewRow();
|
|
foreach (DataColumn col in dt.Columns)
|
|
{
|
|
row_new[col.ToString()] = row[col];
|
|
}
|
|
var saCanAllowRight = row["CanAllowRight"].ToString().Trim().Split(new string[] { @"|" }, StringSplitOptions.RemoveEmptyEntries);
|
|
foreach (string right in saCanAllowRight)
|
|
{
|
|
row_new[right] = right;
|
|
}
|
|
tb_new.Rows.Add(row_new);
|
|
}
|
|
|
|
rm = new SuccessResponseMessage(null, i_crm);
|
|
rm.DATA.Add(BLWording.REL, tb_new);
|
|
}
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sMsg = Util.GetLastExceptionMsg(ex);
|
|
LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(AuthantedProgramsService), "", @"GetAuthorizeBy_(查詢系統所有程式(系統授權))", @"", @"", @"");
|
|
}
|
|
finally
|
|
{
|
|
if (null != sMsg)
|
|
{
|
|
rm = new ErrorResponseMessage(sMsg, i_crm);
|
|
}
|
|
}
|
|
return rm;
|
|
}
|
|
|
|
#endregion 查詢系統所有程式(系統授權)
|
|
|
|
#region 修改(系統授權)
|
|
|
|
/// <summary>
|
|
/// 修改(系統授權)
|
|
/// </summary>
|
|
/// <param name="i_crm"></param>
|
|
/// <returns></returns>
|
|
public ResponseMessage UpdateAuthorize(RequestMessage i_crm)
|
|
{
|
|
ResponseMessage rm = null;
|
|
string sMsg = null;
|
|
try
|
|
{
|
|
rm = SugarBase.ExecTran(db =>
|
|
{
|
|
do
|
|
{
|
|
var sType = _fetchString(i_crm, @"Type");
|
|
var sRuleID = _fetchString(i_crm, @"RuleID");
|
|
var sChildSystem = _fetchString(i_crm, @"ChildSystem");
|
|
var sModuleID = _fetchString(i_crm, @"ModuleID");
|
|
var dic_SP_Del = new Dictionary<string, string> {
|
|
{ "Role", "[dbo].[OSP_OTB_SYS_Authorize_Delete]" },
|
|
{ "Dept", "OSP_OTB_SYS_AuthorizeForDept_Delete" },
|
|
{ "Member", "OSP_OTB_SYS_AuthorizeForMember_Delete" }
|
|
};
|
|
var dic_SP_Add = new Dictionary<string, string> {
|
|
{ "Role", "OSP_OTB_SYS_Authorize_ADD" },
|
|
{ "Dept", "OSP_OTB_SYS_AuthorizeForDept_Add" },
|
|
{ "Member", "OSP_OTB_SYS_AuthorizeForMember_Add" }
|
|
};
|
|
var spOrgID = new SugarParameter("@OrgID", i_crm.ORIGID);
|
|
var spRuleID = new SugarParameter("@RuleID", sRuleID);
|
|
var spChildSystem = new SugarParameter("@ChildSystem", sChildSystem);
|
|
var spModuleID = new SugarParameter("@ModuleID", sModuleID);
|
|
var iRel = db.Ado.UseStoredProcedure().ExecuteCommand(dic_SP_Del[sType], spOrgID, spRuleID, spChildSystem, spModuleID);
|
|
|
|
var saAuth = i_crm.DATA["add"] as JArray;
|
|
|
|
foreach (JObject jo in saAuth)
|
|
{
|
|
var saSp = new List<SugarParameter>();
|
|
foreach (var auth in jo)
|
|
{
|
|
saSp.Add(new SugarParameter(auth.Key, auth.Value));
|
|
}
|
|
var iRel_Add = db.Ado.UseStoredProcedure().ExecuteCommand(dic_SP_Add[sType], saSp);
|
|
}
|
|
|
|
rm = new SuccessResponseMessage(null, i_crm);
|
|
rm.DATA.Add(BLWording.REL, iRel);
|
|
} while (false);
|
|
|
|
return rm;
|
|
});
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sMsg = Util.GetLastExceptionMsg(ex);
|
|
LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(AuthantedProgramsService), "", @"UpdateAuthorize(修改(系統授權))", @"", @"", @"");
|
|
}
|
|
finally
|
|
{
|
|
if (null != sMsg)
|
|
{
|
|
rm = new ErrorResponseMessage(sMsg, i_crm);
|
|
}
|
|
}
|
|
return rm;
|
|
}
|
|
|
|
#endregion 修改(系統授權)
|
|
|
|
#region 獲取系統角色(系統授權)
|
|
|
|
/// <summary>
|
|
/// 獲取系統角色(系統授權)
|
|
/// </summary>
|
|
/// <param name="i_crm"></param>
|
|
/// <returns></returns>
|
|
public ResponseMessage GetRules(RequestMessage i_crm)
|
|
{
|
|
ResponseMessage rm = null;
|
|
string sMsg = null;
|
|
var db = SugarBase.DB;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var saRules = db.Queryable<OTB_SYS_Rules>().Where(x => x.OrgID == i_crm.ORIGID && x.DelStatus == "N").ToList();
|
|
rm = new SuccessResponseMessage(null, i_crm);
|
|
rm.DATA.Add(BLWording.REL, saRules);
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sMsg = Util.GetLastExceptionMsg(ex);
|
|
LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(AuthantedProgramsService), "", @"GetRules(獲取系統角色(系統授權))", @"", @"", @"");
|
|
}
|
|
finally
|
|
{
|
|
if (null != sMsg)
|
|
{
|
|
rm = new ErrorResponseMessage(sMsg, i_crm);
|
|
}
|
|
}
|
|
return rm;
|
|
}
|
|
|
|
#endregion 獲取系統角色(系統授權)
|
|
|
|
#region 獲取系統模組(系統授權)
|
|
|
|
/// <summary>
|
|
/// 獲取系統模組(系統授權)
|
|
/// </summary>
|
|
/// <param name="i_crm"></param>
|
|
/// <returns></returns>
|
|
public ResponseMessage GetModulelist(RequestMessage i_crm)
|
|
{
|
|
ResponseMessage rm = null;
|
|
string sMsg = null;
|
|
var db = SugarBase.DB;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var bParentID = _fetchBool(i_crm, @"ParentID");
|
|
var bIncludeParent = _fetchBool(i_crm, @"IncludeParent");
|
|
var saRules = db.Queryable<OTB_SYS_ModuleList>()
|
|
.Where(x => x.OrgID == i_crm.ORIGID)
|
|
.WhereIF(!bParentID && !bIncludeParent, x => SqlFunc.HasValue(x.ParentID))
|
|
.WhereIF(bParentID && !bIncludeParent, x => !SqlFunc.HasValue(x.ParentID))
|
|
.OrderBy(x => x.OrderByValue)
|
|
.ToList();
|
|
rm = new SuccessResponseMessage(null, i_crm);
|
|
rm.DATA.Add(BLWording.REL, saRules);
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sMsg = Util.GetLastExceptionMsg(ex);
|
|
LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(AuthantedProgramsService), "", @"GetModulelist(獲取系統模組(系統授權))", @"", @"", @"");
|
|
}
|
|
finally
|
|
{
|
|
if (null != sMsg)
|
|
{
|
|
rm = new ErrorResponseMessage(sMsg, i_crm);
|
|
}
|
|
}
|
|
return rm;
|
|
}
|
|
|
|
#endregion 獲取系統模組(系統授權)
|
|
}
|
|
}
|