Browse Source

wangkaiyue

yuelujie 9 months ago
parent
commit
e4a0b7bba3

+ 266 - 182
src/jfw/front/dataServiceArea.go

@@ -1,62 +1,64 @@
 package front
 package front
 
 
 import (
 import (
-	"app.yhyue.com/moapp/jybase/common"
-	"app.yhyue.com/moapp/jybase/redis"
-	"app.yhyue.com/moapp/jypkg/public"
-	"encoding/json"
-	"fmt"
-	"jy/src/jfw/jyutil"
-	"math/rand"
-	"strings"
-	//_ "github.com/gogf/gf/contrib/drivers/clickhouse/v2"
-	"github.com/gogf/gf/v2/frame/g"
-	"github.com/gogf/gf/v2/os/gctx"
-	"github.com/gogf/gf/v2/util/gconv"
-	"jy/src/jfw/config"
+    "app.yhyue.com/moapp/jybase/common"
+    "app.yhyue.com/moapp/jybase/redis"
+    "app.yhyue.com/moapp/jypkg/public"
+    "encoding/json"
+    "fmt"
+    "jy/src/jfw/jyutil"
+    "math/rand"
+    "strings"
+    //_ "github.com/gogf/gf/contrib/drivers/clickhouse/v2"
+    "github.com/gogf/gf/v2/frame/g"
+    "github.com/gogf/gf/v2/os/gctx"
+    "github.com/gogf/gf/v2/util/gconv"
+    "jy/src/jfw/config"
 )
 )
 
 
 // HotIndustryAndRegion 热门行业/地区年度招标趋势
 // HotIndustryAndRegion 热门行业/地区年度招标趋势
 func HomeBiddingTrends() []config.IndustryTrend {
 func HomeBiddingTrends() []config.IndustryTrend {
-	return config.IndustryTrendConfig
+    return config.IndustryTrendConfig
 }
 }
 
 
 type (
 type (
-	KeyWordSiteRoot struct {
-		SiteCodeMap map[string]*KeyWordSiteNode //省份直辖市简称对照
-		SiteArr     []*KeyWordSiteNode
-	}
-
-	KeyWordSiteNode struct {
-		Code               string `json:"code" doc:"代码"`
-		Alias              string `json:"alias" doc:"名称"`
-		AreaKeyWord        string `json:"areaKeyword" doc:"省份关键词"`
-		CityKeyWord        string `json:"cityKeyword" doc:"城市关键词"`
-		CitySpecialKeyWord string `json:"citySpecialKeyword" doc:"直辖市关键词"`
-	}
-
-	KeyWordSiteShow struct {
-		Code string `json:"code" doc:"代码"`
-		Name string `json:"name" doc:"名称"`
-		//KeyWord string `json:"keyWord" doc:"对应关键词"`
-	}
-	argument struct {
-		Name string
-		Url  string
-	}
-	keyBidding struct {
-		code     string
-		area     string
-		city     string
-		district string
-	}
-	keyFw struct {
-		code    string
-		keyword string
-	}
+    KeyWordSiteRoot struct {
+        SiteCodeMap map[string]*KeyWordSiteNode //省份直辖市简称对照
+        SiteArr     []*KeyWordSiteNode
+    }
+
+    KeyWordSiteNode struct {
+        Code               string          `json:"code" doc:"代码"`
+        Alias              string          `json:"alias" doc:"名称"`
+        AreaKeyWord        string          `json:"areaKeyword" doc:"省份关键词"`
+        CityKeyWord        string          `json:"cityKeyword" doc:"城市关键词"`
+        CitySpecialKeyWord string          `json:"citySpecialKeyword" doc:"直辖市关键词"`
+        NotShowCityCode    map[string]bool `json:"notShowCityCode" doc:"不展示的城市,因数据量少"`
+    }
+
+    KeyWordSiteShow struct {
+        Code string `json:"code" doc:"代码"`
+        Name string `json:"name" doc:"名称"`
+        //KeyWord string `json:"keyWord" doc:"对应关键词"`
+    }
+    argument struct {
+        Name string
+        Url  string
+    }
+    keyBidding struct {
+        code     string
+        area     string
+        city     string
+        district string
+    }
+    keyFw struct {
+        code    string
+        keyword string
+    }
 )
 )
 
 
 var (
 var (
+<<<<<<< HEAD
 	siteCodeMap       map[string]*KeyWordSiteNode
 	siteCodeMap       map[string]*KeyWordSiteNode
 	specialArea       = map[string]bool{"北京": true, "上海": true, "天津": true, "重庆": true}
 	specialArea       = map[string]bool{"北京": true, "上海": true, "天津": true, "重庆": true}
 	KeyBiddingAreaMap []keyBidding
 	KeyBiddingAreaMap []keyBidding
@@ -109,105 +111,187 @@ func init() {
 			})
 			})
 		}
 		}
 	}
 	}
