refactor(model): support string type in JSON scan methods
All checks were successful
Build Backend / build (push) Successful in 5m57s
Build Backend / build-docker (push) Successful in 1m16s

Enhance Scan methods in StringArray, ExtraData, MessageSegments, and
SystemNotificationExtra to accept both []byte and string types from database.
Uses type switch for more flexible type handling.
This commit is contained in:
lafay
2026-04-24 15:58:28 +08:00
parent 813e54e5b2
commit 496c8bb1aa
3 changed files with 35 additions and 15 deletions

View File

@@ -101,11 +101,16 @@ func (e *ExtraData) Scan(value any) error {
if value == nil {
return nil
}
bytes, ok := value.([]byte)
if !ok {
return errors.New("type assertion to []byte failed")
var data []byte
switch v := value.(type) {
case []byte:
data = v
case string:
data = []byte(v)
default:
return errors.New("type assertion to []byte or string failed")
}
return json.Unmarshal(bytes, e)
return json.Unmarshal(data, e)
}
// MessageSegmentData 单个消息段的数据
@@ -131,11 +136,16 @@ func (s *MessageSegments) Scan(value any) error {
*s = nil
return nil
}
bytes, ok := value.([]byte)
if !ok {
return errors.New("type assertion to []byte failed")
var data []byte
switch v := value.(type) {
case []byte:
data = v
case string:
data = []byte(v)
default:
return errors.New("type assertion to []byte or string failed")
}
return json.Unmarshal(bytes, s)
return json.Unmarshal(data, s)
}
// Message 消息实体