ldj/Model/platform/data/RoleAuthority_Imp.cs

87 lines
5.3 KiB
C#

/// <summary>
///INTERFACE IMPLIMENT FOR TABLE t_RoleAuthority
///By wm with codesmith.
///on 04/18/2017
/// </summary>
using System;
using System.Data.SqlClient;
namespace DeiNiu.wms.Data.Model
{
[Serializable] class RoleAuthority_Imp : RoleAuthority_base_Imp
{
protected override void CmdPrepare(SqlCommand sqlCmd)
{
base.CmdPrepare(sqlCmd);
RoleAuthority obj = ( RoleAuthority)modelObj;
switch (_cust_op_flag)
{
case 100: //根据权限取所有有用该权限的角色
_strSql = "SELECT ROLE.* FROM T_ROLE ROLE INNER JOIN T_ROLEAUTHORITY AU ON ROLE.ID =AU.RA_ROLE WHERE AU.ra_authority = @AUTH AND AU.DR=1 AND ROLE.DR=1";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@AUTH", obj.CmdParameters[0]);
break;
case 200: //取角色的人员列表
/* _strSql = "SELECT EM.ID, EM.EM_NAME,DEP.DEP_NAME FROM t_RoleEmp RE INNER JOIN T_EMPLOYEE EM ON RE.re_employee =EM.ID INNER JOIN T_DEPARTMENT DEP ON DEP.ID=EM.EM_DEPT"
+ " WHERE RE.RE_ROLE = @ROLE AND RE.DR=1 AND EM.DR=1 AND DEP.DR=1"; */
_strSql = "SELECT DISTINCT EM.ID, EM.EM_NAME,DEP.DEP_NAME FROM t_RoleEmp RE INNER JOIN T_EMPLOYEE EM ON RE.re_employee =EM.ID "
+ " INNER JOIN T_DEPTEMP DE ON DE.DE_EMPLOYEE = EM.ID INNER JOIN T_DEPARTMENT DEP ON DEP.ID = DE.DE_DEPT "
+ " WHERE RE.RE_ROLE = @ROLE AND RE.DR=1 AND EM.DR=1 AND DEP.DR=1 AND DE.DR=1";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@ROLE", obj.CmdParameters[0]);
break;
case 300: //取有某权限的人员列表
/* _strSql = "SELECT EM.ID, EM.EM_NAME,DEP.DEP_NAME FROM t_RoleEmp RE INNER JOIN T_EMPLOYEE EM ON RE.re_employee =EM.ID INNER JOIN T_ROLEAUTHORITY AU ON RE.RE_ROLE = AU.RA_ROLE "
+"INNER JOIN T_DEPARTMENT DEP ON DEP.ID=EM.EM_DEPT "
+" WHERE AU.RA_AUTHORITY = @AUTH AND RE.DR=1 AND EM.DR=1 AND AU.DR=1 AND DEP.DR=1"; */
_strSql = "SELECT DISTINCT EM.ID, EM.EM_NAME,DEP.DEP_NAME FROM t_RoleEmp RE INNER JOIN T_EMPLOYEE EM ON RE.re_employee =EM.ID INNER JOIN T_ROLEAUTHORITY AU ON RE.RE_ROLE = AU.RA_ROLE "
+ " INNER JOIN T_DEPTEMP DE ON DE.DE_EMPLOYEE = EM.ID INNER JOIN T_DEPARTMENT DEP ON DEP.ID = DE.DE_DEPT "
+ " WHERE AU.RA_AUTHORITY = @AUTH AND RE.DR=1 AND EM.DR=1 AND AU.DR=1 AND DEP.DR=1 AND DE.DR=1";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@AUTH", obj.CmdParameters[0]);
break;
case 400: //取某人的角色列表
_strSql = "SELECT distinct ROLE.* FROM T_ROLE ROLE INNER JOIN t_RoleEmp RE ON ROLE.ID =RE.RE_ROLE WHERE RE.RE_EMPLOYEE = @EMID AND RE.DR=1 AND ROLE.DR=1";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@EMID", obj.CmdParameters[0]);
break;
case 500: //取某人的权限列表
_strSql = "SELECT DISTINCT AU.* FROM t_RoleEmp RE INNER JOIN T_ROLEAUTHORITY RA ON RE.RE_ROLE =RA.RA_ROLE INNER JOIN T_AUTHORITY AU ON AU.ID = RA.RA_AUTHORITY WHERE 1=1 "
;
if (obj.CmdParameters[1].ToString() != "-1")
{
_strSql += " AND RE.WAREHOUSE =@WAREHOUSE ";
sqlCmd.Parameters.AddWithValue("@WAREHOUSE", obj.CmdParameters[1]);
}
_strSql+= " AND (AU.AUTH_PUBLIC=1 OR RE.RE_EMPLOYEE = @EMID) AND AU.DR=1 AND RE.DR=1 AND RA.DR=1 ORDER BY AU.AUTH_ORDER";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@EMID", obj.CmdParameters[0]);
break;
case 600: //删除角色对应的权限
_strSql = "UPDATE T_ROLEAUTHORITY SET DR=0 WHERE RA_ROLE=@ROLE AND DR=1 ";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@ROLE", obj.CmdParameters[0]);
break;
case 800: //公共权限
_strSql = "SELECT * FROM T_AUTHORITY WHERE AUTH_PUBLIC=1 AND DR=1 ";
sqlCmd.CommandText = _strSql;
break;
case 900: //公共权限非公共信息
_strSql = "SELECT * FROM T_AUTHORITY WHERE AUTH_PUBLIC=1 AND DR=1 and auth_publicinformation=0 ";
sqlCmd.CommandText = _strSql;
break;
case 1000: //取某人的审核角色列表
_strSql = "SELECT ROLE.* FROM T_ROLE ROLE INNER JOIN t_RoleEmp RE ON ROLE.ID =RE.RE_ROLE WHERE RE.RE_EMPLOYEE = @EMID AND RE.DR=1 AND ROLE.DR=1 AND ROLE.role_4Approve=1";
sqlCmd.CommandText = _strSql;
sqlCmd.Parameters.AddWithValue("@EMID", obj.CmdParameters[0]);
break;
}
}
}
}