成都犀牛网站建设,centos7.2做网站,虾皮跨境电商注册多少钱,郴州做网站公司#x1f345; 作者主页#xff1a;Java李杨勇 #x1f345; 简介#xff1a;Java领域优质创作者#x1f3c6;、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我#xff0c;都给你】 #x1f345;文末获取源码联系#x1f345; 临近学期结束#xff… 作者主页Java李杨勇 简介Java领域优质创作者、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我都给你】 文末获取源码联系 临近学期结束还是毕业设计你还在做java程序网络编程期末作业老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里你想解决的问题在这专栏 java项目精品实战案例分享 web前端期末大作业网页实战 都能满足你的需求。原始Jsp、SSM、SpringBoot、以及HTMLCSSJS页面设计, web大学生网页设计作业源码等等都可以参考得到解决。话不多说直接拿一个学科竞赛项目来举例 视频演示 java精品毕设【大学生学科竞赛项目管理系统---基于SpringbootMybatislayui】--附完整源码论文 论文设计参考 一、 绪论 7 1.1 研究背景 7 1.2研究目标 7 1.3项目的可行性研究设计 8 二、 需求分析 8 21系统功能概述 8 22系统运行环境 8 23功能需求描述 9 三、 系统设计 9 31开发与设计的总体思想 9 32系统模块总体架构构图 9 33模块设计 10 34系统流程描述 10 3. 5项目源码架构 11 四、 系统实现 12 4.1 程序主要类 12 4.1.1用户实体类 13 4.1.2菜单类 14 4.1.3角色类 15 4.1.4项目申请类 16 4.1.4项目经费类 17 4.1.5项目公告类 17 4.2 主要框架和技术介绍 17 4.2.1 spring 18 4.2.2 SpringBoot简介 18 4.2.2 mybatis 18 4.2.2 jQuery 19 4.2.2 element UI 19 4.3系统功能主要实现模块截图 19 4.3.1登陆页面 19 4.3.2 主页面 21 4.3.4部分关键源码展示 28 4.4数据库主要表设计 31 4.4.0数据库表ER图 32 4.4.1用户表设计 32 4.4.2角色表设计 32 4.4.3菜单表设计 33 4.4.4竞赛公告表设计 33 4.4.5竞赛项目表设计 33 4.4.6竞赛项目报名表设计 34 4.4.7竞赛项目经费表设计 34 4.4.8个人赛报名表设计 34 4.4.8团队赛报名表设计 35 4.4.6数据库sql文件 35 五系统开发总结心得与体会 75 六、参考献文 76 系统功能设计 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
)
ENGINEInnoDB
DEFAULT CHARACTER SETutf8mb4 COLLATEutf8mb4_general_ci
COMMENT系统用户
AUTO_INCREMENT3
ROW_FORMATCOMPACT
菜单表
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)
)
ENGINEInnoDB
DEFAULT CHARACTER SETutf8mb4 COLLATEutf8mb4_general_ci
COMMENT菜单管理
AUTO_INCREMENT69
ROW_FORMATCOMPACT
;
立项申请
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)
)
ENGINEInnoDB
DEFAULT CHARACTER SETutf8 COLLATEutf8_general_ci
ROW_FORMATCOMPACT
;
个人赛
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)
)
ENGINEInnoDB
DEFAULT CHARACTER SETutf8 COLLATEutf8_general_ci
AUTO_INCREMENT12
ROW_FORMATCOMPACT
;
经费申请
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)
)
ENGINEInnoDB
DEFAULT CHARACTER SETutf8 COLLATEutf8_general_ci
AUTO_INCREMENT10
ROW_FORMATCOMPACT
; 主要代码实现 用户权限过滤
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);MapString, 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;}
登录模块验证
/*** 登录*/ResponseBodyRequestMapping(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);//md5Jiayansubject.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 sunlightcsgmail.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 sunlightcsgmail.com*/
public class QueryT {public IPageT getPage(MapString, Object params) {return this.getPage(params, null, false);}public IPageT getPage(MapString, Object params, String defaultOrderField, boolean isAsc) {//分页参数long curPage 1;long limit 10;//分页对象PageT 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;}
}好了今天就到这儿吧我是小奥、下期见~~ 获取完整源码 大家点赞、收藏、关注、评论啦 、查看微信公众号获取联系 打卡 文章 更新 70/ 100天 精彩专栏推荐 Java毕设项目精品实战案例《100套》 HTML5大作业实战案例《100套》 web前端网页实战《100套》