diff --git a/internal/repo/answer/answer_repo.go b/internal/repo/answer/answer_repo.go index cd04a8ec..cfa8023d 100644 --- a/internal/repo/answer/answer_repo.go +++ b/internal/repo/answer/answer_repo.go @@ -115,10 +115,10 @@ func (ar *answerRepo) RemoveAllUserAnswer(ctx context.Context, userID string) (e } // UpdateAnswer update answer -func (ar *answerRepo) UpdateAnswer(ctx context.Context, answer *entity.Answer, Colar []string) (err error) { +func (ar *answerRepo) UpdateAnswer(ctx context.Context, answer *entity.Answer, cols []string) (err error) { answer.ID = uid.DeShortID(answer.ID) answer.QuestionID = uid.DeShortID(answer.QuestionID) - _, err = ar.data.DB.Context(ctx).ID(answer.ID).Cols(Colar...).Update(answer) + _, err = ar.data.DB.Context(ctx).ID(answer.ID).Cols(cols...).Update(answer) if err != nil { err = errors.InternalServer(reason.DatabaseError).WithError(err).WithStack() } @@ -126,15 +126,13 @@ func (ar *answerRepo) UpdateAnswer(ctx context.Context, answer *entity.Answer, C return err } -func (ar *answerRepo) UpdateAnswerStatus(ctx context.Context, answer *entity.Answer) (err error) { - now := time.Now() - answer.ID = uid.DeShortID(answer.ID) - answer.UpdatedAt = now - _, err = ar.data.DB.Context(ctx).Where("id =?", answer.ID).Cols("status", "updated_at").Update(answer) +func (ar *answerRepo) UpdateAnswerStatus(ctx context.Context, answerID string, status int) (err error) { + answerID = uid.DeShortID(answerID) + _, err = ar.data.DB.Context(ctx).ID(answerID).Cols("status").Update(&entity.Answer{Status: status}) if err != nil { return errors.InternalServer(reason.DatabaseError).WithError(err).WithStack() } - _ = ar.updateSearch(ctx, answer.ID) + _ = ar.updateSearch(ctx, answerID) return } diff --git a/internal/service/answer_common/answer.go b/internal/service/answer_common/answer.go index 4851fd79..2ba191e0 100644 --- a/internal/service/answer_common/answer.go +++ b/internal/service/answer_common/answer.go @@ -13,7 +13,7 @@ import ( type AnswerRepo interface { AddAnswer(ctx context.Context, answer *entity.Answer) (err error) RemoveAnswer(ctx context.Context, id string) (err error) - UpdateAnswer(ctx context.Context, answer *entity.Answer, Colar []string) (err error) + UpdateAnswer(ctx context.Context, answer *entity.Answer, cols []string) (err error) GetAnswer(ctx context.Context, id string) (answer *entity.Answer, exist bool, err error) GetAnswerList(ctx context.Context, answer *entity.Answer) (answerList []*entity.Answer, err error) GetAnswerPage(ctx context.Context, page, pageSize int, answer *entity.Answer) (answerList []*entity.Answer, total int64, err error) @@ -24,7 +24,7 @@ type AnswerRepo interface { GetByUserIDQuestionID(ctx context.Context, userID string, questionID string) (*entity.Answer, bool, error) SearchList(ctx context.Context, search *entity.AnswerSearch) ([]*entity.Answer, int64, error) AdminSearchList(ctx context.Context, search *schema.AdminAnswerPageReq) ([]*entity.Answer, int64, error) - UpdateAnswerStatus(ctx context.Context, answer *entity.Answer) (err error) + UpdateAnswerStatus(ctx context.Context, answerID string, status int) (err error) GetAnswerCount(ctx context.Context) (count int64, err error) RemoveAllUserAnswer(ctx context.Context, userID string) (err error) } diff --git a/internal/service/answer_service.go b/internal/service/answer_service.go index f1e76bf1..7895f09b 100644 --- a/internal/service/answer_service.go +++ b/internal/service/answer_service.go @@ -451,7 +451,7 @@ func (as *AnswerService) AdminSetAnswerStatus(ctx context.Context, req *schema.A return fmt.Errorf("answer does not exist") } answerInfo.Status = setStatus - err = as.answerRepo.UpdateAnswerStatus(ctx, answerInfo) + err = as.answerRepo.UpdateAnswerStatus(ctx, req.AnswerID, setStatus) if err != nil { return err }