wangkaiyue 1 rok temu
commit
da6d09c2eb

+ 14 - 0
.gitignore

@@ -0,0 +1,14 @@
+.buildpath
+.hgignore.swp
+.project
+.orig
+.swp
+.idea/
+.settings/
+.vscode/
+bin/
+**/.DS_Store
+main
+output/
+manifest/output/
+temp/

+ 9 - 0
README.MD

@@ -0,0 +1,9 @@
+# GoFrame Template For SingleRepo
+
+Project Makefile Commands: 
+- `make cli`: Install or Update to the latest GoFrame CLI tool.
+- `make dao`: Generate go files for `Entity/DAO/DO` according to the configuration file from `hack` folder.
+- `make service`: Parse `logic` folder to generate interface go files into `service` folder.
+- `make image TAG=xxx`: Run `docker build` to build image according `manifest/docker`.
+- `make image.push TAG=xxx`: Run `docker build` and `docker push` to build and push image according `manifest/docker`.
+- `make deploy TAG=xxx`: Run `kustomize build` to build and deploy deployment to kubernetes server group according `manifest/deploy`.

+ 5 - 0
go.mod

@@ -0,0 +1,5 @@
+module jyseo
+
+go 1.15
+
+require github.com/gogf/gf/v2 v2.3.1

+ 85 - 0
go.sum

@@ -0,0 +1,85 @@
+github.com/BurntSushi/toml v1.1.0 h1:ksErzDEI1khOiGPgpwuI7x2ebx/uXQNw7xJpn9Eq1+I=
+github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
+github.com/clbanning/mxj/v2 v2.5.5 h1:oT81vUeEiQQ/DcHbzSytRngP6Ky9O+L+0Bw0zSJag9E=
+github.com/clbanning/mxj/v2 v2.5.5/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s=
+github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
+github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
+github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI=
+github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
+github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
+github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+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/gogf/gf/v2 v2.3.1 h1:uptCJK47N6KSRwTBnFAqBWYnYa/OXBkZ0OlhO9CK7bQ=
+github.com/gogf/gf/v2 v2.3.1/go.mod h1:tsbmtwcAl2chcYoq/fP9W2FZf06aw4i89X34nbSHo9Y=
+github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o=
+github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
+github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
+github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
+github.com/grokify/html-strip-tags-go v0.0.1 h1:0fThFwLbW7P/kOiTBs03FsJSV9RM2M/Q/MOnCQxKMo0=
+github.com/grokify/html-strip-tags-go v0.0.1/go.mod h1:2Su6romC5/1VXOQMaWL2yb618ARB8iVo6/DR99A6d78=
+github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=
+github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
+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.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
+github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
+github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
+github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
+github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
+github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
+github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY=
+github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+go.opentelemetry.io/otel v1.7.0 h1:Z2lA3Tdch0iDcrhJXDIlC94XE+bxok1F9B+4Lz/lGsM=
+go.opentelemetry.io/otel v1.7.0/go.mod h1:5BdUoMIz5WEs0vt0CUEMtSSaTSHBBVwrhnz7+nrD5xk=
+go.opentelemetry.io/otel/sdk v1.7.0 h1:4OmStpcKVOfvDOgCt7UriAPtKolwIhxpnSNI/yK+1B0=
+go.opentelemetry.io/otel/sdk v1.7.0/go.mod h1:uTEOTwaqIVuTGiJN7ii13Ibp75wJmYUDe374q6cZwUU=
+go.opentelemetry.io/otel/trace v1.7.0 h1:O37Iogk1lEkMRXewVtZ1BBTVn5JEp8GrJvP92bJqC6o=
+go.opentelemetry.io/otel/trace v1.7.0/go.mod h1:fzLSB9nqR2eXzxPXb2JW9IKE+ScyXA48yyE4TNvoHqU=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 h1:CIJ76btIcR3eFI5EgSo6k1qKw9KJexJuRLI9G7Hp5wE=
+golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220412211240-33da011f77ad h1:ntjMns5wyP/fN65tdBD4g8J5w8n015+iIIs9rtjXkY0=
+golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.8-0.20211105212822-18b340fc7af2 h1:GLw7MR8AfAG2GmGcmVgObFOHXYypgGjnGno25RDwn3Y=
+golang.org/x/text v0.3.8-0.20211105212822-18b340fc7af2/go.mod h1:EFNZuWvGYxIRUEX+K8UmCFwYmZjqcrnq15ZuVldZkZ0=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
+gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

+ 28 - 0
internal/cmd/cmd.go

@@ -0,0 +1,28 @@
+package cmd
+
+import (
+	"context"
+	"github.com/gogf/gf/v2/frame/g"
+	"github.com/gogf/gf/v2/net/ghttp"
+	"github.com/gogf/gf/v2/os/gcmd"
+	"jyseo/internal/controller"
+	_ "jyseo/internal/service"
+)
+
+var (
+	Main = gcmd.Command{
+		Name:  "main",
+		Usage: "main",
+		Brief: "start http jyseo server",
+		Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
+			s := g.Server()
+			s.Group("/", func(group *ghttp.RouterGroup) {
+				group.GET("/list/{{module}}/{{param}}.html", controller.ListPage)
+			})
+			s.AddStaticPath("", "/resource/staticres") //静态资源
+			//	searchResult  xweb.Mapper `xweb:"/list/(\\w+)/(\\w+).html"` //剑鱼标讯分类 地区结果列表
+			s.Run()
+			return nil
+		},
+	}
+)

+ 1 - 0
internal/consts/consts.go

@@ -0,0 +1 @@
+package consts

+ 33 - 0
internal/controller/list.go

@@ -0,0 +1,33 @@
+package controller
+
+import (
+	"github.com/gogf/gf/v2/net/ghttp"
+)
+
+//var mobileReg = regexp.MustCompile("(?i)(Android|Mobile|Phone)")
+
+func ListPage(r *ghttp.Request) {
+	//module := r.Get("module").String()
+	//param := r.Get("param").String()
+	//
+	//switch module {
+	//case "area":
+	//	areamp, _ := config.Seoconfig["area"].(map[string]interface{})
+	//	if areamp != nil {
+	//		areamp1 := areamp[name].(map[string]interface{})
+	//		if areamp1 != nil {
+	//			area = areamp1["NAME"].(string)
+	//			seotitle = areamp1["TITLE"].(string)
+	//			seokeywords = areamp1["KEYWORDS"].(string)
+	//			seodescription = areamp1["DESCRIPTION"].(string)
+	//		}
+	//	}
+	//}
+	//
+	//node := service.JyCmsAreaRoot.GetAreaNodeByCode(alias)
+	//if node == nil {
+	//	service.HtmlRender.RenderError(r, fmt.Errorf("页面不存在"))
+	//	return
+	//}
+	//service.HtmlRender.Render(r, "default/city.html", g.Map{"areaCode": node.Code, "node": node})
+}

+ 0 - 0
internal/service/.gitkeep


+ 56 - 0
internal/service/areaStruct.go

@@ -0,0 +1,56 @@
+package service
+
+import (
+	"context"
+	"github.com/gogf/gf/v2/frame/g"
+	"github.com/gogf/gf/v2/os/gctx"
+	"github.com/gogf/gf/v2/util/gconv"
+)
+
+var (
+	JySEOAreaRoot *AreaRoot = &AreaRoot{}
+)
+
+type (
+	AreaRoot struct {
+		areaTree    map[string]*AreaNode //层级关系
+		areaAllNode map[string]*AreaNode //所有节点平铺
+		aliasMap    map[string]*AreaNode //省份直辖市简称对照
+	}
+	AreaNode struct {
+		Name  string      `json:"name" doc:"名称"`
+		Code  string      `json:"code" doc:"代码"`
+		PCode string      `json:"pcode" doc:"父节点代码"`
+		Child []*AreaNode `json:"child" doc:"子栏目"`
+	}
+)
+
+func init() {
+	JySEOAreaRoot.LoadAreasFrom(gctx.New())
+}
+
+// LoadAreasFrom 加载地区表示
+func (aRoot *AreaRoot) LoadAreasFrom(ctx context.Context) {
+	areaTree, areaAllNode := map[string]*AreaNode{}, map[string]*AreaNode{}
+	for _, m := range g.Cfg("area").MustGet(context.Background(), "allAreaTree").Maps() {
+		root := &AreaNode{
+			Name: gconv.String(m["name"]),
+			Code: gconv.String(m["code"]),
+		}
+		for _, n := range gconv.Maps(m["child"]) {
+			node := &AreaNode{
+				Name:  gconv.String(n["name"]),
+				Code:  gconv.String(n["code"]),
+				PCode: root.Code,
+			}
+			root.Child = append(root.Child, node)
+			areaAllNode[node.Code] = node
+		}
+		areaTree[root.Code] = root
+		areaAllNode[root.Code] = root
+	}
+	aRoot.areaTree, aRoot.areaAllNode = areaTree, areaAllNode
+
+	//
+
+}