+=======
+    siteCodeMap       map[string]*KeyWordSiteNode
+    specialArea       = map[string]bool{"北京": true, "上海": true, "天津": true, "重庆": true}
+    KeyBiddingAreaMap []keyBidding
+    KeyFwArr          []keyFw
+)
+
+func init() {
+    siteCodeMap = make(map[string]*KeyWordSiteNode)
+    res, err := g.DB().Query(gctx.New(), `SELECT * FROM seo_siteKeywords_splicing order by site_code asc`)
+    if err == nil && len(res.List()) > 0 {
+        for _, m := range res.List() {
+            notShowCityCodeMap := map[string]bool{}
+            for _, cityCode := range strings.Split(gconv.String(m["notShowCityCode"]), ",") {
+                notShowCityCodeMap[cityCode] = true
+            }
+            node := &KeyWordSiteNode{
+                Code:               fmt.Sprintf("S%s", gconv.String(m["site_code"])),
+                Alias:              gconv.String(m["alias"]),
+                AreaKeyWord:        gconv.String(m["area"]),
+                CityKeyWord:        gconv.String(m["city"]),
+                CitySpecialKeyWord: gconv.String(m["city_special"]),
+                NotShowCityCode:    notShowCityCodeMap,
+            }
+            siteCodeMap[node.Code] = node
+        }
+    }
+    KeyBiddingArea, _ := config.Sysconfig["keyBiddingArea"].(string)
+    resArr, err := g.DB().Query(gctx.New(), fmt.Sprintf(`SELECT area ,city,district,pcode  FROM seo_area_code where  state = 1 and class = 4 and area in ('%s') %s`, strings.ReplaceAll(KeyBiddingArea, ",", `','`), `and (district LIKE '%县%' or district LIKE '%市%')`))
+    if err == nil && !resArr.IsEmpty() {
+        for _, m := range resArr.List() {
+            KeyBiddingAreaMap = append(KeyBiddingAreaMap, keyBidding{
+                area:     gconv.String(m["area"]),
+                city:     gconv.String(m["city"]),
+                district: gconv.String(m["district"]),
+                code:     gconv.String(m["pcode"]),
+            })
+        }
+    }
+
+    fwResArr, err := g.DB().Query(gctx.New(), `SELECT  id, keyword  FROM new_keyword_unified where  unifiedSign = 'fw' and state = 1`)
+    if err == nil && !fwResArr.IsEmpty() {
+        for _, m := range fwResArr.List() {
+            KeyFwArr = append(KeyFwArr, keyFw{
+                keyword: gconv.String(m["keyword"]),
+                code:    gconv.String(m["id"]),
+            })
+        }
+    }
+}
+
+type ClassCode struct {
+    Class int
+    Code  string
+>>>>>>> master
 }
 }
 
 
 // 政府招标
 // 政府招标
 func GovernmentTender(number int) []argument {
 func GovernmentTender(number int) []argument {
-	redisKey := "governmentTender"
-	redisData := redis.Get(RedisNameNew, redisKey)
-	if redisData != nil {
-		if d, err := json.Marshal(redisData); err == nil {
-			var signature []argument
-			json.Unmarshal(d, &signature)
-			return signature
-		}
-	}
-	areaM := make(map[string]string)
-	//省份
-	areaMap, _ := config.Seoconfig["area"].(map[string]interface{})
-	if areaMap != nil && len(areaMap) > 0 {
-		for k, v := range areaMap {
-			area := v.(map[string]interface{})
-			name := common.ObjToString(area["NAME"])
-			if name != "全国" && name != "香港" && name != "澳门" && name != "台湾" {
-				areaM[name] = k
-			}
-		}
-	}
-	var (
-		data       []argument
-		upperLimit int
-	)
-	siteCode := make(map[string]bool)
-	for name, acronym := range areaM {
-		upperLimit++
-		if upperLimit > number {
-			break
-		}
-		if len(siteCode) < len(siteCodeMap) {
-			for code, node := range siteCodeMap {
-				var tagName string
-				if !siteCode[code] {
-					if node.Alias != "" {
-						tagName = node.Alias
-					} else {
-						tagName = common.If(specialArea[name], node.CitySpecialKeyWord, node.AreaKeyWord).(string)
-					}
-					data = append(data, argument{
-						fmt.Sprintf("%s%s", name, tagName),
-						fmt.Sprintf("/list/area/%s_%s", acronym, code),
-					})
-					siteCode[code] = true
-					break
-				}
-			}
-		} else {
-			for code, node := range siteCodeMap {
-				var tagName string
-				if node.Alias != "" {
-					tagName = node.Alias
-				} else {
-					tagName = common.If(specialArea[name], node.CitySpecialKeyWord, node.AreaKeyWord).(string)
-				}
-				data = append(data, argument{
-					fmt.Sprintf("%s%s", name, tagName),
-					fmt.Sprintf("/list/area/%s_%s", acronym, code),
-				})
-				break
-			}
-		}
-
-	}
-	redis.Put(RedisNameNew, redisKey, data, RedisTimeout)
-	return data
+    redisKey := "governmentTender"
+    redisData := redis.Get(RedisNameNew, redisKey)
+    if redisData != nil {
+        if d, err := json.Marshal(redisData); err == nil {
+            var signature []argument
+            json.Unmarshal(d, &signature)
+            return signature
+        }
+    }
+    areaM := make(map[string]ClassCode)
+    res, err := g.DB().Query(gctx.New(), `SELECT area,city,pcode,class  FROM seo_area_code where state = 1 and (class = 1 or class = 2 or class = 3)`)
+    if !res.IsEmpty() && len(res.List()) > 0 && err == nil {
+        for _, v := range res.List() {
+            switch common.IntAll(v["class"]) {
+            case 1, 3:
+                name := common.ObjToString(v["area"])
+                areaM[name] = ClassCode{
+                    Class: common.IntAll(v["class"]),
+                    Code:  common.ObjToString(v["pcode"]),
+                }
+            case 2:
+                name := common.ObjToString(v["city"])
+                areaM[name] = ClassCode{
+                    Class: common.IntAll(v["class"]),
+                    Code:  common.ObjToString(v["pcode"]),
+                }
+            }
+        }
+    }
+    var (
+        data       []argument
+        upperLimit int
+    )
+    siteCode := make(map[string]bool)
+    for name, acronym := range areaM {
+        upperLimit++
+        if upperLimit > number {
+            break
+        }
+        if len(siteCode) < len(siteCodeMap) {
+            for code, node := range siteCodeMap {
+                var tagName string
+                if node.NotShowCityCode[acronym.Code] {
+                    continue
+                }
+                if !siteCode[code] {
+                    if node.Alias != "" {
+                        tagName = node.Alias
+                    } else {
+                        switch acronym.Class {
+                        case 1:
+                            tagName = node.AreaKeyWord
+                        case 2:
+                            tagName = node.CityKeyWord
+                        case 3:
+                            tagName = node.CitySpecialKeyWord
+                        }
+                    }
+                    data = append(data, argument{
+                        fmt.Sprintf("%s%s", name, tagName),
+                        fmt.Sprintf("/list/area/%s_%s", acronym.Code, code),
+                    })
+                    siteCode[code] = true
+                    break
+                }
+            }
+        } else {
+            for code, node := range siteCodeMap {
+                var tagName string
+                if node.NotShowCityCode[acronym.Code] {
+                    continue
+                }
+                if node.Alias != "" {
+                    tagName = node.Alias
+                } else {
+                    switch acronym.Class {
+                    case 1:
+                        tagName = node.AreaKeyWord
+                    case 2:
+                        tagName = node.CityKeyWord
+                    case 3:
+                        tagName = node.CitySpecialKeyWord
+                    }
+                }
+                data = append(data, argument{
+                    fmt.Sprintf("%s%s", name, tagName),
+                    fmt.Sprintf("/list/area/%s_%s", acronym.Code, code),
+                })
+                break
+            }
+        }
+    }
+    redis.Put(RedisNameNew, redisKey, data, RedisTimeout)
+    return data
 }
 }
 
 
 // 重点招标区域
 // 重点招标区域
 func DistrictsTender(number int) []argument {
 func DistrictsTender(number int) []argument {
-	redisKey := "districtsTender"
-	redisData := redis.Get(RedisNameNew, redisKey)
-	if redisData != nil {
-		if d, err := json.Marshal(redisData); err == nil {
-			var signature []argument
-			json.Unmarshal(d, &signature)
-			return signature
-		}
-	}
-
-	var (
-		data []argument
-	)
-	for _, i2 := range jyutil.GenerateRandomNumber(0, len(KeyBiddingAreaMap), number) {
-		acronym := KeyBiddingAreaMap[i2]
-		data = append(data, argument{
-			common.If(strings.Contains(acronym.district, "区"), fmt.Sprintf("%s%s", acronym.city, acronym.district), acronym.district).(string),
-			fmt.Sprintf("/list/city/%s.html", acronym.code),
-		})
-	}
-	if data != nil && len(data) > 0 {
-		redis.Put(RedisNameNew, redisKey, data, RedisTimeout)
-	}
-	return data
+    redisKey := "districtsTender"
+    redisData := redis.Get(RedisNameNew, redisKey)
+    if redisData != nil {
+        if d, err := json.Marshal(redisData); err == nil {
+            var signature []argument
+            json.Unmarshal(d, &signature)
+            return signature
+        }
+    }
+
+    var (
+        data []argument
+    )
+    for _, i2 := range jyutil.GenerateRandomNumber(0, len(KeyBiddingAreaMap), number) {
+        acronym := KeyBiddingAreaMap[i2]
+        data = append(data, argument{
+            common.If(strings.Contains(acronym.district, "区"), fmt.Sprintf("%s%s", acronym.city, acronym.district), acronym.district).(string),
+            fmt.Sprintf("/list/city/%s.html", acronym.code),
+        })
+    }
+    if data != nil && len(data) > 0 {
+        redis.Put(RedisNameNew, redisKey, data, RedisTimeout)
+    }
+    return data
 }
 }
 
 
 func DistrictsSList(number int) []argument {
 func DistrictsSList(number int) []argument {
@@ -424,53 +508,53 @@ func Quarter() time.Time {
 
 
 // 热门采购数据
 // 热门采购数据
 func PurchasingData() []map[string]interface{} {
 func PurchasingData() []map[string]interface{} {
-	redisData, _ := redis.Get(RedisNameNew, "hotPurchasingData").([]interface{})
-	if len(redisData) > 0 {
-		return common.ObjArrToMapArr(redisData)
-	}
-	var keyWords []map[string]interface{}
-	data := public.BaseMysql.SelectBySql("SELECT keyword FROM data_supermarket GROUP BY keyword")
-	if data != nil && len(*data) > 0 {
-		listData := []map[string]interface{}{}
-		if len(*data) > 30 {
-			r := rand.Intn(len(*data) - 30)
-			listData = (*data)[r : r+30]
-		} else {
-			listData = *data
-		}
-		for _, m := range listData {
-			keyWords = append(keyWords, map[string]interface{}{
-				"keyword": common.InterfaceToStr(m["keyword"]),
-				"url":     fmt.Sprintf("/datasmt/index_1?searchValue=%s", common.InterfaceToStr(m["keyword"])),
-			})
-		}
-		redis.Put(RedisNameNew, "hotPurchasingData", keyWords, RedisTimeout)
-	}
-
-	return keyWords
+    redisData, _ := redis.Get(RedisNameNew, "hotPurchasingData").([]interface{})
+    if len(redisData) > 0 {
+        return common.ObjArrToMapArr(redisData)
+    }
+    var keyWords []map[string]interface{}
+    data := public.BaseMysql.SelectBySql("SELECT keyword FROM data_supermarket GROUP BY keyword")
+    if data != nil && len(*data) > 0 {
+        listData := []map[string]interface{}{}
+        if len(*data) > 30 {
+            r := rand.Intn(len(*data) - 30)
+            listData = (*data)[r : r+30]
+        } else {
+            listData = *data
+        }
+        for _, m := range listData {
+            keyWords = append(keyWords, map[string]interface{}{
+                "keyword": common.InterfaceToStr(m["keyword"]),
+                "url":     fmt.Sprintf("/datasmt/index_1?searchValue=%s", common.InterfaceToStr(m["keyword"])),
+            })
+        }
+        redis.Put(RedisNameNew, "hotPurchasingData", keyWords, RedisTimeout)
+    }
+
+    return keyWords
 }
 }
 
 
 // ServiceProcurement 服务类采购
 // ServiceProcurement 服务类采购
 func ServiceProcurement(number int) []argument {
 func ServiceProcurement(number int) []argument {
-	redisKey := "ServiceProcurement"
-	redisData := redis.Get(RedisNameNew, redisKey)
-	if redisData != nil {
-		if d, err := json.Marshal(redisData); err == nil {
-			var signature []argument
-			json.Unmarshal(d, &signature)
-			return signature
-		}
-	}
-	var (
-		data []argument
-	)
-	for _, i2 := range jyutil.GenerateRandomNumber(0, len(KeyFwArr), number) {
-		acronym := KeyFwArr[i2]
-		data = append(data, argument{
-			acronym.keyword,
-			fmt.Sprintf("/fuwu/fw%03s.html", acronym.code),
-		})
-	}
-	redis.Put(RedisNameNew, redisKey, data, RedisTimeout)
-	return data
+    redisKey := "ServiceProcurement"
+    redisData := redis.Get(RedisNameNew, redisKey)
+    if redisData != nil {
+        if d, err := json.Marshal(redisData); err == nil {
+            var signature []argument
+            json.Unmarshal(d, &signature)
+            return signature
+        }
+    }
+    var (
+        data []argument
+    )
+    for _, i2 := range jyutil.GenerateRandomNumber(0, len(KeyFwArr), number) {
+        acronym := KeyFwArr[i2]
+        data = append(data, argument{
+            acronym.keyword,
+            fmt.Sprintf("/fuwu/fw%03s.html", acronym.code),
+        })
+    }
+    redis.Put(RedisNameNew, redisKey, data, RedisTimeout)
+    return data
 }
 }

+ 0 - 1
src/jfw/front/tags.go

@@ -631,7 +631,6 @@ func (this *Tags) GetConsult() []map[string]interface{} {
 		}
 		}
 		return rs
 		return rs
 	}, cacheTime)
 	}, cacheTime)
