namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Models\User;
use App\Models\Plan;
use App\Models\Recharge;
use App\Models\WithdrawalSetting;
use App\Models\RechargeSettings;
use App\Models\Transaction;
use Carbon\Carbon;
class AdminUserController extends Controller {
public function all_users(Request $request) {
$users = User::all();
return view("admin.all_users", compact("users"));
}
public function allblocked_users(Request $request) {
$users = User::where("status", 0)->get();
return view("admin.allblocked_users", compact("users"));
}
public function admin_dashboard() {
$today = Carbon::today()->format("d-m-Y");
$data = array("usersCount" => \App\Models\User::where("status", 1)->count(), "blockedusersCount" => \App\Models\User::where("status", 0)->count(), "todayUsersCount" => \App\Models\User::where("created_at", $today)->count(), "rechargesTotal" => Recharge::where("status", 1)->where("approve_status", 1)->sum("amount"), "PendingRechargesTotal" => Recharge::where("status", 1)->where("approve_status", 0)->sum("amount"), "PendingWithdraw" => Transaction::where("transaction_type", "Withdrawal")->where("status", 1)->where("admin_status", 0)->sum("amount"), "totalWithdraw" => Transaction::where("transaction_type", "Withdrawal")->where("status", 1)->where("admin_status", 1)->sum("amount"));
return view("admin.dashboard", $data);
}
public function loginAsUser($id) {
$user = User::find($id);
if (!$user) {
return redirect()->back()->with("error", "User not found.");
}
Auth::login($user);
return redirect("/index/my/index.html");
}
public function all_packages(Request $request) {
$plans = Plan::all();
return view("admin.all_packages", compact("plans"));
}
public function sunpayForm() {
$sunpayDetails = RechargeSettings::where("gateway_name", "Sunpay")->first();
return view("admin.sunpay", compact("sunpayDetails"));
}
public function saveSunpayDetails(Request $request) {
$request->validate(array("gateway_name" => "required|string|max:2", "merchant_key" => "required|string", "merchant_id" => "required|numeric", "channel_code" => "required|numeric", "status" => "required|in:0,1"));
$sunpayDetails = RechargeSettings::where("gateway_name", "Sunpay")->first();
if ($sunpayDetails) {
$sunpayDetails->update(array("merchant_key" => $request->merchant_key, "merchant_id" => $request->merchant_id, "channel_code" => $request->channel_code, "status" => $request->status));
return response()->json(array("code" => 200, "info" => "Sunpay details updated successfully."));
}
else {
RechargeSettings::create(array("gateway_name" => "Sunpay", "merchant_key" => $request->merchant_key, "merchant_id" => $request->merchant_id, "channel_code" => $request->channel_code, "status" => $request->status));
return response()->json(array("code" => 200, "info" => "Sunpay details created successfully."));
}
}
public function watchpayForm() {
$watchpayDetails = RechargeSettings::where("gateway_name", "Watchpay")->first();
return view("admin.watchpay", compact("watchpayDetails"));
}
public function saveWatchpayDetails(Request $request) {
$request->validate(array("gateway_name" => "required|string|max55", "merchant_key" => "required|string", "merchant_id" => "required|numeric", "channel_code" => "required|numeric", "status" => "required|in:0,1"));
$watchpayDetails = RechargeSettings::where("gateway_name", "Watchpay")->first();
if ($watchpayDetails) {
$watchpayDetails->update(array("merchant_key" => $request->merchant_key, "merchant_id" => $request->merchant_id, "channel_code" => $request->channel_code, "status" => $request->status));
return response()->json(array("code" => 200, "info" => "Watchpay details updated successfully."));
}
else {
RechargeSettings::create(array("gateway_name" => "Watchpay", "merchant_key" => $request->merchant_key, "merchant_id" => $request->merchant_id, "channel_code" => $request->channel_code, "status" => $request->status));
return response()->json(array("code" => 200, "info" => "Watchpay details created successfully."));
}
}
public function sunpaywithdrawForm() {
$sunpayDetails = WithdrawalSetting::where("gateway_name", "Sunpay")->first();
return view("admin.withdraw.sunpay", compact("sunpayDetails"));
}
public function saveSunpaywithdrawDetails(Request $request) {
$request->validate(array("gateway_name" => "required|string|max:2", "withdraw_key" => "required|string", "withdraw_merchant" => "required|numeric", "status" => "required|in:0,1"));
$sunpayDetails = WithdrawalSetting::where("gateway_name", "Sunpay")->first();
if ($sunpayDetails) {
$sunpayDetails->update(array("withdraw_key" => $request->withdraw_key, "withdraw_merchant" => $request->withdraw_merchant, "status" => $request->status));
return response()->json(array("code" => 200, "info" => "Sunpay withdrawal details updated successfully."));
}
else {
WithdrawalSetting::create(array("gateway_name" => "Sunpay", "withdraw_key" => $request->withdraw_key, "withdraw_merchant" => $request->withdraw_merchant, "status" => $request->status));
return response()->json(array("code" => 200, "info" => "Sunpay withdrawal details created successfully."));
}
}
public function watchpaywithdrawForm() {
$watchpayDetails = WithdrawalSetting::where("gateway_name", "Watchpay")->first();
return view("admin.withdraw.watchpay", compact("watchpayDetails"));
}
public function saveWatchpaywithdrawDetails(Request $request) {
$request->validate(array("gateway_name" => "required|string|max:255", "withdraw_key" => "required|string", "withdraw_merchant" => "required|numeric", "status" => "required|in:0,1"));
$watchpayDetails = WithdrawalSetting::where("gateway_name", "Watchpay")->first();
if ($watchpayDetails) {
$watchpayDetails->update(array("withdraw_key" => $request->withdraw_key, "withdraw_merchant" => $request->withdraw_merchant, "status" => $request->status));
return response()->json(array("code" => 200, "info" => "Watchpay withdrawal details updated successfully."));
}
else {
WithdrawalSetting::create(array("gateway_name" => "Watchpay", "withdraw_key" => $request->withdraw_key, "withdraw_merchant" => $request->withdraw_merchant, "status" => $request->status));
return response()->json(array("code" => 200, "info" => "Watchpay withdrawal details created successfully."));
}
}
public function showSystemRechargeForm() {
return view("admin.system_recharge");
}
public function processSystemRecharge(Request $request) {
$request->validate(array("phone" => "required|numeric", "wallet_balance" => "required|numeric|min:1"));
$user = User::where("phone", $request->phone)->first();
if (!$user) {
return response()->json(array("code" => 404, "info" => "User not found."));
}
$user->wallet_balance += $request->wallet_balance;
$user->save();
Transaction::create(array("user_id" => $user->id, "sponsor_code" => $user->sponsor_code, "phone" => $user->phone, "transaction_type" => "System reward", "amount" => $request->wallet_balance, "cdtype" => "Credit", "status" => "1", "admin_status" => "1", "created_at" => Carbon::now()->format("d-m-Y"), "time" => Carbon::now()->format("H:i:s")));
return response()->json(array("code" => 200, "info" => "System recharge sent"));
}
}
© 2023 Quttera Ltd. All rights reserved.