feat: 同步知识库与工作台相关改动

This commit is contained in:
Jackzhou
2026-08-24 10:40:15 +08:00
parent 8d0588827d
commit 4f33b036d1
50 changed files with 8034 additions and 273 deletions
@@ -35,6 +35,8 @@ func Init(dbPath string) (*gorm.DB, error) {
&model.Product{},
&model.Course{},
&model.MediaFile{},
&model.KnowledgeSpace{},
&model.KnowledgeFAQ{},
&model.KnowledgeChunk{},
&model.Question{},
&model.ExamPaper{},
@@ -53,6 +55,9 @@ func Init(dbPath string) (*gorm.DB, error) {
&model.Notification{},
&model.StudyNote{},
&model.Specialist{},
&model.WorkerTask{},
&model.WorkerArtifact{},
&model.WorkerRun{},
); err != nil {
return nil, err
}
+41 -6
View File
@@ -1,11 +1,13 @@
package store
import (
"encoding/json"
"log"
"os"
"path/filepath"
"strings"
"encoding/json"
"io"
"log"
"os"
"path/filepath"
"runtime"
"strings"
"eaisalestrain/backend/internal/auth"
"eaisalestrain/backend/internal/config"
@@ -633,7 +635,40 @@ func ensureMediaLink(src, dst string) error {
if err := os.MkdirAll(filepath.Dir(dst), 0o755); err != nil {
return err
}
return os.Symlink(absSrc, dst)
if err := os.Symlink(absSrc, dst); err == nil {
return nil
} else if shouldCopySeedMedia(err) {
return copySeedMedia(absSrc, dst)
} else {
return err
}
}
func shouldCopySeedMedia(err error) bool {
if err == nil {
return false
}
// Windows 普通终端默认没有创建符号链接权限,开发环境回退为复制文件即可。
return runtime.GOOS == "windows" || strings.Contains(strings.ToLower(err.Error()), "privilege")
}
func copySeedMedia(src, dst string) error {
in, err := os.Open(src)
if err != nil {
return err
}
defer in.Close()
out, err := os.Create(dst)
if err != nil {
return err
}
defer out.Close()
if _, err := io.Copy(out, in); err != nil {
return err
}
return out.Close()
}
func firstExistingPath(paths ...string) string {