userDocRpc.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package rpc
  2. import (
  3. "app.yhyue.com/moapp/jy_docs/rpc/userlib/userlib"
  4. "context"
  5. "fmt"
  6. "github.com/zeromicro/go-zero/core/discov"
  7. "github.com/zeromicro/go-zero/zrpc"
  8. "jy-docs/config"
  9. "jy-docs/public"
  10. "log"
  11. )
  12. // 用户库RPC接口
  13. var jyUserDocLib userlib.UserLib
  14. func init() {
  15. jyUserDocLib = userlib.NewUserLib(zrpc.MustNewClient(zrpc.RpcClientConf{
  16. Etcd: discov.EtcdConf{
  17. Key: config.JyDocsAppConfig.RpcServers.UserDoc.Key,
  18. Hosts: config.JyDocsAppConfig.RpcServers.UserDoc.Address,
  19. },
  20. Timeout: config.JyDocsAppConfig.RpcServers.StdDoc.Timeout,
  21. }))
  22. }
  23. /*
  24. 查询用户文库列表
  25. param
  26. userId 用户id
  27. pageNum 页码
  28. pageSize 每页大小
  29. colloctType 0兑换的 1收藏的 2回收站的
  30. return
  31. 文库列表,文库数量,异常
  32. */
  33. func GetUserDocs(userId string, pageNum, pageSize, colloctType int64) (interface{}, int64, error) {
  34. resp, err := jyUserDocLib.UserDocs(context.Background(), &userlib.UserDocsRequest{
  35. AppId: config.JyDocsAppConfig.AppId,
  36. UserId: userId,
  37. Page: pageNum,
  38. PageSize: pageSize,
  39. UserDocCategory: colloctType,
  40. })
  41. if err != nil {
  42. log.Printf("%s GetUserDocs call error %v\n", userId, err)
  43. return nil, -1, err
  44. }
  45. if resp.Code != 1 {
  46. log.Printf("%s GetUserDocs fail Message %v\n", userId, resp.Message)
  47. return nil, -1, fmt.Errorf("获取文库列表失败")
  48. }
  49. return resp.Data, resp.Count, nil
  50. }
  51. /*
  52. 收藏文库
  53. param
  54. userId 用户id
  55. docId 文库id
  56. return
  57. 异常
  58. */
  59. func SetUserCollect(userId, docId string) error {
  60. resp, err := jyUserDocLib.DocCollect(context.Background(), &userlib.UserCollectRequest{
  61. AppId: config.JyDocsAppConfig.AppId,
  62. UserId: userId,
  63. DocId: docId,
  64. Cost: 0,
  65. })
  66. if err != nil {
  67. log.Printf("%s SetUserCollect call error %v\n", userId, err)
  68. return err
  69. }
  70. if resp.Code != 1 {
  71. log.Printf("%s SetUserCollect fail Message %v\n", userId, resp.Message)
  72. return fmt.Errorf("添加收藏失败")
  73. }
  74. //log.Printf("用户id:%s appid:%d 返回值:%+v\n", userId, config.JyDocsAppConfig.AppId, resp)
  75. return nil
  76. }
  77. /*
  78. 取消收藏
  79. param
  80. userId 用户id
  81. docId 文库id
  82. return
  83. 异常
  84. */
  85. func DelUserCollect(userId, docId string) error {
  86. resp, err := jyUserDocLib.DocCancelCollect(context.Background(), &userlib.UserCancelRequest{
  87. AppId: config.JyDocsAppConfig.AppId,
  88. UserId: userId,
  89. DocId: docId,
  90. })
  91. if err != nil {
  92. log.Printf("%s DelUserCollect call error %v\n", userId, err)
  93. return err
  94. }
  95. if resp.Code != 1 {
  96. log.Printf("%s DelUserCollect fail Message %v\n", userId, resp.Message)
  97. return fmt.Errorf("删除收藏失败")
  98. }
  99. return nil
  100. }
  101. /*
  102. 文库转存
  103. param
  104. userId 用户id
  105. docId 文库id
  106. return
  107. 异常
  108. */
  109. func PayDoc(userId, docId string) error {
  110. resp, err := jyUserDocLib.DocDownload(context.Background(), &userlib.UserCollectRequest{
  111. AppId: config.JyDocsAppConfig.AppId,
  112. UserId: userId,
  113. DocId: docId,
  114. })
  115. if err != nil {
  116. log.Printf("%s SetUserCollect call error %v\n", userId, err)
  117. return err
  118. }
  119. if resp.Code != 1 {
  120. log.Printf("%s PayDoc fail Message %v\n", userId, resp.Message)
  121. return fmt.Errorf("下载文库失败")
  122. }
  123. return nil
  124. }
  125. func TodayCount(userId string) (int64, int64, error) {
  126. resp, err := jyUserDocLib.UserTodayCount(context.Background(), &userlib.UserTodayCountReq{
  127. AppId: config.JyDocsAppConfig.AppId,
  128. UserId: userId,
  129. ProductType: public.ProductTypeMemberFree,
  130. })
  131. if err != nil {
  132. log.Printf("%s UserTodayCount call error %v\n", userId, err)
  133. return 0, 0, err
  134. }
  135. if resp.Code != 1 {
  136. log.Printf("%s UserTodayCount fail Message %v\n", userId, resp.Message)
  137. return 0, 0, fmt.Errorf("获取用户下载次数失败")
  138. }
  139. return resp.Count, resp.TotalCount, nil
  140. }