goctl added

This commit is contained in:
kim
2020-07-29 17:11:41 +08:00
parent b1975d29a7
commit 121323b8c3
142 changed files with 10690 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
package sqltemplate
var Delete = `
func (m *{{.upperObject}}Model) Delete({{.lowerPrimaryKey}} {{.dataType}}) error {
{{if .containsCache}}{{if .isNotPrimaryKey}}data,err:=m.FindOne({{.lowerPrimaryKey}})
if err!=nil{
return err
}{{end}}
{{.keys}}
_, err {{if .isNotPrimaryKey}}={{else}}:={{end}} m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
query := ` + "`" + `delete from ` + "` +" + ` m.table + ` + " `" + ` where {{.snakePrimaryKey}} = ?` + "`" + `
return conn.Exec(query, {{.lowerPrimaryKey}})
}, {{.keyValues}}){{else}}query := ` + "`" + `delete from ` + "` +" + ` m.table + ` + " `" + ` where {{.snakePrimaryKey}} = ?` + "`" + `
_,err:=m.ExecNoCache(query, {{.lowerPrimaryKey}}){{end}}
return err
}
`

View File

@@ -0,0 +1,11 @@
package sqltemplate
var Error = `package model
import "zero/core/stores/sqlx"
var (
ErrNotFound = sqlx.ErrNotFound
)
`

View File

@@ -0,0 +1,3 @@
package sqltemplate
var Field = `{{.name}} {{.type}} {{.tag}} {{.comment}}`

View File

@@ -0,0 +1,115 @@
package sqltemplate
// 通过id查询
var FindOne = `
func (m *{{.upperObject}}Model) FindOne({{.lowerPrimaryKey}} {{.dataType}}) (*{{.upperObject}}, error) {
{{if .withCache}}{{.cacheKey}}
var resp {{.upperObject}}
err := m.QueryRow(&resp, {{.cacheKeyVariable}}, func(conn sqlx.SqlConn, v interface{}) error {
query := ` + "`" + `select ` + "`" + ` + {{.lowerObject}}Rows + ` + "`" + ` from ` + "` + " + `m.table ` + " + `" + ` where {{.snakePrimaryKey}} = ? limit 1` + "`" + `
return conn.QueryRow(v, query, {{.lowerPrimaryKey}})
})
switch err {
case nil:
return &resp, nil
case sqlc.ErrNotFound:
return nil, ErrNotFound
default:
return nil, err
}{{else}}query := ` + "`" + `select ` + "`" + ` + {{.lowerObject}}Rows + ` + "`" + ` from ` + "` + " + `m.table ` + " + `" + ` where {{.snakePrimaryKey}} = ? limit 1` + "`" + `
var resp {{.upperObject}}
err := m.QueryRowNoCache(&resp, query, {{.lowerPrimaryKey}})
switch err {
case nil:
return &resp, nil
case sqlc.ErrNotFound:
return nil, ErrNotFound
default:
return nil, err
}{{end}}
}
`
// 通过指定字段查询
var FindOneByField = `
func (m *{{.upperObject}}Model) FindOneBy{{.upperFields}}({{.in}}) (*{{.upperObject}}, error) {
{{if .onlyOneFiled}}{{if .withCache}}{{.cacheKey}}
var resp {{.upperObject}}
err := m.QueryRowIndex(&resp, {{.cacheKeyVariable}}, func(primary interface{}) string {
return fmt.Sprintf("%s%v", {{.primaryKeyDefine}}, primary)
}, func(conn sqlx.SqlConn, v interface{}) (i interface{}, e error) {
query := ` + "`" + `select ` + "`" + ` + {{.lowerObject}}Rows + ` + "`" + ` from ` + "` + " + `m.table ` + " + `" + ` where {{.snakeField}} = ? limit 1` + "`" + `
if err := conn.QueryRow(&resp, query, {{.lowerField}}); err != nil {
return nil, err
}
return resp.{{.UpperPrimaryKey}}, nil
}, func(conn sqlx.SqlConn, v, primary interface{}) error {
query := ` + "`" + `select ` + "`" + ` + {{.lowerObject}}Rows + ` + "`" + ` from ` + "` + " + `m.table ` + " + `" + ` where {{.primarySnakeField}} = ? limit 1` + "`" + `
return conn.QueryRow(v, query, primary)
})
switch err {
case nil:
return &resp, nil
case sqlc.ErrNotFound:
return nil, ErrNotFound
default:
return nil, err
}{{else}}var resp {{.upperObject}}
query := ` + "`" + `select ` + "`" + ` + {{.lowerObject}}Rows + ` + "`" + ` from ` + "` + " + `m.table ` + " + `" + ` where {{.expression}} limit 1` + "`" + `
err := m.QueryRowNoCache(&resp, query, {{.expressionValues}})
switch err {
case nil:
return &resp, nil
case sqlc.ErrNotFound:
return nil, ErrNotFound
default:
return nil, err
}{{end}}{{else}}var resp {{.upperObject}}
query := ` + "`" + `select ` + "`" + ` + {{.lowerObject}}Rows + ` + "`" + ` from ` + "` + " + `m.table ` + " + `" + ` where {{.expression}} limit 1` + "`" + `
err := m.QueryRowNoCache(&resp, query, {{.expressionValues}})
switch err {
case nil:
return &resp, nil
case sqlc.ErrNotFound:
return nil, ErrNotFound
default:
return nil, err
}{{end}}
}
`
// 查询all
var FindAllByField = `
func (m *{{.upperObject}}Model) FindAllBy{{.upperFields}}({{.in}}) ([]*{{.upperObject}}, error) {
var resp []*{{.upperObject}}
query := ` + "`" + `select ` + "`" + ` + {{.lowerObject}}Rows + ` + "`" + ` from ` + "` + " + `m.table ` + " + `" + ` where {{.expression}}` + "`" + `
err := m.QueryRowsNoCache(&resp, query, {{.expressionValues}})
if err != nil {
return nil, err
}
return resp, nil
}
`
// limit分页查询
var FindLimitByField = `
func (m *{{.upperObject}}Model) FindLimitBy{{.upperFields}}({{.in}}, page, limit int) ([]*{{.upperObject}}, error) {
var resp []*{{.upperObject}}
query := ` + "`" + `select ` + "`" + ` + {{.lowerObject}}Rows + ` + "`" + `from ` + "` + " + `m.table ` + " + `" + ` where {{.expression}} order by {{.sortExpression}} limit ?,?` + "`" + `
err := m.QueryRowsNoCache(&resp, query, {{.expressionValues}}, (page-1)*limit, limit)
if err != nil {
return nil, err
}
return resp, nil
}
func (m *{{.upperObject}}Model) FindAllCountBy{{.upperFields}}({{.in}}) (int64, error) {
var count int64
query := ` + "`" + `select count(1) from ` + "` + " + `m.table ` + " + `" + ` where {{.expression}} ` + "`" + `
err := m.QueryRowNoCache(&count, query, {{.expressionValues}})
if err != nil {
return 0, err
}
return count, nil
}
`

