fix is_read

This commit is contained in:
efrilm 2025-10-17 22:02:58 +07:00
parent b8beebf3f2
commit 99cb544a0f
3 changed files with 17 additions and 3 deletions

View File

@ -540,8 +540,15 @@ func (r *LetterOutgoingRecipientRepository) GetByLetterIDsAndUser(ctx context.Co
db := DBFromContext(ctx, r.db)
var recipients []entities.LetterOutgoingRecipient
if err := db.WithContext(ctx).
Where("letter_id IN ? AND user_id = ?", letterIDs, userID).
Where(`id IN (
SELECT id FROM (
SELECT id, ROW_NUMBER() OVER (PARTITION BY letter_id ORDER BY created_at DESC) as rn
FROM letter_outgoing_recipients
WHERE letter_id IN ? AND user_id = ?
) t WHERE rn = 1
)`, letterIDs, userID).
Find(&recipients).Error; err != nil {
return nil, err
}

View File

@ -890,8 +890,15 @@ func (r *LetterIncomingRecipientRepository) GetByLetterIDsAndUser(ctx context.Co
db := DBFromContext(ctx, r.db)
var recipients []entities.LetterIncomingRecipient
if err := db.WithContext(ctx).
Where("letter_id IN ? AND recipient_user_id = ?", letterIDs, userID).
Where(`id IN (
SELECT id FROM (
SELECT id, ROW_NUMBER() OVER (PARTITION BY letter_id ORDER BY created_at DESC) as rn
FROM letter_incoming_recipients
WHERE letter_id IN ? AND recipient_user_id = ?
) t WHERE rn = 1
)`, letterIDs, userID).
Find(&recipients).Error; err != nil {
return nil, err
}

View File

@ -431,7 +431,7 @@ func (s *LetterServiceImpl) ListIncomingLetters(ctx context.Context, req *contra
isRead := false
if recipient, exists := batchData.recipients[letter.ID]; exists && recipient != nil {
isRead = recipient.ReadAt != nil
log.Printf("Recipient: %+v\n", recipient)
log.Printf("Recipient debug: %+v\n", recipient)
}
resp := transformer.LetterEntityToContract(&letter, attachments, dispositions, priority, institution)