Java项目:SSH宿舍管理系统

作者主页:夜未央5788

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

本项目分为三种角色:系统管理员、楼宇管理员、学生;
系统管理员主要功能如下:
楼宇管理员管理、学生管理、楼宇管理、宿舍管理、学生入住登记、学生寝室调换、学生迁出登记、学生缺勤记录、修改密码、退出登录

楼宇管理员主要功能如下:
学生管理、学生入住登记、学生寝室调换、学生迁出登记、学生缺寝登记、学生缺寝记录、修改密码、退出登录

学生主要功能如下:

首页、修改密码、我的缺勤记录、退出登录;

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 
5.数据库:MySql 5.7版本;

6.是否Maven项目:否;

技术栈

1. 后端:Spring+hibernate+Struts 2

2. 前端:JSP+HTML+CSS+JavaScript+jQuery

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中applicationContext.xml配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入http://localhost:8080/ 登录
系统管理员用户名/密码:admin/admin
楼宇管理员用户名/密码:101/123456

学生用户名/密码:2021001/123456

运行截图

 

 

 

 

 

相关代码 

AbsenteeRecordAction

package org.besteam.web.action;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.struts2.ServletActionContext;
import org.besteam.daoimpl.PageBean;
import org.besteam.domain.AbsenteeRecord;
import org.besteam.domain.Dormitory;
import org.besteam.domain.User;
import org.besteam.service.AbsenteeRecordService;
import org.besteam.service.BuildingService;
import org.besteam.service.DormitoryService;
import org.besteam.service.UserService;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.util.ValueStack;

public class AbsenteeRecordAction extends ActionSupport implements ModelDriven<AbsenteeRecord>{

	private static final long serialVersionUID = -5940812028614640249L;
	
	
	private AbsenteeRecord absenteeRecord = new AbsenteeRecord();
	@Override
	public AbsenteeRecord getModel() {
		// TODO Auto-generated method stub
		return absenteeRecord;
	}
	
	//注入service
	private AbsenteeRecordService absenteeRecordService;
	public void setAbsenteeRecordService(AbsenteeRecordService absenteeRecordService) {
		this.absenteeRecordService = absenteeRecordService;
	}
	
	private UserService userService;
	public void setUserService(UserService userService) {
		this.userService = userService;
	}
	
	private BuildingService buildingService;
	
	public void setBuildingService(BuildingService buildingService) {
		this.buildingService = buildingService;
	}
	
	private DormitoryService dormitoryService;

	public void setDormitoryService(DormitoryService dormitoryService) {
		this.dormitoryService = dormitoryService;
	}

	/**
	 * 缺勤记录登记界面
	 * @return
	 */
	public String recordUI() {
		//当前
		User existUser = (User) ServletActionContext.getRequest().getSession().getAttribute("existUser");
		
		return "record";
	}
	
	private Long building_id;
	public void setBuilding_id(Long building_id) {
		this.building_id = building_id;
	}
	private String userCode;
	public void setUserCode(String userCode) {
		this.userCode = userCode;
	}

	/**
	 * 缺勤登记
	 * @return
	 */
	public String record() {
		User user = userService.findByUserCode(userCode);
		if(user==null) {//没有此学生
			ServletActionContext.getRequest().setAttribute("isrecord", "学号输入有误!");
			return "record";
		}
		
		if(user.getIdentity()!=0) {//不是学生
			ServletActionContext.getRequest().setAttribute("isrecord", "学号输入有误!");
			return "record";
		}
		
		if(user.getCheck_in()!=1) {
			ServletActionContext.getRequest().setAttribute("isrecord", "该生未入住!");
			return "record";
		}
		
		if(user.getBuilding_id()!=building_id) {
			ServletActionContext.getRequest().setAttribute("isrecord", "请输入本栋楼宇学生学号!");
			return "record";
		}
		ServletActionContext.getRequest().setAttribute("recordUser", user);
		//学生所在楼宇
		return "addRecord";
	}
	
	public String addrec() throws ParseException {
		Long user_id = absenteeRecord.getUser().getUser_id();
		User findById = userService.findById(user_id);
		absenteeRecord.setUser(findById);
		Date date = new Date();//获得系统时间.
        SimpleDateFormat sdf =   new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
        String nowTime = sdf.format(date);
        Date time = sdf.parse( nowTime );
        absenteeRecord.setAbsentee_date(time);
        absenteeRecordService.save(absenteeRecord);
		ServletActionContext.getRequest().setAttribute("isrecord", "登记成功!");
		return "record";
	}

	
	private Integer pageCode;
	public void setPageCode(Integer pageCode) {
		this.pageCode = pageCode;
	}
	
