feat: add audit and app log services

This commit is contained in:
QiuSW
2026-07-09 00:55:46 +08:00
parent 3bd05b316e
commit 769c861eb0
20 changed files with 804 additions and 30 deletions
@@ -37,6 +37,7 @@ func NewImageOptimizationService(store *SuiStore) *ImageOptimizationService {
func (s *ImageOptimizationService) CreateTask(input models.ImageTaskInput) (models.ImageTaskDetail, error) {
sourcePath := strings.TrimSpace(input.SourcePath)
if sourcePath == "" {
_ = recordAppLog(s.store, appLogLevelWarn, "image_optimization", "create task failed", errImageTaskSourcePathRequired.Error())
return models.ImageTaskDetail{}, errImageTaskSourcePathRequired
}
@@ -51,6 +52,7 @@ func (s *ImageOptimizationService) CreateTask(input models.ImageTaskInput) (mode
tx, err := s.store.DB.Begin()
if err != nil {
_ = recordAppLog(s.store, appLogLevelError, "image_optimization", "begin task transaction failed", err.Error())
return models.ImageTaskDetail{}, err
}
defer func() {
@@ -64,11 +66,13 @@ func (s *ImageOptimizationService) CreateTask(input models.ImageTaskInput) (mode
VALUES (?, ?, ?, ?, '', ?, ?)
`, sourcePath, imageTaskStatusSucceeded, operation, 1200, now, now)
if err != nil {
_ = recordAppLog(s.store, appLogLevelError, "image_optimization", "insert image task failed", err.Error())
return models.ImageTaskDetail{}, err
}
taskID, err := result.LastInsertId()
if err != nil {
_ = recordAppLog(s.store, appLogLevelError, "image_optimization", "read image task id failed", err.Error())
return models.ImageTaskDetail{}, err
}
@@ -78,18 +82,21 @@ func (s *ImageOptimizationService) CreateTask(input models.ImageTaskInput) (mode
VALUES (?, ?, ?, ?, ?)
`, taskID, outputPath, beforeSize, afterSize, now)
if err != nil {
_ = recordAppLog(s.store, appLogLevelError, "image_optimization", "insert image task result failed", err.Error())
return models.ImageTaskDetail{}, err
}
resultID, err := result.LastInsertId()
if err != nil {
_ = recordAppLog(s.store, appLogLevelError, "image_optimization", "read image task result id failed", err.Error())
return models.ImageTaskDetail{}, err
}
if err = tx.Commit(); err != nil {
_ = recordAppLog(s.store, appLogLevelError, "image_optimization", "commit image task failed", err.Error())
return models.ImageTaskDetail{}, err
}
return models.ImageTaskDetail{
detail := models.ImageTaskDetail{
Task: models.ImageTask{
ID: taskID,
SourcePath: sourcePath,
@@ -108,7 +115,9 @@ func (s *ImageOptimizationService) CreateTask(input models.ImageTaskInput) (mode
AfterSize: afterSize,
CreatedAt: now,
},
}, nil
}
_ = recordAuditLog(s.store, currentAuditActor(s.store), auditActionImageTaskCreate, "image_task", fmt.Sprint(taskID), fmt.Sprintf("source=%s operation=%s", sourcePath, operation))
return detail, nil
}
func (s *ImageOptimizationService) ListTasks(filter models.ImageTaskFilter) ([]models.ImageTask, error) {