提交 48f0e4cb 编写于 作者: aaronchen2k2k's avatar aaronchen2k2k

import data

上级 10f8ccbc
......@@ -3,6 +3,8 @@ package comm
const (
TruncateTable = `truncate table %s;`
DeleteTable = `delete from %s where 1=1;`
CreateTableTempl = `CREATE TABLE IF NOT EXISTS %s (
id bigint auto_increment,
content varchar(1000) not null unique,
......
......@@ -42,6 +42,22 @@ func GetDB() *gorm.DB {
err := DB.AutoMigrate(
&model.DataCategory1{},
&model.DataCategory2{},
&model.DataFood{},
&model.DataAnimalPlant{},
&model.DataAnimalPlant{},
&model.DataFruit{},
&model.DataConstellation{},
&model.DataZodiac{},
&model.EightDiagram{},
&model.Dynasty{},
&model.CarBrand{},
&model.CarComponent{},
&model.PcOs{},
&model.PcFileExt{},
&model.PhoneModel{},
)
if err != nil {
fmt.Printf(color.RedString("migrate models failed, error: %s.", err.Error()))
......
package main
import (
"fmt"
"github.com/easysoft/zendata/cmd/test/comm"
fileUtils "github.com/easysoft/zendata/pkg/utils/file"
"strings"
)
func main() {
var insertTemplate = "INSERT INTO %s (name) VALUES %s;"
tableName := "animal_plant"
filePath := "/Users/aaron/work/zentao/product/zd/行业数据/动植物.txt"
tableName = "biz_data_" + tableName
db := comm.GetDB()
err := db.Exec(fmt.Sprintf(comm.TruncateTable, tableName)).Error
if err != nil {
panic(err)
}
content := fileUtils.ReadFile(filePath)
insertSqlArr := make([]string, 0)
arr := strings.Split(content, "\n")
for _, line := range arr {
col1 := strings.Split(strings.TrimSpace(line), " ")[0]
col1 = strings.TrimSpace(col1)
insert := fmt.Sprintf("('%s')", col1)
insertSqlArr = append(insertSqlArr, insert)
}
for i := 0; i < 1000; i++ {
start := i * 10000
end := (i + 1) * 10000
if end > len(insertSqlArr) {
end = len(insertSqlArr)
}
arr := insertSqlArr[start:end]
sql := fmt.Sprintf(insertTemplate, tableName, strings.Join(arr, ","))
err = db.Exec(sql).Error
if err != nil {
fmt.Printf("insert data failed, err %s", err.Error())
return
}
if end >= len(insertSqlArr) {
break
}
}
}
package main
import (
"fmt"
"github.com/easysoft/zendata/cmd/test/comm"
"github.com/easysoft/zendata/cmd/test/model"
fileUtils "github.com/easysoft/zendata/pkg/utils/file"
"strings"
)
type DataAnimal struct {
model.DataComm
}
func (DataAnimal) TableName() string {
return "biz_data_animal"
}
func main() {
tableName := "animal"
filePath := "/Users/aaron/work/zentao/product/zd/行业数据/动物.txt"
var insertTemplate = "INSERT INTO %s (name) VALUES %s;"
var createTableTempl = `CREATE TABLE IF NOT EXISTS %s (
id bigint auto_increment,
name varchar(1000) not null,
primary key(id)
) engine=innodb default charset=utf8 auto_increment=1;`
tableName = "biz_data_" + tableName
db := comm.GetDB()
db.Exec(fmt.Sprintf(comm.TruncateTable, tableName))
createTableSql := fmt.Sprintf(createTableTempl, tableName)
err := db.Exec(createTableSql).Error
if err != nil {
fmt.Printf("create table %s failed, err %s", tableName, err.Error())
return
}
content := fileUtils.ReadFile(filePath)
records := make([]DataAnimal, 0)
for _, line := range strings.Split(content, "\n") {
col1 := strings.Split(strings.TrimSpace(line), " ")[0]
po := DataAnimal{
DataComm: model.DataComm{
Name: col1,
},
}
records = append(records, po)
}
insertSqlArr := make([]string, 0)
for _, record := range records {
insert := fmt.Sprintf("('%s')", record.Name)
insertSqlArr = append(insertSqlArr, insert)
}
for i := 0; i < 1000; i++ {
start := i * 10000
end := (i + 1) * 10000
if end > len(insertSqlArr) {
end = len(insertSqlArr)
}
arr := insertSqlArr[start:end]
sql := fmt.Sprintf(insertTemplate, tableName, strings.Join(arr, ","))
err = db.Exec(sql).Error
if err != nil {
fmt.Printf("insert data failed, err %s", err.Error())
return
}
if end >= len(insertSqlArr) {
break
}
}
}
package main
import (
"fmt"
"github.com/easysoft/zendata/cmd/test/comm"
"github.com/easysoft/zendata/cmd/test/model"
fileUtils "github.com/easysoft/zendata/pkg/utils/file"
"strings"
)
func main() {
filePath := "/Users/aaron/work/zentao/product/zd/行业数据/汽车品牌.txt"
db := comm.GetDB()
err := db.Exec(fmt.Sprintf(comm.TruncateTable, model.CarBrand{}.TableName())).Error
if err != nil {
panic(err)
}
content := fileUtils.ReadFile(filePath)
for _, line := range strings.Split(content, "\n") {
arr := strings.Split(strings.TrimSpace(line), " ")
col1 := arr[0]
po := model.CarBrand{
DataComm: model.DataComm{
Name: col1,
},
}
db.Save(&po)
}
}
package main
import (
"fmt"
"github.com/easysoft/zendata/cmd/test/comm"
"github.com/easysoft/zendata/cmd/test/model"
fileUtils "github.com/easysoft/zendata/pkg/utils/file"
"strings"
)
func main() {
filePath := "/Users/aaron/work/zentao/product/zd/行业数据/汽车零件.txt"
db := comm.GetDB()
err := db.Exec(fmt.Sprintf(comm.TruncateTable, model.CarComponent{}.TableName())).Error
if err != nil {
panic(err)
}
content := fileUtils.ReadFile(filePath)
for _, line := range strings.Split(content, "\n") {
arr := strings.Split(strings.TrimSpace(line), " ")
col1 := arr[0]
po := model.CarComponent{
DataComm: model.DataComm{
Name: col1,
},
}
db.Save(&po)
}
}
package main
import (
"fmt"
"github.com/easysoft/zendata/cmd/test/comm"
"github.com/easysoft/zendata/cmd/test/model"
fileUtils "github.com/easysoft/zendata/pkg/utils/file"
"strings"
)
func main() {
tableName := "constellation"
filePath := "/Users/aaron/work/zentao/product/zd/行业数据/星座.txt"
tableName = "biz_data_" + tableName
db := comm.GetDB()
err := db.Exec(fmt.Sprintf(comm.TruncateTable, tableName)).Error
if err != nil {
panic(err)
}
content := fileUtils.ReadFile(filePath)
for _, line := range strings.Split(content, "\n") {
arr := strings.Split(strings.TrimSpace(line), " ")
col1 := arr[0]
po := model.DataConstellation{
DataComm: model.DataComm{
Name: col1,
},
}
db.Save(&po)
}
}
package main
import (
"fmt"
"github.com/easysoft/zendata/cmd/test/comm"
"github.com/easysoft/zendata/cmd/test/model"
fileUtils "github.com/easysoft/zendata/pkg/utils/file"
"strings"
)
func main() {
filePath := "/Users/aaron/work/zentao/product/zd/行业数据/朝代.txt"
db := comm.GetDB()
err := db.Exec(fmt.Sprintf(comm.TruncateTable, model.Dynasty{}.TableName())).Error
if err != nil {
panic(err)
}
content := fileUtils.ReadFile(filePath)
for _, line := range strings.Split(content, "\n") {
arr := strings.Split(strings.TrimSpace(line), " ")
col1 := arr[0]
po := model.Dynasty{
DataComm: model.DataComm{
Name: col1,
},
}
db.Save(&po)
}
}
package main
import (
"fmt"
"github.com/easysoft/zendata/cmd/test/comm"
"github.com/easysoft/zendata/cmd/test/model"
fileUtils "github.com/easysoft/zendata/pkg/utils/file"
"strings"
)
func main() {
filePath := "/Users/aaron/work/zentao/product/zd/行业数据/八卦.txt"
db := comm.GetDB()
err := db.Exec(fmt.Sprintf(comm.TruncateTable, model.EightDiagram{}.TableName())).Error
if err != nil {
panic(err)
}
content := fileUtils.ReadFile(filePath)
for _, line := range strings.Split(content, "\n") {
arr := strings.Split(strings.TrimSpace(line), " ")
col1 := arr[0]
po := model.EightDiagram{
DataComm: model.DataComm{
Name: col1,
},
}
db.Save(&po)
}
}
package main
import (
"fmt"
"github.com/easysoft/zendata/cmd/test/comm"
"github.com/easysoft/zendata/cmd/test/model"
fileUtils "github.com/easysoft/zendata/pkg/utils/file"
"strings"
)
func main() {
tableName := "food"
filePath := "/Users/aaron/work/zentao/product/zd/行业数据/食物.txt"
tableName = "biz_data_" + tableName
db := comm.GetDB()
err := db.Exec(fmt.Sprintf(comm.TruncateTable, tableName)).Error
if err != nil {
panic(err)
}
content := fileUtils.ReadFile(filePath)
for _, line := range strings.Split(content, "\n") {
arr := strings.Split(strings.TrimSpace(line), " ")
col1 := arr[0]
po := model.DataFood{
DataComm: model.DataComm{
Name: col1,
},
}
db.Save(&po)
}
}
package main
import (
"fmt"
"github.com/easysoft/zendata/cmd/test/comm"
"github.com/easysoft/zendata/cmd/test/model"
fileUtils "github.com/easysoft/zendata/pkg/utils/file"
"strings"
)
func main() {
tableName := "fruit"
filePath := "/Users/aaron/work/zentao/product/zd/行业数据/水果.txt"
tableName = "biz_data_" + tableName
db := comm.GetDB()
err := db.Exec(fmt.Sprintf(comm.TruncateTable, tableName)).Error
if err != nil {
panic(err)
}
content := fileUtils.ReadFile(filePath)
for _, line := range strings.Split(content, "\n") {
col1 := strings.Split(strings.TrimSpace(line), " ")[0]
po := model.DataFruit{
DataComm: model.DataComm{
Name: col1,
},
}
db.Save(&po)
}
}
package main
import (
"fmt"
"github.com/easysoft/zendata/cmd/test/comm"
"github.com/easysoft/zendata/cmd/test/model"
fileUtils "github.com/easysoft/zendata/pkg/utils/file"
"strings"
)
func main() {
filePath := "/Users/aaron/work/zentao/product/zd/行业数据/电脑文件扩展名.txt"
db := comm.GetDB()
err := db.Exec(fmt.Sprintf(comm.TruncateTable, model.PcFileExt{}.TableName())).Error
if err != nil {
panic(err)
}
content := fileUtils.ReadFile(filePath)
for _, line := range strings.Split(content, "\n") {
arr := strings.Split(strings.TrimSpace(line), " ")
name := strings.TrimSpace(arr[0])
desc := strings.TrimSpace(arr[1])
po := model.PcFileExt{
DataComm: model.DataComm{
Name: name,
},
Desc: desc,
}
db.Save(&po)
}
}
package main
import (
"fmt"
"github.com/easysoft/zendata/cmd/test/comm"
"github.com/easysoft/zendata/cmd/test/model"
fileUtils "github.com/easysoft/zendata/pkg/utils/file"
"strings"
)
func main() {
filePath := "/Users/aaron/work/zentao/product/zd/行业数据/电脑系统.txt"
db := comm.GetDB()
err := db.Exec(fmt.Sprintf(comm.TruncateTable, model.PcOs{}.TableName())).Error
if err != nil {
panic(err)
}
content := fileUtils.ReadFile(filePath)
for _, line := range strings.Split(content, "\n") {
arr := strings.Split(strings.TrimSpace(line), "|")
shortName := strings.TrimSpace(arr[0])
name := strings.TrimSpace(arr[1])
version := strings.TrimSpace(arr[2])
website := strings.TrimSpace(arr[3])
po := model.PcOs{
DataComm: model.DataComm{
Name: name,
},
ShortName: shortName,
Version: version,
Website: website,
}
db.Save(&po)
}
}
package main
import (
"fmt"
"github.com/easysoft/zendata/cmd/test/comm"
"github.com/easysoft/zendata/cmd/test/model"
fileUtils "github.com/easysoft/zendata/pkg/utils/file"
"strings"
)
func main() {
filePath := "/Users/aaron/work/zentao/product/zd/行业数据/手机型号.txt"
db := comm.GetDB()
err := db.Exec(fmt.Sprintf(comm.TruncateTable, model.PhoneModel{}.TableName())).Error
if err != nil {
panic(err)
}
content := fileUtils.ReadFile(filePath)
for _, line := range strings.Split(content, "\n") {
arr := strings.Split(strings.TrimSpace(line), ",")
brand := strings.TrimSpace(arr[0])
model1 := strings.TrimSpace(arr[1])
area := strings.TrimSpace(arr[2])
brandName := strings.TrimSpace(arr[3])
modelName := strings.TrimSpace(arr[4])
po := model.PhoneModel{
Brand: brand,
Model: model1,
Area: area,
BrandName: brandName,
ModelName: modelName,
}
db.Save(&po)
}
}
package main
import (
"fmt"
"github.com/easysoft/zendata/cmd/test/comm"
"github.com/easysoft/zendata/cmd/test/model"
fileUtils "github.com/easysoft/zendata/pkg/utils/file"
"strings"
)
func main() {
tableName := "zodiac"
filePath := "/Users/aaron/work/zentao/product/zd/行业数据/属相.txt"
tableName = "biz_data_" + tableName
db := comm.GetDB()
err := db.Exec(fmt.Sprintf(comm.TruncateTable, tableName)).Error
if err != nil {
panic(err)
}
content := fileUtils.ReadFile(filePath)
for _, line := range strings.Split(content, "\n") {
arr := strings.Split(strings.TrimSpace(line), " ")
col1 := arr[0]
po := model.DataZodiac{
DataComm: model.DataComm{
Name: col1,
},
}
db.Save(&po)
}
}
......@@ -2,6 +2,15 @@ package model
import "time"
type TableInfo struct {
Field string
Type string
Null string
Key string
Default string
Extra string
}
type DataCategory1 struct {
BaseModel
......@@ -128,23 +137,6 @@ func (DataDict) TableName() string {
return "biz_data_dict"
}
type DataColor struct {
Id uint `gorm:"primary_key" sql:"type:INT(10) UNSIGNED NOT NULL" json:"id"`
CreatedAt *time.Time `json:"createdAt,omitempty"`
UpdatedAt *time.Time `json:"updatedAt,omitempty"`
Deleted bool `json:"-" gorm:"default:false"`
Disabled bool `json:"disabled,omitempty" gorm:"default:false"`
English string `json:"english"`
Chinese string `json:"chinese"`
Hex string `json:"hex"`
Rgb string `json:"rgb"`
}
func (DataColor) TableName() string {
return "biz_data_color"
}
type DataChronology struct {
Id uint `gorm:"primary_key" sql:"type:INT(10) UNSIGNED NOT NULL" json:"id"`
CreatedAt *time.Time `json:"createdAt,omitempty"`
......@@ -467,11 +459,139 @@ func (DataWord) TableName() string {
return "biz_data_word"
}
type TableInfo struct {
Field string
Type string
Null string
Key string
Default string
Extra string
type DataColor struct {
Id uint `gorm:"primary_key" sql:"type:INT(10) UNSIGNED NOT NULL" json:"id"`
CreatedAt *time.Time `json:"createdAt,omitempty"`
UpdatedAt *time.Time `json:"updatedAt,omitempty"`
Deleted bool `json:"-" gorm:"default:false"`
Disabled bool `json:"disabled,omitempty" gorm:"default:false"`
English string `json:"english"`
Chinese string `json:"chinese"`
Hex string `json:"hex"`
Rgb string `json:"rgb"`
}
func (DataColor) TableName() string {
return "biz_data_color"
}
type DataComm struct {
Id uint `gorm:"primary_key" sql:"type:INT(10) UNSIGNED NOT NULL" json:"id"`
CreatedAt *time.Time `json:"createdAt,omitempty"`
UpdatedAt *time.Time `json:"updatedAt,omitempty"`
Deleted bool `json:"-" gorm:"default:false"`
Disabled bool `json:"disabled,omitempty" gorm:"default:false"`
Name string `json:"name"`
}
type DataFood struct {
DataComm
}
func (DataFood) TableName() string {
return "biz_data_food"
}
type DataAnimalPlant struct {
DataComm
}
func (DataAnimalPlant) TableName() string {
return "biz_data_animal_plant"
}
type DataFruit struct {
DataComm
}
func (DataFruit) TableName() string {
return "biz_data_fruit"
}
type DataConstellation struct {
DataComm
}
func (DataConstellation) TableName() string {
return "biz_data_constellation"
}
type DataZodiac struct {
DataComm
}
func (DataZodiac) TableName() string {
return "biz_data_zodiac"
}
type EightDiagram struct {
DataComm
}
func (EightDiagram) TableName() string {
return "biz_data_eight_diagram"
}
type Dynasty struct {
DataComm
}
func (Dynasty) TableName() string {
return "biz_data_dynasty"
}
type CarBrand struct {
DataComm
}
func (CarBrand) TableName() string {
return "biz_data_car_brand"
}
type CarComponent struct {
DataComm
}
func (CarComponent) TableName() string {
return "biz_data_car_component"
}
type PcOs struct {
DataComm
Desc string `json:"shotName"`
}
func (PcOs) TableName() string {
return "biz_data_pc_os"
}
type PcFileExt struct {
DataComm
Desc string `json:"desc"`
}
func (PcFileExt) TableName() string {
return "biz_data_pc_file_ext"
}
type PhoneModel struct {
Id uint `gorm:"primary_key" sql:"type:INT(10) UNSIGNED NOT NULL" json:"id"`
CreatedAt *time.Time `json:"createdAt,omitempty"`
UpdatedAt *time.Time `json:"updatedAt,omitempty"`
Deleted bool `json:"-" gorm:"default:false"`
Disabled bool `json:"disabled,omitempty" gorm:"default:false"`
Brand string `json:"brand"`
BrandName string `json:"brandName"`
Model string `json:"model"`
ModelName string `json:"modelName"`
Area string `json:"area"`
}
func (PhoneModel) TableName() string {
return "biz_data_phone_model"
}
......@@ -7,40 +7,68 @@ fields:
range: 0-9
postfix: "\t"
- field: f2
range: 1-3{3} # 逐个重复,生成类似 a、a、a、b、b、b、c、c、c
postfix: "\t"
- field: f3
range: 1-3{3!} # 迭代重复,生成类似 a、b、c、a、b、c、a、b、c
postfix: "\t"
- field: union_false
# mode: r
fields:
- field: child1
range: A-D
prefix: part1_
postfix: ' | '
- field: f4
range: a-c{3} # 迭代重复,生成类似 a、b、c、a、b、c、a、b、c
postfix: "\t"
- field: f5
range: a-c{3!} # 迭代重复,生成类似 a、b、c、a、b、c、a、b、c
postfix: "\t"
#
- field: f6
range: 0.01-9
postfix: "\t"
- field: child2
range: x-z
prefix: part2_
- field: f7
range: 0.01-0.03{3}
postfix: "\t"
- field: f8
range: 0.01-0.03{3!}
postfix: "\t"
- field: f9
range: 0-9:R
postfix: "\t"
- field: f11
range: 0.01-9
postfix: "\t"
- field: union_true
# mode: r
union: true
fields:
- field: child1
range: A-D
prefix: part1_
postfix: ' | '
- field: child2
range: x-z
prefix: part2_
# - field: f1
# range: 0-9
# postfix: "\t"
#
# - field: f2
# range: 1-3{3} # 逐个重复,生成类似 a、a、a、b、b、b、c、c、c
# postfix: "\t"
# - field: f3
# range: 1-3{3!} # 迭代重复,生成类似 a、b、c、a、b、c、a、b、c
# postfix: "\t"
#
# - field: f4
# range: a-c{3} # 迭代重复,生成类似 a、b、c、a、b、c、a、b、c
# postfix: "\t"
# - field: f5
# range: a-c{3!} # 迭代重复,生成类似 a、b、c、a、b、c、a、b、c
# postfix: "\t"
#
# - field: f6
# range: 0.01-9
# postfix: "\t"
#
# - field: f7
# range: 0.01-0.03{3}
# postfix: "\t"
#
# - field: f8
# range: 0.01-0.03{3!}
# postfix: "\t"
#
# - field: f9
# range: 0-9:R
# postfix: "\t"
#
# - field: f11
# range: 0.01-9
# postfix: "\t"
#
# - field: field_format # 通过格式化字符串输出。
# range: 1-10 # passwd 1,passwd 2,passwd 3 ... passwd10。
# format: "passwd%02d" # 用%02d补零,使密码整体保持8位。
......
......@@ -65,7 +65,9 @@ type ZdField struct {
UseID uint `gorm:"column:useID" json:"useID"`
ConfigID uint `gorm:"column:configID" json:"configID"`
Ord int `gorm:"column:ord;default:1" json:"ord"`
Ord int `gorm:"column:ord;default:1" json:"ord"`
Union bool `gorm:"union" json:"union"`
Fields []*ZdField `gorm:"-" json:"fields"`
Froms []*ZdField `gorm:"-" json:"froms"`
......
package zd
import (
"embed"
"github.com/easysoft/zendata/pkg/utils/common"
"os"
)
//go:embed res
var resFileSys embed.FS
func ReadResData(path string) (ret []byte, err error) {
if commonUtils.IsRelease() {
ret, err = resFileSys.ReadFile(path)
} else {
ret, err = os.ReadFile(path)
}
return
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册