'int', 'nickname' => 'string', 'merchant_id' => 'int', 'reg_ip' => 'string', 'login_ip' => 'string', 'today_win_amount' => 'float', 'history_win_amount' => 'float', 'today_bet_amount' => 'float', 'balance' => 'float', 'today_login_count' => 'int', 'history_login_count' => 'int', 'adjust_status' => 'int', 'status' => 'int', 'login_time' => 'int', 'create_time' => 'int', 'update_time' => 'int', ]; // 状态常量 const STATUS_NORMAL = 0; // 正常 const STATUS_FROZEN = 1; // 冻结 const STATUS_DELETED = 2; // 删除 // 调控状态常量 const ADJUST_STATUS_NORMAL = 0; // 正常 const ADJUST_STATUS_WIN = 1; // 放水(赢) const ADJUST_STATUS_LOSE = 2; // 收割(输) /** * 获取状态文本 */ public static function getStatusText($status): string { $statusMap = [ self::STATUS_NORMAL => '正常', self::STATUS_FROZEN => '冻结', self::STATUS_DELETED => '删除', ]; 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] ?? '未知'; } /** * 根据商户ID获取玩家列表 */ public static function getPlayerListByMerchant($merchantId, $page = 1, $limit = 10, $filters = []) { $query = self::where('merchant_id', $merchantId); // 应用过滤条件 if (!empty($filters['nickname'])) { $query->where('nickname', 'like', '%' . $filters['nickname'] . '%'); } if (!empty($filters['player_id'])) { $query->where('player_id', $filters['player_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'] ?? 'player_id'; $sort = $filters['sort'] ?? 'desc'; $query->order($order, $sort); // 获取总数 $total = $query->count(); // 获取列表 $list = $query->page($page, $limit)->select(); return [ 'list' => $list, 'total' => $total, 'page' => $page, 'limit' => $limit ]; } /** * 获取玩家详情 */ public static function getPlayerDetail($playerId, $merchantId) { return self::where('player_id', $playerId) ->where('merchant_id', $merchantId) ->find(); } /** * 更新玩家状态 */ public static function updatePlayerStatus($playerIds, $merchantId, $status) { return self::where('merchant_id', $merchantId) ->whereIn('player_id', $playerIds) ->update(['status' => $status]); } /** * 更新玩家调控状态 */ public static function updatePlayerAdjustStatus($playerIds, $merchantId, $adjustStatus) { return self::where('merchant_id', $merchantId) ->whereIn('player_id', $playerIds) ->update(['adjust_status' => $adjustStatus]); } /** * 获取玩家统计信息 */ public static function getPlayerStatistics($merchantId) { $today = strtotime(date('Y-m-d')); return [ 'total_players' => self::where('merchant_id', $merchantId)->count(), 'active_players' => self::where('merchant_id', $merchantId) ->where('status', self::STATUS_NORMAL) ->count(), 'today_new_players' => self::where('merchant_id', $merchantId) ->where('create_time', '>=', $today) ->count(), 'today_login_players' => self::where('merchant_id', $merchantId) ->where('login_time', '>=', $today) ->count(), 'total_balance' => self::where('merchant_id', $merchantId)->sum('balance'), 'today_bet_amount' => self::where('merchant_id', $merchantId)->sum('today_bet_amount'), 'today_win_amount' => self::where('merchant_id', $merchantId)->sum('today_win_amount'), 'history_win_amount' => self::where('merchant_id', $merchantId)->sum('history_win_amount'), ]; } }