/// <summary>
        /// 增加一条数据
        /// </summary>
        public bool Add(SeatManage.ClassModel.Seat model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into T_SM_Seat(");
            strSql.Append("SeatNo,ReadingRoomNo,IsUsing,SeatUI,IsLock)");
            strSql.Append(" values (");
            strSql.Append("@SeatNo,@ReadingRoomNo,@IsUsing,@SeatUI,@IsLock)");
            SqlParameter[] parameters =
            {
                new SqlParameter("@SeatNo",        SqlDbType.NVarChar, 100),
                new SqlParameter("@ReadingRoomNo", SqlDbType.NVarChar, 100),
                new SqlParameter("@IsUsing",       SqlDbType.Bit),
                new SqlParameter("@SeatUI",        SqlDbType.NVarChar, 100),
                new SqlParameter("@IsLock",        SqlDbType.Int, 4)
            };
            parameters[0].Value = model.SeatNo;
            parameters[1].Value = model.ReadingRoomNum;
            parameters[2].Value = false;
            parameters[3].Value = string.Format("{0},{1}", model.PositionX, model.PositionY);
            parameters[4].Value = false;

            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Esempio n. 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));
     }
 }
Esempio n. 3
0
        /// <summary>
        /// 根据座位号获取座位信息
        /// </summary>
        /// <param name="seatNum"></param>
        /// <returns></returns>
        public SeatManage.ClassModel.Seat GetSeatInfoBySeatNum(string seatNum)
        {
            string  strWhere = string.Format(" SeatNo='{0}' ", seatNum);
            DataSet ds       = t_sm_seat.GetList(strWhere.ToString(), null);

            if (ds.Tables[0].Rows.Count > 0)
            {
                SeatManage.ClassModel.Seat seat = DataRowToSeatModel(ds.Tables[0].Rows[0]);
                if (!string.IsNullOrEmpty(seat.ReadingRoomNum))
                {
                    List <SeatManage.ClassModel.ReadingRoomInfo> room = GetReadingRoomInfo(new List <string>()
                    {
                        seat.ReadingRoomNum
                    });
                    if (room.Count > 0 && room[0].SeatList.Seats.ContainsKey(seat.SeatNo))
                    {
                        seat.IsSuspended = room[0].SeatList.Seats[seat.SeatNo].IsSuspended;
                        seat.HavePower   = room[0].SeatList.Seats[seat.SeatNo].HavePower;
                        seat.ReadingRoom = room[0];
                    }
                }
                SeatManage.ClassModel.EnterOutLogInfo enteroutlog = GetEnterOutLogInfoBySeatNum(seatNum);
                if (enteroutlog != null)
                {
                    seat.SeatUsedState = enteroutlog.EnterOutState;
                    seat.UserCardNo    = enteroutlog.CardNo;
                    seat.UserName      = enteroutlog.ReaderName;
                    seat.ShortSeatNo   = enteroutlog.ShortSeatNo;
                    seat.BeginUsedTime = enteroutlog.EnterOutTime;
                }
                else
                {
                    seat.SeatUsedState = EnterOutLogType.Leave;
                    seat.UserCardNo    = "";
                    seat.UserName      = "";
                    seat.ShortSeatNo   = SeatManage.SeatManageComm.SeatComm.SeatNoToShortSeatNo(seat.ReadingRoom.Setting.SeatNumAmount, seat.SeatNo);
                }

                return(seat);
            }
            else
            {
                return(null);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            seatNo = Request.QueryString["seatNo"];
            string seatShortNo = Request.QueryString["seatShortNo"];
            string seatUsed    = Request.QueryString["used"];

            if (!IsPostBack)
            {
                if (Request.ServerVariables["HTTP_REFERER"] != null)
                {
                    string url      = Request.ServerVariables["HTTP_REFERER"].Trim();
                    string pageName = SeatManage.SeatManageComm.SeatComm.GetPageName(url);
                    if (pageName != "SeatGraph.aspx" && pageName != "FormSYS.aspx" && pageName != "MonitorListMode.aspx")
                    {
                        WriteLogs(url);
                        Response.Write("请通过正确方式访问网站!");
                        Response.End();
                        return;
                        //PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                    }
                }
                else
                {
                    WriteLogs(HttpContext.Current.Request.Url.AbsoluteUri);
                    Response.Write("请通过正确方式访问网站!");
                    Response.End();
                    return;
                    //PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                }
                BindUIElement(seatNo, seatShortNo, seatUsed);
            }
            SeatManage.ClassModel.Seat seat = SeatManage.Bll.T_SM_Seat.GetSeatInfoBySeatNo(seatNo);
            SeatManage.ClassModel.RegulationRulesSetting rulesSet    = SeatManage.Bll.T_SM_SystemSet.GetRegulationRulesSetting();
            SeatManage.ClassModel.ReadingRoomInfo        readingroom = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(seat.ReadingRoomNum);
            if ((!rulesSet.BlacklistSet.Used) && (!readingroom.Setting.BlackListSetting.Used))
            {
                btnAddBlackList.Enabled = false;
            }
        }
 /// <summary>
 /// 绑定UI元素
 /// </summary>
 private void BindUIElement(string seatNo, string seatShortNo, string seatUsed)
 {
     if (!string.IsNullOrEmpty(seatNo))
     {
         lblSeatNo.Text = seatShortNo;
         if (seatUsed == "0")
         {
             lblCardNo.Text            = "无";
             lblName.Text              = "无";
             lblSeatStatus.Text        = "空闲";
             lblTimeLength.Text        = "";
             txtSeat.Text              = seatShortNo;
             btnAddBlackList.Enabled   = false;
             btnShortLeave.Enabled     = false;
             btnShortLeave.Text        = "暂离";
             btnShortLeave.ConfirmText = "是否确定把该读者设置为暂离?";
             btnLeave.Enabled          = false;
             btnAllotSeat.Enabled      = true;
         }
         else if (seatUsed == "2")
         {
             List <SeatManage.ClassModel.BespeakLogInfo> list = SeatManage.Bll.T_SM_SeatBespeak.GetBespeakLogInfoBySeatNo(seatNo, SeatManage.Bll.ServiceDateTime.Now);
             if (list == null)
             {
                 FineUI.Alert.ShowInTop("没有获取到相关的座位信息", "错误");
             }
             else
             {
                 txtSeat.Text              = seatShortNo;
                 lblCardNo.Text            = list[0].CardNo;
                 lblName.Text              = list[0].ReaderName;
                 lblSeatStatus.Text        = "已被预约";
                 lblTimeLength.Text        = string.Format("{0:MM月dd日 HH:mm:ss}", list[0].BsepeakTime);
                 btnAddBlackList.Enabled   = false;
                 btnShortLeave.Enabled     = false;
                 btnShortLeave.Text        = "暂离";
                 btnShortLeave.ConfirmText = "是否确定把该读者设置为暂离?";
                 btnLeave.Enabled          = false;
                 btnAllotSeat.Enabled      = false;
             }
         }
         else if (seatUsed == "3")
         {
             FineUI.Alert.ShowInTop("此座位已暂停使用", "提示");
             btnAddBlackList.Enabled   = false;
             btnShortLeave.Enabled     = false;
             btnShortLeave.ConfirmText = "此座位已暂停使用,请重新选择";
             btnLeave.Enabled          = false;
             btnAllotSeat.Enabled      = false;
         }
         else
         {
             SeatManage.ClassModel.Seat seat = SeatManage.Bll.T_SM_Seat.GetSeatInfoBySeatNo(seatNo);
             if (seat == null)
             {
                 FineUI.Alert.ShowInTop("没有获取到相关的座位信息", "错误");
             }
             else
             {
                 if (seat.SeatUsedState == SeatManage.EnumType.EnterOutLogType.Leave)
                 {
                     lblCardNo.Text            = "无";
                     lblName.Text              = "无";
                     lblSeatStatus.Text        = "空闲";
                     lblTimeLength.Text        = "";
                     txtSeat.Text              = seat.ShortSeatNo;
                     btnAddBlackList.Enabled   = false;
                     btnShortLeave.Enabled     = false;
                     btnShortLeave.Text        = "暂离";
                     btnShortLeave.ConfirmText = "是否确定把该读者设置为暂离?";
                     btnLeave.Enabled          = false;
                     btnAllotSeat.Enabled      = true;
                 }
                 else if (seat.SeatUsedState == SeatManage.EnumType.EnterOutLogType.ShortLeave)
                 {
                     txtCardNo.Text            = seat.UserCardNo;
                     txtCardNo1.Text           = seat.UserCardNo;
                     txtReaderName.Text        = seat.UserName;
                     txtSeat.Text              = seat.ShortSeatNo;
                     lblCardNo.Text            = seat.UserCardNo;
                     lblName.Text              = seat.UserName;
                     lblSeatStatus.Text        = SeatManage.SeatManageComm.SeatComm.ConvertReaderState(seat.SeatUsedState);
                     lblTimeLength.Text        = string.Format("{0:MM月dd日 HH:mm:ss}", seat.BeginUsedTime);
                     btnAddBlackList.Enabled   = true;
                     btnShortLeave.Enabled     = true;
                     btnShortLeave.Text        = "取消暂离";
                     btnShortLeave.ConfirmText = "是否取消此读者的暂离状态,并还原为在座状态?";
                     btnLeave.Enabled          = true;
                     btnAllotSeat.Enabled      = false;
                 }
                 else
                 {
                     txtCardNo.Text            = seat.UserCardNo;
                     txtCardNo1.Text           = seat.UserCardNo;
                     txtReaderName.Text        = seat.UserName;
                     txtSeat.Text              = seat.ShortSeatNo;
                     lblCardNo.Text            = seat.UserCardNo;
                     lblName.Text              = seat.UserName;
                     lblSeatStatus.Text        = SeatManage.SeatManageComm.SeatComm.ConvertReaderState(seat.SeatUsedState);
                     lblTimeLength.Text        = string.Format("{0:MM月dd日 HH:mm:ss}", seat.BeginUsedTime);
                     btnAddBlackList.Enabled   = true;
                     btnShortLeave.Enabled     = true;
                     btnShortLeave.Text        = "暂离";
                     btnShortLeave.ConfirmText = "是否确定把该读者设置为暂离?";
                     btnLeave.Enabled          = true;
                     btnAllotSeat.Enabled      = false;
                 }
             }
         }
     }
     else
     {
         FineUI.Alert.ShowInTop("座位号不能为空", "错误");
     }
 }
        protected void btnSureAllotSeat_Click(object sender, EventArgs e)
        {
            SeatManage.ClassModel.Seat            seat     = SeatManage.Bll.T_SM_Seat.GetSeatInfoBySeatNo(seatNo);
            SeatManage.ClassModel.ReadingRoomInfo roomInfo = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(seat.ReadingRoomNum);
            if (seat == null)
            {
                FineUI.Alert.ShowInTop("座位号错误,没有找到座位的相关信息");
                return;
            }
            //判断当前座位上是否有读者在座。
            SeatManage.ClassModel.EnterOutLogInfo enterOutLogByseatNo = SeatManage.Bll.T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo);
            if (enterOutLogByseatNo != null && enterOutLogByseatNo.EnterOutState != SeatManage.EnumType.EnterOutLogType.Leave)
            {
                FineUI.Alert.ShowInTop("座位已经被其他读者选择");
                return;
            }
            //判断读者是否有座位
            string strCardNo = txtCardNo1.Text;
            List <SeatManage.ClassModel.BlackListInfo> blacklistInfoByCardNo = SeatManage.Bll.T_SM_Blacklist.GetBlackListInfo(strCardNo);

            SeatManage.ClassModel.RegulationRulesSetting rulesSet = SeatManage.Bll.T_SM_SystemSet.GetRegulationRulesSetting();
            if (roomInfo.Setting.UsedBlacklistLimit && blacklistInfoByCardNo.Count > 0)
            {
                if (roomInfo.Setting.BlackListSetting.Used)
                {
                    bool isblack = false;
                    foreach (SeatManage.ClassModel.BlackListInfo blinfo in blacklistInfoByCardNo)
                    {
                        if (blinfo.ReadingRoomID == roomInfo.No)
                        {
                            isblack = true;
                            break;
                        }
                    }
                    if (isblack)
                    {
                        FineUI.Alert.ShowInTop("该读者已进入黑名单,不能在该阅览室为其分配座位");
                        return;
                    }
                }
                else
                {
                    FineUI.Alert.ShowInTop("该读者已进入黑名单,不能在该阅览室为其分配座位");
                    return;
                }
            }
            SeatManage.ClassModel.EnterOutLogInfo enterOutLogByCardNo = SeatManage.Bll.T_SM_EnterOutLog.GetEnterOutLogInfoByCardNo(strCardNo);
            if (enterOutLogByCardNo != null && enterOutLogByCardNo.EnterOutState != SeatManage.EnumType.EnterOutLogType.Leave)
            {
                FineUI.Alert.ShowInTop(string.Format("读者已经在{0},{1}号座位就做", enterOutLogByCardNo.ReadingRoomName, enterOutLogByCardNo.ShortSeatNo));
                return;
            }

            SeatManage.ClassModel.EnterOutLogInfo enterOutLogModel = new SeatManage.ClassModel.EnterOutLogInfo();
            enterOutLogModel.CardNo        = strCardNo;
            enterOutLogModel.EnterOutLogNo = SeatManage.SeatManageComm.SeatComm.RndNum();
            enterOutLogModel.EnterOutState = SeatManage.EnumType.EnterOutLogType.SelectSeat;
            enterOutLogModel.EnterOutTime  = SeatManage.Bll.ServiceDateTime.Now;
            enterOutLogModel.EnterOutType  = SeatManage.EnumType.LogStatus.Valid;
            enterOutLogModel.Flag          = SeatManage.EnumType.Operation.Admin;
            enterOutLogModel.ReadingRoomNo = seat.ReadingRoomNum;
            enterOutLogModel.Remark        = string.Format("在后台管理网站被管理员{0},分配{1},{2}座位", this.LoginId, roomInfo.Name, seat.SeatNo.Substring(seat.SeatNo.Length - roomInfo.Setting.SeatNumAmount));
            enterOutLogModel.SeatNo        = seatNo;
            int newId = -1;

            SeatManage.EnumType.HandleResult result = SeatManage.Bll.EnterOutOperate.AddEnterOutLog(enterOutLogModel, ref newId);
            if (result == SeatManage.EnumType.HandleResult.Successed)
            {
                FineUI.Alert.ShowInTop("分配座位成功", "成功");
                PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
            }
            else
            {
                FineUI.Alert.ShowInTop("分配座位失败", "失败");
            }
        }
        protected void btn_SureAddBlacklist(object sender, EventArgs e)
        {
            SeatManage.ClassModel.Seat seat = SeatManage.Bll.T_SM_Seat.GetSeatInfoBySeatNo(seatNo);
            SeatManage.ClassModel.RegulationRulesSetting rulesSet     = SeatManage.Bll.T_SM_SystemSet.GetRegulationRulesSetting();
            SeatManage.ClassModel.BlacklistSetting       blacklistSet = rulesSet.BlacklistSet;
            SeatManage.ClassModel.ReadingRoomInfo        readingroom  = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(seat.ReadingRoomNum);
            int i = -1;

            if (readingroom != null && readingroom.Setting.BlackListSetting.Used)
            {
                SeatManage.ClassModel.BlackListInfo blacklistModel = new SeatManage.ClassModel.BlackListInfo();
                blacklistModel.AddTime          = SeatManage.Bll.ServiceDateTime.Now;
                blacklistModel.ReadingRoomID    = readingroom.No;
                blacklistModel.BlacklistState   = SeatManage.EnumType.LogStatus.Valid;
                blacklistModel.CardNo           = txtCardNo.Text;
                blacklistModel.OutBlacklistMode = readingroom.Setting.BlackListSetting.LeaveBlacklist;
                if (blacklistModel.OutBlacklistMode == SeatManage.EnumType.LeaveBlacklistMode.AutomaticMode)
                {
                    blacklistModel.ReMark  = string.Format("管理员{0}把读者加入黑名单,记录黑名单{1}天,备注:{2}", this.LoginId, readingroom.Setting.BlackListSetting.LimitDays, txtRemark.Text);
                    blacklistModel.OutTime = blacklistModel.AddTime.AddDays(readingroom.Setting.BlackListSetting.LimitDays);
                }
                else
                {
                    blacklistModel.ReMark = string.Format("管理员{0}把读者加入黑名单,手动离开黑名单,备注:{1}", this.LoginId, txtRemark.Text);
                }
                blacklistModel.ReadingRoomID = seat.ReadingRoomNum;
                i = SeatManage.Bll.T_SM_Blacklist.AddBlackList(blacklistModel);
            }
            else if (blacklistSet.Used)
            {
                SeatManage.ClassModel.BlackListInfo blacklistModel = new SeatManage.ClassModel.BlackListInfo();
                blacklistModel.AddTime          = SeatManage.Bll.ServiceDateTime.Now;
                blacklistModel.OutTime          = blacklistModel.AddTime.AddDays(blacklistSet.LimitDays);
                blacklistModel.BlacklistState   = SeatManage.EnumType.LogStatus.Valid;
                blacklistModel.CardNo           = txtCardNo.Text;
                blacklistModel.OutBlacklistMode = blacklistSet.LeaveBlacklist;
                if (blacklistModel.OutBlacklistMode == SeatManage.EnumType.LeaveBlacklistMode.AutomaticMode)
                {
                    blacklistModel.ReMark  = string.Format("管理员{0}把读者加入黑名单,记录黑名单{1}天,备注:{2}", this.LoginId, blacklistSet.LimitDays, txtRemark.Text);
                    blacklistModel.OutTime = blacklistModel.AddTime.AddDays(blacklistSet.LimitDays);
                }
                else
                {
                    blacklistModel.ReMark = string.Format("管理员{0}把读者加入黑名单,手动离开黑名单,备注:{1}", this.LoginId, txtRemark.Text);
                }
                blacklistModel.ReadingRoomID = seat.ReadingRoomNum;
                i = SeatManage.Bll.T_SM_Blacklist.AddBlackList(blacklistModel);
            }
            else
            {
                FineUI.Alert.ShowInTop("对不起,此阅览室以及图书馆没有启用黑名单功能", "失败");
                return;
            }
            if (i > 0)
            {
                SeatManage.ClassModel.EnterOutLogInfo enterOutLogModel = SeatManage.Bll.T_SM_EnterOutLog.GetEnterOutLogInfoByCardNo(txtCardNo.Text);
                SeatManage.EnumType.EnterOutLogType   type             = enterOutLogModel.EnterOutState;
                enterOutLogModel.EnterOutState = SeatManage.EnumType.EnterOutLogType.Leave;
                enterOutLogModel.Flag          = SeatManage.EnumType.Operation.Admin;
                enterOutLogModel.Remark        = string.Format("在{0},{1}号座位,被管理员{2},在后台管理网站加入黑名单并释放座位", enterOutLogModel.ReadingRoomName, enterOutLogModel.ShortSeatNo, this.LoginId);
                SeatManage.EnumType.HandleResult result = SeatManage.Bll.EnterOutOperate.AddEnterOutLog(enterOutLogModel, ref i);
                if (result == SeatManage.EnumType.HandleResult.Successed)
                {
                    //SeatManage.ClassModel.ReaderNoticeInfo rni = new SeatManage.ClassModel.ReaderNoticeInfo();
                    //rni.CardNo = enterOutLogModel.CardNo;
                    //rni.Type = SeatManage.EnumType.NoticeType.ManagerFreeSetWarning;
                    //rni.Note = enterOutLogModel.Remark;
                    //SeatManage.Bll.T_SM_ReaderNotice.AddReaderNotice(rni);

                    //PushMsgInfo msg = new PushMsgInfo();
                    //msg.Title = "您好,您的座位已被释放";
                    //msg.MsgType = MsgPushType.AdminOperation;
                    //msg.StudentNum = enterOutLogModel.CardNo;
                    //msg.Message = enterOutLogModel.Remark;
                    //SeatManage.Bll.T_SM_ReaderNotice.SendPushMsg(msg);


                    if (type == SeatManage.EnumType.EnterOutLogType.ShortLeave)
                    {
                        List <SeatManage.ClassModel.WaitSeatLogInfo> waitSeatLogs = SeatManage.Bll.T_SM_SeatWaiting.GetWaitSeatList("", enterOutLogModel.EnterOutLogID, null, null, null);
                        SeatManage.ClassModel.WaitSeatLogInfo        waitSeatLog  = null;
                        if (waitSeatLogs.Count > 0)
                        {
                            waitSeatLog              = waitSeatLogs[0];
                            waitSeatLog.NowState     = SeatManage.EnumType.LogStatus.Fail;
                            waitSeatLog.OperateType  = SeatManage.EnumType.Operation.OtherReader;
                            waitSeatLog.WaitingState = SeatManage.EnumType.EnterOutLogType.WaitingCancel;
                            if (SeatManage.Bll.T_SM_SeatWaiting.UpdateWaitLog(waitSeatLog))
                            {
                                //rni = new SeatManage.ClassModel.ReaderNoticeInfo();
                                //rni.CardNo = waitSeatLog.CardNo;
                                //rni.Type = SeatManage.EnumType.NoticeType.WaitSeatFail;
                                //rni.Note = "您所等待的座位已被管理员释放,您的等待已被取消";
                                //SeatManage.Bll.T_SM_ReaderNotice.AddReaderNotice(rni);

                                //msg = new PushMsgInfo();
                                //msg.Title = "您好,您已被取消等待";
                                //msg.MsgType = MsgPushType.AdminOperation;
                                //msg.StudentNum = waitSeatLog.CardNo;
                                //msg.Message = "您所等待的座位已被管理员释放,您的等待已被取消";
                                //SeatManage.Bll.T_SM_ReaderNotice.SendPushMsg(msg);
                            }
                        }
                    }

                    FineUI.Alert.ShowInTop("黑名单添加成功", "成功");
                    PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
                }
                else
                {
                    FineUI.Alert.ShowInTop("黑名单添加失败", "失败");
                }
            }
            else
            {
                FineUI.Alert.ShowInTop("黑名单添加失败", "失败");
            }
        }
        /// <summary>
        /// 绑定UI元素
        /// </summary>
        /// <param name="seatNo"></param>
        /// <param name="seatShortNo"></param>GetBespeakLogInfoBySeatNo
        void BindUIElement(string seatNo, string seatShortNo, DateTime date)
        {
            SeatManage.ClassModel.ReadingRoomInfo room           = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(roomNo);
            SeatManage.Bll.T_SM_ReadingRoom       bllReadingRoom = new SeatManage.Bll.T_SM_ReadingRoom();
            foreach (DateTime dt in room.Setting.SeatBespeak.SpecifiedTimeList)
            {
                if (dt <= date)
                {
                    continue;
                }
                DropDownList_Time.Items.Add(new FineUI.ListItem(dt.ToShortTimeString(), dt.ToShortTimeString()));
            }
            DateTime minTime = date.AddMinutes(10 - date.Minute % 10);

            while (true)
            {
                minTime = minTime.AddMinutes(10);
                if (minTime.Date > date.Date)
                {
                    break;
                }
                if (Code.NowReadingRoomState.ReadingRoomOpenState(room.Setting.RoomOpenSet, minTime) == SeatManage.EnumType.ReadingRoomStatus.Close)
                {
                    continue;
                }
                DropDownList_FreeTime.Items.Add(new FineUI.ListItem(minTime.ToShortTimeString(), minTime.ToShortTimeString()));
            }
            if (!room.Setting.SeatBespeak.SpecifiedBespeak)
            {
                rblModel.Hidden = true;
            }
            if (rblModel.SelectedValue == "0")
            {
                DropDownList_FreeTime.Hidden = true;
                DropDownList_Time.Hidden     = true;
            }
            else
            {
                if (!room.Setting.SeatBespeak.SpecifiedTime)
                {
                    DropDownList_Time.Hidden     = true;
                    DropDownList_FreeTime.Hidden = false;
                }
                else
                {
                    DropDownList_FreeTime.Hidden = true;
                    DropDownList_Time.Hidden     = false;
                }
            }
            lblbeginDate.Text     = date.ToShortDateString();
            this.lblSeatNo.Text   = seatShortNo;
            this.lblRoomName.Text = room.Name;
            //判断自己是否已经预约座位
            List <SeatManage.EnumType.BookingStatus> bespeakStatus = new List <SeatManage.EnumType.BookingStatus>();

            bespeakStatus.Add(SeatManage.EnumType.BookingStatus.Waiting);
            List <SeatManage.ClassModel.BespeakLogInfo> readerBespeaklist = SeatManage.Bll.T_SM_SeatBespeak.GetBespeakLogInfoByCardNo(this.LoginId, date);//.GetBespeakList(this.LoginId, null, date, 0, bespeakStatus);

            if (readerBespeaklist.Count > 0)
            {
                FineUI.Alert.ShowInTop("您今天已有预约的座位,请先取消原来的预约。");
                btnBespeak.Enabled = false;
                PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                return;
            }
            //判断可预约次数是否超过
            readerBespeaklist = SeatManage.Bll.T_SM_SeatBespeak.GetBespeakList(this.LoginId, null, date, 0, new List <SeatManage.EnumType.BookingStatus> {
                SeatManage.EnumType.BookingStatus.Confinmed
            });                                                                                                                                                                                          //.GetBespeakList(this.LoginId, null, date, 0, bespeakStatus);
            if (readerBespeaklist.Count >= room.Setting.SeatBespeak.BespeakSeatCount)
            {
                FineUI.Alert.ShowInTop("您一天只能预约" + room.Setting.SeatBespeak.BespeakSeatCount + "次座位。");
                btnBespeak.Enabled = false;
                PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                return;
            }
            //判断读者是否有座位
            if (!room.Setting.SeatBespeak.BespeatWithOnSeat)
            {
                SeatManage.ClassModel.EnterOutLogInfo eol = SeatManage.Bll.T_SM_EnterOutLog.GetEnterOutLogInfoByCardNo(this.LoginId);
                if (eol != null && eol.EnterOutState != SeatManage.EnumType.EnterOutLogType.Leave)
                {
                    FineUI.Alert.ShowInTop("您已有座位,不能再预约座位");
                    btnBespeak.Enabled = false;
                    PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
                    return;
                }
            }
            //判断操作次数
            if (SeatManage.Bll.EnterOutOperate.CheckReaderChooseSeatTimesByReadingRoom(this.LoginId, room.Setting.PosTimes, room.No))
            {
                FineUI.Alert.ShowInTop("您的选座/预约操作过于频繁,请稍后重试");
                btnBespeak.Enabled = false;
                PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
                return;
            }
            //判断座位是否被别人使用
            SeatManage.ClassModel.Seat seat = SeatManage.Bll.T_SM_Seat.GetSeatInfoBySeatNo(seatNo);
            if (seat.SeatUsedState != SeatManage.EnumType.EnterOutLogType.Leave)
            {
                FineUI.Alert.ShowInTop("座位已经被别人选择,请预约其他座位");
                btnBespeak.Enabled = false;
                PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
                return;
            }
            //判断座位是否被预约
            List <SeatManage.ClassModel.BespeakLogInfo> list = SeatManage.Bll.T_SM_SeatBespeak.GetBespeakLogInfoBySeatNo(seatNo, date);

            seatKeepTime.Value   = room.Setting.SeatBespeak.SeatKeepTime.ToString();
            this.lblEndDate.Text = string.Format("{0}至{1}", date.ToShortTimeString(), date.AddMinutes(room.Setting.SeatBespeak.SeatKeepTime).ToShortTimeString());
            for (int i = 0; i < list.Count; i++)
            {
                if (list[i].BsepeakState == SeatManage.EnumType.BookingStatus.Waiting)
                {
                    FineUI.Alert.ShowInTop("座位已经被别人预约,请预约其他座位");
                    btnBespeak.Enabled = false;
                    PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
                    return;
                }
            }
            //判断是否已加入黑名单
            List <SeatManage.ClassModel.BlackListInfo> blacklistInfoByCardNo = SeatManage.Bll.T_SM_Blacklist.GetBlackListInfo(this.LoginId);

            SeatManage.ClassModel.RegulationRulesSetting rulesSet = SeatManage.Bll.T_SM_SystemSet.GetRegulationRulesSetting();
            if (room.Setting.UsedBlacklistLimit && blacklistInfoByCardNo.Count > 0)
            {
                if (room.Setting.BlackListSetting.Used)
                {
                    bool isblack = false;
                    foreach (SeatManage.ClassModel.BlackListInfo blinfo in blacklistInfoByCardNo)
                    {
                        if (blinfo.ReadingRoomID == room.No)
                        {
                            isblack = true;
                            break;
                        }
                    }
                    if (isblack)
                    {
                        FineUI.Alert.ShowInTop("你已进入黑名单,不能在该阅览室预约座位");
                        PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                        return;
                    }
                }
                else
                {
                    FineUI.Alert.ShowInTop("你已进入黑名单,不能在该阅览室预约座位");
                    PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                    return;
                }
            }
            if (room.Setting.LimitReaderEnter.Used)
            {
                SeatManage.ClassModel.ReaderInfo readerInfo = SeatManage.Bll.EnterOutOperate.GetReaderInfo(this.LoginId);
                string[] litype = room.Setting.LimitReaderEnter.ReaderTypes.Split(';');
                if (!room.Setting.LimitReaderEnter.CanEnter)
                {
                    foreach (string type in litype)
                    {
                        if (type == readerInfo.ReaderType)
                        {
                            FineUI.Alert.ShowInTop("你的读者类型不能在该阅览室预约座位");
                            PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                            return;
                        }
                    }
                }
                else
                {
                    bool isintype = false;
                    foreach (string type in litype)
                    {
                        if (type == readerInfo.ReaderType)
                        {
                            isintype = true;
                            break;
                        }
                    }
                    if (!isintype)
                    {
                        FineUI.Alert.ShowInTop("你的读者类型不能在该阅览室预约座位");
                        PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                        return;
                    }
                }
            }

            btnBespeak.Enabled = true;
        }
        /// <summary>
        /// 选座
        /// </summary>
        /// <param name="cardNum"></param>
        /// <param name="seatNum"></param>
        /// <param name="roomNum"></param>
        /// <returns></returns>
        public string SubmitChooseResult(string cardNum, string seatNum, string roomNum)
        {
            try
            {
                JM_HandleResult result = new JM_HandleResult();
                result.Result = true;
                result.Msg    = "";
                if (string.IsNullOrEmpty(cardNum))
                {
                    result        = new JM_HandleResult();
                    result.Result = false;
                    result.Msg    = "读者的学号不能为空";
                    return(SeatManageComm.JSONSerializer.Serialize(result));
                }
                if (seatNum.Length != 9)
                {
                    result        = new JM_HandleResult();
                    result.Result = false;
                    result.Msg    = "座位编号不正确";
                    return(SeatManageComm.JSONSerializer.Serialize(result));
                }
                string roomNo = seatNum.Substring(0, 6);
                //验证读者是否可以选择座位
                result = SeatManageComm.JSONSerializer.Deserialize <JM_HandleResult>(VerifyCanDoIt(cardNum, roomNo));
                if (!result.Result)
                {
                    return(SeatManageComm.JSONSerializer.Serialize(result));
                }
                SeatManage.ClassModel.Seat seatInfo = seatDataService.GetSeatInfoBySeatNum(seatNum);
                if (seatInfo == null)
                {
                    result        = new JM_HandleResult();
                    result.Result = false;
                    result.Msg    = "此座位不存在";
                    return(SeatManageComm.JSONSerializer.Serialize(result));
                }
                if (seatInfo.IsSuspended)
                {
                    result        = new JM_HandleResult();
                    result.Result = false;
                    result.Msg    = "座位已停用";
                    return(SeatManageComm.JSONSerializer.Serialize(result));
                }
                if (seatInfo.SeatUsedState != EnterOutLogType.Leave)
                {
                    result        = new JM_HandleResult();
                    result.Result = false;
                    result.Msg    = "座位正在被使用";
                    return(SeatManageComm.JSONSerializer.Serialize(result));
                }
                List <BespeakLogInfo> bespeaklogList = seatDataService.GetBespeakLogInfoBySeatNo(seatNum, DateTime.Now);
                if (bespeaklogList.Count > 0)
                {
                    if (!seatInfo.ReadingRoom.Setting.SeatBespeak.SelectBespeakSeat)
                    {
                        result        = new JM_HandleResult();
                        result.Result = false;
                        result.Msg    = "此座位座位已被预约";
                        return(SeatManageComm.JSONSerializer.Serialize(result));
                    }
                    if (bespeaklogList[0].BsepeakTime == bespeaklogList[0].SubmitTime)
                    {
                        result        = new JM_HandleResult();
                        result.Result = false;
                        result.Msg    = "此座位座位已被预约";
                        return(SeatManageComm.JSONSerializer.Serialize(result));
                    }
                    if (bespeaklogList[0].BsepeakTime.AddMinutes(-double.Parse(seatInfo.ReadingRoom.Setting.SeatBespeak.ConfirmTime.BeginTime)) <= DateTime.Now)
                    {
                        result        = new JM_HandleResult();
                        result.Result = false;
                        result.Msg    = "此座位座位已被预约";
                        return(SeatManageComm.JSONSerializer.Serialize(result));
                    }
                }

                EnterOutLogInfo enterOutlog = seatDataService.GetEnterOutLogInfoByCardNo(cardNum);
                if (enterOutlog != null && enterOutlog.EnterOutState != EnterOutLogType.Leave)
                {
                    result.Result = false;
                    result.Msg    = "对不起,您已有正在使用中的座位。";
                    return(SeatManageComm.JSONSerializer.Serialize(result));
                }
                if (seatDataService.GetSingleBespeakLogForWait(cardNum) != null)
                {
                    result        = new JM_HandleResult();
                    result.Result = false;
                    result.Msg    = "您有等待签到的预约记录。";
                    return(SeatManageComm.JSONSerializer.Serialize(result));
                }
                if (seatDataService.GetWaitLogList(cardNum, null, null, null, new List <EnterOutLogType>()
                {
                    EnterOutLogType.Waiting
                }).Count > 0)
                {
                    result        = new JM_HandleResult();
                    result.Result = false;
                    result.Msg    = "您有正在等待的座位。";
                    return(SeatManageComm.JSONSerializer.Serialize(result));
                }

                if (enterOutlog == null)
                {
                    enterOutlog = new EnterOutLogInfo();
                }
                enterOutlog.CardNo        = cardNum;
                enterOutlog.ReadingRoomNo = seatInfo.ReadingRoomNum;
                enterOutlog.Remark        = string.Format("通过移动终端,选择{0} {1}号座位", seatInfo.ReadingRoom.Name, seatInfo.ShortSeatNo);
                enterOutlog.SeatNo        = seatInfo.SeatNo;
                enterOutlog.Flag          = EnumType.Operation.Reader;
                enterOutlog.EnterOutType  = EnumType.LogStatus.Valid;
                enterOutlog.EnterOutState = EnumType.EnterOutLogType.SelectSeat;
                enterOutlog.EnterOutLogNo = SeatManage.SeatManageComm.SeatComm.RndNum();
                int newLogId = -1;
                if (seatDataService.AddEnterOutLogInfo(enterOutlog, ref newLogId) == HandleResult.Successed)
                {
                    result.Result = false;
                    result.Msg    = "选座成功。";
                    return(SeatManageComm.JSONSerializer.Serialize(result));
                }
                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));
            }
        }
