package dto import ( "github.com/gin-gonic/gin" //"gorm.io/gorm" "go-admin/app/{{.PackageName}}/models" "go-admin/common/dto" "go-admin/tools" "github.com/go-admin-team/go-admin-core/sdk/pkg/logger" ) type {{.ClassName}}Search struct { dto.Pagination `search:"-"` {{ $tablename := .TBName -}} {{ range .Columns -}} {{$z := .IsQuery}} {{- if ($z) -}} {{.GoField}} {{.GoType}} `form:"{{.JsonField}}" search:"type:{{if eq .QueryType "EQ"}}exact{{ else if eq .QueryType "NE"}}iexact{{ else if eq .QueryType "LIKE"}}contains{{ else if eq .QueryType "GT"}}gt{{ else if eq .QueryType "GTE"}}gte{{ else if eq .QueryType "LT"}}lt{{ else if eq .QueryType "LTE"}}lte{{- end }};column:{{.ColumnName}};table:{{$tablename}}" comment:"{{.ColumnComment}}"` {{ end -}} {{- end }} } func (m *{{.ClassName}}Search) GetNeedSearch() interface{} { return *m } func (m *{{.ClassName}}Search) Bind(ctx *gin.Context) error { log := logger.GetRequestLogger(ctx) err := ctx.ShouldBind(m) if err != nil { log.Debugf("ShouldBind error: %s", err.Error()) } return err } type {{.ClassName}}Control struct { {{ range .Columns -}} {{$x := .Pk}} {{- if ($x) }} {{.GoField}} {{.GoType}} `uri:"{{.JsonField}}" comment:"{{.ColumnComment}}"` // {{.ColumnComment}} {{- else if eq .GoField "CreatedAt" -}} {{- else if eq .GoField "UpdatedAt" -}} {{- else if eq .GoField "DeletedAt" -}} {{- else if eq .GoField "CreateBy" -}} {{- else if eq .GoField "UpdateBy" -}} {{- else }} {{.GoField}} {{.GoType}} `json:"{{.JsonField}}" comment:"{{.ColumnComment}}"` {{end -}} {{- end }} } func (s *{{.ClassName}}Control) Bind(ctx *gin.Context) error { log := logger.GetRequestLogger(ctx) err := ctx.ShouldBindUri(s) if err != nil { log.Debugf("ShouldBindUri error: %s", err.Error()) return err } err = ctx.ShouldBind(s) if err != nil { log.Debugf("ShouldBind error: %s", err.Error()) } return err } func (s *{{.ClassName}}Control) Generate() (*models.{{.ClassName}}, error) { return &models.{{.ClassName}}{ {{ range .Columns -}} {{$x := .Pk}} {{- if ($x) }} Model: common.Model{ {{.GoField}}: s.{{.GoField}} }, {{- else if eq .GoField "CreatedAt" -}} {{- else if eq .GoField "UpdatedAt" -}} {{- else if eq .GoField "DeletedAt" -}} {{- else if eq .GoField "CreateBy" -}} {{- else if eq .GoField "UpdateBy" -}} {{- else }} {{.GoField}}: s.{{.GoField}}, {{- end }} {{- end }} }, nil } func (s *{{.ClassName}}Control) GetId() interface{} { return s.{{.PkGoField}} } type {{.ClassName}}ById struct { Id int `uri:"id"` Ids []int `json:"ids"` } func (s *{{.ClassName}}ById) GetId() interface{} { if len(s.Ids) > 0 { s.Ids = append(s.Ids, s.Id) return s.Ids } return s.Id } func (s *{{.ClassName}}ById) Bind(ctx *gin.Context) error { log := logger.GetRequestLogger(ctx) err := ctx.ShouldBindUri(s) if err != nil { log.Debugf("ShouldBindUri error: %s", err.Error()) return err } err = ctx.ShouldBind(s) if err != nil { log.Debugf("ShouldBind error: %s", err.Error()) } return err } func (s *{{.ClassName}}ById) SetUpdateBy(id int) { }