jydocs.go 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package rpc
  2. import (
  3. "context"
  4. "fmt"
  5. "log"
  6. "app.yhyue.com/moapp/jy_docs/rpc/stdlib/stdlib"
  7. "app.yhyue.com/moapp/jy_docs/rpc/stdlib/stdlibclient"
  8. "app.yhyue.com/moapp/jy_docs/rpc/userlib/userlib"
  9. "app.yhyue.com/moapp/jy_docs/rpc/userlib/userlibclient"
  10. "github.com/gogf/gf/v2/os/gcfg"
  11. "github.com/gogf/gf/v2/os/gctx"
  12. "github.com/zeromicro/go-zero/core/discov"
  13. "github.com/zeromicro/go-zero/zrpc"
  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.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.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. log.Println(resp, "++++++++", err)
  42. if err != nil {
  43. log.Printf("%s SetUserCollect call error %v\n", userId, err)
  44. return err
  45. }
  46. if resp.Code != 1 {
  47. log.Printf("%s PayDoc fail Message %v\n", userId, resp.Message)
  48. return fmt.Errorf("下载文库失败")
  49. }
  50. return nil
  51. }
  52. /*
  53. 获取文库详情
  54. param
  55. userId 用户id
  56. docId 文库id
  57. return
  58. DocInfo 文库详情
  59. error 异常
  60. */
  61. func GetDocDetail(userId, docId string) (*stdlib.DocInfo, bool, bool, error) {
  62. resp, err := jyStdDocStdlib.DocGetCheck(context.Background(), &stdlib.DocGetCheckReq{
  63. AppId: appId,
  64. UserId: userId,
  65. DocId: docId,
  66. })
  67. if err != nil {
  68. log.Printf("%s GetDocDetail call error %v\n", userId, err)
  69. return nil, false, false, err
  70. }
  71. if resp.Code != 1 {
  72. log.Printf("%s GetDocDetail fail Message %v\n", userId, resp.Msg)
  73. return nil, false, false, fmt.Errorf("获取内容失败")
  74. }
  75. if resp.DocDeail == nil {
  76. return nil, false, false, fmt.Errorf("查询文档异常")
  77. }
  78. return resp.DocDeail, resp.IsBuy, resp.IsCollect, nil
  79. }