大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。
💞当前专栏:Java毕业设计
精彩专栏推荐👇🏻👇🏻👇🏻
开发运行环境
- 框架:ssm
- JDK版本:JDK1.8
- 服务器:tomcat7
- 数据库:mysql 5.7
- 数据库工具:Navicat12
- 开发软件:eclipse/myeclipse/idea
- Maven包:Maven3.3.9
- 浏览器:谷歌浏览器
源码下载地址:
https://download.csdn.net/download/m0_46388260/89082757
论文目录
【如需全文请按文末获取联系】
目录
一、项目简介
本安徽新华学院实验中心管理系统主要满足3种类型用户的需求,这3种类型用户分别为学生、老师和管理员,他们分别实现的功能如下。
(1)管理员功能模块:管理员是这3类用户中权限最高的,可对系统进行全面管理,管理员登录后主要实现的功能模块包括个人中心、学生管理、老师管理、课程管理、仪器管理、专业管理、留言管理以及公告管理,管理员实现了对系统信息的查询、添加、修改和删除的功能。
(2)学生功能模块:学生登录后主要功能模块包括个人中心、学生管理、课程管理、仪器管理、专业管理、留言管理以及公告管理,学生只能查询,无权增删改。
(3)老师功能模块:老师登录后主要功能模块包括个人中心、学生管理、老师管理、课程管理、仪器管理、专业管理、留言管理以及公告管理。
二、系统设计
2.1软件功能模块设计
管理系统的结构图如图4-2所示。
2.2数据库设计
(1)管理员信息实体E- R图,如图4-5所示:
(2)老师信息实体E- R图,如图4-6所示:
(3)学生实体E- R图,如图4-7所示:
(4)仪器实体E- R图,如图4-8所示:
三、系统项目部分截图
3.1登录模块的实现
用户要想进入本系统必须进行登录操作,在登录界面输入正确的用户名、密码和选择登录类型,点击登录按钮进行登录系统,系统登录界面展示如图5-1所示。
3.2学生管理模块的实现
管理员登录后可查看、添加和删除学生信息,老师可查看学生信息,学生可修改个人信息,学生管理界面展示如图5-2所示,添加学生信息界面展示如图5-3所示。
3.3老师管理模块的实现
管理员可增删改查老师信息,老师可修改个人信息,老师管理界面展示如图5-4所示。
3.4仪器管理模块的实现
管理员可增删改查仪器信息,学生和老师可查看仪器信息,仪器管理界面展示如图5-7所示。
四、部分核心代码
package com.controller;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import com.annotation.IgnoreAuth;
import com.service.TokenService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.XueshengxinxiEntity;
import com.service.XueshengxinxiService;
import com.utils.PageUtils;
import com.utils.R;
/**
*
* 后端接口
* @author
* @email
* @date 2021-02-22
*/
@RestController
@Controller
@RequestMapping("/xueshengxinxi")
public class XueshengxinxiController {
private static final Logger logger = LoggerFactory.getLogger(XueshengxinxiController.class);
@Autowired
private XueshengxinxiService xueshengxinxiService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String role, HttpServletRequest request) {
XueshengxinxiEntity user = xueshengxinxiService.selectOne(new EntityWrapper<XueshengxinxiEntity>().eq("account", username));
if(user != null){
if(!user.getRole().equals(role)){
return R.error("权限不正常");
}
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),user.getName(), "users", user.getRole());
return R.ok().put("token", token);
}else{
return R.error("账号或密码或权限不对");
}
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody XueshengxinxiEntity user){
if(xueshengxinxiService.selectOne(new EntityWrapper<XueshengxinxiEntity>().eq("account", user.getAccount())) !=null) {
return R.error("学生已存在");
}
user.setRole("学生");
xueshengxinxiService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
XueshengxinxiEntity user = xueshengxinxiService.selectOne(new EntityWrapper<XueshengxinxiEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
xueshengxinxiService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Integer id = (Integer)request.getSession().getAttribute("userId");
XueshengxinxiEntity user = xueshengxinxiService.selectById(id);
return R.ok().put("data", user);
}
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("Controller:"+this.getClass().getName()+",page方法");
Object role = request.getSession().getAttribute("role");
PageUtils page = null;
if(role.equals("学生")){
params.put("yh",request.getSession().getAttribute("userId"));
page = xueshengxinxiService.queryPage(params);
}else{
page = xueshengxinxiService.queryPage(params);
}
return R.ok().put("data", page);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
logger.debug("Controller:"+this.getClass().getName()+",info方法");
XueshengxinxiEntity xueshengxinxi = xueshengxinxiService.selectById(id);
if(xueshengxinxi!=null){
return R.ok().put("data", xueshengxinxi);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@IgnoreAuth
@RequestMapping("/save")
public R save(@RequestBody XueshengxinxiEntity xueshengxinxi, HttpServletRequest request){
logger.debug("Controller:"+this.getClass().getName()+",save");
Wrapper<XueshengxinxiEntity> queryWrapper = new EntityWrapper<XueshengxinxiEntity>()
.eq("name", xueshengxinxi.getName())
.eq("account", xueshengxinxi.getAccount())
.eq("password", xueshengxinxi.getPassword())
.eq("sex_types", xueshengxinxi.getSexTypes())
.eq("role", xueshengxinxi.getRole())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
XueshengxinxiEntity xueshengxinxiEntity = xueshengxinxiService.selectOne(queryWrapper);
if("".equals(xueshengxinxi.getImgPhoto()) || "null".equals(xueshengxinxi.getImgPhoto())){
xueshengxinxi.setImgPhoto(null);
}
xueshengxinxi.setRole("学生");
if(xueshengxinxiEntity==null){
xueshengxinxiService.insert(xueshengxinxi);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody XueshengxinxiEntity xueshengxinxi, HttpServletRequest request){
logger.debug("Controller:"+this.getClass().getName()+",update");
//根据字段查询是否有相同数据
Wrapper<XueshengxinxiEntity> queryWrapper = new EntityWrapper<XueshengxinxiEntity>()
.notIn("id",xueshengxinxi.getId())
.eq("name", xueshengxinxi.getName())
.eq("account", xueshengxinxi.getAccount())
.eq("password", xueshengxinxi.getPassword())
.eq("sex_types", xueshengxinxi.getSexTypes())
.eq("role", xueshengxinxi.getRole())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
XueshengxinxiEntity xueshengxinxiEntity = xueshengxinxiService.selectOne(queryWrapper);
if("".equals(xueshengxinxi.getImgPhoto()) || "null".equals(xueshengxinxi.getImgPhoto())){
xueshengxinxi.setImgPhoto(null);
}
if(xueshengxinxiEntity==null){
xueshengxinxiService.updateById(xueshengxinxi);//根据id更新
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
logger.debug("Controller:"+this.getClass().getName()+",delete");
xueshengxinxiService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
获取源码或论文
如需对应的论文或源码,以及其他定制需求,也可以下方微信联系我。