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 { /// /// 通过Role Name获得消息类型权限消息 /// /// /// 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); } /// /// 根据当前登录人获得角色 查看消息表中角色对应的消息类型 /// /// /// 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()); } } }