基于javaweb+mysql的ssm自习室图书馆座位预约占座管理系统前台后台(java+ssm+jsp+layui+mysql)

基于javaweb+mysql的ssm自习室图书馆座位预约占座管理系统前台后台(java+ssm+jsp+layui+mysql)

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb的SSM自习室图书馆座位预约占座管理系统前台后台(java+ssm+jsp+layui+mysql)

管理员

admin 123456

学生

xs001 123456

xs002 123456

xs003 123456

xs004 123456

添加学生时会自动在用户表中注册

定时任务会定时生成座位信息,

阅览室分类中可设置信用等级,

学生被扣分后信用等级低于相应的值后不能预约相应的阅览室座位。

		} catch (Exception e) {
			e.printStackTrace();
		}
	}	
	
	//查找我的座位
	@RequestMapping("mySeat")
	public void mySeat(HttpServletRequest request,HttpServletResponse response){
		User currentUser = (User)request.getSession().getAttribute("currentUser");
		page = Integer.parseInt(request.getParameter("page"));
		rows = Integer.parseInt(request.getParameter("limit"));
		seat = new Seat();
		seat.setPage((page-1)*rows);
		seat.setRows(rows);
		JSONObject jsonObject = new JSONObject();
		try {
			seat.setStudentno(currentUser.getUserName());
			List<Seat> list = seatService.findSeat(seat);
			jsonObject.put("code", 0);
			jsonObject.put("msg", "");
			//jsonObject.put("count",10 );//total代表一共有多少数据
			jsonObject.put("data", list);//row是代表显示的页的数据
		} catch (Exception e) {
			e.printStackTrace();
		}
		WriterUtil.write(response, jsonObject.toString());
	}	
	
	// 保存选中座位
	@RequestMapping("saveSeat")
	public void saveSeat(HttpServletRequest request,HttpServletResponse response) {
		JSONObject jsonObject = new JSONObject();
		String keyword = request.getParameter("keyword");
		System.out.println("key---"+keyword);
		User currentUser = (User)request.getSession().getAttribute("currentUser");
		if(currentUser.getRoleId() == 1  || currentUser.getRoleId()==2){  //超管和教师不能选座
			jsonObject.put("returnCode","对不起,该阅览室选座只对学生开放");
			WriterUtil.write(response, jsonObject.toString());
			return;
		}
		String studentno = currentUser.getUserName();
		String nowDateHour = new SimpleDateFormat("yyyy-MM-dd-HH").format(new Date());  //当前小时数
		String selectedDate = keyword.substring(0,13);  
		try {
			//判断信用积分
			score = scoreService.findOneScore(studentno);
			int myScore = score.getTotal();     //该学生分数
			
			int roomid = Integer.parseInt(keyword.substring(19,20));
			int needScore = roomService.findScoreByRoomid(roomid);
			if(needScore >= myScore){
				jsonObject.put("returnCode", "预约失败!您的信用积分不允许在该阅览室选座");
				WriterUtil.write(response, jsonObject.toString());
					menu.setState("open");
					menuService.updateMenu(menu);
					
					menuService.deleteMenu(Integer.parseInt(menuId));
				} else {
					//不只一个孩子,直接删除
					menuService.deleteMenu(Integer.parseInt(menuId));
				}
				result.put("success", true);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
			result.put("errorMsg", "对不起,删除失败!");
		}
		WriterUtil.write(response, result.toString());
	}
	
	 

}

// 通知信息

@Controller
@RequestMapping("massage")
public class MassageController {

