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

基于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

适用

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

功能说明

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

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

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

20220319105420

20220319105511

20220319105644

20220319105659

20220319105912

20220226154222

20220226154225

20220226154240

20220226154243

20220226154245

20220226154248

20220226154251

20220226154254

20220226154257

20220226154259

20220226154301

20220226154304

20220226154308

20220226154311

20220226154314

20220226154317


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值