userDocRpc.go 3.5 KB

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