系统功能设计

  • (1)登录:输入账号密码和验证码登录;
  • (2)用户信息模块
  • (3)菜单模块
  • (4)角色模块
  • (5)项目竞赛活动申请模块
  • (6)项目竞赛经费申请模块
  • (7)项目竞赛活动管理审批模块
  • (8)项目个人赛报名模块
  • (9)项目团队赛报名模块
  • (10)项目结题统计模块
  • (11)通知公告模块

主要功能截图:

用户登录:输入帐号密码和验证码登录。登录后,根据用户权限显示不同的菜单,灵活控制角色。

管理员功能模块:用户管理、竞赛报名信息管理、经费申请信息和x审核信息管理、项目结题信息、管理角色管理、菜单管理、权限管理、、立项申请管理等具体模块管理

用户管理:用户列表显示,数据的添加,以及删除修改等。

角色管理:将角色与用户绑定,灵活控制角色菜单,显示菜单权限。可以创建多个角色

菜单消息管理:

系统日志监控:aop切面编程。实现日志记录操作。

业务模块功能

立项申请功能

立项审核:

活动经费、预算申请

项目结题管理信息:

项目结题统计:

数据库表设计:

用户表:

CREATE TABLE `NewTable` (
`user_id`  bigint(20) NOT NULL AUTO_INCREMENT ,
`username`  varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户名' ,
`salt`  varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '盐' ,
`email`  varchar(1
`password`  varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码' ,
00) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱' ,
`mobile`  varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号' ,
`status`  tinyint(4) NULL DEFAULT NULL COMMENT '状态  0:禁用   1:正常' ,
`create_time`  datetime NULL DEFAULT NULL COMMENT '创建时间' ,
PRIMARY KEY (`user_id`),
UNIQUE INDEX `username` (`username`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci
COMMENT='系统用户'
AUTO_INCREMENT=3
ROW_FORMAT=COMPACT

菜单表:

CREATE TABLE `NewTable` (
`menu_id`  bigint(20) NOT NULL AUTO_INCREMENT ,
`parent_id`  bigint(20) NULL DEFAULT NULL COMMENT '父菜单ID,一级菜单为0' ,
`name`  varchar(50) SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单名称' ,
`url`  varchar(200) SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单URL' ,
`perms`  varchar(500) SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '授权(多个用逗号分隔,如:user:list,user:create)' ,
`type`  int(11) NULL DEFAULT NULL COMMENT '类型   0:目录   1:菜单   2:按钮' ,
`icon`  varchar(50) SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单图标' ,
`order_num`  int(11) NULL DEFAULT NULL COMMENT '排序' ,
PRIMARY KEY (`menu_id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci
COMMENT='菜单管理'
AUTO_INCREMENT=69
ROW_FORMAT=COMPACT
;

立项申请:

CREATE TABLE `NewTable` (
`id`  int(11) NOT NULL AUTO_INCREMENT ,
`name`  varchar(255) SET utf8 COLLATE NULL NULL ,
`zsdw`  varchar(255) SET utf8 COLLATE  NULL ,
`type`  varchar(255) SET utf8 COLLATE utf8_general_ci NULL NULL ,
`principal`  varchar(255) SET utf8 COLLATE NULL DEFAULT NULL ,
`phone`  varchar(255) SET utf8 COLLATE NULL NULL ,
`start_time`  datetime NULL DEFAULT NULL ,
`ent_time`  datetime NULL DEFAULT NULL ,
`majozhuban`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`sponsor`  varchar(255) SET utf8 COLLATE utf8_general_ci NULL NULL ,
`undertaeker`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL NULL ,
`remark`  varchar(255) SET utf8 COLLATE utf8_general_ci NULL NULL ,
`audit_stu`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL NULL ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
ROW_FORMAT=COMPACT
;

个人赛:

CREATE TABLE `NewTable` (
`id`  int(11) NOT NULL AUTO_INCREMENT ,
`name`  varchar(255) SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`college`  varchar(255) SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`class_name`  varchar(255) SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`grade`  varchar(255) SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`major`  varchar(255) SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`email`  varchar(255) SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`phone`  varchar(255) SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`title`  varchar(255) SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=12
ROW_FORMAT=COMPACT
;

经费申请:

CREATE TABLE `NewTable` (
`id`  int(11) NOT NULL AUTO_INCREMENT ,
`zhuche`  double NULL NULL ,
`rate`  double NULL NULL ,
`train`  double NULL NULL ,
`guidance`  double NULL NULL ,
`haocai`  double NULL NULL ,
`bonus`  double NULL NULL ,
`other`  double NULL ,
`total`  double NULL NULL ,
`name`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL NULL ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=10
ROW_FORMAT=COMPACT
;

主要代码实现:

用户权限过滤:

 @Bean("shiroFilter")public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) {ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();shiroFilter.setSecurityManager(securityManager);shiroFilter.setLoginUrl("/login.html");shiroFilter.setUnauthorizedUrl("/");filterMap.put("/statics/**", "anon");filterMap.put("/login.html", "anon");filterMap.put("/sys/login", "anon");filterMap.put("/favicon.ico", "anon");filterMap.put("/captcha.jpg", "anon");filterMap.put("/**", "authc");shiroFilter.setFilterChainDefinitionMap(filterMap);Map<String, String> filterMap = new LinkedHashMap<>();filterMap.put("/swagger/**", "anon");filterMap.put("/v2/api-docs", "anon");filterMap.put("/swagger-ui.html", "anon");filterMap.put("/webjars/**", "anon");filterMap.put("/swagger-resources/**", "anon");return shiroFilter;}

登录模块验证:

/*** 登录*/@ResponseBody@RequestMapping(value = "/sys/login")public R login(String username, String password, String captcha) {String kaptcha = ShiroUtils.getKaptcha(Constants.KAPTCHA_SESSION_KEY);if(!captcha.equalsIgnoreCase(kaptcha)){return R.error("验证码不正确。。。。。。");}try{Subject subject = ShiroUtils.getSubject();UsernamePasswordToken token = new UsernamePasswordToken(username, password);//md5+Jiayansubject.login(token);}catch (UnknownAccountException e) {return R.error(e.getMessage());}catch (IncorrectCredentialsException e) {return R.error("账号或密码不正确。。。。");}catch (LockedAccountException e) {return R.error("账号已被锁定,请联系管理。。。员");}catch (AuthenticationException e) {return R.error("账户验证失败。。。。");}return R.ok();}
统一异常处理:/*** 异常处理器** @author Mark sunlightcs@gmail.com*/
@RestControllerAdvice
public class RRExceptionHandler {private Logger logger = LoggerFactory.getLogger(getClass());/*** 处理自定义异常*/@ExceptionHandler(RRException.class)public R handleRRException(RRException e){R r = new R();r.put("code", e.getCode());r.put("msg", e.getMessage());return r;}@ExceptionHandler(AuthorizationException.class)public R handleAuthorizationException(AuthorizationException e){logger.error(e.getMessage(), e);return R.error("没有权限,请联系管理员授权");}@ExceptionHandler(Exception.class)public R handleException(Exception e){logger.error(e.getMessage(), e);return R.error();}@ExceptionHandler(DuplicateKeyException.class)public R handleDuplicateKeyException(DuplicateKeyException e){logger.error(e.getMessage(), e);return R.error("数据库中已存在该记录");}
}

分页查询

package io.renren.common.utils;import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.renren.common.xss.SQLFilter;
import org.apache.commons.lang.StringUtils;import java.util.Map;/*** 查询参数** @author Mark sunlightcs@gmail.com*/
public class Query<T> {public IPage<T> getPage(Map<String, Object> params) {return this.getPage(params, null, false);}public IPage<T> getPage(Map<String, Object> params, String defaultOrderField, boolean isAsc) {//分页参数long curPage = 1;long limit = 10;//分页对象Page<T> page = new Page<>(curPage, limit);//分页参数params.put(Constant.PAGE, page);if(params.get(Constant.PAGE) != null){curPage = Long.parseLong((String)params.get(Constant.PAGE));}if(params.get(Constant.LIMIT) != null){limit = Long.parseLong((String)params.get(Constant.LIMIT));}//排序字段//防止SQL注入(因为sidx、order是通过拼接SQL实现排序的,会有SQL注入风险)String orderField = SQLFilter.sqlInject((String)params.get(Constant.ORDER_FIELD));String order = (String)params.get(Constant.ORDER);//前端字段排序if(StringUtils.isNotEmpty(orderField) && StringUtils.isNotEmpty(order)){if(Constant.ASC.equalsIgnoreCase(order)) {return  page.addOrder(OrderItem.asc(orderField));}else {return page.addOrder(OrderItem.desc(orderField));}}//没有排序字段,则不排序if(StringUtils.isBlank(defaultOrderField)){return page;}//默认排序if(isAsc) {page.addOrder(OrderItem.asc(defaultOrderField));}else {page.addOrder(OrderItem.desc(defaultOrderField));}return page;}
}package io.renren.common.utils;import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.renren.common.xss.SQLFilter;
import org.apache.commons.lang.StringUtils;import java.util.Map;/*** 查询参数** @author Mark sunlightcs@gmail.com*/
public class Query<T> {public IPage<T> getPage(Map<String, Object> params) {return this.getPage(params, null, false);}public IPage<T> getPage(Map<String, Object> params, String defaultOrderField, boolean isAsc) {//分页参数long curPage = 1;long limit = 10;//分页对象Page<T> page = new Page<>(curPage, limit);//分页参数params.put(Constant.PAGE, page);if(params.get(Constant.PAGE) != null){curPage = Long.parseLong((String)params.get(Constant.PAGE));}if(params.get(Constant.LIMIT) != null){limit = Long.parseLong((String)params.get(Constant.LIMIT));}//排序字段//防止SQL注入(因为sidx、order是通过拼接SQL实现排序的,会有SQL注入风险)String orderField = SQLFilter.sqlInject((String)params.get(Constant.ORDER_FIELD));String order = (String)params.get(Constant.ORDER);//前端字段排序if(StringUtils.isNotEmpty(orderField) && StringUtils.isNotEmpty(order)){if(Constant.ASC.equalsIgnoreCase(order)) {return  page.addOrder(OrderItem.asc(orderField));}else {return page.addOrder(OrderItem.desc(orderField));}}//没有排序字段,则不排序if(StringUtils.isBlank(defaultOrderField)){return page;}//默认排序if(isAsc) {page.addOrder(OrderItem.asc(defaultOrderField));}else {page.addOrder(OrderItem.desc(defaultOrderField));}return page;}
}

获取完整源码:

大家点赞、收藏、关注、评论啦,头条后台私信回复【666】即刻免费获取到相关学习资料

基于java实现学科竞赛管理系统「Springboot+mybatis+lyaui」相关推荐

  1. java毕业设计学科竞赛管理系统Mybatis+系统+数据库+调试部署

    java毕业设计学科竞赛管理系统Mybatis+系统+数据库+调试部署 java毕业设计学科竞赛管理系统Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java ...

  2. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java大学生学科竞赛管理系统t16zl

    面对老师五花八门的设计要求,首先自己要明确好自己的题目方向,并且与老师多多沟通,用什么编程语言,使用到什么数据库,确定好了,在开始着手毕业设计. 1:选择课题的第一选择就是尽量选择指导老师擅长的课题, ...

  3. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java大学生学科竞赛管理系统7jdqe

    对于计算机专业的学生最头疼的就是临近毕业时的毕业设计,对于如何选题,技术选型等这些问题,难道了大部分人,确实,还没毕业的学生对于这些问题还比较陌生,只有学习的理论知识,没有实战经验怎么能独自完成毕业设 ...

  4. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高校学科竞赛管理系统eolh8

    对于即将毕业或者即将做课设的同学而言,由于经验的欠缺,面临的第一个难题就是选题,确定好题目之后便是开题报告,如果选题首先看自己学习那些技术,不同技术适合做不同的产品,比如自己会些简单的Java语言,会 ...

  5. 基于JAVA学科竞赛管理系统计算机毕业设计源码+系统+lw文档+部署

    基于JAVA学科竞赛管理系统计算机毕业设计源码+系统+lw文档+部署 基于JAVA学科竞赛管理系统计算机毕业设计源码+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 ...

  6. [附源码]Python计算机毕业设计SSM基于java学科竞赛管理系统(程序+LW)

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  7. 基于springboot+Element-Vue+mysql学科竞赛管理系统

    基于springboot+Element-Vue+mysql学科竞赛管理系统 一.系统介绍 二.功能展示 1.用户登陆 2.学生页面 3.教师页面 4.学院管理员页面 5.系统管理员页面 6.竞赛列表 ...

  8. [附源码]Nodejs计算机毕业设计基于java学科竞赛管理系统Express(程序+LW)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: Node.js+ Vscode + Mysql5.7 + HBuilderX+Navicat11+Vue ...

  9. java毕业设计大学生学科竞赛管理系统mybatis+源码+调试部署+系统+数据库+lw

    java毕业设计大学生学科竞赛管理系统mybatis+源码+调试部署+系统+数据库+lw java毕业设计大学生学科竞赛管理系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目 ...

  10. 计算机毕业设计Java学科竞赛管理系统(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java学科竞赛管理系统(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java学科竞赛管理系统(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...

最新文章

  1. ​全球首个视频实验期刊JOVE征稿:植物微生物组学方法专刊(牛犇、韦中、高峥、王蒙岑)...
  2. 安卓应用如何引用动态库
  3. editplus 批量删除 重复行
  4. 【整洁之道】如何写出更整洁的代码(上)
  5. 一叶知秋:基于“单目标域样本”的领域自适应方法
  6. HTTP 响应的分块传输
  7. c语言编写弹窗提示是否确认退出_弹窗设计的5条基本原则
  8. android原生ios,Windows Phone的原生iOS/Android应用程序
  9. kmz文件转为arcgis的图层(制作底图)
  10. 考研复试数据库原理课后习题(一)——绪论
  11. 发现一个好用的MySQL数据库管理工具
  12. 【物联网毕设基础】单片机:RS485 通信与 Modbus 协议
  13. html图片左右滚动播放,CSS3实现横向滚动播放
  14. 手绘图像检索:Deep Spatial-Semantic Attention for Fine-Grained Sketch-Based Image Retrieval
  15. 计算机网络CiscoPacket Tracer实验
  16. NMOS双向转换电路实测以及上升沿尖峰处理
  17. 回头草的爱情,我们还需要吗?
  18. 关键点提取:face_recognition、疲劳检测、人脸校准、人脸数据库
  19. [转载]投资正道vs冯时能30年股票投资16心得
  20. 2021年施工员-设备方向-岗位技能(施工员)考试试卷及施工员-设备方向-岗位技能(施工员)证考试

热门文章

  1. WebSocket之GoEasy框架
  2. 【百度云提取】:JDK1.8API、Jdk1.8安装包、jQueryAPI文档、JavaScriptAPI文档、W3School相关API文档
  3. 如何将应用从Win7迁移到Win10 ?
  4. 模电——二级管的限幅与稳压
  5. 导航网/广告位/导航分类/可运营
  6. 8uftp怎么上传文件,8uftp怎么上传文件
  7. 蓝牙模块 HC-06
  8. gsp计算机系统内审结论,GSP计算机系统内审表.docx
  9. Linux基础知识大全(持续更新)
  10. 3D相机成像原理简介