UML
SWAGGER
开源代码
git clone https://gitee.com/ichub/gowebfactroy-v2.git
获取表清单、表元数据、表与表字段转换GO、代码属性。
代码位置
前置脚本
func (this *TestTableFactroySuite) SetupTest() { ichublog.InitLogrus() this.inst = FindBeanTableFactroy() this.rootdir = fileutils.FindRootDir() this.inst.IniDb("mysql") }
获取表清单
func (this *TestTableFactroySuite) Test025_FindTables() { logrus.Info(27) this.inst.TableSchema = "gocenter" this.inst.FindTables() var names = this.inst.FindTableNames() logrus.Info("table nams:=", jsonutils.ToJsonPretty(names)) }
表清单
gitee.com/ichub/gowebfactroynew/core/service/table.(*TestTableFactroySuite).Test025_FindTables() table nams:=[
"shop_company",
"shop_goods_type",
"shop_period",
...
"sys_user_post",
"sys_user_role",
"tenant_info",
"train",
"v_col",
"v_table"
]
获取模型转换数据
func (this *TestTableFactroySuite) Test018_BuildModel() { this.inst.TableSchema = "gocenter" this.inst.TableName = "employee" var models = this.inst.BuildModel() logrus.Info("factors=", models) }
模型转换结果
type ModelFactors struct { basedto.BaseEntity Columns *[]meta.MetaColumn Models *list.List Protos *list.List ModelEntities *list.List ModelParams *list.List } func NewModelFactors() *ModelFactors { return &ModelFactors{} }
获取单表元数据
func (this *TestTableFactroySuite) Test026_FindMetadata() { this.inst.TableSchema = "gocenter" this.inst.TableName = "employee" var meta = this.inst.FindMetadata() logrus.Info(meta) }
元数据表结果
(*TestTableFactroySuite).Test026_FindMetadata() tables's meta={
"TableSchema": "gocenter",
"TableName": "employee",
"TableComment": "",
"columns": [
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "id",
"DataType": "int",
"ColumnType": "int(11)",
"ColumnKey": "PRI",
"CharMaxLen": "",
"ColumnComment": "员工编号",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "department_id",
"DataType": "int",
"ColumnType": "int(11)",
"ColumnKey": "MUL",
"CharMaxLen": "",
"ColumnComment": "所属部门",
"ColumnDefault": "0"
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "name",
"DataType": "varchar",
"ColumnType": "varchar(16)",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "员工姓名",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "gender",
"DataType": "char",
"ColumnType": "char(4)",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "性别",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "birthday",
"DataType": "date",
"ColumnType": "date",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "出生日期",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "id_card",
"DataType": "char",
"ColumnType": "char(18)",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "身份证号",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "wedlock",
"DataType": "varchar",
"ColumnType": "varchar(8)",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "婚姻状况",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "nation_id",
"DataType": "int",
"ColumnType": "int(8)",
"ColumnKey": "MUL",
"CharMaxLen": "",
"ColumnComment": "民族",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "native_place",
"DataType": "varchar",
"ColumnType": "varchar(20)",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "籍贯",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "politic_id",
"DataType": "int",
"ColumnType": "int(8)",
"ColumnKey": "MUL",
"CharMaxLen": "",
"ColumnComment": "政治面貌",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "email",
"DataType": "varchar",
"ColumnType": "varchar(20)",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "邮箱",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "phone",
"DataType": "varchar",
"ColumnType": "varchar(11)",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "电话号码",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "address",
"DataType": "varchar",
"ColumnType": "varchar(64)",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "联系地址",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "job_level_id",
"DataType": "int",
"ColumnType": "int(11)",
"ColumnKey": "MUL",
"CharMaxLen": "",
"ColumnComment": "职称ID",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "pos_id",
"DataType": "int",
"ColumnType": "int(11)",
"ColumnKey": "MUL",
"CharMaxLen": "",
"ColumnComment": "职位ID",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "engage_form",
"DataType": "varchar",
"ColumnType": "varchar(8)",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "聘用形式",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "tiptop_degree",
"DataType": "varchar",
"ColumnType": "varchar(8)",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "最高学历",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "specialty",
"DataType": "varchar",
"ColumnType": "varchar(32)",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "所属专业",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "school",
"DataType": "varchar",
"ColumnType": "varchar(32)",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "毕业院校",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "begin_date",
"DataType": "date",
"ColumnType": "date",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "入职日期",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "work_state",
"DataType": "varchar",
"ColumnType": "varchar(8)",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "在职状态",
"ColumnDefault": "在职"
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "code",
"DataType": "varchar",
"ColumnType": "varchar(8)",
"ColumnKey": "MUL",
"CharMaxLen": "",
"ColumnComment": "工号",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "contract_term",
"DataType": "double",
"ColumnType": "double",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "合同期限",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "conversion_time",
"DataType": "date",
"ColumnType": "date",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "转正日期",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "not_wok_date",
"DataType": "date",
"ColumnType": "date",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "离职日期",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "begin_contract",
"DataType": "date",
"ColumnType": "date",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "合同起始日期",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "end_contract",
"DataType": "date",
"ColumnType": "date",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "合同终止日期",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "work_age",
"DataType": "int",
"ColumnType": "int(11)",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "工龄",
"ColumnDefault": ""
},
{
"TableName": "employee",
"TableSchema": "gocenter",
"ColumnName": "work_id",
"DataType": "varchar",
"ColumnType": "varchar(16)",
"ColumnKey": "",
"CharMaxLen": "",
"ColumnComment": "",
"ColumnDefault": ""
}
],
"pk_info": {
"Pkey": "id",
"PkeyField": "",
"PkeyType": "int"
}
}