소스 검색

feat:p525 搜索接口调整

fuwencai 1 년 전
부모
커밋
5d1867a205
3개의 변경된 파일20개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 0
      rpc/stdlib/stdlib.go
  2. 1 1
      services/stdlib/docIndexTag.go
  3. 17 1
      services/stdlib/docService.go

+ 2 - 0
rpc/stdlib/stdlib.go

@@ -8,6 +8,7 @@ import (
 	"app.yhyue.com/moapp/jy_docs/rpc/stdlib/internal/config"
 	"app.yhyue.com/moapp/jy_docs/rpc/stdlib/internal/server"
 	"app.yhyue.com/moapp/jy_docs/rpc/stdlib/internal/svc"
+	jyDocsRpcpartner "app.yhyue.com/moapp/jy_docs/services/partner"
 	jyDocsRpcUtil "app.yhyue.com/moapp/jy_docs/services/util"
 	"github.com/zeromicro/go-zero/core/conf"
 	"github.com/zeromicro/go-zero/zrpc"
@@ -23,6 +24,7 @@ func main() {
 	if c.JyDocsMysqlDB.DataSourceName != "" && c.EsConfig.Addr != "" {
 		jyDocsRpcUtil.InitDB(c.JyDocsMysqlDB.DataSourceName, c.JyDocsMysqlDB.DriverName, c.JyDocsMysqlDB.MaxOpenConn, c.JyDocsMysqlDB.MaxIdleConn)
 		jyDocsRpcUtil.InitEs(c.EsConfig.Addr, c.EsConfig.Pool, c.EsConfig.UserName, c.EsConfig.Password)
+		jyDocsRpcpartner.InitDocClass()
 		// jyDocsRpcUtil.InitOss(c.FileSystemConf)
 		ctx := svc.NewServiceContext(c)
 		srv := server.NewStdlibServer(ctx)

+ 1 - 1
services/stdlib/docIndexTag.go

@@ -10,7 +10,7 @@ import (
 func DocIndexTag() *stdlib.DocIndexTagRes {
 	tagRes := []map[string]interface{}{}
 	tagNameList := []string{}
-	jyDocsRpcUtil.GetJyDocsDB().Raw("SELECT dc.name as name FROM doc_class_statistics dcs left join doc_class dc on (dcs.code = dc.code)  where dcs.state=0 and dc.`level`=1 AND dc.state = 0 order by total").Scan(&tagRes)
+	jyDocsRpcUtil.GetJyDocsDB().Raw("SELECT dc.name as name FROM doc_class_statistics dcs left join doc_class dc on (dcs.code = dc.code and dcs.state = dc.state )  where  dc.`level`=1 AND order by total").Scan(&tagRes)
 	if tagRes != nil && len(tagRes) > 0 {
 		for i := 0; i < len(tagRes); i++ {
 			tagNameList = append(tagNameList, common.ObjToString(tagRes[i]["name"]))

+ 17 - 1
services/stdlib/docService.go

@@ -1,6 +1,7 @@
 package stdlib
 
 import (
+	"app.yhyue.com/moapp/jy_docs/services/partner"
 	"fmt"
 	"log"
 	"regexp"
@@ -106,6 +107,21 @@ func DocQuery(in *stdlib.DocQueryRequest) *stdlib.DocQueryResponse {
 			}
 		}
 		for _, v := range *list {
+			tags := strings.Split(common.ObjToString(v["docTags"]), "")
+			tmptags := []string{}
+			subTag := ""
+			for i := 0; i < len(tags); i++ {
+				dtpKey := fmt.Sprintf("p_%s_0_tag", tags[i]) //一级tag
+				if _, ok := partner.DocClassMap[dtpKey]; ok && len(tmptags) == 0 {
+					tmptags = append(tmptags, tags[i])
+				} else {
+					subTag = tags[i]
+				}
+				if subTag != "" && len(tags) > 0 {
+					tmptags = append(tmptags, subTag)
+					break
+				}
+			}
 			doc := &stdlib.Doc{
 				DocId:        common.ObjToString(v["id"]),
 				DocName:      common.ObjToString(v["docName"]),
@@ -119,7 +135,7 @@ func DocQuery(in *stdlib.DocQueryRequest) *stdlib.DocQueryResponse {
 				PreviewImgId: common.ObjToString(v["previewImgId"]),
 				ProductType:  common.Int64All(v["productType"]),
 				Source:       common.Int64All(v["source"]),
-				DocTags:      common.ObjToString(v["docTags"]),
+				DocTags:      strings.Join(tmptags, ","),
 			}
 			highlight, _ := v["highlight"].(map[string][]string)
 			if len(highlight["docName"]) > 0 {