develop basic APIs / optimize database organization

This commit is contained in:
2025-02-13 18:13:08 +08:00
parent 3e51ab8e3f
commit ab4e9c4d59
23 changed files with 1159 additions and 246 deletions

View File

@@ -16,7 +16,7 @@ const TableNameScaStorageConfig = "sca_storage_config"
type ScaStorageConfig struct {
ID int64 `gorm:"column:id;type:bigint(20);primaryKey;autoIncrement:true;comment:主键;primary_key" json:"id,string"` // 主键
UserID string `gorm:"column:user_id;type:varchar(50);not null;comment:用户ID" json:"user_id"` // 用户ID
Type string `gorm:"column:type;type:varchar(50);comment:类型" json:"type"` // 类型
Provider string `gorm:"column:provider;type:varchar(50);comment:供应商" json:"provider"` // 供应商
Endpoint string `gorm:"column:endpoint;type:varchar(50);comment:地址" json:"endpoint"` // 地址
AccessKey string `gorm:"column:access_key;type:varchar(100);comment:密钥key" json:"access_key"` // 密钥key
SecretKey string `gorm:"column:secret_key;type:varchar(100);comment:密钥" json:"secret_key"` // 密钥

View File

@@ -14,32 +14,29 @@ const TableNameScaStorageInfo = "sca_storage_info"
// ScaStorageInfo mapped from table <sca_storage_info>
type ScaStorageInfo struct {
ID int64 `gorm:"column:id;type:bigint(20);primaryKey;autoIncrement:true;comment:主键;primary_key" json:"id,string"` // 主键
UserID string `gorm:"column:user_id;type:varchar(50);not null;comment:用户ID" json:"user_id"` // 用户ID
Provider string `gorm:"column:provider;type:varchar(50);comment:供应商" json:"provider"` // 供应商
Bucket string `gorm:"column:bucket;type:varchar(50);comment:存储桶" json:"bucket"` // 存储桶
Path string `gorm:"column:path;type:text;comment:路径" json:"path"` // 路径
FileName string `gorm:"column:file_name;type:varchar(100);comment:文件名称" json:"file_name"` // 文件名称
FileSize string `gorm:"column:file_size;type:varchar(50);comment:文件大小" json:"file_size"` // 文件大小
FileType string `gorm:"column:file_type;type:varchar(50);comment:文件类型" json:"file_type"` // 文件类型
Width float64 `gorm:"column:width;type:double;comment:宽" json:"width"` // 宽
Height float64 `gorm:"column:height;type:double;comment:高" json:"height"` // 高
Category string `gorm:"column:category;type:varchar(50);comment:分类" json:"category"` // 分类
Tags string `gorm:"column:tags;type:varchar(255);comment:标签" json:"tags"` // 标签
Type string `gorm:"column:type;type:varchar(50);comment:类型" json:"type"` // 类型
LocationID int64 `gorm:"column:location_id;type:bigint(20);comment:地址ID" json:"location_id"` // 地址ID
Hash string `gorm:"column:hash;type:varchar(255);comment:哈希值" json:"hash"` // 哈希值
Anime string `gorm:"column:anime;type:varchar(50);comment:是否是动漫图片" json:"anime"` // 是否是动漫图片
FaceID int64 `gorm:"column:face_id;type:bigint(20);comment:人像ID" json:"face_id"` // 人像ID
Landscape string `gorm:"column:landscape;type:varchar(50);comment:风景类型" json:"landscape"` // 风景类型
OriginalTime string `gorm:"column:original_time;type:varchar(50);comment:拍摄时间" json:"original_time"` // 拍摄时间
Screenshot string `gorm:"column:screenshot;type:varchar(50);comment:是否是截图" json:"screenshot"` // 是否是截图
Exif string `gorm:"column:exif;type:json;comment:exif 信息" json:"exif"` // exif 信息
ImgShow int64 `gorm:"column:img_show;type:tinyint(4);comment:是否隐藏0 不隐藏 1 隐藏)" json:"img_show"` // 是否隐藏0 不隐藏 1 隐藏)
AlbumID int64 `gorm:"column:album_id;type:bigint(20);comment:相册ID" json:"album_id"` // 相册ID
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;autoCreateTime;comment:创建时间" json:"created_at"` // 创建时间
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;autoUpdateTime;comment:更新时间" json:"updated_at"` // 更新时间
DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:timestamp;comment:删除时间" json:"deleted_at"` // 删除时间
ID int64 `gorm:"column:id;type:bigint(20);primaryKey;autoIncrement:true;comment:主键;primary_key" json:"id,string"` // 主键
UserID string `gorm:"column:user_id;type:varchar(50);not null;comment:用户ID" json:"user_id"` // 用户ID
Provider string `gorm:"column:provider;type:varchar(50);comment:供应商" json:"provider"` // 供应商
Bucket string `gorm:"column:bucket;type:varchar(50);comment:存储桶" json:"bucket"` // 存储桶
Path string `gorm:"column:path;type:text;comment:路径" json:"path"` // 路径
FileName string `gorm:"column:file_name;type:varchar(100);comment:文件名称" json:"file_name"` // 文件名称
FileSize string `gorm:"column:file_size;type:varchar(50);comment:文件大小" json:"file_size"` // 文件大小
FileType string `gorm:"column:file_type;type:varchar(50);comment:文件类型" json:"file_type"` // 文件类型
Width float64 `gorm:"column:width;type:double;comment:宽" json:"width"` // 宽
Height float64 `gorm:"column:height;type:double;comment:高" json:"height"` // 高
Category string `gorm:"column:category;type:varchar(50);comment:分类" json:"category"` // 分类
Tag string `gorm:"column:tag;type:varchar(255);comment:标签" json:"tag"` // 标签
Type string `gorm:"column:type;type:varchar(50);comment:类型" json:"type"` // 类型
LocationID int64 `gorm:"column:location_id;type:bigint(20);comment:地址ID" json:"location_id"` // 地址ID
Hash string `gorm:"column:hash;type:varchar(255);comment:哈希值" json:"hash"` // 哈希值
IsAnime string `gorm:"column:is_anime;type:varchar(50);comment:是否是动漫图片" json:"is_anime"` // 是否是动漫图片
FaceID int64 `gorm:"column:face_id;type:bigint(20);comment:人像ID" json:"face_id"` // 人像ID
Landscape string `gorm:"column:landscape;type:varchar(50);comment:风景类型" json:"landscape"` // 风景类型
IsDisplayed int64 `gorm:"column:is_displayed;type:tinyint(4);comment:是否隐藏0 不隐藏 1 隐藏)" json:"is_displayed"` // 是否隐藏0 不隐藏 1 隐藏)
AlbumID int64 `gorm:"column:album_id;type:bigint(20);comment:相册ID" json:"album_id"` // 相册ID
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;autoCreateTime;comment:创建时间" json:"created_at"` // 创建时间
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;autoUpdateTime;comment:更新时间" json:"updated_at"` // 更新时间
DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:timestamp;comment:删除时间" json:"deleted_at"` // 删除时间
}
// TableName ScaStorageInfo's table name

View File

@@ -15,18 +15,21 @@ const TableNameScaStorageLocation = "sca_storage_location"
// ScaStorageLocation mapped from table <sca_storage_location>
type ScaStorageLocation struct {
ID int64 `gorm:"column:id;type:bigint(20);primaryKey;autoIncrement:true;comment:主键;primary_key" json:"id,string"` // 主键
UserID string `gorm:"column:user_id;type:varchar(50);comment:用户id" json:"user_id"` // 用户id
Country string `gorm:"column:country;type:varchar(100);comment:国家" json:"country"` // 国家
Province string `gorm:"column:province;type:varchar(100);comment:" json:"province"` //
City string `gorm:"column:city;type:varchar(100);comment:城市" json:"city"` // 城市
Latitude string `gorm:"column:latitude;type:varchar(50);comment:纬度" json:"latitude"` // 纬度
Longitude string `gorm:"column:longitude;type:varchar(50);comment:经度" json:"longitude"` // 经度
Total int64 `gorm:"column:total;type:bigint(20);comment:数量" json:"total"` // 数量
Version optimisticlock.Version `gorm:"column:version;type:bigint(20);comment:版本" json:"version"` // 版本
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;autoCreateTime;comment:创建时间" json:"created_at"` // 创建时间
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;autoUpdateTime;comment:更新时间" json:"updated_at"` // 更新时间
DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:timestamp;comment:删除时间" json:"deleted_at"` // 删除时间
ID int64 `gorm:"column:id;type:bigint(20);primaryKey;autoIncrement:true;comment:主键;primary_key" json:"id,string"` // 主键
UserID string `gorm:"column:user_id;type:varchar(50);comment:用户id" json:"user_id"` // 用户id
Provider string `gorm:"column:provider;type:varchar(50);comment:供应商" json:"provider"` // 供应商
Bucket string `gorm:"column:bucket;type:varchar(50);comment:存储桶" json:"bucket"` // 存储桶
Country string `gorm:"column:country;type:varchar(100);comment:国家" json:"country"` // 国家
Province string `gorm:"column:province;type:varchar(100);comment:" json:"province"` //
City string `gorm:"column:city;type:varchar(100);comment:城市" json:"city"` // 城市
Latitude string `gorm:"column:latitude;type:varchar(50);comment:纬度" json:"latitude"` // 纬度
Longitude string `gorm:"column:longitude;type:varchar(50);comment:经度" json:"longitude"` // 经度
Total int64 `gorm:"column:total;type:bigint(20);comment:数量" json:"total"` // 数量
CoverImage string `gorm:"column:cover_image;type:text;comment:封面图片" json:"cover_image"` // 封面图片
Version optimisticlock.Version `gorm:"column:version;type:bigint(20);comment:版本" json:"version"` // 版本
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;autoCreateTime;comment:创建时间" json:"created_at"` // 创建时间
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;autoUpdateTime;comment:更新时间" json:"updated_at"` // 更新时间
DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:timestamp;comment:删除时间" json:"deleted_at"` // 删除时间
}
// TableName ScaStorageLocation's table name

View File

@@ -29,7 +29,7 @@ func newScaStorageConfig(db *gorm.DB, opts ...gen.DOOption) scaStorageConfig {
_scaStorageConfig.ALL = field.NewAsterisk(tableName)
_scaStorageConfig.ID = field.NewInt64(tableName, "id")
_scaStorageConfig.UserID = field.NewString(tableName, "user_id")
_scaStorageConfig.Type = field.NewString(tableName, "type")
_scaStorageConfig.Provider = field.NewString(tableName, "provider")
_scaStorageConfig.Endpoint = field.NewString(tableName, "endpoint")
_scaStorageConfig.AccessKey = field.NewString(tableName, "access_key")
_scaStorageConfig.SecretKey = field.NewString(tableName, "secret_key")
@@ -50,7 +50,7 @@ type scaStorageConfig struct {
ALL field.Asterisk
ID field.Int64 // 主键
UserID field.String // 用户ID
Type field.String // 类型
Provider field.String // 供应商
Endpoint field.String // 地址
AccessKey field.String // 密钥key
SecretKey field.String // 密钥
@@ -77,7 +77,7 @@ func (s *scaStorageConfig) updateTableName(table string) *scaStorageConfig {
s.ALL = field.NewAsterisk(table)
s.ID = field.NewInt64(table, "id")
s.UserID = field.NewString(table, "user_id")
s.Type = field.NewString(table, "type")
s.Provider = field.NewString(table, "provider")
s.Endpoint = field.NewString(table, "endpoint")
s.AccessKey = field.NewString(table, "access_key")
s.SecretKey = field.NewString(table, "secret_key")
@@ -105,7 +105,7 @@ func (s *scaStorageConfig) fillFieldMap() {
s.fieldMap = make(map[string]field.Expr, 11)
s.fieldMap["id"] = s.ID
s.fieldMap["user_id"] = s.UserID
s.fieldMap["type"] = s.Type
s.fieldMap["provider"] = s.Provider
s.fieldMap["endpoint"] = s.Endpoint
s.fieldMap["access_key"] = s.AccessKey
s.fieldMap["secret_key"] = s.SecretKey

View File

@@ -38,17 +38,14 @@ func newScaStorageInfo(db *gorm.DB, opts ...gen.DOOption) scaStorageInfo {
_scaStorageInfo.Width = field.NewFloat64(tableName, "width")
_scaStorageInfo.Height = field.NewFloat64(tableName, "height")
_scaStorageInfo.Category = field.NewString(tableName, "category")
_scaStorageInfo.Tags = field.NewString(tableName, "tags")
_scaStorageInfo.Tag = field.NewString(tableName, "tag")
_scaStorageInfo.Type = field.NewString(tableName, "type")
_scaStorageInfo.LocationID = field.NewInt64(tableName, "location_id")
_scaStorageInfo.Hash = field.NewString(tableName, "hash")
_scaStorageInfo.Anime = field.NewString(tableName, "anime")
_scaStorageInfo.IsAnime = field.NewString(tableName, "is_anime")
_scaStorageInfo.FaceID = field.NewInt64(tableName, "face_id")
_scaStorageInfo.Landscape = field.NewString(tableName, "landscape")
_scaStorageInfo.OriginalTime = field.NewString(tableName, "original_time")
_scaStorageInfo.Screenshot = field.NewString(tableName, "screenshot")
_scaStorageInfo.Exif = field.NewString(tableName, "exif")
_scaStorageInfo.ImgShow = field.NewInt64(tableName, "img_show")
_scaStorageInfo.IsDisplayed = field.NewInt64(tableName, "is_displayed")
_scaStorageInfo.AlbumID = field.NewInt64(tableName, "album_id")
_scaStorageInfo.CreatedAt = field.NewTime(tableName, "created_at")
_scaStorageInfo.UpdatedAt = field.NewTime(tableName, "updated_at")
@@ -62,33 +59,30 @@ func newScaStorageInfo(db *gorm.DB, opts ...gen.DOOption) scaStorageInfo {
type scaStorageInfo struct {
scaStorageInfoDo
ALL field.Asterisk
ID field.Int64 // 主键
UserID field.String // 用户ID
Provider field.String // 供应商
Bucket field.String // 存储桶
Path field.String // 路径
FileName field.String // 文件名称
FileSize field.String // 文件大小
FileType field.String // 文件类型
Width field.Float64 // 宽
Height field.Float64 // 高
Category field.String // 分类
Tags field.String // 标签
Type field.String // 类型
LocationID field.Int64 // 地址ID
Hash field.String // 哈希值
Anime field.String // 是否是动漫图片
FaceID field.Int64 // 人像ID
Landscape field.String // 风景类型
OriginalTime field.String // 拍摄时间
Screenshot field.String // 是否是截图
Exif field.String // exif 信息
ImgShow field.Int64 // 是否隐藏0 不隐藏 1 隐藏)
AlbumID field.Int64 // 相册ID
CreatedAt field.Time // 创建时间
UpdatedAt field.Time // 更新时间
DeletedAt field.Field // 删除时间
ALL field.Asterisk
ID field.Int64 // 主键
UserID field.String // 用户ID
Provider field.String // 供应商
Bucket field.String // 存储桶
Path field.String // 路径
FileName field.String // 文件名称
FileSize field.String // 文件大小
FileType field.String // 文件类型
Width field.Float64 // 宽
Height field.Float64 // 高
Category field.String // 分类
Tag field.String // 标签
Type field.String // 类型
LocationID field.Int64 // 地址ID
Hash field.String // 哈希值
IsAnime field.String // 是否是动漫图片
FaceID field.Int64 // 人像ID
Landscape field.String // 风景类型
IsDisplayed field.Int64 // 是否隐藏0 不隐藏 1 隐藏)
AlbumID field.Int64 // 相册ID
CreatedAt field.Time // 创建时间
UpdatedAt field.Time // 更新时间
DeletedAt field.Field // 删除时间
fieldMap map[string]field.Expr
}
@@ -116,17 +110,14 @@ func (s *scaStorageInfo) updateTableName(table string) *scaStorageInfo {
s.Width = field.NewFloat64(table, "width")
s.Height = field.NewFloat64(table, "height")
s.Category = field.NewString(table, "category")
s.Tags = field.NewString(table, "tags")
s.Tag = field.NewString(table, "tag")
s.Type = field.NewString(table, "type")
s.LocationID = field.NewInt64(table, "location_id")
s.Hash = field.NewString(table, "hash")
s.Anime = field.NewString(table, "anime")
s.IsAnime = field.NewString(table, "is_anime")
s.FaceID = field.NewInt64(table, "face_id")
s.Landscape = field.NewString(table, "landscape")
s.OriginalTime = field.NewString(table, "original_time")
s.Screenshot = field.NewString(table, "screenshot")
s.Exif = field.NewString(table, "exif")
s.ImgShow = field.NewInt64(table, "img_show")
s.IsDisplayed = field.NewInt64(table, "is_displayed")
s.AlbumID = field.NewInt64(table, "album_id")
s.CreatedAt = field.NewTime(table, "created_at")
s.UpdatedAt = field.NewTime(table, "updated_at")
@@ -147,7 +138,7 @@ func (s *scaStorageInfo) GetFieldByName(fieldName string) (field.OrderExpr, bool
}
func (s *scaStorageInfo) fillFieldMap() {
s.fieldMap = make(map[string]field.Expr, 26)
s.fieldMap = make(map[string]field.Expr, 23)
s.fieldMap["id"] = s.ID
s.fieldMap["user_id"] = s.UserID
s.fieldMap["provider"] = s.Provider
@@ -159,17 +150,14 @@ func (s *scaStorageInfo) fillFieldMap() {
s.fieldMap["width"] = s.Width
s.fieldMap["height"] = s.Height
s.fieldMap["category"] = s.Category
s.fieldMap["tags"] = s.Tags
s.fieldMap["tag"] = s.Tag
s.fieldMap["type"] = s.Type
s.fieldMap["location_id"] = s.LocationID
s.fieldMap["hash"] = s.Hash
s.fieldMap["anime"] = s.Anime
s.fieldMap["is_anime"] = s.IsAnime
s.fieldMap["face_id"] = s.FaceID
s.fieldMap["landscape"] = s.Landscape
s.fieldMap["original_time"] = s.OriginalTime
s.fieldMap["screenshot"] = s.Screenshot
s.fieldMap["exif"] = s.Exif
s.fieldMap["img_show"] = s.ImgShow
s.fieldMap["is_displayed"] = s.IsDisplayed
s.fieldMap["album_id"] = s.AlbumID
s.fieldMap["created_at"] = s.CreatedAt
s.fieldMap["updated_at"] = s.UpdatedAt

View File

@@ -29,12 +29,15 @@ func newScaStorageLocation(db *gorm.DB, opts ...gen.DOOption) scaStorageLocation
_scaStorageLocation.ALL = field.NewAsterisk(tableName)
_scaStorageLocation.ID = field.NewInt64(tableName, "id")
_scaStorageLocation.UserID = field.NewString(tableName, "user_id")
_scaStorageLocation.Provider = field.NewString(tableName, "provider")
_scaStorageLocation.Bucket = field.NewString(tableName, "bucket")
_scaStorageLocation.Country = field.NewString(tableName, "country")
_scaStorageLocation.Province = field.NewString(tableName, "province")
_scaStorageLocation.City = field.NewString(tableName, "city")
_scaStorageLocation.Latitude = field.NewString(tableName, "latitude")
_scaStorageLocation.Longitude = field.NewString(tableName, "longitude")
_scaStorageLocation.Total = field.NewInt64(tableName, "total")
_scaStorageLocation.CoverImage = field.NewString(tableName, "cover_image")
_scaStorageLocation.Version = field.NewField(tableName, "version")
_scaStorageLocation.CreatedAt = field.NewTime(tableName, "created_at")
_scaStorageLocation.UpdatedAt = field.NewTime(tableName, "updated_at")
@@ -48,19 +51,22 @@ func newScaStorageLocation(db *gorm.DB, opts ...gen.DOOption) scaStorageLocation
type scaStorageLocation struct {
scaStorageLocationDo
ALL field.Asterisk
ID field.Int64 // 主键
UserID field.String // 用户id
Country field.String // 国家
Province field.String //
City field.String // 城市
Latitude field.String // 纬度
Longitude field.String // 经度
Total field.Int64 // 数量
Version field.Field // 版本
CreatedAt field.Time // 创建时间
UpdatedAt field.Time // 更新时间
DeletedAt field.Field // 删除时间
ALL field.Asterisk
ID field.Int64 // 主键
UserID field.String // 用户id
Provider field.String // 供应商
Bucket field.String // 存储桶
Country field.String // 国家
Province field.String //
City field.String // 城市
Latitude field.String // 纬度
Longitude field.String // 经度
Total field.Int64 // 数量
CoverImage field.String // 封面图片
Version field.Field // 版本
CreatedAt field.Time // 创建时间
UpdatedAt field.Time // 更新时间
DeletedAt field.Field // 删除时间
fieldMap map[string]field.Expr
}
@@ -79,12 +85,15 @@ func (s *scaStorageLocation) updateTableName(table string) *scaStorageLocation {
s.ALL = field.NewAsterisk(table)
s.ID = field.NewInt64(table, "id")
s.UserID = field.NewString(table, "user_id")
s.Provider = field.NewString(table, "provider")
s.Bucket = field.NewString(table, "bucket")
s.Country = field.NewString(table, "country")
s.Province = field.NewString(table, "province")
s.City = field.NewString(table, "city")
s.Latitude = field.NewString(table, "latitude")
s.Longitude = field.NewString(table, "longitude")
s.Total = field.NewInt64(table, "total")
s.CoverImage = field.NewString(table, "cover_image")
s.Version = field.NewField(table, "version")
s.CreatedAt = field.NewTime(table, "created_at")
s.UpdatedAt = field.NewTime(table, "updated_at")
@@ -105,15 +114,18 @@ func (s *scaStorageLocation) GetFieldByName(fieldName string) (field.OrderExpr,
}
func (s *scaStorageLocation) fillFieldMap() {
s.fieldMap = make(map[string]field.Expr, 12)
s.fieldMap = make(map[string]field.Expr, 15)
s.fieldMap["id"] = s.ID
s.fieldMap["user_id"] = s.UserID
s.fieldMap["provider"] = s.Provider
s.fieldMap["bucket"] = s.Bucket
s.fieldMap["country"] = s.Country
s.fieldMap["province"] = s.Province
s.fieldMap["city"] = s.City
s.fieldMap["latitude"] = s.Latitude
s.fieldMap["longitude"] = s.Longitude
s.fieldMap["total"] = s.Total
s.fieldMap["cover_image"] = s.CoverImage
s.fieldMap["version"] = s.Version
s.fieldMap["created_at"] = s.CreatedAt
s.fieldMap["updated_at"] = s.UpdatedAt