Ejemplo n.º 1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="cardNo"></param>
 /// <returns></returns>
 public string ComeBack(string cardNo)
 {
     try
     {
         JsonModel.JM_HandleResult result = new JsonModel.JM_HandleResult();
         if (string.IsNullOrEmpty(cardNo))
         {
             result.Result = false;
             result.Msg    = "读者学号为空。";
             return(SeatManageComm.JSONSerializer.Serialize(result));
         }
         ReaderInfo reader = seatDataService.GetReader(cardNo, true);
         if (reader == null)
         {
             result.Result = false;
             result.Msg    = "获取读者信息失败。";
             return(SeatManageComm.JSONSerializer.Serialize(result));
         }
         if (reader.EnterOutLog == null || reader.EnterOutLog.EnterOutState == EnterOutLogType.Leave)
         {
             result.Result = false;
             result.Msg    = "您还没有选座。";
             return(SeatManageComm.JSONSerializer.Serialize(result));
         }
         if (reader.EnterOutLog.EnterOutState != EnterOutLogType.ShortLeave)
         {
             result.Result = false;
             result.Msg    = "您当前不是暂离状态。";
             return(SeatManageComm.JSONSerializer.Serialize(result));
         }
         reader.EnterOutLog.EnterOutState = EnterOutLogType.ComeBack;
         reader.EnterOutLog.Remark        = "读者通过移动客户端设置暂离回来。";
         reader.EnterOutLog.Flag          = Operation.Reader;
         reader.EnterOutLog.EnterOutTime  = DateTime.Now;
         result.Result = true;
         int newId = -1;
         if (seatDataService.AddEnterOutLogInfo(reader.EnterOutLog, ref newId) != HandleResult.Successed)
         {
             result.Result = false;
             result.Msg    = "执行遇到异常!";
             return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result));
         }
         else
         {
             result.Result = true;
             result.Msg    = "欢迎回来";
             List <WaitSeatLogInfo> waitSeatLogs = seatDataService.GetWaitLogList("", reader.EnterOutLog.EnterOutLogID, null, null, null);
             if (waitSeatLogs.Count > 0)
             {
                 WaitSeatLogInfo waitSeatLog = waitSeatLogs[0];
                 waitSeatLog.NowState     = LogStatus.Fail;
                 waitSeatLog.OperateType  = Operation.OtherReader;
                 waitSeatLog.WaitingState = EnterOutLogType.WaitingCancel;
                 seatDataService.UpdateWaitLog(waitSeatLog);
             }
         }
         return(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));
     }
 }
Ejemplo n.º 2
0
        public string FreeSeat(string cardNo)
        {
            try
            {
                ReaderInfo reader = null;
                JsonModel.JM_HandleResult result = new JsonModel.JM_HandleResult();
                try
                {
                    reader = seatDataService.GetReader(cardNo, true);
                }
                catch (Exception ex)
                {
                    result.Result = false;
                    result.Msg    = "获取读者状态遇到异常";
                }
                if (reader != null)
                {
                    if (reader.EnterOutLog == null)
                    {
                        result.Result = false;
                        result.Msg    = "释放座位失败,您还没有选座。";
                        return(SeatManageComm.JSONSerializer.Serialize(result));
                    }
                    switch (reader.EnterOutLog.EnterOutState)
                    {
                    case EnterOutLogType.BookingConfirmation: //预约入座
                    case EnterOutLogType.SelectSeat:          //选座
                    case EnterOutLogType.ContinuedTime:       //续时
                    case EnterOutLogType.ComeBack:            //暂离回来
                    case EnterOutLogType.ReselectSeat:        //重新选座
                    case EnterOutLogType.WaitingSuccess:      //读者通过等待座位入座
                    case EnterOutLogType.ShortLeave:          //读者暂离
                        reader.EnterOutLog.EnterOutState = EnterOutLogType.Leave;
                        reader.EnterOutLog.Remark        = "读者通过手机客户端释放座位。";
                        reader.EnterOutLog.Flag          = Operation.Reader;
                        reader.EnterOutLog.EnterOutTime  = DateTime.Now;

                        int          newId        = -1;
                        HandleResult returnResult = seatDataService.AddEnterOutLogInfo(reader.EnterOutLog, ref newId);
                        if (returnResult == HandleResult.Successed)
                        {
                            result.Result = true;
                            result.Msg    = "座位释放成功。";
                        }
                        else
                        {
                            result.Result = false;
                            result.Msg    = "未知原因释放座位失败";
                        }
                        break;

                    case EnterOutLogType.Leave:
                    default:
                        result.Result = false;
                        result.Msg    = "您当前没有座位。";
                        break;
                    }
                }
                else
                {
                    result.Result = false;
                    result.Msg    = "执行遇到错误。";
                }
                return(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));
            }
        }
Ejemplo n.º 3
0
        public string ShortLeave(string cardNo)
        {
            try
            {
                JsonModel.JM_HandleResult result = new JsonModel.JM_HandleResult();
                if (string.IsNullOrEmpty(cardNo))
                {
                    result.Result = false;
                    result.Msg    = "读者学号为空。";
                    return(SeatManageComm.JSONSerializer.Serialize(result));
                }
                ReaderInfo reader = seatDataService.GetReader(cardNo, true);
                if (reader == null)
                {
                    result.Result = false;
                    result.Msg    = "获取读者信息失败。";
                    return(SeatManageComm.JSONSerializer.Serialize(result));
                }
                if (reader.EnterOutLog == null)
                {
                    result.Result = false;
                    result.Msg    = "您还没有选座。";
                }
                switch (reader.EnterOutLog.EnterOutState)
                {
                case EnterOutLogType.BookingConfirmation: //预约入座
                case EnterOutLogType.SelectSeat:          //选座
                case EnterOutLogType.ContinuedTime:       //续时
                case EnterOutLogType.ComeBack:            //暂离回来
                case EnterOutLogType.ReselectSeat:        //重新选座
                case EnterOutLogType.WaitingSuccess:      //等待入座
                    reader.EnterOutLog.EnterOutState = EnterOutLogType.ShortLeave;
                    reader.EnterOutLog.Remark        = "读者通过手机客户端设置暂时离开。";
                    reader.EnterOutLog.Flag          = Operation.Reader;
                    reader.EnterOutLog.EnterOutTime  = DateTime.Now;
                    result.Result = true;
                    result.Msg    = setShortLeave(reader);
                    break;

                case EnterOutLogType.ShortLeave:
                    result.Result = false;
                    result.Msg    = "暂离失败,您已经是暂离状态。";
                    break;

                case EnterOutLogType.Leave:
                    result.Result = false;
                    result.Msg    = "暂离失败,您还没有入座。";
                    break;

                default:
                    result.Result = false;
                    result.Msg    = "暂离失败,您当前不是在座状态";
                    break;
                }
                return(SeatManageComm.JSONSerializer.Serialize(result));
            }
            catch (Exception ex)
            {
                SeatManage.SeatManageComm.WriteLog.Write("读者暂离遇到异常:" + ex.Message);
                JsonModel.JM_HandleResult result = new JsonModel.JM_HandleResult();
                result.Result = false;
                result.Msg    = "执行遇到异常";
                return(SeatManageComm.JSONSerializer.Serialize(result));
            }
        }