当前位置: 首页 > news >正文

基于SpringBoot vue的CSGO赛事管理系统设计与实现

博主介绍:专注于Java(springboot ssm 等开发框架) vue  .net  php phython node.js    uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了1500+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
更多项目地址 介绍  翰文编程-CSDN博客
文末下方有源码获取地址

系统实现

4系统总体设计

4.1系统结构

CSGO赛事管理系统,它是一个由人、电脑及其他组件构成的,一种能够收集、存储、加工、传送信息的系统。该系统可以帮助决策者找出当前急需解决的问题,然后将信息快速的反馈,使管理人员能够以最快的时间知道目前的现状,进行更进一步的计划。

当前MIS系统结构目前存在两种较为流行的结构:C/S和B/S两种。

C/S结构的系统:C/S结构就是客户机服务器结构,它可以法派任务到Client端和Server端来进行,充分利用两端硬件环境的优势,来降低系统的通讯的花费。客户端主要作用是处理人机交互,执行客户端应用程序,收集数据以及向服务器发送任务请求。服务器基本作用是执行后台程序,它主要对客户机的请求申请进行反馈,除此之外,它的作用还包括:数据库存储系统的共享管理、通讯管理、文件管理等等。

B/S结构的系统:这种网络结构简化了客户端,并把系统功能实现的中心集中到服务器上,在这种模式中,只需要一个浏览器就可以了。这种结构将很多的工作交于WEB服务器,只通过浏览器请求WEB服务,随后根据请求返回信息。

通常在只在企业网内部使用,采用C/S。而使用不仅限于内网的情况下使用B/S。考虑到本管理系统的一系列需求,所以,该系统开发使用B/S结构开发。其主要功能结构如下图所示。

图4-1 系统总体功能结构图

4.2数据库设计

数据库设计是指为系统提供最优化的数据库模式,使得应用程序能够有效的存储数据,满足用户的各类需求。

4.2.1 数据库概念结构设计

概念结构设计是根据用户需求形成的。用最常的E-R方法描述数据模型进行数据库的概念设计,首先设计局部的E-R模式,最后各局部ER模式综合成一个全局模式。然后再把概念模式转换成逻辑模式。将概念设计从设计过程中独立开来,设计复杂程度降低,不受特定DBMS的限制。

1.所有实体和属性的定义如下所示

参赛战队管理属性图如下图4-2所示。

图4-2参赛战队管理实体属性图

赛事信息管理实体属性图,如图4-3所示:

图4-3赛事信息管理实体属性图

4.2.2数据库逻辑结构设计

根据E-R得出数据库包涵了以下几张数据表来实现了对数据库的存储、调用。以下分别列出数据表的每个字段名、数据类型、主外键及备注。

表4-1:申请合作

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

saishimingcheng

varchar

200

赛事名称

saishitubiao

varchar

200

赛事图标

jubandi

varchar

200

举办地

gongsizhanghao

varchar

200

公司账号

gongsimingcheng

varchar

200

公司名称

cehuashu

varchar

200

策划书

hetong

varchar

200

合同

sfsh

varchar

200

是否审核

shhf

longtext

4294967295

审核回复

表4-2:赛事信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

saishimingcheng

varchar

200

赛事名称

saishitubiao

varchar

200

赛事图标

saishijieduan

varchar

200

赛事阶段

jubandi

varchar

200

举办地

kaishiriqi

date

开始日期

jieshuriqi

date

结束日期

baomingzhuangtai

varchar

200

报名状态

clicktime

datetime

最近点击时间

表4-3:赛事报名

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

saishimingcheng

varchar

200

赛事名称

saishitubiao

varchar

200

赛事图标

jubandi

varchar

200

举办地

cansaizhanghao

varchar

200

参赛账号

zhanduimingcheng

varchar

200

战队名称

baomingriqi

date

报名日期

sfsh

varchar

200

是否审核

shhf

longtext

4294967295

审核回复

表4-4:赛事通知

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

varchar

200

图片

content

longtext

4294967295

内容

表4-5:合作方

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

gongsizhanghao

varchar

200

公司账号

mima

varchar

200

密码

gongsimingcheng

varchar

200

公司名称

yingyezhizhao

varchar

200

营业执照

fuzeren

varchar

200

负责人

shoujihaoma

varchar

200

手机号码

youxiang

