Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
        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);
            }
        }