'integer', 'status' => 'integer', 'display_order' => 'integer', 'reward_group_id' => 'integer', 'config_params' => 'json', 'start_time' => 'datetime', 'end_time' => 'datetime', ]; /** * 获取活动类型名称 * * @return string */ public function getTypeName(): string { return ACTIVITY_TYPE::getName($this->type); } /** * 获取活动状态名称 * * @return string */ public function getStatusName(): string { return ACTIVITY_STATUS::getName($this->status); } /** * 获取活动的参与记录 * * @return HasMany */ public function participations(): HasMany { return $this->hasMany(ActivityParticipation::class, 'activity_id', 'id'); } /** * 获取活动的用户数据 * * @return HasMany */ public function userData(): HasMany { return $this->hasMany(UserActivityData::class, 'activity_id', 'id'); } /** * 获取活动的条件 * * @return HasMany */ public function conditions(): HasMany { return $this->hasMany(ActivityCondition::class, 'activity_id', 'id'); } /** * 检查活动是否进行中 * * @return bool */ public function isInProgress(): bool { return $this->status === ACTIVITY_STATUS::IN_PROGRESS->value; } /** * 检查活动是否已结束 * * @return bool */ public function isEnded(): bool { return $this->status === ACTIVITY_STATUS::ENDED->value || $this->status === ACTIVITY_STATUS::CLOSED->value; } /** * 检查活动是否未开始 * * @return bool */ public function isNotStarted(): bool { return $this->status === ACTIVITY_STATUS::NOT_STARTED->value; } }