AdminLoginController.java 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package com.haha.admin.controller;
  2. import cn.dev33.satoken.annotation.SaIgnore;
  3. import cn.dev33.satoken.stp.StpUtil;
  4. import com.haha.admin.dto.AdminLoginDTO;
  5. import com.haha.admin.service.AdminLoginService;
  6. import com.haha.common.vo.LoginVO;
  7. import com.haha.common.vo.Result;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.web.bind.annotation.*;
  11. import java.util.Map;
  12. /**
  13. * 管理员登录控制器
  14. */
  15. @Slf4j
  16. @RestController
  17. @RequestMapping("/login")
  18. public class AdminLoginController {
  19. @Autowired
  20. private AdminLoginService adminLoginService;
  21. /**
  22. * 管理员登录
  23. * @param loginDTO 登录请求参数
  24. * @return 登录结果,包含token和用户信息
  25. */
  26. @SaIgnore
  27. @PostMapping
  28. public Result<LoginVO> login(@RequestBody AdminLoginDTO loginDTO) {
  29. log.info("收到登录请求: username={}", loginDTO.getUsername());
  30. return adminLoginService.login(loginDTO.getUsername(), loginDTO.getPassword());
  31. }
  32. /**
  33. * 退出登录
  34. * @return 退出结果
  35. */
  36. @PostMapping("/logout")
  37. public Result<Void> logout() {
  38. try {
  39. Object loginId = StpUtil.getLoginId();
  40. log.info("管理员退出登录: userId={}", loginId);
  41. StpUtil.logout();
  42. return Result.success("退出登录成功", null);
  43. } catch (Exception e) {
  44. log.error("退出登录异常: {}", e.getMessage(), e);
  45. return Result.error(500, "退出登录失败: " + e.getMessage());
  46. }
  47. }
  48. /**
  49. * 获取当前登录管理员信息
  50. * @return 管理员信息
  51. */
  52. @GetMapping("/info")
  53. public Result<Map<String, Object>> getInfo() {
  54. try {
  55. Object loginId = StpUtil.getLoginId();
  56. log.debug("获取管理员信息: userId={}", loginId);
  57. return adminLoginService.getAdminInfo(loginId.toString());
  58. } catch (Exception e) {
  59. log.error("获取管理员信息异常: {}", e.getMessage(), e);
  60. return Result.error(500, "获取信息失败: " + e.getMessage());
  61. }
  62. }
  63. }