主页 > 创业  > 

SpringBoot高校运动会管理系统附带详细运行指导视频

SpringBoot高校运动会管理系统附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码1.报名赛事代码2.用户登录代码3.保存成绩代码

一、项目演示

项目演示地址: 视频地址

二、项目介绍

项目描述:这是一个基于SpringBoot框架开发的高校运动会管理系统项目。首先,这是一个响应式的项目,代码简洁规范,注释说明详细,易于理解和学习。其次,这项目在报名赛事功能上采用了ZooKeeper分布式锁进行高并发情况下的功能优化设计,如果不想要Zookeeper,也会免费指导如何去除,不会影响现有功能。最后,这项目功能丰富,具有一个高校运动会管理系统该有的所有功能。

项目功能:该项目分为学生和管理员两个角色。学生有登录、管理个人信息、查看运动会信息、查看赛事信息、报名赛事、管理个人报名信息、查看成绩信息、查看公告信息等等功能。管理员有管理所有用户信息、管理所有运动会信息、管理所有赛事信息、管理所有报名信息、管理所有成绩信息、管理所有公告信息等等功能。

应用技术:SpringBoot + MyBatis + Thymeleaf + Bootstrap + MySQL + ZooKeeper

运行环境:IntelliJ IDEA(项目压缩包中自带) + MySQL(项目压缩包中自带) + Maven3.6.3(项目压缩包中自带) + JDK1.8(项目压缩包中自带) + ZooKeeper3.8.4(项目压缩包中自带)

三、运行截图

四、主要代码 1.报名赛事代码 /** * 报名赛事 * @param signDTO * @return */ @Override public ResponseDTO<Boolean> signContest(SignDTO signDTO, HttpServletRequest request) { if(CommonUtil.isEmpty(signDTO.getContestId())) { return ResponseDTO.errorByMsg(CodeMsg.DATA_ERROR); } User user = (User) request.getSession().getAttribute(SessionConstant.SESSION_LOGIN_KEY); Contest contest = contestMapper.selectByPrimaryKey(signDTO.getContestId()); if(contest == null) { return ResponseDTO.errorByMsg(CodeMsg.CONTEST_NOT_EXIST); } if(contest.getSignEndTime().getTime() <= new Date().getTime()) { return ResponseDTO.errorByMsg(CodeMsg.SIGN_DATE_OVER); } if(contest.getNowSignNum() >= contest.getMaxSignNum()) { return ResponseDTO.errorByMsg(CodeMsg.SIGN_NUM_ERROR); } SignExample signExample = new SignExample(); signExample.createCriteria().andUserIdEqualTo(user.getId()).andContestIdEqualTo(contest.getId()); List<Sign> signList = signMapper.selectByExample(signExample); if(signList.size() > 0) { return ResponseDTO.errorByMsg(CodeMsg.SIGN_CONTEST_EXIST); } Sign sign = CopyUtil.copy(signDTO, Sign.class); sign.setId(UuidUtil.getShortUuid()); sign.setUserId(user.getId()); sign.setCreateTime(new Date()); if(signMapper.insertSelective(sign) == 0) { throw new RuntimeException(CodeMsg.SIGN_ADD_ERROR.getMsg()); } contest.setNowSignNum(contest.getNowSignNum() + 1); if(contestMapper.updateByPrimaryKeySelective(contest) == 0) { throw new RuntimeException(CodeMsg.CONTEST_EDIT_ERROR.getMsg()); } return ResponseDTO.successByMsg(true, "报名成功"); } 2.用户登录代码 /** * 用户登录操作 * @param userDTO * @param request * @return */ @Override public ResponseDTO<Boolean> login(UserDTO userDTO, HttpServletRequest request) { if(userDTO == null) { return ResponseDTO.errorByMsg(CodeMsg.DATA_ERROR); } if(CommonUtil.isEmpty(userDTO.getNo())) { return ResponseDTO.errorByMsg(CodeMsg.NO_EMPTY); } if(CommonUtil.isEmpty(userDTO.getPassword())) { return ResponseDTO.errorByMsg(CodeMsg.PASSWORD_EMPTY); } UserExample userExample = new UserExample(); userExample.createCriteria() .andNoEqualTo(userDTO.getNo()) .andPasswordEqualTo(userDTO.getPassword()) .andRoleIdEqualTo(userDTO.getRoleId()); List<User> userList = userMapper.selectByExample(userExample); if(userList.size() == 0) { return ResponseDTO.errorByMsg(CodeMsg.NO_PASSWORD_ERROR); } request.getSession().setAttribute(SessionConstant.SESSION_LOGIN_KEY, userList.get(0)); return ResponseDTO.successByMsg(true, "登录成功!"); } 3.保存成绩代码 /** * 保存成绩信息 * @param resultDTO * @return */ @Override public ResponseDTO<Boolean> save(ResultDTO resultDTO) { if(resultDTO == null) { return ResponseDTO.errorByMsg(CodeMsg.DATA_ERROR); } // 进行统一表单验证 CodeMsg validate = ValidateEntityUtil.validate(resultDTO); if (!validate.getCode().equals(CodeMsg.SUCCESS.getCode())) { return ResponseDTO.errorByMsg(validate); } UserExample userExample = new UserExample(); userExample.createCriteria().andNoEqualTo(resultDTO.getUserNo()); List<User> userList = userMapper.selectByExample(userExample); if(userList.size() == 0) { return ResponseDTO.errorByMsg(CodeMsg.USER_NOT_EXIST); } Contest contest = contestMapper.selectByPrimaryKey(resultDTO.getContestId()); if(contest == null) { return ResponseDTO.errorByMsg(CodeMsg.CONTEST_NOT_EXIST); } User user = userList.get(0); // 判断是否有报名 SignExample signExample = new SignExample(); signExample.createCriteria().andContestIdEqualTo(contest.getId()).andUserIdEqualTo(user.getId()); if(signMapper.countByExample(signExample) == 0) { return ResponseDTO.errorByMsg(CodeMsg.CONTEST_NOT_SIGN); } Result result = CopyUtil.copy(resultDTO, Result.class); result.setUserId(user.getId()); if(CommonUtil.isEmpty(result.getId())){ // 添加操作 // 判断成绩信息是否存在 if(isResultExist(result, "")){ return ResponseDTO.errorByMsg(CodeMsg.RESULT_EXIST); } result.setId(UuidUtil.getShortUuid()); if(resultMapper.insertSelective(result) == 0){ return ResponseDTO.errorByMsg(CodeMsg.RESULT_ADD_ERROR); } }else { // 修改操作 // 判断成绩信息是否存在 if(isResultExist(result, result.getId())){ return ResponseDTO.errorByMsg(CodeMsg.RESULT_EXIST); } if(resultMapper.updateByPrimaryKeySelective(result) == 0){ return ResponseDTO.errorByMsg(CodeMsg.RESULT_EDIT_ERROR); } } return ResponseDTO.success(true); }
标签:

SpringBoot高校运动会管理系统附带详细运行指导视频由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“SpringBoot高校运动会管理系统附带详细运行指导视频