BaoKai_202508_Wms_Jingwang_.../WMS.SqlServerData/SystemManageData/RoleMessageData.cs
2025-08-24 21:52:42 +08:00

113 lines
4.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WMS.Model.SystemManage;
using System.Data;
using WMS.IData;using Oracle.ManagedDataAccess.Client;
using WMS.IData.ISystemManage;
namespace WMS.SqlServerData.SystemManageData
{
public class RoleMessageData : IRoleMessage
{
/// <summary>
/// 通过Role Name获得消息类型权限消息
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public DataTable GetRoleMessageData(RoleMessageModel model)
{
StringBuilder strSql = new StringBuilder();
strSql.Append(@"select t.vc_char_value MESSAGE_TYPE, t.vc_dictionary_name TYPE_NAME,1 SELECTED from T_SYS_DICTIONARY_TAB t
left join T_BASE_RoleMessage m on t.vc_char_value = m.mess_type
where vc_dictionary_type='Message_type' and t.vc_char_value in(select distinct mess_type from T_BASE_ROLEMESSAGE where role_id='" + model.ROLE_ID +@"')
union
select t.vc_char_value MESSAGE_TYPE, t.vc_dictionary_name TYPE_NAME,0 SELECTED from T_SYS_DICTIONARY_TAB t
left join T_BASE_RoleMessage m on t.vc_char_value = m.mess_type
where vc_dictionary_type='Message_type' and t.vc_char_value not in(select distinct mess_type from T_BASE_ROLEMESSAGE where role_id='" + model.ROLE_ID + "')");
return SystemDataObject.Instance.GetDataTable(strSql.ToString());
}
public void AddRoleMessageData(RoleMessageModel model)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into T_BASE_RoleMessage(");
strSql.Append("ROLE_ID,MESS_TYPE)");
strSql.Append(" values (");
strSql.Append(":ROLE_ID,:MESS_TYPE)");
OracleParameter[] parameters = {
new OracleParameter(":ROLE_ID",OracleDbType.Varchar2),
new OracleParameter(":MESS_TYPE",OracleDbType.Varchar2)};
parameters[0].Value = model.ROLE_ID;
parameters[1].Value = model.MESSAGE_TYPE;
SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters);
}
public void UpdateRoleMessageData(RoleMessageModel model)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update T_BASE_RoleMessage set ");
strSql.Append("MESS_TYPE=:MESS_TYPE");
strSql.Append(" where ROLE_ID=:ROLE_ID");
OracleParameter[] parameters = {
new OracleParameter(":MESS_TYPE",OracleDbType.Varchar2),
new OracleParameter(":ROLE_ID",OracleDbType.Varchar2)};
parameters[0].Value = model.MESSAGE_TYPE;
parameters[1].Value = model.ROLE_ID;
SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters);
}
public void DeleteRoleMessageData(string model)
{
//该表无主键信息,请自定义主键/条件字段
StringBuilder strSql = new StringBuilder();
strSql.Append("delete from T_BASE_RoleMessage ");
strSql.Append(" where ROLE_ID=:ROLE_ID");
OracleParameter[] parameters = {
new OracleParameter(":ROLE_ID",OracleDbType.Varchar2),
};
parameters[0].Value = model;
SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters);
}
/// <summary>
/// 根据当前登录人获得角色 查看消息表中角色对应的消息类型
/// </summary>
/// <param name="role_id"></param>
/// <returns></returns>
public DataTable GetMessageByRole(string user_id)
{
StringBuilder strSql = new StringBuilder();
strSql.Append(@" select * from t_Base_Message where mess_type in ( select distinct MEss_type
from T_BASE_ROLEMESSAGE
where role_id in
((select Role_id
from T_BASE_ROLE
where user_id = '" + user_id +@"'
and role_id in
(select distinct Role_id from t_Base_Rolemessage))))");
return SystemDataObject.Instance.GetDataTable(strSql.ToString());
}
}
}