/// <summary> /// 获取管理员管理的阅览室 /// </summary> /// <param name="loginId">用户名</param> /// <returns>返回阅览室列表</returns> public string GetManagerPotencyReadingRoom(string loginId) { try { ManagerPotency modelManagerPotency = seatDataService.GetManagerPotencyByLoginID(loginId); List <ReadingRoomInfo> rightRoomList = modelManagerPotency.RightRoomList; List <string> roomNoList = new List <string>(); foreach (ReadingRoomInfo room in rightRoomList) { string no = ""; no = room.No; roomNoList.Add(no); } List <JM_ReadingRoom> rooms = new List <JM_ReadingRoom>(); if (roomNoList.Count > 0) { List <SeatManage.ClassModel.ReadingRoomInfo> roomListModel = seatDataService.GetReadingRoomInfo(roomNoList); for (int i = 0; i < roomListModel.Count; i++) { JM_ReadingRoom roomInfo = new JM_ReadingRoom(); roomInfo.RoomNum = roomListModel[i].No; roomInfo.RoomName = roomListModel[i].Name; //TODO:添加阅览室设置属性 //if (!String.IsNullOrEmpty(dr["ReadingSetting"].ToString())) //{ // roomInfo.Setting = new ReadingRoomSetting(dr["ReadingSetting"].ToString()); //} //else //{ // roomInfo.Setting = new ReadingRoomSetting(); //} rooms.Add(roomInfo); } JM_HandleResultObject result = new JM_HandleResultObject(); result.Result = true; result.Msg = rooms; return(SeatManageComm.JSONSerializer.Serialize(result)); } else { JM_HandleResultObject result = new JM_HandleResultObject(); result.Result = false; result.Msg = "当前没有可管理的阅览室"; return(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)); } }
/// <summary> /// 根据阅览室编号、座位状态获取对应的座位 /// </summary> /// <param name="roomNum">阅览室编号</param> /// <param name="seatState">座位状态</param> /// <returns></returns> public string GetRoomSeats(string roomNum, string seatState) { try { List <JM_Seat> jm_list = new List <JM_Seat>(); SeatLayout seatList = seatDataService.GetRoomSeatLayOut(roomNum); //获取阅览室座位 foreach (Seat seat in seatList.Seats.Values) { JM_Seat jmSeat = new JM_Seat(); jmSeat.SeatNo = seat.SeatNo; jmSeat.ShortSeatNo = seat.ShortSeatNo; jmSeat.SeatState = seat.SeatUsedState.ToString(); jmSeat.ReadingRoomNum = seat.ReadingRoomNum; jmSeat.UserName = seat.UserName; jmSeat.UserCardNo = seat.UserCardNo; jmSeat.MarkTime = seat.MarkTime.ToString(); jmSeat.BeginUsedTime = seat.BeginUsedTime.ToString(); if (seat.SeatUsedState.ToString() == seatState) { jm_list.Add(jmSeat); } } if (jm_list.Count > 0) { JM_HandleResultObject result = new JM_HandleResultObject(); result.Result = true; result.Msg = jm_list; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } else { JM_HandleResultObject result = new JM_HandleResultObject(); result.Result = false; result.Msg = string.Format("没有查询到{0}状态下的座位", seatState); 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)); } }
/// <summary> /// 管理员登录 /// </summary> /// <param name="loginId">用户名</param> /// <param name="password">密码</param> /// <returns>登录成功返回用户信息,登录失败返回错误信息</returns> public string AdminLogin(string loginId, string password) { try { if (string.IsNullOrEmpty(loginId.Trim()) || string.IsNullOrEmpty(password.Trim())) { JM_HandleResultObject result = new JM_HandleResultObject(); result.Result = false; result.Msg = "用户名或密码不能为空!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } JM_User user = null; SeatManage.ClassModel.UserInfo userInfo = seatDataService.GetUserInfo(loginId); if (userInfo != null) { string strPwd = SeatManageComm.MD5Algorithm.GetMD5Str32(password); if (strPwd.Equals(userInfo.Password)) { user = new JM_User(); user.LoginId = userInfo.LoginId; user.UserName = userInfo.UserName; if (userInfo.UserType == SeatManage.EnumType.UserType.Admin) { JM_HandleResultObject result = new JM_HandleResultObject(); result.Result = true; result.Msg = user; return(SeatManageComm.JSONSerializer.Serialize(result)); } else { JM_HandleResultObject result = new JM_HandleResultObject(); result.Result = false; result.Msg = "您不具备管理员权限!请使用管理员账号登录"; return(SeatManageComm.JSONSerializer.Serialize(result)); } } else { JM_HandleResultObject result = new JM_HandleResultObject(); result.Result = false; result.Msg = "用户名或密码错误!"; return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result)); } } else { JM_HandleResultObject result = new JM_HandleResultObject(); result.Result = false; result.Msg = "用户名或密码错误!"; 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)); } }
/// <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)); } }