'integer', 'target_id' => 'integer', 'operator' => 'integer', 'value' => 'integer', 'param1' => 'integer', 'param2' => 'integer', 'extra_data' => 'json', ]; /** * 获取条件项所属的条件组 * * @return BelongsTo */ public function conditionGroup(): BelongsTo { return $this->belongsTo(GameConditionGroup::class, 'group_id', 'id'); } /** * 获取条件类型名称 * * @return string */ public function getConditionTypeName(): string { return CONDITION_TYPE::getName($this->condition_type); } /** * 获取比较运算符名称 * * @return string */ public function getOperatorName(): string { return CONDITION_OPERATOR::getName($this->operator); } /** * 获取比较运算符符号 * * @return string */ public function getOperatorSymbol(): string { return CONDITION_OPERATOR::getSymbol($this->operator); } /** * 获取条件描述 * * @return string */ public function getDescription(): string { $typeName = $this->getConditionTypeName(); $operatorSymbol = $this->getOperatorSymbol(); $targetName = $this->getTargetName(); return "{$typeName} {$targetName} {$operatorSymbol} {$this->value}"; } /** * 获取目标名称 * * @return string */ public function getTargetName(): string { switch ($this->condition_type) { case CONDITION_TYPE::LAND_LEVEL->value: $landType = \App\Module\Farm\Models\FarmLandType::find($this->target_id); return $landType ? $landType->name : "土地类型 {$this->target_id}"; case CONDITION_TYPE::HOUSE_LEVEL->value: return "房屋等级"; case CONDITION_TYPE::PET_LEVEL->value: $pet = \App\Module\Pet\Models\PetConfig::find($this->target_id); return $pet ? $pet->name : "宠物 {$this->target_id}"; case CONDITION_TYPE::ITEM_COUNT->value: $item = \App\Module\GameItems\Models\Item::find($this->target_id); return $item ? $item->name : "物品 {$this->target_id}"; case CONDITION_TYPE::CURRENCY_COUNT->value: $currency = \App\Module\Fund\Models\FundCurrencyModel::find($this->target_id); return $currency ? $currency->name : "代币(币种) {$this->target_id}"; case CONDITION_TYPE::FUND_COUNT->value: $fund = \App\Module\Fund\Models\FundConfigModel::find($this->target_id); return $fund ? $fund->name : "代币(账户) {$this->target_id}"; default: return "未知目标 {$this->target_id}"; } } }