@@ -159,7 +159,7 @@ func (b *BadgerDB) FindModel(id uint64, modelType string, result interface{}) er
159159
160160 return nil
161161 case "server" :
162- // 服务器记录需要特殊处理Secret、HostJSON和LastStateJSON字段 (有json:"-"标签)
162+ // 服务器记录需要特殊处理Secret、HostJSON、LastStateJSON和DDNSProfilesRaw字段 (有json:"-"标签)
163163 var serverData map [string ]interface {}
164164 if err := json .Unmarshal (data , & serverData ); err != nil {
165165 return err
@@ -196,6 +196,35 @@ func (b *BadgerDB) FindModel(id uint64, modelType string, result interface{}) er
196196 server .Secret = secretStr
197197 }
198198 }
199+
200+ // 设置 DDNSProfilesRaw 字段
201+ if ddnsRaw , exists := serverData ["DDNSProfilesRaw" ]; exists {
202+ if ddnsStr , isStr := ddnsRaw .(string ); isStr && ddnsStr != "" {
203+ server .DDNSProfilesRaw = ddnsStr
204+ log .Printf ("BadgerDB FindModel: 服务器 %d (%s) 加载 DDNSProfilesRaw: %s" ,
205+ server .ID , server .Name , ddnsStr )
206+ // 同时解析到 DDNSProfiles 字段
207+ if err := utils .Json .Unmarshal ([]byte (ddnsStr ), & server .DDNSProfiles ); err != nil {
208+ log .Printf ("解析服务器 %d 的DDNSProfiles失败: %v" , server .ID , err )
209+ server .DDNSProfiles = []uint64 {}
210+ } else {
211+ log .Printf ("BadgerDB FindModel: 服务器 %d (%s) 解析 DDNSProfiles: %v" ,
212+ server .ID , server .Name , server .DDNSProfiles )
213+ }
214+ } else {
215+ // 处理 nil 或空字符串的情况
216+ server .DDNSProfilesRaw = "[]"
217+ server .DDNSProfiles = []uint64 {}
218+ log .Printf ("BadgerDB FindModel: 服务器 %d (%s) DDNSProfilesRaw 为 nil/空,设置为空数组" ,
219+ server .ID , server .Name )
220+ }
221+ } else {
222+ // 字段不存在,设置默认值
223+ server .DDNSProfilesRaw = "[]"
224+ server .DDNSProfiles = []uint64 {}
225+ log .Printf ("BadgerDB FindModel: 服务器 %d (%s) 没有找到 DDNSProfilesRaw 字段,设置默认值" ,
226+ server .ID , server .Name )
227+ }
199228 }
200229
201230 return nil
0 commit comments