Ejemplo n.º 1
0
        /// <summary>
        /// 添加一条黑名单记录
        /// </summary>
        /// <param name="blacklist"></param>
        /// <returns>黑名单序列号</returns>
        public int AddBlacklist(BlackListInfo blacklist)
        {
            try
            {
                int i = t_sm_Blacklist.Add(blacklist);
                //黑名单添加后,添加提醒
                //ReaderNoticeInfo blackRni = new ReaderNoticeInfo();
                //blackRni.IsRead = LogStatus.Valid;
                //blackRni.CardNo = blacklist.CardNo;
                //blackRni.Note = blacklist.ReMark;
                //blackRni.Type = NoticeType.AddBlacklistWarning;
                //AddReaderNotice(blackRni);

                PushMsgInfo msg = new PushMsgInfo();
                msg.Title            = "您好,你已被加入黑名单";
                msg.MsgType          = MsgPushType.EnterBlack;
                msg.StudentNum       = blacklist.CardNo;
                msg.Message          = blacklist.ReMark;
                msg.AddTime          = blacklist.AddTime;
                msg.LeaveDate        = blacklist.OutTime;
                msg.IsAutoLeaveBlack = blacklist.OutBlacklistMode == LeaveBlacklistMode.AutomaticMode;
                SendMsg(msg);

                return(i);
            }
            catch
            {
                throw;
            }
        }
