jydocs.go 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package rpc
  2. import (
  3. "app.yhyue.com/moapp/jy_docs/rpc/stdlib/stdlib"
  4. "app.yhyue.com/moapp/jy_docs/rpc/stdlib/stdlibclient"
  5. "app.yhyue.com/moapp/jy_docs/rpc/userlib/userlib"
  6. "app.yhyue.com/moapp/jy_docs/rpc/userlib/userlibclient"
  7. "context"
  8. "fmt"
  9. "github.com/gogf/gf/v2/os/gcfg"
  10. "github.com/gogf/gf/v2/os/gctx"
  11. "github.com/tal-tech/go-zero/core/discov"
  12. "github.com/tal-tech/go-zero/zrpc"
  13. "log"
  14. )
  15. var (
  16. jyUserDocLib userlibclient.UserLib
  17. jyStdDocStdlib stdlibclient.Stdlib
  18. appId string
  19. )
  20. func init() {
  21. jyUserDocLib = userlibclient.NewUserLib(zrpc.MustNewClient(zrpc.RpcClientConf{
  22. Etcd: discov.EtcdConf{
  23. Hosts: gcfg.Instance().MustGet(gctx.New(), "etcd.jydocs.userlib.address", nil).Strings(),
  24. Key: gcfg.Instance().MustGet(gctx.New(), "etcd.jydocs.userlib.key", nil).String(),
  25. },
  26. }))
  27. jyStdDocStdlib = stdlibclient.NewStdlib(zrpc.MustNewClient(zrpc.RpcClientConf{
  28. Etcd: discov.EtcdConf{
  29. Hosts: gcfg.Instance().MustGet(gctx.New(), "etcd.jydocs.stdlib.address", nil).Strings(),
  30. Key: gcfg.Instance().MustGet(gctx.New(), "etcd.jydocs.stdlib.key", nil).String(),
  31. },
  32. }))
  33. appId = gcfg.Instance().MustGet(gctx.New(), "appid", "10000").String()
  34. }
  35. func PayDoc(userId, docId string) error {
  36. resp, err := jyUserDocLib.DocDownload(context.Background(), &userlib.UserCollectRequest{
  37. AppId: appId,
  38. UserId: userId,
  39. DocId: docId,
  40. })
  41. if err != nil {
  42. log.Printf("%s SetUserCollect call error %v\n", userId, err)
  43. return err
  44. }
  45. if resp.Code != 1 {
  46. log.Printf("%s PayDoc fail Message %v\n", userId, resp.Message)
  47. return fmt.Errorf("下载文库失败")
  48. }
  49. return nil
  50. }
  51. /*
  52. 获取文库详情
  53. param
  54. userId 用户id
  55. docId 文库id
  56. return
  57. DocInfo 文库详情
  58. error 异常
  59. */
  60. func GetDocDetail(userId, docId string) (*stdlib.DocInfo, bool, bool, error) {
  61. resp, err := jyStdDocStdlib.DocGetCheck(context.Background(), &stdlib.DocGetCheckReq{
  62. AppId: appId,
  63. UserId: userId,
  64. DocId: docId,
  65. })
  66. if err != nil {
  67. log.Printf("%s GetDocDetail call error %v\n", userId, err)
  68. return nil, false, false, err
  69. }
  70. if resp.Code != 1 {
  71. log.Printf("%s GetDocDetail fail Message %v\n", userId, resp.Msg)
  72. return nil, false, false, fmt.Errorf("获取内容失败")
  73. }
  74. if resp.DocDeail == nil {
  75. return nil, false, false, fmt.Errorf("查询文档异常")
  76. }
  77. return resp.DocDeail, resp.IsBuy, resp.IsCollect, nil
  78. }