You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
2.2 KiB

  1. package com.wyz.demo.controller;
  2. import com.wyz.demo.dto.UserDTO;
  3. import com.wyz.demo.service.UserService;
  4. import com.wyz.demo.vo.Message;
  5. import lombok.extern.slf4j.Slf4j;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.web.bind.annotation.*;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import javax.servlet.http.HttpSession;
  11. @Slf4j
  12. @RestController
  13. @RequestMapping("/user")
  14. public class UserController {
  15. @Autowired
  16. public UserService userService;
  17. @GetMapping("/hello")
  18. public String simpleString(){
  19. return "<h2>/hello</h2><br>";
  20. }
  21. /**
  22. * 用户注册
  23. *
  24. * 情况1: 用户名已经被注册了
  25. * 情况2: 正常注册
  26. *
  27. * @return
  28. */
  29. @PostMapping(value = "/register")
  30. public Message register(@RequestBody UserDTO u, HttpServletResponse resp, HttpSession sess){
  31. log.info("this is userDTO: {}",u);
  32. Message msg = userService.addUser(u,resp,sess);
  33. return msg;
  34. }
  35. /**
  36. * 用户登录: 需要返回
  37. *
  38. * 情况1: 用户名不存在
  39. * 情况2: 用户名存在, 但是密码错误
  40. * 情况3: 正确登录, 并注册一个session
  41. *
  42. * @param u
  43. */
  44. @PostMapping(value = "/login")
  45. public Message login(@RequestBody UserDTO u, HttpServletResponse resp, HttpSession sess){
  46. log.info("this is userDTO: {}",u);
  47. Message msg = userService.checkUser(u, resp, sess);
  48. return msg;
  49. }
  50. /**
  51. * 添加用户: 前端发个请求看看用户是否登录
  52. *
  53. * 情况1: 没有登录
  54. * 情况2: 已经登录
  55. *
  56. * @return
  57. */
  58. @RequestMapping(value = "/check")
  59. public Message check(HttpSession sess){
  60. Message msg = userService.checkStatus(sess);
  61. return msg;
  62. }
  63. /**
  64. * 添加用户: 前端发个请求注销
  65. *
  66. * 情况1:
  67. *
  68. * @return
  69. */
  70. @RequestMapping(value = "/logout")
  71. public void logout(HttpSession sess){
  72. log.info("用户:{} 已经注销",sess.getAttribute("username"));
  73. sess.invalidate();
  74. }
  75. }