141 lines
5.5 KiB
PHP
141 lines
5.5 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]);
|
|
}
|
|
}
|