package postgres import ( "ai_developer_admin/models" "encoding/json" "fmt" "github.com/beego/beego/orm" "github.com/beego/beego/v2/core/logs" beego "github.com/beego/beego/v2/server/web" _ "github.com/lib/pq" ) var ormpost orm.Ormer func init() { //return logs.Debug("postgres lib init") orm.Debug = true if err := orm.RegisterDriver("postgres", orm.DRPostgres); err != nil { logs.Error(err.Error()) } //orm.RegisterModel(new(models.Bills)) //orm.RegisterModel(new(models.Tasks)) //orm.RegisterModel(new(models.ChargeRecord)) //orm.RegisterModel(new(models.UserLevel)) //orm.RegisterModel(new(models.ApiKey)) //orm.RegisterModel(new(models.JwtToken)) logs.Debug("AppConfig", beego.AppConfig) dbuser, _ := beego.AppConfig.String("postgresuser") dbpass, _ := beego.AppConfig.String("postgrespass") dbhost, _ := beego.AppConfig.String("postgreshost") dbport, _ := beego.AppConfig.Int("postgresport") dbname, _ := beego.AppConfig.String("postgresdb") logs.Debug("postgres info", dbuser, dbpass, dbhost, dbport, dbname) dbURL := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable", dbhost, dbport, dbuser, dbpass, dbname) logs.Debug("Will connect to postgres url", dbURL) if err := orm.RegisterDataBase(dbname, "postgres", dbURL); err != nil { logs.Error(err.Error()) panic(err.Error()) } orm.SetMaxIdleConns(dbname, 10) orm.SetMaxOpenConns(dbname, 100) db, err := orm.GetDB(dbname) if err != nil { panic(err) } ormpost, err = orm.NewOrmWithDB("postgres", dbname, db) if err != nil { panic(err) } } func QueryTset(sql string, args ...interface{}) ([]models.Bills, error) { logs.Debug("QueryBills = ", sql) qs := ormpost.Raw(sql, args) var params []orm.Params _, err := qs.Values(¶ms) if err != nil { return nil, err } arr, err := json.Marshal(params) if err != nil { return nil, err } var containers []models.Bills logs.Debug("QueryBills = ", string(arr)) err = json.Unmarshal(arr, &containers) if err != nil { return nil, err } return containers, nil } func QueryBills(sql string) ([]models.Bills, error) { logs.Debug("QueryBills = ", sql) qs := ormpost.Raw(sql) var params []orm.Params _, err := qs.Values(¶ms) if err != nil { return nil, err } arr, err := json.Marshal(params) if err != nil { return nil, err } var containers []models.Bills logs.Debug("QueryBills = ", string(arr)) err = json.Unmarshal(arr, &containers) if err != nil { return nil, err } return containers, nil } func CountTasks(sql string) ([]models.TaskCount, error) { logs.Debug("CountTasks = ", sql) qs := ormpost.Raw(sql) var params []orm.Params _, err := qs.Values(¶ms) if err != nil { return nil, err } arr, err := json.Marshal(params) if err != nil { return nil, err } var containers []models.TaskCount err = json.Unmarshal(arr, &containers) if err != nil { return nil, err } return containers, nil }