/// <summary> /// 获取座位预约的信息 /// </summary> /// <param name="seatNo"></param> /// <param name="roomNo"></param> /// <param name="bespeakTime"></param> /// <param name="schoolNo"></param> /// <returns></returns> public AJM_SeatBespeakInfo GetSeatBespeakInfo(string seatNo, string roomNo, string bespeakTime, string schoolNo) { try { IMobileAppDataObtianProxy appService = new MobileAppDataObtainProxy(schoolNo); string result = appService.GetRandomSeat(roomNo); AJM_HandleResult ajmResult = JSONSerializer.Deserialize <AJM_HandleResult>(result); if (ajmResult == null) { throw new Exception("获取预约座位信息失败!"); } if (!ajmResult.Result) { throw new Exception(ajmResult.Msg); } AJM_SeatBespeakInfo ajmSeat = JSONSerializer.Deserialize <AJM_SeatBespeakInfo>(ajmResult.Msg); return(ajmSeat); } catch (Exception ex) { WriteLog.Write(string.Format("获取预约座位信息失败:{0}", ex.Message)); return(null); } }
/// <summary> /// 获取座位的可预约信息 /// </summary> /// <param name="seatNo"></param> /// <param name="roomNo"></param> /// <param name="bespeakTime"></param> /// <returns></returns> public string GetSeatBespeakInfo(string seatNo, string roomNo, string bespeakTime) { AJM_HandleResult result = new AJM_HandleResult(); try { if (string.IsNullOrEmpty(roomNo) || string.IsNullOrEmpty(bespeakTime)) { result.Result = false; result.Msg = "阅览室编号或预约时间不能为空!"; return(JSONSerializer.Serialize(result)); } //如果预约日期是当天,获取当天可用座位(排除已被预约座位) DateTime bespeakDate; if (!DateTime.TryParse(bespeakTime, out bespeakDate)) { result.Result = false; result.Msg = "日期格式不正确!"; return(JSONSerializer.Serialize(result)); } if (bespeakDate.Date < DateTime.Now.Date) { result.Result = false; result.Msg = "查询日期不能早于当天日期!"; return(JSONSerializer.Serialize(result)); } List <ReadingRoomInfo> readingRoomInfos = seatManageDateService.GetReadingRoomInfo(new List <string> { roomNo }); if (readingRoomInfos.Count < 1) { result.Result = false; result.Msg = "阅览室不存在!"; return(JSONSerializer.Serialize(result)); } if (!readingRoomInfos[0].SeatList.Seats.ContainsKey(seatNo)) { result.Result = false; result.Msg = "该座位不存在!"; return(JSONSerializer.Serialize(result)); } if (readingRoomInfos[0].SeatList.Seats[seatNo].IsSuspended) { result.Result = false; result.Msg = "该座位暂停使用!"; return(JSONSerializer.Serialize(result)); } if (!readingRoomInfos[0].Setting.SeatBespeak.Used) { result.Result = false; result.Msg = "当前阅览室不提供预约!"; return(JSONSerializer.Serialize(result)); } if ((bespeakDate.Date - DateTime.Now.Date).Days > readingRoomInfos[0].Setting.SeatBespeak.BespeakBeforeDays) { result.Result = false; result.Msg = "您选择的日期尚未开放预约!"; return(JSONSerializer.Serialize(result)); } if (bespeakDate.Date == DateTime.Now.Date && !readingRoomInfos[0].Setting.SeatBespeak.NowDayBespeak) { result.Result = false; result.Msg = "当前阅览室未开放当天预约!"; return(JSONSerializer.Serialize(result)); } if (bespeakDate.Date != DateTime.Now.Date && !readingRoomInfos[0].Setting.IsCanBespeakSeat(bespeakDate)) { result.Result = false; result.Msg = "当前时间暂未开放预约!"; return(JSONSerializer.Serialize(result)); } if (bespeakDate.Date == DateTime.Now.Date) { Seat seat = seatManageDateService.GetSeatInfoBySeatNum(seatNo); if (seat == null) { result.Result = false; result.Msg = "对不起,获取座位信息失败!"; return(JSONSerializer.Serialize(result)); } if (seat.SeatUsedState != EnterOutLogType.Leave) { result.Result = false; result.Msg = "对不起此座位已被其他人使用!"; return(JSONSerializer.Serialize(result)); } } if (seatManageDateService.GetBespeakLogInfoBySeatNo(seatNo, bespeakDate.Date).Count > 0) { result.Result = false; result.Msg = "对不起此座位已被其他人预约!"; return(JSONSerializer.Serialize(result)); } AJM_SeatBespeakInfo ajmseat = new AJM_SeatBespeakInfo(); ajmseat.SeatNo = seatNo; ajmseat.SeatShortNo = readingRoomInfos[0].SeatList.Seats[seatNo].ShortSeatNo; ajmseat.RoomNo = readingRoomInfos[0].No; ajmseat.RoomName = readingRoomInfos[0].Name; ajmseat.BespeakDate = bespeakDate.ToShortDateString(); ajmseat.IsCanSelectTime = readingRoomInfos[0].Setting.SeatBespeak.SpecifiedBespeak; ajmseat.IsUsedSpan = readingRoomInfos[0].Setting.SeatBespeak.SpecifiedTime; ajmseat.CheckKeepTime = (int)readingRoomInfos[0].Setting.SeatBespeak.SeatKeepTime; ajmseat.CheckBeforeTime = int.Parse(readingRoomInfos[0].Setting.SeatBespeak.ConfirmTime.BeginTime); ajmseat.CheckLastTime = int.Parse(readingRoomInfos[0].Setting.SeatBespeak.ConfirmTime.EndTime); DateTime bookstartTime = readingRoomInfos[0].Setting.DateOpenTime(bespeakDate); if (bookstartTime > DateTime.Now) { ajmseat.IsCanNowBook = false; ajmseat.IsCanSelectTime = true; } if (readingRoomInfos[0].Setting.SeatBespeak.SpecifiedBespeak) { List <DateTime> timeSpans = readingRoomInfos[0].Setting.GetSelectTimeList(bespeakDate); foreach (var time in timeSpans) { ajmseat.TimeList.Add(time.ToShortTimeString()); } } else { ajmseat.TimeList.Add(readingRoomInfos[0].Setting.DateOpenTime(bespeakDate).ToShortTimeString()); } //if (ajmseat.IsCanSelectTime) //{ // List<DateTime> timeSpans = readingRoomInfos[0].Setting.GetSelectTimeList(besppeakDate); // foreach (var time in timeSpans) // { // ajmseat.TimeList.Add(time.ToShortTimeString()); // } //} //else //{ // ajmseat.TimeList.Add(readingRoomInfos[0].Setting.DateOpenTime(besppeakDate).ToShortTimeString()); //} result.Result = true; result.Msg = JSONSerializer.Serialize(ajmseat); return(JSONSerializer.Serialize(result)); } catch (Exception ex) { WriteLog.Write(string.Format("获取当前可预约座位列表遇到异常:{0}", ex.Message)); result.Result = false; result.Msg = "获取当前阅览室可预约座位执行越到异常!"; return(JSONSerializer.Serialize(result)); } }