orderByDesc('upgrade_time') ->limit($limit) ->get(); } /** * 获取用户的房屋升级记录 * * @param int $userId * @param int $limit * @return Collection */ public function findHouseUpgradesByUserId(int $userId, int $limit = 100): Collection { return FarmUpgradeLog::where('user_id', $userId) ->where('upgrade_type', UPGRADE_TYPE::HOUSE) ->orderByDesc('upgrade_time') ->limit($limit) ->get(); } /** * 获取用户的土地升级记录 * * @param int $userId * @param int $limit * @return Collection */ public function findLandUpgradesByUserId(int $userId, int $limit = 100): Collection { return FarmUpgradeLog::where('user_id', $userId) ->where('upgrade_type', UPGRADE_TYPE::LAND) ->orderByDesc('upgrade_time') ->limit($limit) ->get(); } /** * 获取指定时间段内的升级记录 * * @param string $startTime * @param string $endTime * @return Collection */ public function findByTimeRange(string $startTime, string $endTime): Collection { return FarmUpgradeLog::whereBetween('upgrade_time', [$startTime, $endTime]) ->orderByDesc('upgrade_time') ->get(); } /** * 清理过期的升级记录 * * @param int $days 保留天数 * @return int */ public function cleanupOldLogs(int $days = 90): int { $date = now()->subDays($days); return FarmUpgradeLog::where('upgrade_time', '<', $date)->delete(); } }