ssm实验中心管理系统的设计与实现040
开发工具:idea
数据库mysql5.7+
数据库链接工具:navcat,小海豚等
技术:ssm
研究目的与意义:
随着高校硬件水平的提高和教学改革的深入,实验教学所占的地位越来越重要,实验室管理工作水平高低,已经成为了高校管理能力,管理质量和科研评价的一个重要的方式,在以往的实验室教学中,通常需要很多人员对实验室进行有效的维护。实验当中所使用的场所和仪器设备水平等都存在着一定的落后现象,这样一来对实验教学的资源配置和时间分配的优化就起到了很大的阻碍作用,在这样的情况下,信息化管理是当前高校实验室管理当中非常关键的一个环节,同时他也成为了联系实验室各种管理工作的一道桥梁。
实验室管理目标的达成,一方面要依靠先进的管理思想,同时也需要有一个相对科学的方法作为支撑。在高校建设的过程中,建立实验室管理系统已经成为了一个首选,在这一过程中,建立起实验教学和管理的计算机信息系统,可以十分有效的实现信息化管理,这样一来可以很好地提高工作的效率和质量,同时还能减少成本的投入。所以实验中心管理系统很好的满足了现如今高校的需求。
国内外研究现状:
近几年,国内高校发展和改革的步伐日趋加快,办学规模的不断扩大,实验室建设的投入逐年增加。面对规模庞大、事务繁杂的实验室管理工作,许多管理上的问题也逐渐暴露出来。传统的实验室管理大多通过人工进行,易造成实验室使用混乱、实验设备安排不当等诸多问题,既降低了实验室的使用效率,又耗费了人力物力。 因此,人们越来越意识到对实验室进行现代化管理非常重要。现在许多高校经过长期的探索与研究,已经完成了实验室管理系统的现代化建设,研发了基于计算机网络技术的实验室管理系统,实现了实验室管理的网络化。
随着现代科学技术的迅猛发展,计算机技术已经渗透到各个领域,计算机成为各行各业必不可少的工具。运用计算机技术,特别是现代网络技术,对高校实验室实行现代化管理势在必行。 实验室管理系统是基于网络环境的,只需要通过互联网,就可以实现教师信息管理、实验室信息管理、预约管理、设备管理等功能,为老师和学生们更加合理的安排实验时间,提供实验设备的使用,实现实验室管理的科学化,提高实验室的使用效率。
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 2023-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().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().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().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 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 queryWrapper = new EntityWrapper()
.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 queryWrapper = new EntityWrapper()
.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();
}
}