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); }
public InitRoomDto InitRoomInfo(string token) { var sysCodeList = SysCodeRep.GetCodeListByMutliTypes(token, new string[] { SystemCodeTypes.MARKET_TYPE, SystemCodeTypes.COUNTRY_CODE, SystemCodeTypes.CREDENTIAL_CATEGORY, SystemCodeTypes.GENDER, SystemCodeTypes.GUEST_TYPE, SystemCodeTypes.PAYMENT_METHOD, SystemCodeTypes.PRICE_CATEGORY, SystemCodeTypes.ROOM_PRICE_STRUCT }); sysCodeList = sysCodeList.Where(x => x.SysCodeState == "Y").ToList(); InitRoomDto obj = new InitRoomDto(); //obj.BookingTypeList = null; var clientTypeList = sysCodeList.Where(x => x.SysCodeType == SystemCodeTypes.MARKET_TYPE) .Select(x => new ClientSourceTypeDto { Code = x.SysCode, Name = x.SysCodeName }).OrderBy(x => x.Code).ToList(); clientTypeList.Insert(0, new ClientSourceTypeDto() { Code = "", Name = "请选择" }); obj.ClientSourceTypeList = clientTypeList; obj.CountrySourceList = sysCodeList.Where(x => x.SysCodeType == SystemCodeTypes.COUNTRY_CODE) .Select(x => new CountrySourceDto { Code = x.SysCode, Name = x.SysCodeName }).OrderBy(x => x.Code).ToList(); obj.CountrySourceList.Insert(0, new CountrySourceDto() { Code = "", Name = "请选择" }); obj.CredentialCategoryList = sysCodeList.Where(x => x.SysCodeType == SystemCodeTypes.CREDENTIAL_CATEGORY) .Select(x => new CredentialCategoryDto { Code = x.SysCode, Name = x.SysCodeName }).OrderBy(x => x.Code).ToList(); obj.CredentialCategoryList.Insert(0, new CredentialCategoryDto() { Code = "", Name = "请选择" }); obj.GenderTypeList = sysCodeList.Where(x => x.SysCodeType == SystemCodeTypes.GENDER) .Select(x => new GenderTypeDto { Code = x.SysCode, Name = x.SysCodeName }).OrderBy(x => x.Code).ToList(); obj.GenderTypeList.Insert(0, new GenderTypeDto() { Code = "", Name = "请选择" }); obj.GuestCategoryList = sysCodeList.Where(x => x.SysCodeType == SystemCodeTypes.GUEST_TYPE) .Select(x => new GuestCategoryDto { Code = x.SysCode, Name = x.SysCodeName }).OrderBy(x => x.Code).ToList(); obj.GuestCategoryList.Insert(0, new GuestCategoryDto() { Code = "", Name = "请选择" }); obj.GuestTypeList = sysCodeList.Where(x => x.SysCodeType == SystemCodeTypes.TEAM_TYPE) .Select(x => new GuestTypeDto { Code = x.SysCode, Name = x.SysCodeName }).OrderBy(x => x.Code).ToList(); obj.GuestTypeList.Insert(0, new GuestTypeDto() { Code = "", Name = "请选择" }); obj.PaymentMethodList = sysCodeList.Where(x => x.SysCodeType == SystemCodeTypes.PAYMENT_METHOD) .Select(x => new PaymentMethodDto { Code = x.SysCode, Name = x.SysCodeName }).OrderBy(x => x.Code).ToList(); obj.PaymentMethodList.Insert(0, new PaymentMethodDto() { Code = "", Name = "请选择" }); obj.RoomPriceCategoryList = sysCodeList.Where(x => x.SysCodeType == SystemCodeTypes.PRICE_CATEGORY) .Select(x => new RoomPriceCategoryDto { Code = x.SysCode, Name = x.SysCodeName }).OrderBy(x => x.Code).ToList(); obj.RoomPriceCategoryList.Insert(0, new RoomPriceCategoryDto() { Code = "", Name = "请选择" }); obj.RoomPriceStructureList = sysCodeList.Where(x => x.SysCodeType == SystemCodeTypes.ROOM_PRICE_STRUCT) .Select(x => new RoomPriceStructureDto { Code = x.SysCode, Name = x.SysCodeName }).OrderBy(x => x.Code).ToList(); obj.RoomPriceStructureList.Insert(0, new RoomPriceStructureDto() { Code = "", Name = "请选择" }); return(obj); }