当前工作进度
正式服有状态错误的,写一个修复脚本,修复
已完成的任务 ✅
1. URS推荐关系同步命令实现 (2025-07-03 21:33)
- 创建
UrsReferralSyncCommand 命令类
- 支持同步指定用户或所有用户的推荐关系
- 提供批处理、强制同步、模拟运行等选项
- 完善的进度显示和错误处理机制
- Commit:
a89e5b5c
2. URS团队等级更新逻辑一致性修复 (2025-07-03 21:40)
- 修复团队统计数据与等级计算之间的不一致问题
- 确保20代团队总人数正确保存到数据库
- 更新所有相关服务使用统一的模型方法
- 创建测试命令验证修复效果
- Commit:
e851c7b9
修复详情
问题: promotion_count字段保存的是3代总和,但等级计算使用20代统计
解决:
- 修改
updateTeamStats()方法正确保存20代总人数
- 更新
getTotalTeamCount()返回20代统计
- 新增
getThreeGenTeamCount()返回前三代总和
- 确保所有服务逻辑一致性
测试结果
- ✅ 数据一致性验证通过
- ✅ 20代统计正确工作 (用户39148: promotion_count=62, 前三代=23)
- ✅ 模型方法返回正确数据
3. 修复农场灾害清理时的土地状态问题 (2025-07-04 11:11)
- 移除clearDisaster方法中强制修正土地状态为灾害的逻辑
- 修改清理完所有灾害后的土地状态更新逻辑,根据作物生长阶段设置正确的土地状态
- 确保作物成熟时即使有灾害也能保持可收获状态
- 清理灾害后如果作物已成熟,土地状态应为可收获而不是种植中
- Commit:
605848b6
问题分析
问题: 作物成熟时土地状态正确变为"可收获",但清理灾害时系统强制修正回"灾害"状态
根本原因:
- clearDisaster方法中的数据一致性检查过于严格
- 清理完灾害后固定设置为"种植中",未考虑作物生长阶段
解决方案
- 移除强制状态修正逻辑,清理灾害时不修改土地状态
- 优化清理完所有灾害后的状态设置,根据作物当前生长阶段设置正确状态
- 确保业务逻辑:作物成熟时即使有灾害也允许收获
4. 创建农场土地状态修复脚本 (2025-07-04 11:11)
- 新增FixLandStatusCommand命令,用于修复土地状态与作物生长阶段不一致的问题
- 支持模拟运行模式,可以预览需要修复的数据
- 支持指定用户和批量处理
- 自动排除软删除的作物,只处理活跃数据
- 根据作物生长阶段和灾害情况计算正确的土地状态
- 提供详细的修复日志和错误处理
- Commit:
88239d5f
脚本功能
命令: php artisan farm:fix-land-status
选项:
--dry-run: 仅显示需要修复的数据,不执行修复
--user=ID: 指定用户ID,只修复该用户的数据
--limit=N: 每批处理的数量
验证结果
- 查询发现大量不一致数据都是软删除的作物(146个软删除,18个活跃)
- 所有活跃作物的土地状态都是正确的:
- 成熟期作物:土地状态为"可收获" ✅
- 枯萎期作物:土地状态为"枯萎" ✅
- 证明之前的修复逻辑有效,当前系统状态正常
当前状态
任务已完成,等待用户验收和新任务。