Esempio n. 10
0
        public JsonResult SureAllotSeat(string seatNo, string seatShortNo, string used, string cardNo)
        {
            JsonResult ret = null;

            SeatManage.ClassModel.Seat            seat     = SeatManage.Bll.T_SM_Seat.GetSeatInfoBySeatNo(seatNo);
            SeatManage.ClassModel.ReadingRoomInfo roomInfo = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(seat.ReadingRoomNum);
            if (seat == null)
            {
                ret = Json(new { status = "no", message = "座位号错误,没有找到座位的相关信息" }, JsonRequestBehavior.AllowGet);
            }
            //判断当前座位上是否有读者在座。
            SeatManage.ClassModel.EnterOutLogInfo enterOutLogByseatNo = SeatManage.Bll.T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo);
            if (enterOutLogByseatNo != null && enterOutLogByseatNo.EnterOutState != SeatManage.EnumType.EnterOutLogType.Leave)
            {
                ret = Json(new { status = "no", message = "座位已经被其他读者选择" }, JsonRequestBehavior.AllowGet);
            }
            //判断读者是否有座位
            string strCardNo = cardNo;// txtCardNo1.Text;
            List <SeatManage.ClassModel.BlackListInfo> blacklistInfoByCardNo = SeatManage.Bll.T_SM_Blacklist.GetBlackListInfo(strCardNo);

            SeatManage.ClassModel.RegulationRulesSetting rulesSet = SeatManage.Bll.T_SM_SystemSet.GetRegulationRulesSetting();
            if (roomInfo.Setting.UsedBlacklistLimit && blacklistInfoByCardNo.Count > 0)
            {
                if (roomInfo.Setting.BlackListSetting.Used)
                {
                    bool isblack = false;
                    foreach (SeatManage.ClassModel.BlackListInfo blinfo in blacklistInfoByCardNo)
                    {
                        if (blinfo.ReadingRoomID == roomInfo.No)
                        {
                            isblack = true;
                            break;
                        }
                    }
                    if (isblack)
                    {
                        ret = Json(new { status = "no", message = "该读者已进入黑名单,不能在该阅览室为其分配座位" }, JsonRequestBehavior.AllowGet);
                    }
                }
                else
                {
                    ret = Json(new { status = "no", message = "该读者已进入黑名单,不能在该阅览室为其分配座位" }, JsonRequestBehavior.AllowGet);
                }
            }
            SeatManage.ClassModel.EnterOutLogInfo enterOutLogByCardNo = SeatManage.Bll.T_SM_EnterOutLog.GetEnterOutLogInfoByCardNo(strCardNo);
            if (enterOutLogByCardNo != null && enterOutLogByCardNo.EnterOutState != SeatManage.EnumType.EnterOutLogType.Leave)
            {
                ret = Json(new { status = "no", message = string.Format("读者已经在{0},{1}号座位就做", enterOutLogByCardNo.ReadingRoomName, enterOutLogByCardNo.ShortSeatNo) }, JsonRequestBehavior.AllowGet);
            }

            SeatManage.ClassModel.EnterOutLogInfo enterOutLogModel = new SeatManage.ClassModel.EnterOutLogInfo();
            enterOutLogModel.CardNo        = strCardNo;
            enterOutLogModel.EnterOutLogNo = SeatManage.SeatManageComm.SeatComm.RndNum();
            enterOutLogModel.EnterOutState = SeatManage.EnumType.EnterOutLogType.SelectSeat;
            enterOutLogModel.EnterOutTime  = SeatManage.Bll.ServiceDateTime.Now;
            enterOutLogModel.EnterOutType  = SeatManage.EnumType.LogStatus.Valid;
            enterOutLogModel.Flag          = SeatManage.EnumType.Operation.Admin;
            enterOutLogModel.ReadingRoomNo = seat.ReadingRoomNum;
            enterOutLogModel.Remark        = string.Format("在后台管理网站被管理员{0},分配{1},{2}座位", this.LoginId, roomInfo.Name, seat.SeatNo.Substring(seat.SeatNo.Length - roomInfo.Setting.SeatNumAmount));
            enterOutLogModel.SeatNo        = seatNo;
            int newId = -1;

            SeatManage.EnumType.HandleResult result = SeatManage.Bll.EnterOutOperate.AddEnterOutLog(enterOutLogModel, ref newId);
            if (result == SeatManage.EnumType.HandleResult.Successed)
            {
                ret = Json(new { status = "yes", message = "分配座位成功" }, JsonRequestBehavior.AllowGet);
            }
            else
            {
                ret = Json(new { status = "no", message = "分配座位失败" }, JsonRequestBehavior.AllowGet);
            }

            return(ret);
        }
