基于javaweb的SpringBoot学生学科竞赛管理系统设计和实现(java+springboot+ssm+maven+html)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

010023082402

020023082402

040023082402

050023082402

060023082402

070023082402

080023082402

090023082402

100023082402

110023082402

120023082402

130023082402

150023082402

160023082402

170023082402

180023082402

190023082402

200023082402

210023082402

220023082402

230023082402

240023082402

260023082402

基于javaweb的SpringBoot学生学科竞赛管理系统设计和实现(java+springboot+ssm+maven+html)

主要技术、spring、 springmvc、  springboot、  mybatis 、 jquery 、 layUI、md5 、bootstarp.js  拦截器等项目 主要功能:登录、用户、菜单管理、角色管理、权限管理、立项申请、报名、结、经费管理、审核、统计等

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

管理后主要功能模块:用户管理、角色管理、承菜管理、权限管理、竞赛报名管理、经费申请和审核管理、项目结题管理、立项申请管理等具体功能

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

角色管理:通过给用户绑定角色、角色控制菜单灵活显示菜单权限功能。用户可以新建多角色

菜单管理:

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

业务模块功能;

立项申请:

立项审核:

活动经费预算申请:

立项申请个人赛以及团队赛报名管理:录入报名相关信息字段

项目结题管理:

项目完成之后选择项目进行资金使用统计结题:录入金额

项目结题统计:

代码结构:idea、eclipse直接导入就可运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43


/**
* 系统菜单
*
*/
@RestController
@RequestMapping("/sys/menu")
public class SysMenuController extends AbstractController {
@Autowired
private SysMenuService sysMenuService;

/**
* 导航菜单
*/
@RequestMapping("/nav")
public R nav(){
List<SysMenuEntity> menuList = sysMenuService.getUserMenuList(getUserId());
return R.ok().put("menuList", menuList);
}

/**
* 所有菜单列表
*/
@RequestMapping("/list")
@RequiresPermissions("sys:menu:list")
public List<SysMenuEntity> list(){
List<SysMenuEntity> menuList = sysMenuService.list();
for(SysMenuEntity sysMenuEntity : menuList){
SysMenuEntity parentMenuEntity = sysMenuService.getById(sysMenuEntity.getParentId());
if(parentMenuEntity != null){
sysMenuEntity.setParentName(parentMenuEntity.getName());
}
}

return menuList;
}

/**
* 选择菜单(添加、修改菜单)
*/
@RequestMapping("/select")
@RequiresPermissions("sys:menu:select")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// *
// *
// *
// *
// */
//
//package io.renren.modules.sys.controller;
//
//
//
///**
// * 数据字典
// *
// */
//@RestController
//@RequestMapping("sys/city")
//public class MCityController {
// @Autowired
// private SysDictService sysDictService;
// @Autowired
// private MCityService cityService;
//
// /**
// * 列表
// */
// @RequestMapping("/list")
//// @RequiresPermissions("sys:city:list")
// public R list(@RequestParam Map<String, Object> params){
// PageUtils page = cityService.queryPage(params);
// return R.ok().put("page", page);
// }
//
//
// /**
// * 信息
// */
// @RequestMapping("/info/{id}")
// @RequiresPermissions("sys:city:info")
// public R info(@PathVariable("id") Long id){
// MCity dict = cityService.getById(id);
//
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
    @RequestMapping("/save")
public R save(@RequestBody Team team) {
team.setBmTime(new Date());
teamService.save(team);
Closing closing = new Closing();
closing.setBid(team.getId());
closing.setJtType("团队赛");
closing.setStartTime(new Date());
closing.setTitle(team.getTitle());
closingService.save(closing);
return R.ok();
}

@RequestMapping("/update")
public R update(@RequestBody Team team) {
if (team.getId() == null) {
save(team);
} else {
teamService.updateById(team);

}
return R.ok();
}

@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids) {
teamService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}
package io.renren.modules.sys.controller;



@RestController
@RequestMapping("/sys/expenditure")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

/**
* 角色管理
*
*/
@RestController
@RequestMapping("/sys/role")
public class SysRoleController extends AbstractController {
@Autowired
private SysRoleService sysRoleService;
@Autowired
private SysRoleMenuService sysRoleMenuService;
@Autowired
private SysRoleDeptService sysRoleDeptService;

/**
* 角色列表
*/
@RequestMapping("/list")
@RequiresPermissions("sys:role:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = sysRoleService.queryPage(params);

return R.ok().put("page", page);
}

/**
* 角色列表
*/
@RequestMapping("/select")
@RequiresPermissions("sys:role:select")
public R select(){
List<SysRoleEntity> list = sysRoleService.list();

return R.ok().put("list", list);
}

/**
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 * 没被包装过的HttpServletRequest(特殊场景,需要自己过滤)
*/
HttpServletRequest orgRequest;
/**
* html过滤
*/
private final static HTMLFilter htmlFilter = new HTMLFilter();

public XssHttpServletRequestWrapper(HttpServletRequest request) {
super(request);
orgRequest = request;
}

@Override
public ServletInputStream getInputStream() throws IOException {
//非json类型,直接返回
if(!MediaType.APPLICATION_JSON_VALUE.equalsIgnoreCase(super.getHeader(HttpHeaders.CONTENT_TYPE))){
return super.getInputStream();
}

//为空,直接返回
String json = IOUtils.toString(super.getInputStream(), "utf-8");
if (StringUtils.isBlank(json)) {
return super.getInputStream();
}

//xss过滤
json = xssEncode(json);
final ByteArrayInputStream bis = new ByteArrayInputStream(json.getBytes("utf-8"));
return new ServletInputStream() {
@Override
public boolean isFinished() {
return true;
}

@Override
public boolean isReady() {
return true;
}

@Override
public void setReadListener(ReadListener readListener) {
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// *
// */
//
//package io.renren.modules.sys.controller;
//
//
//
///**
// * 数据字典
// *
// */
//@RestController
//@RequestMapping("sys/city")
//public class MCityController {
// @Autowired
// private SysDictService sysDictService;
// @Autowired
// private MCityService cityService;
//
// /**
// * 列表
// */
// @RequestMapping("/list")
//// @RequiresPermissions("sys:city:list")
// public R list(@RequestParam Map<String, Object> params){
// PageUtils page = cityService.queryPage(params);
// return R.ok().put("page", page);
// }
//
//
// /**
// * 信息
// */
// @RequestMapping("/info/{id}")
// @RequiresPermissions("sys:city:info")


项目链接:
https://javayms.github.io?id=271422282105200cz
https://javayms.pages.dev?id=271422282105200cz