	private String dro_name;
	public void setDro_name(String dro_name) {
		this.dro_name = dro_name;
	}
	public String getDro_name() {
		return dro_name;
	}

	private String uc;
	public void setUc(String uc) {
		this.uc = uc;
	}

	public String findAbsUI() {
		if(pageCode == null) {
			pageCode = 1;
		}
		
		ServletActionContext.getRequest().setAttribute("uc", uc);
		PageBean<AbsenteeRecord> absPage = null;
		Long dormitory_id = null;
		if(dro_name!=null&&!dro_name.trim().equals("")) {
			//宿舍名称
			Dormitory dormitory  = 	dormitoryService.findByDorName(dro_name);
			ServletActionContext.getRequest().setAttribute("dro", dro_name);
			if(dormitory!=null) {
				dormitory_id = dormitory.getDormitory_id();
			}else {
				dormitory_id = 0L;
			}
		}
			User us = new User();
			us.setUser_id(0L);
			if(uc!=null&&!uc.trim().equals("")) {
				
				User findByUserCode = userService.findByUserCode(uc);
				if(findByUserCode==null) {
					findByUserCode = us;
				}
				absenteeRecord.setUser(findByUserCode);
			}
		
		
		User currUser = (User) ServletActionContext.getRequest().getSession().getAttribute("existUser");
		if(currUser.getIdentity()==2) {//系统管理员
			if(dormitory_id!=null) {
				absenteeRecord.setDorId(dormitory_id);
			}
			absPage = absenteeRecordService.findByPage(absenteeRecord, pageCode);
		}else {//楼宇管理员
			if(dormitory_id!=null) {
				absenteeRecord.setDorId(dormitory_id);
			}
			absenteeRecord.setBuildingId(currUser.getBuilding_id());
			absPage = absenteeRecordService.findByPage(absenteeRecord, pageCode);
		}
		ValueStack vs = ActionContext.getContext().getValueStack();
		vs.set("absPage", absPage);
		return "abs";
	}
	
	/**
	 * 查看个人缺勤记录
	 * @return
	 */
	
	public String showMe() {
		if(pageCode==null) {
			pageCode = 1;
		}
		User me = (User) ServletActionContext.getRequest().getSession().getAttribute("existUser");
		absenteeRecord.setUser(me);
		PageBean<AbsenteeRecord> absPage = absenteeRecordService.findByPage(absenteeRecord, pageCode);
		ValueStack vs = ActionContext.getContext().getValueStack();
		vs.set("absPage", absPage);
		return "showMe";
	}

}

BuildingAction

package org.besteam.web.action;

import org.apache.struts2.ServletActionContext;
import org.besteam.daoimpl.PageBean;
import org.besteam.domain.Building;
import org.besteam.domain.User;
import org.besteam.service.BuildingService;
import org.besteam.service.UserService;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.util.ValueStack;
/**
 * 楼宇action
 * @author checkz520
 *
 */
public class BuildingAction extends ActionSupport implements ModelDriven<Building>{

	private static final long serialVersionUID = 4300789626596360064L;
	
	//注入模型驱动
	private Building building = new Building();
	public Building getModel() {
		return building;
	}
	
	
	private UserService userService;
	public void setUserService(UserService userService) {
		this.userService = userService;
	}


	private BuildingService buildingService;
	public void setBuildingService(BuildingService buildingService) {
		this.buildingService = buildingService;
	}
	
	
	//注入pageCode
		private Integer pageCode;
		
		public void setPageCode(Integer pageCode) {
			
			this.pageCode = pageCode;
		}
		
	//查询所有楼宇信息	
	public String findByPageUI() {
		if(pageCode == null) {
			this.pageCode = 1;
		}
		
		PageBean<Building> bList = buildingService.findByPage(building, pageCode);
		ValueStack vs = ActionContext.getContext().getValueStack();
		vs.set("bList", bList);
		
		return "bListPage";
	}
	
	
	/**
	 * 修改楼宇信息
	 */
	
	public String updateBuildingUI() {
		//查询当前楼宇信息
		Building updateBuilding = buildingService.findBuildingInfo(building.getBuilding_id());
		//将当前楼宇信息放入值栈中
		ValueStack vs = ActionContext.getContext().getValueStack();
		vs.set("updateBuilding", updateBuilding);
		//转发到修改楼宇信息页面中
		return "updateBuilding";
	}
	
