id = $model->id; $dto->userId = $model->user_id; $dto->fundId = $model->fund_id; // 直接使用数据库中的小数值 $dto->totalFee = (float)$model->total_fee; $dto->status = $model->status; $dto->adminId = $model->admin_id; $dto->remark = $model->remark; $dto->createTime = $model->create_time; // 如果提供了资金类型名称映射,则设置资金类型名称 if (!empty($fundNames) && isset($fundNames[$model->fund_id instanceof FUND_TYPE ? $model->fund_id->value : $model->fund_id])) { $dto->fundName = $fundNames[$model->fund_id instanceof FUND_TYPE ? $model->fund_id->value : $model->fund_id]; } return $dto; } /** * 获取资金类型ID的整数值 * * @return int */ public function getFundId(): int { if ($this->fundId instanceof FUND_TYPE) { return $this->fundId->value; } return (int)$this->fundId; } /** * 转换为数组 * * @return array */ public function toArray(): array { $result = [ 'id' => $this->id, 'user_id' => $this->userId, 'fund_id' => $this->fundId instanceof FUND_TYPE ? $this->fundId->value : $this->fundId, 'total_fee' => $this->totalFee, 'status' => $this->status, 'admin_id' => $this->adminId, 'remark' => $this->remark, 'create_time' => $this->createTime, ]; if ($this->fundName !== null) { $result['fund_name'] = $this->fundName; } return $result; } }