Esempio n. 11
0
        /// <summary>
        /// 添加黑名单
        /// </summary>
        /// <param name="seatNo"></param>
        /// <param name="seatShortNo"></param>
        /// <param name="used"></param>
        /// <param name="CardNo"></param>
        /// <param name="addBlackListRemark"></param>
        /// <returns></returns>
        public JsonResult SureAddBlacklist(string seatNo, string seatShortNo, string used, string CardNo, string addBlackListRemark)
        {
            addBlackListRemark = string.IsNullOrEmpty(addBlackListRemark) ? "未备注" : addBlackListRemark;

            JsonResult ret = null;

            SeatManage.ClassModel.Seat seat = SeatManage.Bll.T_SM_Seat.GetSeatInfoBySeatNo(seatNo);
            SeatManage.ClassModel.RegulationRulesSetting rulesSet     = SeatManage.Bll.T_SM_SystemSet.GetRegulationRulesSetting();
            SeatManage.ClassModel.BlacklistSetting       blacklistSet = rulesSet.BlacklistSet;
            SeatManage.ClassModel.ReadingRoomInfo        readingroom  = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(seat.ReadingRoomNum);
            int i = -1;

            if (readingroom != null && readingroom.Setting.BlackListSetting.Used)
            {
                SeatManage.ClassModel.BlackListInfo blacklistModel = new SeatManage.ClassModel.BlackListInfo();
                blacklistModel.AddTime          = SeatManage.Bll.ServiceDateTime.Now;
                blacklistModel.ReadingRoomID    = readingroom.No;
                blacklistModel.BlacklistState   = SeatManage.EnumType.LogStatus.Valid;
                blacklistModel.CardNo           = CardNo;
                blacklistModel.OutBlacklistMode = readingroom.Setting.BlackListSetting.LeaveBlacklist;
                if (blacklistModel.OutBlacklistMode == SeatManage.EnumType.LeaveBlacklistMode.AutomaticMode)
                {
                    blacklistModel.ReMark  = string.Format("管理员{0}把读者加入黑名单,记录黑名单{1}天,备注:{2}", this.LoginId, readingroom.Setting.BlackListSetting.LimitDays, addBlackListRemark);
                    blacklistModel.OutTime = blacklistModel.AddTime.AddDays(readingroom.Setting.BlackListSetting.LimitDays);
                }
                else
                {
                    blacklistModel.ReMark = string.Format("管理员{0}把读者加入黑名单,手动离开黑名单,备注:{1}", this.LoginId, addBlackListRemark);
                }
                blacklistModel.ReadingRoomID = seat.ReadingRoomNum;
                i = SeatManage.Bll.T_SM_Blacklist.AddBlackList(blacklistModel);
            }
            else if (blacklistSet.Used)
            {
                SeatManage.ClassModel.BlackListInfo blacklistModel = new SeatManage.ClassModel.BlackListInfo();
                blacklistModel.AddTime          = SeatManage.Bll.ServiceDateTime.Now;
                blacklistModel.OutTime          = blacklistModel.AddTime.AddDays(blacklistSet.LimitDays);
                blacklistModel.BlacklistState   = SeatManage.EnumType.LogStatus.Valid;
                blacklistModel.CardNo           = CardNo;
                blacklistModel.OutBlacklistMode = blacklistSet.LeaveBlacklist;
                if (blacklistModel.OutBlacklistMode == SeatManage.EnumType.LeaveBlacklistMode.AutomaticMode)
                {
                    blacklistModel.ReMark  = string.Format("管理员{0}把读者加入黑名单,记录黑名单{1}天,备注:{2}", this.LoginId, blacklistSet.LimitDays, addBlackListRemark);
                    blacklistModel.OutTime = blacklistModel.AddTime.AddDays(blacklistSet.LimitDays);
                }
                else
                {
                    blacklistModel.ReMark = string.Format("管理员{0}把读者加入黑名单,手动离开黑名单,备注:{1}", this.LoginId, addBlackListRemark);
                }
                blacklistModel.ReadingRoomID = seat.ReadingRoomNum;
                i = SeatManage.Bll.T_SM_Blacklist.AddBlackList(blacklistModel);
            }
            else
            {
                ret = Json(new { status = "no", message = "对不起,此阅览室以及图书馆没有启用黑名单功能" }, JsonRequestBehavior.AllowGet);
            }
            if (i > 0)
            {
                SeatManage.ClassModel.EnterOutLogInfo enterOutLogModel = SeatManage.Bll.T_SM_EnterOutLog.GetEnterOutLogInfoByCardNo(CardNo);
                SeatManage.EnumType.EnterOutLogType   type             = enterOutLogModel.EnterOutState;
                enterOutLogModel.EnterOutState = SeatManage.EnumType.EnterOutLogType.Leave;
                enterOutLogModel.Flag          = SeatManage.EnumType.Operation.Admin;
                enterOutLogModel.Remark        = string.Format("在{0},{1}号座位,被管理员{2},在后台管理网站加入黑名单并释放座位", enterOutLogModel.ReadingRoomName, enterOutLogModel.ShortSeatNo, this.LoginId);
                SeatManage.EnumType.HandleResult result = SeatManage.Bll.EnterOutOperate.AddEnterOutLog(enterOutLogModel, ref i);
                if (result == SeatManage.EnumType.HandleResult.Successed)
                {
                    //SeatManage.ClassModel.ReaderNoticeInfo rni = new SeatManage.ClassModel.ReaderNoticeInfo();
                    //rni.CardNo = enterOutLogModel.CardNo;
                    //rni.Type = SeatManage.EnumType.NoticeType.ManagerFreeSetWarning;
                    //rni.Note = enterOutLogModel.Remark;
                    //SeatManage.Bll.T_SM_ReaderNotice.AddReaderNotice(rni);

                    //PushMsgInfo msg = new PushMsgInfo();
                    //msg.Title = "您好,您的座位已被释放";
                    //msg.MsgType = MsgPushType.AdminOperation;
                    //msg.StudentNum = enterOutLogModel.CardNo;
                    //msg.Message = enterOutLogModel.Remark;
                    //SeatManage.Bll.T_SM_ReaderNotice.SendPushMsg(msg);


                    if (type == SeatManage.EnumType.EnterOutLogType.ShortLeave)
                    {
                        List <SeatManage.ClassModel.WaitSeatLogInfo> waitSeatLogs = SeatManage.Bll.T_SM_SeatWaiting.GetWaitSeatList("", enterOutLogModel.EnterOutLogID, null, null, null);
                        SeatManage.ClassModel.WaitSeatLogInfo        waitSeatLog  = null;
                        if (waitSeatLogs.Count > 0)
                        {
                            waitSeatLog              = waitSeatLogs[0];
                            waitSeatLog.NowState     = SeatManage.EnumType.LogStatus.Fail;
                            waitSeatLog.OperateType  = SeatManage.EnumType.Operation.OtherReader;
                            waitSeatLog.WaitingState = SeatManage.EnumType.EnterOutLogType.WaitingCancel;
                            if (SeatManage.Bll.T_SM_SeatWaiting.UpdateWaitLog(waitSeatLog))
                            {
                                //rni = new SeatManage.ClassModel.ReaderNoticeInfo();
                                //rni.CardNo = waitSeatLog.CardNo;
                                //rni.Type = SeatManage.EnumType.NoticeType.WaitSeatFail;
                                //rni.Note = "您所等待的座位已被管理员释放,您的等待已被取消";
                                //SeatManage.Bll.T_SM_ReaderNotice.AddReaderNotice(rni);

                                //msg = new PushMsgInfo();
                                //msg.Title = "您好,您已被取消等待";
                                //msg.MsgType = MsgPushType.AdminOperation;
                                //msg.StudentNum = waitSeatLog.CardNo;
                                //msg.Message = "您所等待的座位已被管理员释放,您的等待已被取消";
                                //SeatManage.Bll.T_SM_ReaderNotice.SendPushMsg(msg);
                            }
                        }
                    }
                    ret = Json(new { status = "yes", message = "黑名单添加成功" }, JsonRequestBehavior.AllowGet);
                }
                else
                {
                    ret = Json(new { status = "no", message = "黑名单添加失败" }, JsonRequestBehavior.AllowGet);
                }
            }
            else
            {
                ret = Json(new { status = "no", message = "黑名单添加失败" }, JsonRequestBehavior.AllowGet);
            }
            return(ret);
        }
