返回作品

中超球员评估平台

创建于 2025 年 3 月 27 日

标签
  • Java
  • Spring Boot
  • MyBatis-Plus
  • Easy-Query
  • MySQL
  • Vue 2
  • Element UI
  • ECharts

项目介绍

中超球员评估平台是一个面向中国足球超级联赛的球员评估与数据统计管理系统,项目以若依 RuoYi-Vue 3.8.9 为脚手架二次开发,业务代码集中在后端 ruoyi-admin 模块的 com.ruoyi.league 包与前端 src/views/league 目录下。系统以”球员信息(player_info)— 场上表现(player_performance)— 经济效益(player_economy)“三张主表为核心数据模型,加上俱乐部维度的 club_infoclub_performanceclub_eco 三张表,构成”人 + 数据 + 钱”的完整评估闭环。

功能上系统按”数据可视化、评估榜单、推荐引擎”三条线组织:联赛概况页用中国地图标注 16 支俱乐部的城市分布并展示积分榜/进球榜;球员评估页以四组 ECharts 图表呈现进攻、防守、出场时间与犯规纪律的 TOP10 榜单;场上表现评估与经济效益评估提供全量明细的维护与查询;俱乐部评估把某支俱乐部的场上表现与经济效益并排呈现;转会与阵容推荐则基于六类条件自动产出转入、转出候选与最佳阵容,把”数据”真正变成”决策建议”。数据库脚本(ry-qiuyuan.sql,MySQL 8.0.35 全库导出)中已预置球员、俱乐部、表现与经济效益的完整演示数据,球员姓名(阿德本罗、曹永竞等)与俱乐部均为真实中超数据。

项目架构

项目沿用若依经典的”前后端分离 + 后端多模块”结构:

模块技术栈说明
ruoyi-adminSpring Boot 2.5.15、Spring Security + JWT启动模块,com.ruoyi.league 为业务包:controllerservice/impldomainmapper 四层
ruoyi-commonMyBatis-Plus 3.5.4、Easy-Query、Fastjson2、POI通用层,引入 Easy-Query 实体代理查询,支持类型安全的 Lambda 连表查询
ruoyi-systemMyBatis-Plus用户、角色、菜单、部门、字典等系统管理能力
ruoyi-frameworkDruid 1.2.23、Redis、Quartz数据源、安全过滤、Token 服务、定时任务等框架设施
ruoyi-webVue 2.6.12、Element UI 2.15.14、ECharts 5.4.0、Axios管理后台前端,src/views/league 下按功能组织页面,src/api/league 封装接口

业务层共六个 Controller:PlayerInfoController/league/info)、PlayerEconomyController/league/economy)、PlayerCountController/playerCount/economy/{type})、ClubInfoController/league/club-info)、ClubPerformanceController/league/performance)、ClubEcoController/league/eco)。普通 CRUD 与分页沿用若依的 startPage() + TableDataInfo 模式;推荐类接口使用 Easy-Query 的 leftJoinplayer_economy/player_performanceplayer_info 之间联表,并把位置、年龄等维度字段投影到结果对象中;PlayerCountController 则用 MyBatis-Plus 的 LambdaQueryWrapper.orderByDesc(...).last("limit 10") 直接产出各维度 TOP10。统计图表由前端 ECharts 5.4.0 负责渲染,中国地图数据以本地 GeoJSON(src/api/league/chinaArea.json)加载,并内置各俱乐部城市的备用坐标表。

核心功能

联赛概况。 首页 league/overview 是大屏式数据看板:左侧中国地图通过 areaClub()/league/club-info/area)拉取 16 支俱乐部的省份归属后逐个标点(城市坐标从 GeoJSON 多边形中心计算,找不到时回退到内置坐标表);右侧”中超联赛积分榜 / 俱乐部进球榜”双 tab,分别调用 rankPointClub()rankGoalClub() 接口,以 ECharts 横向条形图展示俱乐部积分与进球排行。

球员榜单图表。 league/player 页面按四组板块展示 TOP10 榜单:进攻表现(球员进球榜/助攻榜/传球榜,type 11/12/13)、防守表现(抢断榜/拦截榜/解围榜,type 21/22/23)、出场时间与犯规纪律(type 31/41),全部由 PlayerCountController 按对应字段降序截取前 10 条返回,前端以 tab 切换 + 柱状图/折线图渲染。

