Browse Source

update:转账记录

aiden 3 months ago
parent
commit
1f980e1600

+ 6 - 112
app/controller/TransferLog.php

@@ -29,7 +29,11 @@ class TransferLog extends BaseController
             'start_time' => Request::get('start_time', '', 'trim'),
             'end_time' => Request::get('end_time', '', 'trim'),
             // 平台ID筛选
-            'platform_id' => Request::get('platform_id', '', 'trim'),
+            'uname' => Request::get('uname', '', 'trim'),
+            // 玩家ID筛选
+            'player_id' => Request::get('user_id', '', 'trim'), 
+            // 平台昵称
+            'nickname' => Request::get('nickname', '', 'trim'),            
             // 状态筛选
             'status' => Request::get('status', ''),
             // 转账流水号筛选
@@ -43,115 +47,5 @@ class TransferLog extends BaseController
             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());
-        }
-    }
+
 }

+ 1 - 15
app/model/GameBetGameModel.php

@@ -14,21 +14,7 @@ class GameBetGameModel extends Model
     protected $name = 'game_bet_game';
     protected $connection = 'fortue_tiger';
     protected $pk = 'id';
-    
-    // 动作类型常量
-    const ACTION_TYPE_BET = 1;      // 下注
-    const ACTION_TYPE_RESULT = 2;   // 结算
-    
-    // 状态常量
-    const STATUS_PENDING = 0;       // 待处理
-    const STATUS_SUCCESS = 1;       // 成功
-    const STATUS_FAILED = 2;        // 失败
-    
-    // 游戏类型常量
-    const GAME_TYPE_SLOT = 1;       // 老虎机
-    const GAME_TYPE_TABLE = 2;      // 桌面游戏
-    const GAME_TYPE_LIVE = 3;       // 真人游戏
-    
+        
     /**
      * 获取游戏记录列表(参考apiAdminBetGameList方法)
      */

+ 1 - 19
app/model/GameBetOrderModel.php

@@ -15,25 +15,7 @@ class GameBetOrderModel extends Model
     protected $name = 'game_bet_order';
     protected $connection = 'fortue_tiger';
     protected $pk = 'id';
-    
-    // 状态常量
-    const STATUS_PENDING = 0;       // 待处理
-    const STATUS_SUCCESS = 1;       // 成功
-    const STATUS_FAILED = 2;        // 失败
-    const STATUS_CANCELLED = 3;     // 已取消
-    
-    // 动作类型常量
-    const ACTION_TYPE_BET = 1;      // 下注
-    const ACTION_TYPE_SETTLE = 2;   // 结算
-    const ACTION_TYPE_CANCEL = 3;   // 取消
-    const ACTION_TYPE_CHECK = 4;    // 检查
-    const ACTION_TYPE_RESULT = 5;   // 结果
-    
-    // 游戏类型常量
-    const GAME_TYPE_SLOT = 1;       // 老虎机
-    const GAME_TYPE_TABLE = 2;      // 桌面游戏
-    const GAME_TYPE_LIVE = 3;       // 真人游戏
-    
+       
     /**
      * 获取下注订单列表(参考apiAdminBetOrderList方法)
      */

+ 29 - 119
app/model/TransferLogModel.php

@@ -5,6 +5,7 @@ namespace app\model;
 
 use think\Model;
 use think\facade\Db;
