查询使用 utc 时间

This commit is contained in:
2026-05-19 14:50:28 +08:00
parent dbc909c736
commit cf4bc4932a
13 changed files with 77 additions and 146 deletions

View File

@@ -81,16 +81,6 @@ func Map[T any, R any](src []T, convert func(T) R) []R {
// 时间
// ====================
func DateHead(date time.Time) time.Time {
var y, m, d = date.Local().Date()
return time.Date(y, m, d, 0, 0, 0, 0, time.Local).UTC()
}
func DateTail(date time.Time) time.Time {
var y, m, d = date.Local().Date()
return time.Date(y, m, d, 23, 59, 59, 999999999, time.Local).UTC()
}
func IsSameDate(date1, date2 time.Time) bool {
var y1, m1, d1 = date1.Local().Date()
var y2, m2, d2 = date2.Local().Date()
@@ -98,7 +88,8 @@ func IsSameDate(date1, date2 time.Time) bool {
}
func Today() time.Time {
return DateHead(time.Now())
var y, m, d = time.Now().Date()
return time.Date(y, m, d, 0, 0, 0, 0, time.Local)
}
func IsToday(date time.Time) bool {

View File

@@ -16,7 +16,7 @@ func FindSession(accessToken string, now time.Time) (*m.Session, error) {
Preload(field.Associations).
Where(
q.Session.AccessToken.Eq(accessToken),
q.Session.AccessTokenExpires.Gt(now),
q.Session.AccessTokenExpires.Gt(now.UTC()),
).First()
}
@@ -25,7 +25,7 @@ func FindSessionByRefresh(refreshToken string, now time.Time) (*m.Session, error
Preload(field.Associations).
Where(
q.Session.RefreshToken.Eq(refreshToken),
q.Session.RefreshTokenExpires.Gt(now),
q.Session.RefreshTokenExpires.Gt(now.UTC()),
).First()
}

View File

@@ -1,7 +1,6 @@
package handlers
import (
"platform/pkg/u"
"platform/web/auth"
"platform/web/core"
g "platform/web/globals"
@@ -31,12 +30,10 @@ func PageBalanceActivity(c *fiber.Ctx) error {
do = do.Where(q.Bill.As("Bill").BillNo.Eq(*req.BillNo))
}
if req.CreatedAtStart != nil {
t := u.DateHead(*req.CreatedAtStart)
do = do.Where(q.BalanceActivity.CreatedAt.Gte(t))
do = do.Where(q.BalanceActivity.CreatedAt.Gte(req.CreatedAtStart.UTC()))
}
if req.CreatedAtEnd != nil {
t := u.DateTail(*req.CreatedAtEnd)
do = do.Where(q.BalanceActivity.CreatedAt.Lte(t))
do = do.Where(q.BalanceActivity.CreatedAt.Lte(req.CreatedAtEnd.UTC()))
}
// 查询余额变动列表
@@ -93,12 +90,10 @@ func PageBalanceActivityByAdmin(c *fiber.Ctx) error {
do = do.Where(q.Bill.As("Bill").BillNo.Eq(*req.BillNo))
}
if req.CreatedAtStart != nil {
t := u.DateHead(*req.CreatedAtStart)
do = do.Where(q.BalanceActivity.CreatedAt.Gte(t))
do = do.Where(q.BalanceActivity.CreatedAt.Gte(req.CreatedAtStart.UTC()))
}
if req.CreatedAtEnd != nil {
t := u.DateTail(*req.CreatedAtEnd)
do = do.Where(q.BalanceActivity.CreatedAt.Lte(t))
do = do.Where(q.BalanceActivity.CreatedAt.Lte(req.CreatedAtEnd.UTC()))
}
// 查询余额变动列表
@@ -155,12 +150,10 @@ func PageBalanceActivityOfUserByAdmin(c *fiber.Ctx) error {
do = do.Where(q.Bill.As("Bill").BillNo.Eq(*req.BillNo))
}
if req.CreatedAtStart != nil {
t := u.DateHead(*req.CreatedAtStart)
do = do.Where(q.BalanceActivity.CreatedAt.Gte(t))
do = do.Where(q.BalanceActivity.CreatedAt.Gte(req.CreatedAtStart.UTC()))
}
if req.CreatedAtEnd != nil {
t := u.DateTail(*req.CreatedAtEnd)
do = do.Where(q.BalanceActivity.CreatedAt.Lte(t))
do = do.Where(q.BalanceActivity.CreatedAt.Lte(req.CreatedAtEnd.UTC()))
}
// 查询余额变动列表

View File

@@ -1,7 +1,6 @@
package handlers
import (
"platform/pkg/u"
"platform/web/auth"
"platform/web/core"
c "platform/web/core"
@@ -29,12 +28,10 @@ func PageBatch(ctx *fiber.Ctx) error {
// 查询批次
conds := q.LogsUserUsage.Where(q.LogsUserUsage.UserID.Eq(authCtx.User.ID))
if req.TimeStart != nil {
start := u.DateHead(*req.TimeStart)
conds.Where(q.LogsUserUsage.Time.Gte(start))
conds.Where(q.LogsUserUsage.Time.Gte(req.TimeStart.UTC()))
}
if req.TimeEnd != nil {
end := u.DateTail(*req.TimeEnd)
conds.Where(q.LogsUserUsage.Time.Lte(end))
conds.Where(q.LogsUserUsage.Time.Lte(req.TimeEnd.UTC()))
}
if req.ResourceNo != nil {
conds.Where(q.Resource.As("Resource").ResourceNo.Eq(*req.ResourceNo))
@@ -97,12 +94,10 @@ func PageBatchByAdmin(c *fiber.Ctx) error {
do = do.Where(q.LogsUserUsage.ISP.Eq(*req.Isp))
}
if req.CreatedAtStart != nil {
time := u.DateHead(*req.CreatedAtStart)
do = do.Where(q.LogsUserUsage.Time.Gte(time))
do = do.Where(q.LogsUserUsage.Time.Gte(req.CreatedAtStart.UTC()))
}
if req.CreatedAtEnd != nil {
time := u.DateTail(*req.CreatedAtEnd)
do = do.Where(q.LogsUserUsage.Time.Lte(time))
do = do.Where(q.LogsUserUsage.Time.Lte(req.CreatedAtEnd.UTC()))
}
list, total, err := q.LogsUserUsage.
@@ -166,12 +161,10 @@ func PageBatchOfUserByAdmin(ctx *fiber.Ctx) error {
do = do.Where(q.LogsUserUsage.ISP.Eq(*req.Isp))
}
if req.CreatedAtStart != nil {
t := u.DateHead(*req.CreatedAtStart)
do = do.Where(q.LogsUserUsage.Time.Gte(t))
do = do.Where(q.LogsUserUsage.Time.Gte(req.CreatedAtStart.UTC()))
}
if req.CreatedAtEnd != nil {
t := u.DateTail(*req.CreatedAtEnd)
do = do.Where(q.LogsUserUsage.Time.Lte(t))
do = do.Where(q.LogsUserUsage.Time.Lte(req.CreatedAtEnd.UTC()))
}
list, total, err := q.LogsUserUsage.

View File

@@ -1,7 +1,6 @@
package handlers
import (
"platform/pkg/u"
"platform/web/auth"
"platform/web/core"
g "platform/web/globals"
@@ -40,12 +39,10 @@ func PageBillByAdmin(c *fiber.Ctx) error {
do = do.Where(q.Bill.BillNo.Eq(*req.BillNo))
}
if req.CreatedAtStart != nil {
time := u.DateHead(*req.CreatedAtStart)
do = do.Where(q.Bill.CreatedAt.Gte(time))
do = do.Where(q.Bill.CreatedAt.Gte(req.CreatedAtStart.UTC()))
}
if req.CreatedAtEnd != nil {
time := u.DateHead(*req.CreatedAtEnd)
do = do.Where(q.Bill.CreatedAt.Lte(time))
do = do.Where(q.Bill.CreatedAt.Lte(req.CreatedAtEnd.UTC()))
}
if req.ProductCode != nil {
do = do.Where(q.Resource.As("Resource").Code.Eq(*req.ProductCode))
@@ -127,12 +124,10 @@ func PageBillOfUserByAdmin(c *fiber.Ctx) error {
do = do.Where(q.Bill.BillNo.Eq(*req.BillNo))
}
if req.CreatedAtStart != nil {
time := u.DateHead(*req.CreatedAtStart)
do = do.Where(q.Bill.CreatedAt.Gte(time))
do = do.Where(q.Bill.CreatedAt.Gte(req.CreatedAtStart.UTC()))
}
if req.CreatedAtEnd != nil {
time := u.DateHead(*req.CreatedAtEnd)
do = do.Where(q.Bill.CreatedAt.Lte(time))
do = do.Where(q.Bill.CreatedAt.Lte(req.CreatedAtEnd.UTC()))
}
if req.ProductCode != nil {
do = do.Where(q.Resource.As("Resource").Code.Eq(*req.ProductCode))
@@ -207,12 +202,10 @@ func ListBill(c *fiber.Ctx) error {
do.Where(q.Bill.Type.Eq(int(*req.Type)))
}
if req.CreateAfter != nil {
start := u.DateHead(*req.CreateAfter)
do = do.Where(q.Bill.CreatedAt.Gte(start))
do = do.Where(q.Bill.CreatedAt.Gte(req.CreateAfter.UTC()))
}
if req.CreateBefore != nil {
end := u.DateTail(*req.CreateBefore)
do = do.Where(q.Bill.CreatedAt.Lte(end))
do = do.Where(q.Bill.CreatedAt.Lte(req.CreateBefore.UTC()))
}
if req.BillNo != nil && *req.BillNo != "" {
do.Where(q.Bill.BillNo.Eq(*req.BillNo))

View File

@@ -42,12 +42,10 @@ func ListChannel(c *fiber.Ctx) error {
}
if req.ExpireAfter != nil {
start := u.DateHead(*req.ExpireAfter)
cond = cond.Where(q.Channel.ExpiredAt.Gte(start))
cond = cond.Where(q.Channel.ExpiredAt.Gte(req.ExpireAfter.UTC()))
}
if req.ExpireBefore != nil {
end := u.DateTail(*req.ExpireBefore)
cond = cond.Where(q.Channel.ExpiredAt.Lte(end))
cond = cond.Where(q.Channel.ExpiredAt.Lte(req.ExpireBefore.UTC()))
}
// 查询数据
@@ -226,18 +224,16 @@ func PageChannelByAdmin(c *fiber.Ctx) error {
do = do.Where(q.Channel.IP.Eq(ip))
}
if req.ExpiredAtStart != nil {
time := u.DateHead(*req.ExpiredAtStart)
do = do.Where(q.Channel.ExpiredAt.Gte(time))
do = do.Where(q.Channel.ExpiredAt.Gte(req.ExpiredAtStart.UTC()))
}
if req.ExpiredAtEnd != nil {
time := u.DateHead(*req.ExpiredAtEnd)
do = do.Where(q.Channel.ExpiredAt.Lte(time))
do = do.Where(q.Channel.ExpiredAt.Lte(req.ExpiredAtEnd.UTC()))
}
if req.Expired != nil {
if *req.Expired {
do = do.Where(q.Channel.ExpiredAt.Lte(time.Now()))
do = do.Where(q.Channel.ExpiredAt.Lte(time.Now().UTC()))
} else {
do = do.Where(q.Channel.ExpiredAt.Gt(time.Now()))
do = do.Where(q.Channel.ExpiredAt.Gt(time.Now().UTC()))
}
}
@@ -308,12 +304,10 @@ func PageChannelOfUserByAdmin(c *fiber.Ctx) error {
do = do.Where(q.Channel.Port.Eq(*req.ProxyPort))
}
if req.ExpiredAtStart != nil {
t := u.DateHead(*req.ExpiredAtStart)
do = do.Where(q.Channel.ExpiredAt.Gte(t))
do = do.Where(q.Channel.ExpiredAt.Gte(req.ExpiredAtStart.UTC()))
}
if req.ExpiredAtEnd != nil {
t := u.DateHead(*req.ExpiredAtEnd)
do = do.Where(q.Channel.ExpiredAt.Lte(t))
do = do.Where(q.Channel.ExpiredAt.Lte(req.ExpiredAtEnd.UTC()))
}
// 查询通道列表

View File

@@ -2,7 +2,6 @@ package handlers
import (
"errors"
"platform/pkg/u"
"platform/web/auth"
"platform/web/core"
g "platform/web/globals"
@@ -276,34 +275,28 @@ func couponUserPageConditions(req CouponUserPageFilter) []gen.Condition {
}
if req.Expired != nil {
if *req.Expired {
conds = append(conds, q.CouponUser.ExpireAt.IsNotNull(), q.CouponUser.ExpireAt.Lte(time.Now()))
conds = append(conds, q.CouponUser.ExpireAt.IsNotNull(), q.CouponUser.ExpireAt.Lte(time.Now().UTC()))
} else {
conds = append(conds, q.CouponUser.Where(q.CouponUser.ExpireAt.IsNull()).Or(q.CouponUser.ExpireAt.Gt(time.Now())))
conds = append(conds, q.CouponUser.Where(q.CouponUser.ExpireAt.IsNull()).Or(q.CouponUser.ExpireAt.Gt(time.Now().UTC())))
}
}
if req.CreatedAtStart != nil {
start := u.DateHead(*req.CreatedAtStart)
conds = append(conds, q.CouponUser.CreatedAt.Gte(start))
conds = append(conds, q.CouponUser.CreatedAt.Gte(req.CreatedAtStart.UTC()))
}
if req.CreatedAtEnd != nil {
end := u.DateTail(*req.CreatedAtEnd)
conds = append(conds, q.CouponUser.CreatedAt.Lte(end))
conds = append(conds, q.CouponUser.CreatedAt.Lte(req.CreatedAtEnd.UTC()))
}
if req.ExpireAtStart != nil {
start := u.DateHead(*req.ExpireAtStart)
conds = append(conds, q.CouponUser.ExpireAt.Gte(start))
conds = append(conds, q.CouponUser.ExpireAt.Gte(req.ExpireAtStart.UTC()))
}
if req.ExpireAtEnd != nil {
end := u.DateTail(*req.ExpireAtEnd)
conds = append(conds, q.CouponUser.ExpireAt.Lte(end))
conds = append(conds, q.CouponUser.ExpireAt.Lte(req.ExpireAtEnd.UTC()))
}
if req.UsedAtStart != nil {
start := u.DateHead(*req.UsedAtStart)
conds = append(conds, q.CouponUser.UsedAt.Gte(start))
conds = append(conds, q.CouponUser.UsedAt.Gte(req.UsedAtStart.UTC()))
}
if req.UsedAtEnd != nil {
end := u.DateTail(*req.UsedAtEnd)
conds = append(conds, q.CouponUser.UsedAt.Lte(end))
conds = append(conds, q.CouponUser.UsedAt.Lte(req.UsedAtEnd.UTC()))
}
return conds
}

View File

@@ -44,30 +44,26 @@ func PageResourceShort(c *fiber.Ctx) error {
do.Where(q.ResourceShort.As(q.Resource.Short.Name()).Type.Eq(*req.Type))
}
if req.CreateAfter != nil {
start := u.DateHead(*req.CreateAfter)
do = do.Where(q.Resource.CreatedAt.Gte(start))
do = do.Where(q.Resource.CreatedAt.Gte(req.CreateAfter.UTC()))
}
if req.CreateBefore != nil {
end := u.DateTail(*req.CreateBefore)
do = do.Where(q.Resource.CreatedAt.Lte(end))
do = do.Where(q.Resource.CreatedAt.Lte(req.CreateBefore.UTC()))
}
if req.ExpireAfter != nil {
start := u.DateHead(*req.ExpireAfter)
do = do.Where(q.ResourceShort.As(q.Resource.Short.Name()).ExpireAt.Gte(start))
do = do.Where(q.ResourceShort.As(q.Resource.Short.Name()).ExpireAt.Gte(req.ExpireAfter.UTC()))
}
if req.ExpireBefore != nil {
end := u.DateTail(*req.ExpireBefore)
do = do.Where(q.ResourceShort.As(q.Resource.Short.Name()).ExpireAt.Lte(end))
do = do.Where(q.ResourceShort.As(q.Resource.Short.Name()).ExpireAt.Lte(req.ExpireBefore.UTC()))
}
if req.Status != nil {
var short = q.ResourceShort.As(q.Resource.Short.Name())
switch *req.Status {
case 1:
var timeCond = q.Resource.Where(short.Type.Eq(int(m.ResourceModeTime)), short.ExpireAt.Gte(time.Now()))
var timeCond = q.Resource.Where(short.Type.Eq(int(m.ResourceModeTime)), short.ExpireAt.Gte(time.Now().UTC()))
var quotaCond = q.Resource.Where(short.Type.Eq(int(m.ResourceModeQuota)), short.Quota.GtCol(short.Used))
do.Where(q.Resource.Where(timeCond).Or(quotaCond))
case 2:
var timeCond = q.Resource.Where(short.Type.Eq(int(m.ResourceModeTime)), short.ExpireAt.Lte(time.Now()))
var timeCond = q.Resource.Where(short.Type.Eq(int(m.ResourceModeTime)), short.ExpireAt.Lte(time.Now().UTC()))
var quotaCond = q.Resource.Where(short.Type.Eq(int(m.ResourceModeQuota)), short.Quota.LteCol(short.Used))
do.Where(q.Resource.Where(timeCond).Or(quotaCond))
}
@@ -145,30 +141,26 @@ func PageResourceLong(c *fiber.Ctx) error {
do.Where(q.ResourceLong.As(q.Resource.Long.Name()).Type.Eq(int(*req.Type)))
}
if req.CreateAfter != nil {
start := u.DateHead(*req.CreateAfter)
do = do.Where(q.Resource.CreatedAt.Gte(start))
do = do.Where(q.Resource.CreatedAt.Gte(req.CreateAfter.UTC()))
}
if req.CreateBefore != nil {
end := u.DateTail(*req.CreateBefore)
do = do.Where(q.Resource.CreatedAt.Lte(end))
do = do.Where(q.Resource.CreatedAt.Lte(req.CreateBefore.UTC()))
}
if req.ExpireAfter != nil {
start := u.DateHead(*req.ExpireAfter)
do = do.Where(q.ResourceLong.As(q.Resource.Long.Name()).ExpireAt.Gte(start))
do = do.Where(q.ResourceLong.As(q.Resource.Long.Name()).ExpireAt.Gte(req.ExpireAfter.UTC()))
}
if req.ExpireBefore != nil {
end := u.DateTail(*req.ExpireBefore)
do = do.Where(q.ResourceLong.As(q.Resource.Long.Name()).ExpireAt.Lte(end))
do = do.Where(q.ResourceLong.As(q.Resource.Long.Name()).ExpireAt.Lte(req.ExpireBefore.UTC()))
}
if req.Status != nil {
var long = q.ResourceLong.As(q.Resource.Long.Name())
switch *req.Status {
case 1:
var timeCond = q.Resource.Where(long.Type.Eq(int(m.ResourceModeTime)), long.ExpireAt.Gte(time.Now()))
var timeCond = q.Resource.Where(long.Type.Eq(int(m.ResourceModeTime)), long.ExpireAt.Gte(time.Now().UTC()))
var quotaCond = q.Resource.Where(long.Type.Eq(int(m.ResourceModeQuota)), long.Quota.GtCol(long.Used))
do.Where(q.Resource.Where(timeCond).Or(quotaCond))
case 2:
var timeCond = q.Resource.Where(long.Type.Eq(int(m.ResourceModeTime)), long.ExpireAt.Lte(time.Now()))
var timeCond = q.Resource.Where(long.Type.Eq(int(m.ResourceModeTime)), long.ExpireAt.Lte(time.Now().UTC()))
var quotaCond = q.Resource.Where(long.Type.Eq(int(m.ResourceModeQuota)), long.Quota.LteCol(long.Used))
do.Where(q.Resource.Where(timeCond).Or(quotaCond))
}
@@ -243,18 +235,16 @@ func PageResourceShortByAdmin(c *fiber.Ctx) error {
do = do.Where(q.ResourceShort.As("Short").Type.Eq(int(*req.Mode)))
}
if req.CreatedAtStart != nil {
time := u.DateHead(*req.CreatedAtStart)
do = do.Where(q.Resource.CreatedAt.Gte(time))
do = do.Where(q.Resource.CreatedAt.Gte(req.CreatedAtStart.UTC()))
}
if req.CreatedAtEnd != nil {
time := u.DateTail(*req.CreatedAtEnd)
do = do.Where(q.Resource.CreatedAt.Lte(time))
do = do.Where(q.Resource.CreatedAt.Lte(req.CreatedAtEnd.UTC()))
}
if req.Expired != nil {
if *req.Expired {
do = do.Where(q.Resource.Where(
q.ResourceShort.As("Short").Type.Eq(int(m.ResourceModeTime)),
q.ResourceShort.As("Short").ExpireAt.Lte(time.Now()),
q.ResourceShort.As("Short").ExpireAt.Lte(time.Now().UTC()),
).Or(
q.ResourceShort.As("Short").Type.Eq(int(m.ResourceModeQuota)),
q.ResourceShort.As("Short").Quota.LteCol(q.ResourceShort.As("Short").Used),
@@ -262,7 +252,7 @@ func PageResourceShortByAdmin(c *fiber.Ctx) error {
} else {
do = do.Where(q.Resource.Where(
q.ResourceShort.As("Short").Type.Eq(int(m.ResourceModeTime)),
q.ResourceShort.As("Short").ExpireAt.Gt(time.Now()),
q.ResourceShort.As("Short").ExpireAt.Gt(time.Now().UTC()),
).Or(
q.ResourceShort.As("Short").Type.Eq(int(m.ResourceModeQuota)),
q.ResourceShort.As("Short").Quota.GtCol(q.ResourceShort.As("Short").Used),
@@ -337,18 +327,16 @@ func PageResourceLongByAdmin(c *fiber.Ctx) error {
do = do.Where(q.ResourceLong.As("Long").Type.Eq(*req.Mode))
}
if req.CreatedAtStart != nil {
start := u.DateHead(*req.CreatedAtStart)
do = do.Where(q.Resource.CreatedAt.Gte(start))
do = do.Where(q.Resource.CreatedAt.Gte(req.CreatedAtStart.UTC()))
}
if req.CreatedAtEnd != nil {
end := u.DateTail(*req.CreatedAtEnd)
do = do.Where(q.Resource.CreatedAt.Lte(end))
do = do.Where(q.Resource.CreatedAt.Lte(req.CreatedAtEnd.UTC()))
}
if req.Expired != nil {
if *req.Expired {
do = do.Where(q.Resource.Where(
q.ResourceLong.As("Long").Type.Eq(int(m.ResourceModeTime)),
q.ResourceLong.As("Long").ExpireAt.Lte(time.Now()),
q.ResourceLong.As("Long").ExpireAt.Lte(time.Now().UTC()),
).Or(
q.ResourceLong.As("Long").Type.Eq(int(m.ResourceModeQuota)),
q.ResourceLong.As("Long").Quota.LteCol(q.ResourceLong.As("Long").Used),
@@ -356,7 +344,7 @@ func PageResourceLongByAdmin(c *fiber.Ctx) error {
} else {
do = do.Where(q.Resource.Where(
q.ResourceLong.As("Long").Type.Eq(int(m.ResourceModeTime)),
q.ResourceLong.As("Long").ExpireAt.Gt(time.Now()),
q.ResourceLong.As("Long").ExpireAt.Gt(time.Now().UTC()),
).Or(
q.ResourceLong.As("Long").Type.Eq(int(m.ResourceModeQuota)),
q.ResourceLong.As("Long").Quota.GtCol(q.ResourceLong.As("Long").Used),
@@ -428,12 +416,10 @@ func PageResourceShortOfUserByAdmin(c *fiber.Ctx) error {
do = do.Where(q.ResourceShort.As("Short").Type.Eq(int(*req.Mode)))
}
if req.CreatedAtStart != nil {
t := u.DateHead(*req.CreatedAtStart)
do = do.Where(q.Resource.CreatedAt.Gte(t))
do = do.Where(q.Resource.CreatedAt.Gte(req.CreatedAtStart.UTC()))
}
if req.CreatedAtEnd != nil {
t := u.DateTail(*req.CreatedAtEnd)
do = do.Where(q.Resource.CreatedAt.Lte(t))
do = do.Where(q.Resource.CreatedAt.Lte(req.CreatedAtEnd.UTC()))
}
list, total, err := q.Resource.
@@ -499,12 +485,10 @@ func PageResourceLongOfUserByAdmin(c *fiber.Ctx) error {
do = do.Where(q.ResourceLong.As("Long").Type.Eq(*req.Mode))
}
if req.CreatedAtStart != nil {
t := u.DateHead(*req.CreatedAtStart)
do = do.Where(q.Resource.CreatedAt.Gte(t))
do = do.Where(q.Resource.CreatedAt.Gte(req.CreatedAtStart.UTC()))
}
if req.CreatedAtEnd != nil {
t := u.DateTail(*req.CreatedAtEnd)
do = do.Where(q.Resource.CreatedAt.Lte(t))
do = do.Where(q.Resource.CreatedAt.Lte(req.CreatedAtEnd.UTC()))
}
list, total, err := q.Resource.
@@ -572,9 +556,9 @@ func AllActiveResource(c *fiber.Ctx) error {
q.Resource.Type.Eq(int(m.ResourceTypeShort)),
q.ResourceShort.As(q.Resource.Short.Name()).Where(
short.Type.Eq(int(m.ResourceModeTime)),
short.ExpireAt.Gte(now),
short.ExpireAt.Gte(now.UTC()),
q.ResourceShort.As(q.Resource.Short.Name()).
Where(short.LastAt.Lt(u.Today())).
Where(short.LastAt.Lt(u.Today().UTC())).
Or(short.Quota.GtCol(short.Daily)),
).Or(
short.Type.Eq(int(m.ResourceModeQuota)),
@@ -584,9 +568,9 @@ func AllActiveResource(c *fiber.Ctx) error {
q.Resource.Type.Eq(int(m.ResourceTypeLong)),
q.ResourceLong.As(q.Resource.Long.Name()).Where(
long.Type.Eq(int(m.ResourceModeTime)),
long.ExpireAt.Gte(now),
long.ExpireAt.Gte(now.UTC()),
q.ResourceLong.As(q.Resource.Long.Name()).
Where(long.LastAt.Lt(u.Today())).
Where(long.LastAt.Lt(u.Today().UTC())).
Or(long.Quota.GtCol(long.Daily)),
).Or(
long.Type.Eq(int(m.ResourceModeQuota)),
@@ -765,12 +749,10 @@ func StatisticResourceUsage(c *fiber.Ctx) error {
)
if req.TimeAfter != nil {
start := u.DateHead(*req.TimeAfter)
do = do.Where(q.LogsUserUsage.Time.Gte(start))
do = do.Where(q.LogsUserUsage.Time.Gte(req.TimeAfter.UTC()))
}
if req.TimeBefore != nil {
end := u.DateTail(*req.TimeBefore)
do = do.Where(q.LogsUserUsage.Time.Lte(end))
do = do.Where(q.LogsUserUsage.Time.Lte(req.TimeBefore.UTC()))
}
var data = new(StatisticResourceUsageResp)

View File

@@ -5,7 +5,6 @@ import (
"fmt"
"log/slog"
"platform/pkg/env"
"platform/pkg/u"
"platform/web/auth"
"platform/web/core"
g "platform/web/globals"
@@ -53,12 +52,10 @@ func PageTradeByAdmin(c *fiber.Ctx) error {
do = do.Where(q.Trade.Status.Eq(*req.Status))
}
if req.CreatedAtStart != nil {
time := u.DateHead(*req.CreatedAtStart)
do = do.Where(q.Trade.CreatedAt.Gte(time))
do = do.Where(q.Trade.CreatedAt.Gte(req.CreatedAtStart.UTC()))
}
if req.CreatedAtEnd != nil {
time := u.DateTail(*req.CreatedAtEnd)
do = do.Where(q.Trade.CreatedAt.Lte(time))
do = do.Where(q.Trade.CreatedAt.Lte(req.CreatedAtEnd.UTC()))
}
// 查询用户列表
@@ -129,12 +126,10 @@ func PageTradeOfUserByAdmin(c *fiber.Ctx) error {
do = do.Where(q.Trade.Status.Eq(*req.Status))
}
if req.CreatedAtStart != nil {
time := u.DateHead(*req.CreatedAtStart)
do = do.Where(q.Trade.CreatedAt.Gte(time))
do = do.Where(q.Trade.CreatedAt.Gte(req.CreatedAtStart.UTC()))
}
if req.CreatedAtEnd != nil {
time := u.DateTail(*req.CreatedAtEnd)
do = do.Where(q.Trade.CreatedAt.Lte(time))
do = do.Where(q.Trade.CreatedAt.Lte(req.CreatedAtEnd.UTC()))
}
// 查询订单列表

View File

@@ -2,7 +2,6 @@ package handlers
import (
"errors"
"platform/pkg/u"
"platform/web/auth"
"platform/web/core"
g "platform/web/globals"
@@ -68,12 +67,10 @@ func PageUserByAdmin(c *fiber.Ctx) error {
}
}
if req.CreatedAtStart != nil {
start := u.DateHead(*req.CreatedAtStart)
do = do.Where(q.User.CreatedAt.Gte(start))
do = do.Where(q.User.CreatedAt.Gte(req.CreatedAtStart.UTC()))
}
if req.CreatedAtEnd != nil {
end := u.DateTail(*req.CreatedAtEnd)
do = do.Where(q.User.CreatedAt.Lte(end))
do = do.Where(q.User.CreatedAt.Lte(req.CreatedAtEnd.UTC()))
}
// 查询用户列表

View File

@@ -29,7 +29,7 @@ func ApplyRouters(app *fiber.App) {
debug.Get("/sms/:phone", handlers.DebugGetSmsCode)
debug.Get("/iden/clear/:phone", handlers.DebugIdentifyClear)
debug.Get("/session/now", func(ctx *fiber.Ctx) error {
rs, err := q.Session.Where(q.Session.AccessTokenExpires.Gt(time.Now())).Find()
rs, err := q.Session.Where(q.Session.AccessTokenExpires.Gt(time.Now().UTC())).Find()
if err != nil {
return err
}

View File

@@ -312,7 +312,7 @@ func (s *channelBaiyinProvider) ClearExpiredChannels(proxyId int32) (int, error)
Select(q.Channel.BatchNo).
Where(
q.Channel.BatchNo.In(batchList...),
q.Channel.ExpiredAt.Gte(now),
q.Channel.ExpiredAt.Gte(now.UTC()),
).
Group(q.Channel.BatchNo).
Scan(&batchQueried)

View File

@@ -134,7 +134,7 @@ func (s *couponService) GetUserCoupon(uid int32, cuid int32, amount decimal.Deci
q.CouponUser.ID.Eq(cuid),
q.CouponUser.UserID.Eq(uid),
q.CouponUser.Status.Eq(int(m.CouponUserStatusUnused)),
q.CouponUser.Where(q.CouponUser.ExpireAt.IsNull()).Or(q.CouponUser.ExpireAt.Gt(time.Now())),
q.CouponUser.Where(q.CouponUser.ExpireAt.IsNull()).Or(q.CouponUser.ExpireAt.Gt(time.Now().UTC())),
).Take()
if errors.Is(err, gorm.ErrRecordNotFound) {
return nil, core.NewBizErr("优惠券不存在或已失效")