private static XmlElement ConvertBlacklistSet(BlacklistSetting blacklist)
        {
            XmlElement element = doc.CreateElement("blacklist");

            element.SetAttribute("used", ConfigConvert.ConvertToString(blacklist.Used));
            element.SetAttribute("violateTimes", blacklist.ViolateTimes.ToString());
            element.SetAttribute("limitDays", blacklist.LimitDays.ToString());
            element.SetAttribute("leaveBlacklist", ((int)blacklist.LeaveBlacklist).ToString());
            element.SetAttribute("ViolateFailDays", blacklist.ViolateFailDays.ToString());
            foreach (ViolationRecordsType violateType in blacklist.ViolateRoule.Keys)
            {
                XmlElement child = doc.CreateElement("violateType");
                child.SetAttribute("used", ConfigConvert.ConvertToString(blacklist.ViolateRoule[violateType]));
                child.SetAttribute("typeValue", ((int)violateType).ToString());
                element.AppendChild(child);
            }
            return(element);
        }
        private static BlacklistSetting ConvertBlacklistSet(XmlNode node)
        {
            //node = doc.SelectSingleNode("//blacklist");
            BlacklistSetting set = new BlacklistSetting();

            set.LeaveBlacklist  = (LeaveBlacklistMode)int.Parse(node.Attributes["leaveBlacklist"].Value);
            set.LimitDays       = int.Parse(node.Attributes["limitDays"].Value);
            set.Used            = ConfigConvert.ConvertToBool(node.Attributes["used"].Value);
            set.ViolateTimes    = int.Parse(node.Attributes["violateTimes"].Value);
            set.ViolateFailDays = int.Parse(node.Attributes["ViolateFailDays"].Value);
            XmlNodeList nodes = node.ChildNodes;// SelectNodes("//blacklist/violateType");

            foreach (XmlNode element in nodes)
            {
                set.ViolateRoule[(ViolationRecordsType)int.Parse(element.Attributes["typeValue"].Value)] = ConfigConvert.ConvertToBool(element.Attributes["used"].Value);
            }
            return(set);
        }
        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("黑名单添加失败", "失败");
            }
        }
Example #4
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);
        }
