/// <summary> /// 更新读者通知状态 /// </summary> /// <param name="model"></param> /// <returns></returns> public static EnumType.HandleResult UpdateReaderNotice(ReaderNoticeInfo model) { IWCFService.ISeatManageService seatService = WcfAccessProxy.ServiceProxy.CreateChannelSeatManageService(); bool error = false; try { return(seatService.UpdateReaderNotice(model)); } catch (Exception ex) { error = true; SeatManageComm.WriteLog.Write("更新读者状态失败:" + ex.Message); return(EnumType.HandleResult.Failed); } finally { ICommunicationObject ICommObjectService = seatService as ICommunicationObject; try { if (ICommObjectService.State == CommunicationState.Faulted) { ICommObjectService.Abort(); } else { ICommObjectService.Close(); } } catch { ICommObjectService.Abort(); } } }
/// <summary> /// 增加一条数据 /// </summary> public int Add(ReaderNoticeInfo model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into T_SM_ReaderNotice("); strSql.Append("CardNo,AddTime,NoticeTitle,NoticeContent,IsRead)"); strSql.Append(" values ("); strSql.Append("@CardNo,@AddTime,@NoticeTitle,@NoticeContent,@IsRead)"); strSql.Append(";select @@IDENTITY"); SqlParameter[] parameters = { new SqlParameter("@CardNo", SqlDbType.NVarChar, 20), new SqlParameter("@AddTime", SqlDbType.DateTime), new SqlParameter("@NoticeTitle", SqlDbType.NVarChar, 200), new SqlParameter("@NoticeContent", SqlDbType.Text), new SqlParameter("@IsRead", SqlDbType.Int, 4) }; parameters[0].Value = model.CardNo; parameters[1].Value = model.AddTime; parameters[2].Value = ((int)model.Type).ToString(); parameters[3].Value = model.Note; parameters[4].Value = (int)model.IsRead; object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters); if (obj == null) { return(0); } else { return(Convert.ToInt32(obj)); } }
/// <summary> /// 添加读者消息提示 /// </summary> /// <param name="cardNo">卡号</param> /// <param name="Note">消息内容</param> private static void AddNotice(string cardNo, string Note) { ReaderNoticeInfo rni = new ReaderNoticeInfo(); rni.CardNo = cardNo; rni.Note = Note; T_SM_ReaderNotice.AddReaderNotice(rni); }
/// <summary> /// 获取读者消息列表 /// </summary> /// <param name="cardNum"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <returns></returns> public List <ReaderNoticeInfo> GetReaderNoticeList(string cardNum, int pageIndex, int pageSize) { List <ReaderNoticeInfo> list = new List <ReaderNoticeInfo>(); DataSet ds = t_sm_readerNotice_DAL.GetList(cardNum, pageIndex, pageSize); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { ReaderNoticeInfo notice = dataRowToReaderNotice(ds.Tables[0].Rows[i]); list.Add(notice); } return(list); }
/// <summary> /// 行转换为实体 /// </summary> /// <param name="dr"></param> /// <returns></returns> private ReaderNoticeInfo dataRowToReaderNotice(DataRow dr) { ReaderNoticeInfo notice = new ReaderNoticeInfo(); notice.Type = string.IsNullOrEmpty(dr["NoticeTitle"].ToString()) ? NoticeType.None : (NoticeType)int.Parse(dr["NoticeTitle"].ToString()); notice.AddTime = DateTime.Parse(dr["AddTime"].ToString()); notice.CardNo = dr["CardNo"].ToString(); notice.IsRead = (LogStatus)int.Parse(dr["IsRead"].ToString()); notice.Note = dr["NoticeContent"].ToString(); notice.NoticeID = int.Parse(dr["NoticeId"].ToString()); return(notice); }
/// <summary> /// 更新读者消息 /// </summary> /// <param name="model"></param> /// <returns></returns> public HandleResult UpdateReaderNotice(ReaderNoticeInfo model) { bool result = t_sm_readerNotice_DAL.Update(model); if (result) { return(HandleResult.Successed); } else { return(HandleResult.Failed); } }
/// <summary> /// 更新读者通知状态 /// </summary> /// <param name="model"></param> /// <returns></returns> public static EnumType.HandleResult UpdateReaderNotice(ReaderNoticeInfo model) { IWCFService.ISeatManageService seatService = new WcfServiceForSeatManage.SeatManageDateService(); bool error = false; try { return(seatService.UpdateReaderNotice(model)); } catch (Exception ex) { error = true; SeatManageComm.WriteLog.Write("更新读者状态失败:" + ex.Message); return(EnumType.HandleResult.Failed); } }
/// <summary> /// 添加一条读者消息 /// </summary> /// <param name="model">读者消息的model</param> /// <returns></returns> public static int AddReaderNotice(ReaderNoticeInfo model) { IWCFService.ISeatManageService seatService = new WcfServiceForSeatManage.SeatManageDateService(); bool error = false; try { return(seatService.AddReaderNotice(model)); } catch (Exception ex) { error = true; SeatManageComm.WriteLog.Write("添加读者消息失败:" + ex.Message); return(-1); } }
/// <summary> /// 添加读者消息 /// </summary> /// <param name="model"></param> /// <returns></returns> public int AddReaderNotice(ReaderNoticeInfo model) { try { model.AddTime = GetServerDateTime(); //Thread thread = new Thread(new ParameterizedThreadStart(NotifyMsg)); //thread.Start(model); //ThreadPool.QueueUserWorkItem(new WaitCallback(sendSeatStateChanged), model);/ //pushMsgV2(model); return(t_sm_readerNotice_DAL.Add(model)); } catch { throw; } }
/// <summary> /// 座位等待处理 /// </summary> /// <param name="readingRoom">阅览室</param> /// <param name="enterOutLog">进出记录</param> /// <param name="waitSeatLoglist">等待记录列表</param> private void WaitSeatOperate(ReadingRoomInfo readingRoom, EnterOutLogInfo enterOutLog, List <WaitSeatLogInfo> waitSeatLoglist, DateTime nowDateTime) { try { waitSeatLoglist[0].WaitingState = EnterOutLogType.WaitingSuccess; waitSeatLoglist[0].StatsChangeTime = nowDateTime; seatManageService.UpdateWaitLog(waitSeatLoglist[0]); ReaderNoticeInfo notice = new ReaderNoticeInfo(); //释放原读者座位 int logid = 0; enterOutLog.Flag = Operation.Service; enterOutLog.EnterOutState = EnterOutLogType.Leave; enterOutLog.EnterOutTime = nowDateTime; enterOutLog.Remark = string.Format("在{0},{1}号座位,被其他读者设置暂离,暂离超时,被监控服务释放座位", enterOutLog.ReadingRoomName, enterOutLog.SeatNo.Substring(enterOutLog.SeatNo.Length - readingRoom.Setting.SeatNumAmount)); seatManageService.AddEnterOutLogInfo(enterOutLog, ref logid); WriteLog.Write(string.Format("监控服务:读者{0},{1}", enterOutLog.CardNo, enterOutLog.Remark)); //等待读者入座 EnterOutLogInfo new_eol = new EnterOutLogInfo(); new_eol.CardNo = waitSeatLoglist[0].CardNo; new_eol.EnterOutLogNo = SeatComm.RndNum(); new_eol.EnterOutState = EnterOutLogType.WaitingSuccess; new_eol.EnterOutType = LogStatus.Valid; new_eol.ReadingRoomNo = waitSeatLoglist[0].ReadingRoomNo; new_eol.Flag = Operation.Service; new_eol.SeatNo = enterOutLog.SeatNo; new_eol.Remark = string.Format("在{0},{1}号座位,等待成功,自动入座", enterOutLog.ReadingRoomName, enterOutLog.SeatNo.Substring(enterOutLog.SeatNo.Length - readingRoom.Setting.SeatNumAmount)); seatManageService.AddEnterOutLogInfo(new_eol, ref logid); WriteLog.Write(string.Format("监控服务:读者{0},{1}", new_eol.CardNo, new_eol.Remark)); if (readingRoom.Setting.IsRecordViolate) { AddViolationRecordByEnterOutLog(enterOutLog, ViolationRecordsType.ShortLeaveByReaderOutTime, string.Format("读者在{0},{1}号座位,被其他读者设置暂离,暂离超时", enterOutLog.ReadingRoomName, enterOutLog.SeatNo.Substring(enterOutLog.SeatNo.Length - readingRoom.Setting.SeatNumAmount)), readingRoom.Setting, nowDateTime); } } catch (Exception ex) { WriteLog.Write(string.Format("监控服务:处理等待读者发生错误:" + ex.Message)); } }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(ReaderNoticeInfo model) { StringBuilder strSql = new StringBuilder(); strSql.Append("update T_SM_ReaderNotice set "); strSql.Append("CardNo=@CardNo,"); strSql.Append("AddTime=@AddTime,"); strSql.Append("NoticeContent=@NoticeContent,"); strSql.Append("IsRead=@IsRead,"); strSql.Append("NoticeTitle=@NoticeTitle"); strSql.Append(" where NoticeId=@NoticeId"); SqlParameter[] parameters = { new SqlParameter("@CardNo", SqlDbType.NVarChar, 20), new SqlParameter("@AddTime", SqlDbType.DateTime), new SqlParameter("@NoticeContent", SqlDbType.Text), new SqlParameter("@IsRead", SqlDbType.Int, 4), new SqlParameter("@NoticeTitle", SqlDbType.NVarChar, 200), new SqlParameter("@NoticeId", SqlDbType.Int, 4) }; parameters[0].Value = model.CardNo; parameters[1].Value = model.AddTime; parameters[2].Value = model.Note; parameters[3].Value = (int)model.IsRead; parameters[4].Value = ((int)model.Type).ToString(); parameters[5].Value = model.NoticeID; int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters); if (rows > 0) { return(true); } else { return(false); } }
/// <summary> /// 座位等待处理 /// </summary> /// <param name="readingRoom">阅览室</param> /// <param name="enterOutLog">进出记录</param> /// <param name="waitSeatLoglist">等待记录列表</param> private static void WaitSeatOperate(ReadingRoomInfo readingRoom, EnterOutLogInfo enterOutLog, List <WaitSeatLogInfo> waitSeatLoglist, DateTime nowDateTime) { try { waitSeatLoglist[0].WaitingState = EnterOutLogType.WaitingSuccess; waitSeatLoglist[0].StatsChangeTime = nowDateTime; T_SM_SeatWaiting.UpdateWaitLog(waitSeatLoglist[0]); ReaderNoticeInfo notice = new ReaderNoticeInfo(); //释放原读者座位 int logid = 0; enterOutLog.Flag = Operation.Service; enterOutLog.EnterOutState = EnterOutLogType.Leave; enterOutLog.EnterOutTime = nowDateTime; enterOutLog.Remark = string.Format("在{0},{1}号座位,被其他读者设置暂离,暂离超时,被监控服务释放座位", enterOutLog.ReadingRoomName, enterOutLog.SeatNo.Substring(enterOutLog.SeatNo.Length - readingRoom.Setting.SeatNumAmount)); EnterOutOperate.AddEnterOutLog(enterOutLog, ref logid); //notice.CardNo = enterOutLog.CardNo; //notice.Type = NoticeType.ShortLeaveTimeEndWarning; //notice.Note = "暂离超时,座位已被释放。"; //T_SM_ReaderNotice.AddReaderNotice(notice); //PushMsgInfo msg = new PushMsgInfo(); //msg.Title = "您好,您的座位已被释放"; //msg.MsgType = MsgPushType.TimeOut; //msg.StudentNum = enterOutLog.CardNo; //msg.Message = enterOutLog.Remark; //SeatManage.Bll.T_SM_ReaderNotice.SendPushMsg(msg); WriteLog.Write(string.Format("监控服务:读者{0},{1}", enterOutLog.CardNo, enterOutLog.Remark)); //等待读者入座 EnterOutLogInfo new_eol = new EnterOutLogInfo(); new_eol.CardNo = waitSeatLoglist[0].CardNo; new_eol.EnterOutLogNo = SeatComm.RndNum(); new_eol.EnterOutState = EnterOutLogType.WaitingSuccess; new_eol.EnterOutType = LogStatus.Valid; new_eol.ReadingRoomNo = waitSeatLoglist[0].ReadingRoomNo; new_eol.Flag = Operation.Service; new_eol.SeatNo = enterOutLog.SeatNo; new_eol.Remark = string.Format("在{0},{1}号座位,等待成功,自动入座", enterOutLog.ReadingRoomName, enterOutLog.SeatNo.Substring(enterOutLog.SeatNo.Length - readingRoom.Setting.SeatNumAmount)); EnterOutOperate.AddEnterOutLog(new_eol, ref logid); //notice.CardNo = enterOutLog.CardNo; //notice.Type = NoticeType.WaitSeatSuccess; //notice.Note = "您等待的座位已经分配给您。"; //T_SM_ReaderNotice.AddReaderNotice(notice); //msg = new PushMsgInfo(); //msg.Title = "您好,您已等待成功"; //msg.MsgType = MsgPushType.ToTime; //msg.StudentNum = enterOutLog.CardNo; //msg.Message = new_eol.Remark; //SeatManage.Bll.T_SM_ReaderNotice.SendPushMsg(msg); WriteLog.Write(string.Format("监控服务:读者{0},{1}", new_eol.CardNo, new_eol.Remark)); if (readingRoom.Setting.IsRecordViolate) { AddViolationRecordByEnterOutLog(enterOutLog, ViolationRecordsType.ShortLeaveByReaderOutTime, string.Format("读者在{0},{1}号座位,被其他读者设置暂离,暂离超时", enterOutLog.ReadingRoomName, enterOutLog.SeatNo.Substring(enterOutLog.SeatNo.Length - readingRoom.Setting.SeatNumAmount)), readingRoom.Setting, nowDateTime); } } catch (Exception ex) { WriteLog.Write(string.Format("监控服务:处理等待读者发生错误:" + ex.Message)); } }