博主主页:猫头鹰源码

博主简介:Java领域优质创作者、博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

项目介绍: 

本系统2022年5月创作完成,该系统包含小程序端和管理端,系统小程序端采用uniapp+uview实现,小程序接口和管理端采用ssm开发,使用mysql数据库。

项目功能:

后端:用Java写 ssm+mysql
项目需求:设计一套智能二维码教室预约系统。系统主要用于展示校内实验室空闲及使用情况,学生可以对空闲实验室提出使用申请,申请经管理员审核通过后,该同学的的像程序会生成一个二维码

主要功能:

学生:登录:使用微信登陆小程序后绑定自己的姓名及学号
          申请:绑定信息成功后可以查看各个实验室的使用情况,并且对空闲实验室提出使用申请
          二维码生成:申请经管理员审核通过后,该学生的小程序会生成一个二维码
		注册,个人信息维护

管理员:登录
             登录成功后,可以查看各个实验室的空闲情况以及对学生提出的实验室试用申请进行审核
        学生管理,实验室管理,申请管理

然后管理员还可以管理教室内设备开关(例如教学主机 灯管 空调)
再加一个报损功能(还有桌椅或者设备有没有损坏的情况学生可以报修)

数据库表结构文档: 

基于uniapp的教室预约小程序_小程序

系统包含技术:

管理端:ssm、layui
小程序端:uniapp、uview、js、css等
开发工具:idea/hbuilder
数据库:mysql 5.7
JDK版本:jdk1.8

部分截图说明:

小程序登录

基于uniapp的教室预约小程序_uni-app_02

小程序首页

基于uniapp的教室预约小程序_java_03

 小程序教室详情

基于uniapp的教室预约小程序_小程序_04

 小程序填写活动

基于uniapp的教室预约小程序_mybatis_05

 小程序个人中心

基于uniapp的教室预约小程序_小程序_06

 小程序我的预订

基于uniapp的教室预约小程序_java_07

 小程序我的报修

基于uniapp的教室预约小程序_java_08

后台-登录

基于uniapp的教室预约小程序_mybatis_09

 后台-首页

基于uniapp的教室预约小程序_javaweb_10

 后台-教室管理

基于uniapp的教室预约小程序_小程序_11

 后台-申请管理

基于uniapp的教室预约小程序_uni-app_12

 后台-报损管理

基于uniapp的教室预约小程序_java_13

部分代码:

申请操作

/**
     * 分页查询
     * pageIndex 当前页码
     * pageSize  显示条数
     */
    @RequestMapping(value = "/findApply")
    public String findApply(Integer pageIndex, Integer pageSize, Model model,HttpServletRequest request) {
        HttpSession session = request.getSession();
        if(session.getAttribute("ad") == null){
            session.setAttribute("msg", "对不起,请登录!");
            return "login";
        }
        Map mp = new HashMap();
        PageInfo<Apply> pageList = applyService.findPageInfo(pageIndex,pageSize,mp);
        model.addAttribute("pageList",pageList);
        return "ApplyList";
    }


    /**
     * 审批
     */
    @RequestMapping( "/shenpi")
    @ResponseBody
    public String shenpi(String id,String status,HttpServletRequest request) {
        HttpSession session = request.getSession();
        if(session.getAttribute("ad") == null){
            session.setAttribute("msg", "对不起,请登录!");
            return "login";
        }
        Apply apply = new Apply();
        apply.setId(id);
        apply.setStatus(status);
        Apply applyById = applyService.findApplyById(id);
        Labinfo labinfo = new Labinfo();
        if(status.equals("02")){
            try {
                SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");
                String filename = sf.format(new Date());
                String path = uploadDir+filename+".png";
                generateQRCodeImage("This is my first QR Code", 350, 350, path);
                apply.setQcode("http://localhost:"+port+"/upload/"+filename+".png");
            } catch (WriterException e) {
                System.out.println("Could not generate QR Code, WriterException :: " + e.getMessage());
            } catch (IOException e) {
                System.out.println("Could not generate QR Code, IOException :: " + e.getMessage());
            }
            labinfo.setId(applyById.getLid());
            labinfo.setStatus("03");
            labinfoService.updateLabinfo(labinfo);
        }else{
            labinfo.setId(applyById.getLid());
            labinfo.setStatus("01");
            labinfoService.updateLabinfo(labinfo);
        }
        int d = applyService.updateApply(apply);
        return "200";
    }

    /**
     * 添加
     */
    @RequestMapping(value = "/addApply" ,method = RequestMethod.POST)
    @ResponseBody
    public String addApply( @RequestBody Apply apply) {
        try{
            SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            apply.setCreateTime(sf.format(new Date()));
            applyService.addApply(apply);
            return "200";
        }catch (Exception e){
            e.printStackTrace();
            return "201";
        }
    }


    /**
     * 删除
     */
    @RequestMapping( "/deleteApply")
    @ResponseBody
    public String deleteApply(String id) {
        int d = applyService.deleteApply(id);
        return "ApplyList";
    }


    /**
     * 修改
     */
    @RequestMapping( "/updateApply")
    @ResponseBody
    public String updateApply(@RequestBody  Apply apply) {
        try{
            applyService.updateApply(apply);
            return "200";
        }catch (Exception e){
            e.printStackTrace();
            return "201";
        }
    }


    /**
     * 按照ID查询
     */
    @RequestMapping( "/findApplyById")
    @ResponseBody
    public Apply findApplyById(String id,Model model,HttpServletRequest request) {
        Apply apply= applyService.findApplyById(id);
        return apply;
    }

登录操作

/**
	 * 登录
	 * 将提交数据(username,password)写入Admin对象
	 */
	@RequestMapping(value = "/login")
	public String login(Admin admin, Model model, HttpSession session, HttpServletRequest request) {
		if(admin.getUsername()==null || admin.getUsername().length()<=0 ){
			model.addAttribute("msg", "请输入用户名!");
			return "login";
		}
		if(admin.getPassword()==null || admin.getPassword().length()<1){
			model.addAttribute("msg", "请输入密码!");
			return "login";
		}
		Map mp = new HashMap();
		mp.put("username",admin.getUsername());
		mp.put("password",admin.getPassword());
		List<Admin> ad = adminService.queryFilter(mp);
		if(ad!=null && ad.size()==1){
			session.setAttribute("ad", ad.get(0));
			session.setAttribute("type", "01");
			return "homepage";
		}else{
			model.addAttribute("msg", "请确定账户信息是否正确!");
			return "login";
		}
	}

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~