config.go 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689
  1. package config
  2. import (
  3. "encoding/hex"
  4. "errors"
  5. "fmt"
  6. "mtp2_if/packet"
  7. "strconv"
  8. "github.com/beevik/etree"
  9. )
  10. var SerCfg *ServiceConfig
  11. type WebConfig struct {
  12. ListenAddr string
  13. DebugMode bool
  14. ApiKey string
  15. ApiKeyMode bool
  16. }
  17. type LogConfig struct {
  18. LogPath string
  19. LogLevel int
  20. }
  21. type DbConfig struct {
  22. DbDriver string
  23. DbAddress string
  24. DbName string
  25. DbPort string
  26. DbUser string
  27. DbPwd string
  28. }
  29. type RedisConfig struct {
  30. Address string
  31. Port int
  32. TimeOut int
  33. ConnNum int
  34. DbNum int
  35. Pwd string
  36. }
  37. type MqConfig struct {
  38. Url string
  39. Exchange string
  40. }
  41. type MongoDBConfig struct {
  42. HostName string
  43. Port int
  44. DBName string
  45. Username string
  46. Password string
  47. }
  48. type MySQLConfig struct {
  49. Host string
  50. Port int
  51. DBName string
  52. Username string
  53. Password string
  54. }
  55. type TencentConfig struct {
  56. Enabled int
  57. SecretId string
  58. SecretKey string
  59. EndPoint string
  60. AppId string
  61. ProxyOrganizationName string
  62. ProxyOrganizationOpenId string
  63. ProxyOperatorOpenId string
  64. SignToken string
  65. SignKey string
  66. }
  67. type AsignConfig struct {
  68. Url string
  69. AppId string
  70. PrivateKey string
  71. NotifyUrl string
  72. OpenApiUrl string
  73. Account string
  74. }
  75. type ServiceConfig struct {
  76. WebCfg WebConfig
  77. LogCfg LogConfig
  78. DbCfg DbConfig
  79. RedisCfg RedisConfig
  80. MqCfg MqConfig
  81. MongoDBCfg MongoDBConfig
  82. MySQLCfg MySQLConfig
  83. TencentCfg TencentConfig
  84. AsignCfg AsignConfig
  85. TencentCloudCfg TencentCloudConfig
  86. }
  87. type TencentCloudConfig struct {
  88. Enabled int
  89. SecretId string
  90. SecretKey string
  91. FaceIdEndPoint string
  92. DailyQuota int
  93. }
  94. func (c *ServiceConfig) Init(path string) error {
  95. SerCfg = &ServiceConfig{}
  96. cfgfile := etree.NewDocument()
  97. err := cfgfile.ReadFromFile(path)
  98. if err != nil {
  99. fmt.Println("Read config file failed")
  100. return err
  101. }
  102. root := cfgfile.SelectElement("Configuration")
  103. if root == nil {
  104. return errors.New("read config file failed")
  105. }
  106. // web配置
  107. websettings := root.SelectElements("WebSetting")
  108. for _, setting := range websettings {
  109. web_listenaddr := setting.SelectElement("ListenAddress")
  110. if web_listenaddr == nil {
  111. return errors.New("read web listen address failed")
  112. }
  113. SerCfg.WebCfg.ListenAddr = web_listenaddr.SelectAttrValue("value", "0.0.0.0:8080")
  114. // 调试模式
  115. debug_mode := setting.SelectElement("DebugMode")
  116. if debug_mode == nil {
  117. return errors.New("read debug mode failed")
  118. }
  119. ret, err := strconv.ParseUint(debug_mode.SelectAttrValue("value", "0"), 10, 32)
  120. if err != nil {
  121. return errors.New("read debug mode is invalid:")
  122. }
  123. SerCfg.WebCfg.DebugMode = (ret == 1)
  124. apiKey := setting.SelectElement("ApiKey")
  125. if apiKey == nil {
  126. return errors.New("read web listen ApiKey failed")
  127. }
  128. SerCfg.WebCfg.ApiKey = apiKey.SelectAttrValue("value", "GELSZqhh4mqzlDKW")
  129. apiKeyMode := setting.SelectElement("ApiKeyMode")
  130. if apiKeyMode == nil {
  131. return errors.New("read ApiKeyMode failed")
  132. }
  133. ret, err = strconv.ParseUint(apiKeyMode.SelectAttrValue("value", "0"), 10, 32)
  134. if err != nil {
  135. return errors.New("read ApiKeyMode is invalid:")
  136. }
  137. SerCfg.WebCfg.ApiKeyMode = (ret == 1)
  138. }
  139. // 日志配置
  140. logsettings := root.SelectElements("LogSetting")
  141. for _, setting := range logsettings {
  142. // 日志路径
  143. log_path := setting.SelectElement("LogPath")
  144. if log_path == nil {
  145. return errors.New("read log path failed")
  146. }
  147. SerCfg.LogCfg.LogPath = log_path.SelectAttrValue("value", "./")
  148. // 日志级别
  149. log_level := setting.SelectElement("LogLevel")
  150. if log_level == nil {
  151. return errors.New("read log level failed")
  152. }
  153. ret, err := strconv.ParseUint(log_level.SelectAttrValue("value", "5"), 10, 32)
  154. if err != nil {
  155. return errors.New("read log level is invalid:")
  156. }
  157. SerCfg.LogCfg.LogLevel = int(ret)
  158. }
  159. // 数据库配置
  160. dbsettings := root.SelectElements("DbSetting")
  161. for _, setting := range dbsettings {
  162. // 数据库驱动
  163. db_driver := setting.SelectElement("DbDriver")
  164. if db_driver == nil {
  165. return errors.New("read db driver failed")
  166. }
  167. SerCfg.DbCfg.DbDriver = db_driver.SelectAttrValue("value", "oci8")
  168. // 数据库地址
  169. db_address := setting.SelectElement("DbAddress")
  170. if db_address == nil {
  171. return errors.New("read db address failed")
  172. }
  173. SerCfg.DbCfg.DbAddress = db_address.SelectAttrValue("value", "0.0.0.0")
  174. // 数据库名
  175. db_name := setting.SelectElement("DbName")
  176. if db_name == nil {
  177. return errors.New("read db name failed")
  178. }
  179. SerCfg.DbCfg.DbName = db_name.SelectAttrValue("value", "orcl")
  180. // 数据库端口
  181. db_port := setting.SelectElement("DbPort")
  182. if db_port == nil {
  183. return errors.New("read db port failed")
  184. }
  185. SerCfg.DbCfg.DbPort = db_port.SelectAttrValue("value", "1521")
  186. // 数据库名
  187. db_user := setting.SelectElement("DbUser")
  188. if db_user == nil {
  189. return errors.New("read db user failed")
  190. }
  191. SerCfg.DbCfg.DbUser = db_user.SelectAttrValue("value", "mtp2_test01")
  192. // 数据库密码
  193. db_pwd := setting.SelectElement("DbPwd")
  194. if db_pwd == nil {
  195. return errors.New("read db password failed")
  196. }
  197. SerCfg.DbCfg.DbPwd = db_pwd.SelectAttrValue("value", "muchinfo")
  198. }
  199. // Redis配置
  200. redissettings := root.SelectElements("RedisSetting")
  201. for _, setting := range redissettings {
  202. // 地址
  203. redis_address := setting.SelectElement("Address")
  204. if redis_address == nil {
  205. return errors.New("read redis address failed")
  206. }
  207. SerCfg.RedisCfg.Address = redis_address.SelectAttrValue("value", "127.0.0.1")
  208. // 端口
  209. redis_port := setting.SelectElement("Port")
  210. if redis_port == nil {
  211. return errors.New("read redis port failed")
  212. }
  213. ret, err := strconv.ParseUint(redis_port.SelectAttrValue("value", "5007"), 10, 32)
  214. if err != nil {
  215. return errors.New("read redis port is invalid:")
  216. }
  217. SerCfg.RedisCfg.Port = int(ret)
  218. // 超时时长
  219. redis_timeout := setting.SelectElement("Timeout")
  220. if redis_timeout == nil {
  221. return errors.New("read redis timeout failed")
  222. }
  223. ret, err = strconv.ParseUint(redis_timeout.SelectAttrValue("value", "3"), 10, 32)
  224. if err != nil {
  225. return errors.New("read redis timeout is invalid:")
  226. }
  227. SerCfg.RedisCfg.TimeOut = int(ret)
  228. // 连接数
  229. redis_connnum := setting.SelectElement("ConnNum")
  230. if redis_connnum == nil {
  231. return errors.New("read redis connnet num failed")
  232. }
  233. ret, err = strconv.ParseUint(redis_connnum.SelectAttrValue("value", "1"), 10, 32)
  234. if err != nil {
  235. return errors.New("read redis connnet num is invalid:")
  236. }
  237. SerCfg.RedisCfg.ConnNum = int(ret)
  238. // 库编号
  239. redis_dbnum := setting.SelectElement("DbNum")
  240. if redis_dbnum == nil {
  241. return errors.New("read redis db num failed")
  242. }
  243. ret, err = strconv.ParseUint(redis_dbnum.SelectAttrValue("value", "0"), 10, 32)
  244. if err != nil {
  245. return errors.New("read redis db num is invalid:")
  246. }
  247. SerCfg.RedisCfg.DbNum = int(ret)
  248. // 密码
  249. redis_pwd := setting.SelectElement("Pwd")
  250. if redis_pwd == nil {
  251. return errors.New("read redis password failed")
  252. }
  253. SerCfg.RedisCfg.Pwd = redis_pwd.SelectAttrValue("value", "")
  254. }
  255. // RabbitMQ配置
  256. mqsettings := root.SelectElements("MqSetting")
  257. for _, setting := range mqsettings {
  258. // url
  259. url := setting.SelectElement("Url")
  260. if url == nil {
  261. return errors.New("read rabbitmq url failed")
  262. }
  263. SerCfg.MqCfg.Url = url.SelectAttrValue("value", "")
  264. // exchange
  265. exchange := setting.SelectElement("Exchange")
  266. if exchange == nil {
  267. return errors.New("read rabbitmq exchange failed")
  268. }
  269. SerCfg.MqCfg.Exchange = exchange.SelectAttrValue("value", "entry")
  270. }
  271. // MongoDB配置
  272. mongodbsettings := root.SelectElements("MongoDBSetting")
  273. for _, setting := range mongodbsettings {
  274. // 主机地址
  275. hostName := setting.SelectElement("HostName")
  276. if hostName == nil {
  277. return errors.New("read mongondb hostname failed")
  278. }
  279. SerCfg.MongoDBCfg.HostName = hostName.SelectAttrValue("value", "")
  280. // 端口
  281. port := setting.SelectElement("Port")
  282. if port == nil {
  283. return errors.New("read mongondb port failed")
  284. }
  285. ret, err := strconv.ParseUint(port.SelectAttrValue("value", "5025"), 10, 32)
  286. if err != nil {
  287. return errors.New("read mongondb port failed")
  288. }
  289. SerCfg.MongoDBCfg.Port = int(ret)
  290. // 数据库名
  291. dbname := setting.SelectElement("DBName")
  292. if dbname == nil {
  293. return errors.New("read mongondb dbname failed")
  294. }
  295. SerCfg.MongoDBCfg.DBName = dbname.SelectAttrValue("value", "")
  296. // 用户名
  297. username := setting.SelectElement("Username")
  298. if username == nil {
  299. return errors.New("read mongondb username failed")
  300. }
  301. SerCfg.MongoDBCfg.Username = username.SelectAttrValue("value", "")
  302. // 密码
  303. password := setting.SelectElement("Password")
  304. if password == nil {
  305. return errors.New("read mongondb password failed")
  306. }
  307. SerCfg.MongoDBCfg.Password = password.SelectAttrValue("value", "")
  308. }
  309. // MySQL配置
  310. mysqlsettings := root.SelectElements("MySQLSetting")
  311. for _, setting := range mysqlsettings {
  312. // 主机地址
  313. host := setting.SelectElement("Host")
  314. if host == nil {
  315. return errors.New("read mysql host failed")
  316. }
  317. SerCfg.MySQLCfg.Host = host.SelectAttrValue("value", "")
  318. // 端口
  319. port := setting.SelectElement("Port")
  320. if port == nil {
  321. return errors.New("read mysql port failed")
  322. }
  323. ret, err := strconv.ParseUint(port.SelectAttrValue("value", "3306"), 10, 32)
  324. if err != nil {
  325. return errors.New("read mysql port failed")
  326. }
  327. SerCfg.MySQLCfg.Port = int(ret)
  328. // 数据库名
  329. dbname := setting.SelectElement("DBName")
  330. if dbname == nil {
  331. return errors.New("read mysql dbname failed")
  332. }
  333. SerCfg.MySQLCfg.DBName = dbname.SelectAttrValue("value", "")
  334. // 用户名
  335. username := setting.SelectElement("Username")
  336. if username == nil {
  337. return errors.New("read mysql username failed")
  338. }
  339. SerCfg.MySQLCfg.Username = username.SelectAttrValue("value", "")
  340. // 密码
  341. password := setting.SelectElement("Password")
  342. if password == nil {
  343. return errors.New("read mysql password failed")
  344. }
  345. SerCfg.MySQLCfg.Password = password.SelectAttrValue("value", "")
  346. }
  347. // Tencent配置
  348. tencentsettings := root.SelectElements("Tencent")
  349. for _, setting := range tencentsettings {
  350. // 启用标志
  351. enabled := setting.SelectElement("Enabled")
  352. if enabled == nil {
  353. return errors.New("read tencent enabled failed")
  354. }
  355. ret, err := strconv.ParseUint(enabled.SelectAttrValue("value", "0"), 10, 32)
  356. if err != nil {
  357. return errors.New("read tencent enabled failed")
  358. }
  359. SerCfg.TencentCfg.Enabled = int(ret)
  360. // 密钥ID
  361. secretId := setting.SelectElement("SecretId")
  362. if secretId == nil {
  363. return errors.New("read tencent SecretId failed")
  364. }
  365. SerCfg.TencentCfg.SecretId = secretId.SelectAttrValue("value", "")
  366. // 密钥key
  367. secretKey := setting.SelectElement("SecretKey")
  368. if secretKey == nil {
  369. return errors.New("read tencent SecretKey failed")
  370. }
  371. SerCfg.TencentCfg.SecretKey = secretKey.SelectAttrValue("value", "")
  372. // EndPoint API域名,现网使用 essbasic.tencentcloudapi.com 测试使用 essbasic.test.ess.tencent.cn
  373. endPoint := setting.SelectElement("EndPoint")
  374. if endPoint == nil {
  375. return errors.New("read tencent EndPoint failed")
  376. }
  377. SerCfg.TencentCfg.EndPoint = endPoint.SelectAttrValue("value", "")
  378. // 应用的唯一标识
  379. appId := setting.SelectElement("AppId")
  380. if appId == nil {
  381. return errors.New("read tencent AppId failed")
  382. }
  383. SerCfg.TencentCfg.AppId = appId.SelectAttrValue("value", "")
  384. // 子客企业真实名称
  385. proxyOrganizationName := setting.SelectElement("ProxyOrganizationName")
  386. if proxyOrganizationName == nil {
  387. return errors.New("read tencent ProxyOrganizationName failedd")
  388. }
  389. SerCfg.TencentCfg.ProxyOrganizationName = proxyOrganizationName.SelectAttrValue("value", "")
  390. // 道子客企业OpenId(OrganizationOpenId):简称OrgOpenId,对应通用参数ProxyOrganizationOpenId。
  391. proxyOrganizationOpenId := setting.SelectElement("ProxyOrganizationOpenId")
  392. if proxyOrganizationOpenId == nil {
  393. return errors.New("read tencent proxyOrganizationOpenId failedd")
  394. }
  395. SerCfg.TencentCfg.ProxyOrganizationOpenId = proxyOrganizationOpenId.SelectAttrValue("value", "")
  396. // 子客企业员工/经办人OpenId(OperatorOpenId):简称员工/经办人OpenId。对应通用ProxyOperator中的参数OpenId。
  397. proxyOperatorOpenId := setting.SelectElement("ProxyOperatorOpenId")
  398. if proxyOperatorOpenId == nil {
  399. return errors.New("read tencent proxyOperatorOpenId failedd")
  400. }
  401. SerCfg.TencentCfg.ProxyOperatorOpenId = proxyOperatorOpenId.SelectAttrValue("value", "")
  402. // 电子签推送的回调内容基于此 token
  403. signToken := setting.SelectElement("SignToken")
  404. if signToken == nil {
  405. return errors.New("read tencent signToken failedd")
  406. }
  407. SerCfg.TencentCfg.SignToken = signToken.SelectAttrValue("value", "")
  408. // 电子签推送的回调内容基于此加密Key
  409. signKey := setting.SelectElement("SignKey")
  410. if signKey == nil {
  411. return errors.New("read tencent signKey failedd")
  412. }
  413. SerCfg.TencentCfg.SignKey = signKey.SelectAttrValue("value", "")
  414. }
  415. // 腾讯云配置
  416. tencentCloudsettings := root.SelectElements("TencentCloud")
  417. for _, setting := range tencentCloudsettings {
  418. // 启用标志
  419. enabled := setting.SelectElement("Enabled")
  420. if enabled == nil {
  421. return errors.New("read tencentcloud enabled failed")
  422. }
  423. ret, err := strconv.ParseUint(enabled.SelectAttrValue("value", "0"), 10, 32)
  424. if err != nil {
  425. return errors.New("read tencentcloud enabled failed")
  426. }
  427. SerCfg.TencentCloudCfg.Enabled = int(ret)
  428. // 密钥ID
  429. secretId := setting.SelectElement("SecretId")
  430. if secretId == nil {
  431. return errors.New("read tencentcloud SecretId failed")
  432. }
  433. SerCfg.TencentCloudCfg.SecretId = secretId.SelectAttrValue("value", "")
  434. // 密钥key
  435. secretKey := setting.SelectElement("SecretKey")
  436. if secretKey == nil {
  437. return errors.New("read tencentcloud SecretKey failed")
  438. }
  439. SerCfg.TencentCloudCfg.SecretKey = secretKey.SelectAttrValue("value", "")
  440. // EndPoint API域名
  441. endPoint := setting.SelectElement("FaceIdEndPoint")
  442. if endPoint == nil {
  443. return errors.New("read tencentcloud EndPoint failed")
  444. }
  445. SerCfg.TencentCloudCfg.FaceIdEndPoint = endPoint.SelectAttrValue("value", "")
  446. // 启用标志
  447. dailyQuota := setting.SelectElement("DailyQuota")
  448. if dailyQuota == nil {
  449. return errors.New("read tencentcloud dailyQuota failed")
  450. }
  451. ret, err = strconv.ParseUint(dailyQuota.SelectAttrValue("value", "0"), 10, 32)
  452. if err != nil {
  453. return errors.New("read tencentcloud dailyQuota failed")
  454. }
  455. SerCfg.TencentCloudCfg.DailyQuota = int(ret)
  456. }
  457. // 爱签配置
  458. asignsettings := root.SelectElements("Asign")
  459. for _, setting := range asignsettings {
  460. // url
  461. url := setting.SelectElement("Url")
  462. if url == nil {
  463. return errors.New("read asign url failed")
  464. }
  465. SerCfg.AsignCfg.Url = url.SelectAttrValue("value", "")
  466. // AppId
  467. appId := setting.SelectElement("AppId")
  468. if appId == nil {
  469. return errors.New("read asign AppId failed")
  470. }
  471. SerCfg.AsignCfg.AppId = appId.SelectAttrValue("value", "")
  472. // 私钥
  473. privateKey := setting.SelectElement("PrivateKey")
  474. if privateKey == nil {
  475. return errors.New("read asign PrivateKey failed")
  476. }
  477. SerCfg.AsignCfg.PrivateKey = privateKey.SelectAttrValue("value", "")
  478. // 合同签署回调通知URL
  479. notifyUrl := setting.SelectElement("NotifyUrl")
  480. if notifyUrl == nil {
  481. return errors.New("read asign notifyUrl failed")
  482. }
  483. SerCfg.AsignCfg.NotifyUrl = notifyUrl.SelectAttrValue("value", "")
  484. // 应用的唯一标识
  485. openApiUrl := setting.SelectElement("OpenApiUrl")
  486. if openApiUrl == nil {
  487. return errors.New("read asgin openApiUrl failed")
  488. }
  489. SerCfg.AsignCfg.OpenApiUrl = openApiUrl.SelectAttrValue("value", "")
  490. account := setting.SelectElement("Account")
  491. if account == nil {
  492. return errors.New("read asgin account failed")
  493. }
  494. SerCfg.AsignCfg.Account = account.SelectAttrValue("value", "")
  495. }
  496. return nil
  497. }
  498. func (c *ServiceConfig) GetWebListenAddr() string {
  499. return SerCfg.WebCfg.ListenAddr
  500. }
  501. func (c *ServiceConfig) GetDebugMode() bool {
  502. return SerCfg.WebCfg.DebugMode
  503. }
  504. func (c *ServiceConfig) GetApiKey() string {
  505. return SerCfg.WebCfg.ApiKey
  506. }
  507. func (c *ServiceConfig) GetApiKeyMode() bool {
  508. return SerCfg.WebCfg.ApiKeyMode
  509. }
  510. func (c *ServiceConfig) GetLogSetting() (string, int) {
  511. return SerCfg.LogCfg.LogPath, SerCfg.LogCfg.LogLevel
  512. }
  513. func (c *ServiceConfig) GetDbDriver() string {
  514. return SerCfg.DbCfg.DbDriver
  515. }
  516. func (c *ServiceConfig) GetDbSource() string {
  517. // 尝试解密
  518. var dbUser []byte
  519. ciphertext, _ := hex.DecodeString(SerCfg.DbCfg.DbUser)
  520. if len(ciphertext) > 8 {
  521. ciphertext = ciphertext[4 : len(ciphertext)-8]
  522. dbUser, _ = packet.Decrypt(ciphertext, packet.AESKey, true)
  523. if dbUser == nil {
  524. dbUser = []byte(SerCfg.DbCfg.DbUser)
  525. }
  526. } else {
  527. dbUser = []byte(SerCfg.DbCfg.DbUser)
  528. }
  529. var dbPwd []byte
  530. ciphertext, _ = hex.DecodeString(SerCfg.DbCfg.DbPwd)
  531. if len(ciphertext) > 8 {
  532. ciphertext = ciphertext[4 : len(ciphertext)-8]
  533. dbPwd, _ = packet.Decrypt(ciphertext, packet.AESKey, true)
  534. if dbPwd == nil {
  535. dbPwd = []byte(SerCfg.DbCfg.DbPwd)
  536. }
  537. } else {
  538. dbPwd = []byte(SerCfg.DbCfg.DbPwd)
  539. }
  540. dbsource := fmt.Sprintf("%s/%s@%s:%s/%s",
  541. string(dbUser),
  542. string(dbPwd),
  543. SerCfg.DbCfg.DbAddress,
  544. SerCfg.DbCfg.DbPort,
  545. SerCfg.DbCfg.DbName)
  546. return dbsource
  547. }
  548. func (c *ServiceConfig) GetRedisAddress() string {
  549. redisaccress := fmt.Sprintf("%s:%d",
  550. SerCfg.RedisCfg.Address,
  551. SerCfg.RedisCfg.Port)
  552. return redisaccress
  553. }
  554. func (c *ServiceConfig) GetRedisPwd() string {
  555. return SerCfg.RedisCfg.Pwd
  556. }
  557. func (c *ServiceConfig) GetRedisDbNum() int {
  558. return SerCfg.RedisCfg.DbNum
  559. }
  560. func (c *ServiceConfig) GetRedisConnNum() int {
  561. return SerCfg.RedisCfg.ConnNum
  562. }
  563. func (c *ServiceConfig) GetRedisTimeout() int {
  564. return SerCfg.RedisCfg.TimeOut
  565. }
  566. func (c *ServiceConfig) GetMongoDBHostname() string {
  567. return SerCfg.MongoDBCfg.HostName
  568. }
  569. func (c *ServiceConfig) GetMongoDBPort() int {
  570. return SerCfg.MongoDBCfg.Port
  571. }
  572. func (c *ServiceConfig) GetMongoDBDBName() string {
  573. return SerCfg.MongoDBCfg.DBName
  574. }
  575. func (c *ServiceConfig) GetMongoDBUsername() string {
  576. return SerCfg.MongoDBCfg.Username
  577. }
  578. func (c *ServiceConfig) GetMongoDBPassword() string {
  579. return SerCfg.MongoDBCfg.Password
  580. }
  581. func (c *ServiceConfig) GetMySQLHost() string {
  582. return SerCfg.MySQLCfg.Host
  583. }
  584. func (c *ServiceConfig) GetMySQLPort() int {
  585. return SerCfg.MySQLCfg.Port
  586. }
  587. func (c *ServiceConfig) GetMySQLDBName() string {
  588. return SerCfg.MySQLCfg.DBName
  589. }
  590. func (c *ServiceConfig) GetMySQLUsername() string {
  591. return SerCfg.MySQLCfg.Username
  592. }
  593. func (c *ServiceConfig) GetMySQLPassword() string {
  594. return SerCfg.MySQLCfg.Password
  595. }