diff --git a/server/db/mysql/tenant_groups.go b/server/db/mysql/tenant_groups.go index 99d70a3..7d55fa6 100644 --- a/server/db/mysql/tenant_groups.go +++ b/server/db/mysql/tenant_groups.go @@ -907,6 +907,7 @@ func (a *adapter) TenantGroupFileList(id t.TenantID, topic, fileType, query, cur next = strconv.FormatInt(file.ID, 10) continue } + a.enrichGroupFileFromUpload(id, file) items = append(items, *file) } return items, next, rows.Err() @@ -953,14 +954,26 @@ func (a *adapter) TenantGroupFileCreate(id t.TenantID, file *t.GroupFile) (*t.Gr if err != nil && !isDupe(err) { return nil, err } - return a.groupFileByQuery(ctx, "SELECT * FROM im_group_files WHERE topic=? AND file_id=?", file.Topic, file.FileID) + created, err := a.groupFileByQuery(ctx, "SELECT * FROM im_group_files WHERE topic=? AND file_id=?", file.Topic, file.FileID) + if err != nil { + return nil, err + } + a.enrichGroupFileFromUpload(id, created) + return created, nil } func (a *adapter) enrichGroupFileFromUpload(id t.TenantID, file *t.GroupFile) { - if file == nil || t.ParseUid(file.FileID).IsZero() { + if file == nil { return } - fd, err := a.TenantFileGet(id, file.FileID) + fileID := strings.TrimSpace(file.FileID) + if dot := strings.IndexByte(fileID, '.'); dot > 0 { + fileID = fileID[:dot] + } + if t.ParseUid(fileID).IsZero() { + return + } + fd, err := a.TenantFileGet(id, fileID) if err != nil || fd == nil { if file.FileName == "" { file.FileName = file.FileID