Files
quayso.sisvietnam.vn/app/Http/Controllers/UserController.php
T

141 lines
5.4 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
use App\Models\Role;
use App\Models\UserRole;
use Auth;
class UserController extends Controller
{
public function users (Request $request) {
$data_obj = User::where('status', '!=', '');
if ($request->type != '') {
$data_obj = $data_obj->where('account_type', $request->type);
}
$data = $data_obj->orderBy('name')->get();
$route_name_update = 'admin/users/update';
$title = 'Danh mục người dùng';
return view('backend.user.index')->with('data', $data)
->with('title', $title)
->with('route_name_update', $route_name_update)
->with('request_type', $request->type);
}
public function getUser(Request $request) {
$title = 'Cập nhật người dùng';
if ($request->id == 0) {
$title = 'Thêm mới người dùng';
}
$data = User::find($request->id);
$role_data = Role::where('role_status', 1)
->orderBy('role_order', 'asc')
->orderBy('role_name', 'asc')->get();
$user_role_data = UserRole::where('user_id', $request->id)->get();
$user_role = [];
foreach ($user_role_data as $user_role_item) {
$user_role[] = $user_role_item['role_id'];
}
return view('backend.user.detail')
->with('data', $data)
->with('title', $title)
->with('role_data', $role_data)
->with('user_role', $user_role);
}
public function updateUser(Request $request) {
if ($request->type == 'account') {
// cap nhat tai khoan ca nhan
$request->validate([
'name'=>'required|max:50',
'email'=>'required|unique:users,email,' . $request->id . ',id'
], [
'name.required' => 'Nhập tên hiển thị',
'name.max' => 'Tên hiển thị vượt quá ký tự cho phép',
'email.required' => 'Nhập tên đăng nhập',
'email.unique' => 'Tên đăng nhập bị trùng'
]);
} else {
$request->validate([
'name'=>'required|max:50',
'email'=>'required|unique:users,email,' . $request->id . ',id',
'status' => 'required'
], [
'name.required' => 'Nhập tên hiển thị',
'name.max' => 'Tên hiển thị vượt quá ký tự cho phép',
'email.required' => 'Nhập tên đăng nhập',
'email.unique' => 'Tên đăng nhập bị trùng',
'status.required' => 'Nhập trạng thái'
]);
}
if ($request->id == 0){
$request_data = $request->except('id');
$request_data['name'] = $request->name;
$request_data['email'] = $request->email;
if ($request->password != '') {
$request_data['password'] = bcrypt($request->password);
} else {
$request_data['password'] = bcrypt('123');
}
$request_data['status'] = $request->status;
$id = User::create($request_data)->id;
$role_obj = Role::where('role_code', 'admin_account')->first();
if ($role_obj != null) {
$role_id = $role_obj->id;
UserRole::create(Array(
'user_id' => $id,
'role_id' => $role_id
));
}
return redirect()->route('admin/users/update', array('id' => $id));
} else {
// cap nhat
$id = $request->id;
$user_obj = User::find($id);
$user_obj->name = $request->name;
if ($request->status != '') {
$user_obj->status = $request->status;
}
if ($request->password != '') {
$user_obj->password = bcrypt($request->password);
}
$user_obj->save();
if (!empty($request->user_role)) {
UserRole::where('user_id', $id)->delete();
foreach ($request->user_role as $role_id) {
UserRole::create(Array(
'user_id' => $id,
'role_id' => $role_id
));
}
}
return redirect()->back()->with('success', 'Cập nhật thành công ');
}
}
public function updateSpined (Request $request) {
$user_id = $request->user_id;
$user_obj = User::find($user_id);
if ($user_obj != null) {
$user_obj->spined = 0;
$user_obj->save();
}
return response()->json(['success' => 'Thành công']);
}
public function checkspined () {
if (!Auth::check()) {
return response()->json(['error' => 'Chưa đăng nhập', 'message' => 'Người dùng phải đăng nhập trước khi thực hiện']);
}
$user_obj = User::find(Auth::user()->id);
if ($user_obj == null) {
return response()->json(['error' => 'Không tồn tại tài khoản', 'message' => 'Không tìm thấy tài khoản']);
}
return response()->json(['success' => 'Lấy dữ liệu thành công', 'spined' => $user_obj->spined]);
}
}