fix: hydrate meeting note file uploader

This commit is contained in:
richjohnrambo
2026-09-21 11:02:36 +08:00
parent 06e3f0b489
commit 53accc3e3f
4 changed files with 64 additions and 5 deletions
+36
View File
@@ -622,6 +622,9 @@ func (s *Store) MeetingNoteFiles(ctx context.Context, userID int64, meetingID st
FROM im_meeting_note_files WHERE meeting_id=? AND status='active' ORDER BY id DESC`, meetingID); err != nil {
return nil, err
}
if err := s.hydrateMeetingNoteFilesUploaders(ctx, files); err != nil {
return nil, err
}
return files, nil
}
@@ -1327,9 +1330,42 @@ func (s *Store) meetingNoteFile(ctx context.Context, meetingID, noteFileID strin
}
return nil, err
}
if err := s.hydrateMeetingNoteFileUploader(ctx, &file); err != nil {
return nil, err
}
return &file, nil
}
func (s *Store) hydrateMeetingNoteFileUploader(ctx context.Context, file *MeetingNoteFile) error {
if file == nil {
return nil
}
summaries, err := s.UserSummaries(ctx, []int64{file.UploaderID})
if err != nil {
return err
}
file.Uploader = summaryOrDefault(file.UploaderID, summaries)
return nil
}
func (s *Store) hydrateMeetingNoteFilesUploaders(ctx context.Context, files []MeetingNoteFile) error {
if len(files) == 0 {
return nil
}
userIDs := make([]int64, 0, len(files))
for _, file := range files {
userIDs = append(userIDs, file.UploaderID)
}
summaries, err := s.UserSummaries(ctx, userIDs)
if err != nil {
return err
}
for i := range files {
files[i].Uploader = summaryOrDefault(files[i].UploaderID, summaries)
}
return nil
}
func meetingVisible(meeting Meeting, userID int64) bool {
if meeting.OrganizerID == userID || meeting.RecorderID == userID {
return true
+5 -4
View File
@@ -148,10 +148,11 @@ type MeetingParticipant struct {
}
type MeetingNoteFile struct {
NoteFileID string `db:"note_file_id"`
MeetingID string `db:"meeting_id"`
FileID string `db:"file_id"`
UploaderID int64 `db:"uploader_id"`
NoteFileID string `db:"note_file_id"`
MeetingID string `db:"meeting_id"`
FileID string `db:"file_id"`
UploaderID int64 `db:"uploader_id"`
Uploader UserSummary
FileName string `db:"file_name"`
MIMEType string `db:"mime_type"`
FileSize int64 `db:"file_size"`