/// <summary> /// 获取权限列表 /// </summary> /// <param name="CategoryId">权限大类编号(小于等于0不作条件)</param> /// <param name="ClassId">权限类别编号(小于等于0不作条件)</param> /// <returns>返回系统权限数据实体集合</returns> public virtual IList <Model.SystemStructure.SysPermission> GetSysPermissionList(int CategoryId, int ClassId) { IList <Model.SystemStructure.SysPermission> List = new List <Model.SystemStructure.SysPermission>(); string strWhere = Sql_SysPermission_Select + " where 1 = 1 "; if (CategoryId > 0) { strWhere += string.Format(" and CategoryId = {0} ", CategoryId); } if (ClassId > 0) { strWhere += string.Format(" and ClassId = {0} ", ClassId); } DbCommand dc = base.SystemStore.GetSqlStringCommand(strWhere); using (IDataReader dr = DbHelper.ExecuteReader(dc, base.SystemStore)) { Model.SystemStructure.SysPermission model = null; while (dr.Read()) { model = new EyouSoft.Model.SystemStructure.SysPermission(); if (!dr.IsDBNull(0)) { model.Id = dr.GetInt32(0); } if (!dr.IsDBNull(1)) { model.CategoryId = dr.GetInt32(1); } if (!dr.IsDBNull(2)) { model.ClassId = dr.GetInt32(2); } model.PermissionName = dr[3].ToString(); if (!dr.IsDBNull(4)) { model.SortId = dr.GetInt32(4); } if (!dr.IsDBNull(dr.GetOrdinal("IsEnable")) && dr["IsEnable"].ToString().Equals("1")) { model.IsEnable = true; } else { model.IsEnable = false; } List.Add(model); } } return(List); }
/// <summary> /// 获取用户后台所有的(已启用的)权限 /// </summary> /// <param name="companyTypes">用户公司类型集合</param> /// <returns></returns> public Model.SystemStructure.SysPermissionCategory GetAllPermissionByUser(Model.CompanyStructure.CompanyType[] companyTypes) { var strSql = new StringBuilder(); strSql.Append(" declare @Category int; "); //个人中心(用户后台) strSql.AppendFormat(" select @Category = [Id] from tbl_SysPermissionCategory where [TypeId] = {0} and IsEnable = '1'; ", 2); strSql.Append(" select * from tbl_SysPermissionCategory where [Id] = @Category; "); strSql.Append(" select * "); strSql.Append( " ,(select * FROM tbl_SysPermissionList list WHERE list.CategoryId = @Category AND list.IsEnable = '1' and list.ClassId = tbl_SysPermissionClass.Id for xml raw,root('Root')) as PermissionList "); strSql.Append(" from tbl_SysPermissionClass where CategoryId = @Category and IsEnable = '1' "); //营销工具 = 97, 系统设置 = 98, 我的网店 = 99 //营销工具、系统设置、我的网店 所有身份公司都有这些权限 strSql.Append(" and tbl_SysPermissionClass.Id in (97,98,99 "); if (companyTypes != null && companyTypes.Any()) { foreach (var t in companyTypes) { switch (t) { case Model.CompanyStructure.CompanyType.专线: case Model.CompanyStructure.CompanyType.组团: case Model.CompanyStructure.CompanyType.地接: case Model.CompanyStructure.CompanyType.景区: strSql.AppendFormat(" ,{0} ", (int)t); break; default: continue; } } } strSql.Append(" ) ; "); DbCommand dc = SystemStore.GetSqlStringCommand(strSql.ToString()); var model = new Model.SystemStructure.SysPermissionCategory(); using (IDataReader dr = DbHelper.ExecuteReader(dc, SystemStore)) { if (dr.Read()) { if (!dr.IsDBNull(dr.GetOrdinal("Id"))) { model.Id = dr.GetInt32(dr.GetOrdinal("Id")); } if (!dr.IsDBNull(dr.GetOrdinal("TypeId"))) { model.TypeId = dr.GetInt32(dr.GetOrdinal("TypeId")); } if (!dr.IsDBNull(dr.GetOrdinal("CategoryName"))) { model.CategoryName = dr.GetString(dr.GetOrdinal("CategoryName")); } if (!dr.IsDBNull(dr.GetOrdinal("SortId"))) { model.SortId = dr.GetInt32(dr.GetOrdinal("SortId")); } if (!dr.IsDBNull(dr.GetOrdinal("IsEnable"))) { if (dr.GetString(dr.GetOrdinal("IsEnable")) == "1" || dr.GetString(dr.GetOrdinal("IsEnable")).ToLower() == "ture") { model.IsEnable = true; } } } dr.NextResult(); model.SysPermissionClass = new List <Model.SystemStructure.SysPermissionClass>(); Model.SystemStructure.SysPermissionClass classModel; while (dr.Read()) { classModel = new Model.SystemStructure.SysPermissionClass(); if (!dr.IsDBNull(dr.GetOrdinal("Id"))) { classModel.Id = dr.GetInt32(dr.GetOrdinal("Id")); } if (!dr.IsDBNull(dr.GetOrdinal("CategoryId"))) { classModel.CategoryId = dr.GetInt32(dr.GetOrdinal("CategoryId")); } if (!dr.IsDBNull(dr.GetOrdinal("SortId"))) { classModel.SortId = dr.GetInt32(dr.GetOrdinal("SortId")); } if (!dr.IsDBNull(dr.GetOrdinal("ClassName"))) { classModel.ClassName = dr.GetString(dr.GetOrdinal("ClassName")); } if (!dr.IsDBNull(dr.GetOrdinal("IsEnable"))) { if (dr.GetString(dr.GetOrdinal("IsEnable")) == "1" || dr.GetString(dr.GetOrdinal("IsEnable")).ToLower() == "ture") { classModel.IsEnable = true; } } if (!dr.IsDBNull(dr.GetOrdinal("PermissionList"))) { var xRoot = XElement.Parse(dr.GetString(dr.GetOrdinal("PermissionList"))); var xRows = Common.Utility.GetXElements(xRoot, "row"); if (xRows != null && xRows.Any()) { classModel.SysPermission = new List <Model.SystemStructure.SysPermission>(); foreach (var t in xRows) { if (t == null) { continue; } var tmp = new Model.SystemStructure.SysPermission { CategoryId = model.Id, ClassId = classModel.Id, Id = Common.Utility.GetInt(Common.Utility.GetXAttributeValue(t, "Id")), PermissionName = Common.Utility.GetXAttributeValue(t, "PermissionName"), SortId = Common.Utility.GetInt(Common.Utility.GetXAttributeValue(t, "SortId")) }; string strt = Common.Utility.GetXAttributeValue(t, "IsEnable"); if (!string.IsNullOrEmpty(strt) && (strt == "1" || strt.ToLower() == "true")) { tmp.IsEnable = true; } classModel.SysPermission.Add(tmp); } } } model.SysPermissionClass.Add(classModel); } } return(model); }