Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 88 additions & 0 deletions app/DB/TepRepo.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
<?php


namespace App\DB;


use App\Models\User;
use Illuminate\Support\Facades\DB;

class TepRepo
{

public function getUserwithoutTrashedPaginated()// Design pattern , Solid(1)
{
$data_user = User::withoutTrashed()
->paginate('20');
return $data_user;
}

public function getUserwithoutTrashedAll()// Design pattern , Solid(1)
{
$data_user_all = User::withoutTrashed()
->get();
return $data_user_all;
}

public function getUserTrashedPaginated()// Design pattern , Solid(1)
{
$data_user = User::onlyTrashed()
->paginate('20');
return $data_user;
}

public function getUserTrashedAll()// Design pattern , Solid(1)
{
$data_user_all = User::onlyTrashed()
->get();
return $data_user_all;
}

public function restoreDeletedMobile($id)// Design pattern , Solid(1)
{
$restore_mobile = $this->getUserTrashedAll()->find($id)->restore();
return $restore_mobile;
}

public function UserCheckCount($username1, $password1)
{
$data3 = User::where('Emd_id', '=', $username1)
->where('password', '=', $password1)
->count();
return $data3;
}

public function UserSearchBasedEmpID($user_emp_id)
{
$data_user = User::where('Emd_id', $user_emp_id)
->paginate('25');
return $data_user;
}
public function getUserAllPaginate($page)
{
$data_user = User::paginate($page);
return $data_user;
}
public function UserDeleteBasedID($id)
{
$del_mobile = User::where('id', $id)->delete();
return $del_mobile;
}
public function UserForceDeleteByID($id)
{
$del_mobile_force = User::withTrashed()->where('id', $id)->forceDelete();
return $del_mobile_force;
}
public function UsersearchBasedID($id_user)
{
$update_mobile_user = User::where('id', $id_user);
return $update_mobile_user;
}
public function UserUpdateMobile($id_user,$new_mobile)
{
$set_mobile_user = $this->UsersearchBasedID($id_user)->update(['mobile' => $new_mobile]);
return $set_mobile_user;
}


}
20 changes: 20 additions & 0 deletions app/Decorates/Logger.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php


namespace App\Decorates;


use Illuminate\Auth\Events\Login;
use Illuminate\Support\Facades\Log;

class Logger
{
function LogMethodCall($callable){
return function ($param) use ($callable){
$result=app()->call($callable,[$param]);
Log::info('param is: '.implode(',',$param).'and result is: '.$result);
};

}

}
165 changes: 81 additions & 84 deletions app/Http/Controllers/TelUserController.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace App\Http\Controllers;

use App\DB\TepRepo;
use App\Imports\UsersImport;
use App\Models\User;
use http\Exception;
Expand All @@ -12,6 +13,7 @@
use Illuminate\Support\Facades\DB;
use App\Exports\ExportUser;
use Illuminate\Support\Facades\Log;
use LaravelDaily\LaravelCharts\Classes\LaravelChart;
use Maatwebsite\Excel\Facades\Excel;
use App\Notifications\SendNotification;
use \App\Notifications\TelegramNotification;
Expand All @@ -22,22 +24,36 @@ class TelUserController extends Controller
//
public function index(Request $request)
{
return "Welcome to TelUser Project";
// $user_ip=$request->ip();
// $user_agent=$request->userAgent();
// Cache::store('database')->increment('visit_page_cache');
// Cache::store('file')->forever('visit_page_cache',1);

try{
Cache::store('database')->put('visit_page_cache',1,20);

// if(!session()->has('ip_address') and !session()->has('user_agent') )
// {
// session(['ip_address' => $user_ip]);
// session(['user_agent' => $user_agent]);
// }
}
catch (\Exception $e){
Log::error($e);
}
return view('welcome');
}

