@@ -46,15 +46,6 @@ func NewAnswerActivityRepo(
4646
4747func (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-
149125func (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
286262func (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
@@ -310,12 +285,11 @@ func (ar *AnswerActivityRepo) sendAcceptAnswerNotification(
310285 Type : schema .NotificationTypeAchievement ,
311286 ObjectID : op .AnswerObjectID ,
312287 ReceiverUserID : act .ActivityUserID ,
288+ TriggerUserID : act .TriggerUserID ,
313289 }
314290 if act .ActivityUserID == op .QuestionUserID {
315- msg .TriggerUserID = op .AnswerUserID
316291 msg .ObjectType = constant .AnswerObjectType
317292 } else {
318- msg .TriggerUserID = op .QuestionUserID
319293 msg .ObjectType = constant .AnswerObjectType
320294 }
321295 if msg .TriggerUserID != msg .ReceiverUserID {
@@ -328,9 +302,9 @@ func (ar *AnswerActivityRepo) sendAcceptAnswerNotification(
328302 ReceiverUserID : act .ActivityUserID ,
329303 Type : schema .NotificationTypeInbox ,
330304 ObjectID : op .AnswerObjectID ,
305+ TriggerUserID : op .TriggerUserID ,
331306 }
332307 if act .ActivityUserID != op .QuestionUserID {
333- msg .TriggerUserID = op .TriggerUserID
334308 msg .ObjectType = constant .AnswerObjectType
335309 msg .NotificationAction = constant .NotificationAcceptAnswer
336310 ar .notificationQueueService .Send (ctx , msg )
@@ -342,15 +316,14 @@ func (ar *AnswerActivityRepo) sendCancelAcceptAnswerNotification(
342316 ctx context.Context , op * schema.AcceptAnswerOperationInfo ) {
343317 for _ , act := range op .Activities {
344318 msg := & schema.NotificationMsg {
319+ TriggerUserID : act .TriggerUserID ,
345320 ReceiverUserID : act .ActivityUserID ,
346321 Type : schema .NotificationTypeAchievement ,
347322 ObjectID : op .AnswerObjectID ,
348323 }
349324 if act .ActivityUserID == op .QuestionObjectID {
350- msg .TriggerUserID = op .AnswerObjectID
351325 msg .ObjectType = constant .QuestionObjectType
352326 } else {
353- msg .TriggerUserID = op .QuestionObjectID
354327 msg .ObjectType = constant .AnswerObjectType
355328 }
356329 if msg .TriggerUserID != msg .ReceiverUserID {
0 commit comments