目录
- 一、摘要
- 1.1 项目介绍
- 1.2 项目录屏
- 二、功能模块
- 2.1 管理员端
- 2.2 Web 端
- 2.3 移动端
- 三、系统展示
- 四、核心代码
- 4.1 查询项目
- 4.2 移动端新增团队
- 4.3 查询讲座
- 4.4 讲座收藏
- 4.5 小程序登录
- 五、免责说明
一、摘要
1.1 项目介绍
基于JAVA+Vue+SpringBoot+MySQL的创意工坊双创管理系统,包含了讲座管理、消息管理、项目管理、公共空间、房间预约、团队管理模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,创意工坊双创管理系统基于角色的访问控制,给工坊管理员、教师和学生角色使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。
1.2 项目录屏
二、功能模块
2.1 管理员端
按照软件工程规范描述管理员端需求,细化用例规约,合理设计数据库,实现管理员端以下功能。
- 注册登录注销功能:管理员需要登录管理员账号,可以对系统的所有事务进行管理;用户端即教师和学生通过工号或学号进行注册登录,其中web端的安全验证采用图片或者验证码形式,微信小程序端安全验证采用短信验证码形式。
- 权限设置功能:对不同的角色设置管理权限。
- 基本信息管理:教师、学生可查看、补充基本信息。
- 基础信息导入:学生信息的批量导入。
- 各模板后台管理:项目管理、团队管理、房间预约、讲座信息等模块相关数据存储、后台展示、审核。
- 大数据分析模块:分类统计各功能模块信息,并做可视化展示。
- 留言管理:学生可进行留言,或者投诉与建议。
- 查询功能:用户可对平台内容进行查询。
- 消息通知功能:管理员对不良、不合法言论的账户予以警告通知;对即将使用的公共空间、讲座信息进行提醒。
2.2 Web 端
按照软件工程规范描述web端需求,细化用例规约,合理设计数据库,实现web端以下功能。
- 主页(首页)功能:项目管理、团队管理、房间预约、讲座信息、留言区、个人中心等页面设计。
- 公共空间管理:学生可查看公共空间信息,并进行预约;教师管理员可以发布信息,查看信息,审核管理。
- 讲座双选管理:双创导师可以发布讲座信息;学生可以查看讲座活动信息,查看、申请参加活动;讲师可以查看学生选报情况。
- 项目管理:学生申报项目,包括创新、创业、竞赛类项目;由导师或者管理员进行审核;学生可以查看进度条,清晰地了解状态。
- 房间预约:学生可以预约场地使用;可以查看进度条,看审批状态。
- 团队管理:学生可以自由组建团队;也可以由导师指定团队。
- 留言功能:学生可以对相关信息进行留言、评论。
- 个人信息管理:学生可以查看个人信息,并可进行修改。
- 消息通知功能:管理员对不良、不合法言论的账户予以警告通知;对其预约过并即将使用场地、讲座等重要信息进行提醒。
- 用户点赞、收藏功能:对体验感友好的事件可以点赞、收藏。
2.3 移动端
按照软件工程规范描述移动端需求,细化用例规约,合理设计数据库,实现移动端以下功能。
- 主页(首页)功能:项目管理、团队管理、房间预约、讲座信息、留言区、个人中心等页面设计。
- 公共空间管理;学生可查看公共空间信息,并进行预约;教师管理员可以发布信息,查看信息,审核管理。
- 讲座双选管理:双创导师可以发布讲座信息:学生可以查看讲座活动信息,查看、申请参加活动﹔讲师可以查看学生选报情况。
- 项目管理:学生申报项目,包括创新、创业、竞赛类项目;由导师或者管理员进行审核:学生可以查看进度条,清晰地了解状态。
- 房间预约:学生可以预约场地使用;可以查看进度条,看审批状态。
- 团队管理:学生可以自由组建团队;也可以由导师指定团队。
- 留言功能:学生可以对相关信息进行留言、评论。
- 个人信息管理:学生可以查看个人信息,并可进行修改。
- 消息通知功能:管理员对不良、不合法言论的账户予以警告通知:对其预约过并即将使用场地、讲座等重要信息.进行提醒。
- 用户点赞、收藏功能,对体验感友好的事件可以点赞、收藏。
三、系统展示
四、核心代码
4.1 查询项目
@RequestMapping(value = "/getByPage", method = RequestMethod.GET) @ApiOperation(value = "查询项目") public Result getByPage(@ModelAttribute Project project ,@ModelAttribute PageVo page){ QueryWrapper qw = new QueryWrapper(); if(!ZwzNullUtils.isNull(project.getTitle())) { qw.like("title",project.getTitle()); } if(!ZwzNullUtils.isNull(project.getUserName())) { qw.like("user_name",project.getUserName()); } IPage data = iProjectService.page(PageUtil.initMpPage(page),qw); return new ResultUtil().setData(data); }
4.2 移动端新增团队
@RequestMapping(value = "/insertApp", method = RequestMethod.GET) @ApiOperation(value = "新增团队") public Result insertApp(@RequestParam String title,@RequestParam String content){ Team team = new Team(); team.setTitle(title); team.setContent(content); User currUser = securityUtil.getCurrUser(); team.setUserId(currUser.getId()); team.setUserName(currUser.getNickname()); team.setTime(DateUtil.now()); iTeamService.saveOrUpdate(team); return new ResultUtil().setData(team); }
4.3 查询讲座
@RequestMapping(value = "/getByPage", method = RequestMethod.GET) @ApiOperation(value = "查询讲座") public Result getByPage(@ModelAttribute Lecture lecture ,@ModelAttribute PageVo page){ QueryWrapper qw = new QueryWrapper(); User currUser = securityUtil.getCurrUser(); if(!ZwzNullUtils.isNull(lecture.getTitle())) { qw.like("title",lecture.getTitle()); } if(!ZwzNullUtils.isNull(lecture.getContent())) { qw.like("content",lecture.getContent()); } IPage data = iLectureService.page(PageUtil.initMpPage(page),qw); for (Lecture vo : data.getRecords()) { QueryWrapper goodQw = new QueryWrapper(); goodQw.eq("lecture_id",vo.getId()); goodQw.eq("user_id",currUser.getId()); vo.setGood(iGoodService.count(goodQw)); QueryWrapper collectQw = new QueryWrapper(); collectQw.eq("lecture_id",vo.getId()); collectQw.eq("user_id",currUser.getId()); vo.setCollect(iCollectService.count(collectQw)); } return new ResultUtil().setData(data); }
4.4 讲座收藏
@RequestMapping(value = "/addOne", method = RequestMethod.GET) @ApiOperation(value = "新增单条收藏") public Result addOne(@RequestParam String id){ Lecture l = iLectureService.getById(id); if(l == null) { return ResultUtil.error("讲座不存在"); } User currUser = securityUtil.getCurrUser(); QueryWrapper collectQw = new QueryWrapper(); collectQw.eq("lecture_id",id); collectQw.eq("user_id",currUser.getId()); if(iCollectService.count(collectQw) > 0L) { iCollectService.remove(collectQw); return ResultUtil.success(); } Collect collect = new Collect(); collect.setLectureId(id); collect.setLectureName(l.getName()); collect.setUserId(currUser.getId()); collect.setUserName(currUser.getNickname()); collect.setTime(DateUtil.now()); iCollectService.saveOrUpdate(collect); return ResultUtil.success(); }
4.5 小程序登录