Browse Source

update:玩家列表从旧表获取

aiden 3 tháng trước cách đây
mục cha
commit
7c1809e805

+ 1 - 1
app/controller/GameOrder.php

@@ -227,7 +227,7 @@ class GameOrder extends BaseController
         // 这里可以根据实际情况配置游戏ID对应的名称
         $gameNames = [
             'tiger' => '老虎机',
-            'fortune_tiger' => '财富老虎',
+            'fortue_tiger' => '财富老虎',
             'dragon_tiger' => '龙虎斗',
             'baccarat' => '百家乐',
             // 可以继续添加其他游戏

+ 1 - 1
app/controller/GameRecord.php

@@ -301,7 +301,7 @@ class GameRecord extends BaseController
         // 这里可以根据实际情况配置游戏ID对应的名称
         $gameNames = [
             'tiger' => '老虎机',
-            'fortune_tiger' => '财富老虎',
+            'fortue_tiger' => '财富老虎',
             // 可以继续添加其他游戏
         ];
         

+ 21 - 20
app/controller/Player.php

@@ -4,7 +4,7 @@ declare (strict_types = 1);
 namespace app\controller;
 
 use app\BaseController;
-use app\model\PlayerModel;
+use app\model\MerchantsUserModel;
 use think\facade\Request;
 
 class Player extends BaseController
@@ -22,27 +22,28 @@ class Player extends BaseController
         
         // 过滤条件
         $filters = [
+            'uname' => Request::get('uname', '', 'trim'),
             'nickname' => Request::get('nickname', '', 'trim'),
-            'player_id' => Request::get('player_id', 0, 'intval'),
+            'user_id' => Request::get('user_id', 0, 'intval'),
             'status' => Request::get('status', ''),
             'adjust_status' => Request::get('adjust_status', ''),
             'login_ip' => Request::get('login_ip', '', 'trim'),
             'reg_ip' => Request::get('reg_ip', '', 'trim'),
             'login_time_start' => Request::get('login_time_start', '', 'trim'),
             'login_time_end' => Request::get('login_time_end', '', 'trim'),
-            'order' => Request::get('order', 'player_id', 'trim'),
+            'order' => Request::get('order', 'user_id', 'trim'),
             'sort' => Request::get('sort', 'desc', 'trim'),
         ];
         
         try {
             // 获取玩家列表
-            $result = PlayerModel::getPlayerListByMerchant($userInfo['merchant_id'], $page, $limit, $filters);
+            $result = MerchantsUserModel::getPlayerListByMerchant($userInfo['merchant_id'], $page, $limit, $filters);
             
             // 处理列表数据
             foreach ($result['list'] as &$player) {
-                $player['status_text'] = PlayerModel::getStatusText($player['status']);
-                $player['adjust_status_text'] = PlayerModel::getAdjustStatusText($player['adjust_status']);
-                $player['login_time_text'] = $player['login_time'] ? date('Y-m-d H:i:s', (int)$player['login_time']) : '未登录';
+                $player['status_text'] = MerchantsUserModel::getStatusText($player['status']);
+                $player['adjust_status_text'] = MerchantsUserModel::getAdjustStatusText($player['adjust_status']);
+                $player['login_time'] = $player['login_time'] ? date('Y-m-d H:i:s', (int)$player['login_time']) : '未登录';
             }
             
             return json_success($result, '获取成功');
@@ -64,14 +65,14 @@ class Player extends BaseController
         }
         
         try {
-            $player = PlayerModel::getPlayerDetail($playerId, $userInfo['merchant_id']);
+            $player = MerchantsUserModel::getPlayerDetail($playerId, $userInfo['merchant_id']);
             if (!$player) {
                 return json_error([], '玩家不存在');
             }
             
             // 添加状态文本
-            $player['status_text'] = PlayerModel::getStatusText($player['status']);
-            $player['adjust_status_text'] = PlayerModel::getAdjustStatusText($player['adjust_status']);
+            $player['status_text'] = MerchantsUserModel::getStatusText($player['status']);
+            $player['adjust_status_text'] = MerchantsUserModel::getAdjustStatusText($player['adjust_status']);
             $player['login_time_text'] = $player['login_time'] ? date('Y-m-d H:i:s', (int)$player['login_time']) : '未登录';
             
             return json_success($player, '获取成功');
@@ -96,12 +97,12 @@ class Player extends BaseController
             return json_error([], '请选择要更新的玩家');
         }
         
-        if (!in_array($status, [PlayerModel::STATUS_NORMAL, PlayerModel::STATUS_FROZEN])) {
+        if (!in_array($status, [MerchantsUserModel::STATUS_NORMAL, MerchantsUserModel::STATUS_FROZEN])) {
             return json_error([], '状态值无效');
         }
         
         try {
-            $result = PlayerModel::updatePlayerStatus($playerIds, $userInfo['merchant_id'], $status);
+            $result = MerchantsUserModel::updatePlayerStatus($playerIds, $userInfo['merchant_id'], $status);
             if ($result) {
                 return json_success([], '状态更新成功');
             } else {
@@ -127,15 +128,15 @@ class Player extends BaseController
         }
         
         if (!in_array($adjustStatus, [
-            PlayerModel::ADJUST_STATUS_NORMAL,
-            PlayerModel::ADJUST_STATUS_WIN,
-            PlayerModel::ADJUST_STATUS_LOSE
+            MerchantsUserModel::ADJUST_STATUS_NORMAL,
+            MerchantsUserModel::ADJUST_STATUS_WIN,
+            MerchantsUserModel::ADJUST_STATUS_LOSE
         ])) {
             return json_error([], '调控状态值无效');
         }
         
         try {
-            $result = PlayerModel::updatePlayerAdjustStatus($playerIds, $userInfo['merchant_id'], $adjustStatus);
+            $result = MerchantsUserModel::updatePlayerAdjustStatus($playerIds, $userInfo['merchant_id'], $adjustStatus);
             if ($result) {
                 return json_success([], '调控状态更新成功');
             } else {
@@ -154,7 +155,7 @@ class Player extends BaseController
         $userInfo = $this->request->userInfo;
         
         try {
-            $statistics = PlayerModel::getPlayerStatistics($userInfo['merchant_id']);
+            $statistics = MerchantsUserModel::getPlayerStatistics($userInfo['merchant_id']);
             return json_success($statistics, '获取成功');
         } catch (\Exception $e) {
             return json_error([], '获取玩家统计失败:' . $e->getMessage());
@@ -184,7 +185,7 @@ class Player extends BaseController
         
         try {
             // 获取所有数据
-            $result = PlayerModel::getPlayerListByMerchant($userInfo['merchant_id'], 1, 100000, $filters);
+            $result = MerchantsUserModel::getPlayerListByMerchant($userInfo['merchant_id'], 1, 100000, $filters);
             
             // 生成CSV数据
             $csvData = "玩家ID,昵称,注册IP,登录IP,余额,今日输赢,历史输赢,今日下注,今日登录次数,历史登录次数,状态,调控状态,最后登录时间,注册时间\n";
@@ -202,8 +203,8 @@ class Player extends BaseController
                     $player['today_bet_amount'],
                     $player['today_login_count'],
                     $player['history_login_count'],
-                    PlayerModel::getStatusText($player['status']),
-                    PlayerModel::getAdjustStatusText($player['adjust_status']),
+                    MerchantsUserModel::getStatusText($player['status']),
+                    MerchantsUserModel::getAdjustStatusText($player['adjust_status']),
                     $player['login_time'] ? date('Y-m-d H:i:s', (int)$player['login_time']) : '未登录',
                     $player['create_time']
                 );

+ 5 - 0
app/controller/User.php

@@ -234,6 +234,11 @@ class User extends BaseController
         $userInfo = $this->request->userInfo;
         
         $userId = Request::param('user_id', 0, 'intval');
+        if (!$userId)
+        {
+            $userId = $userInfo['user_id'];
+        }
+        
         if (!$userId) {
             return json_error([], '账号ID不能为空');
         }

+ 2 - 2
app/model/GameOrderModel.php

@@ -12,7 +12,7 @@ use think\facade\Db;
 class GameOrderModel extends Model
 {
     protected $name = 'game_bet_order';
-    protected $connection = 'fortune_tiger';
+    protected $connection = 'fortue_tiger';
     protected $pk = 'id';
     
     // 状态常量
@@ -263,7 +263,7 @@ class GameOrderModel extends Model
         // 这里可以根据实际情况配置游戏ID对应的名称
         $gameNames = [
             'tiger' => '老虎机',
-            'fortune_tiger' => '财富老虎',
+            'fortue_tiger' => '财富老虎',
             'dragon_tiger' => '龙虎斗',
             'baccarat' => '百家乐',
             // 可以继续添加其他游戏

+ 1 - 1
app/model/GameRecordModel.php

@@ -12,7 +12,7 @@ use think\facade\Db;
 class GameRecordModel extends Model
 {
     protected $name = 'game_lottery_prizes';
-    protected $connection = 'fortune_tiger';
+    protected $connection = 'fortue_tiger';
     protected $pk = 'id';
     
     // 动作类型常量

+ 260 - 0
app/model/MerchantsUserModel.php

@@ -0,0 +1,260 @@
+<?php
+declare (strict_types = 1);
+
+namespace app\model;
+
+use think\Model;
+
+/**
+ * 商户用户模型 - 连接到fortue_tiger数据库的tp_merchants_user表
+ */
+class MerchantsUserModel extends Model
+{
+    // 设置数据库连接
+    protected $connection = 'fortue_tiger';
+    
+    // 设置表名
+    protected $name = 'merchants_user';
+
+    // 设置主键
+    protected $pk = 'user_id';
+
+    // 设置自动时间戳
+    protected $autoWriteTimestamp = 'int';
+
+    // 设置字段类型
+    protected $type = [
+        'user_id' => 'int',
+        'app_id' => 'int',
+        'uname' => 'int',
+        'nickname' => 'string',
+        'cid' => 'int',
+        'token' => 'string',
+        'short_token' => 'string',
+        'login_time' => 'int',
+        'reg_ip' => 'string',
+        'login_ip' => 'string',
+        'today_count' => 'int',
+        'history_day_count' => 'int',
+        'adjust_status' => 'int',
+        'status' => 'int',
+        'disabled_login' => 'int',
+        'create_time' => 'int',
+        'update_time' => 'int',
+    ];
+
+    // 状态常量
+    const STATUS_NORMAL = 1;    // 正常
+    const STATUS_FROZEN = 0;    // 冻结
+
+    // 禁止登录状态
+    const LOGIN_ENABLED = 1;    // 允许登录
+    const LOGIN_DISABLED = 0;   // 禁止登录
+
+    // 调控状态常量
+    const ADJUST_STATUS_NORMAL = 1;     // 正常
+    const ADJUST_STATUS_WIN = 2;        // 放水(赢)
+    const ADJUST_STATUS_LOSE = 3;       // 收割(输)
+
+    /**
+     * 获取状态文本
+     */
+    public static function getStatusText($status): string
+    {
+        $statusMap = [
+            self::STATUS_NORMAL => '正常',
+            self::STATUS_FROZEN => '冻结',
+        ];
+        return $statusMap[$status] ?? '未知';
+    }
+
+    /**
+     * 获取调控状态文本
+     */
+    public static function getAdjustStatusText($adjustStatus): string
+    {
+        $adjustStatusMap = [
+            self::ADJUST_STATUS_NORMAL => '正常',
+            self::ADJUST_STATUS_WIN => '放水',
+            self::ADJUST_STATUS_LOSE => '收割',
+        ];
+        return $adjustStatusMap[$adjustStatus] ?? '未知';
+    }
+
+    /**
+     * 获取禁止登录状态文本
+     */
+    public static function getDisabledLoginText($disabled): string
+    {
+        $disabledMap = [
+            self::LOGIN_ENABLED => '允许',
+            self::LOGIN_DISABLED => '禁止',
+        ];
+        return $disabledMap[$disabled] ?? '未知';
+    }
+
+    /**
+     * 根据商户ID获取玩家列表
+     */
+    public static function getPlayerListByMerchant($merchantId, $page = 1, $limit = 10, $filters = [])
+    {
+        $query = self::where('app_id', $merchantId);
+
+        // 应用过滤条件
+        if (!empty($filters['uname'])) {
+            $query->where('uname', 'like', '%' . $filters['uname'] . '%');
+        }
+
+        if (!empty($filters['nickname'])) {
+            $query->where('nickname', 'like', '%' . $filters['nickname'] . '%');
+        }
+
+        if (!empty($filters['user_id'])) {
+            $query->where('user_id', $filters['user_id']);
+        }
+
+        if (isset($filters['status']) && $filters['status'] !== '') {
+            $query->where('status', $filters['status']);
+        }
+
+        if (isset($filters['adjust_status']) && $filters['adjust_status'] !== '') {
+            $query->where('adjust_status', $filters['adjust_status']);
+        }
+
+        if (!empty($filters['login_ip'])) {
+            $query->where('login_ip', 'like', '%' . $filters['login_ip'] . '%');
+        }
+
+        if (!empty($filters['reg_ip'])) {
+            $query->where('reg_ip', 'like', '%' . $filters['reg_ip'] . '%');
+        }
+
+        // 登录时间范围
+        if (!empty($filters['login_time_start'])) {
+            $query->where('login_time', '>=', strtotime($filters['login_time_start']));
+        }
+        if (!empty($filters['login_time_end'])) {
+            $query->where('login_time', '<=', strtotime($filters['login_time_end']));
+        }
+
+       
+        $order = $filters['order'] ?? 'user_id';
+        $sort = $filters['sort'] ?? 'desc';
+        $query->order($order, $sort);
+
+        // 获取总数
+        $total = $query->count();
+
+        // 获取列表
+        $list = $query->page($page, $limit)->select()->toArray();
+        
+        // 转换字段名以保持与原有接口的兼容性
+        foreach ($list as &$item) {            
+            $item['merchant_id'] = $item['app_id'];
+            $item['today_login_count'] = $item['today_count'];
+            $item['history_login_count'] = $item['history_day_count'];
+            // 添加原系统中可能需要但新表中没有的字段
+            $item['balance'] = 0;
+            $item['today_win_amount'] = 0;
+            $item['history_win_amount'] = 0;
+            $item['today_bet_amount'] = 0;
+
+            // 移除字段
+            unset($item['app_id']);
+            unset($item['token']);
+            unset($item['short_token']);            
+        }
+
+        return [
+            'list' => $list,
+            'total' => $total,
+            'page' => $page,
+            'limit' => $limit
+        ];
+    }
+
+    /**
+     * 获取玩家详情
+     */
+    public static function getPlayerDetail($playerId, $merchantId)
+    {
+        $player = self::where('uname', $playerId)
+            ->where('app_id', $merchantId)
+            ->find();
+            
+        if ($player) {
+            $player = $player->toArray();
+            // 移除敏感字段
+            unset($player['token']);
+            unset($player['short_token']);
+            
+            // 转换字段名
+            $player['player_id'] = $player['uname'];
+            $player['merchant_id'] = $player['app_id'];
+            $player['today_login_count'] = $player['today_count'];
+            $player['history_login_count'] = $player['history_day_count'];
+            // 添加原系统中可能需要但新表中没有的字段
+            $player['balance'] = 0;
+            $player['today_win_amount'] = 0;
+            $player['history_win_amount'] = 0;
+            $player['today_bet_amount'] = 0;
+        }
+        
+        return $player;
+    }
+
+    /**
+     * 更新玩家状态
+     */
+    public static function updatePlayerStatus($playerIds, $merchantId, $status)
+    {
+        return self::where('app_id', $merchantId)
+            ->whereIn('uname', $playerIds)
+            ->update(['status' => $status]);
+    }
+
+    /**
+     * 更新玩家调控状态
+     */
+    public static function updatePlayerAdjustStatus($playerIds, $merchantId, $adjustStatus)
+    {
+        return self::where('app_id', $merchantId)
+            ->whereIn('uname', $playerIds)
+            ->update(['adjust_status' => $adjustStatus]);
+    }
+
+    /**
+     * 更新玩家禁止登录状态
+     */
+    public static function updatePlayerLoginStatus($playerIds, $merchantId, $disabledLogin)
+    {
+        return self::where('app_id', $merchantId)
+            ->whereIn('uname', $playerIds)
+            ->update(['disabled_login' => $disabledLogin]);
+    }
+
+    /**
+     * 获取玩家统计信息
+     */
+    public static function getPlayerStatistics($merchantId)
+    {
+        $today = strtotime(date('Y-m-d'));
+
+        return [
+            'total_players' => self::where('app_id', $merchantId)->count(),
+            'active_players' => self::where('app_id', $merchantId)
+                ->where('status', self::STATUS_NORMAL)
+                ->count(),
+            'today_new_players' => self::where('app_id', $merchantId)
+                ->where('create_time', '>=', $today)
+                ->count(),
+            'today_login_players' => self::where('app_id', $merchantId)
+                ->where('login_time', '>=', $today)
+                ->count(),
+            'total_balance' => 0, // 新表中没有余额字段
+            'today_bet_amount' => 0, // 新表中没有下注金额字段
+            'today_win_amount' => 0, // 新表中没有输赢金额字段
+            'history_win_amount' => 0, // 新表中没有历史输赢字段
+        ];
+    }
+}

+ 1 - 1
app/model/TransferLogModel.php

@@ -12,7 +12,7 @@ use think\facade\Db;
 class TransferLogModel extends Model
 {
     protected $name = 'merchants_user_balance_transfer_logs';
-    protected $connection = 'fortune_tiger';
+    protected $connection = 'fortue_tiger';
     protected $pk = 'id';
     
     // 状态常量

+ 1 - 1
config/database.php

@@ -57,7 +57,7 @@ return [
             // 开启字段缓存
             'fields_cache'    => false,
         ],
-        'fortune_tiger' => [
+        'fortue_tiger' => [
             // 数据库类型
             'type'            => env('DB_TYPE', 'mysql'),
             // 服务器地址