浏览代码

refactor: 更新数据库自动生成代码

HeWang 9 月之前
父节点
当前提交
dd39094adb
共有 4 个文件被更改,包括 119 次插入16 次删除
  1. 6 3
      biz/dal/query/map_update.gen.go
  2. 111 13
      biz/handler/map_service/map_service.go
  3. 1 0
      biz/model/map_update.go
  4. 1 0
      gen/main.go

+ 6 - 3
biz/dal/query/map_update.gen.go

@@ -6,6 +6,7 @@ package query
 
 import (
 	"context"
+	"pji_desktop_http/biz/model"
 
 	"gorm.io/gorm"
 	"gorm.io/gorm/clause"
@@ -15,8 +16,6 @@ import (
 	"gorm.io/gen/field"
 
 	"gorm.io/plugin/dbresolver"
-
-	"pji_desktop_http/biz/model"
 )
 
 func newMapUpdate(db *gorm.DB, opts ...gen.DOOption) mapUpdate {
@@ -38,6 +37,7 @@ func newMapUpdate(db *gorm.DB, opts ...gen.DOOption) mapUpdate {
 	_mapUpdate.CumulativeUpdateRate = field.NewInt32(tableName, "cumulative_update_rate")
 	_mapUpdate.UpdateFlag = field.NewInt32(tableName, "update_flag")
 	_mapUpdate.UpdateSource = field.NewInt32(tableName, "update_source")
+	_mapUpdate.UpdateTime = field.NewTime(tableName, "update_time")
 	_mapUpdate.FromSceneList = field.NewString(tableName, "from_scene_list")
 	_mapUpdate.ValidFlag = field.NewInt32(tableName, "valid_flag")
 	_mapUpdate.CreatedAt = field.NewTime(tableName, "created_at")
@@ -64,6 +64,7 @@ type mapUpdate struct {
 	CumulativeUpdateRate field.Int32
 	UpdateFlag           field.Int32
 	UpdateSource         field.Int32
+	UpdateTime           field.Time
 	FromSceneList        field.String
 	ValidFlag            field.Int32
 	CreatedAt            field.Time
@@ -96,6 +97,7 @@ func (m *mapUpdate) updateTableName(table string) *mapUpdate {
 	m.CumulativeUpdateRate = field.NewInt32(table, "cumulative_update_rate")
 	m.UpdateFlag = field.NewInt32(table, "update_flag")
 	m.UpdateSource = field.NewInt32(table, "update_source")
+	m.UpdateTime = field.NewTime(table, "update_time")
 	m.FromSceneList = field.NewString(table, "from_scene_list")
 	m.ValidFlag = field.NewInt32(table, "valid_flag")
 	m.CreatedAt = field.NewTime(table, "created_at")
@@ -127,7 +129,7 @@ func (m *mapUpdate) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
 }
 
 func (m *mapUpdate) fillFieldMap() {
-	m.fieldMap = make(map[string]field.Expr, 16)
+	m.fieldMap = make(map[string]field.Expr, 17)
 	m.fieldMap["id"] = m.ID
 	m.fieldMap["map_id"] = m.MapID
 	m.fieldMap["device_id"] = m.DeviceID
@@ -139,6 +141,7 @@ func (m *mapUpdate) fillFieldMap() {
 	m.fieldMap["cumulative_update_rate"] = m.CumulativeUpdateRate
 	m.fieldMap["update_flag"] = m.UpdateFlag
 	m.fieldMap["update_source"] = m.UpdateSource
+	m.fieldMap["update_time"] = m.UpdateTime
 	m.fieldMap["from_scene_list"] = m.FromSceneList
 	m.fieldMap["valid_flag"] = m.ValidFlag
 	m.fieldMap["created_at"] = m.CreatedAt

+ 111 - 13
biz/handler/map_service/map_service.go

@@ -40,7 +40,7 @@ func CheckMapBufConsistency(ctx context.Context, c *app.RequestContext) {
 			// 根据id获取对应的oss文件列表
 			fileList, err := getExactedMapFileById(id)
 			// 过滤特定后缀的文件列表
-			fileList = filterBySuffixes(fileList, config.Filtersuffixes...)
+			fileList = filterBySuffixes(fileList, config.MapBufFiltersuffixes...)
 			//fmt.Println("Filtered Strings:", fileList)
 
 			if err != nil {
@@ -277,12 +277,84 @@ func getRosFileById(id string) (file string, err error) {
 	return rosField, nil
 }
 
+//// 根据id生成用于地图更新的压缩包
+//func generateZipById(id string) (file string, tmpDir string, err error) {
+//	// 根据id获取对应的oss文件列表
+//	fileList, err := getExactedMapFileById(id)
+//	// 过滤特定后缀的文件列表
+//	fileList = filterBySuffixes(fileList, config.MapBufFiltersuffixes...)
+//	//fmt.Println("Filtered Strings:", fileList)
+//	if err != nil {
+//		return
+//	}
+//
+//	// 创建临时文件夹
+//	tmpDir, err = os.MkdirTemp("", "temp-download-*")
+//	fmt.Println("tmpDir:", tmpDir)
+//	if err != nil {
+//		fmt.Println("Error creating temporary directory:", err)
+//		return "", "", err
+//	}
+//
+//	// 创建根文件夹(文件打包的根目录)
+//	baseDir := filepath.Join(tmpDir, "data")
+//	if err := os.Mkdir(baseDir, 0755); err != nil {
+//		fmt.Println("Error creating subdirectory:", err)
+//		return "", "", err
+//	}
+//	// 创建子文件夹 mapBuf
+//	subDir := filepath.Join(baseDir, "mapBuf")
+//	if err := os.Mkdir(subDir, 0755); err != nil {
+//		fmt.Println("Error creating subdirectory:", err)
+//		return "", "", err
+//	}
+//
+//	// 从oss下载文件到 mapBuf文件夹
+//	for _, file := range fileList {
+//		err = config.OssBucket.GetObjectToFile(file, filepath.Join(subDir, filepath.Base(file)))
+//		if err != nil {
+//			fmt.Println("Error downloading mapBuf file:", err)
+//			return "", "", err
+//		}
+//	}
+//
+//	// 从oss下载bag文件到 data文件夹
+//	RosFileId, _ := getRosFileById(id)
+//	err = config.OssBucket.GetObjectToFile(RosFileId, filepath.Join(baseDir, filepath.Base(RosFileId)))
+//	if err != nil {
+//		fmt.Println("Error downloading Bag file:", err)
+//		return "", "", err
+//	}
+//
+//	// 创建压缩文件
+//	zipPath := filepath.Join(tmpDir, "mapFile-"+id+".zip")
+//	zipFile, err := os.Create(zipPath)
+//	if err != nil {
+//		fmt.Println("Error creating ZIP file:", err)
+//		return "", "", err
+//	}
+//	defer zipFile.Close()
+//
+//	zipWriter := zip.NewWriter(zipFile)
+//	defer zipWriter.Close()
+//
+//	// 压缩文件夹
+//	if err := addDirToZip(baseDir, zipWriter); err != nil {
+//		fmt.Println("Error adding directory to ZIP:", err)
+//		return "", "", err
+//	}
+//	fmt.Println("ZIP file created successfully.")
+//
+//	return zipPath, tmpDir, nil
+//}
+
 // 根据id生成用于地图更新的压缩包
 func generateZipById(id string) (file string, tmpDir string, err error) {
 	// 根据id获取对应的oss文件列表
 	fileList, err := getExactedMapFileById(id)
+
 	// 过滤特定后缀的文件列表
-	fileList = filterBySuffixes(fileList, config.Filtersuffixes...)
+	fileList = filterBySuffixes(fileList, config.MapBufFiltersuffixes...)
 	//fmt.Println("Filtered Strings:", fileList)
 	if err != nil {
 		return
@@ -302,28 +374,54 @@ func generateZipById(id string) (file string, tmpDir string, err error) {
 		fmt.Println("Error creating subdirectory:", err)
 		return "", "", err
 	}
-	// 创建子文件夹 mapBuf
-	subDir := filepath.Join(baseDir, "mapBuf")
-	if err := os.Mkdir(subDir, 0755); err != nil {
+
+	// 根目录创建子文件夹 bag_folder
+	bagFolderDir := filepath.Join(baseDir, "bag_folder")
+	if err := os.Mkdir(bagFolderDir, 0755); err != nil {
+		fmt.Println("Error creating subdirectory:", err)
+		return "", "", err
+	}
+
+	// 根目录创建子文件夹 origin_map_folder
+	originMapFolderDir := filepath.Join(baseDir, "origin_map_folder")
+	if err := os.Mkdir(originMapFolderDir, 0755); err != nil {
 		fmt.Println("Error creating subdirectory:", err)
 		return "", "", err
 	}
 
-	// 从oss下载文件到 mapBuf文件夹
+	// 子文件夹 bag_folder 创建子文件夹 mapBuf
+	mapBufDir := filepath.Join(bagFolderDir, "mapBuf")
+	if err := os.Mkdir(mapBufDir, 0755); err != nil {
+		fmt.Println("Error creating subdirectory:", err)
+		return "", "", err
+	}
+
+	// 从oss下载bag文件到 bag_folder 文件夹
+	RosFileId, _ := getRosFileById(id)
+	err = config.OssBucket.GetObjectToFile(RosFileId, filepath.Join(bagFolderDir, filepath.Base(RosFileId)))
+	if err != nil {
+		fmt.Println("Error downloading Bag file:", err)
+		return "", "", err
+	}
+
+	// 从oss下载文件到 mapBuf 文件夹
 	for _, file := range fileList {
-		err = config.OssBucket.GetObjectToFile(file, filepath.Join(subDir, filepath.Base(file)))
+		err = config.OssBucket.GetObjectToFile(file, filepath.Join(mapBufDir, filepath.Base(file)))
 		if err != nil {
 			fmt.Println("Error downloading mapBuf file:", err)
 			return "", "", err
 		}
 	}
 
-	// 从oss下载bag文件到 data文件夹
-	RosFileId, _ := getRosFileById(id)
-	err = config.OssBucket.GetObjectToFile(RosFileId, filepath.Join(baseDir, filepath.Base(RosFileId)))
-	if err != nil {
-		fmt.Println("Error downloading Bag file:", err)
-		return "", "", err
+	// 从oss下载bag文件到 origin_map_folder 文件夹
+	// 过滤特定后缀的文件列表
+	fileList = filterBySuffixes(fileList, config.OriginMapFiltersuffixes...)
+	for _, file := range fileList {
+		err = config.OssBucket.GetObjectToFile(file, filepath.Join(originMapFolderDir, filepath.Base(file)))
+		if err != nil {
+			fmt.Println("Error downloading origin_map file:", err)
+			return "", "", err
+		}
 	}
 
 	// 创建压缩文件

+ 1 - 0
biz/model/map_update.go

@@ -25,6 +25,7 @@ type MapUpdate struct {
 	CumulativeUpdateRate int32          `gorm:"column:cumulative_update_rate;type:int(11);not null" json:"cumulative_update_rate"`
 	UpdateFlag           int32          `gorm:"column:update_flag;type:int(11);not null" json:"update_flag"`
 	UpdateSource         *int32         `gorm:"column:update_source;type:int(11)" json:"update_source"`
+	UpdateTime           time.Time      `gorm:"column:update_time;type:datetime;not null" json:"update_time"`
 	FromSceneList        *string        `gorm:"column:from_scene_list;type:varchar(255)" json:"from_scene_list"`
 	ValidFlag            int32          `gorm:"column:valid_flag;type:int(11);not null" json:"valid_flag"`
 	CreatedAt            time.Time      `gorm:"column:created_at;type:datetime;not null" json:"created_at"`

+ 1 - 0
gen/main.go

@@ -54,6 +54,7 @@ func main() {
 
 	// 创建模型的方法,生成文件在 query 目录; 先创建结果不会被后创建的覆盖
 	g.ApplyBasic(MapUpdate, World, SimulationTestRecord)
+	//g.ApplyBasic(MapUpdate)
 
 	g.Execute()
 }