+use app\model\MerchantsUserModel;
 
 /**
  * 转账记录模型
@@ -15,10 +16,13 @@ class TransferLogModel extends Model
     protected $connection = 'fortue_tiger';
     protected $pk = 'id';
     
+    
     // 状态常量
-    const STATUS_FAILED = 0;        // 失败
-    const STATUS_SUCCESS = 1;       // 成功
-    const STATUS_PENDING = 2;       // 待处理
+    const STATUS = [
+        0 => '失败',
+        1 => '成功',
+        2 => '等待处理',
+    ];
     
     /**
      * 获取转账记录列表
@@ -41,8 +45,18 @@ class TransferLogModel extends Model
         }
         
         // 平台ID筛选
-        if (!empty($filters['platform_id'])) {
-            $where[] = ['user_id', '=', $filters['platform_id']];
+        if (!empty($filters['uname'])) {
+            $where[] = ['uname', '=', $filters['uname']];
+        }
+
+        // 平台昵称筛选
+        if (!empty($filters['nickname'])) {
+            $where[] = ['uname', 'like', '%' . $filters['nickname'] . '%'];
+        }        
+        
+        // 玩家id筛选
+        if (!empty($filters['player_id'])) {
+            $where[] = ['user_id', 'like', '%' . $filters['player_id'] . '%'];
         }
         
         // 状态筛选
@@ -75,33 +89,23 @@ class TransferLogModel extends Model
         $userIds = array_unique(array_column($list, 'user_id'));
         $userMap = [];
         if (!empty($userIds)) {
-            // 从用户表获取用户信息
-            $users = Db::connect('merchant_admin')
-                ->table('merchant_user')
-                ->whereIn('user_id', $userIds)
-                ->field('user_id, nick_name')
-                ->select();
-            
+            // 从玩家表获取玩家信息
+            $users = MerchantsUserModel::whereIn('user_id', $userIds)->field('user_id, nickname')->select()->toArray();
             foreach ($users as $user) {
-                $userMap[$user['user_id']] = $user['nick_name'];
+                $userMap[$user['user_id']] = $user['nickname'];
             }
         }
         
         // 格式化数据
         foreach ($list as &$item) {            
             // 格式化金额(分转元)
-            $item['amount'] = bcdiv($item['amount'], "100", 2);
-            $item['prev_amount'] = bcdiv($item['prev_amount'], "100", 2);
-            $item['next_amount'] = bcdiv($item['next_amount'], "100", 2);
-            
+            $item['amount'] = bcdiv($item['amount'], "10000", 2);
+            $item['prev_amount'] = bcdiv($item['prev_amount'], "10000", 2);
+            $item['next_amount'] = bcdiv($item['next_amount'], "10000", 2);
             // 状态文本
             $item['status_text'] = self::getStatusText($item['status']);
-            
-            // 商户名称
-            $item['merchant_name'] = $userMap[$item['user_id']] ?? '';
-            
-            // 平台昵称(从uname获取)
-            $item['platform_nickname'] = '玩家' . $item['uname'];
+            // 平台昵称
+            $item['nickname'] = $userMap[$item['user_id']] ?? '';
         }
         
         return [
@@ -111,106 +115,12 @@ class TransferLogModel extends Model
             'limit' => $limit
         ];
     }
-    
-    /**
-     * 获取转账记录详情
-     */
-    public static function getTransferDetail($id, $appId)
-    {
-        $transfer = self::where('id', $id)
-            ->where('app_id', $appId)
-            ->find();
-            
-        if (!$transfer) {
-            return null;
-        }
-        
-        $transfer = $transfer->toArray();
-        
-        // 格式化数据
-        $transfer['create_time_text'] = date('Y-m-d H:i:s', $transfer['create_time']);
-        
-        // 格式化金额
-        $transfer['amount_yuan'] = round($transfer['amount'] / 100, 2);
-        $transfer['prev_amount_yuan'] = round($transfer['prev_amount'] / 100, 2);
-        $transfer['next_amount_yuan'] = round($transfer['next_amount'] / 100, 2);
-        
-        // 状态文本
-        $transfer['status_text'] = self::getStatusText($transfer['status']);
-        
-        // 获取用户信息
-        $user = Db::connect('merchant_admin')
-            ->table('merchant_user')
-            ->where('user_id', $transfer['user_id'])
-            ->field('user_id, nick_name')
-            ->find();
-        
-        $transfer['merchant_name'] = $user ? $user['nick_name'] : '';
-        $transfer['platform_nickname'] = '玩家' . $transfer['uname'];
-        
-        return $transfer;
-    }
-    
-    /**
-     * 获取转账统计信息
-     */
-    public static function getTransferStatistics($appId, $filters = [])
-    {
-        $where = [
-            ['app_id', '=', $appId]
-        ];
-        
-        // 时间筛选
-        if (!empty($filters['start_time'])) {
-            $startTime = strtotime($filters['start_time'] . ' 00:00:00');
-            $where[] = ['create_time', '>=', $startTime];
-        }
-        
-        if (!empty($filters['end_time'])) {
-            $endTime = strtotime($filters['end_time'] . ' 23:59:59');
-            $where[] = ['create_time', '<=', $endTime];
-        }
         
-        $statistics = self::where($where)
-            ->field([
-                'COUNT(*) as total_transfers',
-                'COUNT(DISTINCT uname) as total_players',
-                'SUM(CASE WHEN amount > 0 THEN amount ELSE 0 END) as total_in_amount',
-                'SUM(CASE WHEN amount < 0 THEN ABS(amount) ELSE 0 END) as total_out_amount',
-                'SUM(amount) as net_amount',
-                'SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END) as success_transfers',
-                'SUM(CASE WHEN status = 0 THEN 1 ELSE 0 END) as failed_transfers',
-                'SUM(CASE WHEN status = 2 THEN 1 ELSE 0 END) as pending_transfers'
-            ])
-            ->find()
-            ->toArray();
-        
-        // 格式化金额
-        $statistics['total_in_amount_yuan'] = round($statistics['total_in_amount'] / 100, 2);
-        $statistics['total_out_amount_yuan'] = round($statistics['total_out_amount'] / 100, 2);
-        $statistics['net_amount_yuan'] = round($statistics['net_amount'] / 100, 2);
-        
-        // 计算成功率
-        if ($statistics['total_transfers'] > 0) {
-            $statistics['success_rate'] = round($statistics['success_transfers'] / $statistics['total_transfers'] * 100, 2);
-        } else {
-            $statistics['success_rate'] = 0;
-        }
-        
-        return $statistics;
-    }
-    
     /**
      * 获取状态文本
      */
     public static function getStatusText($status)
-    {
-        $statusMap = [
-            self::STATUS_FAILED => '失败',
-            self::STATUS_SUCCESS => '成功',
-            self::STATUS_PENDING => '待处理'
-        ];
-        
-        return $statusMap[$status] ?? '未知';
+    {        
+        return self::STATUS[$status] ?? '未知';
     }
 }