request->userInfo; // 获取查询参数 $page = Request::get('page', 1, 'intval'); $limit = Request::get('limit', 20, 'intval'); // 筛选条件 $filters = [ // 时间筛选 'start_time' => Request::get('start_time', '', 'trim'), 'end_time' => Request::get('end_time', '', 'trim'), // 平台ID筛选 'platform_id' => Request::get('platform_id', '', 'trim'), // 状态筛选 'status' => Request::get('status', ''), // 转账流水号筛选 'tx_id' => Request::get('tx_id', '', 'trim'), ]; try { $result = TransferLogModel::getTransferLogs($userInfo['merchant_id'], $page, $limit, $filters); return json_success($result, '获取成功'); } catch (\Exception $e) { return json_error([], '获取转账记录失败:' . $e->getMessage()); } } /** * 获取转账记录详情 */ public function detail() { $userInfo = $this->request->userInfo; $id = Request::get('id', 0, 'intval'); if (!$id) { return json_error([], '记录ID不能为空'); } try { $transfer = TransferLogModel::getTransferDetail($id, $userInfo['merchant_id']); if (!$transfer) { return json_error([], '记录不存在'); } return json_success($transfer, '获取成功'); } catch (\Exception $e) { return json_error([], '获取记录详情失败:' . $e->getMessage()); } } /** * 获取转账统计信息 */ public function statistics() { $userInfo = $this->request->userInfo; // 筛选条件 $filters = [ 'start_time' => Request::get('start_time', '', 'trim'), 'end_time' => Request::get('end_time', '', 'trim'), ]; // 如果没有指定时间范围,默认获取今天 if (empty($filters['start_time']) && empty($filters['end_time'])) { $filters['start_time'] = date('Y-m-d'); $filters['end_time'] = date('Y-m-d'); } try { $statistics = TransferLogModel::getTransferStatistics($userInfo['merchant_id'], $filters); return json_success([ 'statistics' => $statistics, 'date_range' => [ 'start_time' => $filters['start_time'], 'end_time' => $filters['end_time'] ] ], '获取成功'); } catch (\Exception $e) { return json_error([], '获取统计信息失败:' . $e->getMessage()); } } /** * 导出转账记录 */ public function export() { $userInfo = $this->request->userInfo; // 筛选条件 $filters = [ 'start_time' => Request::get('start_time', '', 'trim'), 'end_time' => Request::get('end_time', '', 'trim'), 'platform_id' => Request::get('platform_id', '', 'trim'), 'status' => Request::get('status', ''), 'tx_id' => Request::get('tx_id', '', 'trim'), ]; try { // 获取所有符合条件的数据(不分页) $result = TransferLogModel::getTransferLogs($userInfo['merchant_id'], 1, 100000, $filters); // 生成CSV数据 $csvData = "创建时间,商户,玩家ID,平台ID,平台昵称,转账流水号,转账金额,转账前余额," . "转账后余额,转账金额,转账前余额,转账后余额,状态/原因,IP\n"; foreach ($result['list'] as $transfer) { $csvData .= sprintf( "%s,%s,%d,%d,%s,%s,%s,%s,%s,%s,%s\n", $transfer['create_time'], // 创建时间 $transfer['merchant_name'], // 商户 $transfer['uname'], // 玩家ID $transfer['user_id'], // 平台ID $transfer['platform_nickname'], // 平台昵称 $transfer['tx_id'], // 转账流水号 $transfer['amount'], // 转账金额 $transfer['prev_amount'], // 转账前余额 $transfer['next_amount'], // 转账后余额 $transfer['status_text'], // 状态/原因 $transfer['ip'] // IP ); } // 返回CSV数据 return response($csvData) ->header(['Content-Type' => 'text/csv; charset=utf-8']) ->header(['Content-Disposition' => 'attachment; filename="transfer_logs_' . date('YmdHis') . '.csv"']) ->header(['Cache-Control' => 'no-cache, must-revalidate']); } catch (\Exception $e) { return json_error([], '导出转账记录失败:' . $e->getMessage()); } } }