stdDocRpc.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  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. "context"
  6. "fmt"
  7. "github.com/zeromicro/go-zero/core/discov"
  8. "github.com/zeromicro/go-zero/zrpc"
  9. "jy-docs/config"
  10. "log"
  11. )
  12. // 标准库RPC接口
  13. var jyStdDocStdlib stdlibclient.Stdlib
  14. func init() {
  15. jyStdDocStdlib = stdlibclient.NewStdlib(zrpc.MustNewClient(zrpc.RpcClientConf{
  16. Etcd: discov.EtcdConf{
  17. Key: config.JyDocsAppConfig.RpcServers.StdDoc.Key,
  18. Hosts: config.JyDocsAppConfig.RpcServers.StdDoc.Address,
  19. },
  20. }))
  21. }
  22. /*
  23. 检索文库
  24. param
  25. userId 用户id
  26. keyWord 关键词
  27. tag 分类
  28. pageNum 页码
  29. pageSize 每页数量
  30. tSort 时间排序
  31. dSort 下载排序
  32. vSort 浏览量排序
  33. */
  34. func GetDocQuery(userId, keyWord, tag string, pageNum, pageSize int64, sort string) ([]*stdlib.Doc, int64, error) {
  35. param := &stdlib.DocQueryRequest{
  36. AppId: config.JyDocsAppConfig.AppId,
  37. KeyWord: keyWord,
  38. PageSize: pageSize,
  39. PageNum: pageNum,
  40. }
  41. if tag != "" {
  42. param.DocTag = []string{tag}
  43. }
  44. sortArr := []string{}
  45. switch sort { //倒序字段前加-,uploadDate:上架时间 viewTimes:浏览量 downTimes:下载量
  46. case "dSort": //下载量倒叙
  47. sortArr = append(sortArr, "-downTimes")
  48. case "vSort": //浏览量倒叙
  49. sortArr = append(sortArr, "-viewTimes")
  50. default: // "tSort"上传时间倒叙
  51. sortArr = append(sortArr, "-uploadDate")
  52. }
  53. param.Sort = sortArr
  54. resp, err := jyStdDocStdlib.DocQuery(context.Background(), param)
  55. if err != nil {
  56. log.Printf("%s SetUserCollect call error %v\n", userId, err)
  57. return nil, -1, err
  58. }
  59. if resp.Code != 1 {
  60. log.Printf("%s SetUserCollect fail Message %v\n", userId, resp.Msg)
  61. return nil, -1, fmt.Errorf("查询失败")
  62. }
  63. return resp.Docs, resp.Total, nil
  64. }
  65. /*
  66. 获取活动列表
  67. param
  68. userId 用户id
  69. code 活动编号
  70. pageNum 页码
  71. pageSize 每页数量
  72. return
  73. 文库列表、异常
  74. */
  75. func GeActivityList(userId string, code, pageNum, pageSize int64) ([]*stdlib.DocActivity, error) {
  76. resp, err := jyStdDocStdlib.DocActivity(context.Background(), &stdlib.DocActivityReq{
  77. AppId: config.JyDocsAppConfig.AppId,
  78. ActivityId: code,
  79. PageNum: pageNum,
  80. PageSize: pageSize,
  81. UserId: userId,
  82. })
  83. if err != nil {
  84. log.Printf("%s GeActivityList call error %v\n", userId, err)
  85. return nil, err
  86. }
  87. if resp.Code != 1 {
  88. log.Printf("%s GeActivityList fail Message %v\n", userId, resp.Msg)
  89. return nil, fmt.Errorf("获取列表失败")
  90. }
  91. return resp.Docs, nil
  92. }
  93. /*
  94. 获取文库详情
  95. param
  96. userId 用户id
  97. docId 文库id
  98. return
  99. DocInfo 文库详情
  100. error 异常
  101. */
  102. func GetDocDetail(userId, docId string) (*stdlib.DocInfo, bool, bool, error) {
  103. resp, err := jyStdDocStdlib.DocGetCheck(context.Background(), &stdlib.DocGetCheckReq{
  104. AppId: config.JyDocsAppConfig.AppId,
  105. UserId: userId,
  106. DocId: docId,
  107. })
  108. if err != nil {
  109. log.Printf("%s GetDocDetail call error %v\n", userId, err)
  110. return nil, false, false, err
  111. }
  112. if resp.Code != 1 {
  113. log.Printf("%s GetDocDetail fail Message %v\n", userId, resp.Msg)
  114. return nil, false, false, fmt.Errorf("获取内容失败")
  115. }
  116. if resp.DocDeail == nil {
  117. return nil, false, false, fmt.Errorf("查询文档异常")
  118. }
  119. return resp.DocDeail, resp.IsBuy, resp.IsCollect, nil
  120. }
  121. /*
  122. 文库浏览次数、下载次数统计
  123. param
  124. userId 用户id
  125. docId 文库id
  126. sign 1增加下载次数 2增加浏览次数 3评分
  127. */
  128. const Down int32 = 1
  129. const View int32 = 2
  130. func DocStatistics(userId, docId string, sign int32) {
  131. resp, err := jyStdDocStdlib.DocStatistics(context.Background(), &stdlib.DocStatisticsReq{
  132. AppId: config.JyDocsAppConfig.AppId,
  133. DocId: docId,
  134. DocStatisticsType: sign,
  135. })
  136. if err != nil {
  137. log.Printf("%s DocStatistics call error %v\n", userId, err)
  138. }
  139. if !resp.State {
  140. log.Printf("%s DocStatistics fail Message %v\n", userId, resp)
  141. }
  142. }