config.go 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package configs
  2. import (
  3. "fmt"
  4. "github.com/go-redis/redis/v8"
  5. _ "github.com/go-sql-driver/mysql"
  6. "github.com/spf13/viper"
  7. "os"
  8. "xorm.io/xorm"
  9. )
  10. var (
  11. Config *viper.Viper
  12. Engine *xorm.Engine
  13. RedisDb *redis.Client
  14. )
  15. type User struct {
  16. Id int `xorm:"'id'" json:"id"`
  17. Username string `xorm:"'username'" json:"username"`
  18. Password string `xorm:"'password'" json:"password"`
  19. Creation_time int `xorm:"'creation_time'" json:"creation_Time"`
  20. Login_time int `xorm:"'login_time'" json:"login_Time"`
  21. Status int `xorm:"'status'" json:"status"`
  22. Role_id int `xorm:"'role_id'" json:"role_id"`
  23. Phone string `xorm:"'phone'" json:"phone"`
  24. RecommendCode string `xorm:"'recommend_code'" json:"recommend_code"`
  25. }
  26. type Role struct {
  27. Id int `xorm:"'id'" json:"id"`
  28. Role_name string `xorm:"'role_name'" json:"role_Name"`
  29. }
  30. type Role_authority struct {
  31. Authority_id int `xorm:"'authority_id'" json:"authority_id"`
  32. Role_id int `xorm:"'role_id'" json:"role_id"`
  33. }
  34. type Authority struct {
  35. Id int `xorm:"'id'" json:"id"`
  36. Authority_name string `xorm:"'authority_name'" json:"authority_Name"`
  37. Authority_path string `xorm:"'authority_path'" json:"authority_Path"`
  38. }
  39. type MysqlData struct {
  40. User `xorm:"extends"`
  41. Role `xorm:"extends"`
  42. Role_authority `xorm:"extends"`
  43. Authority `xorm:"extends"`
  44. }
  45. func ConfigInit() {
  46. //获取项目的执行路径
  47. path, err := os.Getwd()
  48. if err != nil {
  49. panic(err)
  50. }
  51. config := viper.New()
  52. config.AddConfigPath(path + "\\configs") //设置读取的文件路径
  53. config.SetConfigName("config") //设置读取的文件名
  54. config.SetConfigType("yaml") //设置文件的类型
  55. //尝试进行配置读取
  56. if err := config.ReadInConfig(); err != nil {
  57. panic(err)
  58. }
  59. fmt.Println(fmt.Sprintf("%s:%s@(%s:%s)/%s?charset=utf8", config.Get("mysql.user"), config.Get("mysql.password"), config.Get("mysql.host"), config.Get("mysql.port"), config.Get("mysql.database")))
  60. Engine, err = xorm.NewEngine("mysql", fmt.Sprintf("%s:%s@(%s:%s)/%s?charset=utf8", config.Get("mysql.user"), config.Get("mysql.password"), config.Get("mysql.host"), config.Get("mysql.port"), config.Get("mysql.database")))
  61. Engine.Ping() //连接测试
  62. RedisDb = redis.NewClient(&redis.Options{
  63. Addr: fmt.Sprintf("%s:%s", config.Get("redis.host"), config.Get("redis.port")), // Redis地址
  64. Password: "", // Redis密码,如果没有则为空字符串
  65. DB: 0, // 使用默认DB
  66. })
  67. Config = config
  68. }