id = $model->id; $dto->userId = $model->user_id; $dto->fromFundId = $model->fund_id; // 修正字段映射 $dto->toFundId = $model->to_fund_id; // 直接使用数据库中的小数值 $dto->amount = (float)$model->total_fee; $dto->relatedId = $model->re_id; // 修正字段映射 $dto->relatedType = $model->re_type; // 修正字段映射 $dto->remark = $model->remark; $dto->createTime = $model->create_time; // 如果提供了资金类型名称映射,则设置资金类型名称 if (!empty($fundNames)) { $fromFundIdValue = $model->fund_id instanceof FUND_TYPE ? $model->fund_id->value : $model->fund_id; // 修正字段映射 $toFundIdValue = $model->to_fund_id instanceof FUND_TYPE ? $model->to_fund_id->value : $model->to_fund_id; if (isset($fundNames[$fromFundIdValue])) { $dto->fromFundName = $fundNames[$fromFundIdValue]; } if (isset($fundNames[$toFundIdValue])) { $dto->toFundName = $fundNames[$toFundIdValue]; } } return $dto; } /** * 获取源资金类型ID的整数值 * * @return int */ public function getFromFundId(): int { if ($this->fromFundId instanceof FUND_TYPE) { return $this->fromFundId->value; } return (int)$this->fromFundId; } /** * 获取目标资金类型ID的整数值 * * @return int */ public function getToFundId(): int { if ($this->toFundId instanceof FUND_TYPE) { return $this->toFundId->value; } return (int)$this->toFundId; } /** * 转换为数组 * * @return array */ public function toArray(): array { $result = [ 'id' => $this->id, 'user_id' => $this->userId, 'from_fund_id' => $this->fromFundId instanceof FUND_TYPE ? $this->fromFundId->value : $this->fromFundId, 'to_fund_id' => $this->toFundId instanceof FUND_TYPE ? $this->toFundId->value : $this->toFundId, 'amount' => $this->amount, 'related_id' => $this->relatedId, 'related_type' => $this->relatedType, 'remark' => $this->remark, 'create_time' => $this->createTime, ]; if ($this->fromFundName !== null) { $result['from_fund_name'] = $this->fromFundName; } if ($this->toFundName !== null) { $result['to_fund_name'] = $this->toFundName; } return $result; } }