new
This commit is contained in:
@@ -12,7 +12,7 @@ import (
|
||||
"github.com/xxjwxc/public/mysqldb"
|
||||
)
|
||||
|
||||
//获取表列及注释
|
||||
//OnGetTables 获取表列及注释
|
||||
func OnGetTables(orm *mysqldb.MySqlDB) map[string]string {
|
||||
tbDesc := make(map[string]string)
|
||||
|
||||
@@ -49,7 +49,7 @@ func OnGetTables(orm *mysqldb.MySqlDB) map[string]string {
|
||||
return tbDesc
|
||||
}
|
||||
|
||||
//获取包信息
|
||||
//OnGetPackageInfo 获取包信息
|
||||
func OnGetPackageInfo(orm *mysqldb.MySqlDB, tabls map[string]string) generate.GenPackage {
|
||||
var pkg generate.GenPackage
|
||||
for tab, desc := range tabls {
|
||||
@@ -78,7 +78,7 @@ func OnGetPackageInfo(orm *mysqldb.MySqlDB, tabls map[string]string) generate.Ge
|
||||
return pkg
|
||||
}
|
||||
|
||||
// 获取表列及注释
|
||||
//OnGetTableElement 获取表列及注释
|
||||
func OnGetTableElement(orm *mysqldb.MySqlDB, tab string) []generate.GenElement {
|
||||
var el []generate.GenElement
|
||||
|
||||
@@ -120,9 +120,9 @@ func OnGetTableElement(orm *mysqldb.MySqlDB, tab string) []generate.GenElement {
|
||||
tmp.SetType(OnGetTypeName(v.Type))
|
||||
|
||||
if strings.EqualFold(v.Key, "PRI") { //设置主键
|
||||
tmp.AddTag(_tag_gorm, "primary_key")
|
||||
tmp.AddTag(_tagGorm, "primary_key")
|
||||
} else if strings.EqualFold(v.Key, "UNI") { //unique
|
||||
tmp.AddTag(_tag_gorm, "unique")
|
||||
tmp.AddTag(_tagGorm, "unique")
|
||||
} else {
|
||||
//index
|
||||
for _, v1 := range Keys {
|
||||
@@ -137,26 +137,26 @@ func OnGetTableElement(orm *mysqldb.MySqlDB, tab string) []generate.GenElement {
|
||||
_val += ":" + v1.KeyName
|
||||
}
|
||||
|
||||
tmp.AddTag(_tag_gorm, _val)
|
||||
tmp.AddTag(_tagGorm, _val)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//simple output
|
||||
if !config.GetSimple() {
|
||||
tmp.AddTag(_tag_gorm, "column:"+v.Field)
|
||||
tmp.AddTag(_tag_gorm, "type:"+v.Type)
|
||||
tmp.AddTag(_tagGorm, "column:"+v.Field)
|
||||
tmp.AddTag(_tagGorm, "type:"+v.Type)
|
||||
if strings.EqualFold(v.Null, "NO") {
|
||||
tmp.AddTag(_tag_gorm, "not null")
|
||||
tmp.AddTag(_tagGorm, "not null")
|
||||
}
|
||||
}
|
||||
|
||||
//json tag
|
||||
if config.GetIsJsonTag() {
|
||||
if config.GetIsJSONTag() {
|
||||
if strings.EqualFold(v.Field, "id") {
|
||||
tmp.AddTag(_tag_json, "-")
|
||||
tmp.AddTag(_tagJSON, "-")
|
||||
} else {
|
||||
tmp.AddTag(_tag_json, v.Field)
|
||||
tmp.AddTag(_tagJSON, v.Field)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -166,7 +166,7 @@ func OnGetTableElement(orm *mysqldb.MySqlDB, tab string) []generate.GenElement {
|
||||
return el
|
||||
}
|
||||
|
||||
//过滤 gorm.Model
|
||||
//OnHaveModel 过滤 gorm.Model
|
||||
func OnHaveModel(list *[]struct {
|
||||
Field string `gorm:"column:Field"`
|
||||
Type string `gorm:"column:Type"`
|
||||
@@ -202,7 +202,7 @@ func OnHaveModel(list *[]struct {
|
||||
return false
|
||||
}
|
||||
|
||||
//类型获取过滤
|
||||
//OnGetTypeName 类型获取过滤
|
||||
func OnGetTypeName(name string) string {
|
||||
//先精确匹配
|
||||
if v, ok := TypeDicMp[name]; ok {
|
||||
@@ -219,7 +219,7 @@ func OnGetTypeName(name string) string {
|
||||
panic(fmt.Sprintf("type (%v) not match in any way.", name))
|
||||
}
|
||||
|
||||
//大驼峰或者首字母大写
|
||||
//OnGetCamelName 大驼峰或者首字母大写
|
||||
func OnGetCamelName(name string) string {
|
||||
if config.GetSingularTable() { //如果全局禁用表名复数
|
||||
return TitleCase(name)
|
||||
@@ -228,9 +228,7 @@ func OnGetCamelName(name string) string {
|
||||
return mybigcamel.Marshal(name)
|
||||
}
|
||||
|
||||
/*
|
||||
首字母大写
|
||||
*/
|
||||
//TitleCase 首字母大写
|
||||
func TitleCase(name string) string {
|
||||
vv := []rune(name)
|
||||
if len(vv) > 0 {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package gtools
|
||||
|
||||
const (
|
||||
_tag_gorm = "gorm"
|
||||
_tag_json = "json"
|
||||
_tagGorm = "gorm"
|
||||
_tagJSON = "json"
|
||||
)
|
||||
|
||||
//精确匹配类型
|
||||
//TypeDicMp 精确匹配类型
|
||||
var TypeDicMp = map[string]string{
|
||||
"int": "int",
|
||||
"bigint": "int64",
|
||||
@@ -19,7 +19,7 @@ var TypeDicMp = map[string]string{
|
||||
"timestamp": "time.Time",
|
||||
}
|
||||
|
||||
//模糊匹配类型
|
||||
//TypeMatchMp 模糊匹配类型
|
||||
var TypeMatchMp = map[string]string{
|
||||
`int[(]\d+[)]`: "int",
|
||||
`bigint[(]\d+[)]`: "int64",
|
||||
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
"github.com/xxjwxc/public/tools"
|
||||
)
|
||||
|
||||
// 打印
|
||||
//Add 打印
|
||||
func (p *PrintAtom) Add(str ...interface{}) {
|
||||
var tmp string
|
||||
for _, v := range str {
|
||||
@@ -18,27 +18,27 @@ func (p *PrintAtom) Add(str ...interface{}) {
|
||||
p.lines = append(p.lines, tmp)
|
||||
}
|
||||
|
||||
// 打印
|
||||
//Generate 打印
|
||||
func (p *PrintAtom) Generate() []string {
|
||||
return p.lines
|
||||
}
|
||||
|
||||
//设置元素名字
|
||||
//SetName 设置元素名字
|
||||
func (e *GenElement) SetName(name string) {
|
||||
e.Name = name
|
||||
}
|
||||
|
||||
//设置元素类型
|
||||
//SetType 设置元素类型
|
||||
func (e *GenElement) SetType(tp string) {
|
||||
e.Type = tp
|
||||
}
|
||||
|
||||
//设置注释
|
||||
//SetNotes 设置注释
|
||||
func (e *GenElement) SetNotes(notes string) {
|
||||
e.Notes = notes
|
||||
}
|
||||
|
||||
//添加一个tag标记
|
||||
//AddTag 添加一个tag标记
|
||||
func (e *GenElement) AddTag(k string, v string) {
|
||||
if e.Tags == nil {
|
||||
e.Tags = make(map[string][]string)
|
||||
@@ -46,7 +46,7 @@ func (e *GenElement) AddTag(k string, v string) {
|
||||
e.Tags[k] = append(e.Tags[k], v)
|
||||
}
|
||||
|
||||
//获取结果数据
|
||||
//Generate 获取结果数据
|
||||
func (e *GenElement) Generate() string {
|
||||
tag := ""
|
||||
var tags []string
|
||||
@@ -66,32 +66,32 @@ func (e *GenElement) Generate() string {
|
||||
// struct
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//设置创建语句,备份使用
|
||||
//SetCreatTableStr 设置创建语句,备份使用
|
||||
func (s *GenStruct) SetCreatTableStr(sql string) {
|
||||
s.SqlBuildStr = sql
|
||||
s.SQLBuildStr = sql
|
||||
}
|
||||
|
||||
//获取结果数据
|
||||
//SetStructName 获取结果数据
|
||||
func (s *GenStruct) SetStructName(name string) {
|
||||
s.Name = name
|
||||
}
|
||||
|
||||
//设置注释
|
||||
func (e *GenStruct) SetNotes(notes string) {
|
||||
e.Notes = notes
|
||||
//SetNotes 设置注释
|
||||
func (s *GenStruct) SetNotes(notes string) {
|
||||
s.Notes = notes
|
||||
}
|
||||
|
||||
//添加一个/或多个元素
|
||||
//AddElement 添加一个/或多个元素
|
||||
func (s *GenStruct) AddElement(e ...GenElement) {
|
||||
s.Em = append(s.Em, e...)
|
||||
}
|
||||
|
||||
//获取结果数据
|
||||
//Generate 获取结果数据
|
||||
func (s *GenStruct) Generate() []string {
|
||||
var p PrintAtom
|
||||
if !config.GetSimple() {
|
||||
p.Add("/******sql******")
|
||||
p.Add(s.SqlBuildStr)
|
||||
p.Add(s.SQLBuildStr)
|
||||
p.Add("******sql******/")
|
||||
}
|
||||
p.Add("//", s.Notes)
|
||||
@@ -108,12 +108,12 @@ func (s *GenStruct) Generate() []string {
|
||||
// package
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//定义包名
|
||||
//SetPackage 定义包名
|
||||
func (p *GenPackage) SetPackage(pname string) {
|
||||
p.Name = pname
|
||||
}
|
||||
|
||||
//通过类型添加import
|
||||
//AddImport 通过类型添加import
|
||||
func (p *GenPackage) AddImport(imp string) {
|
||||
if p.Imports == nil {
|
||||
p.Imports = make(map[string]string)
|
||||
@@ -121,12 +121,12 @@ func (p *GenPackage) AddImport(imp string) {
|
||||
p.Imports[imp] = imp
|
||||
}
|
||||
|
||||
//添加一个结构体
|
||||
//AddStruct 添加一个结构体
|
||||
func (p *GenPackage) AddStruct(st GenStruct) {
|
||||
p.Structs = append(p.Structs, st)
|
||||
}
|
||||
|
||||
//获取结果数据
|
||||
//Generate 获取结果数据
|
||||
func (p *GenPackage) Generate() string {
|
||||
p.genimport() //补充 import
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package generate
|
||||
|
||||
//包类
|
||||
//IPackage 包类
|
||||
type IPackage interface {
|
||||
//定义包名
|
||||
SetPackage(string)
|
||||
@@ -12,7 +12,7 @@ type IPackage interface {
|
||||
Generate() string
|
||||
}
|
||||
|
||||
//结构体类
|
||||
//IStruct 结构体类
|
||||
type IStruct interface {
|
||||
//设置创建语句,备份使用
|
||||
SetCreatTableStr(string)
|
||||
@@ -30,7 +30,7 @@ type IStruct interface {
|
||||
Generate() []string
|
||||
}
|
||||
|
||||
//元素类
|
||||
//IElement 元素类
|
||||
type IElement interface {
|
||||
//设置元素名字
|
||||
SetName(string)
|
||||
@@ -51,7 +51,7 @@ type IElement interface {
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//元素类
|
||||
//GenElement 元素类
|
||||
type GenElement struct {
|
||||
Name string //元素名
|
||||
Type string //类型标记
|
||||
@@ -59,15 +59,15 @@ type GenElement struct {
|
||||
Tags map[string][]string //标记
|
||||
}
|
||||
|
||||
//结构体
|
||||
//GenStruct 结构体
|
||||
type GenStruct struct {
|
||||
SqlBuildStr string //创建sql语句
|
||||
SQLBuildStr string //创建sql语句
|
||||
Name string //名字
|
||||
Notes string //注释
|
||||
Em []GenElement //元素组合
|
||||
}
|
||||
|
||||
//包体
|
||||
//GenPackage 包体
|
||||
type GenPackage struct {
|
||||
Name string //名字
|
||||
Imports map[string]string //元素组合
|
||||
@@ -77,12 +77,14 @@ type GenPackage struct {
|
||||
//间隔
|
||||
var _interval = "\t"
|
||||
|
||||
//EImportsHead .
|
||||
var EImportsHead = map[string]string{
|
||||
"stirng": `"string"`,
|
||||
"time.Time": `"time"`,
|
||||
"gorm.Model": `"github.com/jinzhu/gorm"`,
|
||||
}
|
||||
|
||||
//PrintAtom .
|
||||
type PrintAtom struct {
|
||||
lines []string
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
"github.com/xxjwxc/public/tools"
|
||||
)
|
||||
|
||||
//开始执行
|
||||
//Execute 开始执行
|
||||
func Execute() {
|
||||
|
||||
orm := mysqldb.OnInitDBOrm(config.GetMysqlConStr())
|
||||
|
||||
Reference in New Issue
Block a user