예제 #1
0
 public Task <List <UserMenuResDto> > GetUserMenus(UserMenuReq request)
 {
     return(Task.Run <List <UserMenuResDto> >(() =>
     {
         Channel channel = ClientFindCreateChannel.CreateChannel(_Mname, "GetUserMenus").Result;
         var client = this._MenuProxyClient(channel);
         var serverRes = client.GetUserMenus(request);
         channel.ShutdownAsync();   //关闭长连接
         return serverRes;
     }));
 }
예제 #2
0
 public Task <List <UserMenuResDto> > GetUserMenuPaths(UserMenuReq request, ServerCallContext context)
 {
     return(Task.Run(() =>
     {
         List <B2B_MENU> menuList = base.baseService().FindAll(m => m.MENU_SORT == request.MENU_SORT && m.TERMINAL_TYPE == request.TERMINAL_TYPE && (request.IDs == null ? true : request.IDs.Contains(m.ID)) && m.IS_AVAILABLE == "Y").Result;
         if (menuList != null)
         {
             return EntityAutoMapper.ConvertMappingList <UserMenuResDto, B2B_MENU>(menuList);
         }
         return new List <UserMenuResDto>();
     }));
 }
예제 #3
0
        public Task <List <UserMenuResGroupDto> > GetUserMenus(int userId)
        {
            return(Task.Run(() =>
            {
                B2B_USER user = _userClient.FindById(new ComEntity.IdModel {
                    ID = userId
                }).Result;

                UserMenuReq userMenuReq = new UserMenuReq
                {
                    MENU_SORT = user.PARTY_TYPE,
                    TERMINAL_TYPE = "PC"
                };

                if (user.IS_MAIN != "Y")
                {
                    //不是主账号需要根据菜单分配来过滤
                    List <MenuByUserDto> menuUserList = _userMenuClient.FindMenuByUser(new ComEntity.IdModel {
                        ID = userId
                    }).Result;


                    userMenuReq.IDs = new List <int>();
                    menuUserList.ForEach(mu =>
                    {
                        userMenuReq.IDs.Add(Convert.ToInt32(mu.MAIN_MENU_ID));
                        userMenuReq.IDs.Add(Convert.ToInt32(mu.SUBMENU_ID));
                    });
                }

                List <UserMenuResDto> userMenus = _menuClient.GetUserMenus(userMenuReq).Result;

                //将userMenus查询结果转换为菜单层级对象
                List <UserMenuResGroupDto> userMenuGroups = new List <UserMenuResGroupDto>();
                foreach (var item in userMenus.Where(m => m.MENU_TYPE == "M").OrderBy(m => m.ORDER).ToList())
                {
                    userMenuGroups.Add(new UserMenuResGroupDto
                    {
                        mainUserMenu = item,
                        subUserMenus = userMenus.Where(m => m.MAIN_MENU_ID == item.ID).OrderBy(m => m.ORDER).ToList()
                    });
                }
                ;
                return userMenuGroups;
            }));
        }