优化数据库结构与数据插入逻辑
This commit is contained in:
@@ -2,6 +2,7 @@ package handlers
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"platform/pkg/u"
|
||||
"platform/web/auth"
|
||||
"platform/web/common"
|
||||
m "platform/web/models"
|
||||
@@ -67,7 +68,7 @@ func ListResourcePss(c *fiber.Ctx) error {
|
||||
|
||||
var resource []*m.Resource
|
||||
err = do.Debug().
|
||||
Order(q.ResourcePss.As(q.Resource.Pss.Name()).CreatedAt.Desc()).
|
||||
Order(q.Resource.CreatedAt.Desc()).
|
||||
Offset(req.GetOffset()).
|
||||
Limit(req.GetLimit()).
|
||||
Scan(&resource)
|
||||
@@ -95,6 +96,51 @@ func ListResourcePss(c *fiber.Ctx) error {
|
||||
|
||||
// endregion
|
||||
|
||||
// region AllResource
|
||||
|
||||
type AllResourceReq struct {
|
||||
}
|
||||
|
||||
func AllResource(c *fiber.Ctx) error {
|
||||
// 检查权限
|
||||
authContext, err := auth.Protect(c, []services.PayloadType{services.PayloadUser}, []string{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 查询资源列表
|
||||
pss := q.ResourcePss.As(q.Resource.Pss.Name())
|
||||
do := q.Resource.Debug().
|
||||
Joins(q.Resource.Pss).
|
||||
Where(
|
||||
q.Resource.UserID.Eq(authContext.Payload.Id),
|
||||
q.Resource.Active.Is(true),
|
||||
q.Resource.Where(
|
||||
pss.Type.Eq(1),
|
||||
pss.Expire.Gte(common.LocalDateTime(time.Now())),
|
||||
).Or(
|
||||
pss.Type.Eq(2),
|
||||
pss.Quota.GtCol(pss.Used),
|
||||
),
|
||||
q.Resource.Where(
|
||||
pss.DailyLast.Lt(common.LocalDateTime(u.Today())),
|
||||
).Or(
|
||||
pss.DailyUsed.LtCol(pss.DailyLimit),
|
||||
),
|
||||
)
|
||||
|
||||
resources, err := do.Debug().
|
||||
Order(q.Resource.CreatedAt.Desc()).
|
||||
Find()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return c.JSON(resources)
|
||||
}
|
||||
|
||||
// endregion
|
||||
|
||||
// region CreateResourceByBalance
|
||||
|
||||
type CreateResourceByBalanceReq struct {
|
||||
|
||||
Reference in New Issue
Block a user