-	log.Println(res.Maps())
 	if !res.IsEmpty() {
 	if !res.IsEmpty() {
 		return res.Maps()
 		return res.Maps()
 	}
 	}

+ 20 - 4
src/web/templates/pc/dataExport_sieve.html

@@ -2934,10 +2934,26 @@
 
 
     //行业
     //行业
     function getIndustries() {
     function getIndustries() {
-        var industryArr = new Array();
-        ClassArr.arr.map(function (v) {
-            industryArr = industryArr.concat(v.split(","));
-            return v
+        // 数据源map
+        var industryOrigin = industrylist
+        // 数据源key的数组,用来判断是否选中了第一级
+        var industryLevel1Arr = Object.keys(industrylist)
+        var industryArr = [];
+        ClassArr.arr.forEach(function(key) {
+          if (industryLevel1Arr.indexOf(key) === -1) {
+            // 选中的二级
+            industryArr = industryArr.concat(key.split(","));
+          } else {
+            // 选中的一级
+            const childern = industrylist[key]
+            if (Array.isArray(childern) && childern.length > 0) {
+              childern.forEach(function(c) {
+                industryArr = industryArr.concat(key + '_' + c);
+              })
+            } else {
+              industryArr = industryArr.concat(key.split(","));
+            }
+          }
         })
         })
         return industryArr;
         return industryArr;
     }
     }

