Răsfoiți Sursa

更改数据库配置

aiden 3 luni în urmă
părinte
comite
b7a30b110f
4 a modificat fișierele cu 48 adăugiri și 63 ștergeri
  1. 9 14
      app/controller/RankList.php
  2. 29 41
      app/model/GameBetGameModel.php
  3. 8 8
      config/database.php
  4. 2 0
      route/app.php

+ 9 - 14
app/controller/RankList.php

@@ -72,7 +72,7 @@ class RankList extends BaseController
             foreach ($result['list'] as &$item) {
                 $item['general_merchant'] = '';
                 $item['channel'] = '';
-                $item['total_lose'] = CommonUtils::convertBalance($item['total_lose'], false);
+                $item['total_win'] = CommonUtils::convertBalance($item['total_win'], false);
                 $item['total_bet'] = CommonUtils::convertBalance($item['total_bet'], false);
                 $item['balance'] = CommonUtils::convertBalance($item['balance'], false);
             }
@@ -92,16 +92,10 @@ class RankList extends BaseController
         // 获取查询参数
         $page = Request::get('page', 1, 'intval');
         $limit = Request::get('limit', 10, 'intval');
-
-        // 筛选条件
-        $filters = [
-            'start_time' => Request::get('start_time', date('Y-m-d', strtotime('-7 days')), 'trim'),
-            'end_time' => Request::get('end_time', date('Y-m-d'), 'trim'),
-            'game_id' => Request::get('game_id', '', 'trim'),
-        ];
+        $filters['date'] = Request::get('date', '', 'trim');
         
         try {
-            // 获取注单金额榜数据
+            // 获取赢钱榜数据
             $result = GameBetGameModel::getBetAmountRanking(
                 $userInfo['merchant_id'],
                 $page, 
@@ -111,15 +105,16 @@ class RankList extends BaseController
             
             // 格式化金额数据
             foreach ($result['list'] as &$item) {
-                $item['total_bet_amount'] = CommonUtils::convertBalance($item['total_bet_amount'], false);
-                $item['total_profit'] = CommonUtils::convertBalance($item['total_profit'], false);
-                $item['max_bet'] = CommonUtils::convertBalance($item['max_bet'], false);
-                $item['avg_bet'] = CommonUtils::convertBalance($item['avg_bet'], false);
+                $item['general_merchant'] = '';
+                $item['channel'] = '';                
+                $item['total_win'] = CommonUtils::convertBalance($item['total_win'], false);
+                $item['total_bet'] = CommonUtils::convertBalance($item['total_bet'], false);
+                $item['balance'] = CommonUtils::convertBalance($item['balance'], false);
             }
             
             return json_success($result, '获取成功');
         } catch (\Exception $e) {
-            return json_error([], '获取注单额榜失败:' . $e->getMessage());
+            return json_error([], '获取注单额榜失败:' . $e->getMessage());
         }
     }
     

+ 29 - 41
app/model/GameBetGameModel.php

@@ -256,74 +256,62 @@ class GameBetGameModel extends Model
         $wheres[] = ['app_id', '=', $appId];
         
         // 时间筛选
