conf.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package config
  2. import (
  3. "fmt"
  4. "github.com/spf13/viper"
  5. "os"
  6. "time"
  7. )
  8. var (
  9. // Conf crocodile conf
  10. Conf *conf
  11. )
  12. // InitConf Config
  13. func InitConf(conf string) {
  14. //_, err := toml.DecodeFile(conf, &Conf)
  15. //if err != nil {
  16. // fmt.Printf("Err %v", err)
  17. // os.Exit(1)
  18. //}
  19. viper.SetConfigFile("common.toml")
  20. viper.SetConfigName("common") // 配置文件名称(无扩展名)
  21. viper.SetConfigType("toml") // 如果配置文件的名称中没有扩展名,则需要配置此项
  22. viper.AddConfigPath("./")
  23. err := viper.ReadInConfig() // 查找并读取配置文件
  24. if err != nil { // 处理读取配置文件的错误
  25. fmt.Println("ReadInConfig err =>", err)
  26. return
  27. }
  28. err = viper.Unmarshal(&Conf)
  29. if err != nil {
  30. fmt.Println("Init Unmarshal err =>", err)
  31. os.Exit(1)
  32. return
  33. }
  34. }
  35. type conf struct {
  36. DB db
  37. Udp udp
  38. Mail mail
  39. Log log
  40. Env env
  41. Others map[string]OthersData
  42. }
  43. type udp struct {
  44. LocPort string
  45. JyAddr string
  46. JyPort int
  47. NeAddr string
  48. NePort int
  49. }
  50. type udpNext struct {
  51. Addr string
  52. Port int
  53. Stype string
  54. }
  55. type mail struct {
  56. Send bool
  57. To string
  58. Api string
  59. }
  60. // Log Config
  61. type log struct {
  62. LogPath string
  63. MaxSize int
  64. Compress bool
  65. MaxAge int
  66. MaxBackups int
  67. LogLevel string
  68. Format string
  69. }
  70. type db struct {
  71. MongoB mgo
  72. MongoP mgo
  73. MongoQ mgo
  74. MongoS mgo
  75. Es es
  76. Oss oss
  77. MysqlB mysql
  78. }
  79. type mysql struct {
  80. Addr string
  81. Dbname string
  82. Username string
  83. Password string
  84. }
  85. //oss oss 阿里云配置
  86. type oss struct {
  87. Endpoint string
  88. AccessKey string
  89. AccessSecret string
  90. BucketName string
  91. Filesize int
  92. }
  93. type mgo struct {
  94. Addr string
  95. Dbname string
  96. Coll string
  97. Size int
  98. User string
  99. Password string
  100. Direct bool
  101. }
  102. //env 全局的相关配置
  103. type env struct {
  104. Stype int //默认0,正式环境;1是测试环境,不会执行定时任务更新采购单位、中标单位、数据检测
  105. }
  106. type es struct {
  107. Addr string
  108. AddrP string
  109. Size int
  110. Username string
  111. Password string
  112. IndexB string
  113. TypeB string
  114. IndexP string
  115. TypeP string
  116. IndexWinner string
  117. TypeWinner string
  118. IndexBuyer string
  119. TypeBuyer string
  120. DetailFilter []string
  121. IndexTmp string
  122. //FieldEs map[string]interface{}
  123. //FieldPurchasingist map[string]interface{}
  124. //FieldProcurementList map[string]interface{}
  125. //FieldWinnerOrder map[string]interface{}
  126. //Package map[string]interface{}
  127. Addr2 string
  128. Username2 string
  129. Password2 string
  130. Indexb2 string
  131. }
  132. type OthersData struct {
  133. MgoAddr string
  134. MgoDB string
  135. MgoColl string
  136. MgoUsername string
  137. MgoPassword string
  138. EsAddr string
  139. EsIndex string
  140. EsUsername string
  141. EsPassword string
  142. NextAddr string
  143. NextPort int
  144. Data map[string]interface{}
  145. }
  146. type duration struct {
  147. time.Duration
  148. }
  149. // UnmarshalText parse 10s to time.Time
  150. func (d *duration) UnmarshalText(text []byte) error {
  151. var err error
  152. d.Duration, err = time.ParseDuration(string(text))
  153. return err
  154. }