first(); } /** * @description: 查询所有数据 * @param array $search * @return \Illuminate\Database\Eloquent\Collection */ public static function findAll(array $search = []) { return self::model()::where(self::getWhere($search))->get(); } /** * @description: 分页查询 * @param array $search * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator */ public static function paginate(array $search = []) { $limit = isset($search['limit']) ? $search['limit'] : 15; $paginator = self::model()::where(self::getWhere($search))->with('wallet:user_id,member_id,address,available_balance')->paginate($limit); return ['total' => $paginator->total(), 'data' => $paginator->items()]; } //设置游戏ID public function setGameID($chatId, $gameId) { $gameId = trim($gameId); if (!$gameId) return ['chat_id' => $chatId, 'text' => '❌游戏ID设置失败,请输入正确的游戏ID']; if (User::where('game_id', $gameId)->where('member_id', '<>', $chatId)->first()) { return ['chat_id' => $chatId, 'text' => '❌游戏ID设置失败,游戏ID已绑定其他用户']; } $user = User::where('member_id', $chatId)->first(); $user->game_id = $gameId; $user->save(); return ['chat_id' => $chatId, 'text' => "✅ 游戏ID设置成功\n游戏ID:{$gameId}"]; } /** * @param Api $telegram * @param $data * @param $chatId * @param $firstName * @param $messageId * @return void * @throws TelegramSDKException */ public static function init(Api $telegram, $data, $chatId, $firstName, $messageId): void { $pattern = "/^setLanguage@@.*$/"; if (preg_match($pattern, $data)) { $language = preg_replace('/^setLanguage@@/', '', $data); $res = UserService::setLanguage($chatId, $language); $telegram->deleteMessage(['chat_id' => $chatId, 'message_id' => $messageId]); TelegramWebHook::setReplyKeyboard($chatId,$language); // $telegram->sendMessage($res); } } public static function setLanguage($chatId, $language): array { $userInfo = self::findOne(['member_id' => $chatId]); $userInfo->setLanguage($language); $userInfo->save(); App::setLocale($language); (new Home)->setMyCommands(); return self::getLanguages($chatId); } public static function getLanguages($chatId): array { $keyboard = [ [['text' => lang('en'), 'callback_data' => "setLanguage@@en"]], [['text' => lang('zh'), 'callback_data' => "setLanguage@@zh"]], [['text' => lang('vi'), 'callback_data' => "setLanguage@@vi"]], [['text' => lang('❌取消'), 'callback_data' => "message@@close"]], ]; return [ 'chat_id' => $chatId, 'text' => lang("请选择您的语言"), 'reply_markup' => json_encode(['inline_keyboard' => $keyboard]), 'protect_content' => true ]; } }