场上表现评估。 league/info 页面以球员为主数据(姓名、年龄、身份:内援/外援/港澳台、注册位置:前锋/中场/后卫/门将、身价),级联维护 player_performance 场上表现:出场数/首发数/出场时间,进球、助攻、射门/射正、传球(含成功率)、创造机会、触球、过人、抢断、拦截、解围、犯规、黄牌/红牌等 30 余项指标,并为进球、助攻、创造机会、过人、抢断、拦截、解围提供”场均数”与”平均时间间隔”两类派生统计;新增/修改/删除球员时 Service 层对表现子表做事务级联。

经济效益评估。 league/economy 页面把薪资(年薪,万人民币)与身价(万欧元)作为投入成本,为每项产出计算”平均经济成本”:进球、助攻、传球、创造机会、触球、过人、抢断、拦截、解围均同时给出累计数量与对应单位成本(如进球经济成本、抢断经济成本),直观回答”每一粒进球花了多少钱”。俱乐部维度(club_eco)同样计算总经济成本、平均积分经济成本、俱乐部进球/射门/传球/抢断等经济成本,供”俱乐部评估”页面使用。

俱乐部评估。 league/club/assess 页面选择任意俱乐部后调用 assessClub(clubId)/league/club-info/assess),后端一次性聚合 club_info 基础信息、club_performance 场上表现(积分、进球、创造机会、传球、射门、拦截、抢断、解围、犯规及其场均值)与 club_eco 经济效益(总成本、积分/进球/射门/传球/触球/抢断/拦截/解围/犯规平均成本),前端以两张数据卡片并排呈现。

转会与阵容推荐。 league/suggest(阵容推荐)、league/transferIn(转入推荐)、league/transferOut(转出推荐)三个页面共用同一套”条件”模型——六类条件:助攻经济效益(1)、组织经济效益(2)、防守经济效益(3)、进攻表现(4)、组织表现(5)、防守表现(6),可叠加选择俱乐部。后端 suggestList 不限俱乐部按”前锋/中场”等位置约束 + 经济成本升序(或表现指标降序)取前 5 名作为最佳阵容候选;suggestListInclubId.ne() 排除本队球员产出转入推荐;suggestListOutclubId.eq() 限定本队球员、按成本降序产出”高成本低产出”的转出建议。league/transferInfo 则是全联盟球员的转会信息总览,可按场上位置筛选并展示身价与全部场上表现。

功能截图

暂无运行截图。

快速上手

  1. 准备数据库:使用 MySQL 8 执行 ry-qiuyuan.sql 全量脚本(Navicat 导出,包含框架系统表、六张业务表及真实球员/俱乐部演示数据),数据源连接可参考脚本头部的 Source Host(116.204.39.173)。

  2. 启动后端:

cd 20250327-中超球员评估平台-api
# 修改 ruoyi-admin/src/main/resources/application-druid.yml 中的数据库地址、账号、密码
mvn clean package -DskipTests
java -jar ruoyi-admin/target/ruoyi-admin.jar
  1. 启动前端:
cd 20250327-中超球员评估平台-web
npm install
npm run dev   # http://localhost:80,默认账号 admin / admin123
  1. 体验流程:先看”联赛概况”地图与积分/进球榜 → “球员评估”切换进攻、防守、纪律榜单 → “场上表现评估 / 经济效益评估”查看球员全量指标与单位经济成本 → “俱乐部评估”选择任意俱乐部查看表现与成本对比 → 在”转会推荐”选择条件与目标俱乐部,查看转入/转出候选与”阵容推荐”结果。

总结

中超球员评估平台是一个业务主题鲜明、数据模型完整的若依实战项目:以”球员/俱乐部 × 场上表现/经济效益”六张业务表承载真实中超数据,用 ECharts 与本地 GeoJSON 地图把联赛概况、四组球员榜单做成可视化看板;经济效益评估把薪资、身价换算成”每项产出的平均经济成本”,是项目最独特的业务创意;转会与阵容推荐基于 Easy-Query 连表查询,把位置约束、俱乐部过滤与成本/表现排序组合成可解释的推荐逻辑,真正让统计数据服务于决策。技术上值得借鉴的点包括:在若依脚手架上叠加 Easy-Query 实体代理实现类型安全连表、LambdaQueryWrapper 快速产出 TOP-N 榜单、推荐接口按 type 参数拆分的多分支编排方式。对希望学习在成熟脚手架(Spring Boot + MyBatis-Plus + Vue 2 + Element UI + ECharts)上快速落地数据分析类业务的开发者,这是一个完整的参考案例。