Skip to content

Commit a6b6545

Browse files
committed
fix(answer): fix incorrect cancel answer activity
1 parent 3d032a7 commit a6b6545

2 files changed

Lines changed: 8 additions & 30 deletions

File tree

internal/repo/activity/answer_repo.go

Lines changed: 5 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,6 @@ func NewAnswerActivityRepo(
4646

4747
func (ar *AnswerActivityRepo) SaveAcceptAnswerActivity(ctx context.Context, op *schema.AcceptAnswerOperationInfo) (
4848
err error) {
49-
// pre check
50-
noNeedToDo, err := ar.activityPreCheck(ctx, op)
51-
if err != nil {
52-
return err
53-
}
54-
if noNeedToDo {
55-
return nil
56-
}
57-
5849
// save activity
5950
_, err = ar.data.DB.Transaction(func(session *xorm.Session) (result any, err error) {
6051
session = session.Context(ctx)
@@ -131,21 +122,6 @@ func (ar *AnswerActivityRepo) SaveCancelAcceptAnswerActivity(ctx context.Context
131122
return nil
132123
}
133124

134-
func (ar *AnswerActivityRepo) activityPreCheck(ctx context.Context, op *schema.AcceptAnswerOperationInfo) (
135-
noNeedToDo bool, err error) {
136-
activities, err := ar.getExistActivity(ctx, op)
137-
if err != nil {
138-
return false, err
139-
}
140-
done := 0
141-
for _, act := range activities {
142-
if act.Cancelled == entity.ActivityAvailable {
143-
done++
144-
}
145-
}
146-
return done == len(op.Activities), nil
147-
}
148-
149125
func (ar *AnswerActivityRepo) acquireUserInfo(session *xorm.Session, userIDs []string) (map[string]*entity.User, error) {
150126
us := make([]*entity.User, 0)
151127
err := session.In("id", userIDs).ForUpdate().Find(&us)
@@ -286,18 +262,17 @@ func (ar *AnswerActivityRepo) rollbackUserRank(ctx context.Context, session *xor
286262
func (ar *AnswerActivityRepo) getExistActivity(ctx context.Context, op *schema.AcceptAnswerOperationInfo) ([]*entity.Activity, error) {
287263
var activities []*entity.Activity
288264
for _, action := range op.Activities {
289-
t := &entity.Activity{}
290-
exist, err := ar.data.DB.Context(ctx).
265+
var t []*entity.Activity
266+
err := ar.data.DB.Context(ctx).
291267
Where(builder.Eq{"user_id": action.ActivityUserID}).
292-
And(builder.Eq{"trigger_user_id": action.TriggerUserID}).
293268
And(builder.Eq{"activity_type": action.ActivityType}).
294269
And(builder.Eq{"object_id": op.AnswerObjectID}).
295-
Get(t)
270+
Find(&t)
296271
if err != nil {
297272
return nil, errors.InternalServer(reason.DatabaseError).WithError(err).WithStack()
298273
}
299-
if exist {
300-
activities = append(activities, t)
274+
if len(t) > 0 {
275+
activities = append(activities, t...)
301276
}
302277
}
303278
return activities, nil

internal/service/activity/answer_activity_service.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ func NewAnswerActivityService(
3434
// AcceptAnswer accept answer change activity
3535
func (as *AnswerActivityService) AcceptAnswer(ctx context.Context,
3636
loginUserID, answerObjID, questionObjID, questionUserID, answerUserID string, isSelf bool) (err error) {
37+
log.Debugf("user %s want to accept answer %s[%s] for question %s[%s]", loginUserID,
38+
answerObjID, answerUserID,
39+
questionObjID, questionUserID)
3740
operationInfo := as.createAcceptAnswerOperationInfo(ctx, loginUserID,
3841
answerObjID, questionObjID, questionUserID, answerUserID, isSelf)
3942
return as.answerActivityRepo.SaveAcceptAnswerActivity(ctx, operationInfo)

0 commit comments

Comments
 (0)