feat: 完善系统配置审计通知功能并优化异常处理
- 新增异常处理体系(BaseException及其子类) - 优化密码、邮箱、用户名等基础类型 - 添加字典管理、登录日志、操作日志的E2E测试 - 完善API集成测试和安全测试 - 添加性能测试配置和脚本 - 优化OpenAPI配置和全局异常处理器
This commit is contained in:
+9
@@ -2,6 +2,8 @@ package cn.novalon.manage.notify.handler;
|
||||
|
||||
import cn.novalon.manage.notify.core.domain.SysNotice;
|
||||
import cn.novalon.manage.notify.core.service.ISysNoticeService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.reactive.function.server.ServerRequest;
|
||||
@@ -15,6 +17,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Component
|
||||
@Tag(name = "通知管理", description = "系统通知相关操作")
|
||||
public class SysNoticeHandler {
|
||||
|
||||
private final ISysNoticeService noticeService;
|
||||
@@ -25,11 +28,13 @@ public class SysNoticeHandler {
|
||||
this.noticeService = noticeService;
|
||||
}
|
||||
|
||||
@Operation(summary = "获取所有通知", description = "获取系统中所有通知列表")
|
||||
public Mono<ServerResponse> getAllNotices(ServerRequest request) {
|
||||
Flux<SysNotice> notices = noticeService.getAllNotices();
|
||||
return ServerResponse.ok().body(notices, SysNotice.class);
|
||||
}
|
||||
|
||||
@Operation(summary = "根据ID获取通知", description = "根据通知ID获取通知详细信息")
|
||||
public Mono<ServerResponse> getNoticeById(ServerRequest request) {
|
||||
Long id = Long.parseLong(request.pathVariable("id"));
|
||||
return noticeService.getNoticeById(id)
|
||||
@@ -37,12 +42,14 @@ public class SysNoticeHandler {
|
||||
.switchIfEmpty(ServerResponse.notFound().build());
|
||||
}
|
||||
|
||||
@Operation(summary = "根据状态获取通知", description = "根据状态获取通知列表")
|
||||
public Mono<ServerResponse> getNoticesByStatus(ServerRequest request) {
|
||||
String status = request.pathVariable("status");
|
||||
Flux<SysNotice> notices = noticeService.getNoticesByStatus(status);
|
||||
return ServerResponse.ok().body(notices, SysNotice.class);
|
||||
}
|
||||
|
||||
@Operation(summary = "创建通知", description = "创建新通知")
|
||||
public Mono<ServerResponse> createNotice(ServerRequest request) {
|
||||
return request.bodyToMono(SysNotice.class)
|
||||
.filter(notice -> notice.getNoticeTitle() != null && !notice.getNoticeTitle().trim().isEmpty())
|
||||
@@ -64,6 +71,7 @@ public class SysNoticeHandler {
|
||||
});
|
||||
}
|
||||
|
||||
@Operation(summary = "更新通知", description = "更新通知信息")
|
||||
public Mono<ServerResponse> updateNotice(ServerRequest request) {
|
||||
Long id = Long.parseLong(request.pathVariable("id"));
|
||||
return request.bodyToMono(SysNotice.class)
|
||||
@@ -72,6 +80,7 @@ public class SysNoticeHandler {
|
||||
.switchIfEmpty(ServerResponse.notFound().build());
|
||||
}
|
||||
|
||||
@Operation(summary = "删除通知", description = "删除指定通知")
|
||||
public Mono<ServerResponse> deleteNotice(ServerRequest request) {
|
||||
Long id = Long.parseLong(request.pathVariable("id"));
|
||||
return noticeService.getNoticeById(id)
|
||||
|
||||
Reference in New Issue
Block a user