#region using System; using System.Data; using CSFrameworkV5.Common; using CSFrameworkV5.Core; using CSFrameworkV5.Core.CodeGenerator; using CSFrameworkV5.Models; #endregion namespace CSFrameworkV5.DataAccess { /// /// 角色资料的DAL层 /// [DefaultORM_UpdateMode(typeof(tb_MyRole), true)] public class dalRole : dalBaseDataDict { public dalRole(Loginer loginer) : base(loginer) { _KeyName = tb_MyRole.__KeyName; _TableName = tb_MyRole.__TableName; _ModelType = typeof(tb_MyRole); _Database = DatabaseProvider.SystemDatabase; } /// /// 根据表名获取该表的SQL命令生成器 /// /// 表名 /// protected override IGenerateSqlCommand CreateSqlGenerator( DataTable table) { Type ORM = null; if (table.TableName == tb_MyRole.__TableName) ORM = typeof(tb_MyRole); if (table.TableName == tb_MyRoleActions.__TableName) ORM = typeof(tb_MyRoleActions); if (table.TableName == tb_MyUserRoles.__TableName) ORM = typeof(tb_MyUserRoles); if (ORM == null) throw new Exception(table.TableName + "表没有ORM模型!"); //支持两种SQL命令生成器 return new GenerateSqlCmdByTableFields(ORM, table, GeneratorFactory); } /// /// 删除角色 /// /// 角色编号 /// public override bool Delete(string keyValue) { var sp = _Database.CreateSqlProc("usp_DeleteRole"); sp.AddParam("RoleID", DbType.String, keyValue); sp.AddParam("DataSetID", DbType.String, _Loginer.DBID); //增加帐套参数 var i = _Database.ExecuteCommand(sp.Command); return true; } public override DataTable GetLookupData() { var sql = $"SELECT DataSetID,RoleID,RoleName FROM tb_MyRole WHERE DataSetID={_Database.ParamSymboName}DataSetID ORDER BY RoleName"; var cmd = _Database.CreateCommand(sql); cmd.AddParam("DataSetID", _Loginer.DBID); return _Database.GetTable(cmd.Command, TableName); } public DataTable GetRoleAction(string roleID) { var sql = $"SELECT * FROM tb_MyRoleActions WHERE RoleID={_Database.ParamSymboName}RoleID AND DataSetID={_Database.ParamSymboName}DataSetID"; var cmd = _Database.CreateCommand(sql); cmd.AddParam("DataSetID", _Loginer.DBID); cmd.AddParam("RoleID", roleID); return _Database.GetTable(cmd.Command, tb_MyRoleActions.__TableName); } public DataTable GetRoleData() { var sql = $"SELECT * FROM tb_MyRole WHERE DataSetID={_Database.ParamSymboName}DataSetID ORDER BY RoleName"; var cmd = _Database.CreateCommand(sql); cmd.AddParam("DataSetID", _Loginer.DBID); return _Database.GetTable(cmd.Command, TableName); } public DataSet GetRoleOwners(string roleID) { var sp = _Database.CreateSqlProc("usp_GetRoleOwners"); sp.AddParam("DataSetID", DbType.String, _Loginer.DBID); sp.AddParam("RoleID", DbType.String, roleID); var ds = _Database.GetDataSet(sp.Command); ds.Tables[0].TableName = tb_MyGroup.__TableName; ds.Tables[1].TableName = tb_MyUser.__TableName; ds.Tables[2].TableName = tb_MyUserRoles.__TableName; return ds; } public override DataTable GetSummaryData() { AssertTableName(); var sql = $"SELECT * FROM tb_MyRole WHERE DataSetID={_Database.ParamSymboName}DataSetID ORDER BY RoleName"; var cmd = _Database.CreateCommand(sql); cmd.AddParam("DataSetID", _Loginer.DBID); return _Database.GetTable(cmd.Command, TableName); } public bool IsExistsRole(string roleID) { var sql = $"SELECT COUNT(*) FROM tb_MyRole WHERE DataSetID={_Database.ParamSymboName}DataSetID AND RoleID={_Database.ParamSymboName}RoleID"; var cmd = _Database.CreateCommand(sql); cmd.AddParam("DataSetID", _Loginer.DBID); cmd.AddParam("RoleID", roleID); var o = _Database.ExecuteScalar(cmd.Command); return ConvertEx.ToInt(o) > 0; } } }