grid->column($field, $label)->using(AccountService::getFundsDesc()); } /** * 添加资金余额列 * * @param string $field 字段名 * @param string $label 标签名 * @return Column */ public function columnBalance(string $field = 'balance', string $label = '余额'): Column { return $this->grid->column($field, $label)->display(function ($value) { return number_format($value , 3,','); })->sortable(); } public function columnBalance1000(string $field = 'balance', string $label = '余额'): Column { return $this->grid->column($field, $label)->display(function ($value) { return number_format($value / 1000, 3); })->sortable(); } /** * 添加操作金额列 * * 复用价值:高 - 统一处理操作金额的格式化显示,包括正负值的颜色区分 * * @param string $field 字段名 * @param string $label 标签名 * @return Column */ public function columnAmount(string $field = 'amount', string $label = '操作金额'): Column { return $this->grid->column($field, $label)->display(function ($value) { $formattedValue = number_format($value / 1000, 3); if ($value > 0) { return "+{$formattedValue}"; } elseif ($value < 0) { return "{$formattedValue}"; } else { return "{$formattedValue}"; } })->sortable(); } /** * 添加操作类型列 * * 复用价值:高 - 统一处理操作类型的显示,使用枚举类型 * * @param string $field 字段名 * @param string $label 标签名 * @return Column */ public function columnOperateType(string $field = 'operate_type', string $label = '操作类型'): Column { return $this->grid->column($field, $label)->using(LOG_TYPE::getNames()); } /** * 添加时间戳格式化列 * * 复用价值:高 - 统一处理时间戳的格式化显示 * * @param string $field 字段名 * @param string $label 标签名 * @param string $format 日期格式 * @return Column */ public function columnTimestamp(string $field, string $label, string $format = 'Y-m-d H:i:s'): Column { return $this->grid->column($field, $label)->display(function ($value) use ($format) { return $value ? date($format, $value) : ''; })->sortable(); } /** * 添加金额格式化列(毫转元) * * 复用价值:高 - 统一处理金额的格式化显示,包括单位转换 * * @param string $field 字段名 * @param string $label 标签名 * @param int $decimals 小数位数 * @return Column */ public function columnMoney(string $field, string $label, int $decimals = 3): Column { return $this->grid->column($field, $label)->display(function ($value) use ($decimals) { return number_format($value / 1000, $decimals); }); } /** * 添加资金账户组合列 * * 复用价值:高 - 将用户ID和资金账户组合显示,提高信息密度 * * @param string $userIdField 用户ID字段名 * @param string $fundIdField 资金账户字段名 * @param string $label 标签名 * @return Column */ public function columnUserFund(string $userIdField = 'user_id', string $fundIdField = 'fund_id', string $label = '用户/账户'): Column { return $this->grid->column($userIdField, $label)->display(function ($userId) use ($fundIdField) { $fundId = $this->{$fundIdField}; $fundsDesc = AccountService::getFundsDesc(); if(is_int($fundId)){ $fundName = $fundsDesc[$fundId] ?? $fundId; }else{ $fundName = $fundsDesc[$fundId->value] ?? $fundId; } return "ID: {$userId}
账户: {$fundName}"; }); } /** * 添加转账信息组合列 * * 复用价值:高 - 将转账的来源和目标信息组合显示,提高信息密度 * * @param string $label 标签名 * @return Column */ public function columnTransferInfo(string $label = '转账信息'): Column { return $this->grid->column('user_id', $label)->display(function ($userId) { $fromFundId = $this->fund_id; $toUserId = $this->to_user_id; $toFundId = $this->to_fund_id; $fundsDesc = AccountService::getFundsDesc(); $fromFundName = $fundsDesc[$fromFundId] ?? $fromFundId; $toFundName = $fundsDesc[$toFundId] ?? $toFundId; return "从: 用户{$userId}/{$fromFundName}
到: 用户{$toUserId}/{$toFundName}"; }); } }