conf.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  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. Pre map[string]PreConf
  43. }
  44. type udp struct {
  45. LocPort string
  46. JyAddr string
  47. JyPort int
  48. NeAddr string
  49. NePort int
  50. }
  51. type udpNext struct {
  52. Addr string
  53. Port int
  54. Stype string
  55. }
  56. type mail struct {
  57. Send bool
  58. To string
  59. Api string
  60. }
  61. // Log Config
  62. type log struct {
  63. LogPath string
  64. MaxSize int
  65. Compress bool
  66. MaxAge int
  67. MaxBackups int
  68. LogLevel string
  69. Format string
  70. }
  71. type db struct {
  72. MongoB mgo
  73. MongoP mgo
  74. MongoQ mgo
  75. MongoS mgo
  76. Es es
  77. Oss oss
  78. MysqlB mysql
  79. }
  80. type mysql struct {
  81. Addr string
  82. Dbname string
  83. Username string
  84. Password string
  85. }
  86. // oss oss 阿里云配置
  87. type oss struct {
  88. Endpoint string
  89. AccessKey string
  90. AccessSecret string
  91. BucketName string
  92. DetailBucket string
  93. Filesize int
  94. }
  95. type mgo struct {
  96. Addr string
  97. Dbname string
  98. Coll string
  99. Size int
  100. User string
  101. Password string
  102. Direct bool
  103. }
  104. // env 全局的相关配置
  105. type env struct {
  106. Stype int //默认0,正式环境;1是测试环境,不会执行定时任务更新采购单位、中标单位、数据检测
  107. OpenPre bool //默认关闭,不开启预处理流程
  108. Alias string
  109. SpecType string
  110. Dbfile string //配置文件,读取bitmap
  111. Ai bool //是否Ai m模型测试
  112. Oss bool //是否针对详情,使用oss 获取内容
  113. }
  114. type es struct {
  115. Addr string
  116. AddrP string
  117. Size int
  118. Username string
  119. Password string
  120. IndexB string
  121. TypeB string
  122. IndexP string
  123. TypeP string
  124. IndexWinner string
  125. TypeWinner string
  126. IndexBuyer string
  127. TypeBuyer string
  128. DetailFilter []string
  129. IndexTmp string
  130. //FieldEs map[string]interface{}
  131. //FieldPurchasingist map[string]interface{}
  132. //FieldProcurementList map[string]interface{}
  133. //FieldWinnerOrder map[string]interface{}
  134. //Package map[string]interface{}
  135. Addr2 string
  136. Username2 string
  137. Password2 string
  138. Indexb2 string
  139. Addr3 string // 华为云新集群,存储原来阿里云集群的标讯、项目数据
  140. Username3 string
  141. Password3 string
  142. Indexb3 string
  143. }
  144. // PreConf 预处理 配置
  145. type PreConf struct {
  146. Addr string
  147. Username string
  148. Password string
  149. Index []string
  150. }
  151. type OthersData struct {
  152. MgoAddr string
  153. MgoDB string
  154. MgoColl string
  155. MgoUsername string
  156. MgoPassword string
  157. EsAddr string
  158. EsIndex string
  159. EsUsername string
  160. EsPassword string
  161. NextAddr string
  162. NextPort int
  163. Data map[string]interface{}
  164. }
  165. type duration struct {
  166. time.Duration
  167. }
  168. // UnmarshalText parse 10s to time.Time
  169. func (d *duration) UnmarshalText(text []byte) error {
  170. var err error
  171. d.Duration, err = time.ParseDuration(string(text))
  172. return err
  173. }