using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using WMS.Model.Base; using WMS.IData.ISystemManage; using WMS.IData;using Oracle.ManagedDataAccess.Client; using WMS.Common; using WMS.DBUtility; using WMS.Model.SystemManage; namespace WMS.SqlServerData.SystemManageData { public class SysRoleData:ISysRole { /// /// 获取角色信息 /// /// Role Name /// public List GetRole(string strRoleId) { List listRole = new List(); string strSQL = "select * from T_BASE_ROLEDICTIONARY where 1 = 1 "; if (strRoleId != "") { strSQL += " and Role_Id = '" + strRoleId + "'"; } strSQL = strSQL + " order by role_id asc"; DataTable dt = SystemDataObject.Instance.GetDataTable(strSQL); if (dt != null) { listRole = ConvertHelper.ConvertToList(dt); } return listRole; } /// /// 获取角色对应的用户信息 /// /// Role Name /// public List GetRoleUser(string strRoleId) { List listUser = new List(); string strSQL =@"select T_BASE_USERINFO.* ,T_BASE_COMPANY.COM_NAME from T_BASE_ROLE left outer join T_BASE_USERINFO on T_BASE_ROLE.USER_ID = T_BASE_USERINFO.USER_ID left outer join T_BASE_COMPANY on T_BASE_USERINFO.COM_ID = T_BASE_COMPANY.COM_ID where 1 = 1 "; if (strRoleId != "") { strSQL += " and T_BASE_ROLE.ROLE_ID = '" + strRoleId + "'"; } DataTable dt = SystemDataObject.Instance.GetDataTable(strSQL); if (dt != null) { listUser = ConvertHelper.ConvertToList(dt); } return listUser; } /// /// 获取角色对象的功能操作 /// /// Role Name /// public List GetRoleMenuFun(string strRoleId, string strType) { List list = new List(); string strSQL = ""; switch (strType) { case "MenuFun": strSQL = GetMenuFunSql(strRoleId); break; case "GoodsType": strSQL = GetGoodsTypeSql(strRoleId); break; case "Provider": strSQL = GetProviderSql(strRoleId); break; case "Storage": strSQL = GetStorageSql(strRoleId); break; } DataTable dt = SystemDataObject.Instance.GetDataTable(strSQL); if (dt != null) { list = ConvertHelper.ConvertToList(dt); } return list; } /// /// 获取仓库权限SQL /// /// /// private string GetStorageSql(string strRoleId) { string strSQL = ""; if (strRoleId != "") { strSQL =@"select '-1' as IDS,'全部' as NAMES,'0' as PID,'QB' as FLAG,'0' as ISCHECK,'' as VID from dual union all select STORAGE_TYPE_ID as IDS,STORAGE_TYPE_NAME as NAMES,'-1' as PID,'FL' as FLAG,'0' as ISCHECK,STORAGE_TYPE_ID as VID from T_BASE_STORAGE_TYPE where STORAGE_TYPE_ID not in (select STORAGE_TYPE_ID from T_BASE_STORAGE_ROLE where ROLE_ID = '" + strRoleId +@"') union all select STORAGE_ID as IDS,STORAGE_NAME as NAMES,STORAGE_TYPE_ID as PID,'CK' as FLAG,'0' as ISCHECK,STORAGE_ID as VID from T_BASE_STORAGEINFO where STORAGE_ID not in (select STORAGE_ID from T_BASE_STORAGE_ROLE where ROLE_ID = '" + strRoleId +@"') union all select STORAGE_AREA_ID as IDS,STORAGE_AREA_NAME as NAME,STORAGE_ID as PID,'KQ' as FLAG,'0' as ISCHECK,STORAGE_AREA_ID as VID from T_BASE_STORAGE_AREA where STORAGE_AREA_ID not in (select STORAGE_AREA_ID from T_BASE_STORAGE_ROLE where ROLE_ID = '" + strRoleId +@"') union all select STORAGE_TYPE_ID as IDS,STORAGE_TYPE_NAME as NAMES,'-1' as PID,'FL' as FLAG,'1' as ISCHECK,STORAGE_TYPE_ID as VID from T_BASE_STORAGE_TYPE where STORAGE_TYPE_ID in (select STORAGE_TYPE_ID from T_BASE_STORAGE_ROLE where ROLE_ID = '" + strRoleId +@"') union all select STORAGE_ID as IDS,STORAGE_NAME as NAMES,STORAGE_TYPE_ID as PID,'CK' as FLAG,'1' as ISCHECK,STORAGE_ID as VID from T_BASE_STORAGEINFO where STORAGE_ID in (select STORAGE_ID from T_BASE_STORAGE_ROLE where ROLE_ID = '" + strRoleId +@"') union all select STORAGE_AREA_ID as IDS,STORAGE_AREA_NAME as NAME,STORAGE_ID as PID,'KQ' as FLAG,'1' as ISCHECK,STORAGE_AREA_ID as VID from T_BASE_STORAGE_AREA where STORAGE_AREA_ID in (select STORAGE_AREA_ID from T_BASE_STORAGE_ROLE where ROLE_ID = '" + strRoleId +@"')"; } else { strSQL =@"select '-1' as IDS,'全部' as NAMES,'0' as PID,'QB' as FLAG,'0' as ISCHECK,'' as VID from dual union all select STORAGE_TYPE_ID as IDS,STORAGE_TYPE_NAME as NAMES,'-1' as PID,'FL' as FLAG,'0' as ISCHECK,STORAGE_TYPE_ID as VID from T_BASE_STORAGE_TYPE union all select STORAGE_ID as IDS,STORAGE_NAME as NAMES,STORAGE_TYPE_ID as PID,'CK' as FLAG,'0' as ISCHECK,STORAGE_ID as VID from T_BASE_STORAGEINFO union all select STORAGE_AREA_ID as IDS,STORAGE_AREA_NAME as NAME,STORAGE_ID as PID,'KQ' as FLAG,'0' as ISCHECK,STORAGE_AREA_ID as VID from T_BASE_STORAGE_AREA"; } return strSQL; } /// /// 获取供应商权限SQL /// /// /// private string GetProviderSql(string strRoleId) { string strSQL = ""; if (strRoleId != "") { strSQL =@"select '-1' as IDS,'全部' as NAMES,'0' as PID,'FL' as FLAG,'0' as ISCHECK,'' as VID from dual union all select PRO_TYPE_ID as IDS,PRO_TYPE_NAME as NAMES,'-1' as PID,'FL' as FLAG,'0' as ISCHECK,PRO_TYPE_ID as VID from t_base_provider_type where PRO_TYPE_ID not in (select PRO_TYPE_ID from T_BASE_PROVIDER_ROLE where ROLE_ID = '" + strRoleId +@"') union all select PROVIDER_ID as IDS,PROVIDER_NAME as NAMES,PRO_TYPE_ID as PID,'GYS' as FLAG,'0' as ISCHECK,PROVIDER_ID as VID from t_base_provider_dictionary where PROVIDER_ID not in (select PROVIDER_ID from T_BASE_PROVIDER_ROLE where ROLE_ID = '" + strRoleId +@"') union all select PRO_TYPE_ID as IDS,PRO_TYPE_NAME as NAMES,'-1' as PID,'FL' as FLAG,'1' as ISCHECK,PRO_TYPE_ID as VID from t_base_provider_type where PRO_TYPE_ID in (select PRO_TYPE_ID from T_BASE_PROVIDER_ROLE where ROLE_ID = '" + strRoleId +@"') union all select PROVIDER_ID as IDS,PROVIDER_NAME as NAMES,PRO_TYPE_ID as PID,'GYS' as FLAG,'1' as ISCHECK,PROVIDER_ID as VID from t_base_provider_dictionary where PROVIDER_ID in (select PROVIDER_ID from T_BASE_PROVIDER_ROLE where ROLE_ID = '" + strRoleId +@"')"; } else { strSQL =@"select '-1' as IDS,'全部' as NAMES,'0' as PID,'FL' as FLAG,'0' as ISCHECK,'' as VID from dual union all select PRO_TYPE_ID as IDS,PRO_TYPE_NAME as NAMES,'-1' as PID,'FL' as FLAG,'0' as ISCHECK,PRO_TYPE_ID as VID from t_base_provider_type union all select PROVIDER_ID as IDS,PROVIDER_NAME as NAMES,PRO_TYPE_ID as PID,'GYS' as FLAG,'0' as ISCHECK,PROVIDER_ID as VID from t_base_provider_dictionary "; } return strSQL; } /// /// 获取商品分类权限SQL /// /// /// private string GetGoodsTypeSql(string strRoleId) { string strSQL = ""; if (strRoleId != "") { strSQL =@"--select '-1' as IDS,'全部' as NAMES,'0' as PID,'FL' as FLAG,'0' as ISCHECK,'' as VID from dual --union all select GOODS_TYPE_ID as IDS,GOODS_TYPE_NAME as NAMES,PARENT_ID as PID,'FL' as FLAG,'0' as ISCHECK,GOODS_TYPE_ID as VID from T_BASE_GOODS_TYPE where GOODS_TYPE_ID not in (select GOODS_TYPE_ID from t_base_goods_role where ROLE_ID ='" + strRoleId +@"') union all select GOODS_TYPE_ID as IDS,GOODS_TYPE_NAME as NAMES,PARENT_ID as PID,'FL' as FLAG,'1' as ISCHECK,GOODS_TYPE_ID as VID from T_BASE_GOODS_TYPE where GOODS_TYPE_ID in (select GOODS_TYPE_ID from t_base_goods_role where ROLE_ID ='" + strRoleId +@"')"; } else { strSQL =@"--select '-1' as IDS,'全部' as NAMES,'0' as PID,'FL' as FLAG,'0' as ISCHECK,'' as VID from dual --union all select GOODS_TYPE_ID as IDS,GOODS_TYPE_NAME as NAMES,PARENT_ID as PID,'FL' as FLAG,'0' as ISCHECK,GOODS_TYPE_ID as VID from T_BASE_GOODS_TYPE"; } return strSQL; } /// /// 获取操作功能权限SQL /// /// /// private string GetMenuFunSql(string strRoleId) { string strSQL = ""; if (strRoleId != "") { strSQL =@" select '0' as IDS,'操作权限' as NAMES,'-1' as PID,'MENU' as FLAG,'0' as ISCHECK,'' as VID from dual union all select MENU_ID as IDS,MENU_NAME as NAMES,P_MENU_ID as PID,'MENU' as FLAG,'1' as IsCheck,MENU_ID as VID from T_BASE_MENU where MENU_ID in (select MENU_ID from T_BASE_MENUROLE where ROLE_ID = '" + strRoleId +@"') union all select MENU_ID as IDS,MENU_NAME as NAMES,P_MENU_ID as PID,'MENU' as FLAG,'0' as IsCheck,MENU_ID as VID from T_BASE_MENU where MENU_ID not in (select MENU_ID from T_BASE_MENUROLE where ROLE_ID = '" + strRoleId +@"') union all select 'FUN:' + FUN_ID + ':' + MENU_ID as IDS,FUN_DICTORY as NAMES,MENU_ID as PID,'FUN' as FLAG,'1' as IsCheck,FUN_ID as VID from T_BASE_FUNCTIONINFO where MENU_ID in (select MENU_ID from T_BASE_FUNCTIONROLE where ROLE_ID = '" + strRoleId +@"') and FUN_ID in (select FUN_ID from T_BASE_FUNCTIONROLE where ROLE_ID = '" + strRoleId +@"') and length(menu_id)>2 and FUN_VISIBLE ='1' union all select 'FUN:' + FUN_ID +':' + MENU_ID as IDS,FUN_DICTORY as NAMES,MENU_ID as PID,'FUN' as FLAG,'0' as IsCheck,FUN_ID as VID from T_BASE_FUNCTIONINFO where MENU_ID not in (select MENU_ID from T_BASE_FUNCTIONROLE where ROLE_ID = '" + strRoleId +@"') and FUN_ID in (select FUN_ID from T_BASE_FUNCTIONROLE where ROLE_ID = '" + strRoleId +@"') and length(menu_id)>2 and FUN_VISIBLE ='1'"; } else { strSQL =@"select '0' as IDS,'操作权限' as NAMES,'-1' as PID,'MENU' as FLAG,'0' as ISCHECK,'' as VID from dual union all select MENU_ID as IDS,MENU_NAME as NAMES,P_MENU_ID as PID,'MENU' as FLAG,'0' as IsCheck,MENU_ID as VID from T_BASE_MENU union all select 'FUN:' + FUN_ID + ':' + MENU_ID as IDS,FUN_DICTORY as NAMES,MENU_ID as PID,'FUN' as FLAG,'0' as IsCheck,FUN_ID as VID from T_BASE_FUNCTIONINFO where length(menu_id)>2 and FUN_VISIBLE ='1'"; } return strSQL; } } }