feat: update duration

This commit is contained in:
2025-12-16 16:12:55 +08:00
parent 0531a72ae6
commit 0e303e8a5c
6 changed files with 79 additions and 9 deletions

View File

@@ -2,6 +2,7 @@ package services
import (
"context"
"time"
"quyun/v2/app/http/super/dto"
"quyun/v2/app/requests"
@@ -11,6 +12,7 @@ import (
"github.com/pkg/errors"
"github.com/samber/lo"
"github.com/sirupsen/logrus"
"go.ipao.vip/gen"
)
@@ -165,3 +167,30 @@ func (t *tenant) TenantUserBalanceMapping(ctx context.Context, tenantIds []int64
}
return result, nil
}
// FindByID
func (t *tenant) FindByID(ctx context.Context, id int64) (*models.Tenant, error) {
tbl, query := models.TenantQuery.QueryContext(ctx)
m, err := query.Where(tbl.ID.Eq(id)).First()
if err != nil {
return nil, errors.Wrapf(err, "find by id failed, id: %d", id)
}
return m, nil
}
// AddExpireDuration
func (t *tenant) AddExpireDuration(ctx context.Context, tenantID int64, duration time.Duration) error {
logrus.WithField("tenant_id", tenantID).WithField("duration", duration).Info("add expire duration")
m, err := t.FindByID(ctx, tenantID)
if err != nil {
return err
}
if m.ExpiredAt.Before(time.Now()) {
m.ExpiredAt = time.Now().Add(duration)
} else {
m.ExpiredAt = m.ExpiredAt.Add(duration)
}
return m.Save(ctx)
}