public object GetUserGroup(Dictionary <string, object> dicParas) { try { XCCloudUserTokenModel userTokenKeyModel = (XCCloudUserTokenModel)dicParas[Constant.XCCloudUserTokenModel]; string errMsg = string.Empty; string groupId = dicParas.ContainsKey("groupId") ? dicParas["groupId"].ToString() : string.Empty; if (string.IsNullOrEmpty(groupId)) { errMsg = "groupId参数不能为空"; return(ResponseModelFactory.CreateFailModel(isSignKeyReturn, errMsg)); } string sql = string.Empty; SqlParameter[] parameters = new SqlParameter[0]; if (userTokenKeyModel.LogType == (int)RoleType.MerchUser) { string merchId = userTokenKeyModel.DataModel.MerchID; sql = " exec SelectUserGroupGrant @GroupID,@MerchID"; Array.Resize(ref parameters, parameters.Length + 1); parameters[parameters.Length - 1] = new SqlParameter("@GroupID", groupId); Array.Resize(ref parameters, parameters.Length + 1); parameters[parameters.Length - 1] = new SqlParameter("@MerchID", merchId); } else if (userTokenKeyModel.LogType == (int)RoleType.XcAdmin) { sql = " exec SelectFunctionForXA @GroupID"; Array.Resize(ref parameters, parameters.Length + 1); parameters[parameters.Length - 1] = new SqlParameter("@GroupID", groupId); } //返回商户信息和功能菜单信息 System.Data.DataSet ds = XCCloudBLL.ExecuteQuerySentence(sql, parameters); if (ds.Tables.Count != 2) { errMsg = "获取数据异常"; return(ResponseModelFactory.CreateFailModel(isSignKeyReturn, errMsg)); } //实例化一个根节点 var userGroupModel = Utils.GetModelList <UserGroupModel>(ds.Tables[0]).FirstOrDefault() ?? new UserGroupModel(); UserGroupGrantModel rootRoot = new UserGroupGrantModel(); rootRoot.ParentID = 0; TreeHelper.LoopToAppendChildren(Utils.GetModelList <UserGroupGrantModel>(ds.Tables[1]), rootRoot); userGroupModel.UserGroupGrants = rootRoot.Children; return(ResponseModelFactory.CreateSuccessModel(isSignKeyReturn, userGroupModel)); } catch (Exception e) { return(ResponseModelFactory.CreateReturnModel(isSignKeyReturn, Return_Code.F, e.Message)); } }
public static void LoopToAppendChildren(List <UserGroupGrantModel> treeNodes, UserGroupGrantModel curItem) { var subItems = treeNodes.Where(ee => ee.ParentID.Value == curItem.FunctionID).ToList(); curItem.Children = new List <UserGroupGrantModel>(); curItem.Children.AddRange(subItems); foreach (var subItem in subItems) { LoopToAppendChildren(treeNodes, subItem); } }