public virtual Task <PageResult <PD> > GetListByPage <PD, PP>(PP request, Func <IQueryable <M>, PP, IQueryable <M> > ExtendQueryListByPage, bool IsAutoSelector = true, Expression <Func <M, M> > _ListByPageSelector = null) { return(Task.Run <PageResult <PD> >(() => { try { var QueryParams = request.GetType().GetProperty("QueryParams").GetValue(request); var PageInfo = (PageFilter)request.GetType().GetProperty("PageInfo").GetValue(request); PageResult <PD> pageResult; if (_ListByPageSelector == null && IsAutoSelector) { var _ListByPageAutoSelector = LambdaSelectBuilder.BuildSelect <M, PD>(); var awaitRes = this.baseService().PageQuery(q => ExtendQueryListByPage(EntityAutoMapper.QueryWhereJoinBuild(q, QueryParams), request), PageInfo, _ListByPageAutoSelector); pageResult = awaitRes.Result.GetJsonConvetPageData(PageInfo); } else { var awaitRes = this.baseService().PageQuery(q => ExtendQueryListByPage(EntityAutoMapper.QueryWhereJoinBuild(q, QueryParams), request), PageInfo, _ListByPageSelector); pageResult = EntityAutoMapper.ConvertMappingList <PD, M>(awaitRes.Result).GetJsonConvetPageData(PageInfo); } return pageResult; } catch (Exception ex) { logger.Error(ex: ex); return new PageResult <PD> { Total = -1 }; } })); }
public async Task <List <AppUserMenuResDto> > GetAppUserMenus(int userId, string menuCode) { var mainMenuTask = _menuClient.FindByEntity(new Dictionary <string, string> { { "MENU_TYPE", "M" }, { "TERMINAL_TYPE", "APP" }, { "MENU_CODE", menuCode }, }); var userTask = _userClient.FindById(new ComEntity.IdModel { ID = userId }); await mainMenuTask; await userTask; //查询主菜单下的所有子菜单 var subMenuList = _menuClient.FindAllByEntity(new Dictionary <string, string> { { "MAIN_MENU_ID", mainMenuTask.Result.ID.ToString() } }).Result; if (userTask.Result.IS_MAIN != "Y") { //查询指定用户有权限的菜单 var userMenuTask = _userMenuClient.FindMenuByUser(new ComEntity.IdModel { ID = userId }).Result; var userMenuSubMenuIds = userMenuTask.Select(um => um.SUBMENU_ID); subMenuList = subMenuList.Where(mu => userMenuSubMenuIds.Contains(mu.ID)).ToList(); } return(EntityAutoMapper.ConvertMappingList <AppUserMenuResDto, B2B_MENU>(subMenuList.OrderBy(m => m.ORDER).ToList())); }
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>(); })); }
public Task <List <MenuByUserDto> > FindMenuByUser(IdModel request, ServerCallContext context) { return(Task.Run(() => { List <B2B_USER_MENU> userMenuList = base.baseService().FindAll(m => m.USER_ID == request.ID, m => new B2B_USER_MENU { ID = m.ID, MAIN_MENU_ID = m.MAIN_MENU_ID, SUBMENU_ID = m.SUBMENU_ID }).Result; if (userMenuList != null) { return EntityAutoMapper.ConvertMappingList <MenuByUserDto, B2B_USER_MENU>(userMenuList); } return new List <MenuByUserDto>(); })); }
/// <summary> /// 获取码表值 /// </summary> /// <param name="lookupTypeName"></param> /// <returns></returns> public Task <List <LookUpValuesByTypeDto> > GetLookUpValuesByType(List <LookUpValuesByTypeParams> requests, ServerCallContext context) { return(Task.Run(() => { var lookupTypes = requests.Select(r => r.LookUpName).ToList(); List <B2B_LOOKUP_VALUES> values = base.baseService().FindAll(q => lookupTypes.Contains(q.LOOKUP_TYPE)).Result; List <B2B_LOOKUP_VALUES> lookupValues; List <B2B_LOOKUP_VALUES> removeList; void RemoveLookup(Func <B2B_LOOKUP_VALUES, bool> predicate) { removeList = lookupValues.Where(predicate).ToList(); removeList.ForEach(d => { lookupValues.Remove(d); values.Remove(d); }); } foreach (var item in requests) { lookupValues = values.Where(v => v.LOOKUP_TYPE == item.LookUpName).ToList(); //不包含失效数据 进行排除 if (!item.IsBetweenOt) { RemoveLookup(v => (v.ENABLED_FLAG != "Y" || (v.END_DATE_ACTIVE != null && DateTime.Now > Convert.ToDateTime(v.END_DATE_ACTIVE)) || v.START_DATE_ACTIVE > DateTime.Now)); } //只保留指定Code if (item.LOOKUP_CODE_List != null && item.LOOKUP_CODE_List.Count > 0) { RemoveLookup(v => !item.LOOKUP_CODE_List.Contains(v.LOOKUP_CODE)); } //只保留满足条件的 if (!string.IsNullOrEmpty(item.ATTIBUTE1)) { RemoveLookup(v => v.ATTIBUTE1 != item.ATTIBUTE1); } if (!string.IsNullOrEmpty(item.ATTIBUTE2)) { RemoveLookup(v => v.ATTIBUTE2 != item.ATTIBUTE2); } if (!string.IsNullOrEmpty(item.ATTIBUTE3)) { RemoveLookup(v => v.ATTIBUTE3 != item.ATTIBUTE3); } if (!string.IsNullOrEmpty(item.ATTIBUTE4)) { RemoveLookup(v => v.ATTIBUTE4 != item.ATTIBUTE4); } if (!string.IsNullOrEmpty(item.ATTIBUTE5)) { RemoveLookup(v => v.ATTIBUTE5 != item.ATTIBUTE5); } if (!string.IsNullOrEmpty(item.TAG)) { RemoveLookup(v => v.TAG != item.TAG); } } return EntityAutoMapper.ConvertMappingList <LookUpValuesByTypeDto, B2B_LOOKUP_VALUES>(values); })); }