Forráskód Böngészése

wip:首页文库数据开发

wangshan 1 éve
szülő
commit
082d452e26
5 módosított fájl, 86 hozzáadás és 34 törlés
  1. 8 4
      src/config.json
  2. 9 0
      src/db.json
  3. 1 1
      src/go.mod
  4. 2 2
      src/go.sum
  5. 66 27
      src/jfw/front/index.go

+ 8 - 4
src/config.json

@@ -469,19 +469,23 @@
   "indexDocClass": [
     {
       "class": "招标文件",
-      "search": "招标文件"
+      "search": "招标文件",
+      "code": "02"
     },
     {
       "class": "办公文档",
-      "search": "招标投标"
+      "search": "招标投标",
+      "code": "07"
     },
     {
       "class": "行业报告",
-      "search": "行业报告"
+      "search": "行业报告",
+      "code": "03"
     },
     {
       "class": "建筑/环境",
-      "search": "建筑/环境"
+      "search": "建筑/环境",
+      "code": "16"
     }
   ]
 }

+ 9 - 0
src/db.json

@@ -57,6 +57,15 @@
       "password": "",
       "esIndex": "bidding",
       "esType": "bidding"
+    },
+    "doc": {
+      "address": "http://192.168.3.242:9200",
+      "size": 30,
+      "version": "v7",
+      "userName": "elastic",
+      "password": "elastic",
+      "esIndex": "jydoc",
+      "esType": "jydoc"
     }
   },
   "redis": {

+ 1 - 1
src/go.mod

@@ -6,7 +6,7 @@ require (
 	app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230308011651-df591d32df88
 	app.yhyue.com/moapp/jybase v0.0.0-20240412015757-6d8429bb4dae
 	app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545
-	app.yhyue.com/moapp/jypkg v1.21.8
+	app.yhyue.com/moapp/jypkg v1.21.9
 	bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.20
 	github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67
 	github.com/bwmarrin/snowflake v0.3.0

+ 2 - 2
src/go.sum

@@ -20,8 +20,8 @@ app.yhyue.com/moapp/jybase v0.0.0-20240412015757-6d8429bb4dae/go.mod h1:XHNATN6t
 app.yhyue.com/moapp/jyfs v0.0.0-20231024061508-480c270480d4/go.mod h1:61hzZ3dZHXL28BNl8BOgZsvM2S5UVY5YFzOkEUPrSu4=
 app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545 h1:+Lak4m1zgsigQloOsvp8AJ+0XeX/+PGp9QP550xlbBQ=
 app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545/go.mod h1:uFrsdUBFbETiJlEmr4PtJWPsZlUpPj2bHQRhryu6ggk=
-app.yhyue.com/moapp/jypkg v1.21.8 h1:J5CS2DJRKVsiKhEQ4wGRdtUEbLrVDyi70zmusm+8uaM=
-app.yhyue.com/moapp/jypkg v1.21.8/go.mod h1:FylaC4MJ4G36WndktgeZfc8jTq3uvBGWIwbk02xfdQI=
+app.yhyue.com/moapp/jypkg v1.21.9 h1:puRB1/7nJyEk3dUEnEz3V3ZPLABVwDfLYGuOw+BIJP0=
+app.yhyue.com/moapp/jypkg v1.21.9/go.mod h1:FylaC4MJ4G36WndktgeZfc8jTq3uvBGWIwbk02xfdQI=
 app.yhyue.com/moapp/message v0.0.0-20231204024949-8c7145bfc161 h1:WGi4OEIoqw6NpNFGioUEBZnjK9aBa+xJqf/5WY+QyhM=
 app.yhyue.com/moapp/message v0.0.0-20231204024949-8c7145bfc161/go.mod h1:0Oj8SB4pVjdCLD28sy2zyM3hS0WHGpNuVcakLW43GmI=
 bp.jydev.jianyu360.cn/BP/jynsq v0.0.0-20220222052708-ebc43af90698/go.mod h1:ojo/AUH9Yr1wzarEjOaNMkj1Cet/9r8IgLyba64Z52E=

+ 66 - 27
src/jfw/front/index.go

@@ -301,7 +301,46 @@ func GetDocsData() (docClass []string, indexDocs [][]map[string]interface{}) {
 	//浏览量前十的一级分类
 	docClassNames := config.Sysconfig["indexDocClass"].([]interface{})
 	if docClassNames != nil && len(docClassNames) > 0 {
-		docSql := `SELECT d.id,d.docName,d.docFileSuffix,d.docTags,d.previewImgId,d.productType,d.source FROM jydocs.doc d LEFT JOIN jydocs.doc_statistics ds ON d.id=ds.docId WHERE FIND_IN_SET(?,d.docTags) ORDER BY ds.viewTimes DESC LIMIT 10 `
+		indexDoc := []map[string]interface{}{}
+		//docSql := `SELECT d.id,d.docName,d.docFileSuffix,d.docTags,d.previewImgId,d.productType,d.source FROM jydocs.doc d LEFT JOIN jydocs.doc_statistics ds ON d.id=ds.docId WHERE FIND_IN_SET(?,d.docTags) ORDER BY ds.viewTimes DESC LIMIT 10 `
+		var docFormatFunc = func(docs *[]map[string]interface{}) {
+			for dock, docv := range *docs {
+				if dock > 7 {
+					break
+				}
+				previewImg := fmt.Sprintf(ossUrl, common.InterfaceToStr(docv["previewImgId"]))
+				if common.IntAll(docv["source"]) == 2 {
+					previewImg = fmt.Sprintf(docinUrl, common.InterfaceToStr(docv["previewImgId"]))
+				}
+				fileSuffix := common.InterfaceToStr(docv["docFileSuffix"])
+				//文件类型,1 doc 2 pdf 3 xls 4 ppt 5 txt 6 其他
+				docFileType := common.IntAll(docv["docFileType"])
+				switch docFileType {
+				case 1:
+					fileSuffix = "doc"
+				case 2:
+					fileSuffix = "pdf"
+				case 3:
+					fileSuffix = "xls"
+				case 4:
+					fileSuffix = "ppt"
+				case 5:
+					fileSuffix = "txt"
+				default:
+					fileSuffix = "其他"
+				}
+				//if strings.HasPrefix(fileSuffix, ".") {
+				//	fileSuffix = strings.ReplaceAll(fileSuffix, ".", "")
+				//}
+				indexDoc = append(indexDoc, map[string]interface{}{
+					"id":            common.InterfaceToStr(docv["id"]),
+					"docName":       common.InterfaceToStr(docv["docName"]),
+					"docFileSuffix": fileSuffix,
+					"previewImg":    previewImg,
+					"productType":   common.IntAll(docv["productType"]),
+				})
+			}
+		}
 		for _, dv := range docClassNames {
 			tmpClass := common.ObjToMap(dv)
 			if tmpClass == nil {
@@ -309,33 +348,34 @@ func GetDocsData() (docClass []string, indexDocs [][]map[string]interface{}) {
 			}
 			name := common.InterfaceToStr((*tmpClass)["class"])
 			search := common.InterfaceToStr((*tmpClass)["search"])
-			indexDoc := []map[string]interface{}{}
-			docs := public.BaseMysql.SelectBySql(docSql, search)
-			if docs != nil && len(*docs) > 0 {
-				for dock, docv := range *docs {
-					if dock > 7 {
-						break
-					}
-					previewImg := fmt.Sprintf(ossUrl, common.InterfaceToStr(docv["previewImgId"]))
-					if common.IntAll(docv["source"]) == 2 {
-						previewImg = fmt.Sprintf(docinUrl, common.InterfaceToStr(docv["previewImgId"]))
-					}
-					fileSuffix := common.InterfaceToStr(docv["docFileSuffix"])
-					if strings.HasPrefix(fileSuffix, ".") {
-						fileSuffix = strings.ReplaceAll(fileSuffix, ".", "")
-					}
-					indexDoc = append(indexDoc, map[string]interface{}{
-						"id":            common.InterfaceToStr(docv["id"]),
-						"docName":       common.InterfaceToStr(docv["docName"]),
-						"docFileSuffix": fileSuffix,
-						"previewImg":    previewImg,
-						"productType":   common.IntAll(docv["productType"]),
-					})
+			code := common.InterfaceToStr((*tmpClass)["code"])
+			//2.0 推荐表数据
+			var docByTidb = func() {
+				docSql := fmt.Sprintf(`SELECT d.id, d.docName, d.docFileType, d.docFileSuffix, d.previewImgId, d.productType, d.source FROM doc d LEFT JOIN doc_recommend dr ON d.id = dr.doc_id WHERE dr.region_state = 1  AND dr.doc_class_code = '%s'  ORDER BY dr.create_date DESC;`, code)
+				docs := public.BaseMysql.SelectBySql(docSql)
+				if docs != nil && len(*docs) > 0 {
+					docFormatFunc(docs)
 				}
 			}
-			docClass = append(docClass, name)
-			indexDocs = append(indexDocs, indexDoc)
-
+			docByTidb()
+			//1.0 查es
+			var docByEs = func() {
+				query := fmt.Sprintf(`{"query":{"bool":{"must":[{"term":{"docTags":"%s"}}]}},"size":10,"sort":[{"viewTimes":"desc"}]}`, search)
+				docs := public.Doc.Get("jydoc", "jydoc", query)
+				//docs := public.BaseMysql.SelectBySql(docSql, search)
+				if docs != nil && len(*docs) > 0 {
+					docFormatFunc(docs)
+				}
+			}
+			if len(indexDoc) == 0 {
+				docByEs()
+			}
+			if len(indexDoc) > 0 {
+				docClass = append(docClass, name)
+				indexDocs = append(indexDocs, indexDoc)
+				//
+				indexDoc = []map[string]interface{}{}
+			}
 		}
 	}
 	if len(indexDocs) > 0 {
@@ -352,7 +392,6 @@ func GetDocsData() (docClass []string, indexDocs [][]map[string]interface{}) {
 			}
 		}
 	}
-	fmt.Println(indexDocs)
 	return
 }