Skip to content

Commit 630b3a5

Browse files
committed
Merge branch 'fix/1.1.3/qa' into test
2 parents 36ef253 + 750fdb0 commit 630b3a5

4 files changed

Lines changed: 13 additions & 36 deletions

File tree

internal/base/middleware/auth.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ func (am *AuthUserMiddleware) AdminAuth() gin.HandlerFunc {
126126
return
127127
}
128128
userInfo, err := am.authService.GetAdminUserCacheInfo(ctx, token)
129-
if err != nil {
129+
if err != nil || userInfo == nil {
130130
handler.HandleResponse(ctx, errors.Forbidden(reason.UnauthorizedError), nil)
131131
ctx.Abort()
132132
return

internal/migrations/init_data.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ var (
4747
&entity.UserRoleRel{},
4848
&entity.PluginConfig{},
4949
&entity.UserExternalLogin{},
50+
&entity.UserNotificationConfig{},
5051
}
5152

5253
roles = []*entity.Role{

internal/repo/activity/answer_repo.go

Lines changed: 8 additions & 35 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
@@ -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 {

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)