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
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = donatService.donatRepo.MarkDonatPaid(
|
err = donatService.donatRepo.MarkDonatPaid(ctx, orderID)
|
||||||
ctx,
|
|
||||||
orderID,
|
|
||||||
)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error(err.Error())
|
slog.Error(err.Error())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if moderationSettings.Enable == false {
|
if !moderationSettings.Enable {
|
||||||
moderated := true
|
moderated := true
|
||||||
updateModel := model.ModerationDonat{
|
updateModel := model.ModerationDonat{
|
||||||
Accepted: &moderated,
|
Accepted: &moderated,
|
||||||
@ -219,6 +216,45 @@ func (donatService *ServiceDonat) MarkDonatPaid(
|
|||||||
slog.Error(err.Error())
|
slog.Error(err.Error())
|
||||||
return err
|
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
|
return nil
|
||||||
|
Loading…
x
Reference in New Issue
Block a user