	private int page;
	private int rows;
	private Massage massage;
	@Autowired
	private MassageService<Massage> massageService;
			}
			return jsonArray;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
	
	
	
	
	
	@RequestMapping("updateRoleMenu")
	public void updateRoleMenu(HttpServletRequest request,HttpServletResponse response){
		JSONObject result = new JSONObject();
		try {
			String roleId = request.getParameter("roleId");
			String[] ids = request.getParameter("menuIds").split(",");
			String menuIds = "";
			String operationIds = "";
			/**
			 * 采用的方案是在菜单递归之后,再加上各菜单下的按钮
			 * 采用easyui的解析方式所以字段都用的是id和text。
			 * 为了区别两者,我们规定operationId自增从10000开始
			 * menuId从1开始,在上传过来的ids中是这样的形式
			 * 2,10000,3,4,7,10004,10006,45 这样的菜单ID和按钮ID的混合形式
			 * 所以通过与10000的比较来确定哪些是菜单的哪些是按钮的
			 * 
			 */
			for (int i = 0; i < ids.length; i++) {
				int id = Integer.parseInt(ids[i]);
				if (id>=10000) {
					operationIds += (","+id);
				} else {
					menuIds += (","+id);
				}
			}
			role = new Role();
			role.setRoleId(Integer.parseInt(roleId));
			role.setMenuIds(menuIds.substring(1));
			System.out.println(operationIds);
			rows = Integer.parseInt(request.getParameter("limit"));
			user = new User();
			user.setPage((page-1)*rows);
			user.setRows(rows);
			user.setUserName(request.getParameter("userName"));
			String roleId = request.getParameter("roleId");
			if (StringUtil.isNotEmpty(roleId)) {
				user.setRoleId(Integer.parseInt(roleId));
			} else {
				user.setRoleId(null);
			}
			List<User> list = userService.findUser(user);
			int total = userService.countUser(user);
			JSONObject jsonObj = new JSONObject();//new一个JSON
			jsonObj.put("code", 0);
			jsonObj.put("msg", "");
			jsonObj.put("count",total );//total代表一共有多少数据
			jsonObj.put("data", list);//row是代表显示的页的数据
			response.setContentType("application/json");
	        WriterUtil.write(response,jsonObj.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	
	// 新增或修改
	@RequestMapping("reserveUser")
	public void reserveUser(HttpServletRequest request,User user,HttpServletResponse response){
		String userId = request.getParameter("userId");
		JSONObject result=new JSONObject();
		try {
			if (StringUtil.isNotEmpty(userId)) {   // userId不为空 说明是修改
				user.setUserId(Integer.parseInt(userId));
				userService.updateUser(user);
				result.put("returnCode",200);
			}else {   // 添加
				if(userService.existUserWithUserName(user.getUserName())==null){  // 没有重复可以添加
					switch (user.getRoleId()) {
					case 2:
						user.setHeadPortrait("/LibrarySeatSystem/upload/headPortrait/teacher_default.jpg");
						break;
					case 3:
						user.setHeadPortrait("/LibrarySeatSystem/upload/headPortrait/student_default.jpg");
// 班级管理控制器

@Controller
@RequestMapping("classes")
public class ClassesController {

	private int page;
	private int rows;
	@Autowired
	private ClassesService<Classes> classesService;
	private Classes classes;
	
	@RequestMapping("classesIndex")
	public String index(){
		return "info/classes";
	}
	
	
	
	@RequestMapping("classesList")
	public void list(HttpServletRequest request ,HttpServletResponse response) {
		try {
			page = Integer.parseInt(request.getParameter("page"));
			rows = Integer.parseInt(request.getParameter("limit"));
			
			classes = new Classes();
			classes.setPage((page-1)*rows);
			classes.setRows(rows);
			
			String instituteId = request.getParameter("instituteId");
			if (StringUtil.isNotEmpty(instituteId)) {
				classes.setInstituteId(Integer.parseInt(instituteId));
			} else {
				classes.setInstituteId(null);
			}
			
			String specialtyId = request.getParameter("specialtyId");
			if (StringUtil.isNotEmpty(specialtyId)) {

// 统计图

@RequestMapping("chart")
@Controller
public class ChartController {

	@Autowired
	private IllegalService<Illegal> illegalService;
	private Illegal illegal;
	private Room room;
	
	
	
}

/**
 * 登录
 */
@Controller
@SuppressWarnings("unchecked")
public class LoginController {

	private User user;
	private User currentUser;
	@Autowired
	private UserService<User> userService;

@RequestMapping("chart")
@Controller
public class ChartController {

	@Autowired
	private IllegalService<Illegal> illegalService;
	private Illegal illegal;
	private Room room;
	@Autowired
	private RoomService<Room> roomService;
	private User user;
	@Autowired
	private UserService<User> userService;
	
	@RequestMapping("teacherIndex")
	public String index(){
		return "info/teacher";
	}
	
	
	@RequestMapping("teacherList")
	public void teacherList(HttpServletRequest request,HttpServletResponse response){
		try {
			page = Integer.parseInt(request.getParameter("page"));   //获取当前页
			rows = Integer.parseInt(request.getParameter("limit"));   //每页记录条数
			
			// 构造查询条件
			teacher = new Teacher();
			teacher.setPage((page-1)*rows);
			teacher.setRows(rows);
			teacher.setName(request.getParameter("name"));
			teacher.setNo(request.getParameter("no"));
			
			User currentUser = (User)request.getSession().getAttribute("currentUser");
			
			
			if(currentUser.getRoleId()==2){ //教师
				teacher.setNo(currentUser.getUserName());
			}
			
			// 调用service层的查询方法查出记录和数量
			List<Teacher> list = teacherService.findTeacher(teacher);  
			int total = teacherService.countTeacher(teacher);
			
			JSONObject jsonObj = new JSONObject();//new一个JSON
			jsonObj.put("code", 0);
			jsonObj.put("msg", "");
			jsonObj.put("count",total );//total代表一共有多少数据
			jsonObj.put("data", list);//row是代表显示的页的数据
	        WriterUtil.write(response,jsonObj.toString()); //将上述Json输出,前台ajax接收
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
			e.printStackTrace();
			return null;
		}
	}
	
	@RequestMapping("roleCombobox")
	public void roleCombobox(HttpServletRequest request,HttpServletResponse response){
		try {
			JSONArray jsonArray=new JSONArray();
			List<Role> list = findAllRole(new Role());
			jsonArray.addAll(list);
			WriterUtil.write(response, jsonArray.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	
	@RequestMapping("reserveRole")
	public void addUser(HttpServletRequest request,Role role,HttpServletResponse response){
		String roleId = request.getParameter("roleId");
		JSONObject result=new JSONObject();
		try {
			if (StringUtil.isNotEmpty(roleId)) {
				role.setRoleId(Integer.parseInt(roleId));
				roleService.updateRole(role);
				result.put("returnCode", 200);
			}else {
				if(roleService.existRoleWithRoleName(role.getRoleName())==null){  // 没有重复可以添加
					roleService.addRole(role);
					result.put("returnCode", 300);
				} else {
					result.put("returnCode", "该角色名被使用");
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			result.put("returnCode", "对不起,操作失败");
		}
		WriterUtil.write(response, result.toString());
	}
	
	
	
	@RequestMapping("deleteRole")
	public void delRole(HttpServletRequest request,HttpServletResponse response){
		JSONObject result=new JSONObject();
		try {
			String[] roleIds=request.getParameter("ids").split(",");
			for (int i=0;i<roleIds.length;i++) {
				boolean b = userService.existUserWithRoleId(Integer.parseInt(roleIds[i]))==null; //该角色下面没有用户

/**
 * 登录
 */
@Controller
@SuppressWarnings("unchecked")
public class LoginController {

	private User user;
	private User currentUser;
	@Autowired
	private UserService<User> userService;
	@Autowired
	private MenuService<Menu> menuService;
	private Role role;
	@Autowired
	private RoleService<Role> roleService;
	private Map map;
	
	//登录验证
	@RequestMapping("login")
	public void login(HttpServletRequest request,HttpServletResponse response){
		try {
			HttpSession session = request.getSession();
			String userName=request.getParameter("userName");
			String password=request.getParameter("password");
			request.setAttribute("userName", userName);
			request.setAttribute("password", password);
			map = new HashMap<String, String>();
			map.put("userName", userName);
			map.put("password", password);
			currentUser = userService.loginUser(map);
			if(currentUser==null){
				request.setAttribute("error", "用户名或密码错误");
				request.getRequestDispatcher("login.jsp").forward(request, response);
			}else{
				role = roleService.findOneRole(currentUser.getRoleId());
				String roleName=role.getRoleName();
				currentUser.setRoleName(roleName);
			page = Integer.parseInt(request.getParameter("page"));
			rows = Integer.parseInt(request.getParameter("rows"));
			bbs = new Bbs();
			bbs.setPage((page-1)*rows);
			bbs.setRows(rows);
			bbs.setAuthor(request.getParameter("author"));
			bbs.setTitle(request.getParameter("title"));
			List<Bbs> list = bbsService.findBbs(bbs);
			int total = bbsService.countBbs(bbs);
			JSONObject jsonObj = new JSONObject();//new一个JSON
			jsonObj.put("total",total );//total代表一共有多少数据
			jsonObj.put("rows", list);//row是代表显示的页的数据
	        WriterUtil.write(response,jsonObj.toString()); //将上述Json输出,前台ajax接收
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	// 发表新帖
	@RequestMapping("newBbs")
	public void newTopic(HttpServletRequest request,HttpServletResponse response,Bbs bbs){
		JSONObject result = new JSONObject();
		String content = bbs.getContent();
		User currentUser = (User)request.getSession().getAttribute("currentUser");
		String author = currentUser.getUserName();
		String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
		try {
			bbs.setAuthor(author);
			bbs.setTime(time);
			bbsService.addBbs(bbs);
			
			int bbsid = bbs.getId();
			topic = new Topic();
			topic.setAuthor(author);
			topic.setBbsid(bbsid);
			topic.setContent(content);
			topic.setTime(time);
			topicService.addTopic(topic);
			
			result.put("success", true);
		} catch (Exception e) {
			e.printStackTrace();
			result.put("errorMsg", "对不起!发表新帖失败");
		}
		WriterUtil.write(response, result.toString());
	}
	
	
	// 修改标题
	@RequestMapping("updateBbstitle")
	public void updateBbstitle(HttpServletResponse response,HttpServletRequest request,Bbs bbs){
		JSONObject result = new JSONObject();
			
			List<Classes> classlist = classesService.findClasses(classes);
			
			JSONObject jsonObj = new JSONObject();//new一个JSON
			jsonObj.put("classlist", classlist);//row是代表显示的页的数据
	        WriterUtil.write(response,jsonObj.toString()); //将上述Json输出,前台ajax接收
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	@RequestMapping("reserveClasses")
	public void reserveClasses(HttpServletRequest request,HttpServletResponse response,Classes classes) {
		JSONObject result = new JSONObject();
		try {
			classesService.addClasses(classes);
			result.put("returnCode", 200);
		} catch (Exception e) {
			e.printStackTrace();
			result.put("returnCode", "对不起!保存失败");
		}
		WriterUtil.write(response, result.toString());
	}
	
	
	
	
	@RequestMapping("deleteClasses")
	public void deleteClasses(HttpServletRequest request,HttpServletResponse response){
		JSONObject result=new JSONObject();
		try {
			String[] ids=request.getParameter("ids").split(",");
			Classes classes=new Classes();
			for (String id : ids) {
				classesService.deleteClasses(Integer.parseInt(id));
			}
			result.put("returnCode", 200);
			result.put("delNums", ids.length);
		} catch (Exception e) {
			e.printStackTrace();
			result.put("returnCode", "对不起,删除失败");
		}
						user.setHeadPortrait("/LibrarySeatSystem/upload/headPortrait/teacher_default.jpg");
						break;
					case 3:
						user.setHeadPortrait("/LibrarySeatSystem/upload/headPortrait/student_default.jpg");
						break;
					default:
						break;
					}
					userService.addUser(user);
					result.put("returnCode",300);
				} else {
					result.put("returnCode", "该用户名被使用");
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			result.put("returnCode", "对不起,操作失败");
		}
		response.setContentType("application/json");
		WriterUtil.write(response, result.toString());
	}
	
	
	@RequestMapping("deleteUser")
	public void delUser(HttpServletRequest request,HttpServletResponse response){
		JSONObject result=new JSONObject();
		try {
			String[] ids=request.getParameter("ids").split(",");
			for (String id : ids) {
				user = userService.findOneUser(Integer.parseInt(id));
				userService.deleteUser(Integer.parseInt(id));
			}
			result.put("returnCode", 200);
			result.put("delNums", ids.length);
		} catch (Exception e) {
			e.printStackTrace();
			result.put("returnCode", "对不起,删除失败");
		}
		WriterUtil.write(response, result.toString());
	}
	
	@RequestMapping("updataPortrait")
	public void updataPortrait(HttpServletRequest request,HttpServletResponse response,@RequestParam MultipartFile file,User user){
		JSONObject jsonObj = new JSONObject();//new一个JSON
		String userId = request.getParameter("userId");
		HttpSession session = request.getSession();
		try {
			if (StringUtil.isNotEmpty(userId)) {
				user.setUserId(Integer.parseInt(userId));
			ComboValue cv2 = new ComboValue("14点-18点","14点-18点");
			list.add(cv2);
			ComboValue cv3 = new ComboValue("18点-22点","18点-22点");
			list.add(cv3);
			JSONArray array = new JSONArray();
			array.addAll(list);
			WriterUtil.write(response, array.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	
	// 阅览室
	@RequestMapping("roomCombo")
	public void roomCombo(HttpServletRequest request,HttpServletResponse response){
		try {
			List<Room> list = roomService.findRoom(new Room());
			JSONArray array = new JSONArray();
			array.addAll(list);
			WriterUtil.write(response, array.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	
	
	//查找自己的座位
	@RequestMapping("myselfSeat")
	public void myselfSeat(HttpServletRequest request,HttpServletResponse response){
		User currentUser = (User)request.getSession().getAttribute("currentUser");
		try {
			String date = request.getParameter("date");
			if(date==null || date.length()==0){
				date = (new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
			}
			String roomid = request.getParameter("roomid");
			if(roomid==null || roomid.length()==0){
				roomid = "1";
			} 
			String time = request.getParameter("time");
			if(time == null || time.length()==0){
				time = "08点-12点";
			}
			Choice c = new Choice();
			c.setSeatkeyword(date + "-" +time + "-" +roomid);
			c.setStudentno(currentUser.getUserName());
			choice = choiceService.findOneChoice(c);
			if(choice == null){
				WriterUtil.write(response, "no");
			} else {
				WriterUtil.write(response, choice.getSeatkeyword());
			}
		User currentUser = (User)request.getSession().getAttribute("currentUser");
		JSONObject jsonObject = new JSONObject();
		try {
			// 删除choice表中的记录
			String keyword = request.getParameter("seatkeyword");
			Choice choice = new Choice();
			choice.setSeatkeyword(keyword.substring(0, 20));
			choice.setStudentno(currentUser.getUserName());
			choiceService.cancelChoice(choice);
			
			// 将seat表中该条记录学号变成1
			seatService.cancelSeat(keyword); //
			
			jsonObject.put("returnCode", 200);
			WriterUtil.write(response, jsonObject.toString());
		} catch (Exception e) {
			e.printStackTrace();
			jsonObject.put("returnCode", "对不起!系统错误,操作失败!");
			WriterUtil.write(response, jsonObject.toString());
		}
	}
	
	//签到定时器
	public class SignTimer implements Runnable{
		private String Keyword;
		private String Studentno;
		public SignTimer(String keyword,String studentno) {
			this.Keyword=keyword;
			this.Studentno=studentno;
		}
		@Override
		public void run() {
			try {
				Thread.sleep(30*60*1000);//休眠半小时
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			try {
				seat=new Seat();
				seat=seatService.findOneSeat(Keyword);
				if(seat.getStatus()==1) { //如果到时间后仍未签到
					Choice choice = new Choice();
					choice.setSeatkeyword(Keyword.substring(0, 20));
					choice.setStudentno(Studentno);
					choiceService.cancelChoice(choice);//取消选择
					seatService.cancelSeat(Keyword);//取消预约
						break;
					default:
						break;
					}
					userService.addUser(user);
					result.put("returnCode",300);
				} else {
					result.put("returnCode", "该用户名被使用");
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			result.put("returnCode", "对不起,操作失败");
		}
		response.setContentType("application/json");
		WriterUtil.write(response, result.toString());
	}
	
	
	@RequestMapping("deleteUser")
	public void delUser(HttpServletRequest request,HttpServletResponse response){
		JSONObject result=new JSONObject();
		try {
			String[] ids=request.getParameter("ids").split(",");
			for (String id : ids) {
				user = userService.findOneUser(Integer.parseInt(id));
				userService.deleteUser(Integer.parseInt(id));
			}
			result.put("returnCode", 200);
			result.put("delNums", ids.length);
		} catch (Exception e) {
			e.printStackTrace();
			result.put("returnCode", "对不起,删除失败");
		}
		WriterUtil.write(response, result.toString());
	}
	
	@RequestMapping("updataPortrait")
	public void updataPortrait(HttpServletRequest request,HttpServletResponse response,@RequestParam MultipartFile file,User user){
		JSONObject jsonObj = new JSONObject();//new一个JSON
		String userId = request.getParameter("userId");

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值