Java毕业设计-基于SSM框架的学院实验中心管理系统项目实战(附源码+文档)

大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。

💞当前专栏:Java毕业设计

精彩专栏推荐👇🏻👇🏻👇🏻

🎀 Python毕业设计
🌎微信小程序毕业设计

开发运行环境

  • 框架: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();
    }
}


获取源码或论文

如需对应的论文或源码,以及其他定制需求,也可以下方微信联系我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值