add fix for auto duration donate
This commit is contained in:
parent
f14d06c349
commit
493ae72055
@ -192,16 +192,13 @@ func (donatService *ServiceDonat) MarkDonatPaid(
|
||||
return err
|
||||
}
|
||||
|
||||
err = donatService.donatRepo.MarkDonatPaid(
|
||||
ctx,
|
||||
orderID,
|
||||
)
|
||||
err = donatService.donatRepo.MarkDonatPaid(ctx, orderID)
|
||||
if err != nil {
|
||||
slog.Error(err.Error())
|
||||
return err
|
||||
}
|
||||
|
||||
if moderationSettings.Enable == false {
|
||||
if !moderationSettings.Enable {
|
||||
moderated := true
|
||||
updateModel := model.ModerationDonat{
|
||||
Accepted: &moderated,
|
||||
@ -219,6 +216,45 @@ func (donatService *ServiceDonat) MarkDonatPaid(
|
||||
slog.Error(err.Error())
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
go func(streamerID, donatID int, duration int) {
|
||||
select {
|
||||
case <-time.After(time.Duration(duration) * time.Second):
|
||||
moderated := true
|
||||
updateModel := model.ModerationDonat{
|
||||
Accepted: &moderated,
|
||||
ShowText: &moderated,
|
||||
ShowName: &moderated,
|
||||
PlayContent: &moderated,
|
||||
}
|
||||
|
||||
bgCtx := context.Background()
|
||||
donateModel, err := donatService.donatRepo.GetDonatByOrderID(bgCtx, orderID)
|
||||
if err != nil {
|
||||
slog.Error(err.Error())
|
||||
return
|
||||
}
|
||||
if donateModel.AcceptedTime == nil {
|
||||
if err := donatService.donatRepo.ModerateDonation(
|
||||
bgCtx,
|
||||
donateModel.ID,
|
||||
donatModel.StreamerID,
|
||||
updateModel,
|
||||
); err != nil {
|
||||
slog.Error("failed to auto-moderate donation",
|
||||
"error", err.Error(),
|
||||
"donatID", donatID,
|
||||
"streamerID", streamerID,
|
||||
)
|
||||
}
|
||||
}
|
||||
case <-ctx.Done():
|
||||
slog.Warn("context canceled before auto-moderation",
|
||||
"donatID", donatID,
|
||||
"streamerID", streamerID,
|
||||
)
|
||||
}
|
||||
}(donatModel.StreamerID, donatModel.ID, moderationSettings.Duration)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
Loading…
x
Reference in New Issue
Block a user