-        if (!empty($filters['start_time'])) {
-            $startTime = strtotime($filters['start_time']);
+        if (!empty($filters['date'])) {
+            $startTime = strtotime($filters['date']);
+            $endTime = strtotime($filters['date'] . ' 23:59:59');
+
             $wheres[] = ['create_time', '>=', $startTime];
-        }
-        
-        if (!empty($filters['end_time'])) {
-            $endTime = strtotime($filters['end_time'] . ' 23:59:59');
             $wheres[] = ['create_time', '<=', $endTime];
         }
         
-        // 游戏ID筛选
-        if (!empty($filters['game_id'])) {
-            $wheres[] = ['game_id', '=', $filters['game_id']];
-        }
-        
         // 使用子查询获取每个用户的统计数据
         $subQuery = self::field([
             'user_id',
-            'SUM(bet) as total_bet_amount', // 总投注金额
+            'SUM(total_win_amount) as total_win', // 总输钱
             'COUNT(*) as bet_count', // 注单数
-            'SUM(win_amount) as total_profit', // 总盈亏
-            'AVG(bet) as avg_bet', // 平均投注
-            'MAX(bet) as max_bet' // 最大投注
+            'SUM(bet) as total_bet', // 总投注
         ])
         ->where($wheres)
         ->group('user_id')
         ->buildSql();
         
         // 获取总数
-        $total = Db::connection('fortue_tiger')
-            ->table($subQuery . ' t')
-            ->count();
-        
-        // 获取排行榜数据(按总投注金额降序)
-        $list = Db::connection('fortue_tiger')
-            ->table($subQuery . ' t')
-            ->order('total_bet_amount', 'desc')
+        $total = self::table($subQuery . ' t')->count();
+
+        // 获取排行榜数据
+        $list = self::table($subQuery . ' t')
+            ->order('bet_count', 'desc')
             ->page($page, $limit)
             ->select()
             ->toArray();
-        
+         
         // 获取用户ID列表
         $userIds = array_column($list, 'user_id');
         
         if (!empty($userIds)) {
             // 获取用户信息
-            $users = Db::connection('fortue_tiger')
-                ->table('tp_user')
-                ->whereIn('id', $userIds)
-                ->field(['id', 'nickname', 'avatar', 'phone'])
+            $users = self::table('tp_merchants_user')
+                ->whereIn('user_id', $userIds)
+                ->field(['user_id', 'nickname'])
                 ->select()
                 ->toArray();
-            
-            $userMap = [];
-            foreach ($users as $user) {
-                $userMap[$user['id']] = $user;
-            }
-            
+            // 获取用户余额    
+            $userBanlance = self::table('tp_merchants_user_balance')
+                ->whereIn('user_id', $userIds)
+                ->field(['user_id', 'balance'])
+                ->select()
+                ->toArray();
+
+            $users = array_column($users, null, 'user_id');
+            $userBanlance = array_column($userBanlance, null, 'user_id');
+ 
             // 补充用户信息和计算RTP
             foreach ($list as &$item) {
-                $item['nickname'] = $userMap[$item['user_id']]['nickname'] ?? '未知用户';
-                $item['avatar'] = $userMap[$item['user_id']]['avatar'] ?? '';
-                $item['phone'] = $userMap[$item['user_id']]['phone'] ?? '';
+                $userId = (int)$item['user_id'];
+                $item['nickname'] = $users[$userId]['nickname'] ?? '未知用户';
+                $item['balance'] = $userBanlance[$userId]['balance'] ?? 0;
                 // 计算RTP (返还率)
-                $item['rtp'] = $item['total_bet_amount'] > 0 ? 
-                    round(($item['total_bet_amount'] + $item['total_profit']) / $item['total_bet_amount'] * 100, 2) : 0;
-                // 格式化平均投注
-                $item['avg_bet'] = round($item['avg_bet'], 2);
+                $item['rtp'] = $item['total_bet'] > 0 ? round(abs((int)$item['total_win']) / $item['total_bet'] * 100, 2) : 0;
             }
         }
         

+ 8 - 8
config/database.php

@@ -24,15 +24,15 @@ return [
             // 数据库类型
             'type'            => env('DB_TYPE', 'mysql'),
             // 服务器地址
-            'hostname'        => env('DB_HOST', '47.238.245.98'),
+            'hostname'        => env('DB_HOST', 'rm-j6c88m91l0i6q37640o.mysql.cnhk.rds.aliyuncs.com'),
             // 数据库名
             'database'        => env('DB_NAME', 'merchant_admin'),
             // 用户名
-            'username'        => env('DB_USER', 'root'),
+            'username'        => env('DB_USER', 'fortue_tiger'),
             // 密码
-            'password'        => env('DB_PASS', '9ab5e8139b5425c2'),
+            'password'        => env('DB_PASS', 'Leistar123+-*'),
             // 端口
-            'hostport'        => env('DB_PORT', '10086'),
+            'hostport'        => env('DB_PORT', '3306'),
             // 数据库连接参数
             'params'          => [],
             // 数据库编码
@@ -61,15 +61,15 @@ return [
             // 数据库类型
             'type'            => env('DB_TYPE', 'mysql'),
             // 服务器地址
-            'hostname'        => env('DB_HOST', '47.238.245.98'),
+            'hostname'        => env('DB_HOST', 'rm-j6c88m91l0i6q37640o.mysql.cnhk.rds.aliyuncs.com'),
             // 数据库名
             'database'        => env('DB_NAME', 'fortue_tiger'),
             // 用户名
-            'username'        => env('DB_USER', 'root'),
+            'username'        => env('DB_USER', 'Leistar123+-*'),
             // 密码
-            'password'        => env('DB_PASS', '9ab5e8139b5425c2'),
+            'password'        => env('DB_PASS', 'Leistar123+-*'),
             // 端口
-            'hostport'        => env('DB_PORT', '10086'),
+            'hostport'        => env('DB_PORT', '3306'),
             // 数据库连接参数
             'params'          => [],
             // 数据库编码

+ 2 - 0
route/app.php

@@ -127,4 +127,6 @@ Route::group('rank_list', function () {
     Route::get('win_amount', 'RankList/WinAmount');
     // 输钱榜
     Route::get('lose_amount', 'RankList/LoseAmount');
+    // 注单额榜
+    Route::get('bet_amount', 'RankList/BetAmount');
 })->middleware([\app\middleware\AuthMiddleware::class, \app\middleware\BehaviorLogMiddleware::class]);