file_dto.go 1.3 KB
package dto

import (
	"github.com/linmadan/egglib-go/utils/xtime"
	"gitlab.fjmaimaimai.com/allied-creation/character-library-metadata-bastion/pkg/domain"
)

type FileDto struct {
	// 文件ID
	FileId int `json:"fileId"`
	// 名称
	Name string `json:"name"`
	// 文件地址
	Url string `json:"url"`
	// 文件类型
	FileType string `json:"fileType"`
	// 后缀扩展
	Ext string `json:"ext"`
	// 创建时间
	Time string `json:"time"`
	// 行号
	HeaderRow int `json:"headerRow"`
	// 所属应用
	AppKey string `json:"appKey"`
	// 表ID
	TableId int `json:"tableId"`
	// 允许表生成标识 1:允许生成分表 0:不允许
	AllowTableGenerateFlag int `json:"allowTableGenerateFlag"`
}

func (d *FileDto) Load(f *domain.File) *FileDto {
	if f == nil {
		return nil
	}
	d.FileId = f.FileId
	d.Name = f.FileInfo.Name
	d.Url = f.FileInfo.Url
	d.FileType = f.FileType
	d.Ext = f.FileInfo.Ext
	d.Time = xtime.New(f.UpdatedAt).Local().Format("2006-01-02 15:04:05")
	d.HeaderRow = domain.GetHeaderRow(f.FileInfo.HeaderRow)
	d.AppKey = f.AppKey
	if len(f.AppKey) > 0 && f.FileInfo.TableId > 0 {
		d.TableId = f.FileInfo.TableId
		d.AllowTableGenerateFlag = 1
	}
	return d
}

type AppDto struct {
	AppId   int64      `json:"appId"`
	AppKey  string     `json:"appKey"`
	AppName string     `json:"appName"`
	Files   []*FileDto `json:"files"`
}