	/**
	 * 添加或修改当前的楼宇的管理员
	 */
	
	public String addBuildingAdminUI() {
		Building updateBudInfo = buildingService.findBuildingInfo(building.getBuilding_id());
		User u = new User();
		u.setBuilding_id(0L);
		u.setIdentity(1);
		PageBean<User> uPage = userService.findByPage(u, 1);
		ValueStack vs = ActionContext.getContext().getValueStack();
		vs.set("uPage", uPage);
		vs.set("bInfo", updateBudInfo);
		return "addBuildingAdmin";
		
	}
	
	
	//注入以前的管理员的id
	private Long oldId;
	public void setOldId(Long oldId) {
		this.oldId = oldId;
	}

	public String updateBInfo() {
		//将老管理员的楼宇信息置为0
		if(oldId!=null) {
			userService.deleteAndChangeAdminInfo(oldId, 0L);
		}
		
		//新楼宇和管理员信息
		User newUser = new User();
		newUser.setBuilding_id(building.getBuilding_id());
		newUser.setUser_id(building.getUser_id());
		buildingService.addAndChangeAdmingInfo(newUser);
		
		//louyu
		userService.deleteAndChangeAdminInfo(building.getUser_id(), building.getBuilding_id());
		
		
		ServletActionContext.getRequest().setAttribute("success", "操作成功!");
		
		
		return "pageui";
	}
	
	/**
	 * 跳转到添加楼宇界面
	 * @return
	 */
	public String addBuildingUI() {
		
		
		return "addBuilding";
	}
	
	/**
	 * 添加楼宇
	 */
	public String addBuilding() {
		buildingService.add(building);
		return "bListPage";
	}
}

DormitoryAction

package org.besteam.web.action;

import org.besteam.daoimpl.PageBean;
import org.besteam.domain.Building;
import org.besteam.domain.Dormitory;
import org.besteam.service.BuildingService;
import org.besteam.service.DormitoryService;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.util.ValueStack;

/**
 * 宿舍action
 * 
 * @author checkz520
 *
 */
public class DormitoryAction extends ActionSupport implements ModelDriven<Dormitory> {

	private static final long serialVersionUID = 9205366981981150538L;

	private Dormitory dormitory = new Dormitory();

	public Dormitory getModel() {
		if(dormitory==null) {
			dormitory = new Dormitory();
		}
		return dormitory;
	}

	private DormitoryService dormitoryService;

	public void setDormitoryService(DormitoryService dormitoryService) {
		this.dormitoryService = dormitoryService;
	}
	
	private BuildingService buildingService;

	public void setBuildingService(BuildingService buildingService) {
		this.buildingService = buildingService;
	}

	// 注入pageCode	
	private Integer pageCode;

	public void setPageCode(Integer pageCode) {
		
		this.pageCode = pageCode;
	}
	
	/**
	 * 查询所有宿舍
	 * @return
	 */
	public String findByPageUI() {
		if (pageCode == null) {
			this.pageCode = 1;
		}
		PageBean<Dormitory> bList = dormitoryService.findByPage(dormitory, pageCode);
		ValueStack vs = ActionContext.getContext().getValueStack();
		vs.set("dList", bList);
		
		return "dListPage";
	}
	
	/**
	 * 跳转到查看宿舍信息界面
	 */
	public String dorInfoUI() {
		
		Dormitory dor = dormitoryService.getDorById(dormitory.getDormitory_id());
		ValueStack vs = ActionContext.getContext().getValueStack();
		vs.set("dor", dor);
		return "dorInfo";
	}
	
	/**
	 * 跳转到添加宿舍界面
	 */
	public String addDorUI() {
		
		Building building = new Building();
		building.setGender_in(dormitory.getGender_in());
		//可入住楼宇
		PageBean<Building> bud = buildingService.findByPage(building, 1);
		ValueStack vs = ActionContext.getContext().getValueStack();
		vs.set("bud", bud);
		return "addDor";
		
	}
	
	public String addDor() {
		Building bud = buildingService.findBuildingInfo(dormitory.getBuilding().getBuilding_id());
		dormitory.setBuilding(bud);
		//保存宿舍信息
		dormitoryService.save(dormitory);
		
		return "dListPage";
	}
}

如果也想学习本系统,下面领取。关注并回复:105ssh

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜未央5788

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值