+ 14 - 9
src/web/templates/pc/dataSmt/list.html

@@ -25,7 +25,7 @@
 <body class="in-iframe" style="background-color: transparent;">
 <body class="in-iframe" style="background-color: transparent;">
 {{include "/common/pchead.html"}}
 {{include "/common/pchead.html"}}
 
 
-<div class="dataMart">
+<div class="dataMart" style="display: none;">
   <header class="header no-in-frame" style="display: none;">
   <header class="header no-in-frame" style="display: none;">
     <img src="{{Msg "seo" "cdn"}}/images/dataSmt/banner.jpg?v={{Msg "seo" "version"}}" alt="数据超市,提供海量热门行业数据,专业安全合规,成品数据一键下载。">
     <img src="{{Msg "seo" "cdn"}}/images/dataSmt/banner.jpg?v={{Msg "seo" "version"}}" alt="数据超市,提供海量热门行业数据,专业安全合规,成品数据一键下载。">
     <!-- 搜索 -->
     <!-- 搜索 -->
@@ -168,6 +168,19 @@
 </div>
 </div>
 </div>
 </div>
 <!-- 留资组件 -->
 <!-- 留资组件 -->
+<script>
+  $(function() {
+    var inIframe = window.goTemplateData?.inIframe || false
+    if(inIframe) {
+      $('.no-in-frame').hide()
+      $('.header-in-frame').show()
+    } else {
+      $('.no-in-frame').show()
+      $('.header-in-frame').hide()
+    }
+    $('.dataMart').slideDown(1000)
+  })
+</script>
 <div id="vue-collect-user-info"></div>
 <div id="vue-collect-user-info"></div>
 <script src='{{Msg "seo" "cdn"}}/js/public-nav.js?v={{Msg "seo" "version"}}' type="text/javascript"></script>
 <script src='{{Msg "seo" "cdn"}}/js/public-nav.js?v={{Msg "seo" "version"}}' type="text/javascript"></script>
 <script src='{{Msg "seo" "cdn"}}/js/jquery.cookie.js?v={{Msg "seo" "version"}}' type="text/javascript"></script>
 <script src='{{Msg "seo" "cdn"}}/js/jquery.cookie.js?v={{Msg "seo" "version"}}' type="text/javascript"></script>
