diff --git a/model/dataset.go b/model/dataset.go index 053eff1..9152829 100644 --- a/model/dataset.go +++ b/model/dataset.go @@ -45,3 +45,23 @@ func GetDatasetScene(categoryId int) string { return "other" } } + +func GetDatasetByName(name string, dataType int) (data *Dataset, err error) { + data = new(Dataset) + b, err := global.DB.Where("dataset_name = ?", name). + And("category_id=?", dataType).Get(data) + if err != nil { + return nil, err + } + if !b { + item := new(Dataset) + item.DatasetName = name + item.CategoryId = dataType + _, err = global.DB.Insert(item) + if err != nil { + return nil, err + } + return item, err + } + return data, nil +} diff --git a/model/file.go b/model/file.go index c6034bc..f99888f 100644 --- a/model/file.go +++ b/model/file.go @@ -5,7 +5,7 @@ type FileManager struct { FileName string `xorm:"VARCHAR(200)" json:"fileName"` //文件名 AccessUrl string `xorm:"VARCHAR(400)" json:"url"` //访问路径 Scene string `xorm:"VARCHAR(40)" json:"scene"` //应用场景,0 : 其他, 1: 道路; 2: 桥梁; 3:隧道; 4: 边坡 - DataType int `xorm:"TINYINT index default 0" json:"dataType"` //数据类型,1:数据集;2:病害库;3:应用;0:其他 + DataType int `xorm:"TINYINT index default 0" json:"dataType"` //数据类型,0 : 其他, 1: 道路; 2: 桥梁; 3:隧道; 4: 边坡 DatasetId int64 `xorm:"INT(11) index default 0" json:"datasetId"` //数据集 FileSize int64 `xorm:"BIGINT" json:"fileSize"` //文件大小 FileMd5 string `xorm:"VARCHAR(64)" json:"fileMd5"` //文件MD5 diff --git a/mq/index.go b/mq/index.go index fef7070..0f587a3 100644 --- a/mq/index.go +++ b/mq/index.go @@ -109,7 +109,14 @@ func handler(data []byte) (frame.Tag, []byte) { case DatasetRequest: payload := req.Payload.(map[string]interface{}) if int64(payload["fileSize"].(float64)) > 0 { - dt, err := model.GetDatasetById(int64(payload["datasetId"].(float64))) + var dt *model.Dataset + if dtId, ok := payload["datasetId"].(float64); ok { + dt, err = model.GetDatasetById(int64(dtId)) + } else { + if dtName, ok := payload["datasetName"].(string); ok { + dt, err = model.GetDatasetByName(dtName, int(payload["dataType"].(float64))) + } + } global.Must(err) var fileContent []byte if payload["isCompress"].(bool) {