config.go 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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. Email string `xorm:"'email'" json:"email"`
  25. Name string `xorm:"'name'" json:"name"`
  26. Avatar string `xorm:"'avatar'" json:"avatar"`
  27. RecommendCode string `xorm:"'recommend_code'" json:"recommend_code"`
  28. }
  29. func (receiver User) String() string {
  30. return fmt.Sprintf("User{Id:%d, Username:%s, Password:%s, Creation_time:%d, Login_time:%d, Status:%d, Role_id:%d, Phone:%s, Email:%s, Name:%s, Avatar:%s, RecommendCode:%s}", receiver.Id, receiver.Username, receiver.Password, receiver.Creation_time, receiver.Login_time, receiver.Status, receiver.Role_id, receiver.Phone, receiver.Email, receiver.Name, receiver.Avatar, receiver.RecommendCode)
  31. }
  32. type Role struct {
  33. Id int `xorm:"'id'" json:"id"`
  34. Role_name string `xorm:"'role_name'" json:"role_Name"`
  35. }
  36. type Role_authority struct {
  37. Authority_id int `xorm:"'authority_id'" json:"authority_id"`
  38. Role_id int `xorm:"'role_id'" json:"role_id"`
  39. }
  40. type Authority struct {
  41. Id int `xorm:"'id'" json:"id"`
  42. Authority_name string `xorm:"'authority_name'" json:"authority_Name"`
  43. Authority_path string `xorm:"'authority_path'" json:"authority_Path"`
  44. }
  45. type MysqlData struct {
  46. User `xorm:"extends"`
  47. Role `xorm:"extends"`
  48. Role_authority `xorm:"extends"`
  49. Authority `xorm:"extends"`
  50. }
  51. func ConfigInit() {
  52. //获取项目的执行路径
  53. path, err := os.Getwd()
  54. if err != nil {
  55. panic(err)
  56. }
  57. config := viper.New()
  58. config.AddConfigPath(path + "\\configs") //设置读取的文件路径
  59. config.SetConfigName("config") //设置读取的文件名
  60. config.SetConfigType("yaml") //设置文件的类型
  61. //尝试进行配置读取
  62. if err := config.ReadInConfig(); err != nil {
  63. panic(err)
  64. }
  65. 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")))
  66. 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")))
  67. Engine.Ping() //连接测试
  68. //TODO 显示sql
  69. Engine.ShowSQL(true)
  70. Engine.Logger().ShowSQL(true)
  71. RedisDb = redis.NewClient(&redis.Options{
  72. Addr: fmt.Sprintf("%s:%s", config.Get("redis.host"), config.Get("redis.port")), // Redis地址
  73. Password: "", // Redis密码,如果没有则为空字符串
  74. DB: 0, // 使用默认DB
  75. })
  76. //开启debug模式
  77. Config = config
  78. fmt.Println("xorm 数据库orm框架初始化成功")
  79. }
  80. func ConfigInitByUrl(configUrl string) {
  81. //获取项目的执行路径
  82. config := viper.New()
  83. config.AddConfigPath(configUrl + "\\configs") //设置读取的文件路径
  84. config.SetConfigName("config") //设置读取的文件名
  85. config.SetConfigType("yaml") //设置文件的类型
  86. //尝试进行配置读取
  87. if err := config.ReadInConfig(); err != nil {
  88. panic(err)
  89. }
  90. 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")))
  91. Engine, _ := 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")))
  92. Engine.Ping() //连接测试
  93. //TODO 显示sql
  94. Engine.ShowSQL(true)
  95. Engine.Logger().ShowSQL(true)
  96. RedisDb = redis.NewClient(&redis.Options{
  97. Addr: fmt.Sprintf("%s:%s", config.Get("redis.host"), config.Get("redis.port")), // Redis地址
  98. Password: "", // Redis密码,如果没有则为空字符串
  99. DB: 0, // 使用默认DB
  100. })
  101. //开启debug模式
  102. Config = config
  103. fmt.Println("xorm 数据库orm框架初始化成功")
  104. }
  105. func GoGormConfigInit() {
  106. }