ソースを参照

Merge remote-tracking branch 'origin/feature/v4.7.55' into feature/v4.7.55

# Conflicts:
#	src/jfw/modules/publicapply/src/go.mod
#	src/jfw/modules/publicapply/src/go.sum
WH01243 2 年 前
コミット
f1acf260ca
72 ファイル変更10335 行追加355 行削除
  1. 16 9
      src/config.json
  2. 2 1
      src/jfw/filter/filter.go
  3. 9 7
      src/jfw/front/front.go
  4. 33 2
      src/jfw/front/shorturl.go
  5. 12 0
      src/jfw/front/supsearch.go
  6. 14 13
      src/jfw/front/swordfish.go
  7. 2 1
      src/jfw/modules/app/src/app/filter/filter.go
  8. 1 0
      src/jfw/modules/app/src/app/filter/loginfilter.go
  9. 27 24
      src/jfw/modules/app/src/app/front/login.go
  10. 225 89
      src/jfw/modules/app/src/app/front/shorturl.go
  11. 18 11
      src/jfw/modules/app/src/app/front/swordfish.go
  12. 84 37
      src/jfw/modules/app/src/config.json
  13. 6 7
      src/jfw/modules/app/src/main.go
  14. 8793 0
      src/jfw/modules/app/src/mosaic_fsw.dict
  15. 4 0
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/public.css
  16. 8 3
      src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/push_settings.js
  17. 77 3
      src/jfw/modules/app/src/web/staticres/jyapp/css/wxinfocontent.css
  18. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/images/adbottom.png
  19. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/images/register_serve.png
  20. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/book.png
  21. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/book_active.png
  22. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/box.png
  23. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/box_active.png
  24. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/home.png
  25. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/home_active.png
  26. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/mesg.png
  27. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/mesg_active.png
  28. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/mine.png
  29. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/mine_active.png
  30. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/images/telphone.png
  31. 220 23
      src/jfw/modules/app/src/web/staticres/jyapp/js/common.js
  32. 15 2
      src/jfw/modules/app/src/web/staticres/jyapp/local/layout.css
  33. 3 0
      src/jfw/modules/app/src/web/staticres/jyapp/me/css/mine.css
  34. 3 0
      src/jfw/modules/app/src/web/staticres/jyapp/me/js/account.js
  35. 25 3
      src/jfw/modules/app/src/web/staticres/jyapp/me/js/mine.js
  36. 1 0
      src/jfw/modules/app/src/web/templates/dataExport/dataExport.html
  37. 1 0
      src/jfw/modules/app/src/web/templates/dataExport/dataExport_area.html
  38. 1 0
      src/jfw/modules/app/src/web/templates/dataExport/dataExport_buyerEdit.html
  39. 1 0
      src/jfw/modules/app/src/web/templates/dataExport/dataExport_industry.html
  40. 1 0
      src/jfw/modules/app/src/web/templates/dataExport/dataExport_keyWord.html
  41. 1 0
      src/jfw/modules/app/src/web/templates/dataExport/dataExport_price.html
  42. 1 0
      src/jfw/modules/app/src/web/templates/dataExport/dataExport_subType.html
  43. 1 0
      src/jfw/modules/app/src/web/templates/dataExport/dataExport_winnerEdit.html
  44. 5 0
      src/jfw/modules/app/src/web/templates/entniche/entniche_seniorset.html
  45. 2 1
      src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info_partner.html
  46. 2 1
      src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info_push.html
  47. 2 1
      src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info_solution.html
  48. 2 1
      src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info_strud.html
  49. 3 2
      src/jfw/modules/app/src/web/templates/me/account.html
  50. 1 1
      src/jfw/modules/app/src/web/templates/me/forgetPwdTwo.html
  51. 34 2
      src/jfw/modules/app/src/web/templates/me/login.html
  52. 3 0
      src/jfw/modules/app/src/web/templates/me/mine.html
  53. 29 3
      src/jfw/modules/app/src/web/templates/me/setpwd.html
  54. 1 0
      src/jfw/modules/app/src/web/templates/me/setting.html
  55. 148 0
      src/jfw/modules/app/src/web/templates/weixin/tabbar.html
  56. 134 28
      src/jfw/modules/app/src/web/templates/weixin/wxinfocontent.html
  57. 2 1
      src/jfw/modules/publicapply/src/filter/sessionfilter.go
  58. 5 1
      src/jfw/modules/publicapply/src/go.mod
  59. 115 24
      src/jfw/modules/publicapply/src/go.sum
  60. 16 5
      src/jfw/modules/publicapply/src/identity/service/service.go
  61. 10 5
      src/web/staticres/common-module/ad/js/msgbuoy.js
  62. 4 2
      src/web/staticres/common-module/nps-common/js/nps.js
  63. 14 1
      src/web/staticres/common-module/perfect-info/js/perfect-info.js
  64. 121 1
      src/web/staticres/common-module/public/js/utils.js
  65. 0 15
      src/web/staticres/entnichePush/js/common.js
  66. 2 1
      src/web/staticres/js/pc-collect-bid-info.js
  67. 1 0
      src/web/staticres/js/pc-collect-partner-info.js
  68. 2 1
      src/web/staticres/js/pc-collect-user-info.js
  69. 66 20
      src/web/staticres/js/superSearch.js
  70. 2 1
      src/web/templates/frontRouter/wx/bigmember/free/perfect_info_partner.html
  71. 2 1
      src/web/templates/frontRouter/wx/bigmember/free/perfect_info_solution.html
  72. 2 1
      src/web/templates/frontRouter/wx/bigmember/free/perfect_info_strud.html

+ 16 - 9
src/config.json

@@ -286,6 +286,13 @@
   "intranetip": {
     "jy": "http://webxzh.qmx.top"
   },
+  "searchMosaic":{
+    "buyer":true,
+    "budget":true,
+    "winner":true,
+    "bidamount": true,
+    "bidopentime": true
+  },
   "getpicurl": "https://res.jianyu360.com/",
   "sealSendTime": 14400,
   "appPushServiceRpc": "192.168.20.139:5566",
@@ -380,13 +387,13 @@
     "winnerMap": true
   },
   "keywordsLimitNologin": 25,
-    "messageCenter": {
-      "appid": "10000",
-      "dbName": "messagetest",
-      "interval": 300,
-      "createtime": "2023-01-04 00:00:00",
-      "limitDay": 7,
-      "limitCount": 3
-    },
-    "workDesktopUrl":"/page_workDesktop/work-bench/page?aside=0&link="
+  "messageCenter": {
+    "appid": "10000",
+    "dbName": "messagetest",
+    "interval": 300,
+    "createtime": "2023-01-04 00:00:00",
+    "limitDay": 7,
+    "limitCount": 3
+  },
+  "workDesktopUrl":"/page_workDesktop/work-bench/page?aside=0&link="
 }

+ 2 - 1
src/jfw/filter/filter.go

@@ -11,6 +11,7 @@ import (
 	fs "app.yhyue.com/moapp/jybase/fsnotify"
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
 	"app.yhyue.com/moapp/jypkg/identity"
+	"app.yhyue.com/moapp/jypkg/public"
 )
 
 var RouteConf struct {
@@ -43,7 +44,7 @@ func (f *Filter) Do(w http.ResponseWriter, r *http.Request) bool {
 		session.Set("mgoUserId", getSession["userId"])
 	}
 	if getSession["base_user_id"] != nil && getSession["positionId"] == nil {
-		identity.SwitchToBest(util.Int64All(getSession["base_user_id"]), session, Middleground)
+		identity.SwitchToBest(util.Int64All(getSession["base_user_id"]), session, Middleground, &public.MQFW, false)
 	}
 	if !(&logFilter{w, r, session, getSession, make(map[string]interface{})}).Do() {
 		return false

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

@@ -649,11 +649,16 @@ func (f *Front) HasSign() error {
 //用户注销
 func (f *Front) SignOut() error {
 	sessVal := f.Session().GetMultiple()
+	positionId := util.Int64All(sessVal["positionId"])
 	if userId, _ := sessVal["mgoUserId"].(string); userId != "" {
+		public.MQFW.UpdateById("user", userId, map[string]interface{}{
+			"$set": map[string]interface{}{
+				"login_positionid": positionId,
+			},
+		})
 		redis.Del("other", jyutil.LoginRedisKey(userId))
 		jy.DelUnlimitSessionId(fmt.Sprint(f.Session().Id()), userId) //多账号
 	}
-	positionId := util.Int64All(sessVal["positionId"])
 	if positionId > 0 {
 		jy.ClearBigVipUserPower(fmt.Sprint(positionId))
         config.Middleground.UserCenter.WorkDesktopClearUserInfo(pb.WorkDesktopClearUserInfoReq{
@@ -663,9 +668,6 @@ func (f *Front) SignOut() error {
         config.Middleground.PowerCheckCenter.DelCheckRedis("10000",positionId)
 	}
 	f.Session().Clear()
-	f.Session().SetMultiple(map[string]interface{}{
-		"beforePositionId": positionId,
-	})
 	f.ServeJson("ok")
 	return nil
 }
@@ -820,7 +822,7 @@ func CreateSession(q map[string]interface{}, sess *httpsession.Session, typ stri
 	sessionVal["platform"] = typ
 	sess.SetMultiple(sessionVal)
 	if isSwitchToBestIdentity {
-		SwitchToBest(util.Int64All(sessionVal["base_user_id"]), sess, config.Middleground)
+		SwitchToBest(util.Int64All(sessionVal["base_user_id"]), sess, config.Middleground, &public.MQFW, true)
 	}
 	s_nickname := util.If(sessionVal["s_nickname"] != nil, sessionVal["s_nickname"], sessionVal["phone"])
 	if util.ObjToString(s_nickname) == "" {
@@ -876,7 +878,7 @@ func (m *Front) Sess(ostr string) error {
 			}
 			identity = config.Middleground.UserCenter.IdentityByUserId(util.Int64All(m.GetSession("base_user_id")))
 		}
-		ok = ok && NewIdentityInfo(identity).Switch(m.Session())
+		ok = ok && NewIdentityInfo(identity).Switch(m.Session(), &public.MQFW)
 		if ok {
 			actionurl := ""
 			if str[3] == "" {
@@ -894,7 +896,7 @@ func (m *Front) Sess(ostr string) error {
 						entUserId = util.Int64All(entParams[1])
 					}
 					if identity := config.Middleground.UserCenter.IdentityByEntUserId(entUserId); identity != nil {
-						NewIdentityInfo(identity).Switch(m.Session())
+						NewIdentityInfo(identity).Switch(m.Session(), &public.MQFW)
 					}
 				}
 			} else {

+ 33 - 2
src/jfw/front/shorturl.go

@@ -898,7 +898,7 @@ func ReplaceStringByRegex(str, rule, replace string) (string, error) {
 	return reg.ReplaceAllString(str, replace), nil
 }
 
-//未登录用户进行数据过滤
+// 未登录用户进行数据过滤 name 配置文件
 func Filter(obj map[string]interface{}) map[string]interface{} {
 	detail := fmt.Sprint(obj["detail"])
 	mosaicText := util.ObjToString(config.Sysconfig["detailMosaicTxt"])
@@ -929,6 +929,37 @@ func Filter(obj map[string]interface{}) map[string]interface{} {
 	return obj
 }
 
+// 未登录用户进行数据过滤 name 配置文件
+func SearchFilter(obj map[string]interface{}) map[string]interface{} {
+	//detail := fmt.Sprint(obj["detail"])
+	mosaicText := util.ObjToString(config.Sysconfig["detailMosaicTxt"])
+	for k, _ := range obj {
+		needMosaic, _ := config.Sysconfig["searchMosaic"].(map[string]interface{})
+		if ok, _ := needMosaic[k].(bool); ok {
+			//if util.ObjToString(obj[k]) != "" {
+			//	detail = strings.ReplaceAll(detail, util.ObjToString(obj[k]), mosaicText)
+			//	//敏感词过滤
+			//}
+			if k == "winnerMap" {
+				winnerMap, _ := obj[k].(map[string]interface{})
+				mosaicMap := map[string]interface{}{}
+				for i := 0; i < len(winnerMap); i++ {
+					mosaicMap[mosaicText] = mosaicText
+				}
+				obj["winnerMap"] = mosaicMap
+			} else {
+				obj[k] = mosaicText
+			}
+
+		}
+	}
+	//数字打码
+	//detail = RegDetail(detail)
+	//detail = fsw.Repl(detail)
+	//obj["detail"] = detail
+	return obj
+}
+
 func (s *Short) NologinArticle(stype, id string) error {
 	userId := util.ObjToString(s.GetSession("userId"))
 	sids := encrypt.CommonDecodeArticle(stype, id)
@@ -993,7 +1024,7 @@ func (s *Short) NologinArticle(stype, id string) error {
 	return nil
 }
 
-//分段匹配数字打码
+// 分段匹配数字打码
 func RegDetail(html string) string {
 	mosaicText := util.ObjToString(config.Sysconfig["detailMosaicTxt"])
 	reg := regexp.MustCompile("<[^<>]{1,1000}>") //分段正则

+ 12 - 0
src/jfw/front/supsearch.go

@@ -301,6 +301,12 @@ func (p *Pcsearch) GetNewBids() error {
 			delete((*v), "toptype")
 		}
 	}
+	log.Println("userId:+++", userId)
+	if userId == "" {
+		for _, v := range list {
+			*v = SearchFilter(*v)
+		}
+	}
 	p.ServeJson(map[string]interface{}{
 		"list":      list,
 		"count":     count,
@@ -455,6 +461,12 @@ func (p *Pcsearch) PcSearchIndex(module string) error {
 	if noLoginBl {
 		subtype = ""
 	}
+	log.Println("userId:+++", userId)
+	if userId == "" {
+		for _, v := range list {
+			*v = SearchFilter(*v)
+		}
+	}
 	p.T["list"] = list
 	p.T["secondFlag"] = secondFlag
 	p.T["area"] = area

+ 14 - 13
src/jfw/front/swordfish.go

@@ -6,9 +6,7 @@ import (
 	"fmt"
 	"html/template"
 	"jy/src/jfw/config"
-
-	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/bidsearch"
-
+	"jy/src/jfw/jyutil"
 	"jy/src/jfw/wx"
 	"log"
 	"math/rand"
@@ -18,21 +16,17 @@ import (
 	"strings"
 	"time"
 
-	"jy/src/jfw/jyutil"
-
-	. "app.yhyue.com/moapp/jybase/date"
-	. "app.yhyue.com/moapp/jybase/mongodb"
-	"app.yhyue.com/moapp/jypkg/public"
-
 	util "app.yhyue.com/moapp/jybase/common"
-
+	. "app.yhyue.com/moapp/jybase/date"
 	"app.yhyue.com/moapp/jybase/encrypt"
 	elastic "app.yhyue.com/moapp/jybase/esv1"
-	"app.yhyue.com/moapp/jybase/redis"
-	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
-
 	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
+	. "app.yhyue.com/moapp/jybase/mongodb"
+	"app.yhyue.com/moapp/jybase/redis"
+	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/bidsearch"
+	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
+	"app.yhyue.com/moapp/jypkg/public"
 	"go.mongodb.org/mongo-driver/bson"
 	"go.mongodb.org/mongo-driver/bson/primitive"
 )
@@ -177,6 +171,13 @@ func (m *Front) PcAjaxReq() {
 			count, total, list = so.GetBidSearchList(false)
 		}
 	}
+	log.Println("userId:+++", userId)
+	if userId == "" {
+		for _, v := range list {
+			*v = SearchFilter(*v)
+		}
+	}
+
 	m.ServeJson(map[string]interface{}{
 		"limitFlag":          false,
 		"status":             isLimit,

+ 2 - 1
src/jfw/modules/app/src/app/filter/filter.go

@@ -10,6 +10,7 @@ import (
 	fs "app.yhyue.com/moapp/jybase/fsnotify"
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
 	"app.yhyue.com/moapp/jypkg/identity"
+	"app.yhyue.com/moapp/jypkg/public"
 )
 
 var RouteConf struct {
@@ -42,7 +43,7 @@ func (f *Filter) Do(w http.ResponseWriter, r *http.Request) bool {
 		session.Set("mgoUserId", getSession["userId"])
 	}
 	if getSession["base_user_id"] != nil && getSession["positionId"] == nil {
-		identity.SwitchToBest(util.Int64All(getSession["base_user_id"]), session, Middleground)
+		identity.SwitchToBest(util.Int64All(getSession["base_user_id"]), session, Middleground, &public.MQFW, false)
 	}
 	if !(&logFilter{w, r, getSession}).Do() {
 		return false

+ 1 - 0
src/jfw/modules/app/src/app/filter/loginfilter.go

@@ -8,6 +8,7 @@ import (
 
 var urls = []*regexp.Regexp{
 	regexp.MustCompile("^/jyapp/(dataReport|dataExport)/(wxpay|alipay)/callback$"),
+	regexp.MustCompile("^/jyapp/article/content/.*"),
 	regexp.MustCompile("^/jyapp/free/.*"),
 	regexp.MustCompile("^/jyapp/jylab/mainSearch$"),
 	regexp.MustCompile("^/jyapp/big/page/full$"),

+ 27 - 24
src/jfw/modules/app/src/app/front/login.go

@@ -147,6 +147,9 @@ func (l *Login) Login() error {
 			return returnStatus
 		} else if reqType == "sendIdentCode" {
 			phone := jy.CheckSendMsg(l.GetString("token"))
+			if phone == "" {
+				phone = l.GetString("phone")
+			}
 			//手机号验证不通过
 			if phone == "" {
 				return -2
@@ -315,7 +318,7 @@ func (l *Login) Sess(ostr string) error {
 				hasSession = true
 			}
 			if identity != nil {
-				hasSession = hasSession && NewIdentityInfo(identity).Switch(l.Session())
+				hasSession = hasSession && NewIdentityInfo(identity).Switch(l.Session(), &public.MQFW)
 			}
 		} else {
 			if l.GetSession("userId") != nil {
@@ -331,7 +334,7 @@ func (l *Login) Sess(ostr string) error {
 				if createSession(l.Session(), loginId, loginType, l.ResponseWriter, true) {
 					hasSession = true
 					if identity := config.Middleground.UserCenter.IdentityByUserId(qutil.Int64All(l.GetSession("base_user_id"))); identity != nil {
-						hasSession = hasSession && NewIdentityInfo(identity).Switch(l.Session())
+						hasSession = hasSession && NewIdentityInfo(identity).Switch(l.Session(), &public.MQFW)
 					}
 				} else {
 					log.Println("创建session失败", str)
@@ -355,7 +358,7 @@ func (l *Login) Sess(ostr string) error {
 						entUserId = qutil.Int64All(entParams[1])
 					}
 					if identity := config.Middleground.UserCenter.IdentityByEntUserId(entUserId); identity != nil {
-						NewIdentityInfo(identity).Switch(l.Session())
+						NewIdentityInfo(identity).Switch(l.Session(), &public.MQFW)
 					}
 				}
 			} else {
@@ -563,6 +566,11 @@ func (l *Login) Register() error {
 							log.Println("usercenter add error", userid, phone)
 						}
 					}(saveid)
+					baseId, ok := mongodb.FindById("user", saveid, `{"base_user_id":1}`)
+					if ok && baseId != nil && len(*baseId) > 0 {
+						data["base_user_id"] = (*baseId)["base_user_id"]
+					}
+
 					addr := config.Sysconfig["nsq"].(string)
 					topic := config.Sysconfig["nsq_topic"].(string)
 					go func() {
@@ -907,9 +915,6 @@ func (l *Login) SignOut() {
 	})
 	go config.Middleground.PowerCheckCenter.DelCheckRedis("10000", positionId)
 	ClearSession(l.Session())
-	l.Session().SetMultiple(map[string]interface{}{
-		"beforePositionId": positionId,
-	})
 	l.ServeJson(map[string]interface{}{
 		"status": status,
 	})
@@ -1110,7 +1115,7 @@ func createSession(s *httpsession.Session, loginId string, loginType int, rw htt
 	}
 	s.SetMultiple(sessVal)
 	if isSwitchToBestIdentity {
-		SwitchToBest(qutil.Int64All(sessVal["base_user_id"]), s, config.Middleground)
+		SwitchToBest(qutil.Int64All(sessVal["base_user_id"]), s, config.Middleground, &public.MQFW, true)
 	}
 	//cookie
 	maxAge := int(time.Hour * 72 / time.Second) //3天,单位秒
@@ -1184,8 +1189,8 @@ func afterLogin(user map[string]interface{}, session *httpsession.Session, rid,
 				}
 			}
 			//同一账号在不同设备登录,极光id不一样,给之前的设备推送自定义的下线消息,离线消息保持10天
-			if old_rid != "" && old_rid != rid && off {
-				utils.Compatible.Update(userid, map[string]interface{}{
+			if old_rid != "" && old_rid != rid && off && rid != "" {
+				mongodb.UpdateById("user", userid, map[string]interface{}{
 					"$addToSet": map[string]interface{}{"a_jpushid": old_rid},
 				})
 				//
@@ -1237,21 +1242,19 @@ func afterLogin(user map[string]interface{}, session *httpsession.Session, rid,
 					"s_opushid": "",
 				},
 			}, false, true)
-		}
-		set := map[string]interface{}{
-			"s_jpushid":     rid,
-			"s_opushid":     oid,
-			"s_appponetype": phoneType,
-		}
-		if o_jy, ok := user["o_jy"].(map[string]interface{}); ok && o_jy != nil && o_jy["i_apppush"] == nil {
-			set["o_jy.i_apppush"] = 1
-		}
-		utils.Compatible.Update(userid, map[string]interface{}{
-			"$set":  set,
-			"$pull": map[string]interface{}{"a_jpushid": rid},
-		})
-		//删除未登录的pushid
-		if rid != "" {
+			set := map[string]interface{}{
+				"s_jpushid":     rid,
+				"s_opushid":     oid,
+				"s_appponetype": phoneType,
+			}
+			if o_jy, ok := user["o_jy"].(map[string]interface{}); ok && o_jy != nil && o_jy["i_apppush"] == nil {
+				set["o_jy.i_apppush"] = 1
+			}
+			mongodb.UpdateById("user", userid, map[string]interface{}{
+				"$set":  set,
+				"$pull": map[string]interface{}{"a_jpushid": rid},
+			})
+			//删除未登录的pushid
 			jyutil.UnLoginPush.DeleteBuff(rid)
 		}
 	}()

+ 225 - 89
src/jfw/modules/app/src/app/front/shorturl.go

@@ -2,7 +2,9 @@ package front
 
 import (
 	"database/sql"
+	"errors"
 	"fmt"
+	utils "jy/src/jfw/modules/app/src/app/jyutil"
 	"jy/src/jfw/modules/app/src/jfw/config"
 	"regexp"
 	"strconv"
@@ -10,19 +12,18 @@ import (
 	"time"
 
 	"app.yhyue.com/moapp/jybase/encrypt"
-    utils "jy/src/jfw/modules/app/src/app/jyutil"
-	//"math/rand"
-	"log"
+	"app.yhyue.com/moapp/jybase/fsw"
 
+	//"math/rand"
 	. "jy/src/jfw/modules/app/src/app/jyutil"
+	"log"
 
 	util "app.yhyue.com/moapp/jybase/common"
 	elastic "app.yhyue.com/moapp/jybase/esv1"
+	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
 	"app.yhyue.com/moapp/jybase/redis"
 	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
 	"app.yhyue.com/moapp/jypkg/public"
-
-	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
 )
 
 type Short struct {
@@ -41,34 +42,41 @@ var suffix_msgt = "_SX"
 func (s *Short) Article(stype, id string) error {
 	//先判断是否有session
 	userId, _ := s.GetSession("userId").(string)
-
-	if userId == "" {
-		return s.Redirect("/jyapp/free/swordfish/about", 302)
-	}
+	log.Printf("三级页userid:%s", userId)
+	//if userId == "" {
+	//	return s.Redirect("/jyapp/free/swordfish/about", 302)
+	//}
 	disWord := s.GetString("disWord")
-	belongUserId := GetbelongUserId(disWord, userId)
-	b, _ := redis.Exists("sso", "req_"+userId)
-	if b {
-		return s.Redirect("/jyapp/free/mob/err")
-	}
-	userPower := jy.GetBigVipUserBaseMsg( s.Session(),  *config.Middleground)
+	userPower := jy.GetBigVipUserBaseMsg(s.Session(), *config.Middleground)
 	var (
-		isEntnicheNew bool   = userPower.EntIsNew           //新版超级订阅
-		isOldVip      bool   = false                        //新购超级订阅不能查看拟建项目详情页
-		isVip         bool   = userPower.VipStatus > 0      //超级订阅
-		isMember      bool   = userPower.Status > 0         //大会员
-		isEntniche    bool   = userPower.EntnicheStatus > 0 //商机管理
-		email         string = userPower.Email              //用户邮箱
-		isEntService  bool   = userPower.IsEntService       //商机管理服务
+		belongUserId, email string
+
+		isEntnicheNew, isOldVip, isVip, isMember, isEntniche, isEntService bool
 	)
-	_, isOldVip, _, _, _ = UserPermission(userId)
-	entId := util.IntAll(s.GetSession("entId"))
-	if entId > 0 && userPower.EntInfo[entId] != nil {
-		isEntniche = userPower.EntInfo[entId].Status == 1 && userPower.EntInfo[entId].IsPower
-		isEntnicheNew = userPower.EntInfo[entId].IsNew && isEntniche
-		if isEntService = userPower.EntInfo[entId].IsService && userPower.EntInfo[entId].IsPower; isEntService {
-			isEntnicheNew = false
-			isEntniche = false
+	//userId = "637dcf3ff143ed326e9e1589"
+	//登录用户 权限
+	if userId != "" {
+		belongUserId = GetbelongUserId(disWord, userId)
+		b, _ := redis.Exists("sso", "req_"+userId)
+		if b {
+			return s.Redirect("/jyapp/free/mob/err")
+		}
+		isEntnicheNew = userPower.EntIsNew        //新版超级订阅
+		isOldVip = false                          //新购超级订阅不能查看拟建项目详情页
+		isVip = userPower.VipStatus > 0           //超级订阅
+		isMember = userPower.Status > 0           //大会员
+		isEntniche = userPower.EntnicheStatus > 0 //商机管理
+		email = userPower.Email                   //用户邮箱
+		isEntService = userPower.IsEntService     //商机管理服务
+		_, isOldVip, _, _, _ = UserPermission(userId)
+		entId := util.IntAll(s.GetSession("entId"))
+		if entId > 0 && userPower.EntInfo[entId] != nil {
+			isEntniche = userPower.EntInfo[entId].Status == 1 && userPower.EntInfo[entId].IsPower
+			isEntnicheNew = userPower.EntInfo[entId].IsNew && isEntniche
+			if isEntService = userPower.EntInfo[entId].IsService && userPower.EntInfo[entId].IsPower; isEntService {
+				isEntnicheNew = false
+				isEntniche = false
+			}
 		}
 	}
 	s.T["isVip"] = isVip
@@ -93,69 +101,73 @@ func (s *Short) Article(stype, id string) error {
 	var obj map[string]interface{}
 	var canRead bool
 	obj = wxvisitD(sid, userId, (isVip && isOldVip) || isEntniche || isMember)
-
-	if ((isVip && isOldVip) || isMember || isEntniche) || //老版本vip、大会员、商机管理
-		((isVip && !isOldVip) && (!(util.ObjToString(obj["subtype"]) == "拟建" || util.ObjToString(obj["subtype"]) == "采购意向"))) { //新超级订阅非采购意向”和“拟建项目”
-		canRead = true
-	} else {
-		watchKey := fmt.Sprintf("article_count_%d_%s_%d_%s", time.Now().Year(), time.Now().Month(), time.Now().Day(), userId)
-		subTypeStr, _ := obj["subtype"].(string)
-		if strings.Contains(subTypeStr, "拟建") || strings.Contains(subTypeStr, "采购意向") {
-			canRead = false
-		} else {
-			if resVal := redis.GetStr("other", watchKey); resVal != "" {
-				sidss := strings.Split(resVal, "_")
-				canReadNotice := config.Sysconfig["canReadNotice"]
-				if len(sidss) < util.IntAll(canReadNotice) {
-					canRead = true
-					sidss = append(sidss, sid)
-					arrs := RemoveDuplicatesAndEmpty(sidss)
-					newVal := strings.Join(arrs, "_")
-					redis.Put("other", watchKey, newVal, jy.GetExpire())
-				} else {
+	if len(obj) > 0 {
+		if userId != "" {
+			if ((isVip && isOldVip) || isMember || isEntniche) || //老版本vip、大会员、商机管理
+				((isVip && !isOldVip) && (!(util.ObjToString(obj["subtype"]) == "拟建" || util.ObjToString(obj["subtype"]) == "采购意向"))) { //新超级订阅非采购意向”和“拟建项目”
+				canRead = true
+			} else {
+				watchKey := fmt.Sprintf("article_count_%d_%s_%d_%s", time.Now().Year(), time.Now().Month(), time.Now().Day(), userId)
+				subTypeStr, _ := obj["subtype"].(string)
+				if strings.Contains(subTypeStr, "拟建") || strings.Contains(subTypeStr, "采购意向") {
 					canRead = false
-					for _, v := range sidss {
-						if sid == v {
+				} else {
+					if resVal := redis.GetStr("other", watchKey); resVal != "" {
+						sidss := strings.Split(resVal, "_")
+						canReadNotice := config.Sysconfig["canReadNotice"]
+						if len(sidss) < util.IntAll(canReadNotice) {
 							canRead = true
-							break
+							sidss = append(sidss, sid)
+							arrs := RemoveDuplicatesAndEmpty(sidss)
+							newVal := strings.Join(arrs, "_")
+							redis.Put("other", watchKey, newVal, jy.GetExpire())
+						} else {
+							canRead = false
+							for _, v := range sidss {
+								if sid == v {
+									canRead = true
+									break
+								}
+							}
 						}
+					} else {
+						redis.Put("other", watchKey, sid, jy.GetExpire())
+						canRead = true
+					}
+					//检验是否留资
+					ok := CNode(userId)
+					if ok {
+						canRead = true
 					}
 				}
+			}
+		}
+		//超前项目推送处理
+		s.T["canRead"] = canRead
+		if stype == "advancedProject" {
+			newCanRead := false
+			//判断此用户是否有打开的权限
+			newUserId := s.GetSession("base_user_id")
+			pushData := public.BaseMysql.FindOne("leadproject_push", map[string]interface{}{"user_id": newUserId, "info_id": sid}, "id", "")
+			//访问次数加1
+			if pushData == nil {
+				newCanRead = false
 			} else {
-				redis.Put("other", watchKey, sid, jy.GetExpire())
-				canRead = true
+				public.BaseMysql.UpdateOrDeleteBySql("UPDATE leadproject_push SET  visit_count=visit_count+1 ,lastvisit_time=? WHERE id = ?", time.Now().Format("2006-01-02 15:04:05"), (*pushData)["id"])
+				newCanRead = true
 			}
-			//检验是否留资
-			ok := CNode(userId)
-			if ok {
+			if newCanRead || canRead {
+				obj = wxvisitD(sid, userId, true)
 				canRead = true
 			}
+			s.T["canRead"] = canRead
 		}
-	}
-	//超前项目推送处理
-	s.T["canRead"] = canRead
-	if stype == "advancedProject" {
-		newCanRead := false
-		//判断此用户是否有打开的权限
-		newUserId := s.GetSession("base_user_id")
-		pushData := public.BaseMysql.FindOne("leadproject_push", map[string]interface{}{"user_id": newUserId, "info_id": sid}, "id", "")
-		//访问次数加1
-		if pushData == nil {
-			newCanRead = false
-		} else {
-			public.BaseMysql.UpdateOrDeleteBySql("UPDATE leadproject_push SET  visit_count=visit_count+1 ,lastvisit_time=? WHERE id = ?", time.Now().Format("2006-01-02 15:04:05"), (*pushData)["id"])
-			newCanRead = true
-		}
-		if newCanRead || canRead {
-			obj = wxvisitD(sid, userId, true)
+		if userId == "" {
 			canRead = true
+			s.T["canRead"] = canRead
 		}
-		s.T["canRead"] = canRead
-	}
-
-	if len(obj) > 0 {
 		if canRead {
-			if belongUserId != "" && belongUserId != userId && util.ObjToString(obj["subtype"]) != "拟建" { //分享开打的
+			if belongUserId != "" && belongUserId != userId && util.ObjToString(obj["subtype"]) != "拟建" && userId != "" { //分享开打的
 				article_id := encrypt.CommonDecodeArticle(stype, id)[0]
 				key := fmt.Sprintf("integral_article_%s_%s_%s", article_id, belongUserId, userId)
 				if redis.Incr("other", key) == 1 {
@@ -197,15 +209,13 @@ func (s *Short) Article(stype, id string) error {
 				obj["entId"] = entIdArr
 				obj["winnerMap"] = winnerMap
 			}
-			s.T["userId"] = se.Encode2Hex(userId) //加密用户userid
-
 			//判断是否公开联系人信息
 			if util.Int64All(obj["buyerhint"]) == 2 {
 				obj["buyerperson"] = ""
 				obj["buyertel"] = ""
 			}
 			//免费用户正文手机号替换
-			if obj["site"] == "剑鱼信息发布平台" && isMember {
+			if obj["site"] == "剑鱼信息发布平台" && !isMember && userId != "" {
 				//采购电话中标单位电话置空
 				if util.InterfaceToStr(obj["buyertel"]) != "" {
 					obj["buyertel"] = "freeView"
@@ -233,6 +243,9 @@ func (s *Short) Article(stype, id string) error {
 					obj["detail"] = strings.ReplaceAll(strings.ReplaceAll(detail3, `<span class="freeView">点击查看</span><span class="freeView">点击查看</span>`, `<span class="freeView">点击查看</span>`), "*********", code)
 				}
 			}
+			if userId == "" {
+				obj = Filter(obj)
+			}
 		} else {
 			obj = map[string]interface{}{
 				"title":   obj["title"],
@@ -240,16 +253,21 @@ func (s *Short) Article(stype, id string) error {
 				"subtype": obj["subtype"],
 			}
 		}
+		if userId != "" {
+			s.T["userId"] = se.Encode2Hex(userId) //加密用户userid
+		}
+		s.T["forceShareFlag"] = public.CheckUserNeedForceShare(userId, public.ShareType_detail, config.Sysconfig)
 		s.T["rewardText"], s.T["advertText"] = getRewardText()
 		s.T["advertImg"] = config.Sysconfig["advertImg"]
 		s.T["advertName"] = config.Sysconfig["advertName"]
 		s.T["advertUrl"] = config.Sysconfig["advertUrl"]
 		obj["industry"] = industry
-		obj["ucbsId"] = encrypt.EncodeArticleId2ByCheck("ucbs#" + userId + "#" + id)
 		s.T["obj"] = obj
-		s.T["forceShareFlag"] = public.CheckUserNeedForceShare(userId, public.ShareType_detail, config.Sysconfig)
 		s.T["isIosExam"], s.T["isIosExamPhone"], _, _ = IosExamInfo(s.Action, false, false)
-		content, _ := s.Render4Cache("/weixin/wxinfocontent.html", &s.T)
+		content, err := s.Render4Cache("/weixin/wxinfocontent.html", &s.T)
+		if err != nil {
+			log.Println("模板数据写入失败:", err.Error())
+		}
 		return s.SetBody(content)
 	}
 	if surl != "" {
@@ -258,6 +276,124 @@ func (s *Short) Article(stype, id string) error {
 	return s.Redirect("/jyapp/free/mob/err")
 }
 
+func NoLoginArticle(stype, sid string) map[string]interface{} {
+	obj := make(map[string]interface{})
+	catchKey := fmt.Sprintf("jypcdetail_nologin_app_%s_%s", stype, sid)
+	//if res := redis.Get("other", catchKey); res != nil && res != "" {
+	//	if data := util.ObjToMap(res); data != nil {
+	//		obj = *data
+	//		return obj
+	//	}
+	//}
+	obj = wxvisitD(sid, "", false)
+	if len(obj) > 0 {
+		if obj["entidlist"] != nil { //大会员中标企业跳转至画像
+			entIdArr, winnerMap := []string{}, map[string]interface{}{}
+			eidList, _ := obj["entidlist"].([]interface{})
+			swinnerArr := strings.Split(util.ObjToString(obj["s_winner"]), ",")
+			//先查询entlist 如果长度和s_winner不一致 根据企业名称查询id
+			if len(eidList) != len(swinnerArr) {
+				for _, v := range swinnerArr {
+					winnerMap[v] = ""
+					//临时更改为企业名称查询企业id
+					rData := elastic.Get("qyxy", "qyxy", fmt.Sprintf(`{"query":{"bool":{"should":[{"term":{"company_name":"%s"}},{"term":{"hname":"%s"}}],"minimum_should_match":1}},"_source":["name","_id","capital","company_phone"],"size":1}`, v, v))
+					if rData != nil && len(*rData) == 1 {
+						if entId := util.ObjToString((*rData)[0]["_id"]); entId != "" {
+							entIdArr = append(entIdArr, encrypt.EncodeArticleId2ByCheck(util.ObjToString((*rData)[0]["_id"])))
+							winnerMap[v] = encrypt.EncodeArticleId2ByCheck(util.ObjToString((*rData)[0]["_id"]))
+						}
+					}
+				}
+			} else {
+				for k, v := range eidList {
+					vstr := util.ObjToString(v)
+					if vstr == "-" {
+						continue
+					}
+					winnerMap[swinnerArr[k]] = encrypt.EncodeArticleId2ByCheck(vstr)
+				}
+			}
+			obj["entId"] = entIdArr
+			obj["winnerMap"] = winnerMap
+		}
+		//判断是否公开联系人信息
+		if util.Int64All(obj["buyerhint"]) == 2 {
+			obj["buyerperson"] = ""
+			obj["buyertel"] = ""
+		}
+
+		obj["winnerTitle"] = obj["winner"]
+		obj["buyerTitle"] = obj["buyer"]
+		obj["projectnameTitle"] = obj["projectname"]
+		obj["projectcodeTitle"] = obj["projectcode"]
+		obj = Filter(obj)
+		redis.Put("other", catchKey, obj, 60*60*2)
+	}
+	fmt.Println("11111", obj)
+	return obj
+}
+
+// 未登录用户进行数据过滤
+func Filter(obj map[string]interface{}) map[string]interface{} {
+	detail := fmt.Sprint(obj["detail"])
+	mosaicText := util.ObjToString(config.Sysconfig["detailMosaicTxt"])
+	for k, _ := range obj {
+		needMosaic, _ := config.Sysconfig["needMosaic"].(map[string]interface{})
+		if ok, _ := needMosaic[k].(bool); ok {
+			if util.ObjToString(obj[k]) != "" {
+				detail = strings.ReplaceAll(detail, util.ObjToString(obj[k]), mosaicText)
+				//敏感词过滤
+			}
+			if k == "winnerMap" {
+				winnerMap, _ := obj[k].(map[string]interface{})
+				mosaicMap := map[string]interface{}{}
+				for i := 0; i < len(winnerMap); i++ {
+					mosaicMap[mosaicText] = mosaicText
+				}
+				obj["winnerMap"] = mosaicMap
+			} else {
+				obj[k] = mosaicText
+			}
+
+		}
+	}
+	//数字打码
+	detail = RegDetail(detail)
+	detail = fsw.Repl(detail)
+	obj["detail"] = detail
+	return obj
+}
+
+func ReplaceStringByRegex(str, rule, replace string) (string, error) {
+	reg, err := regexp.Compile(rule)
+	if reg == nil || err != nil {
+		return "", errors.New("正则MustCompile错误:" + err.Error())
+	}
+	return reg.ReplaceAllString(str, replace), nil
+}
+
+// 分段匹配数字打码
+func RegDetail(html string) string {
+	mosaicText := util.ObjToString(config.Sysconfig["detailMosaicTxt"])
+	reg := regexp.MustCompile("<[^<>]{1,1000}>") //分段正则
+	s := reg.FindAllStringIndex(html, -1)        //全文匹配分段
+	if len(s) > 0 {                              //走分段替换
+		arr := []string{}
+		index := 0
+		for _, v := range s {
+			if len(v) == 2 {
+				// log.Println(html[index:v[0]])
+				txt, _ := ReplaceStringByRegex(html[index:v[0]], "[0-9]+", mosaicText)
+				arr = append(arr, txt) //替换
+				arr = append(arr, html[v[0]:v[1]])
+				index = v[1]
+			}
+		}
+		return strings.Join(arr, "")
+	}
+	return ""
+}
+
 func CNode(userId string) bool {
 	if hasRetainedCapital(userId, "jyarticle_see3_plus") {
 		return true
@@ -283,7 +419,7 @@ func CNode(userId string) bool {
 		delete(rM, "createtime")
 		delete(rM, "client")
 	}
-	if userinfo := utils.Compatible.Select( userId, `{"s_phone":1,"s_m_phone":1,"s_myemail":1,"s_company":1,"o_jy":1,"o_vipjy":1}`); userinfo != nil && ok && len(*userinfo) > 0 {
+	if userinfo := utils.Compatible.Select(userId, `{"s_phone":1,"s_m_phone":1,"s_myemail":1,"s_company":1,"o_jy":1,"o_vipjy":1}`); userinfo != nil && ok && len(*userinfo) > 0 {
 		s_phone := util.ObjToString((*userinfo)["s_phone"])
 		phone := util.If(s_phone == "", util.ObjToString((*userinfo)["s_m_phone"]), s_phone)
 		if rM["phone"] == nil || rM["phone"] == "" {
@@ -384,8 +520,8 @@ func getwinnertel(company interface{}) string {
 
 func UserPermission(userId string) (isVip, isOldVip, isEntniche bool, i_member_status int, email string) {
 	var phone string
-	data :=utils.Compatible.Select( userId, `{"i_vip_status":1,"i_member_status":1,"s_myemail":1,"s_phone":1,"s_m_phone":1,"l_vip_starttime":1}`)
-	if  data != nil && len(*data) > 0 {
+	data := utils.Compatible.Select(userId, `{"i_vip_status":1,"i_member_status":1,"s_myemail":1,"s_phone":1,"s_m_phone":1,"l_vip_starttime":1}`)
+	if data != nil && len(*data) > 0 {
 		i_vip_status := util.IntAll((*data)["i_vip_status"])
 		if i_vip_status > 0 {
 			isVip = true

+ 18 - 11
src/jfw/modules/app/src/app/front/swordfish.go

@@ -499,6 +499,9 @@ func (f *Front) Historypush() error {
 }
 
 func MFollow(userId, sid string) (bool, string) {
+	if userId == "" {
+		return false, ""
+	}
 	defer util.Catch()
 	var followId string
 	followFlag := false
@@ -542,20 +545,24 @@ func wxvisitD(sid, userId string, isPayUser bool) (objdata map[string]interface{
 			if obj["competehref"] != nil || infoformat == 2 {
 				delete(obj, "href")
 			}
+			//if userId != "" {
+			//pcode, _ := obj["projectcode"].(string)
+			//pname, _ := obj["projectname"].(string)
+			titleTmp := util.ObjToString(obj["title"])
+			obj["followFlag"], obj["followId"] = MFollow(userId, sid)
+			if len([]rune(titleTmp)) > 100 {
+				titleTmp = string([]rune(titleTmp)[:100]) + "..."
+			}
+			titleTmp = public.ClearHtml.ReplaceAllString(titleTmp, "")
+			obj["title"] = titleTmp
 			if userId != "" {
-				//pcode, _ := obj["projectcode"].(string)
-				//pname, _ := obj["projectname"].(string)
-				titleTmp := util.ObjToString(obj["title"])
-				obj["followFlag"], obj["followId"] = MFollow(userId, sid)
-				if len([]rune(titleTmp)) > 100 {
-					titleTmp = string([]rune(titleTmp)[:100]) + "..."
-				}
-				titleTmp = public.ClearHtml.ReplaceAllString(titleTmp, "")
-				obj["title"] = titleTmp
 				obj["hasSession"] = true
-
-				//obj["title"] = util.If(len([]rune(titleTmp)) > 100, string([]rune(titleTmp)[:100])+"...", string(titleTmp)).(string)
+			} else {
+				obj["hasSession"] = false
 			}
+
+			//obj["title"] = util.If(len([]rune(titleTmp)) > 100, string([]rune(titleTmp)[:100])+"...", string(titleTmp)).(string)
+			//}
 			if strings.Trim(util.ObjToString(obj["detail"]), " ") == "" {
 				obj["detail"] = ""
 			}

+ 84 - 37
src/jfw/modules/app/src/config.json

@@ -127,46 +127,93 @@
       "user": "public03@topnet.net.cn"
     }
   ],
-  "policy": {
-    "title": "使用许可协议和隐私政策",
-    "content": "欢迎使用剑鱼标讯!\n我们依据最新法规及监管政策要求,更新了《剑鱼标讯用户使用许可协议》和《剑鱼标讯隐私政策》,在您使用剑鱼标讯前,请仔细阅读并充分了解。\n如你同意《剑鱼标讯用户使用许可协议》和《剑鱼标讯隐私政策》,请点击“同意”并开始使用我们的产品和服务,我们会全力保护你的个人信息安全。",
-    "href": [
-      "jyapp/free/staticPage/privacy_rules_client.html",
-      "jyapp/free/staticPage/permission_rules_client.html"
-    ],
-    "name": [
-      "《剑鱼标讯隐私政策》",
-      "《剑鱼标讯用户使用许可协议》"
-    ]
-  },
-  "tencentcloud": {
-    "appid": "TIDAXUV9",
-    "secretKey": "c7KJhtLMF805EeImBcOsoygu8KkdOrAfIaSU9SqAh8a2aiCgc69EfsaLM5EQcadF",
-    "version": "1.0.0"
-  },
-  "termValidity": 3600,
-  "uploadPath": "./web/staticres/jyapp/res/",
-  "appConfig": {
-    "pushGrpcServer": "192.168.20.114:5565",
-    "pushGrpcHeartBeat": 3
-  },
-  "redisSessionLockSize": 20,
-  "nsq": "192.168.3.240:4260",
+"policy": {
+"title": "使用许可协议和隐私政策",
+"content": "欢迎使用剑鱼标讯!\n我们依据最新法规及监管政策要求,更新了《剑鱼标讯用户使用许可协议》和《剑鱼标讯隐私政策》,在您使用剑鱼标讯前,请仔细阅读并充分了解。\n如你同意《剑鱼标讯用户使用许可协议》和《剑鱼标讯隐私政策》,请点击“同意”并开始使用我们的产品和服务,我们会全力保护你的个人信息安全。",
+"href": [
+	"jyapp/free/staticPage/privacy_rules_client.html",
+	"jyapp/free/staticPage/permission_rules_client.html"
+],
+"name": [
+	"《剑鱼标讯隐私政策》",
+	"《剑鱼标讯用户使用许可协议》"
+]
+},
+"tencentcloud": {
+"appid": "TIDAXUV9",
+"secretKey": "c7KJhtLMF805EeImBcOsoygu8KkdOrAfIaSU9SqAh8a2aiCgc69EfsaLM5EQcadF",
+"version": "1.0.0"
+},
+"termValidity": 3600,
+"uploadPath": "./web/staticres/jyapp/res/",
+"appConfig":{
+"pushGrpcServer":"192.168.20.114:5565",
+"pushGrpcHeartBeat":3
+},
+  "redisSessionLockSize":20,
+  "nsq":"192.168.3.240:4260",
   "nsq_topic": "jy_event",
-  "accountMergeOnline": "3333-03-30 00:00:00",
+  "accountMergeOnline":"3333-03-30 00:00:00",
   "bidSearchOldUserLimit": 1626105600,
   "contextOldVipLimit": 1664553600,
-  "firstBindPop": 3,
-  "maxBindPop": 8,
-  "bindPopRedis": "merge",
-  "phoneFilterFlag": true,
-  "optimalTime": "2021-08-03 12:00:00",
-  "criticality": 2,
+  "firstBindPop":3,
+  "maxBindPop":8,
+  "bindPopRedis":"merge",
+  "phoneFilterFlag":true,
+  "optimalTime":"2021-08-03 12:00:00",
+  "criticality":2,
   "canReadNotice": 3,
-  "namePrefix": "JY_%s",
-  "smsServiceRpc": "127.0.0.1:932",
+  "namePrefix":"JY_%s",
+  "smsServiceRpc":"127.0.0.1:932",
   "searchTypeSwitch": true,
-  "baseUserFilterFlag": true,
-  "userCenterApi": "https://web-zxl.jydev.jianyu360.com",
-  "freeProjectFocus": 10
+  "baseUserFilterFlag":true,
+  "userCenterApi":"https://web-zxl.jydev.jianyu360.com",
+  "freeProjectFocus": 10,
+  "detailMosaicTxt":"略",
+  "needMosaic":{
+    "projectname":true,
+    "projectcode":true,
+    "budget":true,
+    "bidamount":true,
+    "buyer":true,
+    "buyerperson":true,
+    "buyertel":true,
+    "buyeraddr":true,
+    "agency":true,
+    "agencyperson":true,
+    "agencytel":true,
+    "agencyaddr":true,
+    "winner":true,
+    "s_winner":true,
+    "winnerperson":true,
+    "winnertel":true,
+    "winneraddr":true,
+    "docstarttime":true,
+    "docendtime":true,
+    "bidendtime":true,
+    "bidstarttime":true,
+    "bidopentime":true,
+    "bidopenaddress":true,
+    "contractcode":true,
+    "signaturedate":true,
+    "purchasinglist":true,
+    "item":true,
+    "purchasing":true,
+    "itemname":true,
+    "brandname":true,
+    "specs":true,
+    "model":true,
+    "unitname":true,
+    "dimensions":true,
+    "number":true,
+    "unitprice":true,
+    "totalprice":true,
+    "guaranteetime":true,
+    "orderno":true,
+    "procurementlist":true,
+    "projectscope":true,
+    "reserved_amount":true,
+    "expurasingtime":true,
+    "winnerMap":true
+  }
 }

+ 6 - 7
src/jfw/modules/app/src/main.go

@@ -9,20 +9,17 @@ import (
 	_ "jy/src/jfw/modules/app/src/app/front"
 	"jy/src/jfw/modules/app/src/app/tag"
 	. "jy/src/jfw/modules/app/src/jfw/config"
+	_ "jy/src/jfw/modules/app/src/public"
 	"net/http"
-
-	util "app.yhyue.com/moapp/jybase/common"
-
-	"app.yhyue.com/moapp/jypkg/public"
-
 	"strings"
 	"time"
 
-	_ "jy/src/jfw/modules/app/src/public"
-
+	util "app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/jybase/fsw"
 	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
 	_ "app.yhyue.com/moapp/jypkg/common/src/qfw/util/jylog" //日志文件
+	"app.yhyue.com/moapp/jypkg/public"
 )
 
 func init() {
@@ -33,6 +30,8 @@ func main() {
 	//开启web
 	//限制全文检索查询
 	go public.InitLimitSearchText(true, Sysconfig)
+	//敏感词初始化
+	fsw.ReadFswDict()
 	active.Init()
 	//
 	mux1 := http.NewServeMux()

+ 8793 - 0
src/jfw/modules/app/src/mosaic_fsw.dict

@@ -0,0 +1,8793 @@
+北京
+北京市
+东城区
+西城区
+朝阳区
+丰台区
+石景山区
+海淀区
+门头沟区
+房山区
+通州区
+顺义区
+昌平区
+大兴区
+怀柔区
+平谷区
+密云区
+延庆区
+天津
+天津市
+和平区
+河东区
+河西区
+南开区
+河北区
+红桥区
+东丽区
+西青区
+津南区
+北辰区
+武清区
+宝坻区
+滨海新区
+宁河区
+静海区
+蓟州区
+河北
+石家庄市
+长安区
+桥西区
+新华区
+井陉矿区
+裕华区
+藁城区
+鹿泉区
+栾城区
+井陉县
+正定县
+行唐县
+灵寿县
+高邑县
+深泽县
+赞皇县
+无极县
+平山县
+元氏县
+赵县
+石家庄高新技术产业开发区
+石家庄循环化工园区
+辛集市
+晋州市
+新乐市
+唐山市
+路南区
+路北区
+古冶区
+开平区
+丰南区
+丰润区
+曹妃甸区
+滦南县
+乐亭县
+迁西县
+玉田县
+河北唐山芦台经济开发区
+唐山市汉沽管理区
+唐山高新技术产业开发区
+河北唐山海港经济开发区
+遵化市
+迁安市
+滦州市
+秦皇岛市
+海港区
+山海关区
+北戴河区
+抚宁区
+青龙满族自治县
+昌黎县
+卢龙县
+秦皇岛市经济技术开发区
+北戴河新区
+邯郸市
+邯山区
+丛台区
+复兴区
+峰峰矿区
+肥乡区
+永年区
+临漳县
+成安县
+大名县
+涉县
+磁县
+邱县
+鸡泽县
+广平县
+馆陶县
+魏县
+曲周县
+邯郸经济技术开发区
+邯郸冀南新区
+武安市
+邢台市
+襄都区
+信都区
+任泽区
+南和区
+临城县
+内丘县
+柏乡县
+隆尧县
+宁晋县
+巨鹿县
+新河县
+广宗县
+平乡县
+威县
+清河县
+临西县
+河北邢台经济开发区
+南宫市
+沙河市
+保定市
+竞秀区
+莲池区
+满城区
+清苑区
+徐水区
+涞水县
+阜平县
+定兴县
+唐县
+高阳县
+容城县
+涞源县
+望都县
+安新县
+易县
+曲阳县
+蠡县
+顺平县
+博野县
+雄县
+保定高新技术产业开发区
+保定白沟新城
+涿州市
+定州市
+安国市
+高碑店市
+张家口市
+桥东区
+宣化区
+下花园区
+万全区
+崇礼区
+张北县
+康保县
+沽源县
+尚义县
+蔚县
+阳原县
+怀安县
+怀来县
+涿鹿县
+赤城县
+张家口经济开发区
+张家口市察北管理区
+张家口市塞北管理区
+承德市
+双桥区
+双滦区
+鹰手营子矿区
+承德县
+兴隆县
+滦平县
+隆化县
+丰宁满族自治县
+宽城满族自治县
+围场满族蒙古族自治县
+承德高新技术产业开发区
+平泉市
+沧州市
+运河区
+沧县
+青县
+东光县
+海兴县
+盐山县
+肃宁县
+南皮县
+吴桥县
+献县
+孟村回族自治县
+河北沧州经济开发区
+沧州高新技术产业开发区
+沧州渤海新区
+泊头市
+任丘市
+黄骅市
+河间市
+廊坊市
+安次区
+广阳区
+固安县
+永清县
+香河县
+大城县
+文安县
+大厂回族自治县
+廊坊经济技术开发区
+霸州市
+三河市
+衡水市
+桃城区
+冀州区
+枣强县
+武邑县
+武强县
+饶阳县
+安平县
+故城县
+景县
+阜城县
+河北衡水高新技术产业开发区
+衡水滨湖新区
+深州市
+山西
+太原市
+小店区
+迎泽区
+杏花岭区
+尖草坪区
+万柏林区
+晋源区
+清徐县
+阳曲县
+娄烦县
+山西转型综合改革示范区
+古交市
+大同市
+新荣区
+平城区
+云冈区
+云州区
+阳高县
+天镇县
+广灵县
+灵丘县
+浑源县
+左云县
+山西大同经济开发区
+阳泉市
+城区
+矿区
+郊区
+平定县
+盂县
+长治市
+潞州区
+上党区
+屯留区
+潞城区
+襄垣县
+平顺县
+黎城县
+壶关县
+长子县
+武乡县
+沁县
+沁源县
+山西长治高新技术产业园区
+晋城市
+沁水县
+阳城县
+陵川县
+泽州县
+高平市
+朔州市
+朔城区
+平鲁区
+山阴县
+应县
+右玉县
+山西朔州经济开发区
+怀仁市
+晋中市
+榆次区
+太谷区
+榆社县
+左权县
+和顺县
+昔阳县
+寿阳县
+祁县
+平遥县
+灵石县
+介休市
+运城市
+盐湖区
+临猗县
+万荣县
+闻喜县
+稷山县
+新绛县
+绛县
+垣曲县
+夏县
+平陆县
+芮城县
+永济市
+河津市
+忻州市
+忻府区
+定襄县
+五台县
+代县
+繁峙县
+宁武县
+静乐县
+神池县
+五寨县
+岢岚县
+河曲县
+保德县
+偏关县
+五台山风景名胜区
+原平市
+临汾市
+尧都区
+曲沃县
+翼城县
+襄汾县
+洪洞县
+古县
+安泽县
+浮山县
+吉县
+乡宁县
+大宁县
+隰县
+永和县
+蒲县
+汾西县
+侯马市
+霍州市
+吕梁市
+离石区
+文水县
+交城县
+兴县
+临县
+柳林县
+石楼县
+岚县
+方山县
+中阳县
+交口县
+孝义市
+汾阳市
+内蒙古
+呼和浩特市
+新城区
+回民区
+玉泉区
+赛罕区
+土默特左旗
+托克托县
+和林格尔县
+清水河县
+武川县
+呼和浩特经济技术开发区
+包头市
+东河区
+昆都仑区
+青山区
+石拐区
+白云鄂博矿区
+九原区
+土默特右旗
+固阳县
+达尔罕茂明安联合旗
+包头稀土高新技术产业开发区
+乌海市
+海勃湾区
+海南区
+乌达区
+赤峰市
+红山区
+元宝山区
+松山区
+阿鲁科尔沁旗
+巴林左旗
+巴林右旗
+林西县
+克什克腾旗
+翁牛特旗
+喀喇沁旗
+宁城县
+敖汉旗
+通辽市
+科尔沁区
+科尔沁左翼中旗
+科尔沁左翼后旗
+开鲁县
+库伦旗
+奈曼旗
+扎鲁特旗
+通辽经济技术开发区
+霍林郭勒市
+鄂尔多斯市
+东胜区
+康巴什区
+达拉特旗
+准格尔旗
+鄂托克前旗
+鄂托克旗
+杭锦旗
+乌审旗
+伊金霍洛旗
+呼伦贝尔市
+海拉尔区
+扎赉诺尔区
+阿荣旗
+莫力达瓦达斡尔族自治旗
+鄂伦春自治旗
+鄂温克族自治旗
+陈巴尔虎旗
+新巴尔虎左旗
+新巴尔虎右旗
+满洲里市
+牙克石市
+扎兰屯市
+额尔古纳市
+根河市
+巴彦淖尔市
+临河区
+五原县
+磴口县
+乌拉特前旗
+乌拉特中旗
+乌拉特后旗
+杭锦后旗
+乌兰察布市
+集宁区
+卓资县
+化德县
+商都县
+兴和县
+凉城县
+察哈尔右翼前旗
+察哈尔右翼中旗
+察哈尔右翼后旗
+四子王旗
+丰镇市
+兴安盟
+乌兰浩特市
+阿尔山市
+科尔沁右翼前旗
+科尔沁右翼中旗
+扎赉特旗
+突泉县
+锡林郭勒盟
+二连浩特市
+锡林浩特市
+阿巴嘎旗
+苏尼特左旗
+苏尼特右旗
+东乌珠穆沁旗
+西乌珠穆沁旗
+太仆寺旗
+镶黄旗
+正镶白旗
+正蓝旗
+多伦县
+乌拉盖管委会
+阿拉善盟
+阿拉善左旗
+阿拉善右旗
+额济纳旗
+内蒙古阿拉善经济开发区
+辽宁
+沈阳市
+沈河区
+大东区
+皇姑区
+铁西区
+苏家屯区
+浑南区
+沈北新区
+于洪区
+辽中区
+康平县
+法库县
+新民市
+大连市
+中山区
+西岗区
+沙河口区
+甘井子区
+旅顺口区
+金州区
+普兰店区
+长海县
+瓦房店市
+庄河市
+鞍山市
+铁东区
+立山区
+千山区
+台安县
+岫岩满族自治县
+海城市
+抚顺市
+新抚区
+东洲区
+望花区
+顺城区
+抚顺县
+新宾满族自治县
+清原满族自治县
+本溪市
+平山区
+溪湖区
+明山区
+南芬区
+本溪满族自治县
+桓仁满族自治县
+丹东市
+元宝区
+振兴区
+振安区
+宽甸满族自治县
+东港市
+凤城市
+锦州市
+古塔区
+凌河区
+太和区
+黑山县
+义县
+凌海市
+北镇市
+营口市
+站前区
+西市区
+鲅鱼圈区
+老边区
+盖州市
+大石桥市
+阜新市
+海州区
+新邱区
+太平区
+清河门区
+细河区
+阜新蒙古族自治县
+彰武县
+辽阳市
+白塔区
+文圣区
+宏伟区
+弓长岭区
+太子河区
+辽阳县
+灯塔市
+盘锦市
+双台子区
+兴隆台区
+大洼区
+盘山县
+铁岭市
+银州区
+清河区
+铁岭县
+西丰县
+昌图县
+调兵山市
+开原市
+朝阳市
+双塔区
+龙城区
+朝阳县
+建平县
+喀喇沁左翼蒙古族自治县
+北票市
+凌源市
+葫芦岛市
+连山区
+龙港区
+南票区
+绥中县
+建昌县
+兴城市
+吉林
+长春市
+南关区
+宽城区
+二道区
+绿园区
+双阳区
+九台区
+农安县
+长春经济技术开发区
+长春净月高新技术产业开发区
+长春高新技术产业开发区
+长春汽车经济技术开发区
+榆树市
+德惠市
+公主岭市
+吉林市
+昌邑区
+龙潭区
+船营区
+丰满区
+永吉县
+吉林经济开发区
+吉林高新技术产业开发区
+吉林中国新加坡食品区
+蛟河市
+桦甸市
+舒兰市
+磐石市
+四平市
+梨树县
+伊通满族自治县
+双辽市
+辽源市
+龙山区
+西安区
+东丰县
+东辽县
+通化市
+东昌区
+二道江区
+通化县
+辉南县
+柳河县
+梅河口市
+集安市
+白山市
+浑江区
+江源区
+抚松县
+靖宇县
+长白朝鲜族自治县
+临江市
+松原市
+宁江区
+前郭尔罗斯蒙古族自治县
+长岭县
+乾安县
+吉林松原经济开发区
+扶余市
+白城市
+洮北区
+镇赉县
+通榆县
+吉林白城经济开发区
+洮南市
+大安市
+延边朝鲜族自治州
+延吉市
+图们市
+敦化市
+珲春市
+龙井市
+和龙市
+汪清县
+安图县
+黑龙江
+哈尔滨市
+道里区
+南岗区
+道外区
+平房区
+松北区
+香坊区
+呼兰区
+阿城区
+双城区
+依兰县
+方正县
+宾县
+巴彦县
+木兰县
+通河县
+延寿县
+尚志市
+五常市
+齐齐哈尔市
+龙沙区
+建华区
+铁锋区
+昂昂溪区
+富拉尔基区
+碾子山区
+梅里斯达斡尔族区
+龙江县
+依安县
+泰来县
+甘南县
+富裕县
+克山县
+克东县
+拜泉县
+讷河市
+鸡西市
+鸡冠区
+恒山区
+滴道区
+梨树区
+城子河区
+麻山区
+鸡东县
+虎林市
+密山市
+鹤岗市
+向阳区
+工农区
+南山区
+兴安区
+东山区
+兴山区
+萝北县
+绥滨县
+双鸭山市
+尖山区
+岭东区
+四方台区
+宝山区
+集贤县
+友谊县
+宝清县
+饶河县
+大庆市
+萨尔图区
+龙凤区
+让胡路区
+红岗区
+大同区
+肇州县
+肇源县
+林甸县
+杜尔伯特蒙古族自治县
+大庆高新技术产业开发区
+伊春市
+伊美区
+乌翠区
+友好区
+嘉荫县
+汤旺县
+丰林县
+大箐山县
+南岔县
+金林区
+铁力市
+佳木斯市
+前进区
+东风区
+桦南县
+桦川县
+汤原县
+同江市
+富锦市
+抚远市
+七台河市
+新兴区
+桃山区
+茄子河区
+勃利县
+牡丹江市
+东安区
+阳明区
+爱民区
+林口县
+牡丹江经济技术开发区
+绥芬河市
+海林市
+宁安市
+穆棱市
+东宁市
+黑河市
+爱辉区
+逊克县
+孙吴县
+北安市
+五大连池市
+嫩江市
+绥化市
+北林区
+望奎县
+兰西县
+青冈县
+庆安县
+明水县
+绥棱县
+安达市
+肇东市
+海伦市
+大兴安岭地区
+漠河市
+呼玛县
+塔河县
+加格达奇区
+松岭区
+新林区
+呼中区
+上海
+上海市
+黄浦区
+徐汇区
+长宁区
+静安区
+普陀区
+虹口区
+杨浦区
+闵行区
+嘉定区
+浦东新区
+金山区
+松江区
+青浦区
+奉贤区
+崇明区
+江苏
+南京市
+玄武区
+秦淮区
+建邺区
+鼓楼区
+浦口区
+栖霞区
+雨花台区
+江宁区
+六合区
+溧水区
+高淳区
+无锡市
+锡山区
+惠山区
+滨湖区
+梁溪区
+新吴区
+江阴市
+宜兴市
+徐州市
+云龙区
+贾汪区
+泉山区
+铜山区
+丰县
+沛县
+睢宁县
+徐州经济技术开发区
+新沂市
+邳州市
+常州市
+天宁区
+钟楼区
+新北区
+武进区
+金坛区
+溧阳市
+苏州市
+虎丘区
+吴中区
+相城区
+姑苏区
+吴江区
+苏州工业园区
+常熟市
+张家港市
+昆山市
+太仓市
+南通市
+崇川区
+港闸区
+如东县
+南通经济技术开发区
+启东市
+如皋市
+海门市
+海安市
+连云港市
+连云区
+赣榆区
+东海县
+灌云县
+灌南县
+连云港经济技术开发区
+连云港高新技术产业开发区
+淮安市
+淮安区
+淮阴区
+清江浦区
+洪泽区
+涟水县
+盱眙县
+金湖县
+淮安经济技术开发区
+盐城市
+亭湖区
+盐都区
+大丰区
+响水县
+滨海县
+阜宁县
+射阳县
+建湖县
+盐城经济技术开发区
+东台市
+扬州市
+广陵区
+邗江区
+江都区
+宝应县
+扬州经济技术开发区
+仪征市
+高邮市
+镇江市
+京口区
+润州区
+丹徒区
+镇江新区
+丹阳市
+扬中市
+句容市
+泰州市
+海陵区
+高港区
+姜堰区
+泰州医药高新技术产业开发区
+兴化市
+靖江市
+泰兴市
+宿迁市
+宿城区
+宿豫区
+沭阳县
+泗阳县
+泗洪县
+宿迁经济技术开发区
+浙江
+杭州市
+上城区
+下城区
+江干区
+拱墅区
+西湖区
+滨江区
+萧山区
+余杭区
+富阳区
+临安区
+桐庐县
+淳安县
+建德市
+宁波市
+海曙区
+江北区
+北仑区
+镇海区
+鄞州区
+奉化区
+象山县
+宁海县
+余姚市
+慈溪市
+温州市
+鹿城区
+龙湾区
+瓯海区
+洞头区
+永嘉县
+平阳县
+苍南县
+文成县
+泰顺县
+温州经济技术开发区
+瑞安市
+乐清市
+龙港市
+嘉兴市
+南湖区
+秀洲区
+嘉善县
+海盐县
+海宁市
+平湖市
+桐乡市
+湖州市
+吴兴区
+南浔区
+德清县
+长兴县
+安吉县
+绍兴市
+越城区
+柯桥区
+上虞区
+新昌县
+诸暨市
+嵊州市
+金华市
+婺城区
+金东区
+武义县
+浦江县
+磐安县
+兰溪市
+义乌市
+东阳市
+永康市
+衢州市
+柯城区
+衢江区
+常山县
+开化县
+龙游县
+江山市
+舟山市
+定海区
+岱山县
+嵊泗县
+台州市
+椒江区
+黄岩区
+路桥区
+三门县
+天台县
+仙居县
+温岭市
+临海市
+玉环市
+丽水市
+莲都区
+青田县
+缙云县
+遂昌县
+松阳县
+云和县
+庆元县
+景宁畲族自治县
+龙泉市
+安徽
+合肥市
+瑶海区
+庐阳区
+蜀山区
+包河区
+长丰县
+肥东县
+肥西县
+庐江县
+合肥高新技术产业开发区
+合肥经济技术开发区
+合肥新站高新技术产业开发区
+巢湖市
+芜湖市
+镜湖区
+弋江区
+鸠江区
+三山区
+芜湖县
+繁昌县
+南陵县
+芜湖经济技术开发区
+安徽芜湖长江大桥经济开发区
+无为市
+蚌埠市
+龙子湖区
+蚌山区
+禹会区
+淮上区
+怀远县
+五河县
+固镇县
+蚌埠市高新技术开发区
+蚌埠市经济开发区
+淮南市
+大通区
+田家庵区
+谢家集区
+八公山区
+潘集区
+凤台县
+寿县
+马鞍山市
+花山区
+雨山区
+博望区
+当涂县
+含山县
+和县
+淮北市
+杜集区
+相山区
+烈山区
+濉溪县
+铜陵市
+铜官区
+义安区
+枞阳县
+安庆市
+迎江区
+大观区
+宜秀区
+怀宁县
+太湖县
+宿松县
+望江县
+岳西县
+安徽安庆经济开发区
+桐城市
+潜山市
+黄山市
+屯溪区
+黄山区
+徽州区
+歙县
+休宁县
+黟县
+祁门县
+滁州市
+琅琊区
+南谯区
+来安县
+全椒县
+定远县
+凤阳县
+苏滁现代产业园
+滁州经济技术开发区
+天长市
+明光市
+阜阳市
+颍州区
+颍东区
+颍泉区
+临泉县
+太和县
+阜南县
+颍上县
+阜阳合肥现代产业园区
+阜阳经济技术开发区
+界首市
+宿州市
+埇桥区
+砀山县
+萧县
+灵璧县
+泗县
+宿州马鞍山现代产业园区
+宿州经济技术开发区
+六安市
+金安区
+裕安区
+叶集区
+霍邱县
+舒城县
+金寨县
+霍山县
+亳州市
+谯城区
+涡阳县
+蒙城县
+利辛县
+池州市
+贵池区
+东至县
+石台县
+青阳县
+宣城市
+宣州区
+郎溪县
+泾县
+绩溪县
+旌德县
+宣城市经济开发区
+宁国市
+广德市
+福建
+福州市
+台江区
+仓山区
+马尾区
+晋安区
+长乐区
+闽侯县
+连江县
+罗源县
+闽清县
+永泰县
+平潭县
+福清市
+厦门市
+思明区
+海沧区
+湖里区
+集美区
+同安区
+翔安区
+莆田市
+城厢区
+涵江区
+荔城区
+秀屿区
+仙游县
+三明市
+梅列区
+三元区
+明溪县
+清流县
+宁化县
+大田县
+尤溪县
+沙县
+将乐县
+泰宁县
+建宁县
+永安市
+泉州市
+鲤城区
+丰泽区
+洛江区
+泉港区
+惠安县
+安溪县
+永春县
+德化县
+金门县
+石狮市
+晋江市
+南安市
+漳州市
+芗城区
+龙文区
+云霄县
+漳浦县
+诏安县
+长泰县
+东山县
+南靖县
+平和县
+华安县
+龙海市
+南平市
+延平区
+建阳区
+顺昌县
+浦城县
+光泽县
+松溪县
+政和县
+邵武市
+武夷山市
+建瓯市
+龙岩市
+新罗区
+永定区
+长汀县
+上杭县
+武平县
+连城县
+漳平市
+宁德市
+蕉城区
+霞浦县
+古田县
+屏南县
+寿宁县
+周宁县
+柘荣县
+福安市
+福鼎市
+江西
+南昌市
+东湖区
+青云谱区
+青山湖区
+新建区
+红谷滩区
+南昌县
+安义县
+进贤县
+景德镇市
+昌江区
+珠山区
+浮梁县
+乐平市
+萍乡市
+安源区
+湘东区
+莲花县
+上栗县
+芦溪县
+九江市
+濂溪区
+浔阳区
+柴桑区
+武宁县
+修水县
+永修县
+德安县
+都昌县
+湖口县
+彭泽县
+瑞昌市
+共青城市
+庐山市
+新余市
+渝水区
+分宜县
+鹰潭市
+月湖区
+余江区
+贵溪市
+赣州市
+章贡区
+南康区
+赣县区
+信丰县
+大余县
+上犹县
+崇义县
+安远县
+定南县
+全南县
+宁都县
+于都县
+兴国县
+会昌县
+寻乌县
+石城县
+瑞金市
+龙南市
+吉安市
+吉州区
+青原区
+吉安县
+吉水县
+峡江县
+新干县
+永丰县
+泰和县
+遂川县
+万安县
+安福县
+永新县
+井冈山市
+宜春市
+袁州区
+奉新县
+万载县
+上高县
+宜丰县
+靖安县
+铜鼓县
+丰城市
+樟树市
+高安市
+抚州市
+临川区
+东乡区
+南城县
+黎川县
+南丰县
+崇仁县
+乐安县
+宜黄县
+金溪县
+资溪县
+广昌县
+上饶市
+信州区
+广丰区
+广信区
+玉山县
+铅山县
+横峰县
+弋阳县
+余干县
+鄱阳县
+万年县
+婺源县
+德兴市
+山东
+济南市
+历下区
+市中区
+槐荫区
+天桥区
+历城区
+长清区
+章丘区
+济阳区
+莱芜区
+钢城区
+平阴县
+商河县
+济南高新技术产业开发区
+青岛市
+市南区
+市北区
+黄岛区
+崂山区
+李沧区
+城阳区
+即墨区
+青岛高新技术产业开发区
+胶州市
+平度市
+莱西市
+淄博市
+淄川区
+张店区
+博山区
+临淄区
+周村区
+桓台县
+高青县
+沂源县
+枣庄市
+薛城区
+峄城区
+台儿庄区
+山亭区
+滕州市
+东营市
+东营区
+河口区
+垦利区
+利津县
+广饶县
+东营经济技术开发区
+东营港经济开发区
+烟台市
+芝罘区
+福山区
+牟平区
+莱山区
+蓬莱区
+烟台高新技术产业开发区
+烟台经济技术开发区
+龙口市
+莱阳市
+莱州市
+招远市
+栖霞市
+海阳市
+潍坊市
+潍城区
+寒亭区
+坊子区
+奎文区
+临朐县
+昌乐县
+潍坊滨海经济技术开发区
+青州市
+诸城市
+寿光市
+安丘市
+高密市
+昌邑市
+济宁市
+任城区
+兖州区
+微山县
+鱼台县
+金乡县
+嘉祥县
+汶上县
+泗水县
+梁山县
+济宁高新技术产业开发区
+曲阜市
+邹城市
+泰安市
+泰山区
+岱岳区
+宁阳县
+东平县
+新泰市
+肥城市
+威海市
+环翠区
+文登区
+威海火炬高技术产业开发区
+威海经济技术开发区
+威海临港经济技术开发区
+荣成市
+乳山市
+日照市
+东港区
+岚山区
+五莲县
+莒县
+日照经济技术开发区
+临沂市
+兰山区
+罗庄区
+沂南县
+郯城县
+沂水县
+兰陵县
+费县
+平邑县
+莒南县
+蒙阴县
+临沭县
+临沂高新技术产业开发区
+德州市
+德城区
+陵城区
+宁津县
+庆云县
+临邑县
+齐河县
+平原县
+夏津县
+武城县
+德州经济技术开发区
+德州运河经济开发区
+乐陵市
+禹城市
+聊城市
+东昌府区
+茌平区
+阳谷县
+莘县
+东阿县
+冠县
+高唐县
+临清市
+滨州市
+滨城区
+沾化区
+惠民县
+阳信县
+无棣县
+博兴县
+邹平市
+菏泽市
+牡丹区
+定陶区
+曹县
+单县
+成武县
+巨野县
+郓城县
+鄄城县
+东明县
+菏泽经济技术开发区
+菏泽高新技术开发区
+河南
+郑州市
+中原区
+二七区
+管城回族区
+金水区
+上街区
+惠济区
+中牟县
+郑州经济技术开发区
+郑州高新技术产业开发区
+郑州航空港经济综合实验区
+巩义市
+荥阳市
+新密市
+新郑市
+登封市
+开封市
+龙亭区
+顺河回族区
+禹王台区
+祥符区
+杞县
+通许县
+尉氏县
+兰考县
+洛阳市
+老城区
+西工区
+瀍河回族区
+涧西区
+吉利区
+洛龙区
+孟津县
+新安县
+栾川县
+嵩县
+汝阳县
+宜阳县
+洛宁县
+伊川县
+洛阳高新技术产业开发区
+偃师市
+平顶山市
+卫东区
+石龙区
+湛河区
+宝丰县
+叶县
+鲁山县
+郏县
+平顶山高新技术产业开发区
+平顶山市城乡一体化示范区
+舞钢市
+汝州市
+安阳市
+文峰区
+北关区
+殷都区
+龙安区
+安阳县
+汤阴县
+滑县
+内黄县
+安阳高新技术产业开发区
+林州市
+鹤壁市
+鹤山区
+山城区
+淇滨区
+浚县
+淇县
+鹤壁经济技术开发区
+新乡市
+红旗区
+卫滨区
+凤泉区
+牧野区
+新乡县
+获嘉县
+原阳县
+延津县
+封丘县
+新乡高新技术产业开发区
+新乡经济技术开发区
+新乡市平原城乡一体化示范区
+卫辉市
+辉县市
+长垣市
+焦作市
+解放区
+中站区
+马村区
+山阳区
+修武县
+博爱县
+武陟县
+温县
+焦作城乡一体化示范区
+沁阳市
+孟州市
+濮阳市
+华龙区
+清丰县
+南乐县
+范县
+台前县
+濮阳县
+河南濮阳工业园区
+濮阳经济技术开发区
+许昌市
+魏都区
+建安区
+鄢陵县
+襄城县
+许昌经济技术开发区
+禹州市
+长葛市
+漯河市
+源汇区
+郾城区
+召陵区
+舞阳县
+临颍县
+漯河经济技术开发区
+三门峡市
+湖滨区
+陕州区
+渑池县
+卢氏县
+河南三门峡经济开发区
+义马市
+灵宝市
+南阳市
+宛城区
+卧龙区
+南召县
+方城县
+西峡县
+镇平县
+内乡县
+淅川县
+社旗县
+唐河县
+新野县
+桐柏县
+南阳高新技术产业开发区
+南阳市城乡一体化示范区
+邓州市
+商丘市
+梁园区
+睢阳区
+民权县
+睢县
+宁陵县
+柘城县
+虞城县
+夏邑县
+豫东综合物流产业聚集区
+河南商丘经济开发区
+永城市
+信阳市
+浉河区
+平桥区
+罗山县
+光山县
+新县
+商城县
+固始县
+潢川县
+淮滨县
+息县
+信阳高新技术产业开发区
+周口市
+川汇区
+淮阳区
+扶沟县
+西华县
+商水县
+沈丘县
+郸城县
+太康县
+鹿邑县
+河南周口经济开发区
+项城市
+驻马店市
+驿城区
+西平县
+上蔡县
+平舆县
+正阳县
+确山县
+泌阳县
+汝南县
+遂平县
+新蔡县
+河南驻马店经济开发区
+济源市
+湖北
+武汉市
+江岸区
+江汉区
+硚口区
+汉阳区
+武昌区
+洪山区
+东西湖区
+汉南区
+蔡甸区
+江夏区
+黄陂区
+新洲区
+黄石市
+黄石港区
+西塞山区
+下陆区
+铁山区
+阳新县
+大冶市
+十堰市
+茅箭区
+张湾区
+郧阳区
+郧西县
+竹山县
+竹溪县
+房县
+丹江口市
+宜昌市
+西陵区
+伍家岗区
+点军区
+猇亭区
+夷陵区
+远安县
+兴山县
+秭归县
+长阳土家族自治县
+五峰土家族自治县
+宜都市
+当阳市
+枝江市
+襄阳市
+襄城区
+樊城区
+襄州区
+南漳县
+谷城县
+保康县
+老河口市
+枣阳市
+宜城市
+鄂州市
+梁子湖区
+华容区
+鄂城区
+荆门市
+东宝区
+掇刀区
+沙洋县
+钟祥市
+京山市
+孝感市
+孝南区
+孝昌县
+大悟县
+云梦县
+应城市
+安陆市
+汉川市
+荆州市
+沙市区
+荆州区
+公安县
+监利县
+江陵县
+荆州经济技术开发区
+石首市
+洪湖市
+松滋市
+黄冈市
+黄州区
+团风县
+红安县
+罗田县
+英山县
+浠水县
+蕲春县
+黄梅县
+龙感湖管理区
+麻城市
+武穴市
+咸宁市
+咸安区
+嘉鱼县
+通城县
+崇阳县
+通山县
+赤壁市
+随州市
+曾都区
+随县
+广水市
+恩施土家族苗族自治州
+恩施市
+利川市
+建始县
+巴东县
+宣恩县
+咸丰县
+来凤县
+鹤峰县
+仙桃市
+潜江市
+天门市
+神农架林区
+湖南
+长沙市
+芙蓉区
+天心区
+岳麓区
+开福区
+雨花区
+望城区
+长沙县
+浏阳市
+宁乡市
+株洲市
+荷塘区
+芦淞区
+石峰区
+天元区
+渌口区
+攸县
+茶陵县
+炎陵县
+云龙示范区
+醴陵市
+湘潭市
+雨湖区
+岳塘区
+湘潭县
+湖南湘潭高新技术产业园区
+湘潭昭山示范区
+湘潭九华示范区
+湘乡市
+韶山市
+衡阳市
+珠晖区
+雁峰区
+石鼓区
+蒸湘区
+南岳区
+衡阳县
+衡南县
+衡山县
+衡东县
+祁东县
+衡阳综合保税区
+湖南衡阳高新技术产业园区
+湖南衡阳松木经济开发区
+耒阳市
+常宁市
+邵阳市
+双清区
+大祥区
+北塔区
+新邵县
+邵阳县
+隆回县
+洞口县
+绥宁县
+新宁县
+城步苗族自治县
+武冈市
+邵东市
+岳阳市
+岳阳楼区
+云溪区
+君山区
+岳阳县
+华容县
+湘阴县
+平江县
+岳阳市屈原管理区
+汨罗市
+临湘市
+常德市
+武陵区
+鼎城区
+安乡县
+汉寿县
+澧县
+临澧县
+桃源县
+石门县
+常德市西洞庭管理区
+津市市
+张家界市
+武陵源区
+慈利县
+桑植县
+益阳市
+资阳区
+赫山区
+南县
+桃江县
+安化县
+益阳市大通湖管理区
+湖南益阳高新技术产业园区
+沅江市
+郴州市
+北湖区
+苏仙区
+桂阳县
+宜章县
+永兴县
+嘉禾县
+临武县
+汝城县
+桂东县
+安仁县
+资兴市
+永州市
+零陵区
+冷水滩区
+祁阳县
+东安县
+双牌县
+道县
+江永县
+宁远县
+蓝山县
+新田县
+江华瑶族自治县
+永州经济技术开发区
+永州市金洞管理区
+永州市回龙圩管理区
+怀化市
+鹤城区
+中方县
+沅陵县
+辰溪县
+溆浦县
+会同县
+麻阳苗族自治县
+新晃侗族自治县
+芷江侗族自治县
+靖州苗族侗族自治县
+通道侗族自治县
+怀化市洪江管理区
+洪江市
+娄底市
+娄星区
+双峰县
+新化县
+冷水江市
+涟源市
+湘西土家族苗族自治州
+吉首市
+泸溪县
+凤凰县
+花垣县
+保靖县
+古丈县
+永顺县
+龙山县
+广东
+广州市
+荔湾区
+越秀区
+海珠区
+天河区
+白云区
+黄埔区
+番禺区
+花都区
+南沙区
+从化区
+增城区
+韶关市
+武江区
+浈江区
+曲江区
+始兴县
+仁化县
+翁源县
+乳源瑶族自治县
+新丰县
+乐昌市
+南雄市
+深圳市
+罗湖区
+福田区
+宝安区
+龙岗区
+盐田区
+龙华区
+坪山区
+光明区
+珠海市
+香洲区
+斗门区
+金湾区
+汕头市
+龙湖区
+金平区
+濠江区
+潮阳区
+潮南区
+澄海区
+南澳县
+佛山市
+禅城区
+南海区
+顺德区
+三水区
+高明区
+江门市
+蓬江区
+江海区
+新会区
+台山市
+开平市
+鹤山市
+恩平市
+湛江市
+赤坎区
+霞山区
+坡头区
+麻章区
+遂溪县
+徐闻县
+廉江市
+雷州市
+吴川市
+茂名市
+茂南区
+电白区
+高州市
+化州市
+信宜市
+肇庆市
+端州区
+鼎湖区
+高要区
+广宁县
+怀集县
+封开县
+德庆县
+四会市
+惠州市
+惠城区
+惠阳区
+博罗县
+惠东县
+龙门县
+梅州市
+梅江区
+梅县区
+大埔县
+丰顺县
+五华县
+平远县
+蕉岭县
+兴宁市
+汕尾市
+海丰县
+陆河县
+陆丰市
+河源市
+源城区
+紫金县
+龙川县
+连平县
+和平县
+东源县
+阳江市
+江城区
+阳东区
+阳西县
+阳春市
+清远市
+清城区
+清新区
+佛冈县
+阳山县
+连山壮族瑶族自治县
+连南瑶族自治县
+英德市
+连州市
+东莞市
+中山市
+潮州市
+湘桥区
+潮安区
+饶平县
+揭阳市
+榕城区
+揭东区
+揭西县
+惠来县
+普宁市
+云浮市
+云城区
+云安区
+新兴县
+郁南县
+罗定市
+广西
+南宁市
+兴宁区
+青秀区
+江南区
+西乡塘区
+良庆区
+邕宁区
+武鸣区
+隆安县
+马山县
+上林县
+宾阳县
+横县
+柳州市
+城中区
+鱼峰区
+柳南区
+柳北区
+柳江区
+柳城县
+鹿寨县
+融安县
+融水苗族自治县
+三江侗族自治县
+桂林市
+秀峰区
+叠彩区
+象山区
+七星区
+雁山区
+临桂区
+阳朔县
+灵川县
+全州县
+兴安县
+永福县
+灌阳县
+龙胜各族自治县
+资源县
+平乐县
+恭城瑶族自治县
+荔浦市
+梧州市
+万秀区
+长洲区
+龙圩区
+苍梧县
+藤县
+蒙山县
+岑溪市
+北海市
+海城区
+银海区
+铁山港区
+合浦县
+防城港市
+港口区
+防城区
+上思县
+东兴市
+钦州市
+钦南区
+钦北区
+灵山县
+浦北县
+贵港市
+港北区
+港南区
+覃塘区
+平南县
+桂平市
+玉林市
+玉州区
+福绵区
+容县
+陆川县
+博白县
+兴业县
+北流市
+百色市
+右江区
+田阳区
+田东县
+德保县
+那坡县
+凌云县
+乐业县
+田林县
+西林县
+隆林各族自治县
+靖西市
+平果市
+贺州市
+八步区
+平桂区
+昭平县
+钟山县
+富川瑶族自治县
+河池市
+金城江区
+宜州区
+南丹县
+天峨县
+凤山县
+东兰县
+罗城仫佬族自治县
+环江毛南族自治县
+巴马瑶族自治县
+都安瑶族自治县
+大化瑶族自治县
+来宾市
+兴宾区
+忻城县
+象州县
+武宣县
+金秀瑶族自治县
+合山市
+崇左市
+江州区
+扶绥县
+宁明县
+龙州县
+大新县
+天等县
+凭祥市
+海南
+海口市
+秀英区
+琼山区
+美兰区
+三亚市
+海棠区
+吉阳区
+天涯区
+崖州区
+三沙市
+西沙群岛
+南沙群岛
+中沙群岛的岛礁及其海域
+儋州市
+五指山市
+琼海市
+文昌市
+万宁市
+东方市
+定安县
+屯昌县
+澄迈县
+临高县
+白沙黎族自治县
+昌江黎族自治县
+乐东黎族自治县
+陵水黎族自治县
+保亭黎族苗族自治县
+琼中黎族苗族自治县
+重庆
+重庆市
+万州区
+涪陵区
+渝中区
+大渡口区
+沙坪坝区
+九龙坡区
+南岸区
+北碚区
+綦江区
+大足区
+渝北区
+巴南区
+黔江区
+长寿区
+江津区
+合川区
+永川区
+南川区
+璧山区
+铜梁区
+潼南区
+荣昌区
+开州区
+梁平区
+武隆区
+城口县
+丰都县
+垫江县
+忠县
+云阳县
+奉节县
+巫山县
+巫溪县
+石柱土家族自治县
+秀山土家族苗族自治县
+酉阳土家族苗族自治县
+彭水苗族土家族自治县
+四川
+成都市
+锦江区
+青羊区
+金牛区
+武侯区
+成华区
+龙泉驿区
+青白江区
+新都区
+温江区
+双流区
+郫都区
+新津区
+金堂县
+大邑县
+蒲江县
+都江堰市
+彭州市
+邛崃市
+崇州市
+简阳市
+自贡市
+自流井区
+贡井区
+大安区
+沿滩区
+荣县
+富顺县
+攀枝花市
+东区
+西区
+仁和区
+米易县
+盐边县
+泸州市
+江阳区
+纳溪区
+龙马潭区
+泸县
+合江县
+叙永县
+古蔺县
+德阳市
+旌阳区
+罗江区
+中江县
+广汉市
+什邡市
+绵竹市
+绵阳市
+涪城区
+游仙区
+安州区
+三台县
+盐亭县
+梓潼县
+北川羌族自治县
+平武县
+江油市
+广元市
+利州区
+昭化区
+朝天区
+旺苍县
+青川县
+剑阁县
+苍溪县
+遂宁市
+船山区
+安居区
+蓬溪县
+大英县
+射洪市
+内江市
+东兴区
+威远县
+资中县
+内江经济开发区
+隆昌市
+乐山市
+沙湾区
+五通桥区
+金口河区
+犍为县
+井研县
+夹江县
+沐川县
+峨边彝族自治县
+马边彝族自治县
+峨眉山市
+南充市
+顺庆区
+高坪区
+嘉陵区
+南部县
+营山县
+蓬安县
+仪陇县
+西充县
+阆中市
+眉山市
+东坡区
+彭山区
+仁寿县
+洪雅县
+丹棱县
+青神县
+宜宾市
+翠屏区
+南溪区
+叙州区
+江安县
+长宁县
+高县
+珙县
+筠连县
+兴文县
+屏山县
+广安市
+广安区
+前锋区
+岳池县
+武胜县
+邻水县
+华蓥市
+达州市
+通川区
+达川区
+宣汉县
+开江县
+大竹县
+渠县
+达州经济开发区
+万源市
+雅安市
+雨城区
+名山区
+荥经县
+汉源县
+石棉县
+天全县
+芦山县
+宝兴县
+巴中市
+巴州区
+恩阳区
+通江县
+南江县
+平昌县
+巴中经济开发区
+资阳市
+雁江区
+安岳县
+乐至县
+阿坝藏族羌族自治州
+马尔康市
+汶川县
+理县
+茂县
+松潘县
+九寨沟县
+金川县
+小金县
+黑水县
+壤塘县
+阿坝县
+若尔盖县
+红原县
+甘孜藏族自治州
+康定市
+泸定县
+丹巴县
+九龙县
+雅江县
+道孚县
+炉霍县
+甘孜县
+新龙县
+德格县
+白玉县
+石渠县
+色达县
+理塘县
+巴塘县
+乡城县
+稻城县
+得荣县
+凉山彝族自治州
+西昌市
+木里藏族自治县
+盐源县
+德昌县
+会理县
+会东县
+宁南县
+普格县
+布拖县
+金阳县
+昭觉县
+喜德县
+冕宁县
+越西县
+甘洛县
+美姑县
+雷波县
+贵州
+贵阳市
+南明区
+云岩区
+花溪区
+乌当区
+观山湖区
+开阳县
+息烽县
+修文县
+清镇市
+六盘水市
+钟山区
+六枝特区
+水城县
+盘州市
+遵义市
+红花岗区
+汇川区
+播州区
+桐梓县
+绥阳县
+正安县
+道真仡佬族苗族自治县
+务川仡佬族苗族自治县
+凤冈县
+湄潭县
+余庆县
+习水县
+赤水市
+仁怀市
+安顺市
+西秀区
+平坝区
+普定县
+镇宁布依族苗族自治县
+关岭布依族苗族自治县
+紫云苗族布依族自治县
+毕节市
+七星关区
+大方县
+黔西县
+金沙县
+织金县
+纳雍县
+威宁彝族回族苗族自治县
+赫章县
+铜仁市
+碧江区
+万山区
+江口县
+玉屏侗族自治县
+石阡县
+思南县
+印江土家族苗族自治县
+德江县
+沿河土家族自治县
+松桃苗族自治县
+黔西南布依族苗族自治州
+兴义市
+兴仁市
+普安县
+晴隆县
+贞丰县
+望谟县
+册亨县
+安龙县
+黔东南苗族侗族自治州
+凯里市
+黄平县
+施秉县
+三穗县
+镇远县
+岑巩县
+天柱县
+锦屏县
+剑河县
+台江县
+黎平县
+榕江县
+从江县
+雷山县
+麻江县
+丹寨县
+黔南布依族苗族自治州
+都匀市
+福泉市
+荔波县
+贵定县
+瓮安县
+独山县
+平塘县
+罗甸县
+长顺县
+龙里县
+惠水县
+三都水族自治县
+云南
+昆明市
+五华区
+盘龙区
+官渡区
+西山区
+东川区
+呈贡区
+晋宁区
+富民县
+宜良县
+石林彝族自治县
+嵩明县
+禄劝彝族苗族自治县
+寻甸回族彝族自治县
+安宁市
+曲靖市
+麒麟区
+沾益区
+马龙区
+陆良县
+师宗县
+罗平县
+富源县
+会泽县
+宣威市
+玉溪市
+红塔区
+江川区
+通海县
+华宁县
+易门县
+峨山彝族自治县
+新平彝族傣族自治县
+元江哈尼族彝族傣族自治县
+澄江市
+保山市
+隆阳区
+施甸县
+龙陵县
+昌宁县
+腾冲市
+昭通市
+昭阳区
+鲁甸县
+巧家县
+盐津县
+大关县
+永善县
+绥江县
+镇雄县
+彝良县
+威信县
+水富市
+丽江市
+古城区
+玉龙纳西族自治县
+永胜县
+华坪县
+宁蒗彝族自治县
+普洱市
+思茅区
+宁洱哈尼族彝族自治县
+墨江哈尼族自治县
+景东彝族自治县
+景谷傣族彝族自治县
+镇沅彝族哈尼族拉祜族自治县
+江城哈尼族彝族自治县
+孟连傣族拉祜族佤族自治县
+澜沧拉祜族自治县
+西盟佤族自治县
+临沧市
+临翔区
+凤庆县
+云县
+永德县
+镇康县
+双江拉祜族佤族布朗族傣族自治县
+耿马傣族佤族自治县
+沧源佤族自治县
+楚雄彝族自治州
+楚雄市
+双柏县
+牟定县
+南华县
+姚安县
+大姚县
+永仁县
+元谋县
+武定县
+禄丰县
+红河哈尼族彝族自治州
+个旧市
+开远市
+蒙自市
+弥勒市
+屏边苗族自治县
+建水县
+石屏县
+泸西县
+元阳县
+红河县
+金平苗族瑶族傣族自治县
+绿春县
+河口瑶族自治县
+文山壮族苗族自治州
+文山市
+砚山县
+西畴县
+麻栗坡县
+马关县
+丘北县
+广南县
+富宁县
+西双版纳傣族自治州
+景洪市
+勐海县
+勐腊县
+大理白族自治州
+大理市
+漾濞彝族自治县
+祥云县
+宾川县
+弥渡县
+南涧彝族自治县
+巍山彝族回族自治县
+永平县
+云龙县
+洱源县
+剑川县
+鹤庆县
+德宏傣族景颇族自治州
+瑞丽市
+芒市
+梁河县
+盈江县
+陇川县
+怒江傈僳族自治州
+泸水市
+福贡县
+贡山独龙族怒族自治县
+兰坪白族普米族自治县
+迪庆藏族自治州
+香格里拉市
+德钦县
+维西傈僳族自治县
+西藏
+拉萨市
+城关区
+堆龙德庆区
+达孜区
+林周县
+当雄县
+尼木县
+曲水县
+墨竹工卡县
+格尔木藏青工业园区
+拉萨经济技术开发区
+西藏文化旅游创意园区
+达孜工业园区
+日喀则市
+桑珠孜区
+南木林县
+江孜县
+定日县
+萨迦县
+拉孜县
+昂仁县
+谢通门县
+白朗县
+仁布县
+康马县
+定结县
+仲巴县
+亚东县
+吉隆县
+聂拉木县
+萨嘎县
+岗巴县
+昌都市
+卡若区
+江达县
+贡觉县
+类乌齐县
+丁青县
+察雅县
+八宿县
+左贡县
+芒康县
+洛隆县
+边坝县
+林芝市
+巴宜区
+工布江达县
+米林县
+墨脱县
+波密县
+察隅县
+朗县
+山南市
+乃东区
+扎囊县
+贡嘎县
+桑日县
+琼结县
+曲松县
+措美县
+洛扎县
+加查县
+隆子县
+错那县
+浪卡子县
+那曲市
+色尼区
+嘉黎县
+比如县
+聂荣县
+安多县
+申扎县
+索县
+班戈县
+巴青县
+尼玛县
+双湖县
+阿里地区
+普兰县
+札达县
+噶尔县
+日土县
+革吉县
+改则县
+措勤县
+陕西
+西安市
+碑林区
+莲湖区
+灞桥区
+未央区
+雁塔区
+阎良区
+临潼区
+高陵区
+鄠邑区
+蓝田县
+周至县
+铜川市
+王益区
+印台区
+耀州区
+宜君县
+宝鸡市
+渭滨区
+金台区
+陈仓区
+凤翔县
+岐山县
+扶风县
+眉县
+陇县
+千阳县
+麟游县
+凤县
+太白县
+咸阳市
+秦都区
+杨陵区
+渭城区
+三原县
+泾阳县
+乾县
+礼泉县
+永寿县
+长武县
+旬邑县
+淳化县
+武功县
+兴平市
+彬州市
+渭南市
+临渭区
+华州区
+潼关县
+大荔县
+合阳县
+澄城县
+蒲城县
+白水县
+富平县
+韩城市
+华阴市
+延安市
+宝塔区
+安塞区
+延长县
+延川县
+志丹县
+吴起县
+甘泉县
+富县
+洛川县
+宜川县
+黄龙县
+黄陵县
+子长市
+汉中市
+汉台区
+南郑区
+城固县
+洋县
+西乡县
+勉县
+宁强县
+略阳县
+镇巴县
+留坝县
+佛坪县
+榆林市
+榆阳区
+横山区
+府谷县
+靖边县
+定边县
+绥德县
+米脂县
+佳县
+吴堡县
+清涧县
+子洲县
+神木市
+安康市
+汉滨区
+汉阴县
+石泉县
+宁陕县
+紫阳县
+岚皋县
+平利县
+镇坪县
+旬阳县
+白河县
+商洛市
+商州区
+洛南县
+丹凤县
+商南县
+山阳县
+镇安县
+柞水县
+甘肃
+兰州市
+七里河区
+西固区
+安宁区
+红古区
+永登县
+皋兰县
+榆中县
+兰州新区
+嘉峪关市
+金昌市
+金川区
+永昌县
+白银市
+白银区
+平川区
+靖远县
+会宁县
+景泰县
+天水市
+秦州区
+麦积区
+清水县
+秦安县
+甘谷县
+武山县
+张家川回族自治县
+武威市
+凉州区
+民勤县
+古浪县
+天祝藏族自治县
+张掖市
+甘州区
+肃南裕固族自治县
+民乐县
+临泽县
+高台县
+山丹县
+平凉市
+崆峒区
+泾川县
+灵台县
+崇信县
+庄浪县
+静宁县
+华亭市
+酒泉市
+肃州区
+金塔县
+瓜州县
+肃北蒙古族自治县
+阿克塞哈萨克族自治县
+玉门市
+敦煌市
+庆阳市
+西峰区
+庆城县
+环县
+华池县
+合水县
+正宁县
+宁县
+镇原县
+定西市
+安定区
+通渭县
+陇西县
+渭源县
+临洮县
+漳县
+岷县
+陇南市
+武都区
+成县
+文县
+宕昌县
+康县
+西和县
+礼县
+徽县
+两当县
+临夏回族自治州
+临夏市
+临夏县
+康乐县
+永靖县
+广河县
+和政县
+东乡族自治县
+积石山保安族东乡族撒拉族自治县
+甘南藏族自治州
+合作市
+临潭县
+卓尼县
+舟曲县
+迭部县
+玛曲县
+碌曲县
+夏河县
+青海
+西宁市
+城东区
+城西区
+城北区
+湟中区
+大通回族土族自治县
+湟源县
+海东市
+乐都区
+平安区
+民和回族土族自治县
+互助土族自治县
+化隆回族自治县
+循化撒拉族自治县
+海北藏族自治州
+门源回族自治县
+祁连县
+海晏县
+刚察县
+黄南藏族自治州
+同仁县
+尖扎县
+泽库县
+河南蒙古族自治县
+海南藏族自治州
+共和县
+同德县
+贵德县
+兴海县
+贵南县
+果洛藏族自治州
+玛沁县
+班玛县
+甘德县
+达日县
+久治县
+玛多县
+玉树藏族自治州
+玉树市
+杂多县
+称多县
+治多县
+囊谦县
+曲麻莱县
+海西蒙古族藏族自治州
+格尔木市
+德令哈市
+茫崖市
+乌兰县
+都兰县
+天峻县
+大柴旦行政委员会
+宁夏
+银川市
+兴庆区
+西夏区
+金凤区
+永宁县
+贺兰县
+灵武市
+石嘴山市
+大武口区
+惠农区
+平罗县
+吴忠市
+利通区
+红寺堡区
+盐池县
+同心县
+青铜峡市
+固原市
+原州区
+西吉县
+隆德县
+泾源县
+彭阳县
+中卫市
+沙坡头区
+中宁县
+海原县
+新疆
+乌鲁木齐市
+天山区
+沙依巴克区
+新市区
+水磨沟区
+头屯河区
+达坂城区
+米东区
+乌鲁木齐县
+克拉玛依市
+独山子区
+克拉玛依区
+白碱滩区
+乌尔禾区
+吐鲁番市
+高昌区
+鄯善县
+托克逊县
+哈密市
+伊州区
+巴里坤哈萨克自治县
+伊吾县
+昌吉回族自治州
+昌吉市
+阜康市
+呼图壁县
+玛纳斯县
+奇台县
+吉木萨尔县
+木垒哈萨克自治县
+博尔塔拉蒙古自治州
+博乐市
+阿拉山口市
+精河县
+温泉县
+巴音郭楞蒙古自治州
+库尔勒市
+轮台县
+尉犁县
+若羌县
+且末县
+焉耆回族自治县
+和静县
+和硕县
+博湖县
+库尔勒经济技术开发区
+阿克苏地区
+阿克苏市
+库车市
+温宿县
+沙雅县
+新和县
+拜城县
+乌什县
+阿瓦提县
+柯坪县
+克孜勒苏柯尔克孜自治州
+阿图什市
+阿克陶县
+阿合奇县
+乌恰县
+喀什地区
+喀什市
+疏附县
+疏勒县
+英吉沙县
+泽普县
+莎车县
+叶城县
+麦盖提县
+岳普湖县
+伽师县
+巴楚县
+塔什库尔干塔吉克自治县
+和田地区
+和田市
+和田县
+墨玉县
+皮山县
+洛浦县
+策勒县
+于田县
+民丰县
+伊犁哈萨克自治州
+伊宁市
+奎屯市
+霍尔果斯市
+伊宁县
+察布查尔锡伯自治县
+霍城县
+巩留县
+新源县
+昭苏县
+特克斯县
+尼勒克县
+塔城地区
+塔城市
+乌苏市
+额敏县
+沙湾县
+托里县
+裕民县
+和布克赛尔蒙古自治县
+阿勒泰地区
+阿勒泰市
+布尔津县
+富蕴县
+福海县
+哈巴河县
+青河县
+吉木乃县
+石河子市
+阿拉尔市
+图木舒克市
+五家渠市
+北屯市
+铁门关市
+双河市
+可克达拉市
+昆玉市
+胡杨河市
+应急指挥中心
+国家森林草原防灭火指挥部
+国家森林防火指挥部
+国家防汛抗旱总指挥部
+防汛抗旱司
+抗震救灾指挥部
+国家减灾委员会
+武装警察部队森林部队
+武警森林部队
+武警森林指挥部
+煤矿安全监察局
+森林消防局
+应急管理部
+应急救援大队
+风险监测和综合减灾司
+救援协调和预案管理局
+火灾防治管理司
+地震和地质灾害救援司
+危险化学品安全监督管理司
+安全生产基础司
+安全生产执法局
+安全生产综合协调司
+救灾和物资保障司
+国际合作和救援司
+国家安全生产应急救援中心
+地震预测研究所
+应急通信保障大队
+应急车辆勤务大队
+矿山救援中心
+防灾科技学院
+防震减灾科技交流培训中心
+防震减灾科普教育基地
+森林草原防火保障中心
+草原防火指挥部
+草原防火办公室
+森林草原防火办
+森林草原防火预警监测中心
+草原防火指挥中心
+森林草原防火站
+森林草原防扑火专业队
+森林草原防火办办公室
+森林草原防火中标办公室
+森林草原防火指挥办公室
+森林草原防火司
+城市应急联动中心
+消防总队
+消防支队
+消防大队
+消防办公室
+消防局
+消防队
+消防救援局
+消防中队
+减灾救灾应急指挥中心
+救灾减灾中心
+减灾救灾中心
+救灾物资储备站
+救助安置中心
+社会救助安置中心
+救灾物资仓储中心
+减灾备灾中心
+救灾物资储备中心
+救助站
+救灾服务中心
+森林草原防火办公室
+森林防火预警
+地质灾害防治中心
+抗旱
+防洪排涝管理站
+排涝站
+地震应急搜救中心
+地震局
+地震台
+地震灾害防御中心
+地震监测中心
+地震勘测研究中心
+地震
+防震办公室
+防震减灾局
+防震减灾办公室
+安全生产监督管理总局
+安全生产监督管理局
+安监局
+煤矿安全生产
+安全生产监督管理
+安全生产宣传教育中心
+安全生产应急救援指挥中心
+煤炭生产安全管理局
+安全生产监督
+安全监督管理局
+安全生产监管局
+安全生产监督执法支队
+安全生产执法监察总队
+安全生产执法总队
+安全监察执法大队
+安全生产监察执法支队
+应急办
+应急管理办公室
+应急管理厅
+应急管理局
+移民管理局
+外国人管理司
+移民事务服务中心
+移民局
+公民出入境管理司
+边防检查管理司
+出入境管理信息技术研究所
+移民事务国际合作司
+经济犯罪侦查大队
+社会组织管理局
+社会组织执法监督局
+社会组织服务中心
+社会救助司
+社会救助中心
+社会救助事业局
+社会救助管理服务中心
+社会救助工作管理局
+社会救助福利服务中心
+社会救助管理中心
+社会救助办公室
+社会救助服务中心
+社会救助事业中心
+社会救助家庭经济状况核对中心
+社会救助家庭经济状况信息核对中心
+社会救助管理办公室
+社会救助处
+社会救助帮扶中心
+社会救助办
+社区治理司
+区划地名司
+区划地名办公室
+区划地名管理办公室
+区划地名管理处
+区划地名服务中心
+社会事务司
+生活无着人员救助管理处
+婚姻收养管理处
+养老服务司
+儿童福利司
+儿童福利指导中心
+中国儿童福利和收养中心
+儿童福利中心
+慈善事业促进和社会工作司
+慈善事业促进办公室
+慈善事业发展中心
+慈善事业和志愿服务促进中心
+慈善事业发展服务中心
+慈善事业服务指导中心
+彩票发行中心
+社会福利有奖募捐彩票发行中心
+社会工作司
+社会捐助处
+社会捐助工作中心
+社会捐助接收站
+社会捐助事务中心
+社会捐助事务管理中心
+社会捐助物资管理服务中心
+社会捐助接收工作站
+社会捐助接收管理服务中心
+社会捐助接受工作站
+社会捐助中心
+社会捐助和慈善事务管理中心
+儿童救助中心
+未成年人留守儿童保护处
+未成年人留守儿童社会保护中心
+婚姻登记管理处
+婚姻服务中心
+婚姻登记管理中心
+婚姻管理所
+涉外婚姻收养登记服务中心
+海峡两岸婚姻家庭服务中心
+婚姻收养登记中心
+婚姻登记管理所
+婚姻登记管理服务中心
+婚姻事务所
+婚姻家庭研究所
+婚姻中心
+婚姻登记所
+婚姻家庭纠纷调解委员会
+婚姻登记办公室
+城乡最低生活保障服务中心
+法制调研局
+法制督察局
+监狱管理局
+社区矫正管理局
+社区矫正工作管理局
+社区矫正中心
+戒毒康复矫正服务中心
+司法矫正中心
+社区矫正服务中心
+社区矫正指挥中心
+社区矫正管理支队
+社区矫正支队
+矫正监管指挥中心
+社区矫正执法大队
+社区矫正局
+社区矫正管理教育中心
+社区矫正管理中心
+矫正帮教管理服务中心
+社区矫正工作办公室
+矫正帮教中心
+司法矫正局
+行政复议局
+行政复议事务中心
+人民参与和促进法治局
+人民参与和促进法治处
+公共法律服务中心
+公共法律服务管理局
+公共法律服务协调指挥中心
+律师工作局
+法律职业资格管理局
+法制宣传中心
+燕城监狱
+法律援助中心
+法律援助处
+直属煤矿管理局
+预防犯罪研究所
+法制日报社
+法律出版社有限公司
+中国法制出版社
+全国律师协会
+中国公证协会
+中国监狱工作协会
+中国司法行政戒毒工作协会
+中央司法警官学院
+司法行政学院
+司法考试中心
+法律援助基金会
+司法协助交流中心
+司法鉴定科学研究院
+中国法律服务香港公司
+中国法律服务澳门公司
+全国人民调解员协会
+关税政策研究中心
+国有金融资本运营评价中心
+世界银行贷款项目评估中心
+财政票据监管中心
+中国财政科学研究院
+中国财政杂志社
+中国财经报社
+预算评审中心
+会计资格评价中心
+政府债务管理中心
+会计准则委员会
+注册会计师协会
+中国资产评估协会
+国家会计学院
+中国财税博物馆
+国际财经中心
+中国财政学会
+中国会计学会
+全国预算与会计研究会
+中国农村财经研究会
+中国珠算心算协会
+世界珠算心算联合会
+中国国债协会
+中国财经出版传媒集团
+政府采购监管处
+政府采购监管办公室
+政府采购监管支队
+财政政务后勤服务中心
+公务员测评中心
+公务员考试测评中心
+公务员培训中心
+就业促进司
+就业促进工作办公室
+人力资源规划处
+人力资源和社会保障所
+人力资源和社会保障事务服务中心
+人力资源开发培训中心
+公共行政与人力资源研究所
+人力资源鉴定考试院
+人力资源配置中心
+人力资源职业能力建设中心
+人力资源考试院
+人力资源考试测评服务中心
+人力资源考试和鉴定中心
+人力资源管理服务中心
+人力资源管理局
+人力资源管理协会
+人力资源管理中心
+人力资源社会保障能力建设中心
+人力资源社会保障综合培训指导中心
+人力资源社会保障管理服务中心
+人力资源社会保障稽核监督局
+人力资源社会保障电话咨询服务中心
+人力资源社会保障服务所
+人力资源社会保障所
+人力资源社会保障培训指导中心
+人力资源服务管理办公室
+人力资源服务管理中心
+人力资源开发管理服务中心
+人力资源开发管理中心
+人力资源开发服务管理办公室
+人力资源开发服务中心
+人力资源开发办公室
+人力资源开发交流服务中心
+人力资源培训考试中心
+人力资源培训指导中心
+人力资源培训中心
+人力资源和社会保障资金监督检查所
+人力资源和社会保障综合执法大队
+人力资源和社会保障研究所
+人力资源和社会保障监察支队
+人力资源和社会保障监察大队
+人力资源和社会保障电话咨询中心
+人力资源和社会保障服务所
+人力资源和社会保障教育中心
+人力资源和社会保障宣传教育科研中心
+人力资源和社会保障宣传教育中心
+人力资源和社会保障宣传中心
+人力资源和社会保障培训考试中心
+人力资源和社会保障培训教育指导中心
+人力资源和社会保障培训中心
+人力资源和社会保障咨询服务中心
+人力资源和社会保障劳动监察支队
+人力资源和社会保障公共服务与技术保障中心
+人力资源和社会保障信访举报中心
+人力资源和社会保障信息化建设办公室
+人力资源和社会保障事务中心
+人力资源和就业事务中心
+人力资源产业园管理办公室
+人力资源交流服务中心
+人力资源流动管理司
+职业能力建设司
+职业能力建设指导中心
+职业能力建设中心
+事业单位人事管理处
+事业单位人事管理司
+事业单位人事管理科
+农民工工作司
+农民工工作领导小组
+农民工工作联席会议办公室
+专业技术人员管理司
+专业技术人员管理处
+专业技术人员管理服务中心
+劳动关系协调中心
+劳动关系司
+工资福利司
+工资福利中心
+养老保险司
+失业保险司
+工伤保险司
+农村社会保险司
+社会保险基金监管局
+劳动人事争议调解仲裁院
+调解仲裁管理司
+劳动监察局
+劳动监察支队
+劳动监察处
+劳动监察中队
+劳动监察执法队
+国家表彰奖励办公室
+社会保险事业管理中心
+养老保险管理中心
+就业培训技术指导中心
+职业技能鉴定中心
+中国人事科学研究院
+劳动和社会保障科学研究院
+全国人才流动中心
+中国人事报刊社
+中国劳动保障报社
+人力资源和社会保障出版集团
+社会保险费征缴管理中心
+社会保险基金管理局
+社会保险基金管理中心
+社会养老保险基金管理中心
+社会保障基金稽核中心
+社会保险局
+社会保险基金结算稽核局
+社会保险基金结算中心
+社会保险基金经办中心
+社会保险基金管理结算中心
+社会保险基金管理大鹏分局
+社会保险基金管理办公室
+社会保险基金征缴管理中心
+社会保险基金征缴处
+社会保险基金征缴和信息中心
+社会保险基金征缴信息管理中心
+社会保险基金征缴中心
+社会保险基金征收稽查局
+社会保险基金中心
+新型农村养老保险基金管理中心
+工伤保险基金管理中心
+就业基金监管中心
+失业保险基金管理办公室
+失业保险基金管理中心
+养老保险基金管理服务中心
+养老保险基金管理中心
+就业服务中心
+存量房交易价格评估工作领导小组办公室
+建筑工程安全生产与质量监督总站
+住房改革委员会
+住房改革与发展司
+住房保障司
+住房保障建设中心
+住房保障工作领导小组
+住房保障服务站
+住房保障和房地产中心
+住房保障与房屋征收局
+住房保障办
+住房保障处
+住房保障和房地产管理局
+住房保障和房地产管理中心
+住房保障和城乡建设服务中心
+住房保障和城乡建设管理局
+住房保障和建设中心
+住房保障发展中心
+房地产市场监管司
+房地产管理站
+房地产管理监察支队
+房地产管理交易处
+房地产管理事业局
+房地产监理所
+房地产监察支队
+房地产监察大队
+房地产登记所
+房地产登记中心
+房地产档案室
+房地产执法监察大队
+房地产开发事务中心
+房地产市场监察大队
+房地产市场产权监理所
+房地产勘察测绘所
+房地产信息中心
+房地产估价所
+房地产产权监理所
+房地产产权监理处
+房地产产权登记所
+房地产产权产籍监理处
+房地产交易资金监管中心
+房地产交易管理事务中心
+房地产交易监理所
+房地产交易监理处
+房地产交易登记所
+房地产交易事务中心
+房地产交易与权属登记中心
+房地产交易与房屋权属登记发证处
+房地产交易与房屋权属登记发证中心
+房地产事务中心
+房地产事业发展中心
+建筑市场监管司
+建筑市场监督管理处
+建筑市场管理站
+城市建设司
+村镇建设司
+工程质量安全监管司
+工程质量安全监管中心
+建筑节能与科技司
+住房公积金监管司
+住房公积金
+城市管理监督局
+建筑行业劳动保险基金统筹管理办公室
+住宅维修基金管理中心
+路灯管理所
+园林绿化科研中心
+高速公路管理局
+邮政局
+交通运行监测调度中心
+运输监督管理司
+运输监督管理办公室
+运输监管处
+客运监管处
+货运监管处
+民用航空局
+航空安全办公室
+飞行标准司
+航空器适航审定中心
+航空器适航审定司
+全国民航公会
+中国民用航空
+中国民航大学
+中国民航飞行学院
+中国民航管理干部学院
+中国民航科学技术研究院
+中国民航报社出版社
+中国民航
+首都机场
+民航专业工程质量监督总站
+民航博物馆
+水运局
+运输服务司
+海上搜救中心
+救助打捞局
+中国船级社
+中国交通通信信息中心
+公路科学研究所
+公路科学研究院
+水运科学研究所
+水运科学研究院
+天津水运工程科学研究所
+天津水运工程科学研究院
+大连海事大学
+中国交通书画协会
+中国公路建设行业协会
+中国船东协会
+中国港口协会
+中国水运建设行业协会
+中国船舶代理及无船承运人协会
+中国道路运输协会
+中国交通建设监理协会
+中国交通会计学会
+中国交通教育研究会
+郑和研究会
+海峡两岸航运交流协会
+渔船检验处
+渔船检验局
+水利安全生产监管站
+水资源保护局
+水利水保局
+水源保护办公室
+地下水管理处
+地下水管理监测局
+地下水管理监测站
+节约用水办公室
+节约用水管理中心
+节约用水管理办公室
+节约用水事务管理中心
+节水管理处
+节水管理办公室
+水利工程建设司
+水利工程建设管理局
+水利工程建设办公室
+水利工程建设管理站
+水利工程建设管理中心
+水利工程建设项目管理处
+水利工程建设中心
+水利工程建设质量与安全监督中心
+水利工程建设质量与安全中心
+水利工程建设管护中心
+水利工程建设工作站
+水利工程建设运维中心
+水利工程建设工作队
+水利工程建设所
+水利工程建设发展中心
+水利工程建设管理服务中心
+水利工程建设技术审核中心
+水利工程建设质量与安全监督中心站
+水库管理处
+水库管理服务中心
+水库管理养护所
+河道堤防建设管理局
+河流堤防管理总段
+堤防管理段
+堤防管理总段
+堤防管护中心
+水闸管理署
+堤防所
+堤防建设管护中心
+堤防工程管理总段
+堤防工程服务保障中心
+堤防局
+堤防养护所
+堤防事务所
+水闸水电管养所
+河湖管理司
+河湖管理处
+河湖管理总站
+河湖管理事务中心
+河湖长制工作处
+河湖长制办公室
+河湖长制工作科
+河湖长制事务中心
+河湖长制调度指挥中心
+河湖长制工作领导小组办公室
+水域岸线管理处
+河道采砂管理局
+河道采砂管理站
+河道采砂管理处
+河道采砂服务中心
+河道采砂整治办
+水土保持司
+水土保持监测站
+水土保持局
+水土保持预防监督检测站
+水土保持预防监督检查站
+水土保持试验推广站
+水土保持研究所
+水土保持监管站
+水土保持监督检查站
+水土保持监督执法站
+水土保持监督局
+水土保持监察站
+水土保持生态环境监督检查站
+水土保持生态环境建设中心
+水土保持治理监督局
+水土保持服务中心
+水土保持指导站
+水土保持技术推广站
+水土保持技术咨询研究中心
+水土保持所
+水土保持总站
+水土保持工作队
+水土保持工作中心
+水土保持实验站
+水土保持委员会
+水土保持和移民工作中心
+水土保持和水利规划室
+水土保持勘测规划研究所
+水土保持中心
+农水技术和水土保持监测指导站
+农村水利管理处
+农村水利水电司
+农村水利水电建设服务中心
+农村水利管理服务总站
+农村水利科技推广站
+农村水利科技发展中心
+农村水利水电服务中心
+农村水利建设指导工作站
+农村水利中心
+农村水利与河湖管理服务处
+农业农村水利项目管理服务中心
+农村水电管理处
+灌溉节水处
+农村供水处
+农村供水管理服务站
+农村供水管理总站
+农村供水服务站
+农村供水排水站
+农村供水总站
+农村供水工程管理服务站
+农村供水工程所
+农村供水安全中心
+农村供水中心
+农村水能开发处
+水旱灾害防御司
+水旱灾害防御调度指挥中心
+水旱灾害防御站
+水旱灾害防御物资储备中心
+水旱灾害防御服务中心
+水旱灾害防御处
+水旱灾害防御事务中心
+水旱灾害防御中心
+水资源监测处
+水质监测处
+地下水监测处
+水质监测分中心
+水质监测中心
+水资源监测预警中心
+水资源监测局
+水环境监测分中心
+水环境监测中心
+水资源监测规划所
+地下水资源监测控制中心
+地下水监测中心
+三峡工程管理司
+南水北调工程管理司
+调水管理司
+调水管理中心
+调水管理局
+调水管理所
+水资源调度中心
+水资源调度管理局
+水资源调度处
+调水规划处
+调水工程处
+太湖流域管理局
+水利水电科学研究院
+中国水利报社
+中国水利水电出版社
+中国灌溉排水发展中心
+南水北调工程设计管理中心
+南水北调中线干线工程建设管理局
+南水北调东线总公司
+中国水利学会
+南京水利科学研究院
+国际小水电中心
+中国水利博物馆
+农田灌溉实验中心
+农业农村办公室
+乡村镇兴办
+乡村振兴战略领导小组办公室
+乡村振兴建设办公室
+动物卫生监督所
+动物卫生与流行病学中心
+农畜产品质量安全检验检测监督管理站
+农畜产品安全检验检测监督管理站
+海洋经济运行监测与评估中心
+农业农村部
+农业农村局
+农业农村厅
+乡村产业发展司
+农村社会事业促进司
+农村合作经济指导服务中心
+农村合作经济指导司
+农村合作经济经营中心
+农村合作经济经营服务中心
+农村合作经济经营指导总站
+农村合作经济管理指导中心
+农村合作经济管理局
+农村合作经济服务中心
+农村合作经济经营管理局
+农村合作经济经营管理处
+农业转基因生物安全管理处
+农业转基因生物安全管理办公室
+农业农村委员会
+农产品质量监督管理局
+农产品质量监督检验测试中心
+农产品质量监督检验检测站
+农产品质量监测站
+农产品质量监测所
+农产品质量安全综合质检站
+农产品质量安全管理服务中心
+农产品质量安全管理局
+农产品质量安全监管站
+农产品质量安全监管局
+农产品质量安全监督管理总站
+农产品质量安全监督检验监测站
+农产品质量安全监督检验测试站
+农产品质量安全监督检测信息站
+农产品质量安全监测站
+农产品质量安全检验监测站
+农产品质量安全检验测试中心
+农产品质量安全办公室
+农产品质量与农业环境保护站
+种植业管理司
+种植业管理总站
+农情信息处
+农产品质量安全监管处
+经济作物试验推广站
+经济作物管理站
+经济作物管理服务中心
+经济作物管理局
+经济作物站
+经济作物推广站
+经济作物推广中心
+经济作物指导中心
+经济作物技术推广总站
+经济作物技术推广中心
+经济作物技术指导站
+经济作物总站
+经济作物工作站
+经济作物工作指导站
+经济作物局
+特种经济作物总站
+农业经济作物推广站
+植保植检处
+国际植物保护公约履约办公室
+植保植检管理站
+植保植检工作站
+植保植检服务中心
+植保植检总站
+植保植检局
+植保植检所
+植保植检和种子土肥环保管理站
+植保植检土肥中心
+农药管理处
+农药检定所
+生物农药工程研究中心
+农药技术推广服务中心
+农药检定管理总站
+农药管理检定所
+生物农药工程技术研究中心
+农药总站
+农药检定站
+农药检定监测总站
+农药检定管理所
+农药风险监测中心
+农药管理站
+农药检定管理站
+农药管理检定站
+农药监督管理所
+农药技术推广总站
+农药综合执法大队
+农药委员会
+肥料与节水处
+土襄肥料和节水农业工作站
+肥料工作总站
+肥料管理局
+肥料管理站
+耕地肥料总站
+耕地质量保护与肥料工作站
+耕地质量保护与肥料管理局
+耕地质量与肥料工作站
+耕地质量与肥料管理总站
+农业节水与土壤肥料管理总站
+土壤肥料测试中心
+土壤肥料工作总站
+土壤肥料管理站
+土壤肥料和节水农业工作站
+土壤肥料技术推广站
+土壤肥料技术指导站
+土壤肥料技术总站
+土壤肥料调查测试中心
+土壤肥料与资源环境工作站
+土壤肥料与资源环境站
+土壤肥料专业站
+土壤肥料总站
+土攘肥料工作站
+畜牧兽医局
+饲料饲草处
+畜禽废弃物利用处
+畜禽粪污资源化利用办公室
+畜禽粪污资源化利用集中处理中心
+渔业渔政管理局
+渔船渔港处
+远洋渔业处
+渔政处
+农垦局
+农垦总局
+热带作物处
+种业管理司
+农作物种业中心
+农作物种业处
+畜禽种业处
+农业机械化管理司
+农业机械化管理处
+农业机械化管理办公室
+农业机械化管理中心
+农业机械化管理服务站
+农田建设管理司
+高标准农田建设管理办公室
+耕地质量与肥料工作总站
+耕地质量与肥料管理局
+耕地质量建设保护总站
+长江流域渔政监督管理办公室
+长渔委
+珠渔委
+农业科学院
+水产科学研究院
+热带农业科学院
+全国农业展览馆
+中国农业博物馆
+中国农业电影电视中心
+农民日报社
+农业出版社
+农村读物出版社
+农村杂志社
+农业干部教育培训中心
+农科院
+水产技术推广总站
+水产学会
+农业科教基金会
+联盟农业技术中心
+农业行业分会
+国际商会农业行业分会
+中国饲料工业协会
+农垦经济发展中心
+农业广播电视学校
+农民体育协会
+全国农业技术推广服务中心
+国际食品法典农药残留委员会秘书处
+全国畜牧总站
+蜜蜂研究所
+饲料研究所
+农产品加工研究所
+生物技术研究所
+农业质量标准与检测技术研究所
+中国农业科学技术出版社
+农学会
+渔业渔政办公室
+商贸流通运行监测中心
+市场体系建设司
+消费促进司
+对外贸易司
+外贸司
+服贸司
+服务贸易司
+产业安全与进出口管制局
+世界贸易组织事务中心
+外贸发展局
+投资促进事务局
+国际经济合作事务局
+国际贸易经济合作研究院
+商务出版社
+国际经济技术交流中心
+配额许可证事务局
+国际商报社
+中国对外贸易中心
+国际电子商务中心
+流通产业促进中心
+中国服务外包研究中心
+中国国际进口博览局
+中国医药保健品进出口商会
+中国五矿化工进出口商会
+中国食品土畜进出口商会
+中国藏毯协会
+中国欧洲经济技术合作协会
+中国国际货运代理协会
+中国国际跨国公司促进会
+中国国际工程咨询协会
+中国外商投资企业协会
+中俄机电商会
+国际烟花协会
+中国国际民间组织合作促进会
+海峡两岸经贸交流协会
+中国国际贸易学会
+中国对外经济贸易会计学会
+中国国际经济合作学会
+中国对外经济贸易统计学会
+中国世界贸易组织研究会
+中国会展经济研究会
+华侨茶业发展研究基金会
+中华茶人联谊会
+全国银行间同业拆借中心
+中国金融出版社
+金融时报社
+中国印钞造币总公司
+中国金币总公司
+中国金融电子化公司
+中国金融培训中心
+中国钱币博物馆
+货币政策司
+宏观审慎管理局
+金融市场司
+金融稳定局
+征信管理局
+反洗钱局
+反洗钱中心
+金融消费权益保护协会
+金融消费权益保护局
+审计博物馆
+中国审计报社
+中国时代经济出版社
+原中国审计出版社
+审计宣传中心
+中国审计学会
+国有资产监督管理委员会
+国资委
+国资局
+国有资产管理办公室
+国有资产管理局
+国资办
+国有资产监督管理局
+国有资金资产监督管理局
+国有资产监督管理办公室
+国企绩效评价中心
+出入境检验检疫局
+进出口食品安全局
+口岸监管司
+口岸委员会
+打击走私综合治理办公室
+社会保险费司
+非税收入司
+纳税服务司
+纳税服务局
+纳税服务中心
+电子税务管理中心
+税收科学研究所
+税收宣传中心
+税务干部进修学院
+中国税务报社
+税务出版社
+广播电视总局
+电视剧司
+传媒机构管理司
+网络视听节目管理司
+媒体融合发展司
+电视剧管理处
+传媒机构管理处
+网络视听节目管理处
+电视剧管理局
+传媒机构管理局
+网络视听节目管理局
+媒体融合发展处
+媒体融合发展局
+广电分局
+乌兰夫基金会办公室
+电影频道节目中心
+青少年体育俱乐部
+体育经济司
+体育彩票管理中心
+体育彩票中心
+体育彩票管理分中心
+体育彩票发行中心
+体育彩票销售管理中心
+体育彩票管理发行中心
+体彩中心
+体育彩票肇庆管理分中心
+体育彩票彩发行中心
+体育彩票销售中心
+体育彩票工作站
+体育彩票经营管理中心
+健身气功管理中心
+奥林匹克体育中心
+体育信息中心
+体育基金管理中心
+青岛航海运动学校
+运动医学研究所
+对外体育交流中心
+体育报业总社
+湛江潜水运动学校
+反兴奋剂中心
+社会体育指导中心
+安阳航空运动学校
+北京体育大学
+体育器材装备中心
+体育文化发展中心
+国民经济核算司
+统计司
+服务业调查中心
+普查中心
+国际统计信息中心
+统计教育培训中心
+中国国际统计培训中心
+统计科学研究所
+统计资料管理中心
+
+统计信息服务中心
+中国经济景气监测中心
+中国信息报社
+中国统计师事务所
+中国统计出版社
+国管局
+机关事务管理局
+行政事务管理局
+机关住房服务中心
+机关事务服务中心
+机关后勤服务中心
+机关大院服务中心
+干部疗养院
+机关物业管理中心
+机关车队
+机关后勤管理处
+行政事务管理中心
+机关服务管理中心
+机关后勤管理
+人民大会堂管理局
+人民大会常务委员会
+人民代表大会
+归国华侨联合会
+中国民主同盟
+无党派人士
+中国共产主义青年团
+共青团
+中华全国总工会
+中华全国妇女联合会
+全国妇联
+中华全国青年联合会
+全国青联
+中国科学技术协会
+中华全国台湾同胞联谊会
+全国台联
+人民政协报
+中国文史出版社
+中国政协杂志社
+中国政协文史馆
+中国人民政协理论研究会
+中国宗教界和平委员会
+法院
+军队离退干部
+军队离退干休所
+军队离退休管理所
+军队离退休服务管理中心
+军队离退休服务中心
+军队离退休人员
+军队离休退休
+转业军官管理服务中心
+军队离休干部
+军队干部退休所
+军队干部离休退休
+军队干休所
+军队转业
+自主择业军队干部管理中心
+自主择业转业干部管理服务中心
+自主择业转业军官管理办公室
+自主择业军转干部管理服务中心
+自主择业军转干部服务中心
+军官培训与自主择业管理办公室
+军休服务管理司
+拥军优属拥政爱民领导小组办公室
+拥军优属拥政爱民工作领导小组
+拥军优属拥政爱民工作领导组
+东部战区
+西部战区
+南部战区
+北部战区
+中部战区
+陆军
+海军
+火箭军
+国防部
+国防工业出版社
+中国国防报
+中国军网
+人武部
+民兵训练基地
+民兵装备修理所
+民兵综合训练基地
+民兵武器装备仓库
+民兵军事训练基地
+医疗保障局
+医保局
+医疗保障事务服务中心
+农村合作医疗管理中心
+农村合作医疗管理办公室
+农村合作医疗办公室
+农村合作医疗服务中心
+农村合作医疗监督管理局
+农村合作医疗监督管理办公室农村合作医疗经办中心
+农村合作医疗管理服务中心
+农村合作医疗工作领导小组
+农村合作医疗工作办公室
+农村合作医疗管理局
+医疗保障管理局
+医疗保障基金结算中心
+医疗保障基金管理中心
+医疗保障基金监督检查所
+医疗保障基金中心
+医疗保险基金结算中心
+医疗保险基金经办中心
+医疗保险基金管理结算中心
+医疗保险基金管理服务中心
+医疗保险基金管理局
+医疗保险基金管理处
+医疗保险基金管理中心
+学校
+大学
+中学
+小学
+幼儿园
+师专
+中心校
+高中
+总校
+分校
+校区
+电大
+实验高中
+职校
+聋校
+体校
+中专
+职专
+一中
+联校
+教育后勤办公室
+二中
+军校
+学院
+气象中心
+中央气象台
+空间天气监测预警中心
+气象信息中心
+公共气象服务中心
+国家预警信息发布中心
+气象科学研究院
+气象干部培训学院
+气象宣传与科普中心
+气象报社
+气象出版社
+气象学会
+中国华云气象科技集团公司
+华风气象传媒集团有限责任公司
+证监局
+证监会
+证券监督管理委员会
+公共资源交易
+采购中心
+采购监督管理办公室
+采购办
+采购管理办公室
+公共资源交易服务中心
+公共资源管理交易中心
+公共资源交易所
+招标中心
+招标采购管理中心
+政府采购和出让中心
+建设工程交易中心
+招投标管理中心
+产权交易所
+商品交易所
+政府采购部
+城市管理
+救助管理站
+城市综合管理局
+城市监察管理局
+城市综合管理办公室
+综合执法局
+城市综合管理中心
+救助服务站
+行政执法局
+公园建设管理中心
+综合管理和执法局
+城市建设管理处
+城市综合管理事务中心
+城市网格化综合管理中心
+城镇管理局
+城市综合管理总站
+城乡管理执法局
+综合行政执法支队
+城市管理办公室
+智慧城市运行管理中心
+城区管理办公室
+城市执法管理局
+执法局
+城市监督管理中心
+城市运行监测中心
+环卫所
+市政维护处
+路灯管理处
+市政管理处
+市政服务中心
+市容管理局
+垃圾综合处理场
+市政工程管理处
+城环局
+环境卫生管理局
+亮灯监管中心
+市政管理局
+市政建设管理处
+市政园林工程处
+市政工程处
+市政公用局
+广场管理处
+市政设施管理处
+市政园林管理局
+市政设施管理局
+市政管理所
+公用事业管理中心
+市政设施维护处
+市政配套服务中心
+环境卫生管理所
+市容环卫局
+市政绿化处
+市政工程建设处
+市政工程管理所
+环境卫生管理处
+环卫大队
+城市道路养护管理中心
+公用事业局
+市政工程建设中心
+环境卫生清洁中心
+环卫中心
+城市综合管理处
+公用事业办公室
+市政热线服务中心
+绿化维护队
+地下管线管理
+环卫处
+公用事业管理
+爱国卫生运动委员会
+市政维护应急中心
+社会事业服务中心
+市政园林水利管护中心
+市政园林配套中心
+城区水系污染综合治理工程指挥部
+市政工程局
+档案资料保管部
+档案资料利用部
+历史档案馆
+中国档案报社
+档案科学技术研究所
+档案干部教育中心
+档案杂志社
+档案学会
+档案登记备份中心
+档案修志馆
+地方志编修委员会
+妇幼联合会
+性病艾滋病防治协会
+中国营养学会
+科学技术学会
+肝炎防治基金会
+公共卫生管理协会
+烟草学会
+职业安全健康协会
+反邪教协会
+全国学生联合会
+侨商投资企业协会
+全国学联
+中国汽车工业协会
+中国钢铁工业协会
+中国互联网协会
+矿业协会
+书法协会
+老龄协会
+纺织协会
+兰花协会
+林学会
+水利学会
+水利工程学会
+归侨侨眷联合会
+基金会
+慈善协会
+慈善总会
+红十字扶贫开发服务中心
+中远渔业推广示范中心
+中国道路交通安全协会
+中国造纸学会
+中国轻工业联合会
+中国质量协会
+中国计算机行业协会
+中国统计学会
+中国经济体制改革研究会
+中国纺织工业联合会
+中国粮油学会
+中国硅酸盐学会
+中国矿业联合会
+中国知识产权研究会
+中国电石工业协会
+中国电工技术学会
+中国生态文明研究与促进会
+中国环境保护产业协会
+中国物流与采购联合会
+中国煤炭工业协会
+中国渔业互保协会
+中国水泥协会
+中国水利工程协会
+中国水产学会
+中国民族卫生协会
+中国机械工程学会
+中国机械工业联合会
+中国服装设计师协会
+中国有色金属工业协会
+中国支付清算协会
+中国报关协会
+中国扶贫开发协会
+中国建筑材料联合会
+中国康复辅助器具协会
+中国工程咨询协会
+中国密码学会
+中国安全生产协会
+中国天然橡胶协会
+中国地质学会
+中国土地估价师与土地登记代理人协会
+中国国际经济交流中心
+中国发明协会
+中国卫生监督协会
+中国医学装备协会
+中国出版协会
+中国冶金教育学会
+中国农垦经贸流通协会
+中国农业生产资料流通协会
+中国企业国有产权交易机构协会
+中国人才研究会
+中华护理学会
+中华全国专利代理人协会
+世界中医药学会联合会
+中国青少年宫协会
+中国银行间市场交易商协会
+中国银行业协会
+中国证券业协会
+中国航空运输协会
+中国绿化基金会
+中国红十字基金会
+中国神经科学学会
+中国电机工程学会
+中国注册会计师协会
+中国木材与木制品流通协会
+中国期货业协会
+中国服装协会
+中国文学艺术基金会
+中国招标投标协会
+中国抗癌协会
+中国投资协会
+中国建筑学会
+中国孔庙保护协会
+中国土木工程学会
+中国可持续发展研究会
+中国医药教育协会
+中国兵工学会
+中国公路学会
+中国保险行业协会
+中国人工智能学会
+中国中药协会
+残疾人福利基金会
+爱德基金会
+残疾人就业服务指导中心
+政务公开办公室
+政务热线服务中心
+政务服务网运管中心
+政务服务热线办公室
+政务服务大厅
+政务服务代办中心
+行政服务管理局
+行政服务管理办公室
+行政服务工作管理办公室
+行政服务局
+行政服务审批中心
+行政服务南坪中心
+行政服务办公室
+行政服务便民中心
+行政服务与审批管理局
+宗教
+民族事务委员会
+民族事务局
+国家民委
+民宗委
+检察院
+检察分院
+检察厅
+法律政策研究室
+国家检察官学院
+检察日报社
+中国检察出版社
+检察理论研究所
+检察技术信息研究中心
+党员群众服务中心
+党委办
+党政办
+省委办
+市委办
+县委办
+机要局
+党史研究室
+党校
+区委办
+农工部
+机构编制委员会
+党员电化教育中心
+中共中央台湾工作办公室
+市委当代党员杂志社
+地方志
+地委办公室
+新农村建设项目办公室
+社会治安综合治理委员会
+市委农工委
+市委编办
+党政专用通信局
+保密局
+省委信访局
+市委信访局
+县委信访办
+国家公务员局
+国家公务员培训指导中心
+公务员培训管理中心
+组织部
+公务员录用考试中心
+老干部活动中心
+老干部局
+老干部活动管理服务中心
+老干部服务中心
+老干部休养所
+宣传部
+新闻中心
+文明办
+新闻信息中心
+报社
+精神文明建设委员会
+对外宣传办公室
+宣传文体服务中心
+宣教局
+精神文明建设办公室
+精神文明建设指导委员会
+互联网舆情中心
+纪委
+监察局
+纪律检查委员会
+纪检监察室
+纪律检察委员会
+廉政教育中心
+廉政教育基地
+党纪教育中心
+纪检监察审计办公室
+监察委员会
+纪律委员会
+纪检委
+监委
+监察部
+监察厅
+信访室
+统战部
+统一战线工作部
+国务院办公厅
+中央密码工作领导小组办公室
+中央保密委员会办公室
+国际农发基金扶贫项目领导小组办公室
+金融工作办公室
+金融办
+金融工作局
+金融服务中心
+金融服务办公室
+金融事业发展中心
+商务经济合作和外事局
+市长公开电话受理中心
+糖业发展局
+发展和改革委
+国民经济综合司
+经济运行调节局
+经济研究院
+固定资产投资司
+体制改革综合司
+外资司
+地区经济司
+京津冀协同发展领导小组办公室
+地区振兴司
+区域开放司
+农村经济司
+基础设施发展司
+资源节约和环境保护司
+经济贸易司
+财政金融和信用建设司
+价格司
+经济与国防协调发展司
+宏观经济研究院
+国家信息中心
+电子政务外网管理中心
+基建物业管理中心
+经济与国防协调发展研究中心
+国家投资项目评审中心
+价格监测中心
+价格监测处
+价格成本调查中心
+节能中心
+国家地理空间信息中心
+国家公共信用信息中心
+一带一路建设促进中心
+创新驱动发展中心
+中国经济导报社
+中国改革报社
+中国计划出版社
+中国城市轨道交通协会
+国际经济交流中心
+中国产业发展促进会
+中国交通运输协会
+中国施工企业管理协会
+中国市场出版社
+宏观经济管理编辑部
+中国经贸导刊杂志社
+粮食和物资储备局
+物资储备司
+物资储备局
+能源储备司
+能源储备局
+安全仓储与科技司
+价格认证办公室
+价格认证中心
+价格认定局
+价格认定中心
+价格成本调查队
+价格管理中心
+价格成本调查监审分局
+价格研究所
+价格认证局
+价格政策研究中心
+价格监测与成本监审局
+价格监测分析中心
+价格监测与认证中心
+价格成本监审局
+价格监测分局
+价格成本监测所
+价格监测和成本调查监审局
+价格采集分析中心
+价格举报受理督察办公室
+价格监督检查局
+价格监督检查分局
+价格成本调查监审局
+价格监督稽查支队
+价格鉴定监测管理局
+价格监督监查局
+价格监督检察局
+价格监督检查和反不正当竞争局
+价格协会
+价格调节基金办公室
+价格调节基金领导小组办公室
+价格调节基金管理办公室
+价格调节基金征收所
+价格基金管理办公室
+储备物资管理局
+教材局
+国家教材委员会
+教材编译中心
+基础教育司
+基础教育科
+职业教育与成人教育司
+高等教育司
+教育督导局
+教育督导委员会
+民族教育司
+教师工作司
+体育卫生与艺术教育司
+体卫艺司
+思想政治工作司
+社会科学司
+科技司
+科学技术司
+学位委员会办公室
+学位管理与研究生教育司
+语言文字应用管理司
+语言文字信息管理司
+教科文全委会
+国家教育行政学院
+教育科学研究院
+孔子学院
+语言文字应用研究所
+国家开放大学
+中央电化教育馆
+中国教育电视台
+课程教材研究所
+国家留学基金管理委员会
+中国教育报刊社
+全国学生资助管理中心
+全国高等学校学生信息咨询与就业指导中心
+中国教育出版传媒集团
+人民教育出版社
+高等教育出版社
+语文出版社
+中国教育国际交流协会
+教育学会
+中国高等教育学会
+中国教师发展基金会
+中国教育发展基金会
+语言文字工作委员会
+国家语委
+国家语委语言文字规范标准审定会员会
+教育体育司
+教育发展战略学会
+中华孔子学会
+教育基金管理委员会
+教育基金征集工作领导小组办公室
+教育基金办公室
+教育基金会
+教育发展基金会
+教师奖励基金会
+科学技术部
+高新技术司
+农村科技发展中心
+农村科技服务中心
+农村科技开发中心
+农村科技司
+社会发展科技司
+外国专家服务司
+外国专家服务中心
+引进国外智力办公室
+引进国外智力管理司
+国家科学技术奖励工作办公室
+科学技术发展战略研究院
+中国农村技术开发中心
+中国生物技术发展中心
+中国21世纪议程管理中心
+国家遥感中心
+国家科技基础条件平台中心
+中国国际核聚变能源计划执行中心
+国家科技风险开发事业中心
+中国国际人才交流中心
+中国国际人才交流基金会
+国家自然科学基金委员会
+科技日报社
+外国专家局
+自然科学基金委员会
+中德科学基金研究交流中心
+自然科学基金会
+科技型中小企业技术创新基金管理中心
+科技型中小企业创新基金管理中心
+基础与应用基础研究基金委员会
+烟草专卖局
+产业政策与法规司
+中小企业局
+节能与综合利用司
+原材料工业司
+装备工业一司
+装备工业处
+国家重大技术装备办公室
+装备工业二司
+消费品工业司
+军民融合发展委员会
+电子信息司
+电子信息产品检验研究院
+电子信息产品检验所电子信息产品监督检验院
+电子信息产品检验院
+电子信息产业研究院
+电子信息技术应用促进中心
+信息技术发展司
+信息技术发展中心
+信息通信发展司
+网络安全管理局
+无线电管理局
+无线电办公室
+国家航天局
+中国信息通信研究院
+人民邮电报社
+中国通信学会
+电子信息产业发展局
+电子信息产业发展研究院
+国家工业信息安全发展研究中心
+中国电子技术标准化研究院
+中国电子产品可靠性与环境试验研究所
+中国电子学会
+国际经济技术合作中心
+中国国际贸易促进委员会电子信息行业分会
+中小企业发展促进中心
+中国机电设备招标中心
+通信清算中心
+网络安全产业发展中心
+应急通信保障中心
+中国工业互联网研究院
+中国工信出版传媒集团
+工业文化发展中心
+威海电子信息技术综合研究中心
+中小企业国际合作协会
+电子通信行业职业技能鉴定指导中心
+国防科工局
+自然资源局
+自然资源部
+自然资源厅
+自然资源调查监测司
+自然资源确权登记局
+自然资源所有者权益司
+自然资源开发利用司
+国土空间规划局
+国土空间规划司
+国土空间用途管制司
+国土空间生态修复司
+耕地保护监督司
+地质勘查管理司
+矿业权管理司
+矿产资源保护监督司
+海洋战略规划与经济司
+海域海岛管理司
+海洋预警监测司
+国土测绘司
+地理信息管理司
+国家自然资源总督察办公室
+海洋权益司
+国家自然资源督察
+自然资源经济研究院
+国土资源规划所
+国土资源产业经济所
+地质出版社
+中国大地出版社
+自然资源报社
+中国地质博物馆
+国土整治中心
+土地科技创新中心
+中央地质勘查基金管理中心
+测绘发展研究中心
+地图技术审查中心
+中国测绘科学研究院
+国家基础地理信息中心
+国家测绘档案资料馆
+大地测量部
+天地图工作部
+地理国情监测部
+全球地理信息资源部
+地理信息分析部
+国土卫星遥感应用中心
+测绘产品质量检验测试中心
+中国地图出版集团
+国家海洋技术中心
+海洋技术战略研究与规划室
+海域与海岛技术室
+海域室
+海洋可再生能源开发利用技术室
+海洋能管理中心
+海洋测量传感器技术研究室
+近海海洋环境观测与监测技术研究室
+深远海及海底探测技术研究室
+海洋遥感与测绘技术研究室
+海洋环境保障技术研究室
+国家海洋环境预报中心
+海啸预警中心
+海洋灾害预警报室
+海啸预警室
+海洋环境预报室
+海洋气象预报室
+极地环境研究预报室
+海洋气候预测室
+中国极地研究中心
+国家海洋标准计量中心
+国家卫星海洋应用中心
+海洋减灾中心
+海洋咨询中心
+国家深海基地管理中心
+海岛研究中心
+第一海洋研究所
+第二海洋研究所
+第三海洋研究所
+第四海洋研究所
+天津海水淡化与综合利用研究所
+海洋发展战略研究所
+国家南极考察训练基地
+海洋出版社
+中国海洋报社
+城乡规划管理中心
+生态保护基金办公室
+生态保护基金会
+规划和国土资源管理委员会
+规划和自然资源委员会
+生态环境部
+生态环境保护督察办公室
+生态环境政策处
+自然生态保护司
+生态保护红线监管处
+自然保护地监管处
+生物多样性保护处
+生物安全管理处
+水生态环境司
+重点流域保护修复协调与监督处
+流域处
+地表水生态环境质量管理处
+黑臭水体治理协调与监督办公室
+重点工程水质保障处
+海洋生态环境司
+海洋生态保护与环境质量管理处
+海域综合治理监督协调处
+海洋污染防治监管
+大气环境司
+大气环境质量管理处
+大气环境协调办公室
+重污染天气应对处
+应对气候变化司
+土壤生态环境司
+地下水生态环境处
+农村生态环境处
+污染地块生态环境处
+固体废物与化学品司
+固体废物处
+化学品处
+核设施安全监管司
+核安全协调处
+国家安全协调处
+辐射监测与应急处
+核安全设备处
+核电安全监管司
+核电一处
+核电二处
+核电三处
+反应堆处
+辐射源安全监管司
+核燃料与运输处
+放射性废物管理处
+核技术利用处
+电磁辐射与矿冶处
+环境影响评价与排放管理司
+规划环评处
+区域与规划环境影响评价处
+环境影响评价与固定污染源排污许可一处
+环评与排污许可一处
+环境影响评价与固定污染源排污许可二处
+环评与排污许可二处
+资源开发与基础设施环境影响评价处
+生态环评处
+生态环境监测司
+环境质量监测与评估处
+生态与污染源监测处
+生态监测处
+生态环境执法局
+生态环境公约处
+核安全国际合作处
+核与辐射安全监督站
+生态环境监督管理局
+中国环境科学研究院
+中国环境监测总站
+中日友好环境保护中心
+环境发展中心
+环境与经济政策研究中心
+中国环境报社
+中国环境出版集团
+核与辐射安全中心
+环境科学研究所
+环境规划院
+环境工程评估中心
+卫星环境应用中心
+环境遥感部
+航空遥感部
+环评与规划遥感部
+国家气候战略中心
+海洋环境监测中心
+生态环境监管技术部
+环境技术交流中心
+环境保护总局
+中国环境科学学会
+中华环境保护基金会
+中国环境文化促进会
+中国环境新闻工作者协会
+中国老龄协会
+全国老龄工作委员会
+卫生健康委
+卫健委
+公立医院改革处
+疾病预防控制局
+传染病防控处
+免疫规划处
+免疫规划中心
+艾滋病防控处
+防治艾滋病工作办公室
+艾滋病防控中心
+防治艾滋病工作委员会
+防治艾滋病局
+艾滋病防治协会
+艾滋病防治中心
+艾滋病防治工作委员会
+艾滋病救治中心
+艾滋病关爱中心
+艾滋病防治局
+艾滋病防治办公室
+艾滋病预防控制中心
+艾滋病防治工作领导小组办公室
+艾滋病防治服务中心
+艾滋病工作委员会
+艾滋病防治工作办公室
+防治艾滋病工程委员会办公室
+艾滋病临床治疗中心
+防治艾滋病办公室
+结核病防控处
+寄生虫病与地方病防控处
+寄生虫病预防控制所
+慢性病与营养管理处
+精神卫生处
+环境健康处
+慢性病前瞻性研究项目管理办公室
+慢性病前瞻性研究项目办公室
+医政医管局
+医疗资源处
+医疗机构处
+医疗管理处
+医疗质量与评价处
+医疗安全与血液处
+护理与康复处
+公共卫生医疗管理处
+基层卫生健康司
+基本公共卫生处
+家庭医生处
+卫生应急办公室
+公共卫生事件应急指挥中心
+医学教育处
+公共卫生监督一处
+公共卫生监督二处
+公共卫生监督一所
+公共卫生监督二所
+公共卫生事件应急处理中心
+公共卫生健康指导中心
+公共卫生紧急救援指挥中心
+公共卫生医学中心
+公共卫生管理办公室
+公共卫生间管理所
+公共卫生应急指挥中心
+公共卫生应急处理中心
+公共卫生综合服务大楼指挥部
+公共卫生和医疗保障中心
+公共卫生突发事件处置中心
+公共卫生事件应急中心
+公共卫生项目管理办公室
+公共卫生指挥中心
+国家级公共卫生示范中心
+传染病防治监督处
+医疗监督处
+药物政策与基本药物制度司
+药物政策与基本药物制度处
+药物政策处
+药品目录管理处
+药品供应保障协调处
+药品使用管理处
+食品安全标准与监测评估司
+食品安全标准管理处
+食品安全风险监测与评估处
+食品营养处
+老龄健康司
+老龄工作委员会
+老龄委
+老龄工作办公室
+老龄司
+老龄科学研究中心
+老龄办
+老龄事业中心
+老龄退管工作委员会办公室
+老龄问题研究中心
+老龄工作委员办公室
+老龄事业服务中心
+老龄服务中心
+老龄人活动中心管理所
+老龄人工作委员会办公室
+老龄健康发展中心
+老龄化工作委员会办公室
+老龄工作委员会办公室
+老龄工作服务中心
+健康服务处
+医养结合处
+妇幼健康司
+妇幼健康服务司
+妇幼保建院
+妇幼保键院
+妇幼院
+妇幼健康服务中心
+妇幼和生殖保健中心
+妇幼服务中心
+妇幼儿童医疗保健中心
+妇幼生殖中心
+妇幼中心
+妇幼保建站
+妇幼健康咨询中心
+计生妇幼综合服务站
+妇幼医学研究所
+妇女卫生处
+儿童卫生处
+出生缺陷防治处
+人口监测与家庭发展司
+家庭发展指导处
+健康促进处
+国家人口计生委药具管理中心
+国家人口计生委药具发展中心
+中国医学科学院
+疾病预防控制中心
+医药研究所
+疾病预防控中心
+疾病预防控制保健中心
+疾病预防保健中心
+疾病预防疫控中心
+疾病预防控制所
+疾病预防控㓡中心
+疾病预防控制分中心
+疾病预防控制西部中心
+疾病预防控制站
+疾病预防控制检验中心
+疾病预防控制与保健中心
+疾病预防控制南部分中心
+疾病预防监控中心
+疾病预防检控中心
+疾病预防防控中心
+健康传播中心
+医学实验动物中心
+卫生标准处
+公共卫生中心
+公共卫生服务站
+卫生应急中心
+卫生应急调度指挥中心
+卫生应急救援指挥中心
+卫生应急处理中心
+卫生应急指挥处置中心
+卫生应急调度中心
+卫生应急指挥中心
+传染病管理处
+传染病预防控制处
+结核病预防控制中心
+公共卫生管理处
+控烟办公室
+传染病预防控制所
+病毒病预防控制所
+性病艾滋病预防控制中心
+慢性非传染性疾病预防控制中心
+营养与健康所
+环境与健康相关产品安全所
+职业卫生与中毒控制所
+职业卫生所
+辐射防护与核安全医学所
+农村改水技术指导中心
+麻风病控制中心
+老年保健中心
+精神卫生中心
+儿少/学校卫生中心
+鼠疫布氏菌病预防控制基地
+结核病防治临床中心
+性病控制中心
+预防医学研究所
+预防医学研究中心
+预防医学研究院
+卫生信息学会
+性病麻风病防治技术指导中心卫生健康监督中心
+医疗卫生监督处
+公共卫生监督处
+妇幼健康监督处
+职业与放射卫生监督处
+药具管理中心
+食品安全风险评估中心
+食品安全标准研究中心
+国民营养行动中心
+健康教育中心
+爱国卫生发展中心
+医管中心
+医疗管理服务指导中心
+医学考试中心
+国家癌症中心
+国家心血管病中心
+人口文化中心
+人口文化发展中心
+流动人口服务中心
+人民卫生出版社
+人卫社
+健康报社
+人口出版社预防医学会
+计划生育协会
+医学会
+人口基金会
+人口协会
+人口学会
+老龄产业发展协会
+居民健康管理中心
+医共体区域检验中心
+医共体管理中心
+医共体影像中心
+医共体总院
+医学基金会
+医学发展基金会
+疾病应急救助基金管理中心
+农民合作医疗基金管理委员会办公室
+农民合作医疗保险基金管理中心
+银保监
+银行机构检查局
+普惠金融部
+非银检查局
+保险消费者权益保护局
+政策性银行监管部
+大型银行部
+股份制银行部
+城市银行部
+农村银行部
+财险部
+人身险部
+信托部
+市场监督管理总局
+市场监管总局
+市场监督管理厅
+知识产权局
+药品监督管理局
+中国食品药品检定研究院
+医疗器械标准管理中心
+中国药品检验总所
+国家药典委员会
+药品审评中心
+食品药品审核查验中心
+医疗器械技术审评中心
+食品药品监管数据中心
+执业药师资格认证中心
+中国食品药品国际交流中心
+南方医药经济研究所
+中国药学会
+中国健康传媒集团
+登记注册局
+信用监督管理局
+信用监督管理司
+信用监督管理处
+打击传销领导小组办公室
+打击传销工作领导小组办公室
+网络交易监督管理司
+网络交易监督管理局
+网络交易监督管理处
+广告监督管理司
+广告监督管理局
+广告监督管理处
+质量发展局
+质量发展研究中心
+产品质量安全监督管理司
+产品质量安全监督管理局
+产品质量安全监督管理处
+食品安全协调司
+食品安全协调局
+食品安全协调处
+食品安全投诉举报受理中心
+食品安全委员会办公室
+食品安全工作办公室
+食品安全监督所
+食品安全审评认证中心
+食品安全监督协调办公室
+食品安全委员会
+食品安全管理办公室
+食品安全协调委员会办公室
+食品安全监督中心
+食品安全协调委员会
+食品安全卫生应急技术指挥中心
+国家食品安全检测科研中心
+食品安全应急指挥中心
+食品安全工作领导组办公室
+食品安全监管指挥中心
+食品生产安全监督管理司
+食品生产监督所
+食品生产安全监督管理局
+食品生产安全监督管理处
+食品经营安全监督管理司
+食品经营安全监督管理局
+食品经营安全监督管理处
+特种设备安全监察局
+特种设备检验院
+特种设备检测院
+特种设备安全技术检查中心
+特种设备技术检查所
+特种设备应急处置中心
+特种设备应急处置指挥中心
+特种设备技术检查中心
+特种设备检测技术中心
+特种设备监督检验院
+特种设备检验研究
+特种设备检验研究中心
+特种设备事故调查处置中心
+特种设备监察中心
+特种设备安全技术培训中心
+特种设备安全节能技术研发中心
+特种设备监督检查中心
+特种设备安全检验检测实验中心
+计量司
+计量所
+质量计量监督监测所
+质量计量监督所
+计量质量服务中心
+标准计量质检院
+计量质量检测中心
+计量与合格评定监督管理处
+计量检定站
+计量科学研究院
+计量科学研究所
+计量监督检定所
+计量监督所
+计量测试所
+计量测试院
+计量测试检定所
+计量测试检定研究所
+计量测试技术研究院
+计量测试技术研究所
+计量测试技术研究中心
+计量检测技术中心
+计量检定监督局
+计量检定监测院
+计量检定测试所
+计量检定测评所
+计量检定二所
+计量局
+计量仪器仪表试验所
+标准计量管理所
+标准计量情报研究所
+标准计量情报所
+国家计量测试中心
+国家大容量第二计量站
+四川重大技术装备几何量计量站
+标准技术管理司
+标准技术研究院
+标准技术管理处
+标准技术审评中心
+标准创新管理司
+认证监督管理司
+认证认可监督管理委员会
+中国认证认可协会
+认可与检验检测监督管理司
+计量院
+称重公正计量中心
+中国纤维质量监测中心
+食品审评中心
+国家中药品种保护审评委员会
+中国检验检疫科学研究院
+中国合格评定国家认可中心
+中国网络安全审查技术与认证中心
+全国组织机构统一社会信用代码数据服务中心
+中国物品编码中心
+认证认可技术研究中心
+认证认可技术研究所
+中国市场监管报社
+中国质量报刊社
+中国消费者报社
+中消报
+中国工商出版社
+中国质量标准出版传媒有限公司
+中国市场监督管理学会
+中国计量测试学会
+中国检验检测学会
+中国个体劳动者协会
+中国质量万里行促进会
+中国品牌建设促进会
+中国消费品质量安全促进会
+中国出入境检验检疫协会
+中国质量检验协会
+中国计量协会
+中国标准化协会
+中国标协
+中国防伪行业协会
+中国设备监理协会
+中国特种设备安全与节能促进会
+特种设备行业协会
+特种设备协会
+计量测试学会
+市场安全监管局
+文化和旅游部
+艺术司
+非物质文化遗产司
+文化市场综合执法监督局
+文化市场执法监督处
+旅游市场执法监督处
+国家图书馆
+故宫博物院
+中国国家博物馆
+中央文化和旅游管理干部学院
+中国文化传媒集团有限公司
+国家京剧院
+中国国家话剧院
+中国歌剧舞剧院
+中国东方演艺集团有限公司
+中国交响乐团
+中国儿童艺术剧院
+中央歌剧院
+中央芭蕾舞团
+中央民族乐团
+中国煤矿文工团
+中国美术馆
+中国国家画院
+中国对外文化集团有限公司
+中国数字文化集团有限公司
+中国动漫集团有限公司
+中外文化交流中心
+中国艺术科技研究所
+国家艺术基金管理中心
+中国旅游出版社有限公司
+中国旅游研究院
+梅兰芳纪念馆
+中国文化报
+中国旅游报
+中国美术报
+音乐生活报
+文化艺术出版社
+中国旅游出版社
+故宫出版社
+公安部
+公安厅
+公安局
+公安处
+森林公安
+铁路公安
+民航公安
+交通警察
+看守所
+公安边防支队
+交通综合行政执法支队
+公安边防大队
+交警总队
+交警队
+交警支队
+交警大队
+交巡警支队
+海警局
+交通行政执法总队
+边防总队
+海警
+公安分局
+公安特警
+边防检查站
+边防检查总站
+边防委员会
+边海防委员会
+刑事侦查局
+警卫局
+公安科技研究所
+公安民警培训服务中心
+社会综合治理
+综合治理委员会
+拘留所
+维护稳定办公室
+禁毒委员会
+机动车驾驶培训协会
+社会管理综合治理工作中心
+出入境管理局
+出入境管理支队
+民政部
+民政厅
+民政局
+福利彩票
+殡葬管理所
+彩票发行管理中心
+殡仪馆
+儿童福利院
+社会福利院
+公墓
+陵园
+革命公墓
+民政和民族宗教事务局
+民政办公室
+敬老院
+福利院
+殡葬服务所
+老年福利中心
+社会救助事务中心
+社会福利中心
+社会工作联络中心
+福彩发行工作管理站
+光荣院
+疗养院
+养老公馆
+社区教育中心
+民政事务中心
+民政事务局
+民政事业服务中心
+民政福利事业
+民政所
+民政和民宗局
+民政信息中心
+民政分局
+社会福利服务中心
+儿童救助保护中心
+慈善会
+司法部
+司法厅
+司法局
+司法所
+法制教育所
+司法处
+司法警察训练总队
+司法鉴定所
+财政部
+财政厅
+财政局
+财税局
+财政所
+财税所
+财政委员会
+财政干部培训中心
+财政数据信息计算中心
+财政信息中心
+财政投资评审中心
+行政事业单位财务结算中心
+非税收入管理局
+财政信息化建设管理处
+财政实物管理中心
+会计培训中心
+财政收费票据监管中心
+国库支付局
+财会人员继续教育中心
+财政结算中心
+专项资金监管中心
+财政管理局
+非税收入征收管理局
+国库支付中心
+国库集中支付核算中心
+财政管理中心
+农村财务管理局
+农村经济财务管理局
+国库集中支付局
+财政收支管理服务中心
+财政财务管理局
+政府资金结算中心
+财务结算管理中心
+财务结算中心
+财政监督检查所
+会计服务中心
+财政分局
+财政监督局
+农村综合改革工作领导小组办公室
+人力资源和社会保障部
+人力资源社会保障部
+社会保障事务局
+公务员局
+人事局
+人力资源和社会保障厅
+人力和社会保障局
+社保局
+就业局
+人社局
+劳动就业办公室
+社会事业管理局
+社会保障厅
+社会保险事业局
+社会保障局
+劳动保障就业服务中心
+社会保障信息中心
+社会事务局
+社会保险事业管理局
+劳动监察大队
+社会保障管理中心
+人才服务中心
+人事考试中心
+人事考试院
+劳动保障监察支队
+人事考试管理办公室
+人力资源社会保障信息化建设办公室
+人才交流服务中心
+人力资源公共服务中心
+人才交流中心
+劳动保障信息中心
+失业保险处
+社会保险服务中心
+人事考试办公室
+人力资源开发局
+人力资源考试中心
+人力和社会资源保障局
+社会事业发展局
+社会保障卡服务中心
+人力资源和社会保障数据管理中心
+社会事务管理局
+社会事业局
+劳动人事争议仲裁院
+劳动保护教育中心
+创业服务中心
+公共实训管理服务中心
+人力资源培训教育中心
+住房和城乡建设部
+住房城乡建设部
+住房和城乡建设厅
+住建局
+建交局
+公共建筑建设管理处
+住房和城乡建筑局
+城乡建设办公室
+建设厅
+住房和城乡建设局
+住房和城乡建设委员会
+城乡建设委员会
+住房保障和房产交易中心
+廉租住房管理所
+住房保障署
+城市建设管理局
+建委
+建设局
+城乡建设管理所
+公共工程建设中心
+建筑管理站
+工程项目代建局
+建筑工程管理处
+经济适用住房建设开发中心
+公共租赁房管理局
+住房管理中心
+住房保障服务局
+城建局
+新城建设管理局
+城乡建设服务中心
+城建环保服务中心
+城区建设管理处
+城乡建设和管理服务中心
+房产和住房保障局
+城镇建设管理处
+工程建设管理局
+住房和城市更新局
+建筑管理处
+政府投资工程建设管理中心
+建筑业管理局
+建设信息中心
+城市建设监察大队
+住房制度改革委员会
+住房和城乡建设管理局
+住房保障工作局
+住房保障工作分局
+住房发展中心
+住房保障管理所
+住房制度改革领导小组
+城乡建设管理局
+住宅建设发展中心
+工程建设项目管理中心
+住房保障局
+住宅发展中心
+建设管理局
+城建监察支队
+城市建设管理监察队
+住房和建设委员会
+城市建设服务中心
+住房和城市建设委员会
+建筑工务局
+村镇建设管理服务所
+住房和城乡建设执法监察总队
+建设工程质量监督检测站
+住房和建设管理部
+建筑工程安全质量监督总站
+建筑业教育中心
+建筑工程检测站
+建筑质量安全监督站
+住房和城乡局
+住房与村镇建设监察大队
+建筑工程管理局
+住房城乡建设执法稽查支队
+房产事业局
+房产交易监理所
+房地产交易登记中心
+房产管理局
+房管局
+房地产登记发证中心
+房产所
+房产局
+房屋登记中心
+物业供热管理办公室
+物业管理有限公司
+公积金服务中心
+房产测绘中心
+城建监察大队
+住房和城乡建议局
+建筑规划设计院
+建筑设计研究院
+交通部
+交通厅
+交通局
+铁路局
+民航总局
+航道局
+航道所
+交通运输局
+交通运输部
+交通管理所
+交通办公室
+港务局
+交通安全委员会
+交通委员会
+交通管理局
+交通建设发展中心
+航务管理处
+公路管理所
+渔港监督处
+空管局
+公共交通管理处
+道桥管理处
+养路总段
+民用航空总局
+运输管理处
+交通设施建设处
+公路管理局
+公路处
+公路养护管理
+航标处
+公路收费管理所
+道路管理所
+海事处
+公路建设管理局
+港口管理局
+道路运输管理
+航道处
+出租汽车管理处
+公路局
+公路分局
+车辆段
+隧道局
+轨道集团
+路政管理局
+公路管养中心
+高速公路收费中心
+路政总队
+港航管理处
+交通科学研究所
+民航管理中心
+铁路信息技术中心
+路政执法总队
+城市干道工程建设办公室
+交通运输厅
+路政局
+航运管理站
+道路管理站
+高速公路信息监控中心
+交通运行监测与应急调度中心
+交通建设工程质量监督局
+航运服务中心
+公路客运总站
+交通建设项目招投标评审中心
+车渡管理站
+航道管理
+海事服务中心
+交通信息通信中心
+港航管理局
+交通建设工程质量安全监督局
+公路收费站
+船务管理局
+航空局
+交通运输站
+航运救捞站
+交通管理站
+路网建设
+交通运输委员会
+船级社
+路政执法监察支队
+港航管理所
+民用机场
+公路段
+公路养护中心
+交通信息中心
+广铁集团
+航道工程局
+交通工程检测中心
+交通运输执法所
+交通工程管理站
+交通工程质量监督检测站
+交通运输执法总队
+交通工程建设指挥部
+交通运行监测中心
+交通建设质量安全监督局
+公路改造领导小组
+公路服务中心
+公路养护处
+公路养护所
+公路事业发展中心
+公路养护应急中心
+公路桥隧维护中心
+铁路监督管理局
+长途客运总站
+航道工程处
+航道养护中心
+民航局
+道路桥梁管理中心
+道路交通管理事务中心
+道路养护中心
+路政管理所
+道路建设管理中心
+水路建设养护中心
+道路硬化工程
+路桥建设管理处
+桥梁隧道养护中心
+桥梁维修管理处
+河道堤防管护中心
+公路养护队
+交通工程质量监督管理站
+交通运政稽查支队
+交通运输监察支队
+交通运输安全督查中心
+交通运输工作部
+交通运输安全事务中心
+交通工程管理所
+交通安全管理中心
+交通运输执法监察总队
+交通运输执法监察支队
+交通路桥养护中心
+公路养护工程有限公司
+河道管护服务总站
+交通工程质量安全监管站
+桥梁管理处
+公路桥梁养护处
+海事局
+交通发展研究院
+铁道部
+水利部
+水利厅
+水利站
+水利局
+水利物资站
+水利总站
+河务局
+水利委员会
+水务局
+防汛
+水务管理局
+南水北调工程建设监管中心
+水文管理站
+运河管理处
+水利服务中心
+水管站
+水利工作队
+水文水资源勘测局
+水利建设中心
+水利工程管理处
+水利管理局
+水利管理站
+水资源中心
+水资源服务中心
+水土保持预防监督局
+水利工作站
+自来水厂
+水务设施管理所
+水库管理中心
+供水站
+水利管理处
+水利建设站
+水利工程建设管理处
+供水处
+水业集团
+水库工程管理所
+数字水利中心
+水土保持站
+南水北调干线管理处
+水利水电管理中心
+水资源勘测分局
+水利宣传中心
+水务管理站
+水利信息中心
+水务集团
+水资源局
+水利信息管理中心
+供水管理处
+水政管理所
+水文水质监测站
+水质检测中心
+引排水调度中心
+水利管理中心
+水利水电工程建设服务中心
+污水处理厂
+水利电力管理所
+水利工程养护维修中心
+水利综合经营管理中心
+排水事业管理局
+污水治理工程筹建处
+水库管理局
+水文局
+河道管理处
+水政监察支队
+供水办公室
+供水有限公司
+南水北调工程建设委员会
+水资源管理中心
+水利电力局
+水库建设管理局
+水利所
+调水工程建设管理办公室
+水利水电建设站
+排水设施管理处
+运河治理中心
+水利管理署
+河道管理事务中心
+河道管理所
+水文总局
+灌溉管理处
+灌溉管理局
+水库工程管理局
+水务工程建设管理中心
+河道管理局
+水务中心
+自来水公司
+水利管理所
+河道管理站
+河务管理处
+水库管理所
+河长制办公室
+水库管理办公室
+涧河管理处
+供水调度监测中心
+水务管理所
+水资源管理所
+灌溉排水发展中心
+移民开发局
+水政监察大队
+移民工作局
+移民办公室
+水资源监察支队
+水文水资源勘测总站
+机电排灌总站
+移民工作管理局
+农村饮水管理总站
+排灌工程管理处
+河湖管理保护中心
+水务站
+移民办
+移民指挥部
+河湖管理所
+南水北调管理局
+水利科技推广中心
+水政执法监察大队
+水利开发有限公司
+水利发展建设总公司
+水利工程有限公司
+水土保持事业局
+水利水电管理所
+水库移民
+水务信息管理中心
+水利水务信息调度指挥中心
+水利水务站
+水务服务中心
+水文站
+水利水电局
+水政监察总队
+水利事务服务与行政执法中心
+灌溉总渠管理处
+水务水电局
+水利水电队
+农业部
+农业厅
+农业局
+农牧林局
+农业综合开发局
+农业委员会
+绿色食品发展中心
+农业资源开发局
+农林发展局
+畜牧发展中心
+农业工作办公室
+农村发展局
+农村经济局
+渔政局
+渔业执法局
+农林局
+农村经济经营管理局
+种植业管理局
+草原站
+渔业局
+渔港监督支队
+畜牧工作站
+水产局
+种子工作站
+农牧业科技服务中心
+农村经济管理局
+农业科技博览园
+植保总站
+植物检疫站
+种子管理站
+渔港监督局
+农牧厅
+植检站
+农村经济经营管理站
+农业畜牧局
+农发办
+经济作物技术推广站
+农牧局
+畜牧研究所
+农作物研究所
+农科所
+畜牧机械化研究所
+畜产品质监站
+农村经营服务站
+油料研究所
+粮食局
+农牧业厅
+农林水局
+农业开发办
+农业执法总队
+农业行政综合执法大队
+农牧业市场信息中心
+土壤肥料工作站
+农产品质量安全检验监测中心
+畜牧业管理局
+海洋与渔业厅
+苗木繁育中心
+畜牧局
+畜禽屠宰管理所
+植物保护总站
+动物疫病预防控制中心
+农业开发管理办公室
+兽医科学研究所
+动物疫病预防与控制中心
+植物保护检疫站
+植保站
+畜牧总站
+兽药饲料监察所
+畜牧兽医站
+动物卫生监督
+饲料兽药检测站
+农业信息中心
+种子管理局
+渔政总队
+农业和农村工作局
+农业综合改革工作
+农产品质量安全检测中心
+农业综合开发项目建设中心
+农牧业局
+渔政监督
+农村工作局
+农村工作办公室
+农业工程技术研究中心
+农业执法大队
+农产品质量安全检测站
+农业科学研究所
+寄生虫病防治研究所
+农林水牧局
+水产养殖病害防治监测
+畜牧办公室
+农业综合开发办
+农村综合改革
+畜牧技术推广站
+热作产业局
+农业综合技术推广服务中心
+农业服务中心
+农村牧区工作部
+兽医药品监察所
+农业展览馆
+农业对外合作交流中心
+渔政渔港监督管理处
+农村能源管理办公室
+水稻研究所
+商务部
+商务厅
+经贸局
+商务局
+商业局
+贸易促进局
+贸易促进委员会
+招商融资促进局
+投资促进局
+贸促会
+商贸流通管理办公室
+贸易促进会
+商务委员会
+商务委
+商务会展促进服务中心
+商务合作局
+商务办公室
+电子商务服务中心
+商务发展工作领导小组办公室
+投资促进中心
+招商局
+会展促进中心
+商务综合行政执法大队
+电子商务孵化中心
+经济技术合作局
+供销社
+供销联社
+供销合作社
+招商合作局
+经济贸易局
+国际博览事务局
+招商促进局
+企业服务局
+会议展览事务局
+招商和项目推进局
+供销合作总社
+对外贸易中心
+经济合作局
+供销合作联合社
+商务和经济信息委员会
+招商服务局
+供销合作联社
+招商服务中心
+商务综合执法大队
+人民银行
+外汇交易中心
+票据交换中心
+人行
+反洗钱监测分析中心
+国家外汇管理局
+审计署
+审计厅
+审计局
+审计服务中心
+公共投资审计中心
+审计办公室
+审计监督局
+审计监督中心
+城投
+城市投资
+建设投资公司
+建投
+建投建设工程集团
+海关
+海防与口岸局
+口岸办公室
+口岸管理局
+口岸服务中心
+口岸事务局
+电子口岸数据中心
+口岸办
+口岸管理服务中心
+口岸工作办公室
+缉私局
+税务总局
+税务局
+国税局
+地税局
+办税服务中心
+税务干部培训中心
+税务信息中心
+地方税务局
+地税分局
+国税分局
+国家税务局
+地方税务服务中心
+税务分局
+税务杂志社
+版权局
+广播局
+出版局
+广电局
+广播转播台
+广播电视局
+广播电视发射监测技术中心
+广播影视局
+文广服务中心
+文化广电出版体育厅
+广播电视中心
+出版发行事业局
+广播电视监测站
+新华书店
+广播影视服务中心
+出版集团
+新闻出版局
+广电总局
+新闻出版广播影视技术推广中心
+新闻出版研究院
+广电新闻出版
+运动管理中心
+体育科学研究所
+体育馆
+体育场馆管理中心
+体育工作办公室
+网球中心
+冬季项目管理中心
+冰上训练基地
+滑雪场
+体育场
+体育工作大队
+体育协会
+体育委员会
+体育总会
+体育发展委员会
+乒乓球通州训练基
+冬残奥会组织委员会
+统计局
+经济调查队
+统计调查局
+人大
+政治协商会议
+政协
+民盟
+九三学社
+国民党革命委员会
+民革
+民主建国会
+民主促进会
+农工民主党
+致公党
+台湾民主自治同盟
+中华全国工商业联合会
+工商联合会
+气象局
+气象服务中心
+海洋预报台
+气象科技服务中心
+气象台
+气象科学研究所
+气象公共服务中心
+气候中心
+人工影响天气中心
+气候观象台
+人工影响天气办公室
+招标办
+招标投标中心
+招标办公室
+招标管理中心
+招标管理办公室
+招标采购管理局
+招标投标交易管理中心
+招标投标办公室
+招标采购事务管理所
+招标投标服务中心
+招标采购交易中心
+政府采购交易中心
+招标服务中心
+招标投标监督管理局
+招标投标事务中心
+招投标交易办公室
+招投标交易中心
+公共资源综合交易管理办公室
+公共资源综合交易服务中心
+公共资源综合交易中心
+政府采购服务中心
+政府采购分中心
+政府采购服务部
+政府采购管理中心
+政府采购促进中心
+政府采购中心
+政府采购管理工作办公室
+政府采购控制办公室
+徽采商城
+政府采购工作领导小组办公室
+档案局
+档案馆
+档案缩微技术中心
+档案史志局
+档案资料馆
+档案管理中心
+档案中心
+档案管理服务中心
+档案管理处
+工会
+残联
+儿童少年基金会
+残疾人联合会
+文学艺术界联合会
+红十字会
+妇女联合会
+妇联
+妇女儿童服务中心
+妇女儿童活动中心
+商会
+芭蕾舞团
+交响乐团
+摄影家协会
+天主教爱国会
+宋庆龄基金会
+工商业联合会
+华侨联合会
+业主委员会
+经济合作社
+经济联合社
+纪律检查工作委员会
+纪律检查委员
+纪律与监督工作部
+纪律审查管理中心
+纪律与工作监督部
+纪律检查委
+纪律教育中心
+纪律审查服务中心
+党风廉政建设教育中心
+党风廉政建设教育基地
+党风廉政警示教育基地
+党风廉政建设办公室
+党风廉政中心
+中央巡视工作领导小组
+案件监督管理室
+纪检监察案件管理中心
+纪检监察宣传教育基地
+纪检监察宣教基地
+纪检监察机关
+纪检监察教育中心
+纪检监察宣教培训中心
+纪检监察宣教中心
+纪检监察办公室
+纪检监察干部培训中心
+纪检监察宣传教育中心
+纪检监察审计中心
+纪检监察审计室
+纪检监察保障中心
+纪检监察案管中心
+纪检监察办案管理中心
+纪检监察事务服务中心
+纪检监察信息中心
+纪检监察信息技术保障中心
+纪检监察留置专业陪护中队
+纪检监察办案中心
+纪检监察警示教育基地
+纪检监察集中办案中心
+纪检监察工作协调中心
+纪检监察工委
+纪检监察办案基地管理中心
+纪检监察工作委员会
+纪检监察杂志社
+纪检监察报社
+中国方正出版社
+中国纪检监察学院
+纪检监察干部监督室
+政府办
+政府值班室
+政府法制办
+政府信息办
+信访办
+政府督查室
+政府电子政务办
+信访局
+街道办事处
+密码管理局
+法制办
+政策研究室
+政研室
+史志办
+参事室
+台办
+侨务办
+电子政务办
+电子政务管理办公室
+政务网络中心
+人民政府
+管理委员会
+林场
+居民委员会
+综合实验区
+村民委员会
+开发区管委会
+高新区管委会
+新区管委会
+科技园管委会
+工业园区
+扶贫开发领导小组
+专业合作社
+社会建设工作办公室
+电子政务内网
+电子政务管理中心
+扶贫开发办公室
+国家保密科技测评中心
+保密技术服务中心
+振兴发展工作办公室
+外事台侨办公室
+扶贫办公室
+民防局
+牧场
+地方志办公室
+信访维稳
+管委会办公室
+新农办
+新农村建设工作领导小组
+南水北调办公室
+新农村建设办公室
+外事侨务局
+民防办公室
+扶贫开发局
+扶贫办
+接待办公室
+商务中心区建设指挥部办公室
+信息化推进中心
+省直属机关
+中央和国家机关涉密载体销毁中心
+版权保护中心
+国家版权局
+知识产权服务中心
+知识产权中心
+街道办
+开发区综合办公室
+居民办事处
+外事侨务工作服务中心
+外事办公室
+大数据发展局
+信访服务中心
+发改委
+发展改革委
+发展和改革局
+发展与改革委员会
+发改局
+发展和改革委员会
+发展改革局
+储备粮管理中心
+粮食管理所
+物价局
+粮食中心库
+经济信息中心
+省信息中心
+信用中心
+农村能源办公室
+粮食行业协会
+粮油卫生检验监测中心
+粮库
+经济社会发展局
+发改和经济局
+发改经信局
+发改和改革局
+发改工促局
+粮油质量监测所
+粮油管理所
+价格检查局
+粮油质量监督检测站
+发展改革和经济委员会
+能源局
+教育体育局
+教育局
+教育部
+教体局
+教育体育处
+教育卫体局
+教育厅
+电化教育仪器站
+教科文卫局
+教育委员会
+文教局
+职教中心
+电化教育站
+人事考试局
+教育辅导站
+特教中心
+学区教育办公室
+电教馆
+电教装备馆
+招生考试委员会办公室
+教育办
+教育质量监测中心
+教育技术与装备中心
+考试管理中心
+教科局
+教育技术中心
+教育技术装备处
+现代教育技术中心
+教学研究室
+电教教仪中心
+科教中心
+教委
+教育教学培训研究中心
+招生考试院
+教育信息网络中心
+教育招生和考试中心
+招生考试办公室
+师资培训站
+教育事务指导中心
+科技艺术教育中心
+教育装备与保障中心
+电教站
+教育条件装备站
+教体文广局
+特殊教育中心
+教育研究与服务中心
+教育事务受理中心
+教育项目执行办公室
+民办教育服务中心
+电教仪器站
+教仪工作站
+教育考试院
+电教教仪站
+教育服务中心
+教育发展中心
+教育发展投资中心
+教育活动中心
+教育教学研究院
+教育研究院
+教师研修中心
+教育委会员
+职业教育中心
+成人教育培训中心
+科技教仪中心
+教育科学研究所
+教育测评与研究中心
+教育考试中心
+教育人才服务中心
+教学仪器站
+教师培训中心
+电教中心
+科技部
+科技厅
+科技局
+信息办
+科学技术局
+科技信息局
+经科局
+科学研究院
+科学技术馆
+科学技术协会
+科技馆
+科学技术情报研究所
+科学技术信息研究所
+科学技术研究院
+科技创新委员会
+科学技术厅
+科技创新局
+科技协作中心
+科学馆
+科技创新服务中心
+科学技术委员会
+科技和经济委员会
+科协
+科技促进局
+科学技术宣传馆
+社会科学界联合会
+中国工程院
+科学技术院
+科普宣传教育中心
+科技资源统筹中心
+生产力促进中心
+科技成果管理办公室
+科技研发服务中心
+科技信息中心
+科技发展战略研究所
+科技信息研究院
+科技信息管理局
+能源与核技术应用研究院
+科技信息研究所
+地理研究所
+科技产权局
+科技创新与经济发展局
+科技成果转化服务中心
+科技促进中心
+科技情报研究所
+大数据研究院
+社会发展研究所
+工业和信息化部
+工信部
+工信委
+信息化委员会
+工信局
+工业经济和信息化研究院
+信息安全管理中心
+网信办
+工业和信息化厅
+工信厅
+工业和信息化局
+工业经济技术服务管理中心
+科技和信息化局
+大数据运行管理局
+有色金属研究院
+信息化办公室
+智慧城市办公室
+工业和信息化委员会
+经信局
+经信委
+无线电管理办公室
+专用通信局
+信息化工作办公室
+经济和信息化局
+应急通信局
+无线电监测站
+互联网络信息中心
+国家计算机病毒应急处理中心
+互联网行业管理服务中心
+经济和信息化委员会
+信息产业促进中心
+信息产业办公室
+大数据发展管理局
+大数据管理服务局
+大数据发展委员会
+数据服务管理局
+数据管理局
+大数据发展服务局
+信息网络中心
+信息技术服务中心
+工业技术服务中心
+工业经济运行局
+经济发展局
+工业和科技信息化局
+国家无线电监测中心
+信息化和无线电管理局
+信息化局
+网络信息统筹局
+工业发展委员会
+经济与信息化委员会
+信息技术安全研究中心
+节能监察中心
+节能环保中心
+信息安全认证中心
+工业信息和科学技术局
+工业信息产业局
+经济信息化委员会
+信息化管理中心
+工业信息化委员会
+盐务管理局
+工业和信息局
+通信管理局
+中小企业服务中心
+国防科技工业办公室
+卫星装备研究所
+电子研究所
+信息化建设和管理办公室
+经济与信息委员会
+国防科技工业局
+工业和信息化研究院
+环境保护部
+环境保护厅
+环境保护局
+环保部
+环保厅
+环保局
+环境监控
+环境信息中心
+环境委员会
+环保产业发展中心
+环境应急与事故调查中心
+环境监察
+环境保护办公室
+辐射环境监督管理站
+辐射环境监督站
+环境宣教信息中心
+环境科学技术研究所
+固体废物管理中心
+环境保护管理站
+环境保护合作中心
+洱海流域保护局
+污水处理公司
+垃圾处理场
+环境保护宣传教育中心
+环境卫生事业局
+环境保护信息中心
+环卫局
+污染管理办公室
+环境监测保护站
+环境资源保护中心
+环境保护科技信息中心
+环保安监站
+环境保护科学研究所
+环保产业促进中心
+环境宣传教育中心
+环境保护管理局
+环境卫生管护中心
+环境绿化工程指挥部
+环境综合治理办公室
+环境保护综合执法支队
+环境监测应急中心
+环境污染防治管理中心
+垃圾处理厂
+环璄保护局
+环境保护委员会办公室
+生态环境厅
+生态环境和自然资源管理局
+环境治理监督大队
+环境保护督查中心
+环保能源工作站
+环境保护监测管理站
+环境保护分局
+环境保护检测站
+环境卫生监察大队
+环境保护工作站
+污水处理站
+生态环境监测监督管理局
+生态环境局
+生活垃圾处理厂
+环境保护委员会
+流行病学办公室
+银监会
+银行业监督管理委员会
+银监分局
+银监局
+价格监督检查与反垄断局
+价格监督检查与反垄断所
+价格监督稽查与反垄断分局
+价格监督检查与反垄断分局
+价格监督与反垄断局
+文化部
+文化厅
+文化局
+文体旅局
+文物管理所
+文化和新闻出版厅
+图书馆
+文保所
+文物管理处
+文体广电站
+文物局
+文广局
+文化站
+文化委员会
+文化馆
+收藏馆
+文物馆
+文化宫
+文体办
+文化市场管理所
+文物考古研究院
+黄帝文化园区建设协调办公室
+文化产业园建设办公室
+文体局
+青少年活动中心
+文物信息咨询中心
+文化产业发展服务中心
+艺术中心
+艺术研究院
+美术家协会
+博物馆
+文物保护管理中心
+美术馆
+青少年宫
+文物保管所
+文化广播新闻局
+文化广电影视局
+非物质文化遗产保护
+民族文化中心
+文物事业管理局
+剧院
+艺术馆
+民族歌舞传习中心
+博物院
+考古研究院
+文物保护管理
+文物管理中心
+文物管理局
+纪念馆
+文化市场行政执法支队
+中国画院
+歌舞团
+中国艺术研究院
+体育宫
+文化广播影视管理局
+民俗文化中心
+电影资料馆
+考古研究所
+广播影视中心
+文化体育办
+艺术团
+文化艺术研究院
+中央民族歌舞团
+剧团
+文广新局
+文化市场综合执法大队
+文化行政综合执法大队
+文化广播影视监测中心
+文化遗产研究院
+文化体育服务所
+文化博览局
+文联
+文物管理站
+影视局
+计算中心
+科技合作研究促进中心
+科学技术情报所
+科技创新发展中心
+科学技术信息研究院
+科学技术情报研究院
+自然资源科学院
+国土资源和房地产信息中心
+国土资源部
+国土资源所
+国土资源分局
+国土资源厅
+国土资源纠纷调处中心
+煤炭工业管理局
+国土分局
+国家海洋信息中心
+国土资源局
+海洋管理事务中心
+测绘局
+土地局
+土地储备分中心
+地籍管理所
+土地资源局
+国土资源管理分局
+国家海洋局
+海洋研究院
+海洋与渔业行政执法处
+海洋港口发展委员会
+海洋与渔业技术中心
+征地拆迁办公室
+海洋与渔业监督监察总队
+国土资源执法监察支队
+地质调查院
+地质调查中心
+地质局
+地矿局
+国土资源出让服务中心
+测绘技术中心
+煤炭工业局
+国土勘测规划研究院
+土地调查规划院
+国土资源执法监察大队
+规土局
+矿产研究所
+国土整治局
+中国海监
+测绘科技研究所
+土地储备供应中心
+国家测绘地理信息局
+国土资源调查监测院
+基础测绘信息中心
+土地督察
+测绘院
+测绘工程院
+国土资源档案信息中心
+国土环境资源局
+测绘研究所
+海洋科学与技术国家实验室
+国土资源和房屋局
+国土局
+国土资源委员会
+土地发展中心
+国土资源和规划委员会
+地质矿产勘查开发局
+国土资源管理局
+地质勘察院
+矿务局
+矿产资源管理中心
+矿产资源管理局
+国土资源信息中心
+国土资源规划与评审中心
+征地办公室
+土地开发整理服务中心
+土地整理中心
+土地登记交易中心
+不动产登记局
+规划和土地管理局
+土地开发中心
+国土资源技术中心
+国土资源和房屋管理局
+地质测试研究中心
+地质调查研究院
+地理信息工程院
+矿产资源研究开发协会
+地质勘查
+勘探队
+海洋勘测设计院
+地质物测队
+地质研究
+国土资源档案馆
+国土开发整治管理局
+国土资源管理所
+海洋局
+海洋环境与资源监测中心
+土地开发征用事务所
+地理信息中心
+测绘地理信息局
+土地登记信息交易中心
+土地开发整理建设管理局
+征地拆迁工作办公室
+征收改造指挥部
+地质环境监测院
+不动产登记中心
+遥感中心
+土地勘测规划院
+极地研究中心
+土地综合整治服务中心
+规划建设土地局
+地质矿产局
+不动产登记事务中心
+海事测绘中心
+旅游局
+旅游发展委员会
+景区建设办公室
+旅游培训中心
+旅游服务业发展局
+景区管理中心
+旅游发展有限公司
+风景名胜区管理局
+景区管理处
+旅游委员会
+旅游监察大队
+窟区管理处
+龙门石窟世界文化遗产园区建设发展局
+旅游发展局
+旅游开发中心
+旅游宣传推广中心
+旅游管理局
+动物园
+旅游信息中心
+旅游工作委员会
+招生办公室
+招生考试中心
+教育考试服务中心
+招生委员会办公室
+成人教育中心
+节能与应对气候变化中心
+应对气候变化研究中心
+应对气候变化办公室
+节能减排监察支队
+节能减排监察总队
+农业面源污染
+生态环境分局
+生态环境智能管控中心
+生态环境综合执法支队
+饮用水源保护管理办公室
+生态环境技术审查中心
+劳动和社会保障监察支队
+人力资源市场管理服务中心
+人才引进交流服务中心
+人力资源服务中心
+人才服务管理办公室
+人力资源和社保保障局
+人才管理服务处
+人力资源管理办公室
+人才开发交流服务中心
+人才管理服务办公室
+社保核算中心
+社会事务服务中心
+流域管理处
+流域管理局
+水务和湖泊局
+湖泊管理局
+水务事务服务中心
+食品药品监督管理总局
+食品药品监督管理局
+食药局
+食安局
+药监局
+食品药品监督所
+药品稽查总队
+食品药品安全信息与监控中心
+食品药品执法大队
+药品不良反应监测中心
+药械管理中心
+药品检验检测院
+食品药品认证审评中心
+安全生产技术支撑中心
+安全生产科技宣教中心
+安全生产考试考核中心
+安全生产技术研究中心
+安全生产执法大队
+安全生产重大危险源与煤矿瓦斯监控中心
+安全生产技术检测检验中心
+安全生产监察执法大队
+安全生产执法支队
+安全生产举报投诉中心
+安全生产应急指挥中心
+安全生产科学技术中心
+安全生产行政执法支队
+安全生产应急服务中心
+安全生产培训协会
+应急管理和安全生产综合行政执法队
+安全生产救援服务中心
+安全生产培训服务中心
+安全生产技术服务中心
+安全生产应急救援支队
+安全生产科学研究所
+安全生产应急救援队
+安全生产科技服务中心
+安全生产信息调度和应急指挥中心
+安全生产科学技术研究中心
+安全生产科技教育中心
+安全生产教育中心
+安全生产考试中心
+安全生产考务中心
+安全生产技术中心
+安全生产检测检验中心
+安全生产监察执法总队
+安全生产培训中心
+安全生产技术培训中心
+安全生产资格考试中心
+安全生产信息调度中心
+安全生产科学技术服务中心
+安全生产宣教中心
+安全生产救护大队
+安全生产服务中心
+安全生产救援救护中心
+安全生产培训教育中心
+安全生产监控中心
+安全生产应急管理中心
+安全生产应急救援大队
+安全生产培训考试考核中心
+安全生产协会
+煤炭安全生产管理局
+安全生产管理监督局
+安全生产管理局
+应急管理事务服务中心
+医疗保险服务管理局
+医疗保险管理中心
+医保中心
+规划建设委员会
+城乡统筹发展局
+规划展览馆
+城建工程管理处
+城建工程管理局
+规划管理办公室
+城乡管理局
+规划信息技术中心
+规划局
+规划设计研究院
+规划勘测院
+规划和城市综合管理局
+规划委员会
+规划处
+规划委
+住房和规划建设管理局
+规划管理局
+城市规划信息中心
+规划展示馆
+农业和畜牧业局
+兽药监察所
+土壤肥料技术站
+土壤肥料研究所
+土壤肥料站
+病虫防治检疫站
+有害生物防治检疫总站
+农牧机械管理局
+水产养殖场
+森林病虫病防治检疫站
+饲料草种监督检验站
+农产品质量监督检验测试分中心
+农产品质量安全监督检验测试中心
+农产品质量安全监督管理办公室
+农畜产品质量安全中心
+农林技术推广中心
+花苗木服务中心
+农林业行政执法大队
+畜牧发展局
+牧草饲料工作站
+白蚁防治管理处
+畜牧兽医管理中心
+畜牧兽医发展中心
+畜禽繁育改良站
+农畜产品质量安全监督站
+畜禽品种改良站
+森林病虫害防治工作站
+花苗木管理所
+动物疫病防治控制中心
+植物保护检疫局
+动植物保护管理总站
+花卉苗木培育中心
+畜牧兽医所
+农业综合执法督察总队
+农业综合执法队
+农业行政综合执法总队
+农畜产品质量安全监督管理中心
+林牧业局
+土肥站
+兽医局
+农林综合行政执法总队
+镇政府
+办事处
+乡政府
+区政府
+教育发展服务中心
+教育信息中心
+教育和体育局
+教育信息化中心
+教育数据信息中心
+教育和科学技术局
+教育和科技局
+教育科技体育局
+教育装备技术中心
+土地交易中心
+土地综合开发中心
+教育矫治局
+监狱
+劳动教养管理局
+劳动教养管理所
+教育矫治所
+戒毒管理局
+戒毒所
+未成年犯管教所
+戒毒管理所
+戒毒康复所
+少年犯管教所
+中国冶金地质总局
+武警
+军区
+军分区
+解放军
+武装警察
+人民防空办公室
+军队离退休干部
+军用供应站
+预备役
+军队离休退休干部
+军粮供应站
+团部
+部队
+边防支队
+军委
+武装部
+军用饮食供应站
+军队粮油供应站
+空军
+军供站
+军粮供应管理中心
+退役军人事务厅
+退役军人事务局
+退役军人事务部
+医院
+卫生院
+医疗集团
+精神病院
+社区卫生服务中心
+门诊部
+康复中心
+精神病防治院
+精神病治疗所
+皮肤性病防治院
+职业病防治院
+妇女儿童医疗中心
+麻风病防治中心
+医疗中心
+临床检验中心
+公共卫生临床中心
+医疗急救中心
+牙病防治所
+医疗救护站
+临床技术研发中心
+肝病研究所
+血液中心
+心血管病中心
+慢性病防治院
+皮肤病防治院
+伤骨科研究所
+口腔病防治院
+中毒抢救治疗中心
+急救中心
+传染病院
+聋儿康复教育中心
+健康教育所
+残疾人康复教育中心
+保育院
+数字医学工程研究院
+保健服务中心
+医药科学研究所
+精神医学中心
+社区健康服务管理中心
+口腔病防治所
+内分泌与代谢病研究所
+肿瘤防治院
+精神病康复院
+医疗急救服务中心
+中医骨伤科研究所
+医疗机构服务中心
+精神康复院
+急救医疗站
+紧急医疗救援中心
+耳鼻咽喉科研究所
+医疗救治中心
+老年病医疗研究中心
+眼科研究所
+卫生分院
+卫生所
+体检康复保健中心
+消毒供应中心
+老年医学中心
+市政工程公司
+市政建设集团
+市政基础设施建设有限公司
+市政公用有限公司
+市政建设开发有限公司
+市政工程维修公司
+市政管网有限公司
+城市绿化队
+环卫清运中心
+市政工程安全质量监督站
+市政工程服务中心
+市政工程养管中心
+市政排水事务中心
+环卫站
+市政服务所
+市政建设所
+市政设施养护所
+市政工程站
+城市道路绿化处
+市容局
+环境卫生监管处
+市容市貌局
+环境卫生发展中心
+市政路灯园林管理所
+政务中心
+行政服务中心
+行政审批服务中心
+民生服务中心
+政务服务管理局
+数据资源管理局
+综合服务中心
+社区服务中心
+行政服务大厅
+政务服务管理办公室
+项目推进服务中心
+政务服务中心
+公共事务中心
+政府服务中心
+便民服务中心
+中央商务区服务中心
+行政审批管理办公室
+行政审批服务局
+行政审批中心
+行政审批局
+政务服务保障中心
+行政审批管理处
+81890求助服务中心
+行政服务管理中心
+办事服务中心
+便民专线服务中心
+行政服务保障中心
+政务大厅管理中心
+行政服务站
+政务大厅管理服务中心
+政务服务局
+政务服务办公室
+政务服务监督管理局
+政务服务监督办公室
+市民服务中心
+新闻网管理中心
+农村经济委员会
+粮油信息中心
+发展和改革委局
+粮油管理处
+粮油储备中心
+粮食中心储备库
+粮食储备库
+中储粮
+储备粮
+国家粮食储备
+粮食储备直属库
+农业经济局
+国家粮食库
+国检珠宝培训中心
+珠宝研究所
+职卫中心
+职业安全卫生研究中心
+职业安全健康监督检测检验中心
+职业安全监督管理站
+职业健康司
+职业健康监督所
+职业病管理处
+保监会
+保险监督管理委员会
+社会保障基金理事会
+工商行政管理总局
+工商行政管理局
+工商总局
+工商局
+市场监管局
+市场和质量监督管理委员会
+市场监督管理局
+市场建设服务中心
+工商质监管理局
+市场和质量监督管理局
+市场发展局
+市场监管稽查大队
+消费者协会
+市场服务中心
+工商和质量监督管理局
+工商质量监督管理局
+工商管理局
+市场和质量监督稽查总队
+工商管理和质量监督局
+消费者权益保护委员会
+消费者权益保护局
+市场监管委员会
+市场监督检验所
+消费者投诉举报中心
+保护消费者权益委员会秘书处
+市场质量监督管理局
+工商行政管理服务中心
+市监局
+交通轨道建设办公室
+机动车辆安全检验站
+大数据局
+数据资源局
+工业园区管理委员会
+工业园区管委会
+营商环境建设监督局
+重点项目服务中心
+桂城投资发展公司
+国家质检总局
+特种机电设备检测研究院
+旅游事业局
+中国国家铁路集团
+机务段
+供电段
+动车段
+广铁
+煤炭地质总局
+地质工程勘察院
+地质实验研究所
+勘察测绘研究院
+国土规建局
+海洋环境预报中心
+矿产资源管理所
+旅游开发有限公司
+旅游发展股份有限公司
+旅游质量监督管所
+旅游开发有限责任公司
+旅游监察支队
+交通投资集团
+交投
+交通投资建设集团
+港航发展中心
+道路运输发展中心
+公路发展中心
+交通运输工程质量监测鉴定中心
+停车管理事务中心
+不动产中心
+街道拆迁办公室
+海洋环境监测与预报中心
+开垦整理中心
+征收储备局
+资源服务中心
+复垦中心
+统征整理中心
+资源管理事务中心
+勘测规划所
+资源监察大队
+规划建设执法监察队
+资源规划研究院
+储备事务中心
+渔政站
+渔政管理局
+渔政渔监站
+渔政渔港监督管理局
+渔政船检港监管理局
+农业科学推广研究院
+水产技术指导站
+畜牧良种场
+国际农发基金贷款项目管理办公室
+海洋和渔业厅
+海洋和渔业局
+不动产交易所
+地质测量队
+地质矿产勘查院
+地质勘察技术院
+海洋环境监测预报中心
+不动产交易登记中心
+拆迁安置工作指挥部
+征地拆迁管理处
+耕地质量管理处
+城乡规划局
+城乡规划司
+城乡规划管理局
+城乡规划
+城乡规划建设委员会
+草原监理站
+草原工作站
+草原资源监测管理站
+森林和草原资源监测站
+草原监督管理局
+林业局
+林业厅
+园林局
+园林绿化局
+园林绿化管理处
+园林绿化管理局
+林业管理站
+森林资源保护中心
+森林资源监测中心
+森林公园
+林业委员会
+林业技术推广中心
+林业管理局
+园林管理处
+园林办
+林业工作站
+园林管理局
+园林绿化科研所
+林业工作总站
+生态公益林管理中心
+森林工业总局
+林业科学研究所
+森林病虫害防治检疫站
+林业总场
+林木种苗总站
+林业站
+绿化管理所
+林业实验局
+园林绿地所
+园林绿化所
+园林处
+果树研究所
+林业科技推广站
+绿化管理事务中心
+林业管理处
+林政执法大队
+林业种苗管理站
+林业和城乡绿化局
+园林绿化事业局
+公园管理局
+绿化管理署
+林业技术推广服务中心
+林业技术推广站
+林业服务中心
+林业科技示范中心
+林业信息中心
+果业局
+园林所
+植物园
+林果科技服务中心
+林业工作中心站
+林木种质资源中心
+林业调查规划院
+林业建设服务中心
+绿化管理指导站
+民政办
+养老服务中心
+社会福利管理服务中心
+婚姻登记服务中心
+社会救助局
+养老服务指导中心
+社会救助福利中心
+婚姻登记中心
+婚姻登记处
+民政服务中心
+社会救助管理局
+社会福利总院
+婚姻收养登记管理中心
+防灾减灾局
+防灾减灾中心
+灾害监测预警中心
+海洋预报减灾中心
+政法委
+政法委员会
+卫生和计划生育委
+卫计委
+卫生局
+计生委
+计生局
+卫生信息中心
+卫生计生宣传中心
+卫生监督局
+血站
+卫生和计划生育局
+急救指挥中心
+医疗服务管理评价中心
+计划生育服务站
+卫生厅
+卫计局
+计划生育服务中心
+肿瘤研究所
+中医药管理局
+中药研究所
+医疗器械质量监督检验院
+药物依赖防治研究所
+计划生育局
+疾控中心
+计划生育监督所
+医疗器械检测中心
+中医文献馆
+卫生和计划生育监督执法支队
+卫生计生监督所
+卫生服务中心
+临床病理诊断中心
+卫生事业服务中心
+公共卫生救治中心
+保健站
+劳动卫生职业病研究院
+急救指挥调度中心
+急救站
+卫生计生综合监督执法局
+妇幼保健
+公立医疗机构管理中心
+卫生和计划生育信息中心
+精神卫生防治中心
+卫生干部教育培训中心
+医疗紧急救援中心
+卫生计生监督执法局
+计划生育技术服务站
+卫生监督所
+优生优育公共服务中心
+卫生计生委统计信息中心
+医药研究院
+残疾人康复服务中心
+医疗卫生专业服务中心
+计划生育技术指导站
+急救医疗指挥中心
+公共卫生医疗救治中心
+防治站
+防疫站
+健康促进中心
+卫生计生信息中心
+卫生计生委
+血防站
+医疗器械检验所
+人口宣传教育中心
+人口和计划生育宣传教育中心
+卫生宣传教育中心
+计划生育宣传教育中心
+医学交流中心
+计划生育研究中心
+卫生和计划局
+卫生健康委员会
+卫生计生执法支队
+残疾人安养院
+妇女儿童保健中心
+地方病防治办公室
+医学科学研究所
+健康体检中心
+计划生育宣传技术指导站
+计划生育办公室
+计划生育药具管理站
+医疗器械检测所
+医疗器械检验研究中心
+医疗器械检验检测所
+医疗救援指挥中心
+残疾人康复研究中心
+中医药发展服务中心
+职业病防治研究院
+计划生育研究所
+计划生育委员会
+卫生和计划委员会
+卫生和计划生局
+中药研究院
+血吸虫病防治领导小组办公室
+防治艾滋病工作委员会办公室
+妇幼计生中心
+残疾人康复指导中心
+血吸虫病预防站
+卫生检疫站
+残疾人康复管理中心
+皮肤病防治管理站
+优生优育宣传中心
+残疾人康复服务指导中心
+血吸虫病防治办公室
+妇幼儿童保健中心
+血吸虫病预防控制站
+残疾人康复托养中心
+卫生与健康委员会
+计生协会
+卫生和计生委员会
+卫生计生综合监督处
+卫生和计划生育监督执法总队
+中医药发展局
+地方病预防控制所
+卫生与生育计划局
+卫生计生综合行政执法队
+卫生计生综合监督行政执法支队
+计划生育药品器械管理站
+卫生健康局
+公共卫生与计划生育管理所
+公共卫生研究院
+派出所
+人力资源事务服务中心
+就业人才局
+人力资源和社会保障服务中心
+社会事务管理中心
+土地价格监测中心
+土地价格评估所
+国土价格管理处
+土地价格与征地事务中心
+国土资源交易事务中心
+国土资源交易和登记服务中心
+国土资源交易事务所
+国土资源交易评审中心
+国土资源交易拍卖中心
+国土资源交易管理办公室
+国土资源交易局
+土地矿业权储备交易中心
+质量监督检验检疫总局
+质量技术监督局
+质监局
+组织机构代码管理中心
+质量检测
+设备监督检验中心
+标准化研究院
+检验检测中心
+产品质量监督检验院
+锅炉压力容器监督检验院
+计量检定所
+质量监督检测研究院
+质量技术监督检验测试中心
+入境边防检查站
+技术监督局
+质量监督检验研究院
+质量技术监督
+产品检验检测
+质量检验检测
+质量监督检验技术研究院
+特种设备检测研究院
+特种设备检验检测院
+质量认证中心
+检疫检验局
+物品编码中心
+检验检测研究院
+质量监督检验检测院
+计量检定测试中心
+计量监督检测院
+质量计量监测所
+花鼓戏传承保护中心
+文化交流服务中心
+艺术保护传承中心
+文化市场行政执法大队
+柳子戏艺术保护传承中心
+文化市场综合执法支队
+文化事业发展局
+湘剧保护传承中心
+文化和旅游厅
+文物研究所
+林草局
+林业和草原局
+国家公园管理局
+生态保护修复司
+绿化委员会办公室
+森林资源管理司
+森林资源管理总站
+草原管理司
+湿地管理司
+国际湿地公约履约办公室
+荒漠化防治司
+野生动植物保护司
+濒危物种进出口管理办公室
+自然保护地管理司
+国有林场和种苗管理司
+森林公安局
+林业和草原改革发展司
+林业和草原科学研究所
+草原总站
+草原综合专业队
+林业草原规划院
+林业和草原调查规划院
+林业和草原发展服务中心
+林业和草原项目服务中心
+林业和草原服务中心
+林业和草原技术推广中心
+草原生态综合执法大队
+草原饲料工作站
+草原生态保护补助奖励工作领导小组办公室
+草原监理总站
+草原有害生物监测预警中心
+草原监督所
+林业与草原局
+森林和草原局
+环境保护和草原局
+草原监理工作总站
+草原监理中心
+林业和草原自然资源事务中心
+草原工作总站
+草原确权承包工作领导小组办公室
+草原沙化治理工程领导小组办公室
+草原饲料监督管理站
+草原管理所
+草原工件站
+草原监理检测站
+草原监理监测站
+草原管理站
+草原监理所
+草原技术推广总站
+草原监理工作站
+草原综合治理项目建设办公室
+草原勘察规划院
+湿地草原管理处
+草原监督管理站
+草原基本建设综合专业队
+草原管理总站
+草原饲料管理站
+草原技术推广站
+林业草原保护中心
+林业草原局
+林业和草原司
+林业和草原管理局
+森林草原指挥部
+野生动植物保护办公室
+野生动植物保护处
+野生动植物保护管理处
+野生动植物保护管理局
+野生动植物保护管理所
+野生动植物保护管理中心
+野生动植物保护和自然保护区管理中心
+野生动植物保护救护站
+野生动植物保护协会
+野生动植物保护研究中心
+野生动植物保护中心
+农牧林水局
+林业和草原基金管理总站
+林业基金管理站
+林业建设基金征收管理站
+林业基金管理总站
+林业基金管理办公室
+林业基金站
+林业基金征收管理站
+林业和草原重点工程基金总站
+中国林业科学研究院
+中国绿色时报社
+中国林业出版社
+国际竹藤中心
+南京森林警察学院
+中国大熊猫保护研究中心
+地质调查局
+环境地质水文地质部
+中国地质科学院
+地质科技创新中心
+广州海洋地质调查局
+青岛海洋地质研究所
+中国自然资源航空物探遥感中心
+中国地质环境监测院
+自然资源实物地质资料中心
+中国地质图书馆
+国家地质实验测试中心
+北京探矿工程研究所
+地质环境监测总站
+自然资源和规划局
+自然资源标林业和湿地事务服务中心
+自然资源林业局
+自然资源林业和草原局
+自然资源林业和湿地事务服务中心
+自然资源项目中心
+自然资源陕西省卫星应用技术中心
+自然资源遥感院
+自然资源遥感技术管理中心
+自然资源资料馆
+自然资源资料档案馆
+自然资源资产统计核算中心
+自然资源资产管理局
+自然资源资产管理办公室
+自然资源调查院
+自然资源调查评价研究院
+自然资源调查设计测绘中心
+自然资源调查规划院
+自然资源调查规划站
+自然资源调查规划研究中心
+自然资源调查规划中心
+自然资源调查监测院
+自然资源调查监测信息中心
+自然资源调查监测中心
+自然资源调查登记中心
+自然资源调查测绘中心
+自然资源调查勘测院
+自然资源调查利用中心
+自然资源调查中心
+自然资源调查与规划中心
+自然资源调查与登记中心
+自然资源调处服务中心
+自然资源规划院
+自然资源规划编制研究中心
+自然资源规划编制服务中心
+自然资源规划研究中心
+自然资源规划测绘信息院
+自然资源规划服务中心
+自然资源规划执法支队
+自然资源规划建设局
+自然资源规划展示和档案馆
+自然资源规划局
+自然资源规划和测绘中心
+自然资源规划勘测院
+自然资源规划分局
+自然资源规划事务服务中心
+自然资源规划中心
+自然资源行政执法队
+自然资源行政执法支队
+自然资源行政执法大队
+自然资源行业职业技能鉴定指导中心
+自然资源自动化中心
+自然资源耀州分局
+自然资源网上交易中心
+自然资源综合调查监测院
+自然资源综合调查中心
+自然资源综合行政执法队
+自然资源综合行政执法西青支队
+自然资源综合行政执法支队
+自然资源综合行政执法总队
+自然资源综合行政执法局
+自然资源综合行政执法大队
+自然资源综合服务中心
+自然资源综合整治技术服务中心
+自然资源综合整治中心
+自然资源综合执法队
+自然资源综合执法支队
+自然资源综合执法大队
+自然资源综合事务技术保障中心
+自然资源管理行政执法支队
+自然资源管理服务中心
+自然资源管理所
+自然资源管理局
+自然资源管理委员会
+自然资源管理和规划局
+自然资源管理中心
+自然资源科学研究院
+自然资源确权登记服务中心
+自然资源确权登记交易服务中心
+自然资源确权登记事务中心
+自然资源确权登记中心
+自然资源研究规划中心
+自然资源省局
+自然资源监测院
+自然资源监测省级试点
+自然资源监测和生态修复中心
+自然资源监测信息中心
+自然资源监测中心
+自然资源监察支队
+自然资源的规划局
+自然资源登记管理中心
+自然资源登记中心
+自然资源电子政务中心
+自然资源生态环境和建设管理局
+自然资源生态修复整治中心
+自然资源生态修复和海洋管理服务中心
+自然资源生态修复中心
+自然资源环境监测站
+自然资源湿地生态保护中心
+自然资源测绘队
+自然资源测绘设计中心
+自然资源测绘数据中心
+自然资源测绘成果管理中心
+自然资源测绘地理信息规划院
+自然资源测绘中心
+自然资源测绘与监测院
+自然资源检测和生态修复中心
+自然资源档案馆
+自然资源档案博物馆
+自然资源档案中心
+自然资源权籍调查服务中心
+自然资源权益调查监测院
+自然资源权益与储备保障中心
+自然资源服务所
+自然资源服务与行政执法中心
+自然资源智能监管指挥中心
+自然资源整治储备中心
+自然资源整治修复中心
+自然资源整治中心
+自然资源数据资料管理中心
+自然资源数据信息中心
+自然资源数据中心
+自然资源改革发展研究中心
+自然资源收购储备中心
+自然资源收储与开发中心
+自然资源技术服务中心
+自然资源技术信息中心
+自然资源技术中心
+自然资源执法监察支队
+自然资源执法监察总队
+自然资源执法监察局
+自然资源执法监察大队
+自然资源执法支队
+自然资源执法大队
+自然资源所
+自然资源所有者权益事务中心
+自然资源成果质量检验中心
+自然资源征收中心
+自然资源开发服务中心
+自然资源开发整理中心
+自然资源应急中心
+自然资源市场管理服务中心
+自然资源巡查督察中心
+自然资源宣教中心
+自然资源宣传教育中心
+自然资源宣传中心
+自然资源安全调度中心
+自然资源委员会怀柔分局
+自然资源大数据中心
+自然资源坪山管理局
+自然资源地理规划信息中心
+自然资源国土空间规划服务中心
+自然资源和规建局
+自然资源和规化局
+自然资源和规刬局
+自然资源和规划
+自然资源和规划林业综合行政执法支队
+自然资源和规划高新技术产业园区分局
+自然资源和规划高新分局
+自然资源和规划行政执法支队
+自然资源和规划蜀冈瘦西湖风景名胜区分局
+自然资源和规划综合服务中心
+自然资源和规划综合执法支队
+自然资源和规划综合执法大队
+自然资源和规划管理局
+自然资源和规划管理中心
+自然资源和规划研究中心
+自然资源和规划监察支队
+自然资源和规划用地服务中心
+自然资源和规划档案馆
+自然资源和规划服务中心
+自然资源和规划技术中心
+自然资源和规划执法监察支队
+自然资源和规划执法监察大队
+自然资源和规划所
+自然资源和规划征拨事务中心
+自然资源和规划建设局
+自然资源和规划姜堰分局
+自然资源和规划大数据中心
+自然资源和规划司
+自然资源和规划厅
+自然资源和规划勘测事务中心
+自然资源和规划分局
+自然资源和规划信息中心
+自然资源和规划住建局
+自然资源和规划事务服务中心
+自然资源和规划中心
+自然资源和行政执法队
+自然资源和生态环境处
+自然资源和生态环境保护服务中心
+自然资源和生态保护执法大队
+自然资源和水务局
+自然资源和建设管理局
+自然资源和建设局
+自然资源和城乡建设局
+自然资源和地理空间基础信息库项目办公室
+自然资源和信息中心
+自然资源和不动产评估发展研究中心
+自然资源和不动产确权登记中心
+自然资源和不动产权属档案中心
+自然资源司
+自然资源发展中心
+自然资源及规划局
+自然资源卫星应用技术中心
+自然资源博物馆
+自然资源勘测调查院
+自然资源勘测设计院
+自然资源勘测规研究划院
+自然资源勘测规划院
+自然资源勘测规划设计院
+自然资源勘测规划研究院
+自然资源勘测技术咨询服务中心
+自然资源勘测中心
+自然资源利用规划院
+自然资源利用服务中心
+自然资源利用事务中心
+自然资源分局
+自然资源储备整理信息中心
+自然资源储备整理中心
+自然资源储备开发中心
+自然资源储备利用中心
+自然资源储备交易事务中心
+自然资源储备中心
+自然资源偹整理信息中心
+自然资源修复事务中心
+自然资源修复中心
+自然资源信息管理中心
+自然资源信息档案中心
+自然资源信息服务中心
+自然资源信息中心
+自然资源保标护与行政执法中心
+自然资源保招护与行政执法中心
+自然资源保护行政执法支队
+自然资源保护管理中心
+自然资源保护检查中心
+自然资源保护开发利用中心
+自然资源保护工作站
+自然资源保护处
+自然资源保护和发展中心
+自然资源保护事务服务中心
+自然资源保护中心
+自然资源保护与行政执法中心
+自然资源保护与发展中心
+自然资源保护与利用中心
+自然资源产品质量检验中心
+自然资源交易服务中心
+自然资源交易和建设用地事务中心
+自然资源交易事务中心
+自然资源交易中心
+自然资源事物服务中心
+自然资源事务管理中心
+自然资源事务服务中
+自然资源事务服务中心
+自然资源事务中心
+自然资源事业发展中心
+自然资源与规划档案馆
+自然资源与规划技术中心
+自然资源与规划建设管理局
+自然资源与规划建设局
+自然资源与规划局
+自然资源与规划厅
+自然资源与规划信息中心
+自然资源与行政执法中心
+自然资源与科技信息研究所
+自然资源与生态环境局
+自然资源与生态保护综合执法局
+自然资源与生态保护综合执法大队
+自然资源与房屋征收服务中心
+自然资源与建设规划局
+自然资源与建设管理局
+土地综合整治局
+自然资源所有者权益处
+国土空间利用服务中心
+国土空间生态修复中心
+国土空间整治与生态修复中心
+耕地保护处
+耕地质量保护监测中心
+矿业权交易中心
+土地与矿业权公开交易管理办公室
+土地和矿业权收购储备交易中心
+矿产资源监督检测中心
+矿产资源开发保护中心
+矿产资源保护中心
+地理信息管理处
+地理信息管理中心
+自然资源督察办公室
+基础测绘设施技术保障中心
+国土空间规划编制研究中心
+国土空间规划研究中心
+国土空间规划技术研究中心
+国土资源中心所
+应急中心
+指挥部
+指挥中心
+作战训练处
+特种灾害救援处
+信息通信处
+机关事务
+机关行政事务
+军休
+教育后勤管理处
+环境综合整治指挥部
+市政工程建设
+市政建设
+行政服务
+办公室
+委员会
+办公厅
+对外联络部
+信息中心
+首饰管理中心
+质量监督检验中心
+首饰行业协会
+标准化技术委员会
+防火指挥部
+综合行政执法大队
+执法总队
+服务局
+公共服务中心
+信息市场
+资源局
+资源开发管理办公室
+公积金管理
+兽医研究所
+水产业发展服务中心
+兽医中心
+兽医总站
+服务中心
+人防指挥保障中心
+科学发展研究院
+管理中心
+数据中心
+信息管理中心
+后勤保障中心
+执法督察总队
+监督局
+执法监督大队
+监督行政执法大队
+监督执法大队
+综合监督所
+管理站
+监督分所
+监督中心
+服务所
+管理服务中心
+保健院
+妇保院
+妇幼站
+妇幼卫生保健所
+质量计量监督
+特种设备
+纤维
+质量计量
+产品质量
+质量监督
+研究院
+检测所
+检验所
+检测中心
+测试所
+检验局
+研究所
+检定中心
+检验中心
+防洪工程
+防洪治理工程
+排涝工程
+堤防工程
+防洪排涝工程
+山洪灾害防治
+除险加固工程
+堤防
+防洪堤
+劳动保障
+执法大队
+执法支队
+监察大队
+监察支队
+交通建设项目
+交通项目
+交通工程
+铁路建设
+交通工程建设
+救护中心
+保护管理站
+保护与检疫站
+保护站
+疫病预防控中心
+检疫站
+救护研究中心
+管理办公室
+工作站
+疾病控制与诊断中心
+国土整治
+土地储备项目
+土地整治
+测试院
+监测中心
+检验站
+湿地公园
+湿地保护
+古城保护
+景区
+旅游区
+建设管理处
+管理局
+安全生产
+安全质量
+管理协会
+监察总队
+监管管理局
+应急救援中心
+监督管理局
+管理服务站
+纠纷调处中心
+管理处
+管理指导中心
+交通行政
+交通综合
+交通运输
+行政执法支队
+质量安全监管办公室
+执法监察支队
+质量安全管理办公室
+行政执法大队
+种质资源中心
+机械试验鉴定站
+机械安全监理所
+机械研究院
+质量安全监管中心
+经营管理工作站
+机械安全监督管理所
+质量安全检验检测站
+发展服务中心
+质量安全中心
+执法监察大队
+行政执法总队
+品种资源研究所
+综合执法大队
+质量安全监督所
+栽培技术指导站
+技术推广站
+质量检验测试中心
+科学技术推广站
+质量安全监督检验检测站
+质量安全监督管理中心
+机械管理处
+质量安全管理总站
+科学技术普及站
+技术推广所
+技术管理中心
+监测总站
+技术推广中心
+机械中心
+发展局
+农村厅
+综合办公室
+质量安全监督检测站
+安全检测中心
+研究中心
+机械管理站
+电子政务
+国有土地
+稀土工业
+交通调度
+高速公路
+交通信息
+指挥总中心
+网管中心
+监控中心
+应急处置中心
+检验研究院
+检定研究院
+评估中心
+旅游发展
+旅游事务
+信息管理办公室
+预算稽核中心
+审核中心
+农业技术推广
+畜牧兽医技术
+农业科学
+热带作物
+畜牧兽医
+种植业
+电子商务
+征收管理局
+征收管理分局
+离休干部
+机关干部
+休养所
+培训中心
+服务台
+试验站
+技术中心
+装备中心
+探测中心
+共产主义青年团
+省委
+市委
+县委
+团校
+共产党
+开发区
+商务中心区
+开发建设指挥部
+电化教育
+教学仪器
+教育技术
+教育装备
+管理所
+装备站
+设备站
+装备室
+发展研究中心
+塑料工业
+工业技术
+信息技术
+治霾工作
+防沙治沙
+生态保护修复项目
+艺术
+文化
+戏剧
+交流中心
+国土
+地质
+矿产
+调查局
+勘查局
+规划院
+食品药品
+食品
+食品质量
+食品安全
+稽查支队
+安全监控中心
+检测研究院
+安全检测技术研究院
+监管局
+检验检测院
+检验检测与认证中心
+监管综合行政执法队
+稽查局
+稽查队
+监管所
+监督检验院
+稽查大队
+稽查服务中心
+监督管理大队
+监督管理司
+监督管理处
+抽检监测司
+抽检监测局
+抽检监测处
+经营
+管理
+公司
+客运交通
+农村合作经济
+管理总站
+管理指导站
+土地储备
+土地收购
+土地收储
+土地整改
+土地征用
+土地开发
+土地利用
+土地复垦
+土地整理
+国土资源
+储备中心
+整治中心
+交易中心
+整改中心
+整理中心
+整理服务中心
+发展中心
+开发中心
+旅游产业
+公路
+养护工程处
+公路事务中心
+养护工程部
+养护段
+建设
+扶贫
+开发办公室
+国土资源执法监察
+局
+队
+交通
+路政
+监督站
+质量监督所
+管理大队
+柑桔科学
+蔬菜
+不动产登记
+中心
+旅游
+管委会
+监督管理所
+发展促进局
+综合执法支队
+渔政渔船
+检验监督
+白蚁
+防治研究所
+防治所
+土地
+耕地质量
+监测保护中心
+资源监察支队
+资源事务管理所
+资源勘测队
+勘测所
+收储中心
+工程测绘队
+渔政
+渔港
+渔业
+管理监督处
+技术推广总站
+船检港监站
+储备开发
+收储开发
+行政执法监察大队
+征费稽查站
+动态监测中心
+储备局
+调查办公室
+科技中心
+整备中心
+储备办公室
+管理事务所
+消防救援
+总队
+支队
+大队
+市公安
+区公安
+县公安
+分局
+社会保障卡
+城市建设
+棚户区改造
+住房改造
+旅游小镇工程
+整体搬迁改造
+旧城改造
+街区保护开发
+征迁改造
+村镇建设
+重点工程
+城乡一体化
+片区搬迁工作设
+采煤沉陷区综合治理办公室
+保障性安居工程
+城镇化项目
+危房改造
+城镇建设
+新城建设
+城中村改造
+老街建设
+度假区建设
+城市建设工程
+小区应急改造
+综合开发建设
+项目部
+事务中心
+交通发展集团
+交通一卡通
+机场
+地铁
+轨道交通
+交通产业发展
+地下铁道
+高速发展
+交通控股
+泵闸
+堤闸
+水资源
+水闸
+河道
+引水工程
+河流治理项目
+饮水安全工程项目
+移民扶持项目
+水利工程
+水保工程
+饮水安全
+饮改水工程
+南水北调工程
+饮水扶贫工程
+节水改造工程
+水土保持工程
+河道综合治理工程
+水电工程
+节水配套改造工程
+黑臭水体治理工程
+河流治理
+河治理工程
+水库工程
+水土保持
+灌区
+安全饮水工程
+水源工程
+饮用水工程
+饮水工程
+节水灌溉
+干渠维修工程
+地下水
+灌溉工程
+农田水利
+河堤
+水利枢纽
+水务工程
+水库建设
+泵站
+水利项目
+五水共治
+淮河流域
+水库
+水电
+水务
+供水工程
+水文
+水利
+水土
+建设处
+建设站
+监测站
+管理署
+建设指挥部
+建设运营中心
+勘测局
+规划设计院
+移民工程建设处
+服务站
+勘测设计院
+工作局
+科学研究所
+工作总站
+规划队
+监测分站
+农业机械
+农机
+农业技术
+水产技术
+农业科技
+鉴定站
+推广总站
+推广站
+推广服务站
+推广中心
+机关
+后勤发展中心
+运行保障中心
+市容
+市政
+环境事务所
+监察中队
+养护队
+设施监管处
+建设服务所
+养护处
+设施监管中心
+设施维护所
+环境绿化维护中心
+工程质量监督站
+新闻
+宣传中心
+农垦
+粮食
+粮油
+品质检验所
+战略储备库
+市场监督稽查队
+管理储备中心
+监察执法队
+食品站
+残疾人教育
+语言文字培训
+师资培训
+教育研究
+教育科研
+测试中心
+国家超级计算
+自然保护区
+管护局
+管护分局
+环保
+环境保护
+环境
+市场监督
+文物
+活动中心
+保护研究所
+保护研究院
+保护中心
+综合执法队
+传播有限公司
+发展有限公司
+护林防火
+森林防火
+事业局
+养护中心
+养护事务中心
+建设工程
+建筑工程
+民用航空
+航务
+客运
+治理非法超限超载
+水利水电技术
+供水
+排水
+水务工程建设
+水产
+农业综合开发
+牧区综合改革
+农业发展
+基本农田建设
+高标准农田提升工程
+供热
+热力
+公用工程
+照明
+亮化
+路灯
+公用事业
+环境卫生
+公共工程
+公共卫生服务
+市政养护
+城市隧道
+区
+市
+县
+建设兵团
+省
+信息化中心
+网络中心
+网络管理中心
+大数据中心
+信息服务中心
+信息化促进中心
+信息化建设促进中心
+信息化服务中心
+信息化管理办公室
+信息资源管理中心
+信息资源中心
+网络管理服务中心
+信息化建设办公室
+网络信息中心
+数字化服务中心
+信息化建设中心
+粮食生产能力规划项目
+教育工作联席会议
+教育体育管理
+教育管理
+勤工俭学管理
+社会
+大数据
+发展办公室
+渣土
+污水
+结核病
+地方病
+疾病
+眼病
+慢性病
+传染病
+皮肤病
+血吸虫病
+职业病
+疾控
+防治院
+控制中心
+防治中心
+预防中心
+治疗所
+收治中心
+预防院
+公园
+园林
+绿化
+公益林
+国有林
+经济林
+绿化管护
+森林
+林业
+林木
+护林
+绿化服务中心
+绿化养护大队
+生态研究所
+规划设计大队
+种苗站
+资源管理局
+种苗管理站
+监测规划院
+技术指导站
+种苗管理总站
+资源管护站
+资源收储中心
+育种研究中心
+资源管理站
+科技推广总站
+有害生物防治检疫局

+ 4 - 0
src/jfw/modules/app/src/web/staticres/jyapp/big-member/css/public.css

@@ -204,6 +204,10 @@ input::placeholder {
     background: #fff;
     z-index: 9;
 }
+.j-header.jy-app-header.h5-header {
+  height: 10.66667vw;
+  padding: 0 3.2vw;
+}
 .jy-app-header .icon-back::before,
 .jy-app-header .icon-back-white::before {
    content: unset;

+ 8 - 3
src/jfw/modules/app/src/web/staticres/jyapp/big-member/js/push_settings.js

@@ -1,6 +1,6 @@
 /**
  * 推送设置和推送设置详情共用js
- * 
+ *
  */
 
 // 推送设置和推送设置详情共用配置(页面中只允许读取,不允许直接对pushSettingConf进行修改/覆盖等操作)(但可以修改具体Vue实例的)
@@ -376,7 +376,7 @@ var pushDetailSettingConf = {
                 if(power.indexOf(14) > -1 || typeIsSuperVIP) {
                     this.$set(this.detailsModuleOneConf, 'follow_project', !!r.follow_project)  // 项目关注
                 }
-                if(power.indexOf(13) > -1 || typeIsSuperVIP) {//power.indexOf(4) > -1 || power.indexOf(12) > -1 || 
+                if(power.indexOf(13) > -1 || typeIsSuperVIP) {//power.indexOf(4) > -1 || power.indexOf(12) > -1 ||
                     this.$set(this.detailsModuleOneConf, 'follow_ent', !!r.follow_ent)  // 企业关注
                 }
                 if(power.indexOf(9) > -1) {
@@ -424,6 +424,11 @@ var pushDetailSettingConf = {
         },
         // 异步切换app推送
         switchChangeAppPush: function (checked) {
+          // H5 环境需要调整到下载页面
+          if (window.utils && window.utils.$envs && window.utils.$envs.inH5) {
+            location.href = 'https://wx.jianyu360.cn/front/downloadapppage/normal?source=H5'
+            return
+          }
             var _this = this
             if (checked) {
                 this.settingConf.apppush = checked
@@ -522,7 +527,7 @@ var pushDetailSettingConf = {
                 success: function (res) {
                     loading.clear()
                     if (res.error_code == 0 && res.data && res.data.status == 1) {
-                        
+
                     } else {
                         _this.$toast(res.error_msg)
                     }

+ 77 - 3
src/jfw/modules/app/src/web/staticres/jyapp/css/wxinfocontent.css

@@ -103,7 +103,7 @@ pre {
 
 .content {
     line-height: 18px;
-    padding: 5px 10px 25px 10px;
+    padding: 5px 10px 10px 10px;
 }
 
 .abs {
@@ -1033,7 +1033,9 @@ ul {
     /* top:64px; */
     top: 21.33333vw;
 }
-
+.h5-tabfix{
+  top: 10.33333vw;
+}
 .tel {
     background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAACFElEQVRIS72VP2gTcRTHv++Xq5xJBwsKujsobaHVu591DHawYK5Yi3RwqNCioEPBwcWho5tKp4KLOFmHNteCgkMdxNr72fqHFh0dFAIRLZKGVJI++RVzXpqLMXfUG49738977/veO8IeP7TH+vABlqsGCXyfgINVKINzDHH1tWNnoybiA2zXywfFfUHmgvem2IHJdDkKJAj4TsCBMBGuoFedl29jAaTrLQHoCxPZBuk2TccDzKspMF8PrQB4qhw5EAtgzb0aFkI8bgD4qBx5PBagc2axPWUm8wCZdUIsRr1B60EsgA62Xe8hAZeCQkyYUBl5L4q4jqlZtN7sstVGpIJiFRajKxGzrwP8rmKegHP+sjE2tsrb3e8v9H2OUkXdqTiRfXnUIOMDAOPPRmOtWNo8vX4xXWgVEnqLpLt8E6DbtWL8YrNUHGgVEn7sJhcN+2TqCTH6awwH1n7SvrPvMj1f9HvLVVcIPAEgB8ZCJZF4/i3/Y/3T5XSpGtfwmuqxTZqpJQK6aiCMDRZ0i8AGMe7WjzQXWNCYyshHoSYHA+wZ7zBMPNsNaeYDAznlyCNNAfqDnUr2p2Z3t6sZxHPkTnf++YdjZ70bRNDG+9P1N0jLAC2mRzhBxp3gnjSCRAJUxfTGG0TXCDwSdrsY+KoceailFoVlqv0x25L9CUOcAbPFwDEApUqZx1eHTi3EBjQz+r8AfgHboK4ZotuPdQAAAABJRU5ErkJggg==) no-repeat center center;
     background-size: 100% 100%;
@@ -1282,4 +1284,76 @@ ul {
   width: 1px;
   height: 12px;
   background: #E5E5E5;
-}
+}
+.noLoginShow{
+  padding: 0 6px 80px;
+}
+.noLoginShow .serve-option{
+  padding: 0 0 18px;
+  margin: 0 auto;
+  margin-top: 16px;
+  background: #FFFFFF;
+  border-radius: 8px;
+  border: 1px solid transparent;
+  background-clip: padding-box, border-box;
+  background-origin: padding-box, border-box;
+  background-image: linear-gradient(to right, #fff, #fff), linear-gradient(to right, #FAE7CA, #F1D090);
+}
+.noLoginShow .serve-option .option-title{
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  height: 56px;
+  font-size: 18px;
+  color: #171826;
+  background: linear-gradient(180deg, #FFF7E7 22.4%, rgba(255, 255, 255, 0) 98.56%);
+}
+.option-common{
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  margin: 10px 20px 0;
+  height: 40px;
+  background: #2ABED1;
+  border-radius: 4px;
+  color: #F7F9FA;
+  font-size: 16px;
+}
+.option-register{
+  border: 1px solid #2ABED1;
+  background: #fff;
+  color: #2ABED1;
+  margin-top: 16px;
+}
+.option-hotline {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  margin-top: 20px;
+  color: #5F5E64;
+  font-size: 14px;
+  line-height: 20px;
+}
+.option-hotline>img {
+  margin-right: 4px;
+  width: 18px;
+  height: 18px;
+}
+.login-guide{
+  position: fixed;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  width: 100%;
+  height: 1.44rem;
+  z-index: 999;
+}
+.login-guide img {
+  width: 100%;
+  height: 100%;
+}
+
+.zhongbiaounit.notextcontent {
+  text-decoration-line: none!important;
+  color: #171826!important;
+}

BIN
src/jfw/modules/app/src/web/staticres/jyapp/images/adbottom.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/images/register_serve.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/book.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/book_active.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/box.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/box_active.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/home.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/home_active.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/mesg.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/mesg_active.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/mine.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/images/tabbar/mine_active.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/images/telphone.png


+ 220 - 23
src/jfw/modules/app/src/web/staticres/jyapp/js/common.js

@@ -312,8 +312,217 @@ function isNullObj (obj) {
 }
 
 var JyObjMessage = new Object();
+
+// $env, $envs的辅助函数
+window.utilsEnv = {
+  // 获取当前是android或者ios
+  androidOrIOS: function () {
+    var u = navigator.userAgent.toLowerCase()
+    var agent = null
+    if (/iphone|ipod|ipad|ios/.test(u)) {
+      agent = 'ios'
+    } else if (/(Android)/i.test(u)) {
+      agent = 'android'
+    }
+    return agent
+  },
+  getIsH5HostName: function () {
+    var hostname = location.hostname.toLowerCase()
+    return hostname.indexOf('h5') !== -1
+  },
+  // 是否是在app里面运行
+  getIsInTheAppContainer: function () {
+    // 判断是否在app环境下
+    var inApp = false
+    var u = navigator.userAgent.toLowerCase()
+    if (u.indexOf('jianyuapp') !== -1) {
+      inApp = true
+      return inApp
+    }
+    try {
+      if (this.androidOrIOS() === 'ios') {
+        var iniOSApp = typeof window.webkit.messageHandlers.skipAppointTab.postMessage === 'function'
+        inApp = iniOSApp
+      } else {
+        var inAndroidApp = typeof window.JyObj !== 'undefined'
+        inApp = inAndroidApp
+      }
+    } catch (e) {
+      console.warn(e)
+      inApp = false
+    }
+    return inApp
+  },
+  getPlatformEnvs: function () {
+    var inWX = navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1
+    var inApp = this.getIsInTheAppContainer()
+    var platformOS = this.androidOrIOS()
+    var getPlatform = function () {
+      var h5host = window.utilsEnv.getIsH5HostName()
+      if (inApp) {
+        return 'app'
+      } else if (h5host) {
+        return 'h5'
+      } else if (inWX) {
+        return 'wx'
+      } else {
+        return 'h5'
+      }
+    }
+    var platform = getPlatform()
+    return {
+      platformOS: platformOS,
+      platform: platform,
+      inApp: inApp,
+      inWX: inWX
+    }
+  }
+}
+utilsEnv.platformEnvs = utilsEnv.getPlatformEnvs()
+
+/**
+ * 提供模拟默认客户端函数,避免报错
+ */
+function mockAppFn () {
+  if (utilsEnv.platformEnvs.inApp) return
+  // 非APP环境下,提供默认函数
+  window.JyObj = {
+    mock: true,
+    //获取经纬度
+    getLLitude: function () {
+      return ''
+    },
+    /*跳转到指定的webview
+     * name 对应的值:
+     *   search:搜索 subscribe:订阅 box:百宝箱 me:我的 message:消息
+     */
+    skipAppointTab: function (name) {},
+    /*刷新指定的webview
+     * name 对应的值:
+     *   search:搜索 subscribe:订阅 box:百宝箱 me:我的 message:消息
+     * type 对应的值:
+     *   0:当前页 1:一级页面
+     */
+    refreshAppointTab: function (name, type) {},
+    skipCameraWithParam: function (type) {},
+    // 底部导航消息总数方法
+    sendMsgCount: function (num) {},
+    // 新打开相册客户端方法
+    skipAlbumWithParam: function (type) {},
+    savePic: function (imgbase64) {},
+    //读取复制内容
+    readRight: function () {},
+    //写入复制内容
+    wirteRight: function (txt) {},
+    //清除复制内容
+    clearRight: function () {},
+    //拨打电话
+    callPhone: function (phone) {},
+    //抖音or快手其他应用appName:应用名称;appLink:应用链接
+    openOtherAppLinks: function (appName, appLink) {},
+    //调用接口修改消息通知的打开数
+    openActivityPage: function (url, rectype, openid) {},
+    //清除 JyObjMessage
+    clearMessage: function () {},
+    //隐藏显示底部菜单栏 0:隐藏;1:显示
+    hiddenBottom: function (val) {},
+    //微信登录
+    loginByWeixin: function () {},
+    //分享功能
+    share: function (type, title, content, link) {},
+    //保存用户token
+    saveUserToken: function (val) {},
+    //获取用户token
+    getUserToken: function () {},
+    //移除用户token
+    removeUserToken: function () {},
+    //查看开关状态 是否接受消息
+    checkNoticePermission: function () {},
+    //打开接受消息开关
+    openSystemNotification: function () {},
+    //获取极光推送id
+    getPushRid: function () {},
+    //跳转外部链接
+    openExternalLink: function (url, title) {},
+    //获取当前版本号
+    getVersion: function () {},
+    alert: function (content) {},
+    //是否安装了微信
+    isInstallWeixin: function () {},
+    //登录加密
+    getCipherText: function (val) {},
+    //刷新首页和订阅页面
+    checkLab: function () {},
+    //登录成功后向客户端传参
+    loginSuccess: function (status) {},
+    //客户端登录页面点击返回 跳转到搜索首页
+    backUrl: function (val) {},
+    //清空通知栏消息
+    clearPushMessage: function () {},
+    //隐藏小红点
+    hideRedSpotOnMenu: function (menu) {},
+    //显示小红点
+    showRedSpotOnMenu: function (menu) {},
+    //微信支付
+    wxPay: function (order) {},
+    //支付宝支付
+    aliPay: function (order) {},
+    //获取原生的推送id
+    getOtherPushRid: function () {},
+    //获取手机型号
+    getPhoneBrand: function () {},
+    //获取定位
+    getLocation: function () {},
+    //切换菜单
+    chooseTab: function (indexTab) {},
+    //打开照相机
+    skipCamera: function () {},
+    //打开相册
+    skipAlbum: function () {},
+    //点击返回调用
+    judgeIsHidden: function (referer) {},
+    //返回值 处理
+    IosCall: function (functionName, args) {},
+    //查看定位开关状态 是否开启
+    checkLocationPermission: function () {},
+    //ios附件下载
+    //filename 文件名称不带后缀 【文件名称中不能带“/”否则会解析为多个目录】
+    //filetype 文件类型:doc word excel 等等
+    //fileurl 文件链接
+    //filesize 文件大小 字符串
+    //doc 、docx、excel 、xls 、 xlsxppt 、 pptx、 pdf、 txt、png 、PNG、jpg 、JPG 暂定这些为常见类型~支持在线预览+下载+转存
+    //其他类型仅支持下载+转存
+    downLoadFile: function (filename,filetype,fileurl,filesize) {},
+  }
+}
+
+// 部分h5浏览器(华为、荣耀)页面返回不刷新兼容
+function fixSomeH5BackRefresh () {
+  if (utilsEnv.platformEnvs.platform !== 'h5') return
+  const ua = navigator.userAgent.toLowerCase()
+  // 判断是不是华为/荣耀浏览器
+  const huawei = ua.includes('huawei') || ua.includes('honor')
+  if (huawei) {
+    window.addEventListener('visibilitychange', function () {
+      const v = document.visibilityState
+      if (v === 'hidden') {
+        // do something
+      } else if (v === 'visible') {
+        location.reload()
+      }
+    })
+  }
+}
+
+/**
+ * @date 2023-1-29
+ * 用于快速实现移动端引流相关调整,在App代码基础移植适配H5
+ */
+mockAppFn()
+fixSomeH5BackRefresh() // 华为、荣耀h5浏览器在页面返回不刷新兼容
+
 $(function () {
-  if (mySysIsIos()) {
+  if (mySysIsIos() && utilsEnv.platformEnvs.inApp) {
     window.JyObj = {
       //获取经纬度
       getLLitude: function () {
@@ -1175,35 +1384,22 @@ function checkMsgCount(acync, str, callback) {
     url: '/jymessageCenter/getCount?t=' + Date.now(),
     async: acync || false,
     success: function (r) {
-      var num = r.data.count
-      console.info(num)
-      try {
-        JyObj.sendMsgCount(num)
-      } catch (e) {
-        console.log(e)
+      var num = 0
+      if (r.error_code === 0) {
+        num = r.data.count
+        try {
+          JyObj.sendMsgCount(num)
+        } catch (e) {
+          console.log(e)
+        }
       }
       if (str == 1) {
         var isMsg = localStorage.getItem('isMsgNum')
         if (num !== Number(isMsg)) {
-          try {
-            /**
-             * 在此直接刷新 首页/消息 页面 (旧业务逻辑,可能是想消除对应页面未读消息小红点?)
-             * 改为判断是否为 tabbar 页面,仅在是 tabbar 页面是刷新
-             */
-            if (checkNowInTabbarPage()) {
-              JyObj.refreshAppointTab('search', 1)
-              JyObj.refreshAppointTab('message', 1)
-            }
-            // JyObj.checkLab()
-          } catch (e) {
-            console.log(e)
-          }
           kfData(acync, num)
-          // localStorage.setItem('isMsgNum', num)
         }
       } else {
         kfData(acync, num)
-        // localStorage.setItem('isMsgNum', num)
       }
 
       callback && callback()
@@ -1336,6 +1532,8 @@ function loginSuccess (result, loginType) {
       location.replace("/jyapp/jylab/mainSearch");
     }
     return
+  } else {
+    window.history.back()
   }
   //
   var callBackUrl = getUrlParam("url", decodeURIComponent);
@@ -1540,7 +1738,6 @@ function mySysIsIos () {
   var flag1 = !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
   var flag2 = !!navigator.userAgent.match(/\(M[^;]+; Intel Mac OS X/);
   return flag1 || flag2
-
 }
 
 function clearObjKeyForRegFn (obj, reg) {

+ 15 - 2
src/jfw/modules/app/src/web/staticres/jyapp/local/layout.css

@@ -301,9 +301,22 @@ ul, li, ol {
     border-radius: 100%;
 }
 /* 统一头部 */
+.jy-app-header.h5-header {
+  height: 10.66667vw;
+  padding: 0 3.2vw;
+}
+.jy-app-header.h5-header .share-gift {
+  margin: 0;
+}
+.jy-app-header.h5-header .header-share {
+  padding: 0!important;
+}
 .jy-app-header.app-layout-header .app-layout-content-a, .app-layout-content-b{
-    top: 21.33333vw;
-    padding-top: 0;
+  top: 21.33333vw;
+  padding-top: 0;
+}
+.h5-body .app-layout-content-b {
+  top: 10.33333vw;
 }
 .jy-app-header.app-layout-header {
     display: flex;

+ 3 - 0
src/jfw/modules/app/src/web/staticres/jyapp/me/css/mine.css

@@ -198,6 +198,9 @@
 .list {
     padding: 0 .32rem 0.32rem;
 }
+.list.show-tabbar{
+  padding: 0 .32rem 1.32rem;
+}
 
 .list .menu {
     margin-top: .2rem;

+ 3 - 0
src/jfw/modules/app/src/web/staticres/jyapp/me/js/account.js

@@ -118,6 +118,9 @@ var account = {
         var that = this;
         // 可以绑定调用客户端JyObj.loginByWeixin() 唤起微信,页面需要定义回调方法loginByWeixinCallBack(wxSign) 回调参数wxSign即为提交绑定param参数
         $('#bindWX').unbind('click').click(function () {
+            if (utils && utils.$envs && utils.$envs.inH5) {
+                return location.href = 'https://wx.jianyu360.cn/front/downloadapppage/normal?source=H5'
+            }
             var val = $(this).find('.van-cell__value').children().html();
             if (val == '去绑定') {
                 console.log('调用微信客户端方法绑定微信')

+ 25 - 3
src/jfw/modules/app/src/web/staticres/jyapp/me/js/mine.js

@@ -4,7 +4,8 @@ var mine = {
     powerInfo: {},
     init: function () {
         this.iosBackInvoke()
-
+        // 判断当前环境,显示/隐藏底部导航
+        this.getPlatform()
         // 设置用户头像
         this.setUserImg()
         this.getUserInfo()
@@ -45,6 +46,15 @@ var mine = {
             isPageHide = true;
         });
     },
+    getPlatform: function () {
+      if (utils.$envs.inH5) {
+        $('.j-body .list').addClass('show-tabbar')
+        $('#tabMesg').show()
+      } else {
+        $('.j-body .list').removeClass('show-tabbar')
+        $('#tabMesg').hide()
+      }
+    },
     getEntNicheRoot: function() {
       var _this = this
       $.ajax({
@@ -214,7 +224,11 @@ var mine = {
 
         // 使用帮助
         $('.user-help').on('click', function () {
+          if(utils.$envs.inApp) {
             JyObj.openExternalLink('https://mp.weixin.qq.com/mp/homepage?__biz=Mzk0MjIyMzY2Nw==&hid=1&sn=6b5d4f4aced2f4c9263e6e66639a40e6', '使用帮助');
+          } else {
+            location.href = 'https://mp.weixin.qq.com/mp/homepage?__biz=Mzk0MjIyMzY2Nw==&hid=1&sn=6b5d4f4aced2f4c9263e6e66639a40e6'
+          }
         })
         // 关于剑鱼标讯
         $(".about-us").on("click", function () {
@@ -232,12 +246,20 @@ var mine = {
         // 消息
         $(".trigger-div-notice").on('click', function () {
             setLiActive(this);
-            autoLogin('/jyapp/free/notice');
+            if (utils.$envs.inApp) {
+              autoLogin('/jyapp/free/notice');
+            } else {
+              location.href = '/jyapp/free/notice'
+            }
         });
         // 设置
         $(".trigger-div-setting").click(function () {
             setLiActive(this);
-            autoLogin('/jyapp/free/set');
+            if (utils.$envs.inApp) {
+              autoLogin('/jyapp/free/set');
+            } else {
+              location.href = '/jyapp/free/set'
+            }
         });
         // 安全退出
         $('.safe-quit').click(function () {

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

@@ -485,6 +485,7 @@
         })
     }
 </script>
+<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/utils.js"></script>
 <script>
     // $(function (){
     //   $(".top-ad").hide()

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

@@ -432,6 +432,7 @@
 
 				</div>
 		</div>
+    <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/utils.js"></script>
 		<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/china-map-data.js?v={{Msg "seo" "version"}}"></script>
 		<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/fastclick.min.js"></script>
 		<script>

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

@@ -72,6 +72,7 @@
 	<div class="addKeyWord">
 		<i class="iconfont icon-tianjia"></i>
 	</div>
+  <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/utils.js"></script>
 <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/weui.min.js"></script>
 <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/dataExport/js/additionWord.js?v={{Msg "seo" "version"}}"></script>
 <script>

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

@@ -169,6 +169,7 @@
 
     </div>
     </div>
+  <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/utils.js"></script>
 	<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/fastclick.min.js"></script>
     <script>
 

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

@@ -123,6 +123,7 @@
 	<div class="addKeyWord">
         <i class="iconfont icon-tianjia"></i>
     </div>
+    <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/utils.js"></script>
     <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/weui.min.js"></script>
     <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/dataExport/js/keyWord.js?v={{Msg "seo" "version"}}2"></script>
     <script>

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

@@ -51,6 +51,7 @@
 
     </div>
 	</div>
+  <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/utils.js"></script>
 <script>
     $(function () {
 

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

@@ -188,6 +188,7 @@
         </div>
     </div>
     </div>
+    <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/utils.js"></script>
 	<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/fastclick.min.js"></script>
     <script>
 

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

@@ -68,6 +68,7 @@
 		<div class="addKeyWord">
 			<i class="iconfont icon-tianjia"></i>
 		</div>
+    <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/utils.js"></script>
 	<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/weui.min.js"></script>
 	<script>
 		$(window).bind("pageshow", function(event){

+ 5 - 0
src/jfw/modules/app/src/web/templates/entniche/entniche_seniorset.html

@@ -12,6 +12,7 @@
 	<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/common.js?v={{Msg "seo" "mod_version"}}"></script>
 	<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/mobiscroll.min.js"></script>
 	<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/rem.js"></script>
+	<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/utils.js?v={{Msg "seo" "version"}}'></script>
 	<style>
 		#pushway ul>li:nth-child(n+2) {
 			/* padding: 8px 0px; */
@@ -221,6 +222,10 @@
 
 			//app提醒
 			$("#wxtip>img").click(function(){
+				if (window.utils && window.utils.$envs && window.utils.$envs.inH5) {
+					location.href = 'https://wx.jianyu360.cn/front/downloadapppage/normal?source=H5'
+					return
+				}
 				var parentLi = $(this).parent();
 				if($(this).hasClass("turn-on")){
 					if(!$("#emailtip").hasClass("on")){

+ 2 - 1
src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info_partner.html

@@ -121,7 +121,8 @@
         "name": "",
         "phone": "",
         "source": utils.getParam('source'), // 推送消息点进来的
-        "company": ""
+        "company": "",
+        origin: location.origin
       }
     },
     mounted() {

+ 2 - 1
src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info_push.html

@@ -207,7 +207,8 @@
         "mail": "",
         "company": "",
         "position": "",
-        "branch": ""
+        "branch": "",
+        origin: location.origin
       },
       jobJson: [
         '总裁',

+ 2 - 1
src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info_solution.html

@@ -250,7 +250,8 @@
         "companyType": "",
         "position": "",
         'platform': 'app',
-        "branch": ''
+        "branch": '',
+        origin: location.origin
       },
       jobJson: [
         '总裁',

+ 2 - 1
src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info_strud.html

@@ -277,7 +277,8 @@
         "company": "",
         "companyType": "",
         "position": "",
-        "branch": ''
+        "branch": '',
+        origin: location.origin
       },
       jobJson: [
         '总裁',

+ 3 - 2
src/jfw/modules/app/src/web/templates/me/account.html

@@ -127,8 +127,9 @@
     <script src="https://cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js?v=26aae2f13d"></script>
     <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/weui.min.js"></script>
     <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/fastclick.min.js"></script>
-    <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/common.js?v={{Msg "seo" "mod_version"}}"></script>
-    <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/me/js/account.js?v={{Msg "seo" "mod_version"}}"></script>
+    <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/common.js?v={{Msg "seo" "version"}}"></script>
+    <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/me/js/account.js?v={{Msg "seo" "version"}}"></script>
+    <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/utils.js?v={{Msg "seo" "version"}}'></script>
     {{include "/common/js.html"}}
 </body>
 

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

@@ -111,7 +111,7 @@
 						}else if(r.status=="saveError"){
 							EasyAlert.show("数据提交失败");
 						}else if(r.status=="y"){
-							url = "/jyapp/free/login?back=index";
+							url = "/jyapp/free/login?url=/jy_mobile/tabbar/home";
 							EasyAlert.show("修改成功");
 						}
 						if(url != null){

+ 34 - 2
src/jfw/modules/app/src/web/templates/me/login.html

@@ -186,6 +186,7 @@
     </div>
   </div>
   <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/ad/js/index.js?v={{Msg "seo" "version"}}'></script>
+  <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/utils.js?v={{Msg "seo" "version"}}'></script>
   <script>
     var Activedatastring = `register`
     var ActivedataType = `jy-app-${Activedatastring}-login`
@@ -201,6 +202,7 @@
   </script>
 	<script type="text/javascript">
 		var wait = 60;
+    var inment_H5 = true
 		var dcsOne = false;
 		var bodyWidth = document.body.clientWidth;
 		var left_1 = (bodyWidth/2-34) / 2;
@@ -209,6 +211,12 @@
     var disWord = getParam("disWord");
     var hideNum = 0
     var timer = null
+    var platform = utils.$envs
+    // s-- h5状态下隐藏微信登录 --s
+    if (platform.inH5) {
+      $('.wx').hide()
+    }
+    // e-- h5状态下隐藏微信登录 -- e
     // s-- 删除注册页缓存 -- s
     sessionStorage.removeItem('comname')
     sessionStorage.removeItem('noDisabled')
@@ -274,7 +282,7 @@
 			});
 			//点击取消返回主页
 			$("#header a").on("tap",function(){
-				if(getUrlParam("back")=="index"){
+				if(getUrlParam("back")=="index" && utils.$envs.inApp){
 					JyObj.backUrl("H");
 				}else{
 					//JyObj.backUrl("");
@@ -391,7 +399,31 @@
 				} else {
 					var phone = $.trim($("#tel").val());
 					if($(".header-tab>a.header-tab-active").index() == 0){
-						$.post("/jyapp/free/login",{reqType:"phoneLogin",phone:phone,password:$(".onePass input").val(),rid:JyObj.getPushRid(),oid:getOtherPushId(),phoneType:getPhoneType(),channel:getChannel(),deviceId:getDeviceId()},function(r){
+            var params = {}
+            if (utils.$envs.inApp) {
+              params = {
+                reqType:"phoneLogin",
+                phone:phone,
+                password:$(".onePass input").val(),
+                rid:JyObj.getPushRid(),
+                oid:getOtherPushId(),
+                phoneType:getPhoneType(),
+                channel:getChannel(),
+                deviceId:getDeviceId()
+              }
+            } else {
+              params = {
+                reqType:"phoneLogin",
+                phone:phone,
+                password:$(".onePass input").val(),
+                rid:'',
+                oid:'',
+                phoneType:'',
+                channel:'',
+                deviceId:''
+              }
+            }
+						$.post("/jyapp/free/login",params,function(r){
 							if(r.status==1){
 								if(localStorage){
 									localStorage.loginPhone = phone;

+ 3 - 0
src/jfw/modules/app/src/web/templates/me/mine.html

@@ -305,6 +305,9 @@
       </div>
       <!--E 功能搬家提醒弹窗-->
     </div>
+    <!-- 底部导航 -->
+    {{include "/weixin/tabbar.html"}}
+    <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/utils.js'></script>
     <script src='https://cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js'></script>
     <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/weui.min.js'></script>
     <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/fastclick.min.js'></script>

+ 29 - 3
src/jfw/modules/app/src/web/templates/me/setpwd.html

@@ -9,7 +9,8 @@
 		<link rel="stylesheet" type="text/css" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/me/css/setPwd.css?v={{Msg "seo" "version"}}" />
 		<link rel="stylesheet" type="text/css" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/me/css/header.css?v={{Msg "seo" "version"}}1"/>
 		<script src="https://cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js" type="text/javascript" charset="utf-8"></script>
-		<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/utils.js" type="text/javascript" charset="utf-8"></script>
+		<!-- <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/js/utils.js" type="text/javascript" charset="utf-8"></script> -->
+		<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/utils.js" type="text/javascript" charset="utf-8"></script>
 		{{include "/common/js.html"}}
 
 		<title>设置密码</title>
@@ -45,6 +46,7 @@
 			var isIos = mySysIsIos();
 			var pwdfocusindex = -1;
       var disWord = getParam("disWord");
+      var platform = utils.$envs
 			$(function() {
 				//点击返回上一页
 				$("#header a").on("tap",function(){
@@ -104,7 +106,7 @@
 					}
 				});
 				$("#btn").on("tap",function(){
-					var entname = decodeURIComponent(utils.getParam('entname'))
+					var entname = decodeURIComponent(getParam('entname'))
 					console.log(entname)
 					if($(this).hasClass("disabled")){
 						return;
@@ -114,10 +116,34 @@
 						return;
 					}
           $(this).addClass("disabled");
+          let params = {
+            reqType:"save",
+            password:$(".onePass input").val(),
+            rid:JyObj.getPushRid(),
+            oid:getOtherPushId(),
+            phoneType:getPhoneType(),
+            channel:getChannel(),
+            deviceId:getDeviceId(),
+            s_entname:entname,
+            disWord:disWord
+          }
+          if (platform.inH5) {
+            params = {
+              reqType:"save",
+              password:$(".onePass input").val(),
+              rid:'',
+              oid:'',
+              phoneType:'',
+              channel:'',
+              deviceId:'',
+              s_entname:entname,
+              disWord:disWord
+            }
+          }
           $.ajax({
     				url: "/jyapp/free/register",
     				type: "post",
-    				data: {reqType:"save",password:$(".onePass input").val(),rid:JyObj.getPushRid(),oid:getOtherPushId(),phoneType:getPhoneType(),channel:getChannel(),deviceId:getDeviceId(),s_entname:entname,disWord:disWord},
+    				data: params,
     				dataType: "json",
     				success: function(r){
   						var url = null;

+ 1 - 0
src/jfw/modules/app/src/web/templates/me/setting.html

@@ -104,6 +104,7 @@
     <link rel="preload" as="script" href=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js />
     <link rel="preload" as="script" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js />
     {{include "/common/js.html"}}
+    <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/public/js/utils.js?v={{Msg "seo" "version"}}'></script>
     <script>
         var settings = {
             version: '',

+ 148 - 0
src/jfw/modules/app/src/web/templates/weixin/tabbar.html

@@ -0,0 +1,148 @@
+
+<link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/index.css />
+<style>
+  [v-cloak] {
+      display: none !important;
+  }
+  #tabMesg .van-tabbar-item__icon img {
+    width: .48rem;
+    height: .48rem;
+  }
+  #tabMesg .van-tabbar-item .van-tabbar-item__icon .van-info {
+    margin-top: .12rem;
+    background: #FB483D;
+  }
+  #tabMesg .a-badge .van-tabbar-item__icon .van-info{
+    display: none;
+  }
+</style>
+
+<div id="tabMesg" v-cloak>
+  <van-tabbar v-model="tabActive" active-color="#2ABED1" inactive-color="#171826">
+    <van-tabbar-item @click="routeHref(index)" v-for="(item, index) in tabList" :key="index" :badge="index === 2 ? getMsgCount : ''">
+      <span>{item.label}</span>
+      <template #icon="props">
+        <img v-show="!props.active" :src="'/jyapp/images/tabbar/' + item.icon + '.png'" />
+        <img v-show="props.active" :src="'/jyapp/images/tabbar/' + item.icon + '_active.png'" />
+      </template>
+    </van-tabbar-item>
+  </van-tabbar>
+</div>
+<script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js></script>
+<script src=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js></script>
+<script src=//cdn-common.jianyu360.com/cdn/lib/zepto/1.2.0/zepto.min.js></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/messageCenter/js/func.js?v={{Msg "seo" "version"}}'></script>
+<script>
+new Vue({
+  el: '#tabMesg',
+  delimiters: ['{', '}'],
+  data: function () {
+    return {
+			tabActive: 0,
+			counts: 0,
+      tabList: [
+        {
+          label: '首页',
+          icon: 'home',
+          url: '/jy_mobile/tabbar/home',
+          index: 0
+        },
+        {
+          label: '订阅',
+          icon: 'book',
+          url: '/jy_mobile/tabbar/subscribe',
+          index: 1
+        },
+        {
+          label: '消息',
+          icon: 'mesg',
+          url: '/jyapp/frontPage/messageCenter/sess/index',
+          index: 2
+        },
+        {
+          label: '百宝箱',
+          icon: 'box',
+          url: '/jy_mobile/tabbar/box',
+          index: 3
+        },
+        {
+          label: '我的',
+          icon: 'mine',
+          url: '/jyapp/free/me',
+          index: 4
+        },
+      ]
+		}
+	},
+
+	mounted() {
+    Object.assign(this.$data, this.$options.data())
+    var uMsg = Number(this.getQueryString('msg') || this.getURLIndex())
+    this.tabActive = uMsg
+		this.tabsCount()
+	},
+  computed: {
+    getMsgCount: function () {
+      return this.counts ? (this.counts > 99 ? '99+' : this.counts) : ''
+    }
+  },
+	methods: {
+    //获取url中"?"符后的字符串并正则匹配
+    getQueryString(name) {
+      var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+      var r = window.location.search.substr(1).match(reg);
+      var context = "";
+      if (r != null)
+          context = r[2];
+      reg = null;
+      r = null;
+      return context == null || context == "" || context == "undefined" ? "" : context;
+    },
+    getURLIndex: function () {
+      try {
+        var tempUrl = this.findMapsForUrl(this.tabList, location.pathname)
+        if (tempUrl.length) {
+          return tempUrl[0].index
+        } else if (location.pathname.indexOf('/swordfish/historypush') !== -1) {
+          return 1
+        } else {
+          return ''
+        }
+      } catch (e) {
+        return ''
+      }
+    },
+    findMapsForUrl: function (arr, url) {
+      var tempReuslt = []
+      arr.forEach(function (v) {
+        if (url.indexOf(v.url) !== -1) {
+          tempReuslt.push(v)
+        }
+      })
+      return tempReuslt.sort(function(a,b) {
+        return b.url.length - a.url.length
+      })
+    },
+		tabsCount() {
+      const _this = this
+      $.ajax({
+        type:'GET',
+        url:'/jymessageCenter/getCount?t=' + Date.now(),
+        success:function (res) {
+          if (res && res.status == 1 && res.data && res.data.count) {
+            _this.counts = res.data.count
+          }
+        }
+      })
+    },
+		routeHref(index) {
+      var goHref = this.tabList[index].url + '?msg=' + index
+      if (index === this.tabActive) {
+        location.replace(goHref)
+      } else {
+        location.href = goHref
+      }
+		}
+	}
+})
+</script>

+ 134 - 28
src/jfw/modules/app/src/web/templates/weixin/wxinfocontent.html

@@ -225,8 +225,8 @@
         <span class="app-back jyapp-icon jyapp-icon-zuojiantou share-back"></span>
         <span class="header-title">公告信息</span>
         <span class="header-share" id="share">
-		<img src="/jyapp/images/jianyubi.png">
-		<p style="font-size: 10px; line-height: 12px">分享有礼</p>
+		<img class="share-gift" src="/jyapp/images/jianyubi.png">
+		<p class="share-gift" style="font-size: 10px; line-height: 12px">分享有礼</p>
     <div class="overlay">
       <div class="share-sheet">
         <div class="title">
@@ -395,6 +395,7 @@
                     <div class="type_label clearfix">
                         <script>var area="{{.T.obj.area}}"; if(area!="A" && area.replace(/\s+/g,"")!=""){document.write('<span class="tag area">'+area+'</span>');}</script>
                         <script>
+                            var userId = {{.T.userId}}; // userId为空:未登录状态
                             var type = "";
                             if ({{.T.obj.subtype}} !=""){
                                 type = {{.T.obj.subtype}};
@@ -440,10 +441,10 @@
                             }
 
                             // 金额标签处理
-                            if(typeof(moneyTag.budget) != "undefined" && moneyTag.budget != null && moneyTag.budget != ""){
+                            if(typeof(moneyTag.budget) != "undefined" && moneyTag.budget != null && moneyTag.budget != "" && userId){
                                 moneyTag.content = MoneyUnit.test(moneyTag.budget);
                             }
-                            if(typeof(moneyTag.bidamount) != "undefined" && moneyTag.bidamount != null && moneyTag.bidamount != ""){
+                            if(typeof(moneyTag.bidamount) != "undefined" && moneyTag.bidamount != null && moneyTag.bidamount != ""  && userId){
                                 moneyTag.content = MoneyUnit.test(moneyTag.bidamount);
                             }
                             if(moneyTag.content){
@@ -474,7 +475,7 @@
                                 <span class="icon weishoucang"></span>
                                 <span class="icon-text">收藏</span>
                             </div>
-                            {{if .T.obj.hasSession}}{{if or .T.obj.projectname .T.obj.projectcode}}<div class="follow" style="top:1px !important;display: none">{{if .T.obj.followFlag}}<i class="glyphicon yiguanzhu"></i>已关注{{else}}<i class="glyphicon weiguanzhu"></i>关注项目{{end}}</div>{{end}}{{else}}<!--<a href="/swordfish/share/-1" style="text-decoration: none;color:#24C0D7;"><span class="follow"><i class="glyphicon weiguanzhu"></i></span>关注项目</a>-->{{end}}
+                            {{if or .T.obj.projectname .T.obj.projectcode}}<div class="follow" style="top:1px !important;display: none">{{if .T.obj.followFlag}}<i class="glyphicon yiguanzhu"></i>已关注{{else}}<i class="glyphicon weiguanzhu"></i>关注项目{{end}}</div><!--<a href="/swordfish/share/-1" style="text-decoration: none;color:#24C0D7;"><span class="follow"><i class="glyphicon weiguanzhu"></i></span>关注项目</a>-->{{end}}
                         </div>
                     </div>
                 {{else}}
@@ -482,6 +483,7 @@
                     <div class="tool_top">
                         <script>var area="{{.T.obj.area}}"; if(area!="A" && area.replace(/\s+/g,"")!=""){document.write('<span class="tag area">'+area+'</span>');}</script>
                         <script>
+                            var userId = {{.T.userId}}; // userId为空:未登录状态
                             var type = "";
                             if ({{.T.obj.subtype}} !=""){
                                 type = {{.T.obj.subtype}};
@@ -521,10 +523,10 @@
                                 budget: {{.T.obj.budget}}
                             }
                             // 金额标签处理
-                            if(typeof(moneyTag.budget) != "undefined" && moneyTag.budget != null && moneyTag.budget != ""){
+                            if(typeof(moneyTag.budget) != "undefined" && moneyTag.budget != null && moneyTag.budget != "" && userId){
                                 moneyTag.content = MoneyUnit.test(moneyTag.budget);
                             }
-                            if(typeof(moneyTag.bidamount) != "undefined" && moneyTag.bidamount != null && moneyTag.bidamount != ""){
+                            if(typeof(moneyTag.bidamount) != "undefined" && moneyTag.bidamount != null && moneyTag.bidamount != "" && userId){
                                 moneyTag.content = MoneyUnit.test(moneyTag.bidamount);
                             }
                             if(moneyTag.content){
@@ -545,7 +547,7 @@
                                 <span class="icon weishoucang"></span>
                                 <span class="icon-text">收藏</span>
                             </div>
-                            {{if .T.obj.hasSession}}{{if or .T.obj.projectname .T.obj.projectcode}}<span class="follow" style="display: none">{{if .T.obj.followFlag}}<i class="glyphicon yiguanzhu"></i>已关注{{else}}<i class="glyphicon weiguanzhu"></i>关注项目{{end}}</span>{{end}}{{else}}<!--<a href="/swordfish/share/-1" style="text-decoration: none;color:#24C0D7;"><span class="follow"><i class="glyphicon weiguanzhu"></i></span>关注项目</a>-->{{end}}
+                            {{if or .T.obj.projectname .T.obj.projectcode}}<span class="follow" style="display: none">{{if .T.obj.followFlag}}<i class="glyphicon yiguanzhu"></i>已关注{{else}}<i class="glyphicon weiguanzhu"></i>关注项目{{end}}</span><!--<a href="/swordfish/share/-1" style="text-decoration: none;color:#24C0D7;"><span class="follow"><i class="glyphicon weiguanzhu"></i></span>关注项目</a>-->{{end}}
                         </div>
                         <script>
                             var l_publishtime = {{.T.obj.l_publishtime}};
@@ -781,8 +783,27 @@
             <div id="third-party-verify-attention" class="third-party-verify-attention" style="display:none;">
               <span class="t-p-v-a-text">*温馨提示:系统识别到正文中对投标方有资质要求~</span>
             </div>
+            <div class="noLoginShow" style="display: none;">
+              <div class="serve-list">
+                <img src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/images/register_serve.png" alt="" />
+              </div>
+              <div class="serve-option">
+                <div class="option-title">登录后可查看全文</div>
+                <div class="option-login option-common">立即登录</div>
+                <div class="option-register option-common">还不是会员?立即免费注册</div>
+                <div class="option-hotline">
+                  <img src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/images/telphone.png" alt="" />
+                  <span>咨询热线:400-108-6670</span>
+                </div>
+              </div>
+            </div>
+            <!--S 登录引导置底 S-->
+            <div class="login-guide">
+              <img src="/jyapp/images/adbottom.png" alt="">
+            </div>
+            <!--E 登录引导置底 E-->
             <div class="abs">
-                <div onclick="adv_statistics(this)" class="original_name"><a class="original hidden">阅读原文</a></div>
+                <div onclick="advDownApp(this)" class="original_name"><a class="original hidden">阅读原文</a></div>
                 {{if .T.obj.hasSession}}
                     <a class="feedback" href="/jyapp/swordfish/feedback?fkid={{.T.obj._id}}">意见反馈</a>
                 {{end}}
@@ -922,6 +943,7 @@
 <div id="third-party-popover-content"></div>
 <script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js></script>
 <script src=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js></script>
+<script src='/common-module/public/js/utils.js?v={{Msg "seo" "version"}}'></script>
 <script src='/common-module/keep-tags/keep-tags-template.js?v={{Msg "seo" "version"}}'></script>
 <script src='/common-module/keep-tags/keep-ent-tags-template.js?v={{Msg "seo" "version"}}'></script>
 <script src='/common-module/mainSearch/js/third-party-verify-mobile.js?v={{Msg "seo" "version"}}'></script>
@@ -977,6 +999,19 @@
         winner_con = s_winner;
     }
 
+    // 未登录展示登录模块
+    if(!userId) {
+      $('.noLoginShow').show()
+      $('.share-gift').hide()
+      $('.bid-dec-in').hide()
+      $('.bigvip_drain').hide()
+      $('.abs').hide()
+      $('.adv').hide()
+      $('.login-guide').show()
+    } else {
+      $('.login-guide').hide()
+    }
+
     if(!industry){
         if(subscopeclass!=null){
             industry = subscopeclass.split(",")[0];
@@ -1165,13 +1200,14 @@
             url:'/bigmember/use/isAdd?t=' + Date.now(),
             success: function(res) {
                 // 是大会员没有下载权限
+                res.data = res.data ? res.data : {}
                 if (res.data.memberStatus > 0 && res.data.power.indexOf(3) == -1) {
                     window.isNoMember = true
                 }
                 // 是大会员 有下载权限
-        				if (res.data.memberStatus > 0 && res.data.power.indexOf(3) > -1) {
-        					  window.isMemberAndPower = true
-        				}
+                if (res.data.memberStatus > 0 && res.data.power.indexOf(3) > -1) {
+                    window.isMemberAndPower = true
+                }
                 window.isFree = res.data.isFree // 是否是免费用户
                 window.freeFile = res.data.freeFile // 免费用户 是否体验过 0:未体验过 -1:体验过
                 window.vipStatus = res.data.vipStatus // 是否是超级订阅用户
@@ -1267,6 +1303,15 @@
             }
         }
     }
+
+    // h5环境下点击阅读原文跳转到引导下载app页面
+    function advDownApp (e) {
+      if (utils.$envs.inH5) {
+        location.href = 'https://wx.jianyu360.cn/front/downloadapppage/normal?source=H5'
+      } else {
+        adv_statistics(e)
+      }
+    }
     // 大会员引流文案
     function getDrainInfo () {
         $.ajax({
@@ -1317,10 +1362,24 @@
             $(".mask-zz").removeClass("hidden");
         } else {
             $(".prebuilt").css('height', 'unset')
-            $('.third-party-verify').show()
+            if(userId) {
+              $('.third-party-verify').show()
+            } else {
+              $('.third-party-verify').hide()
+            }
         }
     }
 
+    // 去登录
+    $('.option-login').on('click', function() {
+      const url = `/jyapp/article/content/${id}.html`
+      autoLogin(url)
+    })
+    // 去注册
+    $('.option-register').on('click', function() {
+      location.href = '/jyapp/free/register'
+    })
+
     //留资弹窗页面
     $('.free-btn-reword').on('click', function() {
         var subType = {{.T.obj.subtype}}
@@ -1434,6 +1493,8 @@
                 followFlag = false
                 $(".follow").html('<i class="glyphicon weiguanzhu"></i>关注项目');
               }
+            } else {
+              $(".follow").css("display","")
             }
           }
         })
@@ -1700,7 +1761,11 @@
                         }
                       }
                     })
-                    $('.atta-list').show()
+                    if(userId) {
+                      $('.atta-list').show()
+                    } else {
+                      $('.atta-list').hide()
+                    }
                 }else{
                     $('.atta-list').hide()
                     $('.atta-download-have').hide()
@@ -1907,6 +1972,7 @@
                 initShowForecast()
 
             } else {
+              $(".follow").css("display","")
               if (hasServiceArr && hasServiceArr.length > 0 && hasServiceArr.indexOf(6) > -1) {
                 $('.bid-dec-in').hide()
               }
@@ -1986,7 +2052,7 @@
         });
     }
     function initShowForecast() {
-        if(subtype==='询价' || subtype==="招标"){
+        if((subtype==='询价' || subtype==="招标") && userId){
             if(title !==''){
                 $('.time_label').css({'justify-content':'flex-start'})
                 $('.tool_bottom').css({'justify-content':'flex-start'})
@@ -2088,11 +2154,16 @@
             $(".lead-btn").css({'display':'flex'});
             $('.lead_export').hide()
             $('.bigvip_drain').hide()
-            $('.lead_drain').show()
+            if(userId) {
+              $('.lead_drain').show()
+            } else {
+              $(".lead-btn").css({'display':'none'});
+              $('.lead_drain').hide()
+            }
         }else{
-            $('.lead-btn').hide()
+          $(".lead-btn").css({'display':'none'});
             $('.lead_drain').hide()
-            $('.lead_export').css({'display':'flex'})
+            // $('.lead_export').css({'display':'none'})
         }
       } else if (advanceProject) {
         var advanceTableShow = advanceProjectTable.checkTableShow()
@@ -2101,8 +2172,12 @@
           $("#tab1").show();
           $(".fatNav").show();
           $(".explain").show();
-          $(".lead-btn").css({'display': 'flex'});
-          $('.lead_export').hide()
+          if(userId) {
+            $(".lead-btn").css({'display': 'flex'});
+          } else {
+            $(".lead-btn").css({'display': 'none'});
+            // $('.lead_export').hide()
+          }
         }
       }
       //公告摘要表格基本信息数据
@@ -2148,7 +2223,7 @@
           buyertel_show = "hide"
       }
       outhtml +='<li class="caigouunit commonUser"><p class="name">采购单位</p><div class="unitcenter"><p  class="textcontent">'+rerbuyer+'</p><div class="unitbtn '+rerbuyer_show+'">立即查看<span class="iconunit" style="display:none;"></span></div></div></li>'
-      outhtml +='<li class="entnicheUser"><p class="name">采购单位</p><div class="unitcenter sum_caigou client_caigou"><p  class="textcontent">'+rerbuyer+'</p><div class="sum_right"><div class="claim" onClick="setportain(event)"><span class="j-icon icon-porait"></span><span class="getproit" style="color:#2ABED1">查看画像</span></div><span class="columnLine"></span><div class="claim clientClaim" onClick="setClientClaim(event)"><span class="j-icon icon_state icon-claim"></span><span class="icon-claim-text" style="color:#2ABED1;font-size: .26rem;">认领客户</span></div></div></div></li>'
+      outhtml +='<li style="display:none" class="entnicheUser"><p class="name">采购单位</p><div class="unitcenter sum_caigou client_caigou"><p  class="textcontent">'+rerbuyer+'</p><div class="sum_right"><div class="claim" onClick="setportain(event)"><span class="j-icon icon-porait"></span><span class="getproit" style="color:#2ABED1">查看画像</span></div><span class="columnLine"></span><div class="claim clientClaim" onClick="setClientClaim(event)"><span class="j-icon icon_state icon-claim"></span><span class="icon-claim-text" style="color:#2ABED1;font-size: .26rem;">认领客户</span></div></div></div></li>'
       outhtml +='<li><p class="name">采购联系人</p><p class="textcontent">'+rerbuyerperson+'</p></li>'+
           '<li class="bbm0"><p class="name">采购电话</p><p class="textcontent">'+rerbuyertel+'</p><a class="border-tel_ '+buyertel_show+'" style="position: static;display:block" datalink="/jyapp/vipsubscribe/introducePage"><div class="tel"></div></a></li>'
       if(packageCon==""){
@@ -2174,6 +2249,13 @@
       } else {
         $("#baseInfo ul").html(outhtml);
       }
+      if(!userId) {
+        $('.unitbtn').hide()
+        $('.border-tel_').hide()
+      } else {
+        $('.unitbtn').show()
+        $('.border-tel_').show()
+      }
       //中标信息
       if(isbid){
           var rerwinner = {{.T.obj.winnerMap}};
@@ -2227,6 +2309,12 @@
               $("#bidInfo ul").html(bidInfohtml);
           }
       }
+      if (!userId) {
+        var a = $('.zhongbiaounit')
+        $('.caigouunit .textcontent').css('text-decoration-line', 'none')
+        $('.caigouunit .textcontent').css('color', '#171826')
+        $('.zhongbiaounit').addClass('notextcontent')
+      }
       isOpening()
       $(document).on('click',".border-tel",function(){
           if(!isEntniche&&!isVIP&&bigstatus<=0){
@@ -2260,6 +2348,7 @@
       })
       // 采购单位跳转
       $('.caigouunit').on('click',function(){
+        if(!userId) return
         if(rerbuyer != ''&&rerbuyer!=null){
             var landinfo = {
                 anchor: '采购单位全景分析',
@@ -2279,8 +2368,14 @@
         }
 
       })
+      // 未登录底部引导点击跳转
+      $('.login-guide').click(function() {
+        const url = `/jyapp/article/content/${id}.html`
+        autoLogin(url)
+      })
       // 中标单位跳转
       $('.zhongbiaounit').on('click',function(){
+        if (!userId) return
         if (rerwinner!=""&&rerwinner!=null){
             sessionStorage.removeItem('$data-ent_portrait')
             if (rerwinnerEntId) {
@@ -2416,10 +2511,11 @@
       $(".filename").css("width",$(window).width()*0.68+"px");
       {{end}}
       {{if .T.obj.infoformat}}
-      	{{if eq .T.obj.infoformat 2}}
+        var infoformat ={{ .T.obj.infoformat}}
+        if (infoformat==2){
           $(".prebuilt").removeClass("hidden");
           $("#h_content").css("font-size","16px");
-      	{{end}}
+        }
     	{{end}}
     	{{if .T.obj.href}}
         $(".abs .original").removeClass("hidden");
@@ -2529,23 +2625,23 @@
       if (content) {
         content = thirdPartyVerify.replaceKeys(content)
       }
-      if(projectname != "" && projectname != null && content.toLowerCase().indexOf(projectname.toLowerCase()) > -1){
+      if(projectname != "" && projectname != null && content.toLowerCase().indexOf(projectname.toLowerCase()) > -1 && userId){
           content = keyWordHighlight(content,projectname,"<span class='keyword myfollow project hideLine'>$1</span>");
       }
-      if(projectcode != "" &&projectcode != null && content.toLowerCase().indexOf(projectcode.toLowerCase()) > -1){
+      if(projectcode != "" &&projectcode != null && content.toLowerCase().indexOf(projectcode.toLowerCase()) > -1 && userId){
           content = keyWordHighlight(content,projectcode,"<span class='keyword myfollow project hideLine'>$1</span>");
       }
-      if(projectname != "" &&projectname != null && titleCopy.toLowerCase().indexOf(projectname.toLowerCase()) > -1){
+      if(projectname != "" &&projectname != null && titleCopy.toLowerCase().indexOf(projectname.toLowerCase()) > -1 && userId){
           titleCopy = keyWordHighlight(titleCopy,projectname,"<span class='keyword project hideLine'>$1</span>");
       }
-      if(projectcode != "" &&projectcode != null && titleCopy.toLowerCase().indexOf(projectcode.toLowerCase()) > -1){
+      if(projectcode != "" &&projectcode != null && titleCopy.toLowerCase().indexOf(projectcode.toLowerCase()) > -1 && userId){
           titleCopy = keyWordHighlight(titleCopy,projectcode,"<span class='keyword project hideLine'>$1</span>");
       }
     	//
       if (winner_con != ""){
         for (var i=0;i<winner_con.split(",").length;i++){
           var winner_con_i = winner_con.split(",")[i]
-          if(winner_con_i != "" && content.toLowerCase().indexOf(winner_con_i.toLowerCase()) > -1){
+          if(winner_con_i != "" && content.toLowerCase().indexOf(winner_con_i.toLowerCase()) > -1 && userId){
               content = keyWordHighlight(content,winner_con_i,"<span data-eid='"+winner_conEntId+"' class='keyword myfollowent'>$1</span>");
           }
         }
@@ -2620,6 +2716,11 @@
       thirdPartyVerify.checkHighlightInsert()
 
       $(".follow").click(function(){
+        if (!userId) {
+          const url = `/jyapp/article/content/${id}.html`
+          autoLogin(url)
+          return
+        }
           $('#loading').show()
           // 添加关注的项目
           let cancelurl = '/bigmember/follow/project/cancel'
@@ -2911,6 +3012,11 @@
       }
       // 收藏
       $('.collec_star').on('click', function () {
+        if(!userId) {
+          const url = `/jyapp/article/content/${id}.html`
+          autoLogin(url)
+          return
+        }
         var $this = $(this)
         var $icon = $this.children('.icon')
         var shoucang = $icon.hasClass('weishoucang')

+ 2 - 1
src/jfw/modules/publicapply/src/filter/sessionfilter.go

@@ -2,6 +2,7 @@ package filter
 
 import (
 	. "jy/src/jfw/modules/publicapply/src/config"
+	. "jy/src/jfw/modules/publicapply/src/db"
 	"net/http"
 	"regexp"
 
@@ -27,7 +28,7 @@ func (l *sessionfilter) Do(w http.ResponseWriter, req *http.Request) bool {
 		session.Set("mgoUserId", getSession["userId"])
 	}
 	if getSession["base_user_id"] != nil && getSession["positionId"] == nil {
-		identity.SwitchToBest(util.Int64All(getSession["base_user_id"]), session, Middleground)
+		identity.SwitchToBest(util.Int64All(getSession["base_user_id"]), session, Middleground, &Mgo, false)
 	}
 	if reg.MatchString(req.URL.Path) || reg.MatchString(req.URL.Path) || reg_share.MatchString(req.URL.Path) || reg_nps.MatchString(req.URL.Path) {
 		return true

+ 5 - 1
src/jfw/modules/publicapply/src/go.mod

@@ -4,7 +4,7 @@ go 1.18
 
 require (
 	app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a
-	app.yhyue.com/moapp/jypkg v0.0.0-20230220052900-1ae9d49be1c8
+	app.yhyue.com/moapp/jypkg v0.0.0-20230220063100-0b9ec88ed9bc
 	bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230220014527-d2ee17034d1e
 	github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67
 	github.com/gogf/gf/v2 v2.0.6
@@ -15,7 +15,11 @@ require (
 require (
 	app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d // indirect
 	app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae // indirect
+<<<<<<< HEAD
 	bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230209051900-1e7dcb8f83b7 // indirect
+=======
+	bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230214091519-89a98c01ab0e // indirect
+>>>>>>> origin/feature/v4.7.55
 	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230210052334-7b32c3b8c773 // indirect
 	bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.7 // indirect
 	github.com/BurntSushi/toml v0.4.1 // indirect

+ 115 - 24
src/jfw/modules/publicapply/src/go.sum

@@ -1,21 +1,41 @@
 app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d h1:WPsYuuptAd3UEgN+jPzpnsDe/OvcshDUUtOTZPYGSJ8=
 app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d/go.mod h1:91/lSD/hS+ckMVP3WdidRzDhC60lLMdyce9QHy0cSMA=
+app.yhyue.com/moapp/jyInfo v1.0.0/go.mod h1:+RjyGNvk7PT1P8cglkVlaj1lLlBXuPB+f5LipoOtgPs=
 app.yhyue.com/moapp/jyPoints v1.1.1/go.mod h1:SvP8p5L3jGrejHiH2LXfgCg/NPlFiKBC5Yd0gsI12FU=
+app.yhyue.com/moapp/jybase v0.0.0-20220415064050-37ce64b3e2d4/go.mod h1:qNRA0sHuYqcLoYoP8irpaWnW9YsXixe6obBIkwaXpD0=
+app.yhyue.com/moapp/jybase v0.0.0-20220418104200-46c3fff161c7/go.mod h1:qNRA0sHuYqcLoYoP8irpaWnW9YsXixe6obBIkwaXpD0=
+app.yhyue.com/moapp/jybase v0.0.0-20220419023055-f406279ff7e3/go.mod h1:qNRA0sHuYqcLoYoP8irpaWnW9YsXixe6obBIkwaXpD0=
+app.yhyue.com/moapp/jybase v0.0.0-20220420032112-668025915ee4/go.mod h1:qNRA0sHuYqcLoYoP8irpaWnW9YsXixe6obBIkwaXpD0=
+app.yhyue.com/moapp/jybase v0.0.0-20220421060131-a1001013ba46/go.mod h1:qNRA0sHuYqcLoYoP8irpaWnW9YsXixe6obBIkwaXpD0=
 app.yhyue.com/moapp/jybase v0.0.0-20220427020729-974c1a148186/go.mod h1:qNRA0sHuYqcLoYoP8irpaWnW9YsXixe6obBIkwaXpD0=
+app.yhyue.com/moapp/jybase v0.0.0-20220719064915-2fef79005dfa/go.mod h1:FjBF25AYoBrPhVKTXGXWcmEAbBT0ATTK6KJMOA+I80Q=
+app.yhyue.com/moapp/jybase v0.0.0-20220802080941-07f401baab8b/go.mod h1:HelrO6tcD9TcKb/HOP2BLbzppyDz2kpQSFhPMQTUgbQ=
+app.yhyue.com/moapp/jybase v0.0.0-20230109015757-aa3d5e19b196/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
 app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a h1:wD4aWPSYdiX1cIP4lzzPD2s7fYhKa3muIf97l9tonJE=
 app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
-app.yhyue.com/moapp/jypkg v0.0.0-20230220052900-1ae9d49be1c8 h1:IM7McOizLkJl8MV8uOOfELxQ3iTOcWmgKt/0DKJh8xw=
-app.yhyue.com/moapp/jypkg v0.0.0-20230220052900-1ae9d49be1c8/go.mod h1:AtqW4ue+Ra99NMczLSd9sNerveCWIPWPfkFGAAs4km8=
+app.yhyue.com/moapp/jypkg v0.0.0-20230215085917-b06259029053 h1:si9xJMaXAndGoS1uolVYttYNN/4cYWcqMni29Pnqw4A=
+app.yhyue.com/moapp/jypkg v0.0.0-20230215085917-b06259029053/go.mod h1:sa5YRPqTQLOVBmpltjT21EkQ7DfJbUZFARUb4ZJ7U+k=
 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/BP/jynsq v0.0.0-20220222052708-ebc43af90698/go.mod h1:ojo/AUH9Yr1wzarEjOaNMkj1Cet/9r8IgLyba64Z52E=
 bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230209051900-1e7dcb8f83b7 h1:cw/PdRypNFcYOk4iWAfHjIFoMzIlXUfl9XAmWujBOPY=
 bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230209051900-1e7dcb8f83b7/go.mod h1:7Xhygw0KBuL4h0G76FnFg4otQcA9bmOO0c8M0FCjAyQ=
-bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230210052334-7b32c3b8c773 h1:IbbM9kFSbqJ44UpN99C2cZKX/X/yC03baBYJ7oc0j/w=
-bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230210052334-7b32c3b8c773/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 v0.0.0-20230220014527-d2ee17034d1e h1:7z7RA0hhnGXHWiLigKQSX/IpnLXqX/gFXPp8iJXx0Dc=
-bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230220014527-d2ee17034d1e/go.mod h1:vDEKni2rnCraKgKnnCEIwsFmO92GxnpfKmNQ+83wKP0=
+bp.jydev.jianyu360.cn/BaseService/gateway v0.0.0-20220419090715-88ddb32961be/go.mod h1:Yj4oabIGItuMoF0BXYLz2XAnF581kxgXBrvlUtIJrkI=
+bp.jydev.jianyu360.cn/BaseService/gateway v1.3.4/go.mod h1:BMLd/5wb3BIEGhnEgF9y1sJN9P5/Dw9kYsoiE9V8I9g=
+bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230207054315-b05f3dd4c4d3 h1:jeItQ6RM1T6yPWc/5i4R6h3kViD+Rm2VnIEsc1gCFJA=
+bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230207054315-b05f3dd4c4d3/go.mod h1:5nimT8GJh46AyfeeDeyRlDQygMlO7TRM8Pwm41Gxemc=
+bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220418005748-8ba5d936dd53/go.mod h1:E5lcDI3k4FESLxiAetCfWQTq8qfpy9cv0yN1oKoEO34=
+bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220419023723-0b32d4a41751/go.mod h1:6KL5LMEku83uRbre0W/bj5kXG2I6pJGBFtktmtp51yM=
+bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220419063004-233fc7ce006c/go.mod h1:6KL5LMEku83uRbre0W/bj5kXG2I6pJGBFtktmtp51yM=
+bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220420075831-0b59892e9982/go.mod h1:wsHNO91h37H+xE4ZNny0yd7mtpODeDJxbVYhIRMR+qw=
+bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.3/go.mod h1:Z353aucNO5hH4ZYjeKST3kE1PN3W8/uPc4J8s0Upz40=
+bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.4 h1:LXD8woSkDDtqCQ19S9TGvx7GVir300nGszoIidBTlGM=
+bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.4/go.mod h1:rRiGzKG4F/fmkNxXQCxrkxNWc8yf1SmW8qWCKfGIQSM=
+bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20220418072311-2062bed1e700/go.mod h1:KjcrxTzM96tBc6G4B8tlLBn1lrVy5UJYF8+eTdP4xAE=
+bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20220421015128-4a36f3eac5c5/go.mod h1:GT0QC4aaKDuXxAvaU4G02XjCc31TU1ctqBGqxQYOfC4=
+bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20220905055615-8540037e1b06/go.mod h1:LS21iwbgP8i3ZHJ1n4yNpLXQ/nzEudUOk0klC6VM2dQ=
+bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230129060002-f69424aa14ba h1:WATZdho/2XJ8DP3EuaSo10WiFrXRgxeLpmYoGEcSdMw=
+bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230129060002-f69424aa14ba/go.mod h1:m7/aZ1r1FapNT2h3gqmCFVb0EV+CaJaNKNPHMzLHx8Y=
 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=
@@ -380,10 +400,15 @@ cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vf
 cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA=
 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
 github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
+github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw=
 github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA=
+github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg=
+github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A=
 github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M=
 github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74=
+github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
 github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
+github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
 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=
@@ -391,6 +416,7 @@ 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/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.1/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI=
 github.com/ClickHouse/clickhouse-go v1.5.4/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI=
 github.com/ClickHouse/clickhouse-go/v2 v2.0.14/go.mod h1:iq2DUGgpA4BBki2CVwrF8x43zqBjdgHtbexkFkh5a6M=
 github.com/ClickHouse/clickhouse-go/v2 v2.2.0/go.mod h1:8f2XZUi7XoeU+uPIytSi1cvx8fmJxi7vIgqpvYTF1+o=
@@ -398,6 +424,7 @@ github.com/DATA-DOG/go-sqlmock v1.4.1/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q
 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/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
 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/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67 h1:x98/gnpyNAiuvg/gX3KgdfKxnZj3t9pIl3BCVJg3qwg=
@@ -415,9 +442,13 @@ github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk5
 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/miniredis/v2 v2.14.1/go.mod h1:uS970Sw5Gs9/iK3yBg0l9Uj9s25wXxSpQUE9EaJ/Blg=
+github.com/alicebob/miniredis/v2 v2.17.0/go.mod h1:gquAfGbzn92jvtrSC69+6zZnwSODVXVpYDRaGhWaL6I=
 github.com/alicebob/miniredis/v2 v2.22.0/go.mod h1:XNqvJdQJv5mSuVMc0ynneafpnL/zv52acZ6kqeS0t88=
+github.com/alicebob/miniredis/v2 v2.23.1/go.mod h1:84TWKZlxYkfgMucPBf5SOQBYJceZeQRFIaQgNMiCX6Q=
 github.com/alicebob/miniredis/v2 v2.30.0 h1:uA3uhDbCxfO9+DI/DuGeAMr9qI+noVWwGPNTFuKID5M=
 github.com/alicebob/miniredis/v2 v2.30.0/go.mod h1:84TWKZlxYkfgMucPBf5SOQBYJceZeQRFIaQgNMiCX6Q=
+github.com/aliyun/aliyun-oss-go-sdk v2.2.2+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8=
+github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
 github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q=
 github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
 github.com/antlr/antlr4 v0.0.0-20210105212045-464bcbc32de2/go.mod h1:T7PbCXFs94rrTttyxjbyT5+/1V8T2TYDejxUfHJjw1Y=
@@ -426,6 +457,7 @@ github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb
 github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48=
 github.com/aws/aws-sdk-go v1.35.20/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k=
+github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc=
 github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
 github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
 github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
@@ -439,9 +471,8 @@ github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInq
 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 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
 github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
-github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 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=
@@ -477,9 +508,11 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
 github.com/dchest/captcha v0.0.0-20200903113550-03f5f0333e1f h1:q/DpyjJjZs94bziQ7YkBmIlpqbVP7yw179rnzoNVX1M=
 github.com/dchest/captcha v0.0.0-20200903113550-03f5f0333e1f/go.mod h1:QGrK8vMWWHQYQ3QU9bw9Y9OPNfxccGzfb41qjvVeXtY=
 github.com/denisenkom/go-mssqldb v0.0.0-20190707035753-2be1aa521ff4/go.mod h1:zAg7JM8CkOJ43xKXIj7eRO9kmWm/TW578qo+oDO6tuM=
+github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
 github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
 github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
 github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
+github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
 github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
 github.com/donnie4w/go-logger v0.0.0-20170827050443-4740c51383f4/go.mod h1:L7S4x0R7vv3xoOhGuyAJyCO2MYzWOpccM4Isn8jIUgY=
 github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
@@ -501,9 +534,12 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.m
 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=
+github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0=
+github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
 github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
+github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
 github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
 github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
 github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94=
@@ -518,9 +554,11 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo
 github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
 github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
 github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
+github.com/fullstorydev/grpcurl v1.8.6/go.mod h1:WhP7fRQdhxz2TkL97u+TCb505sxfH78W1usyoB3tepw=
 github.com/fullstorydev/grpcurl v1.8.7/go.mod h1:pVtM4qe3CMoLaIzYS8uvTuDj2jVYmXqMUkZeijnXp/E=
 github.com/garyburd/redigo v1.6.2 h1:yE/pwKCrbLpLpQICzYTeZ7JsTA/C53wFTJHaEtRqniM=
 github.com/garyburd/redigo v1.6.2/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
+github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
 github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
@@ -535,6 +573,7 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V
 github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
 github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
 github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
+github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
 github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
 github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
 github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
@@ -546,8 +585,12 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
 github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
 github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM=
 github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
+github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
 github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
+github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
 github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
+github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
+github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
 github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
 github.com/go-redis/redis v6.15.7+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
 github.com/go-redis/redis/v8 v8.11.4/go.mod h1:2Z2wHZXdQpCDXEGzqMockDpNyYvi2l4Pxt6RJr792+w=
@@ -601,9 +644,11 @@ github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zV
 github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
 github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
 github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
+github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
 github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
 github.com/golang-jwt/jwt/v4 v4.4.3 h1:Hxl6lhQFj4AnOX6MLrsCb/+7tCj7DxP7VA+2rDIq5AU=
 github.com/golang-jwt/jwt/v4 v4.4.3/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
+github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ=
 github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4=
@@ -709,10 +754,12 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99
 github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c=
 github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo=
 github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY=
+github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
 github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU=
 github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw=
 github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA=
 github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4=
+github.com/gordonklaus/ineffassign v0.0.0-20200309095847-7953dde2c7bf/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU=
 github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
 github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ=
 github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
@@ -760,11 +807,15 @@ github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJk
 github.com/jhump/gopoet v0.0.0-20190322174617-17282ff210b3/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI=
 github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI=
 github.com/jhump/goprotoc v0.5.0/go.mod h1:VrbvcYrQOrTi3i0Vf+m+oqQWk9l72mjkJCYo7UvLHRQ=
+github.com/jhump/protoreflect v1.10.3/go.mod h1:7GcYQDdMU/O/BBrl/cX6PNHpXh6cenjd8pneu5yW7Tg=
 github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E=
 github.com/jhump/protoreflect v1.12.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI=
+github.com/jhump/protoreflect v1.14.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI=
 github.com/jhump/protoreflect v1.14.1/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI=
+github.com/jinzhu/gorm v1.9.16/go.mod h1:G3LB3wezTOWM2ITLzPxEXgSkOXAntiLHS7UdBefADcs=
 github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
 github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
+github.com/jinzhu/now v1.0.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
 github.com/jinzhu/now v1.1.1 h1:g39TucaRWyV3dwDO++eEc6qf8TVIQ/Da48WmqjZ3i7E=
 github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
 github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
@@ -805,11 +856,14 @@ github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfn
 github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
 github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
 github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
 github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
+github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
 github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
+github.com/lib/pq v1.10.4/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
 github.com/lib/pq v1.10.6/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
 github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
 github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
@@ -825,6 +879,7 @@ github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kN
 github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
 github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
 github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
+github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
 github.com/mattn/go-colorable v0.1.9 h1:sqDoxXbdeALODt0DAeJCVp38ps9ZogZEAXjus69YV3U=
 github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
 github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
@@ -840,6 +895,7 @@ github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4
 github.com/mattn/go-runewidth v0.0.13/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.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus=
 github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
 github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI=
 github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
@@ -861,6 +917,7 @@ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRW
 github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
 github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms=
 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
+github.com/nishanths/predeclared v0.0.0-20200524104333-86fad755b4d3/go.mod h1:nt3d53pc1VYcphSCIaYAJtnPYnr3Zyn8fMq2wvPGPso=
 github.com/nsqio/go-nsq v1.1.0 h1:PQg+xxiUjA7V+TLdXw7nVrJ5Jbl3sN86EhGCQj4+FYE=
 github.com/nsqio/go-nsq v1.1.0/go.mod h1:vKq36oyeVXgsS5Q8YEO7WghqidAVXQlcFxzQbQTuDEY=
 github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
@@ -876,6 +933,7 @@ github.com/olivere/elastic/v7 v7.0.22/go.mod h1:VDexNy9NjmtAkrjNoI7tImv7FR4tf5zU
 github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
 github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
 github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
@@ -885,6 +943,7 @@ github.com/onsi/ginkgo/v2 v2.0.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3
 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=
+github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
 github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
 github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
@@ -893,6 +952,7 @@ github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE=
 github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs=
 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.3.0/go.mod h1:4c3sLeE8xjNqehmF5RpAFLPLJxXscc0R4l6Zg0P1tTQ=
 github.com/openzipkin/zipkin-go v0.4.0 h1:CtfRrOVZtbDj8rt1WXjklw0kqqJQwICrCKmlfUuBUUw=
 github.com/openzipkin/zipkin-go v0.4.0/go.mod h1:4c3sLeE8xjNqehmF5RpAFLPLJxXscc0R4l6Zg0P1tTQ=
 github.com/paulmach/orb v0.5.0/go.mod h1:FWRlTgl88VI1RBx/MkrwWDRhQ96ctqMCh8boXhmqB/A=
@@ -938,6 +998,7 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8
 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.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
 github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
 github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE=
 github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA=
@@ -964,6 +1025,7 @@ github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR
 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
 github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
 github.com/shirou/gopsutil v2.19.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
 github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
 github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc=
@@ -993,6 +1055,7 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An
 github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
 github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
 github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
 github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
@@ -1042,27 +1105,35 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1
 github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
 github.com/yuin/gopher-lua v0.0.0-20191220021717-ab39c6098bdb/go.mod h1:gqRgreBUhTSL0GeU64rtZ3Uq3wtjOa/TB2YfrtkCbVQ=
+github.com/yuin/gopher-lua v0.0.0-20200816102855-ee81675732da/go.mod h1:E1AXubJBdNmFERAOucpDIxNzeGfLzg0mYh+UfMWdChA=
 github.com/yuin/gopher-lua v0.0.0-20210529063254-f4c35e4016d9/go.mod h1:E1AXubJBdNmFERAOucpDIxNzeGfLzg0mYh+UfMWdChA=
 github.com/yuin/gopher-lua v0.0.0-20220504180219-658193537a64 h1:5mLPGnFdSsevFRFc9q3yYbBkB6tsm4aCwwQV/j1JQAQ=
 github.com/yuin/gopher-lua v0.0.0-20220504180219-658193537a64/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw=
 github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
+github.com/zeromicro/go-zero v1.3.2/go.mod h1:DEj3Fwj1Ui1ltsgf6YqwTL9nD4+tYzIRX0c1pWtQo1E=
 github.com/zeromicro/go-zero v1.3.5/go.mod h1:wh4o794b7Ul3W0k35Pw9nc3iB4O0OpaQTMQz/PJc1bc=
+github.com/zeromicro/go-zero v1.4.0/go.mod h1:1amLn98K7c6FLntb9f8hdmq26ajtolOg4DTFWnRt54o=
+github.com/zeromicro/go-zero v1.4.3/go.mod h1:UmDjuW7LHd9j7+nnnPBcXF0HLNmjJw6OjHPTlSp7X7Y=
 github.com/zeromicro/go-zero v1.4.4 h1:J8M768EVFNtIQJ/GCEsoIQPanxbx2HHT0it7r69U76Y=
 github.com/zeromicro/go-zero v1.4.4/go.mod h1:5WSUwtJm0bYdDZ69GlckigcT6D0EyAPbDaX3unbSY/4=
 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.2/go.mod h1:5GB2vv4A4AOn3yk7MftYGHkUfGtDHnEraIjym4dYz5A=
 go.etcd.io/etcd/api/v3 v3.5.4/go.mod h1:5GB2vv4A4AOn3yk7MftYGHkUfGtDHnEraIjym4dYz5A=
 go.etcd.io/etcd/api/v3 v3.5.5 h1:BX4JIbQ7hl7+jL+g+2j5UAr0o1bctCm6/Ct+ArBGkf0=
 go.etcd.io/etcd/api/v3 v3.5.5/go.mod h1:KFtNaxGDw4Yx/BA4iPPwevUTAuqcsPxzyX8PHydchN8=
+go.etcd.io/etcd/client/pkg/v3 v3.5.2/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
 go.etcd.io/etcd/client/pkg/v3 v3.5.4/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
 go.etcd.io/etcd/client/pkg/v3 v3.5.5 h1:9S0JUVvmrVl7wCF39iTQthdaaNIiAaQbmK75ogO6GU8=
 go.etcd.io/etcd/client/pkg/v3 v3.5.5/go.mod h1:ggrwbk069qxpKPq8/FKkQ3Xq9y39kbFR4LnKszpRXeQ=
+go.etcd.io/etcd/client/v3 v3.5.2/go.mod h1:kOOaWFFgHygyT0WlSmL8TJiXmMysO/nNUlEsSsN6W4o=
 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.5 h1:q++2WTJbUgpQu4B6hCuT7VkdwaTP7Qz6Daak3WzbrlI=
 go.etcd.io/etcd/client/v3 v3.5.5/go.mod h1:aApjR4WGlSumpnJ2kloS75h6aHUmAyaPLjHMxpc7E7c=
 go.mongodb.org/mongo-driver v1.5.0/go.mod h1:boiGPFqyBs5R0R5qf2ErokGRekMfwn+MqKaUyHs7wy0=
 go.mongodb.org/mongo-driver v1.9.1/go.mod h1:0sQWfOeY63QTntERDJJ/0SuKK0T1uVSgKCuAROlKEPY=
+go.mongodb.org/mongo-driver v1.10.1/go.mod h1:z4XpeoU6w+9Vht+jAFyLgVrD+jGSQQe0+CBWFHNiHt8=
 go.mongodb.org/mongo-driver v1.11.1 h1:QP0znIRTuL0jf1oBQoAoM0C6ZJfBK4kx0Uumtv1A7w8=
 go.mongodb.org/mongo-driver v1.11.1/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8=
 go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
@@ -1077,10 +1148,13 @@ 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.9.0/go.mod h1:np4EoPGzoPs3O67xUVNoPPcmSvsfOxNlNA4F4AC+0Eo=
 go.opentelemetry.io/otel v1.10.0/go.mod h1:NbvWjCthWHKBEUMpf0/v8ZRZlni86PpGFEMA9pnQSnQ=
 go.opentelemetry.io/otel v1.11.0 h1:kfToEGMDq6TrVrJ9Vht84Y8y9enykSZzDDZglV0kIEk=
 go.opentelemetry.io/otel v1.11.0/go.mod h1:H2KtuEphyMvlhZ+F7tg9GRhAOe60moNx61Ex+WmiKkk=
+go.opentelemetry.io/otel/exporters/jaeger v1.3.0/go.mod h1:KoYHi1BtkUPncGSRtCe/eh1ijsnePhSkxwzz07vU0Fc=
 go.opentelemetry.io/otel/exporters/jaeger v1.8.0/go.mod h1:GbWg+ng88rDtx+id26C34QLqw2erqJeAjsCx9AFeHfE=
+go.opentelemetry.io/otel/exporters/jaeger v1.9.0/go.mod h1:hquezOLVAybNW6vanIxkdLXTXvzlj2Vn3wevSP15RYs=
 go.opentelemetry.io/otel/exporters/jaeger v1.10.0/go.mod h1:n9IGyx0fgyXXZ/i0foLHNxtET9CzXHzZeKCucvRBFgA=
 go.opentelemetry.io/otel/exporters/jaeger v1.11.0 h1:Sv2valcFfMlfu6g8USSS+ZUN5vwbuGj1aY/CFtMG33w=
 go.opentelemetry.io/otel/exporters/jaeger v1.11.0/go.mod h1:nRgyJbgJ0hmaUdHwyDpTTfBYz61cTTeeGhVzfQc+FsI=
@@ -1095,13 +1169,16 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.0 h1:j2RFV
 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.0/go.mod h1:pILgiTEtrqvZpoiuGdblDgS5dbIaTgDrkIuKfEFkt+A=
 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.10.0 h1:S8DedULB3gp93Rh+9Z+7NTEv+6Id/KYS7LDyipZ9iCE=
 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.10.0/go.mod h1:5WV40MLWwvWlGP7Xm8g3pMcg0pKOUY609qxJn8y7LmM=
+go.opentelemetry.io/otel/exporters/zipkin v1.3.0/go.mod h1:LxGGfHIYbvsFnrJtBcazb0yG24xHdDGrT/H6RB9r3+8=
 go.opentelemetry.io/otel/exporters/zipkin v1.8.0/go.mod h1:0uYAyCuGT67MFV9Z/Mmx93wGuugHw0FbxMc74fs3LNo=
+go.opentelemetry.io/otel/exporters/zipkin v1.9.0/go.mod h1:HyIvYIu37wV4Wx5azd7e05x9k/dOz9KB4x0plw2QNvs=
 go.opentelemetry.io/otel/exporters/zipkin v1.10.0/go.mod h1:HdfvgwcOoCB0+zzrTHycW6btjK0zNpkz2oTGO815SCI=
 go.opentelemetry.io/otel/exporters/zipkin v1.11.0 h1:v/Abo5REOWrCj4zcEIUHFZtXpsCVjrwZj28iyX2rHXE=
 go.opentelemetry.io/otel/exporters/zipkin v1.11.0/go.mod h1:unWnsLCMYfINP8ue0aXVrB/GYHoXNn/lbTnupvLekGQ=
 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.9.0/go.mod h1:AEZc8nt5bd2F7BC24J5R0mrjYnpEgYHyTcM/vrSple4=
 go.opentelemetry.io/otel/sdk v1.10.0/go.mod h1:vO06iKzD5baltJz1zarxMCNHFpUlUiOy4s65ECtn6kE=
 go.opentelemetry.io/otel/sdk v1.11.0 h1:ZnKIL9V9Ztaq+ME43IUi/eo22mNsb6a7tGfzaOWB5fo=
 go.opentelemetry.io/otel/sdk v1.11.0/go.mod h1:REusa8RsyKaq0OlyangWXaw97t2VogoO4SSEeKkSTAk=
@@ -1109,6 +1186,7 @@ go.opentelemetry.io/otel/trace v1.0.0/go.mod h1:PXTWqayeFUlJV1YDNhsJYB184+IvAH81
 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.9.0/go.mod h1:2737Q0MuG8q1uILYm2YYVkAyLtOofiTNGg6VODnOiPo=
 go.opentelemetry.io/otel/trace v1.10.0/go.mod h1:Sij3YYczqAdz+EhmGhE6TpTxUO5/F/AzrK+kxfGqySM=
 go.opentelemetry.io/otel/trace v1.11.0 h1:20U/Vj42SX+mASlXLmSGBg6jpI1jQtv682lZtTAOVFI=
 go.opentelemetry.io/otel/trace v1.11.0/go.mod h1:nyYjis9jy0gytE9LXGU+/m1sHTKbRY0fX0hulNNDP1U=
@@ -1142,8 +1220,10 @@ golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACk
 golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
 golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
@@ -1190,6 +1270,7 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
+golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -1252,9 +1333,8 @@ golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug
 golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
 golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
 golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
+golang.org/x/net v0.0.0-20221014081412-f15817d10f9b h1:tvrvnPFcdzp294diPnrdZZZ8XUt2Tyj7svb7X52iDuU=
 golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
-golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw=
-golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
 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=
@@ -1279,9 +1359,8 @@ golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7Lm
 golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
 golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
 golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
+golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783 h1:nt+Q6cXKz4MosCSpnbMtqiQ8Oz0pxTef2B4Vca2lvfk=
 golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
-golang.org/x/oauth2 v0.4.0 h1:NF0gk8LVPg1Ml7SSbGyySuoxdsXitj7TvgvuRxIMc/M=
-golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec=
 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=
@@ -1317,6 +1396,7 @@ golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -1349,6 +1429,7 @@ golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -1393,14 +1474,13 @@ golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBc
 golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18=
-golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 h1:h+EGohizhe9XlX18rfpa8k8RAc5XyaeamM+0VHRd4lc=
+golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8/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 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.4.0 h1:O7UWfv5+A2qiuulQk30kVinPoMtoIPeVaKLEgLpVkvg=
-golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
 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=
@@ -1412,14 +1492,15 @@ 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.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg=
 golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
-golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k=
-golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
 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=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20220411224347-583f2d630306/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
 golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -1440,6 +1521,7 @@ golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBn
 golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@@ -1469,8 +1551,10 @@ golang.org/x/tools v0.0.0-20200410132612-ae9902aceb98/go.mod h1:EkVYQZoAsY45+roY
 golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200522201501-cb1345f3a375/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200717024301-6ddee64345a6/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
 golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
 golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
 golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
@@ -1665,9 +1749,8 @@ google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz
 google.golang.org/genproto v0.0.0-20221024153911-1573dae28c9c/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s=
 google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s=
 google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+E5bKwmfYo09AXuVN4dD894kIKUFmVbP2/Fo=
+google.golang.org/genproto v0.0.0-20221111202108-142d8a6fa32e h1:azcyH5lGzGy7pkLCbhPe0KkKxsM7c6UA/FZIXImKE7M=
 google.golang.org/genproto v0.0.0-20221111202108-142d8a6fa32e/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg=
-google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f h1:BWUVssLB0HVOSY78gIdvk1dTVYtT1y8SBWtPYuTJ/6w=
-google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
 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=
@@ -1707,8 +1790,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu
 google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
 google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
 google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
-google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc=
-google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw=
+google.golang.org/grpc v1.51.0 h1:E1eGv1FTqoLIdnBCZufiSHgKjlqG6fKFf6pPWtMTh8U=
+google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww=
 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
 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=
@@ -1720,6 +1803,7 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2
 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
 google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
+google.golang.org/protobuf v1.25.1-0.20200805231151-a709e31e5d12/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
 google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
@@ -1776,19 +1860,25 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
 honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
 honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
+k8s.io/api v0.20.12/go.mod h1:A2brwyEkVLM3wQGNnzoAa5JsQRzHK0uoOQ+bsnv7V68=
 k8s.io/api v0.22.9 h1:PidjRtgd0zDa6SvyooBLH/SP62uOhEBY0kx0UYRGr1o=
 k8s.io/api v0.22.9/go.mod h1:rcjO/FPOuvc3x7nQWx29UcDrFJMx82RxDob71ntNH4A=
+k8s.io/apimachinery v0.20.12/go.mod h1:uM7hCI0NyBymUwgshMgZyte475lxhr+QH6h3cvdnzEc=
 k8s.io/apimachinery v0.22.9 h1:5qjnpBk6eC9me0SAzokCUMI0KVF2PENK1PnykF8/Gjo=
 k8s.io/apimachinery v0.22.9/go.mod h1:ZvVLP5iLhwVFg2Yx9Gh5W0um0DUauExbRhe+2Z8I1EU=
+k8s.io/client-go v0.20.12/go.mod h1:NBJj6Evp73Xy/4v/O/RDRaH0+3JoxNfjRxkyRgrdbsA=
 k8s.io/client-go v0.22.9 h1:5p2R2LsoBfaE6QnXfWFmyyvxrFXtfegUGRMZSpTI+Q8=
 k8s.io/client-go v0.22.9/go.mod h1:IoH7exYnoH/zgvHOuVxh2c4yJepcCBt72FzCTisOc4k=
 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.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
 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.80.1 h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4=
 k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
+k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM=
 k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw=
+k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
 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-20221108210102-8e77b1f39fe2 h1:GfD9OzL11kvZN5iArC6oTS7RTj7oJOIfnislxYlqTj8=
@@ -1797,6 +1887,7 @@ 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=
 sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
+sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4=
 sigs.k8s.io/structured-merge-diff/v4 v4.2.1 h1:bKCqE9GvQ5tiVHn5rfn1r+yao3aLQEaLzkkmAkf+A6Y=
 sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4=
 sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=

+ 16 - 5
src/jfw/modules/publicapply/src/identity/service/service.go

@@ -4,6 +4,7 @@ import (
 	"encoding/json"
 	"fmt"
 	. "jy/src/jfw/modules/publicapply/src/config"
+	. "jy/src/jfw/modules/publicapply/src/db"
 	"log"
 
 	. "app.yhyue.com/moapp/jybase/api"
@@ -32,12 +33,22 @@ func decode(v string) *IdentityInfo {
 //
 func (f *Identity) List() {
 	identitys := []map[string]interface{}{}
-	if base_user_id := util.Int64All(f.GetSession("base_user_id")); base_user_id > 0 {
-		for _, v := range Middleground.UserCenter.IdentityList(base_user_id) {
+	sessVal := f.Session().GetMultiple()
+	positionId := util.Int64All(sessVal["positionId"])
+	if base_user_id := util.Int64All(sessVal["base_user_id"]); base_user_id > 0 {
+		list := Middleground.UserCenter.IdentityList(base_user_id)
+		for k, v := range list {
+			if positionId == v.PositionId {
+				break
+			} else if k == len(list)-1 {
+				positionId, _ = SwitchToBest(base_user_id, f.Session(), Middleground, &Mgo, false)
+			}
+		}
+		for _, v := range list {
 			checked := 0
-			if (util.Int64All(f.GetSession("positionType")) == 0 && v.PositionType == 0) || util.Int64All(f.GetSession("positionId")) == v.PositionId {
+			if positionId == v.PositionId {
 				checked = 1
-				NewIdentityInfo(v).Switch(f.Session())
+				NewIdentityInfo(v).Switch(f.Session(), &Mgo)
 			}
 			identitys = append(identitys, map[string]interface{}{
 				"checked":      checked,
@@ -69,7 +80,7 @@ func (f *Identity) SwitchIdentity() {
 	token := f.GetString("token")
 	identityInfo := decode(token)
 	status := 0
-	if identityInfo != nil && identityInfo.Switch(f.Session()) {
+	if identityInfo != nil && identityInfo.Switch(f.Session(), &Mgo) {
 		status = 1
 	}
 	f.ServeJson(Result{

+ 10 - 5
src/web/staticres/common-module/ad/js/msgbuoy.js

@@ -149,11 +149,16 @@ var getMsgBuoyActive = {
             break;
           }
           case 'app': {
-            try {
-              // app跳转到消息中心tab
-              JyObj.skipAppointTab('message')
-            } catch (error) {
-              console.log('error')
+            // H5 环境支持跳转
+            if (window.utilsEnv && window.utilsEnv.platformEnvs.platform === 'h5') {
+              location.href = '/jy_mobile/tabbar/message'
+            } else {
+              try {
+                // app跳转到消息中心tab
+                JyObj.skipAppointTab('message')
+              } catch (error) {
+                console.log('error')
+              }
             }
             break;
           }

+ 4 - 2
src/web/staticres/common-module/nps-common/js/nps.js

@@ -1,5 +1,5 @@
 var temp = `
-<div id="npsMain" class="npsMain" :class="{npsPc:params.platform=='PC'}"  v-show="showModule">
+<div id="npsMain" v-if="userId" class="npsMain" :class="{npsPc:params.platform=='PC'}"  v-show="showModule">
   <div class="gray-div"></div>
   <div class="nps-content">
     <div class="nps-head">
@@ -44,7 +44,7 @@ var temp = `
   </div>
 </div>
 `
-
+var userId = {{.T.userId}}
 var vmNps = new Vue({
   el: '#nps-container',
   delimiters: ['@@', '@@'],
@@ -61,11 +61,13 @@ var vmNps = new Vue({
         platform: '',
         nid: ''
       },
+      userId: '',
       question: '你有多大可能将剑鱼标讯推荐给朋友?'
     }
   },
   created () {
     this.getShow()
+    this.userId = userId
   },
   computed: {
     getWordLen () {

+ 14 - 1
src/web/staticres/common-module/perfect-info/js/perfect-info.js

@@ -32,9 +32,13 @@ var titleMap = {
   'super_subscrip_buy_advanced_items': '欢迎体验剑鱼大会员',
   // P271 企业潜客 搜索、订阅页面新增
   app_subscribe_cqxm: '欢迎体验剑鱼大会员',
+  h5_subscribe_cqxm: '欢迎体验剑鱼大会员',
   app_search_cqxm: '欢迎体验剑鱼大会员',
+  h5_search_cqxm: '欢迎体验剑鱼大会员',
   app_subscribe_dzhfxbg: '欢迎体验剑鱼大会员',
+  h5_subscribe_dzhfxbg: '欢迎体验剑鱼大会员',
   app_search_dzhfxbg: '欢迎体验剑鱼大会员',
+  h5_search_dzhfxbg: '欢迎体验剑鱼大会员',
   wx_subscribe_cqxm: '欢迎体验剑鱼大会员',
   wx_search_cqxm: '欢迎体验剑鱼大会员',
   wx_subscribe_dzhfxbg: '欢迎体验剑鱼大会员',
@@ -117,9 +121,13 @@ var tipMap = {
   super_subscrip_buy_advanced_items: '留下您的联系方式,我们会尽快和您联系。提前介入项目,助您轻松中标。', // 采购意向
   // P271 企业潜客 搜索、订阅页面新增
   app_subscribe_cqxm: '请完善个人信息,我们将尽快与您联系,体验超前项目推荐服务!',
+  h5_subscribe_cqxm: '请完善个人信息,我们将尽快与您联系,体验超前项目推荐服务!',
   app_search_cqxm: '请完善个人信息,我们将尽快与您联系,体验超前项目推荐服务!',
+  h5_search_cqxm: '请完善个人信息,我们将尽快与您联系,体验超前项目推荐服务!',
   app_subscribe_dzhfxbg: '请完善个人信息,我们将尽快与您联系,为您量身定制报告,做市场复盘数据支持。',
+  h5_subscribe_dzhfxbg: '请完善个人信息,我们将尽快与您联系,为您量身定制报告,做市场复盘数据支持。',
   app_search_dzhfxbg: '请完善个人信息,我们将尽快与您联系,为您量身定制报告,做市场复盘数据支持。',
+  h5_search_dzhfxbg: '请完善个人信息,我们将尽快与您联系,为您量身定制报告,做市场复盘数据支持。',
   wx_subscribe_cqxm: '请完善个人信息,我们将尽快与您联系,体验超前项目推荐服务!',
   wx_search_cqxm: '请完善个人信息,我们将尽快与您联系,体验超前项目推荐服务!',
   wx_subscribe_dzhfxbg: '请完善个人信息,我们将尽快与您联系,为您量身定制报告,做市场复盘数据支持。',
@@ -190,7 +198,8 @@ var vNode = {
       company_size: '',
       workScope: '',
       partnerNeeds: '',
-      branch: ''
+      branch: '',
+      origin: location.origin
     },
     // 默认为隐藏,需要展示则需判断
     moduleShow: {
@@ -326,9 +335,13 @@ var vNode = {
         }
 
         case 'app_subscribe_cqxm':
+        case 'h5_subscribe_cqxm':
         case 'app_search_cqxm':
+        case 'h5_search_cqxm':
         case 'app_subscribe_dzhfxbg':
+        case 'h5_subscribe_dzhfxbg':
         case 'app_search_dzhfxbg':
+        case 'h5_search_dzhfxbg':
         case 'wx_subscribe_cqxm':
         case 'wx_search_cqxm':
         case 'wx_subscribe_dzhfxbg':

+ 121 - 1
src/web/staticres/common-module/public/js/utils.js

@@ -95,12 +95,93 @@ var versionChangeLog = {
   '0.0.2': ['utils.dateFromNow 函数逻辑修改,具体修改内容查看函数注释'],
   '0.0.3': ['utils.formatMoney 新增不使用,分割返回值的选项'],
   '0.0.4': ['utils.checkNowInAppTabbarPage 判断是否app tabbar 页面,返回对应的key'],
+  '0.0.5': ['新增utils.$env, utils.$envs 等变量'],
 }
 
+if (!window.utilsEnv) {
+  // $env, $envs的辅助函数
+  window.utilsEnv = {
+    // 获取当前是android或者ios
+    androidOrIOS: function () {
+      var u = navigator.userAgent.toLowerCase()
+      var agent = null
+      if (/iphone|ipod|ipad|ios/.test(u)) {
+        agent = 'ios'
+      } else if (/(Android)/i.test(u)) {
+        agent = 'android'
+      }
+      return agent
+    },
+    getIsH5HostName: function () {
+      var hostname = location.hostname.toLowerCase()
+      return hostname.indexOf('h5') !== -1
+    },
+    // 是否是在app里面运行
+    getIsInTheAppContainer: function () {
+      // 判断是否在app环境下
+      var inApp = false
+      var u = navigator.userAgent.toLowerCase()
+      if (u.indexOf('jianyuapp') !== -1) {
+        inApp = true
+        return inApp
+      }
+      try {
+        if (this.androidOrIOS() === 'ios') {
+          var iniOSApp = typeof window.webkit.messageHandlers.skipAppointTab.postMessage === 'function'
+          inApp = iniOSApp
+        } else {
+          var inAndroidApp = typeof window.JyObj !== 'undefined'
+          inApp = inAndroidApp
+        }
+      } catch (e) {
+        console.warn(e)
+        inApp = false
+      }
+      return inApp
+    },
+    getPlatformEnvs: function () {
+      var inWX = navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1
+      var inApp = this.getIsInTheAppContainer()
+      var platformOS = this.androidOrIOS()
+      var getPlatform = function () {
+        var h5host = window.utilsEnv.getIsH5HostName()
+        if (inApp) {
+          return 'app'
+        } else if (h5host) {
+          return 'h5'
+        } else if (inWX) {
+          return 'wx'
+        } else {
+          return 'h5'
+        }
+      }
+      var platform = getPlatform()
+      return {
+        platformOS: platformOS,
+        platform: platform,
+        inApp: inApp,
+        inWX: inWX
+      }
+    }
+  }
+  utilsEnv.platformEnvs = utilsEnv.getPlatformEnvs()
+}
 
 var utils = {
   // utils版本号
-  version: '0.0.4',
+  version: '0.0.5',
+  $env: {
+    appVersion: '', // app版本号
+    platformOS: window.utilsEnv.platformEnvs.platformOS, // android或者ios
+    platform: window.utilsEnv.platformEnvs.platform, // wx/app/h5
+  },
+  $envs: {
+    inWX: window.utilsEnv.platformEnvs.platform === 'wx', // 是否在微信中
+    inH5: window.utilsEnv.platformEnvs.platform === 'h5', // 是否在h5中
+    inApp: window.utilsEnv.platformEnvs.inApp, // 是否在app中
+    inAndroid: window.utilsEnv.platformEnvs.platformOS === 'android', // 是否在android中
+    inIOS: window.utilsEnv.platformEnvs.platformOS === 'ios', // 是否在android中
+  },
   isWeiXinBrowser: navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1,
   isAndroid: navigator.userAgent.toLowerCase().indexOf('android') !== -1,
   isIos: /iphone|ipod|ipad|ios/.test(navigator.userAgent.toLowerCase()),
@@ -795,5 +876,44 @@ var utils = {
       }
     }
     return appTabbarName
+  },
+  // 部分h5浏览器(华为、荣耀)页面返回不刷新兼容
+  fixSomeH5BackRefresh () {
+    // 如果全局有,则说明已经被调用过,就不需要再次调用
+    if (window.fixSomeH5BackRefresh && typeof window.fixSomeH5BackRefresh) return
+    if (utilsEnv.platformEnvs.platform !== 'h5') return
+    const ua = navigator.userAgent.toLowerCase()
+    // 判断是不是华为/荣耀浏览器
+    const huawei = ua.includes('huawei') || ua.includes('honor')
+    if (huawei) {
+      window.addEventListener('visibilitychange', function () {
+        const v = document.visibilityState
+        if (v === 'hidden') {
+          // do something
+        } else if (v === 'visible') {
+          location.reload()
+        }
+      })
+    }
+  },
+}
+Object.defineProperty(utils.$env, 'appVersion', {
+  get () {
+    var version
+    try {
+      version = JyObj.getVersion()
+    } catch (e) {
+      console.warn('error: get app version failed')
+    }
+    return version
   }
+})
+
+// h5头部公共样式
+if (utils.$envs.inH5) {
+  $('body').addClass('h5-body')
+  $('.jy-app-header').addClass('h5-header')
+  $('.childNav').addClass('h5-tabfix')
+  $('.share1 .app-layout-content-b').css('top', '10.33333vw')
 }
+utils.fixSomeH5BackRefresh()

+ 0 - 15
src/web/staticres/entnichePush/js/common.js

@@ -1185,25 +1185,10 @@ function checkMsgCount(acync, str, callback) {
       if (str == 1) {
         var isMsg = localStorage.getItem('isMsgNum')
         if (num !== Number(isMsg)) {
-          try {
-            /**
-             * 在此直接刷新 首页/消息 页面 (旧业务逻辑,可能是想消除对应页面未读消息小红点?)
-             * 改为判断是否为 tabbar 页面,仅在是 tabbar 页面是刷新
-             */
-            if (checkNowInTabbarPage()) {
-              JyObj.refreshAppointTab('search', 1)
-              JyObj.refreshAppointTab('message', 1)
-            }
-            // JyObj.checkLab()
-          } catch (e) {
-            console.log(e)
-          }
           kfData(acync, num)
-          // localStorage.setItem('isMsgNum', num)
         }
       } else {
         kfData(acync, num)
-        // localStorage.setItem('isMsgNum', num)
       }
 
       callback && callback()

+ 2 - 1
src/web/staticres/js/pc-collect-bid-info.js

@@ -379,7 +379,8 @@ var vmbid = new Vue({
         phone: this.form.phone,
         company: this.form.companyName, // 公司名称
         position: this.form.job == '其他' ? ('其他/' + this.form.otherJob) : this.form.job,
-        branch: this.form.branch.indexOf('总裁') > -1 || this.form.branch.indexOf('总经理') > -1 ?  '' : this.form.branch
+        branch: this.form.branch.indexOf('总裁') > -1 || this.form.branch.indexOf('总经理') > -1 ?  '' : this.form.branch,
+        origin: location.origin
       }
       var _this = this
       $.ajax({

+ 1 - 0
src/web/staticres/js/pc-collect-partner-info.js

@@ -318,6 +318,7 @@ var vmPartner = new Vue({
         phone: this.form.phone,
         company: this.form.companyName, // 公司名称
         platform: "pc",
+        origin: location.origin
       }
       if (info) {
         params = info

+ 2 - 1
src/web/staticres/js/pc-collect-user-info.js

@@ -711,7 +711,8 @@ var vm = new Vue({
         // workScope: this.form.business,
         // partnerNeeds: this.form.need,
         // agree: this.form.agreeChecked,
-        branch: this.form.branch.indexOf('总裁') > -1 || this.form.branch.indexOf('总经理') > -1 ?  '' : this.form.branch
+        branch: this.form.branch.indexOf('总裁') > -1 || this.form.branch.indexOf('总经理') > -1 ?  '' : this.form.branch,
+        origin: location.origin
       }
       if (infoid != "" && isProDetail != -1){
         params.publish_id = infoid

+ 66 - 20
src/web/staticres/js/superSearch.js

@@ -150,8 +150,8 @@ $(function() {
 function getNewBids(pnum, size){
 	$.post("/jylab/supsearch/getNewBids",{
     pageNumber:pnum,
-    pageSize: size? size : pageSize, 
-    pageType:"", 
+    pageSize: size? size : pageSize,
+    pageType:"",
     fileExists: $("#zbSeatchT [name='fileExists']").val(),
     bid_field: $("#zbSeatchT [name='bid_field']").val(),
     searchGroup: $("#zbSeatchT [name='searchGroup']").val()
@@ -353,7 +353,14 @@ function appendDatas(datas,flag,isNew,onlyUpdateTable){
                 }
                 var amount= getacount(datas[i].bidamount,datas[i].budget)
                 if (amount!="") {
-                  listHtml += '<a class="tags-item">'+conversionMoeny(amount)+'</a>';
+                  /**
+                   * @date 2023/2/15 支持未登录用户使用,存在字符串 略,需要额外判断
+                   */
+                  var tempMoneyNumber = amount
+                  if (typeof tempMoneyNumber === 'number') {
+                    tempMoneyNumber = conversionMoeny(tempMoneyNumber)
+                  }
+                  listHtml += '<a class="tags-item">'+tempMoneyNumber+'</a>';
                 } else {
                   listHtml += '<a href="javascript:volid(0);" style="display:none;"></a>';
                 }
@@ -395,7 +402,14 @@ function appendDatas(datas,flag,isNew,onlyUpdateTable){
                       listHtml += '<span><i class="d-i-item-label">采购单位联系方式:</i>'+ datas[i].buyerperson + datas[i].buyertel + '<a class="highlight-text" href="' + buyerLink + datas[i].buyer + '?position=contact" target="_blank"> 获取更多</a></span>'
                     }
                     if (datas[i].budget) {
-                      listHtml += '<span><i class="d-i-item-label">预算金额:</i>' + conversionMoeny(datas[i].budget) + '</span>'
+                      /**
+                       * @date 2023/2/15 支持未登录用户使用,存在字符串 略,需要额外判断
+                       */
+                      var tempMoneyNumber = datas[i].budget
+                      if (typeof tempMoneyNumber === 'number') {
+                        tempMoneyNumber = conversionMoeny(tempMoneyNumber)
+                      }
+                      listHtml += '<span><i class="d-i-item-label">预算金额:</i>' + tempMoneyNumber + '</span>'
                     }
                   listHtml +='</p>'
                 }
@@ -427,7 +441,14 @@ function appendDatas(datas,flag,isNew,onlyUpdateTable){
                       listHtml += '<span><i class="d-i-item-label">中标单位联系方式:</i>' + datas[i].winnerperson + datas[i].winnertel + moreWinnerTel +'</span>'
                     }
                     if (datas[i].bidamount) {
-                      listHtml += '<span><i class="d-i-item-label">中标金额:</i>'+ conversionMoeny(datas[i].bidamount) +'</span>'
+                      /**
+                       * @date 2023/2/15 支持未登录用户使用,存在字符串 略,需要额外判断
+                       */
+                      var tempMoneyNumber = datas[i].bidamount
+                      if (typeof tempMoneyNumber === 'number') {
+                        tempMoneyNumber = conversionMoeny(tempMoneyNumber)
+                      }
+                      listHtml += '<span><i class="d-i-item-label">中标金额:</i>'+ tempMoneyNumber +'</span>'
                     }
                   listHtml +='</p>'
                 }
@@ -440,7 +461,14 @@ function appendDatas(datas,flag,isNew,onlyUpdateTable){
                       listHtml += '<span><i class="d-i-item-label">投标截止日期:</i>' + utils.dateFromNow(Number(datas[i].bidendtime+"000")) + '</span>'
                     }
                     if (datas[i].bidopentime) {
-                      listHtml += '<span><i class="d-i-item-label">开标日期:</i>' + utils.dateFromNow(Number(datas[i].bidopentime+"000")) + '</span>'
+                      /**
+                       * @date 2023/2/15 支持未登录用户使用,存在字符串 略,需要额外判断
+                       */
+                      var tempDate = datas[i].bidopentime
+                      if (typeof tempDate === 'number') {
+                        tempDate = utils.dateFromNow(Number(tempDate+"000"))
+                      }
+                      listHtml += '<span><i class="d-i-item-label">开标日期:</i>' + tempDate  + '</span>'
                     }
                   listHtml +='</p>'
                 }
@@ -464,7 +492,7 @@ function appendDatas(datas,flag,isNew,onlyUpdateTable){
 				listHtml += '<div data-list-ad class="_6omliqck79a"></div>'
 			}
 		}
- 
+
 		//表格仅显示前20条信息
 		if (i >= 20||currentPage!=1){
 			continue
@@ -486,11 +514,17 @@ function appendDatas(datas,flag,isNew,onlyUpdateTable){
 		}
 
 		if(typeof(datas[i].budget) != "undefined" && datas[i].budget != null && datas[i].budget != ""){
-      var budget = tableFormatMoney(datas[i].budget, {
-        type: 'number',
-        digit: 2,
-        level: 1
-      })
+      /**
+       * @date 2023/2/15 支持未登录用户使用,存在字符串 略,需要额外判断
+       */
+      var budget = datas[i].budget
+      if (typeof datas[i].budget === 'number') {
+         budget = tableFormatMoney(datas[i].budget, {
+          type: 'number',
+          digit: 2,
+          level: 1
+        })
+      }
 			tableHtml += '<td class="tt-r" width="73"><div>'+budget+'</div></td>';
 		}else{
 			tableHtml += '<td class="tt-r" width="73"><div></div></td>';
@@ -501,7 +535,13 @@ function appendDatas(datas,flag,isNew,onlyUpdateTable){
 			tableHtml += '<td class="tt-l" width="181"><div></div></td>';
 		}
 		if(typeof(datas[i].bidopentime) != "undefined" && datas[i].bidopentime != null && datas[i].bidopentime != ""){
-			var diff = formatDate(Number(datas[i].bidopentime),"l");
+      /**
+       * @date 2023/2/15 支持未登录用户使用,存在字符串 略,需要额外判断
+       */
+			var diff = datas[i].bidopentime
+      if (typeof datas[i].bidopentime === 'number') {
+        diff = formatDate(Number(datas[i].bidopentime),"l");
+      }
 			tableHtml += '<td width="103"><div>'+diff+'</div></td>';
 		}else{
 			tableHtml += '<td width="103"><div></div></td>';
@@ -512,11 +552,17 @@ function appendDatas(datas,flag,isNew,onlyUpdateTable){
 			tableHtml += '<td class="tt-l" width="174"><div></div></td>';
 		}
 		if(typeof(datas[i].bidamount) != "undefined" && datas[i].bidamount != null && datas[i].bidamount != ""){
-      var bidamount = tableFormatMoney(datas[i].bidamount, {
-        type: 'number',
-        digit: 2,
-        level: 1
-      })
+      /**
+       * @date 2023/2/15 支持未登录用户使用,存在字符串 略,需要额外判断
+       */
+      var bidamount = datas[i].bidamount
+      if (typeof datas[i].bidamount === 'number') {
+        bidamount = tableFormatMoney(datas[i].bidamount, {
+          type: 'number',
+          digit: 2,
+          level: 1
+        })
+      }
 			tableHtml += '<td class="tt-r" width="76"><div>'+bidamount+'</div></td>';
 		}else{
 			tableHtml += '<td class="tt-r" width="76"><div></div></td>';
@@ -996,7 +1042,7 @@ function searchOnsubmit(clickpaging){
 			return;
 		}
 	}
-	
+
 	var param = {
     pageNumber: currentPage,
     pageSize: pageSize,
@@ -1145,7 +1191,7 @@ function pcAjaxReqCallBack(r){
 		$(".hasNoData").hide();
     searchInnerVue.listState.totalPage = Math.ceil(r.count / pageSize);
 		appendDatas(r.list,true,false)
-    
+
 	}
   allCount = r.total
   searchInnerVue.listState.allCount = r.total

+ 2 - 1
src/web/templates/frontRouter/wx/bigmember/free/perfect_info_partner.html

@@ -153,7 +153,8 @@
         "name": "",
         "phone": "",
         "source": utils.getParam('source'), // 推送消息点进来的
-        "company": ""
+        "company": "",
+        origin: location.origin
       }
     },
     created(){

+ 2 - 1
src/web/templates/frontRouter/wx/bigmember/free/perfect_info_solution.html

@@ -259,7 +259,8 @@
         "companyType": "",
         "position": "",
         'platform': 'wx',
-        "branch": ''
+        "branch": '',
+        origin: location.origin
       },
       jobJson: [
         '总裁',

+ 2 - 1
src/web/templates/frontRouter/wx/bigmember/free/perfect_info_strud.html

@@ -288,7 +288,8 @@
         "company": "",
         "companyType": "",
         "position": "",
-        "branch": ''
+        "branch": '',
+        origin: location.origin
       },
       jobJson: [
         '总裁',