hongjianli and factory-droid[bot]
77b324cd4c
出场顺序:显示预计出场时间和评分完成状态
...
- LineupParticipantVO添加estimatedTime字段
- 根据出场顺序计算预计出场时间(每人5分钟)
- 根据martial_result.score_status判断已完成状态
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-15 15:56:28 +08:00
hongjianli and factory-droid[bot]
42b25a7cf2
添加导出Excel组别字段、isMe标记、小程序出场顺序优化
...
- ScheduleGroupData添加category字段
- 编排保存时写入组别(男子/女子/混合)
- LineupParticipantVO添加isMe字段标记当前用户选手
- 修复SQL participant_id映射
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-15 15:56:28 +08:00
hongjianli and factory-droid[bot]
15837dff9d
docs: 更新建表语句
...
1. martial_schedule_detail添加time_slot_index字段
2. martial_schedule_participant添加check_in_status、schedule_status字段
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-15 15:56:28 +08:00
hongjianli and factory-droid[bot]
bc235b8fbe
feat: 添加编排预计时长显示
...
1. CompetitionGroupDTO添加estimatedDuration字段
2. ScheduleGroupDetailVO添加estimatedDuration字段
3. SQL查询添加estimated_duration
4. 前端场地视图显示合计时间
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-15 15:56:28 +08:00
hongjianli and factory-droid[bot]
82ae96503d
feat: 优化编排分组逻辑
...
1. 根据项目分组类别(男子/女子/混合)过滤运动员
2. 使用项目的category字段显示分组名称
3. 按team_name统计队伍数量(集体项目)
4. 添加场地容量约束和负载均衡分配
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-15 15:56:28 +08:00
hongjianli
aee06393d7
feat(schedule): 优化编排时间分配逻辑
...
- 添加晚上时段(19:00-22:00, 180分钟)
- 调整时段容量: 上午240分钟, 下午240分钟, 晚上180分钟
- 按实际时长累加分配,同一时段可安排多个项目
- 同一项目的所有分组优先安排在同一场地同一时段
2026-01-15 15:56:28 +08:00
hongjianli
8b0305997e
feat(schedule): 优化编排逻辑,同一项目尽量在同一时间段完成
...
- 按项目为单位进行分配,而不是按分组
- 计算每个项目的总时长,优先找能容纳整个项目的时间段
- 如果项目总时长不超过时间段容量(480分钟),所有分组都在同一时间段
- 只有当项目总时长超过单个时间段容量时才分散到多个时间段
- 分散时优先选择同一场地的连续时间段
2026-01-15 15:56:28 +08:00
hongjianli
529ac81131
feat(schedule): 同一项目优先分配到同一场地
...
- 新增projectVenueMap记录每个项目首次分配的场地
- 同一项目的后续分组优先分配到相同场地
- 只有当优先场地容量不足时才分配到其他场地
- 新增日志输出项目-场地分配情况
2026-01-15 15:56:28 +08:00
hongjianli
df7efac819
fix(schedule): 修复集体项目类型显示为双人的问题
...
- 修改MartialScheduleServiceImpl中type=2的显示文本从双人改为集体
- 保持与前端项目管理页面的类型定义一致(1=单人,2=集体)
2026-01-09 12:58:28 +08:00
hongjianli and factory-droid[bot]
559dea702a
feat: 项目编码自动生成
...
- 新增项目时自动生成编码,格式: C{赛事ID}-P{序号}
- 移除手动输入项目编码
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-08 17:19:23 +08:00
hongjianli and factory-droid[bot]
c40ca5b35b
fix: 修复联系人默认唯一性问题 & 添加单位统计API
...
- 问题1: 设置默认联系人时自动取消其他默认联系人
- 问题3: 新增 /organization-stats API 按单位统计运动员、项目、金额
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-08 16:08:31 +08:00
hongjianli and factory-droid[bot]
742272026b
重构项2: 优化编排规则
...
变更点1 - 使用项目maxParticipants:
- 优先使用项目配置的单位容纳人数进行分组
- 未配置时回退到全局配置(35人)
- 添加日志记录使用的容纳人数
变更点2 - 实现集体优先策略:
- 集体项目(projectType=2)优先于单人项目(projectType=1)
- 同类型项目按预计时长降序排列
- 添加排序结果日志便于调试
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-08 15:50:21 +08:00
hongjianli and factory-droid[bot]
496537ceef
重构项4: 添加出场顺序显示功能
...
后端:
- 新增LineupGroupVO和LineupParticipantVO类
- 在MartialMiniController中添加/schedule/status和/schedule/lineup接口
- 注入MartialScheduleStatusMapper和MartialScheduleGroupMapper
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-08 15:42:47 +08:00
hongjianli and factory-droid[bot]
e0d3572e34
feat: add score VO with deduction items and player number assignment
...
- Add selectScoreVOPage for score list with deduction items text
- Add chiefJudgeScore and scoreStatus fields to MartialScoreVO
- Add player number assignment in saveAndLockSchedule method
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-07 14:56:25 +08:00
hongjianli and factory-droid[bot]
a262ca9279
fix: 修复安全配置,移除/**通配符放行
...
- 移除skip-url中的/**通配符,恢复接口认证
- 添加必要的公开接口放行路径
- 修复AuthUtil.getUserId()返回-1的问题
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-07 13:05:46 +08:00
hongjianli and factory-droid[bot]
b94ac501de
feat: 编排保存时同步更新项目的venue_id
...
- 在saveDraftSchedule方法中添加同步逻辑
- 保存编排详情后自动更新martial_project.venue_id
- 保持编排系统和项目管理的数据一致性
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-07 11:55:03 +08:00
hongjianli and factory-droid[bot]
ea50330a5d
fix: 场地无项目时返回空列表而非所有项目
...
- 修改login和refreshLoginInfo方法中的项目获取逻辑
- 当场地没有关联项目时返回空列表
- 初始化projects变量为空ArrayList
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-07 11:31:27 +08:00
hongjianli and factory-droid[bot]
e3f158985a
fix: 添加@Slf4j注解修复编译错误
...
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-07 11:05:49 +08:00
hongjianli and factory-droid[bot]
eefe7167ee
fix: 报名时检查是否已存在相同选手记录,避免重复创建
...
- 在提交报名时,先检查是否已存在相同选手+比赛+项目的记录
- 如果存在则更新订单ID,而不是创建新记录
- 解决添加选手后再报名导致重复记录的问题
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-06 16:24:23 +08:00
hongjianli and factory-droid[bot]
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
hongjianli
ac44bd45fa
fix(deduction): 修复扣分项编辑时赛事ID未携带的问题
...
- 实体类添加competitionId字段
- Controller查询时从关联项目获取competitionId
- 修复project为null时的空指针异常
2026-01-06 14:56:07 +08:00
hongjianli and factory-droid[bot]
8193baf314
fix: 添加报名时间和比赛结束时间校验
...
- 报名时检查报名时间是否在有效范围内
- 报名时检查比赛是否已结束
- 如果比赛已结束,返回错误提示
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-05 17:50:38 +08:00
hongjianli and factory-droid[bot]
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
hongjianli and factory-droid[bot]
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
hongjianli and factory-droid[bot]
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
hongjianli
9fa5eb46df
fix(score): 按场地统计裁判数量而非按项目
2025-12-31 17:32:13 +08:00
hongjianli
d3c7dccf05
fix(mini): 修复裁判类型判断逻辑 - refereeType=1为主裁判
2025-12-31 16:55:22 +08:00
hongjianli
370cdc8e1e
feat(judgeInvite): 支持按场地过滤裁判邀请列表
2025-12-31 16:20:29 +08:00
hongjianli
e70dbd1144
fix(athlete): 选手列表过滤掉集体报名记录
2025-12-31 15:56:24 +08:00
hongjianli
760b7d0039
feat(registration): 报名成功后自动确认选手状态
2025-12-31 15:47:04 +08:00
hongjianli
e50b71a13d
fix(registration): 根据赛事时间动态计算报名状态
...
- 1: 待开始 (赛事未开始)
- 2: 进行中 (赛事进行中)
- 3: 已结束 (赛事已结束)
2025-12-31 15:10:37 +08:00
hongjianli
e1bf9a4351
fix(registration): 查询选手时过滤已删除记录
2025-12-31 14:42:09 +08:00
hongjianli
2f9fbbb2aa
fix(schedule): 修复集体项目类型显示为单人的问题
...
- 修改autoGroupParticipants方法中的projectType判断逻辑
- type=2(双人)或type=3(集体)都映射为projectType=2(集体)
- 之前只处理了type=3的情况,导致type=2的集体项目被错误标记为单人
2025-12-31 14:15:26 +08:00
hongjianli
f45fee050e
feat(registration): 支持集体项目报名
...
- DTO添加teamIds字段接收集体ID列表
- Controller处理集体报名逻辑
- 为每个集体创建martial_athlete记录用于编排
2025-12-31 13:48:04 +08:00
hongjianli
18895dcb76
fix(team): 修复编辑集体变成新增的问题
...
- 将DTO中的id字段改为teamId,避免uni-app对id字段的特殊处理
- 使用String类型接收teamId,避免JavaScript大数精度丢失
- 添加日志记录便于调试
2025-12-31 13:09:43 +08:00
hongjianli
89962c69e6
feat(team): 添加集体编辑功能
2025-12-31 11:51:12 +08:00
hongjianli
45758108a8
fix(team): 修复删除选手后集体信息未同步更新的问题
...
- 删除选手时级联删除集体成员关系
- 集体列表动态计算有效成员数(排除已删除选手)
- 集体详情过滤已删除的选手
2025-12-31 11:37:37 +08:00
hongjianli
19e3d94a33
fix(team): 修复集体列表不显示的问题,设置createUser字段
2025-12-31 11:16:30 +08:00
hongjianli
7fae2f0ff8
fix(competition): 修复赛事详情页面报名人数显示为0的问题
2025-12-31 11:07:14 +08:00
hongjianli
fe5ddfa253
fix(mini): 修复裁判员角色判断逻辑
...
- 修复role和referee_type不一致导致的权限问题
- 裁判员(role=judge)应该只能评分,不能修改
- 主裁判(role=chief_judge)才能修改评分
2025-12-30 18:06:25 +08:00
hongjianli
c7038a5883
feat(team): 添加集体/团队管理功能
...
- 创建martial_team和martial_team_member表
- 添加MartialTeam和MartialTeamMember实体类
- 添加MartialTeamController提供集体CRUD接口
- 支持集体成员关联管理
2025-12-30 18:02:00 +08:00
hongjianli
87a05df04f
fix(registration): 修复我的报名列表信息显示不全问题
...
- 修改list接口返回VO而非Entity
- 添加getListWithRelations方法批量加载关联数据
- 返回赛事名称、地点、时间、项目名称、选手名称等完整信息
- 优化批量查询减少数据库访问次数
2025-12-30 17:43:45 +08:00
hongjianli
b7ad819a29
fix(schedule): 完成编排时允许空分组状态
2025-12-30 12:59:08 +08:00
hongjianli
6db9a1e51d
fix(schedule): 保存草稿时设置time_period默认值
2025-12-30 12:06:31 +08:00
hongjianli
0539152dbb
fix(schedule): 保存草稿时设置默认日期,避免schedule_date为空导致插入失败
2025-12-30 11:53:34 +08:00
hongjianli
c7058b8b07
feat(schedule): 无编排数据时自动从项目和选手表生成初始分组
...
- 修改 getScheduleResult 方法,当没有编排数据时调用 generateInitialScheduleResult
- 新增 generateInitialScheduleResult 方法,从项目和选手表生成初始分组
- CompetitionGroupDTO 添加 projectId 字段
- ParticipantDTO 添加 teamName 字段
- 用户进入编排页面可直接看到选手数据,无需先执行自动编排
2025-12-30 11:10:01 +08:00
hongjianli
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
hongjianli
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
hongjianli
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
hongjianli
47d0b70a9c
docs: 更新README,简化内容并更新域名配置
2025-12-29 14:17:09 +08:00