From 58e4572723ba68700fb6414167cb27b03c864db1 Mon Sep 17 00:00:00 2001 From: nsnail Date: Mon, 14 Oct 2024 13:55:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E2=9C=A8=20=E6=A1=86=E6=9E=B6=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=90=8C=E6=AD=A5=20(#178)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: tk --- .editorconfig | 1 + Directory.Build.props | 2 +- Dockerfile | 2 +- NetAdmin.sln.DotSettings | 1 + assets/seed-data/Sys_DicContent.json | 3208 +++++++++++++++++ build/code.quality.props | 2 +- package.json | 4 +- scripts/switcher.furion.json | 2 +- .../IApplicationBuilderExtensions.cs | 4 +- .../Extensions/ServiceCollectionExtensions.cs | 3 +- .../NetAdmin.AdmServer.Host/Startup.cs | 23 + .../NetAdmin.AdmServer.Tests.csproj | 2 +- .../Repositories/BasicRepository.cs | 6 +- .../Services/RedisService.cs | 13 +- .../Services/RepositoryService.cs | 26 +- src/backend/NetAdmin.Cache/CacheBase.cs | 3 +- .../NetAdmin.Cache/DistributedCache.cs | 9 +- src/backend/NetAdmin.Cache/MemoryCache.cs | 3 +- .../DataValidation/ApiIdAttribute.cs | 3 +- .../DataValidation/JsonStringAttribute.cs | 4 +- .../DataValidation/UserIdAttribute.cs | 3 +- .../Contexts/ContextUserToken.cs | 4 +- .../NetAdmin.Domain/DataAbstraction.cs | 4 +- .../DbMaps/Sys/Sys_DicContent.cs | 16 +- .../DbMaps/Sys/Sys_LoginLog.cs | 3 +- .../DbMaps/Sys/Sys_RequestLog.cs | 3 +- .../NetAdmin.Domain/DbMaps/Sys/Sys_Role.cs | 15 +- .../NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsg.cs | 15 +- .../DbMaps/Sys/Sys_SiteMsgDept.cs | 3 +- .../DbMaps/Sys/Sys_SiteMsgFlag.cs | 3 +- .../DbMaps/Sys/Sys_SiteMsgRole.cs | 3 +- .../DbMaps/Sys/Sys_SiteMsgUser.cs | 3 +- .../NetAdmin.Domain/DbMaps/Sys/Sys_User.cs | 10 +- .../DbMaps/Sys/Sys_UserProfile.cs | 3 +- .../Dto/Dependency/DynamicFilterInfo.cs | 4 +- .../Dto/Sys/Cache/CacheStatisticsRsp.cs | 23 +- .../Sys/Dic/Content/CreateDicContentReq.cs | 12 +- .../Sys/Dic/Content/ExportDicContentRsp.cs | 12 + .../Dto/Sys/Dic/Content/QueryDicContentRsp.cs | 8 + .../Dic/Content/SetDicContentEnabledReq.cs | 15 + .../Dto/Sys/Job/CreateJobReq.cs | 3 +- .../Dto/Sys/Job/QueryJobRsp.cs | 3 +- .../NetAdmin.Domain/Dto/Sys/Menu/MetaInfo.cs | 6 +- .../Dto/Sys/Role/CreateRoleReq.cs | 3 +- .../Dto/Sys/SiteMsg/CreateSiteMsgReq.cs | 3 +- .../Sys/SiteMsgFlag/CreateSiteMsgFlagReq.cs | 3 +- .../Dto/Sys/Tool/AesDecodeReq.cs | 12 + .../Dto/Sys/User/QueryUserRsp.cs | 8 + .../Sys/UserProfile/CreateUserProfileReq.cs | 12 +- .../Dto/Sys/VerifyCode/SendVerifyCodeReq.cs | 20 +- .../Events/SyncStructureAfterEvent.cs | 3 +- .../Events/Sys/RequestLogEvent.cs | 4 +- .../Events/Sys/UserUpdatedEvent.cs | 4 +- .../Events/Sys/VerifyCodeCreatedEvent.cs | 4 +- .../BackgroundRunning/WorkBase.cs | 6 +- .../Controllers/ProbeController.cs | 25 +- .../Extensions/IMvcBuilderExtensions.cs | 32 +- .../Extensions/MethodInfoExtensions.cs | 3 +- .../Extensions/ServiceCollectionExtensions.cs | 31 +- .../NetAdmin.Host/Filters/ApiResultHandler.cs | 3 +- .../Filters/GlobalExceptionHandler.cs | 3 +- .../Filters/TransactionInterceptor.cs | 3 +- .../Middlewares/RequestAuditMiddleware.cs | 19 +- .../Middlewares/SafetyShopHostMiddleware.cs | 4 +- .../NetAdmin.Host/NetAdmin.Host.csproj | 2 +- src/backend/NetAdmin.Host/Startup.cs | 4 +- .../Utils/CollectionJsonTypeInfoResolver.cs | 10 +- .../NetAdmin.Host/Utils/RequestLogger.cs | 7 +- .../Utils/SwaggerEnumSchemaFixer.cs | 8 +- .../Configuration/Options/CaptchaOptions.cs | 3 +- .../NetAdmin.Infrastructure/Constant/Chars.cs | 7 +- .../Constant/Numbers.cs | 16 +- .../Extensions/HttpRequestPartExtensions.cs | 3 +- .../HttpResponseMessageExtensions.cs | 10 +- .../Extensions/StringExtensions.cs | 81 +- .../NetAdmin.Infrastructure/GlobalStatic.cs | 14 +- .../NetAdmin.Infrastructure.csproj | 10 +- .../Utils/ApplicationHelper.cs | 3 +- .../Utils/CaptchaImageHelper.cs | 28 +- .../Utils/FreeSqlBuilder.cs | 14 +- .../Utils/MimeTypeHelper.cs | 10 +- .../Utils/RedisLocker.cs | 10 +- .../Utils/UserAgentParser.cs | 23 +- .../Utils/XmlCommentReader.cs | 15 +- .../Modules/Sys/IDicContentModule.cs | 8 +- .../Modules/Sys/IDicModule.cs | 7 +- .../Modules/Sys/IToolsModule.cs | 5 + .../Services/Sys/ApiService.cs | 15 +- .../Services/Sys/CacheService.cs | 42 +- .../Services/Sys/CaptchaService.cs | 14 +- .../Services/Sys/ConfigService.cs | 11 +- .../Services/Sys/ConstantService.cs | 17 +- .../Services/Sys/DeptService.cs | 11 +- .../Services/Sys/DevService.cs | 63 +- .../Services/Sys/DicCatalogService.cs | 23 +- .../Services/Sys/DicContentService.cs | 26 +- .../Services/Sys/DicService.cs | 7 + .../Services/Sys/FileService.cs | 3 +- .../Services/Sys/JobRecordService.cs | 25 +- .../Services/Sys/JobService.cs | 46 +- .../Services/Sys/LoginLogService.cs | 7 +- .../Services/Sys/MenuService.cs | 21 +- .../Services/Sys/RequestLogDetailService.cs | 6 +- .../Services/Sys/RequestLogService.cs | 21 +- .../Services/Sys/RoleService.cs | 17 +- .../Services/Sys/SiteMsgDeptService.cs | 7 +- .../Services/Sys/SiteMsgFlagService.cs | 10 +- .../Services/Sys/SiteMsgRoleService.cs | 7 +- .../Services/Sys/SiteMsgService.cs | 116 +- .../Services/Sys/SiteMsgUserService.cs | 7 +- .../Services/Sys/ToolsService.cs | 12 +- .../Services/Sys/UserProfileService.cs | 50 +- .../Services/Sys/UserService.cs | 159 +- .../Services/Sys/VerifyCodeService.cs | 25 +- .../Services/Tpl/ExampleService.cs | 7 +- .../Sys/CaptchaCache.cs | 3 +- .../Sys/Dependency/IUserCache.cs | 6 + .../Sys/DicCache.cs | 6 + .../Sys/DicContentCache.cs | 6 + .../Sys/JobCache.cs | 3 +- .../Sys/ToolsCache.cs | 6 + .../Sys/UserCache.cs | 12 + .../Controllers/Sys/ApiController.cs | 1 + .../Controllers/Sys/CacheController.cs | 1 + .../Controllers/Sys/CaptchaController.cs | 4 +- .../Controllers/Sys/ConfigController.cs | 4 +- .../Controllers/Sys/ConstantController.cs | 1 + .../Controllers/Sys/DeptController.cs | 1 + .../Controllers/Sys/DevController.cs | 1 + .../Controllers/Sys/DicController.cs | 9 + .../Controllers/Sys/FileController.cs | 1 + .../Controllers/Sys/JobController.cs | 1 + .../Controllers/Sys/LoginLogController.cs | 4 +- .../Controllers/Sys/MenuController.cs | 1 + .../Controllers/Sys/RequestLogController.cs | 4 +- .../Controllers/Sys/RoleController.cs | 1 + .../Controllers/Sys/SiteMsgController.cs | 4 +- .../Controllers/Sys/ToolsController.cs | 9 + .../Controllers/Sys/UserController.cs | 6 +- .../Controllers/Sys/VerifyCodeController.cs | 1 + .../Controllers/Tpl/ExampleController.cs | 4 +- .../Jobs/ScheduledJob.cs | 93 +- .../Middlewares/VersionCheckerMiddleware.cs | 9 +- .../NetAdmin.SysComponent.Host.csproj | 3 + .../Subscribers/EmailCodeSender.cs | 4 +- .../Subscribers/OperationLogger.cs | 39 +- .../Subscribers/SmsCodeSender.cs | 4 +- .../NetAdmin.SysComponent.Tests.csproj | 2 +- .../Sys/DicTests.cs | 10 + .../Sys/JobTests.cs | 3 +- .../Sys/ToolsTests.cs | 12 + .../Sys/UserTests.cs | 12 +- .../NetAdmin.Tests/NetAdmin.Tests.csproj | 6 +- src/backend/NetAdmin.Tests/PriorityOrderer.cs | 6 +- src/backend/NetAdmin.Tests/WebApiTestBase.cs | 23 +- src/frontend/admin/package.json | 64 +- .../admin/src/api/controllers/probe.js | 33 + src/frontend/admin/src/api/sys/dic.js | 11 + src/frontend/admin/src/api/sys/tools.js | 22 +- .../admin/src/components/naColId/index.vue | 8 +- .../src/components/naColOperation/index.vue | 26 +- .../src/components/naIndicator/index.vue | 2 +- .../admin/src/components/scTable/index.vue | 33 +- src/frontend/admin/src/config/appConfig.js | 2 +- src/frontend/admin/src/global.js | 3 + .../admin/src/layout/components/tasks.vue | 2 +- src/frontend/admin/src/layout/index.vue | 3 +- src/frontend/admin/src/locales/lang/en.js | 4 +- src/frontend/admin/src/locales/lang/zh-cn.js | 4 +- src/frontend/admin/src/style/app.scss | 14 +- src/frontend/admin/src/style/fix.scss | 5 + .../widgets/components/chart-bar-request.vue | 6 +- .../widgets/components/chart-pie-request.vue | 6 +- .../admin/src/views/sys/config/index.vue | 49 +- .../admin/src/views/sys/dept/index.vue | 30 +- .../admin/src/views/sys/dic/list/index.vue | 118 +- .../admin/src/views/sys/dic/list/save.vue | 3 + .../src/views/sys/dic/list/savebatch.vue | 83 + .../admin/src/views/sys/job/all/index.vue | 43 +- .../admin/src/views/sys/job/record/index.vue | 29 +- .../admin/src/views/sys/log/login/index.vue | 21 +- .../src/views/sys/log/operation/index.vue | 15 +- .../admin/src/views/sys/msg/index.vue | 24 +- .../admin/src/views/sys/role/index.vue | 28 +- .../admin/src/views/sys/user/index.vue | 28 +- 185 files changed, 4732 insertions(+), 1086 deletions(-) create mode 100644 src/backend/NetAdmin.Domain/Dto/Sys/Dic/Content/SetDicContentEnabledReq.cs create mode 100644 src/backend/NetAdmin.Domain/Dto/Sys/Tool/AesDecodeReq.cs create mode 100644 src/frontend/admin/src/views/sys/dic/list/savebatch.vue diff --git a/.editorconfig b/.editorconfig index 122c3ea3..0c64ba71 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,6 +10,7 @@ ij_xml_text_wrap = off # IntelliJ IDEA 中 XML 文本不换行 indent_size = 4 # 缩进大小为 4 个空格 indent_style = space # 使用空格进行缩进 insert_final_newline = false # 不在文件末尾插入空行 +max_line_length = 150 # 行长度限制为 150 个字符 trim_trailing_whitespace = true # 删除行尾的空格 [{*.json,*.yml}] diff --git a/Directory.Build.props b/Directory.Build.props index f83ca8a4..ac75abf8 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -25,7 +25,7 @@ $(AssemblyName) - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/Dockerfile b/Dockerfile index 2a5d9c79..fe82d079 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/aspnet:9.0.0-preview.7 AS base +FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base WORKDIR /app EXPOSE 8080 RUN apt update diff --git a/NetAdmin.sln.DotSettings b/NetAdmin.sln.DotSettings index 09133239..c1226460 100644 --- a/NetAdmin.sln.DotSettings +++ b/NetAdmin.sln.DotSettings @@ -78,6 +78,7 @@ True True True + True True True diff --git a/assets/seed-data/Sys_DicContent.json b/assets/seed-data/Sys_DicContent.json index 48ef2913..71a11f80 100644 --- a/assets/seed-data/Sys_DicContent.json +++ b/assets/seed-data/Sys_DicContent.json @@ -1,19248 +1,22456 @@ [ { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788572677, "Key": "北京市", "Value": "110000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788580869, "Key": "北京市东城区", "Value": "110101" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788584965, "Key": "北京市西城区", "Value": "110102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788584966, "Key": "北京市朝阳区", "Value": "110105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788584967, "Key": "北京市丰台区", "Value": "110106" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788584968, "Key": "北京市石景山区", "Value": "110107" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788584969, "Key": "北京市海淀区", "Value": "110108" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788584970, "Key": "北京市门头沟区", "Value": "110109" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788584971, "Key": "北京市房山区", "Value": "110111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788584972, "Key": "北京市通州区", "Value": "110112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788584973, "Key": "北京市顺义区", "Value": "110113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788584974, "Key": "北京市昌平区", "Value": "110114" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788584975, "Key": "北京市大兴区", "Value": "110115" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788584976, "Key": "北京市怀柔区", "Value": "110116" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788589061, "Key": "北京市平谷区", "Value": "110117" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788589062, "Key": "北京市密云区", "Value": "110118" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788589063, "Key": "北京市延庆区", "Value": "110119" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788589064, "Key": "天津市", "Value": "120000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788589065, "Key": "天津市和平区", "Value": "120101" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788589066, "Key": "天津市河东区", "Value": "120102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788589067, "Key": "天津市河西区", "Value": "120103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788589068, "Key": "天津市南开区", "Value": "120104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788589069, "Key": "天津市河北区", "Value": "120105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788589070, "Key": "天津市红桥区", "Value": "120106" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788589071, "Key": "天津市东丽区", "Value": "120110" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788589072, "Key": "天津市西青区", "Value": "120111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788593157, "Key": "天津市津南区", "Value": "120112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788593158, "Key": "天津市北辰区", "Value": "120113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788593159, "Key": "天津市武清区", "Value": "120114" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788593160, "Key": "天津市宝坻区", "Value": "120115" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788593161, "Key": "天津市滨海新区", "Value": "120116" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788593162, "Key": "天津市宁河区", "Value": "120117" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788593163, "Key": "天津市静海区", "Value": "120118" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788593164, "Key": "天津市蓟州区", "Value": "120119" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788593165, "Key": "河北省", "Value": "130000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788593166, "Key": "河北省石家庄市", "Value": "130100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788593167, "Key": "河北省石家庄市长安区", "Value": "130102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788597253, "Key": "河北省石家庄市桥西区", "Value": "130104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788597254, "Key": "河北省石家庄市新华区", "Value": "130105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788597255, "Key": "河北省石家庄市井陉矿区", "Value": "130107" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788597256, "Key": "河北省石家庄市裕华区", "Value": "130108" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788597257, "Key": "河北省石家庄市藁城区", "Value": "130109" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788597258, "Key": "河北省石家庄市鹿泉区", "Value": "130110" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788597259, "Key": "河北省石家庄市栾城区", "Value": "130111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788597260, "Key": "河北省石家庄市井陉县", "Value": "130121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788597261, "Key": "河北省石家庄市正定县", "Value": "130123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788597262, "Key": "河北省石家庄市行唐县", "Value": "130125" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788597263, "Key": "河北省石家庄市灵寿县", "Value": "130126" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788597264, "Key": "河北省石家庄市高邑县", "Value": "130127" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788601349, "Key": "河北省石家庄市深泽县", "Value": "130128" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788601350, "Key": "河北省石家庄市赞皇县", "Value": "130129" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788601351, "Key": "河北省石家庄市无极县", "Value": "130130" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788601352, "Key": "河北省石家庄市平山县", "Value": "130131" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788601353, "Key": "河北省石家庄市元氏县", "Value": "130132" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788601354, "Key": "河北省石家庄市赵县", "Value": "130133" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788601355, "Key": "河北省石家庄市辛集市", "Value": "130181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788601356, "Key": "河北省石家庄市晋州市", "Value": "130183" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788601357, "Key": "河北省石家庄市新乐市", "Value": "130184" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788601358, "Key": "河北省唐山市", "Value": "130200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788601359, "Key": "河北省唐山市路南区", "Value": "130202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788601360, "Key": "河北省唐山市路北区", "Value": "130203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788605445, "Key": "河北省唐山市古冶区", "Value": "130204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788605446, "Key": "河北省唐山市开平区", "Value": "130205" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788605447, "Key": "河北省唐山市丰南区", "Value": "130207" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788605448, "Key": "河北省唐山市丰润区", "Value": "130208" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788605449, "Key": "河北省唐山市曹妃甸区", "Value": "130209" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788605450, "Key": "河北省唐山市滦南县", "Value": "130224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788605451, "Key": "河北省唐山市乐亭县", "Value": "130225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788605452, "Key": "河北省唐山市迁西县", "Value": "130227" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788605453, "Key": "河北省唐山市玉田县", "Value": "130229" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788605454, "Key": "河北省唐山市遵化市", "Value": "130281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788605455, "Key": "河北省唐山市迁安市", "Value": "130283" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788605456, "Key": "河北省唐山市滦州市", "Value": "130284" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788609541, "Key": "河北省秦皇岛市", "Value": "130300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788609542, "Key": "河北省秦皇岛市海港区", "Value": "130302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788609543, "Key": "河北省秦皇岛市山海关区", "Value": "130303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788609544, "Key": "河北省秦皇岛市北戴河区", "Value": "130304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788609545, "Key": "河北省秦皇岛市抚宁区", "Value": "130306" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788609546, "Key": "河北省秦皇岛市青龙满族自治县", "Value": "130321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788609547, "Key": "河北省秦皇岛市昌黎县", "Value": "130322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788609548, "Key": "河北省秦皇岛市卢龙县", "Value": "130324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788609549, "Key": "河北省邯郸市", "Value": "130400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788609550, "Key": "河北省邯郸市邯山区", "Value": "130402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788609551, "Key": "河北省邯郸市丛台区", "Value": "130403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788609552, "Key": "河北省邯郸市复兴区", "Value": "130404" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788613637, "Key": "河北省邯郸市峰峰矿区", "Value": "130406" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788613638, "Key": "河北省邯郸市肥乡区", "Value": "130407" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788613639, "Key": "河北省邯郸市永年区", "Value": "130408" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788613640, "Key": "河北省邯郸市临漳县", "Value": "130423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788613641, "Key": "河北省邯郸市成安县", "Value": "130424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788613642, "Key": "河北省邯郸市大名县", "Value": "130425" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788613643, "Key": "河北省邯郸市涉县", "Value": "130426" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788613644, "Key": "河北省邯郸市磁县", "Value": "130427" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788613645, "Key": "河北省邯郸市邱县", "Value": "130430" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788613646, "Key": "河北省邯郸市鸡泽县", "Value": "130431" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788613647, "Key": "河北省邯郸市广平县", "Value": "130432" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788613648, "Key": "河北省邯郸市馆陶县", "Value": "130433" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788617733, "Key": "河北省邯郸市魏县", "Value": "130434" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788617734, "Key": "河北省邯郸市曲周县", "Value": "130435" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788617735, "Key": "河北省邯郸市武安市", "Value": "130481" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788617736, "Key": "河北省邢台市", "Value": "130500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788617737, "Key": "河北省邢台市襄都区", "Value": "130502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788617738, "Key": "河北省邢台市信都区", "Value": "130503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788617739, "Key": "河北省邢台市任泽区", "Value": "130505" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788617740, "Key": "河北省邢台市南和区", "Value": "130506" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788617741, "Key": "河北省邢台市临城县", "Value": "130522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788617742, "Key": "河北省邢台市内丘县", "Value": "130523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788617743, "Key": "河北省邢台市柏乡县", "Value": "130524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788617744, "Key": "河北省邢台市隆尧县", "Value": "130525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788621829, "Key": "河北省邢台市宁晋县", "Value": "130528" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788621830, "Key": "河北省邢台市巨鹿县", "Value": "130529" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788621831, "Key": "河北省邢台市新河县", "Value": "130530" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788621832, "Key": "河北省邢台市广宗县", "Value": "130531" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788621833, "Key": "河北省邢台市平乡县", "Value": "130532" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788621834, "Key": "河北省邢台市威县", "Value": "130533" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788621835, "Key": "河北省邢台市清河县", "Value": "130534" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788621836, "Key": "河北省邢台市临西县", "Value": "130535" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788621837, "Key": "河北省邢台市南宫市", "Value": "130581" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788621838, "Key": "河北省邢台市沙河市", "Value": "130582" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788621839, "Key": "河北省保定市", "Value": "130600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788621840, "Key": "河北省保定市竞秀区", "Value": "130602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788625925, "Key": "河北省保定市莲池区", "Value": "130606" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788625926, "Key": "河北省保定市满城区", "Value": "130607" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788625927, "Key": "河北省保定市清苑区", "Value": "130608" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788625928, "Key": "河北省保定市徐水区", "Value": "130609" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788625929, "Key": "河北省保定市涞水县", "Value": "130623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788625930, "Key": "河北省保定市阜平县", "Value": "130624" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788625931, "Key": "河北省保定市定兴县", "Value": "130626" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788625932, "Key": "河北省保定市唐县", "Value": "130627" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788625933, "Key": "河北省保定市高阳县", "Value": "130628" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788625934, "Key": "河北省保定市容城县", "Value": "130629" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788625935, "Key": "河北省保定市涞源县", "Value": "130630" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788625936, "Key": "河北省保定市望都县", "Value": "130631" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788630021, "Key": "河北省保定市安新县", "Value": "130632" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788630022, "Key": "河北省保定市易县", "Value": "130633" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788630023, "Key": "河北省保定市曲阳县", "Value": "130634" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788630024, "Key": "河北省保定市蠡县", "Value": "130635" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788630025, "Key": "河北省保定市顺平县", "Value": "130636" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788630026, "Key": "河北省保定市博野县", "Value": "130637" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788630027, "Key": "河北省保定市雄县", "Value": "130638" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788630028, "Key": "河北省保定市涿州市", "Value": "130681" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788630029, "Key": "河北省保定市定州市", "Value": "130682" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788630030, "Key": "河北省保定市安国市", "Value": "130683" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788630031, "Key": "河北省保定市高碑店市", "Value": "130684" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788630032, "Key": "河北省张家口市", "Value": "130700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788630033, "Key": "河北省张家口市桥东区", "Value": "130702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788634117, "Key": "河北省张家口市桥西区", "Value": "130703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788634118, "Key": "河北省张家口市宣化区", "Value": "130705" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788634119, "Key": "河北省张家口市下花园区", "Value": "130706" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788634120, "Key": "河北省张家口市万全区", "Value": "130708" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788634121, "Key": "河北省张家口市崇礼区", "Value": "130709" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788634122, "Key": "河北省张家口市张北县", "Value": "130722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788634123, "Key": "河北省张家口市康保县", "Value": "130723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788634124, "Key": "河北省张家口市沽源县", "Value": "130724" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788634125, "Key": "河北省张家口市尚义县", "Value": "130725" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788634126, "Key": "河北省张家口市蔚县", "Value": "130726" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788634127, "Key": "河北省张家口市阳原县", "Value": "130727" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788634128, "Key": "河北省张家口市怀安县", "Value": "130728" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788638213, "Key": "河北省张家口市怀来县", "Value": "130730" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788638214, "Key": "河北省张家口市涿鹿县", "Value": "130731" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788638215, "Key": "河北省张家口市赤城县", "Value": "130732" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788638216, "Key": "河北省承德市", "Value": "130800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788638217, "Key": "河北省承德市双桥区", "Value": "130802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788638218, "Key": "河北省承德市双滦区", "Value": "130803" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788638219, "Key": "河北省承德市鹰手营子矿区", "Value": "130804" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788638220, "Key": "河北省承德市承德县", "Value": "130821" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788638221, "Key": "河北省承德市兴隆县", "Value": "130822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788638222, "Key": "河北省承德市滦平县", "Value": "130824" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788638223, "Key": "河北省承德市隆化县", "Value": "130825" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788642309, "Key": "河北省承德市丰宁满族自治县", "Value": "130826" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788642310, "Key": "河北省承德市宽城满族自治县", "Value": "130827" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788642311, "Key": "河北省承德市围场满族蒙古族自治县", "Value": "130828" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788642312, "Key": "河北省承德市平泉市", "Value": "130881" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788642313, "Key": "河北省沧州市", "Value": "130900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788642314, "Key": "河北省沧州市新华区", "Value": "130902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788642315, "Key": "河北省沧州市运河区", "Value": "130903" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788642316, "Key": "河北省沧州市沧县", "Value": "130921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788642317, "Key": "河北省沧州市青县", "Value": "130922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788642318, "Key": "河北省沧州市东光县", "Value": "130923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788642319, "Key": "河北省沧州市海兴县", "Value": "130924" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788642320, "Key": "河北省沧州市盐山县", "Value": "130925" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788646405, "Key": "河北省沧州市肃宁县", "Value": "130926" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788646406, "Key": "河北省沧州市南皮县", "Value": "130927" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788646407, "Key": "河北省沧州市吴桥县", "Value": "130928" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788646408, "Key": "河北省沧州市献县", "Value": "130929" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788646409, "Key": "河北省沧州市孟村回族自治县", "Value": "130930" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788646410, "Key": "河北省沧州市泊头市", "Value": "130981" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788646411, "Key": "河北省沧州市任丘市", "Value": "130982" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788646412, "Key": "河北省沧州市黄骅市", "Value": "130983" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788646413, "Key": "河北省沧州市河间市", "Value": "130984" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788646414, "Key": "河北省廊坊市", "Value": "131000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788646415, "Key": "河北省廊坊市安次区", "Value": "131002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788650501, "Key": "河北省廊坊市广阳区", "Value": "131003" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788650502, "Key": "河北省廊坊市固安县", "Value": "131022" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788650503, "Key": "河北省廊坊市永清县", "Value": "131023" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788650504, "Key": "河北省廊坊市香河县", "Value": "131024" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788650505, "Key": "河北省廊坊市大城县", "Value": "131025" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788650506, "Key": "河北省廊坊市文安县", "Value": "131026" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788650507, "Key": "河北省廊坊市大厂回族自治县", "Value": "131028" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788650508, "Key": "河北省廊坊市霸州市", "Value": "131081" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788650509, "Key": "河北省廊坊市三河市", "Value": "131082" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788650510, "Key": "河北省衡水市", "Value": "131100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788650511, "Key": "河北省衡水市桃城区", "Value": "131102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788650512, "Key": "河北省衡水市冀州区", "Value": "131103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788654597, "Key": "河北省衡水市枣强县", "Value": "131121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788654598, "Key": "河北省衡水市武邑县", "Value": "131122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788654599, "Key": "河北省衡水市武强县", "Value": "131123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788654600, "Key": "河北省衡水市饶阳县", "Value": "131124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788654601, "Key": "河北省衡水市安平县", "Value": "131125" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788654602, "Key": "河北省衡水市故城县", "Value": "131126" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788654603, "Key": "河北省衡水市景县", "Value": "131127" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788654604, "Key": "河北省衡水市阜城县", "Value": "131128" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788654605, "Key": "河北省衡水市深州市", "Value": "131182" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788654606, "Key": "山西省", "Value": "140000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788654607, "Key": "山西省太原市", "Value": "140100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788658693, "Key": "山西省太原市小店区", "Value": "140105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788658694, "Key": "山西省太原市迎泽区", "Value": "140106" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788658695, "Key": "山西省太原市杏花岭区", "Value": "140107" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788658696, "Key": "山西省太原市尖草坪区", "Value": "140108" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788658697, "Key": "山西省太原市万柏林区", "Value": "140109" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788658698, "Key": "山西省太原市晋源区", "Value": "140110" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788658699, "Key": "山西省太原市清徐县", "Value": "140121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788658700, "Key": "山西省太原市阳曲县", "Value": "140122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788658701, "Key": "山西省太原市娄烦县", "Value": "140123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788658702, "Key": "山西省太原市古交市", "Value": "140181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788658703, "Key": "山西省大同市", "Value": "140200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788662789, "Key": "山西省大同市新荣区", "Value": "140212" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788662790, "Key": "山西省大同市平城区", "Value": "140213" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788662791, "Key": "山西省大同市云冈区", "Value": "140214" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788662792, "Key": "山西省大同市云州区", "Value": "140215" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788662793, "Key": "山西省大同市阳高县", "Value": "140221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788662794, "Key": "山西省大同市天镇县", "Value": "140222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788662795, "Key": "山西省大同市广灵县", "Value": "140223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788662796, "Key": "山西省大同市灵丘县", "Value": "140224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788662797, "Key": "山西省大同市浑源县", "Value": "140225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788662798, "Key": "山西省大同市左云县", "Value": "140226" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788662799, "Key": "山西省阳泉市", "Value": "140300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788662800, "Key": "山西省阳泉市城区", "Value": "140302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788666885, "Key": "山西省阳泉市矿区", "Value": "140303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788666886, "Key": "山西省阳泉市郊区", "Value": "140311" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788666887, "Key": "山西省阳泉市平定县", "Value": "140321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788666888, "Key": "山西省阳泉市盂县", "Value": "140322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788666889, "Key": "山西省长治市", "Value": "140400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788666890, "Key": "山西省长治市潞州区", "Value": "140403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788666891, "Key": "山西省长治市上党区", "Value": "140404" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788666892, "Key": "山西省长治市屯留区", "Value": "140405" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788666893, "Key": "山西省长治市潞城区", "Value": "140406" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788666894, "Key": "山西省长治市襄垣县", "Value": "140423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788666895, "Key": "山西省长治市平顺县", "Value": "140425" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788666896, "Key": "山西省长治市黎城县", "Value": "140426" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788670981, "Key": "山西省长治市壶关县", "Value": "140427" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788670982, "Key": "山西省长治市长子县", "Value": "140428" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788670983, "Key": "山西省长治市武乡县", "Value": "140429" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788670984, "Key": "山西省长治市沁县", "Value": "140430" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788670985, "Key": "山西省长治市沁源县", "Value": "140431" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788670986, "Key": "山西省晋城市", "Value": "140500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788670987, "Key": "山西省晋城市城区", "Value": "140502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788670988, "Key": "山西省晋城市沁水县", "Value": "140521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788670989, "Key": "山西省晋城市阳城县", "Value": "140522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788670990, "Key": "山西省晋城市陵川县", "Value": "140524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788670991, "Key": "山西省晋城市泽州县", "Value": "140525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788670992, "Key": "山西省晋城市高平市", "Value": "140581" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788675077, "Key": "山西省朔州市", "Value": "140600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788675078, "Key": "山西省朔州市朔城区", "Value": "140602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788675079, "Key": "山西省朔州市平鲁区", "Value": "140603" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788675080, "Key": "山西省朔州市山阴县", "Value": "140621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788675081, "Key": "山西省朔州市应县", "Value": "140622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788675082, "Key": "山西省朔州市右玉县", "Value": "140623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788675083, "Key": "山西省朔州市怀仁市", "Value": "140681" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788675084, "Key": "山西省晋中市", "Value": "140700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788675085, "Key": "山西省晋中市榆次区", "Value": "140702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788675086, "Key": "山西省晋中市太谷区", "Value": "140703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788675087, "Key": "山西省晋中市榆社县", "Value": "140721" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788675088, "Key": "山西省晋中市左权县", "Value": "140722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788679173, "Key": "山西省晋中市和顺县", "Value": "140723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788679174, "Key": "山西省晋中市昔阳县", "Value": "140724" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788679175, "Key": "山西省晋中市寿阳县", "Value": "140725" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788679176, "Key": "山西省晋中市祁县", "Value": "140727" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788679177, "Key": "山西省晋中市平遥县", "Value": "140728" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788679178, "Key": "山西省晋中市灵石县", "Value": "140729" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788679179, "Key": "山西省晋中市介休市", "Value": "140781" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788679180, "Key": "山西省运城市", "Value": "140800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788679181, "Key": "山西省运城市盐湖区", "Value": "140802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788679182, "Key": "山西省运城市临猗县", "Value": "140821" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788679183, "Key": "山西省运城市万荣县", "Value": "140822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788679184, "Key": "山西省运城市闻喜县", "Value": "140823" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788683269, "Key": "山西省运城市稷山县", "Value": "140824" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788683270, "Key": "山西省运城市新绛县", "Value": "140825" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788683271, "Key": "山西省运城市绛县", "Value": "140826" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788683272, "Key": "山西省运城市垣曲县", "Value": "140827" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788683273, "Key": "山西省运城市夏县", "Value": "140828" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788683274, "Key": "山西省运城市平陆县", "Value": "140829" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788683275, "Key": "山西省运城市芮城县", "Value": "140830" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788683276, "Key": "山西省运城市永济市", "Value": "140881" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788683277, "Key": "山西省运城市河津市", "Value": "140882" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788683278, "Key": "山西省忻州市", "Value": "140900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788683279, "Key": "山西省忻州市忻府区", "Value": "140902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788683280, "Key": "山西省忻州市定襄县", "Value": "140921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788683281, "Key": "山西省忻州市五台县", "Value": "140922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788687365, "Key": "山西省忻州市代县", "Value": "140923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788687366, "Key": "山西省忻州市繁峙县", "Value": "140924" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788687367, "Key": "山西省忻州市宁武县", "Value": "140925" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788687368, "Key": "山西省忻州市静乐县", "Value": "140926" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788687369, "Key": "山西省忻州市神池县", "Value": "140927" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788687370, "Key": "山西省忻州市五寨县", "Value": "140928" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788687371, "Key": "山西省忻州市岢岚县", "Value": "140929" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788687372, "Key": "山西省忻州市河曲县", "Value": "140930" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788687373, "Key": "山西省忻州市保德县", "Value": "140931" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788687374, "Key": "山西省忻州市偏关县", "Value": "140932" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788687375, "Key": "山西省忻州市原平市", "Value": "140981" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788687376, "Key": "山西省临汾市", "Value": "141000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788691461, "Key": "山西省临汾市尧都区", "Value": "141002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788691462, "Key": "山西省临汾市曲沃县", "Value": "141021" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788691463, "Key": "山西省临汾市翼城县", "Value": "141022" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788691464, "Key": "山西省临汾市襄汾县", "Value": "141023" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788691465, "Key": "山西省临汾市洪洞县", "Value": "141024" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788691466, "Key": "山西省临汾市古县", "Value": "141025" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788691467, "Key": "山西省临汾市安泽县", "Value": "141026" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788691468, "Key": "山西省临汾市浮山县", "Value": "141027" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788691469, "Key": "山西省临汾市吉县", "Value": "141028" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788691470, "Key": "山西省临汾市乡宁县", "Value": "141029" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788691471, "Key": "山西省临汾市大宁县", "Value": "141030" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788691472, "Key": "山西省临汾市隰县", "Value": "141031" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788691473, "Key": "山西省临汾市永和县", "Value": "141032" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788695557, "Key": "山西省临汾市蒲县", "Value": "141033" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788695558, "Key": "山西省临汾市汾西县", "Value": "141034" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788695559, "Key": "山西省临汾市侯马市", "Value": "141081" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788695560, "Key": "山西省临汾市霍州市", "Value": "141082" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788695561, "Key": "山西省吕梁市", "Value": "141100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788695562, "Key": "山西省吕梁市离石区", "Value": "141102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788695563, "Key": "山西省吕梁市文水县", "Value": "141121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788695564, "Key": "山西省吕梁市交城县", "Value": "141122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788695565, "Key": "山西省吕梁市兴县", "Value": "141123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788695566, "Key": "山西省吕梁市临县", "Value": "141124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788695567, "Key": "山西省吕梁市柳林县", "Value": "141125" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788695568, "Key": "山西省吕梁市石楼县", "Value": "141126" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788695569, "Key": "山西省吕梁市岚县", "Value": "141127" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788699653, "Key": "山西省吕梁市方山县", "Value": "141128" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788699654, "Key": "山西省吕梁市中阳县", "Value": "141129" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788699655, "Key": "山西省吕梁市交口县", "Value": "141130" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788699656, "Key": "山西省吕梁市孝义市", "Value": "141181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788699657, "Key": "山西省吕梁市汾阳市", "Value": "141182" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788699658, "Key": "内蒙古自治区", "Value": "150000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788699659, "Key": "内蒙古自治区呼和浩特市呼和浩特市", "Value": "150100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788699660, "Key": "内蒙古自治区呼和浩特市新城区", "Value": "150102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788699661, "Key": "内蒙古自治区呼和浩特市回民区", "Value": "150103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788699662, "Key": "内蒙古自治区呼和浩特市玉泉区", "Value": "150104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788699663, "Key": "内蒙古自治区呼和浩特市赛罕区", "Value": "150105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788699664, "Key": "内蒙古自治区呼和浩特市土默特左旗", "Value": "150121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788703749, "Key": "内蒙古自治区呼和浩特市托克托县", "Value": "150122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788703750, "Key": "内蒙古自治区呼和浩特市和林格尔县", "Value": "150123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788703751, "Key": "内蒙古自治区呼和浩特市清水河县", "Value": "150124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788703752, "Key": "内蒙古自治区呼和浩特市武川县", "Value": "150125" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788703753, "Key": "内蒙古自治区包头市", "Value": "150200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788703754, "Key": "内蒙古自治区包头市东河区", "Value": "150202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788703755, "Key": "内蒙古自治区包头市昆都仑区", "Value": "150203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788703756, "Key": "内蒙古自治区包头市青山区", "Value": "150204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788703757, "Key": "内蒙古自治区包头市石拐区", "Value": "150205" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788703758, "Key": "内蒙古自治区包头市白云鄂博矿区", "Value": "150206" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788703759, "Key": "内蒙古自治区包头市九原区", "Value": "150207" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788703760, "Key": "内蒙古自治区包头市土默特右旗", "Value": "150221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788703761, "Key": "内蒙古自治区包头市固阳县", "Value": "150222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788707845, "Key": "内蒙古自治区包头市达尔罕茂明安联合旗", "Value": "150223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788707846, "Key": "内蒙古自治区乌海市", "Value": "150300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788707847, "Key": "内蒙古自治区乌海市海勃湾区", "Value": "150302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788707848, "Key": "内蒙古自治区乌海市海南区", "Value": "150303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788707849, "Key": "内蒙古自治区乌海市乌达区", "Value": "150304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788707850, "Key": "内蒙古自治区赤峰市", "Value": "150400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788707851, "Key": "内蒙古自治区赤峰市红山区", "Value": "150402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788707852, "Key": "内蒙古自治区赤峰市元宝山区", "Value": "150403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788707853, "Key": "内蒙古自治区赤峰市松山区", "Value": "150404" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788707854, "Key": "内蒙古自治区赤峰市阿鲁科尔沁旗", "Value": "150421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788707855, "Key": "内蒙古自治区赤峰市巴林左旗", "Value": "150422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788707856, "Key": "内蒙古自治区赤峰市巴林右旗", "Value": "150423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788711941, "Key": "内蒙古自治区赤峰市林西县", "Value": "150424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788711942, "Key": "内蒙古自治区赤峰市克什克腾旗", "Value": "150425" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788711943, "Key": "内蒙古自治区赤峰市翁牛特旗", "Value": "150426" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788711944, "Key": "内蒙古自治区赤峰市喀喇沁旗", "Value": "150428" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788711945, "Key": "内蒙古自治区赤峰市宁城县", "Value": "150429" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788711946, "Key": "内蒙古自治区赤峰市敖汉旗", "Value": "150430" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788711947, "Key": "内蒙古自治区通辽市", "Value": "150500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788711948, "Key": "内蒙古自治区通辽市科尔沁区", "Value": "150502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788711949, "Key": "内蒙古自治区通辽市科尔沁左翼中旗", "Value": "150521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788711950, "Key": "内蒙古自治区通辽市科尔沁左翼后旗", "Value": "150522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788711951, "Key": "内蒙古自治区通辽市开鲁县", "Value": "150523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788711952, "Key": "内蒙古自治区通辽市库伦旗", "Value": "150524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788716037, "Key": "内蒙古自治区通辽市奈曼旗", "Value": "150525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788716038, "Key": "内蒙古自治区通辽市扎鲁特旗", "Value": "150526" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788716039, "Key": "内蒙古自治区通辽市霍林郭勒市", "Value": "150581" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788716040, "Key": "内蒙古自治区鄂尔多斯市", "Value": "150600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788716041, "Key": "内蒙古自治区鄂尔多斯市东胜区", "Value": "150602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788716042, "Key": "内蒙古自治区鄂尔多斯市康巴什区", "Value": "150603" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788716043, "Key": "内蒙古自治区鄂尔多斯市达拉特旗", "Value": "150621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788716044, "Key": "内蒙古自治区鄂尔多斯市准格尔旗", "Value": "150622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788716045, "Key": "内蒙古自治区鄂尔多斯市鄂托克前旗", "Value": "150623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788716046, "Key": "内蒙古自治区鄂尔多斯市鄂托克旗", "Value": "150624" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788716047, "Key": "内蒙古自治区鄂尔多斯市杭锦旗", "Value": "150625" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788716048, "Key": "内蒙古自治区鄂尔多斯市乌审旗", "Value": "150626" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788716049, "Key": "内蒙古自治区鄂尔多斯市伊金霍洛旗", "Value": "150627" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788720133, "Key": "内蒙古自治区呼伦贝尔市", "Value": "150700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788720134, "Key": "内蒙古自治区呼伦贝尔市海拉尔区", "Value": "150702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788720135, "Key": "内蒙古自治区呼伦贝尔市扎赉诺尔区", "Value": "150703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788720136, "Key": "内蒙古自治区呼伦贝尔市阿荣旗", "Value": "150721" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788720137, "Key": "内蒙古自治区呼伦贝尔市莫力达瓦达斡尔族自治旗", "Value": "150722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788720138, "Key": "内蒙古自治区呼伦贝尔市鄂伦春自治旗", "Value": "150723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788720139, "Key": "内蒙古自治区呼伦贝尔市鄂温克族自治旗", "Value": "150724" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788720140, "Key": "内蒙古自治区呼伦贝尔市陈巴尔虎旗", "Value": "150725" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788720141, "Key": "内蒙古自治区呼伦贝尔市新巴尔虎左旗", "Value": "150726" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788720142, "Key": "内蒙古自治区呼伦贝尔市新巴尔虎右旗", "Value": "150727" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788720143, "Key": "内蒙古自治区呼伦贝尔市满洲里市", "Value": "150781" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788720144, "Key": "内蒙古自治区呼伦贝尔市牙克石市", "Value": "150782" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788724229, "Key": "内蒙古自治区呼伦贝尔市扎兰屯市", "Value": "150783" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788724230, "Key": "内蒙古自治区呼伦贝尔市额尔古纳市", "Value": "150784" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788724231, "Key": "内蒙古自治区呼伦贝尔市根河市", "Value": "150785" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788724232, "Key": "内蒙古自治区巴彦淖尔市", "Value": "150800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788724233, "Key": "内蒙古自治区巴彦淖尔市临河区", "Value": "150802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788724234, "Key": "内蒙古自治区巴彦淖尔市五原县", "Value": "150821" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788724235, "Key": "内蒙古自治区巴彦淖尔市磴口县", "Value": "150822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788724236, "Key": "内蒙古自治区巴彦淖尔市乌拉特前旗", "Value": "150823" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788724237, "Key": "内蒙古自治区巴彦淖尔市乌拉特中旗", "Value": "150824" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788724238, "Key": "内蒙古自治区巴彦淖尔市乌拉特后旗", "Value": "150825" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788724239, "Key": "内蒙古自治区巴彦淖尔市杭锦后旗", "Value": "150826" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788724240, "Key": "内蒙古自治区乌兰察布市", "Value": "150900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788724241, "Key": "内蒙古自治区乌兰察布市集宁区", "Value": "150902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788728325, "Key": "内蒙古自治区乌兰察布市卓资县", "Value": "150921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788728326, "Key": "内蒙古自治区乌兰察布市化德县", "Value": "150922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788728327, "Key": "内蒙古自治区乌兰察布市商都县", "Value": "150923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788728328, "Key": "内蒙古自治区乌兰察布市兴和县", "Value": "150924" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788728329, "Key": "内蒙古自治区乌兰察布市凉城县", "Value": "150925" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788728330, "Key": "内蒙古自治区乌兰察布市察哈尔右翼前旗", "Value": "150926" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788728331, "Key": "内蒙古自治区乌兰察布市察哈尔右翼中旗", "Value": "150927" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788728332, "Key": "内蒙古自治区乌兰察布市察哈尔右翼后旗", "Value": "150928" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788728333, "Key": "内蒙古自治区乌兰察布市四子王旗", "Value": "150929" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788728334, "Key": "内蒙古自治区乌兰察布市丰镇市", "Value": "150981" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788728335, "Key": "内蒙古自治区兴安盟", "Value": "152200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788728336, "Key": "内蒙古自治区兴安盟乌兰浩特市", "Value": "152201" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788732421, "Key": "内蒙古自治区兴安盟阿尔山市", "Value": "152202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788732422, "Key": "内蒙古自治区兴安盟科尔沁右翼前旗", "Value": "152221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788732423, "Key": "内蒙古自治区兴安盟科尔沁右翼中旗", "Value": "152222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788732424, "Key": "内蒙古自治区兴安盟扎赉特旗", "Value": "152223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788732425, "Key": "内蒙古自治区兴安盟突泉县", "Value": "152224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788732426, "Key": "内蒙古自治区锡林郭勒盟", "Value": "152500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788732427, "Key": "内蒙古自治区锡林郭勒盟二连浩特市", "Value": "152501" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788732428, "Key": "内蒙古自治区锡林郭勒盟锡林浩特市", "Value": "152502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788732429, "Key": "内蒙古自治区锡林郭勒盟阿巴嘎旗", "Value": "152522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788732430, "Key": "内蒙古自治区锡林郭勒盟苏尼特左旗", "Value": "152523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788732431, "Key": "内蒙古自治区锡林郭勒盟苏尼特右旗", "Value": "152524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788732432, "Key": "内蒙古自治区锡林郭勒盟东乌珠穆沁旗", "Value": "152525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788732433, "Key": "内蒙古自治区锡林郭勒盟西乌珠穆沁旗", "Value": "152526" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788736517, "Key": "内蒙古自治区锡林郭勒盟太仆寺旗", "Value": "152527" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788736518, "Key": "内蒙古自治区锡林郭勒盟镶黄旗", "Value": "152528" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788736519, "Key": "内蒙古自治区锡林郭勒盟正镶白旗", "Value": "152529" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788736520, "Key": "内蒙古自治区锡林郭勒盟正蓝旗", "Value": "152530" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788736521, "Key": "内蒙古自治区锡林郭勒盟多伦县", "Value": "152531" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788736522, "Key": "内蒙古自治区阿拉善盟", "Value": "152900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788736523, "Key": "内蒙古自治区阿拉善盟阿拉善左旗", "Value": "152921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788740613, "Key": "内蒙古自治区阿拉善盟阿拉善右旗", "Value": "152922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788744709, "Key": "内蒙古自治区阿拉善盟额济纳旗", "Value": "152923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788744710, "Key": "辽宁省", "Value": "210000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788748805, "Key": "辽宁省沈阳市", "Value": "210100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788748806, "Key": "辽宁省沈阳市和平区", "Value": "210102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788748807, "Key": "辽宁省沈阳市沈河区", "Value": "210103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788752901, "Key": "辽宁省沈阳市大东区", "Value": "210104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788752902, "Key": "辽宁省沈阳市皇姑区", "Value": "210105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788756997, "Key": "辽宁省沈阳市铁西区", "Value": "210106" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788756998, "Key": "辽宁省沈阳市苏家屯区", "Value": "210111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788761093, "Key": "辽宁省沈阳市浑南区", "Value": "210112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788765189, "Key": "辽宁省沈阳市沈北新区", "Value": "210113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788765190, "Key": "辽宁省沈阳市于洪区", "Value": "210114" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788765191, "Key": "辽宁省沈阳市辽中区", "Value": "210115" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788765192, "Key": "辽宁省沈阳市康平县", "Value": "210123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788769285, "Key": "辽宁省沈阳市法库县", "Value": "210124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788769286, "Key": "辽宁省沈阳市新民市", "Value": "210181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788769287, "Key": "辽宁省大连市", "Value": "210200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788769288, "Key": "辽宁省大连市中山区", "Value": "210202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788769289, "Key": "辽宁省大连市西岗区", "Value": "210203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788773381, "Key": "辽宁省大连市沙河口区", "Value": "210204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788773382, "Key": "辽宁省大连市甘井子区", "Value": "210211" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788773383, "Key": "辽宁省大连市旅顺口区", "Value": "210212" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788773384, "Key": "辽宁省大连市金州区", "Value": "210213" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788777477, "Key": "辽宁省大连市普兰店区", "Value": "210214" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788777478, "Key": "辽宁省大连市长海县", "Value": "210224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788777479, "Key": "辽宁省大连市瓦房店市", "Value": "210281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788777480, "Key": "辽宁省大连市庄河市", "Value": "210283" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788777481, "Key": "辽宁省鞍山市", "Value": "210300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788777482, "Key": "辽宁省鞍山市铁东区", "Value": "210302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788777483, "Key": "辽宁省鞍山市铁西区", "Value": "210303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788777484, "Key": "辽宁省鞍山市立山区", "Value": "210304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788777485, "Key": "辽宁省鞍山市千山区", "Value": "210311" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788777486, "Key": "辽宁省鞍山市台安县", "Value": "210321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788781573, "Key": "辽宁省鞍山市岫岩满族自治县", "Value": "210323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788781574, "Key": "辽宁省鞍山市海城市", "Value": "210381" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788781575, "Key": "辽宁省抚顺市", "Value": "210400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788781576, "Key": "辽宁省抚顺市新抚区", "Value": "210402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788781577, "Key": "辽宁省抚顺市东洲区", "Value": "210403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788781578, "Key": "辽宁省抚顺市望花区", "Value": "210404" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788781579, "Key": "辽宁省抚顺市顺城区", "Value": "210411" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788781580, "Key": "辽宁省抚顺市抚顺县", "Value": "210421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788781581, "Key": "辽宁省抚顺市新宾满族自治县", "Value": "210422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788785669, "Key": "辽宁省抚顺市清原满族自治县", "Value": "210423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788785670, "Key": "辽宁省本溪市", "Value": "210500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788785671, "Key": "辽宁省本溪市平山区", "Value": "210502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788785672, "Key": "辽宁省本溪市溪湖区", "Value": "210503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788785673, "Key": "辽宁省本溪市明山区", "Value": "210504" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788785674, "Key": "辽宁省本溪市南芬区", "Value": "210505" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788785675, "Key": "辽宁省本溪市本溪满族自治县", "Value": "210521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788785676, "Key": "辽宁省本溪市桓仁满族自治县", "Value": "210522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788789765, "Key": "辽宁省丹东市", "Value": "210600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788789766, "Key": "辽宁省丹东市元宝区", "Value": "210602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788789767, "Key": "辽宁省丹东市振兴区", "Value": "210603" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788789768, "Key": "辽宁省丹东市振安区", "Value": "210604" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788789769, "Key": "辽宁省丹东市宽甸满族自治县", "Value": "210624" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788789770, "Key": "辽宁省丹东市东港市", "Value": "210681" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788789771, "Key": "辽宁省丹东市凤城市", "Value": "210682" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788789772, "Key": "辽宁省锦州市", "Value": "210700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788789773, "Key": "辽宁省锦州市古塔区", "Value": "210702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788789774, "Key": "辽宁省锦州市凌河区", "Value": "210703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788793861, "Key": "辽宁省锦州市太和区", "Value": "210711" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788793862, "Key": "辽宁省锦州市黑山县", "Value": "210726" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788793863, "Key": "辽宁省锦州市义县", "Value": "210727" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788793864, "Key": "辽宁省锦州市凌海市", "Value": "210781" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788793865, "Key": "辽宁省锦州市北镇市", "Value": "210782" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788793866, "Key": "辽宁省营口市", "Value": "210800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788793867, "Key": "辽宁省营口市站前区", "Value": "210802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788793868, "Key": "辽宁省营口市西市区", "Value": "210803" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788793869, "Key": "辽宁省营口市鲅鱼圈区", "Value": "210804" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788793870, "Key": "辽宁省营口市老边区", "Value": "210811" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788793871, "Key": "辽宁省营口市盖州市", "Value": "210881" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788793872, "Key": "辽宁省营口市大石桥市", "Value": "210882" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788797957, "Key": "辽宁省阜新市", "Value": "210900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788797958, "Key": "辽宁省阜新市海州区", "Value": "210902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788797959, "Key": "辽宁省阜新市新邱区", "Value": "210903" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788797960, "Key": "辽宁省阜新市太平区", "Value": "210904" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788797961, "Key": "辽宁省阜新市清河门区", "Value": "210905" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788797962, "Key": "辽宁省阜新市细河区", "Value": "210911" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788797963, "Key": "辽宁省阜新市阜新蒙古族自治县", "Value": "210921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788797964, "Key": "辽宁省阜新市彰武县", "Value": "210922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788797965, "Key": "辽宁省辽阳市", "Value": "211000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788797966, "Key": "辽宁省辽阳市白塔区", "Value": "211002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788797967, "Key": "辽宁省辽阳市文圣区", "Value": "211003" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788797968, "Key": "辽宁省辽阳市宏伟区", "Value": "211004" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788797969, "Key": "辽宁省辽阳市弓长岭区", "Value": "211005" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788802053, "Key": "辽宁省辽阳市太子河区", "Value": "211011" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788802054, "Key": "辽宁省辽阳市辽阳县", "Value": "211021" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788802055, "Key": "辽宁省辽阳市灯塔市", "Value": "211081" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788802056, "Key": "辽宁省盘锦市", "Value": "211100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788802057, "Key": "辽宁省盘锦市双台子区", "Value": "211102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788802058, "Key": "辽宁省盘锦市兴隆台区", "Value": "211103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788802059, "Key": "辽宁省盘锦市大洼区", "Value": "211104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788802060, "Key": "辽宁省盘锦市盘山县", "Value": "211122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788802061, "Key": "辽宁省铁岭市", "Value": "211200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788802062, "Key": "辽宁省铁岭市银州区", "Value": "211202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788802063, "Key": "辽宁省铁岭市清河区", "Value": "211204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788802064, "Key": "辽宁省铁岭市铁岭县", "Value": "211221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788806149, "Key": "辽宁省铁岭市西丰县", "Value": "211223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788806150, "Key": "辽宁省铁岭市昌图县", "Value": "211224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788806151, "Key": "辽宁省铁岭市调兵山市", "Value": "211281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788806152, "Key": "辽宁省铁岭市开原市", "Value": "211282" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788806153, "Key": "辽宁省朝阳市", "Value": "211300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788806154, "Key": "辽宁省朝阳市双塔区", "Value": "211302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788806155, "Key": "辽宁省朝阳市龙城区", "Value": "211303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788806156, "Key": "辽宁省朝阳市朝阳县", "Value": "211321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788806157, "Key": "辽宁省朝阳市建平县", "Value": "211322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788806158, "Key": "辽宁省朝阳市喀喇沁左翼蒙古族自治县", "Value": "211324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788806159, "Key": "辽宁省朝阳市北票市", "Value": "211381" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788806160, "Key": "辽宁省朝阳市凌源市", "Value": "211382" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788810245, "Key": "辽宁省葫芦岛市", "Value": "211400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788810246, "Key": "辽宁省葫芦岛市连山区", "Value": "211402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788810247, "Key": "辽宁省葫芦岛市龙港区", "Value": "211403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788810248, "Key": "辽宁省葫芦岛市南票区", "Value": "211404" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788810249, "Key": "辽宁省葫芦岛市绥中县", "Value": "211421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788810250, "Key": "辽宁省葫芦岛市建昌县", "Value": "211422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788810251, "Key": "辽宁省葫芦岛市兴城市", "Value": "211481" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788810252, "Key": "吉林省", "Value": "220000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788810253, "Key": "吉林省长春市", "Value": "220100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788810254, "Key": "吉林省长春市南关区", "Value": "220102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788810255, "Key": "吉林省长春市宽城区", "Value": "220103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788810256, "Key": "吉林省长春市朝阳区", "Value": "220104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788810257, "Key": "吉林省长春市二道区", "Value": "220105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788814341, "Key": "吉林省长春市绿园区", "Value": "220106" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788814342, "Key": "吉林省长春市双阳区", "Value": "220112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788814343, "Key": "吉林省长春市九台区", "Value": "220113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788814344, "Key": "吉林省长春市农安县", "Value": "220122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788814345, "Key": "吉林省长春市榆树市", "Value": "220182" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788814346, "Key": "吉林省长春市德惠市", "Value": "220183" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788814347, "Key": "吉林省长春市公主岭市", "Value": "220184" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788814348, "Key": "吉林省吉林市", "Value": "220200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788814349, "Key": "吉林省吉林市昌邑区", "Value": "220202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788814350, "Key": "吉林省吉林市龙潭区", "Value": "220203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788814351, "Key": "吉林省吉林市船营区", "Value": "220204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788814352, "Key": "吉林省吉林市丰满区", "Value": "220211" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788818437, "Key": "吉林省吉林市永吉县", "Value": "220221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788818438, "Key": "吉林省吉林市蛟河市", "Value": "220281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788818439, "Key": "吉林省吉林市桦甸市", "Value": "220282" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788818440, "Key": "吉林省吉林市舒兰市", "Value": "220283" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788818441, "Key": "吉林省吉林市磐石市", "Value": "220284" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788818442, "Key": "吉林省四平市", "Value": "220300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788818443, "Key": "吉林省四平市铁西区", "Value": "220302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788818444, "Key": "吉林省四平市铁东区", "Value": "220303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788818445, "Key": "吉林省四平市梨树县", "Value": "220322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788818446, "Key": "吉林省四平市伊通满族自治县", "Value": "220323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788818447, "Key": "吉林省四平市双辽市", "Value": "220382" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788818448, "Key": "吉林省辽源市", "Value": "220400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788818449, "Key": "吉林省辽源市龙山区", "Value": "220402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788822533, "Key": "吉林省辽源市西安区", "Value": "220403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788822534, "Key": "吉林省辽源市东丰县", "Value": "220421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788822535, "Key": "吉林省辽源市东辽县", "Value": "220422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788822536, "Key": "吉林省通化市", "Value": "220500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788822537, "Key": "吉林省通化市东昌区", "Value": "220502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788822538, "Key": "吉林省通化市二道江区", "Value": "220503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788822539, "Key": "吉林省通化市通化县", "Value": "220521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788822540, "Key": "吉林省通化市辉南县", "Value": "220523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788822541, "Key": "吉林省通化市柳河县", "Value": "220524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788822542, "Key": "吉林省通化市梅河口市", "Value": "220581" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788822543, "Key": "吉林省通化市集安市", "Value": "220582" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788822544, "Key": "吉林省白山市", "Value": "220600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788826629, "Key": "吉林省白山市浑江区", "Value": "220602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788826630, "Key": "吉林省白山市江源区", "Value": "220605" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788826631, "Key": "吉林省白山市抚松县", "Value": "220621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788826632, "Key": "吉林省白山市靖宇县", "Value": "220622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788826633, "Key": "吉林省白山市长白朝鲜族自治县", "Value": "220623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788826634, "Key": "吉林省白山市临江市", "Value": "220681" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788826635, "Key": "吉林省松原市", "Value": "220700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788826636, "Key": "吉林省松原市宁江区", "Value": "220702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788826637, "Key": "吉林省松原市前郭尔罗斯蒙古族自治县", "Value": "220721" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788826638, "Key": "吉林省松原市长岭县", "Value": "220722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788826639, "Key": "吉林省松原市乾安县", "Value": "220723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788826640, "Key": "吉林省松原市扶余市", "Value": "220781" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788826641, "Key": "吉林省白城市", "Value": "220800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788830725, "Key": "吉林省白城市洮北区", "Value": "220802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788830726, "Key": "吉林省白城市镇赉县", "Value": "220821" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788830727, "Key": "吉林省白城市通榆县", "Value": "220822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788830728, "Key": "吉林省白城市洮南市", "Value": "220881" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788830729, "Key": "吉林省白城市大安市", "Value": "220882" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788830730, "Key": "吉林省延边朝鲜族自治州", "Value": "222400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788830731, "Key": "吉林省延边朝鲜族自治州延吉市", "Value": "222401" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788830732, "Key": "吉林省延边朝鲜族自治州图们市", "Value": "222402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788830733, "Key": "吉林省延边朝鲜族自治州敦化市", "Value": "222403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788830734, "Key": "吉林省延边朝鲜族自治州珲春市", "Value": "222404" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788830735, "Key": "吉林省延边朝鲜族自治州龙井市", "Value": "222405" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788830736, "Key": "吉林省延边朝鲜族自治州和龙市", "Value": "222406" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788830737, "Key": "吉林省延边朝鲜族自治州汪清县", "Value": "222424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788834821, "Key": "吉林省延边朝鲜族自治州安图县", "Value": "222426" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788834822, "Key": "黑龙江省", "Value": "230000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788834823, "Key": "黑龙江省哈尔滨市", "Value": "230100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788834824, "Key": "黑龙江省哈尔滨市道里区", "Value": "230102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788834825, "Key": "黑龙江省哈尔滨市南岗区", "Value": "230103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788834826, "Key": "黑龙江省哈尔滨市道外区", "Value": "230104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788834827, "Key": "黑龙江省哈尔滨市平房区", "Value": "230108" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788834828, "Key": "黑龙江省哈尔滨市松北区", "Value": "230109" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788834829, "Key": "黑龙江省哈尔滨市香坊区", "Value": "230110" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788834830, "Key": "黑龙江省哈尔滨市呼兰区", "Value": "230111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788834831, "Key": "黑龙江省哈尔滨市阿城区", "Value": "230112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788834832, "Key": "黑龙江省哈尔滨市双城区", "Value": "230113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788838917, "Key": "黑龙江省哈尔滨市依兰县", "Value": "230123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788838918, "Key": "黑龙江省哈尔滨市方正县", "Value": "230124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788838919, "Key": "黑龙江省哈尔滨市宾县", "Value": "230125" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788838920, "Key": "黑龙江省哈尔滨市巴彦县", "Value": "230126" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788838921, "Key": "黑龙江省哈尔滨市木兰县", "Value": "230127" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788838922, "Key": "黑龙江省哈尔滨市通河县", "Value": "230128" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788838923, "Key": "黑龙江省哈尔滨市延寿县", "Value": "230129" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788838924, "Key": "黑龙江省哈尔滨市尚志市", "Value": "230183" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788838925, "Key": "黑龙江省哈尔滨市五常市", "Value": "230184" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788838926, "Key": "黑龙江省齐齐哈尔市", "Value": "230200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788838927, "Key": "黑龙江省齐齐哈尔市龙沙区", "Value": "230202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788838928, "Key": "黑龙江省齐齐哈尔市建华区", "Value": "230203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788843013, "Key": "黑龙江省齐齐哈尔市铁锋区", "Value": "230204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788843014, "Key": "黑龙江省齐齐哈尔市昂昂溪区", "Value": "230205" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788843015, "Key": "黑龙江省齐齐哈尔市富拉尔基区", "Value": "230206" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788843016, "Key": "黑龙江省齐齐哈尔市碾子山区", "Value": "230207" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788843017, "Key": "黑龙江省齐齐哈尔市梅里斯达斡尔族区", "Value": "230208" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788843018, "Key": "黑龙江省齐齐哈尔市龙江县", "Value": "230221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788843019, "Key": "黑龙江省齐齐哈尔市依安县", "Value": "230223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788843020, "Key": "黑龙江省齐齐哈尔市泰来县", "Value": "230224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788843021, "Key": "黑龙江省齐齐哈尔市甘南县", "Value": "230225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788843022, "Key": "黑龙江省齐齐哈尔市富裕县", "Value": "230227" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788843023, "Key": "黑龙江省齐齐哈尔市克山县", "Value": "230229" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788843024, "Key": "黑龙江省齐齐哈尔市克东县", "Value": "230230" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788843025, "Key": "黑龙江省齐齐哈尔市拜泉县", "Value": "230231" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788847109, "Key": "黑龙江省齐齐哈尔市讷河市", "Value": "230281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788847110, "Key": "黑龙江省鸡西市", "Value": "230300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788847111, "Key": "黑龙江省鸡西市鸡冠区", "Value": "230302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788847112, "Key": "黑龙江省鸡西市恒山区", "Value": "230303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788847113, "Key": "黑龙江省鸡西市滴道区", "Value": "230304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788847114, "Key": "黑龙江省鸡西市梨树区", "Value": "230305" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788847115, "Key": "黑龙江省鸡西市城子河区", "Value": "230306" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788847116, "Key": "黑龙江省鸡西市麻山区", "Value": "230307" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788847117, "Key": "黑龙江省鸡西市鸡东县", "Value": "230321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788847118, "Key": "黑龙江省鸡西市虎林市", "Value": "230381" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788847119, "Key": "黑龙江省鸡西市密山市", "Value": "230382" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788847120, "Key": "黑龙江省鹤岗市", "Value": "230400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788847121, "Key": "黑龙江省鹤岗市向阳区", "Value": "230402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788851205, "Key": "黑龙江省鹤岗市工农区", "Value": "230403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788851206, "Key": "黑龙江省鹤岗市南山区", "Value": "230404" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788851207, "Key": "黑龙江省鹤岗市兴安区", "Value": "230405" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788851208, "Key": "黑龙江省鹤岗市东山区", "Value": "230406" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788851209, "Key": "黑龙江省鹤岗市兴山区", "Value": "230407" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788851210, "Key": "黑龙江省鹤岗市萝北县", "Value": "230421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788851211, "Key": "黑龙江省鹤岗市绥滨县", "Value": "230422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788851212, "Key": "黑龙江省双鸭山市", "Value": "230500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788851213, "Key": "黑龙江省双鸭山市尖山区", "Value": "230502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788851214, "Key": "黑龙江省双鸭山市岭东区", "Value": "230503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788851215, "Key": "黑龙江省双鸭山市四方台区", "Value": "230505" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788851216, "Key": "黑龙江省双鸭山市宝山区", "Value": "230506" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788855301, "Key": "黑龙江省双鸭山市集贤县", "Value": "230521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788855302, "Key": "黑龙江省双鸭山市友谊县", "Value": "230522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788855303, "Key": "黑龙江省双鸭山市宝清县", "Value": "230523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788855304, "Key": "黑龙江省双鸭山市饶河县", "Value": "230524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788855305, "Key": "黑龙江省大庆市", "Value": "230600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788855306, "Key": "黑龙江省大庆市萨尔图区", "Value": "230602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788855307, "Key": "黑龙江省大庆市龙凤区", "Value": "230603" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788855308, "Key": "黑龙江省大庆市让胡路区", "Value": "230604" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788855309, "Key": "黑龙江省大庆市红岗区", "Value": "230605" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788855310, "Key": "黑龙江省大庆市大同区", "Value": "230606" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788855311, "Key": "黑龙江省大庆市肇州县", "Value": "230621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788855312, "Key": "黑龙江省大庆市肇源县", "Value": "230622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788855313, "Key": "黑龙江省大庆市林甸县", "Value": "230623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788859397, "Key": "黑龙江省大庆市杜尔伯特蒙古族自治县", "Value": "230624" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788859398, "Key": "黑龙江省伊春市", "Value": "230700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788859399, "Key": "黑龙江省伊春市伊美区", "Value": "230717" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788859400, "Key": "黑龙江省伊春市乌翠区", "Value": "230718" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788859401, "Key": "黑龙江省伊春市友好区", "Value": "230719" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788859402, "Key": "黑龙江省伊春市嘉荫县", "Value": "230722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788859403, "Key": "黑龙江省伊春市汤旺县", "Value": "230723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788859404, "Key": "黑龙江省伊春市丰林县", "Value": "230724" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788859405, "Key": "黑龙江省伊春市大箐山县", "Value": "230725" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788859406, "Key": "黑龙江省伊春市南岔县", "Value": "230726" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788859407, "Key": "黑龙江省伊春市金林区", "Value": "230751" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788859408, "Key": "黑龙江省伊春市铁力市", "Value": "230781" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788859409, "Key": "黑龙江省佳木斯市", "Value": "230800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788863493, "Key": "黑龙江省佳木斯市向阳区", "Value": "230803" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788863494, "Key": "黑龙江省佳木斯市前进区", "Value": "230804" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788863495, "Key": "黑龙江省佳木斯市东风区", "Value": "230805" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788863496, "Key": "黑龙江省佳木斯市郊区", "Value": "230811" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788863497, "Key": "黑龙江省佳木斯市桦南县", "Value": "230822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788863498, "Key": "黑龙江省佳木斯市桦川县", "Value": "230826" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788863499, "Key": "黑龙江省佳木斯市汤原县", "Value": "230828" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788863500, "Key": "黑龙江省佳木斯市同江市", "Value": "230881" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788863501, "Key": "黑龙江省佳木斯市富锦市", "Value": "230882" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788863502, "Key": "黑龙江省佳木斯市抚远市", "Value": "230883" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788863503, "Key": "黑龙江省七台河市", "Value": "230900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788863504, "Key": "黑龙江省七台河市新兴区", "Value": "230902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788867589, "Key": "黑龙江省七台河市桃山区", "Value": "230903" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788867590, "Key": "黑龙江省七台河市茄子河区", "Value": "230904" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788867591, "Key": "黑龙江省七台河市勃利县", "Value": "230921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788867592, "Key": "黑龙江省牡丹江市", "Value": "231000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788867593, "Key": "黑龙江省牡丹江市东安区", "Value": "231002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788867594, "Key": "黑龙江省牡丹江市阳明区", "Value": "231003" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788867595, "Key": "黑龙江省牡丹江市爱民区", "Value": "231004" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788867596, "Key": "黑龙江省牡丹江市西安区", "Value": "231005" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788867597, "Key": "黑龙江省牡丹江市林口县", "Value": "231025" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788867598, "Key": "黑龙江省牡丹江市绥芬河市", "Value": "231081" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788867599, "Key": "黑龙江省牡丹江市海林市", "Value": "231083" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788867600, "Key": "黑龙江省牡丹江市宁安市", "Value": "231084" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788871685, "Key": "黑龙江省牡丹江市穆棱市", "Value": "231085" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788871686, "Key": "黑龙江省牡丹江市东宁市", "Value": "231086" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788871687, "Key": "黑龙江省黑河市", "Value": "231100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788871688, "Key": "黑龙江省黑河市爱辉区", "Value": "231102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788871689, "Key": "黑龙江省黑河市逊克县", "Value": "231123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788871690, "Key": "黑龙江省黑河市孙吴县", "Value": "231124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788871691, "Key": "黑龙江省黑河市北安市", "Value": "231181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788871692, "Key": "黑龙江省黑河市五大连池市", "Value": "231182" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788871693, "Key": "黑龙江省黑河市嫩江市", "Value": "231183" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788871694, "Key": "黑龙江省绥化市", "Value": "231200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788871695, "Key": "黑龙江省绥化市北林区", "Value": "231202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788871696, "Key": "黑龙江省绥化市望奎县", "Value": "231221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788871697, "Key": "黑龙江省绥化市兰西县", "Value": "231222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788875781, "Key": "黑龙江省绥化市青冈县", "Value": "231223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788875782, "Key": "黑龙江省绥化市庆安县", "Value": "231224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788875783, "Key": "黑龙江省绥化市明水县", "Value": "231225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788875784, "Key": "黑龙江省绥化市绥棱县", "Value": "231226" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788875785, "Key": "黑龙江省绥化市安达市", "Value": "231281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788875786, "Key": "黑龙江省绥化市肇东市", "Value": "231282" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788875787, "Key": "黑龙江省绥化市海伦市", "Value": "231283" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788875788, "Key": "黑龙江省大兴安岭地区", "Value": "232700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788875789, "Key": "黑龙江省大兴安岭地区漠河市", "Value": "232701" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788875790, "Key": "黑龙江省大兴安岭地区呼玛县", "Value": "232721" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788875791, "Key": "黑龙江省大兴安岭地区塔河县", "Value": "232722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788875792, "Key": "上海市", "Value": "310000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788879877, "Key": "上海市黄浦区", "Value": "310101" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788879878, "Key": "上海市徐汇区", "Value": "310104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788879879, "Key": "上海市长宁区", "Value": "310105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788879880, "Key": "上海市静安区", "Value": "310106" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788879881, "Key": "上海市普陀区", "Value": "310107" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788879882, "Key": "上海市虹口区", "Value": "310109" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788879883, "Key": "上海市杨浦区", "Value": "310110" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788879884, "Key": "上海市闵行区", "Value": "310112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788879885, "Key": "上海市宝山区", "Value": "310113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788879886, "Key": "上海市嘉定区", "Value": "310114" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788879887, "Key": "上海市浦东新区", "Value": "310115" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788879888, "Key": "上海市金山区", "Value": "310116" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788879889, "Key": "上海市松江区", "Value": "310117" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788883973, "Key": "上海市青浦区", "Value": "310118" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788883974, "Key": "上海市奉贤区", "Value": "310120" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788883975, "Key": "上海市崇明区", "Value": "310151" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788883976, "Key": "江苏省", "Value": "320000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788883977, "Key": "江苏省南京市", "Value": "320100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788883978, "Key": "江苏省南京市玄武区", "Value": "320102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788883979, "Key": "江苏省南京市秦淮区", "Value": "320104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788883980, "Key": "江苏省南京市建邺区", "Value": "320105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788883981, "Key": "江苏省南京市鼓楼区", "Value": "320106" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788883982, "Key": "江苏省南京市浦口区", "Value": "320111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788883983, "Key": "江苏省南京市栖霞区", "Value": "320113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788883984, "Key": "江苏省南京市雨花台区", "Value": "320114" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788888069, "Key": "江苏省南京市江宁区", "Value": "320115" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788888070, "Key": "江苏省南京市六合区", "Value": "320116" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788888071, "Key": "江苏省南京市溧水区", "Value": "320117" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788888072, "Key": "江苏省南京市高淳区", "Value": "320118" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788888073, "Key": "江苏省无锡市", "Value": "320200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788888074, "Key": "江苏省无锡市锡山区", "Value": "320205" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788888075, "Key": "江苏省无锡市惠山区", "Value": "320206" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788888076, "Key": "江苏省无锡市滨湖区", "Value": "320211" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788888077, "Key": "江苏省无锡市梁溪区", "Value": "320213" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788888078, "Key": "江苏省无锡市新吴区", "Value": "320214" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788888079, "Key": "江苏省无锡市江阴市", "Value": "320281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788888080, "Key": "江苏省无锡市宜兴市", "Value": "320282" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788892165, "Key": "江苏省徐州市", "Value": "320300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788892166, "Key": "江苏省徐州市鼓楼区", "Value": "320302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788892167, "Key": "江苏省徐州市云龙区", "Value": "320303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788892168, "Key": "江苏省徐州市贾汪区", "Value": "320305" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788892169, "Key": "江苏省徐州市泉山区", "Value": "320311" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788892170, "Key": "江苏省徐州市铜山区", "Value": "320312" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788892171, "Key": "江苏省徐州市丰县", "Value": "320321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788892172, "Key": "江苏省徐州市沛县", "Value": "320322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788892173, "Key": "江苏省徐州市睢宁县", "Value": "320324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788892174, "Key": "江苏省徐州市新沂市", "Value": "320381" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788892175, "Key": "江苏省徐州市邳州市", "Value": "320382" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788892176, "Key": "江苏省常州市", "Value": "320400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788896261, "Key": "江苏省常州市天宁区", "Value": "320402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788896262, "Key": "江苏省常州市钟楼区", "Value": "320404" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788896263, "Key": "江苏省常州市新北区", "Value": "320411" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788896264, "Key": "江苏省常州市武进区", "Value": "320412" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788896265, "Key": "江苏省常州市金坛区", "Value": "320413" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788896266, "Key": "江苏省常州市溧阳市", "Value": "320481" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788896267, "Key": "江苏省苏州市", "Value": "320500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788896268, "Key": "江苏省苏州市虎丘区", "Value": "320505" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788896269, "Key": "江苏省苏州市吴中区", "Value": "320506" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788896270, "Key": "江苏省苏州市相城区", "Value": "320507" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788896271, "Key": "江苏省苏州市姑苏区", "Value": "320508" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788896272, "Key": "江苏省苏州市吴江区", "Value": "320509" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788896273, "Key": "江苏省苏州市常熟市", "Value": "320581" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788900357, "Key": "江苏省苏州市张家港市", "Value": "320582" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788900358, "Key": "江苏省苏州市昆山市", "Value": "320583" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788900359, "Key": "江苏省苏州市太仓市", "Value": "320585" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788900360, "Key": "江苏省南通市", "Value": "320600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788900361, "Key": "江苏省南通市通州区", "Value": "320612" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788900362, "Key": "江苏省南通市崇川区", "Value": "320613" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788900363, "Key": "江苏省南通市海门区", "Value": "320614" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788900364, "Key": "江苏省南通市如东县", "Value": "320623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788900365, "Key": "江苏省南通市启东市", "Value": "320681" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788900366, "Key": "江苏省南通市如皋市", "Value": "320682" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788900367, "Key": "江苏省南通市海安市", "Value": "320685" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788900368, "Key": "江苏省连云港市", "Value": "320700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788904453, "Key": "江苏省连云港市连云区", "Value": "320703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788904454, "Key": "江苏省连云港市海州区", "Value": "320706" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788904455, "Key": "江苏省连云港市赣榆区", "Value": "320707" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788904456, "Key": "江苏省连云港市东海县", "Value": "320722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788904457, "Key": "江苏省连云港市灌云县", "Value": "320723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788904458, "Key": "江苏省连云港市灌南县", "Value": "320724" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788904459, "Key": "江苏省淮安市", "Value": "320800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788904460, "Key": "江苏省淮安市淮安区", "Value": "320803" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788904461, "Key": "江苏省淮安市淮阴区", "Value": "320804" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788904462, "Key": "江苏省淮安市清江浦区", "Value": "320812" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788904463, "Key": "江苏省淮安市洪泽区", "Value": "320813" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788904464, "Key": "江苏省淮安市涟水县", "Value": "320826" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788908549, "Key": "江苏省淮安市盱眙县", "Value": "320830" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788908550, "Key": "江苏省淮安市金湖县", "Value": "320831" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788908551, "Key": "江苏省盐城市", "Value": "320900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788908552, "Key": "江苏省盐城市亭湖区", "Value": "320902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788908553, "Key": "江苏省盐城市盐都区", "Value": "320903" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788908554, "Key": "江苏省盐城市大丰区", "Value": "320904" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788908555, "Key": "江苏省盐城市响水县", "Value": "320921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788908556, "Key": "江苏省盐城市滨海县", "Value": "320922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788908557, "Key": "江苏省盐城市阜宁县", "Value": "320923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788908558, "Key": "江苏省盐城市射阳县", "Value": "320924" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788908559, "Key": "江苏省盐城市建湖县", "Value": "320925" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788908560, "Key": "江苏省盐城市东台市", "Value": "320981" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788912645, "Key": "江苏省扬州市", "Value": "321000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788912646, "Key": "江苏省扬州市广陵区", "Value": "321002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788912647, "Key": "江苏省扬州市邗江区", "Value": "321003" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788912648, "Key": "江苏省扬州市江都区", "Value": "321012" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788912649, "Key": "江苏省扬州市宝应县", "Value": "321023" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788912650, "Key": "江苏省扬州市仪征市", "Value": "321081" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788912651, "Key": "江苏省扬州市高邮市", "Value": "321084" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788912652, "Key": "江苏省镇江市", "Value": "321100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788912653, "Key": "江苏省镇江市京口区", "Value": "321102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788912654, "Key": "江苏省镇江市润州区", "Value": "321111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788912655, "Key": "江苏省镇江市丹徒区", "Value": "321112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788912656, "Key": "江苏省镇江市丹阳市", "Value": "321181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788916741, "Key": "江苏省镇江市扬中市", "Value": "321182" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788916742, "Key": "江苏省镇江市句容市", "Value": "321183" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788916743, "Key": "江苏省泰州市", "Value": "321200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788916744, "Key": "江苏省泰州市海陵区", "Value": "321202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788916745, "Key": "江苏省泰州市高港区", "Value": "321203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788916746, "Key": "江苏省泰州市姜堰区", "Value": "321204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788916747, "Key": "江苏省泰州市兴化市", "Value": "321281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788916748, "Key": "江苏省泰州市靖江市", "Value": "321282" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788916749, "Key": "江苏省泰州市泰兴市", "Value": "321283" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788916750, "Key": "江苏省宿迁市", "Value": "321300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788916751, "Key": "江苏省宿迁市宿城区", "Value": "321302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788916752, "Key": "江苏省宿迁市宿豫区", "Value": "321311" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788916753, "Key": "江苏省宿迁市沭阳县", "Value": "321322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788920837, "Key": "江苏省宿迁市泗阳县", "Value": "321323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788920838, "Key": "江苏省宿迁市泗洪县", "Value": "321324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788920839, "Key": "浙江省", "Value": "330000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788920840, "Key": "浙江省杭州市", "Value": "330100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788920841, "Key": "浙江省杭州市上城区", "Value": "330102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788920842, "Key": "浙江省杭州市拱墅区", "Value": "330105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788920843, "Key": "浙江省杭州市西湖区", "Value": "330106" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788920844, "Key": "浙江省杭州市滨江区", "Value": "330108" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788920845, "Key": "浙江省杭州市萧山区", "Value": "330109" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788920846, "Key": "浙江省杭州市余杭区", "Value": "330110" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788920847, "Key": "浙江省杭州市富阳区", "Value": "330111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788920848, "Key": "浙江省杭州市临安区", "Value": "330112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788924933, "Key": "浙江省杭州市临平区", "Value": "330113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788924934, "Key": "浙江省杭州市钱塘区", "Value": "330114" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788924935, "Key": "浙江省杭州市桐庐县", "Value": "330122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788924936, "Key": "浙江省杭州市淳安县", "Value": "330127" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788924937, "Key": "浙江省杭州市建德市", "Value": "330182" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788924938, "Key": "浙江省宁波市", "Value": "330200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788924939, "Key": "浙江省宁波市海曙区", "Value": "330203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788924940, "Key": "浙江省宁波市江北区", "Value": "330205" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788924941, "Key": "浙江省宁波市北仑区", "Value": "330206" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788924942, "Key": "浙江省宁波市镇海区", "Value": "330211" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788924943, "Key": "浙江省宁波市鄞州区", "Value": "330212" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788924944, "Key": "浙江省宁波市奉化区", "Value": "330213" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788929029, "Key": "浙江省宁波市象山县", "Value": "330225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788929030, "Key": "浙江省宁波市宁海县", "Value": "330226" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788929031, "Key": "浙江省宁波市余姚市", "Value": "330281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788929032, "Key": "浙江省宁波市慈溪市", "Value": "330282" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788929033, "Key": "浙江省温州市", "Value": "330300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788929034, "Key": "浙江省温州市鹿城区", "Value": "330302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788929035, "Key": "浙江省温州市龙湾区", "Value": "330303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788929036, "Key": "浙江省温州市瓯海区", "Value": "330304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788929037, "Key": "浙江省温州市洞头区", "Value": "330305" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788929038, "Key": "浙江省温州市永嘉县", "Value": "330324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788929039, "Key": "浙江省温州市平阳县", "Value": "330326" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788929040, "Key": "浙江省温州市苍南县", "Value": "330327" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788933125, "Key": "浙江省温州市文成县", "Value": "330328" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788933126, "Key": "浙江省温州市泰顺县", "Value": "330329" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788933127, "Key": "浙江省温州市瑞安市", "Value": "330381" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788933128, "Key": "浙江省温州市乐清市", "Value": "330382" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788933129, "Key": "浙江省温州市龙港市", "Value": "330383" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788933130, "Key": "浙江省嘉兴市", "Value": "330400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788933131, "Key": "浙江省嘉兴市南湖区", "Value": "330402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788933132, "Key": "浙江省嘉兴市秀洲区", "Value": "330411" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788933133, "Key": "浙江省嘉兴市嘉善县", "Value": "330421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788933134, "Key": "浙江省嘉兴市海盐县", "Value": "330424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788933135, "Key": "浙江省嘉兴市海宁市", "Value": "330481" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788933136, "Key": "浙江省嘉兴市平湖市", "Value": "330482" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788933137, "Key": "浙江省嘉兴市桐乡市", "Value": "330483" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788937221, "Key": "浙江省湖州市", "Value": "330500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788937222, "Key": "浙江省湖州市吴兴区", "Value": "330502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788937223, "Key": "浙江省湖州市南浔区", "Value": "330503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788937224, "Key": "浙江省湖州市德清县", "Value": "330521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788937225, "Key": "浙江省湖州市长兴县", "Value": "330522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788937226, "Key": "浙江省湖州市安吉县", "Value": "330523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788937227, "Key": "浙江省绍兴市", "Value": "330600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788937228, "Key": "浙江省绍兴市越城区", "Value": "330602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788937229, "Key": "浙江省绍兴市柯桥区", "Value": "330603" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788937230, "Key": "浙江省绍兴市上虞区", "Value": "330604" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788937231, "Key": "浙江省绍兴市新昌县", "Value": "330624" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788937232, "Key": "浙江省绍兴市诸暨市", "Value": "330681" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788941317, "Key": "浙江省绍兴市嵊州市", "Value": "330683" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788941318, "Key": "浙江省金华市", "Value": "330700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788941319, "Key": "浙江省金华市婺城区", "Value": "330702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788941320, "Key": "浙江省金华市金东区", "Value": "330703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788941321, "Key": "浙江省金华市武义县", "Value": "330723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788941322, "Key": "浙江省金华市浦江县", "Value": "330726" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788941323, "Key": "浙江省金华市磐安县", "Value": "330727" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788941324, "Key": "浙江省金华市兰溪市", "Value": "330781" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788941325, "Key": "浙江省金华市义乌市", "Value": "330782" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788941326, "Key": "浙江省金华市东阳市", "Value": "330783" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788941327, "Key": "浙江省金华市永康市", "Value": "330784" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788941328, "Key": "浙江省衢州市", "Value": "330800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788941329, "Key": "浙江省衢州市柯城区", "Value": "330802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788945413, "Key": "浙江省衢州市衢江区", "Value": "330803" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788945414, "Key": "浙江省衢州市常山县", "Value": "330822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788945415, "Key": "浙江省衢州市开化县", "Value": "330824" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788945416, "Key": "浙江省衢州市龙游县", "Value": "330825" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788945417, "Key": "浙江省衢州市江山市", "Value": "330881" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788945418, "Key": "浙江省舟山市", "Value": "330900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788945419, "Key": "浙江省舟山市定海区", "Value": "330902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788945420, "Key": "浙江省舟山市普陀区", "Value": "330903" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788945421, "Key": "浙江省舟山市岱山县", "Value": "330921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788945422, "Key": "浙江省舟山市嵊泗县", "Value": "330922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788945423, "Key": "浙江省台州市", "Value": "331000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788949509, "Key": "浙江省台州市椒江区", "Value": "331002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788949510, "Key": "浙江省台州市黄岩区", "Value": "331003" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788949511, "Key": "浙江省台州市路桥区", "Value": "331004" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788949512, "Key": "浙江省台州市三门县", "Value": "331022" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788949513, "Key": "浙江省台州市天台县", "Value": "331023" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788949514, "Key": "浙江省台州市仙居县", "Value": "331024" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788949515, "Key": "浙江省台州市温岭市", "Value": "331081" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788949516, "Key": "浙江省台州市临海市", "Value": "331082" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788949517, "Key": "浙江省台州市玉环市", "Value": "331083" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788949518, "Key": "浙江省丽水市", "Value": "331100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788969989, "Key": "浙江省丽水市莲都区", "Value": "331102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788978181, "Key": "浙江省丽水市青田县", "Value": "331121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788978182, "Key": "浙江省丽水市缙云县", "Value": "331122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788978183, "Key": "浙江省丽水市遂昌县", "Value": "331123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788978184, "Key": "浙江省丽水市松阳县", "Value": "331124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788978185, "Key": "浙江省丽水市云和县", "Value": "331125" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788978186, "Key": "浙江省丽水市庆元县", "Value": "331126" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788978187, "Key": "浙江省丽水市景宁畲族自治县", "Value": "331127" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788978188, "Key": "浙江省丽水市龙泉市", "Value": "331181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788982277, "Key": "安徽省", "Value": "340000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788982278, "Key": "安徽省合肥市", "Value": "340100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788982279, "Key": "安徽省合肥市瑶海区", "Value": "340102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788982280, "Key": "安徽省合肥市庐阳区", "Value": "340103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788982281, "Key": "安徽省合肥市蜀山区", "Value": "340104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788982282, "Key": "安徽省合肥市包河区", "Value": "340111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788982283, "Key": "安徽省合肥市长丰县", "Value": "340121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788982284, "Key": "安徽省合肥市肥东县", "Value": "340122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788982285, "Key": "安徽省合肥市肥西县", "Value": "340123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788982286, "Key": "安徽省合肥市庐江县", "Value": "340124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788982287, "Key": "安徽省合肥市巢湖市", "Value": "340181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788986373, "Key": "安徽省芜湖市", "Value": "340200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788986374, "Key": "安徽省芜湖市镜湖区", "Value": "340202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788986375, "Key": "安徽省芜湖市鸠江区", "Value": "340207" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788986376, "Key": "安徽省芜湖市弋江区", "Value": "340209" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788986377, "Key": "安徽省芜湖市湾沚区", "Value": "340210" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788986378, "Key": "安徽省芜湖市繁昌区", "Value": "340212" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788986379, "Key": "安徽省芜湖市南陵县", "Value": "340223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788986380, "Key": "安徽省芜湖市无为市", "Value": "340281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788986381, "Key": "安徽省蚌埠市", "Value": "340300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788986382, "Key": "安徽省蚌埠市龙子湖区", "Value": "340302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788986383, "Key": "安徽省蚌埠市蚌山区", "Value": "340303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788990469, "Key": "安徽省蚌埠市禹会区", "Value": "340304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788990470, "Key": "安徽省蚌埠市淮上区", "Value": "340311" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788990471, "Key": "安徽省蚌埠市怀远县", "Value": "340321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788990472, "Key": "安徽省蚌埠市五河县", "Value": "340322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788990473, "Key": "安徽省蚌埠市固镇县", "Value": "340323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788990474, "Key": "安徽省淮南市", "Value": "340400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788990475, "Key": "安徽省淮南市大通区", "Value": "340402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788990476, "Key": "安徽省淮南市田家庵区", "Value": "340403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788990477, "Key": "安徽省淮南市谢家集区", "Value": "340404" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788990478, "Key": "安徽省淮南市八公山区", "Value": "340405" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788990479, "Key": "安徽省淮南市潘集区", "Value": "340406" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788990480, "Key": "安徽省淮南市凤台县", "Value": "340421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788994565, "Key": "安徽省淮南市寿县", "Value": "340422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788994566, "Key": "安徽省马鞍山市", "Value": "340500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788994567, "Key": "安徽省马鞍山市花山区", "Value": "340503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788994568, "Key": "安徽省马鞍山市雨山区", "Value": "340504" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788994569, "Key": "安徽省马鞍山市博望区", "Value": "340506" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788994570, "Key": "安徽省马鞍山市当涂县", "Value": "340521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788994571, "Key": "安徽省马鞍山市含山县", "Value": "340522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788994572, "Key": "安徽省马鞍山市和县", "Value": "340523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788994573, "Key": "安徽省淮北市", "Value": "340600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788994574, "Key": "安徽省淮北市杜集区", "Value": "340602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788994575, "Key": "安徽省淮北市相山区", "Value": "340603" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788994576, "Key": "安徽省淮北市烈山区", "Value": "340604" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788994577, "Key": "安徽省淮北市濉溪县", "Value": "340621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788998661, "Key": "安徽省铜陵市", "Value": "340700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788998662, "Key": "安徽省铜陵市铜官区", "Value": "340705" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788998663, "Key": "安徽省铜陵市义安区", "Value": "340706" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788998664, "Key": "安徽省铜陵市郊区", "Value": "340711" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788998665, "Key": "安徽省铜陵市枞阳县", "Value": "340722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788998666, "Key": "安徽省安庆市", "Value": "340800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788998667, "Key": "安徽省安庆市迎江区", "Value": "340802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788998668, "Key": "安徽省安庆市大观区", "Value": "340803" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788998669, "Key": "安徽省安庆市宜秀区", "Value": "340811" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788998670, "Key": "安徽省安庆市怀宁县", "Value": "340822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788998671, "Key": "安徽省安庆市太湖县", "Value": "340825" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788998672, "Key": "安徽省安庆市宿松县", "Value": "340826" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423788998673, "Key": "安徽省安庆市望江县", "Value": "340827" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789002757, "Key": "安徽省安庆市岳西县", "Value": "340828" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789002758, "Key": "安徽省安庆市桐城市", "Value": "340881" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789002759, "Key": "安徽省安庆市潜山市", "Value": "340882" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789002760, "Key": "安徽省黄山市", "Value": "341000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789002761, "Key": "安徽省黄山市屯溪区", "Value": "341002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789002762, "Key": "安徽省黄山市黄山区", "Value": "341003" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789002763, "Key": "安徽省黄山市徽州区", "Value": "341004" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789002764, "Key": "安徽省黄山市歙县", "Value": "341021" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789002765, "Key": "安徽省黄山市休宁县", "Value": "341022" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789002766, "Key": "安徽省黄山市黟县", "Value": "341023" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789002767, "Key": "安徽省黄山市祁门县", "Value": "341024" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789002768, "Key": "安徽省滁州市", "Value": "341100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789002769, "Key": "安徽省滁州市琅琊区", "Value": "341102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789006853, "Key": "安徽省滁州市南谯区", "Value": "341103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789006854, "Key": "安徽省滁州市来安县", "Value": "341122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789006855, "Key": "安徽省滁州市全椒县", "Value": "341124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789006856, "Key": "安徽省滁州市定远县", "Value": "341125" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789006857, "Key": "安徽省滁州市凤阳县", "Value": "341126" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789006858, "Key": "安徽省滁州市天长市", "Value": "341181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789006859, "Key": "安徽省滁州市明光市", "Value": "341182" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789006860, "Key": "安徽省阜阳市", "Value": "341200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789006861, "Key": "安徽省阜阳市颍州区", "Value": "341202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789006862, "Key": "安徽省阜阳市颍东区", "Value": "341203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789006863, "Key": "安徽省阜阳市颍泉区", "Value": "341204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789006864, "Key": "安徽省阜阳市临泉县", "Value": "341221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789006865, "Key": "安徽省阜阳市太和县", "Value": "341222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789010949, "Key": "安徽省阜阳市阜南县", "Value": "341225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789010950, "Key": "安徽省阜阳市颍上县", "Value": "341226" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789010951, "Key": "安徽省阜阳市界首市", "Value": "341282" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789010952, "Key": "安徽省宿州市", "Value": "341300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789010953, "Key": "安徽省宿州市埇桥区", "Value": "341302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789010954, "Key": "安徽省宿州市砀山县", "Value": "341321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789010955, "Key": "安徽省宿州市萧县", "Value": "341322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789010956, "Key": "安徽省宿州市灵璧县", "Value": "341323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789010957, "Key": "安徽省宿州市泗县", "Value": "341324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789010958, "Key": "安徽省六安市", "Value": "341500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789010959, "Key": "安徽省六安市金安区", "Value": "341502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789010960, "Key": "安徽省六安市裕安区", "Value": "341503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789015045, "Key": "安徽省六安市叶集区", "Value": "341504" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789015046, "Key": "安徽省六安市霍邱县", "Value": "341522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789015047, "Key": "安徽省六安市舒城县", "Value": "341523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789015048, "Key": "安徽省六安市金寨县", "Value": "341524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789015049, "Key": "安徽省六安市霍山县", "Value": "341525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789015050, "Key": "安徽省亳州市", "Value": "341600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789015051, "Key": "安徽省亳州市谯城区", "Value": "341602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789015052, "Key": "安徽省亳州市涡阳县", "Value": "341621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789015053, "Key": "安徽省亳州市蒙城县", "Value": "341622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789015054, "Key": "安徽省亳州市利辛县", "Value": "341623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789015055, "Key": "安徽省池州市", "Value": "341700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789015056, "Key": "安徽省池州市贵池区", "Value": "341702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789015057, "Key": "安徽省池州市东至县", "Value": "341721" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789019141, "Key": "安徽省池州市石台县", "Value": "341722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789019142, "Key": "安徽省池州市青阳县", "Value": "341723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789019143, "Key": "安徽省宣城市", "Value": "341800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789019144, "Key": "安徽省宣城市宣州区", "Value": "341802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789019145, "Key": "安徽省宣城市郎溪县", "Value": "341821" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789019146, "Key": "安徽省宣城市泾县", "Value": "341823" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789019147, "Key": "安徽省宣城市绩溪县", "Value": "341824" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789019148, "Key": "安徽省宣城市旌德县", "Value": "341825" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789019149, "Key": "安徽省宣城市宁国市", "Value": "341881" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789019150, "Key": "安徽省宣城市广德市", "Value": "341882" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789019151, "Key": "福建省", "Value": "350000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789019152, "Key": "福建省福州市", "Value": "350100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789019153, "Key": "福建省福州市鼓楼区", "Value": "350102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789023237, "Key": "福建省福州市台江区", "Value": "350103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789023238, "Key": "福建省福州市仓山区", "Value": "350104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789023239, "Key": "福建省福州市马尾区", "Value": "350105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789023240, "Key": "福建省福州市晋安区", "Value": "350111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789023241, "Key": "福建省福州市长乐区", "Value": "350112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789023242, "Key": "福建省福州市闽侯县", "Value": "350121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789023243, "Key": "福建省福州市连江县", "Value": "350122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789023244, "Key": "福建省福州市罗源县", "Value": "350123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789023245, "Key": "福建省福州市闽清县", "Value": "350124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789023246, "Key": "福建省福州市永泰县", "Value": "350125" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789023247, "Key": "福建省福州市平潭县", "Value": "350128" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789023248, "Key": "福建省福州市福清市", "Value": "350181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789023249, "Key": "福建省厦门市", "Value": "350200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789027333, "Key": "福建省厦门市思明区", "Value": "350203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789027334, "Key": "福建省厦门市海沧区", "Value": "350205" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789027335, "Key": "福建省厦门市湖里区", "Value": "350206" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789027336, "Key": "福建省厦门市集美区", "Value": "350211" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789027337, "Key": "福建省厦门市同安区", "Value": "350212" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789027338, "Key": "福建省厦门市翔安区", "Value": "350213" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789027339, "Key": "福建省莆田市", "Value": "350300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789027340, "Key": "福建省莆田市城厢区", "Value": "350302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789027341, "Key": "福建省莆田市涵江区", "Value": "350303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789027342, "Key": "福建省莆田市荔城区", "Value": "350304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789027343, "Key": "福建省莆田市秀屿区", "Value": "350305" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789027344, "Key": "福建省莆田市仙游县", "Value": "350322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789027345, "Key": "福建省三明市", "Value": "350400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789031429, "Key": "福建省三明市三元区", "Value": "350404" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789031430, "Key": "福建省三明市沙县区", "Value": "350405" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789031431, "Key": "福建省三明市明溪县", "Value": "350421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789031432, "Key": "福建省三明市清流县", "Value": "350423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789031433, "Key": "福建省三明市宁化县", "Value": "350424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789031434, "Key": "福建省三明市大田县", "Value": "350425" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789031435, "Key": "福建省三明市尤溪县", "Value": "350426" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789031436, "Key": "福建省三明市将乐县", "Value": "350428" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789031437, "Key": "福建省三明市泰宁县", "Value": "350429" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789031438, "Key": "福建省三明市建宁县", "Value": "350430" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789031439, "Key": "福建省三明市永安市", "Value": "350481" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789031440, "Key": "福建省泉州市", "Value": "350500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789035525, "Key": "福建省泉州市鲤城区", "Value": "350502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789035526, "Key": "福建省泉州市丰泽区", "Value": "350503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789035527, "Key": "福建省泉州市洛江区", "Value": "350504" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789035528, "Key": "福建省泉州市泉港区", "Value": "350505" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789035529, "Key": "福建省泉州市惠安县", "Value": "350521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789035530, "Key": "福建省泉州市安溪县", "Value": "350524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789035531, "Key": "福建省泉州市永春县", "Value": "350525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789035532, "Key": "福建省泉州市德化县", "Value": "350526" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789035533, "Key": "福建省泉州市金门县", "Value": "350527" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789035534, "Key": "福建省泉州市石狮市", "Value": "350581" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789035535, "Key": "福建省泉州市晋江市", "Value": "350582" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789035536, "Key": "福建省泉州市南安市", "Value": "350583" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789035537, "Key": "福建省漳州市", "Value": "350600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789039621, "Key": "福建省漳州市芗城区", "Value": "350602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789039622, "Key": "福建省漳州市龙文区", "Value": "350603" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789039623, "Key": "福建省漳州市龙海区", "Value": "350604" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789039624, "Key": "福建省漳州市长泰市", "Value": "350605" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789039625, "Key": "福建省漳州市云霄县", "Value": "350622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789039626, "Key": "福建省漳州市漳浦县", "Value": "350623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789039627, "Key": "福建省漳州市诏安县", "Value": "350624" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789039628, "Key": "福建省漳州市东山县", "Value": "350626" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789039629, "Key": "福建省漳州市南靖县", "Value": "350627" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789039630, "Key": "福建省漳州市平和县", "Value": "350628" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789039631, "Key": "福建省漳州市华安县", "Value": "350629" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789039632, "Key": "福建省南平市", "Value": "350700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789039633, "Key": "福建省南平市延平区", "Value": "350702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789043717, "Key": "福建省南平市建阳区", "Value": "350703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789043718, "Key": "福建省南平市顺昌县", "Value": "350721" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789043719, "Key": "福建省南平市浦城县", "Value": "350722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789043720, "Key": "福建省南平市光泽县", "Value": "350723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789043721, "Key": "福建省南平市松溪县", "Value": "350724" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789043722, "Key": "福建省南平市政和县", "Value": "350725" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789043723, "Key": "福建省南平市邵武市", "Value": "350781" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789043724, "Key": "福建省南平市武夷山市", "Value": "350782" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789043725, "Key": "福建省南平市建瓯市", "Value": "350783" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789043726, "Key": "福建省龙岩市", "Value": "350800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789043727, "Key": "福建省龙岩市新罗区", "Value": "350802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789043728, "Key": "福建省龙岩市永定区", "Value": "350803" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789047813, "Key": "福建省龙岩市长汀县", "Value": "350821" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789047814, "Key": "福建省龙岩市上杭县", "Value": "350823" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789047815, "Key": "福建省龙岩市武平县", "Value": "350824" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789047816, "Key": "福建省龙岩市连城县", "Value": "350825" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789047817, "Key": "福建省龙岩市漳平市", "Value": "350881" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789047818, "Key": "福建省宁德市", "Value": "350900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789047819, "Key": "福建省宁德市蕉城区", "Value": "350902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789047820, "Key": "福建省宁德市霞浦县", "Value": "350921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789047821, "Key": "福建省宁德市古田县", "Value": "350922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789047822, "Key": "福建省宁德市屏南县", "Value": "350923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789047823, "Key": "福建省宁德市寿宁县", "Value": "350924" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789047824, "Key": "福建省宁德市周宁县", "Value": "350925" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789047825, "Key": "福建省宁德市柘荣县", "Value": "350926" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789051909, "Key": "福建省宁德市福安市", "Value": "350981" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789051910, "Key": "福建省宁德市福鼎市", "Value": "350982" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789051911, "Key": "江西省", "Value": "360000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789051912, "Key": "江西省南昌市", "Value": "360100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789051913, "Key": "江西省南昌市东湖区", "Value": "360102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789051914, "Key": "江西省南昌市西湖区", "Value": "360103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789051915, "Key": "江西省南昌市青云谱区", "Value": "360104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789051916, "Key": "江西省南昌市青山湖区", "Value": "360111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789051917, "Key": "江西省南昌市新建区", "Value": "360112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789051918, "Key": "江西省南昌市红谷滩区", "Value": "360113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789051919, "Key": "江西省南昌市南昌县", "Value": "360121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789051920, "Key": "江西省南昌市安义县", "Value": "360123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789051921, "Key": "江西省南昌市进贤县", "Value": "360124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789056005, "Key": "江西省景德镇市", "Value": "360200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789056006, "Key": "江西省景德镇市昌江区", "Value": "360202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789056007, "Key": "江西省景德镇市珠山区", "Value": "360203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789056008, "Key": "江西省景德镇市浮梁县", "Value": "360222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789056009, "Key": "江西省景德镇市乐平市", "Value": "360281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789056010, "Key": "江西省萍乡市", "Value": "360300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789056011, "Key": "江西省萍乡市安源区", "Value": "360302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789056012, "Key": "江西省萍乡市湘东区", "Value": "360313" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789056013, "Key": "江西省萍乡市莲花县", "Value": "360321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789056014, "Key": "江西省萍乡市上栗县", "Value": "360322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789056015, "Key": "江西省萍乡市芦溪县", "Value": "360323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789056016, "Key": "江西省九江市", "Value": "360400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789056017, "Key": "江西省九江市濂溪区", "Value": "360402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789060101, "Key": "江西省九江市浔阳区", "Value": "360403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789060102, "Key": "江西省九江市柴桑区", "Value": "360404" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789060103, "Key": "江西省九江市武宁县", "Value": "360423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789060104, "Key": "江西省九江市修水县", "Value": "360424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789060105, "Key": "江西省九江市永修县", "Value": "360425" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789060106, "Key": "江西省九江市德安县", "Value": "360426" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789060107, "Key": "江西省九江市都昌县", "Value": "360428" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789060108, "Key": "江西省九江市湖口县", "Value": "360429" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789060109, "Key": "江西省九江市彭泽县", "Value": "360430" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789060110, "Key": "江西省九江市瑞昌市", "Value": "360481" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789060111, "Key": "江西省九江市共青城市", "Value": "360482" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789060112, "Key": "江西省九江市庐山市", "Value": "360483" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789060113, "Key": "江西省新余市", "Value": "360500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789064197, "Key": "江西省新余市渝水区", "Value": "360502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789064198, "Key": "江西省新余市分宜县", "Value": "360521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789064199, "Key": "江西省鹰潭市", "Value": "360600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789064200, "Key": "江西省鹰潭市月湖区", "Value": "360602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789064201, "Key": "江西省鹰潭市余江区", "Value": "360603" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789064202, "Key": "江西省鹰潭市贵溪市", "Value": "360681" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789064203, "Key": "江西省赣州市", "Value": "360700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789064204, "Key": "江西省赣州市章贡区", "Value": "360702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789064205, "Key": "江西省赣州市南康区", "Value": "360703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789064206, "Key": "江西省赣州市赣县区", "Value": "360704" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789064207, "Key": "江西省赣州市信丰县", "Value": "360722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789064208, "Key": "江西省赣州市大余县", "Value": "360723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789064209, "Key": "江西省赣州市上犹县", "Value": "360724" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789068293, "Key": "江西省赣州市崇义县", "Value": "360725" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789068294, "Key": "江西省赣州市安远县", "Value": "360726" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789068295, "Key": "江西省赣州市定南县", "Value": "360728" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789068296, "Key": "江西省赣州市全南县", "Value": "360729" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789068297, "Key": "江西省赣州市宁都县", "Value": "360730" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789068298, "Key": "江西省赣州市于都县", "Value": "360731" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789068299, "Key": "江西省赣州市兴国县", "Value": "360732" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789068300, "Key": "江西省赣州市会昌县", "Value": "360733" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789068301, "Key": "江西省赣州市寻乌县", "Value": "360734" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789068302, "Key": "江西省赣州市石城县", "Value": "360735" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789068303, "Key": "江西省赣州市瑞金市", "Value": "360781" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789068304, "Key": "江西省赣州市龙南市", "Value": "360783" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789072389, "Key": "江西省吉安市", "Value": "360800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789072390, "Key": "江西省吉安市吉州区", "Value": "360802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789072391, "Key": "江西省吉安市青原区", "Value": "360803" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789072392, "Key": "江西省吉安市吉安县", "Value": "360821" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789072393, "Key": "江西省吉安市吉水县", "Value": "360822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789072394, "Key": "江西省吉安市峡江县", "Value": "360823" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789072395, "Key": "江西省吉安市新干县", "Value": "360824" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789072396, "Key": "江西省吉安市永丰县", "Value": "360825" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789072397, "Key": "江西省吉安市泰和县", "Value": "360826" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789072398, "Key": "江西省吉安市遂川县", "Value": "360827" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789072399, "Key": "江西省吉安市万安县", "Value": "360828" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789072400, "Key": "江西省吉安市安福县", "Value": "360829" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789072401, "Key": "江西省吉安市永新县", "Value": "360830" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789076485, "Key": "江西省吉安市井冈山市", "Value": "360881" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789076486, "Key": "江西省宜春市", "Value": "360900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789076487, "Key": "江西省宜春市袁州区", "Value": "360902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789076488, "Key": "江西省宜春市奉新县", "Value": "360921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789076489, "Key": "江西省宜春市万载县", "Value": "360922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789076490, "Key": "江西省宜春市上高县", "Value": "360923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789076491, "Key": "江西省宜春市宜丰县", "Value": "360924" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789076492, "Key": "江西省宜春市靖安县", "Value": "360925" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789076493, "Key": "江西省宜春市铜鼓县", "Value": "360926" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789076494, "Key": "江西省宜春市丰城市", "Value": "360981" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789076495, "Key": "江西省宜春市樟树市", "Value": "360982" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789076496, "Key": "江西省宜春市高安市", "Value": "360983" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789076497, "Key": "江西省抚州市", "Value": "361000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789080581, "Key": "江西省抚州市临川区", "Value": "361002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789080582, "Key": "江西省抚州市东乡区", "Value": "361003" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789080583, "Key": "江西省抚州市南城县", "Value": "361021" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789080584, "Key": "江西省抚州市黎川县", "Value": "361022" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789080585, "Key": "江西省抚州市南丰县", "Value": "361023" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789080586, "Key": "江西省抚州市崇仁县", "Value": "361024" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789080587, "Key": "江西省抚州市乐安县", "Value": "361025" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789080588, "Key": "江西省抚州市宜黄县", "Value": "361026" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789080589, "Key": "江西省抚州市金溪县", "Value": "361027" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789080590, "Key": "江西省抚州市资溪县", "Value": "361028" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789080591, "Key": "江西省抚州市广昌县", "Value": "361030" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789080592, "Key": "江西省上饶市", "Value": "361100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789080593, "Key": "江西省上饶市信州区", "Value": "361102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789084677, "Key": "江西省上饶市广丰区", "Value": "361103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789084678, "Key": "江西省上饶市广信区", "Value": "361104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789084679, "Key": "江西省上饶市玉山县", "Value": "361123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789084680, "Key": "江西省上饶市铅山县", "Value": "361124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789084681, "Key": "江西省上饶市横峰县", "Value": "361125" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789084682, "Key": "江西省上饶市弋阳县", "Value": "361126" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789084683, "Key": "江西省上饶市余干县", "Value": "361127" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789084684, "Key": "江西省上饶市鄱阳县", "Value": "361128" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789084685, "Key": "江西省上饶市万年县", "Value": "361129" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789084686, "Key": "江西省上饶市婺源县", "Value": "361130" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789084687, "Key": "江西省上饶市德兴市", "Value": "361181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789084688, "Key": "山东省", "Value": "370000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789084689, "Key": "山东省济南市", "Value": "370100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789088773, "Key": "山东省济南市历下区", "Value": "370102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789088774, "Key": "山东省济南市市中区", "Value": "370103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789088775, "Key": "山东省济南市槐荫区", "Value": "370104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789088776, "Key": "山东省济南市天桥区", "Value": "370105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789088777, "Key": "山东省济南市历城区", "Value": "370112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789088778, "Key": "山东省济南市长清区", "Value": "370113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789088779, "Key": "山东省济南市章丘区", "Value": "370114" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789088780, "Key": "山东省济南市济阳区", "Value": "370115" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789088781, "Key": "山东省济南市莱芜区", "Value": "370116" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789088782, "Key": "山东省济南市钢城区", "Value": "370117" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789088783, "Key": "山东省济南市平阴县", "Value": "370124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789088784, "Key": "山东省济南市商河县", "Value": "370126" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789088785, "Key": "山东省青岛市", "Value": "370200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789092869, "Key": "山东省青岛市市南区", "Value": "370202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789092870, "Key": "山东省青岛市市北区", "Value": "370203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789092871, "Key": "山东省青岛市黄岛区", "Value": "370211" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789092872, "Key": "山东省青岛市崂山区", "Value": "370212" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789092873, "Key": "山东省青岛市李沧区", "Value": "370213" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789092874, "Key": "山东省青岛市城阳区", "Value": "370214" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789092875, "Key": "山东省青岛市即墨区", "Value": "370215" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789092876, "Key": "山东省青岛市胶州市", "Value": "370281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789092877, "Key": "山东省青岛市平度市", "Value": "370283" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789092878, "Key": "山东省青岛市莱西市", "Value": "370285" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789092879, "Key": "山东省淄博市", "Value": "370300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789092880, "Key": "山东省淄博市淄川区", "Value": "370302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789092881, "Key": "山东省淄博市张店区", "Value": "370303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789096965, "Key": "山东省淄博市博山区", "Value": "370304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789096966, "Key": "山东省淄博市临淄区", "Value": "370305" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789096967, "Key": "山东省淄博市周村区", "Value": "370306" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789096968, "Key": "山东省淄博市桓台县", "Value": "370321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789096969, "Key": "山东省淄博市高青县", "Value": "370322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789096970, "Key": "山东省淄博市沂源县", "Value": "370323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789096971, "Key": "山东省枣庄市", "Value": "370400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789096972, "Key": "山东省枣庄市市中区", "Value": "370402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789096973, "Key": "山东省枣庄市薛城区", "Value": "370403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789096974, "Key": "山东省枣庄市峄城区", "Value": "370404" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789096975, "Key": "山东省枣庄市台儿庄区", "Value": "370405" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789096976, "Key": "山东省枣庄市山亭区", "Value": "370406" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789096977, "Key": "山东省枣庄市滕州市", "Value": "370481" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789101061, "Key": "山东省东营市", "Value": "370500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789101062, "Key": "山东省东营市东营区", "Value": "370502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789101063, "Key": "山东省东营市河口区", "Value": "370503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789101064, "Key": "山东省东营市垦利区", "Value": "370505" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789101065, "Key": "山东省东营市利津县", "Value": "370522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789101066, "Key": "山东省东营市广饶县", "Value": "370523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789101067, "Key": "山东省烟台市", "Value": "370600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789101068, "Key": "山东省烟台市芝罘区", "Value": "370602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789101069, "Key": "山东省烟台市福山区", "Value": "370611" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789101070, "Key": "山东省烟台市牟平区", "Value": "370612" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789101071, "Key": "山东省烟台市莱山区", "Value": "370613" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789101072, "Key": "山东省烟台市蓬莱区", "Value": "370614" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789101073, "Key": "山东省烟台市龙口市", "Value": "370681" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789105157, "Key": "山东省烟台市莱阳市", "Value": "370682" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789105158, "Key": "山东省烟台市莱州市", "Value": "370683" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789105159, "Key": "山东省烟台市招远市", "Value": "370685" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789105160, "Key": "山东省烟台市栖霞市", "Value": "370686" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789105161, "Key": "山东省烟台市海阳市", "Value": "370687" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789105162, "Key": "山东省潍坊市", "Value": "370700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789105163, "Key": "山东省潍坊市潍城区", "Value": "370702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789105164, "Key": "山东省潍坊市寒亭区", "Value": "370703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789105165, "Key": "山东省潍坊市坊子区", "Value": "370704" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789105166, "Key": "山东省潍坊市奎文区", "Value": "370705" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789105167, "Key": "山东省潍坊市临朐县", "Value": "370724" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789105168, "Key": "山东省潍坊市昌乐县", "Value": "370725" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789105169, "Key": "山东省潍坊市青州市", "Value": "370781" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789109253, "Key": "山东省潍坊市诸城市", "Value": "370782" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789109254, "Key": "山东省潍坊市寿光市", "Value": "370783" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789109255, "Key": "山东省潍坊市安丘市", "Value": "370784" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789109256, "Key": "山东省潍坊市高密市", "Value": "370785" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789109257, "Key": "山东省潍坊市昌邑市", "Value": "370786" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789109258, "Key": "山东省济宁市", "Value": "370800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789109259, "Key": "山东省济宁市任城区", "Value": "370811" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789109260, "Key": "山东省济宁市兖州区", "Value": "370812" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789109261, "Key": "山东省济宁市微山县", "Value": "370826" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789109262, "Key": "山东省济宁市鱼台县", "Value": "370827" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789109263, "Key": "山东省济宁市金乡县", "Value": "370828" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789109264, "Key": "山东省济宁市嘉祥县", "Value": "370829" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789113349, "Key": "山东省济宁市汶上县", "Value": "370830" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789113350, "Key": "山东省济宁市泗水县", "Value": "370831" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789113351, "Key": "山东省济宁市梁山县", "Value": "370832" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789113352, "Key": "山东省济宁市曲阜市", "Value": "370881" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789113353, "Key": "山东省济宁市邹城市", "Value": "370883" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789113354, "Key": "山东省泰安市", "Value": "370900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789113355, "Key": "山东省泰安市泰山区", "Value": "370902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789113356, "Key": "山东省泰安市岱岳区", "Value": "370911" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789113357, "Key": "山东省泰安市宁阳县", "Value": "370921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789117445, "Key": "山东省泰安市东平县", "Value": "370923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789117446, "Key": "山东省泰安市新泰市", "Value": "370982" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789117447, "Key": "山东省泰安市肥城市", "Value": "370983" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789117448, "Key": "山东省威海市", "Value": "371000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789117449, "Key": "山东省威海市环翠区", "Value": "371002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789117450, "Key": "山东省威海市文登区", "Value": "371003" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789117451, "Key": "山东省威海市荣成市", "Value": "371082" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789117452, "Key": "山东省威海市乳山市", "Value": "371083" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789117453, "Key": "山东省日照市", "Value": "371100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789117454, "Key": "山东省日照市东港区", "Value": "371102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789117455, "Key": "山东省日照市岚山区", "Value": "371103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789117456, "Key": "山东省日照市五莲县", "Value": "371121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789121541, "Key": "山东省日照市莒县", "Value": "371122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789121542, "Key": "山东省临沂市", "Value": "371300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789121543, "Key": "山东省临沂市兰山区", "Value": "371302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789121544, "Key": "山东省临沂市罗庄区", "Value": "371311" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789121545, "Key": "山东省临沂市河东区", "Value": "371312" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789121546, "Key": "山东省临沂市沂南县", "Value": "371321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789121547, "Key": "山东省临沂市郯城县", "Value": "371322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789121548, "Key": "山东省临沂市沂水县", "Value": "371323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789121549, "Key": "山东省临沂市兰陵县", "Value": "371324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789125637, "Key": "山东省临沂市费县", "Value": "371325" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789125638, "Key": "山东省临沂市平邑县", "Value": "371326" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789125639, "Key": "山东省临沂市莒南县", "Value": "371327" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789125640, "Key": "山东省临沂市蒙阴县", "Value": "371328" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789125641, "Key": "山东省临沂市临沭县", "Value": "371329" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789125642, "Key": "山东省德州市", "Value": "371400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789125643, "Key": "山东省德州市德城区", "Value": "371402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789125644, "Key": "山东省德州市陵城区", "Value": "371403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789125645, "Key": "山东省德州市宁津县", "Value": "371422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789125646, "Key": "山东省德州市庆云县", "Value": "371423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789129733, "Key": "山东省德州市临邑县", "Value": "371424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789129734, "Key": "山东省德州市齐河县", "Value": "371425" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789129735, "Key": "山东省德州市平原县", "Value": "371426" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789129736, "Key": "山东省德州市夏津县", "Value": "371427" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789129737, "Key": "山东省德州市武城县", "Value": "371428" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789129738, "Key": "山东省德州市乐陵市", "Value": "371481" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789129739, "Key": "山东省德州市禹城市", "Value": "371482" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789129740, "Key": "山东省聊城市", "Value": "371500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789129741, "Key": "山东省聊城市东昌府区", "Value": "371502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789129742, "Key": "山东省聊城市茌平区", "Value": "371503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789129743, "Key": "山东省聊城市阳谷县", "Value": "371521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789129744, "Key": "山东省聊城市莘县", "Value": "371522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789133829, "Key": "山东省聊城市东阿县", "Value": "371524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789133830, "Key": "山东省聊城市冠县", "Value": "371525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789133831, "Key": "山东省聊城市高唐县", "Value": "371526" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789133832, "Key": "山东省聊城市临清市", "Value": "371581" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789133833, "Key": "山东省滨州市", "Value": "371600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789133834, "Key": "山东省滨州市滨城区", "Value": "371602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789133835, "Key": "山东省滨州市沾化区", "Value": "371603" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789133836, "Key": "山东省滨州市惠民县", "Value": "371621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789133837, "Key": "山东省滨州市阳信县", "Value": "371622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789133838, "Key": "山东省滨州市无棣县", "Value": "371623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789133839, "Key": "山东省滨州市博兴县", "Value": "371625" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789137925, "Key": "山东省滨州市邹平市", "Value": "371681" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789137926, "Key": "山东省菏泽市", "Value": "371700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789137927, "Key": "山东省菏泽市牡丹区", "Value": "371702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789137928, "Key": "山东省菏泽市定陶区", "Value": "371703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789137929, "Key": "山东省菏泽市曹县", "Value": "371721" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789137930, "Key": "山东省菏泽市单县", "Value": "371722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789137931, "Key": "山东省菏泽市成武县", "Value": "371723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789137932, "Key": "山东省菏泽市巨野县", "Value": "371724" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789137933, "Key": "山东省菏泽市郓城县", "Value": "371725" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789137934, "Key": "山东省菏泽市鄄城县", "Value": "371726" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789137935, "Key": "山东省菏泽市东明县", "Value": "371728" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789137936, "Key": "河南省", "Value": "410000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789142021, "Key": "河南省郑州市", "Value": "410100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789142022, "Key": "河南省郑州市中原区", "Value": "410102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789142023, "Key": "河南省郑州市二七区", "Value": "410103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789142024, "Key": "河南省郑州市管城回族区", "Value": "410104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789142025, "Key": "河南省郑州市金水区", "Value": "410105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789142026, "Key": "河南省郑州市上街区", "Value": "410106" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789142027, "Key": "河南省郑州市惠济区", "Value": "410108" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789142028, "Key": "河南省郑州市中牟县", "Value": "410122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789142029, "Key": "河南省郑州市巩义市", "Value": "410181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789142030, "Key": "河南省郑州市荥阳市", "Value": "410182" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789142031, "Key": "河南省郑州市新密市", "Value": "410183" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789142032, "Key": "河南省郑州市新郑市", "Value": "410184" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789142033, "Key": "河南省郑州市登封市", "Value": "410185" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789146117, "Key": "河南省开封市", "Value": "410200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789146118, "Key": "河南省开封市龙亭区", "Value": "410202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789146119, "Key": "河南省开封市顺河回族区", "Value": "410203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789146120, "Key": "河南省开封市鼓楼区", "Value": "410204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789146121, "Key": "河南省开封市禹王台区", "Value": "410205" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789146122, "Key": "河南省开封市祥符区", "Value": "410212" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789146123, "Key": "河南省开封市杞县", "Value": "410221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789146124, "Key": "河南省开封市通许县", "Value": "410222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789146125, "Key": "河南省开封市尉氏县", "Value": "410223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789146126, "Key": "河南省开封市兰考县", "Value": "410225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789146127, "Key": "河南省洛阳市", "Value": "410300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789146128, "Key": "河南省洛阳市老城区", "Value": "410302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789150213, "Key": "河南省洛阳市西工区", "Value": "410303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789150214, "Key": "河南省洛阳市瀍河回族区", "Value": "410304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789150215, "Key": "河南省洛阳市涧西区", "Value": "410305" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789150216, "Key": "河南省洛阳市偃师区", "Value": "410307" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789150217, "Key": "河南省洛阳市孟津区", "Value": "410308" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789150218, "Key": "河南省洛阳市洛龙区", "Value": "410311" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789150219, "Key": "河南省洛阳市新安县", "Value": "410323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789150220, "Key": "河南省洛阳市栾川县", "Value": "410324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789150221, "Key": "河南省洛阳市嵩县", "Value": "410325" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789150222, "Key": "河南省洛阳市汝阳县", "Value": "410326" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789150223, "Key": "河南省洛阳市宜阳县", "Value": "410327" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789150224, "Key": "河南省洛阳市洛宁县", "Value": "410328" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789154309, "Key": "河南省洛阳市伊川县", "Value": "410329" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789154310, "Key": "河南省平顶山市", "Value": "410400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789154311, "Key": "河南省平顶山市新华区", "Value": "410402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789154312, "Key": "河南省平顶山市卫东区", "Value": "410403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789154313, "Key": "河南省平顶山市石龙区", "Value": "410404" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789154314, "Key": "河南省平顶山市湛河区", "Value": "410411" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789154315, "Key": "河南省平顶山市宝丰县", "Value": "410421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789154316, "Key": "河南省平顶山市叶县", "Value": "410422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789154317, "Key": "河南省平顶山市鲁山县", "Value": "410423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789154318, "Key": "河南省平顶山市郏县", "Value": "410425" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789154319, "Key": "河南省平顶山市舞钢市", "Value": "410481" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789154320, "Key": "河南省平顶山市汝州市", "Value": "410482" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789154321, "Key": "河南省安阳市", "Value": "410500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789158405, "Key": "河南省安阳市文峰区", "Value": "410502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789158406, "Key": "河南省安阳市北关区", "Value": "410503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789158407, "Key": "河南省安阳市殷都区", "Value": "410505" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789158408, "Key": "河南省安阳市龙安区", "Value": "410506" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789158409, "Key": "河南省安阳市安阳县", "Value": "410522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789158410, "Key": "河南省安阳市汤阴县", "Value": "410523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789158411, "Key": "河南省安阳市滑县", "Value": "410526" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789158412, "Key": "河南省安阳市内黄县", "Value": "410527" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789158413, "Key": "河南省安阳市林州市", "Value": "410581" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789158414, "Key": "河南省鹤壁市", "Value": "410600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789158415, "Key": "河南省鹤壁市鹤山区", "Value": "410602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789158416, "Key": "河南省鹤壁市山城区", "Value": "410603" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789158417, "Key": "河南省鹤壁市淇滨区", "Value": "410611" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789162501, "Key": "河南省鹤壁市浚县", "Value": "410621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789162502, "Key": "河南省鹤壁市淇县", "Value": "410622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789162503, "Key": "河南省新乡市", "Value": "410700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789162504, "Key": "河南省新乡市红旗区", "Value": "410702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789162505, "Key": "河南省新乡市卫滨区", "Value": "410703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789162506, "Key": "河南省新乡市凤泉区", "Value": "410704" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789162507, "Key": "河南省新乡市牧野区", "Value": "410711" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789162508, "Key": "河南省新乡市新乡县", "Value": "410721" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789162509, "Key": "河南省新乡市获嘉县", "Value": "410724" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789162510, "Key": "河南省新乡市原阳县", "Value": "410725" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789162511, "Key": "河南省新乡市延津县", "Value": "410726" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789162512, "Key": "河南省新乡市封丘县", "Value": "410727" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789162513, "Key": "河南省新乡市卫辉市", "Value": "410781" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789166597, "Key": "河南省新乡市辉县市", "Value": "410782" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789166598, "Key": "河南省新乡市长垣市", "Value": "410783" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789166599, "Key": "河南省焦作市", "Value": "410800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789166600, "Key": "河南省焦作市解放区", "Value": "410802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789166601, "Key": "河南省焦作市中站区", "Value": "410803" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789166602, "Key": "河南省焦作市马村区", "Value": "410804" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789166603, "Key": "河南省焦作市山阳区", "Value": "410811" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789166604, "Key": "河南省焦作市修武县", "Value": "410821" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789166605, "Key": "河南省焦作市博爱县", "Value": "410822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789166606, "Key": "河南省焦作市武陟县", "Value": "410823" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789166607, "Key": "河南省焦作市温县", "Value": "410825" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789166608, "Key": "河南省焦作市沁阳市", "Value": "410882" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789166609, "Key": "河南省焦作市孟州市", "Value": "410883" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789170693, "Key": "河南省濮阳市", "Value": "410900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789170694, "Key": "河南省濮阳市华龙区", "Value": "410902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789170695, "Key": "河南省濮阳市清丰县", "Value": "410922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789170696, "Key": "河南省濮阳市南乐县", "Value": "410923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789170697, "Key": "河南省濮阳市范县", "Value": "410926" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789170698, "Key": "河南省濮阳市台前县", "Value": "410927" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789170699, "Key": "河南省濮阳市濮阳县", "Value": "410928" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789170700, "Key": "河南省许昌市", "Value": "411000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789170701, "Key": "河南省许昌市魏都区", "Value": "411002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789170702, "Key": "河南省许昌市建安区", "Value": "411003" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789170703, "Key": "河南省许昌市鄢陵县", "Value": "411024" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789170704, "Key": "河南省许昌市襄城县", "Value": "411025" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789170705, "Key": "河南省许昌市禹州市", "Value": "411081" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789174789, "Key": "河南省许昌市长葛市", "Value": "411082" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789174790, "Key": "河南省漯河市", "Value": "411100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789174791, "Key": "河南省漯河市源汇区", "Value": "411102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789174792, "Key": "河南省漯河市郾城区", "Value": "411103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789174793, "Key": "河南省漯河市召陵区", "Value": "411104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789174794, "Key": "河南省漯河市舞阳县", "Value": "411121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789174795, "Key": "河南省漯河市临颍县", "Value": "411122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789174796, "Key": "河南省三门峡市", "Value": "411200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789174797, "Key": "河南省三门峡市湖滨区", "Value": "411202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789174798, "Key": "河南省三门峡市陕州区", "Value": "411203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789174799, "Key": "河南省三门峡市渑池县", "Value": "411221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789174800, "Key": "河南省三门峡市卢氏县", "Value": "411224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789174801, "Key": "河南省三门峡市义马市", "Value": "411281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789178885, "Key": "河南省三门峡市灵宝市", "Value": "411282" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789178886, "Key": "河南省南阳市", "Value": "411300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789178887, "Key": "河南省南阳市宛城区", "Value": "411302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789178888, "Key": "河南省南阳市卧龙区", "Value": "411303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789178889, "Key": "河南省南阳市南召县", "Value": "411321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789178890, "Key": "河南省南阳市方城县", "Value": "411322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789178891, "Key": "河南省南阳市西峡县", "Value": "411323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789178892, "Key": "河南省南阳市镇平县", "Value": "411324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789178893, "Key": "河南省南阳市内乡县", "Value": "411325" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789178894, "Key": "河南省南阳市淅川县", "Value": "411326" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789178895, "Key": "河南省南阳市社旗县", "Value": "411327" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789178896, "Key": "河南省南阳市唐河县", "Value": "411328" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789178897, "Key": "河南省南阳市新野县", "Value": "411329" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789182981, "Key": "河南省南阳市桐柏县", "Value": "411330" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789182982, "Key": "河南省南阳市邓州市", "Value": "411381" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789182983, "Key": "河南省商丘市", "Value": "411400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789182984, "Key": "河南省商丘市梁园区", "Value": "411402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789182985, "Key": "河南省商丘市睢阳区", "Value": "411403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789182986, "Key": "河南省商丘市民权县", "Value": "411421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789182987, "Key": "河南省商丘市睢县", "Value": "411422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789182988, "Key": "河南省商丘市宁陵县", "Value": "411423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789182989, "Key": "河南省商丘市柘城县", "Value": "411424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789182990, "Key": "河南省商丘市虞城县", "Value": "411425" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789182991, "Key": "河南省商丘市夏邑县", "Value": "411426" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789182992, "Key": "河南省商丘市永城市", "Value": "411481" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789187077, "Key": "河南省信阳市", "Value": "411500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789187078, "Key": "河南省信阳市浉河区", "Value": "411502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789187079, "Key": "河南省信阳市平桥区", "Value": "411503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789187080, "Key": "河南省信阳市罗山县", "Value": "411521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789187081, "Key": "河南省信阳市光山县", "Value": "411522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789187082, "Key": "河南省信阳市新县", "Value": "411523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789187083, "Key": "河南省信阳市商城县", "Value": "411524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789187084, "Key": "河南省信阳市固始县", "Value": "411525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789187085, "Key": "河南省信阳市潢川县", "Value": "411526" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789187086, "Key": "河南省信阳市淮滨县", "Value": "411527" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789187087, "Key": "河南省信阳市息县", "Value": "411528" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789187088, "Key": "河南省周口市", "Value": "411600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789187089, "Key": "河南省周口市川汇区", "Value": "411602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789191173, "Key": "河南省周口市淮阳区", "Value": "411603" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789191174, "Key": "河南省周口市扶沟县", "Value": "411621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789191175, "Key": "河南省周口市西华县", "Value": "411622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789191176, "Key": "河南省周口市商水县", "Value": "411623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789191177, "Key": "河南省周口市沈丘县", "Value": "411624" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789191178, "Key": "河南省周口市郸城县", "Value": "411625" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789191179, "Key": "河南省周口市太康县", "Value": "411627" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789191180, "Key": "河南省周口市鹿邑县", "Value": "411628" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789191181, "Key": "河南省周口市项城市", "Value": "411681" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789191182, "Key": "河南省驻马店市", "Value": "411700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789191183, "Key": "河南省驻马店市驿城区", "Value": "411702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789191184, "Key": "河南省驻马店市西平县", "Value": "411721" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789191185, "Key": "河南省驻马店市上蔡县", "Value": "411722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789195269, "Key": "河南省驻马店市平舆县", "Value": "411723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789195270, "Key": "河南省驻马店市正阳县", "Value": "411724" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789195271, "Key": "河南省驻马店市确山县", "Value": "411725" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789195272, "Key": "河南省驻马店市泌阳县", "Value": "411726" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789195273, "Key": "河南省驻马店市汝南县", "Value": "411727" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789195274, "Key": "河南省驻马店市遂平县", "Value": "411728" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789195275, "Key": "河南省驻马店市新蔡县", "Value": "411729" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789195276, "Key": "河南省济源市", "Value": "419001" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789195277, "Key": "湖北省", "Value": "420000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789195278, "Key": "湖北省武汉市", "Value": "420100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789195279, "Key": "湖北省武汉市江岸区", "Value": "420102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789195280, "Key": "湖北省武汉市江汉区", "Value": "420103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789199365, "Key": "湖北省武汉市硚口区", "Value": "420104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789199366, "Key": "湖北省武汉市汉阳区", "Value": "420105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789199367, "Key": "湖北省武汉市武昌区", "Value": "420106" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789199368, "Key": "湖北省武汉市青山区", "Value": "420107" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789199369, "Key": "湖北省武汉市洪山区", "Value": "420111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789199370, "Key": "湖北省武汉市东西湖区", "Value": "420112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789199371, "Key": "湖北省武汉市汉南区", "Value": "420113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789199372, "Key": "湖北省武汉市蔡甸区", "Value": "420114" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789199373, "Key": "湖北省武汉市江夏区", "Value": "420115" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789199374, "Key": "湖北省武汉市黄陂区", "Value": "420116" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789199375, "Key": "湖北省武汉市新洲区", "Value": "420117" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789199376, "Key": "湖北省黄石市", "Value": "420200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789199377, "Key": "湖北省黄石市黄石港区", "Value": "420202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789203461, "Key": "湖北省黄石市西塞山区", "Value": "420203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789203462, "Key": "湖北省黄石市下陆区", "Value": "420204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789203463, "Key": "湖北省黄石市铁山区", "Value": "420205" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789203464, "Key": "湖北省黄石市阳新县", "Value": "420222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789203465, "Key": "湖北省黄石市大冶市", "Value": "420281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789203466, "Key": "湖北省十堰市", "Value": "420300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789203467, "Key": "湖北省十堰市茅箭区", "Value": "420302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789203468, "Key": "湖北省十堰市张湾区", "Value": "420303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789203469, "Key": "湖北省十堰市郧阳区", "Value": "420304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789203470, "Key": "湖北省十堰市郧西县", "Value": "420322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789203471, "Key": "湖北省十堰市竹山县", "Value": "420323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789203472, "Key": "湖北省十堰市竹溪县", "Value": "420324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789203473, "Key": "湖北省十堰市房县", "Value": "420325" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789207557, "Key": "湖北省十堰市丹江口市", "Value": "420381" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789207558, "Key": "湖北省宜昌市", "Value": "420500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789207559, "Key": "湖北省宜昌市西陵区", "Value": "420502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789207560, "Key": "湖北省宜昌市伍家岗区", "Value": "420503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789207561, "Key": "湖北省宜昌市点军区", "Value": "420504" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789207562, "Key": "湖北省宜昌市猇亭区", "Value": "420505" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789207563, "Key": "湖北省宜昌市夷陵区", "Value": "420506" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789207564, "Key": "湖北省宜昌市远安县", "Value": "420525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789207565, "Key": "湖北省宜昌市兴山县", "Value": "420526" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789207566, "Key": "湖北省宜昌市秭归县", "Value": "420527" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789207567, "Key": "湖北省宜昌市长阳土家族自治县", "Value": "420528" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789207568, "Key": "湖北省宜昌市五峰土家族自治县", "Value": "420529" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789207569, "Key": "湖北省宜昌市宜都市", "Value": "420581" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789211653, "Key": "湖北省宜昌市当阳市", "Value": "420582" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789211654, "Key": "湖北省宜昌市枝江市", "Value": "420583" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789211655, "Key": "湖北省襄阳市", "Value": "420600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789211656, "Key": "湖北省襄阳市襄城区", "Value": "420602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789211657, "Key": "湖北省襄阳市樊城区", "Value": "420606" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789211658, "Key": "湖北省襄阳市襄州区", "Value": "420607" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789211659, "Key": "湖北省襄阳市南漳县", "Value": "420624" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789211660, "Key": "湖北省襄阳市谷城县", "Value": "420625" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789211661, "Key": "湖北省襄阳市保康县", "Value": "420626" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789211662, "Key": "湖北省襄阳市老河口市", "Value": "420682" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789211663, "Key": "湖北省襄阳市枣阳市", "Value": "420683" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789211664, "Key": "湖北省襄阳市宜城市", "Value": "420684" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789211665, "Key": "湖北省鄂州市", "Value": "420700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789215749, "Key": "湖北省鄂州市梁子湖区", "Value": "420702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789215750, "Key": "湖北省鄂州市华容区", "Value": "420703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789215751, "Key": "湖北省鄂州市鄂城区", "Value": "420704" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789215752, "Key": "湖北省荆门市", "Value": "420800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789215753, "Key": "湖北省荆门市东宝区", "Value": "420802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789215754, "Key": "湖北省荆门市掇刀区", "Value": "420804" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789215755, "Key": "湖北省荆门市沙洋县", "Value": "420822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789215756, "Key": "湖北省荆门市钟祥市", "Value": "420881" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789215757, "Key": "湖北省荆门市京山市", "Value": "420882" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789215758, "Key": "湖北省孝感市", "Value": "420900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789215759, "Key": "湖北省孝感市孝南区", "Value": "420902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789215760, "Key": "湖北省孝感市孝昌县", "Value": "420921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789215761, "Key": "湖北省孝感市大悟县", "Value": "420922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789219845, "Key": "湖北省孝感市云梦县", "Value": "420923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789219846, "Key": "湖北省孝感市应城市", "Value": "420981" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789219847, "Key": "湖北省孝感市安陆市", "Value": "420982" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789219848, "Key": "湖北省孝感市汉川市", "Value": "420984" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789219849, "Key": "湖北省荆州市", "Value": "421000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789219850, "Key": "湖北省荆州市沙市区", "Value": "421002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789219851, "Key": "湖北省荆州市荆州区", "Value": "421003" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789219852, "Key": "湖北省荆州市公安县", "Value": "421022" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789219853, "Key": "湖北省荆州市江陵县", "Value": "421024" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789219854, "Key": "湖北省荆州市石首市", "Value": "421081" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789219855, "Key": "湖北省荆州市洪湖市", "Value": "421083" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789219856, "Key": "湖北省荆州市松滋市", "Value": "421087" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789219857, "Key": "湖北省荆州市监利市", "Value": "421088" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789223941, "Key": "湖北省黄冈市", "Value": "421100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789223942, "Key": "湖北省黄冈市黄州区", "Value": "421102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789223943, "Key": "湖北省黄冈市团风县", "Value": "421121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789223944, "Key": "湖北省黄冈市红安县", "Value": "421122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789223945, "Key": "湖北省黄冈市罗田县", "Value": "421123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789223946, "Key": "湖北省黄冈市英山县", "Value": "421124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789223947, "Key": "湖北省黄冈市浠水县", "Value": "421125" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789223948, "Key": "湖北省黄冈市蕲春县", "Value": "421126" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789223949, "Key": "湖北省黄冈市黄梅县", "Value": "421127" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789223950, "Key": "湖北省黄冈市麻城市", "Value": "421181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789223951, "Key": "湖北省黄冈市武穴市", "Value": "421182" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789223952, "Key": "湖北省咸宁市", "Value": "421200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789223953, "Key": "湖北省咸宁市咸安区", "Value": "421202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789228037, "Key": "湖北省咸宁市嘉鱼县", "Value": "421221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789228038, "Key": "湖北省咸宁市通城县", "Value": "421222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789228039, "Key": "湖北省咸宁市崇阳县", "Value": "421223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789228040, "Key": "湖北省咸宁市通山县", "Value": "421224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789228041, "Key": "湖北省咸宁市赤壁市", "Value": "421281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789228042, "Key": "湖北省随州市", "Value": "421300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789228043, "Key": "湖北省随州市曾都区", "Value": "421303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789228044, "Key": "湖北省随州市随县", "Value": "421321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789228045, "Key": "湖北省随州市广水市", "Value": "421381" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789228046, "Key": "湖北省恩施土家族苗族自治州", "Value": "422800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789228047, "Key": "湖北省恩施土家族苗族自治州恩施市", "Value": "422801" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789228048, "Key": "湖北省恩施土家族苗族自治州利川市", "Value": "422802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789228049, "Key": "湖北省恩施土家族苗族自治州建始县", "Value": "422822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789232133, "Key": "湖北省恩施土家族苗族自治州巴东县", "Value": "422823" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789232134, "Key": "湖北省恩施土家族苗族自治州宣恩县", "Value": "422825" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789232135, "Key": "湖北省恩施土家族苗族自治州咸丰县", "Value": "422826" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789232136, "Key": "湖北省恩施土家族苗族自治州来凤县", "Value": "422827" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789232137, "Key": "湖北省恩施土家族苗族自治州鹤峰县", "Value": "422828" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789232138, "Key": "湖北省仙桃市", "Value": "429004" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789232139, "Key": "湖北省潜江市", "Value": "429005" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789232140, "Key": "湖北省天门市", "Value": "429006" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789232141, "Key": "湖北省神农架林区", "Value": "429021" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789232142, "Key": "湖南省", "Value": "430000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789232143, "Key": "湖南省长沙市", "Value": "430100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789232144, "Key": "湖南省长沙市芙蓉区", "Value": "430102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789232145, "Key": "湖南省长沙市天心区", "Value": "430103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789236229, "Key": "湖南省长沙市岳麓区", "Value": "430104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789236230, "Key": "湖南省长沙市开福区", "Value": "430105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789236231, "Key": "湖南省长沙市雨花区", "Value": "430111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789236232, "Key": "湖南省长沙市望城区", "Value": "430112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789236233, "Key": "湖南省长沙市长沙县", "Value": "430121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789236234, "Key": "湖南省长沙市浏阳市", "Value": "430181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789236235, "Key": "湖南省长沙市宁乡市", "Value": "430182" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789236236, "Key": "湖南省株洲市", "Value": "430200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789236237, "Key": "湖南省株洲市荷塘区", "Value": "430202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789236238, "Key": "湖南省株洲市芦淞区", "Value": "430203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789236239, "Key": "湖南省株洲市石峰区", "Value": "430204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789236240, "Key": "湖南省株洲市天元区", "Value": "430211" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789236241, "Key": "湖南省株洲市渌口区", "Value": "430212" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789240325, "Key": "湖南省株洲市攸县", "Value": "430223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789240326, "Key": "湖南省株洲市茶陵县", "Value": "430224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789240327, "Key": "湖南省株洲市炎陵县", "Value": "430225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789240328, "Key": "湖南省株洲市醴陵市", "Value": "430281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789240329, "Key": "湖南省湘潭市", "Value": "430300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789240330, "Key": "湖南省湘潭市雨湖区", "Value": "430302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789240331, "Key": "湖南省湘潭市岳塘区", "Value": "430304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789240332, "Key": "湖南省湘潭市湘潭县", "Value": "430321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789240333, "Key": "湖南省湘潭市湘乡市", "Value": "430381" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789240334, "Key": "湖南省湘潭市韶山市", "Value": "430382" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789240335, "Key": "湖南省衡阳市", "Value": "430400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789240336, "Key": "湖南省衡阳市珠晖区", "Value": "430405" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789240337, "Key": "湖南省衡阳市雁峰区", "Value": "430406" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789244421, "Key": "湖南省衡阳市石鼓区", "Value": "430407" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789244422, "Key": "湖南省衡阳市蒸湘区", "Value": "430408" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789244423, "Key": "湖南省衡阳市南岳区", "Value": "430412" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789244424, "Key": "湖南省衡阳市衡阳县", "Value": "430421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789244425, "Key": "湖南省衡阳市衡南县", "Value": "430422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789244426, "Key": "湖南省衡阳市衡山县", "Value": "430423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789244427, "Key": "湖南省衡阳市衡东县", "Value": "430424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789244428, "Key": "湖南省衡阳市祁东县", "Value": "430426" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789244429, "Key": "湖南省衡阳市耒阳市", "Value": "430481" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789244430, "Key": "湖南省衡阳市常宁市", "Value": "430482" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789244431, "Key": "湖南省邵阳市", "Value": "430500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789244432, "Key": "湖南省邵阳市双清区", "Value": "430502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789244433, "Key": "湖南省邵阳市大祥区", "Value": "430503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789248517, "Key": "湖南省邵阳市北塔区", "Value": "430511" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789248518, "Key": "湖南省邵阳市新邵县", "Value": "430522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789248519, "Key": "湖南省邵阳市邵阳县", "Value": "430523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789248520, "Key": "湖南省邵阳市隆回县", "Value": "430524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789248521, "Key": "湖南省邵阳市洞口县", "Value": "430525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789248522, "Key": "湖南省邵阳市绥宁县", "Value": "430527" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789248523, "Key": "湖南省邵阳市新宁县", "Value": "430528" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789248524, "Key": "湖南省邵阳市城步苗族自治县", "Value": "430529" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789248525, "Key": "湖南省邵阳市武冈市", "Value": "430581" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789248526, "Key": "湖南省邵阳市邵东市", "Value": "430582" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789248527, "Key": "湖南省岳阳市", "Value": "430600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789248528, "Key": "湖南省岳阳市岳阳楼区", "Value": "430602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789248529, "Key": "湖南省岳阳市云溪区", "Value": "430603" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789252613, "Key": "湖南省岳阳市君山区", "Value": "430611" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789252614, "Key": "湖南省岳阳市岳阳县", "Value": "430621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789252615, "Key": "湖南省岳阳市华容县", "Value": "430623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789252616, "Key": "湖南省岳阳市湘阴县", "Value": "430624" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789252617, "Key": "湖南省岳阳市平江县", "Value": "430626" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789252618, "Key": "湖南省岳阳市汨罗市", "Value": "430681" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789252619, "Key": "湖南省岳阳市临湘市", "Value": "430682" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789252620, "Key": "湖南省常德市", "Value": "430700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789252621, "Key": "湖南省常德市武陵区", "Value": "430702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789252622, "Key": "湖南省常德市鼎城区", "Value": "430703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789252623, "Key": "湖南省常德市安乡县", "Value": "430721" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789252624, "Key": "湖南省常德市汉寿县", "Value": "430722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789252625, "Key": "湖南省常德市澧县", "Value": "430723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789256709, "Key": "湖南省常德市临澧县", "Value": "430724" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789256710, "Key": "湖南省常德市桃源县", "Value": "430725" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789256711, "Key": "湖南省常德市石门县", "Value": "430726" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789256712, "Key": "湖南省常德市津市市", "Value": "430781" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789256713, "Key": "湖南省张家界市", "Value": "430800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789256714, "Key": "湖南省张家界市永定区", "Value": "430802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789256715, "Key": "湖南省张家界市武陵源区", "Value": "430811" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789256716, "Key": "湖南省张家界市慈利县", "Value": "430821" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789256717, "Key": "湖南省张家界市桑植县", "Value": "430822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789256718, "Key": "湖南省益阳市", "Value": "430900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789256719, "Key": "湖南省益阳市资阳区", "Value": "430902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789256720, "Key": "湖南省益阳市赫山区", "Value": "430903" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789256721, "Key": "湖南省益阳市南县", "Value": "430921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789260805, "Key": "湖南省益阳市桃江县", "Value": "430922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789260806, "Key": "湖南省益阳市安化县", "Value": "430923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789260807, "Key": "湖南省益阳市沅江市", "Value": "430981" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789260808, "Key": "湖南省郴州市", "Value": "431000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789260809, "Key": "湖南省郴州市北湖区", "Value": "431002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789260810, "Key": "湖南省郴州市苏仙区", "Value": "431003" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789260811, "Key": "湖南省郴州市桂阳县", "Value": "431021" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789260812, "Key": "湖南省郴州市宜章县", "Value": "431022" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789260813, "Key": "湖南省郴州市永兴县", "Value": "431023" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789260814, "Key": "湖南省郴州市嘉禾县", "Value": "431024" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789260815, "Key": "湖南省郴州市临武县", "Value": "431025" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789260816, "Key": "湖南省郴州市汝城县", "Value": "431026" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789260817, "Key": "湖南省郴州市桂东县", "Value": "431027" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789260818, "Key": "湖南省郴州市安仁县", "Value": "431028" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789260819, "Key": "湖南省郴州市资兴市", "Value": "431081" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789264901, "Key": "湖南省永州市", "Value": "431100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789264902, "Key": "湖南省永州市零陵区", "Value": "431102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789264903, "Key": "湖南省永州市冷水滩区", "Value": "431103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789264904, "Key": "湖南省永州市东安县", "Value": "431122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789264905, "Key": "湖南省永州市双牌县", "Value": "431123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789264906, "Key": "湖南省永州市道县", "Value": "431124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789264907, "Key": "湖南省永州市江永县", "Value": "431125" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789264908, "Key": "湖南省永州市宁远县", "Value": "431126" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789264909, "Key": "湖南省永州市蓝山县", "Value": "431127" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789264910, "Key": "湖南省永州市新田县", "Value": "431128" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789264911, "Key": "湖南省永州市江华瑶族自治县", "Value": "431129" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789264912, "Key": "湖南省永州市祁阳市", "Value": "431181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789264913, "Key": "湖南省怀化市", "Value": "431200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789264914, "Key": "湖南省怀化市鹤城区", "Value": "431202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789268997, "Key": "湖南省怀化市中方县", "Value": "431221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789268998, "Key": "湖南省怀化市沅陵县", "Value": "431222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789268999, "Key": "湖南省怀化市辰溪县", "Value": "431223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789269000, "Key": "湖南省怀化市溆浦县", "Value": "431224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789269001, "Key": "湖南省怀化市会同县", "Value": "431225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789269002, "Key": "湖南省怀化市麻阳苗族自治县", "Value": "431226" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789269003, "Key": "湖南省怀化市新晃侗族自治县", "Value": "431227" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789269004, "Key": "湖南省怀化市芷江侗族自治县", "Value": "431228" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789269005, "Key": "湖南省怀化市靖州苗族侗族自治县", "Value": "431229" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789269006, "Key": "湖南省怀化市通道侗族自治县", "Value": "431230" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789269007, "Key": "湖南省怀化市洪江市", "Value": "431281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789269008, "Key": "湖南省娄底市", "Value": "431300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789269009, "Key": "湖南省娄底市娄星区", "Value": "431302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789269010, "Key": "湖南省娄底市双峰县", "Value": "431321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789273093, "Key": "湖南省娄底市新化县", "Value": "431322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789273094, "Key": "湖南省娄底市冷水江市", "Value": "431381" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789273095, "Key": "湖南省娄底市涟源市", "Value": "431382" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789273096, "Key": "湖南省湘西土家族苗族自治州", "Value": "433100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789273097, "Key": "湖南省湘西土家族苗族自治州吉首市", "Value": "433101" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789273098, "Key": "湖南省湘西土家族苗族自治州泸溪县", "Value": "433122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789273099, "Key": "湖南省湘西土家族苗族自治州凤凰县", "Value": "433123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789273100, "Key": "湖南省湘西土家族苗族自治州花垣县", "Value": "433124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789273101, "Key": "湖南省湘西土家族苗族自治州保靖县", "Value": "433125" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789273102, "Key": "湖南省湘西土家族苗族自治州古丈县", "Value": "433126" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789273103, "Key": "湖南省湘西土家族苗族自治州永顺县", "Value": "433127" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789273104, "Key": "湖南省湘西土家族苗族自治州龙山县", "Value": "433130" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789273105, "Key": "广东省", "Value": "440000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789273106, "Key": "广东省广州市", "Value": "440100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789277189, "Key": "广东省广州市荔湾区", "Value": "440103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789277190, "Key": "广东省广州市越秀区", "Value": "440104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789277191, "Key": "广东省广州市海珠区", "Value": "440105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789277192, "Key": "广东省广州市天河区", "Value": "440106" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789277193, "Key": "广东省广州市白云区", "Value": "440111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789277194, "Key": "广东省广州市黄埔区", "Value": "440112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789277195, "Key": "广东省广州市番禺区", "Value": "440113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789277196, "Key": "广东省广州市花都区", "Value": "440114" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789277197, "Key": "广东省广州市南沙区", "Value": "440115" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789277198, "Key": "广东省广州市从化区", "Value": "440117" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789277199, "Key": "广东省广州市增城区", "Value": "440118" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789277200, "Key": "广东省韶关市", "Value": "440200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789277201, "Key": "广东省韶关市武江区", "Value": "440203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789281285, "Key": "广东省韶关市浈江区", "Value": "440204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789281286, "Key": "广东省韶关市曲江区", "Value": "440205" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789281287, "Key": "广东省韶关市始兴县", "Value": "440222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789281288, "Key": "广东省韶关市仁化县", "Value": "440224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789281289, "Key": "广东省韶关市翁源县", "Value": "440229" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789281290, "Key": "广东省韶关市乳源瑶族自治县", "Value": "440232" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789281291, "Key": "广东省韶关市新丰县", "Value": "440233" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789281292, "Key": "广东省韶关市乐昌市", "Value": "440281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789281293, "Key": "广东省韶关市南雄市", "Value": "440282" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789281294, "Key": "广东省深圳市", "Value": "440300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789281295, "Key": "广东省深圳市罗湖区", "Value": "440303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789281296, "Key": "广东省深圳市福田区", "Value": "440304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789281297, "Key": "广东省深圳市南山区", "Value": "440305" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789285381, "Key": "广东省深圳市宝安区", "Value": "440306" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789285382, "Key": "广东省深圳市龙岗区", "Value": "440307" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789285383, "Key": "广东省深圳市盐田区", "Value": "440308" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789285384, "Key": "广东省深圳市龙华区", "Value": "440309" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789285385, "Key": "广东省深圳市坪山区", "Value": "440310" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789285386, "Key": "广东省深圳市光明区", "Value": "440311" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789285387, "Key": "广东省珠海市", "Value": "440400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789285388, "Key": "广东省珠海市香洲区", "Value": "440402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789285389, "Key": "广东省珠海市斗门区", "Value": "440403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789285390, "Key": "广东省珠海市金湾区", "Value": "440404" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789285391, "Key": "广东省汕头市", "Value": "440500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789285392, "Key": "广东省汕头市龙湖区", "Value": "440507" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789289477, "Key": "广东省汕头市金平区", "Value": "440511" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789289478, "Key": "广东省汕头市濠江区", "Value": "440512" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789289479, "Key": "广东省汕头市潮阳区", "Value": "440513" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789289480, "Key": "广东省汕头市潮南区", "Value": "440514" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789289481, "Key": "广东省汕头市澄海区", "Value": "440515" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789289482, "Key": "广东省汕头市南澳县", "Value": "440523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789289483, "Key": "广东省佛山市", "Value": "440600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789289484, "Key": "广东省佛山市禅城区", "Value": "440604" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789289485, "Key": "广东省佛山市南海区", "Value": "440605" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789289486, "Key": "广东省佛山市顺德区", "Value": "440606" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789289487, "Key": "广东省佛山市三水区", "Value": "440607" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789289488, "Key": "广东省佛山市高明区", "Value": "440608" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789289489, "Key": "广东省江门市", "Value": "440700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789289490, "Key": "广东省江门市蓬江区", "Value": "440703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789293573, "Key": "广东省江门市江海区", "Value": "440704" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789293574, "Key": "广东省江门市新会区", "Value": "440705" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789293575, "Key": "广东省江门市台山市", "Value": "440781" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789293576, "Key": "广东省江门市开平市", "Value": "440783" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789293577, "Key": "广东省江门市鹤山市", "Value": "440784" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789293578, "Key": "广东省江门市恩平市", "Value": "440785" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789293579, "Key": "广东省湛江市", "Value": "440800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789293580, "Key": "广东省湛江市赤坎区", "Value": "440802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789293581, "Key": "广东省湛江市霞山区", "Value": "440803" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789293582, "Key": "广东省湛江市坡头区", "Value": "440804" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789293583, "Key": "广东省湛江市麻章区", "Value": "440811" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789293584, "Key": "广东省湛江市遂溪县", "Value": "440823" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789293585, "Key": "广东省湛江市徐闻县", "Value": "440825" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789293586, "Key": "广东省湛江市廉江市", "Value": "440881" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789297669, "Key": "广东省湛江市雷州市", "Value": "440882" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789297670, "Key": "广东省湛江市吴川市", "Value": "440883" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789297671, "Key": "广东省茂名市", "Value": "440900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789297672, "Key": "广东省茂名市茂南区", "Value": "440902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789297673, "Key": "广东省茂名市电白区", "Value": "440904" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789297674, "Key": "广东省茂名市高州市", "Value": "440981" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789297675, "Key": "广东省茂名市化州市", "Value": "440982" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789297676, "Key": "广东省茂名市信宜市", "Value": "440983" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789297677, "Key": "广东省肇庆市", "Value": "441200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789297678, "Key": "广东省肇庆市端州区", "Value": "441202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789297679, "Key": "广东省肇庆市鼎湖区", "Value": "441203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789297680, "Key": "广东省肇庆市高要区", "Value": "441204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789297681, "Key": "广东省肇庆市广宁县", "Value": "441223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789297682, "Key": "广东省肇庆市怀集县", "Value": "441224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789297683, "Key": "广东省肇庆市封开县", "Value": "441225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789301765, "Key": "广东省肇庆市德庆县", "Value": "441226" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789301766, "Key": "广东省肇庆市四会市", "Value": "441284" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789301767, "Key": "广东省惠州市", "Value": "441300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789301768, "Key": "广东省惠州市惠城区", "Value": "441302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789301769, "Key": "广东省惠州市惠阳区", "Value": "441303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789301770, "Key": "广东省惠州市博罗县", "Value": "441322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789301771, "Key": "广东省惠州市惠东县", "Value": "441323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789301772, "Key": "广东省惠州市龙门县", "Value": "441324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789301773, "Key": "广东省梅州市", "Value": "441400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789301774, "Key": "广东省梅州市梅江区", "Value": "441402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789301775, "Key": "广东省梅州市梅县区", "Value": "441403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789301776, "Key": "广东省梅州市大埔县", "Value": "441422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789301777, "Key": "广东省梅州市丰顺县", "Value": "441423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789301778, "Key": "广东省梅州市五华县", "Value": "441424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789305861, "Key": "广东省梅州市平远县", "Value": "441426" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789305862, "Key": "广东省梅州市蕉岭县", "Value": "441427" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789305863, "Key": "广东省梅州市兴宁市", "Value": "441481" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789305864, "Key": "广东省汕尾市", "Value": "441500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789305865, "Key": "广东省汕尾市城区", "Value": "441502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789305866, "Key": "广东省汕尾市海丰县", "Value": "441521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789305867, "Key": "广东省汕尾市陆河县", "Value": "441523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789305868, "Key": "广东省汕尾市陆丰市", "Value": "441581" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789305869, "Key": "广东省汕尾市河源市", "Value": "441600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789305870, "Key": "广东省汕尾市源城区", "Value": "441602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789305871, "Key": "广东省汕尾市紫金县", "Value": "441621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789305872, "Key": "广东省汕尾市龙川县", "Value": "441622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789305873, "Key": "广东省汕尾市连平县", "Value": "441623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789309957, "Key": "广东省汕尾市和平县", "Value": "441624" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789309958, "Key": "广东省汕尾市东源县", "Value": "441625" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789309959, "Key": "广东省阳江市", "Value": "441700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789309960, "Key": "广东省阳江市江城区", "Value": "441702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789309961, "Key": "广东省阳江市阳东区", "Value": "441704" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789309962, "Key": "广东省阳江市阳西县", "Value": "441721" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789309963, "Key": "广东省阳江市阳春市", "Value": "441781" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789309964, "Key": "广东省清远市", "Value": "441800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789309965, "Key": "广东省清远市清城区", "Value": "441802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789309966, "Key": "广东省清远市清新区", "Value": "441803" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789309967, "Key": "广东省清远市佛冈县", "Value": "441821" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789309968, "Key": "广东省清远市阳山县", "Value": "441823" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789309969, "Key": "广东省清远市连山壮族瑶族自治县", "Value": "441825" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789309970, "Key": "广东省清远市连南瑶族自治县", "Value": "441826" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789314053, "Key": "广东省清远市英德市", "Value": "441881" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789314054, "Key": "广东省清远市连州市", "Value": "441882" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789314055, "Key": "广东省清远市东莞市", "Value": "441900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789314056, "Key": "广东省清远市中山市", "Value": "442000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789314057, "Key": "广东省潮州市", "Value": "445100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789314058, "Key": "广东省潮州市湘桥区", "Value": "445102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789314059, "Key": "广东省潮州市潮安区", "Value": "445103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789314060, "Key": "广东省潮州市饶平县", "Value": "445122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789314061, "Key": "广东省揭阳市", "Value": "445200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789314062, "Key": "广东省揭阳市榕城区", "Value": "445202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789314063, "Key": "广东省揭阳市揭东区", "Value": "445203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789314064, "Key": "广东省揭阳市揭西县", "Value": "445222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789314065, "Key": "广东省揭阳市惠来县", "Value": "445224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789318149, "Key": "广东省揭阳市普宁市", "Value": "445281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789318150, "Key": "广东省云浮市", "Value": "445300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789318151, "Key": "广东省云浮市云城区", "Value": "445302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789318152, "Key": "广东省云浮市云安区", "Value": "445303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789318153, "Key": "广东省云浮市新兴县", "Value": "445321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789318154, "Key": "广东省云浮市郁南县", "Value": "445322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789318155, "Key": "广东省云浮市罗定市", "Value": "445381" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789318156, "Key": "广西壮族自治区", "Value": "450000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789318157, "Key": "广西壮族自治区南宁市", "Value": "450100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789318158, "Key": "广西壮族自治区南宁市兴宁区", "Value": "450102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789318159, "Key": "广西壮族自治区南宁市青秀区", "Value": "450103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789318160, "Key": "广西壮族自治区南宁市江南区", "Value": "450105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789318161, "Key": "广西壮族自治区南宁市西乡塘区", "Value": "450107" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789318162, "Key": "广西壮族自治区南宁市良庆区", "Value": "450108" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789322245, "Key": "广西壮族自治区南宁市邕宁区", "Value": "450109" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789322246, "Key": "广西壮族自治区南宁市武鸣区", "Value": "450110" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789322247, "Key": "广西壮族自治区南宁市隆安县", "Value": "450123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789322248, "Key": "广西壮族自治区南宁市马山县", "Value": "450124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789322249, "Key": "广西壮族自治区南宁市上林县", "Value": "450125" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789322250, "Key": "广西壮族自治区南宁市宾阳县", "Value": "450126" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789322251, "Key": "广西壮族自治区南宁市横州市", "Value": "450181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789322252, "Key": "广西壮族自治区柳州市", "Value": "450200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789322253, "Key": "广西壮族自治区柳州市城中区", "Value": "450202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789322254, "Key": "广西壮族自治区柳州市鱼峰区", "Value": "450203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789322255, "Key": "广西壮族自治区柳州市柳南区", "Value": "450204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789322256, "Key": "广西壮族自治区柳州市柳北区", "Value": "450205" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789322257, "Key": "广西壮族自治区柳州市柳江区", "Value": "450206" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789326341, "Key": "广西壮族自治区柳州市柳城县", "Value": "450222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789326342, "Key": "广西壮族自治区柳州市鹿寨县", "Value": "450223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789326343, "Key": "广西壮族自治区柳州市融安县", "Value": "450224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789326344, "Key": "广西壮族自治区柳州市融水苗族自治县", "Value": "450225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789326345, "Key": "广西壮族自治区柳州市三江侗族自治县", "Value": "450226" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789326346, "Key": "广西壮族自治区桂林市", "Value": "450300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789326347, "Key": "广西壮族自治区桂林市秀峰区", "Value": "450302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789326348, "Key": "广西壮族自治区桂林市叠彩区", "Value": "450303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789326349, "Key": "广西壮族自治区桂林市象山区", "Value": "450304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789326350, "Key": "广西壮族自治区桂林市七星区", "Value": "450305" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789326351, "Key": "广西壮族自治区桂林市雁山区", "Value": "450311" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789326352, "Key": "广西壮族自治区桂林市临桂区", "Value": "450312" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789326353, "Key": "广西壮族自治区桂林市阳朔县", "Value": "450321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789326354, "Key": "广西壮族自治区桂林市灵川县", "Value": "450323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789330437, "Key": "广西壮族自治区桂林市全州县", "Value": "450324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789330438, "Key": "广西壮族自治区桂林市兴安县", "Value": "450325" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789330439, "Key": "广西壮族自治区桂林市永福县", "Value": "450326" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789330440, "Key": "广西壮族自治区桂林市灌阳县", "Value": "450327" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789330441, "Key": "广西壮族自治区桂林市龙胜各族自治县", "Value": "450328" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789330442, "Key": "广西壮族自治区桂林市资源县", "Value": "450329" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789330443, "Key": "广西壮族自治区桂林市平乐县", "Value": "450330" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789330444, "Key": "广西壮族自治区桂林市恭城瑶族自治县", "Value": "450332" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789330445, "Key": "广西壮族自治区桂林市荔浦市", "Value": "450381" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789330446, "Key": "广西壮族自治区梧州市", "Value": "450400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789330447, "Key": "广西壮族自治区梧州市万秀区", "Value": "450403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789330448, "Key": "广西壮族自治区梧州市长洲区", "Value": "450405" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789330449, "Key": "广西壮族自治区梧州市龙圩区", "Value": "450406" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789330450, "Key": "广西壮族自治区梧州市苍梧县", "Value": "450421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789334533, "Key": "广西壮族自治区梧州市藤县", "Value": "450422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789334534, "Key": "广西壮族自治区梧州市蒙山县", "Value": "450423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789334535, "Key": "广西壮族自治区梧州市岑溪市", "Value": "450481" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789334536, "Key": "广西壮族自治区北海市", "Value": "450500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789334537, "Key": "广西壮族自治区北海市海城区", "Value": "450502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789334538, "Key": "广西壮族自治区北海市银海区", "Value": "450503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789334539, "Key": "广西壮族自治区北海市铁山港区", "Value": "450512" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789334540, "Key": "广西壮族自治区北海市合浦县", "Value": "450521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789334541, "Key": "广西壮族自治区防城港市", "Value": "450600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789334542, "Key": "广西壮族自治区防城港市港口区", "Value": "450602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789334543, "Key": "广西壮族自治区防城港市防城区", "Value": "450603" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789334544, "Key": "广西壮族自治区防城港市上思县", "Value": "450621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789334545, "Key": "广西壮族自治区防城港市东兴市", "Value": "450681" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789334546, "Key": "广西壮族自治区钦州市", "Value": "450700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789338629, "Key": "广西壮族自治区钦州市钦南区", "Value": "450702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789338630, "Key": "广西壮族自治区钦州市钦北区", "Value": "450703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789338631, "Key": "广西壮族自治区钦州市灵山县", "Value": "450721" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789338632, "Key": "广西壮族自治区钦州市浦北县", "Value": "450722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789338633, "Key": "广西壮族自治区贵港市", "Value": "450800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789338634, "Key": "广西壮族自治区贵港市港北区", "Value": "450802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789338635, "Key": "广西壮族自治区贵港市港南区", "Value": "450803" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789338636, "Key": "广西壮族自治区贵港市覃塘区", "Value": "450804" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789338637, "Key": "广西壮族自治区贵港市平南县", "Value": "450821" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789338638, "Key": "广西壮族自治区贵港市桂平市", "Value": "450881" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789338639, "Key": "广西壮族自治区玉林市", "Value": "450900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789338640, "Key": "广西壮族自治区玉林市玉州区", "Value": "450902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789338641, "Key": "广西壮族自治区玉林市福绵区", "Value": "450903" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789338642, "Key": "广西壮族自治区玉林市容县", "Value": "450921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789342725, "Key": "广西壮族自治区玉林市陆川县", "Value": "450922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789342726, "Key": "广西壮族自治区玉林市博白县", "Value": "450923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789342727, "Key": "广西壮族自治区玉林市兴业县", "Value": "450924" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789342728, "Key": "广西壮族自治区玉林市北流市", "Value": "450981" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789342729, "Key": "广西壮族自治区百色市", "Value": "451000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789342730, "Key": "广西壮族自治区百色市右江区", "Value": "451002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789342731, "Key": "广西壮族自治区百色市田阳区", "Value": "451003" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789342732, "Key": "广西壮族自治区百色市田东县", "Value": "451022" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789342733, "Key": "广西壮族自治区百色市德保县", "Value": "451024" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789342734, "Key": "广西壮族自治区百色市那坡县", "Value": "451026" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789342735, "Key": "广西壮族自治区百色市凌云县", "Value": "451027" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789342736, "Key": "广西壮族自治区百色市乐业县", "Value": "451028" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789342737, "Key": "广西壮族自治区百色市田林县", "Value": "451029" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789342738, "Key": "广西壮族自治区百色市西林县", "Value": "451030" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789342739, "Key": "广西壮族自治区百色市隆林各族自治县", "Value": "451031" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789346821, "Key": "广西壮族自治区百色市靖西市", "Value": "451081" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789346822, "Key": "广西壮族自治区百色市平果市", "Value": "451082" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789346823, "Key": "广西壮族自治区贺州市", "Value": "451100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789346824, "Key": "广西壮族自治区贺州市八步区", "Value": "451102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789346825, "Key": "广西壮族自治区贺州市平桂区", "Value": "451103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789346826, "Key": "广西壮族自治区贺州市昭平县", "Value": "451121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789346827, "Key": "广西壮族自治区贺州市钟山县", "Value": "451122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789346828, "Key": "广西壮族自治区贺州市富川瑶族自治县", "Value": "451123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789346829, "Key": "广西壮族自治区河池市", "Value": "451200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789346830, "Key": "广西壮族自治区河池市金城江区", "Value": "451202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789346831, "Key": "广西壮族自治区河池市宜州区", "Value": "451203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789346832, "Key": "广西壮族自治区河池市南丹县", "Value": "451221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789346833, "Key": "广西壮族自治区河池市天峨县", "Value": "451222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789346834, "Key": "广西壮族自治区河池市凤山县", "Value": "451223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789350917, "Key": "广西壮族自治区河池市东兰县", "Value": "451224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789350918, "Key": "广西壮族自治区河池市罗城仫佬族自治县", "Value": "451225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789350919, "Key": "广西壮族自治区河池市环江毛南族自治县", "Value": "451226" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789350920, "Key": "广西壮族自治区河池市巴马瑶族自治县", "Value": "451227" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789350921, "Key": "广西壮族自治区河池市都安瑶族自治县", "Value": "451228" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789350922, "Key": "广西壮族自治区河池市大化瑶族自治县", "Value": "451229" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789350923, "Key": "广西壮族自治区来宾市", "Value": "451300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789350924, "Key": "广西壮族自治区来宾市兴宾区", "Value": "451302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789350925, "Key": "广西壮族自治区来宾市忻城县", "Value": "451321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789350926, "Key": "广西壮族自治区来宾市象州县", "Value": "451322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789350927, "Key": "广西壮族自治区来宾市武宣县", "Value": "451323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789350928, "Key": "广西壮族自治区来宾市金秀瑶族自治县", "Value": "451324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789350929, "Key": "广西壮族自治区来宾市合山市", "Value": "451381" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789350930, "Key": "广西壮族自治区崇左市", "Value": "451400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789355013, "Key": "广西壮族自治区崇左市江州区", "Value": "451402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789355014, "Key": "广西壮族自治区崇左市扶绥县", "Value": "451421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789355015, "Key": "广西壮族自治区崇左市宁明县", "Value": "451422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789355016, "Key": "广西壮族自治区崇左市龙州县", "Value": "451423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789355017, "Key": "广西壮族自治区崇左市大新县", "Value": "451424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789355018, "Key": "广西壮族自治区崇左市天等县", "Value": "451425" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789355019, "Key": "广西壮族自治区崇左市凭祥市", "Value": "451481" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789355020, "Key": "海南省", "Value": "460000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789355021, "Key": "海南省海口市", "Value": "460100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789355022, "Key": "海南省海口市秀英区", "Value": "460105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789355023, "Key": "海南省海口市龙华区", "Value": "460106" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789355024, "Key": "海南省海口市琼山区", "Value": "460107" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789355025, "Key": "海南省海口市美兰区", "Value": "460108" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789355026, "Key": "海南省三亚市", "Value": "460200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789355027, "Key": "海南省三亚市海棠区", "Value": "460202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789359109, "Key": "海南省三亚市吉阳区", "Value": "460203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789359110, "Key": "海南省三亚市天涯区", "Value": "460204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789359111, "Key": "海南省三亚市崖州区", "Value": "460205" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789359112, "Key": "海南省三亚市三沙市", "Value": "460300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789359113, "Key": "海南省三亚市儋州市", "Value": "460400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789359114, "Key": "海南省五指山市", "Value": "469001" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789359115, "Key": "海南省琼海市", "Value": "469002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789359116, "Key": "海南省文昌市", "Value": "469005" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789359117, "Key": "海南省万宁市", "Value": "469006" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789359118, "Key": "海南省东方市", "Value": "469007" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789359119, "Key": "海南省定安县", "Value": "469021" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789359120, "Key": "海南省屯昌县", "Value": "469022" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789359121, "Key": "海南省澄迈县", "Value": "469023" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789359122, "Key": "海南省临高县", "Value": "469024" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789363205, "Key": "海南省白沙黎族自治县", "Value": "469025" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789363206, "Key": "海南省昌江黎族自治县", "Value": "469026" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789363207, "Key": "海南省乐东黎族自治县", "Value": "469027" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789363208, "Key": "海南省陵水黎族自治县", "Value": "469028" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789363209, "Key": "海南省保亭黎族苗族自治县", "Value": "469029" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789363210, "Key": "海南省琼中黎族苗族自治县", "Value": "469030" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789363211, "Key": "重庆市", "Value": "500000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789363212, "Key": "重庆市万州区", "Value": "500101" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789363213, "Key": "重庆市涪陵区", "Value": "500102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789363214, "Key": "重庆市渝中区", "Value": "500103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789363215, "Key": "重庆市大渡口区", "Value": "500104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789363216, "Key": "重庆市江北区", "Value": "500105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789363217, "Key": "重庆市沙坪坝区", "Value": "500106" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789363218, "Key": "重庆市九龙坡区", "Value": "500107" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789367301, "Key": "重庆市南岸区", "Value": "500108" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789367302, "Key": "重庆市北碚区", "Value": "500109" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789367303, "Key": "重庆市綦江区", "Value": "500110" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789367304, "Key": "重庆市大足区", "Value": "500111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789367305, "Key": "重庆市渝北区", "Value": "500112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789367306, "Key": "重庆市巴南区", "Value": "500113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789367307, "Key": "重庆市黔江区", "Value": "500114" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789367308, "Key": "重庆市长寿区", "Value": "500115" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789367309, "Key": "重庆市江津区", "Value": "500116" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789367310, "Key": "重庆市合川区", "Value": "500117" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789367311, "Key": "重庆市永川区", "Value": "500118" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789367312, "Key": "重庆市南川区", "Value": "500119" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789367313, "Key": "重庆市璧山区", "Value": "500120" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789367314, "Key": "重庆市铜梁区", "Value": "500151" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789367315, "Key": "重庆市潼南区", "Value": "500152" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789371397, "Key": "重庆市荣昌区", "Value": "500153" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789371398, "Key": "重庆市开州区", "Value": "500154" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789371399, "Key": "重庆市梁平区", "Value": "500155" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789371400, "Key": "重庆市武隆区", "Value": "500156" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789371401, "Key": "重庆市城口县", "Value": "500229" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789371402, "Key": "重庆市丰都县", "Value": "500230" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789371403, "Key": "重庆市垫江县", "Value": "500231" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789371404, "Key": "重庆市忠县", "Value": "500233" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789371405, "Key": "重庆市云阳县", "Value": "500235" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789371406, "Key": "重庆市奉节县", "Value": "500236" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789371407, "Key": "重庆市巫山县", "Value": "500237" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789371408, "Key": "重庆市巫溪县", "Value": "500238" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789371409, "Key": "重庆市石柱土家族自治县", "Value": "500240" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789371410, "Key": "重庆市秀山土家族苗族自治县", "Value": "500241" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789375493, "Key": "重庆市酉阳土家族苗族自治县", "Value": "500242" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789375494, "Key": "重庆市彭水苗族土家族自治县", "Value": "500243" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789375495, "Key": "四川省", "Value": "510000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789375496, "Key": "四川省成都市", "Value": "510100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789375497, "Key": "四川省成都市锦江区", "Value": "510104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789375498, "Key": "四川省成都市青羊区", "Value": "510105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789375499, "Key": "四川省成都市金牛区", "Value": "510106" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789375500, "Key": "四川省成都市武侯区", "Value": "510107" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789375501, "Key": "四川省成都市成华区", "Value": "510108" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789375502, "Key": "四川省成都市龙泉驿区", "Value": "510112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789375503, "Key": "四川省成都市青白江区", "Value": "510113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789375504, "Key": "四川省成都市新都区", "Value": "510114" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789375505, "Key": "四川省成都市温江区", "Value": "510115" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789375506, "Key": "四川省成都市双流区", "Value": "510116" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789379589, "Key": "四川省成都市郫都区", "Value": "510117" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789379590, "Key": "四川省成都市新津区", "Value": "510118" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789379591, "Key": "四川省成都市金堂县", "Value": "510121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789379592, "Key": "四川省成都市大邑县", "Value": "510129" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789379593, "Key": "四川省成都市蒲江县", "Value": "510131" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789379594, "Key": "四川省成都市都江堰市", "Value": "510181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789379595, "Key": "四川省成都市彭州市", "Value": "510182" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789379596, "Key": "四川省成都市邛崃市", "Value": "510183" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789379597, "Key": "四川省成都市崇州市", "Value": "510184" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789379598, "Key": "四川省成都市简阳市", "Value": "510185" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789379599, "Key": "四川省自贡市", "Value": "510300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789379600, "Key": "四川省自贡市自流井区", "Value": "510302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789379601, "Key": "四川省自贡市贡井区", "Value": "510303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789383685, "Key": "四川省自贡市大安区", "Value": "510304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789383686, "Key": "四川省自贡市沿滩区", "Value": "510311" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789383687, "Key": "四川省自贡市荣县", "Value": "510321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789383688, "Key": "四川省自贡市富顺县", "Value": "510322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789383689, "Key": "四川省攀枝花市", "Value": "510400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789383690, "Key": "四川省攀枝花市东区", "Value": "510402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789383691, "Key": "四川省攀枝花市西区", "Value": "510403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789383692, "Key": "四川省攀枝花市仁和区", "Value": "510411" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789383693, "Key": "四川省攀枝花市米易县", "Value": "510421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789383694, "Key": "四川省攀枝花市盐边县", "Value": "510422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789383695, "Key": "四川省泸州市", "Value": "510500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789383696, "Key": "四川省泸州市江阳区", "Value": "510502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789383697, "Key": "四川省泸州市纳溪区", "Value": "510503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789387781, "Key": "四川省泸州市龙马潭区", "Value": "510504" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789387782, "Key": "四川省泸州市泸县", "Value": "510521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789387783, "Key": "四川省泸州市合江县", "Value": "510522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789387784, "Key": "四川省泸州市叙永县", "Value": "510524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789387785, "Key": "四川省泸州市古蔺县", "Value": "510525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789387786, "Key": "四川省德阳市", "Value": "510600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789387787, "Key": "四川省德阳市旌阳区", "Value": "510603" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789387788, "Key": "四川省德阳市罗江区", "Value": "510604" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789387789, "Key": "四川省德阳市中江县", "Value": "510623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789387790, "Key": "四川省德阳市广汉市", "Value": "510681" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789387791, "Key": "四川省德阳市什邡市", "Value": "510682" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789387792, "Key": "四川省德阳市绵竹市", "Value": "510683" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789387793, "Key": "四川省绵阳市", "Value": "510700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789387794, "Key": "四川省绵阳市涪城区", "Value": "510703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789391877, "Key": "四川省绵阳市游仙区", "Value": "510704" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789391878, "Key": "四川省绵阳市安州区", "Value": "510705" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789391879, "Key": "四川省绵阳市三台县", "Value": "510722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789391880, "Key": "四川省绵阳市盐亭县", "Value": "510723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789391881, "Key": "四川省绵阳市梓潼县", "Value": "510725" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789391882, "Key": "四川省绵阳市北川羌族自治县", "Value": "510726" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789391883, "Key": "四川省绵阳市平武县", "Value": "510727" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789391884, "Key": "四川省绵阳市江油市", "Value": "510781" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789391885, "Key": "四川省广元市", "Value": "510800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789391886, "Key": "四川省广元市利州区", "Value": "510802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789391887, "Key": "四川省广元市昭化区", "Value": "510811" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789391888, "Key": "四川省广元市朝天区", "Value": "510812" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789391889, "Key": "四川省广元市旺苍县", "Value": "510821" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789391890, "Key": "四川省广元市青川县", "Value": "510822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789395973, "Key": "四川省广元市剑阁县", "Value": "510823" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789395974, "Key": "四川省广元市苍溪县", "Value": "510824" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789395975, "Key": "四川省遂宁市", "Value": "510900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789395976, "Key": "四川省遂宁市船山区", "Value": "510903" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789395977, "Key": "四川省遂宁市安居区", "Value": "510904" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789395978, "Key": "四川省遂宁市蓬溪县", "Value": "510921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789395979, "Key": "四川省遂宁市大英县", "Value": "510923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789395980, "Key": "四川省遂宁市射洪市", "Value": "510981" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789395981, "Key": "四川省内江市", "Value": "511000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789395982, "Key": "四川省内江市市中区", "Value": "511002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789395983, "Key": "四川省内江市东兴区", "Value": "511011" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789395984, "Key": "四川省内江市威远县", "Value": "511024" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789395985, "Key": "四川省内江市资中县", "Value": "511025" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789395986, "Key": "四川省内江市隆昌市", "Value": "511083" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789400069, "Key": "四川省乐山市", "Value": "511100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789400070, "Key": "四川省乐山市市中区", "Value": "511102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789400071, "Key": "四川省乐山市沙湾区", "Value": "511111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789400072, "Key": "四川省乐山市五通桥区", "Value": "511112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789400073, "Key": "四川省乐山市金口河区", "Value": "511113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789400074, "Key": "四川省乐山市犍为县", "Value": "511123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789400075, "Key": "四川省乐山市井研县", "Value": "511124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789400076, "Key": "四川省乐山市夹江县", "Value": "511126" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789400077, "Key": "四川省乐山市沐川县", "Value": "511129" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789400078, "Key": "四川省乐山市峨边彝族自治县", "Value": "511132" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789400079, "Key": "四川省乐山市马边彝族自治县", "Value": "511133" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789400080, "Key": "四川省乐山市峨眉山市", "Value": "511181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789400081, "Key": "四川省南充市", "Value": "511300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789400082, "Key": "四川省南充市顺庆区", "Value": "511302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789404165, "Key": "四川省南充市高坪区", "Value": "511303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789404166, "Key": "四川省南充市嘉陵区", "Value": "511304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789404167, "Key": "四川省南充市南部县", "Value": "511321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789404168, "Key": "四川省南充市营山县", "Value": "511322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789404169, "Key": "四川省南充市蓬安县", "Value": "511323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789404170, "Key": "四川省南充市仪陇县", "Value": "511324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789404171, "Key": "四川省南充市西充县", "Value": "511325" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789404172, "Key": "四川省南充市阆中市", "Value": "511381" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789404173, "Key": "四川省眉山市", "Value": "511400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789404174, "Key": "四川省眉山市东坡区", "Value": "511402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789404175, "Key": "四川省眉山市彭山区", "Value": "511403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789404176, "Key": "四川省眉山市仁寿县", "Value": "511421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789404177, "Key": "四川省眉山市洪雅县", "Value": "511423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789404178, "Key": "四川省眉山市丹棱县", "Value": "511424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789408261, "Key": "四川省眉山市青神县", "Value": "511425" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789408262, "Key": "四川省宜宾市", "Value": "511500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789408263, "Key": "四川省宜宾市翠屏区", "Value": "511502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789408264, "Key": "四川省宜宾市南溪区", "Value": "511503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789408265, "Key": "四川省宜宾市叙州区", "Value": "511504" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789408266, "Key": "四川省宜宾市江安县", "Value": "511523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789408267, "Key": "四川省宜宾市长宁县", "Value": "511524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789408268, "Key": "四川省宜宾市高县", "Value": "511525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789408269, "Key": "四川省宜宾市珙县", "Value": "511526" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789408270, "Key": "四川省宜宾市筠连县", "Value": "511527" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789408271, "Key": "四川省宜宾市兴文县", "Value": "511528" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789408272, "Key": "四川省宜宾市屏山县", "Value": "511529" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789408273, "Key": "四川省广安市", "Value": "511600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789408274, "Key": "四川省广安市广安区", "Value": "511602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789412357, "Key": "四川省广安市前锋区", "Value": "511603" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789412358, "Key": "四川省广安市岳池县", "Value": "511621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789412359, "Key": "四川省广安市武胜县", "Value": "511622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789412360, "Key": "四川省广安市邻水县", "Value": "511623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789412361, "Key": "四川省广安市华蓥市", "Value": "511681" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789412362, "Key": "四川省达州市", "Value": "511700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789412363, "Key": "四川省达州市通川区", "Value": "511702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789412364, "Key": "四川省达州市达川区", "Value": "511703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789412365, "Key": "四川省达州市宣汉县", "Value": "511722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789412366, "Key": "四川省达州市开江县", "Value": "511723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789412367, "Key": "四川省达州市大竹县", "Value": "511724" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789412368, "Key": "四川省达州市渠县", "Value": "511725" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789412369, "Key": "四川省达州市万源市", "Value": "511781" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789412370, "Key": "四川省雅安市", "Value": "511800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789416453, "Key": "四川省雅安市雨城区", "Value": "511802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789416454, "Key": "四川省雅安市名山区", "Value": "511803" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789416455, "Key": "四川省雅安市荥经县", "Value": "511822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789416456, "Key": "四川省雅安市汉源县", "Value": "511823" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789416457, "Key": "四川省雅安市石棉县", "Value": "511824" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789416458, "Key": "四川省雅安市天全县", "Value": "511825" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789416459, "Key": "四川省雅安市芦山县", "Value": "511826" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789416460, "Key": "四川省雅安市宝兴县", "Value": "511827" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789416461, "Key": "四川省巴中市", "Value": "511900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789416462, "Key": "四川省巴中市巴州区", "Value": "511902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789416463, "Key": "四川省巴中市恩阳区", "Value": "511903" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789416464, "Key": "四川省巴中市通江县", "Value": "511921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789416465, "Key": "四川省巴中市南江县", "Value": "511922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789416466, "Key": "四川省巴中市平昌县", "Value": "511923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789420549, "Key": "四川省资阳市", "Value": "512000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789420550, "Key": "四川省资阳市雁江区", "Value": "512002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789420551, "Key": "四川省资阳市安岳县", "Value": "512021" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789420552, "Key": "四川省资阳市乐至县", "Value": "512022" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789420553, "Key": "四川省阿坝藏族羌族自治州", "Value": "513200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789420554, "Key": "四川省阿坝藏族羌族自治州马尔康市", "Value": "513201" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789420555, "Key": "四川省阿坝藏族羌族自治州汶川县", "Value": "513221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789420556, "Key": "四川省阿坝藏族羌族自治州理县", "Value": "513222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789420557, "Key": "四川省阿坝藏族羌族自治州茂县", "Value": "513223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789420558, "Key": "四川省阿坝藏族羌族自治州松潘县", "Value": "513224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789420559, "Key": "四川省阿坝藏族羌族自治州九寨沟县", "Value": "513225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789420560, "Key": "四川省阿坝藏族羌族自治州金川县", "Value": "513226" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789420561, "Key": "四川省阿坝藏族羌族自治州小金县", "Value": "513227" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789420562, "Key": "四川省阿坝藏族羌族自治州黑水县", "Value": "513228" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789420563, "Key": "四川省阿坝藏族羌族自治州壤塘县", "Value": "513230" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789424645, "Key": "四川省阿坝藏族羌族自治州阿坝县", "Value": "513231" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789424646, "Key": "四川省阿坝藏族羌族自治州若尔盖县", "Value": "513232" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789424647, "Key": "四川省阿坝藏族羌族自治州红原县", "Value": "513233" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789424648, "Key": "四川省甘孜藏族自治州", "Value": "513300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789424649, "Key": "四川省甘孜藏族自治州康定市", "Value": "513301" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789424650, "Key": "四川省甘孜藏族自治州泸定县", "Value": "513322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789424651, "Key": "四川省甘孜藏族自治州丹巴县", "Value": "513323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789424652, "Key": "四川省甘孜藏族自治州九龙县", "Value": "513324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789424653, "Key": "四川省甘孜藏族自治州雅江县", "Value": "513325" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789424654, "Key": "四川省甘孜藏族自治州道孚县", "Value": "513326" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789424655, "Key": "四川省甘孜藏族自治州炉霍县", "Value": "513327" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789424656, "Key": "四川省甘孜藏族自治州甘孜县", "Value": "513328" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789424657, "Key": "四川省甘孜藏族自治州新龙县", "Value": "513329" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789428741, "Key": "四川省甘孜藏族自治州德格县", "Value": "513330" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789428742, "Key": "四川省甘孜藏族自治州白玉县", "Value": "513331" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789428743, "Key": "四川省甘孜藏族自治州石渠县", "Value": "513332" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789428744, "Key": "四川省甘孜藏族自治州色达县", "Value": "513333" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789428745, "Key": "四川省甘孜藏族自治州理塘县", "Value": "513334" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789428746, "Key": "四川省甘孜藏族自治州巴塘县", "Value": "513335" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789428747, "Key": "四川省甘孜藏族自治州乡城县", "Value": "513336" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789428748, "Key": "四川省甘孜藏族自治州稻城县", "Value": "513337" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789428749, "Key": "四川省甘孜藏族自治州得荣县", "Value": "513338" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789428750, "Key": "四川省凉山彝族自治州", "Value": "513400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789428751, "Key": "四川省凉山彝族自治州西昌市", "Value": "513401" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789428752, "Key": "四川省凉山彝族自治州会理市", "Value": "513402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789428753, "Key": "四川省凉山彝族自治州木里藏族自治县", "Value": "513422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789428754, "Key": "四川省凉山彝族自治州盐源县", "Value": "513423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789428755, "Key": "四川省凉山彝族自治州德昌县", "Value": "513424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789432837, "Key": "四川省凉山彝族自治州会东县", "Value": "513426" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789432838, "Key": "四川省凉山彝族自治州宁南县", "Value": "513427" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789432839, "Key": "四川省凉山彝族自治州普格县", "Value": "513428" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789432840, "Key": "四川省凉山彝族自治州布拖县", "Value": "513429" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789432841, "Key": "四川省凉山彝族自治州金阳县", "Value": "513430" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789432842, "Key": "四川省凉山彝族自治州昭觉县", "Value": "513431" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789432843, "Key": "四川省凉山彝族自治州喜德县", "Value": "513432" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789432844, "Key": "四川省凉山彝族自治州冕宁县", "Value": "513433" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789432845, "Key": "四川省凉山彝族自治州越西县", "Value": "513434" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789432846, "Key": "四川省凉山彝族自治州甘洛县", "Value": "513435" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789432847, "Key": "四川省凉山彝族自治州美姑县", "Value": "513436" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789432848, "Key": "四川省凉山彝族自治州雷波县", "Value": "513437" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789432849, "Key": "贵州省", "Value": "520000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789432850, "Key": "贵州省贵阳市", "Value": "520100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789436933, "Key": "贵州省贵阳市南明区", "Value": "520102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789436934, "Key": "贵州省贵阳市云岩区", "Value": "520103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789436935, "Key": "贵州省贵阳市花溪区", "Value": "520111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789436936, "Key": "贵州省贵阳市乌当区", "Value": "520112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789436937, "Key": "贵州省贵阳市白云区", "Value": "520113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789436938, "Key": "贵州省贵阳市观山湖区", "Value": "520115" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789436939, "Key": "贵州省贵阳市开阳县", "Value": "520121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789436940, "Key": "贵州省贵阳市息烽县", "Value": "520122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789436941, "Key": "贵州省贵阳市修文县", "Value": "520123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789436942, "Key": "贵州省贵阳市清镇市", "Value": "520181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789436943, "Key": "贵州省六盘水市", "Value": "520200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789436944, "Key": "贵州省六盘水市钟山区", "Value": "520201" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789441029, "Key": "贵州省六盘水市六枝特区", "Value": "520203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789441030, "Key": "贵州省六盘水市水城区", "Value": "520204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789441031, "Key": "贵州省六盘水市盘州市", "Value": "520281" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789441032, "Key": "贵州省遵义市", "Value": "520300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789441033, "Key": "贵州省遵义市红花岗区", "Value": "520302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789441034, "Key": "贵州省遵义市汇川区", "Value": "520303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789441035, "Key": "贵州省遵义市播州区", "Value": "520304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789441036, "Key": "贵州省遵义市桐梓县", "Value": "520322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789441037, "Key": "贵州省遵义市绥阳县", "Value": "520323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789445125, "Key": "贵州省遵义市正安县", "Value": "520324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789445126, "Key": "贵州省遵义市道真仡佬族苗族自治县", "Value": "520325" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789445127, "Key": "贵州省遵义市务川仡佬族苗族自治县", "Value": "520326" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789445128, "Key": "贵州省遵义市凤冈县", "Value": "520327" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789445129, "Key": "贵州省遵义市湄潭县", "Value": "520328" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789445130, "Key": "贵州省遵义市余庆县", "Value": "520329" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789445131, "Key": "贵州省遵义市习水县", "Value": "520330" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789445132, "Key": "贵州省遵义市赤水市", "Value": "520381" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789445133, "Key": "贵州省遵义市仁怀市", "Value": "520382" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789445134, "Key": "贵州省安顺市", "Value": "520400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789445135, "Key": "贵州省安顺市西秀区", "Value": "520402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789445136, "Key": "贵州省安顺市平坝区", "Value": "520403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789445137, "Key": "贵州省安顺市普定县", "Value": "520422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789449221, "Key": "贵州省安顺市镇宁布依族苗族自治县", "Value": "520423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789449222, "Key": "贵州省安顺市关岭布依族苗族自治县", "Value": "520424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789449223, "Key": "贵州省安顺市紫云苗族布依族自治县", "Value": "520425" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789449224, "Key": "贵州省毕节市", "Value": "520500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789449225, "Key": "贵州省毕节市七星关区", "Value": "520502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789449226, "Key": "贵州省毕节市大方县", "Value": "520521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789449227, "Key": "贵州省毕节市金沙县", "Value": "520523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789449228, "Key": "贵州省毕节市织金县", "Value": "520524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789449229, "Key": "贵州省毕节市纳雍县", "Value": "520525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789449230, "Key": "贵州省毕节市威宁彝族回族苗族自治县", "Value": "520526" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789449231, "Key": "贵州省毕节市赫章县", "Value": "520527" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789449232, "Key": "贵州省毕节市黔西市", "Value": "520581" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789449233, "Key": "贵州省铜仁市", "Value": "520600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789449234, "Key": "贵州省铜仁市碧江区", "Value": "520602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789453317, "Key": "贵州省铜仁市万山区", "Value": "520603" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789453318, "Key": "贵州省铜仁市江口县", "Value": "520621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789453319, "Key": "贵州省铜仁市玉屏侗族自治县", "Value": "520622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789453320, "Key": "贵州省铜仁市石阡县", "Value": "520623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789453321, "Key": "贵州省铜仁市思南县", "Value": "520624" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789453322, "Key": "贵州省铜仁市印江土家族苗族自治县", "Value": "520625" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789453323, "Key": "贵州省铜仁市德江县", "Value": "520626" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789453324, "Key": "贵州省铜仁市沿河土家族自治县", "Value": "520627" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789453325, "Key": "贵州省铜仁市松桃苗族自治县", "Value": "520628" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789453326, "Key": "贵州省黔西南布依族苗族自治州", "Value": "522300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789453327, "Key": "贵州省黔西南布依族苗族自治州兴义市", "Value": "522301" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789453328, "Key": "贵州省黔西南布依族苗族自治州兴仁市", "Value": "522302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789453329, "Key": "贵州省黔西南布依族苗族自治州普安县", "Value": "522323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789457413, "Key": "贵州省黔西南布依族苗族自治州晴隆县", "Value": "522324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789457414, "Key": "贵州省黔西南布依族苗族自治州贞丰县", "Value": "522325" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789457415, "Key": "贵州省黔西南布依族苗族自治州望谟县", "Value": "522326" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789457416, "Key": "贵州省黔西南布依族苗族自治州册亨县", "Value": "522327" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789457417, "Key": "贵州省黔西南布依族苗族自治州安龙县", "Value": "522328" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789457418, "Key": "贵州省黔东南苗族侗族自治州", "Value": "522600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789457419, "Key": "贵州省黔东南苗族侗族自治州凯里市", "Value": "522601" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789457420, "Key": "贵州省黔东南苗族侗族自治州黄平县", "Value": "522622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789457421, "Key": "贵州省黔东南苗族侗族自治州施秉县", "Value": "522623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789457422, "Key": "贵州省黔东南苗族侗族自治州三穗县", "Value": "522624" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789457423, "Key": "贵州省黔东南苗族侗族自治州镇远县", "Value": "522625" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789457424, "Key": "贵州省黔东南苗族侗族自治州岑巩县", "Value": "522626" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789457425, "Key": "贵州省黔东南苗族侗族自治州天柱县", "Value": "522627" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789457426, "Key": "贵州省黔东南苗族侗族自治州锦屏县", "Value": "522628" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789461509, "Key": "贵州省黔东南苗族侗族自治州剑河县", "Value": "522629" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789461510, "Key": "贵州省黔东南苗族侗族自治州台江县", "Value": "522630" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789461511, "Key": "贵州省黔东南苗族侗族自治州黎平县", "Value": "522631" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789461512, "Key": "贵州省黔东南苗族侗族自治州榕江县", "Value": "522632" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789461513, "Key": "贵州省黔东南苗族侗族自治州从江县", "Value": "522633" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789461514, "Key": "贵州省黔东南苗族侗族自治州雷山县", "Value": "522634" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789461515, "Key": "贵州省黔东南苗族侗族自治州麻江县", "Value": "522635" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789461516, "Key": "贵州省黔东南苗族侗族自治州丹寨县", "Value": "522636" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789461517, "Key": "贵州省黔南布依族苗族自治州", "Value": "522700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789461518, "Key": "贵州省黔南布依族苗族自治州都匀市", "Value": "522701" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789461519, "Key": "贵州省黔南布依族苗族自治州福泉市", "Value": "522702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789461520, "Key": "贵州省黔南布依族苗族自治州荔波县", "Value": "522722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789461521, "Key": "贵州省黔南布依族苗族自治州贵定县", "Value": "522723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789465605, "Key": "贵州省黔南布依族苗族自治州瓮安县", "Value": "522725" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789465606, "Key": "贵州省黔南布依族苗族自治州独山县", "Value": "522726" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789465607, "Key": "贵州省黔南布依族苗族自治州平塘县", "Value": "522727" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789465608, "Key": "贵州省黔南布依族苗族自治州罗甸县", "Value": "522728" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789465609, "Key": "贵州省黔南布依族苗族自治州长顺县", "Value": "522729" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789465610, "Key": "贵州省黔南布依族苗族自治州龙里县", "Value": "522730" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789465611, "Key": "贵州省黔南布依族苗族自治州惠水县", "Value": "522731" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789465612, "Key": "贵州省黔南布依族苗族自治州三都水族自治县", "Value": "522732" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789465613, "Key": "云南省", "Value": "530000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789465614, "Key": "云南省昆明市", "Value": "530100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789465615, "Key": "云南省昆明市五华区", "Value": "530102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789465616, "Key": "云南省昆明市盘龙区", "Value": "530103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789465617, "Key": "云南省昆明市官渡区", "Value": "530111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789465618, "Key": "云南省昆明市西山区", "Value": "530112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789469701, "Key": "云南省昆明市东川区", "Value": "530113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789469702, "Key": "云南省昆明市呈贡区", "Value": "530114" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789469703, "Key": "云南省昆明市晋宁区", "Value": "530115" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789469704, "Key": "云南省昆明市富民县", "Value": "530124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789469705, "Key": "云南省昆明市宜良县", "Value": "530125" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789469706, "Key": "云南省昆明市石林彝族自治县", "Value": "530126" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789469707, "Key": "云南省昆明市嵩明县", "Value": "530127" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789469708, "Key": "云南省昆明市禄劝彝族苗族自治县", "Value": "530128" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789469709, "Key": "云南省昆明市寻甸回族彝族自治县", "Value": "530129" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789469710, "Key": "云南省昆明市安宁市", "Value": "530181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789469711, "Key": "云南省曲靖市", "Value": "530300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789469712, "Key": "云南省曲靖市麒麟区", "Value": "530302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789469713, "Key": "云南省曲靖市沾益区", "Value": "530303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789473797, "Key": "云南省曲靖市马龙区", "Value": "530304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789473798, "Key": "云南省曲靖市陆良县", "Value": "530322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789473799, "Key": "云南省曲靖市师宗县", "Value": "530323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789473800, "Key": "云南省曲靖市罗平县", "Value": "530324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789473801, "Key": "云南省曲靖市富源县", "Value": "530325" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789473802, "Key": "云南省曲靖市会泽县", "Value": "530326" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789473803, "Key": "云南省曲靖市宣威市", "Value": "530381" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789473804, "Key": "云南省玉溪市", "Value": "530400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789473805, "Key": "云南省玉溪市红塔区", "Value": "530402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789473806, "Key": "云南省玉溪市江川区", "Value": "530403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789473807, "Key": "云南省玉溪市通海县", "Value": "530423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789477893, "Key": "云南省玉溪市华宁县", "Value": "530424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789477894, "Key": "云南省玉溪市易门县", "Value": "530425" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789477895, "Key": "云南省玉溪市峨山彝族自治县", "Value": "530426" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789477896, "Key": "云南省玉溪市新平彝族傣族自治县", "Value": "530427" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789477897, "Key": "云南省玉溪市元江哈尼族彝族傣族自治县", "Value": "530428" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789477898, "Key": "云南省玉溪市澄江市", "Value": "530481" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789477899, "Key": "云南省保山市", "Value": "530500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789477900, "Key": "云南省保山市隆阳区", "Value": "530502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789477901, "Key": "云南省保山市施甸县", "Value": "530521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789477902, "Key": "云南省保山市龙陵县", "Value": "530523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789477903, "Key": "云南省保山市昌宁县", "Value": "530524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789477904, "Key": "云南省保山市腾冲市", "Value": "530581" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789477905, "Key": "云南省昭通市", "Value": "530600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789477906, "Key": "云南省昭通市昭阳区", "Value": "530602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789481989, "Key": "云南省昭通市鲁甸县", "Value": "530621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789481990, "Key": "云南省昭通市巧家县", "Value": "530622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789481991, "Key": "云南省昭通市盐津县", "Value": "530623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789481992, "Key": "云南省昭通市大关县", "Value": "530624" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789481993, "Key": "云南省昭通市永善县", "Value": "530625" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789481994, "Key": "云南省昭通市绥江县", "Value": "530626" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789481995, "Key": "云南省昭通市镇雄县", "Value": "530627" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789481996, "Key": "云南省昭通市彝良县", "Value": "530628" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789481997, "Key": "云南省昭通市威信县", "Value": "530629" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789481998, "Key": "云南省昭通市水富市", "Value": "530681" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789481999, "Key": "云南省丽江市", "Value": "530700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789482000, "Key": "云南省丽江市古城区", "Value": "530702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789482001, "Key": "云南省丽江市玉龙纳西族自治县", "Value": "530721" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789482002, "Key": "云南省丽江市永胜县", "Value": "530722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789486085, "Key": "云南省丽江市华坪县", "Value": "530723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789486086, "Key": "云南省丽江市宁蒗彝族自治县", "Value": "530724" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789486087, "Key": "云南省普洱市", "Value": "530800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789486088, "Key": "云南省普洱市思茅区", "Value": "530802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789486089, "Key": "云南省普洱市宁洱哈尼族彝族自治县", "Value": "530821" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789486090, "Key": "云南省普洱市墨江哈尼族自治县", "Value": "530822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789486091, "Key": "云南省普洱市景东彝族自治县", "Value": "530823" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789486092, "Key": "云南省普洱市景谷傣族彝族自治县", "Value": "530824" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789486093, "Key": "云南省普洱市镇沅彝族哈尼族拉祜族自治县", "Value": "530825" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789486094, "Key": "云南省普洱市江城哈尼族彝族自治县", "Value": "530826" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789486095, "Key": "云南省普洱市孟连傣族拉祜族佤族自治县", "Value": "530827" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789486096, "Key": "云南省普洱市澜沧拉祜族自治县", "Value": "530828" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789486097, "Key": "云南省普洱市西盟佤族自治县", "Value": "530829" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789486098, "Key": "云南省临沧市", "Value": "530900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789490181, "Key": "云南省临沧市临翔区", "Value": "530902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789490182, "Key": "云南省临沧市凤庆县", "Value": "530921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789490183, "Key": "云南省临沧市云县", "Value": "530922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789490184, "Key": "云南省临沧市永德县", "Value": "530923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789490185, "Key": "云南省临沧市镇康县", "Value": "530924" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789490186, "Key": "云南省临沧市双江拉祜族佤族布朗族傣族自治县", "Value": "530925" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789490187, "Key": "云南省临沧市耿马傣族佤族自治县", "Value": "530926" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789490188, "Key": "云南省临沧市沧源佤族自治县", "Value": "530927" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789490189, "Key": "云南省楚雄彝族自治州", "Value": "532300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789490190, "Key": "云南省楚雄彝族自治州楚雄市", "Value": "532301" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789490191, "Key": "云南省楚雄彝族自治州禄丰市", "Value": "532302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789490192, "Key": "云南省楚雄彝族自治州双柏县", "Value": "532322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789490193, "Key": "云南省楚雄彝族自治州牟定县", "Value": "532323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789490194, "Key": "云南省楚雄彝族自治州南华县", "Value": "532324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789494277, "Key": "云南省楚雄彝族自治州姚安县", "Value": "532325" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789494278, "Key": "云南省楚雄彝族自治州大姚县", "Value": "532326" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789494279, "Key": "云南省楚雄彝族自治州永仁县", "Value": "532327" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789494280, "Key": "云南省楚雄彝族自治州元谋县", "Value": "532328" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789494281, "Key": "云南省楚雄彝族自治州武定县", "Value": "532329" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789494282, "Key": "云南省红河哈尼族彝族自治州", "Value": "532500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789494283, "Key": "云南省红河哈尼族彝族自治州个旧市", "Value": "532501" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789494284, "Key": "云南省红河哈尼族彝族自治州开远市", "Value": "532502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789494285, "Key": "云南省红河哈尼族彝族自治州蒙自市", "Value": "532503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789494286, "Key": "云南省红河哈尼族彝族自治州弥勒市", "Value": "532504" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789494287, "Key": "云南省红河哈尼族彝族自治州屏边苗族自治县", "Value": "532523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789494288, "Key": "云南省红河哈尼族彝族自治州建水县", "Value": "532524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789494289, "Key": "云南省红河哈尼族彝族自治州石屏县", "Value": "532525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789494290, "Key": "云南省红河哈尼族彝族自治州泸西县", "Value": "532527" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789494291, "Key": "云南省红河哈尼族彝族自治州元阳县", "Value": "532528" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789498373, "Key": "云南省红河哈尼族彝族自治州红河县", "Value": "532529" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789498374, "Key": "云南省红河哈尼族彝族自治州金平苗族瑶族傣族自治县", "Value": "532530" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789498375, "Key": "云南省红河哈尼族彝族自治州绿春县", "Value": "532531" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789498376, "Key": "云南省红河哈尼族彝族自治州河口瑶族自治县", "Value": "532532" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789498377, "Key": "云南省文山壮族苗族自治州", "Value": "532600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789498378, "Key": "云南省文山壮族苗族自治州文山市", "Value": "532601" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789498379, "Key": "云南省文山壮族苗族自治州砚山县", "Value": "532622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789498380, "Key": "云南省文山壮族苗族自治州西畴县", "Value": "532623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789498381, "Key": "云南省文山壮族苗族自治州麻栗坡县", "Value": "532624" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789498382, "Key": "云南省文山壮族苗族自治州马关县", "Value": "532625" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789498383, "Key": "云南省文山壮族苗族自治州丘北县", "Value": "532626" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789498384, "Key": "云南省文山壮族苗族自治州广南县", "Value": "532627" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789498385, "Key": "云南省文山壮族苗族自治州富宁县", "Value": "532628" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789498386, "Key": "云南省西双版纳傣族自治州", "Value": "532800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789502469, "Key": "云南省西双版纳傣族自治州景洪市", "Value": "532801" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789502470, "Key": "云南省西双版纳傣族自治州勐海县", "Value": "532822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789502471, "Key": "云南省西双版纳傣族自治州勐腊县", "Value": "532823" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789502472, "Key": "云南省大理白族自治州", "Value": "532900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789502473, "Key": "云南省大理白族自治州大理市", "Value": "532901" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789502474, "Key": "云南省大理白族自治州漾濞彝族自治县", "Value": "532922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789502475, "Key": "云南省大理白族自治州祥云县", "Value": "532923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789502476, "Key": "云南省大理白族自治州宾川县", "Value": "532924" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789502477, "Key": "云南省大理白族自治州弥渡县", "Value": "532925" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789502478, "Key": "云南省大理白族自治州南涧彝族自治县", "Value": "532926" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789502479, "Key": "云南省大理白族自治州巍山彝族回族自治县", "Value": "532927" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789502480, "Key": "云南省大理白族自治州永平县", "Value": "532928" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789502481, "Key": "云南省大理白族自治州云龙县", "Value": "532929" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789502482, "Key": "云南省大理白族自治州洱源县", "Value": "532930" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789506565, "Key": "云南省大理白族自治州剑川县", "Value": "532931" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789506566, "Key": "云南省大理白族自治州鹤庆县", "Value": "532932" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789506567, "Key": "云南省德宏傣族景颇族自治州", "Value": "533100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789506568, "Key": "云南省德宏傣族景颇族自治州瑞丽市", "Value": "533102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789506569, "Key": "云南省德宏傣族景颇族自治州芒市", "Value": "533103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789506570, "Key": "云南省德宏傣族景颇族自治州梁河县", "Value": "533122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789506571, "Key": "云南省德宏傣族景颇族自治州盈江县", "Value": "533123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789506572, "Key": "云南省德宏傣族景颇族自治州陇川县", "Value": "533124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789506573, "Key": "云南省怒江傈僳族自治州", "Value": "533300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789506574, "Key": "云南省怒江傈僳族自治州泸水市", "Value": "533301" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789506575, "Key": "云南省怒江傈僳族自治州福贡县", "Value": "533323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789506576, "Key": "云南省怒江傈僳族自治州贡山独龙族怒族自治县", "Value": "533324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789506577, "Key": "云南省怒江傈僳族自治州兰坪白族普米族自治县", "Value": "533325" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789506578, "Key": "云南省迪庆藏族自治州", "Value": "533400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789510661, "Key": "云南省迪庆藏族自治州香格里拉市", "Value": "533401" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789510662, "Key": "云南省迪庆藏族自治州德钦县", "Value": "533422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789510663, "Key": "云南省迪庆藏族自治州维西傈僳族自治县", "Value": "533423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789510664, "Key": "西藏自治区", "Value": "540000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789510665, "Key": "西藏自治区拉萨市", "Value": "540100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789510666, "Key": "西藏自治区拉萨市城关区", "Value": "540102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789510667, "Key": "西藏自治区拉萨市堆龙德庆区", "Value": "540103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789510668, "Key": "西藏自治区拉萨市达孜区", "Value": "540104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789510669, "Key": "西藏自治区拉萨市林周县", "Value": "540121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789510670, "Key": "西藏自治区拉萨市当雄县", "Value": "540122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789510671, "Key": "西藏自治区拉萨市尼木县", "Value": "540123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789510672, "Key": "西藏自治区拉萨市曲水县", "Value": "540124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789510673, "Key": "西藏自治区拉萨市墨竹工卡县", "Value": "540127" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789510674, "Key": "西藏自治区日喀则市", "Value": "540200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789514757, "Key": "西藏自治区日喀则市桑珠孜区", "Value": "540202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789514758, "Key": "西藏自治区日喀则市南木林县", "Value": "540221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789514759, "Key": "西藏自治区日喀则市江孜县", "Value": "540222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789514760, "Key": "西藏自治区日喀则市定日县", "Value": "540223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789514761, "Key": "西藏自治区日喀则市萨迦县", "Value": "540224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789514762, "Key": "西藏自治区日喀则市拉孜县", "Value": "540225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789514763, "Key": "西藏自治区日喀则市昂仁县", "Value": "540226" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789514764, "Key": "西藏自治区日喀则市谢通门县", "Value": "540227" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789514765, "Key": "西藏自治区日喀则市白朗县", "Value": "540228" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789514766, "Key": "西藏自治区日喀则市仁布县", "Value": "540229" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789514767, "Key": "西藏自治区日喀则市康马县", "Value": "540230" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789514768, "Key": "西藏自治区日喀则市定结县", "Value": "540231" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789514769, "Key": "西藏自治区日喀则市仲巴县", "Value": "540232" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789514770, "Key": "西藏自治区日喀则市亚东县", "Value": "540233" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789514771, "Key": "西藏自治区日喀则市吉隆县", "Value": "540234" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789518853, "Key": "西藏自治区日喀则市聂拉木县", "Value": "540235" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789518854, "Key": "西藏自治区日喀则市萨嘎县", "Value": "540236" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789518855, "Key": "西藏自治区日喀则市岗巴县", "Value": "540237" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789518856, "Key": "西藏自治区昌都市", "Value": "540300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789518857, "Key": "西藏自治区昌都市卡若区", "Value": "540302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789518858, "Key": "西藏自治区昌都市江达县", "Value": "540321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789518859, "Key": "西藏自治区昌都市贡觉县", "Value": "540322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789518860, "Key": "西藏自治区昌都市类乌齐县", "Value": "540323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789518861, "Key": "西藏自治区昌都市丁青县", "Value": "540324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789518862, "Key": "西藏自治区昌都市察雅县", "Value": "540325" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789518863, "Key": "西藏自治区昌都市八宿县", "Value": "540326" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789522949, "Key": "西藏自治区昌都市左贡县", "Value": "540327" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789522950, "Key": "西藏自治区昌都市芒康县", "Value": "540328" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789522951, "Key": "西藏自治区昌都市洛隆县", "Value": "540329" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789522952, "Key": "西藏自治区昌都市边坝县", "Value": "540330" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789522953, "Key": "西藏自治区林芝市", "Value": "540400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789522954, "Key": "西藏自治区林芝市巴宜区", "Value": "540402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789522955, "Key": "西藏自治区林芝市工布江达县", "Value": "540421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789522956, "Key": "西藏自治区林芝市米林县", "Value": "540422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789522957, "Key": "西藏自治区林芝市墨脱县", "Value": "540423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789522958, "Key": "西藏自治区林芝市波密县", "Value": "540424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789522959, "Key": "西藏自治区林芝市察隅县", "Value": "540425" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789527045, "Key": "西藏自治区林芝市朗县", "Value": "540426" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789527046, "Key": "西藏自治区山南市", "Value": "540500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789527047, "Key": "西藏自治区山南市乃东区", "Value": "540502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789527048, "Key": "西藏自治区山南市扎囊县", "Value": "540521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789527049, "Key": "西藏自治区山南市贡嘎县", "Value": "540522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789527050, "Key": "西藏自治区山南市桑日县", "Value": "540523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789527051, "Key": "西藏自治区山南市琼结县", "Value": "540524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789527052, "Key": "西藏自治区山南市曲松县", "Value": "540525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789527053, "Key": "西藏自治区山南市措美县", "Value": "540526" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789527054, "Key": "西藏自治区山南市洛扎县", "Value": "540527" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789527055, "Key": "西藏自治区山南市加查县", "Value": "540528" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789527056, "Key": "西藏自治区山南市隆子县", "Value": "540529" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789527057, "Key": "西藏自治区山南市错那县", "Value": "540530" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789527058, "Key": "西藏自治区山南市浪卡子县", "Value": "540531" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789527059, "Key": "西藏自治区那曲市", "Value": "540600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789531141, "Key": "西藏自治区那曲市色尼区", "Value": "540602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789531142, "Key": "西藏自治区那曲市嘉黎县", "Value": "540621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789531143, "Key": "西藏自治区那曲市比如县", "Value": "540622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789531144, "Key": "西藏自治区那曲市聂荣县", "Value": "540623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789531145, "Key": "西藏自治区那曲市安多县", "Value": "540624" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789531146, "Key": "西藏自治区那曲市申扎县", "Value": "540625" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789531147, "Key": "西藏自治区那曲市索县", "Value": "540626" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789531148, "Key": "西藏自治区那曲市班戈县", "Value": "540627" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789531149, "Key": "西藏自治区那曲市巴青县", "Value": "540628" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789531150, "Key": "西藏自治区那曲市尼玛县", "Value": "540629" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789531151, "Key": "西藏自治区那曲市双湖县", "Value": "540630" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789531152, "Key": "西藏自治区阿里地区", "Value": "542500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789531153, "Key": "西藏自治区阿里地区普兰县", "Value": "542521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789531154, "Key": "西藏自治区阿里地区札达县", "Value": "542522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789535237, "Key": "西藏自治区阿里地区噶尔县", "Value": "542523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789535238, "Key": "西藏自治区阿里地区日土县", "Value": "542524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789535239, "Key": "西藏自治区阿里地区革吉县", "Value": "542525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789535240, "Key": "西藏自治区阿里地区改则县", "Value": "542526" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789535241, "Key": "西藏自治区阿里地区措勤县", "Value": "542527" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789535242, "Key": "陕西省", "Value": "610000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789535243, "Key": "陕西省西安市", "Value": "610100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789535244, "Key": "陕西省西安市新城区", "Value": "610102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789535245, "Key": "陕西省西安市碑林区", "Value": "610103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789535246, "Key": "陕西省西安市莲湖区", "Value": "610104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789535247, "Key": "陕西省西安市灞桥区", "Value": "610111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789535248, "Key": "陕西省西安市未央区", "Value": "610112" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789539333, "Key": "陕西省西安市雁塔区", "Value": "610113" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789539334, "Key": "陕西省西安市阎良区", "Value": "610114" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789539335, "Key": "陕西省西安市临潼区", "Value": "610115" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789539336, "Key": "陕西省西安市长安区", "Value": "610116" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789539337, "Key": "陕西省西安市高陵区", "Value": "610117" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789539338, "Key": "陕西省西安市鄠邑区", "Value": "610118" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789539339, "Key": "陕西省西安市蓝田县", "Value": "610122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789539340, "Key": "陕西省西安市周至县", "Value": "610124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789539341, "Key": "陕西省铜川市", "Value": "610200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789539342, "Key": "陕西省铜川市王益区", "Value": "610202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789539343, "Key": "陕西省铜川市印台区", "Value": "610203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789539344, "Key": "陕西省铜川市耀州区", "Value": "610204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789539345, "Key": "陕西省铜川市宜君县", "Value": "610222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789539346, "Key": "陕西省宝鸡市", "Value": "610300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789543429, "Key": "陕西省宝鸡市渭滨区", "Value": "610302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789543430, "Key": "陕西省宝鸡市金台区", "Value": "610303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789543431, "Key": "陕西省宝鸡市陈仓区", "Value": "610304" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789543432, "Key": "陕西省宝鸡市凤翔区", "Value": "610305" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789543433, "Key": "陕西省宝鸡市岐山县", "Value": "610323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789543434, "Key": "陕西省宝鸡市扶风县", "Value": "610324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789543435, "Key": "陕西省宝鸡市眉县", "Value": "610326" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789543436, "Key": "陕西省宝鸡市陇县", "Value": "610327" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789543437, "Key": "陕西省宝鸡市千阳县", "Value": "610328" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789543438, "Key": "陕西省宝鸡市麟游县", "Value": "610329" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789543439, "Key": "陕西省宝鸡市凤县", "Value": "610330" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789543440, "Key": "陕西省宝鸡市太白县", "Value": "610331" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789543441, "Key": "陕西省咸阳市", "Value": "610400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789543442, "Key": "陕西省咸阳市秦都区", "Value": "610402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789543443, "Key": "陕西省咸阳市杨陵区", "Value": "610403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789547525, "Key": "陕西省咸阳市渭城区", "Value": "610404" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789547526, "Key": "陕西省咸阳市三原县", "Value": "610422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789547527, "Key": "陕西省咸阳市泾阳县", "Value": "610423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789547528, "Key": "陕西省咸阳市乾县", "Value": "610424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789547529, "Key": "陕西省咸阳市礼泉县", "Value": "610425" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789547530, "Key": "陕西省咸阳市永寿县", "Value": "610426" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789547531, "Key": "陕西省咸阳市长武县", "Value": "610428" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789547532, "Key": "陕西省咸阳市旬邑县", "Value": "610429" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789547533, "Key": "陕西省咸阳市淳化县", "Value": "610430" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789547534, "Key": "陕西省咸阳市武功县", "Value": "610431" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789547535, "Key": "陕西省咸阳市兴平市", "Value": "610481" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789547536, "Key": "陕西省咸阳市彬州市", "Value": "610482" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789547537, "Key": "陕西省渭南市", "Value": "610500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789547538, "Key": "陕西省渭南市临渭区", "Value": "610502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789551621, "Key": "陕西省渭南市华州区", "Value": "610503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789551622, "Key": "陕西省渭南市潼关县", "Value": "610522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789551623, "Key": "陕西省渭南市大荔县", "Value": "610523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789551624, "Key": "陕西省渭南市合阳县", "Value": "610524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789551625, "Key": "陕西省渭南市澄城县", "Value": "610525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789551626, "Key": "陕西省渭南市蒲城县", "Value": "610526" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789551627, "Key": "陕西省渭南市白水县", "Value": "610527" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789551628, "Key": "陕西省渭南市富平县", "Value": "610528" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789551629, "Key": "陕西省渭南市韩城市", "Value": "610581" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789551630, "Key": "陕西省渭南市华阴市", "Value": "610582" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789551631, "Key": "陕西省延安市", "Value": "610600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789551632, "Key": "陕西省延安市宝塔区", "Value": "610602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789551633, "Key": "陕西省延安市安塞区", "Value": "610603" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789551634, "Key": "陕西省延安市延长县", "Value": "610621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789555717, "Key": "陕西省延安市延川县", "Value": "610622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789555718, "Key": "陕西省延安市志丹县", "Value": "610625" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789555719, "Key": "陕西省延安市吴起县", "Value": "610626" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789555720, "Key": "陕西省延安市甘泉县", "Value": "610627" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789555721, "Key": "陕西省延安市富县", "Value": "610628" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789555722, "Key": "陕西省延安市洛川县", "Value": "610629" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789555723, "Key": "陕西省延安市宜川县", "Value": "610630" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789555724, "Key": "陕西省延安市黄龙县", "Value": "610631" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789555725, "Key": "陕西省延安市黄陵县", "Value": "610632" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789555726, "Key": "陕西省延安市子长市", "Value": "610681" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789555727, "Key": "陕西省汉中市", "Value": "610700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789555728, "Key": "陕西省汉中市汉台区", "Value": "610702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789555729, "Key": "陕西省汉中市南郑区", "Value": "610703" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789555730, "Key": "陕西省汉中市城固县", "Value": "610722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789559813, "Key": "陕西省汉中市洋县", "Value": "610723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789559814, "Key": "陕西省汉中市西乡县", "Value": "610724" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789559815, "Key": "陕西省汉中市勉县", "Value": "610725" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789559816, "Key": "陕西省汉中市宁强县", "Value": "610726" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789559817, "Key": "陕西省汉中市略阳县", "Value": "610727" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789559818, "Key": "陕西省汉中市镇巴县", "Value": "610728" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789559819, "Key": "陕西省汉中市留坝县", "Value": "610729" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789559820, "Key": "陕西省汉中市佛坪县", "Value": "610730" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789559821, "Key": "陕西省榆林市", "Value": "610800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789559822, "Key": "陕西省榆林市榆阳区", "Value": "610802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789559823, "Key": "陕西省榆林市横山区", "Value": "610803" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789559824, "Key": "陕西省榆林市府谷县", "Value": "610822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789559825, "Key": "陕西省榆林市靖边县", "Value": "610824" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789559826, "Key": "陕西省榆林市定边县", "Value": "610825" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789563909, "Key": "陕西省榆林市绥德县", "Value": "610826" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789563910, "Key": "陕西省榆林市米脂县", "Value": "610827" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789563911, "Key": "陕西省榆林市佳县", "Value": "610828" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789563912, "Key": "陕西省榆林市吴堡县", "Value": "610829" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789563913, "Key": "陕西省榆林市清涧县", "Value": "610830" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789563914, "Key": "陕西省榆林市子洲县", "Value": "610831" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789563915, "Key": "陕西省榆林市神木市", "Value": "610881" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789563916, "Key": "陕西省安康市", "Value": "610900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789563917, "Key": "陕西省安康市汉滨区", "Value": "610902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789563918, "Key": "陕西省安康市汉阴县", "Value": "610921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789563919, "Key": "陕西省安康市石泉县", "Value": "610922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789563920, "Key": "陕西省安康市宁陕县", "Value": "610923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789563921, "Key": "陕西省安康市紫阳县", "Value": "610924" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789563922, "Key": "陕西省安康市岚皋县", "Value": "610925" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789563923, "Key": "陕西省安康市平利县", "Value": "610926" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789568005, "Key": "陕西省安康市镇坪县", "Value": "610927" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789568006, "Key": "陕西省安康市白河县", "Value": "610929" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789568007, "Key": "陕西省安康市旬阳市", "Value": "610981" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789568008, "Key": "陕西省商洛市", "Value": "611000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789568009, "Key": "陕西省商洛市商州区", "Value": "611002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789568010, "Key": "陕西省商洛市洛南县", "Value": "611021" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789568011, "Key": "陕西省商洛市丹凤县", "Value": "611022" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789568012, "Key": "陕西省商洛市商南县", "Value": "611023" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789568013, "Key": "陕西省商洛市山阳县", "Value": "611024" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789568014, "Key": "陕西省商洛市镇安县", "Value": "611025" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789568015, "Key": "陕西省商洛市柞水县", "Value": "611026" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789568016, "Key": "甘肃省", "Value": "620000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789568017, "Key": "甘肃省兰州市", "Value": "620100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789568018, "Key": "甘肃省兰州市城关区", "Value": "620102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789572101, "Key": "甘肃省兰州市七里河区", "Value": "620103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789572102, "Key": "甘肃省兰州市西固区", "Value": "620104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789572103, "Key": "甘肃省兰州市安宁区", "Value": "620105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789572104, "Key": "甘肃省兰州市红古区", "Value": "620111" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789572105, "Key": "甘肃省兰州市永登县", "Value": "620121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789572106, "Key": "甘肃省兰州市皋兰县", "Value": "620122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789572107, "Key": "甘肃省兰州市榆中县", "Value": "620123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789572108, "Key": "甘肃省兰州市嘉峪关市", "Value": "620200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789572109, "Key": "甘肃省金昌市", "Value": "620300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789572110, "Key": "甘肃省金昌市金川区", "Value": "620302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789572111, "Key": "甘肃省金昌市永昌县", "Value": "620321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789572112, "Key": "甘肃省白银市", "Value": "620400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789572113, "Key": "甘肃省白银市白银区", "Value": "620402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789572114, "Key": "甘肃省白银市平川区", "Value": "620403" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789576197, "Key": "甘肃省白银市靖远县", "Value": "620421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789576198, "Key": "甘肃省白银市会宁县", "Value": "620422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789576199, "Key": "甘肃省白银市景泰县", "Value": "620423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789576200, "Key": "甘肃省天水市", "Value": "620500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789576201, "Key": "甘肃省天水市秦州区", "Value": "620502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789576202, "Key": "甘肃省天水市麦积区", "Value": "620503" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789576203, "Key": "甘肃省天水市清水县", "Value": "620521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789576204, "Key": "甘肃省天水市秦安县", "Value": "620522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789576205, "Key": "甘肃省天水市甘谷县", "Value": "620523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789576206, "Key": "甘肃省天水市武山县", "Value": "620524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789576207, "Key": "甘肃省天水市张家川回族自治县", "Value": "620525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789576208, "Key": "甘肃省武威市", "Value": "620600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789576209, "Key": "甘肃省武威市凉州区", "Value": "620602" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789576210, "Key": "甘肃省武威市民勤县", "Value": "620621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789576211, "Key": "甘肃省武威市古浪县", "Value": "620622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789580293, "Key": "甘肃省武威市天祝藏族自治县", "Value": "620623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789580294, "Key": "甘肃省张掖市", "Value": "620700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789580295, "Key": "甘肃省张掖市甘州区", "Value": "620702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789580296, "Key": "甘肃省张掖市肃南裕固族自治县", "Value": "620721" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789580297, "Key": "甘肃省张掖市民乐县", "Value": "620722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789580298, "Key": "甘肃省张掖市临泽县", "Value": "620723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789580299, "Key": "甘肃省张掖市高台县", "Value": "620724" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789580300, "Key": "甘肃省张掖市山丹县", "Value": "620725" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789580301, "Key": "甘肃省平凉市", "Value": "620800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789580302, "Key": "甘肃省平凉市崆峒区", "Value": "620802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789580303, "Key": "甘肃省平凉市泾川县", "Value": "620821" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789580304, "Key": "甘肃省平凉市灵台县", "Value": "620822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789580305, "Key": "甘肃省平凉市崇信县", "Value": "620823" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789580306, "Key": "甘肃省平凉市庄浪县", "Value": "620825" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789584389, "Key": "甘肃省平凉市静宁县", "Value": "620826" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789584390, "Key": "甘肃省平凉市华亭市", "Value": "620881" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789584391, "Key": "甘肃省酒泉市", "Value": "620900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789584392, "Key": "甘肃省酒泉市肃州区", "Value": "620902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789584393, "Key": "甘肃省酒泉市金塔县", "Value": "620921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789584394, "Key": "甘肃省酒泉市瓜州县", "Value": "620922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789584395, "Key": "甘肃省酒泉市肃北蒙古族自治县", "Value": "620923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789584396, "Key": "甘肃省酒泉市阿克塞哈萨克族自治县", "Value": "620924" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789584397, "Key": "甘肃省酒泉市玉门市", "Value": "620981" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789584398, "Key": "甘肃省酒泉市敦煌市", "Value": "620982" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789584399, "Key": "甘肃省庆阳市", "Value": "621000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789584400, "Key": "甘肃省庆阳市西峰区", "Value": "621002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789584401, "Key": "甘肃省庆阳市庆城县", "Value": "621021" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789584402, "Key": "甘肃省庆阳市环县", "Value": "621022" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789588485, "Key": "甘肃省庆阳市华池县", "Value": "621023" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789588486, "Key": "甘肃省庆阳市合水县", "Value": "621024" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789588487, "Key": "甘肃省庆阳市正宁县", "Value": "621025" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789588488, "Key": "甘肃省庆阳市宁县", "Value": "621026" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789588489, "Key": "甘肃省庆阳市镇原县", "Value": "621027" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789588490, "Key": "甘肃省定西市", "Value": "621100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789588491, "Key": "甘肃省定西市安定区", "Value": "621102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789588492, "Key": "甘肃省定西市通渭县", "Value": "621121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789588493, "Key": "甘肃省定西市陇西县", "Value": "621122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789588494, "Key": "甘肃省定西市渭源县", "Value": "621123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789588495, "Key": "甘肃省定西市临洮县", "Value": "621124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789588496, "Key": "甘肃省定西市漳县", "Value": "621125" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789588497, "Key": "甘肃省定西市岷县", "Value": "621126" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789588498, "Key": "甘肃省陇南市", "Value": "621200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789592581, "Key": "甘肃省陇南市武都区", "Value": "621202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789592582, "Key": "甘肃省陇南市成县", "Value": "621221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789592583, "Key": "甘肃省陇南市文县", "Value": "621222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789592584, "Key": "甘肃省陇南市宕昌县", "Value": "621223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789592585, "Key": "甘肃省陇南市康县", "Value": "621224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789592586, "Key": "甘肃省陇南市西和县", "Value": "621225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789592587, "Key": "甘肃省陇南市礼县", "Value": "621226" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789592588, "Key": "甘肃省陇南市徽县", "Value": "621227" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789592589, "Key": "甘肃省陇南市两当县", "Value": "621228" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789592590, "Key": "甘肃省临夏回族自治州", "Value": "622900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789592591, "Key": "甘肃省临夏回族自治州临夏市", "Value": "622901" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789592592, "Key": "甘肃省临夏回族自治州临夏县", "Value": "622921" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789592593, "Key": "甘肃省临夏回族自治州康乐县", "Value": "622922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789592594, "Key": "甘肃省临夏回族自治州永靖县", "Value": "622923" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789592595, "Key": "甘肃省临夏回族自治州广河县", "Value": "622924" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789596677, "Key": "甘肃省临夏回族自治州和政县", "Value": "622925" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789596678, "Key": "甘肃省临夏回族自治州东乡族自治县", "Value": "622926" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789596679, "Key": "甘肃省临夏回族自治州积石山保安族东乡族撒拉族自治县", "Value": "622927" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789596680, "Key": "甘肃省甘南藏族自治州", "Value": "623000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789596681, "Key": "甘肃省甘南藏族自治州合作市", "Value": "623001" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789596682, "Key": "甘肃省甘南藏族自治州临潭县", "Value": "623021" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789596683, "Key": "甘肃省甘南藏族自治州卓尼县", "Value": "623022" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789596684, "Key": "甘肃省甘南藏族自治州舟曲县", "Value": "623023" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789596685, "Key": "甘肃省甘南藏族自治州迭部县", "Value": "623024" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789596686, "Key": "甘肃省甘南藏族自治州玛曲县", "Value": "623025" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789596687, "Key": "甘肃省甘南藏族自治州碌曲县", "Value": "623026" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789596688, "Key": "甘肃省甘南藏族自治州夏河县", "Value": "623027" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789596689, "Key": "青海省", "Value": "630000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789596690, "Key": "青海省西宁市", "Value": "630100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789600773, "Key": "青海省西宁市城东区", "Value": "630102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789600774, "Key": "青海省西宁市城中区", "Value": "630103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789600775, "Key": "青海省西宁市城西区", "Value": "630104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789600776, "Key": "青海省西宁市城北区", "Value": "630105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789600777, "Key": "青海省西宁市湟中区", "Value": "630106" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789600778, "Key": "青海省西宁市大通回族土族自治县", "Value": "630121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789600779, "Key": "青海省西宁市湟源县", "Value": "630123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789600780, "Key": "青海省海东市", "Value": "630200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789600781, "Key": "青海省海东市乐都区", "Value": "630202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789600782, "Key": "青海省海东市平安区", "Value": "630203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789600783, "Key": "青海省海东市民和回族土族自治县", "Value": "630222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789600784, "Key": "青海省海东市互助土族自治县", "Value": "630223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789600785, "Key": "青海省海东市化隆回族自治县", "Value": "630224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789604869, "Key": "青海省海东市循化撒拉族自治县", "Value": "630225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789604870, "Key": "青海省海北藏族自治州", "Value": "632200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789604871, "Key": "青海省海北藏族自治州门源回族自治县", "Value": "632221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789604872, "Key": "青海省海北藏族自治州祁连县", "Value": "632222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789604873, "Key": "青海省海北藏族自治州海晏县", "Value": "632223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789604874, "Key": "青海省海北藏族自治州刚察县", "Value": "632224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789604875, "Key": "青海省黄南藏族自治州", "Value": "632300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789604876, "Key": "青海省黄南藏族自治州同仁市", "Value": "632301" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789604877, "Key": "青海省黄南藏族自治州尖扎县", "Value": "632322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789604878, "Key": "青海省黄南藏族自治州泽库县", "Value": "632323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789604879, "Key": "青海省黄南藏族自治州河南蒙古族自治县", "Value": "632324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789604880, "Key": "青海省海南藏族自治州", "Value": "632500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789604881, "Key": "青海省海南藏族自治州共和县", "Value": "632521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789608965, "Key": "青海省海南藏族自治州同德县", "Value": "632522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789608966, "Key": "青海省海南藏族自治州贵德县", "Value": "632523" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789608967, "Key": "青海省海南藏族自治州兴海县", "Value": "632524" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789608968, "Key": "青海省海南藏族自治州贵南县", "Value": "632525" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789608969, "Key": "青海省果洛藏族自治州", "Value": "632600" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789608970, "Key": "青海省果洛藏族自治州玛沁县", "Value": "632621" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789608971, "Key": "青海省果洛藏族自治州班玛县", "Value": "632622" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789608972, "Key": "青海省果洛藏族自治州甘德县", "Value": "632623" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789608973, "Key": "青海省果洛藏族自治州达日县", "Value": "632624" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789608974, "Key": "青海省果洛藏族自治州久治县", "Value": "632625" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789608975, "Key": "青海省果洛藏族自治州玛多县", "Value": "632626" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789608976, "Key": "青海省玉树藏族自治州", "Value": "632700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789608977, "Key": "青海省玉树藏族自治州玉树市", "Value": "632701" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789608978, "Key": "青海省玉树藏族自治州杂多县", "Value": "632722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789613061, "Key": "青海省玉树藏族自治州称多县", "Value": "632723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789613062, "Key": "青海省玉树藏族自治州治多县", "Value": "632724" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789613063, "Key": "青海省玉树藏族自治州囊谦县", "Value": "632725" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789613064, "Key": "青海省玉树藏族自治州曲麻莱县", "Value": "632726" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789613065, "Key": "青海省海西蒙古族藏族自治州", "Value": "632800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789613066, "Key": "青海省海西蒙古族藏族自治州格尔木市", "Value": "632801" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789613067, "Key": "青海省海西蒙古族藏族自治州德令哈市", "Value": "632802" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789613068, "Key": "青海省海西蒙古族藏族自治州茫崖市", "Value": "632803" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789613069, "Key": "青海省海西蒙古族藏族自治州乌兰县", "Value": "632821" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789613070, "Key": "青海省海西蒙古族藏族自治州都兰县", "Value": "632822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789613071, "Key": "青海省海西蒙古族藏族自治州天峻县", "Value": "632823" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789613072, "Key": "宁夏回族自治区", "Value": "640000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789613073, "Key": "宁夏回族自治区银川市", "Value": "640100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789617157, "Key": "宁夏回族自治区银川市兴庆区", "Value": "640104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789617158, "Key": "宁夏回族自治区银川市西夏区", "Value": "640105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789617159, "Key": "宁夏回族自治区银川市金凤区", "Value": "640106" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789617160, "Key": "宁夏回族自治区银川市永宁县", "Value": "640121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789617161, "Key": "宁夏回族自治区银川市贺兰县", "Value": "640122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789617162, "Key": "宁夏回族自治区银川市灵武市", "Value": "640181" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789617163, "Key": "宁夏回族自治区石嘴山市", "Value": "640200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789617164, "Key": "宁夏回族自治区石嘴山市大武口区", "Value": "640202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789617165, "Key": "宁夏回族自治区石嘴山市惠农区", "Value": "640205" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789617166, "Key": "宁夏回族自治区石嘴山市平罗县", "Value": "640221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789617167, "Key": "宁夏回族自治区吴忠市", "Value": "640300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789617168, "Key": "宁夏回族自治区吴忠市利通区", "Value": "640302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789617169, "Key": "宁夏回族自治区吴忠市红寺堡区", "Value": "640303" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789617170, "Key": "宁夏回族自治区吴忠市盐池县", "Value": "640323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789621253, "Key": "宁夏回族自治区吴忠市同心县", "Value": "640324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789621254, "Key": "宁夏回族自治区吴忠市青铜峡市", "Value": "640381" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789621255, "Key": "宁夏回族自治区固原市", "Value": "640400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789621256, "Key": "宁夏回族自治区固原市原州区", "Value": "640402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789621257, "Key": "宁夏回族自治区固原市西吉县", "Value": "640422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789621258, "Key": "宁夏回族自治区固原市隆德县", "Value": "640423" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789621259, "Key": "宁夏回族自治区固原市泾源县", "Value": "640424" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789621260, "Key": "宁夏回族自治区固原市彭阳县", "Value": "640425" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789621261, "Key": "宁夏回族自治区中卫市", "Value": "640500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789621262, "Key": "宁夏回族自治区中卫市沙坡头区", "Value": "640502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789621263, "Key": "宁夏回族自治区中卫市中宁县", "Value": "640521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789621264, "Key": "宁夏回族自治区中卫市海原县", "Value": "640522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789621265, "Key": "新疆维吾尔自治区", "Value": "650000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789621266, "Key": "新疆维吾尔自治区乌鲁木齐市", "Value": "650100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789625349, "Key": "新疆维吾尔自治区乌鲁木齐市天山区", "Value": "650102" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789625350, "Key": "新疆维吾尔自治区乌鲁木齐市沙依巴克区", "Value": "650103" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789625351, "Key": "新疆维吾尔自治区乌鲁木齐市新市区", "Value": "650104" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789625352, "Key": "新疆维吾尔自治区乌鲁木齐市水磨沟区", "Value": "650105" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789625353, "Key": "新疆维吾尔自治区乌鲁木齐市头屯河区", "Value": "650106" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789625354, "Key": "新疆维吾尔自治区乌鲁木齐市达坂城区", "Value": "650107" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789625355, "Key": "新疆维吾尔自治区乌鲁木齐市米东区", "Value": "650109" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789625356, "Key": "新疆维吾尔自治区乌鲁木齐市乌鲁木齐县", "Value": "650121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789625357, "Key": "新疆维吾尔自治区克拉玛依市", "Value": "650200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789625358, "Key": "新疆维吾尔自治区克拉玛依市独山子区", "Value": "650202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789625359, "Key": "新疆维吾尔自治区克拉玛依市克拉玛依区", "Value": "650203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789625360, "Key": "新疆维吾尔自治区克拉玛依市白碱滩区", "Value": "650204" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789625361, "Key": "新疆维吾尔自治区克拉玛依市乌尔禾区", "Value": "650205" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789625362, "Key": "新疆维吾尔自治区吐鲁番市", "Value": "650400" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789629445, "Key": "新疆维吾尔自治区吐鲁番市高昌区", "Value": "650402" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789629446, "Key": "新疆维吾尔自治区吐鲁番市鄯善县", "Value": "650421" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789629447, "Key": "新疆维吾尔自治区吐鲁番市托克逊县", "Value": "650422" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789629448, "Key": "新疆维吾尔自治区哈密市", "Value": "650500" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789629449, "Key": "新疆维吾尔自治区哈密市伊州区", "Value": "650502" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789629450, "Key": "新疆维吾尔自治区哈密市巴里坤哈萨克自治县", "Value": "650521" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789629451, "Key": "新疆维吾尔自治区哈密市伊吾县", "Value": "650522" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789629452, "Key": "新疆维吾尔自治区昌吉回族自治州", "Value": "652300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789629453, "Key": "新疆维吾尔自治区昌吉回族自治州昌吉市", "Value": "652301" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789629454, "Key": "新疆维吾尔自治区昌吉回族自治州阜康市", "Value": "652302" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789629455, "Key": "新疆维吾尔自治区昌吉回族自治州呼图壁县", "Value": "652323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789629456, "Key": "新疆维吾尔自治区昌吉回族自治州玛纳斯县", "Value": "652324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789629457, "Key": "新疆维吾尔自治区昌吉回族自治州奇台县", "Value": "652325" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789629458, "Key": "新疆维吾尔自治区昌吉回族自治州吉木萨尔县", "Value": "652327" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789629459, "Key": "新疆维吾尔自治区昌吉回族自治州木垒哈萨克自治县", "Value": "652328" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789633541, "Key": "新疆维吾尔自治区博尔塔拉蒙古自治州", "Value": "652700" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789633542, "Key": "新疆维吾尔自治区博尔塔拉蒙古自治州博乐市", "Value": "652701" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789633543, "Key": "新疆维吾尔自治区博尔塔拉蒙古自治州阿拉山口市", "Value": "652702" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789633544, "Key": "新疆维吾尔自治区博尔塔拉蒙古自治州精河县", "Value": "652722" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789633545, "Key": "新疆维吾尔自治区博尔塔拉蒙古自治州温泉县", "Value": "652723" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789633546, "Key": "新疆维吾尔自治区巴音郭楞蒙古自治州", "Value": "652800" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789633547, "Key": "新疆维吾尔自治区巴音郭楞蒙古自治州库尔勒市", "Value": "652801" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789633548, "Key": "新疆维吾尔自治区巴音郭楞蒙古自治州轮台县", "Value": "652822" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789633549, "Key": "新疆维吾尔自治区巴音郭楞蒙古自治州尉犁县", "Value": "652823" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789633550, "Key": "新疆维吾尔自治区巴音郭楞蒙古自治州若羌县", "Value": "652824" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789633551, "Key": "新疆维吾尔自治区巴音郭楞蒙古自治州且末县", "Value": "652825" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789633552, "Key": "新疆维吾尔自治区巴音郭楞蒙古自治州焉耆回族自治县", "Value": "652826" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789633553, "Key": "新疆维吾尔自治区巴音郭楞蒙古自治州和静县", "Value": "652827" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789633554, "Key": "新疆维吾尔自治区巴音郭楞蒙古自治州和硕县", "Value": "652828" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789637637, "Key": "新疆维吾尔自治区巴音郭楞蒙古自治州博湖县", "Value": "652829" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789637638, "Key": "新疆维吾尔自治区阿克苏地区", "Value": "652900" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789637639, "Key": "新疆维吾尔自治区阿克苏地区阿克苏市", "Value": "652901" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789637640, "Key": "新疆维吾尔自治区阿克苏地区库车市", "Value": "652902" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789637641, "Key": "新疆维吾尔自治区阿克苏地区温宿县", "Value": "652922" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789637642, "Key": "新疆维吾尔自治区阿克苏地区沙雅县", "Value": "652924" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789637643, "Key": "新疆维吾尔自治区阿克苏地区新和县", "Value": "652925" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789637644, "Key": "新疆维吾尔自治区阿克苏地区拜城县", "Value": "652926" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789637645, "Key": "新疆维吾尔自治区阿克苏地区乌什县", "Value": "652927" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789637646, "Key": "新疆维吾尔自治区阿克苏地区阿瓦提县", "Value": "652928" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789637647, "Key": "新疆维吾尔自治区阿克苏地区柯坪县", "Value": "652929" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789637648, "Key": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州", "Value": "653000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789637649, "Key": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州阿图什市", "Value": "653001" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789637650, "Key": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州阿克陶县", "Value": "653022" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789641733, "Key": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州阿合奇县", "Value": "653023" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789641734, "Key": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州乌恰县", "Value": "653024" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789641735, "Key": "新疆维吾尔自治区喀什地区", "Value": "653100" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789641736, "Key": "新疆维吾尔自治区喀什地区喀什市", "Value": "653101" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789641737, "Key": "新疆维吾尔自治区喀什地区疏附县", "Value": "653121" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789641738, "Key": "新疆维吾尔自治区喀什地区疏勒县", "Value": "653122" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789641739, "Key": "新疆维吾尔自治区喀什地区英吉沙县", "Value": "653123" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789641740, "Key": "新疆维吾尔自治区喀什地区泽普县", "Value": "653124" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789641741, "Key": "新疆维吾尔自治区喀什地区莎车县", "Value": "653125" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789641742, "Key": "新疆维吾尔自治区喀什地区叶城县", "Value": "653126" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789641743, "Key": "新疆维吾尔自治区喀什地区麦盖提县", "Value": "653127" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789641744, "Key": "新疆维吾尔自治区喀什地区岳普湖县", "Value": "653128" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789641745, "Key": "新疆维吾尔自治区喀什地区伽师县", "Value": "653129" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789641746, "Key": "新疆维吾尔自治区喀什地区巴楚县", "Value": "653130" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789645829, "Key": "新疆维吾尔自治区喀什地区塔什库尔干塔吉克自治县", "Value": "653131" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789645830, "Key": "新疆维吾尔自治区和田地区", "Value": "653200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789645831, "Key": "新疆维吾尔自治区和田地区和田市", "Value": "653201" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789645832, "Key": "新疆维吾尔自治区和田地区和田县", "Value": "653221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789645833, "Key": "新疆维吾尔自治区和田地区墨玉县", "Value": "653222" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789645834, "Key": "新疆维吾尔自治区和田地区皮山县", "Value": "653223" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789645835, "Key": "新疆维吾尔自治区和田地区洛浦县", "Value": "653224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789645836, "Key": "新疆维吾尔自治区和田地区策勒县", "Value": "653225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789645837, "Key": "新疆维吾尔自治区和田地区于田县", "Value": "653226" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789645838, "Key": "新疆维吾尔自治区和田地区民丰县", "Value": "653227" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789645839, "Key": "新疆维吾尔自治区伊犁哈萨克自治州", "Value": "654000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789645840, "Key": "新疆维吾尔自治区伊犁哈萨克自治州伊宁市", "Value": "654002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789645841, "Key": "新疆维吾尔自治区伊犁哈萨克自治州奎屯市", "Value": "654003" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789645842, "Key": "新疆维吾尔自治区伊犁哈萨克自治州霍尔果斯市", "Value": "654004" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789645843, "Key": "新疆维吾尔自治区伊犁哈萨克自治州伊宁县", "Value": "654021" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789649925, "Key": "新疆维吾尔自治区伊犁哈萨克自治州察布查尔锡伯自治县", "Value": "654022" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789649926, "Key": "新疆维吾尔自治区伊犁哈萨克自治州霍城县", "Value": "654023" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789649927, "Key": "新疆维吾尔自治区伊犁哈萨克自治州巩留县", "Value": "654024" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789649928, "Key": "新疆维吾尔自治区伊犁哈萨克自治州新源县", "Value": "654025" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789649929, "Key": "新疆维吾尔自治区伊犁哈萨克自治州昭苏县", "Value": "654026" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789649930, "Key": "新疆维吾尔自治区伊犁哈萨克自治州特克斯县", "Value": "654027" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789649931, "Key": "新疆维吾尔自治区伊犁哈萨克自治州尼勒克县", "Value": "654028" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789649932, "Key": "新疆维吾尔自治区塔城地区", "Value": "654200" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789649933, "Key": "新疆维吾尔自治区塔城地区塔城市", "Value": "654201" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789649934, "Key": "新疆维吾尔自治区塔城地区乌苏市", "Value": "654202" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789649935, "Key": "新疆维吾尔自治区塔城地区沙湾市", "Value": "654203" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789649936, "Key": "新疆维吾尔自治区塔城地区额敏县", "Value": "654221" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789649937, "Key": "新疆维吾尔自治区塔城地区托里县", "Value": "654224" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789649938, "Key": "新疆维吾尔自治区塔城地区裕民县", "Value": "654225" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789654021, "Key": "新疆维吾尔自治区塔城地区和布克赛尔蒙古自治县", "Value": "654226" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789654022, "Key": "新疆维吾尔自治区阿勒泰地区", "Value": "654300" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789654023, "Key": "新疆维吾尔自治区阿勒泰地区阿勒泰市", "Value": "654301" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789654024, "Key": "新疆维吾尔自治区阿勒泰地区布尔津县", "Value": "654321" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789654025, "Key": "新疆维吾尔自治区阿勒泰地区富蕴县", "Value": "654322" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789654026, "Key": "新疆维吾尔自治区阿勒泰地区福海县", "Value": "654323" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789654027, "Key": "新疆维吾尔自治区阿勒泰地区哈巴河县", "Value": "654324" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789654028, "Key": "新疆维吾尔自治区阿勒泰地区青河县", "Value": "654325" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789654029, "Key": "新疆维吾尔自治区阿勒泰地区吉木乃县", "Value": "654326" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789654030, "Key": "新疆维吾尔自治区石河子市", "Value": "659001" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789654031, "Key": "新疆维吾尔自治区阿拉尔市", "Value": "659002" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789654032, "Key": "新疆维吾尔自治区图木舒克市", "Value": "659003" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789654033, "Key": "新疆维吾尔自治区五家渠市", "Value": "659004" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789654034, "Key": "新疆维吾尔自治区北屯市", "Value": "659005" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789654035, "Key": "新疆维吾尔自治区铁门关市", "Value": "659006" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789658117, "Key": "新疆维吾尔自治区双河市", "Value": "659007" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789658118, "Key": "新疆维吾尔自治区可克达拉市", "Value": "659008" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789658119, "Key": "新疆维吾尔自治区昆玉市", "Value": "659009" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789658120, "Key": "新疆维吾尔自治区胡杨河市", "Value": "659010" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789658121, "Key": "新疆维吾尔自治区新星市", "Value": "659011" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789658122, "Key": "台湾省", "Value": "710000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789658123, "Key": "香港特别行政区", "Value": "810000" }, { "CatalogId": 379794295185413, + "Enabled": true, "Id": 396423789658124, "Key": "澳门特别行政区", "Value": "820000" diff --git a/build/code.quality.props b/build/code.quality.props index 99360677..9628a1d4 100644 --- a/build/code.quality.props +++ b/build/code.quality.props @@ -19,7 +19,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/package.json b/package.json index 3115a3ef..797793e7 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "version": "1.6.0", "devDependencies": { - "cz-git": "^1.9.4", - "commitizen": "^4.3.0", + "cz-git": "^1.10.1", + "commitizen": "^4.3.1", "prettier": "^3.3.3", "standard-version": "^9.5.0" }, diff --git a/scripts/switcher.furion.json b/scripts/switcher.furion.json index 8ea70fdc..edc4de27 100644 --- a/scripts/switcher.furion.json +++ b/scripts/switcher.furion.json @@ -9,7 +9,7 @@ "packages": [ { "packageName": "Furion.Pure.NS", - "version": "4.9.5.2-ns1" + "version": "4.9.5.8-ns1" } ] } diff --git a/src/backend/NetAdmin.AdmServer.Host/Extensions/IApplicationBuilderExtensions.cs b/src/backend/NetAdmin.AdmServer.Host/Extensions/IApplicationBuilderExtensions.cs index 97ca69a9..cf25ec56 100644 --- a/src/backend/NetAdmin.AdmServer.Host/Extensions/IApplicationBuilderExtensions.cs +++ b/src/backend/NetAdmin.AdmServer.Host/Extensions/IApplicationBuilderExtensions.cs @@ -9,8 +9,8 @@ namespace NetAdmin.AdmServer.Host.Extensions; public static class IApplicationBuilderExtensions { private const string _INDEX_HTML_PATH = ".index.html"; - private const string _RES_PFX = $"{nameof(NetAdmin)}.{nameof(AdmServer)}.{nameof(Host)}.UI"; - private static readonly Regex _regex = new(@"\.(\w+)$", RegexOptions.Compiled); + private const string _RES_PFX = $"{nameof(NetAdmin)}.{nameof(AdmServer)}.{nameof(Host)}.UI"; + private static readonly Regex _regex = new(@"\.(\w+)$", RegexOptions.Compiled); private static IEnumerable _allResNames; /// diff --git a/src/backend/NetAdmin.AdmServer.Host/Extensions/ServiceCollectionExtensions.cs b/src/backend/NetAdmin.AdmServer.Host/Extensions/ServiceCollectionExtensions.cs index e3a0c98a..81047582 100644 --- a/src/backend/NetAdmin.AdmServer.Host/Extensions/ServiceCollectionExtensions.cs +++ b/src/backend/NetAdmin.AdmServer.Host/Extensions/ServiceCollectionExtensions.cs @@ -21,8 +21,7 @@ public static class ServiceCollectionExtensions (Startup.Args.InsertSeedData ? FreeSqlInitMethods.InsertSeedData : FreeSqlInitMethods.None), freeSql => { // 数据权限过滤器 _ = freeSql.GlobalFilter.ApplyOnlyIf( // - Chars.FLG_FREE_SQL_GLOBAL_FILTER_DATA - , () => ContextUserInfo.Create()?.Roles.All(x => x.DataScope == DataScopes.Self) ?? false + Chars.FLG_FREE_SQL_GLOBAL_FILTER_DATA, () => ContextUserInfo.Create()?.Roles.All(x => x.DataScope == DataScopes.Self) ?? false , a => a.OwnerId == ContextUserInfo.Create().Id); }); } diff --git a/src/backend/NetAdmin.AdmServer.Host/Startup.cs b/src/backend/NetAdmin.AdmServer.Host/Startup.cs index f9e1a19c..0c3a7a68 100644 --- a/src/backend/NetAdmin.AdmServer.Host/Startup.cs +++ b/src/backend/NetAdmin.AdmServer.Host/Startup.cs @@ -1,3 +1,26 @@ +/* + _ooOoo_ + o8888888o + 88" . "88 + (| -_- |) + O\ = /O + ____/`---'\____ + .' \\| |// `. + / \\||| : |||// \ + / _||||| -:- |||||- \ + | | \\\ - /// | | + | \_| ''\---/'' | | + \ .-\__ `-` ___/-. / + ___`. .' /--.--\ `. . __ + ."" '< `.___\_<|>_/___.' >'"". + | | : `- \`.;`\ _ /`;.`/ - ` : | | + \ \ `-. \_ __\ /__ _/ .-` / / +======`-.____`-.___\_____/___.-`____.-'====== + `=---=' +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 佛祖保佑 永无BUG +*/ + using NetAdmin.AdmServer.Host; using NetAdmin.AdmServer.Host.Extensions; using NetAdmin.Host.Extensions; diff --git a/src/backend/NetAdmin.AdmServer.Tests/NetAdmin.AdmServer.Tests.csproj b/src/backend/NetAdmin.AdmServer.Tests/NetAdmin.AdmServer.Tests.csproj index 9b35407a..1f1b39b4 100644 --- a/src/backend/NetAdmin.AdmServer.Tests/NetAdmin.AdmServer.Tests.csproj +++ b/src/backend/NetAdmin.AdmServer.Tests/NetAdmin.AdmServer.Tests.csproj @@ -4,6 +4,6 @@ - + \ No newline at end of file diff --git a/src/backend/NetAdmin.Application/Repositories/BasicRepository.cs b/src/backend/NetAdmin.Application/Repositories/BasicRepository.cs index 3c1651a1..b89afd9b 100644 --- a/src/backend/NetAdmin.Application/Repositories/BasicRepository.cs +++ b/src/backend/NetAdmin.Application/Repositories/BasicRepository.cs @@ -5,10 +5,8 @@ namespace NetAdmin.Application.Repositories; /// /// 基础仓储 /// -public sealed class BasicRepository( - IFreeSql fSql - , UnitOfWorkManager uowManger - , ContextUserToken userToken) : DefaultRepository(fSql, uowManger) +public sealed class BasicRepository(IFreeSql fSql, UnitOfWorkManager uowManger, ContextUserToken userToken) + : DefaultRepository(fSql, uowManger) where TEntity : EntityBase // where TPrimary : IEquatable { diff --git a/src/backend/NetAdmin.Application/Services/RedisService.cs b/src/backend/NetAdmin.Application/Services/RedisService.cs index 16236bda..408d06c8 100644 --- a/src/backend/NetAdmin.Application/Services/RedisService.cs +++ b/src/backend/NetAdmin.Application/Services/RedisService.cs @@ -20,19 +20,15 @@ public abstract class RedisService(BasicRepository protected IDatabase RedisDatabase { get; } // = App.GetService() - .GetDatabase(App.GetOptions() - .Instances.First(x => x.Name == Chars.FLG_REDIS_INSTANCE_DATA_CACHE) - .Database); + .GetDatabase(App.GetOptions().Instances.First(x => x.Name == Chars.FLG_REDIS_INSTANCE_DATA_CACHE).Database); /// /// 获取锁 /// protected Task GetLockerAsync(string lockerName) { - return RedisLocker.GetLockerAsync(RedisDatabase, lockerName - , TimeSpan.FromSeconds(Numbers.SECS_REDIS_LOCK_EXPIRY) - , Numbers.MAX_LIMIT_RETRY_CNT_REDIS_LOCK - , TimeSpan.FromSeconds(Numbers.SECS_REDIS_LOCK_RETRY_DELAY)); + return RedisLocker.GetLockerAsync(RedisDatabase, lockerName, TimeSpan.FromSeconds(Numbers.SECS_REDIS_LOCK_EXPIRY) + , Numbers.MAX_LIMIT_RETRY_CNT_REDIS_LOCK, TimeSpan.FromSeconds(Numbers.SECS_REDIS_LOCK_RETRY_DELAY)); } /// @@ -40,8 +36,7 @@ public abstract class RedisService(BasicRepository protected Task GetLockerOnceAsync(string lockerName) { - return RedisLocker.GetLockerAsync(RedisDatabase, lockerName - , TimeSpan.FromSeconds(Numbers.SECS_REDIS_LOCK_EXPIRY), 1 + return RedisLocker.GetLockerAsync(RedisDatabase, lockerName, TimeSpan.FromSeconds(Numbers.SECS_REDIS_LOCK_EXPIRY), 1 , TimeSpan.FromSeconds(Numbers.SECS_REDIS_LOCK_RETRY_DELAY)); } } \ No newline at end of file diff --git a/src/backend/NetAdmin.Application/Services/RepositoryService.cs b/src/backend/NetAdmin.Application/Services/RepositoryService.cs index a4660371..b13168dd 100644 --- a/src/backend/NetAdmin.Application/Services/RepositoryService.cs +++ b/src/backend/NetAdmin.Application/Services/RepositoryService.cs @@ -12,8 +12,7 @@ namespace NetAdmin.Application.Services; /// 实体类型 /// 主键类型 /// 日志类型 -public abstract class RepositoryService(BasicRepository rpo) - : ServiceBase +public abstract class RepositoryService(BasicRepository rpo) : ServiceBase where TEntity : EntityBase // where TPrimary : IEquatable { @@ -34,7 +33,7 @@ public abstract class RepositoryService(BasicReposit /// 导出实体 /// protected static async Task ExportAsync( // - Func, ISelectGrouping> selector, QueryReq query, string fileName + Func, ISelectGrouping> selector, QueryReq query, string fileName , Expression, object>> listExp = null) where TQuery : DataAbstraction, new() { @@ -46,8 +45,7 @@ public abstract class RepositoryService(BasicReposit /// 导出实体 /// protected static async Task ExportAsync( // - Func, ISelect> selector, QueryReq query, string fileName - , Expression> listExp = null) + Func, ISelect> selector, QueryReq query, string fileName, Expression> listExp = null) where TQuery : DataAbstraction, new() { var select = selector(query) @@ -56,9 +54,7 @@ public abstract class RepositoryService(BasicReposit #endif .Take(Numbers.MAX_LIMIT_EXPORT); - object list = listExp == null - ? await select.ToListAsync().ConfigureAwait(false) - : await select.ToListAsync(listExp).ConfigureAwait(false); + object list = listExp == null ? await select.ToListAsync().ConfigureAwait(false) : await select.ToListAsync(listExp).ConfigureAwait(false); return await GetExportFileStreamAsync(fileName, list).ConfigureAwait(false); } @@ -108,10 +104,7 @@ public abstract class RepositoryService(BasicReposit { // 默认匹配主键 whereExp ??= a => a.Id.Equals(newValue.Id); - return BuildUpdate(newValue, includeFields, excludeFields, ignoreVersion) - .Where(whereExp) - .Where(whereSql) - .ExecuteUpdatedAsync(); + return BuildUpdate(newValue, includeFields, excludeFields, ignoreVersion).Where(whereExp).Where(whereSql).ExecuteUpdatedAsync(); } #endif @@ -134,8 +127,9 @@ public abstract class RepositoryService(BasicReposit App.HttpContext.Response.Headers.ContentDisposition = new ContentDispositionHeaderValue(Chars.FLG_HTTP_HEADER_VALUE_ATTACHMENT) { - FileNameStar = $"{fileName}_{DateTime.Now:yyyy.MM.dd-HH.mm.ss}.csv" - }.ToString(); + FileNameStar + = $"{fileName}_{DateTime.Now:yyyy.MM.dd-HH.mm.ss}.csv" + }.ToString(); return new FileStreamResult(stream, Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_OCTET_STREAM); } @@ -149,9 +143,7 @@ public abstract class RepositoryService(BasicReposit var updateExp = includeFields == null ? Rpo.UpdateDiy.SetSource(entity) : Rpo.UpdateDiy.SetDto(includeFields!.ToDictionary( - x => x - , x => typeof(TEntity).GetProperty(x, BindingFlags.Public | BindingFlags.Instance)! - .GetValue(entity))); + x => x, x => typeof(TEntity).GetProperty(x, BindingFlags.Public | BindingFlags.Instance)!.GetValue(entity))); if (excludeFields != null) { updateExp = updateExp.IgnoreColumns(excludeFields); } diff --git a/src/backend/NetAdmin.Cache/CacheBase.cs b/src/backend/NetAdmin.Cache/CacheBase.cs index 33a206d5..c05f2660 100644 --- a/src/backend/NetAdmin.Cache/CacheBase.cs +++ b/src/backend/NetAdmin.Cache/CacheBase.cs @@ -5,8 +5,7 @@ namespace NetAdmin.Cache; /// /// 缓存基类 /// -public abstract class CacheBase(TCacheContainer cache, TService service) - : ICache +public abstract class CacheBase(TCacheContainer cache, TService service) : ICache where TService : IService { /// diff --git a/src/backend/NetAdmin.Cache/DistributedCache.cs b/src/backend/NetAdmin.Cache/DistributedCache.cs index e4d7c510..50ce7975 100644 --- a/src/backend/NetAdmin.Cache/DistributedCache.cs +++ b/src/backend/NetAdmin.Cache/DistributedCache.cs @@ -6,8 +6,7 @@ namespace NetAdmin.Cache; /// /// 分布式缓存 /// -public abstract class DistributedCache(IDistributedCache cache, TService service) - : CacheBase(cache, service) +public abstract class DistributedCache(IDistributedCache cache, TService service) : CacheBase(cache, service) where TService : IService { /// @@ -66,12 +65,10 @@ public abstract class DistributedCache(IDistributedCache cache, TServi /// 滑动过期时间 /// 缓存对象类型 /// 缓存对象 - protected async Task GetOrCreateAsync(string key, Func> createProc, TimeSpan? absLifeTime = null - , TimeSpan? slideLifeTime = null) + protected async Task GetOrCreateAsync(string key, Func> createProc, TimeSpan? absLifeTime = null, TimeSpan? slideLifeTime = null) { var cacheRead = await GetAsync(key).ConfigureAwait(false); - if (cacheRead is not null && App.HttpContext?.Request.Headers.CacheControl.FirstOrDefault() != - Chars.FLG_HTTP_HEADER_VALUE_NO_CACHE) { + if (cacheRead is not null && App.HttpContext?.Request.Headers.CacheControl.FirstOrDefault() != Chars.FLG_HTTP_HEADER_VALUE_NO_CACHE) { return cacheRead; } diff --git a/src/backend/NetAdmin.Cache/MemoryCache.cs b/src/backend/NetAdmin.Cache/MemoryCache.cs index 390caf53..af232fbc 100644 --- a/src/backend/NetAdmin.Cache/MemoryCache.cs +++ b/src/backend/NetAdmin.Cache/MemoryCache.cs @@ -5,6 +5,5 @@ namespace NetAdmin.Cache; /// /// 内存缓存 /// -public abstract class MemoryCache(IMemoryCache cache, TService service) - : CacheBase(cache, service) +public abstract class MemoryCache(IMemoryCache cache, TService service) : CacheBase(cache, service) where TService : IService; \ No newline at end of file diff --git a/src/backend/NetAdmin.Domain/Attributes/DataValidation/ApiIdAttribute.cs b/src/backend/NetAdmin.Domain/Attributes/DataValidation/ApiIdAttribute.cs index 3ad4d917..53f8db12 100644 --- a/src/backend/NetAdmin.Domain/Attributes/DataValidation/ApiIdAttribute.cs +++ b/src/backend/NetAdmin.Domain/Attributes/DataValidation/ApiIdAttribute.cs @@ -12,8 +12,7 @@ public sealed class ApiIdAttribute : ValidationAttribute /// protected override ValidationResult IsValid(object value, ValidationContext validationContext) { - var service = App.GetService(App.EffectiveTypes.Single( - x => x.FullName == "NetAdmin.SysComponent.Cache.Sys.Dependency.IApiCache")); + var service = App.GetService(App.EffectiveTypes.Single(x => x.FullName == "NetAdmin.SysComponent.Cache.Sys.Dependency.IApiCache")); var req = new QueryReq { Filter = new QueryApiReq { Id = value as string } }; diff --git a/src/backend/NetAdmin.Domain/Attributes/DataValidation/JsonStringAttribute.cs b/src/backend/NetAdmin.Domain/Attributes/DataValidation/JsonStringAttribute.cs index fdb2d054..f46eb3aa 100644 --- a/src/backend/NetAdmin.Domain/Attributes/DataValidation/JsonStringAttribute.cs +++ b/src/backend/NetAdmin.Domain/Attributes/DataValidation/JsonStringAttribute.cs @@ -9,8 +9,6 @@ public sealed class JsonStringAttribute : ValidationAttribute /// protected override ValidationResult IsValid(object value, ValidationContext validationContext) { - return (value as string).IsJsonString() - ? ValidationResult.Success - : new ValidationResult(Ln.非JSON字符串, new[] { validationContext.MemberName }); + return (value as string).IsJsonString() ? ValidationResult.Success : new ValidationResult(Ln.非JSON字符串, [validationContext.MemberName]); } } \ No newline at end of file diff --git a/src/backend/NetAdmin.Domain/Attributes/DataValidation/UserIdAttribute.cs b/src/backend/NetAdmin.Domain/Attributes/DataValidation/UserIdAttribute.cs index 1e59fc1b..5a1e9eb5 100644 --- a/src/backend/NetAdmin.Domain/Attributes/DataValidation/UserIdAttribute.cs +++ b/src/backend/NetAdmin.Domain/Attributes/DataValidation/UserIdAttribute.cs @@ -12,8 +12,7 @@ public sealed class UserIdAttribute : ValidationAttribute /// protected override ValidationResult IsValid(object value, ValidationContext validationContext) { - var service = App.GetService(App.EffectiveTypes.Single( - x => x.FullName == "NetAdmin.SysComponent.Cache.Sys.Dependency.IUserCache")); + var service = App.GetService(App.EffectiveTypes.Single(x => x.FullName == "NetAdmin.SysComponent.Cache.Sys.Dependency.IUserCache")); var req = new QueryReq { Filter = new QueryUserReq { Id = (long)value! } }; diff --git a/src/backend/NetAdmin.Domain/Contexts/ContextUserToken.cs b/src/backend/NetAdmin.Domain/Contexts/ContextUserToken.cs index b87994d7..a76db8e9 100644 --- a/src/backend/NetAdmin.Domain/Contexts/ContextUserToken.cs +++ b/src/backend/NetAdmin.Domain/Contexts/ContextUserToken.cs @@ -45,9 +45,7 @@ public sealed record ContextUserToken : DataAbstraction /// public static ContextUserToken Create(QueryUserRsp user) { - return new ContextUserToken { - Id = user.Id, Token = user.Token, UserName = user.UserName, DeptId = user.DeptId - }; + return new ContextUserToken { Id = user.Id, Token = user.Token, UserName = user.UserName, DeptId = user.DeptId }; } /// diff --git a/src/backend/NetAdmin.Domain/DataAbstraction.cs b/src/backend/NetAdmin.Domain/DataAbstraction.cs index db6836cd..51ec5107 100644 --- a/src/backend/NetAdmin.Domain/DataAbstraction.cs +++ b/src/backend/NetAdmin.Domain/DataAbstraction.cs @@ -30,9 +30,7 @@ public abstract record DataAbstraction /// public void TruncateStrings() { - foreach (var property in GetType() - .GetProperties(BindingFlags.Public | BindingFlags.Instance) - .Where(x => x.PropertyType == typeof(string))) { + foreach (var property in GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(x => x.PropertyType == typeof(string))) { var maxLen = property.GetCustomAttribute(true)?.Length; if (maxLen is null or 0) { continue; diff --git a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_DicContent.cs b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_DicContent.cs index 4978410e..8fb515ab 100644 --- a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_DicContent.cs +++ b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_DicContent.cs @@ -5,7 +5,7 @@ namespace NetAdmin.Domain.DbMaps.Sys; /// [SqlIndex($"{Chars.FLG_DB_INDEX_PREFIX}{nameof(CatalogId)}_{nameof(Key)}", $"{nameof(CatalogId)},{nameof(Key)}", true)] [Table(Name = Chars.FLG_DB_TABLE_NAME_PREFIX + nameof(Sys_DicContent))] -public record Sys_DicContent : VersionEntity +public record Sys_DicContent : VersionEntity, IFieldEnabled, IFieldSummary { /// /// 字典目录 @@ -23,6 +23,12 @@ public record Sys_DicContent : VersionEntity [JsonIgnore] public virtual long CatalogId { get; init; } + /// + [Column] + [CsvIgnore] + [JsonIgnore] + public virtual bool Enabled { get; init; } + /// /// 键名称 /// @@ -31,6 +37,14 @@ public record Sys_DicContent : VersionEntity [JsonIgnore] public virtual string Key { get; init; } + /// + /// 描述 + /// + [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)] + [CsvIgnore] + [JsonIgnore] + public virtual string Summary { get; init; } + /// /// 键值 /// diff --git a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_LoginLog.cs b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_LoginLog.cs index f63735cc..9c72d706 100644 --- a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_LoginLog.cs +++ b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_LoginLog.cs @@ -7,8 +7,7 @@ namespace NetAdmin.Domain.DbMaps.Sys; [SqlIndex(Chars.FLG_DB_INDEX_PREFIX + nameof(HttpStatusCode), nameof(HttpStatusCode), false)] [SqlIndex(Chars.FLG_DB_INDEX_PREFIX + nameof(OwnerId), nameof(OwnerId), false)] [Table(Name = Chars.FLG_DB_TABLE_NAME_PREFIX + nameof(Sys_LoginLog))] -public record Sys_LoginLog : SimpleEntity, IFieldCreatedTime, IFieldOwner, IFieldCreatedClientIp - , IFieldCreatedClientUserAgent +public record Sys_LoginLog : SimpleEntity, IFieldCreatedTime, IFieldOwner, IFieldCreatedClientIp, IFieldCreatedClientUserAgent { /// [Column] diff --git a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_RequestLog.cs b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_RequestLog.cs index 1bab3d85..70a69f95 100644 --- a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_RequestLog.cs +++ b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_RequestLog.cs @@ -10,8 +10,7 @@ namespace NetAdmin.Domain.DbMaps.Sys; [SqlIndex(Chars.FLG_DB_INDEX_PREFIX + nameof(OwnerId), nameof(OwnerId), false)] [SqlIndex(Chars.FLG_DB_INDEX_PREFIX + nameof(HttpStatusCode), nameof(HttpStatusCode), false)] [Table( // - Name = $"{Chars.FLG_DB_TABLE_NAME_PREFIX}{nameof(Sys_RequestLog)}_{{yyyyMMdd}}" - , AsTable = $"{nameof(CreatedTime)}=2024-1-1(1 day)")] + Name = $"{Chars.FLG_DB_TABLE_NAME_PREFIX}{nameof(Sys_RequestLog)}_{{yyyyMMdd}}", AsTable = $"{nameof(CreatedTime)}=2024-5-1(1 day)")] public record Sys_RequestLog : SimpleEntity, IFieldCreatedTime, IFieldOwner, IFieldCreatedClientIp { /// diff --git a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_Role.cs b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_Role.cs index f9562c1d..5bf248e8 100644 --- a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_Role.cs +++ b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_Role.cs @@ -123,20 +123,11 @@ public record Sys_Role : VersionEntity, IFieldSort, IFieldEnabled, IFieldSummary { _ = config.ForType() .Map( // - d => d.Depts - , s => s.DeptIds.NullOrEmpty() - ? Array.Empty() - : s.DeptIds.Select(x => new Sys_Dept { Id = x })) + d => d.Depts, s => s.DeptIds.NullOrEmpty() ? Array.Empty() : s.DeptIds.Select(x => new Sys_Dept { Id = x })) .Map( // - d => d.Menus - , s => s.MenuIds.NullOrEmpty() - ? Array.Empty() - : s.MenuIds.Select(x => new Sys_Menu { Id = x })) + d => d.Menus, s => s.MenuIds.NullOrEmpty() ? Array.Empty() : s.MenuIds.Select(x => new Sys_Menu { Id = x })) .Map( // - d => d.Apis - , s => s.ApiIds.NullOrEmpty() - ? Array.Empty() - : s.ApiIds.Select(x => new Sys_Api { Id = x })) + d => d.Apis, s => s.ApiIds.NullOrEmpty() ? Array.Empty() : s.ApiIds.Select(x => new Sys_Api { Id = x })) // ; diff --git a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsg.cs b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsg.cs index 081452ad..0f1fdf83 100644 --- a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsg.cs +++ b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsg.cs @@ -91,20 +91,11 @@ public record Sys_SiteMsg : VersionEntity, IRegister, IFieldSummary .Map( // d => d.Summary, s => s.Content.RemoveHtmlTag().HtmlDe().Sub(0, 100)) .Map( // - d => d.Roles - , s => s.RoleIds.NullOrEmpty() - ? Array.Empty() - : s.RoleIds.Select(x => new Sys_Role { Id = x })) + d => d.Roles, s => s.RoleIds.NullOrEmpty() ? Array.Empty() : s.RoleIds.Select(x => new Sys_Role { Id = x })) .Map( // - d => d.Users - , s => s.UserIds.NullOrEmpty() - ? Array.Empty() - : s.UserIds.Select(x => new Sys_User { Id = x })) + d => d.Users, s => s.UserIds.NullOrEmpty() ? Array.Empty() : s.UserIds.Select(x => new Sys_User { Id = x })) .Map( // - d => d.Depts - , s => s.DeptIds.NullOrEmpty() - ? Array.Empty() - : s.DeptIds.Select(x => new Sys_Dept { Id = x })) + d => d.Depts, s => s.DeptIds.NullOrEmpty() ? Array.Empty() : s.DeptIds.Select(x => new Sys_Dept { Id = x })) // ; diff --git a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsgDept.cs b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsgDept.cs index 39ffdb49..59595e70 100644 --- a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsgDept.cs +++ b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsgDept.cs @@ -3,8 +3,7 @@ namespace NetAdmin.Domain.DbMaps.Sys; /// /// 站内信-部门映射表 /// -[SqlIndex($"{Chars.FLG_DB_INDEX_PREFIX}{nameof(DeptId)}_{nameof(SiteMsgId)}", $"{nameof(DeptId)},{nameof(SiteMsgId)}" - , true)] +[SqlIndex($"{Chars.FLG_DB_INDEX_PREFIX}{nameof(DeptId)}_{nameof(SiteMsgId)}", $"{nameof(DeptId)},{nameof(SiteMsgId)}", true)] [Table(Name = Chars.FLG_DB_TABLE_NAME_PREFIX + nameof(Sys_SiteMsgDept))] public record Sys_SiteMsgDept : ImmutableEntity { diff --git a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsgFlag.cs b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsgFlag.cs index 7f4b295c..f7d7f552 100644 --- a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsgFlag.cs +++ b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsgFlag.cs @@ -5,8 +5,7 @@ namespace NetAdmin.Domain.DbMaps.Sys; /// /// 站内信标记表 /// -[SqlIndex($"{Chars.FLG_DB_INDEX_PREFIX}{nameof(SiteMsgId)}_{nameof(UserId)}", $"{nameof(SiteMsgId)},{nameof(UserId)}" - , true)] +[SqlIndex($"{Chars.FLG_DB_INDEX_PREFIX}{nameof(SiteMsgId)}_{nameof(UserId)}", $"{nameof(SiteMsgId)},{nameof(UserId)}", true)] [Table(Name = Chars.FLG_DB_TABLE_NAME_PREFIX + nameof(Sys_SiteMsgFlag))] public record Sys_SiteMsgFlag : MutableEntity { diff --git a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsgRole.cs b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsgRole.cs index 221b5020..26d60810 100644 --- a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsgRole.cs +++ b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsgRole.cs @@ -3,8 +3,7 @@ namespace NetAdmin.Domain.DbMaps.Sys; /// /// 站内信-角色映射表 /// -[SqlIndex($"{Chars.FLG_DB_INDEX_PREFIX}{nameof(RoleId)}_{nameof(SiteMsgId)}", $"{nameof(RoleId)},{nameof(SiteMsgId)}" - , true)] +[SqlIndex($"{Chars.FLG_DB_INDEX_PREFIX}{nameof(RoleId)}_{nameof(SiteMsgId)}", $"{nameof(RoleId)},{nameof(SiteMsgId)}", true)] [Table(Name = Chars.FLG_DB_TABLE_NAME_PREFIX + nameof(Sys_SiteMsgRole))] public record Sys_SiteMsgRole : ImmutableEntity { diff --git a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsgUser.cs b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsgUser.cs index d48ea8bb..cc1b91c9 100644 --- a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsgUser.cs +++ b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_SiteMsgUser.cs @@ -3,8 +3,7 @@ namespace NetAdmin.Domain.DbMaps.Sys; /// /// 站内信-用户映射表 /// -[SqlIndex($"{Chars.FLG_DB_INDEX_PREFIX}{nameof(UserId)}_{nameof(SiteMsgId)}", $"{nameof(UserId)},{nameof(SiteMsgId)}" - , true)] +[SqlIndex($"{Chars.FLG_DB_INDEX_PREFIX}{nameof(UserId)}_{nameof(SiteMsgId)}", $"{nameof(UserId)},{nameof(SiteMsgId)}", true)] [Table(Name = Chars.FLG_DB_TABLE_NAME_PREFIX + nameof(Sys_SiteMsgUser))] public record Sys_SiteMsgUser : ImmutableEntity { diff --git a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_User.cs b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_User.cs index b161d56b..16c320b9 100644 --- a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_User.cs +++ b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_User.cs @@ -130,18 +130,12 @@ public record Sys_User : VersionEntity, IFieldSummary, IFieldEnabled, IRegister .Map(d => d.Password, s => s.PasswordText.Pwd().Guid()) .Map(d => d.Token, _ => Guid.NewGuid()) .Map( // - d => d.Roles - , s => s.RoleIds.NullOrEmpty() - ? Array.Empty() - : s.RoleIds.Select(x => new Sys_Role { Id = x })); + d => d.Roles, s => s.RoleIds.NullOrEmpty() ? Array.Empty() : s.RoleIds.Select(x => new Sys_Role { Id = x })); _ = config.ForType() .Map( // d => d.Password, s => s.PasswordText.NullOrEmpty() ? Guid.Empty : s.PasswordText.Pwd().Guid()) .Map( // - d => d.Roles - , s => s.RoleIds.NullOrEmpty() - ? Array.Empty() - : s.RoleIds.Select(x => new Sys_Role { Id = x })); + d => d.Roles, s => s.RoleIds.NullOrEmpty() ? Array.Empty() : s.RoleIds.Select(x => new Sys_Role { Id = x })); } } \ No newline at end of file diff --git a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_UserProfile.cs b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_UserProfile.cs index 86db8b0d..ff9b7969 100644 --- a/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_UserProfile.cs +++ b/src/backend/NetAdmin.Domain/DbMaps/Sys/Sys_UserProfile.cs @@ -228,7 +228,6 @@ public record Sys_UserProfile : VersionEntity, IRegister .Map(d => d.CompanyArea, s => s.CompanyArea == null ? null : s.CompanyArea.Value) .Map(d => d.HomeArea, s => s.HomeArea == null ? null : s.HomeArea.Value) .Map( // - d => d.EmergencyContactArea - , s => s.EmergencyContactArea == null ? null : s.EmergencyContactArea.Value); + d => d.EmergencyContactArea, s => s.EmergencyContactArea == null ? null : s.EmergencyContactArea.Value); } } \ No newline at end of file diff --git a/src/backend/NetAdmin.Domain/Dto/Dependency/DynamicFilterInfo.cs b/src/backend/NetAdmin.Domain/Dto/Dependency/DynamicFilterInfo.cs index 58cf973f..026125c8 100644 --- a/src/backend/NetAdmin.Domain/Dto/Dependency/DynamicFilterInfo.cs +++ b/src/backend/NetAdmin.Domain/Dto/Dependency/DynamicFilterInfo.cs @@ -74,8 +74,8 @@ public sealed record DynamicFilterInfo : DataAbstraction } } - if (new[] { nameof(IFieldCreatedClientIp.CreatedClientIp), nameof(IFieldModifiedClientIp.ModifiedClientIp) } - .Contains(d?.Field, StringComparer.OrdinalIgnoreCase)) { + if (new[] { nameof(IFieldCreatedClientIp.CreatedClientIp), nameof(IFieldModifiedClientIp.ModifiedClientIp) }.Contains( + d?.Field, StringComparer.OrdinalIgnoreCase)) { var val = d!.Value?.ToString(); if (val?.IsIpV4() == true) { d.Value = val.IpV4ToInt32(); diff --git a/src/backend/NetAdmin.Domain/Dto/Sys/Cache/CacheStatisticsRsp.cs b/src/backend/NetAdmin.Domain/Dto/Sys/Cache/CacheStatisticsRsp.cs index fcad116a..f7b0eb37 100644 --- a/src/backend/NetAdmin.Domain/Dto/Sys/Cache/CacheStatisticsRsp.cs +++ b/src/backend/NetAdmin.Domain/Dto/Sys/Cache/CacheStatisticsRsp.cs @@ -6,13 +6,13 @@ namespace NetAdmin.Domain.Dto.Sys.Cache; public sealed record CacheStatisticsRsp : DataAbstraction { private static readonly Regex[] _regexes = [ - new Regex(@"keyspace_hits:(\d+)", RegexOptions.Compiled) // - , new Regex(@"keyspace_misses:(\d+)", RegexOptions.Compiled) // - , new Regex(@"uptime_in_seconds:(\d+)", RegexOptions.Compiled) // - , new Regex(@"used_cpu_sys:([\d\\.]+)", RegexOptions.Compiled) // - , new Regex(@"used_cpu_user:([\d\\.]+)", RegexOptions.Compiled) // - , new Regex(@"used_memory:(\d+)", RegexOptions.Compiled) // - , new Regex("redis_version:(.+)", RegexOptions.Compiled) // + new(@"keyspace_hits:(\d+)", RegexOptions.Compiled) // + , new(@"keyspace_misses:(\d+)", RegexOptions.Compiled) // + , new(@"uptime_in_seconds:(\d+)", RegexOptions.Compiled) // + , new(@"used_cpu_sys:([\d\\.]+)", RegexOptions.Compiled) // + , new(@"used_cpu_user:([\d\\.]+)", RegexOptions.Compiled) // + , new(@"used_memory:(\d+)", RegexOptions.Compiled) // + , new("redis_version:(.+)", RegexOptions.Compiled) // ]; /// @@ -25,13 +25,12 @@ public sealed record CacheStatisticsRsp : DataAbstraction /// public CacheStatisticsRsp(string redisResult) { - KeyspaceHits = _regexes[0].Match(redisResult).Groups[1].Value.Trim().Int64Try(0); + KeyspaceHits = _regexes[0].Match(redisResult).Groups[1].Value.Trim().Int64Try(0); KeyspaceMisses = _regexes[1].Match(redisResult).Groups[1].Value.Trim().Int64Try(0); - UpTime = _regexes[2].Match(redisResult).Groups[1].Value.Trim().Int64Try(0); - UsedCpu = _regexes[3].Match(redisResult).Groups[1].Value.Trim().DecTry(0) + - _regexes[4].Match(redisResult).Groups[1].Value.Trim().DecTry(0); + UpTime = _regexes[2].Match(redisResult).Groups[1].Value.Trim().Int64Try(0); + UsedCpu = _regexes[3].Match(redisResult).Groups[1].Value.Trim().DecTry(0) + _regexes[4].Match(redisResult).Groups[1].Value.Trim().DecTry(0); UsedMemory = _regexes[5].Match(redisResult).Groups[1].Value.Trim().Int64Try(0); - Version = _regexes[6].Match(redisResult).Groups[1].Value.Trim(); + Version = _regexes[6].Match(redisResult).Groups[1].Value.Trim(); } /// diff --git a/src/backend/NetAdmin.Domain/Dto/Sys/Dic/Content/CreateDicContentReq.cs b/src/backend/NetAdmin.Domain/Dto/Sys/Dic/Content/CreateDicContentReq.cs index 44156f0a..cc7bafee 100644 --- a/src/backend/NetAdmin.Domain/Dto/Sys/Dic/Content/CreateDicContentReq.cs +++ b/src/backend/NetAdmin.Domain/Dto/Sys/Dic/Content/CreateDicContentReq.cs @@ -10,13 +10,21 @@ public record CreateDicContentReq : Sys_DicContent [Required(ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.字典目录编号不能为空))] public override long CatalogId { get; init; } - /// + /// [JsonIgnore(Condition = JsonIgnoreCondition.Never)] + public override bool Enabled { get; init; } = true; + + /// + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [Required(ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.键名称不能为空))] public override string Key { get; init; } + /// + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + public override string Summary { get; init; } + /// - [JsonIgnore(Condition = JsonIgnoreCondition.Never)] + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [Required(ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.键值不能为空))] public override string Value { get; init; } } \ No newline at end of file diff --git a/src/backend/NetAdmin.Domain/Dto/Sys/Dic/Content/ExportDicContentRsp.cs b/src/backend/NetAdmin.Domain/Dto/Sys/Dic/Content/ExportDicContentRsp.cs index b78689a2..4edf2f59 100644 --- a/src/backend/NetAdmin.Domain/Dto/Sys/Dic/Content/ExportDicContentRsp.cs +++ b/src/backend/NetAdmin.Domain/Dto/Sys/Dic/Content/ExportDicContentRsp.cs @@ -11,12 +11,24 @@ public sealed record ExportDicContentRsp : QueryDicContentRsp [CsvName(nameof(Ln.创建时间))] public override DateTime CreatedTime { get; init; } + /// + [CsvIndex(3)] + [CsvIgnore(false)] + [CsvName(nameof(Ln.是否启用))] + public override bool Enabled { get; init; } + /// [CsvIndex(0)] [CsvIgnore(false)] [CsvName(nameof(Ln.项名))] public override string Key { get; init; } + /// + [CsvIndex(4)] + [CsvIgnore(false)] + [CsvName(nameof(Ln.备注))] + public override string Summary { get; init; } + /// [CsvIndex(1)] [CsvIgnore(false)] diff --git a/src/backend/NetAdmin.Domain/Dto/Sys/Dic/Content/QueryDicContentRsp.cs b/src/backend/NetAdmin.Domain/Dto/Sys/Dic/Content/QueryDicContentRsp.cs index 7df2f013..802fe7e2 100644 --- a/src/backend/NetAdmin.Domain/Dto/Sys/Dic/Content/QueryDicContentRsp.cs +++ b/src/backend/NetAdmin.Domain/Dto/Sys/Dic/Content/QueryDicContentRsp.cs @@ -13,10 +13,18 @@ public record QueryDicContentRsp : Sys_DicContent [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public override DateTime CreatedTime { get; init; } + /// + [JsonIgnore(Condition = JsonIgnoreCondition.Never)] + public override bool Enabled { get; init; } + /// [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public override string Key { get; init; } + /// + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + public override string Summary { get; init; } + /// [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public override string Value { get; init; } diff --git a/src/backend/NetAdmin.Domain/Dto/Sys/Dic/Content/SetDicContentEnabledReq.cs b/src/backend/NetAdmin.Domain/Dto/Sys/Dic/Content/SetDicContentEnabledReq.cs new file mode 100644 index 00000000..e5cb5926 --- /dev/null +++ b/src/backend/NetAdmin.Domain/Dto/Sys/Dic/Content/SetDicContentEnabledReq.cs @@ -0,0 +1,15 @@ +namespace NetAdmin.Domain.Dto.Sys.Dic.Content; + +/// +/// 请求:设置字典内容启用状态 +/// +public sealed record SetDicContentEnabledReq : Sys_DicContent +{ + /// + [JsonIgnore(Condition = JsonIgnoreCondition.Never)] + public override bool Enabled { get; init; } + + /// + [JsonIgnore(Condition = JsonIgnoreCondition.Never)] + public override long Version { get; init; } +} \ No newline at end of file diff --git a/src/backend/NetAdmin.Domain/Dto/Sys/Job/CreateJobReq.cs b/src/backend/NetAdmin.Domain/Dto/Sys/Job/CreateJobReq.cs index 92a84e57..1088d216 100644 --- a/src/backend/NetAdmin.Domain/Dto/Sys/Job/CreateJobReq.cs +++ b/src/backend/NetAdmin.Domain/Dto/Sys/Job/CreateJobReq.cs @@ -19,8 +19,7 @@ public record CreateJobReq : Sys_Job public override string ExecutionCron { get; init; } /// - [EnumDataType(typeof(HttpMethods), ErrorMessageResourceType = typeof(Ln) - , ErrorMessageResourceName = nameof(Ln.请求方法不正确))] + [EnumDataType(typeof(HttpMethods), ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.请求方法不正确))] [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public override HttpMethods HttpMethod { get; init; } diff --git a/src/backend/NetAdmin.Domain/Dto/Sys/Job/QueryJobRsp.cs b/src/backend/NetAdmin.Domain/Dto/Sys/Job/QueryJobRsp.cs index 7372ab45..c016dcf1 100644 --- a/src/backend/NetAdmin.Domain/Dto/Sys/Job/QueryJobRsp.cs +++ b/src/backend/NetAdmin.Domain/Dto/Sys/Job/QueryJobRsp.cs @@ -15,8 +15,7 @@ public record QueryJobRsp : Sys_Job /// Cron 表达式描述 /// [JsonInclude] - public string CronDescription => - ExpressionDescriptor.GetDescription(ExecutionCron, new Options { Locale = "zh-CN" }); + public string CronDescription => ExpressionDescriptor.GetDescription(ExecutionCron, new Options { Locale = "zh-CN" }); /// [JsonInclude] diff --git a/src/backend/NetAdmin.Domain/Dto/Sys/Menu/MetaInfo.cs b/src/backend/NetAdmin.Domain/Dto/Sys/Menu/MetaInfo.cs index 4e288064..62407cbb 100644 --- a/src/backend/NetAdmin.Domain/Dto/Sys/Menu/MetaInfo.cs +++ b/src/backend/NetAdmin.Domain/Dto/Sys/Menu/MetaInfo.cs @@ -15,8 +15,7 @@ public sealed record MetaInfo : DataAbstraction /// /// Initializes a new instance of the class. /// - public MetaInfo(string color, bool fullPage, bool hidden, bool hiddenBreadCrumb, string icon, string tag - , string title, MenuTypes type) + public MetaInfo(string color, bool fullPage, bool hidden, bool hiddenBreadCrumb, string icon, string tag, string title, MenuTypes type) { Color = color; FullPage = fullPage; @@ -73,8 +72,7 @@ public sealed record MetaInfo : DataAbstraction /// /// 类型 /// - [EnumDataType(typeof(MenuTypes), ErrorMessageResourceType = typeof(Ln) - , ErrorMessageResourceName = nameof(Ln.菜单类型不正确))] + [EnumDataType(typeof(MenuTypes), ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.菜单类型不正确))] [JsonInclude] public MenuTypes Type { get; init; } } \ No newline at end of file diff --git a/src/backend/NetAdmin.Domain/Dto/Sys/Role/CreateRoleReq.cs b/src/backend/NetAdmin.Domain/Dto/Sys/Role/CreateRoleReq.cs index 4aad86af..b9332e93 100644 --- a/src/backend/NetAdmin.Domain/Dto/Sys/Role/CreateRoleReq.cs +++ b/src/backend/NetAdmin.Domain/Dto/Sys/Role/CreateRoleReq.cs @@ -18,8 +18,7 @@ public record CreateRoleReq : Sys_Role, IValidatableObject public override string DashboardLayout { get; set; } /// - [EnumDataType(typeof(DataScopes), ErrorMessageResourceType = typeof(Ln) - , ErrorMessageResourceName = nameof(Ln.角色数据范围不正确))] + [EnumDataType(typeof(DataScopes), ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.角色数据范围不正确))] public override DataScopes DataScope { get; init; } = DataScopes.All; /// diff --git a/src/backend/NetAdmin.Domain/Dto/Sys/SiteMsg/CreateSiteMsgReq.cs b/src/backend/NetAdmin.Domain/Dto/Sys/SiteMsg/CreateSiteMsgReq.cs index f1d3800f..bd70fe0f 100644 --- a/src/backend/NetAdmin.Domain/Dto/Sys/SiteMsg/CreateSiteMsgReq.cs +++ b/src/backend/NetAdmin.Domain/Dto/Sys/SiteMsg/CreateSiteMsgReq.cs @@ -20,8 +20,7 @@ public record CreateSiteMsgReq : Sys_SiteMsg public IReadOnlyCollection DeptIds { get; init; } /// - [EnumDataType(typeof(SiteMsgTypes), ErrorMessageResourceType = typeof(Ln) - , ErrorMessageResourceName = nameof(Ln.站内信类型不正确))] + [EnumDataType(typeof(SiteMsgTypes), ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.站内信类型不正确))] [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public override SiteMsgTypes MsgType { get; init; } diff --git a/src/backend/NetAdmin.Domain/Dto/Sys/SiteMsgFlag/CreateSiteMsgFlagReq.cs b/src/backend/NetAdmin.Domain/Dto/Sys/SiteMsgFlag/CreateSiteMsgFlagReq.cs index a8c37eda..5345e3bf 100644 --- a/src/backend/NetAdmin.Domain/Dto/Sys/SiteMsgFlag/CreateSiteMsgFlagReq.cs +++ b/src/backend/NetAdmin.Domain/Dto/Sys/SiteMsgFlag/CreateSiteMsgFlagReq.cs @@ -12,8 +12,7 @@ public record CreateSiteMsgFlagReq : Sys_SiteMsgFlag public override long SiteMsgId { get; init; } /// - [EnumDataType(typeof(UserSiteMsgStatues), ErrorMessageResourceType = typeof(Ln) - , ErrorMessageResourceName = nameof(Ln.站内信状态不正确))] + [EnumDataType(typeof(UserSiteMsgStatues), ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.站内信状态不正确))] [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public override UserSiteMsgStatues UserSiteMsgStatus { get; init; } } \ No newline at end of file diff --git a/src/backend/NetAdmin.Domain/Dto/Sys/Tool/AesDecodeReq.cs b/src/backend/NetAdmin.Domain/Dto/Sys/Tool/AesDecodeReq.cs new file mode 100644 index 00000000..cb9dffeb --- /dev/null +++ b/src/backend/NetAdmin.Domain/Dto/Sys/Tool/AesDecodeReq.cs @@ -0,0 +1,12 @@ +namespace NetAdmin.Domain.Dto.Sys.Tool; + +/// +/// 请求:Aes解密 +/// +public record AesDecodeReq : DataAbstraction +{ + /// + /// 密文 + /// + public string CipherText { get; init; } +} \ No newline at end of file diff --git a/src/backend/NetAdmin.Domain/Dto/Sys/User/QueryUserRsp.cs b/src/backend/NetAdmin.Domain/Dto/Sys/User/QueryUserRsp.cs index 6e6d58a3..165825a9 100644 --- a/src/backend/NetAdmin.Domain/Dto/Sys/User/QueryUserRsp.cs +++ b/src/backend/NetAdmin.Domain/Dto/Sys/User/QueryUserRsp.cs @@ -16,6 +16,14 @@ public record QueryUserRsp : Sys_User [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public override DateTime CreatedTime { get; init; } + /// + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + public override long? CreatedUserId { get; init; } + + /// + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + public override string CreatedUserName { get; init; } + /// public new virtual QueryDeptRsp Dept { get; init; } diff --git a/src/backend/NetAdmin.Domain/Dto/Sys/UserProfile/CreateUserProfileReq.cs b/src/backend/NetAdmin.Domain/Dto/Sys/UserProfile/CreateUserProfileReq.cs index 5875a02b..b5c3480e 100644 --- a/src/backend/NetAdmin.Domain/Dto/Sys/UserProfile/CreateUserProfileReq.cs +++ b/src/backend/NetAdmin.Domain/Dto/Sys/UserProfile/CreateUserProfileReq.cs @@ -17,8 +17,7 @@ public record CreateUserProfileReq : Sys_UserProfile public override string CertificateNumber { get; init; } /// - [EnumDataType(typeof(CertificateTypes), ErrorMessageResourceType = typeof(Ln) - , ErrorMessageResourceName = nameof(Ln.证件类型不正确))] + [EnumDataType(typeof(CertificateTypes), ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.证件类型不正确))] [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public override CertificateTypes? CertificateType { get; init; } @@ -39,8 +38,7 @@ public record CreateUserProfileReq : Sys_UserProfile public override string CompanyTelephone { get; init; } /// - [EnumDataType(typeof(Educations), ErrorMessageResourceType = typeof(Ln) - , ErrorMessageResourceName = nameof(Ln.学历不正确))] + [EnumDataType(typeof(Educations), ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.学历不正确))] [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public override Educations? Education { get; init; } @@ -82,8 +80,7 @@ public record CreateUserProfileReq : Sys_UserProfile public override string HomeTelephone { get; init; } /// - [EnumDataType(typeof(MarriageStatues), ErrorMessageResourceType = typeof(Ln) - , ErrorMessageResourceName = nameof(Ln.婚姻状况不正确))] + [EnumDataType(typeof(MarriageStatues), ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.婚姻状况不正确))] [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public override MarriageStatues? MarriageStatus { get; init; } @@ -96,8 +93,7 @@ public record CreateUserProfileReq : Sys_UserProfile public new CreateDicContentReq NationArea { get; init; } /// - [EnumDataType(typeof(PoliticalStatues), ErrorMessageResourceType = typeof(Ln) - , ErrorMessageResourceName = nameof(Ln.政治面貌不正确))] + [EnumDataType(typeof(PoliticalStatues), ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.政治面貌不正确))] [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public override PoliticalStatues? PoliticalStatus { get; init; } diff --git a/src/backend/NetAdmin.Domain/Dto/Sys/VerifyCode/SendVerifyCodeReq.cs b/src/backend/NetAdmin.Domain/Dto/Sys/VerifyCode/SendVerifyCodeReq.cs index 2ea0c9ca..5894b168 100644 --- a/src/backend/NetAdmin.Domain/Dto/Sys/VerifyCode/SendVerifyCodeReq.cs +++ b/src/backend/NetAdmin.Domain/Dto/Sys/VerifyCode/SendVerifyCodeReq.cs @@ -14,8 +14,7 @@ public sealed record SendVerifyCodeReq : Sys_VerifyCode, IValidatableObject public override string DestDevice { get; init; } /// - [EnumDataType(typeof(VerifyCodeDeviceTypes), ErrorMessageResourceType = typeof(Ln) - , ErrorMessageResourceName = nameof(Ln.验证码目标设备类型不正确))] + [EnumDataType(typeof(VerifyCodeDeviceTypes), ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.验证码目标设备类型不正确))] [JsonIgnore(Condition = JsonIgnoreCondition.Never)] [Required(ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.设备类型不能为空))] public override VerifyCodeDeviceTypes DeviceType { get; init; } @@ -24,8 +23,7 @@ public sealed record SendVerifyCodeReq : Sys_VerifyCode, IValidatableObject public override VerifyCodeStatues Status => VerifyCodeStatues.Waiting; /// - [EnumDataType(typeof(VerifyCodeTypes), ErrorMessageResourceType = typeof(Ln) - , ErrorMessageResourceName = nameof(Ln.验证码类型不正确))] + [EnumDataType(typeof(VerifyCodeTypes), ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.验证码类型不正确))] [JsonIgnore(Condition = JsonIgnoreCondition.Never)] [Required(ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.验证码类型不能为空))] public override VerifyCodeTypes Type { get; init; } @@ -43,22 +41,20 @@ public sealed record SendVerifyCodeReq : Sys_VerifyCode, IValidatableObject switch (DeviceType) { case VerifyCodeDeviceTypes.Email: validationResult = new EmailAttribute().GetValidationResult(DestDevice, validationContext); - if (validationResult == null) { - yield break; - } - yield return new ValidationResult(validationResult.ErrorMessage, new[] { nameof(DestDevice) }); break; case VerifyCodeDeviceTypes.Mobile: validationResult = new MobileAttribute().GetValidationResult(DestDevice, validationContext); - if (validationResult == null) { - yield break; - } - yield return new ValidationResult(validationResult.ErrorMessage, new[] { nameof(DestDevice) }); break; default: yield break; } + + if (validationResult == null) { + yield break; + } + + yield return new ValidationResult(validationResult.ErrorMessage, [nameof(DestDevice)]); } } \ No newline at end of file diff --git a/src/backend/NetAdmin.Domain/Events/SyncStructureAfterEvent.cs b/src/backend/NetAdmin.Domain/Events/SyncStructureAfterEvent.cs index 383c03d8..2bdee6ac 100644 --- a/src/backend/NetAdmin.Domain/Events/SyncStructureAfterEvent.cs +++ b/src/backend/NetAdmin.Domain/Events/SyncStructureAfterEvent.cs @@ -17,7 +17,6 @@ public sealed record SyncStructureAfterEvent : SyncStructureBeforeEvent /// public override string ToString() { - return string.Format(CultureInfo.InvariantCulture, "{0}: {1}: {2}", Id, Ln.数据库结构同步完成 - , string.Join(',', EntityTypes.Select(x => x.Name))); + return string.Format(CultureInfo.InvariantCulture, "{0}: {1}: {2}", Id, Ln.数据库结构同步完成, string.Join(',', EntityTypes.Select(x => x.Name))); } } \ No newline at end of file diff --git a/src/backend/NetAdmin.Domain/Events/Sys/RequestLogEvent.cs b/src/backend/NetAdmin.Domain/Events/Sys/RequestLogEvent.cs index 5ea7e291..ca27098a 100644 --- a/src/backend/NetAdmin.Domain/Events/Sys/RequestLogEvent.cs +++ b/src/backend/NetAdmin.Domain/Events/Sys/RequestLogEvent.cs @@ -10,8 +10,8 @@ public sealed record RequestLogEvent : DataAbstraction, IEventSourceGeneric /// Initializes a new instance of the class. /// - public RequestLogEvent(CreateRequestLogReq data, bool isConsumOnce = false, object payload = default - , DateTime createdTime = default, CancellationToken cancellationToken = default) + public RequestLogEvent(CreateRequestLogReq data, bool isConsumOnce = false, object payload = default, DateTime createdTime = default + , CancellationToken cancellationToken = default) { Data = data; IsConsumOnce = isConsumOnce; diff --git a/src/backend/NetAdmin.Domain/Events/Sys/UserUpdatedEvent.cs b/src/backend/NetAdmin.Domain/Events/Sys/UserUpdatedEvent.cs index 5d42fe0b..577612d1 100644 --- a/src/backend/NetAdmin.Domain/Events/Sys/UserUpdatedEvent.cs +++ b/src/backend/NetAdmin.Domain/Events/Sys/UserUpdatedEvent.cs @@ -10,8 +10,8 @@ public sealed record UserUpdatedEvent : DataAbstraction, IEventSourceGeneric /// Initializes a new instance of the class. /// - public UserUpdatedEvent(UserInfoRsp data, DateTime createdTime = default, bool isConsumOnce = false - , object payload = default, CancellationToken cancellationToken = default) + public UserUpdatedEvent(UserInfoRsp data, DateTime createdTime = default, bool isConsumOnce = false, object payload = default + , CancellationToken cancellationToken = default) { Data = data; CancellationToken = cancellationToken; diff --git a/src/backend/NetAdmin.Domain/Events/Sys/VerifyCodeCreatedEvent.cs b/src/backend/NetAdmin.Domain/Events/Sys/VerifyCodeCreatedEvent.cs index a68cd1b9..5b702add 100644 --- a/src/backend/NetAdmin.Domain/Events/Sys/VerifyCodeCreatedEvent.cs +++ b/src/backend/NetAdmin.Domain/Events/Sys/VerifyCodeCreatedEvent.cs @@ -10,8 +10,8 @@ public sealed record VerifyCodeCreatedEvent : DataAbstraction, IEventSourceGener /// /// Initializes a new instance of the class. /// - public VerifyCodeCreatedEvent(QueryVerifyCodeRsp data, DateTime createdTime = default, bool isConsumOnce = false - , object payload = default, CancellationToken cancellationToken = default) + public VerifyCodeCreatedEvent(QueryVerifyCodeRsp data, DateTime createdTime = default, bool isConsumOnce = false, object payload = default + , CancellationToken cancellationToken = default) { Data = data; CancellationToken = cancellationToken; diff --git a/src/backend/NetAdmin.Host/BackgroundRunning/WorkBase.cs b/src/backend/NetAdmin.Host/BackgroundRunning/WorkBase.cs index 9ab18258..0400fddb 100644 --- a/src/backend/NetAdmin.Host/BackgroundRunning/WorkBase.cs +++ b/src/backend/NetAdmin.Host/BackgroundRunning/WorkBase.cs @@ -67,11 +67,9 @@ public abstract class WorkBase { var db = ServiceProvider.GetService() .GetDatabase(ServiceProvider.GetService>() - .Value.Instances - .First(x => x.Name == Chars.FLG_REDIS_INSTANCE_DATA_CACHE) + .Value.Instances.First(x => x.Name == Chars.FLG_REDIS_INSTANCE_DATA_CACHE) .Database); - return RedisLocker.GetLockerAsync(db, lockId, TimeSpan.FromSeconds(Numbers.SECS_REDIS_LOCK_EXPIRY) - , Numbers.MAX_LIMIT_RETRY_CNT_REDIS_LOCK + return RedisLocker.GetLockerAsync(db, lockId, TimeSpan.FromSeconds(Numbers.SECS_REDIS_LOCK_EXPIRY), Numbers.MAX_LIMIT_RETRY_CNT_REDIS_LOCK , TimeSpan.FromSeconds(Numbers.SECS_REDIS_LOCK_RETRY_DELAY)); } } \ No newline at end of file diff --git a/src/backend/NetAdmin.Host/Controllers/ProbeController.cs b/src/backend/NetAdmin.Host/Controllers/ProbeController.cs index 7495de12..29d2f174 100644 --- a/src/backend/NetAdmin.Host/Controllers/ProbeController.cs +++ b/src/backend/NetAdmin.Host/Controllers/ProbeController.cs @@ -8,6 +8,7 @@ namespace NetAdmin.Host.Controllers; /// 探针组件 /// [ApiDescriptionSettings("Probe")] +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] public sealed class ProbeController : ControllerBase, IService> { /// @@ -55,12 +56,7 @@ public sealed class ProbeController : ControllerBase - logTimeoutSeconds - ? "1" - : "0" - }; + return new ContentResult { Content = (DateTime.Now - GlobalStatic.LatestLogTime).TotalSeconds > logTimeoutSeconds ? "1" : "0" }; } /// @@ -82,4 +78,21 @@ public sealed class ProbeController : ControllerBase + /// 停止日志计数器 + /// + [AllowAnonymous] + [HttpGet] + #pragma warning disable CA1822 + public ActionResult StopLogCounter(string token) + #pragma warning restore CA1822 + { + if (token != GlobalStatic.SecretKey) { + return new UnauthorizedResult(); + } + + GlobalStatic.LogCounterOff = true; + return new OkResult(); + } } \ No newline at end of file diff --git a/src/backend/NetAdmin.Host/Extensions/IMvcBuilderExtensions.cs b/src/backend/NetAdmin.Host/Extensions/IMvcBuilderExtensions.cs index 78c837f9..e1b6a19a 100644 --- a/src/backend/NetAdmin.Host/Extensions/IMvcBuilderExtensions.cs +++ b/src/backend/NetAdmin.Host/Extensions/IMvcBuilderExtensions.cs @@ -17,26 +17,20 @@ public static class IMvcBuilderExtensions public static IMvcBuilder AddDefaultApiResultHandler(this IMvcBuilder me) { return me.AddInjectWithUnifyResult(injectOptions => { - injectOptions.ConfigureSwaggerGen( - genOptions => { - // 替换自定义的EnumSchemaFilter,支持多语言Resx资源 (需将SpecificationDocumentSettings.EnableEnumSchemaFilter配置为false) - genOptions - .SchemaFilter< - SwaggerEnumSchemaFixer>(); + injectOptions.ConfigureSwaggerGen(genOptions => { + // 替换自定义的EnumSchemaFilter,支持多语言Resx资源 (需将SpecificationDocumentSettings.EnableEnumSchemaFilter配置为false) + genOptions.SchemaFilter(); - // 将程序集版本号与OpenApi版本号同步 - foreach (var doc in genOptions - .SwaggerGeneratorOptions - .SwaggerDocs) { - doc.Value.Version - = FileVersionInfo - .GetVersionInfo( - Assembly - .GetEntryAssembly()! - .Location) - .ProductVersion; - } - }); + // 枚举显示自身xml comment 而不是$ref原型引用 + genOptions.UseInlineDefinitionsForEnums(); + + // 将程序集版本号与OpenApi版本号同步 + foreach (var doc in genOptions.SwaggerGeneratorOptions.SwaggerDocs) { + doc.Value.Version = FileVersionInfo + .GetVersionInfo(Assembly.GetEntryAssembly()!.Location) + .ProductVersion; + } + }); }); } diff --git a/src/backend/NetAdmin.Host/Extensions/MethodInfoExtensions.cs b/src/backend/NetAdmin.Host/Extensions/MethodInfoExtensions.cs index c1ae6ad0..e99d91c9 100644 --- a/src/backend/NetAdmin.Host/Extensions/MethodInfoExtensions.cs +++ b/src/backend/NetAdmin.Host/Extensions/MethodInfoExtensions.cs @@ -12,8 +12,7 @@ public static class MethodInfoExtensions { return serviceProvider.GetService() .ActionDescriptors.Items.FirstOrDefault(x => x.DisplayName!.StartsWith( // - $"{me.DeclaringType}.{me.Name}" - , StringComparison.Ordinal)) + $"{me.DeclaringType}.{me.Name}", StringComparison.Ordinal)) ?.AttributeRouteInfo?.Template; } } \ No newline at end of file diff --git a/src/backend/NetAdmin.Host/Extensions/ServiceCollectionExtensions.cs b/src/backend/NetAdmin.Host/Extensions/ServiceCollectionExtensions.cs index 367944fc..c4d347db 100644 --- a/src/backend/NetAdmin.Host/Extensions/ServiceCollectionExtensions.cs +++ b/src/backend/NetAdmin.Host/Extensions/ServiceCollectionExtensions.cs @@ -90,8 +90,8 @@ public static class ServiceCollectionExtensions var sbLog = new StringBuilder(); foreach (var type in optionsTypes) { var configureMethod = typeof(ConfigurableOptionsServiceCollectionExtensions).GetMethod( - nameof(ConfigurableOptionsServiceCollectionExtensions.AddConfigurableOptions) - , BindingFlags.Public | BindingFlags.Static, [typeof(IServiceCollection)]); + nameof(ConfigurableOptionsServiceCollectionExtensions.AddConfigurableOptions), BindingFlags.Public | BindingFlags.Static + , [typeof(IServiceCollection)]); _ = configureMethod!.MakeGenericMethod(type).Invoke(me, [me]); _ = sbLog.Append(CultureInfo.InvariantCulture, $" {type.Name}"); } @@ -146,36 +146,32 @@ public static class ServiceCollectionExtensions /// 添加 freeSql orm工具 /// public static IServiceCollection AddFreeSql( // - this IServiceCollection me, FreeSqlInitMethods initMethods = FreeSqlInitMethods.None - , Action freeSqlConfig = null) + this IServiceCollection me, FreeSqlInitMethods initMethods = FreeSqlInitMethods.None, Action freeSqlConfig = null) { // // 非调试模式下禁止同步数据库 // #if !DEBUG // initOptions = FreeSqlInitOptions.None; // #endif - var freeSql = new FreeSqlBuilder(App.GetOptions()).Build(initMethods); - _ = me.AddSingleton(freeSql); + var dbOptions = App.GetOptions(); + var fSql = new FreeSqlBuilder(dbOptions).Build(initMethods); + _ = me.AddSingleton(fSql); - freeSql.Aop.AuditValue += SqlAuditor.DataAuditHandler; // Insert/Update自动值处理 + fSql.Aop.AuditValue += SqlAuditor.DataAuditHandler; // Insert/Update自动值处理 var eventPublisher = App.GetService(); #pragma warning disable VSTHRD110 // AOP事件发布(异步) - freeSql.Aop.CommandBefore - += (_, e) => eventPublisher.PublishAsync(new SqlCommandBeforeEvent(e)); // 增删查改,执行命令之前触发 - freeSql.Aop.CommandAfter - += (_, e) => eventPublisher.PublishAsync(new SqlCommandAfterEvent(e)); // 增删查改,执行命令完成后触发 + fSql.Aop.CommandBefore += (_, e) => eventPublisher.PublishAsync(new SqlCommandBeforeEvent(e)); // 增删查改,执行命令之前触发 + fSql.Aop.CommandAfter += (_, e) => eventPublisher.PublishAsync(new SqlCommandAfterEvent(e)); // 增删查改,执行命令完成后触发 - freeSql.Aop.SyncStructureBefore += (_, e) => - eventPublisher.PublishAsync(new SyncStructureBeforeEvent(e)); // CodeFirst迁移,执行之前触发 + fSql.Aop.SyncStructureBefore += (_, e) => eventPublisher.PublishAsync(new SyncStructureBeforeEvent(e)); // CodeFirst迁移,执行之前触发 - freeSql.Aop.SyncStructureAfter += (_, e) => - eventPublisher.PublishAsync(new SyncStructureAfterEvent(e)); // CodeFirst迁移,执行完成触发 + fSql.Aop.SyncStructureAfter += (_, e) => eventPublisher.PublishAsync(new SyncStructureAfterEvent(e)); // CodeFirst迁移,执行完成触发 #pragma warning restore VSTHRD110 // 全局过滤器设置 - freeSqlConfig?.Invoke(freeSql); + freeSqlConfig?.Invoke(fSql); return me.AddScoped() // 注入工作单元管理器 .AddFreeRepository(null, App.Assemblies.ToArray()) // 批量注入 Repository @@ -209,8 +205,7 @@ public static class ServiceCollectionExtensions /// public static IServiceCollection AddRedisCache(this IServiceCollection me) { - var redisOptions = App.GetOptions() - .Instances.First(x => x.Name == Chars.FLG_REDIS_INSTANCE_DATA_CACHE); + var redisOptions = App.GetOptions().Instances.First(x => x.Name == Chars.FLG_REDIS_INSTANCE_DATA_CACHE); // IDistributedCache 分布式缓存通用接口 _ = me.AddStackExchangeRedisCache(options => { diff --git a/src/backend/NetAdmin.Host/Filters/ApiResultHandler.cs b/src/backend/NetAdmin.Host/Filters/ApiResultHandler.cs index 2aa3f57c..66e92381 100644 --- a/src/backend/NetAdmin.Host/Filters/ApiResultHandler.cs +++ b/src/backend/NetAdmin.Host/Filters/ApiResultHandler.cs @@ -64,8 +64,7 @@ public abstract class ApiResultHandler { SetErrorCodeToHeader(context.HttpContext, ErrorCodes.InvalidInput); - return new JsonResult(RestfulResult(ErrorCodes.InvalidInput, metadata.Data - , GetValidationResult(metadata.ValidationResult))) { + return new JsonResult(RestfulResult(ErrorCodes.InvalidInput, metadata.Data, GetValidationResult(metadata.ValidationResult))) { StatusCode = Numbers.HTTP_STATUS_BIZ_FAIL }; } diff --git a/src/backend/NetAdmin.Host/Filters/GlobalExceptionHandler.cs b/src/backend/NetAdmin.Host/Filters/GlobalExceptionHandler.cs index 4ac95f0e..88e211bc 100644 --- a/src/backend/NetAdmin.Host/Filters/GlobalExceptionHandler.cs +++ b/src/backend/NetAdmin.Host/Filters/GlobalExceptionHandler.cs @@ -16,8 +16,7 @@ public sealed class GlobalExceptionHandler(ILogger logge } // 将异常设置到HttpContext.Features中 以便中间件能获取到他 - context.HttpContext.Features.Set( - new ExceptionHandlerFeature { Error = context.Exception }); + context.HttpContext.Features.Set(new ExceptionHandlerFeature { Error = context.Exception }); return Task.CompletedTask; } diff --git a/src/backend/NetAdmin.Host/Filters/TransactionInterceptor.cs b/src/backend/NetAdmin.Host/Filters/TransactionInterceptor.cs index 2a066dfa..55eb55b4 100644 --- a/src/backend/NetAdmin.Host/Filters/TransactionInterceptor.cs +++ b/src/backend/NetAdmin.Host/Filters/TransactionInterceptor.cs @@ -13,8 +13,7 @@ public sealed class TransactionInterceptor(UnitOfWorkManager uowManager) : IAsyn public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { // 跳过没有事务特性标记的方法 - if (context.HttpContext.GetControllerActionDescriptor().MethodInfo.GetCustomAttribute() == - null) { + if (context.HttpContext.GetControllerActionDescriptor().MethodInfo.GetCustomAttribute() == null) { _ = await next().ConfigureAwait(false); return; } diff --git a/src/backend/NetAdmin.Host/Middlewares/RequestAuditMiddleware.cs b/src/backend/NetAdmin.Host/Middlewares/RequestAuditMiddleware.cs index b60ebc22..eaa5f2e2 100644 --- a/src/backend/NetAdmin.Host/Middlewares/RequestAuditMiddleware.cs +++ b/src/backend/NetAdmin.Host/Middlewares/RequestAuditMiddleware.cs @@ -10,11 +10,9 @@ public sealed class RequestAuditMiddleware( , IOptions dynamicApiControllerSettingsOptions , RequestLogger requestLogger) { - private readonly PathString _defaultRoutePrefix - = new($"/{dynamicApiControllerSettingsOptions.Value.DefaultRoutePrefix}"); + private readonly PathString _defaultRoutePrefix = new($"/{dynamicApiControllerSettingsOptions.Value.DefaultRoutePrefix}"); - private readonly PathString _healthCheckRoutePrefix - = new($"/{dynamicApiControllerSettingsOptions.Value.DefaultRoutePrefix}/probe/health.check"); + private readonly PathString _healthCheckRoutePrefix = new($"/{dynamicApiControllerSettingsOptions.Value.DefaultRoutePrefix}/probe/health.check"); /// /// 主函数 @@ -22,11 +20,10 @@ public sealed class RequestAuditMiddleware( public async Task InvokeAsync(HttpContext context) { // 跳过处理的情况: - if (!context.Request.Path.StartsWithSegments(_defaultRoutePrefix) // 非api请求 - || context.Request.Path.StartsWithSegments(_healthCheckRoutePrefix) // 健康检查 - || context.Request.Method == Chars.FLG_HTTP_METHOD_OPTIONS // is options 请求 - || (context.Request.ContentType?.StartsWith("multipart/form-data", true, CultureInfo.InvariantCulture) ?? - false) // 文件上传 + if (!context.Request.Path.StartsWithSegments(_defaultRoutePrefix) // 非api请求 + || context.Request.Path.StartsWithSegments(_healthCheckRoutePrefix) // 健康检查 + || context.Request.Method == Chars.FLG_HTTP_METHOD_OPTIONS // is options 请求 + || (context.Request.ContentType?.StartsWith("multipart/form-data", true, CultureInfo.InvariantCulture) ?? false) // 文件上传 #pragma warning disable SA1009 ) { #pragma warning restore SA1009 @@ -58,8 +55,6 @@ public sealed class RequestAuditMiddleware( .FirstOrDefault() ?.Enum() ?? 0; - _ = await requestLogger.LogAsync(context, (long)sw.Elapsed.TotalMilliseconds, responseBody, errorCode - , exception) - .ConfigureAwait(false); + _ = await requestLogger.LogAsync(context, (long)sw.Elapsed.TotalMilliseconds, responseBody, errorCode, exception).ConfigureAwait(false); } } \ No newline at end of file diff --git a/src/backend/NetAdmin.Host/Middlewares/SafetyShopHostMiddleware.cs b/src/backend/NetAdmin.Host/Middlewares/SafetyShopHostMiddleware.cs index b3ebca23..dc0a0ff6 100644 --- a/src/backend/NetAdmin.Host/Middlewares/SafetyShopHostMiddleware.cs +++ b/src/backend/NetAdmin.Host/Middlewares/SafetyShopHostMiddleware.cs @@ -53,8 +53,8 @@ public sealed class SafetyShopHostMiddleware(RequestDelegate next) /// public async Task InvokeAsync(HttpContext context) { - if (Volatile.Read(ref _trafficOff) && - !context.Request.Path.StartsWithSegments($"/{Chars.FLG_PATH_API_RPOBE}")) { + if (Volatile.Read(ref _trafficOff) && !context.Request.Path.StartsWithSegments($"/{Chars.FLG_PATH_API_RPOBE}") && + !context.Request.Path.StartsWithSegments($"/{Chars.FLG_PATH_API_METRICS}")) { context.Response.StatusCode = (int)HttpStatusCode.ServiceUnavailable; return; } diff --git a/src/backend/NetAdmin.Host/NetAdmin.Host.csproj b/src/backend/NetAdmin.Host/NetAdmin.Host.csproj index 938dfc6e..1dbae83b 100644 --- a/src/backend/NetAdmin.Host/NetAdmin.Host.csproj +++ b/src/backend/NetAdmin.Host/NetAdmin.Host.csproj @@ -4,7 +4,7 @@ - + diff --git a/src/backend/NetAdmin.Host/Startup.cs b/src/backend/NetAdmin.Host/Startup.cs index 63946282..1e1c1fec 100644 --- a/src/backend/NetAdmin.Host/Startup.cs +++ b/src/backend/NetAdmin.Host/Startup.cs @@ -29,9 +29,7 @@ public abstract class Startup : AppStartup private static void ShowBanner() { AnsiConsole.WriteLine(); - var gridInfo = new Grid().AddColumn(new GridColumn().NoWrap().Width(50).PadRight(10)) - .AddColumn(new GridColumn().NoWrap()) - .Expand(); + var gridInfo = new Grid().AddColumn(new GridColumn().NoWrap().Width(50).PadRight(10)).AddColumn(new GridColumn().NoWrap()).Expand(); foreach (var kv in ApplicationHelper.GetEnvironmentInfo().OrderBy(x => x.Key)) { _ = gridInfo.AddRow(kv.Key, kv.Value.ToString()!.EscapeMarkup()); } diff --git a/src/backend/NetAdmin.Host/Utils/CollectionJsonTypeInfoResolver.cs b/src/backend/NetAdmin.Host/Utils/CollectionJsonTypeInfoResolver.cs index dfd3e462..ed6b0199 100644 --- a/src/backend/NetAdmin.Host/Utils/CollectionJsonTypeInfoResolver.cs +++ b/src/backend/NetAdmin.Host/Utils/CollectionJsonTypeInfoResolver.cs @@ -38,10 +38,7 @@ public sealed class CollectionJsonTypeInfoResolver : DefaultJsonTypeInfoResolver private static string GetMemberName(JsonPropertyInfo property) { - return property.GetType() - .GetRuntimeProperties() - .First(x => x.Name == "MemberName") - .GetValue(property) as string; + return property.GetType().GetRuntimeProperties().First(x => x.Name == "MemberName").GetValue(property) as string; } /// @@ -49,10 +46,7 @@ public sealed class CollectionJsonTypeInfoResolver : DefaultJsonTypeInfoResolver /// private static PropertyInfo GetNewProperty(string memberName, object obj) { - return obj.GetType() - .GetProperties() - .Where(x => x.Name == memberName) - .First(x => x.DeclaringType == x.ReflectedType); + return obj.GetType().GetProperties().Where(x => x.Name == memberName).First(x => x.DeclaringType == x.ReflectedType); } /// diff --git a/src/backend/NetAdmin.Host/Utils/RequestLogger.cs b/src/backend/NetAdmin.Host/Utils/RequestLogger.cs index a5f17fb9..2f18dbe8 100644 --- a/src/backend/NetAdmin.Host/Utils/RequestLogger.cs +++ b/src/backend/NetAdmin.Host/Utils/RequestLogger.cs @@ -17,15 +17,14 @@ public sealed class RequestLogger(ILogger logger, IEventPublisher /// /// 生成审计数据 /// - public async Task LogAsync(HttpContext context, long duration, string responseBody - , ErrorCodes errorCode, IExceptionHandlerFeature exception) + public async Task LogAsync(HttpContext context, long duration, string responseBody, ErrorCodes errorCode + , IExceptionHandlerFeature exception) { // 从请求头中读取用户信息 var associatedUser = GetAssociatedUser(context); var id = YitIdHelper.NextId(); var requestBody = Array.Exists( // - _textContentTypes - , x => context.Request.ContentType?.Contains(x, StringComparison.OrdinalIgnoreCase) ?? false) + _textContentTypes, x => context.Request.ContentType?.Contains(x, StringComparison.OrdinalIgnoreCase) ?? false) ? await context.ReadBodyContentAsync().ConfigureAwait(false) : string.Empty; var apiId = context.Request.Path.Value!.TrimStart('/'); diff --git a/src/backend/NetAdmin.Host/Utils/SwaggerEnumSchemaFixer.cs b/src/backend/NetAdmin.Host/Utils/SwaggerEnumSchemaFixer.cs index b2f9e105..9833faef 100644 --- a/src/backend/NetAdmin.Host/Utils/SwaggerEnumSchemaFixer.cs +++ b/src/backend/NetAdmin.Host/Utils/SwaggerEnumSchemaFixer.cs @@ -29,10 +29,14 @@ public sealed class SwaggerEnumSchemaFixer : ISchemaFilter foreach (var e in Enum.GetValues(context.Type).Cast()) { var value = Convert.ToInt64(e, CultureInfo.InvariantCulture); schema.Enum.Add(new OpenApiLong(value)); + var enumName = Enum.GetName(context.Type, e).ToLowerCamelCase(); + if (enumName.Length <= 3) { + enumName = enumName.ToLowerInvariant(); + } + _ = sb.Append(wrap) .Append( // - CultureInfo.InvariantCulture - , $"{Enum.GetName(context.Type, e).ToLowerCamelCase()} = {value} ({e.ResDesc()})"); + CultureInfo.InvariantCulture, $"{enumName} = {value} ({e.ResDesc()})"); } schema.Description = sb.ToString(); diff --git a/src/backend/NetAdmin.Infrastructure/Configuration/Options/CaptchaOptions.cs b/src/backend/NetAdmin.Infrastructure/Configuration/Options/CaptchaOptions.cs index f1b950eb..5f7257db 100644 --- a/src/backend/NetAdmin.Infrastructure/Configuration/Options/CaptchaOptions.cs +++ b/src/backend/NetAdmin.Infrastructure/Configuration/Options/CaptchaOptions.cs @@ -13,8 +13,7 @@ public sealed record CaptchaOptions : OptionAbstraction { var rtn = new char[32]; for (var i = 0; i != 32; i++) { - rtn[i] = Chars.FLGL_VISIBLE_ASCIIS[ - (int)(Math.Abs(Math.Sin(_seed * (i + 1))) * Chars.FLGL_VISIBLE_ASCIIS.Length)]; + rtn[i] = Chars.FLGL_VISIBLE_ASCIIS[(int)(Math.Abs(Math.Sin(_seed * (i + 1))) * Chars.FLGL_VISIBLE_ASCIIS.Length)]; } SecretKey = new string(rtn); diff --git a/src/backend/NetAdmin.Infrastructure/Constant/Chars.cs b/src/backend/NetAdmin.Infrastructure/Constant/Chars.cs index d7550d0b..a3b4d155 100644 --- a/src/backend/NetAdmin.Infrastructure/Constant/Chars.cs +++ b/src/backend/NetAdmin.Infrastructure/Constant/Chars.cs @@ -73,6 +73,7 @@ public static class Chars public const string FLG_HTTP_METHOD_POST = "POST"; public const string FLG_HTTP_METHOD_PUT = "PUT"; public const string FLG_HTTP_METHOD_TRACE = "TRACE"; + public const string FLG_PATH_API_METRICS = "metrics"; public const string FLG_PATH_API_RPOBE = "api/probe"; public const string FLG_PATH_API_SYS_USER_LOGIN_BY_PWD = "api/sys/user/login.by.pwd"; @@ -89,8 +90,7 @@ public static class Chars public const string FLGL_HTTP_HEADER_VALUE_UA_PC = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"; - public const string FLGL_VISIBLE_ASCIIS - = """!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"""; + public const string FLGL_VISIBLE_ASCIIS = """!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"""; public const string RGX_CERTIFICATE = "^[a-zA-Z0-9-_]+$"; public const string RGX_INVITE_CODE = """^\d{8}$"""; @@ -112,6 +112,5 @@ public static class Chars public const string RGXL_EMAIL = """^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$"""; - public const string RGXL_IP_V4 - = @"^(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})(\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})){3}$"; + public const string RGXL_IP_V4 = @"^(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})(\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})){3}$"; } \ No newline at end of file diff --git a/src/backend/NetAdmin.Infrastructure/Constant/Numbers.cs b/src/backend/NetAdmin.Infrastructure/Constant/Numbers.cs index bb1fd0fd..1272f901 100644 --- a/src/backend/NetAdmin.Infrastructure/Constant/Numbers.cs +++ b/src/backend/NetAdmin.Infrastructure/Constant/Numbers.cs @@ -23,12 +23,12 @@ public static class Numbers public const int MAX_LIMIT_QUERY_PAGE_SIZE = 100; // 最大限制:分页查询页容量 public const int MAX_LIMIT_RETRY_CNT_REDIS_LOCK = 10; // 最大限制:Redis锁重试次数 public const int REQUEST_LOG_BUFF_SIZE = 10; // 请求日志缓冲区大小 - - public const int SECS_CACHE_CHART = 300; // 秒:缓存时间-仪表 - public const int SECS_CACHE_DEFAULT = 60; // 秒:缓存时间-默认 - public const int SECS_CACHE_DIC_CATALOG_CODE = 300; // 秒:缓存时间-字典配置-目录代码 - public const int SECS_REDIS_LOCK_EXPIRY = 60; // 秒:Redis锁过期时间 - public const int SECS_REDIS_LOCK_RETRY_DELAY = 1; // 秒:Redis锁重试间隔 - public const int SECS_TIMEOUT_HTTP_CLIENT = 15; // 秒:超时时间-默认HTTP客户端 - public const int SECS_TIMEOUT_JOB = 600; // 秒:超时时间-作业 + public const int SCHEDULED_JOB_PARALLEL_NUM = 5; // 计划作业并发数 + public const int SECS_CACHE_CHART = 300; // 秒:缓存时间-仪表 + public const int SECS_CACHE_DEFAULT = 60; // 秒:缓存时间-默认 + public const int SECS_CACHE_DIC_CATALOG_CODE = 300; // 秒:缓存时间-字典配置-目录代码 + public const int SECS_REDIS_LOCK_EXPIRY = 60; // 秒:Redis锁过期时间 + public const int SECS_REDIS_LOCK_RETRY_DELAY = 1; // 秒:Redis锁重试间隔 + public const int SECS_TIMEOUT_HTTP_CLIENT = 15; // 秒:超时时间-默认HTTP客户端 + public const int SECS_TIMEOUT_JOB = 600; // 秒:超时时间-作业 } \ No newline at end of file diff --git a/src/backend/NetAdmin.Infrastructure/Extensions/HttpRequestPartExtensions.cs b/src/backend/NetAdmin.Infrastructure/Extensions/HttpRequestPartExtensions.cs index 257f3884..f9c82f1c 100644 --- a/src/backend/NetAdmin.Infrastructure/Extensions/HttpRequestPartExtensions.cs +++ b/src/backend/NetAdmin.Infrastructure/Extensions/HttpRequestPartExtensions.cs @@ -10,8 +10,7 @@ public static class HttpRequestPartExtensions /// /// 设置日志 /// - public static HttpRequestPart SetLog(this HttpRequestPart me, ILogger logger - , Func bodyHandle = null) + public static HttpRequestPart SetLog(this HttpRequestPart me, ILogger logger, Func bodyHandle = null) { return me.OnRequesting(RequestHandleAsync).OnResponsing(ResponseHandleAsync).OnException(ExceptionHandleAsync); diff --git a/src/backend/NetAdmin.Infrastructure/Extensions/HttpResponseMessageExtensions.cs b/src/backend/NetAdmin.Infrastructure/Extensions/HttpResponseMessageExtensions.cs index 4b31e1e4..5a75d81f 100644 --- a/src/backend/NetAdmin.Infrastructure/Extensions/HttpResponseMessageExtensions.cs +++ b/src/backend/NetAdmin.Infrastructure/Extensions/HttpResponseMessageExtensions.cs @@ -8,8 +8,7 @@ public static class HttpResponseMessageExtensions /// /// 记录日志 /// - public static async Task LogAsync(this HttpResponseMessage me, ILogger logger - , Func bodyPreHandle = null) + public static async Task LogAsync(this HttpResponseMessage me, ILogger logger, Func bodyPreHandle = null) { logger.Info($"HTTP Response {await me.BuildJsonAsync(bodyPreHandle).ConfigureAwait(false)}"); } @@ -30,10 +29,7 @@ public static class HttpResponseMessageExtensions this HttpResponseMessage me, Func bodyHandle = null) { var body = me?.Content is null ? null : await me.Content!.ReadAsStringAsync().ConfigureAwait(false); - return new { - Header = me?.ToString() - , RequestHeader = me?.RequestMessage?.Headers - , Body = bodyHandle is null ? body : bodyHandle(body) - }.Json(); + return new { Header = me?.ToString(), RequestHeader = me?.RequestMessage?.Headers, Body = bodyHandle is null ? body : bodyHandle(body) } + .Json(); } } \ No newline at end of file diff --git a/src/backend/NetAdmin.Infrastructure/Extensions/StringExtensions.cs b/src/backend/NetAdmin.Infrastructure/Extensions/StringExtensions.cs index fe342871..df9cd3da 100644 --- a/src/backend/NetAdmin.Infrastructure/Extensions/StringExtensions.cs +++ b/src/backend/NetAdmin.Infrastructure/Extensions/StringExtensions.cs @@ -1,3 +1,4 @@ +using System.Numerics; using Microsoft.CodeAnalysis.CSharp.Scripting; using Microsoft.CodeAnalysis.Scripting; @@ -8,7 +9,79 @@ namespace NetAdmin.Infrastructure.Extensions; /// public static class StringExtensions { - private static readonly Regex _regexIpV4 = new(Chars.RGXL_IP_V4); + private const string _CHARACTERS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + private static readonly Regex _regexIpV4 = new(Chars.RGXL_IP_V4); + + /// + /// 将指定的输入字符串进行Base62解码 + /// + /// ArgumentException + public static string Base62Decode(this string me) + { + BigInteger result = 0; + + foreach (var index in me.Select(c => _CHARACTERS.IndexOf(c))) { + if (index < 0) { + throw new ArgumentException("Invalid character in Base62 string."); + } + + #pragma warning disable IDE0048, RCS1123, SA1407 + result = result * 62 + index; + #pragma warning restore SA1407, RCS1123, IDE0048 + } + + // Convert BigInteger back to byte array and then to string + var bytes = result.ToByteArray(); + + // Handle the sign bit + if (bytes[^1] == 0) { + Array.Resize(ref bytes, bytes.Length - 1); + } + + return Encoding.UTF8.GetString(bytes); + } + + /// + /// 将指定的输入字符串进行Base62编码 + /// + public static string Base62Encode(this string me) + { + // Convert string to byte array + var bytes = Encoding.UTF8.GetBytes(me); + + // Convert byte array to BigInteger for easier processing + var bigInteger = new BigInteger(bytes); + + if (bigInteger == 0) { + return _CHARACTERS[0].ToString(); + } + + var result = new StringBuilder(); + + while (bigInteger > 0) { + var remainder = (int)(bigInteger % 62); + bigInteger /= 62; + _ = result.Insert(0, _CHARACTERS[remainder]); + } + + return result.ToString(); + } + + /// + /// 解码避免转义的Base64 + /// + public static string Base64InUrlDecode(this string me) + { + return me.Replace("-", "+").Replace("_", "/"); + } + + /// + /// 编码避免转义的Base64 + /// + public static string Base64InUrlEncode(this string me) + { + return me.Replace("+", "-").Replace("/", "_"); + } /// /// 计算Crc32 @@ -21,12 +94,10 @@ public static class StringExtensions /// /// 执行C#代码 /// - public static Task ExecuteCSharpCodeAsync(this string me, Assembly[] assemblies - , params string[] importNamespaces) + public static Task ExecuteCSharpCodeAsync(this string me, Assembly[] assemblies, params string[] importNamespaces) { // 使用 Roslyn 编译并执行代码 - return CSharpScript.EvaluateAsync( - me, ScriptOptions.Default.WithReferences(assemblies).WithImports(importNamespaces)); + return CSharpScript.EvaluateAsync(me, ScriptOptions.Default.WithReferences(assemblies).WithImports(importNamespaces)); } /// diff --git a/src/backend/NetAdmin.Infrastructure/GlobalStatic.cs b/src/backend/NetAdmin.Infrastructure/GlobalStatic.cs index 683cc660..f6fe8c99 100644 --- a/src/backend/NetAdmin.Infrastructure/GlobalStatic.cs +++ b/src/backend/NetAdmin.Infrastructure/GlobalStatic.cs @@ -15,8 +15,7 @@ public static class GlobalStatic /// /// 产品版本 /// - public static readonly string ProductVersion - = FileVersionInfo.GetVersionInfo(Assembly.GetEntryAssembly()!.Location).ProductVersion; + public static readonly string ProductVersion = FileVersionInfo.GetVersionInfo(Assembly.GetEntryAssembly()!.Location).ProductVersion; private static long _latestLogTime; @@ -34,14 +33,12 @@ public static class GlobalStatic /// /// 最后一次日志时间 /// - public static DateTime LatestLogTime => Volatile.Read(ref _latestLogTime).Time(); + public static DateTime LatestLogTime => LogCounterOff ? DateTime.MinValue : Volatile.Read(ref _latestLogTime).Time(); /// /// 日志记录器忽略的API编号 /// - public static string[] LoggerIgnoreApiIds => [ - "api/adm/tools/query.es.log", "api/probe/health.check", "api/probe/is.system.safety.stopped" - ]; + public static string[] LoggerIgnoreApiIds => ["api/adm/tools/query.es.log", "api/probe/health.check", "api/probe/is.system.safety.stopped"]; /// /// 系统内部密钥 @@ -88,6 +85,11 @@ public static class GlobalStatic /// public static JsonSerializerOptions JsonSerializerOptions { get; set; } + /// + /// 停止更新日志时间 + /// + public static bool LogCounterOff { get; set; } + /// /// 增加日志计数器 /// diff --git a/src/backend/NetAdmin.Infrastructure/NetAdmin.Infrastructure.csproj b/src/backend/NetAdmin.Infrastructure/NetAdmin.Infrastructure.csproj index 34d5cec4..d1e8d678 100644 --- a/src/backend/NetAdmin.Infrastructure/NetAdmin.Infrastructure.csproj +++ b/src/backend/NetAdmin.Infrastructure/NetAdmin.Infrastructure.csproj @@ -8,11 +8,11 @@ - - - - - + + + + + diff --git a/src/backend/NetAdmin.Infrastructure/Utils/ApplicationHelper.cs b/src/backend/NetAdmin.Infrastructure/Utils/ApplicationHelper.cs index c64a5bd4..6f0a74b2 100644 --- a/src/backend/NetAdmin.Infrastructure/Utils/ApplicationHelper.cs +++ b/src/backend/NetAdmin.Infrastructure/Utils/ApplicationHelper.cs @@ -11,8 +11,7 @@ public static class ApplicationHelper public static Dictionary GetEnvironmentInfo() { var ret = typeof(Environment).GetProperties(BindingFlags.Public | BindingFlags.Static) - .Where(x => x.Name is not (nameof(Environment.StackTrace) - or nameof(Environment.NewLine))) + .Where(x => x.Name is not (nameof(Environment.StackTrace) or nameof(Environment.NewLine))) .ToDictionary(x => x.Name, x => x.GetValue(null)); var vars = Environment.GetEnvironmentVariables(); diff --git a/src/backend/NetAdmin.Infrastructure/Utils/CaptchaImageHelper.cs b/src/backend/NetAdmin.Infrastructure/Utils/CaptchaImageHelper.cs index 19cc819f..110697dc 100644 --- a/src/backend/NetAdmin.Infrastructure/Utils/CaptchaImageHelper.cs +++ b/src/backend/NetAdmin.Infrastructure/Utils/CaptchaImageHelper.cs @@ -26,15 +26,13 @@ public static class CaptchaImageHelper /// 背景图(base64),滑块图(base64),缺口坐标 #pragma warning disable SA1414 public static async Task<(string BackgroundImage, string SliderImage, Point OffsetSaw)> CreateSawSliderImageAsync( - Assembly resAsm, string bgPath, string tempPath, (int, int) bgIndexScope, (int, int) tempIndexScope - , Size sliderSize) + Assembly resAsm, string bgPath, string tempPath, (int, int) bgIndexScope, (int, int) tempIndexScope, Size sliderSize) #pragma warning restore SA1414 { // 深色模板图 var templateIndex = new[] { tempIndexScope.Item1, tempIndexScope.Item2 }.Rand(); - await using var bgStream = resAsm.GetManifestResourceStream( - $"{bgPath}.{new[] { bgIndexScope.Item1, bgIndexScope.Item2 }.Rand()}.jpg"); + await using var bgStream = resAsm.GetManifestResourceStream($"{bgPath}.{new[] { bgIndexScope.Item1, bgIndexScope.Item2 }.Rand()}.jpg"); await using var darkStream = resAsm.GetManifestResourceStream($"{tempPath}._{templateIndex}.dark.png"); await using var tranStream = resAsm.GetManifestResourceStream($"{tempPath}._{templateIndex}.transparent.png"); @@ -57,8 +55,7 @@ public static class CaptchaImageHelper using var sliderBlockImage = new Image(sliderSize.Width, backgroundImage.Height); // 随机生成拼图坐标 - var offsetRand = GeneratePoint(backgroundImage.Width, backgroundImage.Height, sliderSize.Width - , sliderSize.Height); + var offsetRand = GeneratePoint(backgroundImage.Width, backgroundImage.Height, sliderSize.Width, sliderSize.Height); // 根据深色模板图计算轮廓形状 var blockShape = CalcBlockShape(darkTemplateImage); @@ -84,16 +81,13 @@ public static class CaptchaImageHelper backgroundImage.Mutate(x => x.DrawImage(darkTemplateImage, new Point(offsetRand.X, offsetRand.Y), opacity)); // 生成干扰图坐标 - var interferencePoint = GenerateInterferencePoint(backgroundImage.Width, backgroundImage.Height - , sliderSize.Width, sliderSize.Height, offsetRand.X - , offsetRand.Y); + var interferencePoint = GenerateInterferencePoint(backgroundImage.Width, backgroundImage.Height, sliderSize.Width, sliderSize.Height + , offsetRand.X, offsetRand.Y); // 底图叠加深色干扰模板图 // ReSharper disable once AccessToDisposedClosure - backgroundImage.Mutate(x => x.DrawImage(darkTemplateImage, new Point(interferencePoint.X, interferencePoint.Y) - , opacity)); - return (backgroundImage.ToBase64String(PngFormat.Instance), sliderBlockImage.ToBase64String(PngFormat.Instance) - , offsetRand); + backgroundImage.Mutate(x => x.DrawImage(darkTemplateImage, new Point(interferencePoint.X, interferencePoint.Y), opacity)); + return (backgroundImage.ToBase64String(PngFormat.Instance), sliderBlockImage.ToBase64String(PngFormat.Instance), offsetRand); } private static int BuildPathList(Span rowSpan, int temp, List pathList, int y) @@ -133,8 +127,8 @@ public static class CaptchaImageHelper /// /// 随机生成干扰图坐标 /// - private static Point GenerateInterferencePoint(int originalWidth, int originalHeight, int templateWidth - , int templateHeight, int blockX, int blockY) + private static Point GenerateInterferencePoint(int originalWidth, int originalHeight, int templateWidth, int templateHeight, int blockX + , int blockY) { var x = @@ -166,9 +160,7 @@ public static class CaptchaImageHelper { var widthDifference = originalWidth - templateWidth; var heightDifference = originalHeight - templateHeight; - var x = widthDifference switch { - <= 0 => 5, _ => new[] { 0, originalWidth - templateWidth - 100 }.Rand() + 100 - }; + var x = widthDifference switch { <= 0 => 5, _ => new[] { 0, originalWidth - templateWidth - 100 }.Rand() + 100 }; var y = heightDifference switch { <= 0 => 5, _ => new[] { 0, originalHeight - templateHeight - 5 }.Rand() + 5 }; diff --git a/src/backend/NetAdmin.Infrastructure/Utils/FreeSqlBuilder.cs b/src/backend/NetAdmin.Infrastructure/Utils/FreeSqlBuilder.cs index 285d2d2e..8605bc89 100644 --- a/src/backend/NetAdmin.Infrastructure/Utils/FreeSqlBuilder.cs +++ b/src/backend/NetAdmin.Infrastructure/Utils/FreeSqlBuilder.cs @@ -15,8 +15,7 @@ public sealed class FreeSqlBuilder(DatabaseOptions databaseOptions) { var freeSql = new FreeSql.FreeSqlBuilder().UseConnectionString(databaseOptions.DbType, databaseOptions.ConnStr) .UseGenerateCommandParameterWithLambda(true) - .UseAutoSyncStructure( - initMethods.HasFlag(FreeSqlInitMethods.SyncStructure)) + .UseAutoSyncStructure(initMethods.HasFlag(FreeSqlInitMethods.SyncStructure)) .Build(); _ = InitDbAsync(freeSql, initMethods); // 初始化数据库 ,异步 return freeSql; @@ -90,8 +89,7 @@ public sealed class FreeSqlBuilder(DatabaseOptions databaseOptions) private void InsertSeedData(IFreeSql freeSql, IEnumerable entityTypes) { foreach (var entityType in entityTypes) { - var file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, databaseOptions.SeedDataRelativePath - , $"{entityType.Name}.json"); + var file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, databaseOptions.SeedDataRelativePath, $"{entityType.Name}.json"); if (!File.Exists(file)) { continue; } @@ -102,12 +100,8 @@ public sealed class FreeSqlBuilder(DatabaseOptions databaseOptions) fileContent, typeof(IEnumerable<>).MakeGenericType(entityType)); // 如果表存在数据,跳过 - var select = typeof(IFreeSql).GetMethod(nameof(freeSql.Select), 1, Type.EmptyTypes) - ?.MakeGenericMethod(entityType) - .Invoke(freeSql, null); - if (select?.GetType() - .GetMethod(nameof(ISelect.Any), 0, Type.EmptyTypes) - ?.Invoke(select, null) as bool? ?? true) { + var select = typeof(IFreeSql).GetMethod(nameof(freeSql.Select), 1, Type.EmptyTypes)?.MakeGenericMethod(entityType).Invoke(freeSql, null); + if (select?.GetType().GetMethod(nameof(ISelect.Any), 0, Type.EmptyTypes)?.Invoke(select, null) as bool? ?? true) { continue; } diff --git a/src/backend/NetAdmin.Infrastructure/Utils/MimeTypeHelper.cs b/src/backend/NetAdmin.Infrastructure/Utils/MimeTypeHelper.cs index 6fbadc19..690cb3a5 100644 --- a/src/backend/NetAdmin.Infrastructure/Utils/MimeTypeHelper.cs +++ b/src/backend/NetAdmin.Infrastructure/Utils/MimeTypeHelper.cs @@ -1018,12 +1018,10 @@ public static class MimeTypeHelper zmm application/vnd.handheld-entertainment+xml """; - private static readonly Dictionary _mimeTypeDic = _MIME_TYPES_RAW_STRING - .Split( - '\n', StringSplitOptions.RemoveEmptyEntries) - .ToDictionary( - x => x.Split(' ')[0].Trim() - , x => x.Split(' ')[1].Trim()); + private static readonly Dictionary _mimeTypeDic = _MIME_TYPES_RAW_STRING.Split('\n', StringSplitOptions.RemoveEmptyEntries) + .ToDictionary( // + x => x.Split(' ')[0].Trim() + , x => x.Split(' ')[1].Trim()); /// /// 通过扩展名获取MIME类型 diff --git a/src/backend/NetAdmin.Infrastructure/Utils/RedisLocker.cs b/src/backend/NetAdmin.Infrastructure/Utils/RedisLocker.cs index 523e13b6..d3b850e8 100644 --- a/src/backend/NetAdmin.Infrastructure/Utils/RedisLocker.cs +++ b/src/backend/NetAdmin.Infrastructure/Utils/RedisLocker.cs @@ -30,16 +30,15 @@ public sealed class RedisLocker : IAsyncDisposable /// 获取锁 /// /// NetAdminGetLockerException - public static async Task GetLockerAsync(IDatabase redisDatabase, string lockerName - , TimeSpan lockerExpire, int retryCount, TimeSpan retryDelay) + public static async Task GetLockerAsync(IDatabase redisDatabase, string lockerName, TimeSpan lockerExpire, int retryCount + , TimeSpan retryDelay) { lockerName = $"{nameof(RedisLocker)}.{lockerName}"; var setOk = false; for (var i = 0; i != retryCount; ++i) { try { setOk = await redisDatabase - .StringSetAsync(lockerName, RedisValue.EmptyString, lockerExpire, When.NotExists - , CommandFlags.DemandMaster) + .StringSetAsync(lockerName, RedisValue.EmptyString, lockerExpire, When.NotExists, CommandFlags.DemandMaster) .ConfigureAwait(false); } catch (Exception ex) { @@ -60,8 +59,7 @@ public sealed class RedisLocker : IAsyncDisposable public async ValueTask DisposeAsync() { try { - _ = await _redisDatabase.KeyDeleteAsync(_redisKey, CommandFlags.DemandMaster | CommandFlags.FireAndForget) - .ConfigureAwait(false); + _ = await _redisDatabase.KeyDeleteAsync(_redisKey, CommandFlags.DemandMaster | CommandFlags.FireAndForget).ConfigureAwait(false); } catch (Exception ex) { LogHelper.Get().Error(ex.Message); diff --git a/src/backend/NetAdmin.Infrastructure/Utils/UserAgentParser.cs b/src/backend/NetAdmin.Infrastructure/Utils/UserAgentParser.cs index bed3156a..9247e56e 100644 --- a/src/backend/NetAdmin.Infrastructure/Utils/UserAgentParser.cs +++ b/src/backend/NetAdmin.Infrastructure/Utils/UserAgentParser.cs @@ -15,10 +15,7 @@ public sealed class UserAgentParser , { "Opera.*?Version", "Opera" } , { "Opera", "Opera" } , { "MSIE", "Internet Explorer" } - , { - "Internet Explorer" - , "Internet Explorer" - } + , { "Internet Explorer", "Internet Explorer" } , { "Trident.* rv", "Internet Explorer" } , { "Shiira", "Shiira" } , { "Firefox", "Firefox" } @@ -73,10 +70,7 @@ public sealed class UserAgentParser , { "benq", "BenQ" } , { "ipaq", "HP iPaq" } , { "mot-", "Motorola" } - , { - "playstation portable" - , "PlayStation Portable" - } + , { "playstation portable", "PlayStation Portable" } , { "playstation 3", "PlayStation 3" } , { "playstation vita", "PlayStation Vita" } , { "hiptop", "Danger Hiptop" } @@ -195,16 +189,10 @@ public sealed class UserAgentParser , { "infoseek", "InfoSeek Robot 1.0" } , { "lycos", "Lycos" } , { "yandex", "YandexBot" } - , { - "mediapartners-google" - , "MediaPartners Google" - } + , { "mediapartners-google", "MediaPartners Google" } , { "CRAZYWEBCRAWLER", "Crazy Webcrawler" } , { "adsbot-google", "AdsBot Google" } - , { - "feedfetcher-google" - , "Feedfetcher Google" - } + , { "feedfetcher-google", "Feedfetcher Google" } , { "curious george", "Curious George" } , { "ia_archiver", "Alexa Crawler" } , { "MJ12bot", "Majestic-12" } @@ -316,8 +304,7 @@ public sealed class UserAgentParser private bool SetPlatform() { var kv = _platforms.FirstOrDefault(x => // - Regex.IsMatch(_agent, $"{Regex.Escape(x.Key)}" - , RegexOptions.IgnoreCase)); + Regex.IsMatch(_agent, $"{Regex.Escape(x.Key)}", RegexOptions.IgnoreCase)); if (kv.Key == null) { Platform = "Unknown Platform"; diff --git a/src/backend/NetAdmin.Infrastructure/Utils/XmlCommentReader.cs b/src/backend/NetAdmin.Infrastructure/Utils/XmlCommentReader.cs index 599c1ade..45545da0 100644 --- a/src/backend/NetAdmin.Infrastructure/Utils/XmlCommentReader.cs +++ b/src/backend/NetAdmin.Infrastructure/Utils/XmlCommentReader.cs @@ -17,8 +17,7 @@ public sealed class XmlCommentReader : ISingleton public XmlCommentReader(IOptions specificationDocumentSettings) { var xmlComments = specificationDocumentSettings.Value.XmlComments // - ?? App.GetConfig( - nameof(SpecificationDocumentSettingsOptions).TrimSuffixOptions()) + ?? App.GetConfig(nameof(SpecificationDocumentSettingsOptions).TrimSuffixOptions()) .XmlComments; foreach (var commentFile in xmlComments.Where(x => x.Contains(nameof(NetAdmin)))) { var xmlDoc = new XmlDocument(); @@ -40,9 +39,7 @@ public sealed class XmlCommentReader : ISingleton public string GetComments(MemberInfo memberInfo) { var node = memberInfo switch { - MethodInfo method => GetNodeByMethod(method) - , Type type => GetNodeByType(type) - , _ => throw new InvalidCastException() + MethodInfo method => GetNodeByMethod(method), Type type => GetNodeByType(type), _ => throw new InvalidCastException() }; if (node?.FirstChild?.Name != "inheritdoc") { @@ -60,9 +57,7 @@ public sealed class XmlCommentReader : ISingleton return GetComments(methodFromBaseType); } - var methodFromInterface = memberInfo.DeclaringType?.GetInterfaces() - .Select(x => x.GetMethod(memberInfo.Name)) - .FirstOrDefault(x => x != null); + var methodFromInterface = memberInfo.DeclaringType?.GetInterfaces().Select(x => x.GetMethod(memberInfo.Name)).FirstOrDefault(x => x != null); return methodFromInterface == null ? null : GetComments(methodFromInterface); } @@ -82,9 +77,7 @@ public sealed class XmlCommentReader : ISingleton static string Replace(ParameterInfo parameterInfo) { - return _regex.Replace(parameterInfo.ParameterType.ToString(), string.Empty) - .Replace("[", "{") - .Replace("]", "}"); + return _regex.Replace(parameterInfo.ParameterType.ToString(), string.Empty).Replace("[", "{").Replace("]", "}"); } } diff --git a/src/backend/NetAdmin.SysComponent.Application/Modules/Sys/IDicContentModule.cs b/src/backend/NetAdmin.SysComponent.Application/Modules/Sys/IDicContentModule.cs index 13e6fc91..941f616a 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Modules/Sys/IDicContentModule.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Modules/Sys/IDicContentModule.cs @@ -10,4 +10,10 @@ namespace NetAdmin.SysComponent.Application.Modules.Sys; public interface IDicContentModule : ICrudModule; \ No newline at end of file +> +{ + /// + /// 启用/禁用字典内容 + /// + Task SetEnabledAsync(SetDicContentEnabledReq req); +} \ No newline at end of file diff --git a/src/backend/NetAdmin.SysComponent.Application/Modules/Sys/IDicModule.cs b/src/backend/NetAdmin.SysComponent.Application/Modules/Sys/IDicModule.cs index 8321ad87..7f356a5d 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Modules/Sys/IDicModule.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Modules/Sys/IDicModule.cs @@ -67,7 +67,7 @@ public interface IDicModule /// /// 获取字典值 /// - public Task GetDicValueAsync(GetDicValueReq req); + Task GetDicValueAsync(GetDicValueReq req); /// /// 分页查询字典目录 @@ -88,4 +88,9 @@ public interface IDicModule /// 查询字典内容 /// Task> QueryContentAsync(QueryReq req); + + /// + /// 启用/禁用字典内容 + /// + Task SetEnabledAsync(SetDicContentEnabledReq req); } \ No newline at end of file diff --git a/src/backend/NetAdmin.SysComponent.Application/Modules/Sys/IToolsModule.cs b/src/backend/NetAdmin.SysComponent.Application/Modules/Sys/IToolsModule.cs index 5e098d34..d0bbe7ac 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Modules/Sys/IToolsModule.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Modules/Sys/IToolsModule.cs @@ -7,6 +7,11 @@ namespace NetAdmin.SysComponent.Application.Modules.Sys; /// public interface IToolsModule { + /// + /// Aes解密 + /// + string AesDecode(AesDecodeReq req); + /// /// 执行SQL语句 /// diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/ApiService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/ApiService.cs index 7a905dc7..d840e0da 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/ApiService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/ApiService.cs @@ -81,10 +81,7 @@ public sealed class ApiService( public async Task> QueryAsync(QueryReq req) { req.ThrowIfInvalid(); - var ret = await Rpo.Select.WhereDynamicFilter(req.DynamicFilter) - .WhereDynamic(req.Filter) - .ToTreeListAsync() - .ConfigureAwait(false); + var ret = await Rpo.Select.WhereDynamicFilter(req.DynamicFilter).WhereDynamic(req.Filter).ToTreeListAsync().ConfigureAwait(false); return ret.Adapt>(); } @@ -143,12 +140,10 @@ public sealed class ApiService( .Select(x => { var id = x.AttributeRouteInfo!.Template; return new QueryApiRsp { - Summary = xmlCommentReader.GetComments(x.MethodInfo) - , Name = x.ActionName - , Id = id - , Method = x.ActionConstraints?.OfType() - .FirstOrDefault() - ?.HttpMethods.First() + Summary = xmlCommentReader.GetComments(x.MethodInfo) + , Name = x.ActionName + , Id = id + , Method = x.ActionConstraints?.OfType().FirstOrDefault()?.HttpMethods.First() , PathCrc32 = id.Crc32() }; }); diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/CacheService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/CacheService.cs index f8352a1c..0efbf3d6 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/CacheService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/CacheService.cs @@ -63,22 +63,19 @@ public sealed class CacheService(IConnectionMultiplexer connectionMultiplexer) / var server = connectionMultiplexer.GetServers()[0]; var database = connectionMultiplexer.GetDatabase(_redisInstance.Database); - var keys = server.Keys(_redisInstance.Database, $"*{req.Keywords}*", Numbers.MAX_LIMIT_BULK_REQ) - .Take(Numbers.MAX_LIMIT_BULK_REQ) - .ToList(); + var keys = server.Keys(_redisInstance.Database, $"*{req.Keywords}*", Numbers.MAX_LIMIT_BULK_REQ).Take(Numbers.MAX_LIMIT_BULK_REQ).ToList(); #pragma warning restore VSTHRD103 var dic = new ConcurrentDictionary(); - await Parallel - .ForEachAsync( - keys - , async (key, _) => - dic.TryAdd( - key - , (DateTime.Now + await database.KeyTimeToLiveAsync(key).ConfigureAwait(false) - , await database.KeyTypeAsync(key).ConfigureAwait(false)))) - .ConfigureAwait(false); + await Parallel.ForEachAsync( + keys + , async (key, _) => + dic.TryAdd( + key + , (DateTime.Now + await database.KeyTimeToLiveAsync(key).ConfigureAwait(false) + , await database.KeyTypeAsync(key).ConfigureAwait(false)))) + .ConfigureAwait(false); return dic.Select(x => new GetEntryRsp { Key = x.Key, ExpireTime = x.Value.Item1, Type = x.Value.Item2 }); } @@ -88,24 +85,21 @@ public sealed class CacheService(IConnectionMultiplexer connectionMultiplexer) / var database = connectionMultiplexer.GetDatabase(_redisInstance.Database); var ret = new GetEntryRsp { - Type = await database.KeyTypeAsync(req.Key).ConfigureAwait(false) - , Key = req.Key - , ExpireTime = DateTime.Now + - await database.KeyTimeToLiveAsync(req.Key).ConfigureAwait(false) + Type = await database.KeyTypeAsync(req.Key).ConfigureAwait(false) + , Key = req.Key + , ExpireTime = DateTime.Now + await database.KeyTimeToLiveAsync(req.Key).ConfigureAwait(false) }; #pragma warning disable IDE0072 ret.Data = ret.Type switch #pragma warning restore IDE0072 { - RedisType.String => await database.StringGetAsync(req.Key).ConfigureAwait(false) - , RedisType.List => string.Join(", ", await database.ListRangeAsync(req.Key).ConfigureAwait(false)) - , RedisType.Set => string.Join(", ", await database.SetMembersAsync(req.Key).ConfigureAwait(false)) - , RedisType.SortedSet => - string.Join(", ", await database.SortedSetRangeByRankAsync(req.Key).ConfigureAwait(false)) - , RedisType.Hash => string.Join( - ", ", await database.HashGetAllAsync(req.Key).ConfigureAwait(false)) - , _ => "Unsupported key type" + RedisType.String => await database.StringGetAsync(req.Key).ConfigureAwait(false) + , RedisType.List => string.Join(", ", await database.ListRangeAsync(req.Key).ConfigureAwait(false)) + , RedisType.Set => string.Join(", ", await database.SetMembersAsync(req.Key).ConfigureAwait(false)) + , RedisType.SortedSet => string.Join(", ", await database.SortedSetRangeByRankAsync(req.Key).ConfigureAwait(false)) + , RedisType.Hash => string.Join(", ", await database.HashGetAllAsync(req.Key).ConfigureAwait(false)) + , _ => "Unsupported key type" }; return ret; diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/CaptchaService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/CaptchaService.cs index 0b0d83a1..ad54eb17 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/CaptchaService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/CaptchaService.cs @@ -21,17 +21,13 @@ public sealed class CaptchaService : ServiceBase, ICaptchaServi public async Task GetCaptchaImageAsync() { var (backgroundImage, sliderImage, offsetSaw) = await CaptchaImageHelper.CreateSawSliderImageAsync( - _entryAsm, $"{_entryAsmName}.Assets.Captcha.background", $"{_entryAsmName}.Assets.Captcha.template" - , (1, 101), (1, 7), new Size(50, 50)) - .ConfigureAwait(false); + _entryAsm, $"{_entryAsmName}.Assets.Captcha.background" + , $"{_entryAsmName}.Assets.Captcha.template", (1, 101), (1, 7) + , new Size(50, 50)) + .ConfigureAwait(false); var id = $"{nameof(GetCaptchaImageAsync)}_{YitIdHelper.NextId()}"; - return new GetCaptchaRsp { - Id = id - , BackgroundImage = backgroundImage - , SliderImage = sliderImage - , SawOffsetX = offsetSaw.X - }; + return new GetCaptchaRsp { Id = id, BackgroundImage = backgroundImage, SliderImage = sliderImage, SawOffsetX = offsetSaw.X }; } /// diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/ConfigService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/ConfigService.cs index 3e102f58..8ce90b47 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/ConfigService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/ConfigService.cs @@ -84,18 +84,14 @@ public sealed class ConfigService(BasicRepository rpo) // public async Task GetAsync(QueryConfigReq req) { req.ThrowIfInvalid(); - var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }) - .ToOneAsync() - .ConfigureAwait(false); + var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }).ToOneAsync().ConfigureAwait(false); return ret.Adapt(); } /// public async Task GetLatestConfigAsync() { - var ret = await QueryAsync( - new QueryReq { Count = 1, Filter = new QueryConfigReq { Enabled = true } }) - .ConfigureAwait(false); + var ret = await QueryAsync(new QueryReq { Count = 1, Filter = new QueryConfigReq { Enabled = true } }).ConfigureAwait(false); return ret.FirstOrDefault(); } @@ -112,8 +108,7 @@ public sealed class ConfigService(BasicRepository rpo) // .ToListAsync() .ConfigureAwait(false); - return new PagedQueryRsp(req.Page, req.PageSize, total - , list.Adapt>()); + return new PagedQueryRsp(req.Page, req.PageSize, total, list.Adapt>()); } /// diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/ConstantService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/ConstantService.cs index fa27b0a9..2ef619a6 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/ConstantService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/ConstantService.cs @@ -26,19 +26,13 @@ public sealed class ConstantService : ServiceBase, IConstantSe var httpStatusCodes = Enum.GetNames().ToDictionary(x => x, GetHttpStatusCodeDicValue); httpStatusCodes.Add( // nameof(ErrorCodes.Unhandled) - , [ - Numbers.HTTP_STATUS_BIZ_FAIL.ToInvString(), nameof(ErrorCodes.Unhandled) - , nameof(Indicates.Danger).ToLowerInvariant() - ]); + , [Numbers.HTTP_STATUS_BIZ_FAIL.ToInvString(), nameof(ErrorCodes.Unhandled), nameof(Indicates.Danger).ToLowerInvariant()]); ret.Add($"{nameof(HttpStatusCode)}s", httpStatusCodes); return ret; static string[] GetDicValue(Enum y) { - var ret = new[] { - Convert.ToInt64(y, CultureInfo.InvariantCulture).ToString(CultureInfo.InvariantCulture) - , y.ResDesc() - }; + var ret = new[] { Convert.ToInt64(y, CultureInfo.InvariantCulture).ToString(CultureInfo.InvariantCulture), y.ResDesc() }; var indicate = y.GetAttributeOfType()?.Indicate.ToLowerInvariant(); return indicate.NullOrEmpty() ? ret : [..ret, indicate]; } @@ -48,11 +42,8 @@ public sealed class ConstantService : ServiceBase, IConstantSe var codeInt = Convert.ToInt64(Enum.Parse(name), CultureInfo.InvariantCulture); return [ codeInt.ToString(CultureInfo.InvariantCulture), name - , (codeInt switch { - >= 200 and < 300 => nameof(Indicates.Success) - , < 400 => nameof(Indicates.Warning) - , _ => nameof(Indicates.Danger) - }).ToLowerInvariant() + , (codeInt switch { >= 200 and < 300 => nameof(Indicates.Success), < 400 => nameof(Indicates.Warning), _ => nameof(Indicates.Danger) }) + .ToLowerInvariant() ]; } } diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DeptService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DeptService.cs index f9d4012a..72c17663 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DeptService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DeptService.cs @@ -74,9 +74,7 @@ public sealed class DeptService(BasicRepository rpo) // #if DBTYPE_SQLSERVER return (await UpdateReturnListAsync(req, null).ConfigureAwait(false)).FirstOrDefault()?.Adapt(); #else - return await UpdateAsync(req, null).ConfigureAwait(false) > 0 - ? await GetAsync(new QueryDeptReq { Id = req.Id }).ConfigureAwait(false) - : null; + return await UpdateAsync(req, null).ConfigureAwait(false) > 0 ? await GetAsync(new QueryDeptReq { Id = req.Id }).ConfigureAwait(false) : null; #endif } @@ -102,9 +100,7 @@ public sealed class DeptService(BasicRepository rpo) // public async Task GetAsync(QueryDeptReq req) { req.ThrowIfInvalid(); - var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }) - .ToOneAsync() - .ConfigureAwait(false); + var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }).ToOneAsync().ConfigureAwait(false); return ret.Adapt(); } @@ -145,8 +141,7 @@ public sealed class DeptService(BasicRepository rpo) // .WhereDynamic(req.Filter) .WhereIf( // req.Keywords?.Length > 0 - , a => a.Id == req.Keywords.Int64Try(0) || a.Name.Contains(req.Keywords) || - a.Summary.Contains(req.Keywords)); + , a => a.Id == req.Keywords.Int64Try(0) || a.Name.Contains(req.Keywords) || a.Summary.Contains(req.Keywords)); if (asTreeCte) { ret = ret.AsTreeCte(); } diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DevService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DevService.cs index ad9eb54c..e8fc74cf 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DevService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DevService.cs @@ -13,8 +13,7 @@ public sealed class DevService(IApiService apiService) : ServiceBase private static readonly string _clientProjectPath = Path.Combine( // Environment.CurrentDirectory, "../../frontend/admin"); - private static readonly string[] _projectDirs - = Directory.GetDirectories(Path.Combine(Environment.CurrentDirectory, "../")); + private static readonly string[] _projectDirs = Directory.GetDirectories(Path.Combine(Environment.CurrentDirectory, "../")); private static readonly Regex _regex = new(@"\.(\w)"); private static readonly Regex _regex2 = new("([a-zA-Z]+):"); @@ -26,6 +25,7 @@ public sealed class DevService(IApiService apiService) : ServiceBase // 模块类型(Sys、Adm、等) var moduleType = Enum.GetName(req.Type)!; + var @namespace = req.Type.ToString(); // 模板层目录 var tplHostDir = GetDir("SysComponent.Host"); @@ -51,57 +51,57 @@ public sealed class DevService(IApiService apiService) : ServiceBase var entityDir = Path.Combine(dataDir, "DbMaps", moduleType[..3]); // 创建缺少的目录 - CreateDir(hostControllerDir, cacheDir, cacheDependencyDir, appDir, appModulesDir, appServicesDir -, appServicesDependencyDir, dataDir, dtoDir, entityDir); + CreateDir(hostControllerDir, cacheDir, cacheDependencyDir, appDir, appModulesDir, appServicesDir, appServicesDependencyDir, dataDir, dtoDir +, entityDir); // Controller await WriteCodeFileAsync(req, Path.Combine(tplHostDir, "Controllers", "Tpl", "ExampleController.cs") - , Path.Combine(hostControllerDir, $"{req.ModuleName}Controller.cs")) + , Path.Combine(hostControllerDir, $"{req.ModuleName}Controller.cs"), @namespace) .ConfigureAwait(false); // CreateReq await WriteCodeFileAsync(req, Path.Combine(dataDir, "Dto", "Tpl", "Example", "CreateExampleReq.cs") - , Path.Combine(dtoDir, $"Create{req.ModuleName}Req.cs")) + , Path.Combine(dtoDir, $"Create{req.ModuleName}Req.cs"), @namespace) .ConfigureAwait(false); // QueryReq await WriteCodeFileAsync(req, Path.Combine(dataDir, "Dto", "Tpl", "Example", "QueryExampleReq.cs") - , Path.Combine(dtoDir, $"Query{req.ModuleName}Req.cs")) + , Path.Combine(dtoDir, $"Query{req.ModuleName}Req.cs"), @namespace) .ConfigureAwait(false); // QueryRsp await WriteCodeFileAsync(req, Path.Combine(dataDir, "Dto", "Tpl", "Example", "QueryExampleRsp.cs") - , Path.Combine(dtoDir, $"Query{req.ModuleName}Rsp.cs")) + , Path.Combine(dtoDir, $"Query{req.ModuleName}Rsp.cs"), @namespace) .ConfigureAwait(false); // ICache await WriteCodeFileAsync(req, Path.Combine(tplCacheDir, "Tpl", "Dependency", "IExampleCache.cs") - , Path.Combine(cacheDependencyDir, $"I{req.ModuleName}Cache.cs")) + , Path.Combine(cacheDependencyDir, $"I{req.ModuleName}Cache.cs"), @namespace) .ConfigureAwait(false); // Cache - await WriteCodeFileAsync(req, Path.Combine(tplCacheDir, "Tpl", "ExampleCache.cs") - , Path.Combine(cacheDir, $"{req.ModuleName}Cache.cs")) + await WriteCodeFileAsync(req, Path.Combine(tplCacheDir, "Tpl", "ExampleCache.cs"), Path.Combine(cacheDir, $"{req.ModuleName}Cache.cs") + , @namespace) .ConfigureAwait(false); // IModule await WriteCodeFileAsync(req, Path.Combine(tplAppDir, "Modules", "Tpl", "IExampleModule.cs") - , Path.Combine(appModulesDir, $"I{req.ModuleName}Module.cs")) + , Path.Combine(appModulesDir, $"I{req.ModuleName}Module.cs"), @namespace) .ConfigureAwait(false); // IService - await WriteCodeFileAsync(req, Path.Combine(tplAppDir, "Services", "Tpl", "Dependency", "IExampleService.cs") - , Path.Combine(appServicesDependencyDir, $"I{req.ModuleName}Service.cs")) + await WriteCodeFileAsync(req, Path.Combine(tplAppDir, "Services", "Tpl", "Dependency", "IExampleService.cs") + , Path.Combine(appServicesDependencyDir, $"I{req.ModuleName}Service.cs"), @namespace) .ConfigureAwait(false); // Service await WriteCodeFileAsync(req, Path.Combine(tplAppDir, "Services", "Tpl", "ExampleService.cs") - , Path.Combine(appServicesDir, $"{req.ModuleName}Service.cs")) + , Path.Combine(appServicesDir, $"{req.ModuleName}Service.cs"), @namespace) .ConfigureAwait(false); // Entity await WriteCodeFileAsync(req, Path.Combine(dataDir, "DbMaps", "Tpl", "Tpl_Example.cs") - , Path.Combine(entityDir, $"{moduleType[..3]}_{req.ModuleName}.cs")) + , Path.Combine(entityDir, $"{moduleType[..3]}_{req.ModuleName}.cs"), @namespace) .ConfigureAwait(false); } @@ -109,13 +109,9 @@ public sealed class DevService(IApiService apiService) : ServiceBase public async Task GenerateIconCodeAsync(GenerateIconCodeReq req) { req.ThrowIfInvalid(); - var tplSvg = await File.ReadAllTextAsync( - Path.Combine(_clientProjectPath, "src", "assets", "icons", "tpl", "Svg.vue")) - .ConfigureAwait(false); - var tplExport = await File - .ReadAllTextAsync(Path.Combine(_clientProjectPath, "src", "assets", "icons", "tpl" - , "export.js")) - .ConfigureAwait(false); + var tplSvg = await File.ReadAllTextAsync(Path.Combine(_clientProjectPath, "src", "assets", "icons", "tpl", "Svg.vue")).ConfigureAwait(false); + var tplExport = await File.ReadAllTextAsync(Path.Combine(_clientProjectPath, "src", "assets", "icons", "tpl", "export.js")) + .ConfigureAwait(false); var vueContent = tplSvg.Replace("$svgCode$", req.SvgCode).Replace(_REPLACE_TO_EMPTY, string.Empty); @@ -130,9 +126,7 @@ public sealed class DevService(IApiService apiService) : ServiceBase var indexJsFile = Path.Combine(dir, "index.js"); await File.AppendAllTextAsync( - indexJsFile - , Environment.NewLine + - tplExport.Replace("$iconName$", req.IconName).Replace(_REPLACE_TO_EMPTY, string.Empty)) + indexJsFile, Environment.NewLine + tplExport.Replace("$iconName$", req.IconName).Replace(_REPLACE_TO_EMPTY, string.Empty)) .ConfigureAwait(false); // 修改iconSelect.js @@ -152,10 +146,8 @@ public sealed class DevService(IApiService apiService) : ServiceBase public async Task GenerateJsCodeAsync() { // 模板文件 - var tplOuter = await File.ReadAllTextAsync(Path.Combine(_clientProjectPath, "src", "api", "tpl", "outer.js")) - .ConfigureAwait(false); - var tplInner = await File.ReadAllTextAsync(Path.Combine(_clientProjectPath, "src", "api", "tpl", "inner.js")) - .ConfigureAwait(false); + var tplOuter = await File.ReadAllTextAsync(Path.Combine(_clientProjectPath, "src", "api", "tpl", "outer.js")).ConfigureAwait(false); + var tplInner = await File.ReadAllTextAsync(Path.Combine(_clientProjectPath, "src", "api", "tpl", "inner.js")).ConfigureAwait(false); foreach (var item in apiService.ReflectionList(false)) { var dir = Path.Combine(_clientProjectPath, "src", "api", item.Namespace); @@ -168,8 +160,7 @@ public sealed class DevService(IApiService apiService) : ServiceBase var content = tplOuter.Replace("$controllerDesc$", item.Summary) .Replace("$controllerPath$", item.Id) .Replace( // - "$inner$" - , string.Join(Environment.NewLine + Environment.NewLine, Select(item))) + "$inner$", string.Join(Environment.NewLine + Environment.NewLine, Select(item))) .Replace(_REPLACE_TO_EMPTY, string.Empty); await File.WriteAllTextAsync(file, content).ConfigureAwait(false); @@ -180,9 +171,7 @@ public sealed class DevService(IApiService apiService) : ServiceBase { return item.Children.Select(x => tplInner.Replace("$actionDesc$", x.Summary) .Replace( // - "$actionName$" - , _regex.Replace( - x.Name, y => y.Groups[1].Value.ToUpperInvariant())) + "$actionName$", _regex.Replace(x.Name, y => y.Groups[1].Value.ToUpperInvariant())) .Replace("$actionPath$", x.Id) .Replace( // "$actionMethod$", x.Method?.ToLowerInvariant()) @@ -204,13 +193,13 @@ public sealed class DevService(IApiService apiService) : ServiceBase return _projectDirs.First(x => x.EndsWith(key, true, CultureInfo.InvariantCulture)); } - private static async Task WriteCodeFileAsync(GenerateCsCodeReq req, string tplFile, string writeFile) + private static async Task WriteCodeFileAsync(GenerateCsCodeReq req, string tplFile, string writeFile, string @namespace = "SysComponent") { var tplContent = await File.ReadAllTextAsync(tplFile).ConfigureAwait(false); tplContent = tplContent.Replace("Tpl", Enum.GetName(req.Type)![..3]) .Replace("示例", req.ModuleRemark) .Replace("Example", req.ModuleName) - .Replace("NetAdmin.SysComponent", "SysComponent"); + .Replace("NetAdmin.SysComponent", $"NetAdmin.{@namespace}"); await File.WriteAllTextAsync(writeFile, tplContent).ConfigureAwait(false); } diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DicCatalogService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DicCatalogService.cs index 1893e223..6673cd01 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DicCatalogService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DicCatalogService.cs @@ -40,8 +40,12 @@ public sealed class DicCatalogService(BasicRepository rpo) public async Task CreateAsync(CreateDicCatalogReq req) { req.ThrowIfInvalid(); - if (req.ParentId != 0 && - !await Rpo.Where(a => a.Id == req.ParentId).ForUpdate().AnyAsync().ConfigureAwait(false)) { + if (req.ParentId != 0 && !await Rpo.Where(a => a.Id == req.ParentId) + #if DBTYPE_SQLSERVER + .WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait) + #endif + .AnyAsync() + .ConfigureAwait(false)) { throw new NetAdminInvalidOperationException(Ln.父节点不存在); } @@ -62,8 +66,12 @@ public sealed class DicCatalogService(BasicRepository rpo) public async Task EditAsync(EditDicCatalogReq req) { req.ThrowIfInvalid(); - return req.ParentId == 0 || - await Rpo.Where(a => a.Id == req.ParentId).ForUpdate().AnyAsync().ConfigureAwait(false) + return req.ParentId == 0 || await Rpo.Where(a => a.Id == req.ParentId) + #if DBTYPE_SQLSERVER + .WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait) + #endif + .AnyAsync() + .ConfigureAwait(false) ? await UpdateAsync(req, null).ConfigureAwait(false) : throw new NetAdminInvalidOperationException(Ln.父节点不存在); } @@ -89,9 +97,7 @@ public sealed class DicCatalogService(BasicRepository rpo) public async Task GetAsync(QueryDicCatalogReq req) { req.ThrowIfInvalid(); - var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }) - .ToOneAsync() - .ConfigureAwait(false); + var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }).ToOneAsync().ConfigureAwait(false); return ret.Adapt(); } @@ -108,8 +114,7 @@ public sealed class DicCatalogService(BasicRepository rpo) .ToListAsync() .ConfigureAwait(false); - return new PagedQueryRsp(req.Page, req.PageSize, total - , list.Adapt>()); + return new PagedQueryRsp(req.Page, req.PageSize, total, list.Adapt>()); } /// diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DicContentService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DicContentService.cs index bc982014..b833d1a1 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DicContentService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DicContentService.cs @@ -42,7 +42,9 @@ public sealed class DicContentService(BasicRepository rpo) req.ThrowIfInvalid(); if (!await Rpo.Orm.Select() .Where(a => a.Id == req.CatalogId) - .ForUpdate() + #if DBTYPE_SQLSERVER + .WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait) + #endif .AnyAsync() .ConfigureAwait(false)) { throw new NetAdminInvalidOperationException(Ln.字典目录不存在); @@ -66,15 +68,16 @@ public sealed class DicContentService(BasicRepository rpo) req.ThrowIfInvalid(); if (!await Rpo.Orm.Select() .Where(a => a.Id == req.CatalogId) - .ForUpdate() + #if DBTYPE_SQLSERVER + .WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait) + #endif .AnyAsync() .ConfigureAwait(false)) { throw new NetAdminInvalidOperationException(Ln.字典目录不存在); } #if DBTYPE_SQLSERVER - return (await UpdateReturnListAsync(req, null).ConfigureAwait(false)).FirstOrDefault() - ?.Adapt(); + return (await UpdateReturnListAsync(req, null).ConfigureAwait(false)).FirstOrDefault()?.Adapt(); #else return await UpdateAsync(req, null).ConfigureAwait(false) > 0 ? await GetAsync(new QueryDicContentReq { Id = req.Id }).ConfigureAwait(false) @@ -104,9 +107,7 @@ public sealed class DicContentService(BasicRepository rpo) public async Task GetAsync(QueryDicContentReq req) { req.ThrowIfInvalid(); - var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }) - .ToOneAsync() - .ConfigureAwait(false); + var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }).ToOneAsync().ConfigureAwait(false); return ret.Adapt(); } @@ -123,8 +124,7 @@ public sealed class DicContentService(BasicRepository rpo) .ToListAsync() .ConfigureAwait(false); - return new PagedQueryRsp(req.Page, req.PageSize, total - , list.Adapt>()); + return new PagedQueryRsp(req.Page, req.PageSize, total, list.Adapt>()); } /// @@ -150,11 +150,19 @@ public sealed class DicContentService(BasicRepository rpo) #endif .Include(a => a.Catalog) .Where(a => a.Catalog.Code == catalogCode) + .Where(a => a.Enabled) .ToListAsync() .ConfigureAwait(false); return ret.Adapt>(); } + /// + public Task SetEnabledAsync(SetDicContentEnabledReq req) + { + req.ThrowIfInvalid(); + return UpdateAsync(req, [nameof(Sys_DicContent.Enabled)]); + } + private ISelect QueryInternal(QueryReq req) { var ret = Rpo.Select.WhereDynamicFilter(req.DynamicFilter).WhereDynamic(req.Filter); diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DicService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DicService.cs index 69f7cac9..e15abc0e 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DicService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/DicService.cs @@ -136,4 +136,11 @@ public sealed class DicService(IDicCatalogService catalogService, IDicContentSer req.ThrowIfInvalid(); return contentService.QueryAsync(req); } + + /// + public Task SetEnabledAsync(SetDicContentEnabledReq req) + { + req.ThrowIfInvalid(); + return contentService.SetEnabledAsync(req); + } } \ No newline at end of file diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/FileService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/FileService.cs index 1096f97b..9f6b6028 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/FileService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/FileService.cs @@ -18,8 +18,7 @@ public sealed class FileService(IOptions uploadOptions, MinioHelp } if (!uploadOptions.Value.ContentTypes.Contains(file.ContentType)) { - throw new NetAdminInvalidOperationException( - $"{Ln.允许的文件格式} {string.Join(",", uploadOptions.Value.ContentTypes)}"); + throw new NetAdminInvalidOperationException($"{Ln.允许的文件格式} {string.Join(",", uploadOptions.Value.ContentTypes)}"); } if (file.Length > uploadOptions.Value.MaxSize) { diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/JobRecordService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/JobRecordService.cs index 38aba223..e31e9523 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/JobRecordService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/JobRecordService.cs @@ -73,9 +73,7 @@ public sealed class JobRecordService(BasicRepository rpo) / public async Task GetAsync(QueryJobRecordReq req) { req.ThrowIfInvalid(); - var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }) - .ToOneAsync() - .ConfigureAwait(false); + var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }).ToOneAsync().ConfigureAwait(false); return ret.Adapt(); } @@ -88,16 +86,10 @@ public sealed class JobRecordService(BasicRepository rpo) / #if DBTYPE_SQLSERVER .WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait) #endif - .GroupBy(a => new { - a.CreatedTime.Year - , a.CreatedTime.Month - , a.CreatedTime.Day - , a.CreatedTime.Hour - }) + .GroupBy(a => new { a.CreatedTime.Year, a.CreatedTime.Month, a.CreatedTime.Day, a.CreatedTime.Hour }) .ToListAsync(a => new GetBarChartRsp { - Timestamp = new DateTime( - a.Key.Year, a.Key.Month, a.Key.Day, a.Key.Hour, 0 - , 0, DateTimeKind.Unspecified) + Timestamp = new DateTime(a.Key.Year, a.Key.Month, a.Key.Day, a.Key.Hour, 0, 0 + , DateTimeKind.Unspecified) , Value = a.Count() }) .ConfigureAwait(false); @@ -118,8 +110,7 @@ public sealed class JobRecordService(BasicRepository rpo) / .ToListAsync(a => new GetPieChartRsp { Value = a.Count(), Key = a.Key.ToString() }) #pragma warning restore CA1305 .ConfigureAwait(false); - return ret.Select(x => x with { Key = Enum.Parse(x.Key).ToString() }) - .OrderByDescending(x => x.Value); + return ret.Select(x => x with { Key = Enum.Parse(x.Key).ToString() }).OrderByDescending(x => x.Value); } /// @@ -150,8 +141,7 @@ public sealed class JobRecordService(BasicRepository rpo) / .ToListAsync() .ConfigureAwait(false); - return new PagedQueryRsp(req.Page, req.PageSize, total - , list.Adapt>()); + return new PagedQueryRsp(req.Page, req.PageSize, total, list.Adapt>()); } /// @@ -175,8 +165,7 @@ public sealed class JobRecordService(BasicRepository rpo) / .WhereDynamic(req.Filter) .WhereIf( // req.Keywords?.Length > 0 - , a => a.JobId == req.Keywords.Int64Try(0) || a.Id == req.Keywords.Int64Try(0) || - a.Job.JobName == req.Keywords); + , a => a.JobId == req.Keywords.Int64Try(0) || a.Id == req.Keywords.Int64Try(0) || a.Job.JobName == req.Keywords); // ReSharper disable once SwitchStatementMissingSomeEnumCasesNoDefault switch (req.Order) { diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/JobService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/JobService.cs index 3ba9bd81..527c38a6 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/JobService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/JobService.cs @@ -112,11 +112,9 @@ public sealed class JobService(BasicRepository rpo, IJobRecordSer } ] }; - var job - = await QueryInternal( - new QueryReq { Count = 1, Filter = req, DynamicFilter = df, Order = Orders.None }) - .ToOneAsync() - .ConfigureAwait(false) ?? throw new NetAdminInvalidOperationException(Ln.未获取到待执行任务); + var job = await QueryInternal(new QueryReq { Count = 1, Filter = req, DynamicFilter = df, Order = Orders.None }) + .ToOneAsync() + .ConfigureAwait(false) ?? throw new NetAdminInvalidOperationException(Ln.未获取到待执行任务); var nextExecTime = GetNextExecTime(Chars.FLG_CRON_PER_SECS); try { @@ -160,16 +158,9 @@ public sealed class JobService(BasicRepository rpo, IJobRecordSer { req.ThrowIfInvalid(); var nextExecTime = GetNextExecTime(req.ExecutionCron); - _ = await UpdateAsync( - req with { - Status = JobStatues.Idle - , NextExecTime = nextExecTime - , NextTimeId = nextExecTime?.TimeUnixUtc() - } - , [ - nameof(req.Status), nameof(req.NextExecTime), nameof(req.NextTimeId), nameof(req.LastDuration) - , nameof(req.LastStatusCode) - ]) + _ = await UpdateAsync( // + req with { Status = JobStatues.Idle, NextExecTime = nextExecTime, NextTimeId = nextExecTime?.TimeUnixUtc() } + , [nameof(req.Status), nameof(req.NextExecTime), nameof(req.NextTimeId), nameof(req.LastDuration), nameof(req.LastStatusCode)]) .ConfigureAwait(false); } @@ -177,9 +168,7 @@ public sealed class JobService(BasicRepository rpo, IJobRecordSer public async Task GetAsync(QueryJobReq req) { req.ThrowIfInvalid(); - var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }) - .ToOneAsync() - .ConfigureAwait(false); + var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }).ToOneAsync().ConfigureAwait(false); return ret.Adapt(); } @@ -209,10 +198,7 @@ public sealed class JobService(BasicRepository rpo, IJobRecordSer #if DBTYPE_SQLSERVER .WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait) #endif - .Where(a => !Rpo.Orm.Select() - .As("b") - .Where(b => b.JobId == a.Id && b.TimeId == a.NextTimeId) - .Any()) + .Where(a => !Rpo.Orm.Select().As("b").Where(b => b.JobId == a.Id && b.TimeId == a.NextTimeId).Any()) .ToOneAsync(a => new { a.RequestUrl , a.HttpMethod @@ -317,16 +303,13 @@ public sealed class JobService(BasicRepository rpo, IJobRecordSer { var ret1 = await UpdateAsync( // 运行中,运行时间超过超时设定;置为空闲状态 new Sys_Job { Status = JobStatues.Idle }, [nameof(Sys_Job.Status)], null - , a => a.Status == JobStatues.Running && - a.LastExecTime < DateTime.Now.AddSeconds(-Numbers.SECS_TIMEOUT_JOB) - , null, true) + , a => a.Status == JobStatues.Running && a.LastExecTime < DateTime.Now.AddSeconds(-Numbers.SECS_TIMEOUT_JOB), null, true) .ConfigureAwait(false); var ret2 = await UpdateAsync( // 空闲中,下次执行时间在当前时间减去超时时间以前;将下次执行时间调整到现在 new Sys_Job { NextExecTime = DateTime.Now, NextTimeId = DateTime.Now.TimeUnixUtc() } - , [nameof(Sys_Job.NextExecTime), nameof(Sys_Job.NextTimeId)], null - , a => a.Status == JobStatues.Idle && a.NextExecTime < DateTime.Now.AddSeconds(-Numbers.SECS_TIMEOUT_JOB) - , null, true) + , [nameof(Sys_Job.NextExecTime), nameof(Sys_Job.NextTimeId)], null + , a => a.Status == JobStatues.Idle && a.NextExecTime < DateTime.Now.AddSeconds(-Numbers.SECS_TIMEOUT_JOB), null, true) .ConfigureAwait(false); return ret1 + ret2; } @@ -340,9 +323,7 @@ public sealed class JobService(BasicRepository rpo, IJobRecordSer private static DateTime? GetNextExecTime(string cron) { - return CronExpression.Parse(cron, CronFormat.IncludeSeconds) - .GetNextOccurrence(DateTime.UtcNow, TimeZoneInfo.Local) - ?.ToLocalTime(); + return CronExpression.Parse(cron, CronFormat.IncludeSeconds).GetNextOccurrence(DateTime.UtcNow, TimeZoneInfo.Local)?.ToLocalTime(); } private ISelect QueryInternal(QueryReq req) @@ -360,8 +341,7 @@ public sealed class JobService(BasicRepository rpo, IJobRecordSer ret = ret.WhereDynamicFilter(req.DynamicFilter) .WhereDynamic(req.Filter) .WhereIf( // - req.Keywords?.Length > 0 - , a => a.Id == req.Keywords.Int64Try(0) || a.JobName.Contains(req.Keywords)); + req.Keywords?.Length > 0, a => a.Id == req.Keywords.Int64Try(0) || a.JobName.Contains(req.Keywords)); // ReSharper disable once SwitchStatementMissingSomeEnumCasesNoDefault switch (req.Order) { diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/LoginLogService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/LoginLogService.cs index d09230d7..46c5d5e6 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/LoginLogService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/LoginLogService.cs @@ -72,9 +72,7 @@ public sealed class LoginLogService(BasicRepository rpo) // public async Task GetAsync(QueryLoginLogReq req) { req.ThrowIfInvalid(); - var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }) - .ToOneAsync() - .ConfigureAwait(false); + var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }).ToOneAsync().ConfigureAwait(false); return ret.Adapt(); } @@ -128,8 +126,7 @@ public sealed class LoginLogService(BasicRepository rpo) // if (req.Keywords?.Length > 0) { ret = req.Keywords.IsIpV4() ? ret.Where(a => a.CreatedClientIp == req.Keywords.IpV4ToInt32()) - : ret.Where(a => a.Id == req.Keywords.Int64Try(0) || a.OwnerId == req.Keywords.Int64Try(0) || - a.LoginUserName == req.Keywords); + : ret.Where(a => a.Id == req.Keywords.Int64Try(0) || a.OwnerId == req.Keywords.Int64Try(0) || a.LoginUserName == req.Keywords); } // ReSharper disable once SwitchStatementMissingSomeEnumCasesNoDefault diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/MenuService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/MenuService.cs index e1e3aaf8..4c03e78d 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/MenuService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/MenuService.cs @@ -48,10 +48,7 @@ public sealed class MenuService(BasicRepository rpo, IUserServic { req.ThrowIfInvalid(); var ret = await Rpo.DeleteAsync(a => a.Id == req.Id).ConfigureAwait(false); - _ = await Rpo.Orm.Delete() - .Where(a => a.MenuId == req.Id) - .ExecuteAffrowsAsync() - .ConfigureAwait(false); + _ = await Rpo.Orm.Delete().Where(a => a.MenuId == req.Id).ExecuteAffrowsAsync().ConfigureAwait(false); return ret; } @@ -61,9 +58,7 @@ public sealed class MenuService(BasicRepository rpo, IUserServic #if DBTYPE_SQLSERVER return (await UpdateReturnListAsync(req, null).ConfigureAwait(false)).FirstOrDefault()?.Adapt(); #else - return await UpdateAsync(req, null).ConfigureAwait(false) > 0 - ? await GetAsync(new QueryMenuReq { Id = req.Id }).ConfigureAwait(false) - : null; + return await UpdateAsync(req, null).ConfigureAwait(false) > 0 ? await GetAsync(new QueryMenuReq { Id = req.Id }).ConfigureAwait(false) : null; #endif } @@ -88,9 +83,7 @@ public sealed class MenuService(BasicRepository rpo, IUserServic public async Task GetAsync(QueryMenuReq req) { req.ThrowIfInvalid(); - var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }) - .ToOneAsync() - .ConfigureAwait(false); + var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }).ToOneAsync().ConfigureAwait(false); return ret.Adapt(); } @@ -128,14 +121,10 @@ public sealed class MenuService(BasicRepository rpo, IUserServic else { var ownedMenuIds = userInfo.Roles.SelectMany(x => x.MenuIds); if (ownedMenuIds.NullOrEmpty()) { - ownedMenuIds = new[] { 0L }; + ownedMenuIds = [0L]; } - var df = new DynamicFilterInfo { - Field = nameof(QueryMenuReq.Id) - , Operator = DynamicFilterOperators.Any - , Value = ownedMenuIds - }; + var df = new DynamicFilterInfo { Field = nameof(QueryMenuReq.Id), Operator = DynamicFilterOperators.Any, Value = ownedMenuIds }; ret = QueryAsync(req with { DynamicFilter = df }); } diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/RequestLogDetailService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/RequestLogDetailService.cs index 53d15166..d0e4d8d7 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/RequestLogDetailService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/RequestLogDetailService.cs @@ -78,8 +78,7 @@ public sealed class RequestLogDetailService(BasicRepository - public async Task> PagedQueryAsync( - PagedQueryReq req) + public async Task> PagedQueryAsync(PagedQueryReq req) { req.ThrowIfInvalid(); var list = await QueryInternal(req) @@ -91,8 +90,7 @@ public sealed class RequestLogDetailService(BasicRepository(req.Page, req.PageSize, total - , list.Adapt>()); + return new PagedQueryRsp(req.Page, req.PageSize, total, list.Adapt>()); } /// diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/RequestLogService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/RequestLogService.cs index 16e9e1fd..94295254 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/RequestLogService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/RequestLogService.cs @@ -99,8 +99,7 @@ public sealed class RequestLogService(BasicRepository rpo, }.Json() .Object() }; - var ret = await QueryInternal( - new QueryReq { Filter = req, DynamicFilter = df, Order = Orders.None }) + var ret = await QueryInternal(new QueryReq { Filter = req, DynamicFilter = df, Order = Orders.None }) .Include(a => a.Detail) .ToOneAsync() .ConfigureAwait(false); @@ -116,16 +115,10 @@ public sealed class RequestLogService(BasicRepository rpo, #if DBTYPE_SQLSERVER .WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait) #endif - .GroupBy(a => new { - a.CreatedTime.Year - , a.CreatedTime.Month - , a.CreatedTime.Day - , a.CreatedTime.Hour - }) + .GroupBy(a => new { a.CreatedTime.Year, a.CreatedTime.Month, a.CreatedTime.Day, a.CreatedTime.Hour }) .ToListAsync(a => new GetBarChartRsp { - Timestamp = new DateTime( - a.Key.Year, a.Key.Month, a.Key.Day, a.Key.Hour, 0 - , 0, DateTimeKind.Unspecified) + Timestamp = new DateTime(a.Key.Year, a.Key.Month, a.Key.Day, a.Key.Hour, 0, 0 + , DateTimeKind.Unspecified) , Value = a.Count() }) .ConfigureAwait(false); @@ -159,8 +152,7 @@ public sealed class RequestLogService(BasicRepository rpo, .ToListAsync(a => new GetPieChartRsp { Value = a.Count(), Key = a.Key.ToString() }) #pragma warning restore CA1305 .ConfigureAwait(false); - return ret.Select(x => x with { Key = Enum.Parse(x.Key).ToString() }) - .OrderByDescending(x => x.Value); + return ret.Select(x => x with { Key = Enum.Parse(x.Key).ToString() }).OrderByDescending(x => x.Value); } /// @@ -189,8 +181,7 @@ public sealed class RequestLogService(BasicRepository rpo, .ToListAsync(a => a.temp) .ConfigureAwait(false); - return new PagedQueryRsp(req.Page, req.PageSize, total - , ret.Adapt>()); + return new PagedQueryRsp(req.Page, req.PageSize, total, ret.Adapt>()); } /// diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/RoleService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/RoleService.cs index f0eb4299..fdcbf9ca 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/RoleService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/RoleService.cs @@ -55,7 +55,12 @@ public sealed class RoleService(BasicRepository rpo) // public async Task DeleteAsync(DelReq req) { req.ThrowIfInvalid(); - return await Rpo.Orm.Select().ForUpdate().AnyAsync(a => a.RoleId == req.Id).ConfigureAwait(false) + return await Rpo.Orm.Select() + #if DBTYPE_SQLSERVER + .WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait) + #endif + .AnyAsync(a => a.RoleId == req.Id) + .ConfigureAwait(false) ? throw new NetAdminInvalidOperationException(Ln.该角色下存在用户) : await Rpo.DeleteAsync(a => a.Id == req.Id).ConfigureAwait(false); } @@ -70,8 +75,7 @@ public sealed class RoleService(BasicRepository rpo) // await Rpo.SaveManyAsync(entity, nameof(entity.Menus)).ConfigureAwait(false); await Rpo.SaveManyAsync(entity, nameof(entity.Apis)).ConfigureAwait(false); - return (await QueryAsync(new QueryReq { Filter = new QueryRoleReq { Id = req.Id } }) - .ConfigureAwait(false)).First(); + return (await QueryAsync(new QueryReq { Filter = new QueryRoleReq { Id = req.Id } }).ConfigureAwait(false)).First(); } /// @@ -96,9 +100,7 @@ public sealed class RoleService(BasicRepository rpo) // public async Task GetAsync(QueryRoleReq req) { req.ThrowIfInvalid(); - var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }) - .ToOneAsync() - .ConfigureAwait(false); + var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }).ToOneAsync().ConfigureAwait(false); return ret.Adapt(); } @@ -161,8 +163,7 @@ public sealed class RoleService(BasicRepository rpo) // .WhereDynamic(req.Filter) .WhereIf( // req.Keywords?.Length > 0 - , a => a.Id == req.Keywords.Int64Try(0) || a.Name.Contains(req.Keywords) || - a.Summary.Contains(req.Keywords)); + , a => a.Id == req.Keywords.Int64Try(0) || a.Name.Contains(req.Keywords) || a.Summary.Contains(req.Keywords)); // ReSharper disable once SwitchStatementMissingSomeEnumCasesNoDefault switch (req.Order) { diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgDeptService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgDeptService.cs index 1ef66e7e..183430e6 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgDeptService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgDeptService.cs @@ -71,9 +71,7 @@ public sealed class SiteMsgDeptService(BasicRepository rp public async Task GetAsync(QuerySiteMsgDeptReq req) { req.ThrowIfInvalid(); - var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }) - .ToOneAsync() - .ConfigureAwait(false); + var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }).ToOneAsync().ConfigureAwait(false); return ret.Adapt(); } @@ -90,8 +88,7 @@ public sealed class SiteMsgDeptService(BasicRepository rp .ToListAsync() .ConfigureAwait(false); - return new PagedQueryRsp(req.Page, req.PageSize, total - , list.Adapt>()); + return new PagedQueryRsp(req.Page, req.PageSize, total, list.Adapt>()); } /// diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgFlagService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgFlagService.cs index d5f19b91..c0e48e46 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgFlagService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgFlagService.cs @@ -71,9 +71,7 @@ public sealed class SiteMsgFlagService(BasicRepository rp public async Task GetAsync(QuerySiteMsgFlagReq req) { req.ThrowIfInvalid(); - var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }) - .ToOneAsync() - .ConfigureAwait(false); + var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }).ToOneAsync().ConfigureAwait(false); return ret.Adapt(); } @@ -90,8 +88,7 @@ public sealed class SiteMsgFlagService(BasicRepository rp .ToListAsync() .ConfigureAwait(false); - return new PagedQueryRsp(req.Page, req.PageSize, total - , list.Adapt>()); + return new PagedQueryRsp(req.Page, req.PageSize, total, list.Adapt>()); } /// @@ -112,8 +109,7 @@ public sealed class SiteMsgFlagService(BasicRepository rp public Task SetUserSiteMsgStatusAsync(SetUserSiteMsgStatusReq req) { req.ThrowIfInvalid(); - return UpdateAsync(req, [nameof(req.UserSiteMsgStatus)], null - , a => a.UserId == req.UserId && a.SiteMsgId == req.SiteMsgId); + return UpdateAsync(req, [nameof(req.UserSiteMsgStatus)], null, a => a.UserId == req.UserId && a.SiteMsgId == req.SiteMsgId); } private ISelect QueryInternal(QueryReq req) diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgRoleService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgRoleService.cs index 37c99240..5216fdcc 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgRoleService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgRoleService.cs @@ -71,9 +71,7 @@ public sealed class SiteMsgRoleService(BasicRepository rp public async Task GetAsync(QuerySiteMsgRoleReq req) { req.ThrowIfInvalid(); - var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }) - .ToOneAsync() - .ConfigureAwait(false); + var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }).ToOneAsync().ConfigureAwait(false); return ret.Adapt(); } @@ -90,8 +88,7 @@ public sealed class SiteMsgRoleService(BasicRepository rp .ToListAsync() .ConfigureAwait(false); - return new PagedQueryRsp(req.Page, req.PageSize, total - , list.Adapt>()); + return new PagedQueryRsp(req.Page, req.PageSize, total, list.Adapt>()); } /// diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgService.cs index c2049ed5..b98eaee4 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgService.cs @@ -11,10 +11,7 @@ using NetAdmin.SysComponent.Application.Services.Sys.Dependency; namespace NetAdmin.SysComponent.Application.Services.Sys; /// -public sealed class SiteMsgService( - BasicRepository rpo - , ContextUserInfo contextUserInfo - , ISiteMsgFlagService siteMsgFlagService) // +public sealed class SiteMsgService(BasicRepository rpo, ContextUserInfo contextUserInfo, ISiteMsgFlagService siteMsgFlagService) // : RepositoryService(rpo), ISiteMsgService { /// @@ -61,8 +58,7 @@ public sealed class SiteMsgService( // 分表 await Rpo.SaveManyAsync(entity, nameof(entity.Depts)).ConfigureAwait(false); - var ret = await QueryAsync(new QueryReq { Filter = new QuerySiteMsgReq { Id = dbSiteMsg.Id } }) - .ConfigureAwait(false); + var ret = await QueryAsync(new QueryReq { Filter = new QuerySiteMsgReq { Id = dbSiteMsg.Id } }).ConfigureAwait(false); return ret.Adapt(); } @@ -94,8 +90,7 @@ public sealed class SiteMsgService( // 分表 await Rpo.SaveManyAsync(entity, nameof(entity.Depts)).ConfigureAwait(false); - return (await QueryAsync(new QueryReq { Filter = new QuerySiteMsgReq { Id = req.Id } }) - .ConfigureAwait(false)).First(); + return (await QueryAsync(new QueryReq { Filter = new QuerySiteMsgReq { Id = req.Id } }).ConfigureAwait(false)).First(); } /// @@ -135,12 +130,11 @@ public sealed class SiteMsgService( req.ThrowIfInvalid(); var ret = await PagedQueryMineAsync( new PagedQueryReq { - DynamicFilter - = new DynamicFilterInfo { - Field = nameof(req.Id) - , Value = req.Id - , Operator = DynamicFilterOperators.Eq - } + DynamicFilter = new DynamicFilterInfo { + Field = nameof(req.Id) + , Value = req.Id + , Operator = DynamicFilterOperators.Eq + } }, true) .ConfigureAwait(false); return ret.Rows.FirstOrDefault(); @@ -167,8 +161,7 @@ public sealed class SiteMsgService( }) .ConfigureAwait(false); - return new PagedQueryRsp(req.Page, req.PageSize, total - , list.Adapt>()); + return new PagedQueryRsp(req.Page, req.PageSize, total, list.Adapt>()); } /// @@ -196,8 +189,7 @@ public sealed class SiteMsgService( public async Task SetSiteMsgStatusAsync(SetUserSiteMsgStatusReq req) { req.ThrowIfInvalid(); - if (!await ExistAsync(new QueryReq { Filter = new QuerySiteMsgReq { Id = req.SiteMsgId } }) - .ConfigureAwait(false)) { + if (!await ExistAsync(new QueryReq { Filter = new QuerySiteMsgReq { Id = req.SiteMsgId } }).ConfigureAwait(false)) { throw new NetAdminInvalidOperationException(Ln.站内信不存在); } @@ -205,8 +197,7 @@ public sealed class SiteMsgService( _ = await siteMsgFlagService.CreateAsync(req with { UserId = contextUserInfo.Id }).ConfigureAwait(false); } catch { - await siteMsgFlagService.SetUserSiteMsgStatusAsync(req with { UserId = contextUserInfo.Id }) - .ConfigureAwait(false); + await siteMsgFlagService.SetUserSiteMsgStatusAsync(req with { UserId = contextUserInfo.Id }).ConfigureAwait(false); } } @@ -215,8 +206,7 @@ public sealed class SiteMsgService( { // 减去标记已读的数量 var subtract = await Rpo.Orm.Select() - .Where(a => a.UserId == contextUserInfo.Id && - a.UserSiteMsgStatus == UserSiteMsgStatues.Read) + .Where(a => a.UserId == contextUserInfo.Id && a.UserSiteMsgStatus == UserSiteMsgStatues.Read) .CountAsync() .ConfigureAwait(false); @@ -227,10 +217,7 @@ public sealed class SiteMsgService( { // 检查角色是否存在 if (!req.RoleIds.NullOrEmpty()) { - var roles = await Rpo.Orm.Select() - .Where(a => req.RoleIds.Contains(a.Id)) - .ToListAsync(a => a.Id) - .ConfigureAwait(false); + var roles = await Rpo.Orm.Select().Where(a => req.RoleIds.Contains(a.Id)).ToListAsync(a => a.Id).ConfigureAwait(false); if (roles.Count != req.RoleIds.Count) { throw new NetAdminInvalidOperationException(Ln.角色不存在); } @@ -238,10 +225,7 @@ public sealed class SiteMsgService( if (!req.DeptIds.NullOrEmpty()) { // 检查部门是否存在 - var depts = await Rpo.Orm.Select() - .Where(a => req.DeptIds.Contains(a.Id)) - .ToListAsync(a => a.Id) - .ConfigureAwait(false); + var depts = await Rpo.Orm.Select().Where(a => req.DeptIds.Contains(a.Id)).ToListAsync(a => a.Id).ConfigureAwait(false); if (depts.Count != req.DeptIds.Count) { throw new NetAdminInvalidOperationException(Ln.部门不存在); } @@ -249,47 +233,37 @@ public sealed class SiteMsgService( if (!req.UserIds.NullOrEmpty()) { // 检查用户是否存在 - var users = await Rpo.Orm.Select() - .Where(a => req.UserIds.Contains(a.Id)) - .ToListAsync(a => a.Id) - .ConfigureAwait(false); + var users = await Rpo.Orm.Select().Where(a => req.UserIds.Contains(a.Id)).ToListAsync(a => a.Id).ConfigureAwait(false); if (users.Count != req.UserIds.Count) { throw new NetAdminInvalidOperationException(Ln.用户不存在); } } } - private async Task> PagedQueryMineAsync( - PagedQueryReq req, bool containsContent) + private async Task> PagedQueryMineAsync(PagedQueryReq req, bool containsContent) { var list = await QueryMineInternal(req) .Page(req.Page, req.PageSize) .Count(out var total) .OrderByDescending(a => a.Max(a.Value.Item1.CreatedTime)) .ToListAsync(a => new QuerySiteMsgRsp { - Id = a.Max(a.Value.Item1.Id) - , Title = a.Max(a.Value.Item1.Title) - , Summary = a.Max(a.Value.Item1.Summary) - , Content - = containsContent - ? a.Max(a.Value.Item1.Content) - : null + Id = a.Max(a.Value.Item1.Id) + , Title = a.Max(a.Value.Item1.Title) + , Summary = a.Max(a.Value.Item1.Summary) + , Content = containsContent ? a.Max(a.Value.Item1.Content) : null , CreatedTime = a.Max(a.Value.Item1.CreatedTime) , MyFlags = new QuerySiteMsgFlagRsp { - UserSiteMsgStatus - = a.Max(a.Value.Item6 - .UserSiteMsgStatus) - } + UserSiteMsgStatus + = a.Max(a.Value.Item6.UserSiteMsgStatus) + } , Sender = new QueryUserRsp { - UserName = a.Max( - a.Value.Item2.UserName) - , Avatar = a.Max(a.Value.Item2.Avatar) - } + UserName = a.Max(a.Value.Item2.UserName) + , Avatar = a.Max(a.Value.Item2.Avatar) + } }) .ConfigureAwait(false); - return new PagedQueryRsp(req.Page, req.PageSize, total - , list.Adapt>()); + return new PagedQueryRsp(req.Page, req.PageSize, total, list.Adapt>()); } private ISelect QueryInternal(QueryReq req) @@ -299,8 +273,7 @@ public sealed class SiteMsgService( .WhereDynamic(req.Filter) .WhereIf( // req.Keywords?.Length > 0 - , a => a.Id == req.Keywords.Int64Try(0) || a.Title.Contains(req.Keywords) || - a.Summary.Contains(req.Keywords)); + , a => a.Id == req.Keywords.Int64Try(0) || a.Title.Contains(req.Keywords) || a.Summary.Contains(req.Keywords)); // ReSharper disable once SwitchStatementMissingSomeEnumCasesNoDefault switch (req.Order) { @@ -319,27 +292,24 @@ public sealed class SiteMsgService( } private ISelectGrouping // - > - QueryMineInternal(QueryReq req) + > QueryMineInternal( + QueryReq req) { var roleIds = contextUserInfo.Roles.Select(x => x.Id).ToList(); - return Rpo - .Orm.Select() - #if DBTYPE_SQLSERVER + return Rpo.Orm.Select() + #if DBTYPE_SQLSERVER .WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait) - #endif - .LeftJoin((a, b, _, _, _, _) => a.CreatedUserId == b.Id) - .LeftJoin((a, _, c, _, _, _) => a.Id == c.SiteMsgId) - .LeftJoin((a, _, _, d, _, _) => a.Id == d.SiteMsgId) - .LeftJoin((a, _, _, _, e, _) => a.Id == e.SiteMsgId) - .LeftJoin((a, _, _, _, _, f) => a.Id == f.SiteMsgId && f.UserId == contextUserInfo.Id) - .WhereDynamicFilter(req.DynamicFilter) - .Where((a, _, c, d, e, f) => - (SqlExt.EqualIsNull(f.UserSiteMsgStatus) || - f.UserSiteMsgStatus != UserSiteMsgStatues.Deleted) && - (a.MsgType == SiteMsgTypes.Public || c.DeptId == contextUserInfo.DeptId || - roleIds.Contains(d.RoleId) || e.UserId == contextUserInfo.Id)) - .GroupBy((a, _, _, _, _, _) => a.Id); + #endif + .LeftJoin((a, b, _, _, _, _) => a.CreatedUserId == b.Id) + .LeftJoin((a, _, c, _, _, _) => a.Id == c.SiteMsgId) + .LeftJoin((a, _, _, d, _, _) => a.Id == d.SiteMsgId) + .LeftJoin((a, _, _, _, e, _) => a.Id == e.SiteMsgId) + .LeftJoin((a, _, _, _, _, f) => a.Id == f.SiteMsgId && f.UserId == contextUserInfo.Id) + .WhereDynamicFilter(req.DynamicFilter) + .Where((a, _, c, d, e, f) => (SqlExt.EqualIsNull(f.UserSiteMsgStatus) || f.UserSiteMsgStatus != UserSiteMsgStatues.Deleted) && + (a.MsgType == SiteMsgTypes.Public || c.DeptId == contextUserInfo.DeptId || + roleIds.Contains(d.RoleId) || e.UserId == contextUserInfo.Id)) + .GroupBy((a, _, _, _, _, _) => a.Id); } } \ No newline at end of file diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgUserService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgUserService.cs index c5876893..2569e0ab 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgUserService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/SiteMsgUserService.cs @@ -71,9 +71,7 @@ public sealed class SiteMsgUserService(BasicRepository rp public async Task GetAsync(QuerySiteMsgUserReq req) { req.ThrowIfInvalid(); - var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }) - .ToOneAsync() - .ConfigureAwait(false); + var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }).ToOneAsync().ConfigureAwait(false); return ret.Adapt(); } @@ -90,8 +88,7 @@ public sealed class SiteMsgUserService(BasicRepository rp .ToListAsync() .ConfigureAwait(false); - return new PagedQueryRsp(req.Page, req.PageSize, total - , list.Adapt>()); + return new PagedQueryRsp(req.Page, req.PageSize, total, list.Adapt>()); } /// diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/ToolsService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/ToolsService.cs index 97a6b75e..4ce04a0e 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/ToolsService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/ToolsService.cs @@ -7,13 +7,17 @@ namespace NetAdmin.SysComponent.Application.Services.Sys; /// public sealed class ToolsService : ServiceBase, IToolsService { + /// + public string AesDecode(AesDecodeReq req) + { + req.ThrowIfInvalid(); + return req.CipherText.AesDe(GlobalStatic.SecretKey[..32]); + } + /// public Task ExecuteSqlAsync(ExecuteSqlReq req) { - return App.GetService() - .Ado.CommandFluent(req.Sql) - .CommandTimeout(req.TimeoutSecs) - .ExecuteArrayAsync(); + return App.GetService().Ado.CommandFluent(req.Sql).CommandTimeout(req.TimeoutSecs).ExecuteArrayAsync(); } /// diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/UserProfileService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/UserProfileService.cs index ac3dfd82..b7ccec7a 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/UserProfileService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/UserProfileService.cs @@ -20,10 +20,7 @@ public sealed class UserProfileService(BasicRepository rp try { return new string[][] { [ Chars.FLG_FRONT_APP_SET_HOME_GRID - , new { - content = roles.MaxBy(x => x.Key).Value.ToObject() - , datetime = 0 - }.ToJson() + , new { content = roles.MaxBy(x => x.Key).Value.ToObject(), datetime = 0 }.ToJson() ] }.ToJson(); } @@ -100,9 +97,7 @@ public sealed class UserProfileService(BasicRepository rp public async Task GetAsync(QueryUserProfileReq req) { req.ThrowIfInvalid(); - var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }) - .ToOneAsync() - .ConfigureAwait(false); + var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }).ToOneAsync().ConfigureAwait(false); return ret.Adapt(); } @@ -138,8 +133,7 @@ public sealed class UserProfileService(BasicRepository rp NationArea = x.b.Adapt() , CompanyArea = x.c.Adapt() , HomeArea = x.d.Adapt() - , EmergencyContactArea - = x.e.Adapt() + , EmergencyContactArea = x.e.Adapt() })); } @@ -161,22 +155,11 @@ public sealed class UserProfileService(BasicRepository rp }) .ConfigureAwait(false); return ret.ConvertAll(x => x.a.Adapt() with { - NationArea - = x.b.Key == null - ? null - : x.b.Adapt() - , CompanyArea - = x.c.Key == null - ? null - : x.c.Adapt() - , HomeArea - = x.d.Key == null - ? null - : x.d.Adapt() + NationArea = x.b.Key == null ? null : x.b.Adapt() + , CompanyArea = x.c.Key == null ? null : x.c.Adapt() + , HomeArea = x.d.Key == null ? null : x.d.Adapt() , EmergencyContactArea - = x.e.Key == null - ? null - : x.e.Adapt() + = x.e.Key == null ? null : x.e.Adapt() }); } @@ -187,27 +170,20 @@ public sealed class UserProfileService(BasicRepository rp // 默认仪表版 if (req.AppConfig == "[]") { - req.AppConfig = BuildAppConfig(App.GetService() - .Roles.ToDictionary(x => x.Id, x => x.DashboardLayout)); + req.AppConfig = BuildAppConfig(App.GetService().Roles.ToDictionary(x => x.Id, x => x.DashboardLayout)); } return UpdateAsync(req, [nameof(req.AppConfig)], null, a => a.Id == UserToken.Id, null, true); } - private ISelect QueryInternal( - QueryReq req) + private ISelect QueryInternal(QueryReq req) { #pragma warning disable CA1305,IDE0072 var ret = Rpo.Orm.Select() - .LeftJoin((a, b, _, __, ___) => - a.NationArea.ToString() == b.Value && b.CatalogId == Numbers.ID_DIC_CATALOG_GEO_AREA) - .LeftJoin((a, _, c, __, ___) => - a.CompanyArea.ToString() == c.Value && - c.CatalogId == Numbers.ID_DIC_CATALOG_GEO_AREA) - .LeftJoin((a, _, __, d, ___) => - a.HomeArea.ToString() == d.Value && d.CatalogId == Numbers.ID_DIC_CATALOG_GEO_AREA) - .LeftJoin((a, _, __, ___, e) => a.EmergencyContactArea.ToString() == e.Value && - e.CatalogId == Numbers.ID_DIC_CATALOG_GEO_AREA) + .LeftJoin((a, b, _, __, ___) => a.NationArea.ToString() == b.Value && b.CatalogId == Numbers.ID_DIC_CATALOG_GEO_AREA) + .LeftJoin((a, _, c, __, ___) => a.CompanyArea.ToString() == c.Value && c.CatalogId == Numbers.ID_DIC_CATALOG_GEO_AREA) + .LeftJoin((a, _, __, d, ___) => a.HomeArea.ToString() == d.Value && d.CatalogId == Numbers.ID_DIC_CATALOG_GEO_AREA) + .LeftJoin((a, _, __, ___, e) => a.EmergencyContactArea.ToString() == e.Value && e.CatalogId == Numbers.ID_DIC_CATALOG_GEO_AREA) .WhereDynamicFilter(req.DynamicFilter); return req.Order switch { diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/UserService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/UserService.cs index cb9e2761..92e4bd1c 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/UserService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/UserService.cs @@ -19,22 +19,23 @@ public sealed class UserService( : RepositoryService(rpo), IUserService { private readonly Expression> _listUserExp = a => new Sys_User { - Id = a.Id - , Avatar = a.Avatar - , Email = a.Email - , Mobile = a.Mobile - , Enabled = a.Enabled - , UserName = a.UserName - , Summary = a.Summary - , Version = a.Version - , CreatedTime = a.CreatedTime - , LastLoginTime = a.LastLoginTime - , Dept = new Sys_Dept { - Id = a.Dept.Id - , Name = a.Dept.Name - } - , Roles = a.Roles - }; + Id = a.Id + , Avatar = a.Avatar + , Email = a.Email + , Mobile = a.Mobile + , Enabled = a.Enabled + , UserName = a.UserName + , Summary = a.Summary + , Version = a.Version + , CreatedTime = a.CreatedTime + , LastLoginTime = a.LastLoginTime + , Dept = new Sys_Dept { + Id = a.Dept.Id, Name = a.Dept.Name + } + , Roles = a.Roles + , CreatedUserId = a.CreatedUserId + , CreatedUserName = a.CreatedUserName + }; /// public async Task BulkDeleteAsync(BulkReq req) @@ -61,9 +62,7 @@ public sealed class UserService( public async Task CheckUserNameAvailableAsync(CheckUserNameAvailableReq req) { req.ThrowIfInvalid(); - return !await Rpo.Select.Where(a => a.UserName == req.UserName && a.Id != req.Id) - .AnyAsync() - .ConfigureAwait(false); + return !await Rpo.Select.Where(a => a.UserName == req.UserName && a.Id != req.Id).AnyAsync().ConfigureAwait(false); } /// @@ -101,8 +100,7 @@ public sealed class UserService( , AppConfig = appConfig }) .ConfigureAwait(false); - var ret = await QueryAsync(new QueryReq { Filter = new QueryUserReq { Id = dbUser.Id } }) - .ConfigureAwait(false); + var ret = await QueryAsync(new QueryReq { Filter = new QueryUserReq { Id = dbUser.Id } }).ConfigureAwait(false); return ret.First(); } @@ -146,8 +144,7 @@ public sealed class UserService( // 分表 await Rpo.SaveManyAsync(entity, nameof(entity.Roles)).ConfigureAwait(false); - var ret = (await QueryAsync(new QueryReq { Filter = new QueryUserReq { Id = req.Id } }) - .ConfigureAwait(false)).First(); + var ret = (await QueryAsync(new QueryReq { Filter = new QueryUserReq { Id = req.Id } }).ConfigureAwait(false)).First(); // 发布用户更新事件 await eventPublisher.PublishAsync(new UserUpdatedEvent(ret.Adapt())).ConfigureAwait(false); @@ -172,9 +169,9 @@ public sealed class UserService( public async Task GetAsync(QueryUserReq req) { req.ThrowIfInvalid(); - var ret = await (await QueryInternalAsync(new QueryReq { Filter = req, Order = Orders.None }) - .ConfigureAwait(false)).ToOneAsync() - .ConfigureAwait(false); + var ret = await (await QueryInternalAsync(new QueryReq { Filter = req, Order = Orders.None }).ConfigureAwait(false)) + .ToOneAsync() + .ConfigureAwait(false); return ret.Adapt(); } @@ -195,21 +192,15 @@ public sealed class UserService( #pragma warning disable IDE0045 if (new MobileAttribute().IsValid(req.Account)) { #pragma warning restore IDE0045 - dbUser = await Rpo.Where(a => a.Mobile == req.Account && a.Password == pwd) - .ToOneAsync() - .ConfigureAwait(false); + dbUser = await Rpo.Where(a => a.Mobile == req.Account && a.Password == pwd).ToOneAsync().ConfigureAwait(false); } else { dbUser = new EmailAddressAttribute().IsValid(req.Account) - ? await Rpo.Where(a => a.Email == req.Account && a.Password == pwd).ToOneAsync().ConfigureAwait(false) - : await Rpo.Where(a => a.UserName == req.Account && a.Password == pwd) - .ToOneAsync() - .ConfigureAwait(false); + ? await Rpo.Where(a => a.Email == req.Account && a.Password == pwd).ToOneAsync().ConfigureAwait(false) + : await Rpo.Where(a => a.UserName == req.Account && a.Password == pwd).ToOneAsync().ConfigureAwait(false); } - return dbUser == null - ? throw new NetAdminInvalidOperationException(Ln.用户名或密码错误) - : await LoginInternalAsync(dbUser).ConfigureAwait(false); + return dbUser == null ? throw new NetAdminInvalidOperationException(Ln.用户名或密码错误) : await LoginInternalAsync(dbUser).ConfigureAwait(false); } /// @@ -223,9 +214,7 @@ public sealed class UserService( } var dbUser = await Rpo.Where(a => a.Mobile == req.DestDevice).ToOneAsync().ConfigureAwait(false); - return dbUser == null - ? throw new NetAdminInvalidOperationException(Ln.用户不存在) - : await LoginInternalAsync(dbUser).ConfigureAwait(false); + return dbUser == null ? throw new NetAdminInvalidOperationException(Ln.用户不存在) : await LoginInternalAsync(dbUser).ConfigureAwait(false); } /// @@ -256,9 +245,7 @@ public sealed class UserService( public async Task> QueryAsync(QueryReq req) { req.ThrowIfInvalid(); - var list = await (await QueryInternalAsync(req).ConfigureAwait(false)).Take(req.Count) - .ToListAsync(_listUserExp) - .ConfigureAwait(false); + var list = await (await QueryInternalAsync(req).ConfigureAwait(false)).Take(req.Count).ToListAsync(_listUserExp).ConfigureAwait(false); return list.Adapt>(); } @@ -292,11 +279,10 @@ public sealed class UserService( throw new NetAdminInvalidOperationException(Ln.验证码不正确); } - var dto = (await Rpo.Where(a => a.Mobile == req.VerifySmsCodeReq.DestDevice) - .ToOneAsync(a => new { a.Version, a.Id }) - .ConfigureAwait(false)).Adapt() with { - Password = req.PasswordText.Pwd().Guid() - }; + var dto = (await Rpo.Where(a => a.Mobile == req.VerifySmsCodeReq.DestDevice).ToOneAsync(a => new { a.Version, a.Id }).ConfigureAwait(false)) + .Adapt() with { + Password = req.PasswordText.Pwd().Guid() + }; return await UpdateAsync(dto, [nameof(Sys_User.Password)]).ConfigureAwait(false); } @@ -307,17 +293,15 @@ public sealed class UserService( if (await UpdateAsync( req with { Id = UserToken.Id - , Version = await Rpo.Where(a => a.Id == UserToken.Id) - .ToOneAsync(a => a.Version) - .ConfigureAwait(false) - }, [nameof(Sys_User.Avatar)]) + , Version = await Rpo.Where(a => a.Id == UserToken.Id).ToOneAsync(a => a.Version).ConfigureAwait(false) + } + , [nameof(Sys_User.Avatar)]) .ConfigureAwait(false) <= 0) { return null; } - var ret = (await QueryAsync(new QueryReq { Filter = new QueryUserReq { Id = UserToken.Id } }) - .ConfigureAwait(false)).First() - .Adapt(); + var ret = (await QueryAsync(new QueryReq { Filter = new QueryUserReq { Id = UserToken.Id } }).ConfigureAwait(false)).First() + .Adapt(); // 发布用户更新事件 await eventPublisher.PublishAsync(new UserUpdatedEvent(ret)).ConfigureAwait(false); @@ -328,9 +312,7 @@ public sealed class UserService( public async Task SetEmailAsync(SetEmailReq req) { req.ThrowIfInvalid(); - var user = await Rpo.Where(a => a.Id == UserToken.Id) - .ToOneAsync(a => new { a.Mobile, a.Version, a.Email }) - .ConfigureAwait(false); + var user = await Rpo.Where(a => a.Id == UserToken.Id).ToOneAsync(a => new { a.Mobile, a.Version, a.Email }).ConfigureAwait(false); // 如果已绑定手机号码、需要手机安全验证 if (!user.Mobile.NullOrEmpty()) { @@ -344,15 +326,13 @@ public sealed class UserService( } if (await UpdateAsync( // - new Sys_User { Email = req.DestDevice, Id = UserToken.Id, Version = user.Version } - , [nameof(Sys_User.Email)]) + new Sys_User { Email = req.DestDevice, Id = UserToken.Id, Version = user.Version }, [nameof(Sys_User.Email)]) .ConfigureAwait(false) <= 0) { return null; } - var ret = (await QueryAsync(new QueryReq { Filter = new QueryUserReq { Id = UserToken.Id } }) - .ConfigureAwait(false)).First() - .Adapt(); + var ret = (await QueryAsync(new QueryReq { Filter = new QueryUserReq { Id = UserToken.Id } }).ConfigureAwait(false)).First() + .Adapt(); // 发布用户更新事件 await eventPublisher.PublishAsync(new UserUpdatedEvent(ret)).ConfigureAwait(false); @@ -370,9 +350,7 @@ public sealed class UserService( public async Task SetMobileAsync(SetMobileReq req) { req.ThrowIfInvalid(); - var user = await Rpo.Where(a => a.Id == UserToken.Id) - .ToOneAsync(a => new { a.Version, a.Mobile }) - .ConfigureAwait(false); + var user = await Rpo.Where(a => a.Id == UserToken.Id).ToOneAsync(a => new { a.Version, a.Mobile }).ConfigureAwait(false); if (!user.Mobile.NullOrEmpty()) { // 已有手机号码,需验证旧手机 @@ -390,20 +368,15 @@ public sealed class UserService( throw new NetAdminInvalidOperationException($"{Ln.新手机号码验证码不正确}"); } - if (await UpdateAsync( - new Sys_User { - Version = user.Version - , Id = UserToken.Id - , Mobile = req.NewVerifySmsCodeReq.DestDevice - } + if (await UpdateAsync( // + new Sys_User { Version = user.Version, Id = UserToken.Id, Mobile = req.NewVerifySmsCodeReq.DestDevice } , [nameof(Sys_User.Mobile)]) .ConfigureAwait(false) <= 0) { return null; } - var ret = (await QueryAsync(new QueryReq { Filter = new QueryUserReq { Id = UserToken.Id } }) - .ConfigureAwait(false)).First() - .Adapt(); + var ret = (await QueryAsync(new QueryReq { Filter = new QueryUserReq { Id = UserToken.Id } }).ConfigureAwait(false)).First() + .Adapt(); // 发布用户更新事件 await eventPublisher.PublishAsync(new UserUpdatedEvent(ret)).ConfigureAwait(false); @@ -418,9 +391,8 @@ public sealed class UserService( .ToOneAsync(a => new long?(a.Version)) .ConfigureAwait(false) ?? throw new NetAdminInvalidOperationException($"{Ln.旧密码不正确}"); - return await UpdateAsync( - new Sys_User { Id = UserToken.Id, Password = req.NewPassword.Pwd().Guid(), Version = version } - , [nameof(Sys_User.Password)]) + return await UpdateAsync( // + new Sys_User { Id = UserToken.Id, Password = req.NewPassword.Pwd().Guid(), Version = version }, [nameof(Sys_User.Password)]) .ConfigureAwait(false); } @@ -487,7 +459,9 @@ public sealed class UserService( { // 检查角色是否存在 var roles = await Rpo.Orm.Select() - .ForUpdate() + #if DBTYPE_SQLSERVER + .WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait) + #endif .Where(a => req.RoleIds.Contains(a.Id)) .ToDictionaryAsync(a => a.Id, a => a.DashboardLayout) .ConfigureAwait(false); @@ -497,7 +471,9 @@ public sealed class UserService( // 检查部门是否存在 var dept = await Rpo.Orm.Select() - .ForUpdate() + #if DBTYPE_SQLSERVER + .WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait) + #endif .Where(a => req.DeptId == a.Id) .ToListAsync(a => a.Id) .ConfigureAwait(false); @@ -511,22 +487,16 @@ public sealed class UserService( throw new NetAdminInvalidOperationException(Ln.请联系管理员激活账号); } - _ = await UpdateAsync(dbUser with { LastLoginTime = DateTime.Now }, [nameof(Sys_User.LastLoginTime)] -, ignoreVersion: true) + _ = await UpdateAsync(dbUser with { LastLoginTime = DateTime.Now }, [nameof(Sys_User.LastLoginTime)], ignoreVersion: true) .ConfigureAwait(false); - var tokenPayload - = new Dictionary { { nameof(ContextUserToken), dbUser.Adapt() } }; + var tokenPayload = new Dictionary { { nameof(ContextUserToken), dbUser.Adapt() } }; var accessToken = JWTEncryption.Encrypt(tokenPayload); - return new LoginRsp { - AccessToken = accessToken - , RefreshToken = JWTEncryption.GenerateRefreshToken(accessToken) - }; + return new LoginRsp { AccessToken = accessToken, RefreshToken = JWTEncryption.GenerateRefreshToken(accessToken) }; } - private ISelect QueryInternal(QueryReq req, IEnumerable deptIds - , bool includeRoles = true) + private ISelect QueryInternal(QueryReq req, IEnumerable deptIds, bool includeRoles = true) { var ret = Rpo.Select.Include(a => a.Dept); if (includeRoles) { @@ -541,9 +511,8 @@ public sealed class UserService( req.Filter?.RoleId > 0, a => a.Roles.Any(b => b.Id == req.Filter.RoleId)) .WhereIf( // req.Keywords?.Length > 0 - , a => a.Id == req.Keywords.Int64Try(0) || a.UserName == req.Keywords || - a.Mobile == req.Keywords || - a.Email == req.Keywords || a.Summary.Contains(req.Keywords)); + , a => a.Id == req.Keywords.Int64Try(0) || a.UserName == req.Keywords || a.Mobile == req.Keywords || a.Email == req.Keywords || + a.Summary.Contains(req.Keywords)); // ReSharper disable once SwitchStatementMissingSomeEnumCasesNoDefault switch (req.Order) { @@ -576,11 +545,7 @@ public sealed class UserService( { IEnumerable deptIds = null; if (req.Filter?.DeptId > 0) { - deptIds = await Rpo.Orm.Select() - .Where(a => a.Id == req.Filter.DeptId) - .AsTreeCte() - .ToListAsync(a => a.Id) - .ConfigureAwait(false); + deptIds = await Rpo.Orm.Select().Where(a => a.Id == req.Filter.DeptId).AsTreeCte().ToListAsync(a => a.Id).ConfigureAwait(false); } return QueryInternal(req, deptIds, includeRoles); diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/VerifyCodeService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/VerifyCodeService.cs index d3126aac..77ef39b3 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/VerifyCodeService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/VerifyCodeService.cs @@ -81,9 +81,7 @@ public sealed class VerifyCodeService(BasicRepository rpo, public async Task GetAsync(QueryVerifyCodeReq req) { req.ThrowIfInvalid(); - var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }) - .ToOneAsync() - .ConfigureAwait(false); + var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }).ToOneAsync().ConfigureAwait(false); return ret.Adapt(); } @@ -100,8 +98,7 @@ public sealed class VerifyCodeService(BasicRepository rpo, .ToListAsync() .ConfigureAwait(false); - return new PagedQueryRsp(req.Page, req.PageSize, total - , list.Adapt>()); + return new PagedQueryRsp(req.Page, req.PageSize, total, list.Adapt>()); } /// @@ -134,8 +131,7 @@ public sealed class VerifyCodeService(BasicRepository rpo, #endif if (lastSent != null && lastSent.Status != VerifyCodeStatues.Verified) { // 上次发送未验证,生成相同code - ret = await CreateAsync(req.Adapt() with { Code = lastSent.Code }) - .ConfigureAwait(false); + ret = await CreateAsync(req.Adapt() with { Code = lastSent.Code }).ConfigureAwait(false); } else { // 生成新的code var code = _randRange.Rand().ToString(CultureInfo.InvariantCulture).PadLeft(4, '0'); @@ -171,8 +167,7 @@ public sealed class VerifyCodeService(BasicRepository rpo, return false; } - _ = await UpdateAsync(lastSent with { Status = VerifyCodeStatues.Verified }, [nameof(lastSent.Status)]) - .ConfigureAwait(false); + _ = await UpdateAsync(lastSent with { Status = VerifyCodeStatues.Verified }, [nameof(lastSent.Status)]).ConfigureAwait(false); return true; } @@ -180,13 +175,11 @@ public sealed class VerifyCodeService(BasicRepository rpo, private Task GetLastSentAsync(string destDevice) { return QueryInternal(new QueryReq { - DynamicFilter - = new DynamicFilterInfo { - Field = nameof( - Sys_VerifyCode.DestDevice) - , Operator = DynamicFilterOperators.Eq - , Value = destDevice - } + DynamicFilter = new DynamicFilterInfo { + Field = nameof(Sys_VerifyCode.DestDevice) + , Operator = DynamicFilterOperators.Eq + , Value = destDevice + } }) #if DBTYPE_SQLSERVER .WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait) diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Tpl/ExampleService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Tpl/ExampleService.cs index d3ee011e..309a2f64 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Tpl/ExampleService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Tpl/ExampleService.cs @@ -73,9 +73,7 @@ public sealed class ExampleService(BasicRepository rpo) // public async Task GetAsync(QueryExampleReq req) { req.ThrowIfInvalid(); - var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }) - .ToOneAsync() - .ConfigureAwait(false); + var ret = await QueryInternal(new QueryReq { Filter = req, Order = Orders.None }).ToOneAsync().ConfigureAwait(false); return ret.Adapt(); } @@ -92,8 +90,7 @@ public sealed class ExampleService(BasicRepository rpo) // .ToListAsync() .ConfigureAwait(false); - return new PagedQueryRsp(req.Page, req.PageSize, total - , list.Adapt>()); + return new PagedQueryRsp(req.Page, req.PageSize, total, list.Adapt>()); } /// diff --git a/src/backend/NetAdmin.SysComponent.Cache/Sys/CaptchaCache.cs b/src/backend/NetAdmin.SysComponent.Cache/Sys/CaptchaCache.cs index a671aa90..7d066a1f 100644 --- a/src/backend/NetAdmin.SysComponent.Cache/Sys/CaptchaCache.cs +++ b/src/backend/NetAdmin.SysComponent.Cache/Sys/CaptchaCache.cs @@ -13,8 +13,7 @@ public sealed class CaptchaCache(IDistributedCache cache, ICaptchaService servic public async Task GetCaptchaImageAsync() { var captchaRsp = await Service.GetCaptchaImageAsync().ConfigureAwait(false); - await CreateAsync(GetCacheKey(captchaRsp.Id, nameof(CaptchaCache)), captchaRsp.SawOffsetX - , TimeSpan.FromSeconds(Numbers.SECS_CACHE_DEFAULT)) + await CreateAsync(GetCacheKey(captchaRsp.Id, nameof(CaptchaCache)), captchaRsp.SawOffsetX, TimeSpan.FromSeconds(Numbers.SECS_CACHE_DEFAULT)) .ConfigureAwait(false); return captchaRsp; } diff --git a/src/backend/NetAdmin.SysComponent.Cache/Sys/Dependency/IUserCache.cs b/src/backend/NetAdmin.SysComponent.Cache/Sys/Dependency/IUserCache.cs index 8c3261a4..318806b7 100644 --- a/src/backend/NetAdmin.SysComponent.Cache/Sys/Dependency/IUserCache.cs +++ b/src/backend/NetAdmin.SysComponent.Cache/Sys/Dependency/IUserCache.cs @@ -1,4 +1,5 @@ using NetAdmin.Cache; +using NetAdmin.Domain.Dto.Sys.User; using NetAdmin.SysComponent.Application.Modules.Sys; using NetAdmin.SysComponent.Application.Services.Sys.Dependency; @@ -9,6 +10,11 @@ namespace NetAdmin.SysComponent.Cache.Sys.Dependency; /// public interface IUserCache : ICache, IUserModule { + /// + /// 用户编号登录 + /// + Task LoginByUserIdAsync(long userId); + /// /// 删除缓存 UserInfoAsync /// diff --git a/src/backend/NetAdmin.SysComponent.Cache/Sys/DicCache.cs b/src/backend/NetAdmin.SysComponent.Cache/Sys/DicCache.cs index 83a16870..5f80ac62 100644 --- a/src/backend/NetAdmin.SysComponent.Cache/Sys/DicCache.cs +++ b/src/backend/NetAdmin.SysComponent.Cache/Sys/DicCache.cs @@ -112,4 +112,10 @@ public sealed class DicCache(IDistributedCache cache, IDicService service) // { return Service.QueryContentAsync(req); } + + /// + public Task SetEnabledAsync(SetDicContentEnabledReq req) + { + return Service.SetEnabledAsync(req); + } } \ No newline at end of file diff --git a/src/backend/NetAdmin.SysComponent.Cache/Sys/DicContentCache.cs b/src/backend/NetAdmin.SysComponent.Cache/Sys/DicContentCache.cs index 9ae6a536..e2360c64 100644 --- a/src/backend/NetAdmin.SysComponent.Cache/Sys/DicContentCache.cs +++ b/src/backend/NetAdmin.SysComponent.Cache/Sys/DicContentCache.cs @@ -75,4 +75,10 @@ public sealed class DicContentCache(IDistributedCache cache, IDicContentService return Service.QueryByCatalogCodeAsync(catalogCode); #endif } + + /// + public Task SetEnabledAsync(SetDicContentEnabledReq req) + { + return Service.SetEnabledAsync(req); + } } \ No newline at end of file diff --git a/src/backend/NetAdmin.SysComponent.Cache/Sys/JobCache.cs b/src/backend/NetAdmin.SysComponent.Cache/Sys/JobCache.cs index 179bebdc..010dd17b 100644 --- a/src/backend/NetAdmin.SysComponent.Cache/Sys/JobCache.cs +++ b/src/backend/NetAdmin.SysComponent.Cache/Sys/JobCache.cs @@ -9,8 +9,7 @@ using NetAdmin.SysComponent.Cache.Sys.Dependency; namespace NetAdmin.SysComponent.Cache.Sys; /// -public sealed class JobCache(IDistributedCache cache, IJobService service) - : DistributedCache(cache, service), IScoped, IJobCache +public sealed class JobCache(IDistributedCache cache, IJobService service) : DistributedCache(cache, service), IScoped, IJobCache { /// public Task BulkDeleteAsync(BulkReq req) diff --git a/src/backend/NetAdmin.SysComponent.Cache/Sys/ToolsCache.cs b/src/backend/NetAdmin.SysComponent.Cache/Sys/ToolsCache.cs index 5c725096..7e056cea 100644 --- a/src/backend/NetAdmin.SysComponent.Cache/Sys/ToolsCache.cs +++ b/src/backend/NetAdmin.SysComponent.Cache/Sys/ToolsCache.cs @@ -9,6 +9,12 @@ namespace NetAdmin.SysComponent.Cache.Sys; public sealed class ToolsCache(IDistributedCache cache, IToolsService service) // : DistributedCache(cache, service), IScoped, IToolsCache { + /// + public string AesDecode(AesDecodeReq req) + { + return Service.AesDecode(req); + } + /// public Task ExecuteSqlAsync(ExecuteSqlReq req) { diff --git a/src/backend/NetAdmin.SysComponent.Cache/Sys/UserCache.cs b/src/backend/NetAdmin.SysComponent.Cache/Sys/UserCache.cs index 96066b2e..fe759bd5 100644 --- a/src/backend/NetAdmin.SysComponent.Cache/Sys/UserCache.cs +++ b/src/backend/NetAdmin.SysComponent.Cache/Sys/UserCache.cs @@ -89,6 +89,18 @@ public sealed class UserCache(IDistributedCache cache, IUserService service, IVe return Service.LoginBySmsAsync(req); } + /// + public Task LoginByUserIdAsync(long userId) + { + #if !DEBUG + return GetOrCreateAsync( // + GetCacheKey(userId.ToInvString()) // + , () => Service.LoginByUserIdAsync(userId), TimeSpan.FromSeconds(Numbers.SECS_CACHE_LOGIN_BY_USER_ID)); + #else + return Service.LoginByUserIdAsync(userId); + #endif + } + /// public Task> PagedQueryAsync(PagedQueryReq req) { diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/ApiController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/ApiController.cs index 6ce66649..eb3d24ac 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/ApiController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/ApiController.cs @@ -12,6 +12,7 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// 接口服务 /// [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] public sealed class ApiController(IApiCache cache) : ControllerBase(cache), IApiModule { /// diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/CacheController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/CacheController.cs index d6860522..b0c9c174 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/CacheController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/CacheController.cs @@ -11,6 +11,7 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// 缓存服务 /// [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] public sealed class CacheController(ICacheCache cache) : ControllerBase(cache), ICacheModule { /// diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/CaptchaController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/CaptchaController.cs index 59123831..2baf60c9 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/CaptchaController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/CaptchaController.cs @@ -10,8 +10,8 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// 人机验证服务 /// [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] -public sealed class CaptchaController(ICaptchaCache cache) : ControllerBase(cache) - , ICaptchaModule +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] +public sealed class CaptchaController(ICaptchaCache cache) : ControllerBase(cache), ICaptchaModule { /// /// 获取人机校验图 diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/ConfigController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/ConfigController.cs index 4bce669e..b93d60c0 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/ConfigController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/ConfigController.cs @@ -12,8 +12,8 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// 配置服务 /// [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] -public sealed class ConfigController(IConfigCache cache) : ControllerBase(cache) - , IConfigModule +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] +public sealed class ConfigController(IConfigCache cache) : ControllerBase(cache), IConfigModule { /// /// 批量删除配置 diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/ConstantController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/ConstantController.cs index 5bad7889..e63eb1cf 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/ConstantController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/ConstantController.cs @@ -11,6 +11,7 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// [AllowAnonymous] [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] public sealed class ConstantController(IConstantCache cache, IOptions jsonOptions) : ControllerBase(cache), IConstantModule { diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/DeptController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/DeptController.cs index 110d0130..2038b53d 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/DeptController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/DeptController.cs @@ -12,6 +12,7 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// 部门服务 /// [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] public sealed class DeptController(IDeptCache cache) : ControllerBase(cache), IDeptModule { /// diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/DevController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/DevController.cs index 71b0110f..f56f1c98 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/DevController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/DevController.cs @@ -10,6 +10,7 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// 开发服务 /// [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] public sealed class DevController(IDevCache cache) : ControllerBase(cache), IDevModule { /// diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/DicController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/DicController.cs index fe602d56..4ea07b70 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/DicController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/DicController.cs @@ -13,6 +13,7 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// 字典服务 /// [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] public sealed class DicController(IDicCache cache) : ControllerBase(cache), IDicModule { /// @@ -150,4 +151,12 @@ public sealed class DicController(IDicCache cache) : ControllerBase + /// 启用/禁用字典内容 + /// + public Task SetEnabledAsync(SetDicContentEnabledReq req) + { + return Cache.SetEnabledAsync(req); + } } \ No newline at end of file diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/FileController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/FileController.cs index 8ecb3fce..a17d784b 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/FileController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/FileController.cs @@ -9,6 +9,7 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// 文件服务 /// [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] public sealed class FileController(IFileCache cache) : ControllerBase(cache), IFileModule { /// diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/JobController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/JobController.cs index 31169c5c..1e111c63 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/JobController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/JobController.cs @@ -14,6 +14,7 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// 计划作业服务 /// [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] public sealed class JobController(IJobCache cache) : ControllerBase(cache), IJobModule { /// diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/LoginLogController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/LoginLogController.cs index 819a0ed7..b6d7418b 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/LoginLogController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/LoginLogController.cs @@ -12,8 +12,8 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// 登录日志服务 /// [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] -public sealed class LoginLogController(ILoginLogCache cache) : ControllerBase(cache) - , ILoginLogModule +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] +public sealed class LoginLogController(ILoginLogCache cache) : ControllerBase(cache), ILoginLogModule { /// /// 批量删除登录日志 diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/MenuController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/MenuController.cs index 14addf43..e5ae3efa 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/MenuController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/MenuController.cs @@ -12,6 +12,7 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// 菜单服务 /// [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] public sealed class MenuController(IMenuCache cache) : ControllerBase(cache), IMenuModule { /// diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/RequestLogController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/RequestLogController.cs index 85fa2b8d..4451f644 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/RequestLogController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/RequestLogController.cs @@ -13,8 +13,8 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// 请求日志服务 /// [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] -public sealed class RequestLogController(IRequestLogCache cache) - : ControllerBase(cache), IRequestLogModule +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] +public sealed class RequestLogController(IRequestLogCache cache) : ControllerBase(cache), IRequestLogModule { /// /// 批量删除请求日志 diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/RoleController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/RoleController.cs index 1c07f095..337d9006 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/RoleController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/RoleController.cs @@ -12,6 +12,7 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// 角色服务 /// [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] public sealed class RoleController(IRoleCache cache) : ControllerBase(cache), IRoleModule { /// diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/SiteMsgController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/SiteMsgController.cs index d818c404..be89f4ae 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/SiteMsgController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/SiteMsgController.cs @@ -13,8 +13,8 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// 站内信服务 /// [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] -public sealed class SiteMsgController(ISiteMsgCache cache) : ControllerBase(cache) - , ISiteMsgModule +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] +public sealed class SiteMsgController(ISiteMsgCache cache) : ControllerBase(cache), ISiteMsgModule { /// /// 批量删除站内信 diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/ToolsController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/ToolsController.cs index 41a68ce2..01a2455a 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/ToolsController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/ToolsController.cs @@ -10,8 +10,17 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// 工具服务 /// [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] public sealed class ToolsController(IToolsCache cache) : ControllerBase(cache), IToolsModule { + /// + /// Aes解密 + /// + public string AesDecode(AesDecodeReq req) + { + return Cache.AesDecode(req); + } + /// /// 执行SQL语句 /// diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/UserController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/UserController.cs index 56ae60c4..792c1b73 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/UserController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/UserController.cs @@ -13,8 +13,8 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// 用户服务 /// [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] -public sealed class UserController(IUserCache cache, IConfigCache configCache) - : ControllerBase(cache), IUserModule +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] +public sealed class UserController(IUserCache cache, IConfigCache configCache) : ControllerBase(cache), IUserModule { /// /// 批量删除用户 @@ -171,7 +171,7 @@ public sealed class UserController(IUserCache cache, IConfigCache configCache) return await Cache.RegisterAsync(req with { DeptId = config.UserRegisterDeptId - , RoleIds = new[] { config.UserRegisterRoleId } + , RoleIds = [config.UserRegisterRoleId] , Profile = new CreateUserProfileReq() , Enabled = !config.UserRegisterConfirm , Mobile = req.VerifySmsCodeReq.DestDevice diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/VerifyCodeController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/VerifyCodeController.cs index f0deb98f..aa8e7060 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/VerifyCodeController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Sys/VerifyCodeController.cs @@ -12,6 +12,7 @@ namespace NetAdmin.SysComponent.Host.Controllers.Sys; /// 验证码服务 /// [ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))] +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] public sealed class VerifyCodeController(IVerifyCodeCache cache, ICaptchaCache captchaCache) : ControllerBase(cache), IVerifyCodeModule { diff --git a/src/backend/NetAdmin.SysComponent.Host/Controllers/Tpl/ExampleController.cs b/src/backend/NetAdmin.SysComponent.Host/Controllers/Tpl/ExampleController.cs index 0ecf7d84..d9d3f413 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Controllers/Tpl/ExampleController.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Controllers/Tpl/ExampleController.cs @@ -12,8 +12,8 @@ namespace NetAdmin.SysComponent.Host.Controllers.Tpl; /// 示例服务 /// [ApiDescriptionSettings(nameof(Tpl), Module = nameof(Tpl))] -public sealed class ExampleController(IExampleCache cache) : ControllerBase(cache) - , IExampleModule +[Produces(Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_JSON)] +public sealed class ExampleController(IExampleCache cache) : ControllerBase(cache), IExampleModule { /// /// 批量删除示例 diff --git a/src/backend/NetAdmin.SysComponent.Host/Jobs/ScheduledJob.cs b/src/backend/NetAdmin.SysComponent.Host/Jobs/ScheduledJob.cs index 30a436a6..ba46f45d 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Jobs/ScheduledJob.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Jobs/ScheduledJob.cs @@ -18,21 +18,14 @@ public sealed class ScheduledJob : WorkBase, IJob { private static string _accessToken; private static string _refreshToken; - private readonly IJobRecordService _jobRecordService; - private readonly IJobService _jobService; private readonly ILogger _logger; - private readonly IUserService _userService; - private string _requestHeader; /// /// Initializes a new instance of the class. /// public ScheduledJob() { - _jobRecordService = ServiceProvider.GetService(); - _jobService = ServiceProvider.GetService(); - _logger = ServiceProvider.GetService>(); - _userService = ServiceProvider.GetService(); + _logger = ServiceProvider.GetService>(); } /// @@ -48,7 +41,9 @@ public sealed class ScheduledJob : WorkBase, IJob return; } - await WorkflowAsync(stoppingToken).ConfigureAwait(false); + // ReSharper disable once MethodSupportsCancellation + await Parallel.ForAsync(0, Numbers.SCHEDULED_JOB_PARALLEL_NUM, async (_, _) => await WorkflowAsync(stoppingToken).ConfigureAwait(false)) + .ConfigureAwait(false); } /// @@ -58,9 +53,15 @@ public sealed class ScheduledJob : WorkBase, IJob /// ArgumentOutOfRangeException protected override async ValueTask WorkflowAsync(CancellationToken cancelToken) { - QueryJobRsp job = null; + QueryJobRsp job = null; + await using var scope = ServiceProvider.CreateAsyncScope(); + var jobService = scope.ServiceProvider.GetService(); + var jobRecordService = scope.ServiceProvider.GetService(); + var userService = scope.ServiceProvider.GetService(); + var unitOfWorkManager = scope.ServiceProvider.GetService(); + try { - job = await _jobService.GetNextJobAsync().ConfigureAwait(false); + job = await jobService.GetNextJobAsync().ConfigureAwait(false); } catch (DbUpdateVersionException) { // ignore @@ -87,7 +88,7 @@ public sealed class ScheduledJob : WorkBase, IJob sw.Start(); var rsp = await request.SendAsync(CancellationToken.None).ConfigureAwait(false); if (rsp.StatusCode is HttpStatusCode.Unauthorized or HttpStatusCode.Forbidden) { - var loginRsp = await _userService.LoginByUserIdAsync(job.UserId).ConfigureAwait(false); + var loginRsp = await userService.LoginByUserIdAsync(job.UserId).ConfigureAwait(false); #pragma warning disable S2696 _accessToken = loginRsp.AccessToken; _refreshToken = loginRsp.RefreshToken; @@ -97,31 +98,32 @@ public sealed class ScheduledJob : WorkBase, IJob } sw.Stop(); - await UowManager.AtomicOperateAsync(async () => { - var rspBody = await rsp.Content.ReadAsStringAsync(CancellationToken.None) + + await unitOfWorkManager.AtomicOperateAsync(async () => { + var rspBody = await rsp.Content.ReadAsStringAsync(CancellationToken.None).ConfigureAwait(false); + var jobRecord = new CreateJobRecordReq // + { + Duration = sw.ElapsedMilliseconds + , HttpMethod = job.HttpMethod + , HttpStatusCode = (int)rsp.StatusCode + , JobId = job.Id + , RequestBody = job.RequestBody + , RequestHeader = rsp!.RequestMessage!.Headers.Json() + , RequestUrl = job.RequestUrl + , ResponseBody = rspBody + , ResponseHeader = rsp.Headers.Json() + , TimeId = job.NextTimeId!.Value + }; + + _ = await jobRecordService.CreateAsync(jobRecord).ConfigureAwait(false); + await jobService.FinishJobAsync(job.Adapt() with // + { + LastStatusCode = rsp.StatusCode // + , LastDuration = jobRecord.Duration + }) .ConfigureAwait(false); - var jobRecord = new CreateJobRecordReq // - { - Duration = sw.ElapsedMilliseconds - , HttpMethod = job.HttpMethod - , HttpStatusCode = (int)rsp.StatusCode - , JobId = job.Id - , RequestBody = job.RequestBody - , RequestHeader = _requestHeader - , RequestUrl = job.RequestUrl - , ResponseBody = rspBody - , ResponseHeader = rsp.Headers.Json() - , TimeId = job.NextTimeId!.Value - }; - _ = await _jobRecordService.CreateAsync(jobRecord).ConfigureAwait(false); - await _jobService - .FinishJobAsync(job.Adapt() with { - LastStatusCode = rsp.StatusCode - , LastDuration = jobRecord.Duration - }) - .ConfigureAwait(false); - }) - .ConfigureAwait(false); + }) + .ConfigureAwait(false); } private HttpRequestPart BuildRequest(QueryJobRsp job) @@ -136,29 +138,18 @@ public sealed class ScheduledJob : WorkBase, IJob if (!_refreshToken.NullOrEmpty()) { headers.Add( // - Chars.FLG_HTTP_HEADER_KEY_X_ACCESS_TOKEN_HEADER_KEY - , $"{Chars.FLG_HTTP_HEADER_VALUE_AUTH_SCHEMA} {_refreshToken}"); + Chars.FLG_HTTP_HEADER_KEY_X_ACCESS_TOKEN_HEADER_KEY, $"{Chars.FLG_HTTP_HEADER_VALUE_AUTH_SCHEMA} {_refreshToken}"); } if (!job.RequestHeader.NullOrEmpty()) { - ret = ret.SetHeaders(headers.Union(job.RequestHeader.Object>()) - .ToDictionary(x => x.Key, x => x.Value)); + // ReSharper disable once UsageOfDefaultStructEquality + ret = ret.SetHeaders(headers.Union(job.RequestHeader.Object>()).ToDictionary(x => x.Key, x => x.Value)); } if (!job.RequestBody.NullOrEmpty()) { ret = ret.SetBody(job.RequestBody); } - return ret.SetLog(_logger).OnResponsing(GetRequestHeader).OnException(GetRequestHeader); - } - - private void GetRequestHeader(HttpClient _, HttpResponseMessage rsp, string __) - { - _requestHeader = rsp!.RequestMessage!.Headers.Json(); - } - - private void GetRequestHeader(HttpClient _, HttpResponseMessage rsp) - { - GetRequestHeader(_, rsp, null); + return ret.SetLog(_logger); } } \ No newline at end of file diff --git a/src/backend/NetAdmin.SysComponent.Host/Middlewares/VersionCheckerMiddleware.cs b/src/backend/NetAdmin.SysComponent.Host/Middlewares/VersionCheckerMiddleware.cs index 3b753b68..65ef9dc7 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Middlewares/VersionCheckerMiddleware.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Middlewares/VersionCheckerMiddleware.cs @@ -31,19 +31,16 @@ public sealed class VersionCheckerMiddleware(RequestDelegate next) { var buffer = new byte[1024]; while (webSocket.State == WebSocketState.Open) { - var receiveResult = await webSocket.ReceiveAsync(new ArraySegment(buffer), CancellationToken.None) - .ConfigureAwait(false); + var receiveResult = await webSocket.ReceiveAsync(new ArraySegment(buffer), CancellationToken.None).ConfigureAwait(false); if (receiveResult.MessageType != WebSocketMessageType.Text) { continue; } var ver = await App.GetService().GetVersionAsync().ConfigureAwait(false); - await webSocket.SendAsync(new ArraySegment(Encoding.UTF8.GetBytes(ver)), WebSocketMessageType.Text - , true, CancellationToken.None) + await webSocket.SendAsync(new ArraySegment(Encoding.UTF8.GetBytes(ver)), WebSocketMessageType.Text, true, CancellationToken.None) .ConfigureAwait(false); } - await webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None) - .ConfigureAwait(false); + await webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None).ConfigureAwait(false); } } \ No newline at end of file diff --git a/src/backend/NetAdmin.SysComponent.Host/NetAdmin.SysComponent.Host.csproj b/src/backend/NetAdmin.SysComponent.Host/NetAdmin.SysComponent.Host.csproj index ec0aa07b..a1b80281 100644 --- a/src/backend/NetAdmin.SysComponent.Host/NetAdmin.SysComponent.Host.csproj +++ b/src/backend/NetAdmin.SysComponent.Host/NetAdmin.SysComponent.Host.csproj @@ -1,4 +1,7 @@ + + DBTYPE_SQLITE + diff --git a/src/backend/NetAdmin.SysComponent.Host/Subscribers/EmailCodeSender.cs b/src/backend/NetAdmin.SysComponent.Host/Subscribers/EmailCodeSender.cs index 803f5593..5f9bef26 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Subscribers/EmailCodeSender.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Subscribers/EmailCodeSender.cs @@ -24,9 +24,7 @@ public sealed class EmailCodeSender(ILogger logger) : IEventSub // 发送... var verifyCodeService = App.GetService(); _ = await verifyCodeService.SetVerifyCodeStatusAsync( - verifyCodeCreatedEvent.Data.Adapt() with { - Status = VerifyCodeStatues.Sent - }) + verifyCodeCreatedEvent.Data.Adapt() with { Status = VerifyCodeStatues.Sent }) .ConfigureAwait(false); logger.Info($"{nameof(IVerifyCodeService)}.{nameof(IVerifyCodeService.SetVerifyCodeStatusAsync)} {Ln.已处理完毕}"); } diff --git a/src/backend/NetAdmin.SysComponent.Host/Subscribers/OperationLogger.cs b/src/backend/NetAdmin.SysComponent.Host/Subscribers/OperationLogger.cs index efe5b1b3..d2af8b71 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Subscribers/OperationLogger.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Subscribers/OperationLogger.cs @@ -1,5 +1,7 @@ +#if !DEBUG && DBTYPE_SQLSERVER +using System.Collections.Concurrent; +using NetAdmin.Domain.Dto.Sys.RequestLog; using NetAdmin.Domain.Events.Sys; -using NetAdmin.SysComponent.Application.Services.Sys.Dependency; namespace NetAdmin.SysComponent.Host.Subscribers; @@ -8,9 +10,7 @@ namespace NetAdmin.SysComponent.Host.Subscribers; /// public sealed class OperationLogger : IEventSubscriber { - #if !DEBUG && DBTYPE_SQLSERVER private static readonly ConcurrentQueue _requestLogs = new(); - #endif /// /// 保存请求日志到数据库 @@ -22,19 +22,14 @@ public sealed class OperationLogger : IEventSubscriber return; } - #if DEBUG || !DBTYPE_SQLSERVER - _ = await App.GetService().CreateAsync(operationEvent.Data).ConfigureAwait(false); - #else if (_requestLogs.Count > Numbers.REQUEST_LOG_BUFF_SIZE) { await WriteToDbAsync().ConfigureAwait(false); } else { _requestLogs.Enqueue(operationEvent.Data); } - #endif } - #if !DEBUG && DBTYPE_SQLSERVER private static async Task WriteToDbAsync() { var inserts = new List(Numbers.REQUEST_LOG_BUFF_SIZE); @@ -64,5 +59,29 @@ public sealed class OperationLogger : IEventSubscriber .ConfigureAwait(false); } } - #endif -} \ No newline at end of file +} +#else +using NetAdmin.Domain.Events.Sys; +using NetAdmin.SysComponent.Application.Services.Sys.Dependency; + +namespace NetAdmin.SysComponent.Host.Subscribers; + +/// +/// 操作日志记录 +/// +public sealed class OperationLogger : IEventSubscriber +{ + /// + /// 保存请求日志到数据库 + /// + [EventSubscribe(nameof(RequestLogEvent))] + public async Task OperationEventDbRecordAsync(EventHandlerExecutingContext context) + { + if (context.Source is not RequestLogEvent operationEvent) { + return; + } + + _ = await App.GetService().CreateAsync(operationEvent.Data).ConfigureAwait(false); + } +} +#endif \ No newline at end of file diff --git a/src/backend/NetAdmin.SysComponent.Host/Subscribers/SmsCodeSender.cs b/src/backend/NetAdmin.SysComponent.Host/Subscribers/SmsCodeSender.cs index cb84e6f3..c8fe5fda 100644 --- a/src/backend/NetAdmin.SysComponent.Host/Subscribers/SmsCodeSender.cs +++ b/src/backend/NetAdmin.SysComponent.Host/Subscribers/SmsCodeSender.cs @@ -24,9 +24,7 @@ public sealed class SmsCodeSender(ILogger logger) : IEventSubscri // 发送... var verifyCodeService = App.GetService(); _ = await verifyCodeService.SetVerifyCodeStatusAsync( - verifyCodeCreatedEvent.Data.Adapt() with { - Status = VerifyCodeStatues.Sent - }) + verifyCodeCreatedEvent.Data.Adapt() with { Status = VerifyCodeStatues.Sent }) .ConfigureAwait(false); logger.Info($"{nameof(IVerifyCodeService)}.{nameof(IVerifyCodeService.SetVerifyCodeStatusAsync)} {Ln.已处理完毕}"); } diff --git a/src/backend/NetAdmin.SysComponent.Tests/NetAdmin.SysComponent.Tests.csproj b/src/backend/NetAdmin.SysComponent.Tests/NetAdmin.SysComponent.Tests.csproj index 57479c69..d4095178 100644 --- a/src/backend/NetAdmin.SysComponent.Tests/NetAdmin.SysComponent.Tests.csproj +++ b/src/backend/NetAdmin.SysComponent.Tests/NetAdmin.SysComponent.Tests.csproj @@ -3,6 +3,6 @@ - + \ No newline at end of file diff --git a/src/backend/NetAdmin.SysComponent.Tests/Sys/DicTests.cs b/src/backend/NetAdmin.SysComponent.Tests/Sys/DicTests.cs index e00e844f..5aa7e59f 100644 --- a/src/backend/NetAdmin.SysComponent.Tests/Sys/DicTests.cs +++ b/src/backend/NetAdmin.SysComponent.Tests/Sys/DicTests.cs @@ -178,4 +178,14 @@ public class DicTests(WebTestApplicationFactory factory, ITestOutputHel Assert.True(rsp.IsSuccessStatusCode); return default; } + + /// + [InlineData(default)] + [Theory] + public async Task SetEnabledAsync(SetDicContentEnabledReq req) + { + var rsp = await PostJsonAsync(typeof(DicController), req); + Assert.True(rsp.IsSuccessStatusCode); + return default; + } } \ No newline at end of file diff --git a/src/backend/NetAdmin.SysComponent.Tests/Sys/JobTests.cs b/src/backend/NetAdmin.SysComponent.Tests/Sys/JobTests.cs index 0d2e55fe..f95b37d8 100644 --- a/src/backend/NetAdmin.SysComponent.Tests/Sys/JobTests.cs +++ b/src/backend/NetAdmin.SysComponent.Tests/Sys/JobTests.cs @@ -152,8 +152,7 @@ public class JobTests(WebTestApplicationFactory factory, ITestOutputHel /// [InlineData(default)] [Theory] - public async Task> GetRecordPieChartByHttpStatusCodeAsync( - QueryReq req) + public async Task> GetRecordPieChartByHttpStatusCodeAsync(QueryReq req) { var rsp = await PostJsonAsync(typeof(JobController), req); Assert.True(rsp.IsSuccessStatusCode); diff --git a/src/backend/NetAdmin.SysComponent.Tests/Sys/ToolsTests.cs b/src/backend/NetAdmin.SysComponent.Tests/Sys/ToolsTests.cs index 12b03c9d..113686ed 100644 --- a/src/backend/NetAdmin.SysComponent.Tests/Sys/ToolsTests.cs +++ b/src/backend/NetAdmin.SysComponent.Tests/Sys/ToolsTests.cs @@ -17,6 +17,18 @@ namespace NetAdmin.SysComponent.Tests.Sys; public class ToolsTests(WebTestApplicationFactory factory, ITestOutputHelper testOutputHelper) : WebApiTestBase(factory, testOutputHelper), IToolsModule { + /// + [InlineData(default)] + [Theory] + public string AesDecode(AesDecodeReq req) + { + #pragma warning disable xUnit1031 + var rsp = PostJsonAsync(typeof(ToolsController), req).Result; + #pragma warning restore xUnit1031 + Assert.True(rsp.IsSuccessStatusCode); + return default; + } + /// [InlineData(default)] [Theory] diff --git a/src/backend/NetAdmin.SysComponent.Tests/Sys/UserTests.cs b/src/backend/NetAdmin.SysComponent.Tests/Sys/UserTests.cs index 8e33e788..bd571de3 100644 --- a/src/backend/NetAdmin.SysComponent.Tests/Sys/UserTests.cs +++ b/src/backend/NetAdmin.SysComponent.Tests/Sys/UserTests.cs @@ -100,11 +100,7 @@ public class UserTests(WebTestApplicationFactory factory, ITestOutputHe public async Task EditAsync(EditUserReq req) { var rsp = await PostJsonAsync(typeof(UserController) - , new EditUserReq { - UserName = "test" - , RoleIds = [371729946431493] - , DeptId = 372119301627909 - }); + , new EditUserReq { UserName = "test", RoleIds = [371729946431493], DeptId = 372119301627909 }); Assert.True(rsp.IsSuccessStatusCode); return default; } @@ -158,8 +154,7 @@ public class UserTests(WebTestApplicationFactory factory, ITestOutputHe [TestPriority(101200)] public async Task LoginByPwdAsync(LoginByPwdReq req) { - var rsp = await PostJsonAsync(typeof(UserController) - , new LoginByPwdReq { Account = "root", Password = "1234qwer" }); + var rsp = await PostJsonAsync(typeof(UserController), new LoginByPwdReq { Account = "root", Password = "1234qwer" }); Assert.True(rsp.IsSuccessStatusCode); return default; } @@ -170,8 +165,7 @@ public class UserTests(WebTestApplicationFactory factory, ITestOutputHe [TestPriority(101300)] public async Task LoginBySmsAsync(LoginBySmsReq req) { - var rsp = await PostJsonAsync(typeof(UserController) - , new LoginBySmsReq { Code = "1234", DestDevice = "13838381438" }); + var rsp = await PostJsonAsync(typeof(UserController), new LoginBySmsReq { Code = "1234", DestDevice = "13838381438" }); Assert.True(rsp.IsSuccessStatusCode); return default; } diff --git a/src/backend/NetAdmin.Tests/NetAdmin.Tests.csproj b/src/backend/NetAdmin.Tests/NetAdmin.Tests.csproj index 61125458..1911d5a9 100644 --- a/src/backend/NetAdmin.Tests/NetAdmin.Tests.csproj +++ b/src/backend/NetAdmin.Tests/NetAdmin.Tests.csproj @@ -3,9 +3,9 @@ - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/src/backend/NetAdmin.Tests/PriorityOrderer.cs b/src/backend/NetAdmin.Tests/PriorityOrderer.cs index 940e988c..14ecca1f 100644 --- a/src/backend/NetAdmin.Tests/PriorityOrderer.cs +++ b/src/backend/NetAdmin.Tests/PriorityOrderer.cs @@ -20,8 +20,7 @@ public class PriorityOrderer : ITestCaseOrderer foreach (var testCase in testCases) { var priority = 0; - foreach (var attr in testCase.TestMethod.Method.GetCustomAttributes( - typeof(TestPriorityAttribute).AssemblyQualifiedName)) { + foreach (var attr in testCase.TestMethod.Method.GetCustomAttributes(typeof(TestPriorityAttribute).AssemblyQualifiedName)) { priority = attr.GetNamedArgument("Priority"); } @@ -29,8 +28,7 @@ public class PriorityOrderer : ITestCaseOrderer } foreach (var list in sortedMethods.Keys.Select(priority => sortedMethods[priority])) { - list.Sort((x, y) => StringComparer.OrdinalIgnoreCase.Compare( - x.TestMethod.Method.Name, y.TestMethod.Method.Name)); + list.Sort((x, y) => StringComparer.OrdinalIgnoreCase.Compare(x.TestMethod.Method.Name, y.TestMethod.Method.Name)); foreach (var testCase in list) { yield return testCase; } diff --git a/src/backend/NetAdmin.Tests/WebApiTestBase.cs b/src/backend/NetAdmin.Tests/WebApiTestBase.cs index 6aa1f00d..ef17f20c 100644 --- a/src/backend/NetAdmin.Tests/WebApiTestBase.cs +++ b/src/backend/NetAdmin.Tests/WebApiTestBase.cs @@ -22,14 +22,12 @@ public abstract class WebApiTestBase(WebTestApplicationFactory factory, IT /// /// Post请求 /// - protected async Task PostAsync(Type type, HttpContent content - , [CallerMemberName] string memberName = null) + protected async Task PostAsync(Type type, HttpContent content, [CallerMemberName] string memberName = null) { var client = factory.CreateClient(); await Authorization(client); - var ret = await client.PostAsync(type.GetMethod(memberName!).GetRoutePath(factory.Services), content) - .ConfigureAwait(false); + var ret = await client.PostAsync(type.GetMethod(memberName!).GetRoutePath(factory.Services), content).ConfigureAwait(false); testOutputHelper.WriteLine(await ret.Content.ReadAsStringAsync().ConfigureAwait(false)); return ret; } @@ -37,8 +35,7 @@ public abstract class WebApiTestBase(WebTestApplicationFactory factory, IT /// /// Post请求 /// - protected async Task PostJsonAsync(Type type, TRequest req = default - , [CallerMemberName] string memberName = null) + protected async Task PostJsonAsync(Type type, TRequest req = default, [CallerMemberName] string memberName = null) { return await PostAsync(type, req == null ? JsonContent.Create(new { }) : JsonContent.Create(req), memberName); } @@ -57,23 +54,19 @@ public abstract class WebApiTestBase(WebTestApplicationFactory factory, IT var req = new LoginByPwdReq // { Password - = Environment.GetEnvironmentVariable( - nameof(WebTestApplicationFactory.TEST_PASSWORD)) ?? + = Environment.GetEnvironmentVariable(nameof(WebTestApplicationFactory.TEST_PASSWORD)) ?? WebTestApplicationFactory.TEST_PASSWORD - , Account - = Environment.GetEnvironmentVariable(nameof(WebTestApplicationFactory.TEST_ACCOUNT)) ?? - WebTestApplicationFactory.TEST_ACCOUNT + , Account = Environment.GetEnvironmentVariable(nameof(WebTestApplicationFactory.TEST_ACCOUNT)) ?? + WebTestApplicationFactory.TEST_ACCOUNT }; var loginAccount = JsonContent.Create(req); var rspMsg = await client.PostAsync( // Chars.FLG_PATH_API_SYS_USER_LOGIN_BY_PWD, loginAccount) .ConfigureAwait(false); - var rspObj = (await rspMsg.Content.ReadAsStringAsync().ConfigureAwait(false)) - .ToObject>(); + var rspObj = (await rspMsg.Content.ReadAsStringAsync().ConfigureAwait(false)).ToObject>(); _accessToken = rspObj.Data.AccessToken; } - client.DefaultRequestHeaders.Authorization - = new AuthenticationHeaderValue(Chars.FLG_HTTP_HEADER_VALUE_AUTH_SCHEMA, _accessToken); + client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(Chars.FLG_HTTP_HEADER_VALUE_AUTH_SCHEMA, _accessToken); } } \ No newline at end of file diff --git a/src/frontend/admin/package.json b/src/frontend/admin/package.json index 4e7df5c0..4dd4f6e4 100644 --- a/src/frontend/admin/package.json +++ b/src/frontend/admin/package.json @@ -9,40 +9,40 @@ "prettier": "prettier --write ." }, "dependencies": { - "@element-plus/icons-vue": "^2.3.1", - "ace-builds": "^1.36.0", - "aieditor": "^1.0.14", - "axios": "^1.7.5", - "clipboard": "^2.0.11", - "core-js": "^3.38.1", - "cropperjs": "^1.6.2", - "crypto-js": "^4.2.0", - "echarts": "^5.5.1", - "element-plus": "^2.8.1", - "json-bigint": "^1.0.0", - "json5-to-table": "^0.1.8", - "markdown-it": "^14.1.0", - "markdown-it-emoji": "^3.0.0", - "nprogress": "^0.2.0", - "pinyin-match": "^1.2.5", - "qrcodejs2": "^0.0.2", - "sortablejs": "^1.15.2", - "vkbeautify": "^0.99.3", - "vue": "^3.4.38", - "vue-i18n": "^9.14.0", - "vue-router": "^4.4.3", - "vue3-ace-editor": "^2.2.4", - "vue3-json-viewer": "^2.2.2", - "vuedraggable": "^4.0.3", - "vuex": "^4.1.0" + "@element-plus/icons-vue": "2.3.1", + "ace-builds": "1.36.2", + "aieditor": "1.1.7", + "axios": "1.7.7", + "clipboard": "2.0.11", + "core-js": "3.38.1", + "cropperjs": "1.6.2", + "crypto-js": "4.2.0", + "echarts": "5.5.1", + "element-plus": "2.8.5", + "json-bigint": "1.0.0", + "json5-to-table": "0.1.8", + "markdown-it": "14.1.0", + "markdown-it-emoji": "3.0.0", + "nprogress": "0.2.0", + "pinyin-match": "1.2.6", + "qrcodejs2": "0.0.2", + "sortablejs": "1.15.3", + "vkbeautify": "0.99.3", + "vue": "3.5.12", + "vue-i18n": "10.0.4", + "vue-router": "4.4.5", + "vue3-ace-editor": "2.2.4", + "vue3-json-viewer": "2.2.2", + "vuedraggable": "4.0.3", + "vuex": "4.1.0" }, "devDependencies": { - "@vitejs/plugin-vue": "^5.1.2", - "prettier": "^3.3.3", - "prettier-plugin-organize-attributes": "^1.0.0", - "sass": "^1.77.8", - "terser": "^5.31.6", - "vite": "^5.4.2" + "@vitejs/plugin-vue": "5.1.4", + "prettier": "3.3.3", + "prettier-plugin-organize-attributes": "1.0.0", + "sass": "1.79.5", + "terser": "5.34.1", + "vite": "5.4.8" }, "browserslist": [ "> 1%", diff --git a/src/frontend/admin/src/api/controllers/probe.js b/src/frontend/admin/src/api/controllers/probe.js index 71341ee5..02a2bba7 100644 --- a/src/frontend/admin/src/api/controllers/probe.js +++ b/src/frontend/admin/src/api/controllers/probe.js @@ -5,6 +5,17 @@ import config from '@/config' import http from '@/utils/request' export default { + /** + * 退出程序 + */ + exit: { + url: `${config.API_URL}/api/probe/exit`, + name: `退出程序`, + get: async function (data = {}, config = {}) { + return await http.get(this.url, data, config) + }, + }, + /** * 健康检查 */ @@ -26,4 +37,26 @@ export default { return await http.get(this.url, data, config) }, }, + + /** + * 实例下线 + */ + offline: { + url: `${config.API_URL}/api/probe/offline`, + name: `实例下线`, + get: async function (data = {}, config = {}) { + return await http.get(this.url, data, config) + }, + }, + + /** + * 停止日志计数器 + */ + stopLogCounter: { + url: `${config.API_URL}/api/probe/stop.log.counter`, + name: `停止日志计数器`, + get: async function (data = {}, config = {}) { + return await http.get(this.url, data, config) + }, + }, } \ No newline at end of file diff --git a/src/frontend/admin/src/api/sys/dic.js b/src/frontend/admin/src/api/sys/dic.js index d823b244..81f3e7fb 100644 --- a/src/frontend/admin/src/api/sys/dic.js +++ b/src/frontend/admin/src/api/sys/dic.js @@ -180,4 +180,15 @@ export default { return await http.post(this.url, data, config) }, }, + + /** + * 启用/禁用字典内容 + */ + setEnabled: { + url: `${config.API_URL}/api/sys/dic/set.enabled`, + name: `启用/禁用字典内容`, + post: async function (data = {}, config = {}) { + return await http.post(this.url, data, config) + }, + }, } \ No newline at end of file diff --git a/src/frontend/admin/src/api/sys/tools.js b/src/frontend/admin/src/api/sys/tools.js index 1895deef..99fef67b 100644 --- a/src/frontend/admin/src/api/sys/tools.js +++ b/src/frontend/admin/src/api/sys/tools.js @@ -5,6 +5,17 @@ import config from '@/config' import http from '@/utils/request' export default { + /** + * Aes解密 + */ + aesDecode: { + url: `${config.API_URL}/api/sys/tools/aes.decode`, + name: `Aes解密`, + post: async function (data = {}, config = {}) { + return await http.post(this.url, data, config) + }, + }, + /** * 执行SQL语句 */ @@ -59,15 +70,4 @@ export default { return await http.post(this.url, data, config) }, }, - - /** - * 系统停机 - */ - shutdown: { - url: `${config.API_URL}/api/sys/tools/shutdown`, - name: `系统停机`, - get: async function (data = {}, config = {}) { - return await http.get(this.url, data, config) - }, - }, } \ No newline at end of file diff --git a/src/frontend/admin/src/components/naColId/index.vue b/src/frontend/admin/src/components/naColId/index.vue index cfedde4d..b4639330 100644 --- a/src/frontend/admin/src/components/naColId/index.vue +++ b/src/frontend/admin/src/components/naColId/index.vue @@ -2,7 +2,7 @@ @@ -26,8 +26,4 @@ export default { methods: {}, } - \ No newline at end of file + \ No newline at end of file diff --git a/src/frontend/admin/src/components/naColOperation/index.vue b/src/frontend/admin/src/components/naColOperation/index.vue index d51bb56e..29a08091 100644 --- a/src/frontend/admin/src/components/naColOperation/index.vue +++ b/src/frontend/admin/src/components/naColOperation/index.vue @@ -6,13 +6,21 @@ - {{ item.title }} + {{ item.title }} + @@ -32,13 +40,21 @@ export default { prop: { type: String }, }, data() { - return {} + return { + loading: false, + } }, mounted() {}, created() {}, components: {}, computed: {}, - methods: {}, + methods: { + async click(item, row, vue) { + this.loading = true + await item.click(row, vue) + this.loading = false + }, + }, } \ No newline at end of file diff --git a/src/frontend/admin/src/components/naIndicator/index.vue b/src/frontend/admin/src/components/naIndicator/index.vue index 02cfbfb4..f8245ca4 100644 --- a/src/frontend/admin/src/components/naIndicator/index.vue +++ b/src/frontend/admin/src/components/naIndicator/index.vue @@ -1,6 +1,6 @@