58 lines
1.2 KiB
Go
58 lines
1.2 KiB
Go
|
|
package handlers
|
||
|
|
|
||
|
|
import (
|
||
|
|
"platform/web/auth"
|
||
|
|
"platform/web/core"
|
||
|
|
c "platform/web/core"
|
||
|
|
g "platform/web/globals"
|
||
|
|
q "platform/web/queries"
|
||
|
|
"time"
|
||
|
|
|
||
|
|
"github.com/gofiber/fiber/v2"
|
||
|
|
)
|
||
|
|
|
||
|
|
// PageResourceBatch 分页查询套餐提取记录
|
||
|
|
func PageResourceBatch(ctx *fiber.Ctx) error {
|
||
|
|
// 检查权限
|
||
|
|
authCtx, err := auth.GetAuthCtx(ctx).PermitUser()
|
||
|
|
if err != nil {
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
|
||
|
|
// 解析请求参数
|
||
|
|
req := new(PageResourceBatchReq)
|
||
|
|
if err := g.Validator.ParseBody(ctx, req); err != nil {
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
|
||
|
|
// 查询批次
|
||
|
|
conds := q.LogsUserUsage.Where(q.LogsUserUsage.UserID.Eq(authCtx.User.ID))
|
||
|
|
if req.TimeStart != nil {
|
||
|
|
conds.Where(q.LogsUserUsage.Time.Gte(*req.TimeStart))
|
||
|
|
}
|
||
|
|
if req.TimeEnd != nil {
|
||
|
|
conds.Where(q.LogsUserUsage.Time.Lte(*req.TimeEnd))
|
||
|
|
}
|
||
|
|
|
||
|
|
list, total, err := q.LogsUserUsage.Where(conds).
|
||
|
|
Order(q.LogsUserUsage.Time.Desc()).
|
||
|
|
FindByPage(req.GetOffset(), req.GetLimit())
|
||
|
|
if err != nil {
|
||
|
|
return core.NewBizErr("获取数据失败", err)
|
||
|
|
}
|
||
|
|
|
||
|
|
// 返回数据
|
||
|
|
return ctx.JSON(c.PageResp{
|
||
|
|
Total: int(total),
|
||
|
|
List: list,
|
||
|
|
Page: req.GetPage(),
|
||
|
|
Size: req.GetSize(),
|
||
|
|
})
|
||
|
|
}
|
||
|
|
|
||
|
|
type PageResourceBatchReq struct {
|
||
|
|
c.PageReq
|
||
|
|
TimeStart *time.Time `json:"time_start"`
|
||
|
|
TimeEnd *time.Time `json:"time_end"`
|
||
|
|
}
|