feat: enhance logging and message encryption features

- Introduced new logging services: operation logs, login logs, and data change logs.
- Added support for message content encryption in the Message model, including methods for encrypting and decrypting message segments.
- Updated router to include admin log handling and integrated log service for access logging.
- Modified configuration to support encryption settings.
This commit is contained in:
lafay
2026-03-15 20:38:22 +08:00
parent 700b8b6bad
commit b028f7e1d3
9 changed files with 500 additions and 31 deletions

View File

@@ -44,6 +44,8 @@ func ProvideRouter(
adminCommentHandler *handler.AdminCommentHandler,
adminGroupHandler *handler.AdminGroupHandler,
adminDashboardHandler *handler.AdminDashboardHandler,
adminLogHandler *handler.AdminLogHandler,
logService *service.LogService,
activityService service.UserActivityService,
casbinService service.CasbinService,
) *router.Router {
@@ -68,6 +70,8 @@ func ProvideRouter(
adminCommentHandler,
adminGroupHandler,
adminDashboardHandler,
adminLogHandler,
logService,
activityService,
casbinService,
)

View File

@@ -42,15 +42,24 @@ func InitializeApp() (*App, error) {
userService := wire.ProvideUserService(userRepository, systemMessageService, emailService, cache)
userActivityRepository := wire.ProvideUserActivityRepository(db, cache)
userActivityService := wire.ProvideUserActivityService(userActivityRepository)
userHandler := wire.ProvideUserHandler(userService, userActivityService)
gorseClient := wire.ProvideGorseClient(config)
openaiClient := wire.ProvideOpenAIClient(config)
postAIService := wire.ProvidePostAIService(openaiClient)
transactionManager := wire.ProvideTransactionManager(db)
postService := wire.ProvidePostService(postRepository, systemMessageService, gorseClient, postAIService, cache, transactionManager)
postHandler := wire.ProvidePostHandler(postService, userService)
commentRepository := repository.NewCommentRepository(db)
commentService := wire.ProvideCommentService(commentRepository, postRepository, systemMessageService, gorseClient, postAIService, cache)
operationLogRepository := repository.NewOperationLogRepository(db)
loginLogRepository := repository.NewLoginLogRepository(db)
dataChangeLogRepository := repository.NewDataChangeLogRepository(db)
logger := wire.ProvideLogger()
asyncLogManager := wire.ProvideAsyncLogManager(db, operationLogRepository, loginLogRepository, dataChangeLogRepository, logger, config)
operationLogService := wire.ProvideOperationLogService(asyncLogManager, operationLogRepository)
loginLogService := wire.ProvideLoginLogService(asyncLogManager, loginLogRepository)
dataChangeLogService := wire.ProvideDataChangeLogService(asyncLogManager, dataChangeLogRepository)
logService := wire.ProvideLogService(operationLogService, loginLogService, dataChangeLogService)
userHandler := wire.ProvideUserHandler(userService, userActivityService, postService, commentService, logService)
postHandler := wire.ProvidePostHandler(postService, userService, logService)
commentHandler := handler.NewCommentHandler(commentService)
chatService := wire.ProvideChatService(db, messageRepository, userRepository, hub, cache)
messageService := wire.ProvideMessageService(db, messageRepository, cache)
@@ -79,7 +88,6 @@ func InitializeApp() (*App, error) {
voteHandler := handler.NewVoteHandler(voteService, postService)
scheduleRepository := repository.NewScheduleRepository(db)
scheduleService := wire.ProvideScheduleService(scheduleRepository)
logger := wire.ProvideLogger()
server := wire.ProvideGRPCServer(config, logger)
taskManager := wire.ProvideTaskManager(server)
scheduleSyncService := wire.ProvideScheduleSyncService(taskManager, scheduleRepository, logger)
@@ -99,7 +107,8 @@ func InitializeApp() (*App, error) {
adminGroupHandler := handler.NewAdminGroupHandler(adminGroupService)
adminDashboardService := wire.ProvideAdminDashboardService(db, userRepository, postRepository, commentRepository, groupRepository, userActivityRepository)
adminDashboardHandler := handler.NewAdminDashboardHandler(adminDashboardService)
router := ProvideRouter(userHandler, postHandler, commentHandler, messageHandler, notificationHandler, uploadHandler, jwtService, pushHandler, systemMessageHandler, groupHandler, stickerHandler, gorseHandler, voteHandler, scheduleHandler, roleHandler, adminUserHandler, adminPostHandler, adminCommentHandler, adminGroupHandler, adminDashboardHandler, userActivityService, casbinService)
adminLogHandler := handler.NewAdminLogHandler(operationLogService, loginLogService, dataChangeLogService)
router := ProvideRouter(userHandler, postHandler, commentHandler, messageHandler, notificationHandler, uploadHandler, jwtService, pushHandler, systemMessageHandler, groupHandler, stickerHandler, gorseHandler, voteHandler, scheduleHandler, roleHandler, adminUserHandler, adminPostHandler, adminCommentHandler, adminGroupHandler, adminDashboardHandler, adminLogHandler, logService, userActivityService, casbinService)
app := NewApp(config, db, router, pushService, server)
return app, nil
}
@@ -128,6 +137,8 @@ func ProvideRouter(
adminCommentHandler *handler.AdminCommentHandler,
adminGroupHandler *handler.AdminGroupHandler,
adminDashboardHandler *handler.AdminDashboardHandler,
adminLogHandler *handler.AdminLogHandler,
logService *service.LogService,
activityService service.UserActivityService,
casbinService service.CasbinService,
) *router.Router {
@@ -152,6 +163,8 @@ func ProvideRouter(
adminCommentHandler,
adminGroupHandler,
adminDashboardHandler,
adminLogHandler,
logService,
activityService,
casbinService,
)