#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);
}
}
}