ソースを参照

相关推荐接口

wangkaiyue 4 年 前
コミット
6084edb64f

+ 1 - 1
jydocs-back/go.mod

@@ -4,7 +4,7 @@ go 1.13
 
 require (
 	app.yhyue.com/moapp/jyPoints v0.0.0-20210319094929-f8c029fa5c82
-	app.yhyue.com/moapp/jy_docs v0.0.0-20210323090943-7ac2be34cfa1
+	app.yhyue.com/moapp/jy_docs v0.0.0-20210324093828-3326fec4c7df
 	app.yhyue.com/moapp/jybase v0.0.0-20210322021809-141cc2c37946
 	app.yhyue.com/moapp/jyfs v0.0.0-20210319011832-6cf539ddc5cd
 	app.yhyue.com/moapp/message v0.0.0-20210322082125-2a9762351105

+ 2 - 0
jydocs-back/go.sum

@@ -57,6 +57,8 @@ app.yhyue.com/moapp/jy_docs v0.0.0-20210323032815-1d9b66bd95c0 h1:I8NVbS/fuLVMmE
 app.yhyue.com/moapp/jy_docs v0.0.0-20210323032815-1d9b66bd95c0/go.mod h1:XQ0SPQX4rLnOBelx6WRl8wyRT6T9xhfGzxldglLsBgU=
 app.yhyue.com/moapp/jy_docs v0.0.0-20210323090943-7ac2be34cfa1 h1:X+t4IH73+ftQv//DQRhP/r6leYNoew/w4Eebc++l3U4=
 app.yhyue.com/moapp/jy_docs v0.0.0-20210323090943-7ac2be34cfa1/go.mod h1:XQ0SPQX4rLnOBelx6WRl8wyRT6T9xhfGzxldglLsBgU=
+app.yhyue.com/moapp/jy_docs v0.0.0-20210324093828-3326fec4c7df h1:OR5IlGTaeiKVTFAC7VJ5TSgc+tGEjKCY3+2abvr7lrM=
+app.yhyue.com/moapp/jy_docs v0.0.0-20210324093828-3326fec4c7df/go.mod h1:XQ0SPQX4rLnOBelx6WRl8wyRT6T9xhfGzxldglLsBgU=
 app.yhyue.com/moapp/jybase v0.0.0-20210317020927-18b0165f5ff9 h1:LVIuqXMqcclMwBbSmqEzXi0nIEiir+a2GpWAqksmfzk=
 app.yhyue.com/moapp/jybase v0.0.0-20210317020927-18b0165f5ff9/go.mod h1:29ShuI8y7qEyg2KviHSx1iamiCioBKdTMm2ndVzWAhk=
 app.yhyue.com/moapp/jybase v0.0.0-20210318061912-f5594310c8fe h1:RSQIrriyi534CCrI/sSLGW+Rd0X/0W4VDDXIalHVo8c=

+ 10 - 0
jydocs-back/public/util.go

@@ -16,3 +16,13 @@ func PageNumParse(pageNum, pageSize, maxNum int64) (num, size int64, err error)
 	size = pageSize
 	return
 }
+
+func PageRange(num, min, max int64) int64 {
+	if num < min {
+		return min
+	}
+	if num > max {
+		return max
+	}
+	return num
+}

+ 1 - 1
jydocs-back/rpc/stdDocRpc.go

@@ -35,7 +35,7 @@ param
 	dSort 下载排序
 	vSort 浏览量排序
 */
-func GetDocQuery(userId, keyWord, tag string, pageNum, pageSize int64, sort string) (interface{}, int64, error) {
+func GetDocQuery(userId, keyWord, tag string, pageNum, pageSize int64, sort string) ([]*stdlib.Doc, int64, error) {
 	param := &stdlib.DocQueryRequest{
 		AppId:    config.JyDocsAppConfig.AppId,
 		KeyWord:  keyWord,

+ 37 - 6
jydocs-back/servers/stdDoc.go

@@ -14,12 +14,13 @@ import (
 
 type StdDoc struct {
 	*xweb.Action
-	search       xweb.Mapper `xweb:"/search"`         //检索文库
-	indexTag     xweb.Mapper `xweb:"/indexTag"`       //首页搜索标签
-	detail       xweb.Mapper `xweb:"/detail"`         //文库详情
-	getDoc       xweb.Mapper `xweb:"/get(Show|Down)"` //文库在线查看 or 下载
-	topList      xweb.Mapper `xweb:"/topList"`        //最新文档&热门下载
-	activityList xweb.Mapper `xweb:"/activityList"`   //活动文库(精品推荐、兑换榜)
+	search       xweb.Mapper `xweb:"/search"`           //检索文库
+	indexTag     xweb.Mapper `xweb:"/indexTag"`         //首页搜索标签
+	detail       xweb.Mapper `xweb:"/detail"`           //文库详情
+	recommend    xweb.Mapper `xweb:"/detail/recommend"` //相关推荐
+	getDoc       xweb.Mapper `xweb:"/get(Show|Down)"`   //文库在线查看 or 下载
+	topList      xweb.Mapper `xweb:"/topList"`          //最新文档&热门下载
+	activityList xweb.Mapper `xweb:"/activityList"`     //活动文库(精品推荐、兑换榜)
 }
 
 func (stdDoc *StdDoc) Search() {
@@ -94,6 +95,36 @@ func (stdDoc *StdDoc) Detail() {
 	stdDoc.ServeJson(NewResult(rData, errMsg))
 }
 
+func (stdDoc *StdDoc) Recommend() {
+	userId := common.ObjToString(stdDoc.GetSession("userId"))
+	rData, errMsg := func() (interface{}, error) {
+		docId := stdDoc.GetString("docId")
+		docTag := stdDoc.GetString("docTag")
+		num, _ := stdDoc.GetInt("num")
+		num = public.PageRange(num, 1, 10)
+		if strings.Index(docTag, ",") > -1 {
+			docTag = strings.Split(docTag, ",")[0]
+		}
+		list, _, err := rpc.GetDocQuery(userId, "", docTag, 1, num+1, "dSort")
+		if err != nil {
+			return nil, err
+		}
+		returnList := []interface{}{}
+		for _, v := range list {
+			if docId == v.DocId || len(returnList) >= common.IntAll(num) {
+				continue
+			}
+			v.PreviewImgId = fmt.Sprintf("https://%s.%s/%s", config.JyDocsAppConfig.OssBucket.Priv, config.JyDocsAppConfig.OssAdmin, v.PreviewImgId)
+			returnList = append(returnList, v)
+		}
+		return returnList, nil
+	}()
+	if errMsg != nil {
+		log.Printf("%s StdDoc detail err:%s\n", userId, errMsg.Error())
+	}
+	stdDoc.ServeJson(NewResult(rData, errMsg))
+}
+
 func (stdDoc *StdDoc) GetDoc(sign string) {
 	userId := common.ObjToString(stdDoc.GetSession("userId"))
 	rData, errMsg := func() (interface{}, error) {