+ 10 - 0
main.go

@@ -0,0 +1,10 @@
+package main
+
+import (
+	"github.com/gogf/gf/v2/os/gctx"
+	"jyseo/internal/cmd"
+)
+
+func main() {
+	cmd.Main.Run(gctx.New())
+}

+ 1441 - 0
manifest/config/area.yaml

@@ -0,0 +1,1441 @@
+allAreaTree:
+  - name: 北京
+    code: BJ
+    child:
+      - name: 东城区
+        code: BJ_DC
+        pcode: BJ
+      - name: 西城区
+        code: BJ_XC
+        pcode: BJ
+      - name: 朝阳区
+        code: BJ_CX
+        pcode: BJ
+      - name: 丰台区
+        code: BJ_FT
+        pcode: BJ
+      - name: 石景山区
+        code: BJ_SJS
+        pcode: BJ
+      - name: 海淀区
+        code: BJ_HD
+        pcode: BJ
+      - name: 门头沟区
+        code: BJ_STG
+        pcode: BJ
+      - name: 房山区
+        code: BJ_FS
+        pcode: BJ
+      - name: 通州区
+        code: BJ_TZ
+        pcode: BJ
+      - name: 顺义区
+        code: BJ_SY
+        pcode: BJ
+      - name: 昌平区
+        code: BJ_CP
+        pcode: BJ
+      - name: 大兴区
+        code: BJ_DX
+        pcode: BJ
+      - name: 怀柔区
+        code: BJ_HR
+        pcode: BJ
+      - name: 平谷区
+        code: BJ_GP
+        pcode: BJ
+      - name: 密云区
+        code: BJ_MY
+        pcode: BJ
+      - name: 延庆区
+        code: BJ_YQ
+        pcode: BJ
+  - name: 天津
+    code: TJ
+    child:
+      - name: 和平区
+        code: TJ_HP
+        pcode: TJ
+      - name: 河东区
+        code: TJ_HD
+        pcode: TJ
+      - name: 河西区
+        code: TJ_HX
+        pcode: TJ
+      - name: 南开区
+        code: TJ_NK
+        pcode: TJ
+      - name: 河北区
+        code: TJ_HB
+        pcode: TJ
+      - name: 红桥区
+        code: TJ_HQ
+        pcode: TJ
+      - name: 东丽区
+        code: TJ_DL
+        pcode: TJ
+      - name: 西青区
+        code: TJ_XQ
+        pcode: TJ
+      - name: 津南区
+        code: TJ_JN
+        pcode: TJ
+      - name: 北辰区
+        code: TJ_BC
+        pcode: TJ
+      - name: 武清区
+        code: TJ_WQ
+        pcode: TJ
+      - name: 宝坻区
+        code: TJ_BD
+        pcode: TJ
+      - name: 滨海新区
+        code: TJ_BHX
+        pcode: TJ
+      - name: 宁河区
+        code: TJ_NH
+        pcode: TJ
+      - name: 静海区
+        code: TJ_QH
+        pcode: TJ
+      - name: 蓟州区
+        code: TJ_JZ
+        pcode: TJ
+  - name: 河北
+    code: HB
+    child:
+      - name: 石家庄市
+        code: HB_SJZ
+        pcode: HB
+      - name: 唐山市
+        code: HB_TS
+        pcode: HB
+      - name: 秦皇岛市
+        code: HB_QHD
+        pcode: HB
+      - name: 邯郸市
+        code: HB_HD
+        pcode: HB
+      - name: 邢台市
+        code: HB_XT
+        pcode: HB
+      - name: 保定市
+        code: HB_BD
+        pcode: HB
+      - name: 张家口市
+        code: HB_ZJK
+        pcode: HB
+      - name: 承德市
+        code: HB_CD
+        pcode: HB
+      - name: 沧州市
+        code: HB_CZ
+        pcode: HB
+      - name: 廊坊市
+        code: HB_LF
+        pcode: HB
+      - name: 衡水市
+        code: HB_HS
+        pcode: HB
+  - name: 山西
+    code: SX
+    child:
+      - name: 太原市
+        code: SX_TY
+        pcode: SX
+      - name: 大同市
+        code: SX_DT
+        pcode: SX
+      - name: 阳泉市
+        code: SX_YQ
+        pcode: SX
+      - name: 长治市
+        code: SX_CZ
+        pcode: SX
+      - name: 晋城市
+        code: SX_JC
+        pcode: SX
+      - name: 朔州市
+        code: SX_SZ
+        pcode: SX
+      - name: 晋中市
+        code: SX_HS
+        pcode: SX
+      - name: 运城市
+        code: SX_YC
+        pcode: SX
+      - name: 忻州市
+        code: SX_XZ
+        pcode: SX
+      - name: 临汾市
+        code: SX_LF
+        pcode: SX
+      - name: 吕梁市
+        code: SX_LL
+        pcode: SX
+  - name: 内蒙古
+    code: NMG
+    child:
+      - name: 呼和浩特市
+        code: NMG_HHHT
+        pcode: NMG
+      - name: 包头市
+        code: NMG_BT
+        pcode: NMG
+      - name: 乌海市
+        code: NMG_WH
+        pcode: NMG
+      - name: 赤峰市
+        code: NMG_CF
+        pcode: NMG
+      - name: 通辽市
+        code: NMG_TL
+        pcode: NMG
+      - name: 鄂尔多斯市
+        code: NMG_EEDS
+        pcode: NMG
+      - name: 呼伦贝尔市
+        code: NMG_HLBE
+        pcode: NMG
+      - name: 巴彦淖尔市
+        code: NMG_BYZE
+        pcode: NMG
+      - name: 乌兰察布市
+        code: NMG_WBCB
+        pcode: NMG
+      - name: 兴安盟
+        code: NMG_XAM
+        pcode: NMG
+      - name: 锡林郭勒盟
+        code: NMG_XLGLM
+        pcode: NMG
+      - name: 阿拉善盟
+        code: NMG_ALSM
+        pcode: NMG
+  - name: 辽宁
+    code: LN
+    child:
+      - name: 沈阳市
+        code: LN_SY
+        pcode: LN
+      - name: 大连市
+        code: LN_DL
+        pcode: LN
+      - name: 鞍山市
+        code: LN_AS
+        pcode: LN
+      - name: 抚顺市
+        code: LN_FS
+        pcode: LN
+      - name: 本溪市
+        code: LN_BX
+        pcode: LN
+      - name: 丹东市
+        code: LN_DD
+        pcode: LN
+      - name: 锦州市
+        code: LN_JZ
+        pcode: LN
+      - name: 营口市
+        code: LN_YK
+        pcode: LN
+      - name: 阜新市
+        code: LN_FX
+        pcode: LN
+      - name: 辽阳市
+        code: LN_LY
+        pcode: LN
+      - name: 盘锦市
+        code: LN_PJ
+        pcode: LN
+      - name: 铁岭市
+        code: LN_TL
+        pcode: LN
+      - name: 朝阳市
+        code: LN_CY
+        pcode: LN
+      - name: 葫芦岛市
+        code: LN_HLD
+        pcode: LN
+  - name: 吉林
+    code: JL
+    child:
+      - name: 长春市
+        code: JL_CC
+        pcode: JL
+      - name: 吉林市
+        code: JL_JL
+        pcode: JL
+      - name: 四平市
+        code: JL_SP
+        pcode: JL
+      - name: 辽源市
+        code: JL_LY
+        pcode: JL
+      - name: 通化市
+        code: JL_TH
+        pcode: JL
+      - name: 白山市
+        code: JL_BS
+        pcode: JL
+      - name: 松原市
+        code: JL_SY
+        pcode: JL
+      - name: 白城市
+        code: JL_BC
+        pcode: JL
+      - name: 延边朝鲜族自治州
+        code: JL_YBCXZZZZ
+        pcode: JL
+  - name: 黑龙江
+    code: HLJ
+    child:
+      - name: 哈尔滨市
+        code: HLJ_HEB
+        pcode: HLJ
+      - name: 齐齐哈尔市
+        code: HLJ_QQHE
+        pcode: HLJ
+      - name: 鸡西市
+        code: HLJ_JX
+        pcode: HLJ
+      - name: 鹤岗市
+        code: HLJ_HG
+        pcode: HLJ
+      - name: 双鸭山市
+        code: HLG_SYS
+        pcode: HLJ
+      - name: 大庆市
+        code: HLG_DQ
+        pcode: HLJ
+      - name: 伊春市
+        code: HLG_YC
+        pcode: HLJ
+      - name: 佳木斯市
+        code: HLG_JMS
+        pcode: HLJ
+      - name: 七台河市
+        code: HLG_QTH
+        pcode: HLJ
+      - name: 牡丹江市
+        code: HLG_DDJ
+        pcode: HLJ
+      - name: 黑河市
+        code: HLG_HH
+        pcode: HLJ
+      - name: 绥化市
+        code: HLG_SH
+        pcode: HLJ
+      - name: 大兴安岭地区
+        code: HLG_DXALDQ
+        pcode: HLJ
+  - name: 上海
+    code: SH
+    child:
+      - name: 黄浦区
+        code: SH_HP
+        pcode: SH
+      - name: 徐汇区
+        code: SH_XH
+        pcode: SH
+      - name: 长宁区
+        code: SH_CN
+        pcode: SH
+      - name: 静安区
+        code: SH_JA
+        pcode: SH
+      - name: 普陀区
+        code: SH_PT
+        pcode: SH
+      - name: 虹口区
+        code: SH_HK
+        pcode: SH
+      - name: 杨浦区
+        code: SH_YP
+        pcode: SH
+      - name: 闵行区
+        code: SH_MH
+        pcode: SH
+      - name: 宝山区
+        code: SH_BS
+        pcode: SH
+      - name: 嘉定区
+        code: SH_JD
+        pcode: SH
+      - name: 浦东新区
+        code: SH_PD
+        pcode: SH
+      - name: 金山区
+        code: SH_JS
+        pcode: SH
+      - name: 松江区
+        code: SH_SJ
+        pcode: SH
+      - name: 青浦区
+        code: SH_QP
+        pcode: SH
+      - name: 奉贤区
+        code: SH_FX
+        pcode: SH
+      - name: 崇明区
+        code: SH_CM
+        pcode: SH
+  - name: 江苏
+    code: JS
+    child:
+      - name: 南京市
+        code: JS_NJ
+        pcode: JS
+      - name: 无锡市
+        code: JS_WX
+        pcode: JS
+      - name: 徐州市
+        code: JS_XZ
+        pcode: JS
+      - name: 常州市
+        code: JS_CZ
+        pcode: JS
+      - name: 苏州市
+        code: JS_SZ
+        pcode: JS
+      - name: 南通市
+        code: JS_NT
+        pcode: JS
+      - name: 连云港市
+        code: JS_LYG
+        pcode: JS
+      - name: 淮安市
+        code: JS_HA
+        pcode: JS
+      - name: 盐城市
+        code: JS_YC
+        pcode: JS
+      - name: 扬州市
+        code: JS_YZ
+        pcode: JS
+      - name: 镇江市
+        code: JZ_ZJ
+        pcode: JS
+      - name: 泰州市
+        code: JS_TZ
+        pcode: JS
+      - name: 宿迁市
+        code: JS_SQ
+        pcode: JS
+  - name: 浙江
+    code: ZJ
+    child:
+      - name: 杭州市
+        code: ZJ_HZ
+        pcode: ZJ
+      - name: 宁波市
+        code: ZJ_NB
+        pcode: ZJ
+      - name: 温州市
+        code: ZJ_WZ
+        pcode: ZJ
+      - name: 嘉兴市
+        code: ZJ_JX
+        pcode: ZJ
+      - name: 湖州市
+        code: JZ_HZ
+        pcode: ZJ
+      - name: 绍兴市
+        code: JZ_SX
+        pcode: ZJ
+      - name: 金华市
+        code: JZ_JH
+        pcode: ZJ
+      - name: 衢州市
+        code: JZ_QZ
+        pcode: ZJ
+      - name: 舟山市
+        code: ZJ_ZS
+        pcode: ZJ
+      - name: 台州市
+        code: ZJ_TZ
+        pcode: ZJ
+      - name: 丽水市
+        code: ZJ_LS
+        pcode: ZJ
+  - name: 安徽
+    code: AH
+    child:
+      - name: 合肥市
+        code: AH_HF
+        pcode: AH
+      - name: 芜湖市
+        code: AH_WH
+        pcode: AH
+      - name: 蚌埠市
+        code: AH_BB
+        pcode: AH
+      - name: 淮南市
+        code: AH_HN
+        pcode: AH
+      - name: 马鞍山市
+        code: AH_MAS
+        pcode: AH
+      - name: 淮北市
+        code: AH_HB
+        pcode: AH
+      - name: 铜陵市
+        code: AH_TL
+        pcode: AH
+      - name: 安庆市
+        code: AH_AQ
+        pcode: AH
+      - name: 黄山市
+        code: AH_HS
+        pcode: AH
+      - name: 滁州市
+        code: AH_CZ
+        pcode: AH
+      - name: 阜阳市
+        code: AH_FY
+        pcode: AH
+      - name: 宿州市
+        code: AH_SZ
+        pcode: AH
+      - name: 六安市
+        code: AH_LA
+        pcode: AH
+      - name: 亳州市
+        code: AH_HZ
+        pcode: AH
+      - name: 池州市
+        code: AH_CH
+        pcode: AH
+      - name: 宣城市
+        code: AH_XC
+        pcode: AH
+  - name: 福建
+    code: FJ
+    child:
+      - name: 福州市
+        code: AH_FZ
+        pcode: FJ
+      - name: 厦门市
+        code: XM_XM
+        pcode: FJ
+      - name: 莆田市
+        code: FJ_PT
+        pcode: FJ
+      - name: 三明市
+        code: FJ_SM
+        pcode: FJ
+      - name: 泉州市
+        code: FJ_QZ
+        pcode: FJ
+      - name: 漳州市
+        code: FJ_ZZ
+        pcode: FJ
+      - name: 南平市
+        code: FJ_NP
+        pcode: FJ
+      - name: 龙岩市
+        code: FJ_LY
+        pcode: FJ
+      - name: 宁德市
+        code: FJ_ND
+        pcode: FJ
+  - name: 江西
+    code: JX
+    child:
+      - name: 南昌市
+        code: JX_NC
+        pcode: JX
+      - name: 景德镇市
+        code: JX_JDZ
+        pcode: JX
+      - name: 萍乡市
+        code: JX_PX
+        pcode: JX
+      - name: 九江市
+        code: JX_JJ
+        pcode: JX
+      - name: 新余市
+        code: JX_XY
+        pcode: JX
+      - name: 鹰潭市
+        code: JX_YT
+        pcode: JX
+      - name: 赣州市
+        code: JX_GZ
+        pcode: JX
+      - name: 吉安市
+        code: JX_JA
+        pcode: JX
+      - name: 宜春市
+        code: JX_YC
+        pcode: JX
+      - name: 抚州市
+        code: JX_FZ
+        pcode: JX
+      - name: 上饶市
+        code: JX_SR
+        pcode: JX
+  - name: 山东
+    code: SD
+    child:
+      - name: 济南市
+        code: SD_JN
+        pcode: SD
+      - name: 青岛市
+        code: SD_QD
+        pcode: SD
+      - name: 淄博市
+        code: SD_ZB
+        pcode: SD
+      - name: 枣庄市
+        code: SD_ZZ
+        pcode: SD
+      - name: 东营市
+        code: SD_DY
+        pcode: SD
+      - name: 烟台市
+        code: SD_YT
+        pcode: SD
+      - name: 潍坊市
+        code: SD_WF
+        pcode: SD
+      - name: 济宁市
+        code: SD_JNS
+        pcode: SD
+      - name: 泰安市
+        code: SD_TA
+        pcode: SD
+      - name: 威海市
+        code: SD_WH
+        pcode: SD
+      - name: 日照市
+        code: SD_RZ
+        pcode: SD
+      - name: 临沂市
+        code: SD_LY
+        pcode: SD
+      - name: 德州市
+        code: SD_DZ
+        pcode: SD
+      - name: 聊城市
+        code: SD_LC
+        pcode: SD
+      - name: 滨州市
+        code: SD_BZ
+        pcode: SD
+      - name: 菏泽市
+        code: SD_HZ
+        pcode: SD
+  - name: 河南
+    code: HNC
+    child:
+      - name: 郑州市
+        code: HN_ZZ
+        pcode: HNC
+      - name: 开封市
+        code: HN_KF
+        pcode: HNC
+      - name: 洛阳市
+        code: HN_LY
+        pcode: HNC
+      - name: 平顶山市
+        code: HN_PDS
+        pcode: HNC
+      - name: 安阳市
+        code: HN_AY
+        pcode: HNC
+      - name: 鹤壁市
+        code: HN_HB
+        pcode: HNC
+      - name: 新乡市
+        code: HN_XX
+        pcode: HNC
+      - name: 焦作市
+        code: HN_JZ
+        pcode: HNC
+      - name: 濮阳市
+        code: HN_PY
+        pcode: HNC
+      - name: 许昌市
+        code: HN_XC
+        pcode: HNC
+      - name: 漯河市
+        code: HN_LH
+        pcode: HNC
+      - name: 三门峡市
+        code: HN_SMX
+        pcode: HNC
+      - name: 南阳市
+        code: HN_NY
+        pcode: HNC
+      - name: 商丘市
+        code: HN_SQ
+        pcode: HNC
+      - name: 信阳市
+        code: HN_XY
+        pcode: HNC
+      - name: 周口市
+        code: HN_ZK
+        pcode: HNC
+      - name: 驻马店市
+        code: HN_ZMD
+        pcode: HNC
+      - name: 济源市
+        code: HN_JY
+        pcode: HNC
+  - name: 湖北
+    code: HBC
+    child:
+      - name: 武汉市
+        code: HB_WH
+        pcode: HBC
+      - name: 黄石市
+        code: HB_HSS
+        pcode: HBC
+      - name: 十堰市
+        code: HB_SY
+        pcode: HBC
+      - name: 宜昌市
+        code: HB_YC
+        pcode: HBC
+      - name: 襄阳市
+        code: HB_XY
+        pcode: HBC
+      - name: 鄂州市
+        code: HB_EZ
+        pcode: HBC
+      - name: 荆门市
+        code: HB_JM
+        pcode: HBC
+      - name: 孝感市
+        code: HB_XG
+        pcode: HBC
+      - name: 荆州市
+        code: HB_JZ
+        pcode: HBC
+      - name: 黄冈市
+        code: HB_HG
+        pcode: HBC
+      - name: 咸宁市
+        code: HB_XN
+        pcode: HBC
+      - name: 随州市
+        code: HB_SZ
+        pcode: HBC
+      - name: 恩施土家族苗族自治州
+        code: HB_SNTJZMZZZZ
+        pcode: HBC
+      - name: 仙桃市
+        code: HB_XTS
+        pcode: HBC
+      - name: 潜江市
+        code: HB_QJ
+        pcode: HBC
+      - name: 天门市
+        code: HB_TM
+        pcode: HBC
+      - name: 神农架林区
+        code: HB_SNJLQ
+        pcode: HBC
+  - name: 湖南
+    code: HNS
+    child:
+      - name: 长沙市
+        code: HN_CS
+        pcode: HNS
+      - name: 株洲市
+        code: HN_ZZS
+        pcode: HNS
+      - name: 湘潭市
+        code: HN_XT
+        pcode: HNS
+      - name: 衡阳市
+        code: HN_HY
+        pcode: HNS
+      - name: 邵阳市
+        code: HN_SY
+        pcode: HNS
+      - name: 岳阳市
+        code: HN_YY
+        pcode: HNS
+      - name: 常德市
+        code: HN_CD
+        pcode: HNS
+      - name: 张家界市
+        code: HN_ZJJ
+        pcode: HNS
+      - name: 益阳市
+        code: HN_YYS
+        pcode: HNS
+      - name: 郴州市
+        code: HN_CZ
+        pcode: HNS
+      - name: 永州市
+        code: HN_YZ
+        pcode: HNS
+      - name: 怀化市
+        code: HN_HH
+        pcode: HNS
+      - name: 娄底市
+        code: HN_LD
+        pcode: HNS
+      - name: 湘西土家族苗族自治州
+        code: HN_XXTJZMZZZZ
+        pcode: HNS
+  - name: 广东
+    code: GD
+    child:
+      - name: 广州市
+        code: GD_GZ
+        pcode: GD
+      - name: 韶关市
+        code: GD_SG
+        pcode: GD
+      - name: 深圳市
+        code: GD_SZ
+        pcode: GD
+      - name: 珠海市
+        code: GD_ZH
+        pcode: GD
+      - name: 汕头市
+        code: GD_ST
+        pcode: GD
+      - name: 佛山市
+        code: GD_FS
+        pcode: GD
+      - name: 江门市
+        code: GD_JM
+        pcode: GD
+      - name: 湛江市
+        code: GD_ZJ
+        pcode: GD
+      - name: 茂名市
+        code: GD_MM
+        pcode: GD
+      - name: 肇庆市
+        code: GD_ZQ
+        pcode: GD
+      - name: 惠州市
+        code: GD_HZ
+        pcode: GD
+      - name: 梅州市
+        code: GD_MZ
+        pcode: GD
+      - name: 汕尾市
+        code: GD_SW
+        pcode: GD
+      - name: 河源市
+        code: GD_HY
+        pcode: GD
+      - name: 阳江市
+        code: GD_YJ
+        pcode: GD
+      - name: 清远市
+        code: GD_QY
+        pcode: GD
+      - name: 东莞市
+        code: GD_DG
+        pcode: GD
+      - name: 中山市
+        code: GD_ZS
+        pcode: GD
+      - name: 潮州市
+        code: GD_CZ
+        pcode: GD
+      - name: 揭阳市
+        code: GD_JY
+        pcode: GD
+      - name: 云浮市
+        code: GD_YF
+        pcode: GD
+  - name: 广西
+    code: GX
+    child:
+      - name: 南宁市
+        code: GX_NN
+        pcode: GX
+      - name: 柳州市
+        code: GX_LZ
+        pcode: GX
+      - name: 桂林市
+        code: GX_GL
+        pcode: GX
+      - name: 梧州市
+        code: GX_WZ
+        pcode: GX
+      - name: 北海市
+        code: GX_BH
+        pcode: GX
+      - name: 防城港市
+        code: GX_FCG
+        pcode: GX
+      - name: 钦州市
+        code: GX_QZ
+        pcode: GX
+      - name: 贵港市
+        code: GX_GG
+        pcode: GX
+      - name: 玉林市
+        code: GX_YL
+        pcode: GX
+      - name: 百色市
+        code: GX_BS
+        pcode: GX
+      - name: 贺州市
+        code: GX_HZ
+        pcode: GX
+      - name: 河池市
+        code: GX_HC
+        pcode: GX
+      - name: 来宾市
+        code: GX_LB
+        pcode: GX
+      - name: 崇左市
+        code: GX_CZ
+        pcode: GX
+  - name: 海南
+    code: HN
+    child:
+      - name: 海口市
+        code: HN_HK
+        pcode: HN
+      - name: 三亚市
+        code: HN_SYS
+        pcode: HN
+      - name: 三沙市
+        code: HN_SS
+        pcode: HN
+      - name: 儋州市
+        code: HN_DZ
+        pcode: HN
+      - name: 五指山市
+        code: HN_WZZ
+        pcode: HN
+      - name: 琼海市
+        code: HN_QH
+        pcode: HN
+      - name: 文昌市
+        code: HN_WC
+        pcode: HN
+      - name: 万宁市
+        code: HN_WN
+        pcode: HN
+      - name: 东方市
+        code: HN_DF
+        pcode: HN
+      - name: 定安县
+        code: HN_DAX
+        pcode: HN
+      - name: 屯昌县
+        code: HN_TCX
+        pcode: HN
+      - name: 澄迈县
+        code: HN_CMX
+        pcode: HN
+      - name: 临高县
+        code: HN_LGX
+        pcode: HN
+      - name: 白沙黎族自治县
+        code: HN_BSLZZZX
+        pcode: HN
+      - name: 昌江黎族自治县
+        code: HN_CJLZZZX
+        pcode: HN
+      - name: 乐东黎族自治县
+        code: HN_LDLZZZX
+        pcode: HN
+      - name: 陵水黎族自治县
+        code: HN_LSLZZZX
+        pcode: HN
+      - name: 保亭黎族苗族自治县
+        code: HN_BTLZMZZZX
+        pcode: HN
+      - name: 琼中黎族苗族自治县
+        code: HN_QZLZMZZZX
+        pcode: HN
+  - name: 重庆
+    code: CQ
+    child:
+      - name: 万州区
+        code: CQ_WZ
+        pcode: CQ
+      - name: 涪陵区
+        code: CQ_FL
+        pcode: CQ
+      - name: 渝中区
+        code: CQ_YZ
+        pcode: CQ
+      - name: 大渡口区
+        code: CQ_DDK
+        pcode: CQ
+      - name: 江北区
+        code: CQ_JB
+        pcode: CQ
+      - name: 沙坪坝区
+        code: CQ_SPB
+        pcode: CQ
+      - name: 九龙坡区
+        code: CQ_JLP
+        pcode: CQ
+      - name: 南岸区
+        code: CQ_NA
+        pcode: CQ
+      - name: 北碚区
+        code: CQ_BB
+        pcode: CQ
+      - name: 綦江区
+        code: CQ_QJ
+        pcode: CQ
+      - name: 大足区
+        code: CQ_DZ
+        pcode: CQ
+      - name: 渝北区
+        code: CQ_YB
+        pcode: CQ
+      - name: 巴南区
+        code: CQ_BN
+        pcode: CQ
+      - name: 黔江区
+        code: CQ_QJ
+        pcode: CQ
+      - name: 长寿区
+        code: CQ_CS
+        pcode: CQ
+      - name: 江津区
+        code: CQ_JJ
+        pcode: CQ
+      - name: 合川区
+        code: CQ_HC
+        pcode: CQ
+      - name: 永川区
+        code: CQ_YC
+        pcode: CQ
+      - name: 南川区
+        code: CQ_NC
+        pcode: CQ
+      - name: 璧山区
+        code: CQ_BS
+        pcode: CQ
+      - name: 铜梁区
+        code: CQ_TL
+        pcode: CQ
+      - name: 潼南区
+        code: CQ_TN
+        pcode: CQ
+      - name: 荣昌区
+        code: CQ_RC
+        pcode: CQ
+      - name: 开州区
+        code: CQ_KZ
+        pcode: CQ
+      - name: 梁平区
+        code: CQ_LP
+        pcode: CQ
+      - name: 武隆区
+        code: CQ_WL
+        pcode: CQ
+      - name: 城口县
+        code: CQ_CK
+        pcode: CQ
+      - name: 丰都县
+        code: CQ_FD
+        pcode: CQ
+      - name: 垫江县
+        code: CQ_DJ
+        pcode: CQ
+      - name: 忠县
+        code: CQ_ZX
+        pcode: CQ
+      - name: 云阳县
+        code: CQ_YY
+        pcode: CQ
+      - name: 奉节县
+        code: CQ_FJ
+        pcode: CQ
+      - name: 巫山县
+        code: CQ_WS
+        pcode: CQ
+      - name: 巫溪县
+        code: CQ_WX
+        pcode: CQ
+      - name: 石柱土家族自治县
+        code: CQ_SZTJZ
+        pcode: CQ
+      - name: 秀山土家族苗族自治县
+        code: CQ_XSTJMZ
+        pcode: CQ
+      - name: 酉阳土家族苗族自治县
+        code: CQ_YYTJZMZ
+        pcode: CQ
+      - name: 彭水苗族土家族自治县
+        code: CQ_PSMZTJZ
+        pcode: CQ
+  - name: 四川
+    code: SC
+    child:
+      - name: 成都市
+        code: SC_CD
+        pcode: SC
+      - name: 自贡市
+        code: SC_ZG
+        pcode: SC
+      - name: 攀枝花市
+        code: SC_PZH
+        pcode: SC
+      - name: 泸州市
+        code: SC_LZ
+        pcode: SC
+      - name: 德阳市
+        code: SC_DY
+        pcode: SC
+      - name: 绵阳市
+        code: SC_MY
+        pcode: SC
+      - name: 广元市
+        code: SC_GY
+        pcode: SC
+      - name: 遂宁市
+        code: SC_SN
+        pcode: SC
+      - name: 内江市
+        code: SC_NJ
+        pcode: SC
+      - name: 乐山市
+        code: SC_LS
+        pcode: SC
+      - name: 南充市
+        code: SC_NC
+        pcode: SC
+      - name: 眉山市
+        code: SC_MS
+        pcode: SC
+      - name: 宜宾市
+        code: SC_YB
+        pcode: SC
+      - name: 广安市
+        code: SC_GA
+        pcode: SC
+      - name: 达州市
+        code: SC_DZ
+        pcode: SC
+      - name: 雅安市
+        code: SC_YA
+        pcode: SC
+      - name: 巴中市
+        code: SC_BZ
+        pcode: SC
+      - name: 资阳市
+        code: SC_ZY
+        pcode: SC
+      - name: 阿坝藏族羌族自治州
+        code: SC_ABZZQZZZZ
+        pcode: SC
+      - name: 甘孜藏族自治州
+        code: SC_GZZZZZZ
+        pcode: SC
+      - name: 凉山彝族自治州
+        code: SC_LSYZZZZ
+        pcode: SC
+  - name: 贵州
+    code: GZ
+    child:
+      - name: 贵阳市
+        code: GZ_GY
+        pcode: GZ
+      - name: 六盘水市
+        code: GZ_LPS
+        pcode: GZ
+      - name: 遵义市
+        code: GZ_ZY
+        pcode: GZ
+      - name: 安顺市
+        code: GZ_AS
+        pcode: GZ
+      - name: 毕节市
+        code: GZ_BJ
+        pcode: GZ
+      - name: 铜仁市
+        code: GZ_TR
+        pcode: GZ
+      - name: 黔西南布依族苗族自治州
+        code: GZ_QXNBYZMZZZZ
+        pcode: GZ
+      - name: 黔东南苗族侗族自治州
+        code: GZ_QDNMZTZZZZ
+        pcode: GZ
+      - name: 黔南布依族苗族自治州
+        code: GZ_QNBYZMZZZZ
+        pcode: GZ
+  - name: 云南
+    code: YN
+    child:
+      - name: 昆明市
+        code: YN_KM
+        pcode: YN
+      - name: 曲靖市
+        code: YN_QJ
+        pcode: YN
+      - name: 玉溪市
+        code: YN_YX
+        pcode: YN
+      - name: 保山市
+        code: YN_BS
+        pcode: YN
+      - name: 昭通市
+        code: YN_ST
+        pcode: YN
+      - name: 丽江市
+        code: YN_LG
+        pcode: YN
+      - name: 普洱市
+        code: YN_PE
+        pcode: YN
+      - name: 临沧市
+        code: YN_LC
+        pcode: YN
+      - name: 楚雄彝族自治州
+        code: YN_CXYZZZZ
+        pcode: YN
+      - name: 红河哈尼族彝族自治州
+        code: YN_HHHNZYZZZZ
+        pcode: YN
+      - name: 文山壮族苗族自治州
+        code: YN_WSZZMZZZZ
+        pcode: YN
+      - name: 西双版纳傣族自治州
+        code: YN_XSBNDZZZZ
+        pcode: YN
+      - name: 大理白族自治州
+        code: YN_DLBZZZZ
+        pcode: YN
+      - name: 德宏傣族景颇族自治州
+        code: YN_DHDZJPZZZZ
+        pcode: YN
+      - name: 怒江傈僳族自治州
+        code: YN_NJLSZZZZ
+        pcode: YN
+      - name: 迪庆藏族自治州
+        code: YN_DQCZZZZ
+        pcode: YN
+  - name: 西藏
+    code: XZ
+    child:
+      - name: 拉萨市
+        code: XZ_LS
+        pcode: XZ
+      - name: 日喀则市
+        code: XZ_RGZ
+        pcode: XZ
+      - name: 昌都市
+        code: XZ_CD
+        pcode: XZ
+      - name: 林芝市
+        code: XZ_LZ
+        pcode: XZ
+      - name: 山南市
+        code: XZ_SN
+        pcode: XZ
+      - name: 那曲市
+        code: XZ_NQ
+        pcode: XZ
+      - name: 阿里地区
+        code: XZ_ALDQ
+        pcode: XZ
+  - name: 陕西
+    code: SXC
+    child:
+      - name: 西安市
+        code: SX_XA
+        pcode: SXC
+      - name: 铜川市
+        code: SX_TL
+        pcode: SXC
+      - name: 宝鸡市
+        code: SX_BJ
+        pcode: SXC
+      - name: 咸阳市
+        code: SX_XY
+        pcode: SXC
+      - name: 渭南市
+        code: SX_WN
+        pcode: SXC
+      - name: 延安市
+        code: SX_YB
+        pcode: SXC
+      - name: 汉中市
+        code: SX_HZ
+        pcode: SXC
+      - name: 榆林市
+        code: SX_YL
+        pcode: SXC
+      - name: 安康市
+        code: SX_AK
+        pcode: SXC
+      - name: 商洛市
+        code: SX_SL
+        pcode: SXC
+  - name: 甘肃
+    code: GS
+    child:
+      - name: 兰州市
+        code: GS_LZ
+        pcode: GS
+      - name: 嘉峪关市
+        code: GS_JYG
+        pcode: GS
+      - name: 金昌市
+        code: GS_JC
+        pcode: GS
+      - name: 白银市
+        code: GS_BY
+        pcode: GS
+      - name: 天水市
+        code: GS_TS
+        pcode: GS
+      - name: 武威市
+        code: GS_WW
+        pcode: GS
+      - name: 张掖市
+        code: GS_ZY
+        pcode: GS
+      - name: 平凉市
+        code: GS_PL
+        pcode: GS
+      - name: 酒泉市
+        code: GS_JQ
+        pcode: GS
+      - name: 庆阳市
+        code: GS_QY
+        pcode: GS
+      - name: 定西市
+        code: GS_DX
+        pcode: GS
+      - name: 陇南市
+        code: GS_LN
+        pcode: GS
+      - name: 临夏回族自治州
+        code: GS_LXHZZZZ
+        pcode: GS
+      - name: 甘南藏族自治州
+        code: GS_GNZZZZZ
+        pcode: GS
+  - name: 青海
+    code: QH
+    child:
+      - name: 西宁市
+        code: QH_XN
+        pcode: QH
+      - name: 海东市
+        code: QH_HD
+        pcode: QH
+      - name: 海北藏族自治州
+        code: QH_HBZZZZZ
+        pcode: QH
+      - name: 黄南藏族自治州
+        code: QH_HNZZZZZ
+        pcode: QH
+      - name: 海南藏族自治州
+        code: QH_HNZZZZZZ
+        pcode: QH
+      - name: 果洛藏族自治州
+        code: QH_GLSZZZZ
+        pcode: QH
+      - name: 玉树藏族自治州
+        code: QH_YSZZZZZ
+        pcode: QH
+      - name: 海西蒙古族藏族自治州
+        code: QH_HXMGZZZZZZ
+        pcode: QH
+  - name: 宁夏
+    code: NX
+    child:
+      - name: 银川市
+        code: NX_YC
+        pcode: NX
+      - name: 石嘴山市
+        code: NX_SZS
+        pcode: NX
+      - name: 吴忠市
+        code: NX_WZ
+        pcode: NX
+      - name: 固原市
+        code: NX_GY
+        pcode: NX
+      - name: 中卫市
+        code: NX_ZW
+        pcode: NX
+  - name: 新疆
+    code: XJ
+    child:
+      - name: 乌鲁木齐市
+        code: XJ_WLMQ
+        pcode: XJ
+      - name: 克拉玛依市
+        code: XJ_KLMY
+        pcode: XJ
+      - name: 吐鲁番市
+        code: XJ_TLF
+        pcode: XJ
+      - name: 哈密市
+        code: XJ_HM
+        pcode: XJ
+      - name: 昌吉回族自治州
+        code: XJ_CJHZZZZ
+        pcode: XJ
+      - name: 博尔塔拉蒙古自治州
+        code: XJ_BETLMGZZZ
+        pcode: XJ
+      - name: 巴音郭楞蒙古自治州
+        code: XJ_BYGLMGZZZ
+        pcode: XJ
+      - name: 阿克苏地区
+        code: XJ_AKSDQ
+        pcode: XJ
+      - name: 克孜勒苏柯尔克孜自治州
+        code: XJ_KZLSKEKZZZZ
+        pcode: XJ
+      - name: 喀什地区
+        code: XJ_KSDQ
+        pcode: XJ
+      - name: 和田地区
+        code: XJ_HTDQ
+        pcode: XJ
+      - name: 伊犁哈萨克自治州
+        code: XJ_YLHSKZZZ
+        pcode: XJ
+      - name: 塔城地区
+        code: XJ_TCDQ
+        pcode: XJ
+      - name: 阿勒泰地区
+        code: XJ_ALTDQ
+        pcode: XJ
+      - name: 石河子市
+        code: XJ_SHZ
+        pcode: XJ
+      - name: 阿拉尔市
+        code: XJ_ALE
+        pcode: XJ
+      - name: 图木舒克市
+        code: XJ_SMSK
+        pcode: XJ
+      - name: 五家渠市
+        code: XJ_WJQ
+        pcode: XJ
+      - name: 北屯市
+        code: XJ_BT
+        pcode: XJ
+      - name: 铁门关市
+        code: XJ_TMG
+        pcode: XJ
+      - name: 双河市
+        code: XJ_SHH
+        pcode: XJ
+      - name: 可克达拉市
+        code: XJ_KKDL
+        pcode: XJ
+      - name: 昆玉市
+        code: XJ_KY
+        pcode: XJ
+      - name: 胡杨河市
+        code: XJ_HYH
+        pcode: XJ