Example #5
0
        public ActionResult BlacklistInfo()
        {
            //初始化黑名单设置页面
            SeatManage.ClassModel.BlacklistSetting blacklistset = SeatManage.Bll.T_SM_SystemSet.GetRegulationRulesSetting().BlacklistSet;
            ViewBag.IsBlUserdChecked            = blacklistset.Used ? "yes" : "no";
            ViewBag.nbvrcontText                = blacklistset.ViolateTimes.ToString();
            ViewBag.ddlleavemodeSelectedValue   = ((int)blacklistset.LeaveBlacklist).ToString();
            ViewBag.nbleavetimeText             = blacklistset.LimitDays.ToString();
            ViewBag.nbvrovertimeText            = blacklistset.ViolateFailDays.ToString();
            ViewBag.cbBookOverTimeChecked       = blacklistset.ViolateRoule[SeatManage.EnumType.ViolationRecordsType.BookingTimeOut] ? "yes" : "no";
            ViewBag.cbLeaveByAdminChecked       = blacklistset.ViolateRoule[SeatManage.EnumType.ViolationRecordsType.LeaveByAdmin] ? "yes" : "no";
            ViewBag.cbSeatOverTimeChecked       = blacklistset.ViolateRoule[SeatManage.EnumType.ViolationRecordsType.SeatOutTime] ? "yes" : "no";
            ViewBag.cbShortLeaveByAdminChecked  = blacklistset.ViolateRoule[SeatManage.EnumType.ViolationRecordsType.ShortLeaveByAdminOutTime] ? "yes" : "no";
            ViewBag.cbShortLeaveByReaderChecked = blacklistset.ViolateRoule[SeatManage.EnumType.ViolationRecordsType.ShortLeaveByReaderOutTime] ? "yes" : "no";
            ViewBag.cbShortLeaveOverTimeChecked = blacklistset.ViolateRoule[SeatManage.EnumType.ViolationRecordsType.ShortLeaveOutTime] ? "yes" : "no";

            //初始化门禁设置页面
            SeatManage.ClassModel.AccessSetting accset = SeatManage.Bll.T_SM_SystemSet.GetAccessSetting();
            if (accset == null)
            {
                accset = new SeatManage.ClassModel.AccessSetting();
            }

            ViewBag.IsASUserdCheckedForm3          = accset.IsUsed ? "yes" : "no";
            ViewBag.IsELUserdCheckedForm3          = accset.EnterLib ? "yes" : "no";
            ViewBag.IsOLUserdCheckedForm3          = accset.OutLib ? "yes" : "no";
            ViewBag.cbBLIsUsedCheckedForm3         = accset.IsLimitBlackList ? "yes" : "no";
            ViewBag.IsAddrvCheckedForm3            = accset.AddViolationRecords ? "yes" : "no";
            ViewBag.LeaveTimeTextForm3             = accset.LeaveTimeSpan.ToString();
            ViewBag.ddlleavemodeSelectedValueForm3 = ((int)accset.LeaveMode).ToString();
            ViewBag.IsOnSeatCheckedForm3           = accset.IsReleaseOnSeat ? "yes" : "no";
            ViewBag.IsShortLeaveCheckedForm3       = accset.IsComeBack ? "yes" : "no";
            ViewBag.IsBookingCheckedForm3          = accset.IsBookingConfinmed ? "yes" : "no";
            //初始化微信端设置
            SeatManage.ClassModel.PecketBookWebSetting setting = SeatManage.Bll.T_SM_SystemSet.GetPecketWebSetting();
            if (setting == null)
            {
                setting = new SeatManage.ClassModel.PecketBookWebSetting();
            }
            ViewBag.cb_UseBookComfirmChecked     = setting.UseBookComfirm;
            ViewBag.cb_UseBookNextDaySeatChecked = setting.UseBookNextDaySeat;
            ViewBag.cb_UseBookNowDaySeatChecked  = setting.UseBookNowDaySeat;
            ViewBag.cb_UseBookSeatChecked        = setting.UseBookSeat;
            ViewBag.cb_UseCancelBookChecked      = setting.UseCancelBook;
            ViewBag.cb_UseCancelWaitChecked      = setting.UseCancelWait;
            ViewBag.cb_UseCanLeaveChecked        = setting.UseCanLeave;
            ViewBag.cb_UseComeBackChecked        = setting.UseComeBack;
            ViewBag.cb_UseContinueChecked        = setting.UseContinue;
            ViewBag.cb_UseShortLeaveChecked      = setting.UseShortLeave;
            ViewBag.cb_UseWaitSeatChecked        = setting.UseWaitSeat;
            ViewBag.cb_ChangeSeatChecked         = setting.UseChangeSeat;
            ViewBag.cb_SelectSeatChecked         = setting.UseSelectSeat;
            //初始化消息推送
            SeatManage.ClassModel.PushMsssageSetting objPushMsssageSetting = SeatManage.Bll.T_SM_SystemSet.GetMsgPushSet() ?? new SeatManage.ClassModel.PushMsssageSetting();
            ViewBag.cb_AdminOperationChecked = objPushMsssageSetting.PushSetting[SeatManage.EnumType.MsgPushType.AdminOperation];
            ViewBag.cb_EnterVrChecked        = objPushMsssageSetting.PushSetting[SeatManage.EnumType.MsgPushType.EnterVR];
            ViewBag.cb_EnterBlackChecked     = objPushMsssageSetting.PushSetting[SeatManage.EnumType.MsgPushType.EnterBlack];
            ViewBag.cb_LeaveVrBlackChecked   = objPushMsssageSetting.PushSetting[SeatManage.EnumType.MsgPushType.LeaveVrBlack];
            ViewBag.cb_OtherUserChecked      = objPushMsssageSetting.PushSetting[SeatManage.EnumType.MsgPushType.OtherUser];
            ViewBag.cb_TimeOutChecked        = objPushMsssageSetting.PushSetting[SeatManage.EnumType.MsgPushType.TimeOut];
            ViewBag.cb_UserOperationChecked  = objPushMsssageSetting.PushSetting[SeatManage.EnumType.MsgPushType.UserOperation];
            return(View());
        }