修复统计数据和密码登录逻辑

This commit is contained in:
2025-07-01 18:23:15 +08:00
parent 822ba3d02a
commit f50d5bba6f
6 changed files with 69 additions and 29 deletions

View File

@@ -241,15 +241,15 @@ type StatisticPersonalResp struct {
}
type StatisticShort struct {
ResourceCount int
ResourceQuotaSum int
ResourceDailyFreeSum int
ResourceCount int `json:"resource_count"`
ResourceQuotaSum int `json:"resource_quota_sum"`
ResourceDailyFreeSum int `json:"resource_daily_free_sum"`
}
type StatisticLong struct {
ResourceCount int
ResourceQuotaSum int
ResourceDailyFreeSum int
ResourceCount int `json:"resource_count"`
ResourceQuotaSum int `json:"resource_quota_sum"`
ResourceDailyFreeSum int `json:"resource_daily_free_sum"`
}
func StatisticResourceFree(c *fiber.Ctx) error {
@@ -260,7 +260,7 @@ func StatisticResourceFree(c *fiber.Ctx) error {
}
// 统计套餐剩余数量
resources, err := q.Resource.
resources, err := q.Resource.Debug().
Preload(
q.Resource.Short,
q.Resource.Long,
@@ -269,7 +269,7 @@ func StatisticResourceFree(c *fiber.Ctx) error {
q.Resource.UserID.Eq(session.Payload.Id),
q.Resource.Active.Is(true),
).
Select(q.Resource.ID).
Select(q.Resource.ID, q.Resource.Type).
Find()
if err != nil {
return err
@@ -297,7 +297,7 @@ func StatisticResourceFree(c *fiber.Ctx) error {
// 短效包时
case resource2.Type(resource.Type) == resource2.TypeShort && resource2.Mode(resource.Short.Type) == resource2.ModeTime:
if time.Time(*resource.Short.Expire).After(time.Now()) {
if time.Time(*resource.Short.DailyLast) != u.Today() {
if resource.Short.DailyLast == nil || u.SameDate(time.Time(*resource.Short.DailyLast)) == false {
shortCount++
shortDailyFreeSum += int(resource.Short.DailyLimit)
} else if resource.Short.DailyLimit > resource.Short.DailyUsed {
@@ -309,7 +309,7 @@ func StatisticResourceFree(c *fiber.Ctx) error {
// 长效包时
case resource2.Type(resource.Type) == resource2.TypeLong && resource2.Mode(resource.Long.Type) == resource2.ModeTime:
if time.Time(*resource.Long.Expire).After(time.Now()) {
if time.Time(*resource.Long.DailyLast) != u.Today() {
if resource.Long.DailyLast == nil || u.SameDate(time.Time(*resource.Long.DailyLast)) == false {
longCount++
longDailyFreeSum += int(resource.Long.DailyLimit)
} else if resource.Long.DailyLimit > resource.Long.DailyUsed {
@@ -359,7 +359,7 @@ func StatisticResourceUsage(c *fiber.Ctx) error {
}
// 统计套餐提取数量
do := q.LogsUserUsage.Where()
do := q.LogsUserUsage.Where(q.LogsUserUsage.UserID.Eq(session.Payload.Id))
if req.ResourceNo != nil && *req.ResourceNo != "" {
var resourceID int32
err := q.Resource.
@@ -382,15 +382,12 @@ func StatisticResourceUsage(c *fiber.Ctx) error {
}
var data = new(StatisticResourceUsageResp)
err = q.LogsUserUsage.
err = q.LogsUserUsage.Debug().
Select(
q.LogsUserUsage.Count_.Sum().As("count"),
field.NewUnsafeFieldRaw("date_trunc('day', time)").As("date"),
).
Where(
q.LogsUserUsage.UserID.Eq(session.Payload.Id),
do,
).
Where(do).
Group(
field.NewUnsafeFieldRaw("date_trunc('day', time)"),
).