MCPcopy Create free account
hub / github.com/53AI/53AIHub / cleanupDatabaseRecords

Method cleanupDatabaseRecords

api/service/error_handler.go:70–110  ·  view source on GitHub ↗

cleanupDatabaseRecords 清理数据库中的相关记录

(batchID, fileID string)

Source from the content-addressed store, hash-verified

68
69// cleanupDatabaseRecords 清理数据库中的相关记录
70func (h *ErrorHandler) cleanupDatabaseRecords(batchID, fileID string) error {
71 batch, err := h.batchManager.GetBatch(batchID)
72 if err != nil {
73 return fmt.Errorf("获取批次失败: %v", err)
74 }
75
76 batch.mu.RLock()
77 // Fix: Copy struct under lock to avoid data race on fields
78 var fileUpload FileUpload
79 var exists bool
80 if ptr, ok := batch.Files[fileID]; ok {
81 fileUpload = *ptr
82 exists = true
83 }
84 batch.mu.RUnlock()
85 if !exists {
86 return nil
87 }
88
89 // 清理UploadFile记录
90 if fileUpload.DatabaseID != 0 {
91 uploadFile, err := model.GetUploadFileByID(fileUpload.DatabaseID)
92 if err == nil && uploadFile != nil {
93 // 标记为失败状态
94 uploadFile.MarkAsFailed("连接异常,已清理记录")
95 log.Printf("已标记UploadFile为失败: ID=%d", uploadFile.ID)
96 }
97 }
98
99 // 清理File记录(如果存在)
100 if fileUpload.FileID != 0 {
101 // 使用正确的删除方法
102 if err := model.DeleteFile(batch.EID, fileUpload.FileID); err != nil {
103 log.Printf("删除File记录失败: ID=%d, Error=%v", fileUpload.FileID, err)
104 } else {
105 log.Printf("已删除File记录: ID=%d", fileUpload.FileID)
106 }
107 }
108
109 return nil
110}
111
112// resetFileForReupload 重置文件状态为可重新上传
113func (h *ErrorHandler) resetFileForReupload(batchID, fileID string) error {

Callers 1

Calls 5

GetBatchMethod · 0.80
ErrorfMethod · 0.80
MarkAsFailedMethod · 0.80
PrintfMethod · 0.80
DeleteFileMethod · 0.65

Tested by

no test coverage detected