/// <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));
            }
        }
示例#2
0
 /// <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));
     }
 }
示例#3
0
 /// <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));
     }
 }
示例#4
0
        /// <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));
            }
        }
示例#5
0
 /// <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));
     }
 }
示例#6
0
        /// <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));
            }
        }