/
home
/
maktab
/
server
/
app
/
Http
/
Controllers
/
Admin
/
File Upload :
llllll
Current File: /home/maktab/server/app/Http/Controllers/Admin/UserController.php
<?php namespace App\Http\Controllers\Admin; use App\DB\Te\TableEngine; use App\Http\Controllers\Controller; use App\Http\Controllers\InterfaceController; use App\Http\Controllers\SuperController; use App\Models\Cnt; use App\Models\User; use App\Models\Users_to_maktab; use Illuminate\Validation\Rule; use Illuminate\Http\Request; use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException; class UserController extends SuperController { public function __construct() { $with = ['file', 'maktab', 'cloony', 'type_cnt', 'children', 'userInfo', 'users_to_maktab.type_cnt', 'users_to_maktab.maktab', 'users_to_maktab.cloony', // 'users_to_maktab.type as type_str', ]; parent::__construct(User::class,$with,['*'],'user'); } public function index(Request $request,$type = null){ // return $request; if (!isset($type)){ $type = 1; } $query = User::with(['file','userTypeCnt'])->where('type',$type); $serch = ['name','mobile']; $select = ['*']; $query = (new InterfaceController())->index($request->all(),$serch,$select,$query); return response()->json($query); } public function showMe(){ return response()->json( User::with(['file','userTypeCnt'])->findOrFail(auth()->id()) ); } public function usersList(Request $request) { $employee = User::with([ 'file', 'maktab', 'cloony', 'type_cnt', 'children', 'userInfo', 'users_to_maktab.type_cnt', 'users_to_maktab.maktab', 'users_to_maktab.cloony' ]); TableEngine::create($employee, $request) ->initSearch(['name','mobile']) ->select(['*', User::$SELECT_TYPE_STR]) ->export($employee); return response()->json($employee); } public function store(Request $request) { if (!isset($request->type)){ $request->request->add(['type'=>1]); } $user = User::where('mobile',$request->mobile)->first(); if (is_null($user)){ return parent::store($request); // TODO: Change the autogenerated stub } throw new UnprocessableEntityHttpException('این شماره همراه توسط شخص دیگری در حال استفاده است'); } public function userInfo(Request $request) { $query = User::with(['userInfo']) ->whereHas('userInfo'); // Add this line to filter users with userInfo TableEngine::create($query, $request) ->initSearch(['name','mobile']) ->select(['*']) ->export($query); return response()->json($query); } public function userInfoById(Request $request,$id) { return User::with(['userInfo','userTypeCnt','file','maktab','type_cnt','attendance','cloony','message','children']) ->whereHas('userInfo')->where('id',$id)->first(); } public function usersToMaktabByUser(Request $request) { $returnArray = []; $returnArray['request_data'] = $request->all(); // لاگ کردن تمام دادههای درخواست // تعریف رابطهها $w = [ 'message', 'userInfo', 'attendances', 'experiences' ]; // پیدا کردن کاربر مبدا و مقصد try { $fromUser = User::with($w)->findOrFail($request->from_user_id); } catch (\Illuminate\Database\Eloquent\ModelNotFoundException $e) { return response()->json([ 'message' => 'کاربر انتخاب شده دیگر وجود ندارد.', ], 422); } $toUser = User::with($w)->findOrFail($request->user_id); // لاگ کردن اطلاعات کاربر مبدا و مقصد $returnArray['from_user'] = $fromUser; $record = Users_to_maktab::create([ 'user_id' => $toUser->id, 'maktab_id' => $fromUser->maktab_id, 'type_employee' => $fromUser->type_employee, 'type' => $fromUser->type, 'active' => 0, ]); $returnArray['to_user'] = $toUser; // بایگانی اطلاعات کاربر قدیمی // $archivedUser = $fromUser->replicate(); // $archivedUser->save(); // $returnArray['archived_user'] = $archivedUser; // لاگ کردن کاربر بایگانی شده // ثبت اطلاعات برای کاربر جدید if ($fromUser->message) { $toUser->message()->saveMany($fromUser->message); $returnArray['saved_message'] = $fromUser->message; // لاگ کردن پیامهای منتقل شده } if ($fromUser->userInfo) { $toUser->userInfo()->save($fromUser->userInfo); $returnArray['saved_userInfo'] = $fromUser->userInfo; // لاگ کردن اطلاعات کاربر منتقل شده } if ($fromUser->attendances) { $toUser->attendances()->saveMany($fromUser->attendances); $returnArray['saved_attendances'] = $fromUser->attendances; // لاگ کردن حضور و غیابهای منتقل شده } if ($fromUser->experiences) { $toUser->experiences()->saveMany($fromUser->experiences); $returnArray['saved_experiences'] = $fromUser->experiences; // لاگ کردن تجربیات منتقل شده } $fromUser = User::findOrFail($request->from_user_id)->delete(); // بازگرداندن آرایه لاگ return $returnArray; } public function createUsersToMaktab(Request $request) { // اعتبارسنجی دادههای ورودی $allowedTypes = array_keys(Users_to_maktab::$TYPE); $validated = $request->validate([ 'user_id' => 'required|exists:users,id', 'maktab_id' => 'required|exists:maktabs,id', 'type_employee' => 'required_if:type,4|integer', 'type' => ['required', Rule::in($allowedTypes)], 'active' => 'sometimes|boolean', ]); $record = Users_to_maktab::create([ 'user_id' => $validated['user_id'], 'maktab_id' => $validated['maktab_id'], 'type_employee' => $validated['type_employee'] ?? null, 'type' => $validated['type'], 'active' => $validated['active'] ?? 0, ]); return response()->json($record, 201); // پاسخ با کد 201 (Created) } // Update (ویرایش) public function updateUsersToMaktab(Request $request, $id) { $a = $request->all(); $record = Users_to_maktab::findOrFail($id)->update([ 'user_id' => $request->user_id, 'maktab_id' => $request->maktab_id, 'type_employee' => $request->type_employee, 'type' => $request->type, ]); return response()->json(['message' => 'رکورد با موفقیت بهروزرسانی شد!', 'data' => $record]); } // Delete (حذف) public function deleteUsersToMaktab($id) { $record = Users_to_maktab::findOrFail($id); $record->delete(); return response()->json(['message' => 'رکورد با موفقیت حذف شد!']); } }
Copyright ©2k19 -
Hexid
|
Tex7ure