Files
servicebase/pkg/req/abstract.go
2025-11-19 10:23:05 +08:00

127 lines
2.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package req
import (
"errors"
"gitea.ddegame.cn/open/servicebase/pkg/constant"
"gitea.ddegame.cn/open/servicebase/pkg/tools"
"github.com/gin-gonic/gin"
)
const (
defaultPage = 1
defaultSize = 10
)
type Page struct {
Page int64 `json:"page" form:"page" uri:"page"`
Size int64 `json:"size" form:"size" uri:"size"`
}
func (p *Page) check() {
if p.Page < 1 {
p.Page = defaultPage
}
if p.Size == 0 {
p.Size = defaultSize
} else if p.Size < 0 {
p.Size = 9999
}
}
func (p *Page) Check() error {
p.check()
return nil
}
func (p *Page) Offset() int {
p.check()
return int(p.Page*p.Size - p.Size)
}
func (p *Page) Limit() int {
p.check()
return int(p.Size)
}
func TID(c *gin.Context) string {
return c.GetHeader(constant.TenantId)
}
func SID(c *gin.Context) string {
return c.GetHeader(constant.ScopeId)
}
func UID(c *gin.Context) string {
return c.GetHeader(tools.HeaderUserId)
}
func CLI(c *gin.Context) string {
return c.GetHeader(tools.HeaderClient)
}
type BaseQuery struct {
IndustryID string `json:"industry_id" form:"industry_id" uri:"industry_id"`
PeriodID string `json:"period_id" form:"period_id" uri:"period_id"`
CityID string `json:"city_id" form:"city_id" uri:"city_id"`
ProvinceID string `json:"province_id" form:"province_id" uri:"province_id"`
RiskLevel string `json:"risk_level" form:"risk_level" uri:"risk_level"`
}
type KeyBody struct {
Key string `json:"key" form:"key" uri:"key"`
}
type IDBody struct {
ID string `json:"id" form:"id" uri:"id"` // put方法时通常为url参数post方法时通常为json参数
}
type ID32Body struct {
ID int32 `json:"id" form:"id" uri:"id"` // put方法时通常为url参数post方法时通常为json参数
}
func (d IDBody) Check() error {
if len(d.ID) == 0 {
return errors.New("ID不能为空")
}
return nil
}
type ClanIDBody struct {
ClanID string `json:"clan_id" form:"clan_id" uri:"clan_id"` // put方法时通常为url参数post方法时通常为json参数
}
func (d ClanIDBody) Check() error {
if len(d.ClanID) == 0 {
return errors.New("家ID不能为空")
}
return nil
}
type AreaIDBody struct {
IDBody
KeyBody
AreaID string `json:"area_id" form:"area_id" uri:"area_id"`
}
type TenantUserLoginBody struct {
Username string `json:"username"`
Password string `json:"password"`
}
type TenantUserUpdatePwdBody struct {
Pre string `json:"pre"`
New string `json:"new"`
}
type PageWithKeyBody struct {
Page
KeyBody
}
type PageWithIDBody struct {
Page
IDBody
}