diff --git a/soul-api/internal/handler/match_records.go b/soul-api/internal/handler/match_records.go index edc2212f..6493a066 100644 --- a/soul-api/internal/handler/match_records.go +++ b/soul-api/internal/handler/match_records.go @@ -98,27 +98,28 @@ func DBMatchRecordsList(c *gin.Context) { return *s } + safeNickname := func(u *model.User) string { + if u == nil || u.Nickname == nil { return "" } + return *u.Nickname + } + safeAvatar := func(u *model.User) string { + if u == nil || u.Avatar == nil { return "" } + return *u.Avatar + } + out := make([]gin.H, 0, len(records)) for _, r := range records { u := userMap[r.UserID] mu := userMap[r.MatchedUserID] - userAvatar := "" - matchedUserAvatar := "" - if u != nil && u.Avatar != nil { - userAvatar = *u.Avatar - } - if mu != nil && mu.Avatar != nil { - matchedUserAvatar = *mu.Avatar - } out = append(out, gin.H{ "id": r.ID, "userId": r.UserID, "matchedUserId": r.MatchedUserID, "matchType": r.MatchType, "phone": getStr(r.Phone), "wechatId": getStr(r.WechatID), - "userNickname": getStr(u.Nickname), - "matchedNickname": getStr(mu.Nickname), - "userAvatar": userAvatar, - "matchedUserAvatar": matchedUserAvatar, - "matchScore": r.MatchScore, - "createdAt": r.CreatedAt, + "userNickname": safeNickname(u), + "matchedNickname": safeNickname(mu), + "userAvatar": safeAvatar(u), + "matchedUserAvatar": safeAvatar(mu), + "matchScore": r.MatchScore, + "createdAt": r.CreatedAt, }) }