基于javaweb+SpringBoot的田径运动会管理系统(java+SpringBoot+Thymeleaf+HTML+maven+mysql)

本文介绍了使用SpringBoot和Thymeleaf开发的项目管理系统,涉及管理员和学生的角色功能,包括登录验证、密码修改、项目管理等,并详细说明了环境配置和数据库操作步骤。适合课程设计、大作业等实践项目。
摘要由CSDN通过智能技术生成

项目介绍
本项目分为管理员、学生两种角色,
管理员主要功能包括:
功能:登录、查看个人资料、修改密码、选手管理、赛事管理、报名管理、成绩管理、开幕式管理、闭幕式管理

学生主要功能包括:
首页,
项目管理:报名项目、查看已报名项目;
成绩查询:单个项目查询、总成绩查询、个人总积分查询;
查看开幕式;
查看闭幕式;
个人资料:查看个人资料、修改密码;

环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 8.0版本;

6.是否Maven项目:是;

技术栈

  1. 后端:SpringBoot

  2. 前端:Thymeleaf+HTML+CSS+jQuery

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
  2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
  3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
  4. 运行项目,输入localhost:8080/ 登录
    管理员账号/密码:10001/123456
    学生账号/密码:1001/123456

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

适用

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

	 * 
	 * @param resp
	 * @param req
	 * @return
	 */
	@RequestMapping(value = "updatePassword.do", method = RequestMethod.GET)
	public ModelAndView updatePassword(HttpServletResponse resp, HttpServletRequest req) {
		return new ModelAndView("user/resetPassword");
	}
	/**
	 * 密码修改提交
	 * 
	 * @param resp
	 * @param req
	 * @return
	 */
	@RequestMapping("resetPassword.do")
	public @ResponseBody AjaxResult updatePasswordSubmit(  @RequestParam(name = "password") String password, Long id, HttpServletResponse resp,
														   HttpServletRequest req,@RequestParam(name = "oldPassword")String oldPassword,@RequestParam(name = "repassword")String rePassword) {
		if(StringUtils.isEmpty(oldPassword)){
     */
    @RequestMapping(value = "login.do", method = RequestMethod.POST)
    public ModelAndView login(String name, String password,String type,HttpServletRequest request) {
        if("1".equals(type)){
            //表示运动员
            ModelAndView modelAndView = new ModelAndView();//跳转
            User user = userService.checkPassword(name, password);
            if (user != null) {
                request.getSession().setAttribute("user", user);
                request.getSession().setAttribute("name",user.getName());
                modelAndView.setViewName("redirect:/");
                return modelAndView;
            }else{
                modelAndView.addObject("message", "账号密码错误");
                modelAndView.setViewName("adminUser/login");
                return modelAndView;
            }
        }else{
            //表示管理员
            Admin adminUser = adminService.checkPassword(name, password);
            if (adminUser != null) {
                //成功后保存账号session全局保存
                ModelAndView modelAndView = new ModelAndView("redirect:/");
                request.getSession().setAttribute("adminUser", adminUser);
                request.getSession().setAttribute("name",adminUser.getName());
    @RequestMapping("/showscore.do")
    public ModelAndView showscore(HttpServletRequest request, HttpServletResponse response) {
        ModelAndView modelAndView = new ModelAndView("/adminUser/listscore");
        //需要projectid
        UserScore userScore = new UserScore();
        String name = request.getParameter("project");
        Project project = new Project();
        project.setName(name);
        project = projectService.selectOne(project);
        userScore.setProjectId(project.getId());
        userScore = userScoreService.selectOne(userScore);
        List<UserScore> userScoreList = userScoreService.selectLast(userScore);
        modelAndView.addObject("userScoreList", userScoreList);
        return modelAndView;
    }
}
运动员控制器:
/**
        List<AdminScore> AdminScoreList = adminScoreService.selectList(adminScore);
        modelAndView.addObject("AdminScoreList", AdminScoreList);
        return modelAndView;
    }
    /**
     * 账号的登出
     *
     * @param
     * @param
     * @return
     */
    @RequestMapping(value = "logout.do")
    public ModelAndView logout(HttpServletRequest request, HttpServletResponse response) {
        //销毁账户数据
        request.getSession().invalidate();
        ModelAndView modelAndView = new ModelAndView("adminUser/login");
        return modelAndView;
    }
    /**
     * @param req
	 */
	@RequestMapping(value="verify.do",method=RequestMethod.GET)
	public  ModelAndView verify()
	{
		List<Project> projectList=projectService.selectList();
		ModelAndView modelAndView = new ModelAndView("/project/review_list");
		modelAndView.addObject("projectList",projectList);
		return modelAndView;
		
		
		
		
	}
	/**
            return AjaxResult.errorInstance("请填写账号");
        }
        if (StringUtils.isEmpty(admin.getPassword())) {
            return AjaxResult.errorInstance("请填写密码");
        }
        if (!admin.getPassword().equals(repassword)) {
            return AjaxResult.errorInstance("两次密码不一致");
        }
        if (StringUtils.isEmpty(admin.getPhone())) {
            return AjaxResult.errorInstance("请填写手机号");
        }
        if (StringUtils.isEmpty(admin.getRealname())) {
            return AjaxResult.errorInstance("请填写名称");
        }
        if (adminService.findByName(admin.getName()) != null) {
            return AjaxResult.errorInstance("该账号已存在");
        }
        admin.setRoleid(true);
    }
}
运动员控制器:
/**
 * 运动员控制器
 */
@Controller
@RequestMapping("/user")
public class UserController {
	@Autowired
	private UserScoreService userScoreService;
	@Autowired
	private UserService userService;
		//获取文件后缀
		String suffix = photo.getOriginalFilename().substring(photo.getOriginalFilename().lastIndexOf(".")+1,photo.getOriginalFilename().length());
		if(!"jpg,jpeg,gif,png".toUpperCase().contains(suffix.toUpperCase())){
			ret.put("type", "error");
			ret.put("msg", "请选择jpg,jpeg,gif,png格式的图片!");
			return ret;
		}
		String savePath = request.getServletContext().getRealPath("/") + "/upload/";
		File savePathFile = new File(savePath);
		if(!savePathFile.exists()){
			//若不存在改目录,则创建目录
			savePathFile.mkdir();
		}
		String filename = new Date().getTime()+"."+suffix;
		try {
			//将文件保存至指定目录
			photo.transferTo(new File(savePath+filename));
		}catch (Exception e) {
			// TODO Auto-generated catch block
			ret.put("type", "error");
			ret.put("msg", "保存文件异常!");
			e.printStackTrace();
			return ret;
		}
		ret.put("type", "success");
		ret.put("msg", "图片上传成功!");
			userScore.setUserId(id);
			userScore.setScore(score);
			userScore.setAdminId(adminId);
			userScore.setProjectId(projectId);
			// 将数据插入数据库
			userScoreService.insert(userScore);
			return AjaxResult.successInstance("提交成功");
		} catch (NumberFormatException e) {
			return AjaxResult.successInstance("失败,只能填数字");
		}
	}
	/**
	 * 
	 * @param projectId
	 * @param userId
	 * @param request
	 * @return
	 */
	/**
	 * 显示用户页面的用户的当前的所有项目
	 * 
	 * @param id
	 * @param request
	 * @param response
     * @return
     */
    @ResponseBody
    @PostMapping("/edit.do")
    public AjaxResult edit(Admin admin){
        if (StringUtils.isEmpty(admin.getRealname())) {
            return AjaxResult.errorInstance("请填写名称");
        }
        if (StringUtils.isEmpty(admin.getPhone())) {
            return AjaxResult.errorInstance("请填写手机号");
        }
        if(adminService.editAdmin(admin)<=0){
            return AjaxResult.errorInstance("裁判员信息编辑失败");
        }
        return AjaxResult.successInstance("裁判员信息编辑成功");
     *
     * @param resp
     * @param req
     * @return
     */
    @ResponseBody
    @RequestMapping("resetPassword.do")
    public AjaxResult updatePasswordSubmit(
            @RequestParam(name = "password") String password, Long id, HttpServletResponse resp,
            HttpServletRequest req,@RequestParam(name = "oldPassword")String oldPassword,@RequestParam(name = "repassword")String rePassword) {
        if(StringUtils.isEmpty(oldPassword)){
            return AjaxResult.errorInstance("请填写旧密码");
        }
        if(StringUtils.isEmpty(rePassword)){
            return AjaxResult.errorInstance("请填写确认密码");
        }
        if(StringUtils.isEmpty(password)){

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值