public function CheckUser(Request $request)
{
$telFunctionClasses=resolve(TepRepo::class);
try {
if ($request->ajax()) {
//$data = DB::table('weblinks')->orderBy('id','desc')->get();
$username1 = $request->user1;
$password1 = $request->pass1;

$data3 = DB::table('users')
->select('*')
->where('Emd_id', '=', $username1)
->where('password', '=', $password1)
->count();
$data3 = $telFunctionClasses->UserCheckCount($username1, $password1);
//->paginate(30);
//echo $data3;

Expand Down Expand Up @@ -93,18 +109,56 @@ public function fileImport(Request $request)
public function adminLTE()
{
// $data_user=User::get();
$data_user = $this->getUserwithoutTrashedPaginated();
$data_user_all = $this->getUserwithoutTrashedAll();
$telFunctionClasses=resolve(TepRepo::class);
$data_user = $telFunctionClasses->getUserwithoutTrashedPaginated();
$data_user_all = $telFunctionClasses->getUserwithoutTrashedAll();



// echo "Find ID successfuly ";
return view('Login.AdminLTE', compact('data_user', 'data_user_all'));
// redirect('Login.AdminLTE');
}

public function UserStastics(Request $request)
{
// $chart_options = [
// 'chart_title' => 'Users by months',
// 'report_type' => 'group_by_date',
// 'model' => 'App\Models\User',
// 'group_by_field' => 'created_at',
// 'group_by_period' => 'week',
// 'chart_type' => 'bar',
//// 'conditions' => [
//// ['name' => 'UserLogin', 'condition' => 'category_id = 1', 'color' => 'yellow', 'fill' => true]
//// ],
//
// ];

$chart_options = [
'chart_title' => 'Transactions by dates',
'report_type' => 'group_by_date',
'model' => 'App\Models\User',
'group_by_field' => 'created_at',
'group_by_period' => 'month',
// 'aggregate_function' => 'sum',
// 'aggregate_field' => 'amount',
'chart_type' => 'line',
];
try {
$chart1 = new LaravelChart($chart_options);
} catch (\Exception $e) {
Log::error($e);
}
return view('Charts.UserStastics',compact('chart1'));
}

public function Deleted_Mobile_users()
{
// $data_user=User::get();
$data_user = $this->getUserTrashedPaginated();
$data_user_all = $this->getUserTrashedAll();
$telFunctionClasses=resolve(TepRepo::class);
$data_user = $telFunctionClasses->getUserTrashedPaginated();
$data_user_all = $telFunctionClasses->getUserTrashedAll();
// echo "Find ID successfuly ";
return view('Results.Deleted_User', compact('data_user', 'data_user_all'));
// redirect('Login.AdminLTE');
Expand All @@ -114,7 +168,8 @@ public function restore_user(Request $request)
{
// $data_user=User::get();
$id = $request->id;
$restore_mobile = $this->restoreDeletedMobile($id);//db part
$telFunctionClasses=resolve(TepRepo::class);
$restore_mobile = $telFunctionClasses->restoreDeletedMobile($id);//db part
if ($restore_mobile) {// http response
return response()->json([
'success' => 'بازنشانی باموفقیت صورت گرفت'
Expand All @@ -126,11 +181,10 @@ public function restore_user(Request $request)
public function prs_search(Request $request)
{
// $data_user=User::get();
$telFunctionClasses=resolve(TepRepo::class);

$user_emp_id = $request->emp_id;
$data_user = DB::table('users')
->select('*')
->where('Emd_id', '=', $user_emp_id)
->paginate('25');
$data_user = $telFunctionClasses->UserSearchBasedEmpID($user_emp_id);


return view('Results.usershowByPrs', compact('data_user'));
Expand All @@ -139,20 +193,18 @@ public function prs_search(Request $request)

public function FilterUser()
{
$data_user = DB::table('users')
->select('*')
->paginate('20');
$page=20;
$telFunctionClasses=resolve(TepRepo::class);
$data_user = $telFunctionClasses->getUserAllPaginate($page);

return view('Results.user_management', compact('data_user'));
}

public function destroy($id)
{
//User::find($id)->delete($id);
// DB::table('user_msg')
// ->where('id', $id)
// ->delete();
$del_mobile = User::where('id', $id)->delete();// by the way the deleted_at generated in mysql

$telFunctionClasses=resolve(TepRepo::class);
$del_mobile = $telFunctionClasses->UserDeleteBasedID($id);// by the way the deleted_at generated in mysql
if ($del_mobile) {
return response()->json([
'success' => 'حذف با موفقیت صورت گرفت!'
Expand All @@ -163,7 +215,8 @@ public function destroy($id)

public function destroyForce($id)
{
$del_mobile_force = User::withTrashed()->where('id', $id)->forceDelete();// by the way the deleted_at generated in mysql
$telFunctionClasses=resolve(TepRepo::class);
$del_mobile_force = $telFunctionClasses->UserForceDeleteByID($id);// by the way the deleted_at generated in mysql
if ($del_mobile_force) {
return response()->json([
'success' => 'موبایل به طور کامل از دیتا بیس حذف گردید.'
Expand All @@ -183,17 +236,15 @@ public function Update_mobile(Request $request)

//if($request->ajax())
if ($request->ajax()) {
$telFunctionClasses=resolve(TepRepo::class);
$user_mobile_new = $request->new_mobile;
$id_user=$request->id_ajax;
$time2 = time();
//$time2=jdate('Y/n/j H:i:s');
//$time2="123456789";
try {
// Validate the value...
$update_mobile_user = User::where('id', $request->id_ajax)// in this part I used to user_msg model for query
->update(['mobile' => $user_mobile_new]);
// if(DB::table('user_msg')
// ->where('id', $request->id_ajax)
// ->update(['msg_response'=>$msg_admin1, 'date_response'=>$time2]))
$update_mobile_user = $telFunctionClasses->UserUpdateMobile($id_user,$user_mobile_new);//Use Design pattern and The first principal of Solid
if ($update_mobile_user) {
echo '<div class="alert alert-success">آپدیت موفقیت آمیز بود.</div>';
// return "ok";// for testing code by postman
Expand All @@ -204,6 +255,7 @@ public function Update_mobile(Request $request)
}
} catch (Exception $e) {
echo '<div class="alert alert-success">error exist in your code</div>';
Log::log($e);
//consloe.log($ex->getMessage());
//dd($e->getMessage());
//return false;
Expand All @@ -225,60 +277,5 @@ public function telegram()
// return (new TelegramNotification());
}

/**
* @return \Illuminate\Contracts\Pagination\LengthAwarePaginator
*/
private function getUserwithoutTrashedPaginated()// Design pattern , Solid(1)
{
$data_user = User::withoutTrashed()
->paginate('20');
return $data_user;
}

/**
* @return \Illuminate\Database\Eloquent\Builder[]|\Illuminate\Database\Eloquent\Collection|\Illuminate\Database\Query\Builder[]|\Illuminate\Support\Collection
*/
private function getUserwithoutTrashedAll()// Design pattern , Solid(1)
{
$data_user_all = User::withoutTrashed()
->get();
return $data_user_all;
}

/**
* @return \Illuminate\Contracts\Pagination\LengthAwarePaginator
*/
private function getUserTrashedPaginated()// Design pattern , Solid(1)
{
$data_user = User::onlyTrashed()
->paginate('20');
return $data_user;
}

/**
* @return \Illuminate\Database\Eloquent\Builder[]|\Illuminate\Database\Eloquent\Collection|\Illuminate\Database\Query\Builder[]|\Illuminate\Support\Collection
*/
private function getUserTrashedAll()// Design pattern , Solid(1)
{
$data_user_all = User::onlyTrashed()
->get();
return $data_user_all;
}

/**
* @param $id
* @return mixed
*/
private function restoreDeletedMobile($id)// Design pattern , Solid(1)
{
$restore_mobile = $this->getUserTrashedAll()->find($id)->restore();
return $restore_mobile;
}

/**
* @param $user_emp_id
* @return mixed
*/


}
2 changes: 2 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@
"babenkoivan/telegram-notifications": "^1.1",
"doctrine/dbal": "*",
"guzzlehttp/guzzle": "^7.2",
"imanghafoori/laravel-decorator": "^1.0",
"irazasyed/telegram-bot-sdk": "^3.9",
"laravel-notification-channels/telegram": "^3.0",
"laravel/framework": "^9.19",
"laravel/sanctum": "^3.0",
"laravel/tinker": "^2.7",
"laravel/ui": "^4.1",
"laraveldaily/laravel-charts": "^0.1.29",
"maatwebsite/excel": "^3.1",
"psr/simple-cache": "1.0"
},
Expand Down
Loading