successResponse($countries); } public function paying_networks(Request $request) { $this->validate($request,[ 'id_country' => 'required|integer|min:0|not_in:0', 'id_wallet_agent' => 'required_without:id_wallet_user|integer|min:0|not_in:0', 'id_wallet_user' => 'required_without:id_wallet_agent|integer|min:0|not_in:0', ]); if (isset($request->id_wallet_agent)) { $walletAgent = Wallet::findOrFail($request->get('id_wallet_agent')); $network_agent = NetworksAgent::findOrFail($walletAgent->id_networkAgent); $init_country = $network_agent->network->country->id; // Configuratrion du wallet $config = ConfigWallet::where('id_network', $network_agent->network_id)->firstOrFail(); } elseif (isset($request->id_wallet_user)) { $walletUser = WalletsUser::findOrFail($request->id_wallet_user); $init_country = $walletUser->user->network->country->id; $result = ConfigWallet::join('networks', 'networks.id', '=', 'configWallet.id_network') ->where('networks.country_id', $init_country)->where('configWallet.type', 'ilink') ->select('configWallet.id')->first(); if ($result) { $config = ConfigWallet::findOrFail($result->id); } else { return $this->errorResponse(trans('errors.no_ilink_network')); } } $networks = DB::select('SELECT n.id , n.name , c.type FROM networks n INNER JOIN configWallet c ON c.id_network = n.id WHERE n.id IN ( SELECT distinct id_network FROM paying_networks WHERE id_configWallet = :id_config) AND status = 1 AND country_id = :id_country;',['id_country'=>$request->id_country, 'id_config'=> $config->id]); foreach ($networks as $network){ if($network->type == 'ilink') $network->type = 'ilink-world'; } if($request->id_country == $init_country ){ $currentNetwork = new \stdClass(); $currentNetwork->id = $config->network->id; $currentNetwork->name = $config->network->name; $currentNetwork->type = 'ilink-world'; array_unshift($networks,$currentNetwork); } return $this->successResponse($networks); } public function other_paying_networks(Request $request) { $this->validate($request,[ 'id_country' => 'required|integer|min:0|not_in:0', 'id_wallet_agent' => 'required|integer|min:0|not_in:0', ]); $walletAgent = Wallet::findOrFail($request->get('id_wallet_agent')); $network_agent = NetworksAgent::findOrFail($walletAgent->id_networkAgent); // Configuratrion du wallet $config = ConfigWallet::where('id_network', $network_agent->network_id)->firstOrFail(); $networks = DB::select('SELECT n.id , n.name , c.type FROM networks n INNER JOIN configWallet c ON c.id_network = n.id WHERE n.id IN ( SELECT distinct id_network FROM paying_networks WHERE id_configWallet = :id_config) AND status = 1 AND c.type <> \'ilink\' AND country_id = :id_country;',['id_country'=>$request->id_country, 'id_config'=> $config->id]); return $this->successResponse($networks); } public function country($code_dial){ return $this->successResponse(Country::where('code_dial',$code_dial)->firstOrFail()); } public function init(){ //Mettre a jour tous les utilisateurs qui n'ont pas de wallet iLink $users = User::whereNull('user_code')->orWhere('user_code','')->get(); foreach ($users as $user) { do { $user_code = $this->generateUserCode(); $result = collect(DB::select('SELECT * FROM users WHERE user_code = :code', ['code' => $user_code])); $codeCorrect = sizeof($result) < 0; } while ($codeCorrect); $user->user_code = $user_code; $wallet = WalletsUser::where('idUser', $user->id)->first(); if (!$wallet) { DB::insert('INSERT INTO wallets_users (idUser) VALUES (?);', [$user->id]); $user->save(); } } return $this->successResponse('OK :-) , Have a nice day dear ! '); } private function generateUserCode($length = 10) { $characters = '23456789abcdefghjkmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ'; $charactersLength = strlen($characters); $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, $charactersLength - 1)]; } return $randomString; } }