Esempio n. 12
0
        /// <summary>
        /// 绑定单个座位信息
        /// </summary>
        /// <param name="seatNo"></param>
        /// <param name="seatShortNo"></param>
        /// <param name="used"></param>
        public void BindSingleSeat(string seatNo, string seatShortNo, string used)
        {
            if (!string.IsNullOrEmpty(seatNo)) //如果座位号不为空,正常打开
            {
                ViewBag.SeatNo = seatShortNo;

                if (used == "0") //没人
                {
                    ViewBag.CardNo                   = "无";
                    ViewBag.Name                     = "无";
                    ViewBag.SeatStatus               = "空闲";
                    ViewBag.TimeLength               = "";
                    ViewBag.Seat                     = seatShortNo;
                    ViewBag.AddBlackListEnabled      = "false";
                    ViewBag.ShortLeaveEnabled        = "false";
                    ViewBag.btnShortLeave            = "暂离";
                    ViewBag.btnShortLeaveConfirmText = "是否确定把该读者设置为暂离?";
                    ViewBag.btnAllotSeatEnabled      = "true";
                }
                else if (used == "2")
                {
                    List <SeatManage.ClassModel.BespeakLogInfo> list = SeatManage.Bll.T_SM_SeatBespeak.GetBespeakLogInfoBySeatNo(seatNo, SeatManage.Bll.ServiceDateTime.Now);
                    if (list == null)
                    {
                        Response.Write("<html><head><title>系统提示</title><script>alert('没有获取到相关的座位信息');</script></head><body></body></html>");
                        Response.End();
                    }
                    else
                    {
                        //txtSeat.Text = seatShortNo;
                        ViewBag.SeatNo = seatShortNo;

                        //lblCardNo.Text = list[0].CardNo;
                        ViewBag.CardNo = list[0].CardNo;

                        //lblName.Text = list[0].ReaderName;
                        ViewBag.Name = list[0].ReaderName;

                        //lblSeatStatus.Text = "已被预约";
                        ViewBag.SeatStatus = "已被预约";

                        //  lblTimeLength.Text = string.Format("{0:MM月dd日 HH:mm:ss}", list[0].BsepeakTime);
                        ViewBag.TimeLength = string.Format("{0:MM月dd日 HH:mm:ss}", list[0].BsepeakTime);

                        //btnAddBlackList.Enabled = false;
                        ViewBag.AddBlackListEnabled = "false";

                        //btnShortLeave.Enabled = false;
                        ViewBag.ShortLeaveEnabled = "false";

                        //  btnShortLeave.Text = "暂离";
                        ViewBag.btnShortLeave = "暂离";

                        // btnShortLeave.ConfirmText = "是否确定把该读者设置为暂离?";
                        ViewBag.btnShortLeaveConfirmText = "是否确定把该读者设置为暂离?";

                        // btnLeave.Enabled = false;
                        ViewBag.btnLeave = "false";

                        // btnAllotSeat.Enabled = false;
                        ViewBag.btnAllotSeatEnabled = "false";
                    }
                }
                else if (used == "3") //座位停用
                {
                    //  FineUI.Alert.ShowInTop("此座位已暂停使用", "提示");
                    Response.Write("<html><head><title>系统提示</title><script>alert('此座位已暂停使用');</script></head><body></body></html>");
                    Response.End();

                    //  btnAddBlackList.Enabled = false;
                    ViewBag.AddBlackListEnabled = "false";

                    //  btnShortLeave.Enabled = false;
                    ViewBag.ShortLeaveEnabled = "false";

                    //   btnShortLeave.ConfirmText = "此座位已暂停使用,请重新选择";
                    ViewBag.btnShortLeaveConfirmText = "此座位已暂停使用,请重新选择";

                    //  btnLeave.Enabled = false;
                    ViewBag.btnLeave = "false";

                    //  btnAllotSeat.Enabled = false;
                    ViewBag.btnAllotSeatEnabled = "false";
                }
                else
                {
                    SeatManage.ClassModel.Seat seat = SeatManage.Bll.T_SM_Seat.GetSeatInfoBySeatNo(seatNo);
                    if (seat == null)
                    {
                        Response.Write("<html><head><title>系统提示</title><script>alert('没有获取到相关的座位信息');</script></head><body></body></html>");
                        Response.End();
                        //  FineUI.Alert.ShowInTop("没有获取到相关的座位信息", "错误");
                    }
                    else
                    {
                        if (seat.SeatUsedState == SeatManage.EnumType.EnterOutLogType.Leave)
                        {
                            //lblCardNo.Text = "无";
                            ViewBag.CardNo = "无";

                            // lblName.Text = "无";
                            ViewBag.Name = "无";

                            // lblSeatStatus.Text = "空闲";
                            ViewBag.SeatStatus = "空闲";

                            //   lblTimeLength.Text = "";
                            ViewBag.TimeLength = "";

                            //  txtSeat.Text = seat.ShortSeatNo;
                            ViewBag.Seat = seat.ShortSeatNo;

                            // btnAddBlackList.Enabled = false;
                            ViewBag.AddBlackListEnabled = "false";

                            // btnShortLeave.Enabled = false;
                            ViewBag.ShortLeaveEnabled = "false";

                            // btnShortLeave.Text = "暂离";
                            ViewBag.btnShortLeave = "暂离";

                            //   btnShortLeave.ConfirmText = "是否确定把该读者设置为暂离?";
                            ViewBag.btnShortLeaveConfirmText = "是否确定把该读者设置为暂离";

                            //  btnLeave.Enabled = false;
                            ViewBag.btnLeave = "false";

                            //  btnAllotSeat.Enabled = true;
                            ViewBag.btnAllotSeatEnabled = "false";
                        }
                        else if (seat.SeatUsedState == SeatManage.EnumType.EnterOutLogType.ShortLeave)
                        {
                            //  txtCardNo.Text = seat.UserCardNo;
                            ViewBag.CardNo = seat.UserCardNo;

                            //   txtCardNo1.Text = seat.UserCardNo;
                            ViewBag.txtCardNo1 = seat.UserCardNo;

                            //txtReaderName.Text = seat.UserName;
                            ViewBag.ReaderNameText = seat.UserName;

                            //txtSeat.Text = seat.ShortSeatNo;
                            ViewBag.Seat = seat.ShortSeatNo;

                            //   lblCardNo.Text = seat.UserCardNo;
                            ViewBag.CardNo = seat.UserCardNo;

                            // lblName.Text = seat.UserName;
                            ViewBag.Name = seat.UserName;

                            //   lblSeatStatus.Text = SeatManage.SeatManageComm.SeatComm.ConvertReaderState(seat.SeatUsedState);
                            ViewBag.SeatStatus = SeatManage.SeatManageComm.SeatComm.ConvertReaderState(seat.SeatUsedState);

                            //lblTimeLength.Text = string.Format("{0:MM月dd日 HH:mm:ss}", seat.BeginUsedTime);
                            ViewBag.TimeLength = string.Format("{0:MM月dd日 HH:mm:ss}", seat.BeginUsedTime);

                            // btnAddBlackList.Enabled = true;
                            ViewBag.AddBlackListEnabled = "true";

                            // btnShortLeave.Enabled = true;
                            ViewBag.ShortLeaveEnabled = "true";

                            // btnShortLeave.Text = "取消暂离";
                            ViewBag.btnShortLeave = "取消暂离";

                            //btnShortLeave.ConfirmText = "是否取消此读者的暂离状态,并还原为在座状态?";
                            ViewBag.btnShortLeaveConfirmText = "是否取消此读者的暂离状态,并还原为在座状态?";

                            //btnLeave.Enabled = true;
                            ViewBag.btnLeave = "true";

                            //  btnAllotSeat.Enabled = false;
                            ViewBag.btnAllotSeatEnabled = "false";
                        }
                        else
                        {
                            //  txtCardNo.Text = seat.UserCardNo;
                            ViewBag.CardNo = seat.UserCardNo;

                            //  txtCardNo1.Text = seat.UserCardNo;
                            ViewBag.txtCardNo1 = seat.UserCardNo;

                            //  txtReaderName.Text = seat.UserName;
                            ViewBag.ReaderNameText = seat.UserName;

                            //   txtSeat.Text = seat.ShortSeatNo;
                            ViewBag.Seat = seat.ShortSeatNo;

                            //  lblCardNo.Text = seat.UserCardNo;
                            ViewBag.CardNo = seat.UserCardNo;

                            //   lblName.Text = seat.UserName;
                            ViewBag.Name = seat.UserName;

                            //    lblSeatStatus.Text = SeatManage.SeatManageComm.SeatComm.ConvertReaderState(seat.SeatUsedState);
                            ViewBag.SeatStatus = SeatManage.SeatManageComm.SeatComm.ConvertReaderState(seat.SeatUsedState);

                            //  lblTimeLength.Text = string.Format("{0:MM月dd日 HH:mm:ss}", seat.BeginUsedTime);
                            ViewBag.TimeLength = string.Format("{0:MM月dd日 HH:mm:ss}", seat.BeginUsedTime);

                            //   btnAddBlackList.Enabled = true;
                            ViewBag.AddBlackListEnabled = "true";

                            //  btnShortLeave.Enabled = true;
                            ViewBag.ShortLeaveEnabled = "true";

                            // btnShortLeave.Text = "暂离";
                            ViewBag.btnShortLeave = "暂离";

                            //  btnShortLeave.ConfirmText = "是否确定把该读者设置为暂离?";
                            ViewBag.btnShortLeaveConfirmText = "是否确定把该读者设置为暂离?";

                            // btnLeave.Enabled = true;
                            ViewBag.btnLeave = "true";

                            // btnAllotSeat.Enabled = false;
                            ViewBag.btnAllotSeatEnabled = "false";
                        }
                    }
                }
            }
            else
            {
                Response.Write("<html><head><title>系统提示</title><script>alert('座位号不能为空');</script></head><body></body></html>");
                Response.End();
                //  FineUI.Alert.ShowInTop("座位号不能为空", "错误");
            }
        }
        /// <summary>
        /// 解析座位配置
        /// </summary>
        /// <param name="seatXml"></param>
        /// <returns></returns>
        private static SeatLayout getSeats(string seatXml)
        {
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(seatXml);
            SeatLayout seats = new SeatLayout();
            //查找行数和列数
            XmlNode node = doc.SelectSingleNode("//seatroot/seatinfo/rowscount");

            seats.SeatRow = int.Parse(node.InnerText);
            node          = doc.SelectSingleNode("//seatroot/seatinfo/columscount");
            seats.SeatCol = int.Parse(node.InnerText);
            //查找方位
            node = doc.SelectSingleNode("//seatroot/seatinfo/position");
            if (node != null)
            {
                seats.Position = node.InnerText;
            }
            //查找座位
            XmlNodeList nodes = doc.SelectNodes("//seatroot/seatdetail/objseat");
            Dictionary <string, Seat> seatList = new Dictionary <string, Seat>();

            foreach (XmlNode element in nodes)
            {
                try
                {
                    Seat seat = new Seat();
                    seat.ShortSeatNo  = element.Attributes["seatno"].Value.Substring(6, 3);
                    seat.SeatNo       = element.Attributes["seatno"].Value;
                    seat.PositionY    = double.Parse(element.Attributes["rownum"].Value);
                    seat.PositionX    = double.Parse(element.Attributes["colnum"].Value);
                    seat.HavePower    = ConfigConvert.ConvertToBool(element.Attributes["haspower"].Value);
                    seat.CanBeBespeak = getCanBeBook(element.Attributes["booktype"].Value);
                    if (element.Attributes["centerx"] != null)
                    {
                        seat.RotationCenterX = int.Parse(element.Attributes["centerx"].Value);
                    }
                    if (element.Attributes["centery"] != null)
                    {
                        seat.RotationCenterY = int.Parse(element.Attributes["centery"].Value);
                    }
                    if (element.Attributes["angle"] != null)
                    {
                        seat.RotationAngle = int.Parse(element.Attributes["angle"].Value);
                    }
                    if (element.Attributes["isstop"] != null)
                    {
                        seat.IsSuspended = ConfigConvert.ConvertToBool(element.Attributes["isstop"].Value);
                    }
                    seatList.Add(seat.SeatNo, seat);
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("解析失败座位失败:{0};座位编号:{1}", ex.Message, element.Attributes["seatno"].Value));
                }
            }

            Seat temp = new Seat();//交换变量

            //排序
            seatList = (from entry in seatList
                        orderby entry.Value.SeatNo ascending
                        select entry).ToDictionary(pair => pair.Key, pair => pair.Value);

            seats.Seats = seatList;
            return(seats);
        }