博主主页猫头鹰源码

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

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

文末联系获取

项目介绍: 

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

项目功能:

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

主要功能:

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

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

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

数据库表结构文档: 

系统包含技术:

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

部分截图说明:

小程序登录

小程序首页

 小程序教室详情

 小程序填写活动

 小程序个人中心

 小程序我的预订

 小程序我的报修

后台-登录

 后台-首页

 后台-教室管理

 后台-申请管理

 后台-报损管理

部分代码:

申请操作


    /**
     * 分页查询
     * 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";
		}
	}

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

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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