79614b2d07
- Updated multiple repository and service files to replace imports from "github.com/mlogclub/simple/web/params" with "cs-agent/internal/pkg/httpx/params". - Adjusted context handling in auth_service and ws_service to use gin.Context instead of iris.Context. - Ensured consistent usage of HTTP status responses across websocket handlers.
107 lines
2.2 KiB
Go
107 lines
2.2 KiB
Go
package params
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/mlogclub/simple/common/strs/strcase"
|
|
"github.com/mlogclub/simple/sqls"
|
|
)
|
|
|
|
type QueryParams struct {
|
|
Ctx *gin.Context
|
|
sqls.Cnd
|
|
}
|
|
|
|
func NewQueryParams(ctx *gin.Context) *QueryParams {
|
|
return &QueryParams{Ctx: ctx}
|
|
}
|
|
|
|
func (q *QueryParams) getValueByColumn(column string) string {
|
|
if q.Ctx == nil {
|
|
return ""
|
|
}
|
|
return FormValue(q.Ctx, strcase.ToLowerCamel(column))
|
|
}
|
|
|
|
func (q *QueryParams) EqByReq(column string) *QueryParams {
|
|
if value := q.getValueByColumn(column); len(value) > 0 {
|
|
q.Eq(column, value)
|
|
}
|
|
return q
|
|
}
|
|
|
|
func (q *QueryParams) NotEqByReq(column string) *QueryParams {
|
|
if value := q.getValueByColumn(column); len(value) > 0 {
|
|
q.NotEq(column, value)
|
|
}
|
|
return q
|
|
}
|
|
|
|
func (q *QueryParams) GtByReq(column string) *QueryParams {
|
|
if value := q.getValueByColumn(column); len(value) > 0 {
|
|
q.Gt(column, value)
|
|
}
|
|
return q
|
|
}
|
|
|
|
func (q *QueryParams) GteByReq(column string) *QueryParams {
|
|
if value := q.getValueByColumn(column); len(value) > 0 {
|
|
q.Gte(column, value)
|
|
}
|
|
return q
|
|
}
|
|
|
|
func (q *QueryParams) LtByReq(column string) *QueryParams {
|
|
if value := q.getValueByColumn(column); len(value) > 0 {
|
|
q.Lt(column, value)
|
|
}
|
|
return q
|
|
}
|
|
|
|
func (q *QueryParams) LteByReq(column string) *QueryParams {
|
|
if value := q.getValueByColumn(column); len(value) > 0 {
|
|
q.Lte(column, value)
|
|
}
|
|
return q
|
|
}
|
|
|
|
func (q *QueryParams) LikeByReq(column string) *QueryParams {
|
|
if value := q.getValueByColumn(column); len(value) > 0 {
|
|
q.Like(column, value)
|
|
}
|
|
return q
|
|
}
|
|
|
|
func (q *QueryParams) PageByReq() *QueryParams {
|
|
if q.Ctx == nil {
|
|
return q
|
|
}
|
|
paging := GetPaging(q.Ctx)
|
|
q.Page(paging.Page, paging.Limit)
|
|
return q
|
|
}
|
|
|
|
func (q *QueryParams) Asc(column string) *QueryParams {
|
|
q.Orders = append(q.Orders, sqls.OrderByCol{Column: column, Asc: true})
|
|
return q
|
|
}
|
|
|
|
func (q *QueryParams) Desc(column string) *QueryParams {
|
|
q.Orders = append(q.Orders, sqls.OrderByCol{Column: column, Asc: false})
|
|
return q
|
|
}
|
|
|
|
func (q *QueryParams) Limit(limit int) *QueryParams {
|
|
q.Page(1, limit)
|
|
return q
|
|
}
|
|
|
|
func (q *QueryParams) Page(page, limit int) *QueryParams {
|
|
if q.Paging == nil {
|
|
q.Paging = &sqls.Paging{Page: page, Limit: limit}
|
|
} else {
|
|
q.Paging.Page = page
|
|
q.Paging.Limit = limit
|
|
}
|
|
return q
|
|
}
|