| 123456789101112131415161718192021222324252627282930 |
- package model
- // GetMissingModels returns model names that are referenced in the system
- func GetMissingModels() ([]string, error) {
- // 1. 获取所有已启用模型(去重)
- models := GetEnabledModels()
- if len(models) == 0 {
- return []string{}, nil
- }
- // 2. 查询已有的元数据模型名
- var existing []string
- if err := DB.Model(&Model{}).Where("model_name IN ?", models).Pluck("model_name", &existing).Error; err != nil {
- return nil, err
- }
- existingSet := make(map[string]struct{}, len(existing))
- for _, e := range existing {
- existingSet[e] = struct{}{}
- }
- // 3. 收集缺失模型
- var missing []string
- for _, name := range models {
- if _, ok := existingSet[name]; !ok {
- missing = append(missing, name)
- }
- }
- return missing, nil
- }
|