基于javaweb+SpringBoot+JPA图书馆座位占座预约管理系统(管理员、老师、学生)
开发工具:eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
}
//检查一切符合,可以登录,将用户信息存放至session
request.getSession().setAttribute(SessionConstant.SESSION_USER_LOGIN_KEY, findByUsername);
//销毁session中的验证码
request.getSession().setAttribute("admin_login", null);
//将登陆记录写入日志库
operaterLogService.add("用户【" + user.getUsername() + "】于【" + StringUtil.getFormatterDate(new Date(), "yyyy-MM-dd HH:mm:ss") + "】登录系统!");
log.info("用户成功登录,user = " + findByUsername);
return Result.success(true);
}
/**
* 登录成功后的系统主页
*
* @param model
* @return
*/
@RequestMapping(value = "/index")
public String index(Model model) {
model.addAttribute("operatorLogs", operaterLogService.findLastestLog(10));
model.addAttribute("userTotal", userService.total());
model.addAttribute("operatorLogTotal", operaterLogService.total());
model.addAttribute("databaseBackupTotal", 0);
model.addAttribute("onlineUserTotal", SessionListener.onlineUserCount);
model.addAttribute("showTipsText", "");
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.*;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Optional;
@Service
public class StudentService {
@Autowired
private StudentDao studentDao;
@Autowired
private UserService userService;
@Autowired
private RoleService roleService;
if(clazz.getId() == null || clazz.getId().longValue() <= 0){
return Result.error(CodeMsg.ADMIN_CLAZZ_NOEXIST);
}
if(clazzService.isExistClaName(clazz.getClaname(), clazz.getId())){
return Result.error(CodeMsg.ADMIN_CLAZZNAME_EXIST);
}
//到这说明一切符合条件,进行数据库保存
Clazz clazzs = clazzService.find(clazz.getId());
//讲提交的班级信息指定字段复制到已存在的clbzz对象中,该方法会覆盖新字段内容
BeanUtils.copyProperties(clazz, clazzs, "id","createTime","updateTime");
if(clazzService.save(clazzs) == null){
return Result.error(CodeMsg.ADMIN_USE_EDIT_ERROR);
}
g.dispose();
return vcodeImage;
}
/**
* 获得旋转字体的验证码图片
* @param vcode
* @param drawline 是否画干扰线
* @return
*/
public BufferedImage generatorRotateVCodeImage(String vcode, boolean drawline){
//创建验证码图片
BufferedImage rotateVcodeImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = rotateVcodeImage.createGraphics();
//填充背景色
g2d.setColor(new Color(246, 240, 250));
g2d.fillRect(0, 0, width, height);
if(drawline){
drawDisturbLine(g2d);
}
//在图片上画验证码
seatDTO.setReadingRoom(o);
seatDTO.setCreateTime(!seats.isEmpty() ? seats.get(0).getCreateTime() : null);//前端要判断 若为空则显示座位还没创建
return seatDTO;
}).collect(Collectors.toList());
pageBean.setContent(dtos);
pageBean.setTotal(findAll.getTotalElements());
pageBean.setTotalPage(findAll.getTotalPages());
return pageBean;
}
public List<Seat> findByReadingRoomId(Long readRoomId) {
return seatDao.findByReadingRoomId(readRoomId);
}
/**
* list存储座位
*
* @param seats
}
/**
* 跳转选座页面
* @param model
* @param date
* @param timeCode
* @param id
* @return
*/
@RequestMapping(value = "/choose", method = RequestMethod.GET)
public String choose(Model model,
@RequestParam(name = "date",required = true) Long date,
@RequestParam(name = "timeCode",required = true) int timeCode,
@RequestParam(name="id",required=true)Long id) {
if (Objects.isNull(date)) {
return "error/500";
}
if (Objects.isNull(timeCode)) {
return "error/500";
}
model.addAttribute("title", "选座管理");
public class SeatService {
@Autowired
private SeatDao seatDao;
@Autowired
private ReadRoomDao readRoomDao;
@Autowired
private SeatOrderDao seatOrderDao;
/**
* 根据座位id查询
*
* @param id
) {
User loginedUser = SessionUtil.getLoginedUser();
if (!loginedUser.getPassword().equals(oldPwd)) {
return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_ERROR);
}
if (StringUtils.isEmpty(newPwd)) {
return Result.error(CodeMsg.ADMIN_USER_UPDATE_PWD_EMPTY);
}
loginedUser.setPassword(newPwd);
//保存数据库
userService.save(loginedUser);
//更新session
SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, loginedUser);
return Result.success(true);
}
/**
*/
@RequestMapping(value = "/no_right")
public String noRight() {
return "admin/system/no_right";
}
/**
* 修改用户个人信息
*
* @return
*/
@RequestMapping(value = "/update_userinfo", method = RequestMethod.GET)
public String updateUserInfo() {
return "admin/system/update_userinfo";
}
public CpachaUtil(){}
/**
* 指定验证码长度
* @param vcodeLen 验证码长度
*/
public CpachaUtil(int vcodeLen) {
this.vcodeLen = vcodeLen;
this.width = (fontsize+1)*vcodeLen+10;
}
public CpachaUtil(int vcodeLen,int fontSize) {
this.vcodeLen = vcodeLen;
this.fontsize = fontSize;
this.width = (fontsize+1)*vcodeLen+10;
}
/**
* 班级编辑页面
* @param model
* @return
*/
@RequestMapping(value="/edit")
public String edit(Model model,@RequestParam(name="id",required=true)Long id){
model.addAttribute("teachers",teacherService.findAll());
model.addAttribute("clazz",clazzService.find(id));
return "admin/clbum/edit";
}
/**
* 编辑班级信息表单提交处理
* @param clazz
* @return
*/
@RequestMapping(value="/edit",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> edit(Clazz clazz){
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
技术框架
JSP JavaScript SpringBoot SpringDataJPA FreeMarker MySQL
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
管理员:学生管理、教师管理、阅览室类型管理、阅览室管理(座位生成等)、学生信用积分管理、座位预约统计管理等。
学生:登录、修改个人信息、阅览室查看、选座信息查看、选座、取消选座等。
教师:登录、阅览室管理、学生信用管理:可根据学生表现进行扣分、奖励等,扣分达到设定的值则无法进行选座。