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

Merge branch 'feature/v4.8.70' into dev/v4.8.70_rjj

renjiaojiao 1 éve
szülő
commit
add29f1ba0
49 módosított fájl, 1848 hozzáadás és 562 törlés
  1. 15 2
      src/db.json
  2. 3 3
      src/go.mod
  3. 6 6
      src/go.sum
  4. 7 2
      src/jfw/front/front.go
  5. 26 8
      src/jfw/front/searchOptimize.go
  6. 29 0
      src/jfw/jyutil/jyutil.go
  7. 3 3
      src/jfw/modules/app/src/go.mod
  8. 6 6
      src/jfw/modules/app/src/go.sum
  9. 1 1
      src/jfw/modules/app/src/web/templates/dataExport/dataExport.html
  10. 13 1
      src/jfw/modules/bigmember/src/service/portrait/memberPortraitAction.go
  11. 5 1
      src/jfw/modules/bigmember/src/service/portrait/subvipPortraitAction.go
  12. 14 9
      src/jfw/modules/publicapply/src/enterpriseSearch/entity/entQuery.go
  13. 3 15
      src/jfw/modules/publicapply/src/enterpriseSearch/service/search.go
  14. 61 59
      src/jfw/modules/publicapply/src/go.mod
  15. 138 125
      src/jfw/modules/publicapply/src/go.sum
  16. 3 0
      src/jfw/modules/publicapply/src/identity/service/service.go
  17. 30 1
      src/jfw/modules/publicapply/src/transfer/transfer.go
  18. 3 3
      src/jfw/modules/subscribepay/src/go.mod
  19. 9 4
      src/jfw/modules/subscribepay/src/go.sum
  20. 1 1
      src/jfw/modules/subscribepay/src/service/dataexportPack.go
  21. 3 0
      src/main.go
  22. 46 0
      src/web/staticres/BI-module/css/crm-action.css
  23. 260 0
      src/web/staticres/BI-module/js/crm-action.js
  24. 1 1
      src/web/staticres/common-module/dataExport/components/popup-data-export.js
  25. 14 0
      src/web/staticres/common-module/dataExport/css/dataExportAppend.css
  26. BIN
      src/web/staticres/common-module/msgCenter/db.png
  27. 26 7
      src/web/staticres/css/dev2/biddingSearch.css
  28. 21 3
      src/web/staticres/css/dev2/newBidSearch.css
  29. 45 2
      src/web/staticres/dataExport/css/conditions.css
  30. 76 1
      src/web/staticres/dataExport/css/previewData.css
  31. 9 11
      src/web/staticres/dataExport/js/conditions_order.js
  32. 2 2
      src/web/staticres/frontRouter/pc/collection/css/index-pc.css
  33. BIN
      src/web/staticres/images/biddingSearch/shoulu-checked.png
  34. BIN
      src/web/staticres/images/biddingSearch/shoulu.png
  35. 72 3
      src/web/staticres/js/ent-search-index-pc.js
  36. 63 2
      src/web/staticres/js/pur-search-index-pc.js
  37. 203 12
      src/web/staticres/js/superSearch.js
  38. 65 2
      src/web/staticres/pccss/ent-search-index-pc.css
  39. 34 0
      src/web/staticres/pccss/pur-search-index-pc.css
  40. 16 0
      src/web/staticres/public-pc/js/article-content.js
  41. 4 3
      src/web/staticres/public-pc/js/pc-bottom.js
  42. 2 2
      src/web/templates/frontRouter/pc/collection/sess/index.html
  43. 25 1
      src/web/templates/pc/biddetail_rec.html
  44. 47 29
      src/web/templates/pc/dataExport_sieve.html
  45. 12 6
      src/web/templates/pc/entsearchindex.html
  46. 326 156
      src/web/templates/pc/previewData.html
  47. 63 57
      src/web/templates/pc/pursearchindex.html
  48. 36 11
      src/web/templates/pc/supsearch.html
  49. 1 1
      src/web/templates/weixin/dataExport/dataExport.html

+ 15 - 2
src/db.json

@@ -36,14 +36,27 @@
       "size": 30,
       "version": "v7",
       "userName": "",
