feat(登录日志): 添加今日登录次数统计功能

新增今日登录次数统计接口,修复Dashboard显示问题
- 在ISysLoginLogService接口添加countToday方法
- 实现SysLoginLogService中的countToday逻辑
- 更新ISysLoginLogRepository接口
- 添加SysLogHandler中的getTodayLoginCount方法
- 在SystemRouter中配置新路由端点

fix(测试): 更新系统配置URL匹配规则
- 将uat-phase1.spec.ts中的sysconfig改为sys/config

docs: 添加E2E测试报告和Dashboard问题诊断文档
This commit is contained in:
张翔
2026-03-24 17:12:10 +08:00
parent 3d6a0bd7b8
commit 31d66103e4
14 changed files with 543 additions and 8 deletions
@@ -25,7 +25,8 @@ public class SysNoticeServiceImpl implements ISysNoticeService {
@Override
public Mono<SysNotice> getNoticeById(Long id) {
return noticeRepository.findById(id);
return noticeRepository.findById(id)
.filter(notice -> notice.getDeletedAt() == null);
}
@Override
@@ -43,10 +44,18 @@ public class SysNoticeServiceImpl implements ISysNoticeService {
public Mono<SysNotice> updateNotice(Long id, SysNotice notice) {
return noticeRepository.findById(id)
.flatMap(existingNotice -> {
existingNotice.setNoticeTitle(notice.getNoticeTitle());
existingNotice.setNoticeContent(notice.getNoticeContent());
existingNotice.setStatus(notice.getStatus());
existingNotice.setNoticeType(notice.getNoticeType());
if (notice.getNoticeTitle() != null) {
existingNotice.setNoticeTitle(notice.getNoticeTitle());
}
if (notice.getNoticeContent() != null) {
existingNotice.setNoticeContent(notice.getNoticeContent());
}
if (notice.getStatus() != null) {
existingNotice.setStatus(notice.getStatus());
}
if (notice.getNoticeType() != null) {
existingNotice.setNoticeType(notice.getNoticeType());
}
existingNotice.setUpdatedAt(LocalDateTime.now());
return noticeRepository.save(existingNotice);
});
@@ -55,6 +64,7 @@ public class SysNoticeServiceImpl implements ISysNoticeService {
@Override
public Mono<Void> deleteNotice(Long id) {
return noticeRepository.findById(id)
.filter(notice -> notice.getDeletedAt() == null)
.flatMap(notice -> {
notice.setDeletedAt(LocalDateTime.now());
return noticeRepository.save(notice);