protected void Page_Load(object sender, EventArgs e) { if (this.LoginUserInfo == null || this.UserSchoolInfo == null) { Response.Redirect("../Login.aspx"); } seatNo = Request.QueryString["seatNo"]; seatShortNo = Request.QueryString["seatShortNo"]; date = Request.QueryString["date"]; roomNo = Request.QueryString["roomNo"]; if (!IsPostBack) { BindUIElement(seatNo, seatShortNo, DateTime.Parse(date)); } string cmd = Request.Form["subCmd"]; switch (cmd) { case "query": SeatManage.ClassModel.BespeakLogInfo bespeakModel = new SeatManage.ClassModel.BespeakLogInfo(); bespeakModel.BsepeakState = SeatManage.EnumType.BookingStatus.Waiting; DateTime bespeatDate = DateTime.Parse(string.Format("{0} {1}", DateTime.Parse(date).ToShortDateString(), lblBookTime.InnerText)); bespeakModel.BsepeakTime = bespeatDate; bespeakModel.CardNo = this.LoginUserInfo.CardNo; bespeakModel.ReadingRoomNo = roomNo; bespeakModel.Remark = string.Format("读者通过手机预约网站预约座位"); bespeakModel.SeatNo = seatNo; bespeakModel.SubmitTime = DateTime.Now; try { string resultValue = BespeakHandler.SubmitBespeakInfo(this.UserSchoolInfo, bespeakModel); //bookSeatMessageBll.AddBespeakLogInfo(bespeakModel, Session["SchoolConnectionString"].ToString()); if (!string.IsNullOrEmpty(resultValue)) { page1.Style.Add("display", "none"); page2.Style.Add("display", "none"); page3.Style.Add("display", "block"); MessageTip.InnerText = resultValue; } else { page1.Style.Add("display", "none"); page2.Style.Add("display", "none"); page3.Style.Add("display", "block"); MessageTip.InnerText = "未知错误"; return; } } catch (Exception ex) { page1.Style.Add("display", "none"); page2.Style.Add("display", "none"); page3.Style.Add("display", "block"); MessageTip.InnerText = ex.Message; return; } break; } }
/// <summary> /// 删除事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gridBespeakLog_RowCommand(object sender, FineUI.GridCommandEventArgs e) { if (e.CommandName == "ActionDeleteBespeakLog") { int id = int.Parse(gridBespeakLog.Rows[e.RowIndex].DataKeys[0].ToString()); SeatManage.ClassModel.BespeakLogInfo bespeakModel = SeatManage.Bll.T_SM_SeatBespeak.GetBespeaklogById(id); if (bespeakModel.BsepeakState != BookingStatus.Waiting) { FineUI.Alert.Show("操作失败,状态无效"); GridBindDate(); } bespeakModel.BsepeakState = BookingStatus.Cencaled; bespeakModel.CancelPerson = Operation.Admin; bespeakModel.CancelTime = SeatManage.Bll.ServiceDateTime.Now; bespeakModel.Remark = "被管理员" + this.LoginId + "取消预约"; if (SeatManage.Bll.T_SM_SeatBespeak.UpdateBespeakList(bespeakModel) > 0) { //SeatManage.ClassModel.ReaderNoticeInfo rni = new SeatManage.ClassModel.ReaderNoticeInfo(); //rni.CardNo = bespeakModel.CardNo; //rni.AddTime = bespeakModel.CancelTime; //rni.Note = bespeakModel.Remark; //SeatManage.Bll.T_SM_ReaderNotice.AddReaderNotice(rni); //PushMsgInfo msg = new PushMsgInfo(); //msg.Title = "您好,您的预约已被取消"; //msg.MsgType = MsgPushType.AdminOperation; //msg.StudentNum = bespeakModel.CardNo; //msg.Message = bespeakModel.Remark; //SeatManage.Bll.T_SM_ReaderNotice.SendPushMsg(msg); FineUI.Alert.Show("取消成功"); GridBindDate(); } else { FineUI.Alert.Show("操作失败"); GridBindDate(); } } }
public JsonResult BespeakLogCancel(string BespeakID) { JsonResult result = null; int id = int.Parse(BespeakID); SeatManage.ClassModel.BespeakLogInfo bespeakModel = SeatManage.Bll.T_SM_SeatBespeak.GetBespeaklogById(id); if (bespeakModel.BsepeakState != BookingStatus.Waiting) { result = Json(new { status = "no", message = "操作失败,状态无效" }, JsonRequestBehavior.AllowGet); } else { bespeakModel.BsepeakState = BookingStatus.Cencaled; bespeakModel.CancelPerson = Operation.Admin; bespeakModel.CancelTime = SeatManage.Bll.ServiceDateTime.Now; bespeakModel.Remark = "被管理员" + this.LoginId + "取消预约"; if (SeatManage.Bll.T_SM_SeatBespeak.UpdateBespeakList(bespeakModel) > 0) { //SeatManage.ClassModel.ReaderNoticeInfo rni = new SeatManage.ClassModel.ReaderNoticeInfo(); //rni.CardNo = bespeakModel.CardNo; //rni.AddTime = bespeakModel.CancelTime; //rni.Note = bespeakModel.Remark; //SeatManage.Bll.T_SM_ReaderNotice.AddReaderNotice(rni); //PushMsgInfo msg = new PushMsgInfo(); //msg.Title = "您好,您的预约已被取消"; //msg.MsgType = MsgPushType.AdminOperation; //msg.StudentNum = bespeakModel.CardNo; //msg.Message = bespeakModel.Remark; //SeatManage.Bll.T_SM_ReaderNotice.SendPushMsg(msg); result = Json(new { status = "yes", message = "取消成功" }, JsonRequestBehavior.AllowGet); } else { result = Json(new { status = "no", message = "操作失败,请重新尝试" }, JsonRequestBehavior.AllowGet); } } return(result); }
/// <summary> /// 更新预约记录状态 /// </summary> /// <param name="bookNo"></param> /// <param name="bookCancelPerson"></param> /// <param name="bookState"></param> /// <param name="conn"></param> /// <returns></returns> public bool UpdateBookLogsState(int bookNo) { SeatManage.ClassModel.BespeakLogInfo model = seatManage.GetBespeaklogById(bookNo); if (model != null) { model.BsepeakState = SeatManage.EnumType.BookingStatus.Cencaled; model.CancelPerson = SeatManage.EnumType.Operation.Reader; model.CancelTime = DateTime.Now; model.Remark = "读者通过手机终端取消预约"; int result = seatManage.UpdateBespeakLogInfo(model); if (result > 0) { return(true); } else { return(false); } } else { return(false); } }
protected void btnBespeak_Click(object sender, EventArgs e) { SeatManage.ClassModel.BespeakLogInfo bespeakModel = new SeatManage.ClassModel.BespeakLogInfo(); bespeakModel.BsepeakState = SeatManage.EnumType.BookingStatus.Waiting; DateTime bespeatDate = DateTime.Parse(string.Format("{0} {1}", DateTime.Parse(date).ToShortDateString(), roomOpenTime.Value)); if (rblModel.SelectedValue == "1") { if (!DropDownList_Time.Hidden == true) { bespeatDate = DateTime.Parse(string.Format("{0} {1}", DateTime.Parse(date).ToShortDateString(), DropDownList_Time.SelectedText)); } else { bespeatDate = DateTime.Parse(string.Format("{0} {1}", DateTime.Parse(date).ToShortDateString(), DropDownList_FreeTime.SelectedText)); } } bespeakModel.BsepeakTime = bespeatDate; bespeakModel.CardNo = this.LoginId; bespeakModel.ReadingRoomNo = roomNo.Trim(); bespeakModel.Remark = string.Format("读者通过Web页面预约座位"); bespeakModel.SeatNo = seatNo; bespeakModel.SubmitTime = SeatManage.Bll.ServiceDateTime.Now; try { SeatManage.ClassModel.ReadingRoomInfo room = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(bespeakModel.ReadingRoomNo); if (!room.Setting.IsCanBespeakSeat(bespeakModel.BsepeakTime)) { FineUI.Alert.ShowInTop("对不起不能预约当前日期的座位,请刷新页面重新选择日期。"); PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference()); } if (bespeakModel.SubmitTime > bespeakModel.BsepeakTime) { FineUI.Alert.ShowInTop("对不起不能预约时间错误,请刷新页面重新选择日期。"); PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference()); } if (room.Setting.SeatBespeak.BespeakArea.BespeakType == BespeakAreaType.Percentage) { List <BespeakLogInfo> bespeaklogs = SeatManage.Bll.T_SM_SeatBespeak.GetNotCheckedBespeakLogInfo(new List <string>() { bespeakModel.ReadingRoomNo }, bespeakModel.BsepeakTime); double canbookCount = (double)((double)(room.SeatList.Seats.Count - room.SeatList.Seats.Where(u => u.Value.IsSuspended).ToArray().Count()) * room.Setting.SeatBespeak.BespeakArea.Scale); if (bespeaklogs.Count >= canbookCount) { FineUI.Alert.ShowInTop("对不起当前阅览室已经没有可预约的座位。"); PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference()); } } SeatManage.EnumType.HandleResult result = SeatManage.Bll.T_SM_SeatBespeak.AddBespeakLogInfo(bespeakModel); if (result == SeatManage.EnumType.HandleResult.Successed) { FineUI.Alert.ShowInTop("座位预约成功,请在规定的时间内刷卡确认。"); PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference()); } else { FineUI.Alert.ShowInTop("预约失败,该座位已经被别人预约。"); PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference()); } } catch (Exception ex) { FineUI.Alert.ShowInTop(string.Format("执行预约操作遇到错误:{0}", ex.Message)); PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference()); } }
/// <summary> /// 获取实时记录 /// 预约记录 ///选座记录 ///等待记录 ///黑名单记录 /// </summary> /// <param name="cardNum"></param> /// <param name="getItemsParameter"></param> /// <returns></returns> public string GetReaderActualTimeRecord(string cardNum, string getItemsParameter) { try { if (string.IsNullOrEmpty(cardNum) || string.IsNullOrEmpty(getItemsParameter)) { JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "输入的数据数据不能为空!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } JsonModel.JM_ActualTimeRecordParam param = SeatManageComm.JSONSerializer.Deserialize <JsonModel.JM_ActualTimeRecordParam>(getItemsParameter); JsonModel.JM_ActualTimeRecords records = new JsonModel.JM_ActualTimeRecords(); if (param.GetEnterOutLog)//获取进出记录 { SeatManage.ClassModel.EnterOutLogInfo enterOutLog = seatDataService.GetEnterOutLogInfoByCardNo(cardNum); JsonModel.JM_EnterOutLog jm_enterOutLog = null; if (enterOutLog != null) { jm_enterOutLog = new JsonModel.JM_EnterOutLog(); jm_enterOutLog.EnterOutTime = enterOutLog.EnterOutTime.ToString("yyyy-MM-dd HH:mm:ss"); jm_enterOutLog.EnterOutState = enterOutLog.EnterOutState.ToString(); jm_enterOutLog.Id = enterOutLog.EnterOutLogID; jm_enterOutLog.SeatId = enterOutLog.SeatNo; jm_enterOutLog.SeatNum = enterOutLog.ShortSeatNo; jm_enterOutLog.RoomName = enterOutLog.ReadingRoomName; jm_enterOutLog.RoomNum = enterOutLog.ReadingRoomNo; SeatManage.ClassModel.ReadingRoomInfo room = seatDataService.GetReadingRoomInfo(new List <string>() { enterOutLog.ReadingRoomNo })[0]; if (enterOutLog.EnterOutState == EnterOutLogType.ShortLeave) { String seatInfo = enterOutLog.Remark; double saveTimeLength = 0; if (enterOutLog.Flag == Operation.Admin) { if (room.Setting.AdminShortLeave.IsUsed) { saveTimeLength = room.Setting.AdminShortLeave.HoldTimeLength; } else { saveTimeLength = SeatManage.ClassModel.ReadingRoomSetting.GetSeatHoldTime(room.Setting.SeatHoldTime, enterOutLog.EnterOutTime); } } else { saveTimeLength = SeatManage.ClassModel.ReadingRoomSetting.GetSeatHoldTime(room.Setting.SeatHoldTime, enterOutLog.EnterOutTime); } string saveTime = enterOutLog.EnterOutTime.AddMinutes(saveTimeLength).ToShortTimeString(); jm_enterOutLog.Remark = string.Format("座位将为您保留至{2}。", enterOutLog.ReadingRoomName, enterOutLog.ShortSeatNo, saveTime); } else { switch (enterOutLog.EnterOutState) { case EnterOutLogType.BookingConfirmation: case EnterOutLogType.SelectSeat: case EnterOutLogType.ContinuedTime: case EnterOutLogType.ComeBack: case EnterOutLogType.ReselectSeat: case EnterOutLogType.WaitingSuccess: List <SeatManage.ClassModel.BespeakLogInfo> bespeaklist = seatDataService.GetBespeakLogInfoBySeatNo(enterOutLog.SeatNo, DateTime.Now); DateTime dt = new DateTime(); if (bespeaklist.Count > 0) { dt = bespeaklist[0].BsepeakTime.AddMinutes(-double.Parse(room.Setting.SeatBespeak.ConfirmTime.BeginTime)); } else if (room.Setting.SeatUsedTimeLimit.Used) { if (room.Setting.SeatUsedTimeLimit.Mode == "Free") { dt = enterOutLog.EnterOutTime.AddMinutes(room.Setting.SeatUsedTimeLimit.UsedTimeLength); if (dt > room.Setting.RoomOpenSet.NowCloseTime(enterOutLog.EnterOutTime)) { dt = room.Setting.RoomOpenSet.NowCloseTime(enterOutLog.EnterOutTime); } } else { for (int i = 0; i < room.Setting.SeatUsedTimeLimit.FixedTimes.Count; i++) { if (enterOutLog.EnterOutTime < room.Setting.SeatUsedTimeLimit.FixedTimes[i]) { if (room.Setting.SeatUsedTimeLimit.IsCanContinuedTime && enterOutLog.EnterOutTime > room.Setting.SeatUsedTimeLimit.FixedTimes[i].AddMinutes(-room.Setting.SeatUsedTimeLimit.CanDelayTime)) { if (i + 1 < room.Setting.SeatUsedTimeLimit.FixedTimes.Count) { dt = room.Setting.SeatUsedTimeLimit.FixedTimes[i + 1]; } else { dt = room.Setting.RoomOpenSet.NowCloseTime(enterOutLog.EnterOutTime); } } else { dt = room.Setting.SeatUsedTimeLimit.FixedTimes[i]; } break; } } } } //TODO:如果是续时模式,提示续时时间。 jm_enterOutLog.Remark = string.Format("您的座位可以使用到{0}。", dt.ToShortTimeString()); break; } } } records.EnterOutLog = jm_enterOutLog; } if (param.GetBespeakLog) { JsonModel.JM_BespeakLog jm_bespeakLog = null; SeatManage.ClassModel.BespeakLogInfo bespeakLogs = seatDataService.GetSingleBespeakLogForWait(cardNum); if (bespeakLogs != null) { jm_bespeakLog = new JM_BespeakLog(); jm_bespeakLog.DateTime = bespeakLogs.BsepeakTime.ToString("yyyy-MM-dd HH:mm:ss"); jm_bespeakLog.Id = bespeakLogs.BsepeaklogID; if (bespeakLogs.BsepeakState == EnumType.BookingStatus.Waiting) { jm_bespeakLog.IsValid = true; } jm_bespeakLog.RoomName = bespeakLogs.ReadingRoomName; jm_bespeakLog.RoomNum = bespeakLogs.ReadingRoomNo; jm_bespeakLog.SeatId = bespeakLogs.SeatNo; jm_bespeakLog.SeatNum = bespeakLogs.ShortSeatNum; jm_bespeakLog.Remark = bespeakLogs.Remark; records.BespeakLog = jm_bespeakLog; } } if (param.GetWaitLog) { List <EnterOutLogType> logType = new List <EnterOutLogType>(); logType.Add(EnterOutLogType.Waiting); List <SeatManage.ClassModel.WaitSeatLogInfo> waitSeatlogs = seatDataService.GetWaitLogList(cardNum, null, null, null, logType); if (waitSeatlogs.Count > 0) { EnterOutLogInfo waitEnterOutLog = seatDataService.GetEnterOutLogInfoById(waitSeatlogs[0].EnterOutLogID); if (waitEnterOutLog != null) { JsonModel.JM_WaitSeatLog jm_waitSeatLog = new JM_WaitSeatLog(); jm_waitSeatLog.CardNo = waitSeatlogs[0].CardNo; jm_waitSeatLog.CardNoB = waitSeatlogs[0].CardNoB; jm_waitSeatLog.RoomName = waitEnterOutLog.ReadingRoomName; jm_waitSeatLog.RoomNum = waitEnterOutLog.ReadingRoomNo; jm_waitSeatLog.SeatId = waitEnterOutLog.SeatNo; jm_waitSeatLog.SeatNum = waitEnterOutLog.ShortSeatNo; jm_waitSeatLog.SeatWaitTime = waitSeatlogs[0].SeatWaitTime.ToString("yyyy-MM-dd HH:mm:ss"); jm_waitSeatLog.SeatWaitingID = waitSeatlogs[0].SeatWaitingID; records.WaitSeatLog = jm_waitSeatLog; } } } if (param.GetBlackList) { List <BlackListInfo> blacklist = seatDataService.GetBlacklistInfo(cardNum); if (blacklist.Count > 0) { JM_Blacklist jm_blacklist = new JM_Blacklist(); jm_blacklist.AddTime = blacklist[0].AddTime.ToString("yyyy-MM-dd HH:mm:ss"); jm_blacklist.CardNo = blacklist[0].CardNo; jm_blacklist.ID = blacklist[0].ID; switch (blacklist[0].BlacklistState) { case LogStatus.Valid: jm_blacklist.IsValid = true; break; default: jm_blacklist.IsValid = false; break; } jm_blacklist.OutBlacklistMode = blacklist[0].OutBlacklistMode.ToString(); jm_blacklist.OutTime = blacklist[0].OutTime.ToString("yyyy-MM-dd HH:mm:ss"); jm_blacklist.ReMark = blacklist[0].ReMark; records.BlacklistLog = jm_blacklist; } } return(SeatManageComm.JSONSerializer.Serialize(records)); } catch (Exception ex) { SeatManage.SeatManageComm.WriteLog.Write("选择座位遇到异常:" + ex.Message); JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "执行遇到异常!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } }
protected void btnBespeak_Click(object sender, EventArgs e) { SeatManage.ClassModel.BespeakLogInfo bespeakModel = new SeatManage.ClassModel.BespeakLogInfo(); bespeakModel.BsepeakState = SeatManage.EnumType.BookingStatus.Waiting; bespeakModel.BsepeakTime = date; bespeakModel.CardNo = this.LoginId; bespeakModel.ReadingRoomNo = roomNo.Trim(); if (rblModel.SelectedValue == "1") { if (!DropDownList_Time.Hidden == true) { bespeakModel.BsepeakTime = DateTime.Parse(string.Format("{0} {1}", date.ToShortDateString(), DropDownList_Time.SelectedText)); } else { bespeakModel.BsepeakTime = DateTime.Parse(string.Format("{0} {1}", date.ToShortDateString(), DropDownList_FreeTime.SelectedText)); } } SeatManage.ClassModel.ReadingRoomInfo room = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(bespeakModel.ReadingRoomNo); if (room.Setting.ReadingRoomOpenState(bespeakModel.BsepeakTime) == ReadingRoomStatus.Close) { FineUI.Alert.ShowInTop("对不起,当前时间阅览室未开放。"); PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference()); } bespeakModel.Remark = string.Format("读者通过Web页面预约当天座位"); bespeakModel.SeatNo = seatNo; bespeakModel.SubmitTime = date; if (bespeakModel.BsepeakTime < bespeakModel.SubmitTime) { FineUI.Alert.ShowInTop("对不起,预约的时间不正确,请刷新页面重新选择。"); PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference()); } try { Seat seatInfo = SeatManage.Bll.T_SM_Seat.GetSeatInfoBySeatNo(seatNo); if (bespeakModel.BsepeakTime == DateTime.Now.Date && seatInfo.SeatUsedState != EnterOutLogType.Leave) //如果启用预约,判断选择的日期是否为当天的日期 { FineUI.Alert.ShowInTop("对不起,你所预约的座位正在使用。"); PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference()); } List <SeatManage.ClassModel.BespeakLogInfo> seatbespeakLog = SeatManage.Bll.T_SM_SeatBespeak.GetBespeakLogInfoBySeatNo(seatNo, date); if (seatbespeakLog.Count > 0) { FineUI.Alert.ShowInTop("对不起,该座位已经被别人预约。"); PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference()); } SeatManage.EnumType.HandleResult result = SeatManage.Bll.T_SM_SeatBespeak.AddBespeakLogInfo(bespeakModel); if (result == SeatManage.EnumType.HandleResult.Successed) { FineUI.Alert.ShowInTop("座位预约成功,请在规定的时间内刷卡确认。"); PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference()); } else { FineUI.Alert.ShowInTop("预约失败,该座位已经被别人预约。"); PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference()); } } catch (Exception ex) { FineUI.Alert.ShowInTop(string.Format("执行预约操作遇到错误:{0}", ex.Message)); PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference()); } }