فهرست منبع

feat(FarmCrop): 添加当前阶段开始时间字段

- 在 FarmCrop 模型中添加 stage_start_time 字段,用于记录当前生长阶段的开始时间
- 此字段将在种植时和状态变化时进行维护
- 为后续可能的阶段时间相关功能做准备
notfff 7 ماه پیش
والد
کامیت
d94ad041a4

+ 1 - 0
app/Module/Farm/Databases/GenerateSql/farm_crops.sql

@@ -11,6 +11,7 @@ CREATE TABLE `kku_farm_crops` (
   `seed_id` bigint unsigned NOT NULL COMMENT '种子ID',
   `plant_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '种植时间',
   `growth_stage` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '生长阶段:1种子期,2发芽期,3生长期,4成熟期,5枯萎期',
+  `stage_start_time` timestamp NULL DEFAULT NULL COMMENT '当前阶段结束时间',
   `stage_end_time` timestamp NULL DEFAULT NULL COMMENT '当前阶段结束时间',
   `disasters` json DEFAULT NULL COMMENT '灾害情况',
   `fertilized` tinyint(1) NOT NULL DEFAULT '0' COMMENT '当前阶段是否已使用化肥',

+ 2 - 168
app/Module/Farm/Docs/DEV.md

@@ -1,169 +1,3 @@
-# 农场模块开发计划
+# 
 
-## 1. 创建基本目录结构 ✅
-
-- [x] 创建 AdminControllers 目录
-- [x] 创建 Commands 目录
-- [x] 创建 Enums 目录
-- [x] 创建 Events 目录
-- [x] 创建 Logics 目录
-- [x] 创建 Models 目录
-- [x] 创建 Providers 目录
-- [x] 创建 Repositories 目录
-- [x] 创建 Services 目录
-- [x] 创建 Dtos 目录
-
-## 2. 实现枚举类 ✅
-
-- [x] LAND_STATUS - 土地状态枚举(空闲、种植中、灾害、可收获、枯萎)
-- [x] LAND_TYPE - 土地类型枚举(普通、红土、黑土、金、蓝、紫)
-- [x] SEED_TYPE - 种子类型枚举(普通、神秘、巨化)
-- [x] GROWTH_STAGE - 生长阶段枚举(种子期、发芽期、生长期、成熟期、枯萎期)
-- [x] DISASTER_TYPE - 灾害类型枚举(干旱、虫害、杂草)
-- [x] BUFF_TYPE - 神灵加持类型枚举(丰收之神、雨露之神、屠草之神、拭虫之神)
-- [x] UPGRADE_TYPE - 升级类型枚举(土地、房屋)
-- [x] ~~TALENT_LEVEL - 达人等级枚举(无、初级、中级、高级、资深、顶级)~~ (已移至Team模块)
-
-## 3. 实现模型类 ✅
-
-- [x] FarmUser - 用户农场信息
-- [x] FarmGodBuff - 神灵加持
-- [x] FarmLand - 土地信息
-- [x] FarmCrop - 作物信息
-- [x] FarmSeed - 种子配置
-- [x] FarmSeedOutput - 种子产出配置
-- [x] FarmHouseConfig - 房屋等级配置
-- [x] FarmLandType - 土地类型配置
-- [x] FarmLandUpgradeConfig - 土地升级配置
-- [x] FarmHarvestLog - 收获记录
-- [x] FarmUpgradeLog - 升级记录
-- [x] FarmUserReferral - 用户推荐关系
-- [x] ~~FarmUserTalent - 达人等级~~ (已移至Team模块)
-- [x] FarmTeamProfit - 团队收益记录
-
-## 4. 实现服务层和逻辑层 ✅
-
-### 4.1 逻辑层(内部) ✅
-
-- [x] FarmLogic - 农场基础逻辑
-- [x] LandLogic - 土地管理逻辑
-- [x] CropLogic - 作物管理逻辑
-- [x] SeedLogic - 种子管理逻辑
-- [x] DisasterLogic - 灾害管理逻辑
-- [x] HouseLogic - 房屋管理逻辑
-- [x] BuffLogic - 神灵加持逻辑
-- [x] TeamLogic - 团队系统逻辑
-
-### 4.2 服务层(对外,静态方法) ✅
-
-- [x] FarmService - 农场基础服务
-- [x] LandService - 土地管理服务
-- [x] CropService - 作物管理服务
-- [x] SeedService - 种子管理服务
-- [x] HouseService - 房屋管理服务
-- [x] BuffService - 神灵加持服务
-- [x] TeamService - 团队系统服务
-
-## 5. 实现数据仓库 ✅
-
-- [x] FarmUserRepository
-- [x] FarmGodBuffRepository
-- [x] FarmLandRepository
-- [x] FarmCropRepository
-- [x] FarmSeedRepository
-- [x] FarmSeedOutputRepository
-- [x] FarmHouseConfigRepository
-- [x] FarmLandTypeRepository
-- [x] FarmLandUpgradeConfigRepository
-- [x] FarmHarvestLogRepository
-- [x] FarmUpgradeLogRepository
-- [x] FarmUserReferralRepository
-- [x] ~~FarmUserTalentRepository~~ (已移至Team模块)
-- [x] FarmTeamProfitRepository
-
-## 6. 实现后台控制器 ✅
-
-- [x] FarmUserController - 用户农场管理
-- [x] FarmGodBuffController - 神灵加持管理
-- [x] FarmLandController - 土地管理
-- [x] FarmCropController - 作物管理
-- [x] FarmSeedController - 种子配置管理
-- [x] FarmSeedOutputController - 种子产出配置管理
-- [x] FarmHouseConfigController - 房屋等级配置管理
-- [x] FarmLandTypeController - 土地类型配置管理
-- [x] FarmLandUpgradeConfigController - 土地升级配置管理
-- [x] FarmHarvestLogController - 收获记录管理
-- [x] FarmUpgradeLogController - 升级记录管理
-- [x] FarmUserReferralController - 用户推荐关系管理
-- [x] ~~FarmUserTalentController - 达人等级管理~~ (已移至Team模块)
-- [x] FarmTeamProfitController - 团队收益记录管理
-
-## 7. 实现事件和监听器 ✅
-
-### 7.1 事件
-
-- [x] FarmCreatedEvent - 农场创建事件
-- [x] CropPlantedEvent - 作物种植事件
-- [x] CropGrowthStageChangedEvent - 作物生长阶段变更事件
-- [x] CropHarvestedEvent - 作物收获事件
-- [x] DisasterGeneratedEvent - 灾害生成事件
-- [x] DisasterClearedEvent - 灾害清理事件
-- [x] HouseUpgradedEvent - 房屋升级事件
-- [x] LandUpgradedEvent - 土地升级事件
-- [x] BuffActivatedEvent - 神灵加持激活事件
-- [x] ~~TalentLevelChangedEvent - 达人等级变更事件~~ (已移至Team模块)
-- [x] TeamProfitCreatedEvent - 团队收益创建事件
-
-### 7.2 监听器
-
-- [x] UpdateCropStatusListener - 更新作物状态
-- [x] GenerateDisasterListener - 生成灾害
-- [x] CalculateHarvestOutputListener - 计算收获产出
-- [x] DistributeTeamProfitListener - 分配团队收益
-- [x] ~~UpdateTalentLevelListener - 更新达人等级~~ (已移至Team模块)
-- [x] CheckHouseDowngradeListener - 检查房屋降级
-
-## 8. 实现服务提供者 ✅
-
-- [x] FarmServiceProvider - 注册服务、事件、命令等
-
-## 9. 实现命令行工具 ✅
-
-- [x] UpdateCropGrowthCommand - 更新作物生长状态
-- [x] GenerateDisastersCommand - 生成灾害
-- [x] CheckHouseDowngradeCommand - 检查房屋降级
-- [x] CleanExpiredLogsCommand - 清理过期日志
-- [x] RebuildFarmCacheCommand - 重建农场缓存
-
-## 10. 实现数据传输对象 ✅
-
-- [x] FarmInfoDto - 农场信息DTO
-- [x] LandInfoDto - 土地信息DTO
-- [x] CropInfoDto - 作物信息DTO
-- [x] HarvestResultDto - 收获结果DTO
-- [x] DisasterInfoDto - 灾害信息DTO
-- [x] TeamInfoDto - 团队信息DTO
-
-## 开发进度
-
-- ✅ 已完成
-- 🔄 进行中
-- ⏳ 待开始
-
-### 当前进度
-
-- ✅ 已完成基本目录结构创建
-- ✅ 已完成枚举类实现
-- ✅ 已完成模型类实现
-- ✅ 已完成逻辑层实现
-- ✅ 已完成服务层实现
-- ✅ 已完成数据仓库实现
-- ✅ 已完成后台控制器实现
-- ✅ 已完成事件和监听器实现
-- ✅ 已完成服务提供者实现
-- ✅ 已完成命令行工具实现
-- ✅ 已完成数据传输对象实现
-
-### 下一步计划
-
-1. 测试功能
+FarmCrop 增加了  $stage_start_time 当前阶段开始时间 / $stage_end_time 当前阶段结束时间,对其进行维护,在种植时/状态变化时进行维护 

+ 1 - 1
app/Module/Farm/Dtos/CropInfoDto.php

@@ -104,7 +104,7 @@ class CropInfoDto
 //        dd($crop);
         $dto->plantTime = $crop->plant_time;
         $dto->growthStage = $crop->growth_stage;
-        $dto->growthStageName = GROWTH_STAGE::getName($crop->growth_stage);
+//        $dto->growthStageName = $crop->growth_stage->name;
         $dto->stageEndTime = $crop->stage_end_time ? $crop->stage_end_time : null;
         $dto->disasters = $crop->disasters;
         $dto->fertilized = $crop->fertilized;

+ 1 - 0
app/Module/Farm/Models/FarmCrop.php

@@ -16,6 +16,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
  * @property  int  $seed_id  种子ID
  * @property  string  $plant_time  种植时间
  * @property  int  $growth_stage  生长阶段:1种子期,2发芽期,3生长期,4成熟期,5枯萎期
+ * @property  string  $stage_start_time  当前阶段结束时间
  * @property  string  $stage_end_time  当前阶段结束时间
  * @property  array  $disasters  灾害情况
  * @property  bool  $fertilized  当前阶段是否已使用化肥