update revision service

This commit is contained in:
aichy126 2022-11-24 17:47:54 +08:00
parent 45bf3e4a45
commit a376489b49
1 changed files with 139 additions and 122 deletions

View File

@ -62,6 +62,7 @@ func NewRevisionService(
tagCommon: tagCommon,
}
}
func (rs *RevisionService) RevisionAudit(ctx context.Context, req *schema.RevisionAuditReq) (err error) {
revisioninfo, exist, err := rs.revisionRepo.GetRevisionByID(ctx, req.ID)
if err != nil {
@ -85,8 +86,26 @@ func (rs *RevisionService) RevisionAudit(ctx context.Context, req *schema.Revisi
revisionitem := &schema.GetRevisionResp{}
_ = copier.Copy(revisionitem, revisioninfo)
rs.parseItem(ctx, revisionitem)
var saveErr error
switch objectType {
case constant.QuestionObjectType:
saveErr = rs.revisionAuditQuestion(ctx, revisionitem)
case constant.AnswerObjectType:
saveErr = rs.revisionAuditAnswer(ctx, revisionitem)
case constant.TagObjectType:
saveErr = rs.revisionAuditAnswer(ctx, revisionitem)
}
if saveErr != nil {
return saveErr
}
err = rs.revisionRepo.UpdateStatus(ctx, req.ID, entity.RevisionReviewPassStatus)
return
}
return nil
}
func (rs *RevisionService) revisionAuditQuestion(ctx context.Context, revisionitem *schema.GetRevisionResp) (err error) {
questioninfo, ok := revisionitem.ContentParsed.(*schema.QuestionInfo)
if ok {
now := time.Now()
@ -114,15 +133,17 @@ func (rs *RevisionService) RevisionAudit(ctx context.Context, req *schema.Revisi
return saveerr
}
activity_queue.AddActivity(&schema.ActivityMsg{
UserID: revisioninfo.UserID,
ObjectID: revisioninfo.ObjectID,
UserID: revisionitem.UserID,
ObjectID: revisionitem.ObjectID,
ActivityTypeKey: constant.ActQuestionEdited,
RevisionID: revisioninfo.ID,
OriginalObjectID: revisioninfo.ObjectID,
RevisionID: revisionitem.ID,
OriginalObjectID: revisionitem.ObjectID,
})
}
//
case constant.AnswerObjectType:
return nil
}
func (rs *RevisionService) revisionAuditAnswer(ctx context.Context, revisionitem *schema.GetRevisionResp) (err error) {
answerinfo, ok := revisionitem.ContentParsed.(*schema.AnswerInfo)
if ok {
now := time.Now()
@ -147,7 +168,7 @@ func (rs *RevisionService) RevisionAudit(ctx context.Context, req *schema.Revisi
return errors.BadRequest(reason.QuestionNotFound)
}
msg := &schema.NotificationMsg{
TriggerUserID: revisioninfo.UserID,
TriggerUserID: revisionitem.UserID,
ReceiverUserID: questionInfo.UserID,
Type: schema.NotificationTypeInbox,
ObjectID: answerinfo.ID,
@ -157,15 +178,17 @@ func (rs *RevisionService) RevisionAudit(ctx context.Context, req *schema.Revisi
notice_queue.AddNotification(msg)
activity_queue.AddActivity(&schema.ActivityMsg{
UserID: revisioninfo.UserID,
UserID: revisionitem.UserID,
ObjectID: insertData.ID,
OriginalObjectID: insertData.ID,
ActivityTypeKey: constant.ActAnswerEdited,
RevisionID: revisioninfo.ID,
RevisionID: revisionitem.ID,
})
}
return nil
}
case constant.TagObjectType:
func (rs *RevisionService) revisionAuditTag(ctx context.Context, revisionitem *schema.GetRevisionResp) (err error) {
taginfo, ok := revisionitem.ContentParsed.(*schema.GetTagResp)
if ok {
tag := &entity.Tag{}
@ -203,19 +226,13 @@ func (rs *RevisionService) RevisionAudit(ctx context.Context, req *schema.Revisi
}
activity_queue.AddActivity(&schema.ActivityMsg{
UserID: revisioninfo.UserID,
UserID: revisionitem.UserID,
ObjectID: taginfo.TagID,
OriginalObjectID: taginfo.TagID,
ActivityTypeKey: constant.ActTagEdited,
RevisionID: revisioninfo.ID,
RevisionID: revisionitem.ID,
})
}
}
err = rs.revisionRepo.UpdateStatus(ctx, req.ID, entity.RevisionReviewPassStatus)
return
}
return nil
}