开发工具:IDEA
服务器:Tomcat8.0, jdk1.8
项目构建:maven
数据库:mysql5.7
系统分前后台,非前后端分离
前端技术:vue.js+elementUI等框架实现
服务端技术:spring+springmvc+mybatis(ssm框架)
系统主要分学生和管理员,两个角色
系统的功能有:登录、注册、修改密码、退出登录,个人中心、学生管理、房间信息管理、来访信息管理、物品报修管理、维修进程管理、公告信息管理




学生截图:

管理员截图:

- package com.controller;
-
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Calendar;
- import java.util.Map;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.Date;
- import java.util.List;
- import javax.servlet.http.HttpServletRequest;
-
- import com.utils.ValidatorUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.format.annotation.DateTimeFormat;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- import com.baomidou.mybatisplus.mapper.EntityWrapper;
- import com.baomidou.mybatisplus.mapper.Wrapper;
- import com.annotation.IgnoreAuth;
-
- import com.entity.FangjianxinxiEntity;
- import com.entity.view.FangjianxinxiView;
-
- import com.service.FangjianxinxiService;
- import com.service.TokenService;
- import com.utils.PageUtils;
- import com.utils.R;
- import com.utils.MD5Util;
- import com.utils.MPUtil;
- import com.utils.CommonUtil;
-
-
- /**
- * 房间信息
- * 后端接口
- * @author
- * @email
- * @date 2021-04-20 17:25:51
- */
- @RestController
- @RequestMapping("/fangjianxinxi")
- public class FangjianxinxiController {
- @Autowired
- private FangjianxinxiService fangjianxinxiService;
-
-
-
- /**
- * 后端列表
- */
- @RequestMapping("/page")
- public R page(@RequestParam Map
params,FangjianxinxiEntity fangjianxinxi, - HttpServletRequest request){
-
- EntityWrapper
ew = new EntityWrapper(); - PageUtils page = fangjianxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangjianxinxi), params), params));
- return R.ok().put("data", page);
- }
-
- /**
- * 前端列表
- */
- @RequestMapping("/list")
- public R list(@RequestParam Map
params,FangjianxinxiEntity fangjianxinxi, HttpServletRequest request) { - EntityWrapper
ew = new EntityWrapper(); - PageUtils page = fangjianxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangjianxinxi), params), params));
- return R.ok().put("data", page);
- }
-
- /**
- * 列表
- */
- @RequestMapping("/lists")
- public R list( FangjianxinxiEntity fangjianxinxi){
- EntityWrapper
ew = new EntityWrapper(); - ew.allEq(MPUtil.allEQMapPre( fangjianxinxi, "fangjianxinxi"));
- return R.ok().put("data", fangjianxinxiService.selectListView(ew));
- }
-
- /**
- * 查询
- */
- @RequestMapping("/query")
- public R query(FangjianxinxiEntity fangjianxinxi){
- EntityWrapper< FangjianxinxiEntity> ew = new EntityWrapper< FangjianxinxiEntity>();
- ew.allEq(MPUtil.allEQMapPre( fangjianxinxi, "fangjianxinxi"));
- FangjianxinxiView fangjianxinxiView = fangjianxinxiService.selectView(ew);
- return R.ok("查询房间信息成功").put("data", fangjianxinxiView);
- }
-
- /**
- * 后端详情
- */
- @RequestMapping("/info/{id}")
- public R info(@PathVariable("id") Long id){
- FangjianxinxiEntity fangjianxinxi = fangjianxinxiService.selectById(id);
- return R.ok().put("data", fangjianxinxi);
- }
-
- /**
- * 前端详情
- */
- @RequestMapping("/detail/{id}")
- public R detail(@PathVariable("id") Long id){
- FangjianxinxiEntity fangjianxinxi = fangjianxinxiService.selectById(id);
- return R.ok().put("data", fangjianxinxi);
- }
-
-
-
-
- /**
- * 后端保存
- */
- @RequestMapping("/save")
- public R save(@RequestBody FangjianxinxiEntity fangjianxinxi, HttpServletRequest request){
- fangjianxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
- //ValidatorUtils.validateEntity(fangjianxinxi);
-
- fangjianxinxiService.insert(fangjianxinxi);
- return R.ok();
- }
-
- /**
- * 前端保存
- */
- @RequestMapping("/add")
- public R add(@RequestBody FangjianxinxiEntity fangjianxinxi, HttpServletRequest request){
- fangjianxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
- //ValidatorUtils.validateEntity(fangjianxinxi);
-
- fangjianxinxiService.insert(fangjianxinxi);
- return R.ok();
- }
-
- /**
- * 修改
- */
- @RequestMapping("/update")
- public R update(@RequestBody FangjianxinxiEntity fangjianxinxi, HttpServletRequest request){
- //ValidatorUtils.validateEntity(fangjianxinxi);
- fangjianxinxiService.updateById(fangjianxinxi);//全部更新
- return R.ok();
- }
-
-
- /**
- * 删除
- */
- @RequestMapping("/delete")
- public R delete(@RequestBody Long[] ids){
- fangjianxinxiService.deleteBatchIds(Arrays.asList(ids));
- return R.ok();
- }
-
- /**
- * 提醒接口
- */
- @RequestMapping("/remind/{columnName}/{type}")
- public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
- @PathVariable("type") String type,@RequestParam Map
map) { - map.put("column", columnName);
- map.put("type", type);
-
- if(type.equals("2")) {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- Calendar c = Calendar.getInstance();
- Date remindStartDate = null;
- Date remindEndDate = null;
- if(map.get("remindstart")!=null) {
- Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
- c.setTime(new Date());
- c.add(Calendar.DAY_OF_MONTH,remindStart);
- remindStartDate = c.getTime();
- map.put("remindstart", sdf.format(remindStartDate));
- }
- if(map.get("remindend")!=null) {
- Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
- c.setTime(new Date());
- c.add(Calendar.DAY_OF_MONTH,remindEnd);
- remindEndDate = c.getTime();
- map.put("remindend", sdf.format(remindEndDate));
- }
- }
-
- Wrapper
wrapper = new EntityWrapper(); - if(map.get("remindstart")!=null) {
- wrapper.ge(columnName, map.get("remindstart"));
- }
- if(map.get("remindend")!=null) {
- wrapper.le(columnName, map.get("remindend"));
- }
-
-
- int count = fangjianxinxiService.selectCount(wrapper);
- return R.ok().put("count", count);
- }
-
-
-
- }
package com.controller; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util.Map; import java.util.HashMap; import java.util.Iterator; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletRequest; import com.utils.ValidatorUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.annotation.IgnoreAuth; import com.entity.GonggaoxinxiEntity; import com.entity.view.GonggaoxinxiView; import com.service.GonggaoxinxiService; import com.service.TokenService; import com.utils.PageUtils; import com.utils.R; import com.utils.MD5Util; import com.utils.MPUtil; import com.utils.CommonUtil; /** * 公告信息 * 后端接口 * @author * @email * @date 2021-04-20 17:25:51 */ @RestController @RequestMapping("/gonggaoxinxi") public class GonggaoxinxiController { @Autowired private GonggaoxinxiService gonggaoxinxiService; /** * 后端列表 */ @RequestMapping("/page") public R page(@RequestParam Mapparams,GonggaoxinxiEntity gonggaoxinxi, HttpServletRequest request){ EntityWrapper ew = new EntityWrapper (); PageUtils page = gonggaoxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, gonggaoxinxi), params), params)); return R.ok().put("data", page); } /** * 前端列表 */ @RequestMapping("/list") public R list(@RequestParam Map params,GonggaoxinxiEntity gonggaoxinxi, HttpServletRequest request){ EntityWrapper ew = new EntityWrapper (); PageUtils page = gonggaoxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, gonggaoxinxi), params), params)); return R.ok().put("data", page); } /** * 列表 */ @RequestMapping("/lists") public R list( GonggaoxinxiEntity gonggaoxinxi){ EntityWrapper ew = new EntityWrapper (); ew.allEq(MPUtil.allEQMapPre( gonggaoxinxi, "gonggaoxinxi")); return R.ok().put("data", gonggaoxinxiService.selectListView(ew)); } /** * 查询 */ @RequestMapping("/query") public R query(GonggaoxinxiEntity gonggaoxinxi){ EntityWrapper< GonggaoxinxiEntity> ew = new EntityWrapper< GonggaoxinxiEntity>(); ew.allEq(MPUtil.allEQMapPre( gonggaoxinxi, "gonggaoxinxi")); GonggaoxinxiView gonggaoxinxiView = gonggaoxinxiService.selectView(ew); return R.ok("查询公告信息成功").put("data", gonggaoxinxiView); } /** * 后端详情 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ GonggaoxinxiEntity gonggaoxinxi = gonggaoxinxiService.selectById(id); return R.ok().put("data", gonggaoxinxi); } /** * 前端详情 */ @RequestMapping("/detail/{id}") public R detail(@PathVariable("id") Long id){ GonggaoxinxiEntity gonggaoxinxi = gonggaoxinxiService.selectById(id); return R.ok().put("data", gonggaoxinxi); } /** * 后端保存 */ @RequestMapping("/save") public R save(@RequestBody GonggaoxinxiEntity gonggaoxinxi, HttpServletRequest request){ gonggaoxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(gonggaoxinxi); gonggaoxinxiService.insert(gonggaoxinxi); return R.ok(); } /** * 前端保存 */ @RequestMapping("/add") public R add(@RequestBody GonggaoxinxiEntity gonggaoxinxi, HttpServletRequest request){ gonggaoxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(gonggaoxinxi); gonggaoxinxiService.insert(gonggaoxinxi); return R.ok(); } /** * 修改 */ @RequestMapping("/update") public R update(@RequestBody GonggaoxinxiEntity gonggaoxinxi, HttpServletRequest request){ //ValidatorUtils.validateEntity(gonggaoxinxi); gonggaoxinxiService.updateById(gonggaoxinxi);//全部更新 return R.ok(); } /** * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ gonggaoxinxiService.deleteBatchIds(Arrays.asList(ids)); return R.ok(); } /** * 提醒接口 */ @RequestMapping("/remind/{columnName}/{type}") public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map map) { map.put("column", columnName); map.put("type", type); if(type.equals("2")) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); Date remindStartDate = null; Date remindEndDate = null; if(map.get("remindstart")!=null) { Integer remindStart = Integer.parseInt(map.get("remindstart").toString()); c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart); remindStartDate = c.getTime(); map.put("remindstart", sdf.format(remindStartDate)); } if(map.get("remindend")!=null) { Integer remindEnd = Integer.parseInt(map.get("remindend").toString()); c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindEnd); remindEndDate = c.getTime(); map.put("remindend", sdf.format(remindEndDate)); } } Wrapper wrapper = new EntityWrapper (); if(map.get("remindstart")!=null) { wrapper.ge(columnName, map.get("remindstart")); } if(map.get("remindend")!=null) { wrapper.le(columnName, map.get("remindend")); } int count = gonggaoxinxiService.selectCount(wrapper); return R.ok().put("count", count); } }