-      "password": ""
+      "password": "",
+      "esIndex": "bidding",
+      "esType": "bidding"
     },
     "other": {
       "address": "http://192.168.3.241:9205,http://192.168.3.149:9200",
       "size": 30,
       "version": "v7",
       "userName": "",
-      "password": ""
+      "password": "",
+      "esIndex": "bidding_year",
+      "esType": "bidding_year"
+    },
+    "free": {
+      "address": "http://192.168.3.241:9205,http://192.168.3.149:9200",
+      "size": 30,
+      "version": "v7",
+      "userName": "",
+      "password": "",
+      "esIndex": "bidding",
+      "esType": "bidding"
     }
   },
   "redis": {

+ 3 - 3
src/go.mod

@@ -6,8 +6,8 @@ require (
 	app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230308011651-df591d32df88
 	app.yhyue.com/moapp/jybase v0.0.0-20231026082242-8eb41c7bdda6
 	app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545
-	app.yhyue.com/moapp/jypkg v1.0.4-0.20231109032304-2da6db20132a
-	bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.14
+	app.yhyue.com/moapp/jypkg v1.0.7-0.20231114011545-acf570b01ea7
+	bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.15-0.20230925060020-8e4db0f1e13e
 	github.com/ClickHouse/clickhouse-go v1.5.4
 	github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67
 	github.com/bwmarrin/snowflake v0.3.0
@@ -24,7 +24,7 @@ require (
 	app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae // indirect
 	bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230214091519-89a98c01ab0e // indirect
 	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230225125145-431a4f70093a // indirect
-	bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.7 // indirect
+	bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.8 // indirect
 	github.com/BurntSushi/toml v1.1.0 // indirect
 	github.com/RoaringBitmap/roaring v1.5.0 // indirect
 	github.com/beorn7/perks v1.0.1 // indirect

+ 6 - 6
src/go.sum

@@ -9,18 +9,18 @@ app.yhyue.com/moapp/jybase v0.0.0-20231026082242-8eb41c7bdda6 h1:uyaBp5Iuc/Il4+O
 app.yhyue.com/moapp/jybase v0.0.0-20231026082242-8eb41c7bdda6/go.mod h1:Hv9U/7oHRucqH315Tr1+d03NCvS9mOKPfk8pwwlOIwQ=
 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.0.4-0.20231109032304-2da6db20132a h1:mUqyzXj24uoi9gE9P+EVoiMi/deUHH2+0jbTnwLhOZ0=
-app.yhyue.com/moapp/jypkg v1.0.4-0.20231109032304-2da6db20132a/go.mod h1:76Kz6+MuxcRJRyFad9W8R4AByiQlVGzuGFzklY+2m38=
+app.yhyue.com/moapp/jypkg v1.0.7-0.20231114011545-acf570b01ea7 h1:i7sFy+e/zjqhTQci+0x4E1qEXZOEYCIe6EDug+8LyFk=
+app.yhyue.com/moapp/jypkg v1.0.7-0.20231114011545-acf570b01ea7/go.mod h1:LuxdVd+j3uwm7N5j2hivmpPU0LJytEV7iwAIljdoc4Q=
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae h1:6rDDaz6yxvE8viTSzEBwKYOFWq14TMfuBivSazUZMz4=
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae/go.mod h1:b0zZHev3gmJao1Fo+2Z2KPVjsuLOJVvVxf+kCnu9WkA=
 bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230214091519-89a98c01ab0e h1:h+VEI3o1qC0jeCzkFGTrLI4f27cfa/W/y+0sXokWMgE=
 bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230214091519-89a98c01ab0e/go.mod h1:7Xhygw0KBuL4h0G76FnFg4otQcA9bmOO0c8M0FCjAyQ=
 bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230225125145-431a4f70093a h1:JX2jEMrbdLzXfVC/nTUvdFOkqNj5DUxkJFjl3XE1gyg=
 bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230225125145-431a4f70093a/go.mod h1:5nimT8GJh46AyfeeDeyRlDQygMlO7TRM8Pwm41Gxemc=
-bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.7 h1:G6PHMWAHfYEuY6kbl7OM/KnCQf1Xa54mdhuP7JzK8/I=
-bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.7/go.mod h1:rRiGzKG4F/fmkNxXQCxrkxNWc8yf1SmW8qWCKfGIQSM=
-bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.14 h1:L/0RrgU+l8nMS7YO2JizszaX3lAo0gqzg2Bqmu0So0s=
-bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.14/go.mod h1:03M9BWIGHy7BbGxLvjt8V9zZzEZDWhN6BuHVfVcDFbQ=
+bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.8 h1:14Yxzutsej7LQe3jnN61wuRX9qjAZ4FtdWMA27ewQ3w=
+bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.8/go.mod h1:rRiGzKG4F/fmkNxXQCxrkxNWc8yf1SmW8qWCKfGIQSM=
+bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.15-0.20230925060020-8e4db0f1e13e h1:bncHHkJLqiDW1ZN6MVe+3bj3i0LxWgFkfqge6Gk7lB4=
+bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.15-0.20230925060020-8e4db0f1e13e/go.mod h1:+6ZjaqpCr+ih1GYOh6ZhoDri9ZjiuxxSHvR7ovvhLx0=
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw=

+ 7 - 2
src/jfw/front/front.go

@@ -25,11 +25,10 @@ import (
 	"app.yhyue.com/moapp/jypkg/public"
 
 	elastic "app.yhyue.com/moapp/jybase/es"
-	"app.yhyue.com/moapp/jybase/redis"
-
 	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
 	mgdb "app.yhyue.com/moapp/jybase/mongodb"
+	"app.yhyue.com/moapp/jybase/redis"
 	. "app.yhyue.com/moapp/jypkg/identity"
 	"github.com/SKatiyar/qr"
 	"go.mongodb.org/mongo-driver/bson"
@@ -977,6 +976,12 @@ func (m *Front) Sess(ostr string) error {
 						}
 					}
 				}
+
+				//工作桌面内嵌 塞斯 PC
+				if !mobileReg.MatchString(m.UserAgent()) && !strings.Contains(actionurl, "page_workDesktop") && strings.Contains(actionurl, "/succbi/crm_system/") {
+					return m.Redirect(fmt.Sprintf("%s%s%s", strings.ReplaceAll(config.Sysconfig["workDesktopUrl"].(string), "aside=0&", ""), config.Sysconfig["webdomain"].(string), url.QueryEscape(actionurl)))
+				}
+
 				m.Redirect(actionurl)
 			} else {
 				log.Println("解析结果:", str, ",actionurl为空")

+ 26 - 8
src/jfw/front/searchOptimize.go

@@ -4,6 +4,7 @@ import (
 	"encoding/json"
 	"fmt"
 	"jy/src/jfw/config"
+	"jy/src/jfw/jyutil"
 	"log"
 	"net/http"
 	"strconv"
@@ -297,7 +298,16 @@ func (so *SearchOptimize) GetBidSearchList(isCache bool) (count, total int64, li
 			Limit:      util.If(isCache, util.If(so.IsPay, bidsearch.SearchMaxPageCount_PAYED, bidsearch.SearchMaxPageCount_PC).(int), so.PageSize).(int), //缓存数据: 付费或未登录用户一次性5000条,100页数据;免费用户一次性500条,10页数据;实时数据:每页50条数据请求
 			Count:      util.If(strings.Contains(so.SelectType, "detail"), 115, 0).(int),                                                                  //高亮正文数量
 			HighLight:  util.If(strings.Contains(so.SelectType, "detail"), true, false).(bool),                                                            //是否高亮正文
-			IsLogin:    so.UserId != "",
+			State: func(userId string, isPay bool) (state int) {
+				state = 1
+				if userId != "" {
+					state = 2
+					if isPay {
+						state = 3
+					}
+				}
+				return
+			}(so.UserId, so.IsPay),
 		}
 		var repl *[]map[string]interface{}
 		total, repl = biddingSearch.GetAllByNgramWithCount()
@@ -764,11 +774,18 @@ type SearchByES struct {
 	Limit      int
 	Count      int
 	HighLight  bool
-	IsLogin    bool
+	State      int //1:noLogin;2:free;3:pay
 }
 
 // GetAllByNgramWithCount  获取es查询结果及总数量
 func (e *SearchByES) GetAllByNgramWithCount() (int64, *[]map[string]interface{}) {
+	var (
+		jyES = jyutil.GetES(e.State)
+	)
+	if jyES.EsIndex != "" {
+		e.Index = jyES.EsIndex
+		e.IType = jyES.EsType
+	}
 	if e.Query != "" {
 		queryStr := e.Query
 		if e.HighLight {
@@ -787,12 +804,13 @@ func (e *SearchByES) GetAllByNgramWithCount() (int64, *[]map[string]interface{})
 		if e.Start > -1 {
 			queryStr = queryStr[:len(queryStr)-1] + `,"from":` + strconv.Itoa(e.Start) + `,"size":` + strconv.Itoa(e.Limit) + "}"
 		}
-		log.Println("queryStr:", queryStr)
-		if e.IsLogin {
-			return elastic.GetWithCount(e.Index, e.IType, e.Query, queryStr)
-		} else {
-			return pc.Other.GetWithCount(e.Index, e.IType, e.Query, queryStr)
-		}
+		log.Println(e.Index, e.IType, "--queryStr:", queryStr)
+		//if e.IsLogin {
+		//	return elastic.GetWithCount(e.Index, e.IType, e.Query, queryStr)
+		//} else {
+		//	return pc.Other.GetWithCount(e.Index, e.IType, e.Query, queryStr)
+		//}
+		return jyES.Es.GetWithCount(e.Index, e.IType, e.Query, queryStr)
 	} else {
 		return 0, nil
 	}

+ 29 - 0
src/jfw/jyutil/jyutil.go

@@ -1,6 +1,7 @@
 package jyutil
 
 import (
+	elastic "app.yhyue.com/moapp/jybase/es"
 	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
 	"app.yhyue.com/moapp/jypkg/compatible"
 	"encoding/json"
@@ -329,3 +330,31 @@ func AdditionalFilterGeneric(keyWords string) (additionalWords string) {
 	}
 	return additionalWords
 }
+
+type JyES struct {
+	Es      elastic.Es
+	EsIndex string
+	EsType  string
+}
+
+// GetES es 分类 1:noLogin;2:free;3:pay
+func GetES(state int) *JyES {
+	var ESInfo = &JyES{
+		Es: elastic.VarEs,
+	}
+	switch state {
+	case 1:
+		ESInfo = &JyES{
+			Es:      public.Other,
+			EsIndex: public.DbConf.Elasticsearch.Other.EsIndex,
+			EsType:  public.DbConf.Elasticsearch.Other.EsType,
+		}
+	case 2:
+		ESInfo = &JyES{
+			Es:      public.Free,
+			EsIndex: public.DbConf.Elasticsearch.Free.EsIndex,
+			EsType:  public.DbConf.Elasticsearch.Free.EsType,
+		}
+	}
+	return ESInfo
+}

+ 3 - 3
src/jfw/modules/app/src/go.mod

@@ -5,8 +5,8 @@ go 1.18
 require (
 	app.yhyue.com/moapp/jybase v0.0.0-20230901064756-2fc66b18db40
 	app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545
-	app.yhyue.com/moapp/jypkg v1.0.4-0.20231109032304-2da6db20132a
-	bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.14
+	app.yhyue.com/moapp/jypkg v1.0.7-0.20231114011545-acf570b01ea7
+	bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.15-0.20230925060020-8e4db0f1e13e
 	github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67
 	github.com/gogf/gf/v2 v2.3.1
 	github.com/pkg/errors v0.9.1
@@ -19,7 +19,7 @@ require (
 	app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae // indirect
 	bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230214091519-89a98c01ab0e // indirect
 	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230225125145-431a4f70093a // indirect
-	bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.7 // indirect
+	bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.8 // indirect
 	github.com/BurntSushi/toml v1.1.0 // indirect
 	github.com/RoaringBitmap/roaring v1.5.0 // indirect
 	github.com/beorn7/perks v1.0.1 // indirect

+ 6 - 6
src/jfw/modules/app/src/go.sum

@@ -9,18 +9,18 @@ app.yhyue.com/moapp/jybase v0.0.0-20230901064756-2fc66b18db40 h1:/FcBvpf/KW8g6GB
 app.yhyue.com/moapp/jybase v0.0.0-20230901064756-2fc66b18db40/go.mod h1:Hv9U/7oHRucqH315Tr1+d03NCvS9mOKPfk8pwwlOIwQ=
 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.0.4-0.20231109032304-2da6db20132a h1:mUqyzXj24uoi9gE9P+EVoiMi/deUHH2+0jbTnwLhOZ0=
-app.yhyue.com/moapp/jypkg v1.0.4-0.20231109032304-2da6db20132a/go.mod h1:76Kz6+MuxcRJRyFad9W8R4AByiQlVGzuGFzklY+2m38=
+app.yhyue.com/moapp/jypkg v1.0.7-0.20231114011545-acf570b01ea7 h1:i7sFy+e/zjqhTQci+0x4E1qEXZOEYCIe6EDug+8LyFk=
+app.yhyue.com/moapp/jypkg v1.0.7-0.20231114011545-acf570b01ea7/go.mod h1:LuxdVd+j3uwm7N5j2hivmpPU0LJytEV7iwAIljdoc4Q=
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae h1:6rDDaz6yxvE8viTSzEBwKYOFWq14TMfuBivSazUZMz4=
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae/go.mod h1:b0zZHev3gmJao1Fo+2Z2KPVjsuLOJVvVxf+kCnu9WkA=
 bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230214091519-89a98c01ab0e h1:h+VEI3o1qC0jeCzkFGTrLI4f27cfa/W/y+0sXokWMgE=
 bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230214091519-89a98c01ab0e/go.mod h1:7Xhygw0KBuL4h0G76FnFg4otQcA9bmOO0c8M0FCjAyQ=
 bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230225125145-431a4f70093a h1:JX2jEMrbdLzXfVC/nTUvdFOkqNj5DUxkJFjl3XE1gyg=
 bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230225125145-431a4f70093a/go.mod h1:5nimT8GJh46AyfeeDeyRlDQygMlO7TRM8Pwm41Gxemc=
-bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.7 h1:G6PHMWAHfYEuY6kbl7OM/KnCQf1Xa54mdhuP7JzK8/I=
-bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.7/go.mod h1:rRiGzKG4F/fmkNxXQCxrkxNWc8yf1SmW8qWCKfGIQSM=
-bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.14 h1:L/0RrgU+l8nMS7YO2JizszaX3lAo0gqzg2Bqmu0So0s=
-bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.14/go.mod h1:03M9BWIGHy7BbGxLvjt8V9zZzEZDWhN6BuHVfVcDFbQ=
+bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.8 h1:14Yxzutsej7LQe3jnN61wuRX9qjAZ4FtdWMA27ewQ3w=
+bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.8/go.mod h1:rRiGzKG4F/fmkNxXQCxrkxNWc8yf1SmW8qWCKfGIQSM=
+bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.15-0.20230925060020-8e4db0f1e13e h1:bncHHkJLqiDW1ZN6MVe+3bj3i0LxWgFkfqge6Gk7lB4=
+bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.15-0.20230925060020-8e4db0f1e13e/go.mod h1:+6ZjaqpCr+ih1GYOh6ZhoDri9ZjiuxxSHvR7ovvhLx0=
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw=

+ 1 - 1
src/jfw/modules/app/src/web/templates/dataExport/dataExport.html

@@ -643,7 +643,7 @@
         }
         if(val.minprice || val.maxprice){
           let str = ""
-          str += (val.minprice || '-' )+'万元'+'-'+(val.maxprice || '-')+'万元'
+          str += (val.minprice || '' )+'万元'+'-'+(val.maxprice || '')+'万元'
           localStorage.setItem('price',str)  
         }else{
           localStorage.setItem('price','全部')  

+ 13 - 1
src/jfw/modules/bigmember/src/service/portrait/memberPortraitAction.go

@@ -1,16 +1,18 @@
 package portrait
 
 import (
+	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
 	"fmt"
+	"jy/src/jfw/modules/bigmember/src/config"
 	"jy/src/jfw/modules/bigmember/src/entity"
 	"jy/src/jfw/modules/bigmember/src/util"
 	"log"
+	"regexp"
 	"strings"
 
 	. "app.yhyue.com/moapp/jybase/api"
 	qutil "app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/encrypt"
-
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
 )
 
@@ -50,6 +52,10 @@ func (this *EntPortrait) EntDetail() {
 		if err != nil {
 			return nil, err
 		}
+		vipData := jy.GetBigVipUserBaseMsg(this.Session(), *config.Middleground)
+		if vipData.VipStatus <= 0 && vipData.Status <= 0 && vipData.EntnicheStatus <= 0 && entInfo["phone"] != "" {
+			entInfo["phone"] = maskCompanyPhone(qutil.InterfaceToStr(entInfo["phone"]))
+		}
 		return entInfo, nil
 	}()
 	if errMsg != nil {
@@ -58,6 +64,12 @@ func (this *EntPortrait) EntDetail() {
 	this.ServeJson(NewResult(rData, errMsg))
 }
 
+func maskCompanyPhone(phone string) string {
+	regex := regexp.MustCompile(`(\d{4})$`) // 匹配最后四位数字
+	maskedPhone := regex.ReplaceAllString(phone, "****")
+	return maskedPhone
+}
+
 // WinnerContacts 中标企业历史联系人
 func (this *EntPortrait) WinnerContacts() {
 	userId := qutil.ObjToString(this.GetSession("userId"))

+ 5 - 1
src/jfw/modules/bigmember/src/service/portrait/subvipPortraitAction.go

@@ -49,7 +49,7 @@ func (this *SubVipPortrait) SubVipEntDetail() {
 		if entId == "" {
 			return nil, fmt.Errorf("参数异常")
 		}
-		cepm, _, err, _ := entity.CreateSubVipPortraitManager(userId, "entDetail", entId, true, this.Session())
+		cepm, equity, err, _ := entity.CreateSubVipPortraitManager(userId, "entDetail", entId, true, this.Session())
 		if err != nil {
 			return nil, err
 		}
@@ -57,6 +57,10 @@ func (this *SubVipPortrait) SubVipEntDetail() {
 		if err != nil {
 			return nil, err
 		}
+		vipData := jy.GetBigVipUserBaseMsg(this.Session(), *config.Middleground)
+		if vipData.VipStatus <= 0 && vipData.Status <= 0 && vipData.EntnicheStatus <= 0 && equity != 3 && entInfo["phone"] != "" {
+			entInfo["phone"] = maskCompanyPhone(qutil.InterfaceToStr(entInfo["phone"]))
+		}
 		return entInfo, nil
 	}()
 	if errMsg != nil {

+ 14 - 9
src/jfw/modules/publicapply/src/enterpriseSearch/entity/entQuery.go

@@ -30,13 +30,14 @@ type EnterpriseSearch struct {
 	PageSize int  //每页数量
 	PageNum  int  //页码
 	IsVip    bool //是否是会员
+	IsFree   bool //是否免费用户
 }
 
 const (
 	searchMaxLimit    = 100 //最大查询数量限制
 	freeSearchNum     = 4   //免费查询数量限制
 	entSearchCacheDB  = "other"
-	entSearchCacheKey = "entSearchIndexCache"
+	entSearchCacheKey = "entSearchIndexCache_%v"
 
 	index, itype  = "qyxy", "qyxy"
 	entQuery      = `{"query":{"bool":{"must":[%s],"must_not":[%s]}},"_source":["_id","company_name","company_status","legal_person","capital","company_address","company_shortname","company_phone","establish_date"],"sort":[{"capital":{"order":"desc"}}]}`
@@ -254,7 +255,7 @@ func (es *EnterpriseSearch) GetQuerySql() (string, string) {
 // DoQuery 根据EnterpriseSearch参数进行企业相关查询
 func (es *EnterpriseSearch) DoQuery() (list *[]map[string]interface{}, total int64, err error) {
 	if es.isEmptySearch() { //是否是空查询,返回默认企业
-		list = GetEntIndexShow()
+		list = GetEntIndexShow(es.IsFree)
 		if list != nil {
 			total = int64(len(*list))
 			start := es.PageNum * es.PageSize
@@ -287,7 +288,7 @@ func (es *EnterpriseSearch) DoQuery() (list *[]map[string]interface{}, total int
 	sql = sql[:len(sql)-1] + fmt.Sprintf(`,"from":%d,"size":%d}`, start, limit)
 	list = elastic.Get(index, itype, sql)
 
-	list = formatData(list)
+	list = formatData(list, es.IsFree)
 	if total > config.Config.EntSearchLimit {
 		total = config.Config.EntSearchLimit
 	}
@@ -295,9 +296,13 @@ func (es *EnterpriseSearch) DoQuery() (list *[]map[string]interface{}, total int
 }
 
 // //格式化字段,加密id
-func formatData(list *[]map[string]interface{}) *[]map[string]interface{} {
+func formatData(list *[]map[string]interface{}, isFree bool) *[]map[string]interface{} {
 	if list != nil {
-		for index, _ := range *list {
+		delStr := []string{"_id", "establish_date"}
+		if isFree {
+			delStr = append(delStr, "company_phone")
+		}
+		for index := range *list {
 			(*list)[index]["id"] = encrypt.EncodeArticleId2ByCheck(qutil.ObjToString((*list)[index]["_id"]))
 			if shortname, ok := ((*list)[index]["company_shortname"]).(string); !ok || shortname == "" {
 				(*list)[index]["company_shortname"] = getCompanyShortName(qutil.ObjToString((*list)[index]["company_name"]))
@@ -308,7 +313,7 @@ func formatData(list *[]map[string]interface{}) *[]map[string]interface{} {
 			}
 
 			//清除多余字段
-			for _, key := range []string{"_id", "establish_date"} {
+			for _, key := range delStr {
 				delete((*list)[index], key)
 			}
 		}
@@ -335,8 +340,8 @@ type entIds struct {
 	} `json:"entids"`
 }
 
-func GetEntIndexShow() (list *[]map[string]interface{}) {
-	bytes, err := redis.GetBytes(entSearchCacheDB, entSearchCacheKey)
+func GetEntIndexShow(isFree bool) (list *[]map[string]interface{}) {
+	bytes, err := redis.GetBytes(entSearchCacheDB, fmt.Sprintf(entSearchCacheKey, isFree))
 	if err == nil {
 		if err = json.Unmarshal(*bytes, &list); err == nil && list != nil && len(*list) > 0 {
 			return
@@ -366,7 +371,7 @@ func GetEntIndexShow() (list *[]map[string]interface{}) {
 	sql = sql[:len(sql)-1] + fmt.Sprintf(`,"from":%d,"size":%d}`, 0, 100)
 	listTmp := elastic.Get(index, itype, sql)
 	if listTmp != nil && len(*listTmp) > 0 {
-		list = formatData(listTmp)
+		list = formatData(listTmp, isFree)
 		redis.Put(entSearchCacheDB, entSearchCacheKey, list, 60*60*10)
 	}
 	return

+ 3 - 15
src/jfw/modules/publicapply/src/enterpriseSearch/service/search.go

@@ -39,7 +39,9 @@ func (esa *EnterpriseSearchAction) DoEntSearch() {
 			return nil, err
 		}
 		//查询是否是会员
-		if vipData := jy.GetBigVipUserBaseMsg(esa.Session(), *config.Middleground); vipData.Status > 0 || vipData.VipStatus > 0 {
+		vipData := jy.GetBigVipUserBaseMsg(esa.Session(), *config.Middleground)
+		entSearch.IsFree = vipData.VipStatus <= 0 && vipData.Status <= 0 && vipData.EntnicheStatus <= 0
+		if vipData.Status > 0 || vipData.VipStatus > 0 {
 			entSearch.IsVip = true
 		}
 		//查询
@@ -60,17 +62,3 @@ func (esa *EnterpriseSearchAction) DoEntSearch() {
 	}
 	esa.ServeJson(NewResult(rData, errMsg))
 }
-
-// DefaultEntIndex 首页默认展示企业
-func (esa *EnterpriseSearchAction) DefaultEntIndex() {
-	userId, _ := esa.GetSession("userId").(string)
-	rData, errMsg := func() (interface{}, error) {
-		return map[string]interface{}{
-			"list": entity.GetEntIndexShow(),
-		}, nil
-	}()
-	if errMsg != nil {
-		log.Printf("%s EnterpriseSearchAction DefaultEntIndex:%s\n", userId, errMsg.Error())
-	}
-	esa.ServeJson(NewResult(rData, errMsg))
-}

+ 61 - 59
src/jfw/modules/publicapply/src/go.mod

@@ -3,18 +3,18 @@ module jy/src/jfw/modules/publicapply/src
 go 1.18
 
 require (
-	app.yhyue.com/moapp/jybase v0.0.0-20230727083622-4dfc804ea6cf
+	app.yhyue.com/moapp/jybase v0.0.0-20231026082242-8eb41c7bdda6
 	app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545
-	app.yhyue.com/moapp/jypkg v1.0.4-0.20231109032304-2da6db20132a
-	bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.14
+	app.yhyue.com/moapp/jypkg v1.0.7-0.20231114011545-acf570b01ea7
+	bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.15
 	github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67
 	github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.4
-	github.com/alibabacloud-go/dypnsapi-20170525/v2 v2.0.3
+	github.com/alibabacloud-go/dypnsapi-20170525/v2 v2.1.0
 	github.com/alibabacloud-go/tea v1.2.1
 	github.com/alibabacloud-go/tea-utils/v2 v2.0.4
-	github.com/gogf/gf/v2 v2.0.6
-	github.com/zeromicro/go-zero v1.5.3
-	go.mongodb.org/mongo-driver v1.11.6
+	github.com/gogf/gf/v2 v2.5.6
+	github.com/zeromicro/go-zero v1.6.0
+	go.mongodb.org/mongo-driver v1.13.0
 )
 
 require (
@@ -23,8 +23,8 @@ require (
 	app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae // indirect
 	bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230214091519-89a98c01ab0e // indirect
 	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230225125145-431a4f70093a // indirect
-	bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.7 // indirect
-	github.com/BurntSushi/toml v0.4.1 // indirect
+	bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.8 // indirect
+	github.com/BurntSushi/toml v1.2.0 // indirect
 	github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.4 // indirect
 	github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68 // indirect
 	github.com/alibabacloud-go/endpoint-util v1.1.0 // indirect
@@ -35,7 +35,7 @@ require (
 	github.com/beorn7/perks v1.0.1 // indirect
 	github.com/cenkalti/backoff/v4 v4.2.1 // indirect
 	github.com/cespare/xxhash/v2 v2.2.0 // indirect
-	github.com/clbanning/mxj/v2 v2.5.5 // indirect
+	github.com/clbanning/mxj/v2 v2.7.0 // indirect
 	github.com/coreos/go-semver v0.3.1 // indirect
 	github.com/coreos/go-systemd/v22 v22.5.0 // indirect
 	github.com/davecgh/go-spew v1.1.1 // indirect
@@ -47,8 +47,8 @@ require (
 	github.com/go-logr/logr v1.2.4 // indirect
 	github.com/go-logr/stdr v1.2.2 // indirect
 	github.com/go-openapi/jsonpointer v0.19.6 // indirect
-	github.com/go-openapi/jsonreference v0.20.1 // indirect
-	github.com/go-openapi/swag v0.22.3 // indirect
+	github.com/go-openapi/jsonreference v0.20.2 // indirect
+	github.com/go-openapi/swag v0.22.4 // indirect
 	github.com/go-redis/redis/v8 v8.11.5 // indirect
 	github.com/go-sql-driver/mysql v1.7.1 // indirect
 	github.com/gogo/protobuf v1.3.2 // indirect
@@ -57,25 +57,25 @@ require (
 	github.com/golang/protobuf v1.5.3 // indirect
 	github.com/golang/snappy v0.0.4 // indirect
 	github.com/gomodule/redigo v2.0.0+incompatible // indirect
-	github.com/google/gnostic v0.5.7-v3refs // indirect
+	github.com/google/gnostic-models v0.6.8 // indirect
 	github.com/google/go-cmp v0.5.9 // indirect
 	github.com/google/gofuzz v1.2.0 // indirect
+	github.com/google/uuid v1.4.0 // indirect
 	github.com/gorilla/websocket v1.5.0 // indirect
 	github.com/grokify/html-strip-tags-go v0.0.1 // indirect
-	github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.0 // indirect
+	github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 // indirect
 	github.com/hashicorp/hcl v1.0.0 // indirect
 	github.com/howeyc/fsnotify v0.9.0 // indirect
 	github.com/jinzhu/inflection v1.0.0 // indirect
 	github.com/jinzhu/now v1.1.1 // indirect
 	github.com/josharian/intern v1.0.0 // indirect
 	github.com/json-iterator/go v1.1.12 // indirect
-	github.com/klauspost/compress v1.15.15 // indirect
-	github.com/longbridgeapp/sqlparser v0.3.1 // indirect
+	github.com/klauspost/compress v1.16.7 // indirect
 	github.com/magiconair/properties v1.8.7 // indirect
 	github.com/mailru/easyjson v0.7.7 // indirect
 	github.com/mattn/go-colorable v0.1.13 // indirect
-	github.com/mattn/go-isatty v0.0.17 // indirect
-	github.com/mattn/go-runewidth v0.0.13 // indirect
+	github.com/mattn/go-isatty v0.0.20 // indirect
+	github.com/mattn/go-runewidth v0.0.15 // indirect
 	github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
 	github.com/mitchellh/mapstructure v1.5.0 // indirect
 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
@@ -86,14 +86,14 @@ require (
 	github.com/olekukonko/tablewriter v0.0.5 // indirect
 	github.com/olivere/elastic v6.2.37+incompatible // indirect
 	github.com/olivere/elastic/v7 v7.0.22 // indirect
-	github.com/openzipkin/zipkin-go v0.4.1 // indirect
-	github.com/pelletier/go-toml/v2 v2.0.8 // indirect
+	github.com/openzipkin/zipkin-go v0.4.2 // indirect
+	github.com/pelletier/go-toml/v2 v2.1.0 // indirect
 	github.com/pkg/errors v0.9.1 // indirect
-	github.com/prometheus/client_golang v1.15.1 // indirect
-	github.com/prometheus/client_model v0.3.0 // indirect
-	github.com/prometheus/common v0.42.0 // indirect
-	github.com/prometheus/procfs v0.9.0 // indirect
-	github.com/rivo/uniseg v0.2.0 // indirect
+	github.com/prometheus/client_golang v1.17.0 // indirect
+	github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 // indirect
+	github.com/prometheus/common v0.44.0 // indirect
+	github.com/prometheus/procfs v0.11.1 // indirect
+	github.com/rivo/uniseg v0.4.4 // indirect
 	github.com/sirupsen/logrus v1.8.3 // indirect
 	github.com/spaolacci/murmur3 v1.1.0 // indirect
 	github.com/spf13/afero v1.9.3 // indirect
@@ -106,39 +106,41 @@ require (
 	github.com/thinxer/go-word2vec v0.0.0-20150917053916-5c19ec7379ed // indirect
 	github.com/tjfoc/gmsm v1.3.2 // indirect
 	github.com/xdg-go/pbkdf2 v1.0.0 // indirect
-	github.com/xdg-go/scram v1.1.1 // indirect
-	github.com/xdg-go/stringprep v1.0.3 // indirect
-	github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect
+	github.com/xdg-go/scram v1.1.2 // indirect
+	github.com/xdg-go/stringprep v1.0.4 // indirect
+	github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect
 	github.com/ziutek/blas v0.0.0-20190227122918-da4ca23e90bb // indirect
-	go.etcd.io/etcd/api/v3 v3.5.9 // indirect
-	go.etcd.io/etcd/client/pkg/v3 v3.5.9 // indirect
-	go.etcd.io/etcd/client/v3 v3.5.9 // indirect
-	go.opentelemetry.io/otel v1.15.1 // indirect
-	go.opentelemetry.io/otel/exporters/jaeger v1.15.1 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.15.1 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.15.1 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.15.1 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.15.1 // indirect
-	go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.14.0 // indirect
-	go.opentelemetry.io/otel/exporters/zipkin v1.15.1 // indirect
-	go.opentelemetry.io/otel/sdk v1.15.1 // indirect
-	go.opentelemetry.io/otel/trace v1.15.1 // indirect
-	go.opentelemetry.io/proto/otlp v0.19.0 // indirect
+	go.etcd.io/etcd/api/v3 v3.5.10 // indirect
+	go.etcd.io/etcd/client/pkg/v3 v3.5.10 // indirect
+	go.etcd.io/etcd/client/v3 v3.5.10 // indirect
+	go.opentelemetry.io/otel v1.19.0 // indirect
+	go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 // indirect
+	go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 // indirect
+	go.opentelemetry.io/otel/exporters/zipkin v1.19.0 // indirect
+	go.opentelemetry.io/otel/metric v1.19.0 // indirect
+	go.opentelemetry.io/otel/sdk v1.19.0 // indirect
+	go.opentelemetry.io/otel/trace v1.19.0 // indirect
+	go.opentelemetry.io/proto/otlp v1.0.0 // indirect
 	go.uber.org/atomic v1.10.0 // indirect
-	go.uber.org/automaxprocs v1.5.2 // indirect
+	go.uber.org/automaxprocs v1.5.3 // indirect
 	go.uber.org/multierr v1.9.0 // indirect
 	go.uber.org/zap v1.24.0 // indirect
-	golang.org/x/crypto v0.10.0 // indirect
-	golang.org/x/net v0.11.0 // indirect
-	golang.org/x/oauth2 v0.7.0 // indirect
-	golang.org/x/sync v0.1.0 // indirect
-	golang.org/x/sys v0.9.0 // indirect
-	golang.org/x/term v0.9.0 // indirect
-	golang.org/x/text v0.10.0 // indirect
+	golang.org/x/crypto v0.14.0 // indirect
+	golang.org/x/net v0.17.0 // indirect
+	golang.org/x/oauth2 v0.12.0 // indirect
+	golang.org/x/sync v0.3.0 // indirect
+	golang.org/x/sys v0.13.0 // indirect
+	golang.org/x/term v0.13.0 // indirect
+	golang.org/x/text v0.13.0 // indirect
 	golang.org/x/time v0.3.0 // indirect
-	google.golang.org/appengine v1.6.7 // indirect
-	google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
-	google.golang.org/grpc v1.56.1 // indirect
+	google.golang.org/appengine v1.6.8 // indirect
+	google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b // indirect
+	google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b // indirect
+	google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect
+	google.golang.org/grpc v1.59.0 // indirect
 	google.golang.org/protobuf v1.31.0 // indirect
 	gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
 	gopkg.in/inf.v0 v0.9.1 // indirect
@@ -149,12 +151,12 @@ require (
 	gorm.io/driver/mysql v1.0.5 // indirect
 	gorm.io/gorm v1.21.3 // indirect
 	jygit.jydev.jianyu360.cn/ApplicationCenter/publicService v0.0.0-20231017031425-45003ca9f35a // indirect
-	k8s.io/api v0.26.3 // indirect
-	k8s.io/apimachinery v0.27.0-alpha.3 // indirect
-	k8s.io/client-go v0.26.3 // indirect
-	k8s.io/klog/v2 v2.90.1 // indirect
-	k8s.io/kube-openapi v0.0.0-20230307230338-69ee2d25a840 // indirect
-	k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect
+	k8s.io/api v0.28.3 // indirect
+	k8s.io/apimachinery v0.28.3 // indirect
+	k8s.io/client-go v0.28.3 // indirect
+	k8s.io/klog/v2 v2.100.1 // indirect
+	k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect
+	k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
 	sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
 	sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
 	sigs.k8s.io/yaml v1.3.0 // indirect

+ 138 - 125
src/jfw/modules/publicapply/src/go.sum

@@ -5,22 +5,22 @@ app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230304035551-21bb1eedf547/go.mod h1:J
 app.yhyue.com/moapp/jyPoints v1.1.1/go.mod h1:SvP8p5L3jGrejHiH2LXfgCg/NPlFiKBC5Yd0gsI12FU=
 app.yhyue.com/moapp/jybase v0.0.0-20220427020729-974c1a148186/go.mod h1:qNRA0sHuYqcLoYoP8irpaWnW9YsXixe6obBIkwaXpD0=
 app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
-app.yhyue.com/moapp/jybase v0.0.0-20230727083622-4dfc804ea6cf h1:/Tk5haITmGc5c3/y6VxyycIy/LBWO7aYlxTiHKxmzv0=
-app.yhyue.com/moapp/jybase v0.0.0-20230727083622-4dfc804ea6cf/go.mod h1:D40Ae0rQilH8Hc5o2Vtt04Tjh/DNEFpcS3/WkJMPJb8=
+app.yhyue.com/moapp/jybase v0.0.0-20231026082242-8eb41c7bdda6 h1:uyaBp5Iuc/Il4+O2n92CyU9LPvHetFzQVC8iS9iLFOc=
+app.yhyue.com/moapp/jybase v0.0.0-20231026082242-8eb41c7bdda6/go.mod h1:Hv9U/7oHRucqH315Tr1+d03NCvS9mOKPfk8pwwlOIwQ=
 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.0.4-0.20231109032304-2da6db20132a h1:mUqyzXj24uoi9gE9P+EVoiMi/deUHH2+0jbTnwLhOZ0=
-app.yhyue.com/moapp/jypkg v1.0.4-0.20231109032304-2da6db20132a/go.mod h1:76Kz6+MuxcRJRyFad9W8R4AByiQlVGzuGFzklY+2m38=
+app.yhyue.com/moapp/jypkg v1.0.7-0.20231114011545-acf570b01ea7 h1:i7sFy+e/zjqhTQci+0x4E1qEXZOEYCIe6EDug+8LyFk=
+app.yhyue.com/moapp/jypkg v1.0.7-0.20231114011545-acf570b01ea7/go.mod h1:LuxdVd+j3uwm7N5j2hivmpPU0LJytEV7iwAIljdoc4Q=
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae h1:6rDDaz6yxvE8viTSzEBwKYOFWq14TMfuBivSazUZMz4=
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae/go.mod h1:b0zZHev3gmJao1Fo+2Z2KPVjsuLOJVvVxf+kCnu9WkA=
 bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230214091519-89a98c01ab0e h1:h+VEI3o1qC0jeCzkFGTrLI4f27cfa/W/y+0sXokWMgE=
 bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230214091519-89a98c01ab0e/go.mod h1:7Xhygw0KBuL4h0G76FnFg4otQcA9bmOO0c8M0FCjAyQ=
 bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230225125145-431a4f70093a h1:JX2jEMrbdLzXfVC/nTUvdFOkqNj5DUxkJFjl3XE1gyg=
 bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230225125145-431a4f70093a/go.mod h1:5nimT8GJh46AyfeeDeyRlDQygMlO7TRM8Pwm41Gxemc=
-bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.7 h1:G6PHMWAHfYEuY6kbl7OM/KnCQf1Xa54mdhuP7JzK8/I=
-bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.7/go.mod h1:rRiGzKG4F/fmkNxXQCxrkxNWc8yf1SmW8qWCKfGIQSM=
-bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.14 h1:L/0RrgU+l8nMS7YO2JizszaX3lAo0gqzg2Bqmu0So0s=
-bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.14/go.mod h1:03M9BWIGHy7BbGxLvjt8V9zZzEZDWhN6BuHVfVcDFbQ=
+bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.8 h1:14Yxzutsej7LQe3jnN61wuRX9qjAZ4FtdWMA27ewQ3w=
+bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.8/go.mod h1:rRiGzKG4F/fmkNxXQCxrkxNWc8yf1SmW8qWCKfGIQSM=
+bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.15 h1:V8RSWazAsREs+8mpk7h2kXiavSExFFaDG1guhf3Qux8=
+bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.15/go.mod h1:+6ZjaqpCr+ih1GYOh6ZhoDri9ZjiuxxSHvR7ovvhLx0=
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw=
@@ -68,8 +68,9 @@ github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935
 github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
 github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/BurntSushi/toml v0.4.1 h1:GaI7EiDXDRfa8VshkTj7Fym7ha+y8/XxIgD2okUIjLw=
 github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
+github.com/BurntSushi/toml v1.2.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0=
+github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
 github.com/ClickHouse/clickhouse-go v1.4.3/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI=
 github.com/ClickHouse/clickhouse-go v1.5.4/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI=
@@ -77,9 +78,9 @@ github.com/ClickHouse/clickhouse-go/v2 v2.2.0/go.mod h1:8f2XZUi7XoeU+uPIytSi1cvx
 github.com/DATA-DOG/go-sqlmock v1.4.1/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
 github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
 github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
-github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
 github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
 github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
+github.com/RoaringBitmap/roaring v1.5.0/go.mod h1:plvDsJQpxOC5bw8LRteu/MLWHsHez/3y6cubLI4/1yE=
 github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67 h1:x98/gnpyNAiuvg/gX3KgdfKxnZj3t9pIl3BCVJg3qwg=
 github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67/go.mod h1:g1VZ0nbzBvfsWw22gNVOxWxJxpBR+CBiFNK2n2ogeUo=
 github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
@@ -99,8 +100,8 @@ github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.4 h1:7Q2FEyqxeZeIkwYMwRC3up
 github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.4/go.mod h1:5JHVmnHvGzR2wNdgaW1zDLQG8kOC4Uec8ubkMogW7OQ=
 github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68 h1:NqugFkGxx1TXSh/pBcU00Y6bljgDPaFdh5MUSeJ7e50=
 github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68/go.mod h1:6pb/Qy8c+lqua8cFpEy7g39NRRqOWc3rOwAy8m5Y2BY=
-github.com/alibabacloud-go/dypnsapi-20170525/v2 v2.0.3 h1:26XsczMxlJD9btKz2DV7N38l18VC8RUVIxH/Wa9SQ4I=
-github.com/alibabacloud-go/dypnsapi-20170525/v2 v2.0.3/go.mod h1:PVXSzGHi3i/r8NK3eH1iZCaKWqV6QFDfz9fIc48VEFs=
+github.com/alibabacloud-go/dypnsapi-20170525/v2 v2.1.0 h1:1UvmXKNyvSpcYHjlGbKJWCImHXH/7eo7V/qHpFdpKLk=
+github.com/alibabacloud-go/dypnsapi-20170525/v2 v2.1.0/go.mod h1:0EZbiBwZRLaS00rYLfzpelkX9bEhaVmW357oYrox1KY=
 github.com/alibabacloud-go/endpoint-util v1.1.0 h1:r/4D3VSw888XGaeNpP994zDUaxdgTSHBbVfZlzf6b5Q=
 github.com/alibabacloud-go/endpoint-util v1.1.0/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE=
 github.com/alibabacloud-go/openapi-util v0.0.11/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws=
@@ -116,16 +117,15 @@ github.com/alibabacloud-go/tea v1.2.1/go.mod h1:qbzof29bM/IFhLMtJPrgTGK3eauV5J2w
 github.com/alibabacloud-go/tea-utils v1.3.1 h1:iWQeRzRheqCMuiF3+XkfybB3kTgUXkXX+JMrqfLeB2I=
 github.com/alibabacloud-go/tea-utils v1.3.1/go.mod h1:EI/o33aBfj3hETm4RLiAxF/ThQdSngxrpF8rKUDJjPE=
 github.com/alibabacloud-go/tea-utils/v2 v2.0.0/go.mod h1:U5MTY10WwlquGPS34DOeomUGBB0gXbLueiq5Trwu0C4=
-github.com/alibabacloud-go/tea-utils/v2 v2.0.1/go.mod h1:U5MTY10WwlquGPS34DOeomUGBB0gXbLueiq5Trwu0C4=
 github.com/alibabacloud-go/tea-utils/v2 v2.0.4 h1:SoFgjJuO7pze88j9RBJNbKb7AgTS52O+J5ITxc00lCs=
 github.com/alibabacloud-go/tea-utils/v2 v2.0.4/go.mod h1:sj1PbjPodAVTqGTA3olprfeeqqmwD0A5OQz94o9EuXQ=
 github.com/alibabacloud-go/tea-xml v1.1.2 h1:oLxa7JUXm2EDFzMg+7oRsYc+kutgCVwm+bZlhhmvW5M=
 github.com/alibabacloud-go/tea-xml v1.1.2/go.mod h1:Rq08vgCcCAjHyRi/M7xlHKUykZCEtyBy9+DPF6GgEu8=
-github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a h1:HbKu58rmZpUGpz5+4FfNmIU+FmZg2P3Xaj2v2bfNWmk=
 github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc=
+github.com/alicebob/gopher-json v0.0.0-20230218143504-906a9b012302 h1:uvdUDbHQHO85qeSydJtItA4T55Pw6BtAejd0APRJOCE=
 github.com/alicebob/miniredis/v2 v2.14.1/go.mod h1:uS970Sw5Gs9/iK3yBg0l9Uj9s25wXxSpQUE9EaJ/Blg=
 github.com/alicebob/miniredis/v2 v2.22.0/go.mod h1:XNqvJdQJv5mSuVMc0ynneafpnL/zv52acZ6kqeS0t88=
-github.com/alicebob/miniredis/v2 v2.30.3 h1:hrqDB4cHFSHQf4gO3xu6YKQg8PqJpNjLYsQAFYHstqw=
+github.com/alicebob/miniredis/v2 v2.31.0 h1:ObEFUNlJwoIiyjxdrYF0QIDE7qXcLc7D3WpSH4c22PU=
 github.com/aliyun/credentials-go v1.1.2 h1:qU1vwGIBb3UJ8BwunHDRFtAhS6jnQLnde/yk0+Ih2GY=
 github.com/aliyun/credentials-go v1.1.2/go.mod h1:ozcZaMR5kLM7pwtCMEpVmQ242suV6qTJya2bDq4X1Tw=
 github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q=
@@ -144,6 +144,7 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce
 github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
 github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
 github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
+github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
 github.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4=
 github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff/go.mod h1:+RTT1BOk5P97fT2CiHkbFQwkK3mjsFAP6zCYV2aXtjw=
 github.com/bos-hieu/mongostore v0.0.2/go.mod h1:8AbbVmDEb0yqJsBrWxZIAZOxIfv/tsP8CDtdHduZHGg=
@@ -152,7 +153,6 @@ github.com/bradleypeabody/gorilla-sessions-memcache v0.0.0-20181103040241-659414
 github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM=
 github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
 github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
@@ -160,15 +160,15 @@ github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL
 github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
 github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
 github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
-github.com/clbanning/mxj/v2 v2.5.5 h1:oT81vUeEiQQ/DcHbzSytRngP6Ky9O+L+0Bw0zSJag9E=
 github.com/clbanning/mxj/v2 v2.5.5/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s=
+github.com/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME=
+github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s=
 github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80=
 github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
 github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
 github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
 github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
-github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
 github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
 github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
 github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
@@ -217,7 +217,6 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m
 github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
 github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
 github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
-github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
 github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
 github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
@@ -273,11 +272,12 @@ github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34
 github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
 github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
 github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
-github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8=
-github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
+github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
+github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
 github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
-github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
 github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
+github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU=
+github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
 github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
 github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
 github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=
@@ -294,7 +294,7 @@ github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrt
 github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
 github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
-github.com/go-test/deep v1.0.7 h1:/VSMRlnY/JSyqxQUzQLKVMAskpY/NZKFA5j2P+0pP2M=
+github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
 github.com/go-test/deep v1.0.7/go.mod h1:QV8Hv/iy04NyLBxAdO9njL0iVPN1S4d/A3NVv1V36o8=
 github.com/go-xorm/builder v0.3.4/go.mod h1:KxkQkNN1DpPKTedxXyTQcmH+rXfvk4LZ9SOOBoZBAxw=
 github.com/go-xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a/go.mod h1:56xuuqnHyryaerycW3BfssRdxQstACi0Epw/yC5E2xM=
@@ -327,8 +327,9 @@ github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x
 github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
 github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
 github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
-github.com/gogf/gf/v2 v2.0.6 h1:2etb4FMpbQKWIJO+UjtIWrZUp01HUsFb6Po8pgizAWk=
 github.com/gogf/gf/v2 v2.0.6/go.mod h1:8uYzw7qNzuq8vrhVlWke1b1925FFqOJIgmyYW1sr/0M=
+github.com/gogf/gf/v2 v2.5.6 h1:a1UK1yUP3s+l+vPxmV91+8gTarAP9b1IEOw0W7LNl6E=
+github.com/gogf/gf/v2 v2.5.6/go.mod h1:17K/gBYrp0bHGC3XYC7bSPoywmZ6MrZHrZakTfh4eIQ=
 github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
@@ -339,8 +340,7 @@ github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w
 github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
 github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4=
-github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE=
+github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo=
 github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -384,8 +384,8 @@ github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp
 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
-github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
-github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=
+github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
+github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
 github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
 github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
@@ -419,12 +419,14 @@ github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLe
 github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20211214055906-6f57359322fd h1:1FjCyPC+syAzJ5/2S8fqdZK1R22vvA0J7JZKcuOIQ7Y=
 github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
 github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
 github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
+github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
 github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
 github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU=
@@ -452,9 +454,8 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgf
 github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
 github.com/grpc-ecosystem/grpc-gateway v1.14.3/go.mod h1:6CwZWGDSPRJidgKAtJVvND6soZe6fT7iteq8wDPdhb0=
 github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.0 h1:1JYBfzqrWPcCclBwxFCPAou9n+q86mfnu7NAeHfte7A=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.0/go.mod h1:YDZoGHuwE+ov0c8smSH49WLF3F2LaWnYYuDVd+EWrc0=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 h1:RtRsiaGvWxcwd8y3BiRZxsylPT8hLWZ5SPcfI+3IDNk=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0/go.mod h1:TzP6duP4Py2pHLVPPQp42aoYI92+PCrVotyR5e8Vqlk=
 github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 h1:2VTzZjLZBgl62/EtslCrtky5vbi9dd7HrQPQIx6wqiw=
 github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI=
 github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
@@ -556,8 +557,8 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI
 github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
 github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
-github.com/klauspost/compress v1.15.15 h1:EF27CXIuDsYJ6mmvtBRlEuB2UVOqHG1tAXgZ7yIO+lw=
-github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4=
+github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=
+github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
@@ -581,7 +582,6 @@ github.com/lib/pq v1.9.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
 github.com/lib/pq v1.10.3/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
 github.com/lib/pq v1.10.6/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
 github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
-github.com/longbridgeapp/sqlparser v0.3.1 h1:iWOZWGIFgQrJRgobLXUNJdvqGRpbVXkyKUKUA5CNJBE=
 github.com/longbridgeapp/sqlparser v0.3.1/go.mod h1:GIHaUq8zvYyHLCLMJJykx1CdM6LHtkUih/QaJXySSx4=
 github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
 github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
@@ -609,13 +609,14 @@ github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOA
 github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
 github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
 github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
-github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng=
-github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
+github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
+github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
 github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
 github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
 github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
-github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU=
 github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
+github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U=
+github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
 github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
 github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
 github.com/mattn/go-sqlite3 v1.14.5/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI=
@@ -639,6 +640,7 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
 github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
 github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe h1:iruDEfMl2E6fbMZ9s0scYfZQ84/6SPL6zC8ACM2oIL0=
 github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
+github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw=
 github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
@@ -669,7 +671,7 @@ github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vv
 github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
 github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
 github.com/onsi/ginkgo/v2 v2.0.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c=
-github.com/onsi/ginkgo/v2 v2.7.0 h1:/XxtEV3I3Eif/HobnVx9YmJgk8ENdRsuUmM+fLCFNow=
+github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU=
 github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
 github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
@@ -678,18 +680,18 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y
 github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
 github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
 github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs=
-github.com/onsi/gomega v1.26.0 h1:03cDLK28U6hWvCAns6NeydX3zIm4SF3ci69ulidS32Q=
+github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI=
 github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
 github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
 github.com/openzipkin/zipkin-go v0.4.0/go.mod h1:4c3sLeE8xjNqehmF5RpAFLPLJxXscc0R4l6Zg0P1tTQ=
-github.com/openzipkin/zipkin-go v0.4.1 h1:kNd/ST2yLLWhaWrkgchya40TJabe8Hioj9udfPcEO5A=
-github.com/openzipkin/zipkin-go v0.4.1/go.mod h1:qY0VqDSN1pOBN94dBc6w2GJlWLiovAyg7Qt6/I9HecM=
+github.com/openzipkin/zipkin-go v0.4.2 h1:zjqfqHjUpPmB3c1GlCvvgsM1G4LkvqQbBDueDOCg/jA=
+github.com/openzipkin/zipkin-go v0.4.2/go.mod h1:ZeVkFjuuBiSy13y8vpSDCjMi9GoI3hPpCJSBx/EYFhY=
 github.com/paulmach/orb v0.7.1/go.mod h1:FWRlTgl88VI1RBx/MkrwWDRhQ96ctqMCh8boXhmqB/A=
 github.com/paulmach/protoscan v0.2.1/go.mod h1:SpcSwydNLrxUGSDvXvO0P7g7AuhJ7lcKfDlhJCDw2gY=
 github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE=
 github.com/pelletier/go-toml/v2 v2.0.2/go.mod h1:MovirKjgVRESsAvNZlAjtFwV867yGuwRkXbG66OzopI=
-github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
-github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
+github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4=
+github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
 github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
 github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
 github.com/pierrec/lz4 v2.5.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
@@ -712,23 +714,23 @@ github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP
 github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
 github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
 github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
-github.com/prometheus/client_golang v1.15.1 h1:8tXpTmJbyH5lydzFPoxSIJ0J46jdh3tylbvM1xCv0LI=
-github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk=
+github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q=
+github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY=
 github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
 github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
 github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4=
-github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w=
+github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 h1:v7DLqVdK4VrYkVD5diGdl4sxJurKJEMnODWRJlxV9oM=
+github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
 github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
 github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
 github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
 github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
 github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
 github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
-github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM=
-github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc=
+github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
+github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
 github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
 github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
 github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
@@ -736,21 +738,22 @@ github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+Gx
 github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
 github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
 github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
-github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI=
-github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY=
+github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI=
+github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY=
 github.com/quasoft/memstore v0.0.0-20191010062613-2bce066d2b0b/go.mod h1:wTPjTepVu7uJBYgZ0SdWHQlIas582j6cn2jgk4DDdlg=
 github.com/rabbitmq/amqp091-go v1.1.0/go.mod h1:ogQDLSOACsLPsIq0NpbtiifNZi2YOz0VTJ0kHRghqbM=
 github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
 github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
-github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
 github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
+github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
+github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
 github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k=
 github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
 github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
 github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
 github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
-github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
+github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
 github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
 github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=
 github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc=
@@ -780,7 +783,6 @@ github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h
 github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
 github.com/smartystreets/gunit v1.4.2/go.mod h1:ZjM1ozSIMJlAz/ay4SG8PeKF00ckUp+zMHZXV9/bvak=
 github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
-github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
 github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
 github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
 github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
@@ -816,8 +818,8 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F
 github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
 github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
 github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
 github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
+github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
 github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8=
 github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
 github.com/tal-tech/go-zero v1.1.5/go.mod h1:LbN0C7/rbl2+LUWTSUYx5leXmgedeMWjt1jc3/8/zFA=
@@ -825,7 +827,6 @@ github.com/tealeg/xlsx v1.0.5 h1:+f8oFmvY8Gw1iUXzPk+kz+4GpbDZPK1FhPiQRd+ypgE=
 github.com/tealeg/xlsx v1.0.5/go.mod h1:btRS8dz54TDnvKNosuAqxrM1QgN1udgk9O34bDCnORM=
 github.com/thinxer/go-word2vec v0.0.0-20150917053916-5c19ec7379ed h1:1+oKuPuDQ4AbN1WRMFxl9WQClH80GuZ81X/4FsOshjI=
 github.com/thinxer/go-word2vec v0.0.0-20150917053916-5c19ec7379ed/go.mod h1:WE5pZgSp3RwicfhHQmOJOexA0n4AKTzBqmnSu7R8Nbk=
-github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
 github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
 github.com/tjfoc/gmsm v1.3.2 h1:7JVkAn5bvUJ7HtU08iW6UiD+UTmJTIToHCfeFzkcCxM=
 github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w=
@@ -842,17 +843,19 @@ github.com/wader/gormstore/v2 v2.0.0/go.mod h1:3BgNKFxRdVo2E4pq3e/eiim8qRDZzavea
 github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
 github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
 github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs=
-github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E=
-github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g=
+github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY=
+github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4=
 github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM=
-github.com/xdg-go/stringprep v1.0.3 h1:kdwGpVNwPFtjs98xCGkHjQtGKh86rDcRZN17QEMCOIs=
-github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8=
+github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8=
+github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM=
 github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
 github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
 github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
 github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2/go.mod h1:hzfGeIUDq/j97IG+FhNqkowIyEcD88LrW6fyU3K3WqY=
-github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM6xpdFEAYOk8iySO56hMFq6uLyA=
+github.com/yl2chen/cidranger v1.0.2/go.mod h1:9U1yz7WPYDwf0vpNWFaeRh0bjwz5RVgRy/9UEQfHl0g=
 github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
+github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a h1:fZHgsYlfvtyqToslyjUt3VOPF4J7aK/3MPcK7xp3PDk=
+github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/R083muKhosV54bj5niojjWZvU8xrevuH4=
 github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.1.30/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -867,27 +870,27 @@ github.com/yuin/gopher-lua v1.1.0 h1:BojcDhfyDWgU2f2TOzYK/g5p2gxMrku8oupLDqlnSqE
 github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
 github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=
 github.com/zeromicro/go-zero v1.3.5/go.mod h1:wh4o794b7Ul3W0k35Pw9nc3iB4O0OpaQTMQz/PJc1bc=
-github.com/zeromicro/go-zero v1.5.3 h1:9poyd+raeL7gSMUu6P19N7bssTppieR2j7Oos2j1yFQ=
-github.com/zeromicro/go-zero v1.5.3/go.mod h1:dmoBpgJTxt9KWmgrNGpv06XxZRPXMakrxUVgROFAR3g=
+github.com/zeromicro/go-zero v1.6.0 h1:UwSOR1lGZ2g7L0S07PM8RoneAcubtd5x//EfbuNucQ0=
+github.com/zeromicro/go-zero v1.6.0/go.mod h1:E9GCFPb0SwsTKFBcFr9UynGvXiDMmfc6fI5F15vqvAQ=
 github.com/ziutek/blas v0.0.0-20190227122918-da4ca23e90bb h1:uWiILQloLUVdtPYr1ZZo2zqtlpzo4G8vUpglo/Fs2H8=
 github.com/ziutek/blas v0.0.0-20190227122918-da4ca23e90bb/go.mod h1:J3xKssoVdrwZ2E29fIox/EKxOZWimS7AZ4fOTCFkOLo=
 github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0=
 go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
 go.etcd.io/etcd v0.0.0-20200402134248-51bdeb39e698/go.mod h1:YoUyTScD3Vcv2RBm3eGVOq7i1ULiz3OuXoQFWOirmAM=
 go.etcd.io/etcd/api/v3 v3.5.4/go.mod h1:5GB2vv4A4AOn3yk7MftYGHkUfGtDHnEraIjym4dYz5A=
-go.etcd.io/etcd/api/v3 v3.5.9 h1:4wSsluwyTbGGmyjJktOf3wFQoTBIURXHnq9n/G/JQHs=
-go.etcd.io/etcd/api/v3 v3.5.9/go.mod h1:uyAal843mC8uUVSLWz6eHa/d971iDGnCRpmKd2Z+X8k=
+go.etcd.io/etcd/api/v3 v3.5.10 h1:szRajuUUbLyppkhs9K6BRtjY37l66XQQmw7oZRANE4k=
+go.etcd.io/etcd/api/v3 v3.5.10/go.mod h1:TidfmT4Uycad3NM/o25fG3J07odo4GBB9hoxaodFCtI=
 go.etcd.io/etcd/client/pkg/v3 v3.5.4/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
-go.etcd.io/etcd/client/pkg/v3 v3.5.9 h1:oidDC4+YEuSIQbsR94rY9gur91UPL6DnxDCIYd2IGsE=
-go.etcd.io/etcd/client/pkg/v3 v3.5.9/go.mod h1:y+CzeSmkMpWN2Jyu1npecjB9BBnABxGM4pN8cGuJeL4=
+go.etcd.io/etcd/client/pkg/v3 v3.5.10 h1:kfYIdQftBnbAq8pUWFXfpuuxFSKzlmM5cSn76JByiT0=
+go.etcd.io/etcd/client/pkg/v3 v3.5.10/go.mod h1:DYivfIviIuQ8+/lCq4vcxuseg2P2XbHygkKwFo9fc8U=
 go.etcd.io/etcd/client/v3 v3.5.4/go.mod h1:ZaRkVgBZC+L+dLCjTcF1hRXpgZXQPOvnA/Ak/gq3kiY=
-go.etcd.io/etcd/client/v3 v3.5.9 h1:r5xghnU7CwbUxD/fbUtRyJGaYNfDun8sp/gTr1hew6E=
-go.etcd.io/etcd/client/v3 v3.5.9/go.mod h1:i/Eo5LrZ5IKqpbtpPDuaUnDOUv471oDg8cjQaUr2MbA=
+go.etcd.io/etcd/client/v3 v3.5.10 h1:W9TXNZ+oB3MCd/8UjxHTWK5J9Nquw9fQBLJd5ne5/Ao=
+go.etcd.io/etcd/client/v3 v3.5.10/go.mod h1:RVeBnDz2PUEZqTpgqwAtUd8nAPf5kjyFyND7P1VkOKc=
 go.mongodb.org/mongo-driver v1.5.0/go.mod h1:boiGPFqyBs5R0R5qf2ErokGRekMfwn+MqKaUyHs7wy0=
 go.mongodb.org/mongo-driver v1.9.0/go.mod h1:0sQWfOeY63QTntERDJJ/0SuKK0T1uVSgKCuAROlKEPY=
 go.mongodb.org/mongo-driver v1.9.1/go.mod h1:0sQWfOeY63QTntERDJJ/0SuKK0T1uVSgKCuAROlKEPY=
-go.mongodb.org/mongo-driver v1.11.6 h1:XM7G6PjiGAO5betLF13BIa5TlLUUE3uJ/2Ox3Lz1K+o=
-go.mongodb.org/mongo-driver v1.11.6/go.mod h1:G9TgswdsWjX4tmDA5zfs2+6AEPpYJwqblyjsfuh8oXY=
+go.mongodb.org/mongo-driver v1.13.0 h1:67DgFFjYOCMWdtTEmKFpV3ffWlFnh+CYZ8ZS/tXWUfY=
+go.mongodb.org/mongo-driver v1.13.0/go.mod h1:/rGBTebI3XYboVmgz+Wv3Bcbl3aD0QF9zl6kDDw18rQ=
 go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
 go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
 go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
@@ -899,38 +902,38 @@ go.opentelemetry.io/otel v1.0.0/go.mod h1:AjRVh9A5/5DE7S+mZtTR6t8vpKKryam+0lREnf
 go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs=
 go.opentelemetry.io/otel v1.7.0/go.mod h1:5BdUoMIz5WEs0vt0CUEMtSSaTSHBBVwrhnz7+nrD5xk=
 go.opentelemetry.io/otel v1.8.0/go.mod h1:2pkj+iMj0o03Y+cW6/m8Y4WkRdYN3AvCXCnzRMp9yvM=
-go.opentelemetry.io/otel v1.15.1 h1:3Iwq3lfRByPaws0f6bU3naAqOR1n5IeDWd9390kWHa8=
-go.opentelemetry.io/otel v1.15.1/go.mod h1:mHHGEHVDLal6YrKMmk9LqC4a3sF5g+fHfrttQIB1NTc=
+go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs=
+go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY=
 go.opentelemetry.io/otel/exporters/jaeger v1.8.0/go.mod h1:GbWg+ng88rDtx+id26C34QLqw2erqJeAjsCx9AFeHfE=
-go.opentelemetry.io/otel/exporters/jaeger v1.15.1 h1:x3SLvwli0OyAJapNcOIzf1xXBRBA+HD3elrMQmFfmXo=
-go.opentelemetry.io/otel/exporters/jaeger v1.15.1/go.mod h1:0Ck9b5oLL/bFZvfAEEqtrb1U0jZXjm5fWXMCOCG3vvM=
-go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.15.1 h1:XYDQtNzdb2T4uM1pku2m76eSMDJgqhJ+6KzkqgQBALc=
-go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.15.1/go.mod h1:uOTV75+LOzV+ODmL8ahRLWkFA3eQcSC2aAsbxIu4duk=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.15.1 h1:tyoeaUh8REKay72DVYsSEBYV18+fGONe+YYPaOxgLoE=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.15.1/go.mod h1:HUSnrjQQ19KX9ECjpQxufsF+3ioD3zISPMlauTPZu2g=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.15.1 h1:pIfoG5IAZFzp9EUlJzdSkpUwpaUAAnD+Ru1nBLTACIQ=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.15.1/go.mod h1:poNKBqF5+nR/6ke2oGTDjHfksrsHDOHXAl2g4+9ONsY=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.15.1 h1:pnJfHmVcCEBcH5lkM+npJF8cTAjV/d+9cXVNCs5P/ao=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.15.1/go.mod h1:cC3Eu2V56zXY09YlijmqDhOUnL2jVL6KKJg4PGh++dU=
-go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.14.0 h1:sEL90JjOO/4yhquXl5zTAkLLsZ5+MycAgX99SDsxGc8=
-go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.14.0/go.mod h1:oCslUcizYdpKYyS9e8srZEqM6BB8fq41VJBjLAE6z1w=
+go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4=
+go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 h1:3d+S281UTjM+AbF31XSOYn1qXn3BgIdWl8HNEpx08Jk=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0/go.mod h1:0+KuTDyKL4gjKCF75pHOX4wuzYDUZYfAQdSu43o+Z2I=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 h1:Nw7Dv4lwvGrI68+wULbcq7su9K2cebeCUrDjVrUJHxM=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0/go.mod h1:1MsF6Y7gTqosgoZvHlzcaaM8DIMNZgJh87ykokoNH7Y=
 go.opentelemetry.io/otel/exporters/zipkin v1.8.0/go.mod h1:0uYAyCuGT67MFV9Z/Mmx93wGuugHw0FbxMc74fs3LNo=
-go.opentelemetry.io/otel/exporters/zipkin v1.15.1 h1:B6s/o48bx00ayJu7F+jIMJfhPTyxW+S8vthjTZMNBj0=
-go.opentelemetry.io/otel/exporters/zipkin v1.15.1/go.mod h1:EjjV7/YfYXG+khxCOfG6PPeRGoOmtcSusyW66qPqpRQ=
+go.opentelemetry.io/otel/exporters/zipkin v1.19.0 h1:EGY0h5mGliP9o/nIkVuLI0vRiQqmsYOcbwCuotksO1o=
+go.opentelemetry.io/otel/exporters/zipkin v1.19.0/go.mod h1:JQgTGJP11yi3o4GHzIWYodhPisxANdqxF1eHwDSnJrI=
+go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE=
+go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8=
 go.opentelemetry.io/otel/sdk v1.0.0/go.mod h1:PCrDHlSy5x1kjezSdL37PhbFUMjrsLRshJ2zCzeXwbM=
 go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs=
 go.opentelemetry.io/otel/sdk v1.8.0/go.mod h1:uPSfc+yfDH2StDM/Rm35WE8gXSNdvCg023J6HeGNO0c=
-go.opentelemetry.io/otel/sdk v1.15.1 h1:5FKR+skgpzvhPQHIEfcwMYjCBr14LWzs3uSqKiQzETI=
-go.opentelemetry.io/otel/sdk v1.15.1/go.mod h1:8rVtxQfrbmbHKfqzpQkT5EzZMcbMBwTzNAggbEAM0KA=
+go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o=
+go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
 go.opentelemetry.io/otel/trace v1.0.0/go.mod h1:PXTWqayeFUlJV1YDNhsJYB184+IvAH814St6o6ajzIs=
 go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk=
 go.opentelemetry.io/otel/trace v1.7.0/go.mod h1:fzLSB9nqR2eXzxPXb2JW9IKE+ScyXA48yyE4TNvoHqU=
 go.opentelemetry.io/otel/trace v1.8.0/go.mod h1:0Bt3PXY8w+3pheS3hQUt+wow8b1ojPaTBoTCh2zIFI4=
-go.opentelemetry.io/otel/trace v1.15.1 h1:uXLo6iHJEzDfrNC0L0mNjItIp06SyaBQxu5t3xMlngY=
-go.opentelemetry.io/otel/trace v1.15.1/go.mod h1:IWdQG/5N1x7f6YUlmdLeJvH9yxtuJAfc4VW5Agv9r/8=
+go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg=
+go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
 go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
-go.opentelemetry.io/proto/otlp v0.19.0 h1:IVN6GR+mhC4s5yfcTbmzHYODqvWAp3ZedA2SJPI1Nnw=
-go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
+go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
+go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
 go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
 go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
 go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
@@ -941,8 +944,8 @@ go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0
 go.uber.org/automaxprocs v1.3.0/go.mod h1:9CWT6lKIep8U41DDaPiH6eFscnTyjfTANNQNx6LrIcA=
 go.uber.org/automaxprocs v1.4.0/go.mod h1:/mTEdr7LvHhs0v7mjdxDreTz1OG5zdZGqgOnhWiR/+Q=
 go.uber.org/automaxprocs v1.5.1/go.mod h1:BF4eumQw0P9GtnuxxovUd06vwm1o18oMzFtK66vU6XU=
-go.uber.org/automaxprocs v1.5.2 h1:2LxUOGiR3O6tw8ui5sZa2LAaHnsviZdVOUZw4fvbnME=
-go.uber.org/automaxprocs v1.5.2/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0=
+go.uber.org/automaxprocs v1.5.3 h1:kWazyxZUrS3Gs4qUpbwo5kEIMGe/DAvi5Z4tl2NW4j8=
+go.uber.org/automaxprocs v1.5.3/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0=
 go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
 go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
 go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
@@ -986,8 +989,9 @@ golang.org/x/crypto v0.0.0-20210920023735-84f357641f63/go.mod h1:GvvjBRRGRdwPK5y
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM=
 golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I=
+golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
+golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -1078,8 +1082,9 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
 golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
 golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
 golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
-golang.org/x/net v0.11.0 h1:Gi2tvZIJyBtO9SDr1q9h5hEQCp/4L2RQ+ar0qjx2oNU=
 golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ=
+golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
+golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1090,9 +1095,8 @@ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ
 golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.7.0 h1:qe6s0zUXlPX80/dITx3440hWZ7GwMwgDDyrSGTPJG/g=
-golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4=
+golang.org/x/oauth2 v0.12.0 h1:smVPGxink+n1ZI5pkQa8y6fZT0RW0MgCO5bFpepy4B4=
+golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -1106,8 +1110,9 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
 golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
+golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -1190,17 +1195,20 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc
 golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s=
 golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
+golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
 golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
-golang.org/x/term v0.9.0 h1:GRRCnKYhdQrD8kfRAdQ6Zcw1P0OcELxGLKJvtjVMZ28=
 golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo=
+golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek=
+golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
 golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1211,10 +1219,12 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 golang.org/x/text v0.3.8-0.20211105212822-18b340fc7af2/go.mod h1:EFNZuWvGYxIRUEX+K8UmCFwYmZjqcrnq15ZuVldZkZ0=
+golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
 golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
 golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
-golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58=
 golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
+golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
+golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -1293,6 +1303,7 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
 golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
 golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
 golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
+golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM=
 golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -1326,8 +1337,9 @@ google.golang.org/appengine v1.6.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7
 google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
 google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
 google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
-google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
 google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
+google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
 google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
 google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
@@ -1369,11 +1381,14 @@ google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6D
 google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
-google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
 google.golang.org/genproto v0.0.0-20220228195345-15d65a4533f7/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
 google.golang.org/genproto v0.0.0-20220602131408-e326c6e8e9c8/go.mod h1:yKyY4AMRwFiC8yMMNaMi+RkCnjZJt9LoWuvhXjMs+To=
-google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A=
-google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU=
+google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b h1:+YaDE2r2OG8t/z5qmsh7Y+XXwCbvadxxZ0YY6mTdrVA=
+google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:CgAqfJo+Xmu0GwA0411Ht3OU3OntXwsGmrmjI8ioGXI=
+google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b h1:CIC2YMXmIhYw6evmhPxBKJ4fmLbOFtXQN/GV3XOZR8k=
+google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:IBQ646DjkDkvUIsVq/cc03FUFQ9wbZu7yE396YcL870=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc=
 google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
@@ -1395,15 +1410,13 @@ google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA5
 google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
 google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
 google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
-google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
 google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k=
-google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
 google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
 google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ=
 google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
 google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
-google.golang.org/grpc v1.56.1 h1:z0dNfjIl0VpaZ9iSVjA6daGatAYwPGstTjt5vkRMFkQ=
-google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
+google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk=
+google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -1484,27 +1497,27 @@ honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9
 jygit.jydev.jianyu360.cn/ApplicationCenter/publicService v0.0.0-20231017031425-45003ca9f35a h1:kwjO4pqB3gnNGrQ9aXyz6f8s9qXAUenPUDWip8gYR/Q=
 jygit.jydev.jianyu360.cn/ApplicationCenter/publicService v0.0.0-20231017031425-45003ca9f35a/go.mod h1:p/595fgbj4r6GhSJhHDpx3Ru1NkD5UASFL8OuIQw09E=
 k8s.io/api v0.22.9/go.mod h1:rcjO/FPOuvc3x7nQWx29UcDrFJMx82RxDob71ntNH4A=
-k8s.io/api v0.26.3 h1:emf74GIQMTik01Aum9dPP0gAypL8JTLl/lHa4V9RFSU=
-k8s.io/api v0.26.3/go.mod h1:PXsqwPMXBSBcL1lJ9CYDKy7kIReUydukS5JiRlxC3qE=
+k8s.io/api v0.28.3 h1:Gj1HtbSdB4P08C8rs9AR94MfSGpRhJgsS+GF9V26xMM=
+k8s.io/api v0.28.3/go.mod h1:MRCV/jr1dW87/qJnZ57U5Pak65LGmQVkKTzf3AtKFHc=
 k8s.io/apimachinery v0.22.9/go.mod h1:ZvVLP5iLhwVFg2Yx9Gh5W0um0DUauExbRhe+2Z8I1EU=
-k8s.io/apimachinery v0.27.0-alpha.3 h1:uujqsdFrbqF+cEbqFHrkLKp+s3XxRgphTpc6Yg84qLo=
-k8s.io/apimachinery v0.27.0-alpha.3/go.mod h1:TO4higCGNMwebVSdb1XPJdXMU4kk+nmMY/cTMVCGa6M=
+k8s.io/apimachinery v0.28.3 h1:B1wYx8txOaCQG0HmYF6nbpU8dg6HvA06x5tEffvOe7A=
+k8s.io/apimachinery v0.28.3/go.mod h1:uQTKmIqs+rAYaq+DFaoD2X7pcjLOqbQX2AOiO0nIpb8=
 k8s.io/client-go v0.22.9/go.mod h1:IoH7exYnoH/zgvHOuVxh2c4yJepcCBt72FzCTisOc4k=
-k8s.io/client-go v0.26.3 h1:k1UY+KXfkxV2ScEL3gilKcF7761xkYsSD6BC9szIu8s=
-k8s.io/client-go v0.26.3/go.mod h1:ZPNu9lm8/dbRIPAgteN30RSXea6vrCpFvq+MateTUuQ=
+k8s.io/client-go v0.28.3 h1:2OqNb72ZuTZPKCl+4gTKvqao0AMOl9f3o2ijbAj3LI4=
+k8s.io/client-go v0.28.3/go.mod h1:LTykbBp9gsA7SwqirlCXBWtK0guzfhpoW4qSm7i9dxo=
 k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
 k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
 k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
 k8s.io/klog/v2 v2.40.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
-k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw=
-k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
+k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg=
+k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
 k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw=
-k8s.io/kube-openapi v0.0.0-20230307230338-69ee2d25a840 h1:1Q4XWtrQQh04ZweCpL7aMNYafFMoPEiST4dl5b4PmYw=
-k8s.io/kube-openapi v0.0.0-20230307230338-69ee2d25a840/go.mod h1:y5VtZWM9sHHc2ZodIH/6SHzXj+TPU5USoA8lcIeKEKY=
+k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780=
+k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA=
 k8s.io/utils v0.0.0-20211116205334-6203023598ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
 k8s.io/utils v0.0.0-20220706174534-f6158b442e7c/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-k8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY=
-k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI=
+k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
 rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
 rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=

+ 3 - 0
src/jfw/modules/publicapply/src/identity/service/service.go

@@ -80,6 +80,9 @@ func (f *Identity) List() {
 					EntId:        v.EntId,
 					EntUserId:    v.EntUserId,
 					EntUserName:  v.EntUserName,
+					EntRole:      v.EntRole,
+					EntNicheDis:  v.EntNicheDis,
+					EntDeptId:    v.EntDeptId,
 				}),
 			})
 		}

+ 30 - 1
src/jfw/modules/publicapply/src/transfer/transfer.go

@@ -20,7 +20,8 @@ func init() {
 
 type Transfer struct {
 	*xweb.Action
-	transfer xweb.Mapper `xweb:"/transfer"`
+	transfer   xweb.Mapper `xweb:"/transfer"`
+	biTransfer xweb.Mapper `xweb:"/biTransfer"`
 }
 
 func (this *Transfer) Transfer() error {
@@ -52,6 +53,20 @@ func (this *Transfer) Transfer() error {
 	}
 	return this.WriteBytes([]byte("请求异常"))
 }
+func (this *Transfer) BiTransfer() error {
+	newUrl := func() string {
+		buyerName := this.GetString("buyerName")
+		if buyerName == "" {
+			return ""
+		}
+		return BiUrlHandle(buyerName, this.Session())
+	}()
+	if newUrl != "" {
+		log.Println("最近地址", newUrl)
+		return this.Redirect(newUrl)
+	}
+	return this.WriteBytes([]byte("请求异常"))
+}
 
 // 标讯
 var PCWXArticle = "/article/content/%s"
@@ -83,6 +98,20 @@ var PCVipEntPortrait = "/swordfish/page_big_pc/svip/ent_ser_portrait/%s"
 var APPEntPortrait = "/jyapp/big/page/ent_portrait?eId=%s"
 var WXEntPortrait = "/weixin/frontPage/collection/sess/ent_portrait?eId=%s"
 
+func BiUrlHandle(buyerName string, u *httpsession.Session) string {
+	newUrl := ""
+	//pc采购单位画像
+	BaseMsg := jy.GetBigVipUserBaseMsg(u, *config.Middleground)
+	if BaseMsg.EntnicheStatus > 0 {
+		newUrl = fmt.Sprintf("/entpc/unit_portrayal/%s?%s", buyerName, "resource=BI&aside=0")
+	} else {
+		newUrl = fmt.Sprintf("/swordfish/page_big_pc/unit_portrayal/%s?%s", buyerName, "resource=BI&aside=0")
+	}
+	if BaseMsg.Status > 0 {
+		newUrl = fmt.Sprintf("/swordfish/page_big_pc/unit_portrayal/%s?%s", buyerName, "resource=BI&aside=0")
+	}
+	return newUrl
+}
 func UrlHandle(urlStr string, repType string, u *httpsession.Session) string {
 	newUrl := ""
 	lastPath, queryMap := QueryHadle(urlStr)

+ 3 - 3
src/jfw/modules/subscribepay/src/go.mod

@@ -5,9 +5,9 @@ go 1.20
 require (
 	app.yhyue.com/moapp/jybase v0.0.0-20230718012114-37013054344b
 	app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545
-	app.yhyue.com/moapp/jypkg v1.0.3-0.20231031031244-d8df2b391b72
+	app.yhyue.com/moapp/jypkg v1.0.7-0.20231114011545-acf570b01ea7
 	bp.jydev.jianyu360.cn/BaseService/pushpkg v0.0.0-20230225061813-384daf716c9d
-	bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.14
+	bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.15-0.20230925060020-8e4db0f1e13e
 	github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67
 	github.com/gogf/gf/v2 v2.3.3
 	github.com/shopspring/decimal v1.3.1
@@ -23,7 +23,7 @@ require (
 	app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae // indirect
 	bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230214091519-89a98c01ab0e // indirect
 	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230225125145-431a4f70093a // indirect
-	bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.7 // indirect
+	bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.8 // indirect
 	github.com/BurntSushi/toml v1.1.0 // indirect
 	github.com/beorn7/perks v1.0.1 // indirect
 	github.com/cenkalti/backoff/v4 v4.2.1 // indirect

+ 9 - 4
src/jfw/modules/subscribepay/src/go.sum

@@ -9,8 +9,13 @@ app.yhyue.com/moapp/jybase v0.0.0-20230718012114-37013054344b h1:Wtytm2QqQWtBV+s
 app.yhyue.com/moapp/jybase v0.0.0-20230718012114-37013054344b/go.mod h1:D40Ae0rQilH8Hc5o2Vtt04Tjh/DNEFpcS3/WkJMPJb8=
 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=
+<<<<<<< HEAD
 app.yhyue.com/moapp/jypkg v1.0.3-0.20231031031244-d8df2b391b72 h1:irUuaH36GK/6tz4UWDjxSseKX8GJnfy5J6F+e9fFAZY=
 app.yhyue.com/moapp/jypkg v1.0.3-0.20231031031244-d8df2b391b72/go.mod h1:76Kz6+MuxcRJRyFad9W8R4AByiQlVGzuGFzklY+2m38=
+=======
+app.yhyue.com/moapp/jypkg v1.0.7-0.20231114011545-acf570b01ea7 h1:i7sFy+e/zjqhTQci+0x4E1qEXZOEYCIe6EDug+8LyFk=
+app.yhyue.com/moapp/jypkg v1.0.7-0.20231114011545-acf570b01ea7/go.mod h1:LuxdVd+j3uwm7N5j2hivmpPU0LJytEV7iwAIljdoc4Q=
+>>>>>>> master
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae h1:6rDDaz6yxvE8viTSzEBwKYOFWq14TMfuBivSazUZMz4=
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae/go.mod h1:b0zZHev3gmJao1Fo+2Z2KPVjsuLOJVvVxf+kCnu9WkA=
 bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230214091519-89a98c01ab0e h1:h+VEI3o1qC0jeCzkFGTrLI4f27cfa/W/y+0sXokWMgE=
@@ -19,10 +24,10 @@ bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230225125145-431a4f7
 bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230225125145-431a4f70093a/go.mod h1:5nimT8GJh46AyfeeDeyRlDQygMlO7TRM8Pwm41Gxemc=
 bp.jydev.jianyu360.cn/BaseService/pushpkg v0.0.0-20230225061813-384daf716c9d h1:mqOFpjEX8eNNskmu0cejgA8fqmbDjFG/ggeNrUO3shw=
 bp.jydev.jianyu360.cn/BaseService/pushpkg v0.0.0-20230225061813-384daf716c9d/go.mod h1:UKLwPLx9be595yaiIwqqdKSloKK/Kdf/wTLr4XUClV0=
-bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.7 h1:G6PHMWAHfYEuY6kbl7OM/KnCQf1Xa54mdhuP7JzK8/I=
-bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.7/go.mod h1:rRiGzKG4F/fmkNxXQCxrkxNWc8yf1SmW8qWCKfGIQSM=
-bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.14 h1:L/0RrgU+l8nMS7YO2JizszaX3lAo0gqzg2Bqmu0So0s=
-bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.14/go.mod h1:03M9BWIGHy7BbGxLvjt8V9zZzEZDWhN6BuHVfVcDFbQ=
+bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.8 h1:14Yxzutsej7LQe3jnN61wuRX9qjAZ4FtdWMA27ewQ3w=
+bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.8/go.mod h1:rRiGzKG4F/fmkNxXQCxrkxNWc8yf1SmW8qWCKfGIQSM=
+bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.15-0.20230925060020-8e4db0f1e13e h1:bncHHkJLqiDW1ZN6MVe+3bj3i0LxWgFkfqge6Gk7lB4=
+bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.15-0.20230925060020-8e4db0f1e13e/go.mod h1:+6ZjaqpCr+ih1GYOh6ZhoDri9ZjiuxxSHvR7ovvhLx0=
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw=

+ 1 - 1
src/jfw/modules/subscribepay/src/service/dataexportPack.go

@@ -54,7 +54,7 @@ func (des *DataExportPack) ScreenList() {
 				"$gte": time.Now().AddDate(-1, 0, 0).Unix(),
 			},
 		}
-		data, ok := util.MQFW.Find("export_condition", qMap, `{"update_time":1}`, "", false, -1, -1)
+		data, ok := util.MQFW.Find("export_condition", qMap, `{"update_time":-1}`, "", false, -1, -1)
 		if !ok {
 			log.Printf("获取筛选条件失败;qMap:%v", qMap)
 			return nil, errors.New("获取筛选条件失败")

+ 3 - 0
src/main.go

@@ -33,6 +33,7 @@ import (
 	"app.yhyue.com/moapp/jybase/endless"
 	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
+	entUtil "app.yhyue.com/moapp/jypkg/ent/util"
 	"app.yhyue.com/moapp/jypkg/golang.org/x/net/websocket"
 	"app.yhyue.com/moapp/jypkg/public"
 )
@@ -49,6 +50,8 @@ func init() {
 		qrmanager.QrCodeManager = &qrmanager.QrCodeStr{}
 	case "3":
 	}
+	//企业信息查询初始化
+	entUtil.Mysql = public.Mysql
 }
 
 func main() {

+ 46 - 0
src/web/staticres/BI-module/css/crm-action.css

@@ -0,0 +1,46 @@
+.com-statusbar-BI{
+  margin-top: 16px;
+}
+.crm-action{
+  float: right;
+  display: flex;
+  align-items: center;
+  line-height: 20px;
+}
+.action-content{
+  margin-left: 16px;
+  cursor: pointer;
+}
+.action-content .iconfont {
+  position: relative;
+  font-size: 20px;
+  font-style: normal;
+  color: #2ABED1;
+}
+
+.action-content .iconfont .msg {
+  position: absolute;
+  top: -8px;
+  right: -6px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  width: 16px;
+  height: 16px;
+  background: #FF3A20;
+  border-radius: 50%;
+  color: #fff;
+  font-size: 12px;
+}
+
+.action-employ .iconfont, .action-ignore .iconfont{
+  color: #AAA;
+}
+
+.action-employ .iconfont.checked {
+  color: #2ABED1;
+}
+
+.action-ignore .iconfont.checked {
+  color: #FF9F40;
+}

+ 260 - 0
src/web/staticres/BI-module/js/crm-action.js

@@ -0,0 +1,260 @@
+var crmNode = new Vue({
+  el: '#statusbar-BI',
+  delimiters: ['${', '}'],
+  data () {
+    return {
+      list: [
+        { title: '收录', 'icon-0': 'a-Property1shoulu', 'icon-1': 'a-Property1yishoulu', class: 'employ', active: 0 },
+        { title: '忽略', 'icon-0': 'a-Property1hulve', 'icon-1': 'a-Property1yihulve', class: 'ignore', active: 0 },
+        { title: '创建销售线索', 'icon-0': 'chuangjianxiaoshouxiansuo', 'icon-1': 'chuangjianxiaoshouxiansuo', class: 'xiansuo', active: 0, msg: 0 },
+        { title: '创建销售机会', 'icon-0': 'chuangjianxiaoshoujihui', 'icon-1': 'chuangjianxiaoshoujihui', class: 'jihui', active: 0, msg: 0 },
+        { title: '创建客户', 'icon-0': 'chuangjiankehu', 'icon-1': 'chuangjiankehu', class: 'custom', active: 0, msg: 0 }
+      ],
+      pageType: '',
+      employInfo: [], // 收录情况
+      dialogVisible: false,
+      IframeSrc: '',
+      getEntData: {}
+    }
+  },
+  created () {
+    this.getEntInfo()
+    this.getParams()
+  },
+  computed: {
+    getList () {
+      if (this.list[0].active === 0) {
+        return this.list.slice(0, 1)
+      } else {
+        return this.list
+      }
+    }
+  },
+  watch: {
+    dialogVisible (newval) {
+      if(!newval) {
+        this.getEmployData()
+      }
+    },
+  },
+  mounted () {
+    const _this = this
+    window.addEventListener('storage', function(event) {
+      console.log(event.storageArea)
+      if (event.storageArea === sessionStorage) {
+        if (event.key === 'Op-upState') {
+          sessionStorage.setItem('Op-upState', "0")
+          _this.dialogVisible = false
+        }
+      }
+    });
+  },
+  methods: {
+    getParams () {
+      const urlParams = new URLSearchParams(window.location.search)
+      this.pageType = urlParams.get('resource')
+      if (this.pageType === 'BI') {
+        $('.com-tagsbar').hide()
+        $('.com-statusbar').hide()
+        this.getEmployData()
+      } else {
+        $('#statusbar-BI').hide()
+      }
+    },
+    setActionEvent (data) {
+      var employInfoItem = this.employInfo[0]
+      var employId = ''
+      if (employInfoItem) {
+        employId = employInfoItem.employId
+      }
+      const isHavaRoot = this.getEntData.niche_dis === 1 || this.getEntData.niche_dis === 2
+      switch (data.class) {
+        case 'employ':
+          // 收录
+          this.setEmployEvent(data)
+          break
+        case 'ignore':
+          // 忽略
+          this.setIgnoreEvent(data)
+          break
+        case 'custom':
+          // 创建客户
+          this.isCanAdd('more_create_custom').then(res => {
+            if (res.data.status === 1) {
+              if(!isHavaRoot) {
+                sessionStorage.setItem("Op-upState", "0");
+                this.IframeSrc = `${location.origin}/succbi/crm_system/app/crm.app/%E9%80%9A%E7%94%A8%E5%88%9B%E5%BB%BA/create_customer.spg?E_employ_info_id=${this.employInfo[0].employId}&E_create_type=1&t=${new Date().getTime()}`
+                this.dialogVisible = true
+              }
+            } else {
+              toastFn(res.error_msg, 1000)
+            }
+          })
+          break
+        case 'xiansuo':
+          // 创建销售线索
+          this.isCanAdd('more_create_clue').then(res => {
+            if (res.data.status === 1) {
+              if(!isHavaRoot) {
+                sessionStorage.setItem("Op-upState", "0");
+                this.IframeSrc = `${location.origin}/succbi/crm_system/app/crm.app/%E9%80%9A%E7%94%A8%E5%88%9B%E5%BB%BA/create_clues.spg?E_employ_info_id=${this.employInfo[0].employId}&t=${new Date().getTime()}`
+                this.dialogVisible = true
+              }
+            } else {
+              toastFn(res.error_msg, 1000)
+            }
+          })
+          break
+        case 'jihui':
+          // 创建销售机会
+          this.isCanAdd('more_create_chance').then(res => {
+            if (res.data.status === 1) {
+              if(!isHavaRoot) {
+                sessionStorage.setItem("Op-upState", "0");
+                this.IframeSrc = `${location.origin}/succbi/crm_system/app/crm.app/%E9%80%9A%E7%94%A8%E5%88%9B%E5%BB%BA/create_%20%20opportunity.spg?E_employ_info_id=${this.employInfo[0].employId}&M_source_id=${this.employInfo[0].id}&t=${new Date().getTime()}`
+                this.dialogVisible = true
+              }
+            } else {
+              toastFn(res.error_msg, 1000)
+            }
+          })
+          break
+        default:
+          break
+      }
+    },
+    // 判断是否能创建
+    isCanAdd (type) {
+      const url = '/jyapi/crmApplication/info/canAdd'
+      const params = {
+        employInfoId: Number(this.employInfo[0].employId),
+        employCustomId: 0,
+        key: type
+      }
+      return new Promise((resolve, reject) => {
+        this.ajaxComponent(url, params).then((res) => {
+          resolve(res)
+        }).catch((err) => {
+          reject(err)
+        })
+      })
+    },
+    // 查询企业信息
+    getEntInfo () {
+      const url = '/entbase/ent/entinfo'
+      this.ajaxComponent(url).then((res) => {
+        if(res.error_code === 0) {
+          this.getEntData = res.data
+          // niche_dis: 0:销售 1:企业资讯分配 2:部门资讯分配 3:企业资讯分配+销售 4:部门资讯分配+销售
+          if (res.data.niche_dis === 1 || res.data.niche_dis === 2) {
+            this.list.splice(1, 1)
+          }
+        }
+      })
+    },
+    // 查询收录情况
+    getEmployData () {
+      const url = '/jyapi/crmApplication/employ/info'
+      const params = {
+        employType: 1,
+        idArr: id
+      }
+      this.ajaxComponent(url, params).then((res) => {
+        console.info(res)
+        if (res.error_code === 0) {
+          this.employInfo = res.data
+          var employItem = res.data[0]
+          const filteredList = [];
+          if (employItem.isEmploy) {
+            this.list.forEach((v, index) => {
+              if (v.class === 'employ') {
+                v.active = employItem.isEmploy ? 1 : 0;
+                filteredList.push(v)
+              }
+              if (v.class === 'ignore') {
+                v.active = employItem.isIgnore ? 1 : 0;
+                filteredList.push(v)
+              }
+              if (v.class === 'jihui') {
+                v.msg = employItem.chanceCount;
+                if (employItem.type === 2 || employItem.type === 1) {
+                  filteredList.push(v);
+                }
+              } else if (v.class === 'xiansuo') {
+                v.msg = employItem.clueCount;
+                if (employItem.type === 1) {
+                  filteredList.push(v);
+                }
+              } else if (v.class === 'custom') {
+                v.msg = employItem.customCount;
+                if (employItem.type !== 3) {
+                  filteredList.push(v);
+                }
+              }
+            })
+            this.list = filteredList
+          }
+        }
+      })
+    },
+    // 收录操作
+    setEmployEvent (item) {
+      const url = '/jyapi/crmApplication/employ/operate'
+      const info = this.employInfo[0]
+      const params = {
+        idArr: id,
+        isEmploy: !info.isEmploy,
+        sourceType: 1,
+        employType: 1
+      }
+      this.ajaxComponent(url, params).then((res) => {
+        if(res.error_code === 0) {
+          if (res.data.status) {
+            item.active = item.active === 0 ? 1 : 0
+          } else {
+            toastFn(res.data.msg, 1000)
+          }
+          this.getEmployData()
+          console.info(this.list)
+        }
+      })
+    },
+    // 忽略操作
+    setIgnoreEvent (item) {
+      var info = this.employInfo[0]
+      var params = {
+        idArr: id,
+        isIgnore: !info.isIgnore,
+        employType: 1
+      }
+      var url = '/jyapi/crmApplication/ignore/operate'
+      this.ajaxComponent(url, params).then((res) => {
+        if(res && res.error_code === 0) {
+          if (res.data && res.data.status) {
+            item.active = item.active === 0 ? 1 : 0
+          } else {
+            toastFn(res.data.msg, 1000)
+          }
+        }
+      })
+    },
+    // 封装公共ajax
+    ajaxComponent(url, params) {
+      return new Promise((resolve, reject) => {
+        $.ajax({
+          type: "POST",
+          url: url,
+          contentType: 'application/json',
+          data: JSON.stringify(params) || {},
+          success: function (res) {
+            resolve(res)
+          },
+          error: function (err) {
+            reject(err)
+          }
+        });
+      });
+    }
+    
+  }
+})

+ 1 - 1
src/web/staticres/common-module/dataExport/components/popup-data-export.js

@@ -7,7 +7,7 @@ Vue.component('popup-data-export', {
         <div class="close" @click="show = false"></div>
         <div class="content_box">
           <p class="title">温馨提示</p>
-          <div class="text_box">您选择的数据超过了导出数据最大值<span class="blue">20,000</span>,请优化条件后导出。您也可联系客服:<span @click="callPhone('400-108-6670')">400-108-6670</span>,或添加<span class="blue">客服微信</span></div>
+          <div class="text_box">您选择的数据超过了导出数据最大值<span class="blue">20,000</span>,请优化条件后导出。您也可联系客服:<span @click="callPhone('400-108-6670')">400-108-6670</span>,或添加<span class="blue">客服微信</span>进行定制化导出。</div>
           <div class="qr_box">
             <img :src="img" alt="">
           </div>

+ 14 - 0
src/web/staticres/common-module/dataExport/css/dataExportAppend.css

@@ -133,4 +133,18 @@ html .page .progress .p-item .line{
   height: 0.02rem;
   width: 2rem;
   right: -1rem;
+}
+.van-dialog.msgDialog {
+  border-radius: 0.16rem;
+}
+.van-dialog.msgDialog .van-dialog__header{
+  font-size: 0.36rem;
+  color: #171826;
+
+}
+.van-dialog.msgDialog .van-dialog__content div{
+  color: #171826 !important;
+}
+.van-dialog.msgDialog  .van-button__content{
+  font-size: 0.36rem;
 }

BIN
src/web/staticres/common-module/msgCenter/db.png


+ 26 - 7
src/web/staticres/css/dev2/biddingSearch.css

@@ -873,6 +873,10 @@ position: absolute;
   background: transparent url("/images/biddingSearch/distribute.png") 10px center no-repeat;
   background-size: 20px;
 }
+#searchInner .searchControl .seaTender-inner .tabTitle .right-tabBtn #right-employ{
+  background: transparent url("/images/biddingSearch/shoulu.png") 10px center no-repeat;
+  background-size: 20px;
+}
 #searchInner .tab-detail-list{
   position: relative;
 }
@@ -1663,16 +1667,20 @@ position: absolute;
   background: #fff;
   border: 1px solid #2CB7CA;
 }
-.liLuceneList .bid-list-tags .icon-collect,.liLuceneList .bid-list-tags .icon-canbiao{
+.liLuceneList .bid-list-tags .icon-collect,
+.liLuceneList .bid-list-tags .icon-canbiao-img,
+.liLuceneList .bid-list-tags .icon-shoulu{
   position: relative;
   width: 54px;
   background-size: 20px 20px;
   background-position: left center;
 }
-.liLuceneList .bid-list-tags .icon-canbiao{
+.liLuceneList .bid-list-tags .icon-canbiao-img{
     width: 60px;
 }
-.liLuceneList .bid-list-tags .icon-collect::after, .liLuceneList .bid-list-tags .icon-canbiao::after{
+.liLuceneList .bid-list-tags .icon-collect::after,
+.liLuceneList .bid-list-tags .icon-canbiao-img::after,
+.liLuceneList .bid-list-tags .icon-shoulu::after{
   position: absolute;
   content: '收藏';
   left: 24px;
@@ -1681,16 +1689,24 @@ position: absolute;
   line-height: 22px;
   color: #1D1D1D;
 }
-.liLuceneList .bid-list-tags .icon-canbiao::after {
+.liLuceneList .bid-list-tags .icon-shoulu.icon-a-Property1yishoulu::after{
+  width: 42px;
+}
+.liLuceneList .bid-list-tags .icon-canbiao-img::after {
     content: '参标';
 }
+.liLuceneList .bid-list-tags .icon-shoulu::after {
+  content: '收录';
+}
 .liLuceneList .bid-list-tags .icon-collect.checked{
   width: 68px;
 }
-.liLuceneList .bid-list-tags .icon-canbiao.checked{
+.liLuceneList .bid-list-tags .icon-canbiao-img.checked{
     width: 88px;
 }
-.liLuceneList .bid-list-tags .icon-collect.checked::after, .liLuceneList .bid-list-tags .icon-canbiao.checked::after{
+.liLuceneList .bid-list-tags .icon-collect.checked::after,
+.liLuceneList .bid-list-tags .icon-canbiao-img.checked::after,
+.liLuceneList .bid-list-tags .icon-shoulu.checked::after{
   position: absolute;
   content: '已收藏';
   left: 24px;
@@ -1700,10 +1716,13 @@ position: absolute;
   color: #1D1D1D;
 }
 
-.liLuceneList .bid-list-tags .icon-canbiao.checked::after{
+.liLuceneList .bid-list-tags .icon-canbiao-img.checked::after{
     content: '终止参标';
     width: 88px !important;
 }
+.liLuceneList .bid-list-tags .icon-shoulu.icon-a-Property1yishoulu::after{
+  content: '已收录';
+}
 .liLuceneList  .luce-field{
   margin-top: 16px;
 }

+ 21 - 3
src/web/staticres/css/dev2/newBidSearch.css

@@ -220,7 +220,8 @@
   background: transparent url(/images/collected.png) 10px center no-repeat;
   background-size: 20px;
 }
-.icon-collect, .icon-canbiao{
+.icon-collect,
+.icon-canbiao-img{
   display: inline-block;
   width: 20px;
   height: 20px;
@@ -235,14 +236,31 @@
   background-size: contain;
 }
 
-.icon-canbiao {
+.icon-canbiao-img {
   background-image: url(/images/canbiao.png);
 }
 
-.icon-canbiao.checked {
+.icon-canbiao-img.checked {
   background-image: url(/images/canbiao-active.png);
 }
 
+.iconfont.icon-shoulu {
+  display: inline-block;
+  width: 20px;
+  height: 20px;
+  margin-left: 6px;
+  background-size: contain;
+  cursor: pointer;
+  vertical-align: sub;
+  font-size: 20px;
+  color: #AAA;
+  /* background-image: url(/images/biddingSearch/shoulu.png); */
+}
+.iconfont.icon-shoulu.icon-a-Property1yishoulu{
+  color: #2ABED1;
+  left: -14px;
+}
+
 .fold{
   width: 126px;
   height: 28px;

+ 45 - 2
src/web/staticres/dataExport/css/conditions.css

@@ -1253,7 +1253,7 @@ input.sm {
   justify-content: space-between;
 }
 
-.pre-search-list {
+.buyer-search-list, .winner-search-list {
   padding: 20px 0;
   position: absolute;
   z-index: 6;
@@ -1279,4 +1279,47 @@ input.sm {
   color: #1d1d1d;
   background-color: #ececec;
 }
-/* E P289数据导出迭代优化 E*/
+/* E P289数据导出迭代优化 E*/
+
+/* loading */
+body .loading_ {
+  height: 100%;
+  width: 100%;
+  position: fixed;
+  background: #382f3d;
+  z-index: 999999999990;
+opacity: .7;
+    margin-top: 20px;
+}
+body .loading_ > p {
+  position: absolute;
+  left: 0;
+  right: 0;
+  top: 0;
+  bottom: 0;
+  margin: auto;
+  height: 60px;
+  width: 60px;
+  text-align: center;
+  line-height: 60px;
+  font-size: 0.36rem;
+  color: rgba(44, 183, 202, 0.8);
+}
+body .loading_ p span {
+  position: absolute;
+  display: block;
+  height: 40px;
+  width: 40px;
+  margin: 10px;
+  border-radius: 50%;
+  -webkit-box-shadow: 0 2px 3px rgba(44, 183, 202, 0.8);
+  animation: loading_ ease 1s infinite;
+  left: 0;
+  top: 0;
+}
+@keyframes loading_ {
+0% {
+  transform: rotate(0deg); }
+100% {
+  transform: rotate(360deg); }
+}

+ 76 - 1
src/web/staticres/dataExport/css/previewData.css

@@ -36,6 +36,14 @@ body{
     white-space: nowrap;
 }
 
+.d_body .d_gj tr:nth-child(1) td, .d_body .d_gj tr:nth-child(2) td{
+  background-color: transparent;
+}
+
+.d_body .d_bz tr:nth-child(1) td, .d_body .d_bz tr:nth-child(2) td{
+  background-color: transparent;
+}
+
 .d_bz tr:nth-child(odd),.d_gj tr:nth-child(odd){
 	background-color: #f9f9f9;
 }
@@ -197,10 +205,16 @@ body{
 
 .d_gj tr:nth-child(1) td.multi_packet_trd, .d_gj tr:nth-child(2) td.multi_packet_trd{
   background: transparent;
+  color: unset;
 }
 
 .d_bz tr:nth-child(odd).multi_packet_tr, .d_gj tr:nth-child(odd).multi_packet_tr{
   background: transparent;
+  height: 26px;
+}
+.d_bz tr:nth-child(even).multi_packet_tr, .d_gj tr:nth-child(even).multi_packet_tr{
+  background: transparent;
+  height: 26px;
 }
 .d_gj tr.multi_packet_tr td{
   border-left: none;
@@ -208,7 +222,9 @@ body{
 .d_gj tr.multi_packet_tr:last-child td{
   border-bottom: none;
 }
-
+th {
+  height: 54px; /* 设置多级表头的高度 */
+}
 .floatBtn{
     border-radius: 5px;
     padding-top: 15px;
@@ -247,3 +263,62 @@ body{
 	top: 0px;
     left: 0px;
 }
+
+.d_body {
+  position: relative;
+  width: fit-content;
+}
+.d_body .d_gj {
+  min-width: initial;
+}
+.d_body .d_gj .el-table__header-wrapper .is-group tr th {
+  padding: 0;
+}
+.d_body .d_gj .el-table__header-wrapper .is-group tr th .cell {
+  padding: 0 4px;
+}
+
+.d_body .d_bz {
+  min-width: initial;
+}
+.d_body .d_bz .el-table__header-wrapper tr th {
+  padding: 0;
+}
+.d_body .d_bz .el-table__header-wrapper tr th .cell {
+  padding: 0 4px;
+}
+
+.d_body td {
+  font-family: MyNewFont,'微软雅黑';
+}
+
+.d_body .d_gj tr:nth-child(1) td,.d_gj tr:nth-child(2) td{
+  padding: 0;
+}
+.d_body .el-table .el-table__cell{
+  padding: 0;
+}
+.d_body .el-table .cell {
+  padding: 2px 5px;
+  line-height: 18px;
+}
+
+.d_body .el-table .winner_list{
+  display: flex;
+  flex-direction: column;
+}
+
+.d_body .el-table .set-table-line{
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  width: 100%;
+  min-height: 24px;
+  border-bottom: 1px solid #e6e6e6;
+}
+.d_body .el-table .set-table-line:last-child{
+  border-bottom: none;
+}
+.d_body .el-table .set-cell-padding .cell {
+  padding:  2px 0;
+}

+ 9 - 11
src/web/staticres/dataExport/js/conditions_order.js

@@ -234,15 +234,15 @@ function delAddBox(n) {
   })
 }
 /* 输入事件 */
-$(".user-input input").on('input',function () {
-  var dom = $(this)
-  var f =  $.trim(dom.val()).length> 0
-  if(f) {
-    dom.next().show()
-  } else {
-    dom.next().hide()
-  }
-})
+// $(".user-input input").on('input',function () {
+//   var dom = $(this)
+//   var f =  $.trim(dom.val()).length> 0
+//   if(f) {
+//     dom.next().show()
+//   } else {
+//     dom.next().hide()
+//   }
+// })
 /* 生成子标签 */
 function createCKey(title,arr,clazz) {
   if(arr.length === 0) {
@@ -348,8 +348,6 @@ function addDelInput(t,type) {
 /* 采购单位、中标单位 input-blur -- 添加可删除Input标签 -- 20190103*/
 function addDelInputB(t,type) {
   setTimeout(() => {
-    dataNode.buyerSearchListShow = false
-    dataNode.winnerSearchListShow = false
     $('.buyer-search-list').hide()
     $('.winner-search-list').hide()
     var d = document.createElement('div');

+ 2 - 2
src/web/staticres/frontRouter/pc/collection/css/index-pc.css

@@ -39,7 +39,7 @@
     background-repeat: no-repeat;
     background-size: contain;
 }
-.icon-canbiao {
+.icon-canbiao-img {
     background:transparent url(/images/canbiao.png) no-repeat center;
     background-size: contain;
 }
@@ -47,7 +47,7 @@
     margin-right:0px !important;
 }
 
-.icon-canbiao-active {
+.icon-canbiao-img-active {
     background:transparent url(/images/canbiao-active.png) no-repeat center;
     background-size: contain;
 }

BIN
src/web/staticres/images/biddingSearch/shoulu-checked.png


BIN
src/web/staticres/images/biddingSearch/shoulu.png


+ 72 - 3
src/web/staticres/js/ent-search-index-pc.js

@@ -221,7 +221,8 @@ var entSearch = new Vue({
             endDate:'',
             thisStartTime:'',
             thisEndTime:'',
-            indusShow: false
+            indusShow: false,
+            employInfo: []
         }
     },
     watch: {
@@ -297,6 +298,10 @@ var entSearch = new Vue({
         },
         company_phone_show :function (){
             return  this.isLogin && !this.isFree
+        },
+        getBIParams () {
+          const urlParams = new URLSearchParams(window.location.search)
+          return urlParams.get('resource')
         }
     },
     created: function () {
@@ -335,6 +340,62 @@ var entSearch = new Vue({
         // }
     },
     methods: {
+        // 查询收录情况
+        getEmployData (ids) {
+          const url = '/jyapi/crmApplication/employ/info'
+          const params = {
+            employType: 2,
+            idArr: ids ? ids.join(',') : ''
+          }
+          $.ajax({
+            url: url,
+            type: 'POST',
+            data: JSON.stringify(params),
+            contentType: 'application/json',
+            success: function (res) {
+              if (res.error_code === 0) {
+                this.employInfo = res.data
+                res.data.forEach((r) => {
+                  this.listState.list.forEach(m => {
+                    if(m.id === r.id) {
+                      m.active = r.isEmploy ? 1 : 0
+                    }
+                  })
+                })
+                this.$forceUpdate()
+                console.info(this.listState.list)
+              }
+            }.bind(this)
+          })
+        },
+        // 收录操作
+        setEmployEvent (item) {
+          const  _this = this
+          const url = '/jyapi/crmApplication/employ/operate'
+          const params = {
+            idArr: item.id,
+            isEmploy: !item.active,
+            employType: 2
+          }
+          $.ajax({
+            url: url,
+            type: 'POST',
+            data: JSON.stringify(params),
+            contentType: 'application/json',
+            success: function (res) {
+              if(res.error_code === 0) {
+                if (res.data.status) {
+                  item.active = !item.active ? 1 : 0
+                } else {
+                  _this.toastFn(res.data.msg, 800)
+                }
+              }
+              this.$forceUpdate()
+            }.bind(this),
+            complete: function () {
+            }.bind(this)
+          })
+        },
         getQuery: function () {
             this.query.from = getParam('from')
             this.query.point = getParam('point')
@@ -819,6 +880,8 @@ var entSearch = new Vue({
                         } catch (error) {}
                     })
                     this.listState.list = res.data.list || []
+                    const resultIds = res.data.list.map(v => v.id)
+                    this.getEmployData(resultIds)
                     // if (this.power) {
                     //     this.listState.list = res.data.list || []
                     // } else {
@@ -874,10 +937,16 @@ var entSearch = new Vue({
         },
         toDetail: function (item) {
             var id = item.id || item.entId
+            let BIPage = ''
+            if (this.getBIParams) {
+              BIPage = '?resource=BI'
+            } else {
+              BIPage = ''
+            }
             // 去超级订阅画像
-            var svipLink = '/swordfish/page_big_pc/svip/ent_ser_portrait/' + id
+            var svipLink = '/swordfish/page_big_pc/svip/ent_ser_portrait/' + id + BIPage
             // 大会员画像
-            var memberLink = '/swordfish/page_big_pc/ent_portrait/' + id
+            var memberLink = '/swordfish/page_big_pc/ent_portrait/' + id + BIPage
             // 是渠道合作页面需要登录后重定向
             if(cooperateCode) {
               openLoginDig(null, svipLink)

+ 63 - 2
src/web/staticres/js/pur-search-index-pc.js

@@ -198,6 +198,10 @@ var vm = new Vue({
         purListShow: function () {
             return this.searchContent.trim().length >= 2 && this.preSearch.list.length && (this.preSearch.focus || this.preSearch.hover)
         },
+        getBIParams () {
+          const urlParams = new URLSearchParams(window.location.search)
+          return urlParams.get('resource')
+        }
     },
     created: function () {
       var params = goTemplateData.params
@@ -235,6 +239,60 @@ var vm = new Vue({
         // }
     },
     methods: {
+        // 查询收录情况
+        getEmployData (ids) {
+          const url = '/jyapi/crmApplication/employ/info'
+          const params = {
+            employType: 3,
+            idArr: ids ? ids.join(',') : ''
+          }
+          $.ajax({
+            url: url,
+            type: 'POST',
+            data: JSON.stringify(params),
+            contentType: 'application/json',
+            success: function (res) {
+              if (res.error_code === 0) {
+                this.employInfo = res.data
+                res.data.forEach((r) => {
+                  this.listState.list.forEach(m => {
+                    if(m.buyer === r.id) {
+                      m.active = r.isEmploy ? 1 : 0
+                    }
+                  })
+                })
+                this.$forceUpdate()
+              }
+            }.bind(this)
+          })
+        },
+        // 收录操作
+        setEmployEvent (item) {
+          const url = '/jyapi/crmApplication/employ/operate'
+          const params = {
+            idArr: item.buyer,
+            isEmploy: !item.active,
+            employType: 3
+          }
+          $.ajax({
+            url: url,
+            type: 'POST',
+            data: JSON.stringify(params),
+            contentType: 'application/json',
+            success: function (res) {
+              if(res.error_code === 0) {
+                if (res.data.status) {
+                  item.active = !item.active ? 1 : 0
+                } else {
+                  toastFn(res.data.msg, 1000)
+                }
+              }
+              this.$forceUpdate()
+            }.bind(this),
+            complete: function () {
+            }.bind(this)
+          })
+        },
         randomBgc: function () {
             var arr = ['default', 'blue', 'orange', 'green']
             var randomIndex = utils.getRandomNumber(0, arr.length - 1)
@@ -608,6 +666,8 @@ var vm = new Vue({
                           v.projectCount = v.projectCount ? v.projectCount + '个' : ''
                         })
                         this.listState.list = res.data.list
+                        const resultIds = res.data.list.map(v => v.buyer)
+                        this.getEmployData(resultIds)
                         this.listState.loading = false
                         // this.getBuyerOtherInfo(buyerNameArr)
                     } else {
@@ -673,11 +733,12 @@ var vm = new Vue({
         },
         goTitle: function(name) {
           // 是渠道合作页面需要登录后重定向
+            const BIPge = this.getBIParams ? '?resource=BI' : ''
             var url = '/swordfish/page_big_pc/unit_portrayal/' + name
             if (this.isNewEntNiche) {
-              url = '/entpc/unit_portrayal/' + name
+              url = '/entpc/unit_portrayal/' + name + BIPge
             } else {
-              url = '/swordfish/page_big_pc/unit_portrayal/' + name
+              url = '/swordfish/page_big_pc/unit_portrayal/' + name + BIPge
             }
             if(cooperateCode) {
               openLoginDig(null, url)

+ 203 - 12
src/web/staticres/js/superSearch.js

@@ -5,7 +5,11 @@ var submitflag = true;
 var tabularflag = "Y";
 var onAntiSpiderWhitelist = false; // 是否在反爬虫白名单
 var commonSearchWordsRegExp = [] // 通用搜索词语
+var employList = [] // 收录情况列表
 var tParams = goTemplateData.params
+// 是否在bi环境下(p364-crm营销功能)
+var inResourceBIiframe = getParam('resource') === 'BI'
+
 if (!(tParams.isEntniche || tParams.isVip || tParams.isMember)) {
   localStorage.setItem('login-clear-bidsearch-list-model', 'S')
 }
@@ -365,7 +369,7 @@ function appendDatas(datas,flag,isNew,onlyUpdateTable){
             }
             // 分类标签、收藏
             listHtml += '<div class="bid-list-tags">'
-                +'<div>'
+                +'<div class="bid-list-tags-left">'
                 if (datas[i].site == '剑鱼信息发布平台') {
                   listHtml += '<span class="tags-item tags-publish">用户发布</span>'
                 }
@@ -411,12 +415,24 @@ function appendDatas(datas,flag,isNew,onlyUpdateTable){
                   listHtml+='<span class="tags-item tags-file">'+'有附件'+'</span>'
                 }
                 listHtml+='</div>'
-                listHtml+='<div>'
+                listHtml+='<div class="bid-list-tags-right">'
                 // 是否参标(2022/05/12)
-                 listHtml += '<i class="icon-canbiao" style="display:none" dataid="'+datas[i]._id+'" ></i>'
+                 listHtml += '<i class="icon-canbiao-img" style="display:none" dataid="'+datas[i]._id+'" ></i>'
 
                 // // 是否收藏
-                listHtml += '<i class="icon-collect" dataid="'+datas[i]._id+'"></i>'
+                var resource = inResourceBIiframe
+                if (!resource) {
+                  listHtml += '<i class="icon-collect" dataid="'+datas[i]._id+'"></i>'
+                  $('#right-export').show()
+                  $('#bid-collect').show()
+                  $('.line-common').show()
+                } else {
+                  // // 是否收录
+                  listHtml += '<i class="icon-shoulu iconfont icon-a-Property1shoulu" dataid="'+datas[i]._id+'"></i>'
+                  $('#right-export').hide()
+                  $('#bid-collect').hide()
+                  $('.line-common').hide()
+                }
                 // 是否山川应用嵌入环境 添加操作按钮
                 var inInjectBI = getParam('report') === 'bi' || (location.href.indexOf('/jylab/bi/index') !== -1)
                 if (inInjectBI) {
@@ -669,6 +685,11 @@ function appendDatas(datas,flag,isNew,onlyUpdateTable){
   // 生成dom之后再查标讯有无参标
   getBidIsJoin()
 
+  // 生成dom之后再查标讯是否收录
+  if(inResourceBIiframe) {
+    getEmployData()
+  }
+
   checkVisited()
   // 生成dom之后再查询是否勾选
   getCheckList()
@@ -1449,7 +1470,8 @@ function getBidIsColl () {
   // 区分标题搜索和全文搜索收藏
   var allSearch = selectType.indexOf('content') > -1 && $("#zbSeatchT [name='keywords']").val() !==""
   // console.log('当前是否显示的是全文',allSearch)
-  var $dom = allSearch ? $('.all-text-checkbox[name="bid-list"]') : $('.title-text-checkbox[name="bid-list"]')
+  // var $dom = allSearch ? $('.all-text-checkbox[name="bid-list"]') : $('.title-text-checkbox[name="bid-list"]')
+  var $dom = $('.title-text-checkbox[name="bid-list"]')
   $dom.each(function() {
     if ($(this).attr('dataid')) {
       dataId = $(this).attr("dataid");
@@ -1642,7 +1664,92 @@ function collectClick() {
       toastFn('尚未选择标讯,请选择', 1000)
     }
   })
+  // 批量收录
+$('#right-employ').off('click').bind('click', function(e) {
+  // 登录判断
+  if (!loginflag) {
+    openLoginDig()
+    return
+  }
+  e.stopPropagation()
+  var len = $('.custom-checkbox:not(".check-all"):checked').length;
+  var checkedId = [] // 提交后端需要的标讯id数组
+  var leftArr = [] // checkbox选中的数据
+  var rightArr = [] // 当前已收录过的数据
+  var notSameArr = [] // 选中的数据 与 收录过的数据相比不同的数组
+  $('.custom-checkbox:not(".check-all"):checked').each(function(){
+    if ($(this).attr('dataid')) {
+      checkedId.push({
+        bid: $(this).attr('dataid')
+      })
+      leftArr.push($(this).attr('dataid'))
+    }
+  })
+  $('.icon-shoulu.icon-a-Property1yishoulu').each(function() {
+    if ($(this).attr('dataid')) {
+      rightArr.push($(this).attr('dataid'))
+    }
+  })
+  if (len > 0 || selectDataIds.length > 0) {
+    selectDataIds.forEach(function(v) {
+      checkedId.push({
+        bid: v
+      })
+    })
+    checkedId = arrUnique(checkedId)
+    if(leftArr.length <= rightArr.length) {
+      for (key in leftArr) {
+        var stra = leftArr[key];
+        var count = 0;
+        for (var j = 0; j < rightArr.length; j++) {
+          var strb = rightArr[j];
+          if (stra == strb) {
+            count++;
+          }
+        }
+        if (count === 0) { //表示数组1的这个值没有重复的,放到notSameArr列表中
+          notSameArr.push(stra);
+        }
+      }
+      // 如果没有不同的值 即为选中的标讯都已收藏过 有不同的值即为有未收藏的标讯
+      // console.log(notSameArr, 'notSameArr')
+      if(notSameArr.length == 0) {
+        toastFn('已收藏', 800)
+        return
+      }
+    }
+    const url = '/jyapi/crmApplication/employ/operate'
+    console.info(checkedId)
+    const result = checkedId.map(obj => obj.bid)
+    const params = {
+      idArr: result.join(','),
+      isEmploy: true,
+      employType: 1
+    }
+    $.ajax({
+      type: "POST",
+      url: url,
+      contentType: 'application/json',
+      data: JSON.stringify(params),
+      success: function (res) {
+        if (res.error_code === 0) {
+          if (res.data.status) {
+            checkedId.forEach((v, i) => {
+              $('.icon-shoulu[dataid="' + result[i] + '"]').removeClass('icon-a-Property1shoulu').addClass('icon-a-Property1yishoulu')
+            })
+          }
+        }
+      },
+      error: function (err) {
+        reject(err)
+      }
+    })
+  } else {
+    toastFn('尚未选择标讯,请选择', 1000)
+  }
+})
 }
+var getEntDataInfo = {}
 function distributeInit(){
   $.ajax({
     type: 'get',
@@ -1650,9 +1757,12 @@ function distributeInit(){
     url: '/entbase/ent/entinfo',
     success: function (r) {
       if (r.data) {
+        getEntDataInfo = r.data
         if(r.data.admin_system || r.data.admin_department){
-          $('#right-distribute').show();
-          $('.line-distribute').show();
+          if(!inResourceBIiframe) {
+            $('#right-distribute').show();
+            $('.line-distribute').show();
+          }
         }
       }
     }
@@ -1690,6 +1800,85 @@ function distributeInit(){
     }
   })
 }
+/**收录方法start */
+// 查询收录情况
+function getEmployData () {
+  var bids = ""
+  var dataId = ""
+  var $dom = $('.title-text-checkbox[name="bid-list"]')
+  $dom.each(function () {
+    if ($(this).attr('dataid')) {
+      dataId = $(this).attr("dataid");
+      if (bids != "") {
+        bids += ",";
+      }
+      bids += dataId;
+    }
+  })
+  const url = '/jyapi/crmApplication/employ/info'
+  const params = {
+    employType: 1,
+    idArr: bids
+  }
+  $.ajax({
+    type: "POST",
+    url: url,
+    contentType: 'application/json',
+    data: JSON.stringify(params),
+    success: function (res) {
+      if (res.error_code === 0) {
+        if(res.data && res.data.length > 0) {
+          employList = res.data
+          res.data.forEach(function (item, index) {
+            if(item.isEmploy) {
+              $('.icon-shoulu[dataid="' + item.id + '"]').removeClass('icon-a-Property1shoulu').addClass('icon-a-Property1yishoulu')
+            } else {
+              $('.icon-shoulu[dataid="' + item.id + '"]').removeClass('icon-a-Property1yishoulu').addClass('icon-a-Property1shoulu')
+            }
+          })
+        }
+      }
+    },
+    error: function (err) {
+      console.log(err)
+    }
+  })
+}
+
+// 收录操作
+$(document).on('click', '.icon-shoulu', function() {
+  const id = $(this).attr('dataid')
+  const isChecked = $(this).hasClass('icon-a-Property1yishoulu') 
+  const url = '/jyapi/crmApplication/employ/operate'
+  const params = {
+    idArr: id,
+    isEmploy: !isChecked,
+    employType: 1
+  }
+  $.ajax({
+    type: "POST",
+    url: url,
+    contentType: 'application/json',
+    data: JSON.stringify(params),
+    success: function (res) {
+      if (res.error_code === 0) {
+        if (res.data.status) {
+          if(!isChecked) {
+            $('.icon-shoulu[dataid="' + id + '"]').removeClass('icon-a-Property1shoulu').addClass('icon-a-Property1yishoulu')
+          } else {
+            $('.icon-shoulu[dataid="' + id + '"]').removeClass('icon-a-Property1yishoulu').addClass('icon-a-Property1shoulu')
+          }
+        } else {
+          toastFn(res.data.msg, 800)
+        }
+      }
+    },
+    error: function (err) {
+      reject(err)
+    }
+  })
+})
+/**收录方法end */
 /*******参标方法start**********/
 /*
   招标信息是否参标藏接口ajax
@@ -1728,12 +1917,14 @@ function getBidIsJoin () {
         if(data.length > 0) {
           Bidrenewal_Dialog.initBidrenewalDialog = true // 加载参标状态更新弹窗
          }
-        $('.icon-canbiao').removeClass('checked')
+        $('.icon-canbiao-img').removeClass('checked')
         data.forEach(function (item, index) {
-          $('.icon-canbiao[dataid="' + item.id + '"]').show()
-          // $('.icon-canbiao[dataid="' + item + '"]').css("display","inline-block");
+          if(!inResourceBIiframe) {
+            $('.icon-canbiao-img[dataid="' + item.id + '"]').show()
+          }
+          // $('.icon-canbiao-img[dataid="' + item + '"]').css("display","inline-block");
           if(item.value) {
-            $('.icon-canbiao[dataid="' + item.id + '"]').addClass('checked')
+            $('.icon-canbiao-img[dataid="' + item.id + '"]').addClass('checked')
           }
         })
       }
@@ -1745,7 +1936,7 @@ function getBidIsJoin () {
 function joinBidsClick() {
   // console.log(vipState, '是否是超级订阅用户')
   // 单个参标点击事件
-  $('.icon-canbiao').unbind('click').on('click',function(e) {
+  $('.icon-canbiao-img').unbind('click').on('click',function(e) {
     // 登录判断
     if (!loginflag) {
       openLoginDig()

+ 65 - 2
src/web/staticres/pccss/ent-search-index-pc.css

@@ -219,18 +219,68 @@
     margin-top: 0;
     padding-top: 100px;
 }
+.ent-info-content{
+  display: flex;
+  justify-content: space-between;
+}
+.ent-info-content:hover {
+  background-color: #f5f6f7;
+  box-shadow: inset 0 -1px 0 0 rgb(0,0,0,.05);
+}
+.ent-info-content .ent-info-active{
+  display: flex;
+  align-items: center;
+  padding-right: 16px;
+}
+.ent-info-content .icon-shoulu{
+  position: relative;
+  width: 54px;
+  display: inline-block;
+  height: 20px;
+  margin-left: 6px;
+  font-size: 20px;
+  color: #AAA;
+  /* background: transparent url(/images/biddingSearch/shoulu.png) center no-repeat; */
+  background-size: 20px 20px;
+  background-position: left center;
+  cursor: pointer;
+  vertical-align: sub;
+}
+
+.ent-info-content .icon-shoulu.icon-a-Property1yishoulu {
+  color: #2ABED1;
+  left: -16px;
+}
+
+.ent-info-content .icon-shoulu::after{
+  position: absolute;
+  content: '收录';
+  left: 24px;
+  width: 32px;
+  font-size: 14px;
+  line-height: 22px;
+  color: #1D1D1D;
+}
+
+.ent-info-content .icon-shoulu.icon-a-Property1yishoulu::after{
+  content: '已收录';
+  width: 54px;
+}
+
+
 
 .ent-info-item {
     position: relative;
     padding: 18px 16px;
     display: flex;
+    flex: 1;
     border-bottom: 1px solid rgba(0,0,0,.05);
     cursor: pointer;
 }
-.ent-info-item.hover:hover {
+/* .ent-info-item.hover:hover {
     background-color: #f5f6f7;
     box-shadow: inset 0 -1px 0 0 rgb(0,0,0,.05);
-}
+} */
 .ent-info-item .list-item-mask {
     position: absolute;
     top: 0;
@@ -418,4 +468,17 @@
   background: #2cb7ca;
   transform: translateX(-50%);
   z-index: 9;
+}
+.custom-toast{
+  position: fixed;
+  top: 50%;
+  left: 50%;
+  width: auto;
+  padding: 16px 32px;
+  font-size: 16px;
+  background: rgba(0, 0, 0, 0.65);
+  border-radius: 8px;
+  color: #fff;
+  transform: translateX(-50%) translateY(-50%);
+  z-index: 99;
 }

+ 34 - 0
src/web/staticres/pccss/pur-search-index-pc.css

@@ -239,6 +239,40 @@
 .search-pur-container .pur-info-list .list-item:hover {
     background: #F5F6F7;
 }
+.pur-info-list .list-item .list-item-left{
+  display: flex;
+  flex: 1;
+}
+.pur-info-list .list-item .list-item-right .icon-shoulu{
+  position: relative;
+  width: 54px;
+  display: inline-block;
+  height: 20px;
+  margin-left: 6px;
+  font-size: 20px;
+  color: #AAA;
+  cursor: pointer;
+  vertical-align: sub;
+}
+.pur-info-list .list-item .list-item-right .icon-shoulu.icon-a-Property1yishoulu {
+  color: #2ABED1;
+  left: -16px;
+}
+.pur-info-list .list-item .list-item-right .icon-shoulu::after{
+  position: absolute;
+  content: '收录';
+  left: 24px;
+  width: 32px;
+  font-size: 14px;
+  line-height: 22px;
+  color: #1D1D1D;
+}
+
+.pur-info-list .list-item .list-item-right .icon-shoulu.icon-a-Property1yishoulu::after{
+  content: '已收录';
+  width: 54px;
+}
+
 .search-pur-container .list-logo{
     width: 60px;
     height: 60px;

+ 16 - 0
src/web/staticres/public-pc/js/article-content.js

@@ -1419,11 +1419,16 @@ $(function(){
       $(this).after("<div class='portrait_tip' style='display:none;z-index:2;position: absolute;top: -30px;left: 0px;background: rgba(0,0,0,0.72);border-radius: 4px;opacity: 1;color: #fff;font-size: 13px;line-height: 20px;padding: 6px 10px;'>"+tipMsg+"</div>")
     }
   }).on("click",function (){
+    const urlParams = new URLSearchParams(window.location.search)
+    const resource = urlParams.get('resource')
     var toHref=$(this).attr("href-data") || $(this).parents('.tab-cont').children('.cont-cont.portrait_img').attr("href-data")
 
     var tipMsg=$(this).attr("tip-data") || $(this).parents('.tab-cont').children('.cont-cont.portrait_img').attr("tip-data")
     if (tipMsg == '查看采购单位画像' || tipMsg == '查看业主单位画像') {
       if (toHref){
+        if (resource === "BI") {
+          toHref = toHref + '?resource=BI'
+        }
         window.open(toHref)
         return
       }
@@ -1435,6 +1440,12 @@ $(function(){
     }
   	var memberLink = "/swordfish/page_big_pc/ent_portrait/" + winnerMap[$(this).text()]
     var vipLink = "/swordfish/page_big_pc/svip/ent_ser_portrait/" + winnerMap[$(this).text()]
+    if (resource === "BI") {
+      memberLink = memberLink + '?resource=BI'
+    }
+    if (resource === "BI") {
+      vipLink = vipLink + '?resource=BI'
+    }
     if (isMember) {
       // 如果是专家版、智慧版 跳大会员页面
       if(window.memberStatus > 0 && window.memberPower && window.memberPower.indexOf(4) !== -1) {
@@ -1861,6 +1872,7 @@ var buyerclass =goTemplateData.params.obj.buyerclass;
 
 if (area !="" && area != "A"&&area!=undefined){ // 标签栏插入标签
   $(".com-tagsbar").append('<span class="com-area"><a href="/list/area/'+goTemplateData.params.obj.areaadd+'.html">'+area+'</a></span>');
+  $(".com-statusbar-BI").append('<span class="com-area"><a href="/list/area/'+goTemplateData.params.obj.areaadd+'.html">'+area+'</a></span>');
 }
 if(typeof(type) == "undefined" || type == null || type == ""){
   type = goTemplateData.params.obj.toptype;
@@ -1881,6 +1893,7 @@ if(typeof(type) != "undefined" && type != null && type != ""){ // 标签栏插
   }else{
     $(".com-tagsbar").append('<span class="com-type"><a href="/list/stype/'+goTemplateData.params.obj.stypeadd+'.html">'+type+'</a></span>');
   }
+  $(".com-statusbar-BI").append('<span class="com-type"><a href="/list/stype/'+goTemplateData.params.obj.stypeadd+'.html">'+type+'</a></span>');
 }
 // 2023-5-24 P341去掉
 // if(industry && industry!="undefined"){
@@ -1898,6 +1911,7 @@ if(typeof(type) != "undefined" && type != null && type != ""){ // 标签栏插
 // P341支持全部用户可见
 if(buyerclass && buyerclass !== '其它'){ // 标签栏插入标签
   $(".com-tagsbar").append('<span class="com-buyerclass"><a>'+buyerclass+'</a></span>');
+  $(".com-statusbar-BI").append('<span class="com-buyerclass"><a>'+buyerclass+'</a></span>');
 }
 var bidamount_class=goTemplateData.params.obj.bidamount
 var budget_class=goTemplateData.params.obj.budget
@@ -1906,6 +1920,7 @@ amountStr = amount + ''
 var amountNoMask = amountStr !== '略'&& amountStr.indexOf("免费注册")===-1 && amountStr.indexOf('登录')===-1 && amountStr.indexOf('登陆')===-1 && amountStr.indexOf('解锁')===-1
 if (amount && amountNoMask){ // 标签栏插入标签
   $(".com-tagsbar").append('<span class="com-amount"><a>'+conversionMoeny(amount)+'</a></span>');
+  $(".com-statusbar-BI").append('<span class="com-amount"><a>'+conversionMoeny(amount)+'</a></span>');
 }
 //
 if(publishtime != "" && typeof(publishtime) != "undefined"){
@@ -1913,6 +1928,7 @@ if(publishtime != "" && typeof(publishtime) != "undefined"){
   if(diff != null){ // 按钮行 左边插入时间
     // <i class="glyphicon bofangjilu"></i> //时间图标
     $(".com-statusbar").append('<span class="com-time">'+diff+'</span>');
+    $(".com-statusbar-BI").append('<span class="com-time">'+diff+'</span>');
     // $(".com-tagsbar").append('<span class="com-time">'+diff+'</span>');
   }
 }

+ 4 - 3
src/web/staticres/public-pc/js/pc-bottom.js

@@ -340,9 +340,10 @@ function stypesearch(stype){
 //
 function zbSeatch(id){
   var pathname = window.location.pathname;
-  if (pathname.indexOf("supsearch/index.html")>0){
-    $("#"+id).attr("action",pathname);
-  }
+  // 注释掉此处,为了解决标讯搜索页面query传参
+  // if (pathname.indexOf("supsearch/index.html")>0){
+  //   $("#"+id).attr("action",pathname);
+  // }
   $("#"+id).submit();
 }
 

+ 2 - 2
src/web/templates/frontRouter/pc/collection/sess/index.html

@@ -197,7 +197,7 @@
                       <!-- <i class="j-icon icon-delete-gray" style="width: 24px;height: 24px;"></i> -->
                     </div>
                     <div class="dialog-content">
-                      <span>您选择的数据超过了导出数据最大值<span style="color: #2ABED1;">20,000</span> ,请优化条件后导出。您也可联系客服:400-108-6670 ,或添加<span style="color: #2ABED1;">客服微信</span></span>
+                      <span>您选择的数据超过了导出数据最大值<span style="color: #2ABED1;">20,000</span> ,请优化条件后导出。您也可联系客服:400-108-6670 ,或添加<span style="color: #2ABED1;">客服微信</span><span>进行定制化导出</span></span>
                       <div class="custom-wx"></div>
                       <p style="color: #1D1D1D;">客服微信</p>
                       <button class="continue-export-btn">继续导出20000条</button>
@@ -228,7 +228,7 @@
                             </div>
                             <div class="append-container">
                                 <button class="bi-report-inject-button" :disabled="item.added" v-if="biEnv" @click.prevent.stop="biAddProject(item)">${ item.added ? '已添加' : '添加' }</button>
-                                <span class="j-icon i-canbiao" v-if="!biEnv && item.joinBid !== undefined" :class="item.joinBid ? 'icon-canbiao-active' : 'icon-canbiao'" @click.prevent.stop="joinBidAction(item)"></span>
+                                <span class="j-icon i-canbiao" v-if="!biEnv && item.joinBid !== undefined" :class="item.joinBid ? 'icon-canbiao-img-active' : 'icon-canbiao-img'" @click.prevent.stop="joinBidAction(item)"></span>
                                 <span class="j-icon" v-if="!biEnv" :class="item.star ? 'icon-star-active' : 'icon-star'" @click.prevent.stop="unStarThis(item)"></span>
                             </div>
                         </div>

+ 25 - 1
src/web/templates/pc/biddetail_rec.html

@@ -12,7 +12,9 @@
     <script src="{{Msg "seo" "cdn"}}/js/jquery.cookie.js"></script>
     <link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/pccss/public-nav-1200.css?v={{Msg "seo" "version"}}" />
     <link href="//cdn-common.jianyu360.com/cdn/lib/element-ui/2.15.7/lib/theme-chalk/index.css" rel="stylesheet" />
+    <link href="//cdn-common.jianyu360.com/cdn/assets/iconfont/pc/23.8.30/iconfont.css" rel="stylesheet" />
     <link href='{{Msg "seo" "cdn"}}/css/collect-user-info.css?v={{Msg "seo" "version"}}' rel="stylesheet">
+    <link href='{{Msg "seo" "cdn"}}/BI-module/css/crm-action.css?v={{Msg "seo" "version"}}' rel="stylesheet">
     <link href='{{Msg "seo" "cdn"}}/common-module/nps-common/css/nps.css?v={{Msg "seo" "version"}}' rel="stylesheet">
     <link href="{{Msg "seo" "cdn"}}/css/dev2/newBidSearch.css?v={{Msg "seo" "version"}}" rel="stylesheet">
     <script type="text/javascript" src="{{Msg "seo" "cdn"}}/js/public-nav.js?v={{Msg "seo" "version"}}"></script>
@@ -568,7 +570,28 @@
       <span class="com-icon" id="manual-distribution" style="display: none;">
         <img class="icon-title-img" src="{{Msg "seo" "cdn"}}/images/biddingSearch/distribute.png">分发
       </span>
-			</div>
+			      </div>
+            <div class="com-statusbar-BI" id="statusbar-BI">
+              <div class="crm-action">
+                <div class="action-content" v-for="(item, i) in getList" :key="i">
+                  <div @click="setActionEvent(item)" class="action-list" :class="'action-' + item.class">
+                    <i class="icon iconfont" :class="[ 'icon-' + item['icon-' + item.active] , {'checked': !!item.active }]">
+                      <div class="msg" v-if="item.msg">${item.msg}</div>
+                    </i>
+                    <span> ${ item.active ? '已' : '' }${ item.title }</span>
+                  </div>
+                </div>
+              </div>
+              <div class="Iframe-dialog">
+                <el-dialog
+                  :visible.sync="dialogVisible"
+                  width="70%"
+                  height="80%"
+                  >
+                  <iframe :src="IframeSrc" width="100%" height="80%" frameborder="0"></iframe>
+                </el-dialog>
+              </div>
+            </div>
 			<div class="sub-info-container">
                 <!--  参标详细信息-->
                 <div class="bin-join-info">
@@ -1731,6 +1754,7 @@ var ucbs_source="pc_rec",ucbsId="{{.T.obj.ucbsId}}";
     <script src='{{Msg "seo" "cdn"}}/common-module/selector/js/powerMap.js?v={{Msg "seo" "version"}}'></script>
     <script src="{{Msg "seo" "cdn"}}/js/pc-collect-bid-info.js?v={{Msg "seo" "version"}}"></script>
     <script src="{{Msg "seo" "cdn"}}/js/pc-collect-user-info.js?v={{Msg "seo" "version"}}"></script>
+    <script src="{{Msg "seo" "cdn"}}/BI-module/js/crm-action.js?v={{Msg "seo" "version"}}"></script>
     <script type="text/javascript" src="{{Msg "seo" "cdn"}}/js/pc_entniche_tags.js?v={{Msg "seo" "version"}}"></script>
     <script type="text/javascript" src='{{Msg "seo" "cdn"}}/common-module/nps-common/js/nps.js?v={{Msg "seo" "version"}}'></script>
     <script>

+ 47 - 29
src/web/templates/pc/dataExport_sieve.html

@@ -622,6 +622,9 @@
 </head>
 <body>
 {{include "/common/pchead.html"}}
+<div class="loading_" style="display:none;">
+  <p><span></span></p>
+</div>
 <section id="conditions-box" class="conditions-box w" style="min-height: calc(100vh - 364px);">
     <!-- 数据导出功能文案 -->
     <div class="dataExportFun">
@@ -729,7 +732,7 @@
                     <span v-if="item.additionalWords && item.searchvalue">,</span>
                     ${formatToComma(item.additionalWords)}
                     <span v-if="item.additionalWords">${!item.wordsMode ? '(包含所有关键词)' : '(包含任意关键词)'}</span> -->
-                    筛选${index + 1}
+                    筛选${filterData.length - index}
                   </span>
                 </div>
                 <i class="j-icon icon-clean" @click.stop="onDeleteFilter(item._id)"></i>
@@ -742,8 +745,8 @@
                     <p class="f-l-c-item" v-if="item.area || item.city">区域:<em class="i-value">${formatRegion(item.area,item.city)}</em></p>
                     <p class="f-l-c-item" v-if="item.industry">行业:<em class="i-value">${formatIndustry(item.industry)}</em></p>
                     <p class="f-l-c-item" v-if="item.buyerclass">采购单位类型:<em class="i-value">${formatBuyerClass(item.buyerclass)}</em></p>
-                    <p class="f-l-c-item" v-if="item.keyword">关键词:<em class="i-value">${formatKeyword(item.keyword)}</em></p>
-                    <p class="f-l-c-item" v-if="item.buyerclass">关键词匹配方式:<em class="i-value">${formatScope(item.selectType, 'CN')}</em></p>
+                    <p class="f-l-c-item" v-if="item.keywords">关键词:<em class="i-value">${formatKeyword(item.keywords)}</em></p>
+                    <p class="f-l-c-item" v-if="item.selectType">关键词匹配方式:<em class="i-value">${formatScope(item.selectType, 'CN')}</em></p>
                     <p class="f-l-c-item">
                       <span v-if="item.minprice || item.maxprice">金额:<em class="i-value">${formatPriceScope(item.minprice, item.maxprice)}</em></span>
                       <!-- <span v-if="item.publishtime">发布时间:<em class="i-value">${item.publishtime}</em></span> -->
@@ -985,14 +988,8 @@
                 <div class="user-input">
                     <input oninput="getDataExportSearch('1')" class="w" type="text" placeholder="请输入采购单位" maxlength="50" id="buyerInput"
                            onblur="addDelInputB(this,1)">
-                    <div class="pre-search-list buyer-search-list" style="display: none;">
-                      <div
-                          class="pre-search-item ellipsis"
-                          v-for="(item,index) in buyerSearch.list"
-                          :key="index"
-                          @click="toDetail(item, '1')"
-                          >${ item }
-                        </div>
+                    <div class="buyer-search-list" style="display: none;">
+                      <div class="pre-search-item ellipsis" v-for="(item,index) in buyerSearch.list" :key="index" @click="toDetail(item, '1')">${ item }</div>
                     </div>
                     {{/*<button style="display: none" class="sussecc w100" onclick="addDelInput(this,1)">确定</button>*/}}
                 </div>
@@ -1012,14 +1009,8 @@
                 <div class="user-input">
                     <input oninput="getDataExportSearch('2')" class="w" type="text" placeholder="请输入中标单位" maxlength="50" id="winnerInput"
                            onblur="addDelInputB(this,2)">
-                    <div class="pre-search-list winner-search-list" style="display: none;">
-                      <div
-                          class="pre-search-item ellipsis"
-                          v-for="(item,index) in winnerSearch.list"
-                          :key="index"
-                          @click="toDetail(item, '2')"
-                          >${ item.name }
-                        </div>
+                    <div class="winner-search-list" style="display: none;">
+                      <div class="pre-search-item ellipsis" v-for="(item,index) in winnerSearch.list" :key="index" @click="toDetail(item, '2')">${ item.name }</div>
                     </div>
                     {{/*<button style="display: none" class="sussecc w100" onclick="addDelInput(this,2)">确定</button>*/}}
                 </div>
@@ -1389,6 +1380,7 @@
       <span>您选择的数据超过了导出数据最大值20,000,请优化条件后导出。您也可联系客服:400-108-6670 ,或添加</span>
       <div class="custom-service-wx">
         <span class="customWx" style="color: #2ABED1;text-decoration: underline;cursor: pointer;">客服微信</span>
+        <span>进行定制化导出</span>
         <div class="custom-service-wximg" style="display: none;">
           <img class="custom-service-wximg-img" src="" alt="">
           <span style="color: #1D1D1D;margin-top: 8px;">客服微信</span>
@@ -1409,6 +1401,7 @@
       <span>您选择的数据超过了导出数据最大值20,000,请优化条件后导出。您也可联系客服:400-108-6670 ,或添加</span>
       <div class="custom-service-wx">
         <span class="customWx" style="color: #2ABED1;text-decoration: underline;cursor: pointer;">客服微信</span>
+        <span>进行定制化导出</span>
         <div class="custom-service-wximg" style="display: none;">
           <img class="custom-service-wximg-img" src="" alt="">
           <span style="color: #1D1D1D;margin-top: 8px;">客服微信</span>
@@ -1731,7 +1724,7 @@
         if(!item.industry){
           ClassArr.arr = [];
         }else{
-          ClassArr.arr = this.formatIndustry(item.industry).split(',')
+          ClassArr.arr = item.industry.split(',')
         }
         if(!item.buyerclass){
           buyClassArr.arr = [];
@@ -2024,7 +2017,10 @@
       formatKeyword: function(arr) {
         let keyword = ''
         if (arr) {
-          arr = JSON.parse(JSON.parse(arr))
+          arr= JSON.parse(arr)
+          if (typeof arr === 'string') {
+            arr = JSON.parse(arr)
+          }
           arr.forEach(function(v, i) {
             let key = ''
             let append = ''
@@ -2584,6 +2580,8 @@
         if (searchTimer) {
           clearTimeout(searchTimer);
         }
+        $('.buyer-search-list').hide()
+        $('.winner-search-list').hide()
         searchTimer = setTimeout(() => {
           $.ajax({
             url: `/bigmember/search/${type}/association`,
@@ -2595,7 +2593,6 @@
                     if (res.data.list && res.data.list.length > 0) {
                       if(str === '1') {
                         dataNode.buyerSearch.list = res.data.list || []
-                        dataNode.buyerSearchListShow = true
                         $('.buyer-search-list').show()
                       } else if(str === '2') {
                         dataNode.winnerSearch.list = res.data.list || []
@@ -3093,7 +3090,16 @@
         }
     });
 
+    $("#keyInput").on('input', function () {
+        if($(this).val()) {
+          $(this).next().show()
+        } else {
+          $(this).next().hide()
+        }
+    })
+
     $("#sieve").click(function () {
+        $('.loading_').show()
         dataNode.loading = true
         $("#sieve").addClass("sussecc");
         $("#reset").removeClass("sussecc");
@@ -3156,6 +3162,7 @@
         setLocalStorage(param);
         // console.log(param);
         $.post("/front/dataExport/sieveData", param, function (res) {
+          $('.loading_').hide()
           if(res.error_code == 0) {
             dataNode._data.dataInfo = res.data
             if(res.data.list) {
@@ -3207,6 +3214,8 @@
               dataNode._data.tableShow = false
               dataNode._data.noDataDialog = true
             }
+          } else {
+            $('.loading_').hide()
           }
         }, 'json');
     });
@@ -3246,8 +3255,8 @@
         $(".add-input-w").hide();
         window["inputDel_0"] = [];
         //selectType
-        $(".selectType button").removeClass("select");
-        $(".selectType button").eq(0).addClass("select");
+        $(".selectType .el-checkbox__input").removeClass("is-checked");
+        $(".selectType .el-checkbox__input").eq(0).addClass("is-checked");
         //price
         $("#minprice").val("");
         $("#maxprice").val("");
@@ -3651,6 +3660,13 @@
             });
         }
         //金额
+        const min = paramObj["minprice"];
+        const max = paramObj["maxprice"];
+        if(min || max) {
+          priceAllBtnSel == "0"
+        } else {
+          priceAllBtnSel = "1"
+        }
         priceDisSel();
         priceConfirmHide();
         if (priceAllBtnSel == "1") {
@@ -3737,11 +3753,13 @@
     if (selectType.indexOf('purchasing,projectname.pname') !== -1) {
       dataNode.checkList.push('4')
     }
-    $(".selectType button").each(function () {
-        if ($(this).text() === select) {
-            $(".selectType button").removeClass("select");
-            $(this).addClass("select");
-        }
+    $(".selectType .el-checkbox").each(function () {
+      const checked = $(this).hasClass('is-checked')
+      if(checked) {
+        $(this).find('.el-checkbox__input').addClass('is-checked')
+      } else {
+        $(this).find('.el-checkbox__input').removeClass('is-checked')
+      }
     });
   }
   function arrToString(v){

+ 12 - 6
src/web/templates/pc/entsearchindex.html

@@ -11,7 +11,7 @@
 		<link href="{{Msg "seo" "cdn"}}/css/pc.css?v={{Msg "seo" "version"}}" rel="stylesheet" />
 		<link href="{{Msg "seo" "cdn"}}/css/dev2/reset_pc.css?v={{Msg "seo" "version"}}" rel="stylesheet" />
 		<link href="{{Msg "seo" "cdn"}}/pccss/public-nav-1200.css?v={{Msg "seo" "version"}}" rel="stylesheet" />
-
+    <link href="//cdn-common.jianyu360.com/cdn/assets/iconfont/pc/23.8.30/iconfont.css" rel="stylesheet" />
         <script src="{{Msg "seo" "cdn"}}/js/jquery.cookie.js"></script>
 		<script src="{{Msg "seo" "cdn"}}/js/public-nav.js?v={{Msg "seo" "version"}}"></script>
 
@@ -374,12 +374,14 @@
                 </div>
                 <div class="search-result-container">
                     <div class="ent-info-list" v-loading="listState.loading">
-                        <div
-                            class="ent-info-item"
+                      <div class="ent-info-content"
+                          v-for="(item,index) in listState.list"
+                          @click="toDetail(item)"
+                          :key="item.id"
+                      >
+                        <div class="ent-info-item"
                             :class="{ hover: !item.showMask, visited: item.visited }"
-                            v-for="(item,index) in listState.list"
-                            @click="toDetail(item)"
-                            :key="item.id">
+                            >
                             <div class="ei-i-left">
                                 <div class="ei-i-l-container" :class="item.randomBgc">${ item.company_shortname ? item.company_shortname.slice(0,4) : item.company_name.slice(0,4) }</div>
                             </div>
@@ -420,6 +422,10 @@
                                 </button>
                             </div>
                         </div>
+                        <div class="ent-info-active" v-if="getBIParams">
+                          <i @click.stop="setEmployEvent(item)" :class="item.active ? 'icon-a-Property1yishoulu' : 'icon-a-Property1shoulu'" class="icon-shoulu iconfont" :dataid="item.id"></i>
+                        </div>
+                      </div>
                         <div data-list-ad class="_u4m8od8j3s"></div>
                         <no-data style="display: none;" v-show="listState.list.length === 0 && listState.loaded" tip-text="没有找到符合条件的企业"></no-data>
                     </div>

+ 326 - 156
src/web/templates/pc/previewData.html

@@ -4,6 +4,9 @@
 		<meta charset="utf-8" />
 		<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
 		<link rel="stylesheet" href="{{Msg "seo" "cdn"}}/dataExport/css/previewData.css?v={{Msg "seo" "version"}}">
+    <link href="//cdn-common.jianyu360.com/cdn/lib/element-ui/2.15.7/lib/theme-chalk/index.css" rel="stylesheet" />
+    <script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js></script>
+    <script src=//cdn-common.jianyu360.com/cdn/lib/element-ui/2.15.7/lib/index.js></script>
 		<script src="https://cdn.bootcss.com/js-polyfills/0.1.42/polyfill.min.js"></script>
 		<script src="https://cdn.bootcdn.net/ajax/libs/fontfaceobserver/2.1.0/fontfaceobserver.js"></script>
 		<script src="{{Msg "seo" "cdn"}}/dataExport/js/html2canvas.min.js"></script>
@@ -18,158 +21,325 @@
 				src: url('/fonts/ttf/{{.T.ttf}}.eot?#iefix') format('embedded-opentype'), /* IE Fix for IE 6-8*/
 				url("{{Msg "seo" "cdn"}}/fonts/ttf/{{.T.ttf}}.ttf") format("truetype");  /* chrome、firefox、opera、Safari, Android, iOS 4.2+ */
 			}
-			.mosaic-text {
+			/* .mosaic-text {
 				display: inline !important;
 				color: transparent !important;
 				text-shadow: 0 0 10px rgba(0,0,0,0.5);
-			}
+			} */
 		</style>
-		<script>
-			var index=1;
-			/*document.oncontextmenu = function(){
-		   		return false;
-			}
-			document.onselectstart = function(){
-			    return false;
-			}
-			document.oncopy = function(){
-			    return false;
-			}*/
-		</script>
 	</head>
-			{{if eq .T.dataType "1"}}
-			<body style="min-width:2020px;">
-				<table class="d_bz" cellspacing="0" cellpadding="0">
-					<tr>
-            <td>序号</td>
-            <td>匹配关键词</td>
-          	<td>省份</td>
-						<td>城市</td>
-						<td>公告标题</td>
-            <td>公告类别</td>
-            <td>发布时间</td>
-            <td>采购单位</td>
-            <td>中标单位</td>
-            <td>中标金额<br>(万元)</td>
-            <td>项目名称</td>
-						<td>公告内容</td>
-            <td>剑鱼标讯地址</td>
-					</tr>
-					{{range $i, $v := .T.data}}
-						<tr>
-						<td>
-							<script>
-							document.write(index++)
-							</script>
-						</td>
-            <td>{{$v.keyword}}</td>
-            <td>{{$v.area}}</td>
-						<td>{{$v.city}}</td>
-						<td>{{$v.title}}</td>
-            <td>{{$v.subtype}}</td>
-            <td>{{$v.publishtime}}</td>
-            <td>{{$v.buyer}}</td>
-            <td>{{$v.s_winner}}</td>
-            <td name="money">{{$v.bidamount}}</td>
-            <td>{{$v.projectname}}</td>
-						<td>{{$v.detail}}</td>
-            <td>{{$v.url}}</td>
-
-					</tr>
-					{{end}}
-				</table>
-			{{else}}
-			<body style="min-width:2820px;">
-				<table class="d_gj" cellspacing="0" cellpadding="0">
-				<tr>
-					<td rowspan=2>序号</td>
-          <td rowspan=2>匹配关键词</td>
-          <td rowspan=2>省份</td>
-					<td rowspan=2>城市</td>
-          <td rowspan=2>区县</td>
-					<td rowspan=2>公告标题</td>
-          <td rowspan=2>公告类别</td>
-					<td rowspan=2>公告内容</td>
-          <td rowspan=2>发布时间</td>
-					<td rowspan=2>公告地址</td>
-          <td rowspan=2>剑鱼标讯地址</td>
-          <td rowspan=2>项目名称</td>
-		      <td rowspan=2>项目编号</td>
-          <td rowspan=2>项目范围</td>
-          <td rowspan=2>预算金额<br>(万元)</td>
-          <td rowspan=2>中标金额<br>(万元)</td>
-          <td rowspan=2>报名截止日期</td>
-          <td rowspan=2>开标日期</td>
-          <td rowspan=2>投标截止日期</td>
-          <td colspan=4>采购单位信息</td>
-          <td rowspan=2>招标代理机构</td>
-          <td colspan=3>中标单位信息(来源:招标公告网站)</td>
-          <td colspan=3>中标单位信息(来源:国家企业公示网站)</td>
-				</tr>
-        <tr>
-          <td>单位名称</td>
-					<td>联系人</td>
-					<td>联系电话</td>
-          <td>单位地址</td>
-
-          <td>单位名称</td>
-          <td>联系人</td>
-          <td>联系电话</td>
-
-          <td>联系人</td>
-          <td>联系电话</td>
-          <td>电子邮箱</td>
-        </tr>
-
-
-				{{range $i, $v := .T.data}}
-				<tr class="content">
-					<td>
-					<script>
-					document.write(index++)
-					</script>
-					</td>
-          <td>{{$v.keyword}}</td>
-          <td>{{$v.area}}</td>
-					<td>{{$v.city}}</td>
-          <td>{{$v.district}}</td>
-					<td>{{$v.title}}</td>
-          <td>{{$v.subtype}}</td>
-					<td>{{$v.detail}}</td>
-          <td>{{$v.publishtime}}</td>
-					<td>{{$v.href}}</td>
-          <td>{{$v.url}}</td>
-          <td>{{$v.projectname}}</td>
-          <td>{{$v.projectcode}}</td>
-          <td>{{$v.projectscope}}</td>
-          <td name="money">{{$v.budget}}</td>
-          <td name="money">{{$v.bidamount}}</td>
-          <td>{{$v.signendtime}}</td>
-          <td>{{$v.bidopentime}}</td>
-          <td>{{$v.bidendtime}}</td>
-          <td>{{$v.buyer}}</td>
-          <td name="name">{{$v.buyerperson}}</td>
-          <td name="phone">{{$v.buyertel}}</td>
-          <td>{{$v.buyeraddr}}</td>
-
-          <td>{{$v.agency}}</td>
-          <td>{{$v.s_winner}}</td>
-          <td name="name">{{$v.winnerperson}}</td>
-          <td name="phone">{{$v.winnertel}}</td>
-
-          <td name="name">{{$v.legal_person}}</td>
-          <td name="phone">{{$v.company_phone}}</td>
-          <td>{{$v.company_email}}</td>
-
-
-				</tr>
-				{{end}}
-			</table>
-			{{end}}
-			<div class="sy">
-			</div>
+  <body style="min-width:2020px;">
+    <div class="d_body">
+      <div class="d_bz" v-if="dataType == '1'">
+        <el-table
+          :data="getList"
+          :row-style="rowStyle"
+          style="width: 100%"
+          :header-row-style="headerRowStyle"
+          :header-cell-style="setHeaderStyle"
+          >
+          <el-table-column
+          v-for="(item, index) in bzInfo"
+            :key="index"
+            :width="item.width"
+            :type="index === 0 ? 'index' : undefined"
+            :prop="item.filed"
+            :label="item.title"
+            align="center"
+            >
+          </el-table-column>
+          
+        </el-table>
+      </div>
+      <div class="d_gj" v-if="dataType == '2'">
+        <el-table
+          :data="getList"
+          :header-row-style="headerRowStyle"
+          :header-cell-style="setHeaderStyle"
+          style="width: 100%">
+          <el-table-column
+            v-for="(item, index) in gjInfo"
+            :key="index"
+            :type="index === 0 ? 'index' : undefined"
+            :prop="item.filed"
+            :width="item.width"
+            :label="item.title"
+            align="center"
+            >
+            <template v-if="item.title == '采购单位信息'">
+              <el-table-column
+                prop="buyer"
+                width="82"
+                label="单位名称"
+                align="center"
+                >
+              </el-table-column>
+              <el-table-column
+                prop="s_topscopeclass"
+                width="108"
+                label="采购单位类型"
+                align="center"
+                >
+              </el-table-column>
+              <el-table-column
+                prop="buyerperson"
+                width="89"
+                label="联系人"
+                align="center"
+                >
+                <template slot-scope="scope">
+                  {scope.row.buyerperson ? textFormatForMosaic(scope.row.buyerperson) : '-'}
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="buyertel"
+                width="143"
+                label="联系电话"
+                align="center"
+                >
+                <template slot-scope="scope">
+                  {textFormatForMosaic(scope.row.buyertel)}
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="buyeraddr"
+                width="83"
+                label="单位地址"
+                align="center"
+                >
+              </el-table-column>
+            </template>
+            <template v-if="item.title == '中标单位信息(来源:招标公告网站)'">
+              <el-table-column
+                prop="s_winner"
+                width="200"
+                label="单位名称"
+                class-name="set-cell-padding"
+                align="center"
+                >
+                <template slot-scope="scope">
+                  <div class="winner_list" v-if="scope.row.winnerList && scope.row.winnerList.length">
+                    <div class="set-table-line" v-for="win in scope.row.winnerList">
+                      {win}<br>
+                    </div>
+                  </div>
+                  <div v-else>{scope.row.s_winner}</div>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="winnerperson"
+                width="74"
+                label="联系人"
+                align="center"
+                >
+                <template slot-scope="scope">
+                  {scope.row.winnerperson}
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="winnertel"
+                width="66"
+                label="联系电话"
+                align="center"
+                >
+                <template slot-scope="scope">
+                  {scope.row.winnertel}
+                </template>
+              </el-table-column>
+            </template>
+            <template v-if="item.title == '中标单位信息(来源:国家企业公示网站)'">
+              <el-table-column
+                prop="legal_person"
+                width="60"
+                label="联系人"
+                class-name="set-cell-padding"
+                align="center"
+                >
+                <template slot-scope="scope">
+                  <div class="winner_list" v-if="scope.row.personArr && scope.row.personArr.length">
+                    <div class="set-table-line" v-for="person in scope.row.personArr">
+                      {person || '-'}<br>
+                    </div>
+                  </div>
+                  <div v-else>{scope.row.legal_person}</div>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="company_phone"
+                width="100"
+                label="联系电话"
+                class-name="set-cell-padding"
+                align="center"
+                >
+                <template slot-scope="scope">
+                  <div class="winner_list" v-if="scope.row.phoneArr && scope.row.phoneArr.length">
+                    <div class="set-table-line" v-for="phone in scope.row.phoneArr">
+                      {phone || '-'}<br>
+                    </div>
+                  </div>
+                  <div v-else>{scope.row.company_phone}</div>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="company_email"
+                width="106"
+                label="电子邮箱"
+                class-name="set-cell-padding"
+                align="center"
+                >
+                <template slot-scope="scope">
+                  <div class="winner_list" v-if="scope.row.emailArr && scope.row.emailArr.length">
+                    <div class="set-table-line" v-for="email in scope.row.emailArr">
+                      {email || '-'}<br>
+                    </div>
+                  </div>
+                  <div v-else>{scope.row.company_email}</div>
+                </template>
+              </el-table-column>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <div class="sy"></div>
+    </div>
 	</body>
 	<script>
+  var list = {{.T.data}}
+  var node = new Vue({
+    el: '.d_body',
+    delimiters: ['{', '}'],
+    data () {
+      return {
+        listInfo: list,
+        dataType: '2',
+        bzInfo: [
+          {width: '40', filed: 'index', title: '序号'},
+          {width: '70', filed: 'keyword', title: '匹配关键词'},
+          {width: '60', filed: 'area', title: '省份'},
+          {width: '60', filed: 'city', title: '城市'},
+          {width: '262', filed: 'title', title: '公告标题'},
+          {width: '60', filed: 'subtype', title: '公告类别'},
+          {width: '90', filed: 'publishtime', title: '发布时间'},
+          {width: '202', filed: 'buyer', title: '采购单位'},
+          {width: '202', filed: 's_winner', title: '中标单位'},
+          {width: '75', filed: 'bidamount', title: '中标金额(万元)'},
+          {width: '262', filed: 'projectname', title: '项目名称'},
+          {width: '484', filed: 'detail', title: '公告内容'},
+          {width: '200', filed: 'url', title: '剑鱼标讯地址'}
+        ],
+        gjInfo: [
+          {width: '40', filed: 'index', title: '序号',},
+          {width: '70', filed: 'keyword', title: '匹配关键词',},
+          {width: '60', filed: 'area', title: '省份',},
+          {width: '60', filed: 'city', title: '城市',},
+          {width: '60', filed: 'district', title: '区县',},
+          {width: '153', filed: 'title', title: '公告标题',},
+          {width: '60', filed: 'subtype', title: '公告类别',},
+          {width: '221', filed: 'detail', title: '公告内容',},
+          {width: '90', filed: 'publishtime', title: '发布时间',},
+          {width: '116', filed: 'href', title: '公告地址',},
+          {width: '123', filed: 'url', title: '剑鱼标讯地址',},
+          {width: '136', filed: 'projectname', title: '项目名称',},
+          {width: '160', filed: 'buyerclass', title: '行业',},
+          {width: '146', filed: 'projectcode', title: '项目编号',},
+          {width: '146', filed: 'projectscope', title: '项目范围',},
+          {width: '64', filed: 'budget', title: '预算金额(万元)',},
+          {width: '64', filed: 'bidamount', title: '中标金额(万元)',},
+          {width: '90', filed: 'signendtime', title: '报名截止日期',},
+          {width: '90', filed: 'bidopentime', title: '开标日期',},
+          {width: '90', filed: 'bidendtime', title: '投标截止日期',},
+          {width: '', filed: '', title: '采购单位信息',},
+          {width: '143', filed: 's_topscopeclass', title: '招标代理机构',},
+          {width: '', filed: '', title: '中标单位信息(来源:招标公告网站)',},
+          {width: '', filed: '', title: '中标单位信息(来源:国家企业公示网站)',}
+        ]
+      }
+    },
+    created: function () {
+      var params = new URLSearchParams(window.location.search);
+      this.dataType = params.get('dataType')
+    },
+    computed: {
+      getList () {
+        const list = this.listInfo
+        if (list && list.length) {
+          list.forEach((v) => {
+            let persons = []
+            let phone = []
+            let email = []
+            if(v.s_winner && v.winnerMaps) {
+              if(v.s_winner.indexOf(',') !== -1) {
+                // 多个中标单位
+                v.winnerList = v.s_winner.split(',')
+                v.winnerList.forEach((m,i) => {
+                  const winnerItem = v.winnerMaps.filter(item => item.company_name == m)
+                  if(winnerItem && winnerItem.length) {
+                    persons.push(winnerItem[0].legal_person || '')
+                    phone.push(winnerItem[0].company_phone || '')
+                    email.push(winnerItem[0].company_email || '')
+                  } else {
+                    persons.push('')
+                    phone.push('')
+                    email.push('')
+                  }
+                })
+              } else {
+                // 只有一个中标单位
+                const winnerItem = v.winnerMaps.filter(item => item.company_name == v.s_winner)
+                if(winnerItem && winnerItem.length) {
+                  persons.push(winnerItem[0].legal_person || '')
+                  phone.push(winnerItem[0].company_phone || '')
+                  email.push(winnerItem[0].company_email || '')
+                }
+              }
+            }
+            if (persons && persons.length) {
+              v.personArr = persons
+            }
+            if (phone && phone.length) {
+              v.phoneArr = phone
+            }
+            if (email && email.length) {
+              v.emailArr = email
+            }
+          })
+        }
+        this.listInfo = list
+        return this.listInfo
+      },
+      setHeaderStyle () {
+        return {
+            textAlign: 'center',
+            height: '14px',
+            background: '#e9f6ff',
+            color: '#565f66',
+            'border-right': '1px solid #DCE1E4',
+            'border-bottom': '1px solid #DCE1E4'
+        }
+      },
+      headerRowStyle () {
+        if(this.dataType === '1') {
+          return {
+            height: '54px',
+            fontSize: '12px',
+          }
+        } else if(this.dataType === '2') {
+          return {
+            height: '31px',
+            fontSize: '12px',
+          }
+        }
+      },
+      rowStyle () {
+        return {
+          'min-height': '58px',
+          'height': '58px',
+        }
+      }
+    },
+    methods: {
+    }
+  })
 	// 字体加载异常处理
 	try {
 		document.fonts.ready.then(function() {
@@ -181,7 +351,7 @@
 	try {
 		var font = new FontFaceObserver('MyNewFont');
 		font.load().then(function () {
-			var html = document.querySelector('body');
+			var html = document.querySelector('.d_body');
 			html.classList.add('font-loaded');
 			renderImg()
 		}, function () {
@@ -221,20 +391,20 @@
 		return money
 	}
 
-	$("td[name='name']").each(function () {
-		$(this).html(textFormatForMosaic($(this).text()))
-	})
-	$("td[name='phone']").each(function () {
-		$(this).html(textFormatForMosaic($(this).text(), true))
-	})
-	$("td[name='money']").each(function () {
-		$(this).html(moneyFormatForCover($(this).text()))
-	})
+	// $("td[name='name']").each(function () {
+	// 	$(this).html(textFormatForMosaic($(this).text()))
+	// })
+	// $("td[name='phone']").each(function () {
+	// 	$(this).html(textFormatForMosaic($(this).text(), true))
+	// })
+	// $("td[name='money']").each(function () {
+	// 	$(this).html(moneyFormatForCover($(this).text()))
+	// })
 
 	function renderImg () {
 		var w=$("table").width();
 		var h=$("table").height();
-		$(".sy").width($("table").width()).height($("table").height());
+		$(".sy").width($("table").width()).height('100%');
 		html2canvas(document.querySelector("body"),{
 			useCORS:true,
 			scale:1,

+ 63 - 57
src/web/templates/pc/pursearchindex.html

@@ -16,6 +16,7 @@
 		<script src="{{Msg "seo" "cdn"}}/js/public-nav.js?v={{Msg "seo" "version"}}"></script>
 
         <link href="//cdn-common.jianyu360.com/cdn/lib/element-ui/2.15.13-rc/lib/theme-chalk/index.css" rel="stylesheet" />
+        <link href="//cdn-common.jianyu360.com/cdn/assets/iconfont/pc/23.8.30/iconfont.css" rel="stylesheet" />
         <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/css/ele-reset.css?v={{Msg "seo" "version"}}'>
         <!-- <link href='{{Msg "seo" "cdn"}}/css/dev2/newBidSearch.css?v={{Msg "seo" "version"}}' rel="stylesheet"> -->
         <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/css/selector/selector.css?v={{Msg "seo" "version"}}'>
@@ -277,69 +278,74 @@
                   <div>
                       <div class="pur-info-list">
                           <div class="list-item" v-for="(item, index) in listState.list" :key="index">
-                            <div class="list-logo" :class="item.randomBgc">${item.buyerShortName ? item.buyerShortName.slice(0,4) : item.buyer.slice(0,4)}</div>
-                            <div class="list-info">
-                              <div class="info-name" @click="goTitle(item.buyer)">${item.buyer}</div>
-                              <div class="info-detail  flex-between">
-                                <div class="flex">
-                                  <div class="info-item">
-                                    <span class="item-label">所在地:</span>
-                                    <span class="item-value">${item.province || '-'} ${item.city || ''}</span>
+                            <div class="list-item-left">
+                              <div class="list-logo" :class="item.randomBgc">${item.buyerShortName ? item.buyerShortName.slice(0,4) : item.buyer.slice(0,4)}</div>
+                              <div class="list-info">
+                                <div class="info-name" @click="goTitle(item.buyer)">${item.buyer}</div>
+                                <div class="info-detail  flex-between">
+                                  <div class="flex">
+                                    <div class="info-item">
+                                      <span class="item-label">所在地:</span>
+                                      <span class="item-value">${item.province || '-'} ${item.city || ''}</span>
+                                    </div>
+                                    <div class="info-item">
+                                      <span class="item-label">采购单位类型:</span>
+                                      <span class="item-value">${item.buyerClass || '-'}</span>
+                                    </div>
                                   </div>
-                                  <div class="info-item">
-                                    <span class="item-label">采购单位类型:</span>
-                                    <span class="item-value">${item.buyerClass || '-'}</span>
+                                  <div class="r-cont" v-if="isLogin && !getBIParams">
+                                    <div class="img-c" @click="guanAndren(item, 0, index)" v-show="isMember || isNewEntNiche">
+                                        <img src='{{Msg "seo" "cdn"}}/images/focused.png' v-if="item.isFollowed">
+                                        <img src='{{Msg "seo" "cdn"}}/images/focus.png' v-else>
+                                        <i v-if="item.follow1">已关注</i>
+                                        <i v-else>关注</i>
+                                    </div>
+                                    <div class="img-c" @click="guanAndren(item, 1, index)" v-show="isNewEntNiche || isEntService">
+                                        <img src='{{Msg "seo" "cdn"}}/images/renling_active.png' v-if="item.isReceived" style="margin-left: 16px;">
+                                        <img src='{{Msg "seo" "cdn"}}/images/renling.png' v-else style="margin-left: 16px;">
+                                        <i v-if="item.claim1">已认领</i>
+                                        <i v-else>认领</i>
+                                    </div>
                                   </div>
                                 </div>
-                                <div class="r-cont" v-if="isLogin">
-                                  <div class="img-c" @click="guanAndren(item, 0, index)" v-show="isMember || isNewEntNiche">
-                                      <img src='{{Msg "seo" "cdn"}}/images/focused.png' v-if="item.isFollowed">
-                                      <img src='{{Msg "seo" "cdn"}}/images/focus.png' v-else>
-                                      <i v-if="item.follow1">已关注</i>
-                                      <i v-else>关注</i>
+                                <!-- <div class="info-detail flex-between">
+                                  <div class="flex">
+                                    <div class="info-item">
+                                      <span class="item-label">招标动态:</span>
+                                      <span class="item-value" v-loading="loadingOther">${item.biddingCount || '-'}</span>
+                                    </div>
+                                    <div class="info-item">
+                                      <span class="item-label">历史联系人:</span>
+                                      <span class="item-value" v-loading="loadingOther">${item.contactCount || '-'}</span>
+                                    </div>
+                                    <div class="info-item">
+                                      <span class="item-label">采购项目数量:</span>
+                                      <span class="item-value" v-loading="loadingOther">${item.projectCount || '-'}</span>
+                                    </div>
+                                    <div class="info-item">
+                                      <span class="item-label">采购规模:</span>
+                                      <span class="item-value" v-loading="loadingOther">${moneyUnit(item.bidAmountCount) || '-'}</span>
+                                    </div>
                                   </div>
-                                  <div class="img-c" @click="guanAndren(item, 1, index)" v-show="isNewEntNiche || isEntService">
-                                      <img src='{{Msg "seo" "cdn"}}/images/renling_active.png' v-if="item.isReceived" style="margin-left: 16px;">
-                                      <img src='{{Msg "seo" "cdn"}}/images/renling.png' v-else style="margin-left: 16px;">
-                                      <i v-if="item.claim1">已认领</i>
-                                      <i v-else>认领</i>
+                                  <div class="r-cont" v-if="isLogin">
+                                    <div class="img-c" @click="guanAndren(item, 0, index)" v-show="isMember || isNewEntNiche">
+                                        <img src='{{Msg "seo" "cdn"}}/images/focused.png' v-if="item.isFollowed">
+                                        <img src='{{Msg "seo" "cdn"}}/images/focus.png' v-else>
+                                        <i v-if="item.follow1">已关注</i>
+                                        <i v-else>关注</i>
+                                    </div>
+                                    <div class="img-c" @click="guanAndren(item, 1, index)" v-show="isNewEntNiche || isEntService">
+                                        <img src='{{Msg "seo" "cdn"}}/images/renling_active.png' v-if="item.isReceived" style="margin-left: 16px;">
+                                        <img src='{{Msg "seo" "cdn"}}/images/renling.png' v-else style="margin-left: 16px;">
+                                        <i v-if="item.claim1">已认领</i>
+                                        <i v-else>认领</i>
+                                    </div>
                                   </div>
-                                </div>
+                                </div> -->
                               </div>
-                              <!-- <div class="info-detail flex-between">
-                                <div class="flex">
-                                  <div class="info-item">
-                                    <span class="item-label">招标动态:</span>
-                                    <span class="item-value" v-loading="loadingOther">${item.biddingCount || '-'}</span>
-                                  </div>
-                                  <div class="info-item">
-                                    <span class="item-label">历史联系人:</span>
-                                    <span class="item-value" v-loading="loadingOther">${item.contactCount || '-'}</span>
-                                  </div>
-                                  <div class="info-item">
-                                    <span class="item-label">采购项目数量:</span>
-                                    <span class="item-value" v-loading="loadingOther">${item.projectCount || '-'}</span>
-                                  </div>
-                                  <div class="info-item">
-                                    <span class="item-label">采购规模:</span>
-                                    <span class="item-value" v-loading="loadingOther">${moneyUnit(item.bidAmountCount) || '-'}</span>
-                                  </div>
-                                </div>
-                                <div class="r-cont" v-if="isLogin">
-                                  <div class="img-c" @click="guanAndren(item, 0, index)" v-show="isMember || isNewEntNiche">
-                                      <img src='{{Msg "seo" "cdn"}}/images/focused.png' v-if="item.isFollowed">
-                                      <img src='{{Msg "seo" "cdn"}}/images/focus.png' v-else>
-                                      <i v-if="item.follow1">已关注</i>
-                                      <i v-else>关注</i>
-                                  </div>
-                                  <div class="img-c" @click="guanAndren(item, 1, index)" v-show="isNewEntNiche || isEntService">
-                                      <img src='{{Msg "seo" "cdn"}}/images/renling_active.png' v-if="item.isReceived" style="margin-left: 16px;">
-                                      <img src='{{Msg "seo" "cdn"}}/images/renling.png' v-else style="margin-left: 16px;">
-                                      <i v-if="item.claim1">已认领</i>
-                                      <i v-else>认领</i>
-                                  </div>
-                                </div>
-                              </div> -->
+                            </div>
+                            <div class="list-item-right" v-if="getBIParams">
+                              <i @click.stop="setEmployEvent(item)" :class="item.active ? 'icon-a-Property1yishoulu' : 'icon-a-Property1shoulu'" class="icon-shoulu iconfont" :dataid="item.buyer"></i>
                             </div>
                           </div>
                           <!-- 自定义标签弹框 -->

+ 36 - 11
src/web/templates/pc/supsearch.html

@@ -22,6 +22,7 @@
   <script src='{{Msg "seo" "cdn"}}/js/jquery.cookie.js'></script>
   <link href="//cdn-common.jianyu360.com/cdn/lib/element-ui/2.15.13-rc/lib/theme-chalk/index.css" rel="stylesheet" />
   <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/css/selector/selector.css?v={{Msg "seo" "version"}}'>
+  <link href="//cdn-common.jianyu360.com/cdn/assets/iconfont/pc/23.8.30/iconfont.css" rel="stylesheet" />
   <link href='{{Msg "seo" "cdn"}}/css/collect-user-info.css?v={{Msg "seo" "version"}}' rel="stylesheet">
   <link href='{{Msg "seo" "cdn"}}/css/ele-reset.css?v={{Msg "seo" "version"}}' rel="stylesheet">
   <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/css/selector/selector.css?v={{Msg "seo" "version"}}'>
@@ -797,7 +798,7 @@
           </div>
           <!--领域化页面不展示-->
           {{if not .T.bidField}}
-          <el-badge value="限免" type="danger" class="publish-button">
+          <el-badge value="限免" type="danger" class="publish-button" v-if="!inResourceBIiframe">
             <el-button type="primary" round @click="goToPublish">信息发布</el-button>
           </el-badge>
           {{end}}
@@ -1566,16 +1567,24 @@
             </li>
           </ul>
           <div class="right-tabBtn right-tabBtn-superSearch" style="min-width: 530px;padding-right: 8px;">
-            <button :class="{'active': dataTab=='list' && listModel=='S'}" id="right-list" @click="onCheckTypeData('list', 'S')">精简列表</button>
-            <button class="tab-detail-list nologin-hide" :class="{'active': dataTab=='list' && listModel=='D'}" @click="onCheckTypeData('list', 'D')">详细列表</button>
-            <button  id="right-table" :class="{'active': dataTab=='table'}" @click="onCheckTypeData('table')">表格</button>
-            <div class="split-line"></div>
+            <template v-if="!inResourceBIiframe">
+              <button :class="{'active': dataTab=='list' && listModel=='S'}" id="right-list" @click="onCheckTypeData('list', 'S')">精简列表</button>
+              <button class="tab-detail-list nologin-hide" :class="{'active': dataTab=='list' && listModel=='D'}" @click="onCheckTypeData('list', 'D')">详细列表</button>
+              <button  id="right-table" :class="{'active': dataTab=='table'}" @click="onCheckTypeData('table')">表格</button>
+            </template>
+            <div class="split-line line-common"></div>
             <button id="right-export" data-need-bind-phone>数据导出</button>
-            <div class="split-line"></div>
-            <button id="bid-collect">标讯收藏</button>
+            <template v-if="!inResourceBIiframe">
+              <div class="split-line line-common"></div>
+              <button id="bid-collect">标讯收藏</button>
+            </template>
             <div class="bi-report-inject-button" data-id="all">添加</div>
             <div class="split-line line-distribute" style="display: none;"></div>
             <button id="right-distribute" style="display: none;">分发</button>
+            <template v-if="inResourceBIiframe">
+              <div class="split-line"></div>
+              <button id="right-employ">收录</button>
+            </template>
           </div>
         </div>
         <div class="tabContainer" id="fix-tab" style="margin: 0">
@@ -1751,7 +1760,7 @@
           <!-- <i class="j-icon icon-delete-gray" style="width: 24px;height: 24px;"></i> -->
         </div>
         <div class="dialog-content">
-          <span>您选择的数据超过了导出数据最大值<span style="color: #2ABED1;">20,000</span> ,请优化条件后导出。您也可联系客服:400-108-6670 ,或添加<span style="color: #2ABED1;">客服微信</span></span>
+          <span>您选择的数据超过了导出数据最大值<span style="color: #2ABED1;">20,000</span> ,请优化条件后导出。您也可联系客服:400-108-6670 ,或添加<span style="color: #2ABED1;">客服微信</span><span>进行定制化导出</span></span>
           <div class="custom-wx"></div>
           <p style="color: #1D1D1D;">客服微信</p>
           <button onclick="toPaydataExport()" class="continue-export-btn">继续导出20000条</button>
@@ -1997,7 +2006,9 @@
       if(!goTemplateData.inIframe){
         var formNode_ = $('#zbSeatchT')
         var goHref_ = location.origin + '/jylab/supsearch/index.html'
-        window.location.replace('/page_workDesktop/work-bench/page?link=' + encodeURIComponent(goHref_ + '?' + formNode_.serialize()))
+        if (getParam('resource') !== 'BI') {
+          window.location.replace('/page_workDesktop/work-bench/page?link=' + encodeURIComponent(goHref_ + '?' + formNode_.serialize()))
+        }
       }
     }
     // 排除词
@@ -2806,7 +2817,15 @@ function checkTagDisabled () {
           aHref += '.html';
         }
       }
-
+      if (getParam('resource') === 'BI') {
+        if (aHref.indexOf('.html?') !== -1) {
+          aHref += '&resource=BI'
+        } else {
+          aHref += '.html?resource=BI'
+        }
+      } else {
+        aHref = '.html'
+      }
       try {
         visitedPath.pathVisiting(
           new VisitedPathItem(
@@ -2921,6 +2940,7 @@ function checkTagDisabled () {
     data: function () {
       return {
         showPage: true,
+        inResourceBIiframe: getParam('resource') === 'BI',
         listState: {
           prevPageNum: 1,
           size: pageSize,
@@ -3112,7 +3132,7 @@ function checkTagDisabled () {
       this.getPower()
     },
     mounted: function () {
-
+      this.addParamsToFormUrl()
       this.getCustomReportData()
       // console.log('总页码:' + totalPage + ',当前页:' + currentPage + ',一页数量:' + pageSize + ',总条数:' + totalCount)
       var isClickSearch = sessionStorage.getItem('is-click-search')
@@ -3156,6 +3176,11 @@ function checkTagDisabled () {
       }
     },
     methods: {
+      addParamsToFormUrl: function() {
+        if (!this.inResourceBIiframe) return
+        var action = $('#zbSeatchT').attr('action')
+        $('#zbSeatchT').attr('action', action + '?resource=' + getParam('resource'))
+      },
       getAreaData () { // 地区初始数据处理 province_city:数据来源外联地区js
         let data = []
         let keysToDelete = ['canExpanded', 'selectedState', 'canSelected'];

+ 1 - 1
src/web/templates/weixin/dataExport/dataExport.html

@@ -661,7 +661,7 @@
         }
         if(val.minprice || val.maxprice){
           let str = ""
-          str += (val.minprice || '-' )+'万元'+'-'+(val.maxprice || '-')+'万元'
+          str += (val.minprice || '' )+'万元'+'-'+(val.maxprice || '')+'万元'
           localStorage.setItem('price',str)  
         }else{
           localStorage.setItem('price','全部')