@@ -177,7 +190,6 @@
 <script src='{{Msg "seo" "cdn"}}/common-module/pc-dialog/js/leave-info-dialog.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/common-module/pc-dialog/js/leave-info-dialog.js?v={{Msg "seo" "version"}}'></script>
 <script>
 <script>
   haslogin({{.T.logid}});
   haslogin({{.T.logid}});
-  var inIframe = window.goTemplateData?.inIframe || false
   $(function(){
   $(function(){
     // initAdvertising()
     // initAdvertising()
     brightKeyword()
     brightKeyword()
@@ -204,13 +216,6 @@
     $('#dataSupermarket_industry_fields').on('click',function(){
     $('#dataSupermarket_industry_fields').on('click',function(){
       needSubmitHandle('pc_DataSupermarket_IndustryFields')
       needSubmitHandle('pc_DataSupermarket_IndustryFields')
     })
     })
-    if(inIframe) {
-      $('.no-in-frame').hide()
-      $('.header-in-frame').show()
-    } else {
-      $('.no-in-frame').show()
-      $('.header-in-frame').hide()
-    }
   })
   })
   function initAdvertising(){
   function initAdvertising(){
     var windowHeight = $(window).height(); // 可视窗口的高度
     var windowHeight = $(window).height(); // 可视窗口的高度