Ejemplo n.º 2
0
        public int UpdateBlacklist(BlackListInfo blacklist)
        {
            try
            {
                if (blacklist.BlacklistState == LogStatus.Fail)
                {
                    ////黑名单添加后,添加提醒
                    //ReaderNoticeInfo blackRni = new ReaderNoticeInfo();
                    //blackRni.IsRead = LogStatus.Valid;
                    //blackRni.CardNo = blacklist.CardNo;
                    //blackRni.Type = NoticeType.DeleteBlacklistWarning;
                    //blackRni.Note = "黑名单已过期。";
                    //AddReaderNotice(blackRni);

                    PushMsgInfo msg = new PushMsgInfo();
                    msg.Title      = "您好,您的黑名单已失效";
                    msg.MsgType    = MsgPushType.LeaveVrBlack;
                    msg.StudentNum = blacklist.CardNo;
                    msg.AddTime    = blacklist.AddTime;
                    msg.LeaveDate  = DateTime.Now;
                    msg.Message    = string.Format("您在{0}的黑名单状态已经到期或被管理员取消,请遵守系统使用规则。", blacklist.AddTime.ToString("yyyy-MM-dd HH:mm:ss"));
                    SendMsg(msg);
                }
                return(t_sm_Blacklist.Update(blacklist));
            }
            catch
            {
                throw;
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 数据行转换为实体对象
 /// </summary>
 /// <param name="dr"></param>
 /// <param name="blacklist"></param>
 /// <returns></returns>
 private BlackListInfo DataRowToBlacklist(DataRow dr, ref BlackListInfo blacklist)
 {
     blacklist.ID              = dr["BlacklistID"].ToString();
     blacklist.CardNo          = dr["CardNo"].ToString();
     blacklist.AddTime         = DateTime.Parse(dr["AddTime"].ToString());
     blacklist.BlacklistState  = (LogStatus)int.Parse(dr["BlacklistState"].ToString());
     blacklist.OutTime         = DateTime.Parse(dr["OutTime"].ToString());
     blacklist.ReadingRoomID   = dr["ReadingRoomNo"].ToString();
     blacklist.ReadingRoomName = dr["ReadingRoomName"].ToString();
     blacklist.ReMark          = dr["Remark"].ToString();
     blacklist.ReaderName      = dr["ReaderName"].ToString();
     if (dr["ReaderTypeName"] != null)
     {
         blacklist.TypeName = dr["ReaderTypeName"].ToString();
     }
     if (dr["ReaderDeptName"] != null)
     {
         blacklist.DeptName = dr["ReaderDeptName"].ToString();
     }
     if (dr["Sex"] != null)
     {
         blacklist.Sex = dr["Sex"].ToString();
     }
     blacklist.OutBlacklistMode = (LeaveBlacklistMode)int.Parse(dr["OutBlacklist"].ToString());
     return(blacklist);
 }
Ejemplo n.º 4
0
        /// <summary>
        /// 更新黑名单
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static int UpdateBlackList(BlackListInfo model)
        {
            IWCFService.ISeatManageService seatService = WcfAccessProxy.ServiceProxy.CreateChannelSeatManageService();
            bool error = false;

            try
            {
                return(seatService.UpdateBlacklist(model));
            }
            catch (Exception ex)
            {
                error = true;
                SeatManageComm.WriteLog.Write("更新黑名单错误:" + ex.Message);
                return(-1);
            }
            finally
            {
                ICommunicationObject ICommObjectService = seatService as ICommunicationObject;
                try
                {
                    if (ICommObjectService.State == CommunicationState.Faulted)
                    {
                        ICommObjectService.Abort();
                    }
                    else
                    {
                        ICommObjectService.Close();
                    }
                }
                catch
                {
                    ICommObjectService.Abort();
                }
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 获取有效黑名单列表
        /// </summary>
        /// <param name="cardNo"></param>
        /// <param name="roomNum"></param>
        /// <returns></returns>
        public List <BlackListInfo> GetBlacklistInfo(string cardNo)
        {
            List <BlackListInfo> blacklists = new List <BlackListInfo>();
            StringBuilder        strWhere   = new StringBuilder();

            strWhere.Append(string.Format(" BlacklistState={0}", (int)LogStatus.Valid));

            if (!string.IsNullOrEmpty(cardNo))
            {
                strWhere.Append(string.Format(" and cardNo='{0}'", cardNo));
            }
            try
            {
                DataSet ds = t_sm_Blacklist.GetList(strWhere.ToString(), null);
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    BlackListInfo model = new BlackListInfo();
                    DataRowToBlacklist(ds.Tables[0].Rows[i], ref model);
                    blacklists.Add(model);
                }
            }
            catch
            {
                throw;
            }
            return(blacklists);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 根据学号模糊查询黑名单记录
        /// </summary>
        /// <param name="cardNo"></param>
        /// <param name="status"></param>
        /// <param name="beginDate"></param>
        /// <param name="endDate"></param>
        /// <returns></returns>
        public List <BlackListInfo> GetBlacklistInfos_ByFuzzySearch(string cardNo, LogStatus status, string beginDate, string endDate)
        {
            List <BlackListInfo> blacklists = new List <BlackListInfo>();
            StringBuilder        strWhere   = new StringBuilder();

            if (status != LogStatus.None)
            {
                strWhere.Append(string.Format(" BlacklistState={0}", (int)status));
            }

            if (!string.IsNullOrEmpty(cardNo))
            {
                if (string.IsNullOrEmpty(strWhere.ToString()))
                {
                    strWhere.Append(string.Format(" CardNo like '%{0}%'", cardNo));
                }
                else
                {
                    strWhere.Append(string.Format("and CardNo like '%{0}%'", cardNo));
                }
            }
            if (!string.IsNullOrEmpty(beginDate))
            {
                if (string.IsNullOrEmpty(strWhere.ToString()))
                {
                    strWhere.Append(string.Format(" AddTime >= '{0}'", beginDate));
                }
                else
                {
                    strWhere.Append(string.Format("and AddTime >= '{0}'", beginDate));
                }
            }
            if (!string.IsNullOrEmpty(endDate))
            {
                if (string.IsNullOrEmpty(strWhere.ToString()))
                {
                    strWhere.Append(string.Format(" AddTime <= '{0}'", endDate));
                }
                else
                {
                    strWhere.Append(string.Format("and AddTime <= '{0}'", endDate));
                }
            }
            try
            {
                DataSet ds = t_sm_Blacklist.GetList(strWhere.ToString(), null);
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    BlackListInfo model = new BlackListInfo();
                    DataRowToBlacklist(ds.Tables[0].Rows[i], ref model);
                    blacklists.Add(model);
                }
            }
            catch
            {
                throw;
            }
            return(blacklists);
        }
Ejemplo n.º 7
0
        public BlackListInfo GetBlackListByKey(long ID)
        {
            BlackListInfo result  = new BlackListInfo();
            DataCommand   command = new DataCommand(ConnectionString, GetDbCommand(BlackListStatement.GetBlackListByKey, "Text"));

            command.AddInputParameter("@BlackListID", DbType.String, ID);
            result = command.ExecuteEntity <BlackListInfo>();
            return(result);
        }
Ejemplo n.º 8
0
        public static BlackListEntity GetBlackListEntityById(long cid)
        {
            BlackListEntity     result = new BlackListEntity();
            BlackListRepository mr     = new BlackListRepository();
            BlackListInfo       info   = mr.GetBlackListByKey(cid);

            if (info != null)
            {
                result = TranslateBlackListEntity(info);
            }
            return(result);
        }
Ejemplo n.º 9
0
        public List <BlackListInfo> GetBlacklistInfosByPage(string cardNo, int pageIndex, int pageSize)
        {
            List <BlackListInfo> blacklists = new List <BlackListInfo>();
            DataSet ds = t_sm_Blacklist.GetList(cardNo, pageIndex, pageSize);

            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                BlackListInfo model = new BlackListInfo();
                DataRowToBlacklist(ds.Tables[0].Rows[i], ref model);
                blacklists.Add(model);
            }
            return(blacklists);
        }
Ejemplo n.º 10
0
        public int ModifyBlackList(BlackListInfo BlackList)
        {
            DataCommand command = new DataCommand(ConnectionString, GetDbCommand(BlackListStatement.ModifyBlackList, "Text"));

            command.AddInputParameter("@BlackType", DbType.String, BlackList.BlackType);
            command.AddInputParameter("@UnionID", DbType.Int32, BlackList.UnionID);
            command.AddInputParameter("@UnionName", DbType.String, BlackList.UnionName);
            command.AddInputParameter("@Remark", DbType.String, BlackList.Remark);
            command.AddInputParameter("@OperatorID", DbType.String, BlackList.OperatorID);
            command.AddInputParameter("@CardCode", DbType.String, BlackList.CardCode);
            command.AddInputParameter("@Status", DbType.Int32, BlackList.Status);
            command.AddInputParameter("@SubStatus", DbType.Int32, BlackList.SubStatus);
            command.AddInputParameter("@ChangeDate", DbType.DateTime, BlackList.ChangeDate);
            command.AddInputParameter("@BlackID", DbType.Int32, BlackList.BlackID);
            return(command.ExecuteNonQuery());
        }
        /// <summary>
        /// 更新黑名单
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static int UpdateBlackList(BlackListInfo model)
        {
            IWCFService.ISeatManageService seatService = new WcfServiceForSeatManage.SeatManageDateService();
            bool error = false;

            try
            {
                return(seatService.UpdateBlacklist(model));
            }
            catch (Exception ex)
            {
                error = true;
                SeatManageComm.WriteLog.Write("更新黑名单错误:" + ex.Message);
                return(-1);
            }
        }
        /// <summary>
        /// 添加一条黑名单记录
        /// </summary>
        /// <param name="strWhere"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public int Add(BlackListInfo model)
        {
            //TODO:不跟据阅览室状态添加进出记录
            SqlParameter[] parameters = new SqlParameter[8];
            parameters[0]           = new SqlParameter("@BlacklistID", SqlDbType.Int);
            parameters[0].Direction = ParameterDirection.Output;

            parameters[1] = new SqlParameter("@CardNo", model.CardNo);
            parameters[2] = new SqlParameter("@ReadingRoomNo", model.ReadingRoomID);
            parameters[3] = new SqlParameter("@AddTime", model.AddTime);
            parameters[4] = new SqlParameter("@OutBlacklist", (int)model.OutBlacklistMode);
            parameters[5] = new SqlParameter("@OutTime", model.OutTime);
            parameters[6] = new SqlParameter("@ReMark", model.ReMark);
            parameters[7] = new SqlParameter("@BlacklistState", (int)model.BlacklistState);

            DbHelperSQL.Execute_Proc("Proc_AddBlackList", parameters);
            return((int)parameters[0].Value);
        }
        ///// <summary>
        ///// 增加一条数据
        ///// </summary>
        //public bool Add(SeatManage.Model.T_SM_Blacklist model)
        //{
        //    StringBuilder strSql=new StringBuilder();
        //    strSql.Append("insert into T_SM_Blacklist(");
        //    strSql.Append("BlacklistID,CardNo,ReadingRoomNo,AddTime,OutBlacklist,OutTime,ReMark,BlacklistState,Flag)");
        //    strSql.Append(" values (");
        //    strSql.Append("@BlacklistID,@CardNo,@ReadingRoomNo,@AddTime,@OutBlacklist,@OutTime,@ReMark,@BlacklistState,@Flag)");
        //    SqlParameter[] parameters = {
        //            new SqlParameter("@BlacklistID", SqlDbType.Int,4),
        //            new SqlParameter("@CardNo", SqlDbType.NVarChar,50),
        //            new SqlParameter("@ReadingRoomNo", SqlDbType.Int,4),
        //            new SqlParameter("@AddTime", SqlDbType.DateTime),
        //            new SqlParameter("@OutBlacklist", SqlDbType.Int,4),
        //            new SqlParameter("@OutTime", SqlDbType.DateTime),
        //            new SqlParameter("@ReMark", SqlDbType.NVarChar,500),
        //            new SqlParameter("@BlacklistState", SqlDbType.Int,4),
        //            new SqlParameter("@Flag", SqlDbType.Bit,1)};
        //    parameters[0].Value = model.BlacklistID;
        //    parameters[1].Value = model.CardNo;
        //    parameters[2].Value = model.ReadingRoomNo;
        //    parameters[3].Value = model.AddTime;
        //    parameters[4].Value = model.OutBlacklist;
        //    parameters[5].Value = model.OutTime;
        //    parameters[6].Value = model.ReMark;
        //    parameters[7].Value = model.BlacklistState;
        //    parameters[8].Value = model.Flag;

        //    int rows=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
        //    if (rows > 0)
        //    {
        //        return true;
        //    }
        //    else
        //    {
        //        return false;
        //    }
        //}
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public int Update(BlackListInfo model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update T_SM_Blacklist set ");
            strSql.Append("CardNo=@CardNo,");
            strSql.Append("ReadingRoomNo=@ReadingRoomNo,");
            strSql.Append("AddTime=@AddTime,");
            strSql.Append("OutBlacklist=@OutBlacklist,");
            strSql.Append("OutTime=@OutTime,");
            strSql.Append("ReMark=@ReMark,");
            strSql.Append("BlacklistState=@BlacklistState");
            strSql.Append(" where BlacklistID=@BlacklistID ");
            SqlParameter[] parameters =
            {
                new SqlParameter("@CardNo",         SqlDbType.NVarChar,   50),
                new SqlParameter("@ReadingRoomNo",  SqlDbType.NVarChar,   50),
                new SqlParameter("@AddTime",        SqlDbType.DateTime),
                new SqlParameter("@OutBlacklist",   SqlDbType.Int,         4),
                new SqlParameter("@OutTime",        SqlDbType.DateTime),
                new SqlParameter("@ReMark",         SqlDbType.NVarChar,  500),
                new SqlParameter("@BlacklistState", SqlDbType.Int,         4),
                new SqlParameter("@BlacklistID",    SqlDbType.Int, 4)
            };
            parameters[0].Value = model.CardNo;
            parameters[1].Value = model.ReadingRoomID;
            parameters[2].Value = model.AddTime;
            parameters[3].Value = (int)model.OutBlacklistMode;
            parameters[4].Value = model.OutTime;
            parameters[5].Value = model.ReMark;
            parameters[6].Value = (int)model.BlacklistState;
            parameters[7].Value = model.ID;

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

            if (rows > 0)
            {
                return(1);
            }
            else
            {
                return(0);
            }
        }
Ejemplo n.º 14
0
        public long CreateNew(BlackListInfo BlackList)
        {
            //,,,Remark,OperatorID,,CreateTime,ChangeDate
            DataCommand command = new DataCommand(ConnectionString, GetDbCommand(BlackListStatement.CreateNewBlackList, "Text"));

            command.AddInputParameter("@BlackType", DbType.String, BlackList.BlackType);
            command.AddInputParameter("@UnionID", DbType.Int32, BlackList.UnionID);
            command.AddInputParameter("@UnionName", DbType.String, BlackList.UnionName);
            command.AddInputParameter("@Remark", DbType.String, BlackList.Remark);
            command.AddInputParameter("@OperatorID", DbType.String, BlackList.OperatorID);
            command.AddInputParameter("@CardCode", DbType.String, BlackList.CardCode);
            command.AddInputParameter("@Status", DbType.Int32, BlackList.Status);
            command.AddInputParameter("@SubStatus", DbType.Int32, BlackList.SubStatus);
            command.AddInputParameter("@CreateDate", DbType.DateTime, BlackList.CreateDate);
            command.AddInputParameter("@ChangeDate", DbType.DateTime, BlackList.ChangeDate);
            var o = command.ExecuteScalar <object>();

            return(Convert.ToInt64(o));
        }
Ejemplo n.º 15
0
        public static bool ModifyBlackList(BlackListEntity entity)
        {
            long result = 0;

            if (entity != null)
            {
                BlackListRepository mr   = new BlackListRepository();
                BlackListInfo       info = TranslateBlackListInfo(entity);
                if (entity.BlackID > 0)
                {
                    info.ChangeDate = DateTime.Now;
                    mr.ModifyBlackList(info);
                }
                else
                {
                    info.ChangeDate = DateTime.Now;
                    info.CreateDate = DateTime.Now;
                    result          = mr.CreateNew(info);
                }
            }
            return(result > 0);
        }
Ejemplo n.º 16
0
        private static BlackListEntity TranslateBlackListEntity(BlackListInfo info)
        {
            BlackListEntity entity = new BlackListEntity();

            if (info != null)
            {
                entity.BlackID       = info.BlackID;
                entity.BlackType     = info.BlackType;
                entity.BlackTypeDesc = StringHelper.GetBlackTypeDesc(info.BlackType);
                entity.UnionID       = info.UnionID;
                entity.UnionName     = info.UnionName;
                entity.Status        = info.Status;
                entity.SubStatus     = info.SubStatus;
                entity.CardCode      = info.CardCode;
                entity.Remark        = info.Remark;
                entity.OperatorID    = info.OperatorID;
                entity.CreateDate    = info.CreateDate;
                entity.ChangeDate    = info.ChangeDate;
            }

            return(entity);
        }
Ejemplo n.º 17
0
        private static BlackListInfo TranslateBlackListInfo(BlackListEntity entity)
        {
            BlackListInfo info = new BlackListInfo();

            if (info != null)
            {
                info.BlackID    = entity.BlackID;
                info.BlackType  = entity.BlackType;
                info.UnionID    = entity.UnionID;
                info.UnionName  = entity.UnionName;
                info.Status     = entity.Status;
                info.SubStatus  = entity.SubStatus;
                info.CardCode   = entity.CardCode;
                info.Remark     = entity.Remark;
                info.OperatorID = entity.OperatorID;
                info.CreateDate = entity.CreateDate;
                info.ChangeDate = entity.ChangeDate;
            }


            return(info);
        }
Ejemplo n.º 18
0
        /// <summary>
        /// 获取一条黑名单记录
        /// </summary>
        /// <param name="ID"></param>
        /// <returns></returns>
        public BlackListInfo GetBlistList(string ID)
        {
            BlackListInfo blacklist = new BlackListInfo();
            StringBuilder strWhere  = new StringBuilder();

            strWhere.Append(" BlacklistID='" + ID + "'");
            try
            {
                DataSet ds = t_sm_Blacklist.GetList(strWhere.ToString(), null);
                if (ds.Tables[0].Rows.Count > 0)
                {
                    DataRowToBlacklist(ds.Tables[0].Rows[0], ref blacklist);
                }
                else
                {
                    blacklist = null;
                }
            }
            catch
            {
                throw;
            }
            return(blacklist);
        }
        /// <summary>
        /// 管理员对座位进行管理操作
        /// </summary>
        /// <param name="seatNoList">多选座位列表</param>
        /// <param name="operateType">操作类型</param>
        /// <param name="loginId">登录名</param>
        /// <returns></returns>
        public string SeatOperation(string seatNoList, string operateType, string loginId)
        {
            try
            {
                JM_HandleResultObject result = new JM_HandleResultObject();
                result.Result = false;
                List <JM_Seat> list          = SeatManage.SeatManageComm.JSONSerializer.Deserialize <List <JM_Seat> >(seatNoList);
                int            successResult = 0;
                int            failResult    = 0;
                List <string>  noList        = new List <string>();
                string         no            = list[0].ReadingRoomNum;
                noList.Add(no);
                List <ReadingRoomInfo> room = seatDataService.GetReadingRoomInfo(noList);

                switch (operateType)
                {
                    #region 设置暂离
                case "shortLeave":
                    try
                    {
                        foreach (JM_Seat seat in list)
                        {
                            EnterOutLogInfo model = seatDataService.GetEnterOutLogInfoBySeatNum(seat.SeatNo);
                            if (model != null && model.EnterOutState != SeatManage.EnumType.EnterOutLogType.ShortLeave)
                            {
                                model.EnterOutState = SeatManage.EnumType.EnterOutLogType.ShortLeave;
                                model.Flag          = SeatManage.EnumType.Operation.Admin;
                                model.Remark        = "在" + model.ReadingRoomName + "," + model.SeatNo + "号座位,被管理员" + loginId + ",通过手持设备设置为暂离";
                                int newId = -1;
                                SeatManage.EnumType.HandleResult rs = seatDataService.AddEnterOutLogInfo(model, ref newId);
                                if (rs == SeatManage.EnumType.HandleResult.Successed)
                                {
                                    successResult++;
                                    result.Result = true;
                                }
                                else
                                {
                                    failResult++;
                                }
                            }
                        }
                        result.Msg = "设置读者暂离";
                    }
                    catch (Exception ex)
                    {
                        SeatManage.SeatManageComm.WriteLog.Write("设置读者暂离遇到异常:" + ex.Message);
                        result.Result = false;
                        result.Msg    = "执行遇到异常!";
                    }
                    break;
                    #endregion

                    #region 取消暂离
                case "comeBack":
                    try
                    {
                        foreach (JM_Seat seat in list)
                        {
                            EnterOutLogInfo model = seatDataService.GetEnterOutLogInfoBySeatNum(seat.SeatNo);
                            if (model != null && model.EnterOutState == EnterOutLogType.ShortLeave)
                            {
                                model.EnterOutState = EnterOutLogType.ComeBack;
                                model.Flag          = Operation.Admin;
                                model.Remark        = "在" + model.ReadingRoomName + "," + model.SeatNo + "号座位,被管理员" + loginId + ",通过手持设备取消暂离,恢复为在座";
                                int newId = -1;
                                SeatManage.EnumType.HandleResult rs = seatDataService.AddEnterOutLogInfo(model, ref newId);
                                if (rs == SeatManage.EnumType.HandleResult.Successed)
                                {
                                    List <SeatManage.ClassModel.WaitSeatLogInfo> logs = seatDataService.GetWaitLogList("", model.EnterOutLogID, null, null, null);
                                    WaitSeatLogInfo log = null;
                                    if (logs.Count > 0)
                                    {
                                        log              = logs[0];
                                        log.NowState     = LogStatus.Fail;
                                        log.OperateType  = Operation.OtherReader;
                                        log.WaitingState = EnterOutLogType.WaitingCancel;
                                        if (seatDataService.UpdateWaitLog(log))
                                        {
                                            //result.Result = true;
                                            //result.Msg = "取消读者暂离成功";
                                            successResult++;
                                            result.Result = true;
                                        }
                                        else
                                        {
                                            //result.Result = true;
                                            //result.Msg = "取消读者暂离成功,释放读者等待失败";
                                            successResult++;
                                            result.Result = true;
                                        }
                                    }
                                    else
                                    {
                                        //result.Result = true;
                                        //result.Msg = "取消读者暂离成功";
                                        successResult++;
                                        result.Result = true;
                                    }
                                }
                                else
                                {
                                    //result.Result = false;
                                    //result.Msg = "取消读者暂离失败";
                                    failResult++;
                                }
                            }
                        }
                        result.Msg = "取消读者暂离";
                    }
                    catch (Exception ex)
                    {
                        SeatManage.SeatManageComm.WriteLog.Write("取消读者暂离遇到异常:" + ex.Message);
                        result.Result = false;
                        result.Msg    = "执行遇到异常!";
                    }
                    break;
                    #endregion

                    #region 释放座位
                case "leave":
                    try
                    {
                        foreach (JM_Seat seat in list)
                        {
                            EnterOutLogInfo model = seatDataService.GetEnterOutLogInfoBySeatNum(seat.SeatNo);
                            if (model != null && model.EnterOutState != EnterOutLogType.Leave)
                            {
                                model.EnterOutState = EnterOutLogType.Leave;
                                model.Flag          = Operation.Admin;
                                model.Remark        = "在" + model.ReadingRoomName + "," + model.SeatNo + "号座位,被管理员" + loginId + ",通过手持设备设置离开";
                                int          newId = -1;
                                HandleResult rs    = seatDataService.AddEnterOutLogInfo(model, ref newId);
                                if (rs == HandleResult.Successed)
                                {
                                    SeatManage.ClassModel.RegulationRulesSetting rules = seatDataService.GetRegulationRulesSetting();
                                    if (room[0].Setting.IsRecordViolate)
                                    {
                                        if (room[0].Setting.BlackListSetting.Used)
                                        {
                                            if (room[0].Setting.BlackListSetting.ViolateRoule[ViolationRecordsType.LeaveByAdmin])
                                            {
                                                ViolationRecordsLogInfo logs = new ViolationRecordsLogInfo();
                                                logs.CardNo        = model.CardNo;
                                                logs.SeatID        = model.SeatNo.Substring(model.SeatNo.Length - room[0].Setting.SeatNumAmount, room[0].Setting.SeatNumAmount);
                                                logs.ReadingRoomID = model.ReadingRoomNo;
                                                logs.EnterOutTime  = DateTime.Now.ToString();
                                                logs.EnterFlag     = ViolationRecordsType.LeaveByAdmin;
                                                logs.Remark        = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置离开", room[0].Name, model.ShortSeatNo, loginId);
                                                logs.BlacklistID   = "-1";
                                                seatDataService.AddViolationRecordsLog(logs);
                                            }
                                        }
                                        else if (rules.BlacklistSet.Used && rules.BlacklistSet.ViolateRoule[ViolationRecordsType.LeaveByAdmin])
                                        {
                                            ViolationRecordsLogInfo logs = new ViolationRecordsLogInfo();
                                            logs.CardNo        = model.CardNo;
                                            logs.SeatID        = model.SeatNo.Substring(model.SeatNo.Length - room[0].Setting.SeatNumAmount, room[0].Setting.SeatNumAmount);
                                            logs.ReadingRoomID = model.ReadingRoomNo;
                                            logs.EnterOutTime  = DateTime.Now.ToString();
                                            logs.EnterFlag     = ViolationRecordsType.LeaveByAdmin;
                                            logs.Remark        = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置离开", room[0].Name, model.ShortSeatNo, loginId);
                                            logs.BlacklistID   = "-1";
                                            seatDataService.AddViolationRecordsLog(logs);
                                        }
                                    }
                                    result.Result = true;
                                    //result.Msg = "成功释放读者座位";
                                    successResult++;
                                }
                                else
                                {
                                    //result.Result = false;
                                    //result.Msg = "释放读者座位失败";
                                    failResult++;
                                }
                            }
                        }
                        result.Msg = "释放读者座位";
                    }
                    catch (Exception ex)
                    {
                        SeatManage.SeatManageComm.WriteLog.Write("释放读者座位遇到异常:" + ex.Message);
                        result.Result = false;
                        result.Msg    = "执行遇到异常!";
                    }
                    break;
                    #endregion

                    #region 加入计时
                case "timing":
                    try
                    {
                        foreach (JM_Seat seat in list)
                        {
                            EnterOutLogInfo model = seatDataService.GetEnterOutLogInfoBySeatNum(seat.SeatNo);
                            if (model != null && model.EnterOutState != EnterOutLogType.ShortLeave)
                            {
                                DateTime markTime = DateTime.Now;
                                if (seatDataService.UpdateMarkTime(model.EnterOutLogID, markTime))
                                {
                                    //result.Result = true;
                                    //result.Msg = "加入计时成功";
                                    successResult++;
                                    result.Result = true;
                                }
                                else
                                {
                                    //result.Result = false;
                                    //result.Msg = "加入计时失败";
                                    failResult++;
                                }
                            }
                        }
                        result.Msg = "加入计时";
                    }
                    catch (Exception ex)
                    {
                        SeatManage.SeatManageComm.WriteLog.Write("加入计时遇到异常:" + ex.Message);
                        result.Result = false;
                        result.Msg    = "执行遇到异常!";
                    }
                    break;
                    #endregion

                    #region 取消计时
                case "cancelTiming":
                    try
                    {
                        foreach (JM_Seat seat in list)
                        {
                            EnterOutLogInfo model = seatDataService.GetEnterOutLogInfoBySeatNum(seat.SeatNo);
                            if (model != null && !string.IsNullOrEmpty(model.MarkTime.ToString()) && model.MarkTime.CompareTo(DateTime.Parse("1900/1/1")) != 0)
                            {
                                DateTime markTime = DateTime.Parse("1900/1/1");
                                if (seatDataService.UpdateMarkTime(model.EnterOutLogID, markTime))
                                {
                                    //result.Result = true;
                                    //result.Msg = "取消计时成功";
                                    successResult++;
                                    result.Result = true;
                                }
                                else
                                {
                                    //result.Result = false;
                                    //result.Msg = "取消计时失败";
                                    failResult++;
                                }
                            }
                        }
                        result.Msg = "取消计时";
                    }
                    catch (Exception ex)
                    {
                        SeatManage.SeatManageComm.WriteLog.Write("取消计时遇到异常:" + ex.Message);
                        result.Result = false;
                        result.Msg    = "执行遇到异常!";
                    }
                    break;
                    #endregion

                    #region 加入黑名单
                case "addBlackList":
                    try
                    {
                        int newId = -1;
                        SeatManage.ClassModel.RegulationRulesSetting rules = seatDataService.GetRegulationRulesSetting();
                        if (!room[0].Setting.BlackListSetting.Used && !rules.BlacklistSet.Used)
                        {
                            result.Result = false;
                            result.Msg    = "阅览室未开启记录黑名单功能";
                            break;
                        }
                        foreach (JM_Seat seat in list)
                        {
                            EnterOutLogInfo model = seatDataService.GetEnterOutLogInfoBySeatNum(seat.SeatNo);
                            if (model != null && model.EnterOutState != EnterOutLogType.Leave)
                            {
                                if (room[0] != null && room[0].Setting.BlackListSetting.Used)
                                {
                                    BlackListInfo info = new BlackListInfo();
                                    info.AddTime          = DateTime.Now;
                                    info.BlacklistState   = LogStatus.Valid;
                                    info.CardNo           = model.CardNo;
                                    info.ReadingRoomID    = model.ReadingRoomNo;
                                    info.OutBlacklistMode = rules.BlacklistSet.LeaveBlacklist;
                                    if (info.OutBlacklistMode == LeaveBlacklistMode.AutomaticMode)
                                    {
                                        info.ReMark  = string.Format("管理员{0}通过手持设备{0}把读者加入黑名单,记录黑名单{1}天", loginId, room[0].Setting.BlackListSetting.LimitDays);
                                        info.OutTime = info.AddTime.AddDays(room[0].Setting.BlackListSetting.LimitDays);
                                    }
                                    else
                                    {
                                        info.ReMark = string.Format("管理员{0}通过手持设备把读者加入黑名单,手动离开黑名单", loginId);
                                    }
                                    newId = seatDataService.AddBlacklist(info);
                                }
                                else if (rules.BlacklistSet.Used)
                                {
                                    BlackListInfo info = new BlackListInfo();
                                    info.AddTime          = DateTime.Now;
                                    info.OutTime          = info.AddTime.AddDays(rules.BlacklistSet.LimitDays);
                                    info.BlacklistState   = LogStatus.Valid;
                                    info.CardNo           = model.CardNo;
                                    info.OutBlacklistMode = rules.BlacklistSet.LeaveBlacklist;
                                    if (info.OutBlacklistMode == LeaveBlacklistMode.AutomaticMode)
                                    {
                                        info.ReMark  = string.Format("管理员{0}通过手持设备把读者加入黑名单,记录黑名单{1}天", loginId, rules.BlacklistSet.LimitDays);
                                        info.OutTime = info.AddTime.AddDays(rules.BlacklistSet.LimitDays);
                                    }
                                    else
                                    {
                                        info.ReMark = string.Format("管理员{0}通过手持设备把读者加入黑名单,手动离开黑名单", loginId);
                                    }
                                    newId = seatDataService.AddBlacklist(info);
                                }

                                if (newId > 0)
                                {
                                    model.EnterOutState = EnterOutLogType.Leave;
                                    model.Flag          = Operation.Admin;
                                    model.Remark        = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置离开", room[0].Name, model.ShortSeatNo, loginId);

                                    HandleResult rs = seatDataService.AddEnterOutLogInfo(model, ref newId);
                                    if (rs == HandleResult.Successed)
                                    {
                                        //result.Result = true;
                                        //result.Msg = "成功将读者加入黑名单!";
                                        successResult++;
                                        result.Result = true;
                                    }
                                    else
                                    {
                                        //result.Result = false;
                                        //result.Msg = "将读者加入黑名单失败!";
                                        failResult++;
                                    }
                                }
                                else
                                {
                                    //result.Result = false;
                                    //result.Msg = "将读者加入黑名单失败!";
                                    failResult++;
                                }
                            }
                        }
                        result.Msg = "加入黑名单";
                    }
                    catch (Exception ex)
                    {
                        SeatManage.SeatManageComm.WriteLog.Write("加入黑名单遇到异常:" + ex.Message);
                        result.Result = false;
                        result.Msg    = "执行遇到异常!";
                    }
                    break;
                    #endregion
                }
                StringBuilder str = new StringBuilder();
                if (result.Result)
                {
                    str.Append("成功");
                }
                else
                {
                    str.Append("失败");
                }
                if (successResult > 0)
                {
                    str.Append(string.Format(",成功{0}条", successResult));
                }
                if (failResult > 0)
                {
                    str.Append(string.Format(",失败{0}条", failResult));
                }
                result.Msg = result.Msg + str.ToString();
                return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result));
            }
            catch (Exception ex)
            {
                SeatManage.SeatManageComm.WriteLog.Write("对座位进行操作遇到异常:" + ex.Message);
                JM_HandleResultObject result = new JM_HandleResultObject();
                result.Result = false;
                result.Msg    = "执行遇到异常!";
                return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result));
            }
        }
