table_object_dto.go 2.0 KB
package dto

import (
	"gitlab.fjmaimaimai.com/allied-creation/character-library-metadata-bastion/pkg/domain"
)

type TableObjectDto struct {
	// 序号
	Id int `json:"id"`
	// 表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"`
	// 标识
	Flag string `json:"flag,omitempty"`
	// 启用状态
	Status int `json:"status"`
	// 冲突状态
	InConflict bool `json:"inConflict"`
	// 表字段
	Fields []*domain.Field `json:"fields"`
	// 引用于时间
	ApplyAt     int64  `json:"-"`
	ApplyString string `json:"applyAtString"`
}

func (d *TableObjectDto) Load(m *domain.Table) *TableObjectDto {
	d.Id = m.TableId
	d.TableId = m.TableId
	d.TableType = m.TableType
	d.Name = m.Name
	d.ParentId = m.ParentId
	d.SQLName = m.SQLName
	if m.TableInfo != nil {
		d.Module = m.TableInfo.ApplyOnModule
	}
	d.Fields = make([]*domain.Field, 0)
	d.ApplyAt = m.ApplyAt.Unix()
	d.ApplyString = m.ApplyAt.Format("2006-01-02 15:00")
	return d
}

func (d *TableObjectDto) LoadGroup(m *domain.QuerySet) *TableObjectDto {
	d.Id = m.QuerySetId
	d.TableId = 0
	d.TableType = m.Type
	d.Name = m.Name
	d.ParentId = m.ParentId
	//if m.TableInfo != nil {
	//	d.Module = m.TableInfo.ApplyOnModule
	//}
	d.Status = m.Status
	d.Flag = m.Flag
	d.Fields = make([]*domain.Field, 0)
	return d
}

func (d *TableObjectDto) Update(m *domain.QuerySet) *TableObjectDto {
	d.Id = m.QuerySetId
	d.Flag = m.Flag
	d.Status = m.Status
	d.ParentId = m.ParentId
	d.InConflict = false
	if m.QuerySetInfo != nil {
		d.InConflict = m.QuerySetInfo.ReadyStatus == 1
	}
	return d
}

func (d *TableObjectDto) SetDetailStructInfo(m *domain.Table) *TableObjectDto {
	d.Fields = append(d.Fields, m.DataFields...)
	d.Fields = append(d.Fields, m.ManualFields...)

	d.SQLName = m.SQLName
	return d
}