varchar

200

邮箱

suoshuguojia

varchar

200

所属国家

sfsh

varchar

200

是否审核

shhf

longtext

4294967295

审核回复

表4-6:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表4-7:参赛战队

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

cansaizhanghao

varchar

200

参赛账号

mima

varchar

200

密码

zhanduimingcheng

varchar

200

战队名称

touxiang

varchar

200

头像

lianxifangshi

varchar

200

联系方式

youxiang

varchar

200

邮箱

suoshuguojia

varchar

200

所属国家

表4-8:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-9:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

5 系统详细设计

5.1系统功能模块

CSGO赛事管理系统,在系统首页可以查看首页,赛事信息,赛事通知,个人中心,后台管理等内容,并进行详细操作;如图5-1所示。

图5-1系统首页界面图

赛事信息,在赛事信息页面可以查看赛事名称,赛事图标,举办地,开始日期,结束日期,报名状态等内容;如图5-2所示。

图5-2赛事信息界面图

赛事通知,在赛事通知页面通过填写标题信息,并进行搜索操作,如图5-3所示。

图5-3赛事通知界面图

参赛战队注册,在注册页面通过填写参赛账号,密码,确认密码,战队名称,联系方式,邮箱,所属国家等内容进行注册;如图5-4所示。

图5-4个参赛战队注册界面图

5.2管理员功能模块

管理员登录,管理员进入系统前在登录页面根据要求填写用户名和密码,选择角色等信息,点击登录进行登录操作,如图5-5所示。

图5-5管理员登录界面图

管理员登录系统后,可以对首页,个人中心,参赛战队管理,合作方管理,赛事信息管理,申请合作管理,赛事报名管理,系统管理等功能进行相应的操作管理,如图5-6所示。

图5-6管理员功能界面图

参赛战队管理,在参赛战队管理页面可以对索引,参赛账号,战队名称,头像,联系方式,邮箱,所属国家等内容进行修改和删除等操作,如图5-7所示。

图5-7参赛战队管理界面图

合作方管理,在合作方页面可以对索引,公司账号,公司名称,营业执照,负责人,手机号码,邮箱,所属国家,审核回复,审核状态,审核等内容进行详情,修改和删除等操作,如图5-8所示。

图5-8合作方管理界面图

主要代码