Ejemplo n.º 20
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["LoginId"] == null)
            {
                Response.Redirect("../Login.aspx");
            }
            if (!IsPostBack)
            {
                BindReadingRoomList(Session[CookiesManager.LoginID].ToString());
                GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
            }

            cmd = Request.Form["subCmd"];
            if (cmd != null)
            {
                #region 座位相关操作
                switch (cmd)
                {
                case "search":    //查询座位
                    try
                    {
                        GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                    }
                    catch
                    {
                    }
                    break;

                case "ShortLeave":    //设置暂离
                    try
                    {
                        string   seatStr = hidSeatNo.Value;
                        string[] noArr   = seatStr.Split(',');
                        string   seatNo  = "";
                        for (int i = 0; i < noArr.Length; i++)
                        {
                            seatNo = noArr[i].Trim();
                            EnterOutLogInfo enterOutLog = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo);
                            if (enterOutLog != null && enterOutLog.EnterOutState != EnterOutLogType.ShortLeave)
                            {
                                ReadingRoomInfo roomInfo = T_SM_ReadingRoom.GetSingleRoomInfo(enterOutLog.ReadingRoomNo);
                                enterOutLog.EnterOutState = EnterOutLogType.ShortLeave;
                                enterOutLog.Flag          = Operation.Admin;
                                enterOutLog.Remark        = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置为暂离", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"]);
                                int          newId  = -1;
                                HandleResult result = EnterOutOperate.AddEnterOutLog(enterOutLog, ref newId);
                                if (result == HandleResult.Successed)
                                {
                                    Page.RegisterStartupScript("", "<script>alert('设置读者暂离成功');</script>");
                                    GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                                }
                                else
                                {
                                    Page.RegisterStartupScript("", "<script>alert('设置读者暂离失败');</script>");
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                    break;

                case "ReleaseShortLeave":    //取消暂离
                    try
                    {
                        string   seatStr = hidSeatNo.Value;
                        string[] noArr   = seatStr.Split(',');
                        string   seatNo  = "";
                        for (int i = 0; i < noArr.Length; i++)
                        {
                            seatNo = noArr[i].Trim();
                            EnterOutLogInfo enterOutLog = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo);
                            if (enterOutLog != null && enterOutLog.EnterOutState == EnterOutLogType.ShortLeave)
                            {
                                ReadingRoomInfo roomInfo = T_SM_ReadingRoom.GetSingleRoomInfo(enterOutLog.ReadingRoomNo);
                                enterOutLog.EnterOutState = EnterOutLogType.ComeBack;
                                enterOutLog.Flag          = Operation.Admin;
                                enterOutLog.Remark        = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备取消暂离,恢复为在座", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"]);
                                int          newId  = -1;
                                HandleResult result = EnterOutOperate.AddEnterOutLog(enterOutLog, ref newId);
                                if (result == HandleResult.Successed)
                                {
                                    List <WaitSeatLogInfo> waitSeatLogs = T_SM_SeatWaiting.GetWaitSeatList("", enterOutLog.EnterOutLogID, null, null, null);
                                    WaitSeatLogInfo        waitSeatLog  = null;
                                    if (waitSeatLogs.Count > 0)
                                    {
                                        waitSeatLog              = waitSeatLogs[0];
                                        waitSeatLog.NowState     = LogStatus.Fail;
                                        waitSeatLog.OperateType  = Operation.OtherReader;
                                        waitSeatLog.WaitingState = EnterOutLogType.WaitingCancel;
                                        if (T_SM_SeatWaiting.UpdateWaitLog(waitSeatLog))
                                        {
                                            Page.RegisterStartupScript("", "<script>alert('取消读者暂离成功');</script>");
                                            GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                                        }
                                        else
                                        {
                                            Page.RegisterStartupScript("", "<script>alert('取消读者暂离成功,取消读者等待失败');</script>");
                                            GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                                        }
                                    }
                                    else
                                    {
                                        Page.RegisterStartupScript("", "<script>alert('取消读者暂离成功');</script>");
                                        GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                                    }
                                }
                                else
                                {
                                    Page.RegisterStartupScript("", "<script>alert('取消读者暂离失败');</script>");
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                    break;

                case "Release":    //释放座位
                    try
                    {
                        string   seatStr = hidSeatNo.Value;
                        string[] noArr   = seatStr.Split(',');
                        string   seatNo  = "";
                        for (int i = 0; i < noArr.Length; i++)
                        {
                            seatNo = noArr[i].Trim();
                            EnterOutLogInfo enterOutLog = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo);
                            if (enterOutLog != null && enterOutLog.EnterOutState != EnterOutLogType.Leave)
                            {
                                ReadingRoomInfo roomInfo = T_SM_ReadingRoom.GetSingleRoomInfo(enterOutLog.ReadingRoomNo);

                                enterOutLog.EnterOutState = EnterOutLogType.Leave;
                                enterOutLog.Flag          = Operation.Admin;
                                enterOutLog.Remark        = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置离开", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"]);
                                int          newId  = -1;
                                HandleResult result = EnterOutOperate.AddEnterOutLog(enterOutLog, ref newId);
                                if (result == HandleResult.Successed)
                                {
                                    RegulationRulesSetting rulesSet = T_SM_SystemSet.GetRegulationRulesSetting();
                                    if (roomInfo.Setting.IsRecordViolate)
                                    {
                                        if (roomInfo.Setting.BlackListSetting.Used)
                                        {
                                            if (roomInfo.Setting.BlackListSetting.ViolateRoule[ViolationRecordsType.LeaveByAdmin])
                                            {
                                                ViolationRecordsLogInfo violationRecords = new ViolationRecordsLogInfo();
                                                violationRecords.CardNo        = enterOutLog.CardNo;
                                                violationRecords.SeatID        = enterOutLog.SeatNo.Substring(enterOutLog.SeatNo.Length - roomInfo.Setting.SeatNumAmount, roomInfo.Setting.SeatNumAmount);
                                                violationRecords.ReadingRoomID = enterOutLog.ReadingRoomNo;
                                                violationRecords.EnterOutTime  = ServiceDateTime.Now.ToString();
                                                violationRecords.EnterFlag     = ViolationRecordsType.LeaveByAdmin;
                                                violationRecords.Remark        = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置离开", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"]);
                                                violationRecords.BlacklistID   = "-1";
                                                T_SM_ViolateDiscipline.AddViolationRecords(violationRecords);
                                            }
                                        }
                                        else if (rulesSet.BlacklistSet.Used && rulesSet.BlacklistSet.ViolateRoule[ViolationRecordsType.LeaveByAdmin])
                                        {
                                            ViolationRecordsLogInfo violationRecords = new ViolationRecordsLogInfo();
                                            violationRecords.CardNo        = enterOutLog.CardNo;
                                            violationRecords.SeatID        = enterOutLog.SeatNo.Substring(enterOutLog.SeatNo.Length - roomInfo.Setting.SeatNumAmount, roomInfo.Setting.SeatNumAmount);
                                            violationRecords.ReadingRoomID = enterOutLog.ReadingRoomNo;
                                            violationRecords.EnterOutTime  = ServiceDateTime.Now.ToString();
                                            violationRecords.EnterFlag     = ViolationRecordsType.LeaveByAdmin;
                                            violationRecords.Remark        = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置离开", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"]);
                                            violationRecords.BlacklistID   = "-1";
                                            T_SM_ViolateDiscipline.AddViolationRecords(violationRecords);
                                        }
                                    }
                                    Page.RegisterStartupScript("", "<script>alert('设置读者离开成功');</script>");
                                    GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                                }
                                else
                                {
                                    Page.RegisterStartupScript("", "<script>alert('设置读者离开失败');</script>");
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                    break;

                case "onTime":    //计时
                    try
                    {
                        string   seatStr = hidSeatNo.Value;
                        string[] noArr   = seatStr.Split(',');
                        string   seatNo  = "";
                        for (int i = 0; i < noArr.Length; i++)
                        {
                            seatNo = noArr[i].Trim();
                            EnterOutLogInfo enterOutLog = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo);
                            if (enterOutLog != null && enterOutLog.EnterOutState != EnterOutLogType.ShortLeave)
                            {
                                DateTime markTime = ServiceDateTime.Now;
                                EnterOutOperate.UpdateMarkTime(enterOutLog.EnterOutLogID, markTime);
                                GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                            }
                        }
                    }
                    catch
                    {
                    }

                    break;

                case "offTime":    //取消计时
                    try
                    {
                        string   seatStr = hidSeatNo.Value;
                        string[] noArr   = seatStr.Split(',');
                        string   seatNo  = "";
                        for (int i = 0; i < noArr.Length; i++)
                        {
                            seatNo = noArr[i].Trim();
                            EnterOutLogInfo enterOutLog = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo);
                            if (enterOutLog != null && !string.IsNullOrEmpty(enterOutLog.MarkTime.ToString()) && enterOutLog.MarkTime.CompareTo(DateTime.Parse("1900/1/1")) != 0)
                            {
                                DateTime markTime = DateTime.Parse("1900-1-1");
                                EnterOutOperate.UpdateMarkTime(enterOutLog.EnterOutLogID, markTime);
                                GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                            }
                        }
                    }
                    catch
                    {
                    }

                    break;

                case "AddBlacklist":
                    try
                    {
                        string   seatStr = hidSeatNo.Value;
                        string[] noArr   = seatStr.Split(',');
                        string   seatNo  = "";
                        int      newId   = -1;
                        RegulationRulesSetting rulesSet = T_SM_SystemSet.GetRegulationRulesSetting();
                        for (int i = 0; i < noArr.Length; i++)
                        {
                            newId  = -1;
                            seatNo = noArr[i].Trim();
                            EnterOutLogInfo enterOutLog = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo);
                            if (enterOutLog != null && enterOutLog.EnterOutState != EnterOutLogType.Leave)
                            {
                                ReadingRoomInfo roomInfo = T_SM_ReadingRoom.GetSingleRoomInfo(enterOutLog.ReadingRoomNo);
                                if (roomInfo != null && roomInfo.Setting.BlackListSetting.Used)
                                {
                                    BlackListInfo blacklistModel = new BlackListInfo();
                                    blacklistModel.AddTime          = ServiceDateTime.Now;
                                    blacklistModel.ReadingRoomID    = roomInfo.No;
                                    blacklistModel.BlacklistState   = LogStatus.Valid;
                                    blacklistModel.CardNo           = enterOutLog.CardNo;
                                    blacklistModel.OutBlacklistMode = roomInfo.Setting.BlackListSetting.LeaveBlacklist;
                                    if (blacklistModel.OutBlacklistMode == LeaveBlacklistMode.AutomaticMode)
                                    {
                                        blacklistModel.ReMark  = string.Format("管理员{0}通过手持设备{0}把读者加入黑名单,记录黑名单{1}天", Session["LoginID"], roomInfo.Setting.BlackListSetting.LimitDays);
                                        blacklistModel.OutTime = blacklistModel.AddTime.AddDays(roomInfo.Setting.BlackListSetting.LimitDays);
                                    }
                                    else
                                    {
                                        blacklistModel.ReMark = string.Format("管理员{0}通过手持设备把读者加入黑名单,手动离开黑名单", Session["LoginID"]);
                                    }
                                    blacklistModel.ReadingRoomID = roomInfo.No;
                                    newId = T_SM_Blacklist.AddBlackList(blacklistModel);
                                }
                                else if (rulesSet.BlacklistSet.Used)
                                {
                                    BlackListInfo blacklistModel = new BlackListInfo();
                                    blacklistModel.AddTime          = ServiceDateTime.Now;
                                    blacklistModel.OutTime          = blacklistModel.AddTime.AddDays(rulesSet.BlacklistSet.LimitDays);
                                    blacklistModel.BlacklistState   = LogStatus.Valid;
                                    blacklistModel.CardNo           = enterOutLog.CardNo;
                                    blacklistModel.OutBlacklistMode = rulesSet.BlacklistSet.LeaveBlacklist;
                                    if (blacklistModel.OutBlacklistMode == LeaveBlacklistMode.AutomaticMode)
                                    {
                                        blacklistModel.ReMark  = string.Format("管理员{0}通过手持设备把读者加入黑名单,记录黑名单{1}天", Session["LoginID"], rulesSet.BlacklistSet.LimitDays);
                                        blacklistModel.OutTime = blacklistModel.AddTime.AddDays(rulesSet.BlacklistSet.LimitDays);
                                    }
                                    else
                                    {
                                        blacklistModel.ReMark = string.Format("管理员{0}通过手持设备把读者加入黑名单,手动离开黑名单", Session["LoginID"]);
                                    }
                                    blacklistModel.ReadingRoomID = roomInfo.No;
                                    newId = T_SM_Blacklist.AddBlackList(blacklistModel);
                                }
                                else
                                {
                                    Page.RegisterStartupScript("", "<script>alert('对不起,此阅览室以及图书馆没有启用黑名单功能');</script>");
                                    return;
                                }
                                if (newId > 0)
                                {
                                    enterOutLog.EnterOutState = EnterOutLogType.Leave;
                                    enterOutLog.Flag          = Operation.Admin;
                                    enterOutLog.Remark        = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置离开", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"]);

                                    HandleResult result = EnterOutOperate.AddEnterOutLog(enterOutLog, ref newId);
                                    if (result == HandleResult.Successed)
                                    {
                                        Page.RegisterStartupScript("", "<script>alert('设置读者黑名单成功');</script>");
                                        GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                                    }
                                    else
                                    {
                                        Page.RegisterStartupScript("", "<script>alert('设置读者黑名单失败');</script>");
                                    }
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                    break;

                case "LoginOut":
                    HttpCookie aCookie;
                    string     cookieName;
                    int        limit = Request.Cookies.Count;
                    for (int i = 0; i < limit; i++)
                    {
                        cookieName      = Request.Cookies[i].Name;
                        aCookie         = new HttpCookie(cookieName);
                        aCookie.Expires = DateTime.Now.AddDays(-1);
                        Response.Cookies.Add(aCookie);
                    }
                    Response.Redirect("../Login.aspx");
                    break;
                }
                #endregion
            }
        }
        /// <summary>
        /// 添加违规记录
        /// </summary>
        /// <param name="blacklist"></param>
        public HandleResult AddViolationRecordsLog(ViolationRecordsLogInfo ViolationRecordsLog)
        {
            //添加违规记录
            bool result = violateDiscipline.Add(ViolationRecordsLog);

            //return HandleResult.Successed;
            #region 添加提醒,已被注销
            if (result)
            {
                List <string> roomlist = new List <string>();
                roomlist.Add(ViolationRecordsLog.ReadingRoomID);
                List <ReadingRoomInfo> roominfos = GetReadingRoomInfo(null);
                Dictionary <string, ReadingRoomSetting> roomSettings = new Dictionary <string, ReadingRoomSetting>();
                for (int i = 0; i < roominfos.Count; i++)
                {
                    roomSettings.Add(roominfos[i].No, roominfos[i].Setting);
                }
                if (roomSettings[ViolationRecordsLog.ReadingRoomID] != null && roomSettings[ViolationRecordsLog.ReadingRoomID].BlackListSetting.Used)
                {
                    List <ViolationRecordsLogInfo> violateRecords = GetViolationRecordsLogInfo(ViolationRecordsLog.CardNo, ViolationRecordsLog.ReadingRoomID);
                    //添加读者提醒
                    //ReaderNoticeInfo rni = new ReaderNoticeInfo();
                    //rni.Type = NoticeType.ViolationWarning;
                    //rni.IsRead = LogStatus.Valid;
                    //rni.CardNo = ViolationRecordsLog.CardNo;
                    //rni.Note = string.Format("{0},还有{1}次违规,就进入黑名单", ViolationRecordsLog.Remark, roomSettings[ViolationRecordsLog.ReadingRoomID].BlackListSetting.ViolateTimes - violateRecords.Count);
                    //AddReaderNotice(rni);

                    PushMsgInfo msg = new PushMsgInfo();
                    msg.Title      = "您好,您有一次违规";
                    msg.MsgType    = MsgPushType.EnterVR;
                    msg.StudentNum = ViolationRecordsLog.CardNo;
                    msg.RoomName   = roominfos.Find(u => u.No == ViolationRecordsLog.ReadingRoomID).Name;
                    msg.VrType     = ViolationRecordsLog.EnterFlag;
                    msg.Message    = string.Format("{0},还有{1}次违规,就进入黑名单", ViolationRecordsLog.Remark, roomSettings[ViolationRecordsLog.ReadingRoomID].BlackListSetting.ViolateTimes - violateRecords.Count);
                    SendMsg(msg);


                    if (violateRecords.Count >= roomSettings[ViolationRecordsLog.ReadingRoomID].BlackListSetting.ViolateTimes)
                    {
                        BlackListInfo bli = new BlackListInfo();
                        bli.CardNo           = ViolationRecordsLog.CardNo;
                        bli.ReadingRoomID    = ViolationRecordsLog.ReadingRoomID;
                        bli.AddTime          = GetServerDateTime();
                        bli.OutBlacklistMode = roomSettings[ViolationRecordsLog.ReadingRoomID].BlackListSetting.LeaveBlacklist;
                        if (bli.OutBlacklistMode == LeaveBlacklistMode.ManuallyMode)
                        {
                            bli.ReMark = string.Format("违规累计{0}次,被加入黑名单", roomSettings[ViolationRecordsLog.ReadingRoomID].BlackListSetting.ViolateTimes);
                        }
                        else
                        {
                            bli.OutTime = bli.AddTime.AddDays(roomSettings[ViolationRecordsLog.ReadingRoomID].BlackListSetting.LimitDays);
                            bli.ReMark  = string.Format("违规累计{0}次,被加入黑名单{1}天", roomSettings[ViolationRecordsLog.ReadingRoomID].BlackListSetting.ViolateTimes, roomSettings[ViolationRecordsLog.ReadingRoomID].BlackListSetting.LimitDays);
                        }

                        int blackId = AddBlacklist(bli);
                        //修改黑名单涉及的违规记录
                        foreach (ViolationRecordsLogInfo vr in violateRecords)
                        {
                            vr.BlacklistID = blackId.ToString();
                            vr.Flag        = LogStatus.Fail;
                            UpdateViolationRecordsLog(vr);
                        }
                    }
                }
                else
                {
                    //判断黑名单
                    RegulationRulesSetting         set            = GetRegulationRulesSetting();
                    List <ViolationRecordsLogInfo> violateRecords = GetViolationRecordsLogInfo(ViolationRecordsLog.CardNo, null);
                    for (int i = 0; i < violateRecords.Count; i++)
                    {
                        if (roomSettings[violateRecords[i].ReadingRoomID].BlackListSetting.Used)
                        {
                            violateRecords.RemoveAt(i);
                            i--;
                        }
                    }
                    //添加读者提醒
                    //ReaderNoticeInfo rni = new ReaderNoticeInfo();
                    //rni.Type = NoticeType.ViolationWarning;
                    //rni.IsRead = LogStatus.Valid;
                    //rni.CardNo = ViolationRecordsLog.CardNo;
                    //rni.Note = string.Format("{0},还有{1}次违规,就进入黑名单", ViolationRecordsLog.Remark, roomSettings[ViolationRecordsLog.ReadingRoomID].BlackListSetting.ViolateTimes - violateRecords.Count);
                    //AddReaderNotice(rni);


                    PushMsgInfo msg = new PushMsgInfo();
                    msg.Title      = "您好,您有一次违规";
                    msg.MsgType    = MsgPushType.EnterVR;
                    msg.StudentNum = ViolationRecordsLog.CardNo;
                    msg.RoomName   = roominfos.Find(u => u.No == ViolationRecordsLog.ReadingRoomID).Name;
                    msg.VrType     = ViolationRecordsLog.EnterFlag;
                    msg.Message    = string.Format("{0},还有{1}次违规,就进入黑名单", ViolationRecordsLog.Remark, set.BlacklistSet.ViolateTimes - violateRecords.Count);
                    SendMsg(msg);

                    if (violateRecords.Count >= set.BlacklistSet.ViolateTimes)
                    {
                        BlackListInfo bli = new BlackListInfo();
                        bli.CardNo           = ViolationRecordsLog.CardNo;
                        bli.ReadingRoomID    = ViolationRecordsLog.ReadingRoomID;
                        bli.AddTime          = GetServerDateTime();
                        bli.OutTime          = bli.AddTime.AddDays(set.BlacklistSet.LimitDays);
                        bli.OutBlacklistMode = set.BlacklistSet.LeaveBlacklist;
                        if (bli.OutBlacklistMode == LeaveBlacklistMode.ManuallyMode)
                        {
                            bli.ReMark = string.Format("违规累计{0}次,被加入黑名单", set.BlacklistSet.ViolateTimes);
                        }
                        else
                        {
                            bli.ReMark = string.Format("多次违规,被加入黑名单{1}天", set.BlacklistSet.ViolateTimes, set.BlacklistSet.LimitDays);
                        }

                        int blackId = AddBlacklist(bli);
                        //修改黑名单涉及的违规记录
                        foreach (ViolationRecordsLogInfo vr in violateRecords)
                        {
                            vr.BlacklistID = blackId.ToString();
                            vr.Flag        = LogStatus.Fail;
                            UpdateViolationRecordsLog(vr);
                        }
                    }
                }

                return(HandleResult.Successed);
            }
            else
            {
                return(HandleResult.Failed);
            }
            #endregion
        }