id = $model->id; $dto->name = $model->name; $dto->type = $model->type; $dto->typeName = $model->getTypeName(); $dto->description = $model->description ?? ''; $dto->startTime = $model->start_time ? $model->start_time->format('Y-m-d H:i:s') : ''; $dto->endTime = $model->end_time ? $model->end_time->format('Y-m-d H:i:s') : ''; $dto->status = $model->status; $dto->statusName = $model->getStatusName(); $dto->displayOrder = $model->display_order; $dto->icon = $model->icon; $dto->banner = $model->banner; $dto->rewardGroupId = $model->reward_group_id; $dto->rewardGroupCode = $model->reward_group_code; $dto->configParams = $model->config_params ?? []; // 加载条件 if ($withConditions && $model->relationLoaded('conditions')) { foreach ($model->conditions as $condition) { $dto->conditions[] = ActivityConditionDto::fromModel($condition); } } return $dto; } /** * 转换为模型数据数组 * * @return array */ public function toModelArray(): array { return [ 'id' => $this->id ?? null, 'name' => $this->name, 'type' => $this->type, 'description' => $this->description, 'start_time' => $this->startTime, 'end_time' => $this->endTime, 'status' => $this->status, 'display_order' => $this->displayOrder, 'icon' => $this->icon, 'banner' => $this->banner, 'reward_group_id' => $this->rewardGroupId, 'reward_group_code' => $this->rewardGroupCode, 'config_params' => $this->configParams, ]; } }