初始
This commit is contained in:
158
database/db.go
Normal file
158
database/db.go
Normal file
@ -0,0 +1,158 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
const (
|
||||
DEFAULTPWD = "123456"
|
||||
DEFAULTUSR = "admin"
|
||||
OFFLINE_DB = "database.ydb"
|
||||
)
|
||||
|
||||
var sourceDBMap = map[string]SourceObj{}
|
||||
|
||||
/*服务器端MySQL的连接实例*/
|
||||
var ormIncestance *gorm.DB
|
||||
|
||||
/*获取服务端的数据库连接实例*/
|
||||
func GetORMDBInstance() *gorm.DB {
|
||||
return ormIncestance
|
||||
}
|
||||
func SetORMDBInstance(db *gorm.DB) {
|
||||
ormIncestance = db
|
||||
sourceDBMap = make(map[string]SourceObj)
|
||||
InitTable()
|
||||
}
|
||||
|
||||
type DataSource struct {
|
||||
Url string //数据请求地址
|
||||
Type string //数据类型
|
||||
}
|
||||
|
||||
type SourceInfo struct {
|
||||
MaxLevel int `json:"maximumLevel"`
|
||||
MinLevel int `json:"minimumLevel"`
|
||||
West string `json:"west"`
|
||||
South string `json:"south"`
|
||||
East string `json:"east"`
|
||||
North string `json:"north"`
|
||||
ProFile string `json:"pro_file"`
|
||||
TilingScheme int `json:"tiling_scheme"` //是否需要加投影
|
||||
}
|
||||
type SourceObj struct {
|
||||
DataSource
|
||||
DB *gorm.DB //链接对象
|
||||
Gzip bool //是否压缩
|
||||
ContentType string //响应头
|
||||
Info SourceInfo //资源信息
|
||||
}
|
||||
|
||||
// 保存资源连接对象
|
||||
func SetSourceDB(sourceId string, obj SourceObj) {
|
||||
sourceDBMap[sourceId] = obj
|
||||
}
|
||||
|
||||
// 获取资源连接对象
|
||||
func GetSourceDB(sourceId string) SourceObj {
|
||||
return sourceDBMap[sourceId]
|
||||
}
|
||||
|
||||
type SOURCE struct {
|
||||
//gorm.Model
|
||||
//ProjectID string `json:"project_id" gorm:"type:varchar(128);comment:'项目id'" dc:"项目id"`
|
||||
//SourceName string `json:"source_name" gorm:"type:varchar(128);comment:'资源名称'" dc:"资源名称"`
|
||||
SourceID string `json:"source_id" gorm:"type:varchar(128);comment:'资源id'" dc:"资源id"`
|
||||
//SourceType string `json:"source_type" gorm:"type:varchar(128);comment:'资源类型'" dc:"资源类型"`
|
||||
//IsShow int `json:"is_show" gorm:"type:int(11);comment:'初次渲染的时候是否显示'" dc:"初次渲染的时候是否显示"`
|
||||
//Detail string `json:"detail" gorm:"comment:'资源的一些自带参数,序列话的字符串'" dc:"资源的一些自带参数,序列话的字符串"`
|
||||
//PID string `json:"p_id" gorm:"type:varchar(128);comment:'父id'" dc:"父id"`
|
||||
SourcePath string `json:"source_path" gorm:"type:varchar(512);comments:'资源路径'" dc:"资源路径"`
|
||||
//LayerIndex int `json:"layer_index" gorm:"type:int(11);comment:'二维图层在地球上的顺序序号'" dc:"二维图层在地球上的顺序序号"`
|
||||
//TreeIndex int `json:"tree_index" gorm:"type:int(11);comment:'结构树上的顺序序号'" dc:"结构树上的顺序序号"`
|
||||
//RichText string `json:"rich_text" comments:"富文本内容" dc:"富文本内容"`
|
||||
}
|
||||
|
||||
func (SOURCE) TableName() string {
|
||||
return "zmkg_gis_sources"
|
||||
}
|
||||
|
||||
type USER struct {
|
||||
gorm.Model
|
||||
Username string `json:"username"`
|
||||
Password string `json:"password"`
|
||||
}
|
||||
|
||||
func InitTable() {
|
||||
createMarkerTable()
|
||||
createUserTable()
|
||||
createGfbInfoTable()
|
||||
}
|
||||
func createMarkerTable() {
|
||||
if !GetORMDBInstance().Migrator().HasTable(&SOURCE{}) {
|
||||
GetORMDBInstance().Migrator().AutoMigrate(&SOURCE{})
|
||||
}
|
||||
}
|
||||
func createUserTable() {
|
||||
if !GetORMDBInstance().Migrator().HasTable(&USER{}) {
|
||||
err := GetORMDBInstance().Migrator().AutoMigrate(&USER{})
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
user := USER{Username: DEFAULTUSR, Password: DEFAULTPWD}
|
||||
users := []USER{user}
|
||||
GetORMDBInstance().Create(&users)
|
||||
}
|
||||
}
|
||||
|
||||
/*光伏板导入*/
|
||||
type GFB struct {
|
||||
ProjectID string `json:"project_id" gorm:"type:varchar(128);comment:'项目id'" dc:"项目id"`
|
||||
PhotovoltaicNumber string `json:"photovoltaic_number"`
|
||||
PhotovoltaicNumberGis string `json:"photovoltaic_number_gis"`
|
||||
}
|
||||
|
||||
func (GFB) TableName() string {
|
||||
return "bus_scheduled_weekly_photovoltaic"
|
||||
}
|
||||
|
||||
type FzInfo struct {
|
||||
gorm.Model
|
||||
ProjectID string `json:"project_id" gorm:"type:varchar(128);comment:'项目id'" dc:"项目id"`
|
||||
PhotovoltaicNumber string `json:"photovoltaic_number"gorm:"type:varchar(128);comment:'光伏板编号(candela里面的实例名称)'" dc:"光伏板编号" `
|
||||
ZhuangBianHao string `json:"zhuang_bian_hao"gorm:"type:varchar(255);comment:'桩编号'" dc:"桩编号" `
|
||||
X string `json:"x"gorm:"type:varchar(255);comment:'X'" dc:"X" `
|
||||
Y string `json:"y"gorm:"type:varchar(255);comment:'Y'" dc:"Y" `
|
||||
ZTop string `json:"z_top"gorm:"type:varchar(255);comment:'顶部高程'" dc:"顶部高程" `
|
||||
ZBottom string `json:"z_bottom"gorm:"type:varchar(255);comment:'底部高程'" dc:"底部高程" `
|
||||
FZName string `json:"fz_name"gorm:"type:varchar(255);comment:'方阵名称'" dc:"方阵名称" `
|
||||
//ZhuangJianJu string `json:"zhuang_jian_ju"gorm:"type:varchar(255);comment:'桩间距'" dc:"桩间距" `
|
||||
//ColorNum int `json:"color_num"gorm:"comment:'颜色编号" dc:"颜色编号" `
|
||||
//Positions string `json:"positions"gorm:"comment:'光伏板桩号坐标'" dc:"光伏板桩号坐标" `
|
||||
//Params string `json:"params"gorm:"comment:'参数'" dc:"参数" `
|
||||
}
|
||||
|
||||
func (FzInfo) TableName() string {
|
||||
return "zmkg_fz_infos"
|
||||
}
|
||||
|
||||
func createGfbInfoTable() {
|
||||
if !GetORMDBInstance().Migrator().HasTable(&FzInfo{}) {
|
||||
GetORMDBInstance().Migrator().AutoMigrate(&FzInfo{})
|
||||
}
|
||||
}
|
||||
|
||||
type Project struct {
|
||||
ID int64 `json:"id"`
|
||||
}
|
||||
|
||||
func (Project) TableName() string {
|
||||
return "sys_project"
|
||||
}
|
||||
func CheckProjectIsExists(project_id int64) bool {
|
||||
RowsAffected := GetORMDBInstance().Model(&Project{}).Where(&Project{project_id}).Find(&Project{}).RowsAffected
|
||||
if RowsAffected > 0 {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
Reference in New Issue
Block a user