|
@@ -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"])
|