feat(notice): 添加公告详情查看功能并优化通知面板界面
- 在后端控制器中新增公开接口获取公告详情,支持状态检查和已读标记 - 在前端API模块中添加获取公共公告详情的方法 - 更新通知面板组件导入新的公共公告API方法 - 重构头部通知组件实现内联查看详情模式,移除独立详情弹窗 - 优化通知面板UI界面,调整布局样式和交互体验 - 将原有的Navbar中的通知弹窗替换为新的HeaderNotice组件 - 移除旧的通知相关代码和样式,精简组件结构
This commit is contained in:
@@ -102,6 +102,30 @@ public class SysNoticeController extends BaseController {
|
||||
return success(list);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取公告/通知详情(公开接口,普通用户可用)
|
||||
* 仅返回已发布且状态正常的公告
|
||||
*/
|
||||
@GetMapping("/public/{noticeId}")
|
||||
public AjaxResult getPublicNotice(@PathVariable Long noticeId) {
|
||||
SysNotice notice = noticeService.selectNoticeById(noticeId);
|
||||
if (notice == null) {
|
||||
return error("公告不存在");
|
||||
}
|
||||
// 只允许查看已发布且状态正常的公告
|
||||
if (!"1".equals(notice.getPublishStatus()) || !"0".equals(notice.getStatus())) {
|
||||
return error("该公告未发布或已关闭");
|
||||
}
|
||||
// 标注当前用户是否已读
|
||||
LoginUser loginUser = getLoginUser();
|
||||
if (loginUser != null) {
|
||||
List<Long> readIds = noticeReadService.selectReadNoticeIdsByUserId(loginUser.getUser().getUserId());
|
||||
notice.setIsRead(readIds.contains(noticeId));
|
||||
}
|
||||
return success(notice);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户未读公告/通知数量(公开接口)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user