基于javaweb和mysql的ssm宿舍公共财产管理系统(java+ssm+jsp+easyui+h-ui+mysql)
基于javaweb和mysql的ssm宿舍公共财产管理系统(java+ssm+jsp+easyui+h-ui+mysql)
私信源码获取及调试交流
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SSM宿舍公共财产管理系统(java+ssm+jsp+easyui+h-ui+mysql)
管理员
admin 123456
宿管老师
1902 123456
1903 123456
学生
192300422 123456
192300423 123456
192300424 123456
项目介绍
本系统采用java作为前台开发工具、MySQL作为后台数据库平台的管理系统。系统通过实现公寓管理人员的信息输入与维护、公寓入住人员的信息修改与维护、宿舍用品配置登记与维护、公寓信息查询、来访人员登记等功能,使大学生公寓管理变得系统化、规范化、自动化,从而达到掌握宿舍成员的情况、提高管理效率的目的。
该项目主要包括管理员、宿管老师、学生三种角色。 管理员主要功能包括: 系统设置:菜单管理、角色管理、修改密码; 用户管理:老师管理、学生管理、管理员管理; 系统日志:日志列表; 宿舍楼管理; 财产管理; 财产盘点管理; 同产报修管理; 报废管理; 宿管老师主要功能包括: 财产管理、财产盘点管理、财产报修管理、报废处理;
学生主要功能包括: 财产管理、财产报修管理;
环境需要
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项目:否;
技术栈
- 后端:spring+springMVC+mybaits 2. 前端:JSP+EasyUI+H-ui+jQuery+Ajax
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中db.properties配置文件中的数据库配置改为自己的配置; 4. 前台访问路径:http://localhost:8080/
@RequestMapping(value="/welcome",method=RequestMethod.GET)
public ModelAndView welcome(ModelAndView model){
model.setViewName("system/welcome");
return model;
}
/**
* 跳转到登陆页面
* @param model
* @return
*/
@RequestMapping(value="/login",method=RequestMethod.GET)
public ModelAndView login(ModelAndView model){
model.setViewName("system/login");
return model;
}
/**
* 跳转到注册页面
* @param model
* @return
*/
@RequestMapping(value="/regist",method=RequestMethod.GET)
public ModelAndView regist(ModelAndView model){
model.setViewName("system/regist");
return model;
}
/**
* 登录表单提交处理控制器
* @param user
* @param cpacha
* @return
*/
@RequestMapping(value="/login",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> loginAct(User user, String cpacha, Integer selected, HttpServletRequest request){
Map<String, String> ret = new HashMap<String, String>();
if(selected==-1){
ret.put("type", "error");
ret.put("msg", "请选择角色!");
return ret;
}
if(user == null){
ret.put("type", "error");
ret.put("msg", "请填写用户信息!");
return ret;
}
if(StringUtils.isEmpty(cpacha)){
ret.put("type", "error");
@ResponseBody
public Map<String, Object> getMenuList(Page page, HttpServletRequest request) {
Map<String, Object> ret = new HashMap<String, Object>();
Map<String, Object> queryMap = new HashMap<String, Object>();
queryMap.put("offset", page.getOffset());
queryMap.put("pageSize", page.getRows());
List<AssetCategoryEntity> findList = assetCategoryService.findList(queryMap);
ret.put("rows", findList);
ret.put("total", assetCategoryService.getTotal(queryMap));
return ret;
}
/**
* 删除
*
* @param ids
* @return
*/
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@ResponseBody
public Map<String, String> delete(String ids) {
Map<String, String> ret = new HashMap<String, String>();
if (StringUtils.isEmpty(ids)) {
ret.put("type", "error");
ret.put("msg", "选择要删除的数据!");
return ret;
}
if (ids.contains(",")) {
ids = ids.substring(0, ids.length() - 1);
}
if (assetCategoryService.delete(ids) <= 0) {
ret.put("type", "error");
ret.put("msg", "财产分类删除失败,请联系管理员!");
return ret;
}
ret.put("type", "success");
ret.put("msg", "财产分类删除成功!");
return ret;
}
/**
*
* @param asset
* @return
*/
@RequestMapping(value = "/edit", method = RequestMethod.POST)
@ResponseBody
public Map<String, String> edit(AssetCategoryEntity assetCategoryEntity) {
/**
* 系统操作类控制器
*
*/
@Controller
@RequestMapping("/system")
public class SystemController {
@Autowired
private UserService userService;
@Autowired
private RoleService roleService;
@Autowired
private AuthorityService authorityService;
@Autowired
private MenuService menuService;
@Autowired
private LogService logService;
@Autowired
private TeacherService teacherService;
@Autowired
private StudentService studentService;
/**
* 系统登录后的主页
* @param model
* @return
*/
@RequestMapping(value="/index",method=RequestMethod.GET)
public ModelAndView index(ModelAndView model,HttpServletRequest request){
List<Menu> userMenus = (List<Menu>)request.getSession().getAttribute("userMenus");
model.addObject("topMenuList", MenuUtil.getAllTopMenu(userMenus));
model.addObject("secondMenuList", MenuUtil.getAllSecondMenu(userMenus));
model.setViewName("system/index");
return model;//WEB-INF/views/+system/index+.jsp = WEB-INF/views/system/index.jsp
}
/**
* 系统登录后的欢迎页
* @param model
* @return
*/
@RequestMapping(value="/welcome",method=RequestMethod.GET)
/**
* 菜单管理控制器
*
*
*/
@RequestMapping("/admin/menu")
@Controller
public class MenuController {
@Autowired
private MenuService menuService;
/**
* 菜单管理列表页
*
* @param model
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
public ModelAndView list(ModelAndView model) {
model.addObject("topList", menuService.findTopList());
//list存放map,map存放kv值(json),namelist取需要的字段
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (DormitoryEntity category : findTopList) {
Map<String, Object> map = new HashMap<String, Object>();
//只取classid、ClassName即可。
String dormitoryname = category.getName();
String dormitoryid = String.valueOf(category.getDormitoryid());
//map存放键值对
map.put("dormitoryname",dormitoryname);
map.put("dormitoryid",dormitoryid);
//list存放map
list.add(map);
System.out.println("json格式:"+list); //打印出来就成为了json格式
}
return list;
}*/
/**
* 获取宿舍列表
*
* @param page
* @param name
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.POST)
@ResponseBody
public Map<String, Object> getMenuList(Page page,
@RequestParam(name = "name", required = false, defaultValue = "") String name) {
Map<String, Object> ret = new HashMap<String, Object>();
Map<String, Object> queryMap = new HashMap<String, Object>();
queryMap.put("offset", page.getOffset());
queryMap.put("pageSize", page.getRows());
queryMap.put("name", name);
List<DormitoryVO> findList = dormitoryService.findList(queryMap);
ret.put("rows", findList);
ret.put("total", dormitoryService.getTotal(queryMap));
return ret;
}
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@RequestMapping("/admin/assetcategory")
@Controller
public class AssetCategoryController {
@Autowired
AssetCategoryService assetCategoryService;
@RequestMapping(value = "/list", method = RequestMethod.GET)
public ModelAndView list(ModelAndView model) {
model.setViewName("assetcategory/list");
return model;
}
@RequestMapping(value = "/getall", method = RequestMethod.POST)
@ResponseBody
public List<Map<String, Object>> loadCategory(HttpServletResponse response) {
List<AssetCategoryEntity> findAll = assetCategoryService.findAll();
System.out.println("查询到的类别:" + findAll);
// list存放map,map存放kv值(json),namelist取需要的字段
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (AssetCategoryEntity category : findAll) {
Map<String, Object> map = new HashMap<String, Object>();
// 只取classid、ClassName即可。
String canme = category.getCname();
String cid = String.valueOf(category.getId());
// map存放键值对
map.put("canme", canme);
map.put("cid", cid);
// list存放map
list.add(map);
System.out.println("json格式:" + list); // 打印出来就成为了json格式
}
return list;
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public Map<String, String> add(AssetCategoryEntity assetCategoryEntity) {
Map<String, String> ret = new HashMap<String, String>();
if (assetCategoryEntity == null) {
ret.put("type", "error");
ret.put("msg", "请填写正确的财产分类信息!");
return ret;
}
if (StringUtils.isEmpty(assetCategoryEntity.getCname())) {
ret.put("type", "error");
ret.put("msg", "请填写财产分类名");
return ret;
}
if (StringUtils.isEmpty(String.valueOf(assetCategoryEntity.getCyear()))) {
ret.put("type", "error");
ret.put("msg", "请填写财产使用年限");
repairsEntity.setCreatetime(new Date());
repairsEntity.setStatus(1);// 1正在维护
repairsEntity.setStuid(stu.getId());
Asset as = new Asset();
as.setAssetid(repairsEntity.getAssetid());
as.setRepairstatus(1);
assetService.edit(as);
if (repairsService.add(repairsEntity) <= 0) {
ret.put("type", "error");
ret.put("msg", "报修信息添加失败,请联系管理员!");
return ret;
}
ret.put("type", "success");
ret.put("msg", "报修信息添加成功!");
return ret;
}
/**
* 查询
*
* @param page
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.POST)
@ResponseBody
public Map<String, Object> getMenuList(Page page, HttpServletRequest request) {
Map<String, Object> ret = new HashMap<String, Object>();
Map<String, Object> queryMap = new HashMap<String, Object>();
Integer myrole = (Integer) request.getSession().getAttribute("myrole");
switch (myrole) {// 1管理员 2老师 4 学生
case 4:
StudentEntity stu = (StudentEntity) request.getSession().getAttribute("admin");// 获取学生
queryMap.put("stuid", stu.getId());
break;
case 2:
Map<String, Object> teacheMap = new HashMap<String, Object>();
TeacherEntity teacherEntity = (TeacherEntity) request.getSession().getAttribute("admin");// 获取老师
teacheMap.put("teacherid", teacherEntity.getId());
List<DormitoryEntity> findALL = dormitoryService.findALL(teacheMap);// 获取负责的寝室
Integer dormitoryid = findALL.get(0).getDormitoryid();
queryMap.put("bedchamberid", dormitoryid);
break;
}
Map<String, Object> queryMap = new HashMap<String, Object>();
queryMap.put("offset", page.getOffset());
queryMap.put("pageSize", page.getRows());
queryMap.put("name", name);
List<DormitoryVO> findList = dormitoryService.findList(queryMap);
ret.put("rows", findList);
ret.put("total", dormitoryService.getTotal(queryMap));
return ret;
}
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@ResponseBody
public AjaxJson delete(String ids) {
AjaxJson j = new AjaxJson();
if (StringUtils.isEmpty(ids)) {
j.setMsg("删除失败!");
j.setSuccess(false);
return j;
}
if (ids.contains(",")) {
ids = ids.substring(0, ids.length() - 1);
}
if (dormitoryService.delete(ids) <= 0) {
j.setMsg("宿舍删除失败,请联系管理员!");
j.setSuccess(false);
return j;
}
j.setMsg("宿舍删除成功!");
j.setSuccess(true);
return j;
}
/*
* 添加
*/
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public AjaxJson add(DormitoryVO dormitoryVO) {
AjaxJson j = new AjaxJson();
if (dormitoryVO == null) {
j.setMsg("请填写正确的用户信息!");
j.setSuccess(false);
return j;
}
if (StringUtils.isEmpty(dormitoryVO.getName())) {
j.setMsg("请填写寝室名");
j.setSuccess(false);
return j;
}
j.setMsg("保存成功!");
j.setSuccess(true);
try{
dormitoryService.add(dormitoryVO);
}catch(Exception e){
if (StringUtils.isEmpty(asset.getScrapto())) {
j.setMsg("请填写报废去向");
j.setSuccess(false);
return j;
}
asset.setRegistrationstatus(-1);
j.setMsg("保存成功!");
j.setSuccess(true);
try {
assetService.edit(asset);
} catch (Exception e) {
j.setMsg("保存失败!");
j.setSuccess(false);
}
return j;
}
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@ResponseBody
public AjaxJson delete(String ids) {
AjaxJson j = new AjaxJson();
if (StringUtils.isEmpty(ids)) {
j.setMsg("删除失败!");
j.setSuccess(false);
return j;
}
if (ids.contains(",")) {
ids = ids.substring(0, ids.length() - 1);
}
j.setMsg("删除成功!");
j.setSuccess(true);
try {
Asset asset = new Asset();
asset.setRegistrationstatus(1);
asset.setAssetid(Integer.valueOf(ids));
assetService.edit(asset);
} catch (Exception e) {
j.setMsg("删除失败!");
j.setSuccess(false);
}
return j;
}
@RequestMapping(value = "/edit", method = RequestMethod.POST)
@ResponseBody
public AjaxJson edit(Asset asset) {
AjaxJson j = new AjaxJson();
if (asset == null) {
public Map<String, String> uploadPhoto(MultipartFile photo, HttpServletRequest request) {
Map<String, String> ret = new HashMap<String, String>();
if (photo == null) {
ret.put("type", "error");
ret.put("msg", "选择要上传的文件!");
return ret;
}
if (photo.getSize() > 1024 * 1024 * 1024) {
ret.put("type", "error");
ret.put("msg", "文件大小不能超过10M!");
return ret;
}
// 获取文件后缀
String suffix = photo.getOriginalFilename().substring(photo.getOriginalFilename().lastIndexOf(".") + 1,
photo.getOriginalFilename().length());
if (!"jpg,jpeg,gif,png".toUpperCase().contains(suffix.toUpperCase())) {
ret.put("type", "error");
ret.put("msg", "请选择jpg,jpeg,gif,png格式的图片!");
return ret;
}
String savePath = request.getServletContext().getRealPath("/") + "/resources/upload/";
File savePathFile = new File(savePath);
if (!savePathFile.exists()) {
// 若不存在改目录,则创建目录
savePathFile.mkdir();
}
String filename = new Date().getTime() + "." + suffix;
try {
// 将文件保存至指定目录
photo.transferTo(new File(savePath + filename));
} catch (Exception e) {
// TODO Auto-generated catch block
ret.put("type", "error");
ret.put("msg", "保存文件异常!");
e.printStackTrace();
return ret;
}
ret.put("type", "success");
ret.put("msg", "用户删除成功!");
ret.put("filepath", request.getServletContext().getContextPath() + "/resources/upload/" + filename);
return ret;
}
/**
* 判断该用户名是否存在
*
* @param username
* @param id
* @return
*/
private boolean isExist(String username) {
TeacherEntity teacher = teacherService.findByTeachername(username);
* 老师管理控制器
*
*/
@RequestMapping("/admin/teach")
@Controller
public class TeacherController {
@Autowired
AssetService assetService;
@Autowired
private StudentService studentService;
@Autowired
private TeacherService teacherService;
@Autowired
private RoleService roleService;
@Autowired
DormitoryService dormitoryService;
/**
* 获取财产
* @param response
* @return
*/
@RequestMapping(value = "/getassetall/{bedchamberid}", method = RequestMethod.POST)
@ResponseBody
public List<Map<String, Object>> getassetall(@PathVariable(value="bedchamberid") Integer bedchamberid,HttpServletResponse response,HttpServletRequest request) {
Map<String, Object> queryMap = new HashMap<String, Object>();
//首先判断是不是学生登录
Integer myrole = (Integer) request.getSession().getAttribute("myrole");
if(myrole==4){//学生
StudentEntity stu = (StudentEntity)request.getSession().getAttribute("admin");// 获取学生
if(!StringUtils.isEmpty(String.valueOf(stu.getDormitoryId()))){
queryMap.put("bedchamberid", stu.getDormitoryId());
}else{
queryMap.put("bedchamberid",-1);//还未分配宿舍
}
}else{//不是学生登录
if(bedchamberid!=-1){
queryMap.put("bedchamberid",bedchamberid);
return ret;
}
/**
* 判断该用户名是否存在
*
* @param username
* @param id
* @return
*/
private boolean isExist(String id) {
StudentEntity findByStudentname = studentService.findByStudentname(id);
if (findByStudentname == null)
return false;
return true;
}
/**
* 批量删除用户
*
* @param ids
* @return
*/
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@ResponseBody
public Map<String, String> delete(String ids) {
Map<String, String> ret = new HashMap<String, String>();
if (StringUtils.isEmpty(ids)) {
ret.put("type", "error");
ret.put("msg", "选择要删除的数据!");
return ret;
}
if (ids.contains(",")) {
ids = ids.substring(0, ids.length() - 1);
}
if (studentService.delete(ids) <= 0) {
ret.put("type", "error");
ret.put("msg", "用户删除失败,请联系管理员!");
return ret;
}
ret.put("type", "success");
ret.put("msg", "用户删除成功!");
return ret;
}
}
ret.put("msg", "密码修改失败,请联系管理员!");
return ret;
}
ret.put("type", "success");
ret.put("msg", "密码修改成功!");
logService.add("用户名为{"+user.getUsername()+"},的用户成功修改密码!");
return ret;
}
/**
* 本系统所有的验证码均采用此方法
* @param vcodeLen
* @param width
* @param height
* @param cpachaType:用来区别验证码的类型,传入字符串
* @param request
* @param response
*/
@RequestMapping(value="/get_cpacha",method=RequestMethod.GET)
public void generateCpacha(
@RequestParam(name="vl",required=false,defaultValue="4") Integer vcodeLen,
@RequestParam(name="w",required=false,defaultValue="100") Integer width,
@RequestParam(name="h",required=false,defaultValue="30") Integer height,
@RequestParam(name="type",required=true,defaultValue="loginCpacha") String cpachaType,
HttpServletRequest request,
HttpServletResponse response){
CpachaUtil cpachaUtil = new CpachaUtil(vcodeLen, width, height);
//生成验证码
String generatorVCode = cpachaUtil.generatorVCode();
//将验证码放置Session
request.getSession().setAttribute(cpachaType, generatorVCode);
BufferedImage generatorRotateVCodeImage = cpachaUtil.generatorRotateVCodeImage(generatorVCode, true);
try {
ImageIO.write(generatorRotateVCodeImage, "gif", response.getOutputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
/**
* 后台登录拦截器
*
*/
public class LoginInterceptor implements HandlerInterceptor {
@Override
public void afterCompletion(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
// TODO Auto-generated method stub
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2, ModelAndView arg3) throws Exception {
// TODO Auto-generated method stub
}
//获取验证码
Object loginCpacha = request.getSession().getAttribute("loginCpacha");
if(loginCpacha == null){//Session没数据代表超时
ret.put("type", "error");
ret.put("msg", "会话超时,请刷新页面!");//获取验证码
return ret;
}
if(!cpacha.toUpperCase().equals(loginCpacha.toString().toUpperCase())){
ret.put("type", "error");
ret.put("msg", "验证码错误!");
logService.add("用户名为"+user.getUsername()+"的用户登录时输入验证码错误!");
return ret;
}
switch(selected){
case 1://管理员 user表
User findByUsername = userService.findByUsername(user.getUsername());//去数据库查询
if(findByUsername == null){
ret.put("type", "error");
ret.put("msg", "该用户名不存在!");
logService.add("管理员登录时,用户名为"+user.getUsername()+"的用户不存在!");
return ret;
}
if(!user.getPassword().equals(findByUsername.getPassword())){
ret.put("type", "error");
ret.put("msg", "密码错误!");
logService.add("管理员登录时,用户名为"+user.getUsername()+"的用户登录时输入密码错误!");
return ret;
}
request.getSession().setAttribute("admin", findByUsername);
request.getSession().setAttribute("myrole", 1);
break;
case 2://老师用户 teacher表
TeacherEntity findByTeachername = teacherService.findByTeachername(user.getUsername());
if(findByTeachername == null){
ret.put("type", "error");
ret.put("msg", "该用户名不存在!");
logService.add("老师登录时,用户名为"+user.getUsername()+"的用户不存在!");
return ret;
}
if(!user.getPassword().equals(findByTeachername.getPassWord())){
ret.put("type", "error");
ret.put("msg", "密码错误!");
logService.add("老师登录时,职工号为"+user.getUsername()+"的用户登录时输入密码错误!");
return ret;
}
request.getSession().setAttribute("admin", findByTeachername);
request.getSession().setAttribute("myrole", 2);
break;
case 4://学生用户 student表
StudentEntity findByStudentname = studentService.findByStudentname(user.getUsername());
if(findByStudentname == null){
*/
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@ResponseBody
public Map<String, String> delete(String ids) {
Map<String, String> ret = new HashMap<String, String>();
if (StringUtils.isEmpty(ids)) {
ret.put("type", "error");
ret.put("msg", "选择要删除的数据!");
return ret;
}
if (ids.contains(",")) {
ids = ids.substring(0, ids.length() - 1);
}
if (studentService.delete(ids) <= 0) {
ret.put("type", "error");
ret.put("msg", "用户删除失败,请联系管理员!");
return ret;
}
ret.put("type", "success");
ret.put("msg", "用户删除成功!");
return ret;
}
}
/**
* 菜单管理控制器
*
*
*/
@RequestMapping("/admin/menu")
}
/**
* 添加权限
* @param ids
* @return
*/
@RequestMapping(value="/add_authority",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> addAuthority(
@RequestParam(name="ids",required=true) String ids,
@RequestParam(name="roleId",required=true) Long roleId
){
Map<String,String> ret = new HashMap<String, String>();
if(StringUtils.isEmpty(ids)){
ret.put("type", "error");
ret.put("msg", "请选择相应的权限!");
return ret;
}
if(roleId == null){
ret.put("type", "error");
ret.put("msg", "请选择相应的角色!");
return ret;
}
if(ids.contains(",")){
ids = ids.substring(0,ids.length()-1);
}
String[] idArr = ids.split(",");
if(idArr.length > 0){
authorityService.deleteByRoleId(roleId);
}
for(String id:idArr){
Authority authority = new Authority();
authority.setMenuId(Long.valueOf(id));
authority.setRoleId(roleId);
authorityService.add(authority);
}
ret.put("type", "success");
ret.put("msg", "权限编辑成功!");
return ret;
}
/**
* 获取某个角色的所有权限
* @param roleId
* @return








更多推荐


所有评论(0)