| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?php
- namespace App\Module\Activity\Dtos;
- use App\Module\Activity\Models\UserActivityData;
- use UCore\Dto\BaseDto;
- /**
- * 用户活动数据传输对象
- */
- class UserActivityDataDto extends BaseDto
- {
- /**
- * 记录ID
- *
- * @var int
- */
- public int $id;
- /**
- * 用户ID
- *
- * @var int
- */
- public int $userId;
- /**
- * 活动ID
- *
- * @var int
- */
- public int $activityId;
- /**
- * 活动进度
- *
- * @var int
- */
- public int $progress;
- /**
- * 详细进度数据
- *
- * @var array
- */
- public array $progressData = [];
- /**
- * 最后更新时间
- *
- * @var string
- */
- public string $lastUpdate;
- /**
- * 从模型创建DTO
- *
- * @param UserActivityData $model 用户活动数据模型
- * @return self
- */
- public static function fromModel(UserActivityData $model): self
- {
- $dto = new self();
- $dto->id = $model->id;
- $dto->userId = $model->user_id;
- $dto->activityId = $model->activity_id;
- $dto->progress = $model->progress;
- $dto->progressData = $model->progress_data ?? [];
- $dto->lastUpdate = $model->last_update ? $model->last_update->format('Y-m-d H:i:s') : '';
- return $dto;
- }
- /**
- * 转换为模型数据数组
- *
- * @return array
- */
- public function toModelArray(): array
- {
- return [
- 'id' => $this->id ?? null,
- 'user_id' => $this->userId,
- 'activity_id' => $this->activityId,
- 'progress' => $this->progress,
- 'progress_data' => $this->progressData,
- 'last_update' => $this->lastUpdate,
- ];
- }
- }
|