+ 11 - 0
manifest/config/config.yaml

@@ -0,0 +1,11 @@
+server:
+  address:     ":8000"
+  openapiPath: "/api.json"
+  swaggerPath: "/swagger"
+
+logger:
+  level : "all"
+  stdout: true
+
+
+

+ 253 - 0
manifest/config/gobal.yaml

@@ -0,0 +1,253 @@
+area:
+  AH: 安徽
+  AM: 澳门
+  BJ: 北京
+  CQ: 重庆
+  FJ: 福建
+  GD: 广东
+  GX: 广西
+  GZ: 贵州
+  GS: 甘肃
+  HB: 河北
+  HBC: 湖北
+  HLJ: 黑龙江
+  HN: 海南
+  HNC: 河南
+  HNS: 湖南
+  JL: 吉林
+  JS: 江苏
+  JX: 江西
+  LN: 辽宁
+  NMG: 内蒙古
+  NX: 宁夏
+  QH: 青海
+  SX: 山西
+  SXC: 陕西
+  SH: 上海
+  SD: 山东
+  SC: 四川
+  TJ: 天津
+  XJ:  新疆
+  TW: 台湾
+  XZ: 西藏
+  XG: 香港
+  YN: 云南
+  ZJ: 浙江
+stype:
+  NJXM:
+    NAME: 拟建
+    TITLE: 全国拟建项目信息
+    KEYWORDS: 拟建项目,拟在建项目,拟建项目网,拟建项目信息,剑鱼标讯
+    DESCRIPTION:
+      剑鱼标讯拟建项目专栏,包含国家发改委和各部委提供的尚处于前期立项、审批阶段的招投标项目,各供应商应在立项阶段就开始掌握最新的项目信息,做到早介入,早准备,稳拿单。
+  CGYX:
+    NAME: 采购意向
+    TITLE: 全国采购意向信息
+    KEYWORDS: 采购意向,政府采购意向,采购意向公告,采购意向书,剑鱼标讯
+    DESCRIPTION: 剑鱼标讯采购意向栏目,提供全国各省各行业政府采购意向、采购意向公告、采购意向书等信息,可以帮助用户轻松查询到想看的采购意向信息,好用又省心。
+  ZBYG:
+    NAME: 招标预告
+    TITLE: 全国招标预告信息
+    KEYWORDS: 招标预告,招标预告信息,招标预公告
+    DESCRIPTION: 剑鱼标讯招标预告栏目,每天发布国内最新的招标预告信息,提供各行业招标预告信息的搜索查询服务,不仅及时准确,而且更加专业。
+  ZBYG_YG:
+    NAME: 预告
+    TITLE: 全国预告信息
+    KEYWORDS: 招标预告,招标预告信息,招标预公告
+    DESCRIPTION: 剑鱼标讯招标预告栏目,每天发布国内最新的招标预告信息,提供各行业招标预告信息的搜索查询服务,不仅及时准确,而且更加专业。
+  ZBYG_XQGS:
+    NAME: 需求公示
+    TITLE: 全国需求公示信息
+    KEYWORDS: 需求公示,需求公示信息,需求预公示
+    DESCRIPTION: 剑鱼标讯招标需求公示,每天发布国内最新的需求公示,提供各行业需求公示的搜索查询服务,不仅及时准确,而且更加专业。
+  ZBYG_YS:
+    NAME: 预审
+    TITLE: 全国预审信息
+    KEYWORDS: 预审,预审信息,预审
+    DESCRIPTION: 剑鱼标讯预审,每天发布国内最新的预审信息,提供各行业预审的搜索查询服务,不仅及时准确,而且更加专业。
+  ZBYG_LZYJ:
+    NAME: 论证意见
+    TITLE: 全国论证意见信息
+    KEYWORDS: 论证意见,论证意见信息,论证意见
+    DESCRIPTION: 剑鱼标讯论证意见,每天发布国内最新的论证意见,提供各行业需求公示的搜索查询服务,不仅及时准确,而且更加专业。
+  ZBYG_YSJG:
+    NAME: 预审结果
+    TITLE: 全国预审结果信息
+    KEYWORDS: 预审结果,预审结果信息,预审结果
+    DESCRIPTION: 剑鱼标讯预审结果,每天发布国内最新的预审结果,提供各行业需求公示的搜索查询服务,不仅及时准确,而且更加专业。
+  ZBYG_QT:
+    NAME: 招标预告其它
+    TITLE: 全国招标预告其它信息
+    KEYWORDS: 招标预告,预审结果信息,预审结果
+    DESCRIPTION: 剑鱼标讯招标预告,每天发布国内最新的招标预告,提供各行业需求公示的搜索查询服务,不仅及时准确,而且更加专业。
+  ZBGG_ZB:
+    NAME: 招标
+    TITLE: 全国公开招标信息
+    KEYWORDS: 公开招标,公开招标信息,公开招标公告,公开招标网
+    DESCRIPTION: 剑鱼标讯公开招标栏目,提供国内各行业最新最全的公开招标信息,出色的搜索查询服务,可以让用户更加快速高效的获取想要的信息。
+  ZBGG_YB:
+    NAME: 邀标
+    TITLE: 全国邀请招标信息
+    KEYWORDS: 邀请招标,邀请招标信息,邀请招标公告
+    DESCRIPTION: 剑鱼标讯邀请招标栏目,及时准确的提供国内各行业最新的邀请招标信息,出色的搜索查询服务,可以让用户更加高效的获取想要的信息。
+  ZBGG_XJ:
+    NAME: 询价
+    TITLE: 全国询价采购信息
+    KEYWORDS: 询价采购,询价采购信息,询价采购公告
+    DESCRIPTION: 获取全国各行业最新的询价采购信息,就来剑鱼标讯询价采购专栏,数据多而全,搜索查询更全面,专业性更高。
+  ZBGG_JT:
+    NAME: 竞谈
+    TITLE: 全国竞争性谈判信息
+    KEYWORDS: 竞争性谈判,竞争性谈判采购,竞争性谈判信息,竞争性谈判公告
+    DESCRIPTION: 剑鱼标讯竞争性谈判栏目,专业为广大用户提供国内各省、各行业最新的竞争性谈判采购信息和查询服务。招标数据每天保持更新,及时而且准确。
+  ZBGG_DY:
+    NAME: 单一
+    TITLE: 全国单一来源信息
+    KEYWORDS: 单一来源,单一来源采购,单一来源信息,单一来源采购公告
+    DESCRIPTION: 剑鱼标讯单一来源栏目,包含国内各省、各行业最新的单一来源采购公告,使用招标搜索功能,可以帮助用户更快速的获取这些信息。
+  ZBGG_JJ:
+    NAME: 竞价
+    TITLE: 全国公开竞价信息
+    KEYWORDS: 公开竞价,网上竞价,公开竞价信息,公开竞价采购
+    DESCRIPTION: 剑鱼标讯公开竞价专栏,提供全国各省和更行业最新的公开竞价信息,你想看的这里都有,使用公开竞价的搜索查询服务更省心。
+  ZBGG_BG:
+    NAME: 变更
+    TITLE: 全国变更公告信息
+    KEYWORDS: 变更公告,更正公告,变更公告信息,招标变更公告
+    DESCRIPTION: 变更公告是招标公告发布后,针对该公告的的地址、时间、招标内容等信息的变更通知。及时查询和获取全国最新的变更公告,就在剑鱼标讯变更公告专栏。
+  ZBJG_ZHB:
+    NAME: 中标
+    TITLE: 全国中标公示信息
+    KEYWORDS: 中标公示,中标公示信息,中标公告结果,中标公示网
+    DESCRIPTION: 剑鱼标讯中标公示栏目,涵盖全国各省各行业最新的中标公示信息,可以帮助用户轻松查询到想看的中标信息,好用又省心。
+  ZBJG_CJ:
+    NAME: 成交
+    TITLE: 全国成交公告信息
+    KEYWORDS: 成交公告,成交公告信息,成交结果,成交结果公告
+    DESCRIPTION: 剑鱼标讯成交公告栏目,提供专业的成交公告查询,成交结果查看等功能,全国各省和各个行业的成交公告信息都可以查看和查询。
+  ZBJG_FB:
+    NAME: 废标
+    TITLE: 全国废标公告信息
+    KEYWORDS: 废标公告,废标公告信息,终止公告
+    DESCRIPTION: 剑鱼标讯废标公告栏目,提供全国各省,各行业最新的废标公告信息,出色的废标公告查询功能,支持多条件筛选,使用更简单。
+  ZBJG_LB:
+    NAME: 流标
+    TITLE: 全国流标公告信息
+    KEYWORDS: 流标公告,流标公示,招标失败公告,采购失败公告
+    DESCRIPTION: 剑鱼标讯流标公告栏目,帮助用户准确获取和查询最新的流标公告信息,提前掌握招投标的进展情况,工作更轻松。
+  ZBJG_JGBG:
+    NAME: 结果变更
+    TITLE: 全国结果变更信息
+    KEYWORDS: 流标公告,流标公示,招标失败公告,采购失败公告
+    DESCRIPTION: 剑鱼标讯流标公告栏目,帮助用户准确获取和查询最新的流标公告信息,提前掌握招投标的进展情况,工作更轻松。
+  ZBJG_QT:
+    NAME: 招标结果其它
+    TITLE: 全国其他招标结果信息
+    KEYWORDS: 其他招标结果,其他招标结果
+    DESCRIPTION: 剑鱼标讯流标公告栏目,帮助用户准确获取和查询最新的流标公告信息,提前掌握招投标的进展情况,工作更轻松。
+  ZBXYXX_HT:
+    NAME: 合同
+    TITLE: 全国合同公告信息
+    KEYWORDS: 合同公告,合同公告信息,采购合同公告
+    DESCRIPTION: 剑鱼标讯合同公告专栏,包含当前国内各省和各行业最全面的合同公告信息,使用合同公告搜索查询功能,获取信息更快更准确。
+  ZBXYXX_YS:
+    NAME: 验收
+    TITLE: 全国验收公告信息
+    KEYWORDS: 验收公告,验收公告信息,验收项目
+    DESCRIPTION: 剑鱼标讯验收公告专栏,涵盖当前国内各省和各行业最全面的验收公告信息,使用验收公告搜索查询功能,获取信息更快更准确。
+  ZBXYXX_WG:
+    NAME: 违规
+    TITLE: 全国违规处理信息
+    KEYWORDS: 违规处理,违规处理信息,违规招投标
+    DESCRIPTION: 剑鱼标讯违规处理栏目,每天汇总全国招投标行业最新的违规处理信息,搜索查询功能可以让用户更全面的了解招投标违规信息。
+  ZBXYXX_QT:
+    NAME: 招标信用信息其它
+    TITLE: 全国招标信用信息其它信息
+    KEYWORDS: 其它招标信用信,其它公告信息,验收项目
+    DESCRIPTION: 剑鱼标讯验收公告专栏,涵盖当前国内各省和各行业最全面的验收公告信息,使用验收公告搜索查询功能,获取信息更快更准确。
+  ZBGG_QT:
+    NAME: 招标公告其它
+    TITLE: 招标公告其它信息
+    KEYWORDS: 结果公告,土地拍卖,国有产权拍卖,矿权拍卖
+    DESCRIPTION: 剑鱼标讯其他信息专栏为您提供招投标项目的结果公告,土地拍卖信息、国有产权拍卖信息和矿权拍卖信息等内容,让你更详细、更全面的了解所有招投标信息。
+  ZBGG:
+    NAME: 招标公告
+    TITLE: 全国招标公告信息
+    KEYWORDS: 公开招标,公开招标信息,公开招标公告,公开招标网
+    DESCRIPTION: 剑鱼标讯公开招标栏目,提供国内各行业最新最全的公开招标信息,出色的搜索查询服务,可以让用户更加快速高效的获取想要的信息。
+  ZBJG:
+    NAME: 招标结果
+    TITLE: 全国招标结果信息
+    KEYWORDS: 公开招标,公开招标信息,公开招标公告,公开招标网
+    DESCRIPTION: 剑鱼标讯公开招标栏目,提供国内各行业最新最全的公开招标信息,出色的搜索查询服务,可以让用户更加快速高效的获取想要的信息。
+  ZBXYXX:
+    NAME: 招标信用信息
+    TITLE: 全国招标信用信息
+    KEYWORDS: 公开招标,公开招标信息,公开招标公告,公开招标网
+    DESCRIPTION: 剑鱼标讯公开招标栏目,提供国内各行业最新最全的公开招标信息,出色的搜索查询服务,可以让用户更加快速高效的获取想要的信息。
+  ZBCGYX:
+    NAME: 采购意向
+    TITLE: 全国采购意向信息
+    KEYWORDS: 采购意向,政府采购意向,采购意向公告,采购意向书,剑鱼标讯
+    DESCRIPTION: 剑鱼标讯采购意向栏目,提供全国各省各行业政府采购意向、采购意向公告、采购意向书等信息,可以帮助用户轻松查询到想看的采购意向信息,好用又省心。
+industry:
+  JZGC:
+    NAME: 建筑工程_勘察设计,建筑工程_工程施工,建筑工程_监理咨询,建筑工程_材料设备,建筑工程_机电安装
+    TITLE: 建筑工程_剑鱼标讯,全行业招标信息智能推送领导者!
+    KEYWORDS: ''
+    DESCRIPTION: ''
+  SLSD:
+    NAME: 水利水电_水利工程,水利水电_发电工程,水利水电_航运工程,水利水电_其他工程
+    TITLE: 水利水电_剑鱼标讯,全行业招标信息智能推送领导者!
+    KEYWORDS: ''
+    DESCRIPTION: ''
+  NYHG:
+    NAME: 能源化工_原材料,能源化工_仪器仪表,能源化工_新能源,能源化工_设备物资,能源化工_化工产品,能源化工_设备
+    TITLE: 能源化工_剑鱼标讯,全行业招标信息智能推送领导者!
+    KEYWORDS: ''
+    DESCRIPTION: ''
+  RDAF:
+    NAME: 弱电安防_综合布线,弱电安防_智能系统,弱电安防_智能家居
+    TITLE: 弱电安防_剑鱼标讯,全行业招标信息智能推送领导者!
+    KEYWORDS: ''
+    DESCRIPTION: ''
+  XXJS:
+    NAME: 信息技术_系统集成及安全,信息技术_软件开发,信息技术_运维服务,信息技术_其他
+    TITLE: 信息技术_剑鱼标讯,全行业招标信息智能推送领导者!
+    KEYWORDS: ''
+    DESCRIPTION: ''
+  XZBG:
+    NAME: 行政办公_办公家具,行政办公_通用办公设备,行政办公_专业设备,行政办公_办公用品,行政办公_生活用品
+    TITLE: 行政办公_剑鱼标讯,全行业招标信息智能推送领导者!
+    KEYWORDS: ''
+    DESCRIPTION: ''
+  JXSB:
+    NAME: 机械设备_矿山机械,机械设备_工程机械,机械设备_机械零部件,机械设备_机床相关,机械设备_车辆,机械设备_其他机械设备
+    TITLE: 机械设备_剑鱼标讯,全行业招标信息智能推送领导者!
+    KEYWORDS: ''
+    DESCRIPTION: ''
+  JTGC:
+    NAME: 交通工程_道路,交通工程_轨道,交通工程_桥梁,交通工程_隧道,交通工程_其他
+    TITLE: 交通工程_剑鱼标讯,全行业招标信息智能推送领导者!
+    KEYWORDS: ''
+    DESCRIPTION: ''
+  YLWS:
+    NAME: 医疗卫生_设备,医疗卫生_耗材,医疗卫生_药品
+    TITLE: 医疗卫生_剑鱼标讯,全行业招标信息智能推送领导者!
+    KEYWORDS: ''
+    DESCRIPTION: ''
+  SZSS:
+    NAME: 市政设施_道路,市政设施_绿化,市政设施_线路管网,市政设施_综合项目
+    TITLE: 市政设施_剑鱼标讯,全行业招标信息智能推送领导者!
+    KEYWORDS: ''
+    DESCRIPTION: ''
+  FWCG:
+    NAME: 服务采购_法律咨询,服务采购_会计,服务采购_物业,服务采购_审计,服务采购_安保,服务采购_仓储物流,服务采购_广告宣传印刷,服务采购_其他
+    TITLE: 服务采购_剑鱼标讯,全行业招标信息智能推送领导者!
+    KEYWORDS: ''
+    DESCRIPTION: ''
+  NLMY:
+    NAME: 农林牧渔_生产物资,农林牧渔_生产设备,农林牧渔_相关服务
+    TITLE: 农林牧渔_剑鱼标讯,全行业招标信息智能推送领导者!
+    KEYWORDS: ''
+    DESCRIPTION: ''

+ 0 - 0
utility/.gitkeep