0
点赞
收藏
分享

微信扫一扫

基于javaweb+SpringBoot+JPA图书馆座位占座预约管理系统(管理员、老师、学生)

皮皮球场 2022-04-21 阅读 36
javamysql

基于javaweb+SpringBoot+JPA图书馆座位占座预约管理系统(管理员、老师、学生)

开发工具:eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

     * @param user
     * @return
     */
    @RequestMapping(value = "/update_userinfo", method = RequestMethod.POST)
    @ResponseBody
    public Result updateUserInfo(User user, Model model) {

        User loginedUser = SessionUtil.getLoginedUser();
        loginedUser.setEmail(user.getEmail());
        loginedUser.setNickName(user.getNickName());
        loginedUser.setMobile(user.getMobile());
        loginedUser.setHeadPic(user.getHeadPic());
        //首先保存到数据库
        User save = userService.save(loginedUser);
        //更新session里的值
        SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, loginedUser);
        return Result.success(save);
    }

    /**
     * 修改密码页面
     *
        Seat seat = seatService.find(seatId);
        Integer readingRoomIntegral = seat.getReadingRoom().getReadingType().getIntegral();

        if (student.getStudentCredits() < readingRoomIntegral) {// 判断学生的积分是否符合
            return Result.error(CodeMsg.ADMIN_SEAT_STUDENT_INTEGRAL_ERROR);
        }


        long currentDay = DateUtil.day(new Date()).getTime();//当天的时间戳

        long day = DateUtil.day(DateUtil.millisecondToDate(date)).getTime(); //获取预约时间当天的时间戳

        if (day < currentDay) { //传过来的预约时间小于当前时间
            return Result.error(CodeMsg.ADMIN_SEAT_ORDER_DATE_ERROR);
        }

        int pm = DateUtil.isPM(); //判断当前时间是否为下午,0为上午 1为下午

        if (day == currentDay) {
    /**
     * 无权限提示页面
     *
     * @return
     */
    @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";
    }

    /**
     * 修改个人信息保存
     *
     * @param user
     * @return
    /**
     * 登录成功后的系统主页
     *
     * @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", "");
        model.addAttribute("showTipsUrlText", "");
        model.addAttribute("showTipsUtl", "");
        model.addAttribute("showTipsBtnText", "");
        return "admin/system/index";
         * 使用jpa自带的方法
         *         studentDao.getOne();当我查询一个不存在的id数据时,直接抛出异常,因为它返回的是一个引用,简单点说就是一个代理对象
         *         studentDao.findOne() 当我查询一个不存在的id数据时,返回的值是null.
         *         studentDao.findById(id) ; .findById(id).get()使用时,如果数据库中查询无符合条件的记录便会抛出异常
         */

        Optional<Student> byId = studentDao.findById(id);

        return byId.isPresent() ? byId.get() : null;
    }

    public List<Student> findAll() {
        return studentDao.findAll();
    }

    /**
     * 删除一个学生删除的时候需要先查出来相对的用户的id
	/**
	 * @return 角度
	 */
	private double getTheta(){
		return ((int) (Math.random()*1000) % 2 == 0 ? -1 : 1)*Math.random();
	}

	/**
	 * @return 验证码字符个数
	 */
	public int getVcodeLen() {
		return vcodeLen;
	}
	/**
	 * 设置验证码字符个数
	 * @param vcodeLen
	 */
	public void setVcodeLen(int vcodeLen) {
		this.width = (fontsize+3)*vcodeLen+10;
		this.vcodeLen = vcodeLen;
	}
	/**
	 * @return 字体大小
			g.drawString(vcode.charAt(i)+"", i*fontsize+10, fontsize+5);
		}
		//释放此图形的上下文以及它使用的所有系统资源
		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));
		model.addAttribute("menu",menuService.find(id));
		return "admin/menu/edit";
	}
	
	/**
	 * 菜单编辑页面表单提交处理
	 * @param
	 * @param menu
	 * @return
	 */
	@RequestMapping(value="/edit",method=RequestMethod.POST)
	@ResponseBody
	public Result<Boolean> edit(Menu menu){
		if(menu == null){
			Result.error(CodeMsg.DATA_ERROR);
		}
		if(menu.getId() == null){
			Result.error(CodeMsg.ADMIN_MENU_ID_EMPTY);
		}
		//用统一验证实体方法验证是否合法
    }

    /**
     * 日志管理列表
     *
     * @param model
     * @param operaterLog
     * @param pageBean
     * @return
     */
    @RequestMapping(value = "/operator_log_list")
    public String operatorLogList(Model model, OperaterLog operaterLog, PageBean<OperaterLog> pageBean) {
        model.addAttribute("pageBean", operaterLogService.findList(operaterLog, pageBean));
        model.addAttribute("operator", operaterLog.getOperator());
        model.addAttribute("title", "日志列表");
        return "admin/system/operator_log_list";
    }

    /**
     * 删除操作日志,可删除多个
     *
     * @param ids
     * @return
     */
    @RequestMapping(value = "/delete_operator_log", method = RequestMethod.POST)
    @ResponseBody
    public Result<Boolean> delete(String ids) {

	//后台班级管理类错误码

	public static CodeMsg ADMIN_ClAZZ_EMPTY = new CodeMsg(-9000, "教师填写错误,请重新填写!");
	public static final CodeMsg ADMIN_ClAZZNAME_EXIST =new CodeMsg (-9001, "该班级名已经存在,请换一个试试!");
	public static CodeMsg ADMIN_ClAZZ_ADD_ERROR = new CodeMsg(-9002, "班级添加失败,请联系管理员!");
	public static final CodeMsg ADMIN_CLAZZ_NOEXIST =new CodeMsg(-9003, "班级不存在!") ;
	public static final CodeMsg ADMIN_CLAZZNAME_EXIST =new CodeMsg(-9004, "该班级名已存在,请联系管理员!") ;
	public static final CodeMsg ADMIN_CLAZZ_TEACHER_EMPTY =new CodeMsg(-9005, "教师信息错误,请重新编辑!") ;

	//学生扣分日志管理
	public static final CodeMsg ADMIN_LOFINTEGRAL_CREDITS =new CodeMsg(-9005, "该学生没有那么多分数!") ;
}
package com.demo.common.util;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.util.Random;


运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

技术框架

JSP JavaScript SpringBoot SpringDataJPA FreeMarker MySQL

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

管理员:学生管理、教师管理、阅览室类型管理、阅览室管理(座位生成等)、学生信用积分管理、座位预约统计管理等。

学生:登录、修改个人信息、阅览室查看、选座信息查看、选座、取消选座等。

教师:登录、阅览室管理、学生信用管理:可根据学生表现进行扣分、奖励等,扣分达到设定的值则无法进行选座。

20220319105420

20220319105511

20220319105644

20220319105659

20220319105912

20220226154222

20220226154225

20220226154240

20220226154243

20220226154245

20220226154248

20220226154251

20220226154254

20220226154257

20220226154259

20220226154301

20220226154304

20220226154308

20220226154311

20220226154314

20220226154317


举报

相关推荐

0 条评论