config.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package config
  2. import (
  3. "app.yhyue.com/moapp/jybase/common"
  4. "app.yhyue.com/moapp/jypkg/middleground"
  5. "github.com/gogf/gf/v2/frame/g"
  6. "github.com/gogf/gf/v2/os/gctx"
  7. "github.com/gogf/gf/v2/os/gcfg"
  8. )
  9. type appConfig struct {
  10. WebPort string `json:"webport"` //程序端口
  11. AppId string `json:"appid"` //程序标识
  12. OssAdmin string `json:"ossAdmin"` //阿里云oss域名
  13. OssBucket struct {
  14. Std string `json:"std"` //标准库bucket
  15. User string `json:"user"` //用户库
  16. Priv string `json:"priv"` //缩略图片
  17. } `json:"ossBucket"` //阿里云ossbucket
  18. RpcServers struct {
  19. StdDoc rpcConfig `json:"stdDoc"` //标准库rpc接口
  20. UserDoc rpcConfig `json:"userDoc"` //用户收藏rpc接口
  21. Points rpcConfig `json:"points"` //剑鱼积分rpc接口
  22. JyFile rpcConfig `json:"jyFile"` //剑鱼文件rpc接口
  23. Partner rpcConfig `json:"partner"` //剑鱼文库豆丁购买和下载接口rpc接口
  24. } `json:"rpcServers"` //rpc服务配置
  25. IndexSearchTag []string `json:"indexSearchTag"` //首页标签
  26. SearchNumLimit int64 `json:"searchNumLimit"` //检索条数限制
  27. ShareUrl string `json:"shareUrl"` //分享地址
  28. DoudingImg string `json:"doudingImg"` // 豆丁封面图片地址
  29. Price map[int64]map[int64]struct {
  30. Rate int64 `json:"rate"` // 价格转换比率
  31. Base int64 `json:"base"` // 价格基数
  32. } `json:"price"`
  33. DocMember struct {
  34. Times int64 `json:"times"` // 会员免费下载次数
  35. Discount int64 `json:"discount"` // 会员折扣
  36. FreeDocLimit int64 `json:"freeDocLimit"` // 豆丁会员免费下载限制
  37. } `json:"docMember"`
  38. }
  39. /*
  40. 例如
  41. "price": {
  42. "2": { // 对应文档来源 文档来源:;2:豆丁;
  43. "1": { // 对应商品类型 1:会员免费;2:精品(付费)
  44. "rate": 0, // 比率
  45. "base": 50 // 基数 例如会员免费文档 50+0*price = 50
  46. },
  47. "2": {
  48. "rate": 100, // 例如 精品 100+100*price
  49. "base": 100
  50. }
  51. }
  52. }
  53. */
  54. type rpcConfig struct {
  55. Key string `json:"key"`
  56. Address []string `json:"address"` //集群地址
  57. Timeout int64 `json:"timeout,omitempty"` // 超时时间 毫秒
  58. }
  59. var JyDocsAppConfig appConfig
  60. var Middleground *middleground.Middleground
  61. func init() {
  62. g.Cfg().GetAdapter().(*gcfg.AdapterFile).SetFileName("config.yaml")
  63. var ctx = gctx.New()
  64. Middleground = middleground.NewMiddleground(g.Cfg().MustGet(ctx, "etcd.hosts").Strings()).
  65. RegUserCenter(g.Cfg().MustGet(ctx, "userCenterKey").String()).
  66. RegPowerCheckCenter(g.Cfg().MustGet(ctx, "powerCheckCenterKey").String())
  67. common.ReadConfig(&JyDocsAppConfig)
  68. }