feature: send thankscard page

This commit is contained in:
antv
2026-07-14 16:23:04 +07:00
parent 3aa9e04bd7
commit 05605ed1eb
28 changed files with 536 additions and 297 deletions
+30 -1
View File
@@ -97,8 +97,26 @@ class AdminController extends Controller
public function update(UpdateUserRequest $request, string $msnv)
{
$user = $this->adminService->getUserByMsnv($msnv);
$validatedData = $request->validated();
$this->adminService->updateUser($user, $request->validated());
$this->adminService->updateUser($user, $validatedData);
$currentUser = auth()->user();
if ($currentUser && $user->id === $currentUser->id && isset($validatedData['status']) && $validatedData['status'] == config('constants.STATUS_INACTIVE')) {
auth()->logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
if ($request->expectsJson() || $request->ajax() || $request->wantsJson()) {
return response()->json([
'success' => true,
'message' => 'Tài khoản của bạn đã chuyển sang trạng thái nghỉ việc. Bạn đã được đăng xuất.',
'redirect' => route('login'),
]);
}
return redirect()->route('login')->with('success', 'Tài khoản của bạn đã chuyển sang trạng thái nghỉ việc. Bạn đã được đăng xuất.');
}
if ($request->expectsJson()) {
return response()->json([
@@ -116,8 +134,19 @@ class AdminController extends Controller
*/
public function destroy(string $msnv): RedirectResponse
{
$user = $this->adminService->getUserByMsnv($msnv);
$this->adminService->deactivateUser($msnv);
$currentUser = auth()->user();
if ($currentUser && $user->id === $currentUser->id) {
auth()->logout();
request()->session()->invalidate();
request()->session()->regenerateToken();
return redirect()->route('login')->with('success', 'Tài khoản của bạn đã chuyển sang trạng thái nghỉ việc. Bạn đã được đăng xuất.');
}
return redirect()->route('admin.users.index')->with('success', __('messages.user_deactivate_success'));
}
+7 -4
View File
@@ -61,9 +61,6 @@ class UserController extends Controller
return view('user.send', compact('users'));
}
/**
* Store and execute sending thank cards to another user.
*/
public function storeThankcards(SendThankCardRequest $request): JsonResponse
{
try {
@@ -76,7 +73,13 @@ class UserController extends Controller
return response()->json(['success' => false, 'message' => $e->getMessage()], 422);
}
return response()->json(['success' => true, 'message' => __('messages.thank_card_send_success')]);
$receiverUser = \App\Models\User::where('msnv', $request->input('receiver'))->first();
return response()->json([
'success' => true,
'message' => __('messages.thank_card_send_success'),
'receiver_email' => $receiverUser ? $receiverUser->mail : '',
]);
}
/**
+15
View File
@@ -88,5 +88,20 @@ class User extends Authenticatable
return asset($value);
}
/**
* Get the user's department name.
*
* @return string|null
*/
public function getDepartmentNameAttribute()
{
$deptVal = $this->departments;
if (is_numeric($deptVal)) {
$idx = ((int)$deptVal) - 1;
return config('constants.DEPARTMENTS')[$idx] ?? $deptVal;
}
return $deptVal;
}
}