package cn.poyee.endpoint; import cn.poyee.common.result.Result; import cn.poyee.entity.Message; import cn.poyee.entity.MessageRead; import cn.poyee.entity.query.MessageQuery; import cn.poyee.service.MessageService; import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.AllArgsConstructor; import org.springframework.util.Assert; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; import java.util.Objects; @RestController @RequestMapping("/api/msg") @AllArgsConstructor public class MessageController { private final MessageService messageService; @GetMapping("/paging") public Result> paging(MessageQuery query) { IPage result = messageService.paging(query); return Result.success(result.getRecords(), result.getTotal()); } @GetMapping public Result> listMessage(MessageQuery query) { return Result.success(messageService.listMessage(query)); } @PostMapping public Result addMessage(@RequestBody Message message) { return Result.judge(messageService.addMessage(message)); } @GetMapping("/{id}") public Result byId(@PathVariable Integer id) { return Result.success(messageService.getById(id)); } @PutMapping public Result updateMessage(@RequestBody Message message) { Assert.isTrue(Objects.nonNull(message.getId()), "缺少必填字段"); return Result.success(messageService.updateMessage(message)); } @DeleteMapping("/{id}") public Result deleteMessage(@PathVariable Integer id) { return Result.success(messageService.deleteMessage(id)); } @PostMapping("/read") public Result read(@RequestParam Map param) { return Result.success(messageService.read(param)); } @GetMapping("/unread-count") public Result unreadCount(String messageType) { return Result.success(messageService.unreadCount(messageType)); } @GetMapping("/read/{messageId}") public Result> readRecord(@PathVariable Long messageId) { return Result.success(messageService.readRecord(messageId)); } }