package com.controller;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.HezuofangEntity;
import com.entity.view.HezuofangView;import com.service.HezuofangService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;/*** 合作方* 后端接口* @author * @email * @date 2022-04-20 11:00:01*/
@RestController
@RequestMapping("/hezuofang")
public class HezuofangController {@Autowiredprivate HezuofangService hezuofangService;@Autowiredprivate TokenService tokenService;/*** 登录*/@IgnoreAuth@RequestMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {HezuofangEntity user = hezuofangService.selectOne(new EntityWrapper<HezuofangEntity>().eq("gongsizhanghao", username));if(user==null || !user.getMima().equals(password)) {return R.error("账号或密码不正确");}if("否".equals(user.getSfsh())) return R.error("账号已锁定,请联系管理员审核。");String token = tokenService.generateToken(user.getId(), username,"hezuofang",  "合作方" );return R.ok().put("token", token);}/*** 注册*/@IgnoreAuth@RequestMapping("/register")public R register(@RequestBody HezuofangEntity hezuofang){//ValidatorUtils.validateEntity(hezuofang);HezuofangEntity user = hezuofangService.selectOne(new EntityWrapper<HezuofangEntity>().eq("gongsizhanghao", hezuofang.getGongsizhanghao()));if(user!=null) {return R.error("注册用户已存在");}Long uId = new Date().getTime();hezuofang.setId(uId);hezuofangService.insert(hezuofang);return R.ok();}/*** 退出*/@RequestMapping("/logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");HezuofangEntity user = hezuofangService.selectById(id);return R.ok().put("data", user);}/*** 密码重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){HezuofangEntity user = hezuofangService.selectOne(new EntityWrapper<HezuofangEntity>().eq("gongsizhanghao", username));if(user==null) {return R.error("账号不存在");}user.setMima("123456");hezuofangService.updateById(user);return R.ok("密码已重置为:123456");}/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,HezuofangEntity hezuofang,HttpServletRequest request){EntityWrapper<HezuofangEntity> ew = new EntityWrapper<HezuofangEntity>();PageUtils page = hezuofangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, hezuofang), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,HezuofangEntity hezuofang, HttpServletRequest request){EntityWrapper<HezuofangEntity> ew = new EntityWrapper<HezuofangEntity>();PageUtils page = hezuofangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, hezuofang), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( HezuofangEntity hezuofang){EntityWrapper<HezuofangEntity> ew = new EntityWrapper<HezuofangEntity>();ew.allEq(MPUtil.allEQMapPre( hezuofang, "hezuofang")); return R.ok().put("data", hezuofangService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(HezuofangEntity hezuofang){EntityWrapper< HezuofangEntity> ew = new EntityWrapper< HezuofangEntity>();ew.allEq(MPUtil.allEQMapPre( hezuofang, "hezuofang")); HezuofangView hezuofangView =  hezuofangService.selectView(ew);return R.ok("查询合作方成功").put("data", hezuofangView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){HezuofangEntity hezuofang = hezuofangService.selectById(id);return R.ok().put("data", hezuofang);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){HezuofangEntity hezuofang = hezuofangService.selectById(id);return R.ok().put("data", hezuofang);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody HezuofangEntity hezuofang, HttpServletRequest request){hezuofang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(hezuofang);HezuofangEntity user = hezuofangService.selectOne(new EntityWrapper<HezuofangEntity>().eq("gongsizhanghao", hezuofang.getGongsizhanghao()));if(user!=null) {return R.error("用户已存在");}hezuofang.setId(new Date().getTime());hezuofangService.insert(hezuofang);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody HezuofangEntity hezuofang, HttpServletRequest request){hezuofang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(hezuofang);HezuofangEntity user = hezuofangService.selectOne(new EntityWrapper<HezuofangEntity>().eq("gongsizhanghao", hezuofang.getGongsizhanghao()));if(user!=null) {return R.error("用户已存在");}hezuofang.setId(new Date().getTime());hezuofangService.insert(hezuofang);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody HezuofangEntity hezuofang, HttpServletRequest request){//ValidatorUtils.validateEntity(hezuofang);hezuofangService.updateById(hezuofang);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){hezuofangService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<HezuofangEntity> wrapper = new EntityWrapper<HezuofangEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = hezuofangService.selectCount(wrapper);return R.ok().put("count", count);}}

赛事信息管理,在赛事信息管理页面可以对索引,赛事名称,赛事图标,赛事阶段,举办地,开始日期,结束日期,报名状态等内容进行详情,修改和删除等操作,如图5-9所示。

图5-9赛事信息管理界面图

代码文档下载地址

基于SpringBootvue的CSGO赛事管理系统源码论文ppt资源-CSDN文库

大家点赞、收藏、关注、评论啦  其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者


http://www.mrgr.cn/news/46914.html

相关文章:

  • Linux安装Docker教程(详解)
  • Jmeter进行http接口并发测试
  • day09_kafka高级
  • web-app uniapp监测屏幕大小的变化对数组一行展示数据作相应处理
  • [AUTOSAR通信篇] - AutoSAR通信架构
  • 【MySQL学习笔记】MySQL视图View
  • Python 静态方法与类方法详解
  • 全面了解入侵防御系统(IPS)原理
  • jdk 11.0.8 配置 classpath
  • 开源气象大模型的原理解析
  • 十年的代购经验总结一套完善的代购集运系统需要哪些功能必备哪些优势?
  • Vue打印网页pdf,并且有按钮调整缩小放大
  • SeaTunnel Web1.0.0安装
  • Unity转Unreal5之从入门到精通 Spline(样条曲线)组件的使用
  • 六西格玛设计DFSS方法论在消费级无人机设计中的应用——张驰咨询
  • 编程题 7-16 求符合给定条件的整数集【PAT】
  • LEAP模型的低碳路径建模与温室气体核算方法!详细
  • 大学的离散数学:探索数学的逻辑之美
  • R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习技术应用
  • 中国三大著名哲学家起名大师颜廷利:古人用智慧创造汉字
  • 在 CentOS 中,前台启动和后台启动是
  • 搭建企业域名服务器案例
  • 你用过最好用的AI工具有哪些?
  • clickhouse常用脚本语句
  • 用Python实现的高校教师资格考试题库程序
  • 【机器学习】金融预测 —— 风险管理与股市预测