package main import ( "fmt" "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/logger" "time" ) // 定义 User 模型 type User struct { gorm.Model Name string Email string Test Test } type Test struct { gorm.Model Name string UserID *uint } func main() { user := User{ Name: "John Doe", Email: "john.doe@example.com", Test: Test{ Name: "test", }, } Created(&user) // 打印成功创建的消息 fmt.Printf("User created with ID: %d\n", user.ID) } func Created(u *User) { dsn := "root:lxz664278@tcp(106.54.33.152:33369)/hstack?charset=utf8mb4&parseTime=True&loc=Local" db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{ Logger: logger.Default.LogMode(logger.Info), }) if err != nil { panic("failed to connect database") } info, _ := GetNodePartInfo(&Node{Model: Model{ID: 2}}, *db) fmt.Println(info) } func GetNodePartInfo(node *Node, DBConn gorm.DB) (*Node, error) { var result = new(Node) tx := DBConn.Model(Node{}).Select([]string{ "id", "node_tag", "max_v_cpu", "use_v_cpu", "max_mem", "use_mem", "max_gpu", "use_gpu", "max_vpc", "use_vpc", "stat"}).Where("id=?", node.ID).Find(result) if tx.Error != nil { return nil, tx.Error } if result.ID <= 0 { result = nil } return result, nil } // Node 节点信息 type Node struct { Model NodeName string `json:"node_name" gorm:"node_name" ` // 节点名称 ZoneId int `json:"zone_id" gorm:"zone_id" ` // 所属资源区ID ZoneName string `json:"zone_name" gorm:"zone_name" ` // 所属资源区名 BmcIP string `json:"bmc_ip" gorm:"bmc_ip" ` // BMC IP BmcUser string `json:"bmc_user" gorm:"bmc_user" ` // BMC 用户名 BmcPass string `json:"bmc_pass" gorm:"bmc_pass" ` // BMC 密码 MgrIp string `json:"mgr_ip" gorm:"mgr_ip" ` // 管理IP NodeIp string `json:"node_ip" gorm:"node_ip" ` // 节点IP ListenPort int `json:"listen_port" gorm:"listen_port" ` // 监听端口 SSHPort int `json:"ssh_port" gorm:"ssh_port" ` // SSH端口号 RootUser string `json:"root_user" gorm:"root_user" ` // root用户 RootPass string `json:"root_pass" gorm:"root_pass" ` // root密码 RootSecretKey string `json:"root_secret_key" gorm:"root_secret_key" ` // Root账号密钥 SecretKeyPass string `json:"secret_key_pass" gorm:"secret_key_pass" ` // 密钥密码 NodeMode int `json:"node_mode" gorm:"node_mode" ` // 节点模式 NodeTag string `json:"node_tag" gorm:"node_tag" ` // 节点标记 MaxVCpu int `json:"max_v_cpu" gorm:"max_v_cpu" ` // 最大可虚拟化CPU数量 UseVCpu int `json:"use_v_cpu" gorm:"use_v_cpu" ` // 已使用虚拟化CPU数量 Cpu int `json:"cpu" gorm:"cpu" ` // CPU数量 CpuType int `json:"cpu_type" gorm:"cpu_type" ` // CPU类型 (x86_64:1;amd64:2;arm:3;other:4) MaxMem int64 `json:"max_mem" gorm:"max_mem" ` // 最大内存 UseMem int64 `json:"use_mem" gorm:"use_mem" ` // 已使用内存 MaxGpu int `json:"max_gpu" gorm:"max_gpu" ` // 最大GPU数 UseGpu int `json:"use_gpu" gorm:"use_gpu" ` // 已使用GPU数 NodeWidget int `json:"node_widget" gorm:"node_widget" ` // 节点权重 NodeLoadStat int `json:"node_load_stat" gorm:"node_load_stat" ` // 节点负载状态 MaxVPC int `json:"max_vpc" gorm:"column:max_vpc;default:5" ` // 节点创建的最大VPC数量 UseVPC int `json:"use_vpc" gorm:"column:use_vpc;default:0" ` // 节点已创建的VPC RunStat int `json:"run_stat" gorm:"run_stat" ` // 节点运行状态 AutoSyncNodeStat int `json:"auto_sync_node_stat" gorm:"auto_sync_node_stat" ` // 自动同步节点状态 PcieIdList []int `json:"pcie_id_list" gorm:"-" ` // PCIE设备ID列表 HPCInitCommandIdList []int `json:"hpc_init_command_id_list" gorm:"-" ` // hpc命令ID数组 CloudInitCommandIdList []int `json:"cloud_init_command_id_list" gorm:"-" ` // 云命令ID数组 } type Model struct { ID int `json:"id" gorm:"column:id;primarykey" ` // 主键ID CreatedAt *time.Time `json:"created_at" gorm:"column:created_at;autoCreateTime:nano" swaggerignore:"true" ` // 创建时间 UpdatedAt *time.Time `json:"updated_at" gorm:"column:updated_at;autoUpdateTime:nano" swaggerignore:"true"` // 更新时间 DeletedAt gorm.DeletedAt `json:"deleted_at" gorm:"column:deleted_at;index" swaggerignore:"true"` // 删除时间 CreateUser string `json:"create_user" gorm:"create_user" swaggerignore:"true"` // 创建用户 CreateUserId int `json:"create_user_id" gorm:"create_user_id" swaggerignore:"true"` // 创建用户ID UpdateUser string `json:"update_user" gorm:"update_user" swaggerignore:"true"` // 更新用户 UpdateUserId int `json:"update_user_id" gorm:"update_user_id" swaggerignore:"true"` // 更新用户ID DeleteUser string `json:"delete_user" gorm:"delete_user" swaggerignore:"true" ` // 删除用户 DeleteUserId int `json:"delete_user_id" gorm:"delete_user_id" swaggerignore:"true"` // 删除用户ID Remark string `json:"remark" gorm:"remark" swaggerignore:"true"` // 备注 Stat int `json:"stat" gorm:"stat" swaggerignore:"true"` // 状态 ExpireAt *time.Time `json:"expire_at" gorm:"expire_at" swaggerignore:"true"` // 过期时间 } func (Node) TableName() string { return "node" }