Skip to content

Commit 36ef253

Browse files
committed
Merge branch 'fix/1.1.3/qa' into test
2 parents 2641d3e + 3d032a7 commit 36ef253

4 files changed

Lines changed: 39 additions & 73 deletions

File tree

internal/repo/collection/collection_repo.go

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ package collection
22

33
import (
44
"context"
5-
65
"github.com/answerdev/answer/internal/base/constant"
76
"github.com/answerdev/answer/internal/base/data"
7+
"github.com/answerdev/answer/internal/base/handler"
88
"github.com/answerdev/answer/internal/base/pager"
99
"github.com/answerdev/answer/internal/base/reason"
1010
"github.com/answerdev/answer/internal/entity"
@@ -142,25 +142,32 @@ func (cr *collectionRepo) GetCollectionPage(ctx context.Context, page, pageSize
142142
session = session.OrderBy("update_time desc")
143143

144144
total, err = pager.Help(page, pageSize, collectionList, collection, session)
145-
err = errors.InternalServer(reason.DatabaseError).WithError(err).WithStack()
145+
if err != nil {
146+
err = errors.InternalServer(reason.DatabaseError).WithError(err).WithStack()
147+
}
146148
return
147149
}
148150

149151
// SearchObjectCollected check object is collected or not
150152
func (cr *collectionRepo) SearchObjectCollected(ctx context.Context, userID string, objectIds []string) (map[string]bool, error) {
151-
collectedMap := make(map[string]bool)
152-
for k, object_id := range objectIds {
153-
objectIds[k] = uid.DeShortID(object_id)
153+
for i := 0; i < len(objectIds); i++ {
154+
objectIds[i] = uid.DeShortID(objectIds[i])
154155
}
156+
155157
list, err := cr.SearchByObjectIDsAndUser(ctx, userID, objectIds)
156158
if err != nil {
157-
err = errors.InternalServer(reason.DatabaseError).WithError(err).WithStack()
158-
return collectedMap, err
159+
return nil, errors.InternalServer(reason.DatabaseError).WithError(err).WithStack()
159160
}
161+
162+
collectedMap := make(map[string]bool)
163+
short := handler.GetEnableShortID(ctx)
160164
for _, item := range list {
165+
if short {
166+
item.ObjectID = uid.EnShortID(item.ObjectID)
167+
}
161168
collectedMap[item.ObjectID] = true
162169
}
163-
return collectedMap, err
170+
return collectedMap, nil
164171
}
165172

166173
// SearchList

internal/service/answer_common/answer.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ func (as *AnswerCommon) ShowFormat(ctx context.Context, data *entity.Answer) *sc
8383
info.UserID = data.UserID
8484
info.UpdateUserID = data.LastEditUserID
8585
info.Status = data.Status
86+
info.MemberActions = make([]*schema.PermissionMemberAction, 0)
8687
return &info
8788
}
8889

internal/service/answer_service.go

Lines changed: 11 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -427,12 +427,11 @@ func (as *AnswerService) Get(ctx context.Context, answerID, loginUserID string)
427427

428428
info.VoteStatus = as.voteRepo.GetVoteStatus(ctx, answerID, loginUserID)
429429

430-
CollectedMap, err := as.collectionCommon.SearchObjectCollected(ctx, loginUserID, []string{answerInfo.ID})
430+
collectedMap, err := as.collectionCommon.SearchObjectCollected(ctx, loginUserID, []string{answerInfo.ID})
431431
if err != nil {
432-
log.Error("CollectionFunc.SearchObjectCollected error", err)
432+
return nil, nil, has, err
433433
}
434-
_, ok = CollectedMap[answerInfo.ID]
435-
if ok {
434+
if len(collectedMap) > 0 {
436435
info.Collected = true
437436
}
438437

@@ -513,46 +512,28 @@ func (as *AnswerService) SearchFormatInfo(ctx context.Context, answers []*entity
513512
item := as.ShowFormat(ctx, info)
514513
list = append(list, item)
515514
objectIDs = append(objectIDs, info.ID)
516-
userIDs = append(userIDs, info.UserID)
517-
userIDs = append(userIDs, info.LastEditUserID)
518-
if req.UserID != "" {
519-
item.ID = uid.DeShortID(item.ID)
520-
item.VoteStatus = as.voteRepo.GetVoteStatus(ctx, item.ID, req.UserID)
521-
}
515+
userIDs = append(userIDs, info.UserID, info.LastEditUserID)
522516
}
517+
523518
userInfoMap, err := as.userCommon.BatchUserBasicInfoByID(ctx, userIDs)
524519
if err != nil {
525520
return list, err
526521
}
527522
for _, item := range list {
528-
_, ok := userInfoMap[item.UserID]
529-
if ok {
530-
item.UserInfo = userInfoMap[item.UserID]
531-
}
532-
_, ok = userInfoMap[item.UpdateUserID]
533-
if ok {
534-
item.UpdateUserInfo = userInfoMap[item.UpdateUserID]
535-
}
523+
item.UserInfo = userInfoMap[item.UserID]
524+
item.UpdateUserInfo = userInfoMap[item.UpdateUserID]
536525
}
537-
538-
if req.UserID == "" {
526+
if len(req.UserID) == 0 {
539527
return list, nil
540528
}
541529

542-
searchObjectCollected, err := as.collectionCommon.SearchObjectCollected(ctx, req.UserID, objectIDs)
530+
collectedMap, err := as.collectionCommon.SearchObjectCollected(ctx, req.UserID, objectIDs)
543531
if err != nil {
544532
return nil, err
545533
}
546-
547-
for _, item := range list {
548-
_, ok := searchObjectCollected[item.ID]
549-
if ok {
550-
item.Collected = true
551-
}
552-
}
553-
554534
for _, item := range list {
555-
item.ID = uid.EnShortID(item.ID)
535+
item.VoteStatus = as.voteRepo.GetVoteStatus(ctx, item.ID, req.UserID)
536+
item.Collected = collectedMap[item.ID]
556537
item.MemberActions = permission.GetAnswerPermission(ctx, req.UserID, item.UserID, req.CanEdit, req.CanDelete)
557538
}
558539
return list, nil

internal/service/question_common/question.go

Lines changed: 12 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -282,17 +282,13 @@ func (qs *QuestionCommon) Info(ctx context.Context, questionID string, loginUser
282282
}
283283
showinfo.Answered = has
284284

285-
// login user Collected information
286-
287-
CollectedMap, err := qs.collectionCommon.SearchObjectCollected(ctx, loginUserID, []string{dbinfo.ID})
285+
collectedMap, err := qs.collectionCommon.SearchObjectCollected(ctx, loginUserID, []string{dbinfo.ID})
288286
if err != nil {
289-
log.Error("CollectionFunc.SearchObjectCollected", err)
287+
return nil, err
290288
}
291-
_, ok = CollectedMap[dbinfo.ID]
292-
if ok {
289+
if len(collectedMap) > 0 {
293290
showinfo.Collected = true
294291
}
295-
296292
return showinfo, nil
297293
}
298294

@@ -406,9 +402,7 @@ func (qs *QuestionCommon) FormatQuestions(ctx context.Context, questionList []*e
406402
item := qs.ShowFormat(ctx, questionInfo)
407403
list = append(list, item)
408404
objectIds = append(objectIds, item.ID)
409-
userIds = append(userIds, item.UserID)
410-
userIds = append(userIds, item.LastEditUserID)
411-
userIds = append(userIds, item.LastAnsweredUserID)
405+
userIds = append(userIds, item.UserID, item.LastEditUserID, item.LastAnsweredUserID)
412406
}
413407
tagsMap, err := qs.tagCommon.BatchGetObjectTag(ctx, objectIds)
414408
if err != nil {
@@ -421,38 +415,21 @@ func (qs *QuestionCommon) FormatQuestions(ctx context.Context, questionList []*e
421415
}
422416

423417
for _, item := range list {
424-
_, ok := tagsMap[item.ID]
425-
if ok {
426-
item.Tags = tagsMap[item.ID]
427-
}
428-
_, ok = userInfoMap[item.UserID]
429-
if ok {
430-
item.UserInfo = userInfoMap[item.UserID]
431-
}
432-
_, ok = userInfoMap[item.LastEditUserID]
433-
if ok {
434-
item.UpdateUserInfo = userInfoMap[item.LastEditUserID]
435-
}
436-
_, ok = userInfoMap[item.LastAnsweredUserID]
437-
if ok {
438-
item.LastAnsweredUserInfo = userInfoMap[item.LastAnsweredUserID]
439-
}
418+
item.Tags = tagsMap[item.ID]
419+
item.UserInfo = userInfoMap[item.UserID]
420+
item.UpdateUserInfo = userInfoMap[item.LastEditUserID]
421+
item.LastAnsweredUserInfo = userInfoMap[item.LastAnsweredUserID]
440422
}
441-
442423
if loginUserID == "" {
443424
return list, nil
444425
}
445-
// //login user Collected information
446-
CollectedMap, err := qs.collectionCommon.SearchObjectCollected(ctx, loginUserID, objectIds)
426+
427+
collectedMap, err := qs.collectionCommon.SearchObjectCollected(ctx, loginUserID, objectIds)
447428
if err != nil {
448-
log.Error("CollectionFunc.SearchObjectCollected", err)
429+
return nil, err
449430
}
450-
451431
for _, item := range list {
452-
_, ok := CollectedMap[item.ID]
453-
if ok {
454-
item.Collected = true
455-
}
432+
item.Collected = collectedMap[item.ID]
456433
}
457434
return list, nil
458435
}

0 commit comments

Comments
 (0)