feat: update duration
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user