Kaynağa Gözat

Merge branch 'hotfix/v4.8.51.1_wky' of qmx/jy into hotfix/v4.8.51.1

wangkaiyue 1 yıl önce
ebeveyn
işleme
ee9ef54542
1 değiştirilmiş dosya ile 46 ekleme ve 4 silme
  1. 46 4
      src/jfw/front/pcIndex.go

+ 46 - 4
src/jfw/front/pcIndex.go

@@ -3,6 +3,7 @@ package front
 import (
 	"encoding/json"
 	"fmt"
+	"github.com/gogf/gf/v2/util/gconv"
 	"jy/src/jfw/config"
 	"jy/src/jfw/site/jySchool"
 	"jy/src/jfw/wx"
@@ -749,7 +750,7 @@ var getIndexHotKeyNoLoginFunc = func() func() []*hotKeyWord {
 	limit := util.IntAll(config.Sysconfig["pcIndexHotKeyLimit"])
 	//获取未登录关键词
 	configVal, _ := config.Sysconfig["pcIndexHotKeyUnLogin"].([]interface{})
-	rData := getLetterMap(util.ObjArrToStringArr(configVal))
+	rData := getKeyWord(util.ObjArrToStringArr(configVal))
 	rLen := len(rData)
 	return func() (final []*hotKeyWord) {
 		if rData == nil {
@@ -776,6 +777,47 @@ type hotKeyWord struct {
 	Url  string
 }
 
+type keyWordConfig struct {
+	NAME        string `json:"NAME"`
+	TITLE       string `json:"TITLE"`
+	KEYWORDS    string `json:"KEYWORDS"`
+	DESCRIPTION string `json:"DESCRIPTION"`
+	INDUSTRY    string `json:"INDUSTRY"`
+	Url         string
+}
+
+// getKeyWord 获取拼音关键词
+func getKeyWord(nameArr []string) []*hotKeyWord {
+	keywordsArr, _ := config.Seoconfig["keywordsArr"]
+	var fullData []map[string]*keyWordConfig
+	err := gconv.Struct(keywordsArr, &fullData)
+	if err != nil {
+		return nil
+	}
+	mapping := map[string]*keyWordConfig{}
+	for _, i2 := range fullData {
+		for k, v := range i2 {
+			v.Url = fmt.Sprintf("/list/keywords/%s.html", k)
+			mapping[v.NAME] = v
+		}
+	}
+	var finalData []*hotKeyWord
+	existsMap := map[string]bool{}
+	for _, name := range nameArr {
+		if existsMap[name] {
+			continue
+		}
+		if val, ok := mapping[name]; ok {
+			finalData = append(finalData, &hotKeyWord{
+				Name: val.NAME,
+				Url:  val.Url,
+			})
+			existsMap[name] = true
+		}
+	}
+	return finalData
+}
+
 // getLetterMap 获取关键词对应的链接,若没有则插入
 func getLetterMap(nameArr []string) []*hotKeyWord {
 	var (
@@ -789,7 +831,7 @@ func getLetterMap(nameArr []string) []*hotKeyWord {
 		nameArr1 = append(nameArr1, fmt.Sprintf(`"%s"`, v))
 	}
 	dataArr1 := public.BaseMysql.SelectBySql(fmt.Sprintf(`select a.id,a.name,b.id class_id,b.name class_1 from seo_words.seo_industry a inner join  seo_words.seo_industry_class b on  a.class_1 in (%s) and a.class_1=b.name and  a.class_2 !='药品'  order by a.class_1`, strings.Join(nameArr1, ",")))
-	dataArr2 := public.BaseMysql.SelectBySql(fmt.Sprintf(`select id,name,letter from seo_words.seo_resource where name in (%s) and state=2 order by id desc`, strings.Join(nameArr1, ",")))
+	dataArr2 := public.BaseMysql.SelectBySql(fmt.Sprintf(`select id,name,letter from seo_words.seo_resource where name in (%s) and state=1 order by id desc`, strings.Join(nameArr1, ",")))
 	for _, v1 := range nameArr {
 		var isNormal bool
 		if dataArr1 != nil && len(*dataArr1) > 0 {
@@ -823,12 +865,12 @@ func getLetterMap(nameArr []string) []*hotKeyWord {
 			nameArr2 = append(nameArr2, v1)
 			nameArr3 = append(nameArr3, fmt.Sprintf(`"%s"`, v1))
 			letter := getFirstLetter(v1)
-			nameArr4 = append(nameArr4, fmt.Sprintf(`("%s", "%s", 2)`, v1, letter))
+			nameArr4 = append(nameArr4, fmt.Sprintf(`("%s", "%s", 1)`, v1, letter))
 		}
 	}
 	if len(nameArr2) > 0 {
 		public.BaseMysql.SelectBySql(fmt.Sprintf(`INSERT INTO seo_words.seo_resource (name, letter, state) VALUES %s`, strings.Join(nameArr4, ",")))
-		dataArr3 := public.BaseMysql.SelectBySql(fmt.Sprintf(`select id,name,letter from seo_words.seo_resource where name in (%s) and state=2 order by id desc`, strings.Join(nameArr3, ",")))
+		dataArr3 := public.BaseMysql.SelectBySql(fmt.Sprintf(`select id,name,letter from seo_words.seo_resource where name in (%s) and state=1 order by id desc`, strings.Join(nameArr3, ",")))
 		if dataArr3 != nil {
 			for _, v3 := range *dataArr3 {
 				letter := util.ObjToString(v3["letter"])