View File

@@ -0,0 +1,15 @@
package sqltemplate
var Imports = `
import (
{{if .containsCache}}"database/sql"
"fmt"{{end}}
"strings"
"time"
"zero/core/stores/cache"
"zero/core/stores/sqlc"
"zero/core/stores/sqlx"
"zero/core/stringx"
)
`

View File

@@ -0,0 +1,9 @@
package sqltemplate
var Insert = `
func (m *{{.upperObject}}Model) Insert(data {{.upperObject}}) error {
query := ` + "`" + `insert into ` + "`" + ` + m.table + ` + "`(` + " + `{{.lowerObject}}RowsExpectAutoSet` + " + `) value ({{.expression}})` " + `
_, err := m.ExecNoCache(query, {{.expressionValues}})
return err
}
`

View File

@@ -0,0 +1,12 @@
package sqltemplate
var Model = `package model
{{.imports}}
{{.vars}}
{{.types}}
{{.new}}
{{.insert}}
{{.find}}
{{.update}}
{{.delete}}
`

View File

@@ -0,0 +1,10 @@
package sqltemplate
var New = `
func New{{.upperObject}}Model(conn sqlx.SqlConn, c cache.CacheConf, table string) *{{.upperObject}}Model {
return &{{.upperObject}}Model{
CachedConn: sqlc.NewConn(conn, c),
table: table,
}
}
`

View File

@@ -0,0 +1,3 @@
package sqltemplate
var Tag = "`db:\"{{.field}}\"`"

View File

@@ -0,0 +1,14 @@
package sqltemplate
var Types = `
type (
{{.upperObject}}Model struct {
sqlc.CachedConn
table string
}
{{.upperObject}} struct {
{{.fields}}
}
)
`

View File

@@ -0,0 +1,13 @@
package sqltemplate
var Update = `
func (m *{{.upperObject}}Model) Update(data {{.upperObject}}) error {
{{if .containsCache}}{{.primaryCacheKey}}
_, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
query := ` + "`" + `update ` + "` +" + `m.table +` + "` " + `set ` + "` +" + `{{.lowerObject}}RowsWithPlaceHolder` + " + `" + ` where {{.primarySnakeCase}} = ?` + "`" + `
return conn.Exec(query, {{.expressionValues}})
}, {{.primaryKeyVariable}}){{else}}query := ` + "`" + `update ` + "` +" + `m.table +` + "` " + `set ` + "` +" + `{{.lowerObject}}RowsWithPlaceHolder` + " + `" + ` where {{.primarySnakeCase}} = ?` + "`" + `
_,err:=m.ExecNoCache(query, {{.expressionValues}}){{end}}
return err
}
`

View File

@@ -0,0 +1,14 @@
package sqltemplate
var Vars = `
var (
{{.lowerObject}}FieldNames = builderx.FieldNames(&{{.upperObject}}{})
{{.lowerObject}}Rows = strings.Join({{.lowerObject}}FieldNames, ",")
{{.lowerObject}}RowsExpectAutoSet = strings.Join(stringx.Remove({{.lowerObject}}FieldNames, "{{.snakePrimaryKey}}", "create_time", "update_time"), ",")
{{.lowerObject}}RowsWithPlaceHolder = strings.Join(stringx.Remove({{.lowerObject}}FieldNames, "{{.snakePrimaryKey}}", "create_time", "update_time"), "=?,") + "=?"
{{.keysDefine}}
{{if .createNotFound}}ErrNotFound = sqlx.ErrNotFound{{end}}
)
`