conf.go 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  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. IndexPD string
  124. BiddingDetail string
  125. DetailCount int
  126. TypeP string
  127. IndexWinner string
  128. TypeWinner string
  129. IndexBuyer string
  130. TypeBuyer string
  131. DetailFilter []string
  132. IndexTmp string
  133. //FieldEs map[string]interface{}
  134. //FieldPurchasingist map[string]interface{}
  135. //FieldProcurementList map[string]interface{}
  136. //FieldWinnerOrder map[string]interface{}
  137. //Package map[string]interface{}
  138. Addr2 string
  139. Username2 string
  140. Password2 string
  141. Indexb2 string
  142. Addr3 string // 华为云新集群,存储原来阿里云集群的标讯、项目数据
  143. Username3 string
  144. Password3 string
  145. Indexb3 string
  146. }
  147. // PreConf 预处理 配置
  148. type PreConf struct {
  149. Addr string
  150. Username string
  151. Password string
  152. Index []string
  153. }
  154. type OthersData struct {
  155. MgoAddr string
  156. MgoDB string
  157. MgoColl string
  158. MgoUsername string
  159. MgoPassword string
  160. EsAddr string
  161. EsIndex string
  162. EsUsername string
  163. EsPassword string
  164. NextAddr string
  165. NextPort int
  166. Data map[string]interface{}
  167. }
  168. type duration struct {
  169. time.Duration
  170. }
  171. // UnmarshalText parse 10s to time.Time
  172. func (d *duration) UnmarshalText(text []byte) error {
  173. var err error
  174. d.Duration, err = time.ParseDuration(string(text))
  175. return err
  176. }