MessageController.java 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package nju.seec.helper.controller;
  2. import nju.seec.helper.aspect.auth.Auth;
  3. import nju.seec.helper.aspect.auth.LoginUser;
  4. import nju.seec.helper.controller.response.PageResponse;
  5. import nju.seec.helper.dto.message.MessageDTO;
  6. import nju.seec.helper.entity.Message;
  7. import nju.seec.helper.enums.UserType;
  8. import nju.seec.helper.service.MessageService;
  9. import org.springframework.data.domain.Pageable;
  10. import org.springframework.data.web.PageableDefault;
  11. import org.springframework.validation.annotation.Validated;
  12. import org.springframework.web.bind.annotation.*;
  13. /**
  14. * @author cst
  15. */
  16. @RestController
  17. @RequestMapping("/api/message")
  18. public class MessageController {
  19. private final MessageService messageService;
  20. public MessageController(MessageService messageService) {
  21. this.messageService = messageService;
  22. }
  23. @Auth(roles = {UserType.TEACHER, UserType.STUDENT}, message = "设置已读")
  24. @PutMapping("/read")
  25. public void readMessages(LoginUser user,
  26. @Validated @RequestBody MessageDTO messageDTO) {
  27. messageService.readMessages(user, messageDTO);
  28. }
  29. @Auth(roles = {UserType.TEACHER, UserType.STUDENT}, message = "删除消息")
  30. @PutMapping("/delete")
  31. public void deleteMessages(LoginUser user,
  32. @Validated @RequestBody MessageDTO messageDTO) {
  33. messageService.deleteMessages(user, messageDTO);
  34. }
  35. @Auth(roles = {UserType.TEACHER, UserType.STUDENT}, message = "获取未读消息")
  36. @GetMapping("/unread")
  37. public PageResponse<Message> getUnreadMessages(LoginUser user,
  38. @RequestParam(required = false, defaultValue = "") String key,
  39. @PageableDefault(Integer.MAX_VALUE) Pageable pageable) {
  40. return PageResponse.of(messageService.getUnreadMessages(user, key, pageable));
  41. }
  42. @Auth(roles = {UserType.TEACHER, UserType.STUDENT}, message = "获取已读消息")
  43. @GetMapping("/read")
  44. public PageResponse<Message> getReadMessages(LoginUser user,
  45. @RequestParam(required = false, defaultValue = "") String key,
  46. @PageableDefault(Integer.MAX_VALUE) Pageable pageable) {
  47. return PageResponse.of(messageService.getReadMessages(user, key, pageable));
  48. }
  49. }