Merge branch 'master' of https://github.com/LLLLancelot/gormt into LLLLancelot-master
This commit is contained in:
@@ -10,8 +10,14 @@ var EImportsHead = map[string]string{
|
||||
|
||||
// TypeMysqlDicMp Accurate matching type.精确匹配类型
|
||||
var TypeMysqlDicMp = map[string]string{
|
||||
"tinyint": "int8",
|
||||
"tinyint unsigned": "uint8",
|
||||
"smallint": "int16",
|
||||
"smallint unsigned": "uint16",
|
||||
"int": "int",
|
||||
"int unsigned": "uint",
|
||||
"bigint": "int64",
|
||||
"bigint unsigned": "uint64",
|
||||
"varchar": "string",
|
||||
"char": "string",
|
||||
"date": "time.Time",
|
||||
@@ -34,7 +40,7 @@ var TypeMysqlDicMp = map[string]string{
|
||||
// TypeMysqlMatchMp Fuzzy Matching Types.模糊匹配类型
|
||||
var TypeMysqlMatchMp = map[string]string{
|
||||
`^(tinyint)[(]\d+[)]`: "int8",
|
||||
`^(smallint)[(]\d+[)]`: "int8",
|
||||
`^(smallint)[(]\d+[)]`: "int16",
|
||||
`^(int)[(]\d+[)]`: "int",
|
||||
`^(bigint)[(]\d+[)]`: "int64",
|
||||
`^(char)[(]\d+[)]`: "string",
|
||||
@@ -45,4 +51,5 @@ var TypeMysqlMatchMp = map[string]string{
|
||||
`^(mediumint)[(]\d+[)]`: "string",
|
||||
`^(double)[(]\d+,\d+[)]`: "float64",
|
||||
`^(float)[(]\d+,\d+[)]`: "float64",
|
||||
`^(datetime)[(]\d+[)]`: "time.Time",
|
||||
}
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
package genfunc
|
||||
|
||||
const (
|
||||
genTnf = `
|
||||
// TableName get sql table name.获取数据库表名
|
||||
func (m *{{.StructName}}) TableName() string {
|
||||
return "{{.TableName}}"
|
||||
}
|
||||
`
|
||||
genBase = `
|
||||
package {{.PackageName}}
|
||||
import (
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
package genfunc
|
||||
|
||||
// GetGenTableNameTemp get gen base template str
|
||||
func GetGenTableNameTemp() string {
|
||||
return genTnf
|
||||
}
|
||||
|
||||
// GetGenBaseTemp get gen base template str
|
||||
func GetGenBaseTemp() string {
|
||||
return genBase
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
package genstruct
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
"text/template"
|
||||
|
||||
"github.com/xxjwxc/gormt/data/config"
|
||||
"github.com/xxjwxc/gormt/data/view/cnf"
|
||||
"github.com/xxjwxc/gormt/data/view/generate"
|
||||
"github.com/xxjwxc/gormt/data/view/genfunc"
|
||||
)
|
||||
|
||||
// SetName Setting element name.设置元素名字
|
||||
@@ -96,6 +99,11 @@ func (s *GenStruct) SetCreatTableStr(sql string) {
|
||||
s.SQLBuildStr = sql
|
||||
}
|
||||
|
||||
// SetTableName Setting the name of struct.设置struct名字
|
||||
func (s *GenStruct) SetTableName(name string) {
|
||||
s.TableName = name
|
||||
}
|
||||
|
||||
// SetStructName Setting the name of struct.设置struct名字
|
||||
func (s *GenStruct) SetStructName(name string) {
|
||||
s.Name = name
|
||||
@@ -125,6 +133,21 @@ func (s *GenStruct) AddElement(e ...GenElement) {
|
||||
s.Em = append(s.Em, e...)
|
||||
}
|
||||
|
||||
func (s *GenStruct) GenerateTableName() []string {
|
||||
tmpl, err := template.New("gen_tnf").Parse(genfunc.GetGenTableNameTemp())
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
var data struct {
|
||||
TableName string
|
||||
StructName string
|
||||
}
|
||||
data.TableName, data.StructName = s.TableName, s.Name
|
||||
var buf bytes.Buffer
|
||||
tmpl.Execute(&buf, data)
|
||||
return []string{buf.String()}
|
||||
}
|
||||
|
||||
// Generates Get the result data.获取结果数据
|
||||
func (s *GenStruct) Generates() []string {
|
||||
var p generate.PrintAtom
|
||||
@@ -158,12 +181,8 @@ func (s *GenStruct) GeneratesColor() []string {
|
||||
}
|
||||
p.Add("\033[32;1m " + s.Notes + " \033[0m")
|
||||
p.Add("\033[34;1m type \033[0m", s.Name, "\033[34;1m struct \033[0m {")
|
||||
mp := make(map[string]bool, len(s.Em))
|
||||
for _, v := range s.Em {
|
||||
if !mp[v.Name] {
|
||||
mp[v.Name] = true
|
||||
p.Add(" \t\t" + v.GenerateColor())
|
||||
}
|
||||
p.Add(" \t\t" + v.GenerateColor())
|
||||
}
|
||||
p.Add(" }")
|
||||
|
||||
@@ -215,6 +234,16 @@ func (p *GenPackage) Generate() string {
|
||||
}
|
||||
// -----------end
|
||||
|
||||
// add table name func
|
||||
if config.GetIsTableName() {
|
||||
for _, v := range p.Structs {
|
||||
for _, v1 := range v.GenerateTableName() {
|
||||
pa.Add(v1)
|
||||
}
|
||||
}
|
||||
}
|
||||
// -----------end
|
||||
|
||||
// add func
|
||||
for _, v := range p.FuncStrList {
|
||||
pa.Add(v)
|
||||
|
||||
@@ -11,6 +11,7 @@ type GenElement struct {
|
||||
// GenStruct struct of IStruct .结构体
|
||||
type GenStruct struct {
|
||||
SQLBuildStr string // Create SQL statements.创建sql语句
|
||||
TableName string // table_name.表名
|
||||
Name string // name.名字
|
||||
Notes string // notes.注释
|
||||
Em []GenElement // em.元素组合
|
||||
|
||||
@@ -60,6 +60,18 @@ func (m *mysqlModel) GetPkgName() string {
|
||||
|
||||
func getPackageInfo(orm *mysqldb.MySqlDB, info *model.DBInfo) {
|
||||
tabls := getTables(orm) // get table and notes
|
||||
if m := config.GetTableList(); len(m) > 0 {
|
||||
// 制定了表之后
|
||||
newTabls := make(map[string]string)
|
||||
for t := range m {
|
||||
if notes, ok := tabls[t]; ok {
|
||||
newTabls[t] = notes
|
||||
} else {
|
||||
fmt.Printf("table: %s not found in db\n", t)
|
||||
}
|
||||
}
|
||||
tabls = newTabls
|
||||
}
|
||||
for tabName, notes := range tabls {
|
||||
var tab model.TabInfo
|
||||
tab.Name = tabName
|
||||
|
||||
@@ -29,7 +29,11 @@ func Generate(info DBInfo) (out []GenOutInfo, m _Model) {
|
||||
// struct
|
||||
var stt GenOutInfo
|
||||
stt.FileCtx = m.generate()
|
||||
stt.FileName = info.DbName + ".go"
|
||||
if fn := config.GetOutFileName(); fn != "" {
|
||||
stt.FileName = fn
|
||||
} else {
|
||||
stt.FileName = info.DbName + ".go"
|
||||
}
|
||||
out = append(out, stt)
|
||||
// ------end
|
||||
|
||||
@@ -48,6 +52,7 @@ func (m *_Model) GetPackage() genstruct.GenPackage {
|
||||
pkg.SetPackage(m.info.PackageName) //package name
|
||||
for _, tab := range m.info.TabList {
|
||||
var sct genstruct.GenStruct
|
||||
sct.SetTableName(tab.Name)
|
||||
sct.SetStructName(getCamelName(tab.Name)) // Big hump.大驼峰
|
||||
sct.SetNotes(tab.Notes)
|
||||
sct.AddElement(m.genTableElement(tab.Em)...) // build element.构造元素
|
||||
|
||||
Reference in New Issue
Block a user