#region using System; using System.Collections.Generic; using System.Data; using CSFramework.DB; using CSFrameworkV5.Common; using CSFrameworkV5.Core; using CSFrameworkV5.Core.CodeGenerator; using CSFrameworkV5.Interfaces; using CSFrameworkV5.Models; using tb_MyGroupUser = CSFrameworkV5.Interfaces.tb_MyGroupUser; ///*************************************************************************/ ///* ///* 文件名 :dalUserGroup.cs ///* 程序说明 : 用户组数据字典的DAL层 ///* 原创作者 :www.csframework.com ///* ///* Copyright 2006-2021 wwww.csframework.com, 保留所有权利. ///* ///**************************************************************************/ #endregion namespace CSFrameworkV5.DataAccess { /// /// 用户组数据字典的DAL层 /// [DefaultORM_UpdateMode(typeof(tb_MyGroup), true)] public class dalUserGroup : dalBaseDataDict, IBridge_UserGroup { public dalUserGroup(Loginer loginer) : base(loginer) { _KeyName = tb_MyGroup.__KeyName; _TableName = tb_MyGroup.__TableName; _ModelType = typeof(tb_MyGroup); _Database = DatabaseProvider.SystemDatabase; } /// /// 添加对象 /// /// /// public int Add(List data) { var db = new DbFramework(_Database); var i = db.AddList(data, "isid"); return i; } public bool DeleteGroupData(string groupCode) { var sp = _Database.CreateSqlProc("usp_DeleteGroupData"); sp.AddParam("GroupCode", DbType.String, groupCode); sp.AddParam("DataSetID", DbType.String, _Loginer.DBID); object o = _Database.ExecuteCommand(sp.Command); return true; } public bool DeleteGroupRights(string groupCode) { var sp = _Database.CreateSqlProc("usp_DeleteGroupRights"); sp.AddParam("GroupCode", DbType.String, groupCode); sp.AddParam("DataSetID", DbType.String, _Loginer.DBID); object o = _Database.ExecuteCommand(sp.Command); return true; } public bool DeleteGroupUser(string groupCode, string account) { var sp = _Database.CreateSqlProc("usp_DeleteGroupUser"); sp.AddParam("GroupCode", DbType.String, groupCode); sp.AddParam("Account", DbType.String, account); sp.AddParam("DataSetID", DbType.String, _Loginer.DBID); var i = _Database.ExecuteCommand(sp.Command); return i > 0; } public DataTable GetGroup4Picker() { var sql = $"SELECT GroupCode,GroupName FROM tb_MyGroup WHERE DataSetID={_Database.ParamSymboName}DataSetID ORDER BY GroupCode"; var cmd = _Database.CreateCommand(sql); cmd.AddParam("DataSetID", _Loginer.DBID); return _Database.GetTable(cmd.Command, tb_MyGroup.__TableName); } public DataTable GetGroupActions(string groupCode) { var sp = _Database.CreateSqlProc("usp_GetGroupActions"); sp.AddParam("GroupCode", DbType.String, groupCode); sp.AddParam("DataSetID", DbType.String, _Loginer.DBID); return _Database.GetTable(sp.Command, "usp_GetGroupActions"); } public DataTable GetGroupByUser(string account) { var sql = $"SELECT * FROM tb_MyGroupUser WHERE DataSetID={_Database.ParamSymboName}DataSetID AND Account={_Database.ParamSymboName}Account"; var cmd = _Database.CreateSqlProc("usp_GetGroup"); cmd.AddParam("DatasetID", _Loginer.DBID); cmd.AddParam("Account", account); return _Database.GetTable(cmd.Command, tb_MyGroup.__TableName); } /// /// 获取指定用户组的角色 /// /// 组编号 /// public DataTable GetGroupRoles(string groupCode) { var sp = _Database.CreateSqlProc("usp_GetGroupRoles"); sp.AddParam("GroupCode", DbType.String, groupCode); sp.AddParam("DataSetID", DbType.String, _Loginer.DBID); return _Database.GetTable(sp.Command, tb_MyGroupRole.__TableName); } /// /// 取当前用户所属的角色 /// /// 组名,作为一个返回字段 /// 当前用户 /// public DataTable GetGroupRoles4Picker(string currentGroupCode, string currentUser) { var sp = _Database.CreateSqlProc("usp_GetGroupRoles4Picker"); sp.AddParam("GroupCode", DbType.String, currentGroupCode); sp.AddParam("UserAccount", DbType.String, currentUser); sp.AddParam("DataSetID", DbType.String, _Loginer.DBID); return _Database.GetTable(sp.Command, tb_MyGroupRole.__TableName); } public DataTable GetGroupUsers(string groupCode) { var sp = _Database.CreateSqlProc("usp_GetGroupUsers"); sp.AddParam("GroupCode", DbType.String, groupCode); sp.AddParam("DataSetID", DbType.String, _Loginer.DBID); return _Database.GetTable(sp.Command, Models.tb_MyGroupUser.__TableName); } public DataTable GetGroupUsers4Picker(string groupCode) { var sp = _Database.CreateSqlProc("usp_GetGroupUsers4Picker"); sp.AddParam("GroupCode", DbType.String, groupCode); sp.AddParam("DataSetID", DbType.String, _Loginer.DBID); return _Database.GetTable(sp.Command, Models.tb_MyGroupUser.__TableName); } public DataTable GetGroupUsers4TreeList() { var sp = _Database.CreateSqlProc("usp_GetGroupUsers4TreeList"); sp.AddParam("DataSetID", DbType.String, _Loginer.DBID); return _Database.GetTable(sp.Command, Models.tb_MyGroupUser.__TableName); } public DataTable GetMyGroups4Picker(string account) { var cmd = _Database.CreateSqlProc("usp_GetMyGroups4Picker"); cmd.AddParam("Account", account); cmd.AddParam("DatasetID", _Loginer.DBID); return _Database.GetTable(cmd.Command, tb_MyGroup.__TableName); } public DataTable Search(string GroupCode, string GroupName, string AttributeCodes, string Owner1, string OwnerTel1) { var cmd = _Database.CreateSqlProc("usp_GetGroup"); cmd.AddParam("DatasetID", _Loginer.DBID); cmd.AddParam("GroupCode", GroupCode); cmd.AddParam("GroupName", GroupName); cmd.AddParam("AttributeCodes", AttributeCodes); cmd.AddParam("Owner1", Owner1); cmd.AddParam("OwnerTel1", OwnerTel1); return _Database.GetTable(cmd.Command, tb_MyGroup.__TableName); } public bool SetOwner(string ownerType, string groupCode, string account) { var sql = $"UPDATE tb_MyGroup SET {ownerType}={_Database.ParamSymboName}Account WHERE DataSetID={_Database.ParamSymboName}DataSetID AND GroupCode={_Database.ParamSymboName}GroupCode"; var sp = _Database.CreateCommand(sql); sp.AddParam("Account", DbType.String, account); sp.AddParam("DataSetID", DbType.String, _Loginer.DBID); sp.AddParam("GroupCode", DbType.String, groupCode); var i = _Database.ExecuteCommand(sp.Command); return i == 1; } /// /// 根据表名获取该表的SQL命令生成器 /// /// 表名 /// protected override IGenerateSqlCommand CreateSqlGenerator( DataTable table) { Type ORM = null; if (table.TableName == tb_MyGroup.__TableName) ORM = typeof(tb_MyGroup); if (table.TableName == Models.tb_MyGroupUser.__TableName) ORM = typeof(Models.tb_MyGroupUser); if (table.TableName == tb_MyGroupRole.__TableName) ORM = typeof(tb_MyGroupRole); if (table.TableName == tb_MyRoleActions.__TableName) ORM = typeof(tb_MyRoleActions); if (table.TableName == tb_MyFormTagName.__TableName) ORM = typeof(tb_MyFormTagName); if (ORM == null) throw new Exception(table.TableName + "表没有ORM模型!"); //支持两种SQL命令生成器 return new GenerateSqlCmdByTableFields(ORM, table, GeneratorFactory); } /// /// 删除用户组 /// /// 用户组编号 /// public override bool Delete(string keyValue) { throw new CustomException( "当前功能不支持此方法!请使用DeleteGroupData或DeleteGroupRights"); } public override DataTable GetLookupData() { var sql = $"SELECT RowID,DataSetID,GroupCode,GroupName,ParentGroupCode,Owner1,Owner2 FROM tb_MyGroup WHERE DataSetID={_Database.ParamSymboName}DataSetID ORDER BY GroupName"; var cmd = _Database.CreateCommand(sql); cmd.AddParam("DataSetID", _Loginer.DBID); return _Database.GetTable(cmd.Command, tb_MyGroup.__TableName); } /// /// 获取所有用户组 /// /// public override DataTable GetSummaryData() { AssertTableName(); var sql = $"SELECT * FROM tb_MyGroup WHERE DataSetID={_Database.ParamSymboName}DataSetID ORDER BY GroupCode"; var cmd = _Database.CreateCommand(sql); cmd.AddParam("DataSetID", _Loginer.DBID); return _Database.GetTable(cmd.Command, TableName); } } }