public async Task <List <LinkRoomDto> > GetLinkRoomListAsync(string token, int guestId) { var guestList = await GuestRepository.GetLinkRoomListByGuestIdAsync(token, guestId); string[] roomArray = guestList.Select(x => x.RoomNo).Distinct().ToArray(); var roomList = await RoomCodeRep.GetRoomInfoListByNoAsync(token, roomArray); string[] sysCodeArray = roomList.Select(x => x.RoomTypeCode).Distinct().ToArray(); var roomTypeList = await SysCodeRep.GetCodeListByMutliTypesAsync(token, new string[] { SystemCodeTypes.ROOM_CATEGORY }); roomTypeList = roomTypeList.Where(x => sysCodeArray.Contains(x.SysCode)).ToList(); List <LinkRoomDto> list = new List <LinkRoomDto>(); foreach (var item in roomList) { LinkRoomDto roomDto = new LinkRoomDto(); roomDto.GuestList = guestList.Where(x => x.RoomNo == item.RoomNo) .Select(x => new LinkGuestDto { GuestId = x.Id, GuestName = x.ChineseName, RoomNo = x.RoomNo }).ToList(); roomDto.RoomName = roomTypeList.Where(x => x.SysCode == item.RoomNo).Select(x => x.SysCodeName).FirstOrDefault(); roomDto.RoomNo = item.RoomNo; list.Add(roomDto); } return(list); }
public async Task <RoomListDto> LoadRoomListAsync(string token) { var roomCodeList = await RoomCodeRep.LoadRoomSymbolListAsync(token); var sysCodeList = await SysCodeRep.GetCodeListByMutliTypesAsync(token, new string[] { SystemCodeTypes.ROOM_CATEGORY, SystemCodeTypes.ROOM_GALLERY_CODE, SystemCodeTypes.ROOM_FLOOR_CODE, SystemCodeTypes.ROOM_STATE_TYPE }); var guestList = await GuestRepository.GetListByStatusAsync(token, GuestInfoState.I); //在住客人列表 var customerNOArray = guestList.Select(x => x.Id).ToArray(); //在住客人账号列表 var guestAccList = await AccRepository.GetListByGuestIdsAsync(token, customerNOArray); var guestBookingList = await GuestRepository.GetListByStatusAsync(token, GuestInfoState.N); guestBookingList = guestBookingList.Where(x => (x.CheckInDate.HasValue && x.CheckInDate == DateTime.Today) && !x.RoomNo.IsEmpty()).ToList();//今日预低客人信息 RoomListDto roomListGuiDto = new RoomListDto(); roomListGuiDto.RoomList = BuildRoomList(sysCodeList, roomCodeList, guestAccList, guestList, guestBookingList); roomListGuiDto.GalleryList = BuildGalleryList(sysCodeList, roomCodeList); roomListGuiDto.RoomTypeList = BuildRoomTypeList(sysCodeList); roomListGuiDto.RoomStateList = BuildRoomStateList(sysCodeList); roomListGuiDto.RoomStatistic = BuildRoomStatisticInfo(roomCodeList); return(roomListGuiDto); }