Commit Graph

95 Commits

Author SHA1 Message Date
550802a029 feat: 添加场地类型(venueType)字段支持
- MartialVenue实体添加venueType字段
- 支持室内/室外场地类型区分

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-06 15:18:00 +08:00
ac44bd45fa fix(deduction): 修复扣分项编辑时赛事ID未携带的问题
- 实体类添加competitionId字段
- Controller查询时从关联项目获取competitionId
- 修复project为null时的空指针异常
2026-01-06 14:56:07 +08:00
8193baf314 fix: 添加报名时间和比赛结束时间校验
- 报名时检查报名时间是否在有效范围内
- 报名时检查比赛是否已结束
- 如果比赛已结束,返回错误提示

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-05 17:50:38 +08:00
3af34506ba fix(mini): ensure general judge sees all projects regardless of venue
- Add check for refereeType == 3 or role == general_judge before filtering by venue
- General judges now always get all projects for the competition
- Prevents issue where general judge assigned to a venue would see no projects

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-05 16:38:30 +08:00
55ccf08246 fix(mini): 根据场地获取项目列表,解决同一项目显示在多个场地的问题
- 在MartialProject实体添加venueId字段
- 数据库martial_project表添加venue_id列
- 修改MartialMiniController:当裁判未指定项目时,根据venue_id获取该场地的项目
- 新增getProjectsByVenue方法

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-05 15:51:38 +08:00
29e9fb4e0a feat: add contact management and judge project assignment features
- Add MartialContact entity, mapper, service, and controller for contact management
- Add updateProjects endpoint to MartialJudgeInviteController for project assignment
- Fix MartialRegistrationOrderController for multi-project registration
- Update MartialJudgeInviteVO with projects field

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-05 15:10:27 +08:00
9fa5eb46df fix(score): 按场地统计裁判数量而非按项目 2025-12-31 17:32:13 +08:00
d3c7dccf05 fix(mini): 修复裁判类型判断逻辑 - refereeType=1为主裁判 2025-12-31 16:55:22 +08:00
370cdc8e1e feat(judgeInvite): 支持按场地过滤裁判邀请列表 2025-12-31 16:20:29 +08:00
e70dbd1144 fix(athlete): 选手列表过滤掉集体报名记录 2025-12-31 15:56:24 +08:00
760b7d0039 feat(registration): 报名成功后自动确认选手状态 2025-12-31 15:47:04 +08:00
e50b71a13d fix(registration): 根据赛事时间动态计算报名状态
- 1: 待开始 (赛事未开始)
- 2: 进行中 (赛事进行中)
- 3: 已结束 (赛事已结束)
2025-12-31 15:10:37 +08:00
e1bf9a4351 fix(registration): 查询选手时过滤已删除记录 2025-12-31 14:42:09 +08:00
2f9fbbb2aa fix(schedule): 修复集体项目类型显示为单人的问题
- 修改autoGroupParticipants方法中的projectType判断逻辑
- type=2(双人)或type=3(集体)都映射为projectType=2(集体)
- 之前只处理了type=3的情况,导致type=2的集体项目被错误标记为单人
2025-12-31 14:15:26 +08:00
f45fee050e feat(registration): 支持集体项目报名
- DTO添加teamIds字段接收集体ID列表
- Controller处理集体报名逻辑
- 为每个集体创建martial_athlete记录用于编排
2025-12-31 13:48:04 +08:00
18895dcb76 fix(team): 修复编辑集体变成新增的问题
- 将DTO中的id字段改为teamId,避免uni-app对id字段的特殊处理
- 使用String类型接收teamId,避免JavaScript大数精度丢失
- 添加日志记录便于调试
2025-12-31 13:09:43 +08:00
89962c69e6 feat(team): 添加集体编辑功能 2025-12-31 11:51:12 +08:00
45758108a8 fix(team): 修复删除选手后集体信息未同步更新的问题
- 删除选手时级联删除集体成员关系
- 集体列表动态计算有效成员数(排除已删除选手)
- 集体详情过滤已删除的选手
2025-12-31 11:37:37 +08:00
19e3d94a33 fix(team): 修复集体列表不显示的问题,设置createUser字段 2025-12-31 11:16:30 +08:00
7fae2f0ff8 fix(competition): 修复赛事详情页面报名人数显示为0的问题 2025-12-31 11:07:14 +08:00
fe5ddfa253 fix(mini): 修复裁判员角色判断逻辑
- 修复role和referee_type不一致导致的权限问题
- 裁判员(role=judge)应该只能评分,不能修改
- 主裁判(role=chief_judge)才能修改评分
2025-12-30 18:06:25 +08:00
c7038a5883 feat(team): 添加集体/团队管理功能
- 创建martial_team和martial_team_member表
- 添加MartialTeam和MartialTeamMember实体类
- 添加MartialTeamController提供集体CRUD接口
- 支持集体成员关联管理
2025-12-30 18:02:00 +08:00
87a05df04f fix(registration): 修复我的报名列表信息显示不全问题
- 修改list接口返回VO而非Entity
- 添加getListWithRelations方法批量加载关联数据
- 返回赛事名称、地点、时间、项目名称、选手名称等完整信息
- 优化批量查询减少数据库访问次数
2025-12-30 17:43:45 +08:00
b7ad819a29 fix(schedule): 完成编排时允许空分组状态 2025-12-30 12:59:08 +08:00
6db9a1e51d fix(schedule): 保存草稿时设置time_period默认值 2025-12-30 12:06:31 +08:00
0539152dbb fix(schedule): 保存草稿时设置默认日期,避免schedule_date为空导致插入失败 2025-12-30 11:53:34 +08:00
c7058b8b07 feat(schedule): 无编排数据时自动从项目和选手表生成初始分组
- 修改 getScheduleResult 方法,当没有编排数据时调用 generateInitialScheduleResult
- 新增 generateInitialScheduleResult 方法,从项目和选手表生成初始分组
- CompetitionGroupDTO 添加 projectId 字段
- ParticipantDTO 添加 teamName 字段
- 用户进入编排页面可直接看到选手数据,无需先执行自动编排
2025-12-30 11:10:01 +08:00
16b55adf81 feat(schedule): 添加赛程配置API,支持动态时间段配置
- 添加 GET /martial/schedule/config API 暴露 ScheduleConfig
- 返回 morningStartTime, afternoonStartTime 等配置
- 更新 docker-compose.yml 使用 Dockerfile.quick
2025-12-30 10:51:04 +08:00
0b5fc9fb71 feat: improve schedule auto-arrange functionality
- Add ScheduleConfig for configurable schedule parameters
- Add updateParticipantCheckInStatus API for exception status persistence
- Use configurable thresholds for group splitting and capacity warning
- Add @Slf4j to MartialScheduleServiceImpl
2025-12-29 15:07:52 +08:00
86e4580e5d feat: add multi-stage Dockerfile for full build with martial-tool
- Add Dockerfile.fullbuild: multi-stage build that compiles martial-tool
- Rename Dockerfile to Dockerfile.quick for quick builds (pre-built jar)
- Update docker-compose.yml to use parent directory context
- Update README with new deployment instructions
2025-12-29 14:34:54 +08:00
47d0b70a9c docs: 更新README,简化内容并更新域名配置 2025-12-29 14:17:09 +08:00
105e457f7c docs: README添加数据库迁移文档链接 2025-12-29 14:11:21 +08:00
d583bdc5c8 feat: 集成Flyway数据库迁移工具
- 添加Flyway依赖到pom.xml
- 配置application.yml启用Flyway
- 创建迁移脚本目录db/migration
- 添加V1基线脚本和V2项目字段迁移脚本
- 添加DATABASE_MIGRATION.md使用文档
2025-12-29 14:07:27 +08:00
07845f3a4f fix: 同步martial_project表结构,添加event_type和报名时间字段 2025-12-29 13:53:23 +08:00
ec2382b447 feat: 添加项目报名开始时间和结束时间字段 2025-12-29 12:04:36 +08:00
bcba649b02 裁判邀请列表添加负责场地字段
- MartialJudgeInviteVO: 添加venueName字段
- MartialJudgeInviteMapper.xml: 关联查询场地名称

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-12-29 10:32:28 +08:00
a19baf3907 feat: 添加项目类型(eventType)字段支持
- 在MartialProject实体类中添加eventType字段
- 在MartialProjectController中添加eventType查询支持
- 项目类型: 1-套路, 2-散打, 3-器械, 4-对练
2025-12-28 19:02:44 +08:00
301bb7a227 feat: 项目列表支持模糊查询
- 项目名称支持模糊查询
- 分组类别支持模糊查询
- 赛事ID和参赛类型精确匹配
- 添加排序(按sort_order升序,create_time降序)

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-12-28 17:20:10 +08:00
fdd346b27f fix: default venue_id to first venue when null or invalid
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-12-28 16:20:11 +08:00
1d5ac896dd feat: 添加已确认成绩列表API
- 新增 /mini/general/confirmed 接口
- MartialResultServiceImpl 添加 getConfirmedGeneralList 方法
- 支持总裁页面同时显示待确认和已确认成绩

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-12-28 16:09:41 +08:00
aab66f79fe feat: 添加三级裁判评分系统(裁判员→主裁判→总裁)
- 新增总裁(裁判长)角色支持,referee_type=3
- MartialResult实体添加主裁判/总裁确认字段和score_status状态
- MartialJudgeInvite实体添加角色常量和判断方法
- MartialMiniController添加三级确认API和登录角色判断
- MartialResultServiceImpl实现三级确认业务逻辑
- MartialScoreServiceImpl主裁判确认时同步martial_result表

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-12-28 15:49:11 +08:00
491c8db26c chore: 添加 minio_data 到 gitignore 2025-12-28 13:44:56 +08:00
4a2071ddda refactor: 裁判角色名称修改 - 裁判长→主裁判, 普通裁判→裁判员
- 修改所有Java文件中的注释和Schema描述
- 更新MartialScoreServiceImpl中的评分修改记录名称

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 11:37:11 +08:00
559e97b672 feat(mini): 裁判未指定项目时自动获取比赛所有项目
- login和refreshToken接口:如果invite.projects为空,自动获取该比赛的所有项目
- 新增getAllProjectsByCompetition方法查询比赛所有项目
- 支持裁判负责整个场地所有项目的需求

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 11:11:29 +08:00
35a5369e81 feat: 批量导入裁判时根据refereeType自动设置角色
- batchGenerateInviteCode方法查询裁判的refereeType
- refereeType=1 自动设置为chief_judge(裁判长)
- 其他情况设置为judge(普通裁判)

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 16:04:46 +08:00
dca5e5050f fix: 修复批量导入裁判时venueId和projects参数丢失问题
- BatchGenerateInviteDTO添加venueId和projects字段
- batchGenerateInviteCode方法传递venueId和projects给generateDto
- MartialMiniController添加competitionId参数过滤选手
- 新增RegistrationSubmitDTO

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 15:44:29 +08:00
67908a4dd0 Merge branch 'main' of git.waypeak.work:martial/martial-master 2025-12-26 10:32:03 +08:00
0c9322c510 fix bugs 2025-12-26 10:31:41 +08:00
7c1b9de6b4 fix: 修复登录和评分查询的场地ID问题
1. 登录API使用martial_venue表替代mt_venue表查询场地信息
2. 评分查询时过滤无效的venueId(null或<=0)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 20:28:33 +08:00
284ebd2e73 fix: 修复裁判评分列表数据不一致问题
- MartialMiniController: getAthletes方法添加venueId过滤
- MiniScoreModifyDTO: 添加venueId字段
- MartialScoreServiceImpl: modifyScoreByAdmin方法设置venueId

问题原因:
1. 后端查询评分记录时缺少场地过滤
2. 裁判长修改评分时未设置venue_id
导致不同场地的裁判看到混乱的数据
2025-12-25 10:55:19 +08:00