@@ -0,0 +1,51 @@
|
||||
package actvser
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
|
||||
"91porn-server/models/v/actmod"
|
||||
)
|
||||
|
||||
var dateMax = time.Date(2999, 12, 31, 0, 0, 0, 0, time.Local)
|
||||
|
||||
func GetActivities(req GetActitiesRequest) ([]actmod.Activity, bool, error) {
|
||||
skip := uint64((req.PageNumber - 1) * req.PageSize)
|
||||
limit := uint64(req.PageSize + 1)
|
||||
actvs, err := actmod.GetActivitiesValid(skip, limit)
|
||||
if err != nil {
|
||||
return nil, false, err
|
||||
}
|
||||
hasNext := false
|
||||
if uint64(len(actvs)) > req.PageSize {
|
||||
hasNext = true
|
||||
actvs = actvs[:req.PageSize]
|
||||
}
|
||||
now := time.Now()
|
||||
for i := range actvs {
|
||||
if actvs[i].ExpiredIn.IsZero() {
|
||||
actvs[i].ExpiredIn = dateMax
|
||||
continue
|
||||
}
|
||||
if actvs[i].ExpiredIn.Before(now) {
|
||||
actvs[i].Status = 2 // 状态设置为已过期
|
||||
}
|
||||
}
|
||||
return actvs, hasNext, nil
|
||||
}
|
||||
|
||||
func GetActiveByID(id primitive.ObjectID) (*actmod.Activity, error) {
|
||||
actv, err := actmod.GetActivityByActivityID(id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if actv.ExpiredIn.IsZero() {
|
||||
actv.ExpiredIn = dateMax
|
||||
return actv, nil
|
||||
}
|
||||
if actv.Status == 1 && actv.ExpiredIn.Before(time.Now()) {
|
||||
actv.Status = 2
|
||||
}
|
||||
return actv, nil
|
||||
}
|
||||
Reference in New Issue
Block a user