/// <summary> /// 根据阅览室编号、座位状态获取对应的座位 /// </summary> /// <param name="roomNum">阅览室编号</param> /// <param name="seatState">座位状态</param> /// <returns></returns> public string GetRoomSeats(string roomNum, string seatState) { try { List <JM_Seat> jm_list = new List <JM_Seat>(); SeatLayout seatList = seatDataService.GetRoomSeatLayOut(roomNum); //获取阅览室座位 foreach (Seat seat in seatList.Seats.Values) { JM_Seat jmSeat = new JM_Seat(); jmSeat.SeatNo = seat.SeatNo; jmSeat.ShortSeatNo = seat.ShortSeatNo; jmSeat.SeatState = seat.SeatUsedState.ToString(); jmSeat.ReadingRoomNum = seat.ReadingRoomNum; jmSeat.UserName = seat.UserName; jmSeat.UserCardNo = seat.UserCardNo; jmSeat.MarkTime = seat.MarkTime.ToString(); jmSeat.BeginUsedTime = seat.BeginUsedTime.ToString(); if (seat.SeatUsedState.ToString() == seatState) { jm_list.Add(jmSeat); } } if (jm_list.Count > 0) { JM_HandleResultObject result = new JM_HandleResultObject(); result.Result = true; result.Msg = jm_list; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } else { JM_HandleResultObject result = new JM_HandleResultObject(); result.Result = false; result.Msg = string.Format("没有查询到{0}状态下的座位", seatState); return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } } catch (Exception ex) { SeatManage.SeatManageComm.WriteLog.Write("根据阅览室编号获座位者信息遇到异常:" + ex.Message); JM_HandleResultObject result = new JM_HandleResultObject(); result.Result = false; result.Msg = "执行遇到异常!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } }
/// <summary> /// 获取座位使用状态 /// </summary> /// <param name="seatNum"></param> /// <returns></returns> public string GetSeatUsage(string seatNum) { try { if (seatNum.Length < 9) { JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "座位编号错误!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } SeatManage.ClassModel.Seat seat = seatDataService.GetSeatInfoBySeatNum(seatNum); if (seat == null) { JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "该座位不存在!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } if (seat.SeatUsedState == EnterOutLogType.Leave && seatDataService.GetBespeakLogInfoBySeatNo(seatNum, DateTime.Now).Count > 0) { seat.SeatUsedState = EnterOutLogType.BespeakWaiting; } JM_Seat jm_seat = new JM_Seat(); jm_seat.CanBeBespeak = seat.CanBeBespeak; jm_seat.HavePower = seat.HavePower; jm_seat.IsSuspended = seat.IsSuspended; jm_seat.ReadingRoomNum = seat.ReadingRoom.No; jm_seat.ReadingRoomName = seat.ReadingRoom.Name; jm_seat.SeatNo = seat.SeatNo; jm_seat.SeatUsedState = seat.SeatUsedState.ToString(); jm_seat.ShortSeatNo = seat.ShortSeatNo; jm_seat.BaseHeight = seat.BaseHeight; jm_seat.BaseWidth = seat.BaseWidth; jm_seat.PositionX = seat.PositionX; jm_seat.PositionY = seat.PositionY; jm_seat.RotationAngle = seat.RotationAngle; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(jm_seat)); } 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)); } }
/// <summary> /// 根据阅览室编号获取当前座位使用情况的布局图(包括预约)。 /// </summary> /// <param name="roomNum">阅览室编号</param> /// <returns></returns> public string GetSeatsUsedInfoByRoomNum(string roomNum) { try { if (string.IsNullOrEmpty(roomNum)) { JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "阅览室编号不能为空!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } List <JM_Seat> seats = new List <JM_Seat>(); SeatLayout bespeakSeatLayout = seatDataService.GetRoomSeatLayOut(roomNum); foreach (Seat seat in bespeakSeatLayout.Seats.Values) { if (!seat.IsSuspended) { JM_Seat jm_seat = new JM_Seat(); jm_seat.CanBeBespeak = true; jm_seat.HavePower = seat.HavePower; jm_seat.IsSuspended = seat.IsSuspended; jm_seat.ReadingRoomNum = seat.ReadingRoom.No; jm_seat.ReadingRoomName = seat.ReadingRoom.Name; jm_seat.SeatNo = seat.SeatNo; jm_seat.SeatUsedState = seat.SeatUsedState.ToString(); jm_seat.ShortSeatNo = seat.ShortSeatNo; jm_seat.BaseHeight = seat.BaseHeight; jm_seat.BaseWidth = seat.BaseWidth; jm_seat.PositionX = seat.PositionX; jm_seat.PositionY = seat.PositionY; jm_seat.RotationAngle = seat.RotationAngle; seats.Add(jm_seat); } } return(SeatManageComm.JSONSerializer.Serialize(seats)); } 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)); } }
/// <summary> /// 获取可被预约的座位布局设置 /// </summary> /// <param name="roomNum">阅览室编号</param> /// <returns></returns> //public string GetCanBespeakSeatsLayout(string roomNum) //{ // throw new NotImplementedException(); //} /// <summary> /// 获取可以预约的座位预约信息 /// </summary> /// <param name="roomNum"></param> /// <param name="date">日期</param> /// <returns></returns> public string GetSeatsBespeakInfoByRoomNum(string roomNum, string date) { try { if (string.IsNullOrEmpty(roomNum) || string.IsNullOrEmpty(date)) { JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "阅览室编号或日期不能为空!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } //TODO:判断预约的日期是否为当天。 //如果预约日期是当天,获取当天的可用座位(去掉已经被预约的) DateTime bespeakDate; if (!DateTime.TryParse(date, out bespeakDate)) { JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "日期格式不正确!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } if (bespeakDate.Date < DateTime.Now.Date) { JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "对不起查询日期不得小于当天时间!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } List <SeatManage.ClassModel.ReadingRoomInfo> roomInfos = seatDataService.GetReadingRoomInfo(new List <string>() { roomNum }); if (roomInfos.Count < 1) { JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "当前阅览室不存在!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } if (!roomInfos[0].Setting.SeatBespeak.Used) { JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "当前阅览室不提供预约!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } if ((bespeakDate.Date - DateTime.Now.Date).Days > roomInfos[0].Setting.SeatBespeak.BespeakBeforeDays) { JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "对不起您选择的日期不开放预约!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } if (bespeakDate.Date == DateTime.Now.Date && !roomInfos[0].Setting.SeatBespeak.NowDayBespeak) { JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "对不起此阅览室不提供当天预约功能!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } if (bespeakDate.Date != DateTime.Now.Date && !roomInfos[0].Setting.IsCanBespeakSeat(bespeakDate)) { JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "对不起当前日期或时间段暂不开放预约!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } List <JM_Seat> seats = new List <JM_Seat>(); if (bespeakDate.Date == DateTime.Now.Date) { SeatLayout seatLayout = seatDataService.GetRoomSeatLayOut(roomNum);//获取当天可预约座位。 foreach (Seat seat in seatLayout.Seats.Values) { //if (!seat.IsSuspended && seat.SeatUsedState == EnumType.EnterOutLogType.Leave) //{ JM_Seat jm_seat = new JM_Seat(); if (!seat.IsSuspended && seat.SeatUsedState == EnumType.EnterOutLogType.Leave) { jm_seat.CanBeBespeak = true; } else { jm_seat.CanBeBespeak = false; } //jm_seat.CanBeBespeak = seat.CanBeBespeak; jm_seat.HavePower = seat.HavePower; jm_seat.IsSuspended = seat.IsSuspended; jm_seat.ReadingRoomNum = seat.ReadingRoom.No; jm_seat.ReadingRoomName = seat.ReadingRoom.Name; jm_seat.SeatNo = seat.SeatNo; jm_seat.SeatUsedState = seat.SeatUsedState.ToString(); jm_seat.ShortSeatNo = seat.ShortSeatNo; jm_seat.BaseHeight = seat.BaseHeight; jm_seat.BaseWidth = seat.BaseWidth; jm_seat.PositionX = seat.PositionX; jm_seat.PositionY = seat.PositionY; jm_seat.RotationAngle = seat.RotationAngle; seats.Add(jm_seat); //} } } else { SeatLayout bespeakSeatLayout = seatDataService.GetBeseakSeatLayout(roomNum, bespeakDate); foreach (Seat seat in bespeakSeatLayout.Seats.Values) { //if (seat.CanBeBespeak && seat.SeatUsedState != EnumType.EnterOutLogType.BookingConfirmation && !seat.IsSuspended) //{ JM_Seat jm_seat = new JM_Seat(); if (seat.CanBeBespeak && seat.SeatUsedState != EnumType.EnterOutLogType.BookingConfirmation && !seat.IsSuspended) { jm_seat.CanBeBespeak = true; } else { jm_seat.CanBeBespeak = false; } //jm_seat.CanBeBespeak = seat.CanBeBespeak; jm_seat.HavePower = seat.HavePower; jm_seat.IsSuspended = seat.IsSuspended; jm_seat.ReadingRoomNum = seat.ReadingRoom.No; jm_seat.ReadingRoomName = seat.ReadingRoom.Name; jm_seat.SeatNo = seat.SeatNo; jm_seat.SeatUsedState = seat.SeatUsedState.ToString(); jm_seat.ShortSeatNo = seat.ShortSeatNo; jm_seat.BaseHeight = seat.BaseHeight; jm_seat.BaseWidth = seat.BaseWidth; jm_seat.PositionX = seat.PositionX; jm_seat.PositionY = seat.PositionY; jm_seat.RotationAngle = seat.RotationAngle; seats.Add(jm_seat); //} } } if (seats.Count > 0) { return(SeatManageComm.JSONSerializer.Serialize(seats)); } else { JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "当前日期没有可供预约的座位!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } } 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)); } }
/// <summary> /// 根据阅览室编号获取阅览室的座位信息 /// </summary> /// <param name="roomNum">阅览室编号</param> /// <returns></returns> public string GetSeatsLayoutByRoomNum(string roomNum) { try { if (string.IsNullOrEmpty(roomNum)) { JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "阅览室编号不能为空!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } JsonModel.JM_SeatLayout jm_layout = new JM_SeatLayout(); List <SeatManage.ClassModel.ReadingRoomInfo> roomListModel = seatDataService.GetReadingRooms(new List <string>() { roomNum }, null, null); if (roomListModel.Count > 0) { SeatLayout seatlayout = roomListModel[0].SeatList; foreach (Seat seat in seatlayout.Seats.Values) { JM_Seat jm_seat = new JM_Seat(); jm_seat.HavePower = seat.HavePower; jm_seat.IsSuspended = seat.IsSuspended; jm_seat.ReadingRoomNum = roomListModel[0].No; jm_seat.ReadingRoomName = roomListModel[0].Name; jm_seat.SeatNo = seat.SeatNo; jm_seat.ShortSeatNo = seat.ShortSeatNo; jm_seat.BaseHeight = seat.BaseHeight; jm_seat.BaseWidth = seat.BaseWidth; jm_seat.PositionX = seat.PositionX; jm_seat.PositionY = seat.PositionY; jm_seat.RotationAngle = seat.RotationAngle; jm_layout.Seats.Add(jm_seat); } foreach (Note note in seatlayout.Notes) { JM_Node jm_Note = new JM_Node(); jm_Note.BaseHeight = note.BaseHeight; jm_Note.BaseWidth = note.BaseWidth; jm_Note.PositionX = note.PositionX; jm_Note.PositionY = note.PositionY; jm_Note.Remark = note.Remark; jm_Note.RotationAngle = note.RotationAngle; jm_Note.Type = note.Type.ToString(); jm_layout.Nodes.Add(jm_Note); } jm_layout.Position = seatlayout.Position; jm_layout.RoomNo = seatlayout.RoomNo; jm_layout.SeatCol = seatlayout.SeatCol; jm_layout.SeatRow = seatlayout.SeatRow; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(jm_layout)); } else { JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "此阅览室不存在!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } } 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)); } }
/// <summary> /// 获取二维码信息 /// </summary> /// <param name="strQRcode"></param> /// <returns></returns> public string GetQRcodeInfo(string strQRcode) { try { string[] scanResultArray = strQRcode.Split('?'); ScanCodeParamModel scancode = null; if (scanResultArray.Length >= 2) { string[] strParam = scanResultArray[1].Split('='); if (strParam.Length >= 2) { scancode = ScanCodeParamModel.Prase(strParam[1]);//兼容url的二维码。 } } else { scancode = ScanCodeParamModel.Prase(strQRcode); } if (scancode == null) { JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "二维码错误!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } Seat seatInfo = seatDataService.GetSeatInfoBySeatNum(scancode.SeatNum); if (seatInfo == null) { JM_HandleResult result = new JM_HandleResult(); result.Result = false; result.Msg = "此座位不存在!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } JM_QRcode jm_QRcode = new JM_QRcode(); JM_Seat jm_seat = new JM_Seat(); jm_seat.CanBeBespeak = seatInfo.CanBeBespeak; jm_seat.HavePower = seatInfo.HavePower; jm_seat.IsSuspended = seatInfo.IsSuspended; jm_seat.ReadingRoomNum = seatInfo.ReadingRoomNum; jm_seat.ReadingRoomName = seatInfo.ReadingRoom.Name; jm_seat.SeatNo = seatInfo.SeatNo; jm_seat.SeatUsedState = seatInfo.SeatUsedState.ToString(); jm_seat.ShortSeatNo = seatInfo.ShortSeatNo; jm_seat.BaseHeight = seatInfo.BaseHeight; jm_seat.BaseWidth = seatInfo.BaseWidth; jm_seat.PositionX = seatInfo.PositionX; jm_seat.PositionY = seatInfo.PositionY; jm_seat.RotationAngle = seatInfo.RotationAngle; jm_QRcode.SeatInfo = jm_seat; if (seatInfo.ReadingRoom.Setting.SeatBespeak.Used && !seatInfo.IsSuspended) { if (seatInfo.ReadingRoom.Setting.SeatBespeak.NowDayBespeak && seatInfo.SeatUsedState == EnterOutLogType.Leave) { JM_CanBespeakSeatInfo jm_bespeakInfo = new JM_CanBespeakSeatInfo(); jm_bespeakInfo.SeatID = seatInfo.SeatNo; jm_bespeakInfo.SeatNum = seatInfo.ShortSeatNo; jm_bespeakInfo.ReadingRoomNo = seatInfo.ReadingRoomNum; jm_bespeakInfo.BespeakDate = DateTime.Now.ToShortDateString(); jm_QRcode.BeaspeakSeat.Add(jm_bespeakInfo); } for (int i = 1; i <= seatInfo.ReadingRoom.Setting.SeatBespeak.BespeakBeforeDays; i++) { List <SeatManage.ClassModel.BespeakLogInfo> list = seatDataService.GetBespeakLogInfoBySeatNo(seatInfo.SeatNo, DateTime.Now.AddDays(i)); if (list.Count > 0) { continue; } JM_CanBespeakSeatInfo jm_bespeakInfo = new JM_CanBespeakSeatInfo(); jm_bespeakInfo.SeatID = seatInfo.SeatNo; jm_bespeakInfo.SeatNum = seatInfo.ShortSeatNo; jm_bespeakInfo.ReadingRoomNo = seatInfo.ReadingRoomNum; jm_bespeakInfo.BespeakDate = DateTime.Now.AddDays(i).ToShortDateString(); jm_QRcode.BeaspeakSeat.Add(jm_bespeakInfo); } } return(SeatManage.SeatManageComm.JSONSerializer.Serialize(jm_QRcode)); } 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)); } }