package com.tcm.training.admin.app.notice.controller; import com.tcm.training.admin.app.notice.service.AppNoticeService; import com.tcm.training.admin.app.notice.vo.AppNoticeItemVO; import com.tcm.training.admin.common.ApiResponse; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * APP 通知中心接口。 */ @Validated @RestController @RequestMapping({"/api/app/notices", "/api/v1/app/notices"}) public class AppNoticeController { private final AppNoticeService appNoticeService; /** * 注入 APP 通知中心服务。 */ public AppNoticeController(AppNoticeService appNoticeService) { this.appNoticeService = appNoticeService; } /** * 获取当前登录用户的通知列表。 */ @GetMapping public ApiResponse> list() { return ApiResponse.ok(appNoticeService.list()); } /** * 将当前登录用户的全部通知标记为已读。 */ @PostMapping("/read-all") public ApiResponse markAllRead() { appNoticeService.markAllRead(); return ApiResponse.ok(null); } /** * 将指定类型通知标记为已读。 */ @PostMapping("/{noticeType}/read") public ApiResponse markRead(@PathVariable("noticeType") String noticeType) { appNoticeService.markRead(noticeType); return ApiResponse.ok(null); } }