diff --git a/backend/src/main/java/com/imeeting/controller/android/AndroidMeetingController.java b/backend/src/main/java/com/imeeting/controller/android/AndroidMeetingController.java index 86df845..010ab76 100644 --- a/backend/src/main/java/com/imeeting/controller/android/AndroidMeetingController.java +++ b/backend/src/main/java/com/imeeting/controller/android/AndroidMeetingController.java @@ -26,6 +26,7 @@ import com.imeeting.service.biz.MeetingQueryService; import com.imeeting.service.biz.MeetingService; import com.imeeting.service.biz.PromptTemplateService; import com.unisbase.common.ApiResponse; +import com.unisbase.common.annotation.Log; import com.unisbase.dto.PageResult; import com.unisbase.entity.SysUser; import com.unisbase.mapper.SysUserMapper; @@ -91,6 +92,7 @@ public class AndroidMeetingController { ) }) @PostMapping + @Log(value = "新增Android会议", type = "Android会议管理") public ApiResponse create(HttpServletRequest request, @RequestBody LegacyMeetingCreateRequest command) { AndroidAuthContext authContext = androidAuthService.authenticateHttp(request); LoginUser loginUser = AndroidLoginUserSupport.requireLoginUser(authContext); @@ -176,6 +178,7 @@ public class AndroidMeetingController { ) }) @PutMapping("/{meetingId}/access-password") + @Log(value = "修改Android会议访问密码", type = "Android会议管理") public ApiResponse updateAccessPassword(HttpServletRequest request, @PathVariable Long meetingId, @RequestBody(required = false) LegacyMeetingAccessPasswordRequest command) { @@ -201,6 +204,7 @@ public class AndroidMeetingController { ) }) @DeleteMapping("/{meetingId}") + @Log(value = "删除Android会议", type = "Android会议管理") public ApiResponse delete(HttpServletRequest request, @PathVariable Long meetingId) { AndroidAuthContext authContext = androidAuthService.authenticateHttp(request); LoginUser loginUser = AndroidLoginUserSupport.requireLoginUser(authContext); diff --git a/backend/src/main/java/com/imeeting/controller/android/AndroidMeetingRealtimeController.java b/backend/src/main/java/com/imeeting/controller/android/AndroidMeetingRealtimeController.java index 5f442f3..ccd50b3 100644 --- a/backend/src/main/java/com/imeeting/controller/android/AndroidMeetingRealtimeController.java +++ b/backend/src/main/java/com/imeeting/controller/android/AndroidMeetingRealtimeController.java @@ -20,6 +20,7 @@ import com.imeeting.service.biz.MeetingQueryService; import com.imeeting.service.biz.MeetingRuntimeProfileResolver; import com.imeeting.service.biz.RealtimeMeetingSessionStateService; import com.unisbase.common.ApiResponse; +import com.unisbase.common.annotation.Log; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.ArraySchema; import io.swagger.v3.oas.annotations.media.Content; @@ -65,6 +66,7 @@ public class AndroidMeetingRealtimeController { ) }) @PostMapping("/realtime/create") + @Log(value = "新增Android实时会议", type = "Android实时会议") public ApiResponse createRealtimeMeeting(HttpServletRequest request, @RequestBody(required = false) AndroidCreateRealtimeMeetingCommand command) { AndroidAuthContext authContext = androidAuthService.authenticateHttp(request); diff --git a/backend/src/main/java/com/imeeting/controller/android/legacy/LegacyMeetingController.java b/backend/src/main/java/com/imeeting/controller/android/legacy/LegacyMeetingController.java index bb09202..5d8eedf 100644 --- a/backend/src/main/java/com/imeeting/controller/android/legacy/LegacyMeetingController.java +++ b/backend/src/main/java/com/imeeting/controller/android/legacy/LegacyMeetingController.java @@ -29,6 +29,7 @@ import com.imeeting.service.biz.MeetingCommandService; import com.imeeting.service.biz.MeetingQueryService; import com.imeeting.service.biz.MeetingService; import com.imeeting.service.biz.PromptTemplateService; +import com.unisbase.common.annotation.Log; import com.unisbase.dto.PageResult; import com.unisbase.entity.SysUser; import com.unisbase.mapper.SysUserMapper; @@ -132,6 +133,7 @@ public class LegacyMeetingController { @Operation(summary = "兼容创建会议") @PostMapping @PreAuthorize("isAuthenticated()") + @Log(value = "新增兼容会议", type = "兼容会议管理") public LegacyApiResponse create(@RequestBody LegacyMeetingCreateRequest request) { MeetingVO meeting = legacyMeetingAdapterService.createMeeting(request, currentLoginUser()); return LegacyApiResponse.ok(new LegacyMeetingCreateResponse(meeting.getId())); @@ -198,8 +200,9 @@ public class LegacyMeetingController { @Operation(summary = "兼容更新会议访问密码") @PutMapping("/{meetingId}/access-password") @PreAuthorize("isAuthenticated()") + @Log(value = "修改兼容会议访问密码", type = "兼容会议管理") public LegacyApiResponse updateAccessPassword(@PathVariable Long meetingId, - @RequestBody(required = false) LegacyMeetingAccessPasswordRequest request) { + @RequestBody(required = false) LegacyMeetingAccessPasswordRequest request) { LoginUser loginUser = currentLoginUser(); Meeting meeting = meetingAccessService.requireMeeting(meetingId); if (!Objects.equals(meeting.getCreatorId(), loginUser.getUserId())) { @@ -215,6 +218,7 @@ public class LegacyMeetingController { @Operation(summary = "兼容删除会议") @DeleteMapping("/{meetingId}") @PreAuthorize("isAuthenticated()") + @Log(value = "删除兼容会议", type = "兼容会议管理") public LegacyApiResponse delete(@PathVariable Long meetingId) { LoginUser loginUser = currentLoginUser(); Meeting meeting = meetingAccessService.requireMeeting(meetingId); diff --git a/backend/src/main/java/com/imeeting/controller/biz/AiModelController.java b/backend/src/main/java/com/imeeting/controller/biz/AiModelController.java index 9330f35..9bd38a1 100644 --- a/backend/src/main/java/com/imeeting/controller/biz/AiModelController.java +++ b/backend/src/main/java/com/imeeting/controller/biz/AiModelController.java @@ -5,6 +5,7 @@ import com.imeeting.dto.biz.AiModelDTO; import com.imeeting.dto.biz.AiModelVO; import com.imeeting.service.biz.AiModelService; import com.unisbase.common.ApiResponse; +import com.unisbase.common.annotation.Log; import com.unisbase.dto.PageResult; import com.unisbase.security.LoginUser; import io.swagger.v3.oas.annotations.Operation; @@ -29,6 +30,7 @@ public class AiModelController { @Operation(summary = "新增AI模型") @PostMapping @PreAuthorize("isAuthenticated()") + @Log(value = "新增AI模型", type = "AI模型管理") public ApiResponse save(@RequestBody AiModelDTO dto) { return ApiResponse.ok(aiModelService.saveModel(dto)); } @@ -36,6 +38,7 @@ public class AiModelController { @Operation(summary = "更新AI模型") @PutMapping @PreAuthorize("isAuthenticated()") + @Log(value = "修改AI模型", type = "AI模型管理") public ApiResponse update(@RequestBody AiModelDTO dto) { if (dto.getId() == null) { return ApiResponse.error("模型ID不能为空"); @@ -60,6 +63,7 @@ public class AiModelController { @Operation(summary = "删除AI模型") @DeleteMapping("/{id}") @PreAuthorize("isAuthenticated()") + @Log(value = "删除AI模型", type = "AI模型管理") public ApiResponse delete(@PathVariable Long id, @RequestParam String type) { if (type == null || type.isBlank()) { return ApiResponse.error("模型类型不能为空"); diff --git a/backend/src/main/java/com/imeeting/controller/biz/ClientDownloadController.java b/backend/src/main/java/com/imeeting/controller/biz/ClientDownloadController.java index 1aa78f7..185e938 100644 --- a/backend/src/main/java/com/imeeting/controller/biz/ClientDownloadController.java +++ b/backend/src/main/java/com/imeeting/controller/biz/ClientDownloadController.java @@ -4,6 +4,7 @@ import com.imeeting.dto.biz.ClientDownloadDTO; import com.imeeting.entity.biz.ClientDownload; import com.imeeting.service.biz.ClientDownloadService; import com.unisbase.common.ApiResponse; +import com.unisbase.common.annotation.Log; import com.unisbase.security.LoginUser; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -53,6 +54,7 @@ public class ClientDownloadController { @Operation(summary = "新增客户端下载包") @PostMapping @PreAuthorize("isAuthenticated()") + @Log(value = "新增客户端下载包", type = "客户端下载管理") public ApiResponse create(@RequestBody ClientDownloadDTO dto) { return ApiResponse.ok(clientDownloadService.create(dto, currentLoginUser())); } @@ -60,6 +62,7 @@ public class ClientDownloadController { @Operation(summary = "修改客户端下载包") @PutMapping("/{id}") @PreAuthorize("isAuthenticated()") + @Log(value = "修改客户端下载包", type = "客户端下载管理") public ApiResponse update(@PathVariable Long id, @RequestBody ClientDownloadDTO dto) { return ApiResponse.ok(clientDownloadService.update(id, dto, currentLoginUser())); } @@ -67,6 +70,7 @@ public class ClientDownloadController { @Operation(summary = "删除客户端下载包") @DeleteMapping("/{id}") @PreAuthorize("isAuthenticated()") + @Log(value = "删除客户端下载包", type = "客户端下载管理") public ApiResponse delete(@PathVariable Long id) { clientDownloadService.removeClient(id, currentLoginUser()); return ApiResponse.ok(true); diff --git a/backend/src/main/java/com/imeeting/controller/biz/DeviceManagementController.java b/backend/src/main/java/com/imeeting/controller/biz/DeviceManagementController.java index e3c3272..3427943 100644 --- a/backend/src/main/java/com/imeeting/controller/biz/DeviceManagementController.java +++ b/backend/src/main/java/com/imeeting/controller/biz/DeviceManagementController.java @@ -4,6 +4,7 @@ import com.imeeting.dto.biz.DeviceAdminUpdateCommand; import com.imeeting.dto.biz.DeviceOnlineAdminVO; import com.imeeting.service.biz.DeviceOnlineManagementService; import com.unisbase.common.ApiResponse; +import com.unisbase.common.annotation.Log; import com.unisbase.security.LoginUser; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.ArraySchema; @@ -46,6 +47,7 @@ public class DeviceManagementController { @Operation(summary = "更新设备管理信息") @PutMapping("/{id}") + @Log(value = "修改设备管理信息", type = "设备在线管理") public ApiResponse update(@PathVariable Long id, @RequestBody DeviceAdminUpdateCommand command) { return ApiResponse.ok(deviceOnlineManagementService.update(id, command, currentLoginUser())); } diff --git a/backend/src/main/java/com/imeeting/controller/biz/ExternalAppController.java b/backend/src/main/java/com/imeeting/controller/biz/ExternalAppController.java index b154655..6a4a662 100644 --- a/backend/src/main/java/com/imeeting/controller/biz/ExternalAppController.java +++ b/backend/src/main/java/com/imeeting/controller/biz/ExternalAppController.java @@ -4,6 +4,7 @@ import com.imeeting.dto.biz.ExternalAppDTO; import com.imeeting.entity.biz.ExternalApp; import com.imeeting.service.biz.ExternalAppService; import com.unisbase.common.ApiResponse; +import com.unisbase.common.annotation.Log; import com.unisbase.security.LoginUser; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -44,6 +45,7 @@ public class ExternalAppController { @Operation(summary = "新增外部应用") @PostMapping @PreAuthorize("isAuthenticated()") + @Log(value = "新增外部应用", type = "外部应用管理") public ApiResponse create(@RequestBody ExternalAppDTO dto) { return ApiResponse.ok(externalAppService.create(dto, currentLoginUser())); } @@ -51,6 +53,7 @@ public class ExternalAppController { @Operation(summary = "修改外部应用") @PutMapping("/{id}") @PreAuthorize("isAuthenticated()") + @Log(value = "修改外部应用", type = "外部应用管理") public ApiResponse update(@PathVariable Long id, @RequestBody ExternalAppDTO dto) { return ApiResponse.ok(externalAppService.update(id, dto, currentLoginUser())); } @@ -58,6 +61,7 @@ public class ExternalAppController { @Operation(summary = "删除外部应用") @DeleteMapping("/{id}") @PreAuthorize("isAuthenticated()") + @Log(value = "删除外部应用", type = "外部应用管理") public ApiResponse delete(@PathVariable Long id) { externalAppService.removeApp(id, currentLoginUser()); return ApiResponse.ok(true); diff --git a/backend/src/main/java/com/imeeting/controller/biz/HotWordController.java b/backend/src/main/java/com/imeeting/controller/biz/HotWordController.java index 1ef643d..661c54d 100644 --- a/backend/src/main/java/com/imeeting/controller/biz/HotWordController.java +++ b/backend/src/main/java/com/imeeting/controller/biz/HotWordController.java @@ -9,6 +9,7 @@ import com.imeeting.entity.biz.HotWordGroup; import com.imeeting.service.biz.HotWordGroupService; import com.imeeting.service.biz.HotWordService; import com.unisbase.common.ApiResponse; +import com.unisbase.common.annotation.Log; import com.unisbase.dto.PageResult; import com.unisbase.security.LoginUser; import io.swagger.v3.oas.annotations.Operation; @@ -43,6 +44,7 @@ public class HotWordController { @Operation(summary = "新增热词") @PostMapping @PreAuthorize("isAuthenticated()") + @Log(value = "新增热词", type = "热词管理") public ApiResponse save(@RequestBody HotWordDTO hotWordDTO) { LoginUser loginUser = (LoginUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); Long targetTenantId = resolveTargetTenantId(loginUser, hotWordDTO.getTenantId()); @@ -52,6 +54,7 @@ public class HotWordController { @Operation(summary = "修改热词") @PutMapping @PreAuthorize("isAuthenticated()") + @Log(value = "修改热词", type = "热词管理") public ApiResponse update(@RequestBody HotWordDTO hotWordDTO) { HotWord existing = hotWordService.getById(hotWordDTO.getId()); if (existing == null) { @@ -64,6 +67,7 @@ public class HotWordController { @Operation(summary = "删除热词") @DeleteMapping("/{id}") @PreAuthorize("isAuthenticated()") + @Log(value = "删除热词", type = "热词管理") public ApiResponse delete(@PathVariable Long id) { HotWord existing = hotWordService.getById(id); if (existing == null) { diff --git a/backend/src/main/java/com/imeeting/controller/biz/HotWordGroupController.java b/backend/src/main/java/com/imeeting/controller/biz/HotWordGroupController.java index 73fa45d..bfc1d54 100644 --- a/backend/src/main/java/com/imeeting/controller/biz/HotWordGroupController.java +++ b/backend/src/main/java/com/imeeting/controller/biz/HotWordGroupController.java @@ -4,6 +4,7 @@ import com.imeeting.dto.biz.HotWordGroupDTO; import com.imeeting.dto.biz.HotWordGroupVO; import com.imeeting.service.biz.HotWordGroupService; import com.unisbase.common.ApiResponse; +import com.unisbase.common.annotation.Log; import com.unisbase.dto.PageResult; import com.unisbase.security.LoginUser; import io.swagger.v3.oas.annotations.Operation; @@ -35,6 +36,7 @@ public class HotWordGroupController { @Operation(summary = "新增热词组") @PostMapping @PreAuthorize("isAuthenticated()") + @Log(value = "新增热词组", type = "热词组管理") public ApiResponse save(@RequestBody HotWordGroupDTO dto) { LoginUser loginUser = (LoginUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); Long targetTenantId = resolveTargetTenantId(loginUser, dto.getTenantId()); @@ -44,6 +46,7 @@ public class HotWordGroupController { @Operation(summary = "修改热词组") @PutMapping @PreAuthorize("isAuthenticated()") + @Log(value = "修改热词组", type = "热词组管理") public ApiResponse update(@RequestBody HotWordGroupDTO dto) { LoginUser loginUser = (LoginUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); Long targetTenantId = resolveTargetTenantId(loginUser, dto.getTenantId()); @@ -61,6 +64,7 @@ public class HotWordGroupController { @Operation(summary = "删除热词组") @DeleteMapping("/{id}") @PreAuthorize("isAuthenticated()") + @Log(value = "删除热词组", type = "热词组管理") public ApiResponse delete(@PathVariable Long id, @RequestParam(required = false) Long tenantId) { LoginUser loginUser = (LoginUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); Long targetTenantId = resolveTargetTenantId(loginUser, tenantId); diff --git a/backend/src/main/java/com/imeeting/controller/biz/MeetingController.java b/backend/src/main/java/com/imeeting/controller/biz/MeetingController.java index f179700..99ec9fa 100644 --- a/backend/src/main/java/com/imeeting/controller/biz/MeetingController.java +++ b/backend/src/main/java/com/imeeting/controller/biz/MeetingController.java @@ -30,6 +30,7 @@ import com.imeeting.service.biz.RealtimeMeetingSessionStateService; import com.imeeting.service.biz.RealtimeMeetingSocketSessionService; import com.imeeting.service.biz.impl.MeetingAudioUploadSupport; import com.unisbase.common.ApiResponse; +import com.unisbase.common.annotation.Log; import com.unisbase.dto.PageResult; import com.unisbase.security.LoginUser; import io.swagger.v3.oas.annotations.Operation; @@ -140,6 +141,7 @@ public class MeetingController { @Operation(summary = "创建离线会议") @PostMapping @PreAuthorize("isAuthenticated()") + @Log(value = "新增离线会议", type = "会议管理") public ApiResponse create(@Valid @RequestBody CreateMeetingCommand command) { LoginUser loginUser = currentLoginUser(); assertPromptAvailable(command.getPromptId(), loginUser); @@ -155,6 +157,7 @@ public class MeetingController { @Operation(summary = "创建实时会议") @PostMapping("/realtime/start") @PreAuthorize("isAuthenticated()") + @Log(value = "新增实时会议", type = "会议管理") public ApiResponse createRealtime(@Valid @RequestBody CreateRealtimeMeetingCommand command) { LoginUser loginUser = currentLoginUser(); assertPromptAvailable(command.getPromptId(), loginUser); @@ -352,6 +355,7 @@ public class MeetingController { @Operation(summary = "更新会议讲话人") @PutMapping("/speaker") @PreAuthorize("isAuthenticated()") + @Log(value = "修改会议讲话人", type = "会议管理") public ApiResponse updateSpeaker(@RequestBody MeetingSpeakerUpdateDTO dto) { LoginUser loginUser = currentLoginUser(); Meeting meeting = meetingAccessService.requireMeeting(dto.getMeetingId()); @@ -363,6 +367,7 @@ public class MeetingController { @Operation(summary = "更新会议转写") @PutMapping("/{id}/transcripts/{transcriptId}") @PreAuthorize("isAuthenticated()") + @Log(value = "修改会议转写", type = "会议管理") public ApiResponse updateTranscript(@PathVariable Long id, @PathVariable Long transcriptId, @RequestBody UpdateMeetingTranscriptCommand command) { @@ -378,6 +383,7 @@ public class MeetingController { @Operation(summary = "更新参会人员") @PutMapping("/{id}/participants") @PreAuthorize("isAuthenticated()") + @Log(value = "修改会议参会人员", type = "会议管理") public ApiResponse updateParticipants(@PathVariable Long id, @RequestBody UpdateMeetingParticipantsCommand command) { LoginUser loginUser = currentLoginUser(); @@ -415,6 +421,7 @@ public class MeetingController { @Operation(summary = "更新会议基础信息") @PutMapping("/{id}/basic") @PreAuthorize("isAuthenticated()") + @Log(value = "修改会议基础信息", type = "会议管理") public ApiResponse updateBasic(@PathVariable Long id, @RequestBody UpdateMeetingBasicCommand command) { LoginUser loginUser = currentLoginUser(); Meeting meeting = meetingAccessService.requireMeeting(id); @@ -427,6 +434,7 @@ public class MeetingController { @Operation(summary = "更新会议摘要") @PutMapping("/{id}/summary") @PreAuthorize("isAuthenticated()") + @Log(value = "修改会议摘要", type = "会议管理") public ApiResponse updateSummary(@PathVariable Long id, @RequestBody UpdateMeetingSummaryCommand command) { LoginUser loginUser = currentLoginUser(); Meeting meeting = meetingAccessService.requireMeeting(id); @@ -439,6 +447,7 @@ public class MeetingController { @Operation(summary = "删除会议") @DeleteMapping("/{id}") @PreAuthorize("isAuthenticated()") + @Log(value = "删除会议", type = "会议管理") public ApiResponse delete(@PathVariable Long id) { LoginUser loginUser = currentLoginUser(); Meeting meeting = meetingAccessService.requireMeeting(id); diff --git a/backend/src/main/java/com/imeeting/controller/biz/PromptTemplateController.java b/backend/src/main/java/com/imeeting/controller/biz/PromptTemplateController.java index 98a1bc4..0162205 100644 --- a/backend/src/main/java/com/imeeting/controller/biz/PromptTemplateController.java +++ b/backend/src/main/java/com/imeeting/controller/biz/PromptTemplateController.java @@ -6,6 +6,7 @@ import com.imeeting.dto.biz.PromptTemplateVO; import com.imeeting.entity.biz.PromptTemplate; import com.imeeting.service.biz.PromptTemplateService; import com.unisbase.common.ApiResponse; +import com.unisbase.common.annotation.Log; import com.unisbase.dto.PageResult; import com.unisbase.security.LoginUser; import io.swagger.v3.oas.annotations.Operation; @@ -30,6 +31,7 @@ public class PromptTemplateController { @Operation(summary = "新增提示词模板") @PostMapping @PreAuthorize("isAuthenticated()") + @Log(value = "新增提示词模板", type = "提示词模板管理") public ApiResponse save(@RequestBody PromptTemplateDTO dto) { LoginUser loginUser = (LoginUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); @@ -52,6 +54,7 @@ public class PromptTemplateController { @Operation(summary = "修改提示词模板") @PutMapping @PreAuthorize("isAuthenticated()") + @Log(value = "修改提示词模板", type = "提示词模板管理") public ApiResponse update(@RequestBody PromptTemplateDTO dto) { LoginUser loginUser = (LoginUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); PromptTemplate existing = promptTemplateService.getById(dto.getId()); @@ -80,6 +83,7 @@ public class PromptTemplateController { @Operation(summary = "更新提示词模板状态") @PutMapping("/{id}/status") @PreAuthorize("isAuthenticated()") + @Log(value = "修改提示词模板状态", type = "提示词模板管理") public ApiResponse updateStatus(@PathVariable Long id, @RequestParam Integer status) { LoginUser loginUser = (LoginUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); PromptTemplate existing = promptTemplateService.getById(id); @@ -118,6 +122,7 @@ public class PromptTemplateController { @Operation(summary = "删除提示词模板") @DeleteMapping("/{id}") @PreAuthorize("isAuthenticated()") + @Log(value = "删除提示词模板", type = "提示词模板管理") public ApiResponse delete(@PathVariable Long id) { LoginUser loginUser = (LoginUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); PromptTemplate existing = promptTemplateService.getById(id); diff --git a/backend/src/main/java/com/imeeting/controller/biz/ScreenSaverController.java b/backend/src/main/java/com/imeeting/controller/biz/ScreenSaverController.java index 6ce21f9..50f9657 100644 --- a/backend/src/main/java/com/imeeting/controller/biz/ScreenSaverController.java +++ b/backend/src/main/java/com/imeeting/controller/biz/ScreenSaverController.java @@ -8,6 +8,7 @@ import com.imeeting.dto.biz.ScreenSaverUserSettingsVO; import com.imeeting.entity.biz.ScreenSaver; import com.imeeting.service.biz.ScreenSaverService; import com.unisbase.common.ApiResponse; +import com.unisbase.common.annotation.Log; import com.unisbase.security.LoginUser; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -56,6 +57,7 @@ public class ScreenSaverController { @Operation(summary = "更新当前用户屏保播放设置") @PutMapping("/my-settings") @PreAuthorize("isAuthenticated()") + @Log(value = "修改个人屏保设置", type = "屏保管理") public ApiResponse updateMySettings(@RequestBody ScreenSaverUserSettingsDTO dto) { return ApiResponse.ok(screenSaverService.updateMySettings(dto, currentLoginUser())); } @@ -63,6 +65,7 @@ public class ScreenSaverController { @Operation(summary = "新增屏保") @PostMapping @PreAuthorize("isAuthenticated()") + @Log(value = "新增屏保", type = "屏保管理") public ApiResponse create(@RequestBody ScreenSaverDTO dto) { return ApiResponse.ok(screenSaverService.create(dto, currentLoginUser())); } @@ -70,6 +73,7 @@ public class ScreenSaverController { @Operation(summary = "修改屏保") @PutMapping("/{id}") @PreAuthorize("isAuthenticated()") + @Log(value = "修改屏保", type = "屏保管理") public ApiResponse update(@PathVariable Long id, @RequestBody ScreenSaverDTO dto) { return ApiResponse.ok(screenSaverService.update(id, dto, currentLoginUser())); } @@ -77,6 +81,7 @@ public class ScreenSaverController { @Operation(summary = "更新屏保状态") @PutMapping("/{id}/status") @PreAuthorize("isAuthenticated()") + @Log(value = "修改屏保状态", type = "屏保管理") public ApiResponse updateStatus(@PathVariable Long id, @RequestParam Integer status) { boolean success = screenSaverService.updateStatus(id, status, currentLoginUser()); if (!success) { @@ -88,6 +93,7 @@ public class ScreenSaverController { @Operation(summary = "删除屏保") @DeleteMapping("/{id}") @PreAuthorize("isAuthenticated()") + @Log(value = "删除屏保", type = "屏保管理") public ApiResponse delete(@PathVariable Long id) { screenSaverService.removeScreenSaver(id, currentLoginUser()); return ApiResponse.ok(true); diff --git a/backend/src/main/java/com/imeeting/controller/biz/SpeakerController.java b/backend/src/main/java/com/imeeting/controller/biz/SpeakerController.java index 15fe239..26f76ea 100644 --- a/backend/src/main/java/com/imeeting/controller/biz/SpeakerController.java +++ b/backend/src/main/java/com/imeeting/controller/biz/SpeakerController.java @@ -4,6 +4,7 @@ import com.imeeting.dto.biz.SpeakerRegisterDTO; import com.imeeting.dto.biz.SpeakerVO; import com.imeeting.service.biz.SpeakerService; import com.unisbase.common.ApiResponse; +import com.unisbase.common.annotation.Log; import com.unisbase.dto.PageResult; import com.unisbase.security.LoginUser; import io.swagger.v3.oas.annotations.Operation; @@ -28,6 +29,7 @@ public class SpeakerController { @Operation(summary = "注册讲话人样本") @PostMapping("/register") @PreAuthorize("isAuthenticated()") + @Log(value = "新增讲话人样本", type = "讲话人管理") public ApiResponse register(@ModelAttribute SpeakerRegisterDTO registerDTO) { LoginUser loginUser = getLoginUser(); if (loginUser == null || loginUser.getUserId() == null) { @@ -65,6 +67,7 @@ public class SpeakerController { @Operation(summary = "删除讲话人") @DeleteMapping("/{id}") @PreAuthorize("isAuthenticated()") + @Log(value = "删除讲话人", type = "讲话人管理") public ApiResponse delete(@PathVariable Long id) { LoginUser loginUser = getLoginUser(); if (loginUser == null || loginUser.getUserId() == null) { diff --git a/frontend/src/pages/business/MeetingDetail.tsx b/frontend/src/pages/business/MeetingDetail.tsx index eaaeac6..a52bf03 100644 --- a/frontend/src/pages/business/MeetingDetail.tsx +++ b/frontend/src/pages/business/MeetingDetail.tsx @@ -1656,7 +1656,7 @@ const MeetingDetail: React.FC = () => { placement="bottomRight" > )} @@ -1701,12 +1701,14 @@ const MeetingDetail: React.FC = () => {
{meeting.summaryContent ? ( - + + // ) : null} {meeting.summaryContent && isOwner ? (