table_dto.go
1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package dto
import (
"strings"
"gitlab.fjmaimaimai.com/allied-creation/character-library-metadata-bastion/pkg/domain"
)
type TableDto struct {
// 表Id
TableId int `json:"tableId"`
// 表类型 MainTable:主表 SideTable:副表 SubTable:分表 ExcelTable:Excel表
TableType string `json:"tableType"`
// 名称
Name string `json:"name"`
// 对应数据库名称
SQLName string `json:"sqlName,omitempty"`
// 父级ID
ParentId int `json:"parentId"`
// 模块 应用于模块 1:数控中心 2:拆解模块 4:计算模块
Module int `json:"module"`
// 表字段
Fields []*domain.Field `json:"fields"`
}
func (d *TableDto) Load(m *domain.Table) *TableDto {
d.TableId = m.TableId
d.TableType = m.TableType
d.Name = m.Name
d.ParentId = m.ParentId
if m.TableInfo != nil {
d.Module = m.TableInfo.ApplyOnModule
}
d.Fields = make([]*domain.Field, 0)
return d
}
func (d *TableDto) SetDetailStructInfo(m *domain.Table) *TableDto {
d.Fields = append(d.Fields, m.DataFields...)
d.Fields = append(d.Fields, m.ManualFields...)
d.SQLName = m.SQLName
return d
}
func SuitTableByView(tables []*TableDto, view string, name string) []*TableDto {
var mainTables = make(map[int]*TableDto)
var res = make([]*TableDto, 0)
if view == "main" {
for i := range tables {
t := tables[i]
if t.ParentId == 0 && t.TableType == domain.MainTable.ToString() {
mainTables[t.TableId] = t
res = append(res, t)
}
}
for i := range tables {
t := tables[i]
if t.TableType == domain.SubTable.ToString() {
if _, ok := mainTables[t.ParentId]; ok {
res = append(res, t)
}
}
}
} else {
res = tables
}
var matchName = make([]*TableDto, 0)
if len(name) > 0 {
for i := range res {
t := res[i]
if strings.Contains(t.Name, name) {
matchName = append(matchName, t)
}
}
res = matchName
}
return res
}