实现产品查询和修改接口 & 修复套餐查询接口问题

This commit is contained in:
2026-03-23 17:50:47 +08:00
parent 9f7160edfc
commit ad021f2faa
6 changed files with 402 additions and 9 deletions

View File

@@ -221,7 +221,7 @@ func PageResourceShortByAdmin(c *fiber.Ctx) error {
do := q.Resource.Where()
if req.UserPhone != nil {
do = do.Where(q.User.Phone.Eq(*req.UserPhone))
do = do.Where(q.User.As("User").Phone.Eq(*req.UserPhone))
}
if req.ResourceNo != nil {
do = do.Where(q.Resource.ResourceNo.Eq(*req.ResourceNo))
@@ -230,7 +230,7 @@ func PageResourceShortByAdmin(c *fiber.Ctx) error {
do = do.Where(q.Resource.Active.Is(*req.Active))
}
if req.Mode != nil {
do = do.Where(q.Resource.Type.Eq(int(m.ResourceTypeShort)))
do = do.Where(q.ResourceShort.As("Short").Type.Eq(int(*req.Mode)))
}
if req.CreatedAtStart != nil {
time := u.DateHead(*req.CreatedAtStart)
@@ -241,13 +241,19 @@ func PageResourceShortByAdmin(c *fiber.Ctx) error {
do = do.Where(q.Resource.CreatedAt.Lte(time))
}
list, total, err := q.Resource.
list, total, err := q.Resource.Debug().
Joins(q.Resource.User, q.Resource.Short).
Select(
q.Resource.ALL,
q.ResourceShort.As("Short").ALL,
q.User.As("User").Phone.As("User__phone"),
q.User.As("User").Name.As("User__name"),
q.ResourceShort.As("Short").Type.As("Short__type"),
q.ResourceShort.As("Short").Live.As("Short__live"),
q.ResourceShort.As("Short").Quota.As("Short__quota"),
q.ResourceShort.As("Short").Used.As("Short__used"),
q.ResourceShort.As("Short").Daily.As("Short__daily"),
q.ResourceShort.As("Short").LastAt.As("Short__last_at"),
q.ResourceShort.As("Short").ExpireAt.As("Short__expire_at"),
).
Where(q.Resource.Type.Eq(int(m.ResourceTypeShort)), do).
FindByPage(req.GetOffset(), req.GetLimit())
@@ -277,20 +283,46 @@ func PageResourceLongByAdmin(c *fiber.Ctx) error {
return err
}
req := new(struct{ core.PageReq })
if err = g.Validator.ParseBody(c, req); err != nil {
var req PageResourceLongByAdminReq
if err = g.Validator.ParseBody(c, &req); err != nil {
return err
}
do := q.Resource.Where()
if req.UserPhone != nil {
do = do.Where(q.User.As("User").Phone.Eq(*req.UserPhone))
}
if req.ResourceNo != nil {
do = do.Where(q.Resource.ResourceNo.Eq(*req.ResourceNo))
}
if req.Active != nil {
do = do.Where(q.Resource.Active.Is(*req.Active))
}
if req.Mode != nil {
do = do.Where(q.ResourceLong.As("Long").Type.Eq(*req.Mode))
}
if req.CreatedAtStart != nil {
do = do.Where(q.Resource.CreatedAt.Gte(*req.CreatedAtStart))
}
if req.CreatedAtEnd != nil {
do = do.Where(q.Resource.CreatedAt.Lte(*req.CreatedAtEnd))
}
list, total, err := q.Resource.
Joins(q.Resource.User, q.Resource.Long).
Select(
q.Resource.ALL,
q.ResourceLong.As("Long").ALL,
q.User.As("User").Phone.As("User__phone"),
q.User.As("User").Name.As("User__name"),
q.ResourceLong.As("Long").Type.As("Long__type"),
q.ResourceLong.As("Long").Live.As("Long__live"),
q.ResourceLong.As("Long").Quota.As("Long__quota"),
q.ResourceLong.As("Long").Used.As("Long__used"),
q.ResourceLong.As("Long").Daily.As("Long__daily"),
q.ResourceLong.As("Long").LastAt.As("Long__last_at"),
q.ResourceLong.As("Long").ExpireAt.As("Long__expire_at"),
).
Where(q.Resource.Type.Eq(int(m.ResourceTypeLong))).
Where(q.Resource.Type.Eq(int(m.ResourceTypeLong)), do).
FindByPage(req.GetOffset(), req.GetLimit())
return c.JSON(core.PageResp{
@@ -301,6 +333,16 @@ func PageResourceLongByAdmin(c *fiber.Ctx) error {
})
}
type PageResourceLongByAdminReq struct {
core.PageReq
UserPhone *string `json:"user_phone" form:"user_phone"`
ResourceNo *string `json:"resource_no" form:"resource_no"`
Active *bool `json:"active" form:"active"`
Mode *int `json:"mode" form:"mode"`
CreatedAtStart *time.Time `json:"created_at_start" form:"created_at_start"`
CreatedAtEnd *time.Time `json:"created_at_end" form:"created_at_end"`
}
// AllActiveResource 所有可用套餐
func AllActiveResource(c *fiber.Ctx) error {
// 检查权限