config.go 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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 int `json:"times"` // 会员免费下载次数
  35. Discount int64 `json:"discount"` // 会员折扣
  36. Source []string `json:"source"` // 留资source
  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. }
  58. var JyDocsAppConfig appConfig
  59. var Middleground *middleground.Middleground
  60. func init() {
  61. g.Cfg().GetAdapter().(*gcfg.AdapterFile).SetFileName("config.yaml")
  62. var ctx = gctx.New()
  63. Middleground = middleground.NewMiddleground(g.Cfg().MustGet(ctx, "etcd.hosts").Strings()).
  64. RegUserCenter(g.Cfg().MustGet(ctx, "userCenterKey").String()).
  65. RegPowerCheckCenter(g.Cfg().MustGet(ctx, "powerCheckCenterKey").String())
  66. common.ReadConfig(&JyDocsAppConfig)
  67. }