From 7ad26c37f6ab3c46af64d73c223019263942d721 Mon Sep 17 00:00:00 2001 From: smallchill Date: Wed, 6 Jan 2021 16:50:49 +0800 Subject: [PATCH 01/25] =?UTF-8?q?:tada:=203.0.0.RELEASE=20=E6=9E=B6?= =?UTF-8?q?=E6=9E=84=E5=8D=87=E7=BA=A7=E9=80=82=E9=85=8D=20SpringCloud=202?= =?UTF-8?q?020?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 +- blade-auth/pom.xml | 7 +- .../org/springblade/auth/AuthApplication.java | 6 +- blade-common/pom.xml | 2 +- blade-gateway/pom.xml | 20 ++-- .../gateway/GateWayApplication.java | 2 - .../config/ErrorHandlerConfiguration.java | 82 ---------------- .../handler/ErrorExceptionHandler.java | 98 +++++++++---------- .../gateway/provider/ResponseProvider.java | 2 +- .../src/main/resources/bootstrap.yml | 3 - blade-ops/blade-admin/pom.xml | 2 +- .../springblade/admin/AdminApplication.java | 4 +- blade-ops/blade-develop/pom.xml | 2 +- .../develop/DevelopApplication.java | 6 +- blade-ops/blade-report/pom.xml | 2 +- .../springblade/report/ReportApplication.java | 4 +- blade-ops/blade-resource/pom.xml | 2 +- .../resource/ResourceApplication.java | 4 +- blade-ops/blade-seata-order/pom.xml | 2 +- blade-ops/blade-seata-storage/pom.xml | 2 +- blade-ops/pom.xml | 2 +- blade-service-api/blade-demo-api/pom.xml | 2 +- blade-service-api/blade-desk-api/pom.xml | 2 +- blade-service-api/blade-dict-api/pom.xml | 2 +- blade-service-api/blade-system-api/pom.xml | 2 +- blade-service-api/blade-user-api/pom.xml | 2 +- blade-service-api/pom.xml | 4 +- blade-service/blade-demo/pom.xml | 2 +- .../com/example/demo/DemoApplication.java | 4 +- blade-service/blade-desk/pom.xml | 2 +- .../org/springblade/desk/DeskApplication.java | 6 +- .../src/test/java/BladeDemoTest.java | 8 +- blade-service/blade-log/pom.xml | 2 +- .../springblade/core/log/LogApplication.java | 6 +- blade-service/blade-system/pom.xml | 2 +- .../springblade/system/SystemApplication.java | 6 +- blade-service/blade-user/pom.xml | 2 +- .../system/user/UserApplication.java | 6 +- blade-service/pom.xml | 4 +- doc/nacos/blade.yaml | 29 +----- pom.xml | 12 +-- script/docker/.env | 2 +- script/docker/deploy.sh | 2 +- script/docker/docker-compose.yml | 9 -- 44 files changed, 118 insertions(+), 262 deletions(-) delete mode 100644 blade-gateway/src/main/java/org/springblade/gateway/config/ErrorHandlerConfiguration.java diff --git a/README.md b/README.md index b121f996..181f59ae 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@

- Downloads + Downloads Build Status Build Status - Coverage Status - Downloads + Coverage Status + Downloads Downloads @@ -22,7 +22,7 @@ * 极简封装了多租户底层,用更少的代码换来拓展性更强的SaaS多租户系统。 * 借鉴OAuth2,实现了多终端认证系统,可控制子系统的token权限互相隔离。 * 借鉴Security,封装了Secure模块,采用JWT做Token认证,可拓展集成Redis等细颗粒度控制方案。 -* 稳定生产了两年,经历了从Camden -> Hoxton的技术架构,也经历了从fat jar -> docker -> k8s + jenkins的部署架构 +* 稳定生产了三年,经历了从 Camden -> Hoxton -> 2020 的技术架构,也经历了从fat jar -> docker -> k8s + jenkins的部署架构。 * 项目分包明确,规范微服务的开发模式,使包与包之间的分工清晰。 ## 架构图 diff --git a/blade-auth/pom.xml b/blade-auth/pom.xml index 26c23552..d1383194 100644 --- a/blade-auth/pom.xml +++ b/blade-auth/pom.xml @@ -8,7 +8,7 @@ SpringBlade org.springblade - 2.8.0 + 3.0.0 blade-auth @@ -65,11 +65,6 @@ mysql-connector-java runtime - - diff --git a/blade-auth/src/main/java/org/springblade/auth/AuthApplication.java b/blade-auth/src/main/java/org/springblade/auth/AuthApplication.java index b9aa7123..9754cc9f 100644 --- a/blade-auth/src/main/java/org/springblade/auth/AuthApplication.java +++ b/blade-auth/src/main/java/org/springblade/auth/AuthApplication.java @@ -16,18 +16,16 @@ package org.springblade.auth; +import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; import org.springblade.core.launch.constant.AppConstant; -import org.springframework.cloud.client.SpringCloudApplication; -import org.springframework.cloud.openfeign.EnableFeignClients; /** * 用户认证服务器 * * @author Chill */ -@SpringCloudApplication -@EnableFeignClients(AppConstant.BASE_PACKAGES) +@BladeCloudApplication public class AuthApplication { public static void main(String[] args) { diff --git a/blade-common/pom.xml b/blade-common/pom.xml index 2e7fee04..90eb813d 100644 --- a/blade-common/pom.xml +++ b/blade-common/pom.xml @@ -5,7 +5,7 @@ SpringBlade org.springblade - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-gateway/pom.xml b/blade-gateway/pom.xml index 5e7b147c..0d34807f 100644 --- a/blade-gateway/pom.xml +++ b/blade-gateway/pom.xml @@ -5,7 +5,7 @@ SpringBlade org.springblade - 2.8.0 + 3.0.0 4.0.0 @@ -58,13 +58,17 @@ org.springframework.cloud - spring-cloud-starter-netflix-hystrix - - - commons-logging - commons-logging - - + spring-cloud-starter-loadbalancer + + + org.springframework.cloud + spring-cloud-starter-bootstrap + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + ${alibaba.cloud.version} diff --git a/blade-gateway/src/main/java/org/springblade/gateway/GateWayApplication.java b/blade-gateway/src/main/java/org/springblade/gateway/GateWayApplication.java index 28959390..74587082 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/GateWayApplication.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/GateWayApplication.java @@ -18,7 +18,6 @@ import org.springblade.core.launch.constant.AppConstant; import org.springblade.core.launch.BladeApplication; import org.springframework.cloud.client.SpringCloudApplication; -import org.springframework.cloud.netflix.hystrix.EnableHystrix; import org.springframework.scheduling.annotation.EnableScheduling; /** @@ -26,7 +25,6 @@ * * @author Chill */ -@EnableHystrix @EnableScheduling @SpringCloudApplication public class GateWayApplication { diff --git a/blade-gateway/src/main/java/org/springblade/gateway/config/ErrorHandlerConfiguration.java b/blade-gateway/src/main/java/org/springblade/gateway/config/ErrorHandlerConfiguration.java deleted file mode 100644 index 8caaccef..00000000 --- a/blade-gateway/src/main/java/org/springblade/gateway/config/ErrorHandlerConfiguration.java +++ /dev/null @@ -1,82 +0,0 @@ -/** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). - *

- * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - *

- * http://www.apache.org/licenses/LICENSE-2.0 - *

- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springblade.gateway.config; - - -import org.springblade.gateway.handler.ErrorExceptionHandler; -import org.springframework.beans.factory.ObjectProvider; -import org.springframework.boot.autoconfigure.web.ResourceProperties; -import org.springframework.boot.autoconfigure.web.ServerProperties; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.boot.web.reactive.error.ErrorAttributes; -import org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.Ordered; -import org.springframework.core.annotation.Order; -import org.springframework.http.codec.ServerCodecConfigurer; -import org.springframework.web.reactive.result.view.ViewResolver; - -import java.util.Collections; -import java.util.List; - -/** - * 异常处理配置类 - * - * @author Chill - */ -@Configuration -@EnableConfigurationProperties({ServerProperties.class, ResourceProperties.class}) -public class ErrorHandlerConfiguration { - - private final ServerProperties serverProperties; - - private final ApplicationContext applicationContext; - - private final ResourceProperties resourceProperties; - - private final List viewResolvers; - - private final ServerCodecConfigurer serverCodecConfigurer; - - public ErrorHandlerConfiguration(ServerProperties serverProperties, - ResourceProperties resourceProperties, - ObjectProvider> viewResolversProvider, - ServerCodecConfigurer serverCodecConfigurer, - ApplicationContext applicationContext) { - this.serverProperties = serverProperties; - this.applicationContext = applicationContext; - this.resourceProperties = resourceProperties; - this.viewResolvers = viewResolversProvider.getIfAvailable(Collections::emptyList); - this.serverCodecConfigurer = serverCodecConfigurer; - } - - @Bean - @Order(Ordered.HIGHEST_PRECEDENCE) - public ErrorWebExceptionHandler errorWebExceptionHandler(ErrorAttributes errorAttributes) { - ErrorExceptionHandler exceptionHandler = new ErrorExceptionHandler( - errorAttributes, - this.resourceProperties, - this.serverProperties.getError(), - this.applicationContext); - exceptionHandler.setViewResolvers(this.viewResolvers); - exceptionHandler.setMessageWriters(this.serverCodecConfigurer.getWriters()); - exceptionHandler.setMessageReaders(this.serverCodecConfigurer.getReaders()); - return exceptionHandler; - } - -} diff --git a/blade-gateway/src/main/java/org/springblade/gateway/handler/ErrorExceptionHandler.java b/blade-gateway/src/main/java/org/springblade/gateway/handler/ErrorExceptionHandler.java index 29afa0e4..5fe83406 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/handler/ErrorExceptionHandler.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/handler/ErrorExceptionHandler.java @@ -13,81 +13,73 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springblade.gateway.handler; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.RequiredArgsConstructor; import org.springblade.gateway.provider.ResponseProvider; -import org.springframework.boot.autoconfigure.web.ErrorProperties; -import org.springframework.boot.autoconfigure.web.ResourceProperties; -import org.springframework.boot.autoconfigure.web.reactive.error.DefaultErrorWebExceptionHandler; -import org.springframework.boot.web.reactive.error.ErrorAttributes; -import org.springframework.cloud.gateway.support.NotFoundException; -import org.springframework.context.ApplicationContext; -import org.springframework.web.reactive.function.server.*; +import org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.annotation.Order; +import org.springframework.core.io.buffer.DataBufferFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.http.server.reactive.ServerHttpResponse; +import org.springframework.lang.NonNull; import org.springframework.web.server.ResponseStatusException; - -import java.util.Map; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Mono; /** * 异常处理 * * @author Chill */ -public class ErrorExceptionHandler extends DefaultErrorWebExceptionHandler { +@Order(-1) +@Configuration +@RequiredArgsConstructor +public class ErrorExceptionHandler implements ErrorWebExceptionHandler { - public ErrorExceptionHandler(ErrorAttributes errorAttributes, ResourceProperties resourceProperties, - ErrorProperties errorProperties, ApplicationContext applicationContext) { - super(errorAttributes, resourceProperties, errorProperties, applicationContext); - } + private final ObjectMapper objectMapper; - /** - * 获取异常属性 - */ + @NonNull @Override - protected Map getErrorAttributes(ServerRequest request, boolean includeStackTrace) { - int code = 500; - Throwable error = super.getError(request); - if (error instanceof NotFoundException) { - code = 404; + public Mono handle(ServerWebExchange exchange, @NonNull Throwable ex) { + ServerHttpRequest request = exchange.getRequest(); + ServerHttpResponse response = exchange.getResponse(); + if (response.isCommitted()) { + return Mono.error(ex); } - if (error instanceof ResponseStatusException) { - code = ((ResponseStatusException) error).getStatus().value(); + response.getHeaders().setContentType(MediaType.APPLICATION_JSON); + if (ex instanceof ResponseStatusException) { + response.setStatusCode(((ResponseStatusException) ex).getStatus()); } - return ResponseProvider.response(code, this.buildMessage(request, error)); - } - - /** - * 指定响应处理方法为JSON处理的方法 - * - * @param errorAttributes - */ - @Override - protected RouterFunction getRoutingFunction(ErrorAttributes errorAttributes) { - return RouterFunctions.route(RequestPredicates.all(), this::renderErrorResponse); - } - - /** - * 根据code获取对应的HttpStatus - * - * @param errorAttributes - * @return - */ - @Override - protected int getHttpStatus(Map errorAttributes) { - return (int) errorAttributes.get("code"); + return response.writeWith(Mono.fromSupplier(() -> { + DataBufferFactory bufferFactory = response.bufferFactory(); + try { + HttpStatus status = HttpStatus.BAD_GATEWAY; + if (ex instanceof ResponseStatusException) { + status = ((ResponseStatusException) ex).getStatus(); + } + return bufferFactory.wrap(objectMapper.writeValueAsBytes(ResponseProvider.response(status.value(), buildMessage(request, ex)))); + } catch (JsonProcessingException e) { + e.printStackTrace(); + return bufferFactory.wrap(new byte[0]); + } + })); } /** * 构建异常信息 - * - * @param request - * @param ex - * @return */ - private String buildMessage(ServerRequest request, Throwable ex) { + private String buildMessage(ServerHttpRequest request, Throwable ex) { StringBuilder message = new StringBuilder("Failed to handle request ["); - message.append(request.methodName()); + message.append(request.getMethodValue()); message.append(" "); - message.append(request.uri()); + message.append(request.getURI()); message.append("]"); if (ex != null) { message.append(": "); diff --git a/blade-gateway/src/main/java/org/springblade/gateway/provider/ResponseProvider.java b/blade-gateway/src/main/java/org/springblade/gateway/provider/ResponseProvider.java index cf4eb429..ddcd65d9 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/provider/ResponseProvider.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/provider/ResponseProvider.java @@ -75,7 +75,7 @@ public static Map error(String message) { public static Map response(int status, String message) { Map map = new HashMap<>(16); map.put("code", status); - map.put("message", message); + map.put("msg", message); map.put("data", null); return map; } diff --git a/blade-gateway/src/main/resources/bootstrap.yml b/blade-gateway/src/main/resources/bootstrap.yml index e875240d..b3a18ab0 100644 --- a/blade-gateway/src/main/resources/bootstrap.yml +++ b/blade-gateway/src/main/resources/bootstrap.yml @@ -3,9 +3,6 @@ server: spring: cloud: - discovery: - reactive: - enabled: false gateway: discovery: locator: diff --git a/blade-ops/blade-admin/pom.xml b/blade-ops/blade-admin/pom.xml index 39eaf49a..0ef263de 100644 --- a/blade-ops/blade-admin/pom.xml +++ b/blade-ops/blade-admin/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-ops/blade-admin/src/main/java/org/springblade/admin/AdminApplication.java b/blade-ops/blade-admin/src/main/java/org/springblade/admin/AdminApplication.java index 4e4ece61..42c6633b 100644 --- a/blade-ops/blade-admin/src/main/java/org/springblade/admin/AdminApplication.java +++ b/blade-ops/blade-admin/src/main/java/org/springblade/admin/AdminApplication.java @@ -16,9 +16,9 @@ package org.springblade.admin; import de.codecentric.boot.admin.server.config.EnableAdminServer; +import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; import org.springblade.core.launch.constant.AppConstant; -import org.springframework.cloud.client.SpringCloudApplication; /** * admin启动器 @@ -26,7 +26,7 @@ * @author Chill */ @EnableAdminServer -@SpringCloudApplication +@BladeCloudApplication public class AdminApplication { public static void main(String[] args) { diff --git a/blade-ops/blade-develop/pom.xml b/blade-ops/blade-develop/pom.xml index ab6b6fbf..e0003b09 100644 --- a/blade-ops/blade-develop/pom.xml +++ b/blade-ops/blade-develop/pom.xml @@ -6,7 +6,7 @@ org.springblade blade-ops - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/DevelopApplication.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/DevelopApplication.java index 1c894544..57650e79 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/DevelopApplication.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/DevelopApplication.java @@ -15,18 +15,16 @@ */ package org.springblade.develop; +import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; import org.springblade.core.launch.constant.AppConstant; -import org.springframework.cloud.client.SpringCloudApplication; -import org.springframework.cloud.openfeign.EnableFeignClients; /** * Develop启动器 * * @author Chill */ -@SpringCloudApplication -@EnableFeignClients(AppConstant.BASE_PACKAGES) +@BladeCloudApplication public class DevelopApplication { public static void main(String[] args) { diff --git a/blade-ops/blade-report/pom.xml b/blade-ops/blade-report/pom.xml index b4e7e302..dcfa1991 100644 --- a/blade-ops/blade-report/pom.xml +++ b/blade-ops/blade-report/pom.xml @@ -5,7 +5,7 @@ org.springblade blade-ops - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-ops/blade-report/src/main/java/org/springblade/report/ReportApplication.java b/blade-ops/blade-report/src/main/java/org/springblade/report/ReportApplication.java index 696a2cd4..ca5c56c7 100644 --- a/blade-ops/blade-report/src/main/java/org/springblade/report/ReportApplication.java +++ b/blade-ops/blade-report/src/main/java/org/springblade/report/ReportApplication.java @@ -15,16 +15,16 @@ */ package org.springblade.report; +import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; import org.springblade.core.launch.constant.AppConstant; -import org.springframework.cloud.client.SpringCloudApplication; /** * UReport启动器 * * @author Chill */ -@SpringCloudApplication +@BladeCloudApplication public class ReportApplication { public static void main(String[] args) { diff --git a/blade-ops/blade-resource/pom.xml b/blade-ops/blade-resource/pom.xml index e31e735f..13c0530d 100644 --- a/blade-ops/blade-resource/pom.xml +++ b/blade-ops/blade-resource/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-ops/blade-resource/src/main/java/org/springblade/resource/ResourceApplication.java b/blade-ops/blade-resource/src/main/java/org/springblade/resource/ResourceApplication.java index c233c387..4e294f31 100644 --- a/blade-ops/blade-resource/src/main/java/org/springblade/resource/ResourceApplication.java +++ b/blade-ops/blade-resource/src/main/java/org/springblade/resource/ResourceApplication.java @@ -15,16 +15,16 @@ */ package org.springblade.resource; +import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; import org.springblade.core.launch.constant.AppConstant; -import org.springframework.cloud.client.SpringCloudApplication; /** * 资源启动器 * * @author Chill */ -@SpringCloudApplication +@BladeCloudApplication public class ResourceApplication { public static void main(String[] args) { diff --git a/blade-ops/blade-seata-order/pom.xml b/blade-ops/blade-seata-order/pom.xml index 401dad8f..70bf7819 100644 --- a/blade-ops/blade-seata-order/pom.xml +++ b/blade-ops/blade-seata-order/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-ops/blade-seata-storage/pom.xml b/blade-ops/blade-seata-storage/pom.xml index 9dead690..9475038b 100644 --- a/blade-ops/blade-seata-storage/pom.xml +++ b/blade-ops/blade-seata-storage/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-ops/pom.xml b/blade-ops/pom.xml index d1395992..fa2b1278 100644 --- a/blade-ops/pom.xml +++ b/blade-ops/pom.xml @@ -5,7 +5,7 @@ SpringBlade org.springblade - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-service-api/blade-demo-api/pom.xml b/blade-service-api/blade-demo-api/pom.xml index e3aa90e2..d4d3d249 100644 --- a/blade-service-api/blade-demo-api/pom.xml +++ b/blade-service-api/blade-demo-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-service-api/blade-desk-api/pom.xml b/blade-service-api/blade-desk-api/pom.xml index 6cf838b9..fdb3f7a1 100644 --- a/blade-service-api/blade-desk-api/pom.xml +++ b/blade-service-api/blade-desk-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-service-api/blade-dict-api/pom.xml b/blade-service-api/blade-dict-api/pom.xml index 50e5a9fa..aadb4e9b 100644 --- a/blade-service-api/blade-dict-api/pom.xml +++ b/blade-service-api/blade-dict-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-service-api/blade-system-api/pom.xml b/blade-service-api/blade-system-api/pom.xml index 6cf8c1af..b5ad699c 100644 --- a/blade-service-api/blade-system-api/pom.xml +++ b/blade-service-api/blade-system-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-service-api/blade-user-api/pom.xml b/blade-service-api/blade-user-api/pom.xml index 1a02abc0..623018cf 100644 --- a/blade-service-api/blade-user-api/pom.xml +++ b/blade-service-api/blade-user-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-service-api/pom.xml b/blade-service-api/pom.xml index 887d7423..9fa544d6 100644 --- a/blade-service-api/pom.xml +++ b/blade-service-api/pom.xml @@ -5,13 +5,13 @@ SpringBlade org.springblade - 2.8.0 + 3.0.0 4.0.0 blade-service-api ${project.artifactId} - 2.8.0 + 3.0.0 pom SpringBlade 微服务API集合 diff --git a/blade-service/blade-demo/pom.xml b/blade-service/blade-demo/pom.xml index 5b0e44cf..c398d314 100644 --- a/blade-service/blade-demo/pom.xml +++ b/blade-service/blade-demo/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-service/blade-demo/src/main/java/com/example/demo/DemoApplication.java b/blade-service/blade-demo/src/main/java/com/example/demo/DemoApplication.java index c8e7acd0..5193c78c 100644 --- a/blade-service/blade-demo/src/main/java/com/example/demo/DemoApplication.java +++ b/blade-service/blade-demo/src/main/java/com/example/demo/DemoApplication.java @@ -15,15 +15,15 @@ */ package com.example.demo; +import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; -import org.springframework.cloud.client.SpringCloudApplication; /** * Demo启动器 * * @author Chill */ -@SpringCloudApplication +@BladeCloudApplication public class DemoApplication { public static void main(String[] args) { diff --git a/blade-service/blade-desk/pom.xml b/blade-service/blade-desk/pom.xml index e0240bdd..af56f941 100644 --- a/blade-service/blade-desk/pom.xml +++ b/blade-service/blade-desk/pom.xml @@ -6,7 +6,7 @@ org.springblade blade-service - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/DeskApplication.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/DeskApplication.java index 2728d1cf..07489b7c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/DeskApplication.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/DeskApplication.java @@ -15,18 +15,16 @@ */ package org.springblade.desk; +import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; import org.springblade.core.launch.constant.AppConstant; -import org.springframework.cloud.client.SpringCloudApplication; -import org.springframework.cloud.openfeign.EnableFeignClients; /** * Desk启动器 * * @author Chill */ -@SpringCloudApplication -@EnableFeignClients(AppConstant.BASE_PACKAGES) +@BladeCloudApplication public class DeskApplication { public static void main(String[] args) { diff --git a/blade-service/blade-desk/src/test/java/BladeDemoTest.java b/blade-service/blade-desk/src/test/java/BladeDemoTest.java index be632a43..86ed5a3d 100644 --- a/blade-service/blade-desk/src/test/java/BladeDemoTest.java +++ b/blade-service/blade-desk/src/test/java/BladeDemoTest.java @@ -1,7 +1,7 @@ -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springblade.core.test.BladeBootTest; -import org.springblade.core.test.BladeSpringRunner; +import org.springblade.core.test.BladeSpringExtension; import org.springblade.desk.DeskApplication; import org.springblade.desk.service.INoticeService; import org.springframework.beans.factory.annotation.Autowired; @@ -12,7 +12,7 @@ * * @author Chill */ -@RunWith(BladeSpringRunner.class) +@ExtendWith(BladeSpringExtension.class) @SpringBootTest(classes = DeskApplication.class) @BladeBootTest(appName = "blade-desk", profile = "test", enableLoader = true) public class BladeDemoTest { diff --git a/blade-service/blade-log/pom.xml b/blade-service/blade-log/pom.xml index e87e923e..13ca12ea 100644 --- a/blade-service/blade-log/pom.xml +++ b/blade-service/blade-log/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/LogApplication.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/LogApplication.java index 3a486f38..0f42e9b4 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/LogApplication.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/LogApplication.java @@ -15,18 +15,16 @@ */ package org.springblade.core.log; +import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; import org.springblade.core.launch.constant.AppConstant; -import org.springframework.cloud.client.SpringCloudApplication; -import org.springframework.cloud.openfeign.EnableFeignClients; /** * 日志服务 * * @author Chill */ -@SpringCloudApplication -@EnableFeignClients(AppConstant.BASE_PACKAGES) +@BladeCloudApplication public class LogApplication { public static void main(String[] args) { diff --git a/blade-service/blade-system/pom.xml b/blade-service/blade-system/pom.xml index a2eb18d8..c3d7ac49 100644 --- a/blade-service/blade-system/pom.xml +++ b/blade-service/blade-system/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/SystemApplication.java b/blade-service/blade-system/src/main/java/org/springblade/system/SystemApplication.java index d1b30779..0ad19046 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/SystemApplication.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/SystemApplication.java @@ -15,17 +15,15 @@ */ package org.springblade.system; +import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; import org.springblade.core.launch.constant.AppConstant; -import org.springframework.cloud.client.SpringCloudApplication; -import org.springframework.cloud.openfeign.EnableFeignClients; /** * 系统模块启动器 * @author Chill */ -@SpringCloudApplication -@EnableFeignClients(AppConstant.BASE_PACKAGES) +@BladeCloudApplication public class SystemApplication { public static void main(String[] args) { diff --git a/blade-service/blade-user/pom.xml b/blade-service/blade-user/pom.xml index 4ade56b9..961c31c6 100644 --- a/blade-service/blade-user/pom.xml +++ b/blade-service/blade-user/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 2.8.0 + 3.0.0 4.0.0 diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/UserApplication.java b/blade-service/blade-user/src/main/java/org/springblade/system/user/UserApplication.java index 938a342e..9521cf71 100644 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/UserApplication.java +++ b/blade-service/blade-user/src/main/java/org/springblade/system/user/UserApplication.java @@ -15,18 +15,16 @@ */ package org.springblade.system.user; +import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; import org.springblade.core.launch.constant.AppConstant; -import org.springframework.cloud.client.SpringCloudApplication; -import org.springframework.cloud.openfeign.EnableFeignClients; /** * 用户启动器 * * @author Chill */ -@SpringCloudApplication -@EnableFeignClients(AppConstant.BASE_PACKAGES) +@BladeCloudApplication public class UserApplication { public static void main(String[] args) { diff --git a/blade-service/pom.xml b/blade-service/pom.xml index c7b531b4..9ffe13fa 100644 --- a/blade-service/pom.xml +++ b/blade-service/pom.xml @@ -7,12 +7,12 @@ org.springblade SpringBlade - 2.8.0 + 3.0.0 blade-service ${project.artifactId} - 2.8.0 + 3.0.0 pom SpringBlade 微服务集合 diff --git a/doc/nacos/blade.yaml b/doc/nacos/blade.yaml index fa39e71d..6f5228bb 100644 --- a/doc/nacos/blade.yaml +++ b/doc/nacos/blade.yaml @@ -23,40 +23,13 @@ spring: #feign配置 feign: - hystrix: + sentinel: enabled: true okhttp: enabled: true httpclient: enabled: false -#hystrix配置 -hystrix: - threadpool: - default: - coreSize: 300 - maxQueueSize: 1000 - queueSizeRejectionThreshold: 800 - command: - default: - execution: - isolation: - thread: - timeoutInMilliseconds: 5000 - -#ribbon配置 -ribbon: - #对当前实例的重试次数 - MaxAutoRetries: 1 - #切换实例的重试次数 - MaxAutoRetriesNextServer: 2 - #请求处理的超时时间 - ReadTimeout: 60000 - #请求连接的超时时间 - ConnectTimeout: 60000 - #对所有操作请求都进行重试 - OkToRetryOnAllOperations: true - #对外暴露端口 management: endpoints: diff --git a/pom.xml b/pom.xml index 67cb326f..a99cd441 100644 --- a/pom.xml +++ b/pom.xml @@ -5,12 +5,12 @@ org.springblade SpringBlade - 2.8.0 + 3.0.0 pom - 2.8.0 - 2.8.0 + 3.0.0 + 3.0.0 1.8 3.8.1 @@ -24,11 +24,11 @@ 2.2.6 1.2.5 2.2.3.RELEASE - 2.3.0 + 2.3.1 2.0.0.RELEASE - 2.2.11.RELEASE - Hoxton.SR8 + 2.4.1 + 2020.0.0 Cairo-SR8 diff --git a/script/docker/.env b/script/docker/.env index c83f8b08..fbe046ce 100644 --- a/script/docker/.env +++ b/script/docker/.env @@ -1,2 +1,2 @@ REGISTER=192.168.0.157/blade -TAG=2.8.0 +TAG=3.0.0 diff --git a/script/docker/deploy.sh b/script/docker/deploy.sh index db209536..e5e13545 100644 --- a/script/docker/deploy.sh +++ b/script/docker/deploy.sh @@ -42,7 +42,7 @@ base(){ #启动程序模块 modules(){ - docker-compose up -d blade-gateway1 blade-gateway2 blade-admin blade-zipkin blade-auth1 blade-auth2 blade-user blade-desk blade-system blade-log + docker-compose up -d blade-gateway1 blade-gateway2 blade-admin blade-auth1 blade-auth2 blade-user blade-desk blade-system blade-log } #关闭所有模块 diff --git a/script/docker/docker-compose.yml b/script/docker/docker-compose.yml index b6130cc8..c0e40d0a 100644 --- a/script/docker/docker-compose.yml +++ b/script/docker/docker-compose.yml @@ -71,15 +71,6 @@ services: networks: - blade_net - blade-zipkin: - image: "${REGISTER}/blade/blade-zipkin:${TAG}" - ports: - - 9411:9411 - privileged: true - restart: always - networks: - - blade_net - blade-gateway1: image: "${REGISTER}/blade/blade-gateway:${TAG}" privileged: true From 57882206d37b9bfbfc2ea8918ea30da055a4682d Mon Sep 17 00:00:00 2001 From: smallchill Date: Mon, 1 Feb 2021 12:49:12 +0800 Subject: [PATCH 02/25] =?UTF-8?q?:tada:=203.0.1.RELEASE=20=E6=9E=B6?= =?UTF-8?q?=E6=9E=84=E5=8D=87=E7=BA=A7=E9=80=82=E9=85=8D=20SpringCloud=202?= =?UTF-8?q?020.0.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 +- blade-auth/pom.xml | 2 +- blade-common/pom.xml | 2 +- .../common/launch/LauncherServiceImpl.java | 1 - blade-gateway/pom.xml | 29 +------ .../gateway/GateWayApplication.java | 8 +- .../config/RouterFunctionConfiguration.java | 25 +----- .../gateway/filter/AuthFilter.java | 6 +- .../handler/ErrorExceptionHandler.java | 4 + .../handler/SwaggerResourceHandler.java | 54 ------------- .../handler/SwaggerSecurityHandler.java | 51 ------------- .../gateway/handler/SwaggerUiHandler.java | 51 ------------- .../gateway/props/RouteProperties.java | 37 --------- .../gateway/provider/AuthProvider.java | 2 +- .../gateway/provider/SwaggerProvider.java | 59 -------------- .../src/main/resources/bootstrap.yml | 11 --- blade-ops/blade-admin/pom.xml | 2 +- blade-ops/blade-develop/pom.xml | 2 +- blade-ops/blade-report/pom.xml | 47 +++++++++++- blade-ops/blade-resource/pom.xml | 2 +- blade-ops/blade-seata-order/pom.xml | 2 +- blade-ops/blade-seata-storage/pom.xml | 2 +- blade-ops/blade-swagger/Dockerfile | 15 ++++ blade-ops/blade-swagger/pom.xml | 76 +++++++++++++++++++ .../swagger/SwaggerApplication.java | 29 +++---- .../src/main/resources/application.yml | 16 ++++ .../src/main/resources/banner.txt | 10 +++ blade-ops/pom.xml | 3 +- blade-service-api/blade-demo-api/pom.xml | 2 +- blade-service-api/blade-desk-api/pom.xml | 2 +- blade-service-api/blade-dict-api/pom.xml | 2 +- blade-service-api/blade-system-api/pom.xml | 2 +- blade-service-api/blade-user-api/pom.xml | 2 +- blade-service-api/pom.xml | 4 +- blade-service/blade-demo/pom.xml | 2 +- blade-service/blade-desk/pom.xml | 2 +- blade-service/blade-log/pom.xml | 2 +- blade-service/blade-system/pom.xml | 2 +- blade-service/blade-user/pom.xml | 2 +- blade-service/pom.xml | 4 +- doc/nacos/blade.yaml | 26 ++++++- doc/sql/blade/blade-update-2.7.3~2.8.0.sql | 32 -------- pom.xml | 16 ++-- script/docker/.env | 2 +- script/docker/deploy.sh | 3 +- script/docker/docker-compose.yml | 9 +++ 46 files changed, 255 insertions(+), 417 deletions(-) delete mode 100644 blade-gateway/src/main/java/org/springblade/gateway/handler/SwaggerResourceHandler.java delete mode 100644 blade-gateway/src/main/java/org/springblade/gateway/handler/SwaggerSecurityHandler.java delete mode 100644 blade-gateway/src/main/java/org/springblade/gateway/handler/SwaggerUiHandler.java delete mode 100644 blade-gateway/src/main/java/org/springblade/gateway/props/RouteProperties.java delete mode 100644 blade-gateway/src/main/java/org/springblade/gateway/provider/SwaggerProvider.java create mode 100644 blade-ops/blade-swagger/Dockerfile create mode 100644 blade-ops/blade-swagger/pom.xml rename blade-gateway/src/main/java/org/springblade/gateway/props/RouteResource.java => blade-ops/blade-swagger/src/main/java/org/springblade/swagger/SwaggerApplication.java (64%) create mode 100644 blade-ops/blade-swagger/src/main/resources/application.yml create mode 100644 blade-ops/blade-swagger/src/main/resources/banner.txt delete mode 100644 doc/sql/blade/blade-update-2.7.3~2.8.0.sql diff --git a/README.md b/README.md index 181f59ae..ff88481e 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@

- Downloads + Downloads Build Status Build Status Coverage Status - Downloads + Downloads Downloads @@ -70,12 +70,12 @@ SpringBlade ## 技术文档 * [SpringBlade开发手册一览](https://gitee.com/smallc/SpringBlade/wikis/SpringBlade开发手册) -* [常见问题集锦](https://sns.bladex.vip/article-14966.html) +* [SpringBlade常见问题集锦](https://sns.bladex.vip/article-14966.html) ## 项目地址 * 后端Gitee地址:[https://gitee.com/smallc/SpringBlade](https://gitee.com/smallc/SpringBlade) * 后端Github地址:[https://github.com/chillzhuang/SpringBlade](https://github.com/chillzhuang/SpringBlade) -* 后端SpringBoot版:[https://gitee.com/smallc/SpringBlade/tree/2.0-boot/](https://gitee.com/smallc/SpringBlade/tree/2.0-boot/) +* 后端SpringBoot版:[https://gitee.com/smallc/SpringBlade/tree/boot/](https://gitee.com/smallc/SpringBlade/tree/boot/) * 前端框架Sword(基于React):[https://gitee.com/smallc/Sword](https://gitee.com/smallc/Sword) * 前端框架Saber(基于Vue):[https://gitee.com/smallc/Saber](https://gitee.com/smallc/Saber) * 核心框架项目地址:[https://github.com/chillzhuang/blade-tool](https://github.com/chillzhuang/blade-tool) diff --git a/blade-auth/pom.xml b/blade-auth/pom.xml index d1383194..1f6d59f7 100644 --- a/blade-auth/pom.xml +++ b/blade-auth/pom.xml @@ -8,7 +8,7 @@ SpringBlade org.springblade - 3.0.0 + 3.0.1 blade-auth diff --git a/blade-common/pom.xml b/blade-common/pom.xml index 90eb813d..79dda3c1 100644 --- a/blade-common/pom.xml +++ b/blade-common/pom.xml @@ -5,7 +5,7 @@ SpringBlade org.springblade - 3.0.0 + 3.0.1 4.0.0 diff --git a/blade-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java b/blade-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java index 150c14cb..d9bd33ca 100644 --- a/blade-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java +++ b/blade-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java @@ -15,7 +15,6 @@ */ package org.springblade.common.launch; -import org.springblade.common.constant.CommonConstant; import org.springblade.common.constant.LauncherConstant; import org.springblade.core.launch.service.LauncherService; import org.springframework.boot.builder.SpringApplicationBuilder; diff --git a/blade-gateway/pom.xml b/blade-gateway/pom.xml index 0d34807f..3b481f17 100644 --- a/blade-gateway/pom.xml +++ b/blade-gateway/pom.xml @@ -5,7 +5,7 @@ SpringBlade org.springblade - 3.0.0 + 3.0.1 4.0.0 @@ -92,33 +92,6 @@ jjwt-jackson 0.11.2 - - - io.springfox - springfox-swagger2 - ${swagger.version} - - - io.swagger - swagger-models - - - - - io.swagger - swagger-models - ${swagger.models.version} - - - com.github.xiaoymin - knife4j-spring-ui - ${knife4j.version} - - diff --git a/blade-gateway/src/main/java/org/springblade/gateway/GateWayApplication.java b/blade-gateway/src/main/java/org/springblade/gateway/GateWayApplication.java index 74587082..9d2f66a3 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/GateWayApplication.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/GateWayApplication.java @@ -15,9 +15,10 @@ */ package org.springblade.gateway; -import org.springblade.core.launch.constant.AppConstant; import org.springblade.core.launch.BladeApplication; -import org.springframework.cloud.client.SpringCloudApplication; +import org.springblade.core.launch.constant.AppConstant; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.scheduling.annotation.EnableScheduling; /** @@ -26,7 +27,8 @@ * @author Chill */ @EnableScheduling -@SpringCloudApplication +@EnableDiscoveryClient +@SpringBootApplication public class GateWayApplication { public static void main(String[] args) { diff --git a/blade-gateway/src/main/java/org/springblade/gateway/config/RouterFunctionConfiguration.java b/blade-gateway/src/main/java/org/springblade/gateway/config/RouterFunctionConfiguration.java index ed519825..53a2b391 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/config/RouterFunctionConfiguration.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/config/RouterFunctionConfiguration.java @@ -18,18 +18,9 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springblade.gateway.handler.SwaggerResourceHandler; -import org.springblade.gateway.handler.SwaggerSecurityHandler; -import org.springblade.gateway.handler.SwaggerUiHandler; import org.springblade.gateway.props.AuthProperties; -import org.springblade.gateway.props.RouteProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.http.MediaType; -import org.springframework.web.reactive.function.server.RequestPredicates; -import org.springframework.web.reactive.function.server.RouterFunction; -import org.springframework.web.reactive.function.server.RouterFunctions; /** * 路由配置信息 @@ -39,21 +30,7 @@ @Slf4j @Configuration @AllArgsConstructor -@EnableConfigurationProperties({RouteProperties.class, AuthProperties.class}) +@EnableConfigurationProperties({AuthProperties.class}) public class RouterFunctionConfiguration { - private final SwaggerResourceHandler swaggerResourceHandler; - private final SwaggerSecurityHandler swaggerSecurityHandler; - private final SwaggerUiHandler swaggerUiHandler; - - @Bean - public RouterFunction routerFunction() { - return RouterFunctions.route(RequestPredicates.GET("/swagger-resources") - .and(RequestPredicates.accept(MediaType.ALL)), swaggerResourceHandler) - .andRoute(RequestPredicates.GET("/swagger-resources/configuration/ui") - .and(RequestPredicates.accept(MediaType.ALL)), swaggerUiHandler) - .andRoute(RequestPredicates.GET("/swagger-resources/configuration/security") - .and(RequestPredicates.accept(MediaType.ALL)), swaggerSecurityHandler); - } - } diff --git a/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java b/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java index 47adfaea..4de53bfe 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java @@ -15,12 +15,12 @@ */ package org.springblade.gateway.filter; +import com.alibaba.nacos.common.utils.StringUtils; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import io.jsonwebtoken.Claims; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; import org.springblade.gateway.props.AuthProperties; import org.springblade.gateway.provider.AuthProvider; import org.springblade.gateway.provider.ResponseProvider; @@ -47,8 +47,8 @@ @Component @AllArgsConstructor public class AuthFilter implements GlobalFilter, Ordered { - private AuthProperties authProperties; - private ObjectMapper objectMapper; + private final AuthProperties authProperties; + private final ObjectMapper objectMapper; @Override public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { diff --git a/blade-gateway/src/main/java/org/springblade/gateway/handler/ErrorExceptionHandler.java b/blade-gateway/src/main/java/org/springblade/gateway/handler/ErrorExceptionHandler.java index 5fe83406..ba0978ea 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/handler/ErrorExceptionHandler.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/handler/ErrorExceptionHandler.java @@ -76,6 +76,10 @@ public Mono handle(ServerWebExchange exchange, @NonNull Throwable ex) { * 构建异常信息 */ private String buildMessage(ServerHttpRequest request, Throwable ex) { + String uri = request.getURI().toString(); + if (uri.endsWith("doc.html")) { + return "[Swagger聚合网关] 已迁移至 [blade-swagger] 服务,请开启 [blade-swagger] 服务并访问 [http://127.0.0.1:18000/doc.html]"; + } StringBuilder message = new StringBuilder("Failed to handle request ["); message.append(request.getMethodValue()); message.append(" "); diff --git a/blade-gateway/src/main/java/org/springblade/gateway/handler/SwaggerResourceHandler.java b/blade-gateway/src/main/java/org/springblade/gateway/handler/SwaggerResourceHandler.java deleted file mode 100644 index 2885b31f..00000000 --- a/blade-gateway/src/main/java/org/springblade/gateway/handler/SwaggerResourceHandler.java +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). - *

- * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - *

- * http://www.apache.org/licenses/LICENSE-2.0 - *

- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springblade.gateway.handler; - -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.stereotype.Component; -import org.springframework.web.reactive.function.BodyInserters; -import org.springframework.web.reactive.function.server.HandlerFunction; -import org.springframework.web.reactive.function.server.ServerRequest; -import org.springframework.web.reactive.function.server.ServerResponse; -import reactor.core.publisher.Mono; -import springfox.documentation.swagger.web.SwaggerResourcesProvider; - -/** - * SwaggerResourceHandler - * - * @author lengleng - */ -@Slf4j -@Component -@RequiredArgsConstructor -public class SwaggerResourceHandler implements HandlerFunction { - private final SwaggerResourcesProvider swaggerResources; - - /** - * Handle the given request. - * - * @param request the request to handler - * @return the response - */ - @Override - public Mono handle(ServerRequest request) { - return ServerResponse.status(HttpStatus.OK) - .contentType(MediaType.APPLICATION_JSON) - .body(BodyInserters.fromValue(swaggerResources.get())); - } -} diff --git a/blade-gateway/src/main/java/org/springblade/gateway/handler/SwaggerSecurityHandler.java b/blade-gateway/src/main/java/org/springblade/gateway/handler/SwaggerSecurityHandler.java deleted file mode 100644 index d30f477f..00000000 --- a/blade-gateway/src/main/java/org/springblade/gateway/handler/SwaggerSecurityHandler.java +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). - *

- * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - *

- * http://www.apache.org/licenses/LICENSE-2.0 - *

- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springblade.gateway.handler; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.stereotype.Component; -import org.springframework.web.reactive.function.BodyInserters; -import org.springframework.web.reactive.function.server.HandlerFunction; -import org.springframework.web.reactive.function.server.ServerRequest; -import org.springframework.web.reactive.function.server.ServerResponse; -import reactor.core.publisher.Mono; -import springfox.documentation.swagger.web.SecurityConfigurationBuilder; - -/** - * SwaggerSecurityHandler - * - * @author lengleng - */ -@Slf4j -@Component -public class SwaggerSecurityHandler implements HandlerFunction { - - /** - * Handle the given request. - * - * @param request the request to handler - * @return the response - */ - @Override - public Mono handle(ServerRequest request) { - return ServerResponse.status(HttpStatus.OK) - .contentType(MediaType.APPLICATION_JSON) - .body(BodyInserters.fromValue(SecurityConfigurationBuilder.builder().build())); - } -} diff --git a/blade-gateway/src/main/java/org/springblade/gateway/handler/SwaggerUiHandler.java b/blade-gateway/src/main/java/org/springblade/gateway/handler/SwaggerUiHandler.java deleted file mode 100644 index 8bb78af1..00000000 --- a/blade-gateway/src/main/java/org/springblade/gateway/handler/SwaggerUiHandler.java +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). - *

- * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - *

- * http://www.apache.org/licenses/LICENSE-2.0 - *

- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springblade.gateway.handler; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.stereotype.Component; -import org.springframework.web.reactive.function.BodyInserters; -import org.springframework.web.reactive.function.server.HandlerFunction; -import org.springframework.web.reactive.function.server.ServerRequest; -import org.springframework.web.reactive.function.server.ServerResponse; -import reactor.core.publisher.Mono; -import springfox.documentation.swagger.web.UiConfigurationBuilder; - -/** - * SwaggerUiHandler - * - * @author lengleng - */ -@Slf4j -@Component -public class SwaggerUiHandler implements HandlerFunction { - - /** - * Handle the given request. - * - * @param request the request to handler - * @return the response - */ - @Override - public Mono handle(ServerRequest request) { - return ServerResponse.status(HttpStatus.OK) - .contentType(MediaType.APPLICATION_JSON) - .body(BodyInserters.fromValue(UiConfigurationBuilder.builder().build())); - } -} diff --git a/blade-gateway/src/main/java/org/springblade/gateway/props/RouteProperties.java b/blade-gateway/src/main/java/org/springblade/gateway/props/RouteProperties.java deleted file mode 100644 index 9b7aa5d6..00000000 --- a/blade-gateway/src/main/java/org/springblade/gateway/props/RouteProperties.java +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). - *

- * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - *

- * http://www.apache.org/licenses/LICENSE-2.0 - *

- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springblade.gateway.props; - -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.cloud.context.config.annotation.RefreshScope; - -import java.util.ArrayList; -import java.util.List; - -/** - * 路由配置类 - * - * @author Chill - */ -@Data -@RefreshScope -@ConfigurationProperties("blade.document") -public class RouteProperties { - - private final List resources = new ArrayList<>(); - -} diff --git a/blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java b/blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java index 5be38628..a107e797 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java @@ -30,7 +30,7 @@ public class AuthProvider { public static String TARGET = "/**"; public static String REPLACEMENT = ""; public static String AUTH_KEY = TokenConstant.HEADER; - private static List defaultSkipUrl = new ArrayList<>(); + private static final List defaultSkipUrl = new ArrayList<>(); static { defaultSkipUrl.add("/example"); diff --git a/blade-gateway/src/main/java/org/springblade/gateway/provider/SwaggerProvider.java b/blade-gateway/src/main/java/org/springblade/gateway/provider/SwaggerProvider.java deleted file mode 100644 index c4700f2e..00000000 --- a/blade-gateway/src/main/java/org/springblade/gateway/provider/SwaggerProvider.java +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). - *

- * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - *

- * http://www.apache.org/licenses/LICENSE-2.0 - *

- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springblade.gateway.provider; - -import lombok.AllArgsConstructor; -import org.springblade.gateway.props.RouteProperties; -import org.springblade.gateway.props.RouteResource; -import org.springframework.context.annotation.Primary; -import org.springframework.stereotype.Component; -import springfox.documentation.swagger.web.SwaggerResource; -import springfox.documentation.swagger.web.SwaggerResourcesProvider; - -import java.util.ArrayList; -import java.util.List; - -/** - * 聚合接口文档注册 - * - * @author Chill - */ -@Primary -@Component -@AllArgsConstructor -public class SwaggerProvider implements SwaggerResourcesProvider { - private static final String API_URI = "/v2/api-docs"; - - private RouteProperties routeProperties; - - @Override - public List get() { - List resources = new ArrayList<>(); - List routeResources = routeProperties.getResources(); - routeResources.forEach(routeResource -> resources.add(swaggerResource(routeResource))); - return resources; - } - - private SwaggerResource swaggerResource(RouteResource routeResource) { - SwaggerResource swaggerResource = new SwaggerResource(); - swaggerResource.setName(routeResource.getName()); - swaggerResource.setLocation(routeResource.getLocation().concat(API_URI)); - swaggerResource.setSwaggerVersion(routeResource.getVersion()); - return swaggerResource; - } - -} diff --git a/blade-gateway/src/main/resources/bootstrap.yml b/blade-gateway/src/main/resources/bootstrap.yml index b3a18ab0..4172f5d6 100644 --- a/blade-gateway/src/main/resources/bootstrap.yml +++ b/blade-gateway/src/main/resources/bootstrap.yml @@ -11,15 +11,4 @@ spring: retry: enabled: true -# 聚合文档配置 -blade: - document: - resources: - - name: 授权模块 - location: /blade-auth - - name: 工作台模块 - location: /blade-desk - - name: 系统模块 - location: /blade-system - diff --git a/blade-ops/blade-admin/pom.xml b/blade-ops/blade-admin/pom.xml index 0ef263de..03113ae7 100644 --- a/blade-ops/blade-admin/pom.xml +++ b/blade-ops/blade-admin/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.0 + 3.0.1 4.0.0 diff --git a/blade-ops/blade-develop/pom.xml b/blade-ops/blade-develop/pom.xml index e0003b09..b9a752a5 100644 --- a/blade-ops/blade-develop/pom.xml +++ b/blade-ops/blade-develop/pom.xml @@ -6,7 +6,7 @@ org.springblade blade-ops - 3.0.0 + 3.0.1 4.0.0 diff --git a/blade-ops/blade-report/pom.xml b/blade-ops/blade-report/pom.xml index dcfa1991..018a22f7 100644 --- a/blade-ops/blade-report/pom.xml +++ b/blade-ops/blade-report/pom.xml @@ -5,7 +5,7 @@ org.springblade blade-ops - 3.0.0 + 3.0.1 4.0.0 @@ -34,4 +34,49 @@ + + + + com.spotify + docker-maven-plugin + ${docker.plugin.version} + + ${docker.registry.url}/blade/${project.artifactId}:${project.version} + ${project.basedir} + ${docker.registry.host} + + + / + ${project.build.directory} + ${project.build.finalName}.jar + + + ${docker.registry.url} + ${docker.registry.url} + true + + + + org.apache.maven.plugins + maven-antrun-plugin + + + package + + run + + + + + + + + + + + + + diff --git a/blade-ops/blade-resource/pom.xml b/blade-ops/blade-resource/pom.xml index 13c0530d..db4d541a 100644 --- a/blade-ops/blade-resource/pom.xml +++ b/blade-ops/blade-resource/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.0 + 3.0.1 4.0.0 diff --git a/blade-ops/blade-seata-order/pom.xml b/blade-ops/blade-seata-order/pom.xml index 70bf7819..21a20c8b 100644 --- a/blade-ops/blade-seata-order/pom.xml +++ b/blade-ops/blade-seata-order/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.0 + 3.0.1 4.0.0 diff --git a/blade-ops/blade-seata-storage/pom.xml b/blade-ops/blade-seata-storage/pom.xml index 9475038b..b2f6696e 100644 --- a/blade-ops/blade-seata-storage/pom.xml +++ b/blade-ops/blade-seata-storage/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.0 + 3.0.1 4.0.0 diff --git a/blade-ops/blade-swagger/Dockerfile b/blade-ops/blade-swagger/Dockerfile new file mode 100644 index 00000000..9692c6d4 --- /dev/null +++ b/blade-ops/blade-swagger/Dockerfile @@ -0,0 +1,15 @@ +FROM anapsix/alpine-java:8_server-jre_unlimited + +MAINTAINER smallchill@163.com + +RUN mkdir -p /blade/swagger + +WORKDIR /blade/swagger + +EXPOSE 18000 + +ADD ./target/blade-swagger.jar ./app.jar + +ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] + +CMD ["--spring.profiles.active=test"] diff --git a/blade-ops/blade-swagger/pom.xml b/blade-ops/blade-swagger/pom.xml new file mode 100644 index 00000000..71dcad33 --- /dev/null +++ b/blade-ops/blade-swagger/pom.xml @@ -0,0 +1,76 @@ + + + + blade-ops + org.springblade + 3.0.1 + + 4.0.0 + + blade-swagger + ${project.artifactId} + ${blade.project.version} + jar + + + + org.springblade + blade-core-launch + ${blade.tool.version} + + + com.github.xiaoymin + knife4j-aggregation-spring-boot-starter + ${knife4j.version} + + + + + + + com.spotify + docker-maven-plugin + ${docker.plugin.version} + + ${docker.registry.url}/blade/${project.artifactId}:${project.version} + ${project.basedir} + ${docker.registry.host} + + + / + ${project.build.directory} + ${project.build.finalName}.jar + + + ${docker.registry.url} + ${docker.registry.url} + true + + + + org.apache.maven.plugins + maven-antrun-plugin + + + package + + run + + + + + + + + + + + + + + + diff --git a/blade-gateway/src/main/java/org/springblade/gateway/props/RouteResource.java b/blade-ops/blade-swagger/src/main/java/org/springblade/swagger/SwaggerApplication.java similarity index 64% rename from blade-gateway/src/main/java/org/springblade/gateway/props/RouteResource.java rename to blade-ops/blade-swagger/src/main/java/org/springblade/swagger/SwaggerApplication.java index a279a400..4dd1c7dc 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/props/RouteResource.java +++ b/blade-ops/blade-swagger/src/main/java/org/springblade/swagger/SwaggerApplication.java @@ -13,32 +13,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springblade.gateway.props; +package org.springblade.swagger; -import lombok.Data; -import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.launch.BladeApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; /** - * Swagger聚合文档属性 + * swagger聚合启动器 * * @author Chill */ -@Data -public class RouteResource { +@SpringBootApplication +public class SwaggerApplication { - /** - * 文档名 - */ - private String name; - - /** - * 文档所在服务地址 - */ - private String location; - - /** - * 文档版本 - */ - private String version = AppConstant.APPLICATION_VERSION; + public static void main(String[] args) { + BladeApplication.run("blade-swagger", SwaggerApplication.class, args); + } } diff --git a/blade-ops/blade-swagger/src/main/resources/application.yml b/blade-ops/blade-swagger/src/main/resources/application.yml new file mode 100644 index 00000000..78296a63 --- /dev/null +++ b/blade-ops/blade-swagger/src/main/resources/application.yml @@ -0,0 +1,16 @@ +server: + port: 18000 +knife4j: + enableAggregation: true + cloud: + enable: true + routes: + - name: 授权模块 + uri: 127.0.0.1 + location: /blade-auth/v2/api-docs + - name: 工作台模块 + uri: 127.0.0.1 + location: /blade-desk/v2/api-docs + - name: 系统模块 + uri: 127.0.0.1 + location: /blade-system/v2/api-docs diff --git a/blade-ops/blade-swagger/src/main/resources/banner.txt b/blade-ops/blade-swagger/src/main/resources/banner.txt new file mode 100644 index 00000000..cbd02807 --- /dev/null +++ b/blade-ops/blade-swagger/src/main/resources/banner.txt @@ -0,0 +1,10 @@ +${AnsiColor.BRIGHT_CYAN} _____ _ ${AnsiColor.BLUE} ______ _ _ +${AnsiColor.BRIGHT_CYAN}/ ___| (_) ${AnsiColor.BLUE} | ___ \| | | | +${AnsiColor.BRIGHT_CYAN}\ `--. _ __ _ __ _ _ __ __ _ ${AnsiColor.BLUE} | |_/ /| | __ _ __| | ___ +${AnsiColor.BRIGHT_CYAN} `--. \| '_ \ | '__|| || '_ \ / _` | ${AnsiColor.BLUE} | ___ \| | / _` | / _` | / _ \ +${AnsiColor.BRIGHT_CYAN}/\__/ /| |_) || | | || | | || (_| | ${AnsiColor.BLUE} | |_/ /| || (_| || (_| || __/ +${AnsiColor.BRIGHT_CYAN}\____/ | .__/ |_| |_||_| |_| \__, | ${AnsiColor.BLUE} \____/ |_| \__,_| \__,_| \___| +${AnsiColor.BRIGHT_CYAN} | | __/ | +${AnsiColor.BRIGHT_CYAN} |_| |___/ + +${AnsiColor.BLUE}:: SpringBlade :: ${spring.application.name}:${AnsiColor.RED}${blade.env}${AnsiColor.BLUE} :: Running SpringBoot ${spring-boot.version} :: ${AnsiColor.BRIGHT_BLACK} diff --git a/blade-ops/pom.xml b/blade-ops/pom.xml index fa2b1278..25c21b39 100644 --- a/blade-ops/pom.xml +++ b/blade-ops/pom.xml @@ -5,7 +5,7 @@ SpringBlade org.springblade - 3.0.0 + 3.0.1 4.0.0 @@ -18,6 +18,7 @@ blade-resource blade-seata-order blade-seata-storage + blade-swagger diff --git a/blade-service-api/blade-demo-api/pom.xml b/blade-service-api/blade-demo-api/pom.xml index d4d3d249..1492d692 100644 --- a/blade-service-api/blade-demo-api/pom.xml +++ b/blade-service-api/blade-demo-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.0 + 3.0.1 4.0.0 diff --git a/blade-service-api/blade-desk-api/pom.xml b/blade-service-api/blade-desk-api/pom.xml index fdb3f7a1..80e7d33b 100644 --- a/blade-service-api/blade-desk-api/pom.xml +++ b/blade-service-api/blade-desk-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.0 + 3.0.1 4.0.0 diff --git a/blade-service-api/blade-dict-api/pom.xml b/blade-service-api/blade-dict-api/pom.xml index aadb4e9b..a32f3731 100644 --- a/blade-service-api/blade-dict-api/pom.xml +++ b/blade-service-api/blade-dict-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.0 + 3.0.1 4.0.0 diff --git a/blade-service-api/blade-system-api/pom.xml b/blade-service-api/blade-system-api/pom.xml index b5ad699c..fa14a6fd 100644 --- a/blade-service-api/blade-system-api/pom.xml +++ b/blade-service-api/blade-system-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.0 + 3.0.1 4.0.0 diff --git a/blade-service-api/blade-user-api/pom.xml b/blade-service-api/blade-user-api/pom.xml index 623018cf..e9bd58ac 100644 --- a/blade-service-api/blade-user-api/pom.xml +++ b/blade-service-api/blade-user-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.0 + 3.0.1 4.0.0 diff --git a/blade-service-api/pom.xml b/blade-service-api/pom.xml index 9fa544d6..d910c514 100644 --- a/blade-service-api/pom.xml +++ b/blade-service-api/pom.xml @@ -5,13 +5,13 @@ SpringBlade org.springblade - 3.0.0 + 3.0.1 4.0.0 blade-service-api ${project.artifactId} - 3.0.0 + 3.0.1 pom SpringBlade 微服务API集合 diff --git a/blade-service/blade-demo/pom.xml b/blade-service/blade-demo/pom.xml index c398d314..f82ae396 100644 --- a/blade-service/blade-demo/pom.xml +++ b/blade-service/blade-demo/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.0.0 + 3.0.1 4.0.0 diff --git a/blade-service/blade-desk/pom.xml b/blade-service/blade-desk/pom.xml index af56f941..50f5bde2 100644 --- a/blade-service/blade-desk/pom.xml +++ b/blade-service/blade-desk/pom.xml @@ -6,7 +6,7 @@ org.springblade blade-service - 3.0.0 + 3.0.1 4.0.0 diff --git a/blade-service/blade-log/pom.xml b/blade-service/blade-log/pom.xml index 13ca12ea..cb03b4a7 100644 --- a/blade-service/blade-log/pom.xml +++ b/blade-service/blade-log/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.0.0 + 3.0.1 4.0.0 diff --git a/blade-service/blade-system/pom.xml b/blade-service/blade-system/pom.xml index c3d7ac49..35f0799a 100644 --- a/blade-service/blade-system/pom.xml +++ b/blade-service/blade-system/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.0.0 + 3.0.1 4.0.0 diff --git a/blade-service/blade-user/pom.xml b/blade-service/blade-user/pom.xml index 961c31c6..9f4c17c9 100644 --- a/blade-service/blade-user/pom.xml +++ b/blade-service/blade-user/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.0.0 + 3.0.1 4.0.0 diff --git a/blade-service/pom.xml b/blade-service/pom.xml index 9ffe13fa..37f1008c 100644 --- a/blade-service/pom.xml +++ b/blade-service/pom.xml @@ -7,12 +7,12 @@ org.springblade SpringBlade - 3.0.0 + 3.0.1 blade-service ${project.artifactId} - 3.0.0 + 3.0.1 pom SpringBlade 微服务集合 diff --git a/doc/nacos/blade.yaml b/doc/nacos/blade.yaml index 6f5228bb..2ad85be0 100644 --- a/doc/nacos/blade.yaml +++ b/doc/nacos/blade.yaml @@ -1,14 +1,16 @@ #服务器配置 server: undertow: - # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 - io-threads: 4 - # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载 - worker-threads: 20 # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理 buffer-size: 1024 # 是否分配的直接内存 direct-buffers: true + # 线程配置 + threads: + # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 + io: 16 + # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载 + worker: 400 #spring配置 spring: @@ -59,6 +61,22 @@ knife4j: enableFilterMultipartApis: false enableFilterMultipartApiMethodType: POST language: zh-CN + enableFooter: false + enableFooterCustom: true + footerCustomContent: Copyright © 2021 SpringBlade All Rights Reserved + +#swagger配置信息 +swagger: + title: SpringBlade 接口文档系统 + description: SpringBlade 接口文档系统 + version: 3.0.1 + license: Powered By SpringBlade + licenseUrl: https://bladex.vip + terms-of-service-url: https://bladex.vip + contact: + name: smallchill + email: smallchill@163.com + url: https://gitee.com/smallc #blade配置 blade: diff --git a/doc/sql/blade/blade-update-2.7.3~2.8.0.sql b/doc/sql/blade/blade-update-2.7.3~2.8.0.sql deleted file mode 100644 index 220d7a5b..00000000 --- a/doc/sql/blade/blade-update-2.7.3~2.8.0.sql +++ /dev/null @@ -1,32 +0,0 @@ --- ---------------------------- --- 报表文件表 --- ---------------------------- -CREATE TABLE `blade_report_file` ( - `id` bigint(64) NOT NULL COMMENT '主键', - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '文件名', - `content` mediumblob NULL COMMENT '文件内容', - `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', - `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', - `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', - PRIMARY KEY (`id`) -) COMMENT = '报表文件表'; - --- ---------------------------- --- 插入报表文件表菜单数据 --- ---------------------------- -INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) -VALUES ('1164733399669962301', '0', 'report', '报表管理', 'menu', '/report', 'iconfont icon-shujuzhanshi2', 5, 1, 0, 1, NULL, 0); -INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) -VALUES ('1164733399669962302', '1164733399669962301', 'report_setting', '报表配置', 'menu', 'http://localhost:8108/ureport/designer', 'iconfont icon-rizhi', 1, 1, 0, 1, NULL, 0); -INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) -VALUES ('1164733399669962303', '1164733399669962301', 'report_list', '报表列表', 'menu', '/report/reportlist', 'iconfont icon-biaodan', 2, 1, 0, 1, NULL, 0); - --- ---------------------------- --- 增加报表文件表菜单权限数据 --- ---------------------------- -INSERT INTO `blade_role_menu`(`id`,`menu_id`,`role_id`) -VALUES ('1161272893875228001', '1164733399669962301', '1123598816738675201'); -INSERT INTO `blade_role_menu`(`id`,`menu_id`,`role_id`) -VALUES ('1161272893875228002', '1164733399669962302', '1123598816738675201'); -INSERT INTO `blade_role_menu`(`id`,`menu_id`,`role_id`) -VALUES ('1161272893875228003', '1164733399669962303', '1123598816738675201'); diff --git a/pom.xml b/pom.xml index a99cd441..11bd8816 100644 --- a/pom.xml +++ b/pom.xml @@ -5,30 +5,28 @@ org.springblade SpringBlade - 3.0.0 + 3.0.1 pom - 3.0.0 - 3.0.0 + 3.0.1 + 3.0.1 1.8 3.8.1 2.10.5 1.6.2 - 2.2.0.RELEASE - 2.0.6 - 3.4.0 + 2.0.8 1.6.0 1.6.2 2.2.6 1.2.5 - 2.2.3.RELEASE + 2.2.5.RC2 2.3.1 2.0.0.RELEASE - 2.4.1 - 2020.0.0 + 2.4.2 + 2020.0.1 Cairo-SR8 diff --git a/script/docker/.env b/script/docker/.env index fbe046ce..380d2649 100644 --- a/script/docker/.env +++ b/script/docker/.env @@ -1,2 +1,2 @@ REGISTER=192.168.0.157/blade -TAG=3.0.0 +TAG=3.0.1 diff --git a/script/docker/deploy.sh b/script/docker/deploy.sh index e5e13545..a322250e 100644 --- a/script/docker/deploy.sh +++ b/script/docker/deploy.sh @@ -15,6 +15,7 @@ port(){ firewall-cmd --add-port=3379/tcp --permanent firewall-cmd --add-port=7002/tcp --permanent firewall-cmd --add-port=9411/tcp --permanent + firewall-cmd --add-port=18000/tcp --permanent service firewalld restart } @@ -42,7 +43,7 @@ base(){ #启动程序模块 modules(){ - docker-compose up -d blade-gateway1 blade-gateway2 blade-admin blade-auth1 blade-auth2 blade-user blade-desk blade-system blade-log + docker-compose up -d blade-gateway1 blade-gateway2 blade-admin blade-swagger blade-auth1 blade-auth2 blade-user blade-desk blade-system blade-log blade-report } #关闭所有模块 diff --git a/script/docker/docker-compose.yml b/script/docker/docker-compose.yml index c0e40d0a..31d78564 100644 --- a/script/docker/docker-compose.yml +++ b/script/docker/docker-compose.yml @@ -71,6 +71,15 @@ services: networks: - blade_net + blade-swagger: + image: "${REGISTER}/blade/blade-swagger:${TAG}" + ports: + - 18000:18000 + privileged: true + restart: always + networks: + - blade_net + blade-gateway1: image: "${REGISTER}/blade/blade-gateway:${TAG}" privileged: true From 917ca30b43a2edfb27546cd550899591caed6185 Mon Sep 17 00:00:00 2001 From: smallchill Date: Wed, 24 Mar 2021 18:54:45 +0800 Subject: [PATCH 03/25] =?UTF-8?q?:tada:=203.0.2.RELEASE=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81=20Nacos2.0=20=E9=95=BF=E9=93=BE=E6=8E=A5=E7=89=B9?= =?UTF-8?q?=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 ++- blade-auth/pom.xml | 2 +- blade-common/pom.xml | 2 +- blade-gateway/pom.xml | 19 +++++++- .../config/RouterFunctionConfiguration.java | 45 +++++++++++++++++++ .../gateway/filter/AuthFilter.java | 6 ++- .../gateway/filter/RequestFilter.java | 45 +++++++++++++++++++ .../gateway/provider/AuthProvider.java | 36 +++++++-------- blade-ops/blade-admin/pom.xml | 2 +- blade-ops/blade-develop/pom.xml | 2 +- blade-ops/blade-report/pom.xml | 2 +- blade-ops/blade-resource/pom.xml | 2 +- blade-ops/blade-seata-order/pom.xml | 2 +- blade-ops/blade-seata-storage/pom.xml | 2 +- blade-ops/blade-swagger/pom.xml | 2 +- blade-ops/pom.xml | 4 +- blade-service-api/blade-demo-api/pom.xml | 2 +- blade-service-api/blade-desk-api/pom.xml | 2 +- blade-service-api/blade-dict-api/pom.xml | 2 +- blade-service-api/blade-system-api/pom.xml | 2 +- blade-service-api/blade-user-api/pom.xml | 2 +- blade-service-api/pom.xml | 4 +- blade-service/blade-demo/pom.xml | 2 +- blade-service/blade-desk/pom.xml | 2 +- blade-service/blade-log/pom.xml | 2 +- blade-service/blade-system/pom.xml | 2 +- blade-service/blade-user/pom.xml | 2 +- blade-service/pom.xml | 4 +- doc/docker/README.md | 2 +- doc/nacos/blade.yaml | 2 +- pom.xml | 13 +++--- script/docker/.env | 2 +- script/docker/deploy.sh | 2 + script/docker/docker-compose.yml | 30 +++++++------ 34 files changed, 188 insertions(+), 71 deletions(-) create mode 100644 blade-gateway/src/main/java/org/springblade/gateway/filter/RequestFilter.java diff --git a/README.md b/README.md index ff88481e..7f4e9cdb 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@

- Downloads + Downloads Build Status Build Status Coverage Status - Downloads + Downloads Downloads @@ -28,6 +28,9 @@ ## 架构图 +## 趋势图 +Stargazers over time + ## 工程结构 ``` SpringBlade diff --git a/blade-auth/pom.xml b/blade-auth/pom.xml index 1f6d59f7..d6fd574a 100644 --- a/blade-auth/pom.xml +++ b/blade-auth/pom.xml @@ -8,7 +8,7 @@ SpringBlade org.springblade - 3.0.1 + 3.0.2 blade-auth diff --git a/blade-common/pom.xml b/blade-common/pom.xml index 79dda3c1..0288d29d 100644 --- a/blade-common/pom.xml +++ b/blade-common/pom.xml @@ -5,7 +5,7 @@ SpringBlade org.springblade - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-gateway/pom.xml b/blade-gateway/pom.xml index 3b481f17..f72aaa7a 100644 --- a/blade-gateway/pom.xml +++ b/blade-gateway/pom.xml @@ -5,7 +5,7 @@ SpringBlade org.springblade - 3.0.1 + 3.0.2 4.0.0 @@ -74,13 +74,30 @@ com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery + + + com.alibaba.nacos + nacos-client + + ${alibaba.cloud.version} com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config + + + com.alibaba.nacos + nacos-client + + ${alibaba.cloud.version} + + com.alibaba.nacos + nacos-client + ${alibaba.nacos.version} + io.jsonwebtoken diff --git a/blade-gateway/src/main/java/org/springblade/gateway/config/RouterFunctionConfiguration.java b/blade-gateway/src/main/java/org/springblade/gateway/config/RouterFunctionConfiguration.java index 53a2b391..116115e0 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/config/RouterFunctionConfiguration.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/config/RouterFunctionConfiguration.java @@ -20,7 +20,18 @@ import lombok.extern.slf4j.Slf4j; import org.springblade.gateway.props.AuthProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.http.server.reactive.ServerHttpResponse; +import org.springframework.web.cors.reactive.CorsUtils; +import org.springframework.web.server.ServerWebExchange; +import org.springframework.web.server.WebFilter; +import org.springframework.web.server.WebFilterChain; +import reactor.core.publisher.Mono; /** * 路由配置信息 @@ -33,4 +44,38 @@ @EnableConfigurationProperties({AuthProperties.class}) public class RouterFunctionConfiguration { + /** + * 这里为支持的请求头,如果有自定义的header字段请自己添加 + */ + private static final String ALLOWED_HEADERS = "X-Requested-With, Tenant-Id, Blade-Auth, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, username, client, knfie4j-gateway-request, request-origion"; + private static final String ALLOWED_METHODS = "GET,POST,PUT,DELETE,OPTIONS,HEAD"; + private static final String ALLOWED_ORIGIN = "*"; + private static final String ALLOWED_EXPOSE = "*"; + private static final String MAX_AGE = "18000L"; + + /** + * 跨域配置 + */ + @Bean + public WebFilter corsFilter() { + return (ServerWebExchange ctx, WebFilterChain chain) -> { + ServerHttpRequest request = ctx.getRequest(); + if (CorsUtils.isCorsRequest(request)) { + ServerHttpResponse response = ctx.getResponse(); + HttpHeaders headers = response.getHeaders(); + headers.add("Access-Control-Allow-Headers", ALLOWED_HEADERS); + headers.add("Access-Control-Allow-Methods", ALLOWED_METHODS); + headers.add("Access-Control-Allow-Origin", ALLOWED_ORIGIN); + headers.add("Access-Control-Expose-Headers", ALLOWED_EXPOSE); + headers.add("Access-Control-Max-Age", MAX_AGE); + headers.add("Access-Control-Allow-Credentials", "true"); + if (request.getMethod() == HttpMethod.OPTIONS) { + response.setStatusCode(HttpStatus.OK); + return Mono.empty(); + } + } + return chain.filter(ctx); + }; + } + } diff --git a/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java b/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java index 4de53bfe..1e29459e 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java @@ -32,6 +32,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.stereotype.Component; +import org.springframework.util.AntPathMatcher; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -49,6 +50,7 @@ public class AuthFilter implements GlobalFilter, Ordered { private final AuthProperties authProperties; private final ObjectMapper objectMapper; + private final AntPathMatcher antPathMatcher = new AntPathMatcher(); @Override public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { @@ -72,8 +74,8 @@ public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { } private boolean isSkip(String path) { - return AuthProvider.getDefaultSkipUrl().stream().map(url -> url.replace(AuthProvider.TARGET, AuthProvider.REPLACEMENT)).anyMatch(path::contains) - || authProperties.getSkipUrl().stream().map(url -> url.replace(AuthProvider.TARGET, AuthProvider.REPLACEMENT)).anyMatch(path::contains); + return AuthProvider.getDefaultSkipUrl().stream().anyMatch(pattern -> antPathMatcher.match(pattern, path)) + || authProperties.getSkipUrl().stream().anyMatch(pattern -> antPathMatcher.match(pattern, path)); } private Mono unAuth(ServerHttpResponse resp, String msg) { diff --git a/blade-gateway/src/main/java/org/springblade/gateway/filter/RequestFilter.java b/blade-gateway/src/main/java/org/springblade/gateway/filter/RequestFilter.java new file mode 100644 index 00000000..bb66e9df --- /dev/null +++ b/blade-gateway/src/main/java/org/springblade/gateway/filter/RequestFilter.java @@ -0,0 +1,45 @@ +package org.springblade.gateway.filter; + +import org.springframework.cloud.gateway.filter.GatewayFilterChain; +import org.springframework.cloud.gateway.filter.GlobalFilter; +import org.springframework.core.Ordered; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Mono; + +import java.util.Arrays; +import java.util.stream.Collectors; + +import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.GATEWAY_REQUEST_URL_ATTR; +import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.addOriginalRequestUrl; + +/** + * request过滤器 + * + * @author lengleng + */ +@Component +public class RequestFilter implements GlobalFilter, Ordered { + + @Override + public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { + ServerHttpRequest request = exchange.getRequest(); + addOriginalRequestUrl(exchange, request.getURI()); + String rawPath = request.getURI().getRawPath(); + String newPath = "/" + Arrays.stream(StringUtils.tokenizeToStringArray(rawPath, "/")) + .skip(1L).collect(Collectors.joining("/")); + ServerHttpRequest newRequest = request.mutate() + .path(newPath) + .build(); + exchange.getAttributes().put(GATEWAY_REQUEST_URL_ATTR, newRequest.getURI()); + return chain.filter(exchange.mutate().request(newRequest.mutate().build()).build()); + } + + @Override + public int getOrder() { + return -1000; + } + +} diff --git a/blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java b/blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java index a107e797..1dc12208 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java @@ -27,34 +27,32 @@ */ public class AuthProvider { - public static String TARGET = "/**"; - public static String REPLACEMENT = ""; public static String AUTH_KEY = TokenConstant.HEADER; - private static final List defaultSkipUrl = new ArrayList<>(); + private static final List DEFAULT_SKIP_URL = new ArrayList<>(); static { - defaultSkipUrl.add("/example"); - defaultSkipUrl.add("/token/**"); - defaultSkipUrl.add("/captcha/**"); - defaultSkipUrl.add("/actuator/health/**"); - defaultSkipUrl.add("/v2/api-docs/**"); - defaultSkipUrl.add("/auth/**"); - defaultSkipUrl.add("/oauth/**"); - defaultSkipUrl.add("/log/**"); - defaultSkipUrl.add("/menu/routes"); - defaultSkipUrl.add("/menu/auth-routes"); - defaultSkipUrl.add("/tenant/info"); - defaultSkipUrl.add("/order/create/**"); - defaultSkipUrl.add("/storage/deduct/**"); - defaultSkipUrl.add("/error/**"); - defaultSkipUrl.add("/assets/**"); + DEFAULT_SKIP_URL.add("/example"); + DEFAULT_SKIP_URL.add("/token/**"); + DEFAULT_SKIP_URL.add("/captcha/**"); + DEFAULT_SKIP_URL.add("/actuator/health/**"); + DEFAULT_SKIP_URL.add("/v2/api-docs/**"); + DEFAULT_SKIP_URL.add("/auth/**"); + DEFAULT_SKIP_URL.add("/oauth/**"); + DEFAULT_SKIP_URL.add("/log/**"); + DEFAULT_SKIP_URL.add("/menu/routes"); + DEFAULT_SKIP_URL.add("/menu/auth-routes"); + DEFAULT_SKIP_URL.add("/tenant/info"); + DEFAULT_SKIP_URL.add("/order/create/**"); + DEFAULT_SKIP_URL.add("/storage/deduct/**"); + DEFAULT_SKIP_URL.add("/error/**"); + DEFAULT_SKIP_URL.add("/assets/**"); } /** * 默认无需鉴权的API */ public static List getDefaultSkipUrl() { - return defaultSkipUrl; + return DEFAULT_SKIP_URL; } } diff --git a/blade-ops/blade-admin/pom.xml b/blade-ops/blade-admin/pom.xml index 03113ae7..0893814c 100644 --- a/blade-ops/blade-admin/pom.xml +++ b/blade-ops/blade-admin/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-ops/blade-develop/pom.xml b/blade-ops/blade-develop/pom.xml index b9a752a5..ccc7aec9 100644 --- a/blade-ops/blade-develop/pom.xml +++ b/blade-ops/blade-develop/pom.xml @@ -6,7 +6,7 @@ org.springblade blade-ops - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-ops/blade-report/pom.xml b/blade-ops/blade-report/pom.xml index 018a22f7..f6d38814 100644 --- a/blade-ops/blade-report/pom.xml +++ b/blade-ops/blade-report/pom.xml @@ -5,7 +5,7 @@ org.springblade blade-ops - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-ops/blade-resource/pom.xml b/blade-ops/blade-resource/pom.xml index db4d541a..326fa290 100644 --- a/blade-ops/blade-resource/pom.xml +++ b/blade-ops/blade-resource/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-ops/blade-seata-order/pom.xml b/blade-ops/blade-seata-order/pom.xml index 21a20c8b..a8576195 100644 --- a/blade-ops/blade-seata-order/pom.xml +++ b/blade-ops/blade-seata-order/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-ops/blade-seata-storage/pom.xml b/blade-ops/blade-seata-storage/pom.xml index b2f6696e..ddf1756d 100644 --- a/blade-ops/blade-seata-storage/pom.xml +++ b/blade-ops/blade-seata-storage/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-ops/blade-swagger/pom.xml b/blade-ops/blade-swagger/pom.xml index 71dcad33..31c69a22 100644 --- a/blade-ops/blade-swagger/pom.xml +++ b/blade-ops/blade-swagger/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-ops/pom.xml b/blade-ops/pom.xml index 25c21b39..a5d0e9cd 100644 --- a/blade-ops/pom.xml +++ b/blade-ops/pom.xml @@ -5,11 +5,13 @@ SpringBlade org.springblade - 3.0.1 + 3.0.2 4.0.0 blade-ops + ${project.artifactId} + 3.0.2 pom blade-admin diff --git a/blade-service-api/blade-demo-api/pom.xml b/blade-service-api/blade-demo-api/pom.xml index 1492d692..088847fd 100644 --- a/blade-service-api/blade-demo-api/pom.xml +++ b/blade-service-api/blade-demo-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-service-api/blade-desk-api/pom.xml b/blade-service-api/blade-desk-api/pom.xml index 80e7d33b..bef3490f 100644 --- a/blade-service-api/blade-desk-api/pom.xml +++ b/blade-service-api/blade-desk-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-service-api/blade-dict-api/pom.xml b/blade-service-api/blade-dict-api/pom.xml index a32f3731..65801d6d 100644 --- a/blade-service-api/blade-dict-api/pom.xml +++ b/blade-service-api/blade-dict-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-service-api/blade-system-api/pom.xml b/blade-service-api/blade-system-api/pom.xml index fa14a6fd..9b6db536 100644 --- a/blade-service-api/blade-system-api/pom.xml +++ b/blade-service-api/blade-system-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-service-api/blade-user-api/pom.xml b/blade-service-api/blade-user-api/pom.xml index e9bd58ac..ae7e271c 100644 --- a/blade-service-api/blade-user-api/pom.xml +++ b/blade-service-api/blade-user-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-service-api/pom.xml b/blade-service-api/pom.xml index d910c514..9d41f039 100644 --- a/blade-service-api/pom.xml +++ b/blade-service-api/pom.xml @@ -5,13 +5,13 @@ SpringBlade org.springblade - 3.0.1 + 3.0.2 4.0.0 blade-service-api ${project.artifactId} - 3.0.1 + 3.0.2 pom SpringBlade 微服务API集合 diff --git a/blade-service/blade-demo/pom.xml b/blade-service/blade-demo/pom.xml index f82ae396..fbb74caa 100644 --- a/blade-service/blade-demo/pom.xml +++ b/blade-service/blade-demo/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-service/blade-desk/pom.xml b/blade-service/blade-desk/pom.xml index 50f5bde2..b28aed13 100644 --- a/blade-service/blade-desk/pom.xml +++ b/blade-service/blade-desk/pom.xml @@ -6,7 +6,7 @@ org.springblade blade-service - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-service/blade-log/pom.xml b/blade-service/blade-log/pom.xml index cb03b4a7..47fe8340 100644 --- a/blade-service/blade-log/pom.xml +++ b/blade-service/blade-log/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-service/blade-system/pom.xml b/blade-service/blade-system/pom.xml index 35f0799a..d5f5f744 100644 --- a/blade-service/blade-system/pom.xml +++ b/blade-service/blade-system/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-service/blade-user/pom.xml b/blade-service/blade-user/pom.xml index 9f4c17c9..ac807e70 100644 --- a/blade-service/blade-user/pom.xml +++ b/blade-service/blade-user/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.0.1 + 3.0.2 4.0.0 diff --git a/blade-service/pom.xml b/blade-service/pom.xml index 37f1008c..f73efaa1 100644 --- a/blade-service/pom.xml +++ b/blade-service/pom.xml @@ -7,12 +7,12 @@ org.springblade SpringBlade - 3.0.1 + 3.0.2 blade-service ${project.artifactId} - 3.0.1 + 3.0.2 pom SpringBlade 微服务集合 diff --git a/doc/docker/README.md b/doc/docker/README.md index 6a058fdd..c37106f8 100644 --- a/doc/docker/README.md +++ b/doc/docker/README.md @@ -86,7 +86,7 @@ CMD java -Djava.security.egd=file:/dev/./urandom -jar app.jar --spring.profiles. ###5. 在工程根目录的docker-compose.yml下加入配置,内容可参考如下 ``` blade-gateway: - image: "${REGISTER}/blade/blade-gateway:${TAG}" + image: "${REGISTER}/blade-gateway:${TAG}" ports: - 80:80 networks: diff --git a/doc/nacos/blade.yaml b/doc/nacos/blade.yaml index 2ad85be0..49a519fa 100644 --- a/doc/nacos/blade.yaml +++ b/doc/nacos/blade.yaml @@ -69,7 +69,7 @@ knife4j: swagger: title: SpringBlade 接口文档系统 description: SpringBlade 接口文档系统 - version: 3.0.1 + version: 3.0.2 license: Powered By SpringBlade licenseUrl: https://bladex.vip terms-of-service-url: https://bladex.vip diff --git a/pom.xml b/pom.xml index 11bd8816..1c7bd1b3 100644 --- a/pom.xml +++ b/pom.xml @@ -5,12 +5,12 @@ org.springblade SpringBlade - 3.0.1 + 3.0.2 pom - 3.0.1 - 3.0.1 + 3.0.2 + 3.0.2 1.8 3.8.1 @@ -21,12 +21,13 @@ 1.6.2 2.2.6 1.2.5 - 2.2.5.RC2 + 2.2.5.RELEASE + 2.0.0 2.3.1 2.0.0.RELEASE - 2.4.2 - 2020.0.1 + 2.4.4 + 2020.0.2 Cairo-SR8 diff --git a/script/docker/.env b/script/docker/.env index 380d2649..134ce76c 100644 --- a/script/docker/.env +++ b/script/docker/.env @@ -1,2 +1,2 @@ REGISTER=192.168.0.157/blade -TAG=3.0.1 +TAG=3.0.2 diff --git a/script/docker/deploy.sh b/script/docker/deploy.sh index a322250e..9d28e2f5 100644 --- a/script/docker/deploy.sh +++ b/script/docker/deploy.sh @@ -10,6 +10,8 @@ port(){ firewall-cmd --add-port=88/tcp --permanent firewall-cmd --add-port=8000/tcp --permanent firewall-cmd --add-port=8848/tcp --permanent + firewall-cmd --add-port=9848/tcp --permanent + firewall-cmd --add-port=9849/tcp --permanent firewall-cmd --add-port=8858/tcp --permanent firewall-cmd --add-port=3306/tcp --permanent firewall-cmd --add-port=3379/tcp --permanent diff --git a/script/docker/docker-compose.yml b/script/docker/docker-compose.yml index 31d78564..f0390539 100644 --- a/script/docker/docker-compose.yml +++ b/script/docker/docker-compose.yml @@ -1,7 +1,7 @@ version: '3' services: nacos: - image: nacos/nacos-server:1.3.2 + image: nacos/nacos-server:2.0.0 hostname: "nacos-standalone" environment: - MODE=standalone @@ -10,12 +10,14 @@ services: - /docker/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties ports: - 8848:8848 + - 9848:9848 + - 9849:9849 networks: blade_net: ipv4_address: 172.30.0.48 sentinel: - image: bladex/sentinel-dashboard:1.7.2 + image: bladex/sentinel-dashboard:1.8.0 hostname: "sentinel" ports: - 8858:8858 @@ -63,7 +65,7 @@ services: - blade_net blade-admin: - image: "${REGISTER}/blade/blade-admin:${TAG}" + image: "${REGISTER}/blade-admin:${TAG}" ports: - 7002:7002 privileged: true @@ -72,7 +74,7 @@ services: - blade_net blade-swagger: - image: "${REGISTER}/blade/blade-swagger:${TAG}" + image: "${REGISTER}/blade-swagger:${TAG}" ports: - 18000:18000 privileged: true @@ -81,7 +83,7 @@ services: - blade_net blade-gateway1: - image: "${REGISTER}/blade/blade-gateway:${TAG}" + image: "${REGISTER}/blade-gateway:${TAG}" privileged: true restart: always networks: @@ -89,7 +91,7 @@ services: ipv4_address: 172.30.0.81 blade-gateway2: - image: "${REGISTER}/blade/blade-gateway:${TAG}" + image: "${REGISTER}/blade-gateway:${TAG}" privileged: true restart: always networks: @@ -97,7 +99,7 @@ services: ipv4_address: 172.30.0.82 blade-auth1: - image: "${REGISTER}/blade/blade-auth:${TAG}" + image: "${REGISTER}/blade-auth:${TAG}" privileged: true restart: always networks: @@ -105,7 +107,7 @@ services: ipv4_address: 172.30.0.91 blade-auth2: - image: "${REGISTER}/blade/blade-auth:${TAG}" + image: "${REGISTER}/blade-auth:${TAG}" privileged: true restart: always networks: @@ -113,7 +115,7 @@ services: ipv4_address: 172.30.0.92 blade-report: - image: "${REGISTER}/blade/blade-report:${TAG}" + image: "${REGISTER}/blade-report:${TAG}" privileged: true restart: always networks: @@ -121,35 +123,35 @@ services: ipv4_address: 172.30.0.98 blade-log: - image: "${REGISTER}/blade/blade-log:${TAG}" + image: "${REGISTER}/blade-log:${TAG}" privileged: true restart: always networks: - blade_net blade-desk: - image: "${REGISTER}/blade/blade-desk:${TAG}" + image: "${REGISTER}/blade-desk:${TAG}" privileged: true restart: always networks: - blade_net blade-user: - image: "${REGISTER}/blade/blade-user:${TAG}" + image: "${REGISTER}/blade-user:${TAG}" privileged: true restart: always networks: - blade_net blade-system: - image: "${REGISTER}/blade/blade-system:${TAG}" + image: "${REGISTER}/blade-system:${TAG}" privileged: true restart: always networks: - blade_net blade-resource: - image: "${REGISTER}/blade/blade-resource:${TAG}" + image: "${REGISTER}/blade-resource:${TAG}" privileged: true restart: always networks: From 090f46d8c89164369e50b58898a6e47496e35c59 Mon Sep 17 00:00:00 2001 From: smallchill Date: Fri, 7 May 2021 13:25:15 +0800 Subject: [PATCH 04/25] =?UTF-8?q?:tada:=203.0.3.RELEASE=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=20kuboard-k8s=20=E8=84=9A=E6=9C=AC=E4=B8=80=E9=94=AE?= =?UTF-8?q?=E9=83=A8=E7=BD=B2=E6=96=B9=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 +- blade-auth/pom.xml | 2 +- blade-common/pom.xml | 2 +- blade-gateway/pom.xml | 2 +- blade-ops/blade-admin/pom.xml | 2 +- blade-ops/blade-develop/Dockerfile | 15 + blade-ops/blade-develop/pom.xml | 16 +- blade-ops/blade-report/pom.xml | 2 +- blade-ops/blade-resource/pom.xml | 2 +- blade-ops/blade-seata-order/pom.xml | 35 +- blade-ops/blade-seata-storage/pom.xml | 34 +- blade-ops/blade-swagger/pom.xml | 2 +- blade-ops/pom.xml | 4 +- blade-service-api/blade-demo-api/pom.xml | 2 +- blade-service-api/blade-desk-api/pom.xml | 2 +- blade-service-api/blade-dict-api/pom.xml | 2 +- blade-service-api/blade-system-api/pom.xml | 2 +- blade-service-api/blade-user-api/pom.xml | 2 +- blade-service-api/pom.xml | 4 +- blade-service/blade-demo/pom.xml | 2 +- blade-service/blade-desk/pom.xml | 2 +- blade-service/blade-log/pom.xml | 2 +- blade-service/blade-system/pom.xml | 2 +- blade-service/blade-user/pom.xml | 2 +- blade-service/pom.xml | 4 +- doc/nacos/blade.yaml | 2 +- doc/sql/blade/blade-saber-mysql.sql | 3 + pic/springblade-k8s1.png | Bin 31817 -> 256296 bytes pic/springblade-k8s2.png | Bin 568204 -> 311415 bytes pom.xml | 6 +- script/docker/.env | 2 +- script/docker/deploy.sh | 2 +- script/docker/docker-compose.yml | 7 + script/{ => fatjar}/service.cmd | 0 script/{ => fatjar}/service.sh | 3 + script/kuboard/blade-k8s.yaml | 22 + script/kuboard/kuboard_spring-blade.yaml | 4576 +++++++++++++++++ script/kuboard/saber-db/Dockerfile | 8 + script/kuboard/saber-db/blade-saber-mysql.sql | 528 ++ script/kuboard/saber-db/my.cnf | 7 + 40 files changed, 5284 insertions(+), 36 deletions(-) create mode 100644 blade-ops/blade-develop/Dockerfile rename script/{ => fatjar}/service.cmd (100%) rename script/{ => fatjar}/service.sh (96%) create mode 100644 script/kuboard/blade-k8s.yaml create mode 100644 script/kuboard/kuboard_spring-blade.yaml create mode 100644 script/kuboard/saber-db/Dockerfile create mode 100644 script/kuboard/saber-db/blade-saber-mysql.sql create mode 100644 script/kuboard/saber-db/my.cnf diff --git a/README.md b/README.md index 7f4e9cdb..694da6b1 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- Downloads + Downloads Build Status Build Status Coverage Status @@ -63,7 +63,8 @@ SpringBlade * 交流二群:`751253339`(满) * 交流三群:`784729540`(满) * 交流四群:`1034621754`(满) -* 交流五群:`946350912` +* 交流五群:`946350912`(满) +* 交流六群:`511624269` ## 在线演示 * Saber-基于Vue:[https://saber.bladex.vip](https://saber.bladex.vip) @@ -72,8 +73,9 @@ SpringBlade * Caster-数据大屏展示系统:[https://data.avuejs.com](https://data.avuejs.com) ## 技术文档 -* [SpringBlade开发手册一览](https://gitee.com/smallc/SpringBlade/wikis/SpringBlade开发手册) * [SpringBlade常见问题集锦](https://sns.bladex.vip/article-14966.html) +* [SpringBlade开发手册一览](https://gitee.com/smallc/SpringBlade/wikis/SpringBlade开发手册) +* [SpringBlade基于Kuboard部署K8S](https://kuboard.cn/learning/k8s-practice/spring-blade/) ## 项目地址 * 后端Gitee地址:[https://gitee.com/smallc/SpringBlade](https://gitee.com/smallc/SpringBlade) diff --git a/blade-auth/pom.xml b/blade-auth/pom.xml index d6fd574a..af2ea9e5 100644 --- a/blade-auth/pom.xml +++ b/blade-auth/pom.xml @@ -8,7 +8,7 @@ SpringBlade org.springblade - 3.0.2 + 3.0.3 blade-auth diff --git a/blade-common/pom.xml b/blade-common/pom.xml index 0288d29d..86029b81 100644 --- a/blade-common/pom.xml +++ b/blade-common/pom.xml @@ -5,7 +5,7 @@ SpringBlade org.springblade - 3.0.2 + 3.0.3 4.0.0 diff --git a/blade-gateway/pom.xml b/blade-gateway/pom.xml index f72aaa7a..fa27ecda 100644 --- a/blade-gateway/pom.xml +++ b/blade-gateway/pom.xml @@ -5,7 +5,7 @@ SpringBlade org.springblade - 3.0.2 + 3.0.3 4.0.0 diff --git a/blade-ops/blade-admin/pom.xml b/blade-ops/blade-admin/pom.xml index 0893814c..1220b829 100644 --- a/blade-ops/blade-admin/pom.xml +++ b/blade-ops/blade-admin/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.2 + 3.0.3 4.0.0 diff --git a/blade-ops/blade-develop/Dockerfile b/blade-ops/blade-develop/Dockerfile new file mode 100644 index 00000000..b93d21ca --- /dev/null +++ b/blade-ops/blade-develop/Dockerfile @@ -0,0 +1,15 @@ +FROM anapsix/alpine-java:8_server-jre_unlimited + +MAINTAINER smallchill@163.com + +RUN mkdir -p /blade/develop + +WORKDIR /blade/develop + +EXPOSE 7007 + +ADD ./target/blade-develop.jar ./app.jar + +ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] + +CMD ["--spring.profiles.active=test"] diff --git a/blade-ops/blade-develop/pom.xml b/blade-ops/blade-develop/pom.xml index ccc7aec9..557495e9 100644 --- a/blade-ops/blade-develop/pom.xml +++ b/blade-ops/blade-develop/pom.xml @@ -6,7 +6,7 @@ org.springblade blade-ops - 3.0.2 + 3.0.3 4.0.0 @@ -64,7 +64,19 @@ docker-maven-plugin ${docker.plugin.version} - true + ${docker.registry.url}/blade/${project.artifactId}:${project.version} + ${project.basedir} + ${docker.registry.host} + + + / + ${project.build.directory} + ${project.build.finalName}.jar + + + ${docker.registry.url} + ${docker.registry.url} + true diff --git a/blade-ops/blade-report/pom.xml b/blade-ops/blade-report/pom.xml index f6d38814..2159b7ca 100644 --- a/blade-ops/blade-report/pom.xml +++ b/blade-ops/blade-report/pom.xml @@ -5,7 +5,7 @@ org.springblade blade-ops - 3.0.2 + 3.0.3 4.0.0 diff --git a/blade-ops/blade-resource/pom.xml b/blade-ops/blade-resource/pom.xml index 326fa290..a0ccf994 100644 --- a/blade-ops/blade-resource/pom.xml +++ b/blade-ops/blade-resource/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.2 + 3.0.3 4.0.0 diff --git a/blade-ops/blade-seata-order/pom.xml b/blade-ops/blade-seata-order/pom.xml index a8576195..41391ff8 100644 --- a/blade-ops/blade-seata-order/pom.xml +++ b/blade-ops/blade-seata-order/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.2 + 3.0.3 4.0.0 @@ -32,4 +32,37 @@ + + + + com.spotify + docker-maven-plugin + ${docker.plugin.version} + + true + + + + org.apache.maven.plugins + maven-antrun-plugin + + + package + + run + + + + + + + + + + + + + diff --git a/blade-ops/blade-seata-storage/pom.xml b/blade-ops/blade-seata-storage/pom.xml index ddf1756d..9086de3b 100644 --- a/blade-ops/blade-seata-storage/pom.xml +++ b/blade-ops/blade-seata-storage/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.2 + 3.0.3 4.0.0 @@ -32,5 +32,37 @@ + + + + com.spotify + docker-maven-plugin + ${docker.plugin.version} + + true + + + + org.apache.maven.plugins + maven-antrun-plugin + + + package + + run + + + + + + + + + + + + diff --git a/blade-ops/blade-swagger/pom.xml b/blade-ops/blade-swagger/pom.xml index 31c69a22..bb12699c 100644 --- a/blade-ops/blade-swagger/pom.xml +++ b/blade-ops/blade-swagger/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.2 + 3.0.3 4.0.0 diff --git a/blade-ops/pom.xml b/blade-ops/pom.xml index a5d0e9cd..93083caa 100644 --- a/blade-ops/pom.xml +++ b/blade-ops/pom.xml @@ -5,13 +5,13 @@ SpringBlade org.springblade - 3.0.2 + 3.0.3 4.0.0 blade-ops ${project.artifactId} - 3.0.2 + 3.0.3 pom blade-admin diff --git a/blade-service-api/blade-demo-api/pom.xml b/blade-service-api/blade-demo-api/pom.xml index 088847fd..8ab36073 100644 --- a/blade-service-api/blade-demo-api/pom.xml +++ b/blade-service-api/blade-demo-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.2 + 3.0.3 4.0.0 diff --git a/blade-service-api/blade-desk-api/pom.xml b/blade-service-api/blade-desk-api/pom.xml index bef3490f..07b22d85 100644 --- a/blade-service-api/blade-desk-api/pom.xml +++ b/blade-service-api/blade-desk-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.2 + 3.0.3 4.0.0 diff --git a/blade-service-api/blade-dict-api/pom.xml b/blade-service-api/blade-dict-api/pom.xml index 65801d6d..995a0c4f 100644 --- a/blade-service-api/blade-dict-api/pom.xml +++ b/blade-service-api/blade-dict-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.2 + 3.0.3 4.0.0 diff --git a/blade-service-api/blade-system-api/pom.xml b/blade-service-api/blade-system-api/pom.xml index 9b6db536..2220d3bb 100644 --- a/blade-service-api/blade-system-api/pom.xml +++ b/blade-service-api/blade-system-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.2 + 3.0.3 4.0.0 diff --git a/blade-service-api/blade-user-api/pom.xml b/blade-service-api/blade-user-api/pom.xml index ae7e271c..57f7f49a 100644 --- a/blade-service-api/blade-user-api/pom.xml +++ b/blade-service-api/blade-user-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.2 + 3.0.3 4.0.0 diff --git a/blade-service-api/pom.xml b/blade-service-api/pom.xml index 9d41f039..0f8d3076 100644 --- a/blade-service-api/pom.xml +++ b/blade-service-api/pom.xml @@ -5,13 +5,13 @@ SpringBlade org.springblade - 3.0.2 + 3.0.3 4.0.0 blade-service-api ${project.artifactId} - 3.0.2 + 3.0.3 pom SpringBlade 微服务API集合 diff --git a/blade-service/blade-demo/pom.xml b/blade-service/blade-demo/pom.xml index fbb74caa..8db43791 100644 --- a/blade-service/blade-demo/pom.xml +++ b/blade-service/blade-demo/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.0.2 + 3.0.3 4.0.0 diff --git a/blade-service/blade-desk/pom.xml b/blade-service/blade-desk/pom.xml index b28aed13..28f64f09 100644 --- a/blade-service/blade-desk/pom.xml +++ b/blade-service/blade-desk/pom.xml @@ -6,7 +6,7 @@ org.springblade blade-service - 3.0.2 + 3.0.3 4.0.0 diff --git a/blade-service/blade-log/pom.xml b/blade-service/blade-log/pom.xml index 47fe8340..7595e130 100644 --- a/blade-service/blade-log/pom.xml +++ b/blade-service/blade-log/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.0.2 + 3.0.3 4.0.0 diff --git a/blade-service/blade-system/pom.xml b/blade-service/blade-system/pom.xml index d5f5f744..86c6215d 100644 --- a/blade-service/blade-system/pom.xml +++ b/blade-service/blade-system/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.0.2 + 3.0.3 4.0.0 diff --git a/blade-service/blade-user/pom.xml b/blade-service/blade-user/pom.xml index ac807e70..e117499d 100644 --- a/blade-service/blade-user/pom.xml +++ b/blade-service/blade-user/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.0.2 + 3.0.3 4.0.0 diff --git a/blade-service/pom.xml b/blade-service/pom.xml index f73efaa1..e52b7f93 100644 --- a/blade-service/pom.xml +++ b/blade-service/pom.xml @@ -7,12 +7,12 @@ org.springblade SpringBlade - 3.0.2 + 3.0.3 blade-service ${project.artifactId} - 3.0.2 + 3.0.3 pom SpringBlade 微服务集合 diff --git a/doc/nacos/blade.yaml b/doc/nacos/blade.yaml index 49a519fa..73cd02e8 100644 --- a/doc/nacos/blade.yaml +++ b/doc/nacos/blade.yaml @@ -69,7 +69,7 @@ knife4j: swagger: title: SpringBlade 接口文档系统 description: SpringBlade 接口文档系统 - version: 3.0.2 + version: 3.0.3 license: Powered By SpringBlade licenseUrl: https://bladex.vip terms-of-service-url: https://bladex.vip diff --git a/doc/sql/blade/blade-saber-mysql.sql b/doc/sql/blade/blade-saber-mysql.sql index 3a0c6b1f..2b1f9453 100644 --- a/doc/sql/blade/blade-saber-mysql.sql +++ b/doc/sql/blade/blade-saber-mysql.sql @@ -17,6 +17,9 @@ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; +CREATE SCHEMA IF NOT EXISTS `blade` DEFAULT CHARACTER SET utf8mb4 ; +USE `blade` ; + -- ---------------------------- -- Table structure for blade_client -- ---------------------------- diff --git a/pic/springblade-k8s1.png b/pic/springblade-k8s1.png index bdf36413014df291e524cf8330becefe5f8acc4f..a86d0d7b31971ed4adbd032d9f5ce9361e81a244 100644 GIT binary patch literal 256296 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⋘qZEI6NUn_Kd`(>1xOb!~ryGVXH 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 MzP>tI)#~;C0YEvgxBvhE literal 31817 zcmcG#c|26@|3B_-FSpz+5<(FQQDn=OvV@R*9a5IDjcha7+oTBD8*9im!w@sXu_Ph; zP7X7YEyfx9zWvVVzCWM$`}>@nwlCO9-f_@6?2{(85zmV&ArISpI<zKsML$*$ehUas=-IdiMc6a+je#OZ!Fq~&lS5`8349+Ao-Uc;FZ(_Ry z&&X6>dhqd>N#QGv{MeF}CAX^GT|7-L8hao{?eWFD-ecBc2dw!`XXK+zHWXojn6T~M zInLsmN})lq@Xz}}G0mHsuE$p_E2CCa0QinjAIiHrs{)^Hsc@Wu;fbLWW;bkEg!?c9 z!)Ko_h$(~u6MUEC9nbtQn|-JC4~DTPV!`-*j{QFHo%kR354~lkJo+T~0kb?Ol6nw4 z_$2>%t)W|Gv)WVi9}LhJcA`^-tUjb$D*IFXHo))%Z7nm~XUBH)EFv)0g4dGB$be*x zTcW+`QmH_)GIWRt&yum3p^rO77~UgHx`6S453=kR{(kMuthf`0+XoH@8!6t44;4l#kgE%`+uQ!dtu@DC3bI~l4RXXbXIResuxX`vVY&{L z$BLvr&?e$P;MeM4H9%jA{nku!1wsU0Z$5Ifi?NS&1|;n`S7V;U21QE0+AIQzsoff!;iEhf${+bLu+PEeK);AK9O*DVaV_9lodTEGr zU`jv3E%!n`=n_+(k@M&oS}iujlelDCYua6vN06uC>Im+SGVGhGrze%`GCN5Y29pP+ z(uW_PW^tMiuVA_r2l_jHU=?`u_*1qkcZUcAr~*tqC2MRweu^x0+BaCFA(Hsl@`lsE zi_hevAg7fORl5tN65ME1_)#t&#~W$J)|`D93=7S0*FI;7Aa3TNSKpwSS1i?6tNb^O zdgZR0PBxbYyE5;#pKfw=A9)n9Uw{F;lJv-bI�)eJ2&_lxtgSqF+&ygl4iN`;D5R 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

jm^;6Jcno-ajOl_s?IA`!IC6iyCygsfMWl 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 VZcC0Ah4*p6myw~F0a?!_`hT(oW5oaf literal 568204 zcmZs?Rajizwk?Xg2PxbG!6mqRupq(RA-KD{TX2_z;O_2)Yj76jSqr zKIuZvAzko0_p+{O_c`y-sqz!+V4@MF&K+U6qmNL;SE$yD1Wx?$@ zkKb*orTXi}W3J�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

mu|2XaM7abUiW}Z(0 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

7rcg@4DZ#_^ zB4|0LMVx<7^7Kg@67m?-Xmlj~#Z?y^z(5~txIoMuyVOEG<(XU39s#|u!p{CiG#1Oo+g-oKYUkO!bmU}i+xgY^ioGO7VJ%mobufwX)v{3Vqsk+=q)EMthbW+R@x?Q%SA1)tHarvxXu{P(8Zr5$07JW#5)2 z3CO!*O#)0sljv2efxTlZw=wiVB?9TNFE0+$$g>%sO1NZ%>`h-z|H_PKY!9{5W#( z&%Wl?jkif4tG&eG<{a`$n*k>7*dMN#oA%>;HLuCWSG33bB2l@_cgrON&nYkSb33VW zlrGLS8>FvKSl+rn1xi!=&E9`+l8u6Y5g3Q-E)4X~U`;t}SxY&l(`rqDnrKEKvgu@% z6FhZL(#t!$X|#83g&W>KxNAEXY~M!V9N^xjj4<^q{n*ccx9$&^qKj5G;=ixqvs<37 zK1}dkjV|qFZr^a(_KlTHC*rW-(=V^|DBxDW!ICn?Z6~*nZTiaoRw{|*{=e&5V1Sq3 zncN}l*i(o@`IjbRb1g-l(=RZ0eQs@}LWzV{(+O0dg3nv%W$-cyC-pIP&N9!o?n)r@ zZjaFD;_7Bk@a>@hPjh(%=i0>~yaw-RLqF=_MDW$t+C$_@# zBv9MzS@f+oZ|EvG{*}+_xc0zZR%LaO$!Ii$@gtZQa4`QltJfwoKSH9VT}y&Drr`LZ zGL11*?r;eD`WWQM1$KOww$&CDy>9)t{5Aq#K5gs^J;%!VCW!B%x5O&h4sWE?-J@u+ zj8AJ{bE?5*HpO-;y|@^o>*vJqu2?nPC49-@G*|S9*c&*jf}sA&P~DP!J@KH5lGk3= zyVT@HnN-=aza;+}h zJ%X$)xLxDk-fEmlpptN4aG^f)!qi3$_ z#}$=6Zu@*ImRLPcm^pkht#(`s7x>zfQ6<&@%|v#3|$f*9k_rNK#H7lLg3fQ7xd{kSPRC zWh4M`8;#!qY?2%PV*d_``S%8%YHHAHvel(*piHs6pfCY6WC_pn48h#`s~l!MKJaDnb$@cB395i*WI_-P>Qqp zKLusw`K&Bv$z2t#&#hlM?>6+uQ<-$TgU`Hu$%Gqvkl)n7nl5|9cWLp&>Cjh;dC@$? zkF#_6AS2zl0c@ZUiw+cFI}?1?9ro)(o*L187eO&P%0?iR<+_`?%Et%}ABn09Q<~yk zw@_oz!<@m*L)}MB*cLh9Zkp`aliy*-J(8$D?3|BMrdS=k9 z+DoH`_XTPM2h5-mK(ZKDFlUm3 zHLZ|>yn|TX46nB*ursB@&3bVe(jVm-ps)H5h zkaz{8jSMVx0^)1$k>TM(P`i zZj(SxGk8)-;4+VVYFh_`knAbayDemW;KVtj=db-%XahP)X=)singMg)HGR+M`qT9g zYamRFgHj3V+F>fIu@wOP0a9QE1h7NZdW4TC=q|6OKCS?*Z)ic2199g5i1k<|?8NFE z_~N6iu#NVp!Xf5aV_m$C_(PXwT0BZn3 zX}!4LK-M_k-^t$q+ckz8uv*M8HDrm5=0Je$zqoCMVugv?&g*2o8r=n$sG>rn0tPu= z4K|A;zsi9~7#5k>=)jobFCL+7xU$rZpC(%{bbhx13@vHE4O+pxLcntqU>cDhp^+NK ztR_tK)Z%vyUkb~75haQRbVDe!1mDd7YHB9{kkv(?D^yf$=EK7Q55nmZO3C0){oYFk z#MOZ4U>+qt_Wv0Pp4dQR7Ga$pm@9b93`gKo=E6gMJR5_g zqEk3?EZ%Nr<+m(`jO+_HI*p$vt(Sw6HpdVE^bDV!-OQuMZnpDOL zsKBXr?}x82_q|Tt2M>UC)lv)3EeT&LFgs83^E00i%;KI(H6{sMee7ERJ2X6`YKm!! z$nl=+i<5eUI3b&_F3+oK#DL=Svf#Q^hN7fPTi9mjWI-HdZhc6(tdV+PGo}KNW&|Rnb#``68dk;*W{0>J#sH`*cL(c;{=AZw1EjOHwet>>76ktsAnVTuhy8ao z8rR0B$BCfbq<^N-!5%bvMn=Ob-%i)SK&pnS$dsX31ky3yy>$C@E4T4p|7gBp*)8qA z5pfa!36}w(!@Nmhrbe(zD8BqMt5XFt{&7SQ=_@d-iQ-pPw&c2Iyw8U2>dyjZDz89p zpt<;h{HR@p*P+1klI_F>|IOcU+XhGaT=DkTWpBOQE=VM~$ZV;aEfBfruDkJyugb~bpy8uGVthOFPAf@xVsY?dCm~!`~iXeZDUkm-|%bhfn;X+}d zc7K^pX7W1j1pxrCX>VGsHq)}=ymo2ZMsLN3pWNM}1q{5o8Wl^D@OS72e7Kr~y|Kn5rssik~iPkSqXtU6#vitXzz>dUf%#+T1BP%^iWh=Ysk zKq<)X>NoV$ZkPcf!)eRw6BOlp%V6xAe}fp@>jbi143L(GDVo5KtAELzT$r6&14=6= zu8X=)bMx$EcQ!1)1pQlsW?2i`7g&_cUl;GTB>$2&*EDFocZvZ2EEtShHT^P6%nb#P z1^IY72t6Cg4ht2Kd{%bDHeB}3kmmhJ4-N8MFFdl;`*cdzHOGYv;0X5-a@Q#zypF!} z+Oky`^9VM=l6qfiwm}*tJ{SBjOjuFn1I?cgCDD&{-0%&gax$8$YfQD_!lw4~ckP~* zyQ$HOyBviywhwD?7pASY@bERJT%Vkw!HX7Z9k$koeaH9LCkxi|k(})hyXq);DyDQ) zborb=wF}1aRxEslLdc<07AHAb0s&|qy!O$t@g9?c-s@;o5@1M$BOP}(to8)R4tV&% zGczllAH_fK)7_oE)-1IBq^|r_DeykuVY^J&n-a6zs^u)IYEzZ9A`c;jdHdTJU-OEV zB+nl+vgx-(z+&4-oZ`P1DN&@V1@=QFr$hh8EdxAv}+Z z_W!8Umv92S$v^_#-bQd%W8?L;JxhBHhMQrGw%A-r0DlG|(#V|z?d3qP>YZzct?5=g}TFD-xv$cSaH zmwkjkIXzJ888*5@$7hN|M+j{E_5=emy-lm-Z`o(#bQkfDjS&F39%rsBFDrweqQ!Z6 z>jY1DfvNC#IehPOfc>ANik78qG}cjo0Y#h677uD6#-zLY6yXM9L&(ztzbaO=KftRS zI&P07#JHBU=diW$DzqV}Y`c7Bn5S`bEE&Zn0WBP6>v+s=x{P8m3nQvV6i2S@c1~su zjKPSY(HiRyM0Ir?N_dFuwEo6TWLu#wUedt)poye zoWBH043=H3nD-{_OV_BQsn31?PG`SP+~CeP%mH&)pUmV_mp`!Re-;dekr1U2#!{ru z_^ejB9LTKOAB@BtvL;w91}hayl)v_n@IYElo6R>med$)o@~Z`bsVa%0I8N;MV>JP+ zWdIB7zrW9?r=246NF|;2-n)ud!Zphi6#{;Yj@x)bO24@r2( zfS=pclK@^n)vml=0p8@hV>p~SiZ5fwSCtst*6TGP6vQ`DOI#Y6+WqT7!*Z#cQL4SK z3!Z;OlH>aTzQlWM=T-X!N>Z=L$fkz3D-;fd^_S-;fNSfnQ{cH`+3@cY9D)(uuLC1WCR)=DdR177PAEPfeSvK8>&a1WqTJ9&J_@($YkKKiQ z1{+MMUoraw;Hp`wK3DBu+yBW67&nG7mj(?$t>P$a_!jaV27B|Ix{Ujxi07)5RGKvJ zwqOw~aS;V?`_~zy_tcN##;;j~6ZRvse&<7jP&lgqJgz++F(7hHY0)PdAHJCwdjTxfM|Lx8 zngEojh~?2z{AvQ*&R{HP4y=UykA9s-kx+C@z03n*A`_kuOU5ZFTwCWo^&|q%5YBb6 zxsA@3JLAxhZRXo`^Rp^_r*CU1B(S=jdMp!MZ_hfPgd7Y^l@dwZp0()aQsP8Oz3$1T z;aJ3?YToaB_zA=wZ#QVG``Ose&?jRNUp%eaGcpWHO||J1`w18)uibWzin0-fo2A(d zfE?|g9uoCUp_!ReXPuoMUj+V4EY~bfhB4RvQf9(15Fv!|V8S#Q4&tG_s(|(v{~WtJ zkX!{~tpJk%u8(CI<@AYnNM#>(7B_KlWV|9xDONVLR=qHnuc@f_5)(f4kKd0htxxj< zINW>g3H}#A=m2&*8k0pRKIh>^dHEw%8j3IZt#bD9w#`LaaJuIwv+YN$RUM{&D$|BP zh=O1DU!QrTB4p5@`#zEr=je~S;Yq#gGVv*o5Q#|Xeh1T~>AZI1f44`*UZx^{HLK7E z_qAXoiQfG!qX8rG_PJ*#l=tizz)Umuk+513{qDq)djrYNZC;M1yS@lKkyegXl7-_j zdIJrqt1J6!I5w=4-;|LruU1)SPvjw-+&}Y${u9>uoc8{i(bj@voakp#)D5a-={CWg z^)6$+pr|c=mPQsQNjO(&(s;enj(ojW#Ih*}Fg6|M5^%@l7kE0L7M-=11TONN<&u9A zYFW0l$T&Ji`E1boJpDP@uyKsQ&b7=+`AU(MQKfc2o^^tMa*v_uu0EL5^-}BmqPdZl z|A)#GDujT`9pdPdg$h00F$+5W_DehdX&Z?SYg{^)n{@IlV$M@J@k}mRZORB7C2Z8^ zotdV@MD8Y6!}ntn_TiiZ@nMSnJ&577Mv|giQz~GuzKpJ`19yD8 z%c#-V$h!y`vK8NE2KA7HeU}^_cEac0g($DPoV_%Z1E5rw#-lmBOh#&&a}~D22U*(U zevFEd%&;S4qMLpHk^)ap(Y6L{ksuV^Fh4d4(QF0iusY~{`F^|A$-F~qH71P>@QR^; ziLF@}QJxl&o5=5Rc1HL~abu;_S`UBA-!>Wxg%!Jd{AntgT z(BIQ$4Z7QnMYcERmJN^!WPwFJdA?Xl=vABEZr#~4_INm09itK~4CHWZN!VDYsLHWi zI5KJ!=a`8d1~ecaYcb{h)${;(#<(^5daa;HHm%}5$(>gpF$GoL5PpJdb6p8A~YiB~&55xBfXa>{nxlGP~C z(lV$v<*FTpp^^MrU!9fTngQZ!Y*RKEOIoVJ8+Bf*1ubjzWwkipT@NSqMe{wo1bf46 zr>*Il9z|g9=v_qXlgZQ67mjj>#02qh9F;N)VlwY+xU7odH}I|nMQWy1hMUit*}Ge+ zOM3F~JiEFIsOZzIu1-ty4qfb~19?_#KO#=jnQnT^Ps>G-ll9=^4{(sUV!yKt9J$?{ zI3q%t^X)b5?UU!Qr;w64khy6(Oo?uqV5+5(8=tn;w14V|A-M_ZLA!Za?aH=d9yOW^ zU|;{0mOQHf1V4MB_+|}%(3Q0XazBo@g|Z{y?RD=KQG;W{gvkdO)$1Dz+Hm8p^NaAN zsAZYj9et-zS37+Ui_=}*Pxsj zllz?=7k+`V=H@{9XOn}|%Vf<-zLzszZ);OkoajXTS|9RlQrDfKy;Dtg3zep|7L%R9 zSY<5^``N!4SnEoI+PnQG{0+5?A~w_$VBDNdNb+v>RH~$!O7JKndY%{i(*>nKI2R(7~oAts8Zz-9v!K21RUcvKaj9nEz*F}XBH zIV8e7*BLf zGjD&e`r@9M%cZ0VD6R$_XQzUzrb)u~>_6LBjv>u&#@;Y%2{V6$`& zy_?jDoO0caf(k>Y4`Wif6{4AQL~?s5peb0V#$q-54p+pRg_-$bA1TK5YIiEYq{>jV zZ~s#?*wr`_1}#fhT^!*AA<-ZKiPY;{7!6&QJ+R^|v*nZrK*7*9kQ`R(&aPlb_Nh8% zKO7L=VIn#q>G59`z0KSX{-i;O-@0c`)e~zHRM&Q-_ z+;MQ7r0QM7z`b?;$V(z4!h^b~E6qr+R(rqcy$)N!=CJ>Bbe8Ysdd7i~A=wz9%J?Io z8|@AEhQ@zN;BM05wApkj_$BDr2ySFgS_N7~8wl@hB77N+^5c#_gu%f8sZz_l)*XFL z&6;QGyACkE4EUj2pI;1;1H*Cu;loor#YGknujBP6ds$MsB(dXDMx$@}H+&!?%1rS{qL@U~9vfuA*`t7TaStC=zp$Tf=wvtG z3$a~-cduF?T7U*{B3Fuj*73_9DQ~3A&B~hDHJ{|ia$UWIZI+wI-9SS;dTDxUQ zRya~&A-$bRSB6Hmu(!Ln|3p9^aBFt(jG4x`C=Vl;s4yw9P}&zB3b{Ba+*jw}dAd6S z&&>rye=Q_+KOECU6~sqQz{BQxxj4IyDc2puDoAu~&Vi2yF|?4c2MRjSjV@;w4+j+n z*=ZMLev|xTLb%e5!9vtzwS)hs3Db#L_oca0{ln>TjhkcT-&r|C&vqEIsrjYe*=3`m zi0^F1RzBxi?qpv%1M@!Ag|0%0N0q)7I!>NjerzTTLk<%uaVV)kja9p(nHUKk6xmLp zf0LqlnH?cK=PgxwC=J~a8cR}Crm3e@ zfxHresaI zCU;moNa}k1MxE7Ae_iQX$5Zb^(&X~5RabZ_qiiaMHj?(_4pnikF1v#$BQjR zMO9gJrE|P%GUae2PycN>t9R49L(NRPM$CCozDm#{_Sx#mu)KMQ{rlhP`c)UcHweq-rJ zYrj@Wo#n5Fdz@EJ_9?SgP4D;PQf@mn@7gL&4m|JHZSKA*=Rj2r1e8lLHfDpp^EPxKNcJ-naJ-qI45VU(LRVssp4+i`2^P24fv9v(WIr?}5&LYi2ME91$L#M1E& z6`C4edKMgkVmvOJ66#_UUC!@|(K+qGP#yRwm^!P6jq#={xTHcpKA<*3v}c+$fumt4 zPuvW5-(T$52Y;@X!KEgrwCit?QOYMm51X~%GgsyrCl3@i zH8x_dB`oIP5f|?;-Rqg)haEnXctj0Ik;qrcV~ArQEYX{Pa#?=@8uvCA)QKYp^&_RG z>f+k6nvo5&Kd#O?$=VpLzU52kb)qIzRbAM-Cqgs(_+kkv7fBR<@lX05KkYKVF50qL{J`I&SZ{?N0{n2T1ZZo zkAj<=QSnti9D{ww#&#gh$QEEwJ}{Z?^nMFwb3*>qZif;bI$^R5b9^J<9cIF!Efu7W ztE0mff^x;7Wff*>5k9VfR9dE}`O$R==9i(1ma)SLRl>01- zY3?qP=B&HvYD%-Z(OTJBxj|?ufVfFTBP$I;TZ$E^R6u8u*rL>Wb~U$UH(e3CFGQno0f!K)B|Gv~qqm zxrybS*N$5(#kz4!;!)n+5H;0*K(5O@E7#?L%k!kw#@Sj)gT4b8pFvp3eudD|nQs(R zst&E4ChCL=;)NCUrUYAdnmiH)v8i3?w#S2Dg!n|oG_5z@+*A#$ODYS#Yg<9miI16_ zzfB(=V{mv;$g?#Kd_PrO<6mUaO%_-NWx=w=a2uyZ?K%`+IqD5s%m)Eo9H2CFLQ$${ z79@yNPU#_og`|isv$c`@LWX;xI^6fW2!4Jvcc+K_6CwHKO5}X<(mRo zU3=jM0n8BWO#~idl6qixtA^pazVeCPnVx}`7HYKnRP*Jy4>xT^W+i6qrm@bZ+Ls0! zglHYIYFc?(x*S2A?qIA}r@r=wD~-}1|6v&UC(kPaV8^eO;> zim|5Bpsv2PH0dq);sU>oK>?-Ft%+kzMcMb|bh)_Q=j~a8@h!&1agVX9(XNweYqQ

loDht6*graOI>nMd&9D8MNS?e=Ml@N0j) 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 nWyA-{ZgCxC;#UQ?DVL1d)HGX#ee-{}@^A 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

U^0?&s2Yq9@iEts21qRcLR0NW8@ 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.springblade SpringBlade - 3.0.2 + 3.0.3 pom - 3.0.2 - 3.0.2 + 3.0.3 + 3.0.3 1.8 3.8.1 diff --git a/script/docker/.env b/script/docker/.env index 134ce76c..264f45d1 100644 --- a/script/docker/.env +++ b/script/docker/.env @@ -1,2 +1,2 @@ REGISTER=192.168.0.157/blade -TAG=3.0.2 +TAG=3.0.3 diff --git a/script/docker/deploy.sh b/script/docker/deploy.sh index 9d28e2f5..72fd95f5 100644 --- a/script/docker/deploy.sh +++ b/script/docker/deploy.sh @@ -45,7 +45,7 @@ base(){ #启动程序模块 modules(){ - docker-compose up -d blade-gateway1 blade-gateway2 blade-admin blade-swagger blade-auth1 blade-auth2 blade-user blade-desk blade-system blade-log blade-report + docker-compose up -d blade-gateway1 blade-gateway2 blade-admin blade-swagger blade-auth1 blade-auth2 blade-user blade-desk blade-system blade-log blade-report blade-develop } #关闭所有模块 diff --git a/script/docker/docker-compose.yml b/script/docker/docker-compose.yml index f0390539..d02360fc 100644 --- a/script/docker/docker-compose.yml +++ b/script/docker/docker-compose.yml @@ -157,6 +157,13 @@ services: networks: - blade_net + blade-develop: + image: "${REGISTER}/blade-develop:${TAG}" + privileged: true + restart: always + networks: + - blade_net + networks: blade_net: driver: bridge diff --git a/script/service.cmd b/script/fatjar/service.cmd similarity index 100% rename from script/service.cmd rename to script/fatjar/service.cmd diff --git a/script/service.sh b/script/fatjar/service.sh similarity index 96% rename from script/service.sh rename to script/fatjar/service.sh index 091b8320..884d88a8 100644 --- a/script/service.sh +++ b/script/fatjar/service.sh @@ -1,3 +1,6 @@ +#!/bin/bash + +#设置jar文件名 APP_NAME=app.jar #使用说明,用来提示输入参数 diff --git a/script/kuboard/blade-k8s.yaml b/script/kuboard/blade-k8s.yaml new file mode 100644 index 00000000..4e697c22 --- /dev/null +++ b/script/kuboard/blade-k8s.yaml @@ -0,0 +1,22 @@ +#spring配置 +spring: + redis: + ##redis 单机环境配置 + host: redis + port: 6379 + password: + database: 0 + ssl: false + ##redis 集群环境配置 + #cluster: + # nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003 + # commandTimeout: 5000 + +#项目模块集中配置 +blade: + #通用开发生产环境数据库地址(特殊情况可在对应的子工程里配置覆盖) + datasource: + test: + url: jdbc:mysql://saber-db-0.saber-db:3306/blade?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8 + username: root + password: root diff --git a/script/kuboard/kuboard_spring-blade.yaml b/script/kuboard/kuboard_spring-blade.yaml new file mode 100644 index 00000000..1a4a055a --- /dev/null +++ b/script/kuboard/kuboard_spring-blade.yaml @@ -0,0 +1,4576 @@ + +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: blade-admin + namespace: spring-blade + uid: dcccfdff-6d7d-4de8-897c-e5567d059db7 + resourceVersion: '257497' + generation: 2 + creationTimestamp: '2021-05-04T05:10:51Z' + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-admin + annotations: + deployment.kubernetes.io/revision: '1' + managedFields: + - manager: Mozilla + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T05:10:51Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:progressDeadlineSeconds': {} + 'f:replicas': {} + 'f:revisionHistoryLimit': {} + 'f:selector': {} + 'f:strategy': + 'f:rollingUpdate': + .: {} + 'f:maxSurge': {} + 'f:maxUnavailable': {} + 'f:type': {} + 'f:template': + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:containers': + 'k:{"name":"blade-admin"}': + .: {} + 'f:args': {} + 'f:envFrom': {} + 'f:image': {} + 'f:imagePullPolicy': {} + 'f:livenessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:name': {} + 'f:ports': + .: {} + 'k:{"containerPort":80,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'f:readinessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:resources': + .: {} + 'f:limits': + .: {} + 'f:memory': {} + 'f:requests': + .: {} + 'f:memory': {} + 'f:startupProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:terminationMessagePath': {} + 'f:terminationMessagePolicy': {} + 'f:dnsPolicy': {} + 'f:restartPolicy': {} + 'f:schedulerName': {} + 'f:securityContext': {} + 'f:terminationGracePeriodSeconds': {} + - manager: kube-controller-manager + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T07:58:19Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + .: {} + 'f:deployment.kubernetes.io/revision': {} + 'f:status': + 'f:conditions': + .: {} + 'k:{"type":"Available"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'k:{"type":"Progressing"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'f:observedGeneration': {} +spec: + replicas: 0 + selector: + matchLabels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-admin + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-admin + spec: + containers: + - name: blade-admin + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-admin:3.0.3' + args: + - '--spring.profiles.active=${PROFILE}' + - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' + - '--spring.cloud.nacos.discovery.server-addr=${NACOS_SERVER_ADDR}' + - >- + --spring.cloud.sentinel.transport.dashboard=${SENTINEL_DASHBOARD_ADDR} + - '--server.port=80' + ports: + - name: server + containerPort: 80 + protocol: TCP + envFrom: + - configMapRef: + name: blade-config + resources: + limits: + memory: 2Gi + requests: + memory: 200Mi + livenessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + startupProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 20 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 25% + maxSurge: 25% + revisionHistoryLimit: 10 + progressDeadlineSeconds: 600 +status: + observedGeneration: 2 + conditions: + - type: Progressing + status: 'True' + lastUpdateTime: '2021-05-04T05:17:29Z' + lastTransitionTime: '2021-05-04T05:10:51Z' + reason: NewReplicaSetAvailable + message: ReplicaSet "blade-admin-54c5d4ff49" has successfully progressed. + - type: Available + status: 'True' + lastUpdateTime: '2021-05-04T07:58:19Z' + lastTransitionTime: '2021-05-04T07:58:19Z' + reason: MinimumReplicasAvailable + message: Deployment has minimum availability. + +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: blade-auth + namespace: spring-blade + uid: 6df4a628-e52a-4029-b26e-3ad5db02aa69 + resourceVersion: '257507' + generation: 2 + creationTimestamp: '2021-05-04T07:32:42Z' + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-auth + annotations: + deployment.kubernetes.io/revision: '1' + k8s.kuboard.cn/workload: blade-auth + managedFields: + - manager: Mozilla + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T07:32:42Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + .: {} + 'f:k8s.kuboard.cn/workload': {} + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:progressDeadlineSeconds': {} + 'f:replicas': {} + 'f:revisionHistoryLimit': {} + 'f:selector': {} + 'f:strategy': + 'f:rollingUpdate': + .: {} + 'f:maxSurge': {} + 'f:maxUnavailable': {} + 'f:type': {} + 'f:template': + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:containers': + 'k:{"name":"blade-auth"}': + .: {} + 'f:args': {} + 'f:envFrom': {} + 'f:image': {} + 'f:imagePullPolicy': {} + 'f:livenessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:name': {} + 'f:ports': + .: {} + 'k:{"containerPort":80,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'f:readinessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:resources': + .: {} + 'f:limits': + .: {} + 'f:memory': {} + 'f:requests': + .: {} + 'f:memory': {} + 'f:startupProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:terminationMessagePath': {} + 'f:terminationMessagePolicy': {} + 'f:dnsPolicy': {} + 'f:restartPolicy': {} + 'f:schedulerName': {} + 'f:securityContext': {} + 'f:terminationGracePeriodSeconds': {} + - manager: kube-controller-manager + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T07:59:02Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + 'f:deployment.kubernetes.io/revision': {} + 'f:status': + 'f:conditions': + .: {} + 'k:{"type":"Available"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'k:{"type":"Progressing"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'f:observedGeneration': {} +spec: + replicas: 0 + selector: + matchLabels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-auth + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-auth + spec: + containers: + - name: blade-auth + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-auth:3.0.3' + args: + - '--spring.profiles.active=${PROFILE}' + - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' + - '--spring.cloud.nacos.discovery.server-addr=${NACOS_SERVER_ADDR}' + - >- + --spring.cloud.sentinel.transport.dashboard=${SENTINEL_DASHBOARD_ADDR} + - '--server.port=80' + ports: + - name: server + containerPort: 80 + protocol: TCP + envFrom: + - configMapRef: + name: blade-config + resources: + limits: + memory: 2Gi + requests: + memory: 200Mi + livenessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + startupProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 20 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 25% + maxSurge: 25% + revisionHistoryLimit: 10 + progressDeadlineSeconds: 600 +status: + observedGeneration: 2 + conditions: + - type: Progressing + status: 'True' + lastUpdateTime: '2021-05-04T07:33:33Z' + lastTransitionTime: '2021-05-04T07:32:42Z' + reason: NewReplicaSetAvailable + message: ReplicaSet "blade-auth-78fc8bfd98" has successfully progressed. + - type: Available + status: 'True' + lastUpdateTime: '2021-05-04T07:59:02Z' + lastTransitionTime: '2021-05-04T07:59:02Z' + reason: MinimumReplicasAvailable + message: Deployment has minimum availability. + +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: blade-desk + namespace: spring-blade + uid: 3b4073a7-9808-4fc7-8fe6-b8ae492fbff0 + resourceVersion: '257519' + generation: 3 + creationTimestamp: '2021-05-04T07:50:51Z' + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-desk + annotations: + deployment.kubernetes.io/revision: '2' + k8s.kuboard.cn/workload: blade-desk + managedFields: + - manager: Mozilla + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T08:06:55Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + .: {} + 'f:k8s.kuboard.cn/workload': {} + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:progressDeadlineSeconds': {} + 'f:replicas': {} + 'f:revisionHistoryLimit': {} + 'f:selector': {} + 'f:strategy': + 'f:rollingUpdate': + .: {} + 'f:maxSurge': {} + 'f:maxUnavailable': {} + 'f:type': {} + 'f:template': + 'f:metadata': + 'f:annotations': + .: {} + 'f:kubectl.kubernetes.io/restartedAt': {} + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:containers': + 'k:{"name":"blade-desk"}': + .: {} + 'f:args': {} + 'f:envFrom': {} + 'f:image': {} + 'f:imagePullPolicy': {} + 'f:livenessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:name': {} + 'f:ports': + .: {} + 'k:{"containerPort":80,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'f:readinessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:resources': + .: {} + 'f:limits': + .: {} + 'f:memory': {} + 'f:requests': + .: {} + 'f:memory': {} + 'f:startupProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:terminationMessagePath': {} + 'f:terminationMessagePolicy': {} + 'f:dnsPolicy': {} + 'f:restartPolicy': {} + 'f:schedulerName': {} + 'f:securityContext': {} + 'f:terminationGracePeriodSeconds': {} + - manager: kube-controller-manager + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T08:07:55Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + 'f:deployment.kubernetes.io/revision': {} + 'f:status': + 'f:conditions': + .: {} + 'k:{"type":"Available"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'k:{"type":"Progressing"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'f:observedGeneration': {} +spec: + replicas: 0 + selector: + matchLabels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-desk + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-desk + annotations: + kubectl.kubernetes.io/restartedAt: '2021-05-04T16:06:55+08:00' + spec: + containers: + - name: blade-desk + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-desk:3.0.3' + args: + - '--spring.profiles.active=${PROFILE}' + - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' + - '--spring.cloud.nacos.discovery.server-addr=${NACOS_SERVER_ADDR}' + - >- + --spring.cloud.sentinel.transport.dashboard=${SENTINEL_DASHBOARD_ADDR} + - '--server.port=80' + ports: + - name: server + containerPort: 80 + protocol: TCP + envFrom: + - configMapRef: + name: blade-config + resources: + limits: + memory: 2Gi + requests: + memory: 200Mi + livenessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + startupProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 20 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 25% + maxSurge: 25% + revisionHistoryLimit: 10 + progressDeadlineSeconds: 600 +status: + observedGeneration: 3 + conditions: + - type: Available + status: 'True' + lastUpdateTime: '2021-05-04T08:07:55Z' + lastTransitionTime: '2021-05-04T08:07:55Z' + reason: MinimumReplicasAvailable + message: Deployment has minimum availability. + - type: Progressing + status: 'True' + lastUpdateTime: '2021-05-04T08:07:55Z' + lastTransitionTime: '2021-05-04T07:50:51Z' + reason: NewReplicaSetAvailable + message: ReplicaSet "blade-desk-6cd55955f6" has successfully progressed. + +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: blade-develop + namespace: spring-blade + uid: 057472ce-f78f-4fc6-8101-2605ff68dfab + resourceVersion: '257531' + generation: 3 + creationTimestamp: '2021-05-04T07:51:38Z' + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-develop + annotations: + deployment.kubernetes.io/revision: '2' + k8s.kuboard.cn/workload: blade-develop + managedFields: + - manager: Mozilla + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T08:07:08Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + .: {} + 'f:k8s.kuboard.cn/workload': {} + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:progressDeadlineSeconds': {} + 'f:replicas': {} + 'f:revisionHistoryLimit': {} + 'f:selector': {} + 'f:strategy': + 'f:rollingUpdate': + .: {} + 'f:maxSurge': {} + 'f:maxUnavailable': {} + 'f:type': {} + 'f:template': + 'f:metadata': + 'f:annotations': + .: {} + 'f:kubectl.kubernetes.io/restartedAt': {} + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:containers': + 'k:{"name":"blade-develop"}': + .: {} + 'f:args': {} + 'f:envFrom': {} + 'f:image': {} + 'f:imagePullPolicy': {} + 'f:livenessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:name': {} + 'f:ports': + .: {} + 'k:{"containerPort":80,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'f:readinessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:resources': + .: {} + 'f:limits': + .: {} + 'f:memory': {} + 'f:requests': + .: {} + 'f:memory': {} + 'f:startupProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:terminationMessagePath': {} + 'f:terminationMessagePolicy': {} + 'f:dnsPolicy': {} + 'f:restartPolicy': {} + 'f:schedulerName': {} + 'f:securityContext': {} + 'f:terminationGracePeriodSeconds': {} + - manager: kube-controller-manager + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T08:08:18Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + 'f:deployment.kubernetes.io/revision': {} + 'f:status': + 'f:conditions': + .: {} + 'k:{"type":"Available"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'k:{"type":"Progressing"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'f:observedGeneration': {} +spec: + replicas: 0 + selector: + matchLabels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-develop + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-develop + annotations: + kubectl.kubernetes.io/restartedAt: '2021-05-04T16:07:08+08:00' + spec: + containers: + - name: blade-develop + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-develop:3.0.3' + args: + - '--spring.profiles.active=${PROFILE}' + - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' + - '--spring.cloud.nacos.discovery.server-addr=${NACOS_SERVER_ADDR}' + - >- + --spring.cloud.sentinel.transport.dashboard=${SENTINEL_DASHBOARD_ADDR} + - '--server.port=80' + ports: + - name: server + containerPort: 80 + protocol: TCP + envFrom: + - configMapRef: + name: blade-config + resources: + limits: + memory: 2Gi + requests: + memory: 200Mi + livenessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + startupProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 20 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 25% + maxSurge: 25% + revisionHistoryLimit: 10 + progressDeadlineSeconds: 600 +status: + observedGeneration: 3 + conditions: + - type: Available + status: 'True' + lastUpdateTime: '2021-05-04T08:08:18Z' + lastTransitionTime: '2021-05-04T08:08:18Z' + reason: MinimumReplicasAvailable + message: Deployment has minimum availability. + - type: Progressing + status: 'True' + lastUpdateTime: '2021-05-04T08:08:18Z' + lastTransitionTime: '2021-05-04T07:51:38Z' + reason: NewReplicaSetAvailable + message: ReplicaSet "blade-develop-5784fd7449" has successfully progressed. + +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: blade-gateway + namespace: spring-blade + uid: 329cf005-bd37-4471-9a9d-df981ff7d502 + resourceVersion: '257544' + generation: 2 + creationTimestamp: '2021-05-03T13:54:21Z' + labels: + k8s.kuboard.cn/layer: gateway + k8s.kuboard.cn/name: blade-gateway + annotations: + deployment.kubernetes.io/revision: '1' + managedFields: + - manager: Mozilla + operation: Update + apiVersion: apps/v1 + time: '2021-05-03T13:54:21Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:progressDeadlineSeconds': {} + 'f:replicas': {} + 'f:revisionHistoryLimit': {} + 'f:selector': {} + 'f:strategy': + 'f:rollingUpdate': + .: {} + 'f:maxSurge': {} + 'f:maxUnavailable': {} + 'f:type': {} + 'f:template': + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:containers': + 'k:{"name":"blade-gateway"}': + .: {} + 'f:args': {} + 'f:envFrom': {} + 'f:image': {} + 'f:imagePullPolicy': {} + 'f:livenessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:name': {} + 'f:ports': + .: {} + 'k:{"containerPort":80,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'f:readinessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:resources': + .: {} + 'f:limits': + .: {} + 'f:memory': {} + 'f:requests': + .: {} + 'f:memory': {} + 'f:startupProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:initialDelaySeconds': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:terminationMessagePath': {} + 'f:terminationMessagePolicy': {} + 'f:dnsPolicy': {} + 'f:restartPolicy': {} + 'f:schedulerName': {} + 'f:securityContext': {} + 'f:terminationGracePeriodSeconds': {} + - manager: kube-controller-manager + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T07:56:01Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + .: {} + 'f:deployment.kubernetes.io/revision': {} + 'f:status': + 'f:conditions': + .: {} + 'k:{"type":"Available"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'k:{"type":"Progressing"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'f:observedGeneration': {} +spec: + replicas: 0 + selector: + matchLabels: + k8s.kuboard.cn/layer: gateway + k8s.kuboard.cn/name: blade-gateway + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: gateway + k8s.kuboard.cn/name: blade-gateway + spec: + containers: + - name: blade-gateway + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-gateway:3.0.3' + args: + - '--spring.profiles.active=${PROFILE}' + - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' + - '--spring.cloud.nacos.discovery.server-addr=${NACOS_SERVER_ADDR}' + - >- + --spring.cloud.sentinel.transport.dashboard=${SENTINEL_DASHBOARD_ADDR} + - '--server.port=80' + ports: + - name: server + containerPort: 80 + protocol: TCP + envFrom: + - configMapRef: + name: blade-config + resources: + limits: + memory: 2Gi + requests: + memory: 200Mi + livenessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + startupProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + initialDelaySeconds: 30 + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 20 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 25% + maxSurge: 25% + revisionHistoryLimit: 10 + progressDeadlineSeconds: 600 +status: + observedGeneration: 2 + conditions: + - type: Progressing + status: 'True' + lastUpdateTime: '2021-05-03T13:55:11Z' + lastTransitionTime: '2021-05-03T13:54:21Z' + reason: NewReplicaSetAvailable + message: ReplicaSet "blade-gateway-56b5f6f4ff" has successfully progressed. + - type: Available + status: 'True' + lastUpdateTime: '2021-05-04T07:56:01Z' + lastTransitionTime: '2021-05-04T07:56:01Z' + reason: MinimumReplicasAvailable + message: Deployment has minimum availability. + +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: blade-log + namespace: spring-blade + uid: 42f28811-bf90-465c-b092-7197607779e1 + resourceVersion: '257554' + generation: 2 + creationTimestamp: '2021-05-04T07:52:11Z' + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-log + annotations: + deployment.kubernetes.io/revision: '1' + k8s.kuboard.cn/workload: blade-log + managedFields: + - manager: Mozilla + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T07:52:11Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + .: {} + 'f:k8s.kuboard.cn/workload': {} + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:progressDeadlineSeconds': {} + 'f:replicas': {} + 'f:revisionHistoryLimit': {} + 'f:selector': {} + 'f:strategy': + 'f:rollingUpdate': + .: {} + 'f:maxSurge': {} + 'f:maxUnavailable': {} + 'f:type': {} + 'f:template': + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:containers': + 'k:{"name":"blade-log"}': + .: {} + 'f:args': {} + 'f:envFrom': {} + 'f:image': {} + 'f:imagePullPolicy': {} + 'f:livenessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:name': {} + 'f:ports': + .: {} + 'k:{"containerPort":80,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'f:readinessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:resources': + .: {} + 'f:limits': + .: {} + 'f:memory': {} + 'f:requests': + .: {} + 'f:memory': {} + 'f:startupProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:terminationMessagePath': {} + 'f:terminationMessagePolicy': {} + 'f:dnsPolicy': {} + 'f:restartPolicy': {} + 'f:schedulerName': {} + 'f:securityContext': {} + 'f:terminationGracePeriodSeconds': {} + - manager: kube-controller-manager + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T07:57:01Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + 'f:deployment.kubernetes.io/revision': {} + 'f:status': + 'f:conditions': + .: {} + 'k:{"type":"Available"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'k:{"type":"Progressing"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'f:observedGeneration': {} +spec: + replicas: 0 + selector: + matchLabels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-log + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-log + spec: + containers: + - name: blade-log + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-log:3.0.3' + args: + - '--spring.profiles.active=${PROFILE}' + - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' + - '--spring.cloud.nacos.discovery.server-addr=${NACOS_SERVER_ADDR}' + - >- + --spring.cloud.sentinel.transport.dashboard=${SENTINEL_DASHBOARD_ADDR} + - '--server.port=80' + ports: + - name: server + containerPort: 80 + protocol: TCP + envFrom: + - configMapRef: + name: blade-config + resources: + limits: + memory: 2Gi + requests: + memory: 200Mi + livenessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + startupProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 20 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 25% + maxSurge: 25% + revisionHistoryLimit: 10 + progressDeadlineSeconds: 600 +status: + observedGeneration: 2 + conditions: + - type: Available + status: 'True' + lastUpdateTime: '2021-05-04T07:57:01Z' + lastTransitionTime: '2021-05-04T07:57:01Z' + reason: MinimumReplicasAvailable + message: Deployment has minimum availability. + - type: Progressing + status: 'True' + lastUpdateTime: '2021-05-04T07:57:01Z' + lastTransitionTime: '2021-05-04T07:52:11Z' + reason: NewReplicaSetAvailable + message: ReplicaSet "blade-log-f88788d8d" has successfully progressed. + +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: blade-report + namespace: spring-blade + uid: 89e6ff7b-9529-496f-9f1c-c6d67484c414 + resourceVersion: '257572' + generation: 2 + creationTimestamp: '2021-05-04T07:54:18Z' + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-report + annotations: + deployment.kubernetes.io/revision: '1' + k8s.kuboard.cn/workload: blade-report + managedFields: + - manager: Mozilla + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T07:54:18Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + .: {} + 'f:k8s.kuboard.cn/workload': {} + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:progressDeadlineSeconds': {} + 'f:replicas': {} + 'f:revisionHistoryLimit': {} + 'f:selector': {} + 'f:strategy': + 'f:rollingUpdate': + .: {} + 'f:maxSurge': {} + 'f:maxUnavailable': {} + 'f:type': {} + 'f:template': + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:containers': + 'k:{"name":"blade-report"}': + .: {} + 'f:args': {} + 'f:envFrom': {} + 'f:image': {} + 'f:imagePullPolicy': {} + 'f:livenessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:name': {} + 'f:ports': + .: {} + 'k:{"containerPort":80,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'f:readinessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:resources': + .: {} + 'f:limits': + .: {} + 'f:memory': {} + 'f:requests': + .: {} + 'f:memory': {} + 'f:startupProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:terminationMessagePath': {} + 'f:terminationMessagePolicy': {} + 'f:dnsPolicy': {} + 'f:restartPolicy': {} + 'f:schedulerName': {} + 'f:securityContext': {} + 'f:terminationGracePeriodSeconds': {} + - manager: kube-controller-manager + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T07:55:58Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + 'f:deployment.kubernetes.io/revision': {} + 'f:status': + 'f:conditions': + .: {} + 'k:{"type":"Available"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'k:{"type":"Progressing"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'f:observedGeneration': {} +spec: + replicas: 0 + selector: + matchLabels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-report + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-report + spec: + containers: + - name: blade-report + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-report:3.0.3' + args: + - '--spring.profiles.active=${PROFILE}' + - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' + - '--spring.cloud.nacos.discovery.server-addr=${NACOS_SERVER_ADDR}' + - >- + --spring.cloud.sentinel.transport.dashboard=${SENTINEL_DASHBOARD_ADDR} + - '--server.port=80' + ports: + - name: server + containerPort: 80 + protocol: TCP + envFrom: + - configMapRef: + name: blade-config + resources: + limits: + memory: 2Gi + requests: + memory: 200Mi + livenessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + startupProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 20 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 25% + maxSurge: 25% + revisionHistoryLimit: 10 + progressDeadlineSeconds: 600 +status: + observedGeneration: 2 + conditions: + - type: Available + status: 'True' + lastUpdateTime: '2021-05-04T07:55:58Z' + lastTransitionTime: '2021-05-04T07:55:58Z' + reason: MinimumReplicasAvailable + message: Deployment has minimum availability. + - type: Progressing + status: 'True' + lastUpdateTime: '2021-05-04T07:55:58Z' + lastTransitionTime: '2021-05-04T07:54:18Z' + reason: NewReplicaSetAvailable + message: ReplicaSet "blade-report-75b5fc4d98" has successfully progressed. + +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: blade-resource + namespace: spring-blade + uid: 46c66fb6-f27f-4bdb-8060-5d8188868588 + resourceVersion: '257582' + generation: 2 + creationTimestamp: '2021-05-04T08:05:01Z' + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-resource + annotations: + deployment.kubernetes.io/revision: '1' + k8s.kuboard.cn/workload: blade-resource + managedFields: + - manager: Mozilla + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T08:05:01Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + .: {} + 'f:k8s.kuboard.cn/workload': {} + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:progressDeadlineSeconds': {} + 'f:replicas': {} + 'f:revisionHistoryLimit': {} + 'f:selector': {} + 'f:strategy': + 'f:rollingUpdate': + .: {} + 'f:maxSurge': {} + 'f:maxUnavailable': {} + 'f:type': {} + 'f:template': + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:containers': + 'k:{"name":"blade-resource"}': + .: {} + 'f:args': {} + 'f:envFrom': {} + 'f:image': {} + 'f:imagePullPolicy': {} + 'f:livenessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:name': {} + 'f:ports': + .: {} + 'k:{"containerPort":80,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'f:readinessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:resources': + .: {} + 'f:limits': + .: {} + 'f:memory': {} + 'f:requests': + .: {} + 'f:memory': {} + 'f:startupProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:terminationMessagePath': {} + 'f:terminationMessagePolicy': {} + 'f:dnsPolicy': {} + 'f:restartPolicy': {} + 'f:schedulerName': {} + 'f:securityContext': {} + 'f:terminationGracePeriodSeconds': {} + - manager: kube-controller-manager + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T08:05:41Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + 'f:deployment.kubernetes.io/revision': {} + 'f:status': + 'f:conditions': + .: {} + 'k:{"type":"Available"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'k:{"type":"Progressing"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'f:observedGeneration': {} +spec: + replicas: 0 + selector: + matchLabels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-resource + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-resource + spec: + containers: + - name: blade-resource + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-resource:3.0.3' + args: + - '--spring.profiles.active=${PROFILE}' + - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' + - '--spring.cloud.nacos.discovery.server-addr=${NACOS_SERVER_ADDR}' + - >- + --spring.cloud.sentinel.transport.dashboard=${SENTINEL_DASHBOARD_ADDR} + - '--server.port=80' + ports: + - name: server + containerPort: 80 + protocol: TCP + envFrom: + - configMapRef: + name: blade-config + resources: + limits: + memory: 2Gi + requests: + memory: 200Mi + livenessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + startupProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 20 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 25% + maxSurge: 25% + revisionHistoryLimit: 10 + progressDeadlineSeconds: 600 +status: + observedGeneration: 2 + conditions: + - type: Available + status: 'True' + lastUpdateTime: '2021-05-04T08:05:41Z' + lastTransitionTime: '2021-05-04T08:05:41Z' + reason: MinimumReplicasAvailable + message: Deployment has minimum availability. + - type: Progressing + status: 'True' + lastUpdateTime: '2021-05-04T08:05:41Z' + lastTransitionTime: '2021-05-04T08:05:01Z' + reason: NewReplicaSetAvailable + message: ReplicaSet "blade-resource-58bdcf78f6" has successfully progressed. + +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: blade-system + namespace: spring-blade + uid: b70b9c4a-2794-4a69-b0bc-471ecf6ee4bc + resourceVersion: '257593' + generation: 2 + creationTimestamp: '2021-05-04T08:05:33Z' + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-system + annotations: + deployment.kubernetes.io/revision: '1' + k8s.kuboard.cn/workload: blade-system + managedFields: + - manager: Mozilla + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T08:05:33Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + .: {} + 'f:k8s.kuboard.cn/workload': {} + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:progressDeadlineSeconds': {} + 'f:replicas': {} + 'f:revisionHistoryLimit': {} + 'f:selector': {} + 'f:strategy': + 'f:rollingUpdate': + .: {} + 'f:maxSurge': {} + 'f:maxUnavailable': {} + 'f:type': {} + 'f:template': + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:containers': + 'k:{"name":"blade-system"}': + .: {} + 'f:args': {} + 'f:envFrom': {} + 'f:image': {} + 'f:imagePullPolicy': {} + 'f:livenessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:name': {} + 'f:ports': + .: {} + 'k:{"containerPort":80,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'f:readinessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:resources': + .: {} + 'f:limits': + .: {} + 'f:memory': {} + 'f:requests': + .: {} + 'f:memory': {} + 'f:startupProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:terminationMessagePath': {} + 'f:terminationMessagePolicy': {} + 'f:dnsPolicy': {} + 'f:restartPolicy': {} + 'f:schedulerName': {} + 'f:securityContext': {} + 'f:terminationGracePeriodSeconds': {} + - manager: kube-controller-manager + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T08:06:23Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + 'f:deployment.kubernetes.io/revision': {} + 'f:status': + 'f:conditions': + .: {} + 'k:{"type":"Available"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'k:{"type":"Progressing"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'f:observedGeneration': {} +spec: + replicas: 0 + selector: + matchLabels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-system + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-system + spec: + containers: + - name: blade-system + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-system:3.0.3' + args: + - '--spring.profiles.active=${PROFILE}' + - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' + - '--spring.cloud.nacos.discovery.server-addr=${NACOS_SERVER_ADDR}' + - >- + --spring.cloud.sentinel.transport.dashboard=${SENTINEL_DASHBOARD_ADDR} + - '--server.port=80' + ports: + - name: server + containerPort: 80 + protocol: TCP + envFrom: + - configMapRef: + name: blade-config + resources: + limits: + memory: 2Gi + requests: + memory: 200Mi + livenessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + startupProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 20 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 25% + maxSurge: 25% + revisionHistoryLimit: 10 + progressDeadlineSeconds: 600 +status: + observedGeneration: 2 + conditions: + - type: Available + status: 'True' + lastUpdateTime: '2021-05-04T08:06:23Z' + lastTransitionTime: '2021-05-04T08:06:23Z' + reason: MinimumReplicasAvailable + message: Deployment has minimum availability. + - type: Progressing + status: 'True' + lastUpdateTime: '2021-05-04T08:06:23Z' + lastTransitionTime: '2021-05-04T08:05:33Z' + reason: NewReplicaSetAvailable + message: ReplicaSet "blade-system-8dd57fd47" has successfully progressed. + +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: blade-user + namespace: spring-blade + uid: 597b4693-e9a6-4d56-b040-84839e6e760e + resourceVersion: '257611' + generation: 2 + creationTimestamp: '2021-05-04T08:05:59Z' + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-user + annotations: + deployment.kubernetes.io/revision: '1' + k8s.kuboard.cn/workload: blade-user + managedFields: + - manager: Mozilla + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T08:05:59Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + .: {} + 'f:k8s.kuboard.cn/workload': {} + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:progressDeadlineSeconds': {} + 'f:replicas': {} + 'f:revisionHistoryLimit': {} + 'f:selector': {} + 'f:strategy': + 'f:rollingUpdate': + .: {} + 'f:maxSurge': {} + 'f:maxUnavailable': {} + 'f:type': {} + 'f:template': + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:containers': + 'k:{"name":"blade-user"}': + .: {} + 'f:args': {} + 'f:envFrom': {} + 'f:image': {} + 'f:imagePullPolicy': {} + 'f:livenessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:name': {} + 'f:ports': + .: {} + 'k:{"containerPort":80,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'f:readinessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:resources': + .: {} + 'f:limits': + .: {} + 'f:memory': {} + 'f:requests': + .: {} + 'f:memory': {} + 'f:startupProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:terminationMessagePath': {} + 'f:terminationMessagePolicy': {} + 'f:dnsPolicy': {} + 'f:restartPolicy': {} + 'f:schedulerName': {} + 'f:securityContext': {} + 'f:terminationGracePeriodSeconds': {} + - manager: kube-controller-manager + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T08:06:59Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + 'f:deployment.kubernetes.io/revision': {} + 'f:status': + 'f:conditions': + .: {} + 'k:{"type":"Available"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'k:{"type":"Progressing"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'f:observedGeneration': {} +spec: + replicas: 0 + selector: + matchLabels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-user + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: svc + k8s.kuboard.cn/name: blade-user + spec: + containers: + - name: blade-user + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-user:3.0.3' + args: + - '--spring.profiles.active=${PROFILE}' + - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' + - '--spring.cloud.nacos.discovery.server-addr=${NACOS_SERVER_ADDR}' + - >- + --spring.cloud.sentinel.transport.dashboard=${SENTINEL_DASHBOARD_ADDR} + - '--server.port=80' + ports: + - name: server + containerPort: 80 + protocol: TCP + envFrom: + - configMapRef: + name: blade-config + resources: + limits: + memory: 2Gi + requests: + memory: 200Mi + livenessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + startupProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 20 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 25% + maxSurge: 25% + revisionHistoryLimit: 10 + progressDeadlineSeconds: 600 +status: + observedGeneration: 2 + conditions: + - type: Available + status: 'True' + lastUpdateTime: '2021-05-04T08:06:59Z' + lastTransitionTime: '2021-05-04T08:06:59Z' + reason: MinimumReplicasAvailable + message: Deployment has minimum availability. + - type: Progressing + status: 'True' + lastUpdateTime: '2021-05-04T08:06:59Z' + lastTransitionTime: '2021-05-04T08:05:59Z' + reason: NewReplicaSetAvailable + message: ReplicaSet "blade-user-795df5c657" has successfully progressed. + +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: saber-web + namespace: spring-blade + uid: 08fa376e-dbdd-4684-8cb5-0fd478e1a0c2 + resourceVersion: '257630' + generation: 2 + creationTimestamp: '2021-05-04T08:55:21Z' + labels: + k8s.kuboard.cn/layer: web + k8s.kuboard.cn/name: saber-web + annotations: + deployment.kubernetes.io/revision: '1' + managedFields: + - manager: Mozilla + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T08:55:21Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:progressDeadlineSeconds': {} + 'f:replicas': {} + 'f:revisionHistoryLimit': {} + 'f:selector': {} + 'f:strategy': + 'f:rollingUpdate': + .: {} + 'f:maxSurge': {} + 'f:maxUnavailable': {} + 'f:type': {} + 'f:template': + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:containers': + 'k:{"name":"saber-web"}': + .: {} + 'f:image': {} + 'f:imagePullPolicy': {} + 'f:livenessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:name': {} + 'f:ports': + .: {} + 'k:{"containerPort":80,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'f:readinessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:resources': + .: {} + 'f:limits': + .: {} + 'f:memory': {} + 'f:requests': + .: {} + 'f:memory': {} + 'f:startupProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:terminationMessagePath': {} + 'f:terminationMessagePolicy': {} + 'f:dnsPolicy': {} + 'f:restartPolicy': {} + 'f:schedulerName': {} + 'f:securityContext': {} + 'f:terminationGracePeriodSeconds': {} + - manager: kube-controller-manager + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T08:57:10Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + .: {} + 'f:deployment.kubernetes.io/revision': {} + 'f:status': + 'f:conditions': + .: {} + 'k:{"type":"Available"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'k:{"type":"Progressing"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'f:observedGeneration': {} +spec: + replicas: 0 + selector: + matchLabels: + k8s.kuboard.cn/layer: web + k8s.kuboard.cn/name: saber-web + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: web + k8s.kuboard.cn/name: saber-web + spec: + containers: + - name: saber-web + image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-web:3.0.3' + ports: + - name: web + containerPort: 80 + protocol: TCP + resources: + limits: + memory: 1Gi + requests: + memory: 100Mi + livenessProbe: + httpGet: + path: / + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + httpGet: + path: / + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + startupProbe: + httpGet: + path: / + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 20 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 25% + maxSurge: 25% + revisionHistoryLimit: 10 + progressDeadlineSeconds: 600 +status: + observedGeneration: 2 + conditions: + - type: Available + status: 'True' + lastUpdateTime: '2021-05-04T08:57:10Z' + lastTransitionTime: '2021-05-04T08:57:10Z' + reason: MinimumReplicasAvailable + message: Deployment has minimum availability. + - type: Progressing + status: 'True' + lastUpdateTime: '2021-05-04T08:57:10Z' + lastTransitionTime: '2021-05-04T08:55:21Z' + reason: NewReplicaSetAvailable + message: ReplicaSet "saber-web-775f6b6dc" has successfully progressed. + +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: swagger + namespace: spring-blade + uid: d6ef6c76-2135-4340-b9b5-1d8f9c247912 + resourceVersion: '257644' + generation: 2 + creationTimestamp: '2021-05-03T14:45:05Z' + labels: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: swagger + annotations: + deployment.kubernetes.io/revision: '1' + k8s.kuboard.cn/workload: swagger + managedFields: + - manager: Mozilla + operation: Update + apiVersion: apps/v1 + time: '2021-05-03T14:45:05Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + .: {} + 'f:k8s.kuboard.cn/workload': {} + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:progressDeadlineSeconds': {} + 'f:replicas': {} + 'f:revisionHistoryLimit': {} + 'f:selector': {} + 'f:strategy': + 'f:rollingUpdate': + .: {} + 'f:maxSurge': {} + 'f:maxUnavailable': {} + 'f:type': {} + 'f:template': + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:containers': + 'k:{"name":"blade-swagger"}': + .: {} + 'f:args': {} + 'f:envFrom': {} + 'f:image': {} + 'f:imagePullPolicy': {} + 'f:livenessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:name': {} + 'f:ports': + .: {} + 'k:{"containerPort":80,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'f:readinessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:resources': + .: {} + 'f:limits': + .: {} + 'f:memory': {} + 'f:requests': + .: {} + 'f:memory': {} + 'f:startupProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:initialDelaySeconds': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:terminationMessagePath': {} + 'f:terminationMessagePolicy': {} + 'f:dnsPolicy': {} + 'f:restartPolicy': {} + 'f:schedulerName': {} + 'f:securityContext': {} + 'f:terminationGracePeriodSeconds': {} + - manager: kube-controller-manager + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T07:54:00Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:annotations': + 'f:deployment.kubernetes.io/revision': {} + 'f:status': + 'f:conditions': + .: {} + 'k:{"type":"Available"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'k:{"type":"Progressing"}': + .: {} + 'f:lastTransitionTime': {} + 'f:lastUpdateTime': {} + 'f:message': {} + 'f:reason': {} + 'f:status': {} + 'f:type': {} + 'f:observedGeneration': {} +spec: + replicas: 0 + selector: + matchLabels: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: swagger + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: swagger + spec: + containers: + - name: blade-swagger + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-swagger:3.0.3' + args: + - '--spring.profiles.active=${PROFILE}' + - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' + - '--spring.cloud.nacos.discovery.server-addr=${NACOS_SERVER_ADDR}' + - >- + --spring.cloud.sentinel.transport.dashboard=${SENTINEL_DASHBOARD_ADDR} + - '--server.port=80' + ports: + - name: server + containerPort: 80 + protocol: TCP + envFrom: + - configMapRef: + name: blade-config + resources: + limits: + memory: 2Gi + requests: + memory: 200Mi + livenessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + startupProbe: + httpGet: + path: /actuator/health + port: 80 + scheme: HTTP + initialDelaySeconds: 30 + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 20 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 25% + maxSurge: 25% + revisionHistoryLimit: 10 + progressDeadlineSeconds: 600 +status: + observedGeneration: 2 + conditions: + - type: Progressing + status: 'True' + lastUpdateTime: '2021-05-03T14:45:55Z' + lastTransitionTime: '2021-05-03T14:45:05Z' + reason: NewReplicaSetAvailable + message: ReplicaSet "swagger-666f768bd9" has successfully progressed. + - type: Available + status: 'True' + lastUpdateTime: '2021-05-04T07:54:00Z' + lastTransitionTime: '2021-05-04T07:54:00Z' + reason: MinimumReplicasAvailable + message: Deployment has minimum availability. + +--- +kind: StatefulSet +apiVersion: apps/v1 +metadata: + name: nacos + namespace: spring-blade + uid: 6adec24a-ef33-401c-8bdd-ea29334bd4bf + resourceVersion: '212196' + generation: 8 + creationTimestamp: '2021-05-02T12:08:02Z' + labels: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: nacos + managedFields: + - manager: Mozilla + operation: Update + apiVersion: apps/v1 + time: '2021-05-02T12:17:56Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + .: {} + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:podManagementPolicy': {} + 'f:replicas': {} + 'f:revisionHistoryLimit': {} + 'f:selector': {} + 'f:serviceName': {} + 'f:template': + 'f:metadata': + .: {} + 'f:creationTimestamp': {} + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:containers': + 'k:{"name":"nacos"}': + .: {} + 'f:env': + .: {} + 'k:{"name":"MODE"}': + .: {} + 'f:name': {} + 'f:value': {} + 'k:{"name":"MYSQL_SERVICE_DB_NAME"}': + .: {} + 'f:name': {} + 'f:value': {} + 'k:{"name":"MYSQL_SERVICE_HOST"}': + .: {} + 'f:name': {} + 'f:value': {} + 'k:{"name":"MYSQL_SERVICE_PASSWORD"}': + .: {} + 'f:name': {} + 'f:value': {} + 'k:{"name":"MYSQL_SERVICE_PORT"}': + .: {} + 'f:name': {} + 'f:value': {} + 'k:{"name":"MYSQL_SERVICE_USER"}': + .: {} + 'f:name': {} + 'f:value': {} + 'k:{"name":"PREFER_HOST_MODE"}': + .: {} + 'f:name': {} + 'f:value': {} + 'k:{"name":"SPRING_DATASOURCE_PLATFORM"}': + .: {} + 'f:name': {} + 'f:value': {} + 'f:image': {} + 'f:imagePullPolicy': {} + 'f:livenessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:initialDelaySeconds': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:name': {} + 'f:ports': + .: {} + 'k:{"containerPort":8848,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'k:{"containerPort":9848,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'k:{"containerPort":9849,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'f:readinessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:initialDelaySeconds': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:resources': + .: {} + 'f:limits': + .: {} + 'f:memory': {} + 'f:requests': + .: {} + 'f:memory': {} + 'f:startupProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:initialDelaySeconds': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:terminationMessagePath': {} + 'f:terminationMessagePolicy': {} + 'f:volumeMounts': + .: {} + 'k:{"mountPath":"/home/nacos/init.d/custom.properties"}': + .: {} + 'f:mountPath': {} + 'f:name': {} + 'f:readOnly': {} + 'f:subPath': {} + 'k:{"mountPath":"/home/nacos/logs"}': + .: {} + 'f:mountPath': {} + 'f:name': {} + 'f:dnsPolicy': {} + 'f:restartPolicy': {} + 'f:schedulerName': {} + 'f:securityContext': {} + 'f:terminationGracePeriodSeconds': {} + 'f:volumes': + .: {} + 'k:{"name":"volume-6aidn"}': + .: {} + 'f:configMap': + .: {} + 'f:defaultMode': {} + 'f:items': {} + 'f:name': {} + 'f:name': {} + 'f:updateStrategy': + .: {} + 'f:rollingUpdate': + .: {} + 'f:partition': {} + 'f:type': {} + 'f:volumeClaimTemplates': {} + - manager: kube-controller-manager + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T07:53:48Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:status': + 'f:collisionCount': {} + 'f:currentReplicas': {} + 'f:currentRevision': {} + 'f:observedGeneration': {} + 'f:readyReplicas': {} + 'f:replicas': {} + 'f:updateRevision': {} + 'f:updatedReplicas': {} +spec: + replicas: 1 + selector: + matchLabels: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: nacos + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: nacos + spec: + volumes: + - name: volume-6aidn + configMap: + name: nacos-config + items: + - key: custom.properties + path: custom.properties + defaultMode: 420 + containers: + - name: nacos + image: 'swr.cn-east-2.myhuaweicloud.com/blade/nacos-server:2.0.0' + ports: + - name: client + containerPort: 8848 + protocol: TCP + - name: client-rpc + containerPort: 9848 + protocol: TCP + - name: raft-rpc + containerPort: 9849 + protocol: TCP + env: + - name: MODE + value: standalone + - name: PREFER_HOST_MODE + value: hostname + - name: SPRING_DATASOURCE_PLATFORM + value: mysql + - name: MYSQL_SERVICE_HOST + value: nacos-mysql-0.nacos-mysql + - name: MYSQL_SERVICE_DB_NAME + value: nacos_test + - name: MYSQL_SERVICE_PORT + value: '3306' + - name: MYSQL_SERVICE_USER + value: nacos + - name: MYSQL_SERVICE_PASSWORD + value: nacos + resources: + limits: + memory: 2Gi + requests: + memory: 200Mi + volumeMounts: + - name: logs + mountPath: /home/nacos/logs + - name: volume-6aidn + readOnly: true + mountPath: /home/nacos/init.d/custom.properties + subPath: custom.properties + livenessProbe: + httpGet: + path: /nacos/v1/ns/instance/list?serviceName=nacos + port: 8848 + scheme: HTTP + initialDelaySeconds: 30 + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + httpGet: + path: /nacos/v1/ns/instance/list?serviceName=nacos + port: 8848 + scheme: HTTP + initialDelaySeconds: 30 + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 2 + failureThreshold: 3 + startupProbe: + httpGet: + path: /nacos/v1/ns/instance/list?serviceName=nacos + port: 8848 + scheme: HTTP + initialDelaySeconds: 30 + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 20 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + volumeClaimTemplates: + - kind: PersistentVolumeClaim + apiVersion: v1 + metadata: + name: logs + creationTimestamp: null + annotations: + k8s.kuboard.cn/pvcType: Dynamic + spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 2Gi + storageClassName: ceph-raspberry + volumeMode: Filesystem + status: + phase: Pending + serviceName: nacos + podManagementPolicy: Parallel + updateStrategy: + type: RollingUpdate + rollingUpdate: + partition: 0 + revisionHistoryLimit: 10 +status: + observedGeneration: 8 + replicas: 1 + readyReplicas: 1 + currentReplicas: 1 + updatedReplicas: 1 + currentRevision: nacos-5c86cb4d97 + updateRevision: nacos-5c86cb4d97 + collisionCount: 0 + +--- +kind: StatefulSet +apiVersion: apps/v1 +metadata: + name: nacos-mysql + namespace: spring-blade + uid: b22d717f-3063-46da-92eb-1f5a5db96524 + resourceVersion: '212334' + generation: 1 + creationTimestamp: '2021-05-02T11:48:41Z' + labels: + k8s.kuboard.cn/layer: db + k8s.kuboard.cn/name: nacos-mysql + managedFields: + - manager: Mozilla + operation: Update + apiVersion: apps/v1 + time: '2021-05-02T11:48:41Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:podManagementPolicy': {} + 'f:replicas': {} + 'f:revisionHistoryLimit': {} + 'f:selector': {} + 'f:serviceName': {} + 'f:template': + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:containers': + 'k:{"name":"mysql"}': + .: {} + 'f:env': + .: {} + 'k:{"name":"MYSQL_ALLOW_EMPTY_PASSWORD"}': + .: {} + 'f:name': {} + 'f:value': {} + 'k:{"name":"MYSQL_DATABASE"}': + .: {} + 'f:name': {} + 'f:value': {} + 'k:{"name":"MYSQL_PASSWORD"}': + .: {} + 'f:name': {} + 'f:value': {} + 'k:{"name":"MYSQL_USER"}': + .: {} + 'f:name': {} + 'f:value': {} + 'f:image': {} + 'f:imagePullPolicy': {} + 'f:livenessProbe': + .: {} + 'f:exec': + .: {} + 'f:command': {} + 'f:failureThreshold': {} + 'f:initialDelaySeconds': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:name': {} + 'f:ports': + .: {} + 'k:{"containerPort":3306,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'f:readinessProbe': + .: {} + 'f:exec': + .: {} + 'f:command': {} + 'f:failureThreshold': {} + 'f:initialDelaySeconds': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:resources': + .: {} + 'f:limits': + .: {} + 'f:memory': {} + 'f:requests': + .: {} + 'f:memory': {} + 'f:startupProbe': + .: {} + 'f:exec': + .: {} + 'f:command': {} + 'f:failureThreshold': {} + 'f:initialDelaySeconds': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:terminationMessagePath': {} + 'f:terminationMessagePolicy': {} + 'f:volumeMounts': + .: {} + 'k:{"mountPath":"/var/lib/mysql"}': + .: {} + 'f:mountPath': {} + 'f:name': {} + 'f:dnsPolicy': {} + 'f:restartPolicy': {} + 'f:schedulerName': {} + 'f:securityContext': {} + 'f:terminationGracePeriodSeconds': {} + 'f:updateStrategy': + 'f:rollingUpdate': + .: {} + 'f:partition': {} + 'f:type': {} + 'f:volumeClaimTemplates': {} + - manager: kube-controller-manager + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T07:53:59Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:status': + 'f:collisionCount': {} + 'f:currentReplicas': {} + 'f:currentRevision': {} + 'f:observedGeneration': {} + 'f:readyReplicas': {} + 'f:replicas': {} + 'f:updateRevision': {} + 'f:updatedReplicas': {} +spec: + replicas: 1 + selector: + matchLabels: + k8s.kuboard.cn/layer: db + k8s.kuboard.cn/name: nacos-mysql + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: db + k8s.kuboard.cn/name: nacos-mysql + spec: + containers: + - name: mysql + image: 'swr.cn-east-2.myhuaweicloud.com/blade/nacos-mysql:5.7' + ports: + - name: mysql + containerPort: 3306 + protocol: TCP + env: + - name: MYSQL_ALLOW_EMPTY_PASSWORD + value: '1' + - name: MYSQL_DATABASE + value: nacos_test + - name: MYSQL_USER + value: nacos + - name: MYSQL_PASSWORD + value: nacos + resources: + limits: + memory: 1000Mi + requests: + memory: 100Mi + volumeMounts: + - name: data + mountPath: /var/lib/mysql + livenessProbe: + exec: + command: + - mysqladmin + - ping + initialDelaySeconds: 30 + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + exec: + command: + - mysql + - '-h' + - 127.0.0.1 + - '-e' + - select 1 + initialDelaySeconds: 30 + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 2 + failureThreshold: 3 + startupProbe: + exec: + command: + - mysql + - '-h' + - 127.0.0.1 + - '-e' + - "select 1\t" + initialDelaySeconds: 30 + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 20 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + volumeClaimTemplates: + - kind: PersistentVolumeClaim + apiVersion: v1 + metadata: + name: data + creationTimestamp: null + annotations: + k8s.kuboard.cn/pvcType: Dynamic + spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 2Gi + storageClassName: ceph-raspberry + volumeMode: Filesystem + status: + phase: Pending + serviceName: nacos-mysql + podManagementPolicy: Parallel + updateStrategy: + type: RollingUpdate + rollingUpdate: + partition: 0 + revisionHistoryLimit: 10 +status: + observedGeneration: 1 + replicas: 1 + readyReplicas: 1 + currentReplicas: 1 + updatedReplicas: 1 + currentRevision: nacos-mysql-79c55668c9 + updateRevision: nacos-mysql-79c55668c9 + collisionCount: 0 + +--- +kind: StatefulSet +apiVersion: apps/v1 +metadata: + name: redis + namespace: spring-blade + uid: 7bd408b4-59fb-48f8-bac9-690be8b1e825 + resourceVersion: '165975' + generation: 1 + creationTimestamp: '2021-05-03T01:38:30Z' + labels: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: redis + managedFields: + - manager: Mozilla + operation: Update + apiVersion: apps/v1 + time: '2021-05-03T01:38:30Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:podManagementPolicy': {} + 'f:replicas': {} + 'f:revisionHistoryLimit': {} + 'f:selector': {} + 'f:serviceName': {} + 'f:template': + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:containers': + 'k:{"name":"redis"}': + .: {} + 'f:command': {} + 'f:image': {} + 'f:imagePullPolicy': {} + 'f:livenessProbe': + .: {} + 'f:failureThreshold': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:tcpSocket': + .: {} + 'f:port': {} + 'f:timeoutSeconds': {} + 'f:name': {} + 'f:ports': + .: {} + 'k:{"containerPort":6379,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'f:readinessProbe': + .: {} + 'f:failureThreshold': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:tcpSocket': + .: {} + 'f:port': {} + 'f:timeoutSeconds': {} + 'f:resources': + .: {} + 'f:limits': + .: {} + 'f:memory': {} + 'f:requests': + .: {} + 'f:memory': {} + 'f:startupProbe': + .: {} + 'f:failureThreshold': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:tcpSocket': + .: {} + 'f:port': {} + 'f:timeoutSeconds': {} + 'f:terminationMessagePath': {} + 'f:terminationMessagePolicy': {} + 'f:volumeMounts': + .: {} + 'k:{"mountPath":"/data"}': + .: {} + 'f:mountPath': {} + 'f:name': {} + 'f:dnsPolicy': {} + 'f:restartPolicy': {} + 'f:schedulerName': {} + 'f:securityContext': {} + 'f:terminationGracePeriodSeconds': {} + 'f:updateStrategy': + 'f:rollingUpdate': + .: {} + 'f:partition': {} + 'f:type': {} + 'f:volumeClaimTemplates': {} + - manager: kube-controller-manager + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T03:22:53Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:status': + 'f:collisionCount': {} + 'f:currentReplicas': {} + 'f:currentRevision': {} + 'f:observedGeneration': {} + 'f:readyReplicas': {} + 'f:replicas': {} + 'f:updateRevision': {} + 'f:updatedReplicas': {} +spec: + replicas: 1 + selector: + matchLabels: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: redis + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: redis + spec: + containers: + - name: redis + image: 'swr.cn-east-2.myhuaweicloud.com/blade/redis:5.0.2-alpine' + command: + - redis-server + - '--appendonly' + - 'yes' + ports: + - name: redis + containerPort: 6379 + protocol: TCP + resources: + limits: + memory: 1Gi + requests: + memory: 100Mi + volumeMounts: + - name: data + mountPath: /data + livenessProbe: + tcpSocket: + port: 6379 + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + tcpSocket: + port: 6379 + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + startupProbe: + tcpSocket: + port: 6379 + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 20 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + volumeClaimTemplates: + - kind: PersistentVolumeClaim + apiVersion: v1 + metadata: + name: data + creationTimestamp: null + annotations: + k8s.kuboard.cn/pvcType: Dynamic + spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 2Gi + storageClassName: ceph-raspberry + volumeMode: Filesystem + status: + phase: Pending + serviceName: redis + podManagementPolicy: Parallel + updateStrategy: + type: RollingUpdate + rollingUpdate: + partition: 0 + revisionHistoryLimit: 10 +status: + observedGeneration: 1 + replicas: 1 + readyReplicas: 1 + currentReplicas: 1 + updatedReplicas: 1 + currentRevision: redis-cd959c6c9 + updateRevision: redis-cd959c6c9 + collisionCount: 0 + +--- +kind: StatefulSet +apiVersion: apps/v1 +metadata: + name: saber-db + namespace: spring-blade + uid: ea58a737-0d64-4674-8023-9eb2c2c54b8e + resourceVersion: '212326' + generation: 6 + creationTimestamp: '2021-05-03T12:09:25Z' + labels: + k8s.kuboard.cn/layer: db + k8s.kuboard.cn/name: saber-db + managedFields: + - manager: Mozilla + operation: Update + apiVersion: apps/v1 + time: '2021-05-03T12:19:36Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:podManagementPolicy': {} + 'f:replicas': {} + 'f:revisionHistoryLimit': {} + 'f:selector': {} + 'f:serviceName': {} + 'f:template': + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:containers': + 'k:{"name":"mysql"}': + .: {} + 'f:env': + .: {} + 'k:{"name":"MYSQL_ALLOW_EMPTY_PASSWORD"}': + .: {} + 'f:name': {} + 'f:value': {} + 'k:{"name":"MYSQL_ROOT_PASSWORD"}': + .: {} + 'f:name': {} + 'f:value': {} + 'f:image': {} + 'f:imagePullPolicy': {} + 'f:livenessProbe': + .: {} + 'f:exec': + .: {} + 'f:command': {} + 'f:failureThreshold': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:name': {} + 'f:ports': + .: {} + 'k:{"containerPort":3306,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'f:readinessProbe': + .: {} + 'f:exec': + .: {} + 'f:command': {} + 'f:failureThreshold': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:resources': + .: {} + 'f:limits': + .: {} + 'f:memory': {} + 'f:requests': + .: {} + 'f:memory': {} + 'f:startupProbe': + .: {} + 'f:exec': + .: {} + 'f:command': {} + 'f:failureThreshold': {} + 'f:initialDelaySeconds': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:terminationMessagePath': {} + 'f:terminationMessagePolicy': {} + 'f:volumeMounts': + .: {} + 'k:{"mountPath":"/var/lib/mysql"}': + .: {} + 'f:mountPath': {} + 'f:name': {} + 'f:dnsPolicy': {} + 'f:restartPolicy': {} + 'f:schedulerName': {} + 'f:securityContext': {} + 'f:terminationGracePeriodSeconds': {} + 'f:updateStrategy': + 'f:rollingUpdate': + .: {} + 'f:partition': {} + 'f:type': {} + 'f:volumeClaimTemplates': {} + - manager: kube-controller-manager + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T07:53:59Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:status': + 'f:collisionCount': {} + 'f:currentReplicas': {} + 'f:currentRevision': {} + 'f:observedGeneration': {} + 'f:readyReplicas': {} + 'f:replicas': {} + 'f:updateRevision': {} + 'f:updatedReplicas': {} +spec: + replicas: 1 + selector: + matchLabels: + k8s.kuboard.cn/layer: db + k8s.kuboard.cn/name: saber-db + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: db + k8s.kuboard.cn/name: saber-db + spec: + containers: + - name: mysql + image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-db:v3.0.3' + ports: + - name: mysql + containerPort: 3306 + protocol: TCP + env: + - name: MYSQL_ALLOW_EMPTY_PASSWORD + value: '1' + - name: MYSQL_ROOT_PASSWORD + value: root + resources: + limits: + memory: 2Gi + requests: + memory: 200Mi + volumeMounts: + - name: data + mountPath: /var/lib/mysql + livenessProbe: + exec: + command: + - mysqladmin + - '-uroot' + - '-proot' + - ping + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + exec: + command: + - mysql + - '-uroot' + - '-proot' + - '-e' + - "select 1\t" + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + startupProbe: + exec: + command: + - mysql + - '-uroot' + - '-proot' + - '-e' + - "select 1\t" + initialDelaySeconds: 30 + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 20 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + volumeClaimTemplates: + - kind: PersistentVolumeClaim + apiVersion: v1 + metadata: + name: data + creationTimestamp: null + annotations: + k8s.kuboard.cn/pvcType: Dynamic + spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 2Gi + storageClassName: cephfs-raspberry + volumeMode: Filesystem + status: + phase: Pending + serviceName: saber-db + podManagementPolicy: Parallel + updateStrategy: + type: RollingUpdate + rollingUpdate: + partition: 0 + revisionHistoryLimit: 10 +status: + observedGeneration: 6 + replicas: 1 + readyReplicas: 1 + currentReplicas: 1 + updatedReplicas: 1 + currentRevision: saber-db-769778997c + updateRevision: saber-db-769778997c + collisionCount: 0 + +--- +kind: StatefulSet +apiVersion: apps/v1 +metadata: + name: sentinel + namespace: spring-blade + uid: bc116cc8-bb25-47a9-8170-9b40ce91d429 + resourceVersion: '165619' + generation: 3 + creationTimestamp: '2021-05-03T11:34:07Z' + labels: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: sentinel + managedFields: + - manager: Mozilla + operation: Update + apiVersion: apps/v1 + time: '2021-05-03T11:34:07Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:podManagementPolicy': {} + 'f:replicas': {} + 'f:revisionHistoryLimit': {} + 'f:selector': {} + 'f:serviceName': {} + 'f:template': + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:containers': + 'k:{"name":"sentinel"}': + .: {} + 'f:image': {} + 'f:imagePullPolicy': {} + 'f:livenessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:name': {} + 'f:ports': + .: {} + 'k:{"containerPort":8858,"protocol":"TCP"}': + .: {} + 'f:containerPort': {} + 'f:name': {} + 'f:protocol': {} + 'f:readinessProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:resources': + .: {} + 'f:limits': + .: {} + 'f:memory': {} + 'f:requests': + .: {} + 'f:memory': {} + 'f:startupProbe': + .: {} + 'f:failureThreshold': {} + 'f:httpGet': + .: {} + 'f:path': {} + 'f:port': {} + 'f:scheme': {} + 'f:periodSeconds': {} + 'f:successThreshold': {} + 'f:timeoutSeconds': {} + 'f:terminationMessagePath': {} + 'f:terminationMessagePolicy': {} + 'f:dnsPolicy': {} + 'f:restartPolicy': {} + 'f:schedulerName': {} + 'f:securityContext': {} + 'f:terminationGracePeriodSeconds': {} + 'f:updateStrategy': + 'f:rollingUpdate': + .: {} + 'f:partition': {} + 'f:type': {} + - manager: kube-controller-manager + operation: Update + apiVersion: apps/v1 + time: '2021-05-04T03:21:16Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:status': + 'f:collisionCount': {} + 'f:currentReplicas': {} + 'f:currentRevision': {} + 'f:observedGeneration': {} + 'f:readyReplicas': {} + 'f:replicas': {} + 'f:updateRevision': {} + 'f:updatedReplicas': {} +spec: + replicas: 1 + selector: + matchLabels: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: sentinel + template: + metadata: + creationTimestamp: null + labels: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: sentinel + spec: + containers: + - name: sentinel + image: 'swr.cn-east-2.myhuaweicloud.com/blade/sentinel-dashboard:1.8.0' + ports: + - name: web + containerPort: 8858 + protocol: TCP + resources: + limits: + memory: 1Gi + requests: + memory: 200Mi + livenessProbe: + httpGet: + path: / + port: 8858 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + httpGet: + path: / + port: 8858 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + startupProbe: + httpGet: + path: / + port: 8858 + scheme: HTTP + timeoutSeconds: 1 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 20 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + securityContext: {} + schedulerName: default-scheduler + serviceName: sentinel + podManagementPolicy: Parallel + updateStrategy: + type: RollingUpdate + rollingUpdate: + partition: 0 + revisionHistoryLimit: 10 +status: + observedGeneration: 3 + replicas: 1 + readyReplicas: 1 + currentReplicas: 1 + updatedReplicas: 1 + currentRevision: sentinel-7c869554fc + updateRevision: sentinel-7c869554fc + collisionCount: 0 + +--- +kind: Service +apiVersion: v1 +metadata: + name: blade-gateway + namespace: spring-blade + uid: 8842546b-e82b-416d-87ec-14b7eb1471d3 + resourceVersion: '125452' + creationTimestamp: '2021-05-03T13:58:42Z' + labels: + k8s.kuboard.cn/layer: gateway + k8s.kuboard.cn/name: blade-gateway + managedFields: + - manager: Mozilla + operation: Update + apiVersion: v1 + time: '2021-05-03T13:58:42Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:ports': + .: {} + 'k:{"port":80,"protocol":"TCP"}': + .: {} + 'f:name': {} + 'f:port': {} + 'f:protocol': {} + 'f:targetPort': {} + 'f:selector': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:sessionAffinity': {} + 'f:sessionAffinityConfig': + .: {} + 'f:clientIP': + .: {} + 'f:timeoutSeconds': {} + 'f:type': {} +spec: + ports: + - name: server + protocol: TCP + port: 80 + targetPort: 80 + selector: + k8s.kuboard.cn/layer: gateway + k8s.kuboard.cn/name: blade-gateway + clusterIP: 10.96.85.70 + clusterIPs: + - 10.96.85.70 + type: ClusterIP + sessionAffinity: ClientIP + sessionAffinityConfig: + clientIP: + timeoutSeconds: 10800 + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack +status: + loadBalancer: {} + +--- +kind: Service +apiVersion: v1 +metadata: + name: nacos + namespace: spring-blade + uid: a5ec2331-0183-403f-8aef-d6ae72682de5 + resourceVersion: '12005' + creationTimestamp: '2021-05-02T12:08:02Z' + labels: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: nacos + managedFields: + - manager: Mozilla + operation: Update + apiVersion: v1 + time: '2021-05-02T12:08:02Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + .: {} + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:clusterIP': {} + 'f:clusterIPs': {} + 'f:externalTrafficPolicy': {} + 'f:ipFamilies': {} + 'f:ipFamilyPolicy': {} + 'f:ports': + .: {} + 'k:{"port":8848,"protocol":"TCP"}': + .: {} + 'f:name': {} + 'f:nodePort': {} + 'f:port': {} + 'f:protocol': {} + 'f:targetPort': {} + 'f:selector': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:sessionAffinity': {} + 'f:sessionAffinityConfig': + .: {} + 'f:clientIP': + .: {} + 'f:timeoutSeconds': {} + 'f:type': {} +spec: + ports: + - name: nacos-client + protocol: TCP + port: 8848 + targetPort: 8848 + nodePort: 32000 + selector: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: nacos + clusterIP: 10.96.108.68 + clusterIPs: + - 10.96.108.68 + type: NodePort + sessionAffinity: ClientIP + externalTrafficPolicy: Cluster + sessionAffinityConfig: + clientIP: + timeoutSeconds: 10800 + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack +status: + loadBalancer: {} + +--- +kind: Service +apiVersion: v1 +metadata: + name: nacos-mysql + namespace: spring-blade + uid: da272de2-14f1-4d61-962b-bfa8f92fe448 + resourceVersion: '8348' + creationTimestamp: '2021-05-02T11:48:41Z' + labels: + k8s.kuboard.cn/layer: db + k8s.kuboard.cn/name: nacos-mysql + managedFields: + - manager: Mozilla + operation: Update + apiVersion: v1 + time: '2021-05-02T11:48:41Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:clusterIP': {} + 'f:ports': + .: {} + 'k:{"port":3306,"protocol":"TCP"}': + .: {} + 'f:name': {} + 'f:port': {} + 'f:protocol': {} + 'f:targetPort': {} + 'f:selector': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:sessionAffinity': {} + 'f:type': {} +spec: + ports: + - name: mysql + protocol: TCP + port: 3306 + targetPort: 3306 + selector: + k8s.kuboard.cn/layer: db + k8s.kuboard.cn/name: nacos-mysql + clusterIP: None + clusterIPs: + - None + type: ClusterIP + sessionAffinity: None + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack +status: + loadBalancer: {} + +--- +kind: Service +apiVersion: v1 +metadata: + name: redis + namespace: spring-blade + uid: 3fa1762f-cba5-413e-a620-f0cee40f8fb7 + resourceVersion: '70917' + creationTimestamp: '2021-05-03T01:38:31Z' + labels: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: redis + managedFields: + - manager: Mozilla + operation: Update + apiVersion: v1 + time: '2021-05-03T01:38:31Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:clusterIP': {} + 'f:ports': + .: {} + 'k:{"port":6379,"protocol":"TCP"}': + .: {} + 'f:name': {} + 'f:port': {} + 'f:protocol': {} + 'f:targetPort': {} + 'f:selector': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:sessionAffinity': {} + 'f:type': {} +spec: + ports: + - name: redis + protocol: TCP + port: 6379 + targetPort: 6379 + selector: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: redis + clusterIP: None + clusterIPs: + - None + type: ClusterIP + sessionAffinity: None + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack +status: + loadBalancer: {} + +--- +kind: Service +apiVersion: v1 +metadata: + name: saber-db + namespace: spring-blade + uid: 7408f9c1-4db4-4ba1-84b0-3837b6ca5cd2 + resourceVersion: '106701' + creationTimestamp: '2021-05-03T12:09:25Z' + labels: + k8s.kuboard.cn/layer: db + k8s.kuboard.cn/name: saber-db + managedFields: + - manager: Mozilla + operation: Update + apiVersion: v1 + time: '2021-05-03T12:09:25Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:clusterIP': {} + 'f:ports': + .: {} + 'k:{"port":3306,"protocol":"TCP"}': + .: {} + 'f:name': {} + 'f:port': {} + 'f:protocol': {} + 'f:targetPort': {} + 'f:selector': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:sessionAffinity': {} + 'f:type': {} +spec: + ports: + - name: mysql + protocol: TCP + port: 3306 + targetPort: 3306 + selector: + k8s.kuboard.cn/layer: db + k8s.kuboard.cn/name: saber-db + clusterIP: None + clusterIPs: + - None + type: ClusterIP + sessionAffinity: None + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack +status: + loadBalancer: {} + +--- +kind: Service +apiVersion: v1 +metadata: + name: saber-web + namespace: spring-blade + uid: 9fcb108d-470c-412d-b378-eba5c1bcecb0 + resourceVersion: '223410' + creationTimestamp: '2021-05-04T08:55:21Z' + labels: + k8s.kuboard.cn/layer: web + k8s.kuboard.cn/name: saber-web + managedFields: + - manager: Mozilla + operation: Update + apiVersion: v1 + time: '2021-05-04T08:55:21Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:externalTrafficPolicy': {} + 'f:ports': + .: {} + 'k:{"port":80,"protocol":"TCP"}': + .: {} + 'f:name': {} + 'f:nodePort': {} + 'f:port': {} + 'f:protocol': {} + 'f:targetPort': {} + 'f:selector': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:sessionAffinity': {} + 'f:sessionAffinityConfig': + .: {} + 'f:clientIP': + .: {} + 'f:timeoutSeconds': {} + 'f:type': {} +spec: + ports: + - name: web + protocol: TCP + port: 80 + targetPort: 80 + nodePort: 32102 + selector: + k8s.kuboard.cn/layer: web + k8s.kuboard.cn/name: saber-web + clusterIP: 10.96.23.131 + clusterIPs: + - 10.96.23.131 + type: NodePort + sessionAffinity: ClientIP + externalTrafficPolicy: Cluster + sessionAffinityConfig: + clientIP: + timeoutSeconds: 10800 + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack +status: + loadBalancer: {} + +--- +kind: Service +apiVersion: v1 +metadata: + name: sentinel + namespace: spring-blade + uid: e0a446ec-ff59-4622-91cf-0a79a31a52fc + resourceVersion: '100599' + creationTimestamp: '2021-05-03T11:34:07Z' + labels: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: sentinel + managedFields: + - manager: Mozilla + operation: Update + apiVersion: v1 + time: '2021-05-03T11:34:07Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:metadata': + 'f:labels': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:spec': + 'f:externalTrafficPolicy': {} + 'f:ports': + .: {} + 'k:{"port":8858,"protocol":"TCP"}': + .: {} + 'f:name': {} + 'f:nodePort': {} + 'f:port': {} + 'f:protocol': {} + 'f:targetPort': {} + 'f:selector': + .: {} + 'f:k8s.kuboard.cn/layer': {} + 'f:k8s.kuboard.cn/name': {} + 'f:sessionAffinity': {} + 'f:sessionAffinityConfig': + .: {} + 'f:clientIP': + .: {} + 'f:timeoutSeconds': {} + 'f:type': {} +spec: + ports: + - name: web + protocol: TCP + port: 8858 + targetPort: 8858 + nodePort: 32100 + selector: + k8s.kuboard.cn/layer: cloud + k8s.kuboard.cn/name: sentinel + clusterIP: 10.96.213.78 + clusterIPs: + - 10.96.213.78 + type: NodePort + sessionAffinity: ClientIP + externalTrafficPolicy: Cluster + sessionAffinityConfig: + clientIP: + timeoutSeconds: 10800 + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack +status: + loadBalancer: {} + +--- +kind: ConfigMap +apiVersion: v1 +metadata: + name: blade-config + namespace: spring-blade + uid: ac725821-bcd5-4e58-a0c8-00735d304b1b + resourceVersion: '185305' + creationTimestamp: '2021-05-03T13:25:44Z' + managedFields: + - manager: Mozilla + operation: Update + apiVersion: v1 + time: '2021-05-03T13:25:44Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:data': + .: {} + 'f:NACOS_SERVER_ADDR': {} + 'f:PROFILE': {} + 'f:SENTINEL_DASHBOARD_ADDR': {} +data: + NACOS_SERVER_ADDR: 'nacos-0.nacos:8848' + PROFILE: test + SENTINEL_DASHBOARD_ADDR: 'sentinel-0.sentinel:8858' + +--- +kind: ConfigMap +apiVersion: v1 +metadata: + name: nacos-config + namespace: spring-blade + uid: 4b911330-5b49-4c22-a8c3-6aee1e44dff6 + resourceVersion: '1790' + creationTimestamp: '2021-05-02T10:57:33Z' + managedFields: + - manager: Mozilla + operation: Update + apiVersion: v1 + time: '2021-05-02T10:57:33Z' + fieldsType: FieldsV1 + fieldsV1: + 'f:data': + .: {} + 'f:custom.properties': {} +data: + custom.properties: |- + #spring.security.enabled=false + #management.security=false + #security.basic.enabled=false + #nacos.security.ignore.urls=/** + #management.metrics.export.elastic.host=http://localhost:9200 + # metrics for prometheus + management.endpoints.web.exposure.include=* + + # metrics for elastic search + #management.metrics.export.elastic.enabled=false + #management.metrics.export.elastic.host=http://localhost:9200 + + # metrics for influx + #management.metrics.export.influx.enabled=false + #management.metrics.export.influx.db=springboot + #management.metrics.export.influx.uri=http://localhost:8086 + #management.metrics.export.influx.auto-create-db=true + #management.metrics.export.influx.consistency=one + #management.metrics.export.influx.compressed=true + diff --git a/script/kuboard/saber-db/Dockerfile b/script/kuboard/saber-db/Dockerfile new file mode 100644 index 00000000..a41e1a10 --- /dev/null +++ b/script/kuboard/saber-db/Dockerfile @@ -0,0 +1,8 @@ +FROM mysql:5.7.26 +ADD my.cnf /etc/mysql/conf.d/my.cnf +COPY blade-saber-mysql.sql /docker-entrypoint-initdb.d/blade-saber-mysql.sql +# COPY blade-sword-mysql.sql /docker-entrypoint-initdb.d/blade-sword-mysql.sql +# COPY seata_order.sql /docker-entrypoint-initdb.d/seata_order.sql +# COPY seata_storage.sql /docker-entrypoint-initdb.d/seata_storage.sql +# COPY seata.sql /docker-entrypoint-initdb.d/seata.sql +EXPOSE 3306 diff --git a/script/kuboard/saber-db/blade-saber-mysql.sql b/script/kuboard/saber-db/blade-saber-mysql.sql new file mode 100644 index 00000000..2b1f9453 --- /dev/null +++ b/script/kuboard/saber-db/blade-saber-mysql.sql @@ -0,0 +1,528 @@ +/* + Navicat Premium Data Transfer + + Source Server : mysql_localhost + Source Server Type : MySQL + Source Server Version : 50723 + Source Host : localhost:3306 + Source Schema : blade + + Target Server Type : MySQL + Target Server Version : 50723 + File Encoding : 65001 + + Date: 06/11/2020 17:22:50 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +CREATE SCHEMA IF NOT EXISTS `blade` DEFAULT CHARACTER SET utf8mb4 ; +USE `blade` ; + +-- ---------------------------- +-- Table structure for blade_client +-- ---------------------------- +DROP TABLE IF EXISTS `blade_client`; +CREATE TABLE `blade_client` ( + `id` bigint(64) NOT NULL COMMENT '主键', + `client_id` varchar(48) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户端id', + `client_secret` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户端密钥', + `resource_ids` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源集合', + `scope` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '授权范围', + `authorized_grant_types` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '授权类型', + `web_server_redirect_uri` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '回调地址', + `authorities` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限', + `access_token_validity` int(11) NOT NULL COMMENT '令牌过期秒数', + `refresh_token_validity` int(11) NOT NULL COMMENT '刷新令牌过期秒数', + `additional_information` varchar(4096) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附加说明', + `autoapprove` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '自动授权', + `create_user` bigint(64) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(64) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NOT NULL COMMENT '状态', + `is_deleted` int(2) NOT NULL COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '客户端表'; + +-- ---------------------------- +-- Records of blade_client +-- ---------------------------- +BEGIN; +INSERT INTO `blade_client` VALUES (1123598811738675201, 'sword', 'sword_secret', NULL, 'all', 'refresh_token,password,authorization_code', 'http://localhost:8888', NULL, 3600, 604800, NULL, NULL, 1, '2019-03-24 10:40:55', 1, '2019-03-24 10:40:59', 1, 0), (1123598811738675202, 'saber', 'saber_secret', NULL, 'all', 'refresh_token,password,authorization_code', 'http://localhost:8080', NULL, 3600, 604800, NULL, NULL, 1, '2019-03-24 10:42:29', 1, '2019-03-24 10:42:32', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_code +-- ---------------------------- +DROP TABLE IF EXISTS `blade_code`; +CREATE TABLE `blade_code` ( + `id` bigint(64) NOT NULL COMMENT '主键', + `datasource_id` bigint(64) NULL DEFAULT NULL COMMENT '数据源主键', + `service_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务名称', + `code_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模块名称', + `table_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表名', + `table_prefix` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表前缀', + `pk_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '主键名', + `package_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '后端包名', + `base_mode` int(2) NULL DEFAULT NULL COMMENT '基础业务模式', + `wrap_mode` int(2) NULL DEFAULT NULL COMMENT '包装器模式', + `api_path` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '后端路径', + `web_path` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '前端路径', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '代码生成表'; + +-- ---------------------------- +-- Records of blade_code +-- ---------------------------- +BEGIN; +INSERT INTO `blade_code` VALUES (1123598812738675201, 1123598812738675201, 'blade-demo', '通知公告', 'blade_notice', 'blade_', 'id', 'org.springblade.desktop', 1, 1, 'D:\\Develop\\WorkSpace\\Git\\SpringBlade\\blade-ops\\blade-develop', 'D:\\Develop\\WorkSpace\\Git\\Sword', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_datasource +-- ---------------------------- +DROP TABLE IF EXISTS `blade_datasource`; +CREATE TABLE `blade_datasource` ( + `id` bigint(64) NOT NULL COMMENT '主键', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称', + `driver_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '驱动类', + `url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '连接地址', + `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名', + `password` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_user` bigint(64) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(64) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据源配置表'; + +-- ---------------------------- +-- Records of blade_datasource +-- ---------------------------- +BEGIN; +INSERT INTO `blade_datasource` VALUES (1123598812738675201, 'mysql', 'com.mysql.cj.jdbc.Driver', 'jdbc:mysql://localhost:3306/blade?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true', 'root', 'root', 'mysql', 1, '2019-08-14 11:43:06', 1, '2019-08-14 11:43:06', 1, 0), (1123598812738675202, 'postgresql', 'org.postgresql.Driver', 'jdbc:postgresql://127.0.0.1:5432/blade', 'postgres', '123456', 'postgresql', 1, '2019-08-14 11:43:41', 1, '2019-08-14 11:43:41', 1, 0), (1123598812738675203, 'oracle', 'oracle.jdbc.OracleDriver', 'jdbc:oracle:thin:@127.0.0.1:49161:orcl', 'BLADE', 'blade', 'oracle', 1, '2019-08-14 11:44:03', 1, '2019-08-14 11:44:03', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_dept +-- ---------------------------- +DROP TABLE IF EXISTS `blade_dept`; +CREATE TABLE `blade_dept` ( + `id` bigint(64) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `parent_id` bigint(64) NULL DEFAULT 0 COMMENT '父主键', + `dept_name` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门名', + `full_name` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门全称', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '部门表'; + +-- ---------------------------- +-- Records of blade_dept +-- ---------------------------- +BEGIN; +INSERT INTO `blade_dept` VALUES (1123598813738675201, '000000', 0, '刀锋科技', '江苏刀锋科技有限公司', 1, NULL, 0), (1123598813738675202, '000000', 1123598813738675201, '常州刀锋', '常州刀锋科技有限公司', 1, NULL, 0), (1123598813738675203, '000000', 1123598813738675201, '苏州刀锋', '苏州刀锋科技有限公司', 1, NULL, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_dict +-- ---------------------------- +DROP TABLE IF EXISTS `blade_dict`; +CREATE TABLE `blade_dict` ( + `id` bigint(64) NOT NULL COMMENT '主键', + `parent_id` bigint(64) NULL DEFAULT 0 COMMENT '父主键', + `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典码', + `dict_key` int(2) NULL DEFAULT NULL COMMENT '字典值', + `dict_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典名称', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典备注', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典表'; + +-- ---------------------------- +-- Records of blade_dict +-- ---------------------------- +BEGIN; +INSERT INTO `blade_dict` VALUES (1123598814738675201, 0, 'sex', -1, '性别', 1, NULL, 0), (1123598814738675202, 1123598814738675201, 'sex', 1, '男', 1, NULL, 0), (1123598814738675203, 1123598814738675201, 'sex', 2, '女', 2, NULL, 0), (1123598814738675204, 0, 'notice', -1, '通知类型', 2, NULL, 0), (1123598814738675205, 1123598814738675204, 'notice', 1, '发布通知', 1, NULL, 0), (1123598814738675206, 1123598814738675204, 'notice', 2, '批转通知', 2, NULL, 0), (1123598814738675207, 1123598814738675204, 'notice', 3, '转发通知', 3, NULL, 0), (1123598814738675208, 1123598814738675204, 'notice', 4, '指示通知', 4, NULL, 0), (1123598814738675209, 1123598814738675204, 'notice', 5, '任免通知', 5, NULL, 0), (1123598814738675210, 1123598814738675204, 'notice', 6, '事务通知', 6, NULL, 0), (1123598814738675211, 0, 'menu_category', -1, '菜单类型', 3, NULL, 0), (1123598814738675212, 1123598814738675211, 'menu_category', 1, '菜单', 1, NULL, 0), (1123598814738675213, 1123598814738675211, 'menu_category', 2, '按钮', 2, NULL, 0), (1123598814738675214, 0, 'button_func', -1, '按钮功能', 4, NULL, 0), (1123598814738675215, 1123598814738675214, 'button_func', 1, '工具栏', 1, NULL, 0), (1123598814738675216, 1123598814738675214, 'button_func', 2, '操作栏', 2, NULL, 0), (1123598814738675217, 1123598814738675214, 'button_func', 3, '工具操作栏', 3, NULL, 0), (1123598814738675218, 0, 'yes_no', -1, '是否', 5, NULL, 0), (1123598814738675219, 1123598814738675218, 'yes_no', 1, '否', 1, NULL, 0), (1123598814738675220, 1123598814738675218, 'yes_no', 2, '是', 2, NULL, 0), (1123598814738777220, 0, 'post_category', -1, '岗位类型', 12, NULL, 0), (1123598814738777221, 1123598814738777220, 'post_category', 1, '高层', 1, NULL, 0), (1123598814738777222, 1123598814738777220, 'post_category', 2, '中层', 2, NULL, 0), (1123598814738777223, 1123598814738777220, 'post_category', 3, '基层', 3, NULL, 0), (1123598814738777224, 1123598814738777220, 'post_category', 4, '其他', 4, NULL, 0), (1123598814738777230, 0, 'region', -1, '行政区划', 13, NULL, 0), (1123598814738777231, 1123598814738777230, 'region', 0, '国家', 0, NULL, 0), (1123598814738777232, 1123598814738777230, 'region', 1, '省份/直辖市', 1, NULL, 0), (1123598814738777233, 1123598814738777230, 'region', 2, '地市', 2, NULL, 0), (1123598814738777234, 1123598814738777230, 'region', 3, '区县', 3, NULL, 0), (1123598814738777235, 1123598814738777230, 'region', 4, '乡镇', 4, NULL, 0), (1123598814738777236, 1123598814738777230, 'region', 5, '村委', 5, NULL, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_log_api +-- ---------------------------- +DROP TABLE IF EXISTS `blade_log_api`; +CREATE TABLE `blade_log_api` ( + `id` bigint(64) NOT NULL COMMENT '编号', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `service_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务ID', + `server_host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器名', + `server_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器IP地址', + `env` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器环境', + `type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '日志类型', + `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '日志标题', + `method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作方式', + `request_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求URI', + `user_agent` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户代理', + `remote_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作IP地址', + `method_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法类', + `method_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法名', + `params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '操作提交的数据', + `time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '执行时间', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '接口日志表'; + +-- ---------------------------- +-- Table structure for blade_log_error +-- ---------------------------- +DROP TABLE IF EXISTS `blade_log_error`; +CREATE TABLE `blade_log_error` ( + `id` bigint(64) NOT NULL COMMENT '编号', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `service_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务ID', + `server_host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器名', + `server_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器IP地址', + `env` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '系统环境', + `method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作方式', + `request_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求URI', + `user_agent` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户代理', + `stack_trace` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '堆栈', + `exception_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异常名', + `message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '异常信息', + `line_number` int(11) NULL DEFAULT NULL COMMENT '错误行数', + `remote_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作IP地址', + `method_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法类', + `file_name` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件名', + `method_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法名', + `params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '操作提交的数据', + `time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '执行时间', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '错误日志表'; + +-- ---------------------------- +-- Table structure for blade_log_usual +-- ---------------------------- +DROP TABLE IF EXISTS `blade_log_usual`; +CREATE TABLE `blade_log_usual` ( + `id` bigint(64) NOT NULL COMMENT '编号', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `service_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务ID', + `server_host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器名', + `server_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器IP地址', + `env` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '系统环境', + `log_level` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '日志级别', + `log_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '日志业务id', + `log_data` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '日志数据', + `method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作方式', + `request_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求URI', + `remote_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作IP地址', + `method_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法类', + `method_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法名', + `user_agent` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户代理', + `params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '操作提交的数据', + `time` datetime(0) NULL DEFAULT NULL COMMENT '执行时间', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通用日志表'; + +-- ---------------------------- +-- Table structure for blade_menu +-- ---------------------------- +DROP TABLE IF EXISTS `blade_menu`; +CREATE TABLE `blade_menu` ( + `id` bigint(64) NOT NULL COMMENT '主键', + `parent_id` bigint(64) NULL DEFAULT 0 COMMENT '父级菜单', + `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单编号', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单名称', + `alias` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单别名', + `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求地址', + `source` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单资源', + `sort` int(2) NULL DEFAULT NULL COMMENT '排序', + `category` int(2) NULL DEFAULT NULL COMMENT '菜单类型', + `action` int(2) NULL DEFAULT 0 COMMENT '操作按钮类型', + `is_open` int(2) NULL DEFAULT 1 COMMENT '是否打开新页面', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单表'; + +-- ---------------------------- +-- Records of blade_menu +-- ---------------------------- +BEGIN; +INSERT INTO `blade_menu` VALUES (1123598815738675201, 0, 'desk', '工作台', 'menu', '/desk', 'iconfont iconicon_airplay', 1, 1, 0, 1, NULL, 0), (1123598815738675202, 1123598815738675201, 'notice', '通知公告', 'menu', '/desk/notice', 'iconfont iconicon_sms', 1, 1, 0, 1, NULL, 0), (1123598815738675203, 0, 'system', '系统管理', 'menu', '/system', 'iconfont iconicon_setting', 99, 1, 0, 1, NULL, 0), (1123598815738675204, 1123598815738675203, 'user', '用户管理', 'menu', '/system/user', 'iconfont iconicon_principal', 1, 1, 0, 1, NULL, 0), (1123598815738675205, 1123598815738675203, 'dept', '部门管理', 'menu', '/system/dept', 'iconfont iconicon_group', 2, 1, 0, 1, NULL, 0), (1123598815738675206, 1123598815738675203, 'dict', '字典管理', 'menu', '/system/dict', 'iconfont iconicon_addresslist', 3, 1, 0, 1, NULL, 0), (1123598815738675207, 1123598815738675203, 'menu', '菜单管理', 'menu', '/system/menu', 'iconfont iconicon_subordinate', 4, 1, 0, 1, NULL, 0), (1123598815738675208, 1123598815738675203, 'role', '角色管理', 'menu', '/system/role', 'iconfont iconicon_boss', 5, 1, 0, 1, NULL, 0), (1123598815738675209, 1123598815738675203, 'param', '参数管理', 'menu', '/system/param', 'iconfont iconicon_community_line', 6, 1, 0, 1, NULL, 0), (1123598815738675210, 0, 'monitor', '系统监控', 'menu', '/monitor', 'iconfont icon-yanzhengma', 3, 1, 0, 1, NULL, 0), (1123598815738675211, 1123598815738675210, 'doc', '接口文档', 'menu', 'http://localhost/doc.html', 'iconfont iconicon_study', 1, 1, 0, 2, NULL, 0), (1123598815738675212, 1123598815738675210, 'admin', '服务治理', 'menu', 'http://localhost:7002', 'iconfont icon-canshu', 2, 1, 0, 2, NULL, 0), (1123598815738675213, 1123598815738675210, 'log', '日志管理', 'menu', '/monitor/log', 'iconfont iconicon_doc', 3, 1, 0, 1, NULL, 0), (1123598815738675214, 1123598815738675213, 'log_usual', '通用日志', 'menu', '/monitor/log/usual', NULL, 1, 1, 0, 1, NULL, 0), (1123598815738675215, 1123598815738675213, 'log_api', '接口日志', 'menu', '/monitor/log/api', NULL, 2, 1, 0, 1, NULL, 0), (1123598815738675216, 1123598815738675213, 'log_error', '错误日志', 'menu', '/monitor/log/error', NULL, 3, 1, 0, 1, NULL, 0), (1123598815738675217, 0, 'tool', '研发工具', 'menu', '/tool', 'iconfont icon-wxbgongju', 4, 1, 0, 1, NULL, 0), (1123598815738675218, 1123598815738675217, 'code', '代码生成', 'menu', '/tool/code', 'iconfont iconicon_savememo', 1, 1, 0, 1, NULL, 0), (1123598815738675219, 1123598815738675202, 'notice_add', '新增', 'add', '/desk/notice/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675220, 1123598815738675202, 'notice_edit', '修改', 'edit', '/desk/notice/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675221, 1123598815738675202, 'notice_delete', '删除', 'delete', '/api/blade-desk/notice/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675222, 1123598815738675202, 'notice_view', '查看', 'view', '/desk/notice/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675223, 1123598815738675204, 'user_add', '新增', 'add', '/system/user/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675224, 1123598815738675204, 'user_edit', '修改', 'edit', '/system/user/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675225, 1123598815738675204, 'user_delete', '删除', 'delete', '/api/blade-user/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675226, 1123598815738675204, 'user_role', '角色配置', 'role', NULL, 'user-add', 4, 2, 1, 1, NULL, 0), (1123598815738675227, 1123598815738675204, 'user_reset', '密码重置', 'reset-password', '/api/blade-user/reset-password', 'retweet', 5, 2, 1, 1, NULL, 0), (1123598815738675228, 1123598815738675204, 'user_view', '查看', 'view', '/system/user/view', 'file-text', 6, 2, 2, 1, NULL, 0), (1123598815738675229, 1123598815738675205, 'dept_add', '新增', 'add', '/system/dept/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675230, 1123598815738675205, 'dept_edit', '修改', 'edit', '/system/dept/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675231, 1123598815738675205, 'dept_delete', '删除', 'delete', '/api/blade-system/dept/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675232, 1123598815738675205, 'dept_view', '查看', 'view', '/system/dept/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675233, 1123598815738675206, 'dict_add', '新增', 'add', '/system/dict/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675234, 1123598815738675206, 'dict_edit', '修改', 'edit', '/system/dict/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675235, 1123598815738675206, 'dict_delete', '删除', 'delete', '/api/blade-system/dict/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675236, 1123598815738675206, 'dict_view', '查看', 'view', '/system/dict/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675237, 1123598815738675207, 'menu_add', '新增', 'add', '/system/menu/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675238, 1123598815738675207, 'menu_edit', '修改', 'edit', '/system/menu/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675239, 1123598815738675207, 'menu_delete', '删除', 'delete', '/api/blade-system/menu/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675240, 1123598815738675207, 'menu_view', '查看', 'view', '/system/menu/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675241, 1123598815738675208, 'role_add', '新增', 'add', '/system/role/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675242, 1123598815738675208, 'role_edit', '修改', 'edit', '/system/role/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675243, 1123598815738675208, 'role_delete', '删除', 'delete', '/api/blade-system/role/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675244, 1123598815738675208, 'role_view', '查看', 'view', '/system/role/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675245, 1123598815738675209, 'param_add', '新增', 'add', '/system/param/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675246, 1123598815738675209, 'param_edit', '修改', 'edit', '/system/param/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675247, 1123598815738675209, 'param_delete', '删除', 'delete', '/api/blade-system/param/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675248, 1123598815738675209, 'param_view', '查看', 'view', '/system/param/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675249, 1123598815738675214, 'log_usual_view', '查看', 'view', '/monitor/log/usual/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675250, 1123598815738675215, 'log_api_view', '查看', 'view', '/monitor/log/api/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675251, 1123598815738675216, 'log_error_view', '查看', 'view', '/monitor/log/error/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675252, 1123598815738675218, 'code_add', '新增', 'add', '/tool/code/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675253, 1123598815738675218, 'code_edit', '修改', 'edit', '/tool/code/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675254, 1123598815738675218, 'code_delete', '删除', 'delete', '/api/blade-system/code/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675255, 1123598815738675218, 'code_view', '查看', 'view', '/tool/code/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675256, 1123598815738675203, 'tenant', '租户管理', 'menu', '/system/tenant', 'iconfont icon-quanxian', 7, 1, 0, 1, NULL, 0), (1123598815738675257, 1123598815738675256, 'tenant_add', '新增', 'add', '/system/tenant/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675258, 1123598815738675256, 'tenant_edit', '修改', 'edit', '/system/tenant/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675259, 1123598815738675256, 'tenant_delete', '删除', 'delete', '/api/blade-system/tenant/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675260, 1123598815738675256, 'tenant_view', '查看', 'view', '/system/tenant/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675261, 1123598815738675203, 'client', '应用管理', 'menu', '/system/client', 'iconfont iconicon_mobilephone', 8, 1, 0, 1, NULL, 0), (1123598815738675262, 1123598815738675261, 'client_add', '新增', 'add', '/system/client/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675263, 1123598815738675261, 'client_edit', '修改', 'edit', '/system/client/edit', 'form', 2, 2, 2, 2, NULL, 0), (1123598815738675264, 1123598815738675261, 'client_delete', '删除', 'delete', '/api/blade-system/client/remove', 'delete', 3, 2, 3, 3, NULL, 0), (1123598815738675265, 1123598815738675261, 'client_view', '查看', 'view', '/system/client/view', 'file-text', 4, 2, 2, 2, NULL, 0), (1123598815738675266, 1123598815738675217, 'datasource', '数据源管理', 'menu', '/tool/datasource', 'iconfont icon-caidanguanli', 2, 1, 0, 1, NULL, 0), (1123598815738675267, 1123598815738675266, 'datasource_add', '新增', 'add', '/tool/datasource/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675268, 1123598815738675266, 'datasource_edit', '修改', 'edit', '/tool/datasource/edit', 'form', 2, 2, 2, 2, NULL, 0), (1123598815738675269, 1123598815738675266, 'datasource_delete', '删除', 'delete', '/api/blade-develop/datasource/remove', 'delete', 3, 2, 3, 3, NULL, 0), (1123598815738675270, 1123598815738675266, 'datasource_view', '查看', 'view', '/tool/datasource/view', 'file-text', 4, 2, 2, 2, NULL, 0), (1164733389668962251, 1123598815738675203, 'post', '岗位管理', 'menu', '/system/post', 'iconfont iconicon_message', 2, 1, 0, 1, NULL, 0), (1164733389668962252, 1164733389668962251, 'post_add', '新增', 'add', '/system/post/add', 'plus', 1, 2, 1, 1, NULL, 0), (1164733389668962253, 1164733389668962251, 'post_edit', '修改', 'edit', '/system/post/edit', 'form', 2, 2, 2, 1, NULL, 0), (1164733389668962254, 1164733389668962251, 'post_delete', '删除', 'delete', '/api/blade-system/post/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1164733389668962255, 1164733389668962251, 'post_view', '查看', 'view', '/system/post/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1164733399668962201, 0, 'base', '基础配置', 'menu', '/base', 'iconfont iconicon_affiliations_li', 97, 1, 0, 1, NULL, 0), (1164733399668962202, 1164733399668962201, 'region', '行政区划', 'menu', '/base/region', 'iconfont icon-iframe', 1, 1, 0, 1, NULL, 0), (1164733399668962203, 1164733399668962202, 'region_add', '新增下级', 'add', '', '', 1, 2, 1, 1, NULL, 0), (1164733399668962204, 1164733399668962202, 'region_delete', '删除', 'delete', '/api/blade-system/region/remove', '', 2, 2, 2, 1, NULL, 0), (1164733399668962205, 1164733399668962202, 'region_import', '导入', 'import', '', '', 3, 2, 3, 1, NULL, 0), (1164733399668962206, 1164733399668962202, 'region_export', '导出', 'export', '', '', 4, 2, 2, 1, NULL, 0), (1164733399668962207, 1164733399668962202, 'region_debug', '调试', 'debug', '', '', 5, 2, 2, 1, NULL, 0), (1164733399669962301, 0, 'report', '报表管理', 'menu', '/report', 'iconfont icon-shujuzhanshi2', 5, 1, 0, 1, NULL, 0), (1164733399669962302, 1164733399669962301, 'report_setting', '报表配置', 'menu', 'http://localhost:8108/ureport/designer', 'iconfont icon-rizhi', 1, 1, 0, 1, NULL, 0), (1164733399669962303, 1164733399669962301, 'report_list', '报表列表', 'menu', '/report/reportlist', 'iconfont icon-biaodan', 2, 1, 0, 1, NULL, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_notice +-- ---------------------------- +DROP TABLE IF EXISTS `blade_notice`; +CREATE TABLE `blade_notice` ( + `id` bigint(64) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题', + `category` int(11) NULL DEFAULT NULL COMMENT '类型', + `release_time` datetime(0) NULL DEFAULT NULL COMMENT '发布时间', + `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '内容', + `create_user` bigint(64) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(64) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通知公告表'; + +-- ---------------------------- +-- Records of blade_notice +-- ---------------------------- +BEGIN; +INSERT INTO `blade_notice` VALUES (1123598818738675223, '000000', '测试公告', 3, '2018-12-31 20:03:31', '222', 1123598821738675201, '2018-12-05 20:03:31', 1123598821738675201, '2018-12-28 11:10:51', 1, 0), (1123598818738675224, '000000', '测试公告2', 1, '2018-12-05 20:03:31', '333', 1123598821738675201, '2018-12-28 10:32:26', 1123598821738675201, '2018-12-28 11:10:34', 1, 0), (1123598818738675225, '000000', '测试公告3', 6, '2018-12-29 00:00:00', '11111', 1123598821738675201, '2018-12-28 11:03:44', 1123598821738675201, '2018-12-28 11:10:28', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_param +-- ---------------------------- +DROP TABLE IF EXISTS `blade_param`; +CREATE TABLE `blade_param` ( + `id` bigint(64) NOT NULL COMMENT '主键', + `param_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数名', + `param_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数键', + `param_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数值', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_user` bigint(64) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(64) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '参数表'; + +-- ---------------------------- +-- Records of blade_param +-- ---------------------------- +BEGIN; +INSERT INTO `blade_param` VALUES (1123598819738675201, '是否开启注册功能', 'account.registerUser', 'true', '开启注册', 1123598821738675201, '2018-12-28 12:19:01', 1123598821738675201, '2018-12-28 12:19:01', 1, 0), (1123598819738675202, '账号初始密码', 'account.initPassword', '123456', '初始密码', 1123598821738675201, '2018-12-28 12:19:01', 1123598821738675201, '2018-12-28 12:19:01', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_post +-- ---------------------------- +DROP TABLE IF EXISTS `blade_post`; +CREATE TABLE `blade_post` ( + `id` bigint(64) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `category` int(11) NULL DEFAULT NULL COMMENT '岗位类型', + `post_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '岗位编号', + `post_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '岗位名称', + `sort` int(2) NULL DEFAULT NULL COMMENT '岗位排序', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '岗位描述', + `create_user` bigint(64) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(64) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(64) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '岗位表'; + +-- ---------------------------- +-- Records of blade_post +-- ---------------------------- +BEGIN; +INSERT INTO `blade_post` VALUES (1123598817738675201, '000000', 1, 'ceo', '首席执行官', 1, '总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675202, '000000', 1, 'coo', '首席运营官', 2, '常务总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675203, '000000', 1, 'cfo', '首席财务官', 3, '财务总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675204, '000000', 1, 'cto', '首席技术官', 4, '技术总监', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675205, '000000', 1, 'cio', '首席信息官', 5, '信息总监', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675206, '000000', 2, 'pm', '技术经理', 6, '研发和产品是永远的朋友', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675207, '000000', 2, 'hrm', '人力经理', 7, '人力资源部门工作管理者', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675208, '000000', 3, 'staff', '普通员工', 8, '普通员工', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_region +-- ---------------------------- +DROP TABLE IF EXISTS `blade_region`; +CREATE TABLE `blade_region` ( + `code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '区划编号', + `parent_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '父区划编号', + `ancestors` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '祖区划编号', + `name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区划名称', + `province_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '省级区划编号', + `province_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '省级名称', + `city_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '市级区划编号', + `city_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '市级名称', + `district_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区级区划编号', + `district_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区级名称', + `town_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '镇级区划编号', + `town_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '镇级名称', + `village_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '村级区划编号', + `village_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '村级名称', + `level` int(2) NULL DEFAULT NULL COMMENT '层级', + `sort` int(2) NULL DEFAULT NULL COMMENT '排序', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`code`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '行政区划表'; + +-- ---------------------------- +-- Records of blade_region +-- ---------------------------- +BEGIN; +INSERT INTO `blade_region` VALUES ('00', '0', '0', '中华人民共和国', '', '', '', '', '', '', '', '', '', '', 0, 1, ''), ('11', '00', '00', '北京市', '11', '北京市', '', '', '', '', '', '', '', '', 1, 1, ''), ('1101', '11', '00,11', '北京市', '11', '北京市', '1101', '北京市', '', '', '', '', '', '', 2, 1, ''), ('110101', '1101', '00,11,1101', '东城区', '11', '北京市', '1101', '北京市', '110101', '东城区', '', '', '', '', 3, 1, ''), ('110102', '1101', '00,11,1101', '西城区', '11', '北京市', '1101', '北京市', '110102', '西城区', '', '', '', '', 3, 1, ''), ('110105', '1101', '00,11,1101', '朝阳区', '11', '北京市', '1101', '北京市', '110105', '朝阳区', '', '', '', '', 3, 1, ''), ('110106', '1101', '00,11,1101', '丰台区', '11', '北京市', '1101', '北京市', '110106', '丰台区', '', '', '', '', 3, 1, ''), ('110107', '1101', '00,11,1101', '石景山区', '11', '北京市', '1101', '北京市', '110107', '石景山区', '', '', '', '', 3, 1, ''), ('110108', '1101', '00,11,1101', '海淀区', '11', '北京市', '1101', '北京市', '110108', '海淀区', '', '', '', '', 3, 1, ''), ('110109', '1101', '00,11,1101', '门头沟区', '11', '北京市', '1101', '北京市', '110109', '门头沟区', '', '', '', '', 3, 1, ''), ('110111', '1101', '00,11,1101', '房山区', '11', '北京市', '1101', '北京市', '110111', '房山区', '', '', '', '', 3, 1, ''), ('110112', '1101', '00,11,1101', '通州区', '11', '北京市', '1101', '北京市', '110112', '通州区', '', '', '', '', 3, 1, ''), ('110113', '1101', '00,11,1101', '顺义区', '11', '北京市', '1101', '北京市', '110113', '顺义区', '', '', '', '', 3, 1, ''), ('110114', '1101', '00,11,1101', '昌平区', '11', '北京市', '1101', '北京市', '110114', '昌平区', '', '', '', '', 3, 1, ''), ('110115', '1101', '00,11,1101', '大兴区', '11', '北京市', '1101', '北京市', '110115', '大兴区', '', '', '', '', 3, 1, ''), ('110116', '1101', '00,11,1101', '怀柔区', '11', '北京市', '1101', '北京市', '110116', '怀柔区', '', '', '', '', 3, 1, ''), ('110117', '1101', '00,11,1101', '平谷区', '11', '北京市', '1101', '北京市', '110117', '平谷区', '', '', '', '', 3, 1, ''), ('110118', '1101', '00,11,1101', '密云区', '11', '北京市', '1101', '北京市', '110118', '密云区', '', '', '', '', 3, 1, ''), ('110119', '1101', '00,11,1101', '延庆区', '11', '北京市', '1101', '北京市', '110119', '延庆区', '', '', '', '', 3, 1, ''), ('12', '00', '00', '天津市', '12', '天津市', '', '', '', '', '', '', '', '', 1, 1, ''), ('1201', '12', '00,12', '天津市', '12', '天津市', '1201', '天津市', '', '', '', '', '', '', 2, 1, ''), ('120101', '1201', '00,12,1201', '和平区', '12', '天津市', '1201', '天津市', '120101', '和平区', '', '', '', '', 3, 1, ''), ('120102', '1201', '00,12,1201', '河东区', '12', '天津市', '1201', '天津市', '120102', '河东区', '', '', '', '', 3, 1, ''), ('120103', '1201', '00,12,1201', '河西区', '12', '天津市', '1201', '天津市', '120103', '河西区', '', '', '', '', 3, 1, ''), ('120104', '1201', '00,12,1201', '南开区', '12', '天津市', '1201', '天津市', '120104', '南开区', '', '', '', '', 3, 1, ''), ('120105', '1201', '00,12,1201', '河北区', '12', '天津市', '1201', '天津市', '120105', '河北区', '', '', '', '', 3, 1, ''), ('120106', '1201', '00,12,1201', '红桥区', '12', '天津市', '1201', '天津市', '120106', '红桥区', '', '', '', '', 3, 1, ''), ('120110', '1201', '00,12,1201', '东丽区', '12', '天津市', '1201', '天津市', '120110', '东丽区', '', '', '', '', 3, 1, ''), ('120111', '1201', '00,12,1201', '西青区', '12', '天津市', '1201', '天津市', '120111', '西青区', '', '', '', '', 3, 1, ''), ('120112', '1201', '00,12,1201', '津南区', '12', '天津市', '1201', '天津市', '120112', '津南区', '', '', '', '', 3, 1, ''), ('120113', '1201', '00,12,1201', '北辰区', '12', '天津市', '1201', '天津市', '120113', '北辰区', '', '', '', '', 3, 1, ''), ('120114', '1201', '00,12,1201', '武清区', '12', '天津市', '1201', '天津市', '120114', '武清区', '', '', '', '', 3, 1, ''), ('120115', '1201', '00,12,1201', '宝坻区', '12', '天津市', '1201', '天津市', '120115', '宝坻区', '', '', '', '', 3, 1, ''), ('120116', '1201', '00,12,1201', '滨海新区', '12', '天津市', '1201', '天津市', '120116', '滨海新区', '', '', '', '', 3, 1, ''), ('120117', '1201', '00,12,1201', '宁河区', '12', '天津市', '1201', '天津市', '120117', '宁河区', '', '', '', '', 3, 1, ''), ('120118', '1201', '00,12,1201', '静海区', '12', '天津市', '1201', '天津市', '120118', '静海区', '', '', '', '', 3, 1, ''), ('120119', '1201', '00,12,1201', '蓟州区', '12', '天津市', '1201', '天津市', '120119', '蓟州区', '', '', '', '', 3, 1, ''), ('13', '00', '00', '河北省', '13', '河北省', '', '', '', '', '', '', '', '', 1, 1, ''), ('1301', '13', '00,13', '石家庄市', '13', '河北省', '1301', '石家庄市', '', '', '', '', '', '', 2, 1, ''), ('130102', '1301', '00,13,1301', '长安区', '13', '河北省', '1301', '石家庄市', '130102', '长安区', '', '', '', '', 3, 1, ''), ('130104', '1301', '00,13,1301', '桥西区', '13', '河北省', '1301', '石家庄市', '130104', '桥西区', '', '', '', '', 3, 1, ''), ('130105', '1301', '00,13,1301', '新华区', '13', '河北省', '1301', '石家庄市', '130105', '新华区', '', '', '', '', 3, 1, ''), ('130107', '1301', '00,13,1301', '井陉矿区', '13', '河北省', '1301', '石家庄市', '130107', '井陉矿区', '', '', '', '', 3, 1, ''), ('130108', '1301', '00,13,1301', '裕华区', '13', '河北省', '1301', '石家庄市', '130108', '裕华区', '', '', '', '', 3, 1, ''), ('130109', '1301', '00,13,1301', '藁城区', '13', '河北省', '1301', '石家庄市', '130109', '藁城区', '', '', '', '', 3, 1, ''), ('130110', '1301', '00,13,1301', '鹿泉区', '13', '河北省', '1301', '石家庄市', '130110', '鹿泉区', '', '', '', '', 3, 1, ''), ('130111', '1301', '00,13,1301', '栾城区', '13', '河北省', '1301', '石家庄市', '130111', '栾城区', '', '', '', '', 3, 1, ''), ('130121', '1301', '00,13,1301', '井陉县', '13', '河北省', '1301', '石家庄市', '130121', '井陉县', '', '', '', '', 3, 1, ''), ('130123', '1301', '00,13,1301', '正定县', '13', '河北省', '1301', '石家庄市', '130123', '正定县', '', '', '', '', 3, 1, ''), ('130125', '1301', '00,13,1301', '行唐县', '13', '河北省', '1301', '石家庄市', '130125', '行唐县', '', '', '', '', 3, 1, ''), ('130126', '1301', '00,13,1301', '灵寿县', '13', '河北省', '1301', '石家庄市', '130126', '灵寿县', '', '', '', '', 3, 1, ''), ('130127', '1301', '00,13,1301', '高邑县', '13', '河北省', '1301', '石家庄市', '130127', '高邑县', '', '', '', '', 3, 1, ''), ('130128', '1301', '00,13,1301', '深泽县', '13', '河北省', '1301', '石家庄市', '130128', '深泽县', '', '', '', '', 3, 1, ''), ('130129', '1301', '00,13,1301', '赞皇县', '13', '河北省', '1301', '石家庄市', '130129', '赞皇县', '', '', '', '', 3, 1, ''), ('130130', '1301', '00,13,1301', '无极县', '13', '河北省', '1301', '石家庄市', '130130', '无极县', '', '', '', '', 3, 1, ''), ('130131', '1301', '00,13,1301', '平山县', '13', '河北省', '1301', '石家庄市', '130131', '平山县', '', '', '', '', 3, 1, ''), ('130132', '1301', '00,13,1301', '元氏县', '13', '河北省', '1301', '石家庄市', '130132', '元氏县', '', '', '', '', 3, 1, ''), ('130133', '1301', '00,13,1301', '赵县', '13', '河北省', '1301', '石家庄市', '130133', '赵县', '', '', '', '', 3, 1, ''), ('130181', '1301', '00,13,1301', '辛集市', '13', '河北省', '1301', '石家庄市', '130181', '辛集市', '', '', '', '', 3, 1, ''), ('130183', '1301', '00,13,1301', '晋州市', '13', '河北省', '1301', '石家庄市', '130183', '晋州市', '', '', '', '', 3, 1, ''), ('130184', '1301', '00,13,1301', '新乐市', '13', '河北省', '1301', '石家庄市', '130184', '新乐市', '', '', '', '', 3, 1, ''), ('1302', '13', '00,13', '唐山市', '13', '河北省', '1302', '唐山市', '', '', '', '', '', '', 2, 1, ''), ('130202', '1302', '00,13,1302', '路南区', '13', '河北省', '1302', '唐山市', '130202', '路南区', '', '', '', '', 3, 1, ''), ('130203', '1302', '00,13,1302', '路北区', '13', '河北省', '1302', '唐山市', '130203', '路北区', '', '', '', '', 3, 1, ''), ('130204', '1302', '00,13,1302', '古冶区', '13', '河北省', '1302', '唐山市', '130204', '古冶区', '', '', '', '', 3, 1, ''), ('130205', '1302', '00,13,1302', '开平区', '13', '河北省', '1302', '唐山市', '130205', '开平区', '', '', '', '', 3, 1, ''), ('130207', '1302', '00,13,1302', '丰南区', '13', '河北省', '1302', '唐山市', '130207', '丰南区', '', '', '', '', 3, 1, ''), ('130208', '1302', '00,13,1302', '丰润区', '13', '河北省', '1302', '唐山市', '130208', '丰润区', '', '', '', '', 3, 1, ''), ('130209', '1302', '00,13,1302', '曹妃甸区', '13', '河北省', '1302', '唐山市', '130209', '曹妃甸区', '', '', '', '', 3, 1, ''), ('130224', '1302', '00,13,1302', '滦南县', '13', '河北省', '1302', '唐山市', '130224', '滦南县', '', '', '', '', 3, 1, ''), ('130225', '1302', '00,13,1302', '乐亭县', '13', '河北省', '1302', '唐山市', '130225', '乐亭县', '', '', '', '', 3, 1, ''), ('130227', '1302', '00,13,1302', '迁西县', '13', '河北省', '1302', '唐山市', '130227', '迁西县', '', '', '', '', 3, 1, ''), ('130229', '1302', '00,13,1302', '玉田县', '13', '河北省', '1302', '唐山市', '130229', '玉田县', '', '', '', '', 3, 1, ''), ('130281', '1302', '00,13,1302', '遵化市', '13', '河北省', '1302', '唐山市', '130281', '遵化市', '', '', '', '', 3, 1, ''), ('130283', '1302', '00,13,1302', '迁安市', '13', '河北省', '1302', '唐山市', '130283', '迁安市', '', '', '', '', 3, 1, ''), ('130284', '1302', '00,13,1302', '滦州市', '13', '河北省', '1302', '唐山市', '130284', '滦州市', '', '', '', '', 3, 1, ''), ('1303', '13', '00,13', '秦皇岛市', '13', '河北省', '1303', '秦皇岛市', '', '', '', '', '', '', 2, 1, ''), ('130302', '1303', '00,13,1303', '海港区', '13', '河北省', '1303', '秦皇岛市', '130302', '海港区', '', '', '', '', 3, 1, ''), ('130303', '1303', '00,13,1303', '山海关区', '13', '河北省', '1303', '秦皇岛市', '130303', '山海关区', '', '', '', '', 3, 1, ''), ('130304', '1303', '00,13,1303', '北戴河区', '13', '河北省', '1303', '秦皇岛市', '130304', '北戴河区', '', '', '', '', 3, 1, ''), ('130306', '1303', '00,13,1303', '抚宁区', '13', '河北省', '1303', '秦皇岛市', '130306', '抚宁区', '', '', '', '', 3, 1, ''), ('130321', '1303', '00,13,1303', '青龙满族自治县', '13', '河北省', '1303', '秦皇岛市', '130321', '青龙满族自治县', '', '', '', '', 3, 1, ''), ('130322', '1303', '00,13,1303', '昌黎县', '13', '河北省', '1303', '秦皇岛市', '130322', '昌黎县', '', '', '', '', 3, 1, ''), ('130324', '1303', '00,13,1303', '卢龙县', '13', '河北省', '1303', '秦皇岛市', '130324', '卢龙县', '', '', '', '', 3, 1, ''), ('1304', '13', '00,13', '邯郸市', '13', '河北省', '1304', '邯郸市', '', '', '', '', '', '', 2, 1, ''), ('130402', '1304', '00,13,1304', '邯山区', '13', '河北省', '1304', '邯郸市', '130402', '邯山区', '', '', '', '', 3, 1, ''), ('130403', '1304', '00,13,1304', '丛台区', '13', '河北省', '1304', '邯郸市', '130403', '丛台区', '', '', '', '', 3, 1, ''), ('130404', '1304', '00,13,1304', '复兴区', '13', '河北省', '1304', '邯郸市', '130404', '复兴区', '', '', '', '', 3, 1, ''), ('130406', '1304', '00,13,1304', '峰峰矿区', '13', '河北省', '1304', '邯郸市', '130406', '峰峰矿区', '', '', '', '', 3, 1, ''), ('130407', '1304', '00,13,1304', '肥乡区', '13', '河北省', '1304', '邯郸市', '130407', '肥乡区', '', '', '', '', 3, 1, ''), ('130408', '1304', '00,13,1304', '永年区', '13', '河北省', '1304', '邯郸市', '130408', '永年区', '', '', '', '', 3, 1, ''), ('130423', '1304', '00,13,1304', '临漳县', '13', '河北省', '1304', '邯郸市', '130423', '临漳县', '', '', '', '', 3, 1, ''), ('130424', '1304', '00,13,1304', '成安县', '13', '河北省', '1304', '邯郸市', '130424', '成安县', '', '', '', '', 3, 1, ''), ('130425', '1304', '00,13,1304', '大名县', '13', '河北省', '1304', '邯郸市', '130425', '大名县', '', '', '', '', 3, 1, ''), ('130426', '1304', '00,13,1304', '涉县', '13', '河北省', '1304', '邯郸市', '130426', '涉县', '', '', '', '', 3, 1, ''), ('130427', '1304', '00,13,1304', '磁县', '13', '河北省', '1304', '邯郸市', '130427', '磁县', '', '', '', '', 3, 1, ''), ('130430', '1304', '00,13,1304', '邱县', '13', '河北省', '1304', '邯郸市', '130430', '邱县', '', '', '', '', 3, 1, ''), ('130431', '1304', '00,13,1304', '鸡泽县', '13', '河北省', '1304', '邯郸市', '130431', '鸡泽县', '', '', '', '', 3, 1, ''), ('130432', '1304', '00,13,1304', '广平县', '13', '河北省', '1304', '邯郸市', '130432', '广平县', '', '', '', '', 3, 1, ''), ('130433', '1304', '00,13,1304', '馆陶县', '13', '河北省', '1304', '邯郸市', '130433', '馆陶县', '', '', '', '', 3, 1, ''), ('130434', '1304', '00,13,1304', '魏县', '13', '河北省', '1304', '邯郸市', '130434', '魏县', '', '', '', '', 3, 1, ''), ('130435', '1304', '00,13,1304', '曲周县', '13', '河北省', '1304', '邯郸市', '130435', '曲周县', '', '', '', '', 3, 1, ''), ('130481', '1304', '00,13,1304', '武安市', '13', '河北省', '1304', '邯郸市', '130481', '武安市', '', '', '', '', 3, 1, ''), ('1305', '13', '00,13', '邢台市', '13', '河北省', '1305', '邢台市', '', '', '', '', '', '', 2, 1, ''), ('130502', '1305', '00,13,1305', '桥东区', '13', '河北省', '1305', '邢台市', '130502', '桥东区', '', '', '', '', 3, 1, ''), ('130503', '1305', '00,13,1305', '桥西区', '13', '河北省', '1305', '邢台市', '130503', '桥西区', '', '', '', '', 3, 1, ''), ('130521', '1305', '00,13,1305', '邢台县', '13', '河北省', '1305', '邢台市', '130521', '邢台县', '', '', '', '', 3, 1, ''), ('130522', '1305', '00,13,1305', '临城县', '13', '河北省', '1305', '邢台市', '130522', '临城县', '', '', '', '', 3, 1, ''), ('130523', '1305', '00,13,1305', '内丘县', '13', '河北省', '1305', '邢台市', '130523', '内丘县', '', '', '', '', 3, 1, ''), ('130524', '1305', '00,13,1305', '柏乡县', '13', '河北省', '1305', '邢台市', '130524', '柏乡县', '', '', '', '', 3, 1, ''), ('130525', '1305', '00,13,1305', '隆尧县', '13', '河北省', '1305', '邢台市', '130525', '隆尧县', '', '', '', '', 3, 1, ''), ('130526', '1305', '00,13,1305', '任县', '13', '河北省', '1305', '邢台市', '130526', '任县', '', '', '', '', 3, 1, ''), ('130527', '1305', '00,13,1305', '南和县', '13', '河北省', '1305', '邢台市', '130527', '南和县', '', '', '', '', 3, 1, ''), ('130528', '1305', '00,13,1305', '宁晋县', '13', '河北省', '1305', '邢台市', '130528', '宁晋县', '', '', '', '', 3, 1, ''), ('130529', '1305', '00,13,1305', '巨鹿县', '13', '河北省', '1305', '邢台市', '130529', '巨鹿县', '', '', '', '', 3, 1, ''), ('130530', '1305', '00,13,1305', '新河县', '13', '河北省', '1305', '邢台市', '130530', '新河县', '', '', '', '', 3, 1, ''), ('130531', '1305', '00,13,1305', '广宗县', '13', '河北省', '1305', '邢台市', '130531', '广宗县', '', '', '', '', 3, 1, ''), ('130532', '1305', '00,13,1305', '平乡县', '13', '河北省', '1305', '邢台市', '130532', '平乡县', '', '', '', '', 3, 1, ''), ('130533', '1305', '00,13,1305', '威县', '13', '河北省', '1305', '邢台市', '130533', '威县', '', '', '', '', 3, 1, ''), ('130534', '1305', '00,13,1305', '清河县', '13', '河北省', '1305', '邢台市', '130534', '清河县', '', '', '', '', 3, 1, ''), ('130535', '1305', '00,13,1305', '临西县', '13', '河北省', '1305', '邢台市', '130535', '临西县', '', '', '', '', 3, 1, ''), ('130581', '1305', '00,13,1305', '南宫市', '13', '河北省', '1305', '邢台市', '130581', '南宫市', '', '', '', '', 3, 1, ''), ('130582', '1305', '00,13,1305', '沙河市', '13', '河北省', '1305', '邢台市', '130582', '沙河市', '', '', '', '', 3, 1, ''), ('1306', '13', '00,13', '保定市', '13', '河北省', '1306', '保定市', '', '', '', '', '', '', 2, 1, ''), ('130602', '1306', '00,13,1306', '竞秀区', '13', '河北省', '1306', '保定市', '130602', '竞秀区', '', '', '', '', 3, 1, ''), ('130606', '1306', '00,13,1306', '莲池区', '13', '河北省', '1306', '保定市', '130606', '莲池区', '', '', '', '', 3, 1, ''), ('130607', '1306', '00,13,1306', '满城区', '13', '河北省', '1306', '保定市', '130607', '满城区', '', '', '', '', 3, 1, ''), ('130608', '1306', '00,13,1306', '清苑区', '13', '河北省', '1306', '保定市', '130608', '清苑区', '', '', '', '', 3, 1, ''), ('130609', '1306', '00,13,1306', '徐水区', '13', '河北省', '1306', '保定市', '130609', '徐水区', '', '', '', '', 3, 1, ''), ('130623', '1306', '00,13,1306', '涞水县', '13', '河北省', '1306', '保定市', '130623', '涞水县', '', '', '', '', 3, 1, ''), ('130624', '1306', '00,13,1306', '阜平县', '13', '河北省', '1306', '保定市', '130624', '阜平县', '', '', '', '', 3, 1, ''), ('130626', '1306', '00,13,1306', '定兴县', '13', '河北省', '1306', '保定市', '130626', '定兴县', '', '', '', '', 3, 1, ''), ('130627', '1306', '00,13,1306', '唐县', '13', '河北省', '1306', '保定市', '130627', '唐县', '', '', '', '', 3, 1, ''), ('130628', '1306', '00,13,1306', '高阳县', '13', '河北省', '1306', '保定市', '130628', '高阳县', '', '', '', '', 3, 1, ''), ('130629', '1306', '00,13,1306', '容城县', '13', '河北省', '1306', '保定市', '130629', '容城县', '', '', '', '', 3, 1, ''), ('130630', '1306', '00,13,1306', '涞源县', '13', '河北省', '1306', '保定市', '130630', '涞源县', '', '', '', '', 3, 1, ''), ('130631', '1306', '00,13,1306', '望都县', '13', '河北省', '1306', '保定市', '130631', '望都县', '', '', '', '', 3, 1, ''), ('130632', '1306', '00,13,1306', '安新县', '13', '河北省', '1306', '保定市', '130632', '安新县', '', '', '', '', 3, 1, ''), ('130633', '1306', '00,13,1306', '易县', '13', '河北省', '1306', '保定市', '130633', '易县', '', '', '', '', 3, 1, ''), ('130634', '1306', '00,13,1306', '曲阳县', '13', '河北省', '1306', '保定市', '130634', '曲阳县', '', '', '', '', 3, 1, ''), ('130635', '1306', '00,13,1306', '蠡县', '13', '河北省', '1306', '保定市', '130635', '蠡县', '', '', '', '', 3, 1, ''), ('130636', '1306', '00,13,1306', '顺平县', '13', '河北省', '1306', '保定市', '130636', '顺平县', '', '', '', '', 3, 1, ''), ('130637', '1306', '00,13,1306', '博野县', '13', '河北省', '1306', '保定市', '130637', '博野县', '', '', '', '', 3, 1, ''), ('130638', '1306', '00,13,1306', '雄县', '13', '河北省', '1306', '保定市', '130638', '雄县', '', '', '', '', 3, 1, ''), ('130681', '1306', '00,13,1306', '涿州市', '13', '河北省', '1306', '保定市', '130681', '涿州市', '', '', '', '', 3, 1, ''), ('130682', '1306', '00,13,1306', '定州市', '13', '河北省', '1306', '保定市', '130682', '定州市', '', '', '', '', 3, 1, ''), ('130683', '1306', '00,13,1306', '安国市', '13', '河北省', '1306', '保定市', '130683', '安国市', '', '', '', '', 3, 1, ''), ('130684', '1306', '00,13,1306', '高碑店市', '13', '河北省', '1306', '保定市', '130684', '高碑店市', '', '', '', '', 3, 1, ''), ('1307', '13', '00,13', '张家口市', '13', '河北省', '1307', '张家口市', '', '', '', '', '', '', 2, 1, ''), ('130702', '1307', '00,13,1307', '桥东区', '13', '河北省', '1307', '张家口市', '130702', '桥东区', '', '', '', '', 3, 1, ''), ('130703', '1307', '00,13,1307', '桥西区', '13', '河北省', '1307', '张家口市', '130703', '桥西区', '', '', '', '', 3, 1, ''), ('130705', '1307', '00,13,1307', '宣化区', '13', '河北省', '1307', '张家口市', '130705', '宣化区', '', '', '', '', 3, 1, ''), ('130706', '1307', '00,13,1307', '下花园区', '13', '河北省', '1307', '张家口市', '130706', '下花园区', '', '', '', '', 3, 1, ''), ('130708', '1307', '00,13,1307', '万全区', '13', '河北省', '1307', '张家口市', '130708', '万全区', '', '', '', '', 3, 1, ''), ('130709', '1307', '00,13,1307', '崇礼区', '13', '河北省', '1307', '张家口市', '130709', '崇礼区', '', '', '', '', 3, 1, ''), ('130722', '1307', '00,13,1307', '张北县', '13', '河北省', '1307', '张家口市', '130722', '张北县', '', '', '', '', 3, 1, ''), ('130723', '1307', '00,13,1307', '康保县', '13', '河北省', '1307', '张家口市', '130723', '康保县', '', '', '', '', 3, 1, ''), ('130724', '1307', '00,13,1307', '沽源县', '13', '河北省', '1307', '张家口市', '130724', '沽源县', '', '', '', '', 3, 1, ''), ('130725', '1307', '00,13,1307', '尚义县', '13', '河北省', '1307', '张家口市', '130725', '尚义县', '', '', '', '', 3, 1, ''), ('130726', '1307', '00,13,1307', '蔚县', '13', '河北省', '1307', '张家口市', '130726', '蔚县', '', '', '', '', 3, 1, ''), ('130727', '1307', '00,13,1307', '阳原县', '13', '河北省', '1307', '张家口市', '130727', '阳原县', '', '', '', '', 3, 1, ''), ('130728', '1307', '00,13,1307', '怀安县', '13', '河北省', '1307', '张家口市', '130728', '怀安县', '', '', '', '', 3, 1, ''), ('130730', '1307', '00,13,1307', '怀来县', '13', '河北省', '1307', '张家口市', '130730', '怀来县', '', '', '', '', 3, 1, ''), ('130731', '1307', '00,13,1307', '涿鹿县', '13', '河北省', '1307', '张家口市', '130731', '涿鹿县', '', '', '', '', 3, 1, ''), ('130732', '1307', '00,13,1307', '赤城县', '13', '河北省', '1307', '张家口市', '130732', '赤城县', '', '', '', '', 3, 1, ''), ('1308', '13', '00,13', '承德市', '13', '河北省', '1308', '承德市', '', '', '', '', '', '', 2, 1, ''), ('130802', '1308', '00,13,1308', '双桥区', '13', '河北省', '1308', '承德市', '130802', '双桥区', '', '', '', '', 3, 1, ''), ('130803', '1308', '00,13,1308', '双滦区', '13', '河北省', '1308', '承德市', '130803', '双滦区', '', '', '', '', 3, 1, ''), ('130804', '1308', '00,13,1308', '鹰手营子矿区', '13', '河北省', '1308', '承德市', '130804', '鹰手营子矿区', '', '', '', '', 3, 1, ''), ('130821', '1308', '00,13,1308', '承德县', '13', '河北省', '1308', '承德市', '130821', '承德县', '', '', '', '', 3, 1, ''), ('130822', '1308', '00,13,1308', '兴隆县', '13', '河北省', '1308', '承德市', '130822', '兴隆县', '', '', '', '', 3, 1, ''), ('130824', '1308', '00,13,1308', '滦平县', '13', '河北省', '1308', '承德市', '130824', '滦平县', '', '', '', '', 3, 1, ''), ('130825', '1308', '00,13,1308', '隆化县', '13', '河北省', '1308', '承德市', '130825', '隆化县', '', '', '', '', 3, 1, ''), ('130826', '1308', '00,13,1308', '丰宁满族自治县', '13', '河北省', '1308', '承德市', '130826', '丰宁满族自治县', '', '', '', '', 3, 1, ''), ('130827', '1308', '00,13,1308', '宽城满族自治县', '13', '河北省', '1308', '承德市', '130827', '宽城满族自治县', '', '', '', '', 3, 1, ''), ('130828', '1308', '00,13,1308', '围场满族蒙古族自治县', '13', '河北省', '1308', '承德市', '130828', '围场满族蒙古族自治县', '', '', '', '', 3, 1, ''), ('130881', '1308', '00,13,1308', '平泉市', '13', '河北省', '1308', '承德市', '130881', '平泉市', '', '', '', '', 3, 1, ''), ('1309', '13', '00,13', '沧州市', '13', '河北省', '1309', '沧州市', '', '', '', '', '', '', 2, 1, ''), ('130902', '1309', '00,13,1309', '新华区', '13', '河北省', '1309', '沧州市', '130902', '新华区', '', '', '', '', 3, 1, ''), ('130903', '1309', '00,13,1309', '运河区', '13', '河北省', '1309', '沧州市', '130903', '运河区', '', '', '', '', 3, 1, ''), ('130921', '1309', '00,13,1309', '沧县', '13', '河北省', '1309', '沧州市', '130921', '沧县', '', '', '', '', 3, 1, ''), ('130922', '1309', '00,13,1309', '青县', '13', '河北省', '1309', '沧州市', '130922', '青县', '', '', '', '', 3, 1, ''), ('130923', '1309', '00,13,1309', '东光县', '13', '河北省', '1309', '沧州市', '130923', '东光县', '', '', '', '', 3, 1, ''), ('130924', '1309', '00,13,1309', '海兴县', '13', '河北省', '1309', '沧州市', '130924', '海兴县', '', '', '', '', 3, 1, ''), ('130925', '1309', '00,13,1309', '盐山县', '13', '河北省', '1309', '沧州市', '130925', '盐山县', '', '', '', '', 3, 1, ''), ('130926', '1309', '00,13,1309', '肃宁县', '13', '河北省', '1309', '沧州市', '130926', '肃宁县', '', '', '', '', 3, 1, ''), ('130927', '1309', '00,13,1309', '南皮县', '13', '河北省', '1309', '沧州市', '130927', '南皮县', '', '', '', '', 3, 1, ''), ('130928', '1309', '00,13,1309', '吴桥县', '13', '河北省', '1309', '沧州市', '130928', '吴桥县', '', '', '', '', 3, 1, ''), ('130929', '1309', '00,13,1309', '献县', '13', '河北省', '1309', '沧州市', '130929', '献县', '', '', '', '', 3, 1, ''), ('130930', '1309', '00,13,1309', '孟村回族自治县', '13', '河北省', '1309', '沧州市', '130930', '孟村回族自治县', '', '', '', '', 3, 1, ''), ('130981', '1309', '00,13,1309', '泊头市', '13', '河北省', '1309', '沧州市', '130981', '泊头市', '', '', '', '', 3, 1, ''), ('130982', '1309', '00,13,1309', '任丘市', '13', '河北省', '1309', '沧州市', '130982', '任丘市', '', '', '', '', 3, 1, ''), ('130983', '1309', '00,13,1309', '黄骅市', '13', '河北省', '1309', '沧州市', '130983', '黄骅市', '', '', '', '', 3, 1, ''), ('130984', '1309', '00,13,1309', '河间市', '13', '河北省', '1309', '沧州市', '130984', '河间市', '', '', '', '', 3, 1, ''), ('1310', '13', '00,13', '廊坊市', '13', '河北省', '1310', '廊坊市', '', '', '', '', '', '', 2, 1, ''), ('131002', '1310', '00,13,1310', '安次区', '13', '河北省', '1310', '廊坊市', '131002', '安次区', '', '', '', '', 3, 1, ''), ('131003', '1310', '00,13,1310', '广阳区', '13', '河北省', '1310', '廊坊市', '131003', '广阳区', '', '', '', '', 3, 1, ''), ('131022', '1310', '00,13,1310', '固安县', '13', '河北省', '1310', '廊坊市', '131022', '固安县', '', '', '', '', 3, 1, ''), ('131023', '1310', '00,13,1310', '永清县', '13', '河北省', '1310', '廊坊市', '131023', '永清县', '', '', '', '', 3, 1, ''), ('131024', '1310', '00,13,1310', '香河县', '13', '河北省', '1310', '廊坊市', '131024', '香河县', '', '', '', '', 3, 1, ''), ('131025', '1310', '00,13,1310', '大城县', '13', '河北省', '1310', '廊坊市', '131025', '大城县', '', '', '', '', 3, 1, ''), ('131026', '1310', '00,13,1310', '文安县', '13', '河北省', '1310', '廊坊市', '131026', '文安县', '', '', '', '', 3, 1, ''), ('131028', '1310', '00,13,1310', '大厂回族自治县', '13', '河北省', '1310', '廊坊市', '131028', '大厂回族自治县', '', '', '', '', 3, 1, ''), ('131081', '1310', '00,13,1310', '霸州市', '13', '河北省', '1310', '廊坊市', '131081', '霸州市', '', '', '', '', 3, 1, ''), ('131082', '1310', '00,13,1310', '三河市', '13', '河北省', '1310', '廊坊市', '131082', '三河市', '', '', '', '', 3, 1, ''), ('1311', '13', '00,13', '衡水市', '13', '河北省', '1311', '衡水市', '', '', '', '', '', '', 2, 1, ''), ('131102', '1311', '00,13,1311', '桃城区', '13', '河北省', '1311', '衡水市', '131102', '桃城区', '', '', '', '', 3, 1, ''), ('131103', '1311', '00,13,1311', '冀州区', '13', '河北省', '1311', '衡水市', '131103', '冀州区', '', '', '', '', 3, 1, ''), ('131121', '1311', '00,13,1311', '枣强县', '13', '河北省', '1311', '衡水市', '131121', '枣强县', '', '', '', '', 3, 1, ''), ('131122', '1311', '00,13,1311', '武邑县', '13', '河北省', '1311', '衡水市', '131122', '武邑县', '', '', '', '', 3, 1, ''), ('131123', '1311', '00,13,1311', '武强县', '13', '河北省', '1311', '衡水市', '131123', '武强县', '', '', '', '', 3, 1, ''), ('131124', '1311', '00,13,1311', '饶阳县', '13', '河北省', '1311', '衡水市', '131124', '饶阳县', '', '', '', '', 3, 1, ''), ('131125', '1311', '00,13,1311', '安平县', '13', '河北省', '1311', '衡水市', '131125', '安平县', '', '', '', '', 3, 1, ''), ('131126', '1311', '00,13,1311', '故城县', '13', '河北省', '1311', '衡水市', '131126', '故城县', '', '', '', '', 3, 1, ''), ('131127', '1311', '00,13,1311', '景县', '13', '河北省', '1311', '衡水市', '131127', '景县', '', '', '', '', 3, 1, ''), ('131128', '1311', '00,13,1311', '阜城县', '13', '河北省', '1311', '衡水市', '131128', '阜城县', '', '', '', '', 3, 1, ''), ('131182', '1311', '00,13,1311', '深州市', '13', '河北省', '1311', '衡水市', '131182', '深州市', '', '', '', '', 3, 1, ''), ('14', '00', '00', '山西省', '14', '山西省', '', '', '', '', '', '', '', '', 1, 1, ''), ('1401', '14', '00,14', '太原市', '14', '山西省', '1401', '太原市', '', '', '', '', '', '', 2, 1, ''), ('140105', '1401', '00,14,1401', '小店区', '14', '山西省', '1401', '太原市', '140105', '小店区', '', '', '', '', 3, 1, ''), ('140106', '1401', '00,14,1401', '迎泽区', '14', '山西省', '1401', '太原市', '140106', '迎泽区', '', '', '', '', 3, 1, ''), ('140107', '1401', '00,14,1401', '杏花岭区', '14', '山西省', '1401', '太原市', '140107', '杏花岭区', '', '', '', '', 3, 1, ''), ('140108', '1401', '00,14,1401', '尖草坪区', '14', '山西省', '1401', '太原市', '140108', '尖草坪区', '', '', '', '', 3, 1, ''), ('140109', '1401', '00,14,1401', '万柏林区', '14', '山西省', '1401', '太原市', '140109', '万柏林区', '', '', '', '', 3, 1, ''), ('140110', '1401', '00,14,1401', '晋源区', '14', '山西省', '1401', '太原市', '140110', '晋源区', '', '', '', '', 3, 1, ''), ('140121', '1401', '00,14,1401', '清徐县', '14', '山西省', '1401', '太原市', '140121', '清徐县', '', '', '', '', 3, 1, ''), ('140122', '1401', '00,14,1401', '阳曲县', '14', '山西省', '1401', '太原市', '140122', '阳曲县', '', '', '', '', 3, 1, ''), ('140123', '1401', '00,14,1401', '娄烦县', '14', '山西省', '1401', '太原市', '140123', '娄烦县', '', '', '', '', 3, 1, ''), ('140181', '1401', '00,14,1401', '古交市', '14', '山西省', '1401', '太原市', '140181', '古交市', '', '', '', '', 3, 1, ''), ('1402', '14', '00,14', '大同市', '14', '山西省', '1402', '大同市', '', '', '', '', '', '', 2, 1, ''), ('140212', '1402', '00,14,1402', '新荣区', '14', '山西省', '1402', '大同市', '140212', '新荣区', '', '', '', '', 3, 1, ''), ('140213', '1402', '00,14,1402', '平城区', '14', '山西省', '1402', '大同市', '140213', '平城区', '', '', '', '', 3, 1, ''), ('140214', '1402', '00,14,1402', '云冈区', '14', '山西省', '1402', '大同市', '140214', '云冈区', '', '', '', '', 3, 1, ''), ('140215', '1402', '00,14,1402', '云州区', '14', '山西省', '1402', '大同市', '140215', '云州区', '', '', '', '', 3, 1, ''), ('140221', '1402', '00,14,1402', '阳高县', '14', '山西省', '1402', '大同市', '140221', '阳高县', '', '', '', '', 3, 1, ''), ('140222', '1402', '00,14,1402', '天镇县', '14', '山西省', '1402', '大同市', '140222', '天镇县', '', '', '', '', 3, 1, ''), ('140223', '1402', '00,14,1402', '广灵县', '14', '山西省', '1402', '大同市', '140223', '广灵县', '', '', '', '', 3, 1, ''), ('140224', '1402', '00,14,1402', '灵丘县', '14', '山西省', '1402', '大同市', '140224', '灵丘县', '', '', '', '', 3, 1, ''), ('140225', '1402', '00,14,1402', '浑源县', '14', '山西省', '1402', '大同市', '140225', '浑源县', '', '', '', '', 3, 1, ''), ('140226', '1402', '00,14,1402', '左云县', '14', '山西省', '1402', '大同市', '140226', '左云县', '', '', '', '', 3, 1, ''), ('1403', '14', '00,14', '阳泉市', '14', '山西省', '1403', '阳泉市', '', '', '', '', '', '', 2, 1, ''), ('140302', '1403', '00,14,1403', '城区', '14', '山西省', '1403', '阳泉市', '140302', '城区', '', '', '', '', 3, 1, ''), ('140303', '1403', '00,14,1403', '矿区', '14', '山西省', '1403', '阳泉市', '140303', '矿区', '', '', '', '', 3, 1, ''), ('140311', '1403', '00,14,1403', '郊区', '14', '山西省', '1403', '阳泉市', '140311', '郊区', '', '', '', '', 3, 1, ''), ('140321', '1403', '00,14,1403', '平定县', '14', '山西省', '1403', '阳泉市', '140321', '平定县', '', '', '', '', 3, 1, ''), ('140322', '1403', '00,14,1403', '盂县', '14', '山西省', '1403', '阳泉市', '140322', '盂县', '', '', '', '', 3, 1, ''), ('1404', '14', '00,14', '长治市', '14', '山西省', '1404', '长治市', '', '', '', '', '', '', 2, 1, ''), ('140403', '1404', '00,14,1404', '潞州区', '14', '山西省', '1404', '长治市', '140403', '潞州区', '', '', '', '', 3, 1, ''), ('140404', '1404', '00,14,1404', '上党区', '14', '山西省', '1404', '长治市', '140404', '上党区', '', '', '', '', 3, 1, ''), ('140405', '1404', '00,14,1404', '屯留区', '14', '山西省', '1404', '长治市', '140405', '屯留区', '', '', '', '', 3, 1, ''), ('140406', '1404', '00,14,1404', '潞城区', '14', '山西省', '1404', '长治市', '140406', '潞城区', '', '', '', '', 3, 1, ''), ('140423', '1404', '00,14,1404', '襄垣县', '14', '山西省', '1404', '长治市', '140423', '襄垣县', '', '', '', '', 3, 1, ''), ('140425', '1404', '00,14,1404', '平顺县', '14', '山西省', '1404', '长治市', '140425', '平顺县', '', '', '', '', 3, 1, ''), ('140426', '1404', '00,14,1404', '黎城县', '14', '山西省', '1404', '长治市', '140426', '黎城县', '', '', '', '', 3, 1, ''), ('140427', '1404', '00,14,1404', '壶关县', '14', '山西省', '1404', '长治市', '140427', '壶关县', '', '', '', '', 3, 1, ''), ('140428', '1404', '00,14,1404', '长子县', '14', '山西省', '1404', '长治市', '140428', '长子县', '', '', '', '', 3, 1, ''), ('140429', '1404', '00,14,1404', '武乡县', '14', '山西省', '1404', '长治市', '140429', '武乡县', '', '', '', '', 3, 1, ''), ('140430', '1404', '00,14,1404', '沁县', '14', '山西省', '1404', '长治市', '140430', '沁县', '', '', '', '', 3, 1, ''), ('140431', '1404', '00,14,1404', '沁源县', '14', '山西省', '1404', '长治市', '140431', '沁源县', '', '', '', '', 3, 1, ''), ('1405', '14', '00,14', '晋城市', '14', '山西省', '1405', '晋城市', '', '', '', '', '', '', 2, 1, ''), ('140502', '1405', '00,14,1405', '城区', '14', '山西省', '1405', '晋城市', '140502', '城区', '', '', '', '', 3, 1, ''), ('140521', '1405', '00,14,1405', '沁水县', '14', '山西省', '1405', '晋城市', '140521', '沁水县', '', '', '', '', 3, 1, ''), ('140522', '1405', '00,14,1405', '阳城县', '14', '山西省', '1405', '晋城市', '140522', '阳城县', '', '', '', '', 3, 1, ''), ('140524', '1405', '00,14,1405', '陵川县', '14', '山西省', '1405', '晋城市', '140524', '陵川县', '', '', '', '', 3, 1, ''), ('140525', '1405', '00,14,1405', '泽州县', '14', '山西省', '1405', '晋城市', '140525', '泽州县', '', '', '', '', 3, 1, ''), ('140581', '1405', '00,14,1405', '高平市', '14', '山西省', '1405', '晋城市', '140581', '高平市', '', '', '', '', 3, 1, ''), ('1406', '14', '00,14', '朔州市', '14', '山西省', '1406', '朔州市', '', '', '', '', '', '', 2, 1, ''), ('140602', '1406', '00,14,1406', '朔城区', '14', '山西省', '1406', '朔州市', '140602', '朔城区', '', '', '', '', 3, 1, ''), ('140603', '1406', '00,14,1406', '平鲁区', '14', '山西省', '1406', '朔州市', '140603', '平鲁区', '', '', '', '', 3, 1, ''), ('140621', '1406', '00,14,1406', '山阴县', '14', '山西省', '1406', '朔州市', '140621', '山阴县', '', '', '', '', 3, 1, ''), ('140622', '1406', '00,14,1406', '应县', '14', '山西省', '1406', '朔州市', '140622', '应县', '', '', '', '', 3, 1, ''), ('140623', '1406', '00,14,1406', '右玉县', '14', '山西省', '1406', '朔州市', '140623', '右玉县', '', '', '', '', 3, 1, ''), ('140681', '1406', '00,14,1406', '怀仁市', '14', '山西省', '1406', '朔州市', '140681', '怀仁市', '', '', '', '', 3, 1, ''), ('1407', '14', '00,14', '晋中市', '14', '山西省', '1407', '晋中市', '', '', '', '', '', '', 2, 1, ''), ('140702', '1407', '00,14,1407', '榆次区', '14', '山西省', '1407', '晋中市', '140702', '榆次区', '', '', '', '', 3, 1, ''), ('140703', '1407', '00,14,1407', '太谷区', '14', '山西省', '1407', '晋中市', '140703', '太谷区', '', '', '', '', 3, 1, ''), ('140721', '1407', '00,14,1407', '榆社县', '14', '山西省', '1407', '晋中市', '140721', '榆社县', '', '', '', '', 3, 1, ''), ('140722', '1407', '00,14,1407', '左权县', '14', '山西省', '1407', '晋中市', '140722', '左权县', '', '', '', '', 3, 1, ''), ('140723', '1407', '00,14,1407', '和顺县', '14', '山西省', '1407', '晋中市', '140723', '和顺县', '', '', '', '', 3, 1, ''), ('140724', '1407', '00,14,1407', '昔阳县', '14', '山西省', '1407', '晋中市', '140724', '昔阳县', '', '', '', '', 3, 1, ''), ('140725', '1407', '00,14,1407', '寿阳县', '14', '山西省', '1407', '晋中市', '140725', '寿阳县', '', '', '', '', 3, 1, ''), ('140727', '1407', '00,14,1407', '祁县', '14', '山西省', '1407', '晋中市', '140727', '祁县', '', '', '', '', 3, 1, ''), ('140728', '1407', '00,14,1407', '平遥县', '14', '山西省', '1407', '晋中市', '140728', '平遥县', '', '', '', '', 3, 1, ''), ('140729', '1407', '00,14,1407', '灵石县', '14', '山西省', '1407', '晋中市', '140729', '灵石县', '', '', '', '', 3, 1, ''), ('140781', '1407', '00,14,1407', '介休市', '14', '山西省', '1407', '晋中市', '140781', '介休市', '', '', '', '', 3, 1, ''), ('1408', '14', '00,14', '运城市', '14', '山西省', '1408', '运城市', '', '', '', '', '', '', 2, 1, ''), ('140802', '1408', '00,14,1408', '盐湖区', '14', '山西省', '1408', '运城市', '140802', '盐湖区', '', '', '', '', 3, 1, ''), ('140821', '1408', '00,14,1408', '临猗县', '14', '山西省', '1408', '运城市', '140821', '临猗县', '', '', '', '', 3, 1, ''), ('140822', '1408', '00,14,1408', '万荣县', '14', '山西省', '1408', '运城市', '140822', '万荣县', '', '', '', '', 3, 1, ''), ('140823', '1408', '00,14,1408', '闻喜县', '14', '山西省', '1408', '运城市', '140823', '闻喜县', '', '', '', '', 3, 1, ''), ('140824', '1408', '00,14,1408', '稷山县', '14', '山西省', '1408', '运城市', '140824', '稷山县', '', '', '', '', 3, 1, ''), ('140825', '1408', '00,14,1408', '新绛县', '14', '山西省', '1408', '运城市', '140825', '新绛县', '', '', '', '', 3, 1, ''), ('140826', '1408', '00,14,1408', '绛县', '14', '山西省', '1408', '运城市', '140826', '绛县', '', '', '', '', 3, 1, ''), ('140827', '1408', '00,14,1408', '垣曲县', '14', '山西省', '1408', '运城市', '140827', '垣曲县', '', '', '', '', 3, 1, ''), ('140828', '1408', '00,14,1408', '夏县', '14', '山西省', '1408', '运城市', '140828', '夏县', '', '', '', '', 3, 1, ''), ('140829', '1408', '00,14,1408', '平陆县', '14', '山西省', '1408', '运城市', '140829', '平陆县', '', '', '', '', 3, 1, ''), ('140830', '1408', '00,14,1408', '芮城县', '14', '山西省', '1408', '运城市', '140830', '芮城县', '', '', '', '', 3, 1, ''), ('140881', '1408', '00,14,1408', '永济市', '14', '山西省', '1408', '运城市', '140881', '永济市', '', '', '', '', 3, 1, ''), ('140882', '1408', '00,14,1408', '河津市', '14', '山西省', '1408', '运城市', '140882', '河津市', '', '', '', '', 3, 1, ''), ('1409', '14', '00,14', '忻州市', '14', '山西省', '1409', '忻州市', '', '', '', '', '', '', 2, 1, ''), ('140902', '1409', '00,14,1409', '忻府区', '14', '山西省', '1409', '忻州市', '140902', '忻府区', '', '', '', '', 3, 1, ''), ('140921', '1409', '00,14,1409', '定襄县', '14', '山西省', '1409', '忻州市', '140921', '定襄县', '', '', '', '', 3, 1, ''), ('140922', '1409', '00,14,1409', '五台县', '14', '山西省', '1409', '忻州市', '140922', '五台县', '', '', '', '', 3, 1, ''), ('140923', '1409', '00,14,1409', '代县', '14', '山西省', '1409', '忻州市', '140923', '代县', '', '', '', '', 3, 1, ''), ('140924', '1409', '00,14,1409', '繁峙县', '14', '山西省', '1409', '忻州市', '140924', '繁峙县', '', '', '', '', 3, 1, ''), ('140925', '1409', '00,14,1409', '宁武县', '14', '山西省', '1409', '忻州市', '140925', '宁武县', '', '', '', '', 3, 1, ''), ('140926', '1409', '00,14,1409', '静乐县', '14', '山西省', '1409', '忻州市', '140926', '静乐县', '', '', '', '', 3, 1, ''), ('140927', '1409', '00,14,1409', '神池县', '14', '山西省', '1409', '忻州市', '140927', '神池县', '', '', '', '', 3, 1, ''), ('140928', '1409', '00,14,1409', '五寨县', '14', '山西省', '1409', '忻州市', '140928', '五寨县', '', '', '', '', 3, 1, ''), ('140929', '1409', '00,14,1409', '岢岚县', '14', '山西省', '1409', '忻州市', '140929', '岢岚县', '', '', '', '', 3, 1, ''), ('140930', '1409', '00,14,1409', '河曲县', '14', '山西省', '1409', '忻州市', '140930', '河曲县', '', '', '', '', 3, 1, ''), ('140931', '1409', '00,14,1409', '保德县', '14', '山西省', '1409', '忻州市', '140931', '保德县', '', '', '', '', 3, 1, ''), ('140932', '1409', '00,14,1409', '偏关县', '14', '山西省', '1409', '忻州市', '140932', '偏关县', '', '', '', '', 3, 1, ''), ('140981', '1409', '00,14,1409', '原平市', '14', '山西省', '1409', '忻州市', '140981', '原平市', '', '', '', '', 3, 1, ''), ('1410', '14', '00,14', '临汾市', '14', '山西省', '1410', '临汾市', '', '', '', '', '', '', 2, 1, ''), ('141002', '1410', '00,14,1410', '尧都区', '14', '山西省', '1410', '临汾市', '141002', '尧都区', '', '', '', '', 3, 1, ''), ('141021', '1410', '00,14,1410', '曲沃县', '14', '山西省', '1410', '临汾市', '141021', '曲沃县', '', '', '', '', 3, 1, ''), ('141022', '1410', '00,14,1410', '翼城县', '14', '山西省', '1410', '临汾市', '141022', '翼城县', '', '', '', '', 3, 1, ''), ('141023', '1410', '00,14,1410', '襄汾县', '14', '山西省', '1410', '临汾市', '141023', '襄汾县', '', '', '', '', 3, 1, ''), ('141024', '1410', '00,14,1410', '洪洞县', '14', '山西省', '1410', '临汾市', '141024', '洪洞县', '', '', '', '', 3, 1, ''), ('141025', '1410', '00,14,1410', '古县', '14', '山西省', '1410', '临汾市', '141025', '古县', '', '', '', '', 3, 1, ''), ('141026', '1410', '00,14,1410', '安泽县', '14', '山西省', '1410', '临汾市', '141026', '安泽县', '', '', '', '', 3, 1, ''), ('141027', '1410', '00,14,1410', '浮山县', '14', '山西省', '1410', '临汾市', '141027', '浮山县', '', '', '', '', 3, 1, ''), ('141028', '1410', '00,14,1410', '吉县', '14', '山西省', '1410', '临汾市', '141028', '吉县', '', '', '', '', 3, 1, ''), ('141029', '1410', '00,14,1410', '乡宁县', '14', '山西省', '1410', '临汾市', '141029', '乡宁县', '', '', '', '', 3, 1, ''), ('141030', '1410', '00,14,1410', '大宁县', '14', '山西省', '1410', '临汾市', '141030', '大宁县', '', '', '', '', 3, 1, ''), ('141031', '1410', '00,14,1410', '隰县', '14', '山西省', '1410', '临汾市', '141031', '隰县', '', '', '', '', 3, 1, ''), ('141032', '1410', '00,14,1410', '永和县', '14', '山西省', '1410', '临汾市', '141032', '永和县', '', '', '', '', 3, 1, ''), ('141033', '1410', '00,14,1410', '蒲县', '14', '山西省', '1410', '临汾市', '141033', '蒲县', '', '', '', '', 3, 1, ''), ('141034', '1410', '00,14,1410', '汾西县', '14', '山西省', '1410', '临汾市', '141034', '汾西县', '', '', '', '', 3, 1, ''), ('141081', '1410', '00,14,1410', '侯马市', '14', '山西省', '1410', '临汾市', '141081', '侯马市', '', '', '', '', 3, 1, ''), ('141082', '1410', '00,14,1410', '霍州市', '14', '山西省', '1410', '临汾市', '141082', '霍州市', '', '', '', '', 3, 1, ''), ('1411', '14', '00,14', '吕梁市', '14', '山西省', '1411', '吕梁市', '', '', '', '', '', '', 2, 1, ''), ('141102', '1411', '00,14,1411', '离石区', '14', '山西省', '1411', '吕梁市', '141102', '离石区', '', '', '', '', 3, 1, ''), ('141121', '1411', '00,14,1411', '文水县', '14', '山西省', '1411', '吕梁市', '141121', '文水县', '', '', '', '', 3, 1, ''), ('141122', '1411', '00,14,1411', '交城县', '14', '山西省', '1411', '吕梁市', '141122', '交城县', '', '', '', '', 3, 1, ''), ('141123', '1411', '00,14,1411', '兴县', '14', '山西省', '1411', '吕梁市', '141123', '兴县', '', '', '', '', 3, 1, ''), ('141124', '1411', '00,14,1411', '临县', '14', '山西省', '1411', '吕梁市', '141124', '临县', '', '', '', '', 3, 1, ''), ('141125', '1411', '00,14,1411', '柳林县', '14', '山西省', '1411', '吕梁市', '141125', '柳林县', '', '', '', '', 3, 1, ''), ('141126', '1411', '00,14,1411', '石楼县', '14', '山西省', '1411', '吕梁市', '141126', '石楼县', '', '', '', '', 3, 1, ''), ('141127', '1411', '00,14,1411', '岚县', '14', '山西省', '1411', '吕梁市', '141127', '岚县', '', '', '', '', 3, 1, ''), ('141128', '1411', '00,14,1411', '方山县', '14', '山西省', '1411', '吕梁市', '141128', '方山县', '', '', '', '', 3, 1, ''), ('141129', '1411', '00,14,1411', '中阳县', '14', '山西省', '1411', '吕梁市', '141129', '中阳县', '', '', '', '', 3, 1, ''), ('141130', '1411', '00,14,1411', '交口县', '14', '山西省', '1411', '吕梁市', '141130', '交口县', '', '', '', '', 3, 1, ''), ('141181', '1411', '00,14,1411', '孝义市', '14', '山西省', '1411', '吕梁市', '141181', '孝义市', '', '', '', '', 3, 1, ''), ('141182', '1411', '00,14,1411', '汾阳市', '14', '山西省', '1411', '吕梁市', '141182', '汾阳市', '', '', '', '', 3, 1, ''), ('15', '00', '00', '内蒙古自治区', '15', '内蒙古自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('1501', '15', '00,15', '呼和浩特市', '15', '内蒙古自治区', '1501', '呼和浩特市', '', '', '', '', '', '', 2, 1, ''), ('150102', '1501', '00,15,1501', '新城区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150102', '新城区', '', '', '', '', 3, 1, ''), ('150103', '1501', '00,15,1501', '回民区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150103', '回民区', '', '', '', '', 3, 1, ''), ('150104', '1501', '00,15,1501', '玉泉区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150104', '玉泉区', '', '', '', '', 3, 1, ''), ('150105', '1501', '00,15,1501', '赛罕区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150105', '赛罕区', '', '', '', '', 3, 1, ''), ('150121', '1501', '00,15,1501', '土默特左旗', '15', '内蒙古自治区', '1501', '呼和浩特市', '150121', '土默特左旗', '', '', '', '', 3, 1, ''), ('150122', '1501', '00,15,1501', '托克托县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150122', '托克托县', '', '', '', '', 3, 1, ''), ('150123', '1501', '00,15,1501', '和林格尔县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150123', '和林格尔县', '', '', '', '', 3, 1, ''), ('150124', '1501', '00,15,1501', '清水河县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150124', '清水河县', '', '', '', '', 3, 1, ''), ('150125', '1501', '00,15,1501', '武川县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150125', '武川县', '', '', '', '', 3, 1, ''), ('1502', '15', '00,15', '包头市', '15', '内蒙古自治区', '1502', '包头市', '', '', '', '', '', '', 2, 1, ''), ('150202', '1502', '00,15,1502', '东河区', '15', '内蒙古自治区', '1502', '包头市', '150202', '东河区', '', '', '', '', 3, 1, ''), ('150203', '1502', '00,15,1502', '昆都仑区', '15', '内蒙古自治区', '1502', '包头市', '150203', '昆都仑区', '', '', '', '', 3, 1, ''), ('150204', '1502', '00,15,1502', '青山区', '15', '内蒙古自治区', '1502', '包头市', '150204', '青山区', '', '', '', '', 3, 1, ''), ('150205', '1502', '00,15,1502', '石拐区', '15', '内蒙古自治区', '1502', '包头市', '150205', '石拐区', '', '', '', '', 3, 1, ''), ('150206', '1502', '00,15,1502', '白云鄂博矿区', '15', '内蒙古自治区', '1502', '包头市', '150206', '白云鄂博矿区', '', '', '', '', 3, 1, ''), ('150207', '1502', '00,15,1502', '九原区', '15', '内蒙古自治区', '1502', '包头市', '150207', '九原区', '', '', '', '', 3, 1, ''), ('150221', '1502', '00,15,1502', '土默特右旗', '15', '内蒙古自治区', '1502', '包头市', '150221', '土默特右旗', '', '', '', '', 3, 1, ''), ('150222', '1502', '00,15,1502', '固阳县', '15', '内蒙古自治区', '1502', '包头市', '150222', '固阳县', '', '', '', '', 3, 1, ''), ('150223', '1502', '00,15,1502', '达尔罕茂明安联合旗', '15', '内蒙古自治区', '1502', '包头市', '150223', '达尔罕茂明安联合旗', '', '', '', '', 3, 1, ''), ('1503', '15', '00,15', '乌海市', '15', '内蒙古自治区', '1503', '乌海市', '', '', '', '', '', '', 2, 1, ''), ('150302', '1503', '00,15,1503', '海勃湾区', '15', '内蒙古自治区', '1503', '乌海市', '150302', '海勃湾区', '', '', '', '', 3, 1, ''), ('150303', '1503', '00,15,1503', '海南区', '15', '内蒙古自治区', '1503', '乌海市', '150303', '海南区', '', '', '', '', 3, 1, ''), ('150304', '1503', '00,15,1503', '乌达区', '15', '内蒙古自治区', '1503', '乌海市', '150304', '乌达区', '', '', '', '', 3, 1, ''), ('1504', '15', '00,15', '赤峰市', '15', '内蒙古自治区', '1504', '赤峰市', '', '', '', '', '', '', 2, 1, ''), ('150402', '1504', '00,15,1504', '红山区', '15', '内蒙古自治区', '1504', '赤峰市', '150402', '红山区', '', '', '', '', 3, 1, ''), ('150403', '1504', '00,15,1504', '元宝山区', '15', '内蒙古自治区', '1504', '赤峰市', '150403', '元宝山区', '', '', '', '', 3, 1, ''), ('150404', '1504', '00,15,1504', '松山区', '15', '内蒙古自治区', '1504', '赤峰市', '150404', '松山区', '', '', '', '', 3, 1, ''), ('150421', '1504', '00,15,1504', '阿鲁科尔沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150421', '阿鲁科尔沁旗', '', '', '', '', 3, 1, ''), ('150422', '1504', '00,15,1504', '巴林左旗', '15', '内蒙古自治区', '1504', '赤峰市', '150422', '巴林左旗', '', '', '', '', 3, 1, ''), ('150423', '1504', '00,15,1504', '巴林右旗', '15', '内蒙古自治区', '1504', '赤峰市', '150423', '巴林右旗', '', '', '', '', 3, 1, ''), ('150424', '1504', '00,15,1504', '林西县', '15', '内蒙古自治区', '1504', '赤峰市', '150424', '林西县', '', '', '', '', 3, 1, ''), ('150425', '1504', '00,15,1504', '克什克腾旗', '15', '内蒙古自治区', '1504', '赤峰市', '150425', '克什克腾旗', '', '', '', '', 3, 1, ''), ('150426', '1504', '00,15,1504', '翁牛特旗', '15', '内蒙古自治区', '1504', '赤峰市', '150426', '翁牛特旗', '', '', '', '', 3, 1, ''), ('150428', '1504', '00,15,1504', '喀喇沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150428', '喀喇沁旗', '', '', '', '', 3, 1, ''), ('150429', '1504', '00,15,1504', '宁城县', '15', '内蒙古自治区', '1504', '赤峰市', '150429', '宁城县', '', '', '', '', 3, 1, ''), ('150430', '1504', '00,15,1504', '敖汉旗', '15', '内蒙古自治区', '1504', '赤峰市', '150430', '敖汉旗', '', '', '', '', 3, 1, ''), ('1505', '15', '00,15', '通辽市', '15', '内蒙古自治区', '1505', '通辽市', '', '', '', '', '', '', 2, 1, ''), ('150502', '1505', '00,15,1505', '科尔沁区', '15', '内蒙古自治区', '1505', '通辽市', '150502', '科尔沁区', '', '', '', '', 3, 1, ''), ('150521', '1505', '00,15,1505', '科尔沁左翼中旗', '15', '内蒙古自治区', '1505', '通辽市', '150521', '科尔沁左翼中旗', '', '', '', '', 3, 1, ''), ('150522', '1505', '00,15,1505', '科尔沁左翼后旗', '15', '内蒙古自治区', '1505', '通辽市', '150522', '科尔沁左翼后旗', '', '', '', '', 3, 1, ''), ('150523', '1505', '00,15,1505', '开鲁县', '15', '内蒙古自治区', '1505', '通辽市', '150523', '开鲁县', '', '', '', '', 3, 1, ''), ('150524', '1505', '00,15,1505', '库伦旗', '15', '内蒙古自治区', '1505', '通辽市', '150524', '库伦旗', '', '', '', '', 3, 1, ''), ('150525', '1505', '00,15,1505', '奈曼旗', '15', '内蒙古自治区', '1505', '通辽市', '150525', '奈曼旗', '', '', '', '', 3, 1, ''), ('150526', '1505', '00,15,1505', '扎鲁特旗', '15', '内蒙古自治区', '1505', '通辽市', '150526', '扎鲁特旗', '', '', '', '', 3, 1, ''), ('150581', '1505', '00,15,1505', '霍林郭勒市', '15', '内蒙古自治区', '1505', '通辽市', '150581', '霍林郭勒市', '', '', '', '', 3, 1, ''), ('1506', '15', '00,15', '鄂尔多斯市', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '', '', '', '', '', '', 2, 1, ''), ('150602', '1506', '00,15,1506', '东胜区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150602', '东胜区', '', '', '', '', 3, 1, ''), ('150603', '1506', '00,15,1506', '康巴什区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150603', '康巴什区', '', '', '', '', 3, 1, ''), ('150621', '1506', '00,15,1506', '达拉特旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150621', '达拉特旗', '', '', '', '', 3, 1, ''), ('150622', '1506', '00,15,1506', '准格尔旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150622', '准格尔旗', '', '', '', '', 3, 1, ''), ('150623', '1506', '00,15,1506', '鄂托克前旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150623', '鄂托克前旗', '', '', '', '', 3, 1, ''), ('150624', '1506', '00,15,1506', '鄂托克旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150624', '鄂托克旗', '', '', '', '', 3, 1, ''), ('150625', '1506', '00,15,1506', '杭锦旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150625', '杭锦旗', '', '', '', '', 3, 1, ''), ('150626', '1506', '00,15,1506', '乌审旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150626', '乌审旗', '', '', '', '', 3, 1, ''), ('150627', '1506', '00,15,1506', '伊金霍洛旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150627', '伊金霍洛旗', '', '', '', '', 3, 1, ''), ('1507', '15', '00,15', '呼伦贝尔市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '', '', '', '', '', '', 2, 1, ''), ('150702', '1507', '00,15,1507', '海拉尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150702', '海拉尔区', '', '', '', '', 3, 1, ''), ('150703', '1507', '00,15,1507', '扎赉诺尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150703', '扎赉诺尔区', '', '', '', '', 3, 1, ''), ('150721', '1507', '00,15,1507', '阿荣旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150721', '阿荣旗', '', '', '', '', 3, 1, ''), ('150722', '1507', '00,15,1507', '莫力达瓦达斡尔族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150722', '莫力达瓦达斡尔族自治旗', '', '', '', '', 3, 1, ''), ('150723', '1507', '00,15,1507', '鄂伦春自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150723', '鄂伦春自治旗', '', '', '', '', 3, 1, ''), ('150724', '1507', '00,15,1507', '鄂温克族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150724', '鄂温克族自治旗', '', '', '', '', 3, 1, ''), ('150725', '1507', '00,15,1507', '陈巴尔虎旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150725', '陈巴尔虎旗', '', '', '', '', 3, 1, ''), ('150726', '1507', '00,15,1507', '新巴尔虎左旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150726', '新巴尔虎左旗', '', '', '', '', 3, 1, ''), ('150727', '1507', '00,15,1507', '新巴尔虎右旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150727', '新巴尔虎右旗', '', '', '', '', 3, 1, ''), ('150781', '1507', '00,15,1507', '满洲里市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150781', '满洲里市', '', '', '', '', 3, 1, ''), ('150782', '1507', '00,15,1507', '牙克石市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150782', '牙克石市', '', '', '', '', 3, 1, ''), ('150783', '1507', '00,15,1507', '扎兰屯市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150783', '扎兰屯市', '', '', '', '', 3, 1, ''), ('150784', '1507', '00,15,1507', '额尔古纳市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150784', '额尔古纳市', '', '', '', '', 3, 1, ''), ('150785', '1507', '00,15,1507', '根河市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150785', '根河市', '', '', '', '', 3, 1, ''), ('1508', '15', '00,15', '巴彦淖尔市', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '', '', '', '', '', '', 2, 1, ''), ('150802', '1508', '00,15,1508', '临河区', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150802', '临河区', '', '', '', '', 3, 1, ''), ('150821', '1508', '00,15,1508', '五原县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150821', '五原县', '', '', '', '', 3, 1, ''), ('150822', '1508', '00,15,1508', '磴口县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150822', '磴口县', '', '', '', '', 3, 1, ''), ('150823', '1508', '00,15,1508', '乌拉特前旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150823', '乌拉特前旗', '', '', '', '', 3, 1, ''), ('150824', '1508', '00,15,1508', '乌拉特中旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150824', '乌拉特中旗', '', '', '', '', 3, 1, ''), ('150825', '1508', '00,15,1508', '乌拉特后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150825', '乌拉特后旗', '', '', '', '', 3, 1, ''), ('150826', '1508', '00,15,1508', '杭锦后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150826', '杭锦后旗', '', '', '', '', 3, 1, ''), ('1509', '15', '00,15', '乌兰察布市', '15', '内蒙古自治区', '1509', '乌兰察布市', '', '', '', '', '', '', 2, 1, ''), ('150902', '1509', '00,15,1509', '集宁区', '15', '内蒙古自治区', '1509', '乌兰察布市', '150902', '集宁区', '', '', '', '', 3, 1, ''), ('150921', '1509', '00,15,1509', '卓资县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150921', '卓资县', '', '', '', '', 3, 1, ''), ('150922', '1509', '00,15,1509', '化德县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150922', '化德县', '', '', '', '', 3, 1, ''), ('150923', '1509', '00,15,1509', '商都县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150923', '商都县', '', '', '', '', 3, 1, ''), ('150924', '1509', '00,15,1509', '兴和县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150924', '兴和县', '', '', '', '', 3, 1, ''), ('150925', '1509', '00,15,1509', '凉城县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150925', '凉城县', '', '', '', '', 3, 1, ''), ('150926', '1509', '00,15,1509', '察哈尔右翼前旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150926', '察哈尔右翼前旗', '', '', '', '', 3, 1, ''), ('150927', '1509', '00,15,1509', '察哈尔右翼中旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150927', '察哈尔右翼中旗', '', '', '', '', 3, 1, ''), ('150928', '1509', '00,15,1509', '察哈尔右翼后旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150928', '察哈尔右翼后旗', '', '', '', '', 3, 1, ''), ('150929', '1509', '00,15,1509', '四子王旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150929', '四子王旗', '', '', '', '', 3, 1, ''), ('150981', '1509', '00,15,1509', '丰镇市', '15', '内蒙古自治区', '1509', '乌兰察布市', '150981', '丰镇市', '', '', '', '', 3, 1, ''), ('1522', '15', '00,15', '兴安盟', '15', '内蒙古自治区', '1522', '兴安盟', '', '', '', '', '', '', 2, 1, ''), ('152201', '1522', '00,15,1522', '乌兰浩特市', '15', '内蒙古自治区', '1522', '兴安盟', '152201', '乌兰浩特市', '', '', '', '', 3, 1, ''), ('152202', '1522', '00,15,1522', '阿尔山市', '15', '内蒙古自治区', '1522', '兴安盟', '152202', '阿尔山市', '', '', '', '', 3, 1, ''), ('152221', '1522', '00,15,1522', '科尔沁右翼前旗', '15', '内蒙古自治区', '1522', '兴安盟', '152221', '科尔沁右翼前旗', '', '', '', '', 3, 1, ''), ('152222', '1522', '00,15,1522', '科尔沁右翼中旗', '15', '内蒙古自治区', '1522', '兴安盟', '152222', '科尔沁右翼中旗', '', '', '', '', 3, 1, ''), ('152223', '1522', '00,15,1522', '扎赉特旗', '15', '内蒙古自治区', '1522', '兴安盟', '152223', '扎赉特旗', '', '', '', '', 3, 1, ''), ('152224', '1522', '00,15,1522', '突泉县', '15', '内蒙古自治区', '1522', '兴安盟', '152224', '突泉县', '', '', '', '', 3, 1, ''), ('1525', '15', '00,15', '锡林郭勒盟', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '', '', '', '', '', '', 2, 1, ''), ('152501', '1525', '00,15,1525', '二连浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152501', '二连浩特市', '', '', '', '', 3, 1, ''), ('152502', '1525', '00,15,1525', '锡林浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152502', '锡林浩特市', '', '', '', '', 3, 1, ''), ('152522', '1525', '00,15,1525', '阿巴嘎旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152522', '阿巴嘎旗', '', '', '', '', 3, 1, ''), ('152523', '1525', '00,15,1525', '苏尼特左旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152523', '苏尼特左旗', '', '', '', '', 3, 1, ''), ('152524', '1525', '00,15,1525', '苏尼特右旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152524', '苏尼特右旗', '', '', '', '', 3, 1, ''), ('152525', '1525', '00,15,1525', '东乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152525', '东乌珠穆沁旗', '', '', '', '', 3, 1, ''), ('152526', '1525', '00,15,1525', '西乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152526', '西乌珠穆沁旗', '', '', '', '', 3, 1, ''), ('152527', '1525', '00,15,1525', '太仆寺旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152527', '太仆寺旗', '', '', '', '', 3, 1, ''), ('152528', '1525', '00,15,1525', '镶黄旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152528', '镶黄旗', '', '', '', '', 3, 1, ''), ('152529', '1525', '00,15,1525', '正镶白旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152529', '正镶白旗', '', '', '', '', 3, 1, ''), ('152530', '1525', '00,15,1525', '正蓝旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152530', '正蓝旗', '', '', '', '', 3, 1, ''), ('152531', '1525', '00,15,1525', '多伦县', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152531', '多伦县', '', '', '', '', 3, 1, ''), ('1529', '15', '00,15', '阿拉善盟', '15', '内蒙古自治区', '1529', '阿拉善盟', '', '', '', '', '', '', 2, 1, ''), ('152921', '1529', '00,15,1529', '阿拉善左旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152921', '阿拉善左旗', '', '', '', '', 3, 1, ''), ('152922', '1529', '00,15,1529', '阿拉善右旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152922', '阿拉善右旗', '', '', '', '', 3, 1, ''), ('152923', '1529', '00,15,1529', '额济纳旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152923', '额济纳旗', '', '', '', '', 3, 1, ''), ('21', '00', '00', '辽宁省', '21', '辽宁省', '', '', '', '', '', '', '', '', 1, 1, ''), ('2101', '21', '00,21', '沈阳市', '21', '辽宁省', '2101', '沈阳市', '', '', '', '', '', '', 2, 1, ''), ('210102', '2101', '00,21,2101', '和平区', '21', '辽宁省', '2101', '沈阳市', '210102', '和平区', '', '', '', '', 3, 1, ''), ('210103', '2101', '00,21,2101', '沈河区', '21', '辽宁省', '2101', '沈阳市', '210103', '沈河区', '', '', '', '', 3, 1, ''), ('210104', '2101', '00,21,2101', '大东区', '21', '辽宁省', '2101', '沈阳市', '210104', '大东区', '', '', '', '', 3, 1, ''), ('210105', '2101', '00,21,2101', '皇姑区', '21', '辽宁省', '2101', '沈阳市', '210105', '皇姑区', '', '', '', '', 3, 1, ''), ('210106', '2101', '00,21,2101', '铁西区', '21', '辽宁省', '2101', '沈阳市', '210106', '铁西区', '', '', '', '', 3, 1, ''), ('210111', '2101', '00,21,2101', '苏家屯区', '21', '辽宁省', '2101', '沈阳市', '210111', '苏家屯区', '', '', '', '', 3, 1, ''), ('210112', '2101', '00,21,2101', '浑南区', '21', '辽宁省', '2101', '沈阳市', '210112', '浑南区', '', '', '', '', 3, 1, ''), ('210113', '2101', '00,21,2101', '沈北新区', '21', '辽宁省', '2101', '沈阳市', '210113', '沈北新区', '', '', '', '', 3, 1, ''); +INSERT INTO `blade_region` VALUES ('210114', '2101', '00,21,2101', '于洪区', '21', '辽宁省', '2101', '沈阳市', '210114', '于洪区', '', '', '', '', 3, 1, ''), ('210115', '2101', '00,21,2101', '辽中区', '21', '辽宁省', '2101', '沈阳市', '210115', '辽中区', '', '', '', '', 3, 1, ''), ('210123', '2101', '00,21,2101', '康平县', '21', '辽宁省', '2101', '沈阳市', '210123', '康平县', '', '', '', '', 3, 1, ''), ('210124', '2101', '00,21,2101', '法库县', '21', '辽宁省', '2101', '沈阳市', '210124', '法库县', '', '', '', '', 3, 1, ''), ('210181', '2101', '00,21,2101', '新民市', '21', '辽宁省', '2101', '沈阳市', '210181', '新民市', '', '', '', '', 3, 1, ''), ('2102', '21', '00,21', '大连市', '21', '辽宁省', '2102', '大连市', '', '', '', '', '', '', 2, 1, ''), ('210202', '2102', '00,21,2102', '中山区', '21', '辽宁省', '2102', '大连市', '210202', '中山区', '', '', '', '', 3, 1, ''), ('210203', '2102', '00,21,2102', '西岗区', '21', '辽宁省', '2102', '大连市', '210203', '西岗区', '', '', '', '', 3, 1, ''), ('210204', '2102', '00,21,2102', '沙河口区', '21', '辽宁省', '2102', '大连市', '210204', '沙河口区', '', '', '', '', 3, 1, ''), ('210211', '2102', '00,21,2102', '甘井子区', '21', '辽宁省', '2102', '大连市', '210211', '甘井子区', '', '', '', '', 3, 1, ''), ('210212', '2102', '00,21,2102', '旅顺口区', '21', '辽宁省', '2102', '大连市', '210212', '旅顺口区', '', '', '', '', 3, 1, ''), ('210213', '2102', '00,21,2102', '金州区', '21', '辽宁省', '2102', '大连市', '210213', '金州区', '', '', '', '', 3, 1, ''), ('210214', '2102', '00,21,2102', '普兰店区', '21', '辽宁省', '2102', '大连市', '210214', '普兰店区', '', '', '', '', 3, 1, ''), ('210224', '2102', '00,21,2102', '长海县', '21', '辽宁省', '2102', '大连市', '210224', '长海县', '', '', '', '', 3, 1, ''), ('210281', '2102', '00,21,2102', '瓦房店市', '21', '辽宁省', '2102', '大连市', '210281', '瓦房店市', '', '', '', '', 3, 1, ''), ('210283', '2102', '00,21,2102', '庄河市', '21', '辽宁省', '2102', '大连市', '210283', '庄河市', '', '', '', '', 3, 1, ''), ('2103', '21', '00,21', '鞍山市', '21', '辽宁省', '2103', '鞍山市', '', '', '', '', '', '', 2, 1, ''), ('210302', '2103', '00,21,2103', '铁东区', '21', '辽宁省', '2103', '鞍山市', '210302', '铁东区', '', '', '', '', 3, 1, ''), ('210303', '2103', '00,21,2103', '铁西区', '21', '辽宁省', '2103', '鞍山市', '210303', '铁西区', '', '', '', '', 3, 1, ''), ('210304', '2103', '00,21,2103', '立山区', '21', '辽宁省', '2103', '鞍山市', '210304', '立山区', '', '', '', '', 3, 1, ''), ('210311', '2103', '00,21,2103', '千山区', '21', '辽宁省', '2103', '鞍山市', '210311', '千山区', '', '', '', '', 3, 1, ''), ('210321', '2103', '00,21,2103', '台安县', '21', '辽宁省', '2103', '鞍山市', '210321', '台安县', '', '', '', '', 3, 1, ''), ('210323', '2103', '00,21,2103', '岫岩满族自治县', '21', '辽宁省', '2103', '鞍山市', '210323', '岫岩满族自治县', '', '', '', '', 3, 1, ''), ('210381', '2103', '00,21,2103', '海城市', '21', '辽宁省', '2103', '鞍山市', '210381', '海城市', '', '', '', '', 3, 1, ''), ('2104', '21', '00,21', '抚顺市', '21', '辽宁省', '2104', '抚顺市', '', '', '', '', '', '', 2, 1, ''), ('210402', '2104', '00,21,2104', '新抚区', '21', '辽宁省', '2104', '抚顺市', '210402', '新抚区', '', '', '', '', 3, 1, ''), ('210403', '2104', '00,21,2104', '东洲区', '21', '辽宁省', '2104', '抚顺市', '210403', '东洲区', '', '', '', '', 3, 1, ''), ('210404', '2104', '00,21,2104', '望花区', '21', '辽宁省', '2104', '抚顺市', '210404', '望花区', '', '', '', '', 3, 1, ''), ('210411', '2104', '00,21,2104', '顺城区', '21', '辽宁省', '2104', '抚顺市', '210411', '顺城区', '', '', '', '', 3, 1, ''), ('210421', '2104', '00,21,2104', '抚顺县', '21', '辽宁省', '2104', '抚顺市', '210421', '抚顺县', '', '', '', '', 3, 1, ''), ('210422', '2104', '00,21,2104', '新宾满族自治县', '21', '辽宁省', '2104', '抚顺市', '210422', '新宾满族自治县', '', '', '', '', 3, 1, ''), ('210423', '2104', '00,21,2104', '清原满族自治县', '21', '辽宁省', '2104', '抚顺市', '210423', '清原满族自治县', '', '', '', '', 3, 1, ''), ('2105', '21', '00,21', '本溪市', '21', '辽宁省', '2105', '本溪市', '', '', '', '', '', '', 2, 1, ''), ('210502', '2105', '00,21,2105', '平山区', '21', '辽宁省', '2105', '本溪市', '210502', '平山区', '', '', '', '', 3, 1, ''), ('210503', '2105', '00,21,2105', '溪湖区', '21', '辽宁省', '2105', '本溪市', '210503', '溪湖区', '', '', '', '', 3, 1, ''), ('210504', '2105', '00,21,2105', '明山区', '21', '辽宁省', '2105', '本溪市', '210504', '明山区', '', '', '', '', 3, 1, ''), ('210505', '2105', '00,21,2105', '南芬区', '21', '辽宁省', '2105', '本溪市', '210505', '南芬区', '', '', '', '', 3, 1, ''), ('210521', '2105', '00,21,2105', '本溪满族自治县', '21', '辽宁省', '2105', '本溪市', '210521', '本溪满族自治县', '', '', '', '', 3, 1, ''), ('210522', '2105', '00,21,2105', '桓仁满族自治县', '21', '辽宁省', '2105', '本溪市', '210522', '桓仁满族自治县', '', '', '', '', 3, 1, ''), ('2106', '21', '00,21', '丹东市', '21', '辽宁省', '2106', '丹东市', '', '', '', '', '', '', 2, 1, ''), ('210602', '2106', '00,21,2106', '元宝区', '21', '辽宁省', '2106', '丹东市', '210602', '元宝区', '', '', '', '', 3, 1, ''), ('210603', '2106', '00,21,2106', '振兴区', '21', '辽宁省', '2106', '丹东市', '210603', '振兴区', '', '', '', '', 3, 1, ''), ('210604', '2106', '00,21,2106', '振安区', '21', '辽宁省', '2106', '丹东市', '210604', '振安区', '', '', '', '', 3, 1, ''), ('210624', '2106', '00,21,2106', '宽甸满族自治县', '21', '辽宁省', '2106', '丹东市', '210624', '宽甸满族自治县', '', '', '', '', 3, 1, ''), ('210681', '2106', '00,21,2106', '东港市', '21', '辽宁省', '2106', '丹东市', '210681', '东港市', '', '', '', '', 3, 1, ''), ('210682', '2106', '00,21,2106', '凤城市', '21', '辽宁省', '2106', '丹东市', '210682', '凤城市', '', '', '', '', 3, 1, ''), ('2107', '21', '00,21', '锦州市', '21', '辽宁省', '2107', '锦州市', '', '', '', '', '', '', 2, 1, ''), ('210702', '2107', '00,21,2107', '古塔区', '21', '辽宁省', '2107', '锦州市', '210702', '古塔区', '', '', '', '', 3, 1, ''), ('210703', '2107', '00,21,2107', '凌河区', '21', '辽宁省', '2107', '锦州市', '210703', '凌河区', '', '', '', '', 3, 1, ''), ('210711', '2107', '00,21,2107', '太和区', '21', '辽宁省', '2107', '锦州市', '210711', '太和区', '', '', '', '', 3, 1, ''), ('210726', '2107', '00,21,2107', '黑山县', '21', '辽宁省', '2107', '锦州市', '210726', '黑山县', '', '', '', '', 3, 1, ''), ('210727', '2107', '00,21,2107', '义县', '21', '辽宁省', '2107', '锦州市', '210727', '义县', '', '', '', '', 3, 1, ''), ('210781', '2107', '00,21,2107', '凌海市', '21', '辽宁省', '2107', '锦州市', '210781', '凌海市', '', '', '', '', 3, 1, ''), ('210782', '2107', '00,21,2107', '北镇市', '21', '辽宁省', '2107', '锦州市', '210782', '北镇市', '', '', '', '', 3, 1, ''), ('2108', '21', '00,21', '营口市', '21', '辽宁省', '2108', '营口市', '', '', '', '', '', '', 2, 1, ''), ('210802', '2108', '00,21,2108', '站前区', '21', '辽宁省', '2108', '营口市', '210802', '站前区', '', '', '', '', 3, 1, ''), ('210803', '2108', '00,21,2108', '西市区', '21', '辽宁省', '2108', '营口市', '210803', '西市区', '', '', '', '', 3, 1, ''), ('210804', '2108', '00,21,2108', '鲅鱼圈区', '21', '辽宁省', '2108', '营口市', '210804', '鲅鱼圈区', '', '', '', '', 3, 1, ''), ('210811', '2108', '00,21,2108', '老边区', '21', '辽宁省', '2108', '营口市', '210811', '老边区', '', '', '', '', 3, 1, ''), ('210881', '2108', '00,21,2108', '盖州市', '21', '辽宁省', '2108', '营口市', '210881', '盖州市', '', '', '', '', 3, 1, ''), ('210882', '2108', '00,21,2108', '大石桥市', '21', '辽宁省', '2108', '营口市', '210882', '大石桥市', '', '', '', '', 3, 1, ''), ('2109', '21', '00,21', '阜新市', '21', '辽宁省', '2109', '阜新市', '', '', '', '', '', '', 2, 1, ''), ('210902', '2109', '00,21,2109', '海州区', '21', '辽宁省', '2109', '阜新市', '210902', '海州区', '', '', '', '', 3, 1, ''), ('210903', '2109', '00,21,2109', '新邱区', '21', '辽宁省', '2109', '阜新市', '210903', '新邱区', '', '', '', '', 3, 1, ''), ('210904', '2109', '00,21,2109', '太平区', '21', '辽宁省', '2109', '阜新市', '210904', '太平区', '', '', '', '', 3, 1, ''), ('210905', '2109', '00,21,2109', '清河门区', '21', '辽宁省', '2109', '阜新市', '210905', '清河门区', '', '', '', '', 3, 1, ''), ('210911', '2109', '00,21,2109', '细河区', '21', '辽宁省', '2109', '阜新市', '210911', '细河区', '', '', '', '', 3, 1, ''), ('210921', '2109', '00,21,2109', '阜新蒙古族自治县', '21', '辽宁省', '2109', '阜新市', '210921', '阜新蒙古族自治县', '', '', '', '', 3, 1, ''), ('210922', '2109', '00,21,2109', '彰武县', '21', '辽宁省', '2109', '阜新市', '210922', '彰武县', '', '', '', '', 3, 1, ''), ('2110', '21', '00,21', '辽阳市', '21', '辽宁省', '2110', '辽阳市', '', '', '', '', '', '', 2, 1, ''), ('211002', '2110', '00,21,2110', '白塔区', '21', '辽宁省', '2110', '辽阳市', '211002', '白塔区', '', '', '', '', 3, 1, ''), ('211003', '2110', '00,21,2110', '文圣区', '21', '辽宁省', '2110', '辽阳市', '211003', '文圣区', '', '', '', '', 3, 1, ''), ('211004', '2110', '00,21,2110', '宏伟区', '21', '辽宁省', '2110', '辽阳市', '211004', '宏伟区', '', '', '', '', 3, 1, ''), ('211005', '2110', '00,21,2110', '弓长岭区', '21', '辽宁省', '2110', '辽阳市', '211005', '弓长岭区', '', '', '', '', 3, 1, ''), ('211011', '2110', '00,21,2110', '太子河区', '21', '辽宁省', '2110', '辽阳市', '211011', '太子河区', '', '', '', '', 3, 1, ''), ('211021', '2110', '00,21,2110', '辽阳县', '21', '辽宁省', '2110', '辽阳市', '211021', '辽阳县', '', '', '', '', 3, 1, ''), ('211081', '2110', '00,21,2110', '灯塔市', '21', '辽宁省', '2110', '辽阳市', '211081', '灯塔市', '', '', '', '', 3, 1, ''), ('2111', '21', '00,21', '盘锦市', '21', '辽宁省', '2111', '盘锦市', '', '', '', '', '', '', 2, 1, ''), ('211102', '2111', '00,21,2111', '双台子区', '21', '辽宁省', '2111', '盘锦市', '211102', '双台子区', '', '', '', '', 3, 1, ''), ('211103', '2111', '00,21,2111', '兴隆台区', '21', '辽宁省', '2111', '盘锦市', '211103', '兴隆台区', '', '', '', '', 3, 1, ''), ('211104', '2111', '00,21,2111', '大洼区', '21', '辽宁省', '2111', '盘锦市', '211104', '大洼区', '', '', '', '', 3, 1, ''), ('211122', '2111', '00,21,2111', '盘山县', '21', '辽宁省', '2111', '盘锦市', '211122', '盘山县', '', '', '', '', 3, 1, ''), ('2112', '21', '00,21', '铁岭市', '21', '辽宁省', '2112', '铁岭市', '', '', '', '', '', '', 2, 1, ''), ('211202', '2112', '00,21,2112', '银州区', '21', '辽宁省', '2112', '铁岭市', '211202', '银州区', '', '', '', '', 3, 1, ''), ('211204', '2112', '00,21,2112', '清河区', '21', '辽宁省', '2112', '铁岭市', '211204', '清河区', '', '', '', '', 3, 1, ''), ('211221', '2112', '00,21,2112', '铁岭县', '21', '辽宁省', '2112', '铁岭市', '211221', '铁岭县', '', '', '', '', 3, 1, ''), ('211223', '2112', '00,21,2112', '西丰县', '21', '辽宁省', '2112', '铁岭市', '211223', '西丰县', '', '', '', '', 3, 1, ''), ('211224', '2112', '00,21,2112', '昌图县', '21', '辽宁省', '2112', '铁岭市', '211224', '昌图县', '', '', '', '', 3, 1, ''), ('211281', '2112', '00,21,2112', '调兵山市', '21', '辽宁省', '2112', '铁岭市', '211281', '调兵山市', '', '', '', '', 3, 1, ''), ('211282', '2112', '00,21,2112', '开原市', '21', '辽宁省', '2112', '铁岭市', '211282', '开原市', '', '', '', '', 3, 1, ''), ('2113', '21', '00,21', '朝阳市', '21', '辽宁省', '2113', '朝阳市', '', '', '', '', '', '', 2, 1, ''), ('211302', '2113', '00,21,2113', '双塔区', '21', '辽宁省', '2113', '朝阳市', '211302', '双塔区', '', '', '', '', 3, 1, ''), ('211303', '2113', '00,21,2113', '龙城区', '21', '辽宁省', '2113', '朝阳市', '211303', '龙城区', '', '', '', '', 3, 1, ''), ('211321', '2113', '00,21,2113', '朝阳县', '21', '辽宁省', '2113', '朝阳市', '211321', '朝阳县', '', '', '', '', 3, 1, ''), ('211322', '2113', '00,21,2113', '建平县', '21', '辽宁省', '2113', '朝阳市', '211322', '建平县', '', '', '', '', 3, 1, ''), ('211324', '2113', '00,21,2113', '喀喇沁左翼蒙古族自治县', '21', '辽宁省', '2113', '朝阳市', '211324', '喀喇沁左翼蒙古族自治县', '', '', '', '', 3, 1, ''), ('211381', '2113', '00,21,2113', '北票市', '21', '辽宁省', '2113', '朝阳市', '211381', '北票市', '', '', '', '', 3, 1, ''), ('211382', '2113', '00,21,2113', '凌源市', '21', '辽宁省', '2113', '朝阳市', '211382', '凌源市', '', '', '', '', 3, 1, ''), ('2114', '21', '00,21', '葫芦岛市', '21', '辽宁省', '2114', '葫芦岛市', '', '', '', '', '', '', 2, 1, ''), ('211402', '2114', '00,21,2114', '连山区', '21', '辽宁省', '2114', '葫芦岛市', '211402', '连山区', '', '', '', '', 3, 1, ''), ('211403', '2114', '00,21,2114', '龙港区', '21', '辽宁省', '2114', '葫芦岛市', '211403', '龙港区', '', '', '', '', 3, 1, ''), ('211404', '2114', '00,21,2114', '南票区', '21', '辽宁省', '2114', '葫芦岛市', '211404', '南票区', '', '', '', '', 3, 1, ''), ('211421', '2114', '00,21,2114', '绥中县', '21', '辽宁省', '2114', '葫芦岛市', '211421', '绥中县', '', '', '', '', 3, 1, ''), ('211422', '2114', '00,21,2114', '建昌县', '21', '辽宁省', '2114', '葫芦岛市', '211422', '建昌县', '', '', '', '', 3, 1, ''), ('211481', '2114', '00,21,2114', '兴城市', '21', '辽宁省', '2114', '葫芦岛市', '211481', '兴城市', '', '', '', '', 3, 1, ''), ('22', '00', '00', '吉林省', '22', '吉林省', '', '', '', '', '', '', '', '', 1, 1, ''), ('2201', '22', '00,22', '长春市', '22', '吉林省', '2201', '长春市', '', '', '', '', '', '', 2, 1, ''), ('220102', '2201', '00,22,2201', '南关区', '22', '吉林省', '2201', '长春市', '220102', '南关区', '', '', '', '', 3, 1, ''), ('220103', '2201', '00,22,2201', '宽城区', '22', '吉林省', '2201', '长春市', '220103', '宽城区', '', '', '', '', 3, 1, ''), ('220104', '2201', '00,22,2201', '朝阳区', '22', '吉林省', '2201', '长春市', '220104', '朝阳区', '', '', '', '', 3, 1, ''), ('220105', '2201', '00,22,2201', '二道区', '22', '吉林省', '2201', '长春市', '220105', '二道区', '', '', '', '', 3, 1, ''), ('220106', '2201', '00,22,2201', '绿园区', '22', '吉林省', '2201', '长春市', '220106', '绿园区', '', '', '', '', 3, 1, ''), ('220112', '2201', '00,22,2201', '双阳区', '22', '吉林省', '2201', '长春市', '220112', '双阳区', '', '', '', '', 3, 1, ''), ('220113', '2201', '00,22,2201', '九台区', '22', '吉林省', '2201', '长春市', '220113', '九台区', '', '', '', '', 3, 1, ''), ('220122', '2201', '00,22,2201', '农安县', '22', '吉林省', '2201', '长春市', '220122', '农安县', '', '', '', '', 3, 1, ''), ('220182', '2201', '00,22,2201', '榆树市', '22', '吉林省', '2201', '长春市', '220182', '榆树市', '', '', '', '', 3, 1, ''), ('220183', '2201', '00,22,2201', '德惠市', '22', '吉林省', '2201', '长春市', '220183', '德惠市', '', '', '', '', 3, 1, ''), ('2202', '22', '00,22', '吉林市', '22', '吉林省', '2202', '吉林市', '', '', '', '', '', '', 2, 1, ''), ('220202', '2202', '00,22,2202', '昌邑区', '22', '吉林省', '2202', '吉林市', '220202', '昌邑区', '', '', '', '', 3, 1, ''), ('220203', '2202', '00,22,2202', '龙潭区', '22', '吉林省', '2202', '吉林市', '220203', '龙潭区', '', '', '', '', 3, 1, ''), ('220204', '2202', '00,22,2202', '船营区', '22', '吉林省', '2202', '吉林市', '220204', '船营区', '', '', '', '', 3, 1, ''), ('220211', '2202', '00,22,2202', '丰满区', '22', '吉林省', '2202', '吉林市', '220211', '丰满区', '', '', '', '', 3, 1, ''), ('220221', '2202', '00,22,2202', '永吉县', '22', '吉林省', '2202', '吉林市', '220221', '永吉县', '', '', '', '', 3, 1, ''), ('220281', '2202', '00,22,2202', '蛟河市', '22', '吉林省', '2202', '吉林市', '220281', '蛟河市', '', '', '', '', 3, 1, ''), ('220282', '2202', '00,22,2202', '桦甸市', '22', '吉林省', '2202', '吉林市', '220282', '桦甸市', '', '', '', '', 3, 1, ''), ('220283', '2202', '00,22,2202', '舒兰市', '22', '吉林省', '2202', '吉林市', '220283', '舒兰市', '', '', '', '', 3, 1, ''), ('220284', '2202', '00,22,2202', '磐石市', '22', '吉林省', '2202', '吉林市', '220284', '磐石市', '', '', '', '', 3, 1, ''), ('2203', '22', '00,22', '四平市', '22', '吉林省', '2203', '四平市', '', '', '', '', '', '', 2, 1, ''), ('220302', '2203', '00,22,2203', '铁西区', '22', '吉林省', '2203', '四平市', '220302', '铁西区', '', '', '', '', 3, 1, ''), ('220303', '2203', '00,22,2203', '铁东区', '22', '吉林省', '2203', '四平市', '220303', '铁东区', '', '', '', '', 3, 1, ''), ('220322', '2203', '00,22,2203', '梨树县', '22', '吉林省', '2203', '四平市', '220322', '梨树县', '', '', '', '', 3, 1, ''), ('220323', '2203', '00,22,2203', '伊通满族自治县', '22', '吉林省', '2203', '四平市', '220323', '伊通满族自治县', '', '', '', '', 3, 1, ''), ('220381', '2203', '00,22,2203', '公主岭市', '22', '吉林省', '2203', '四平市', '220381', '公主岭市', '', '', '', '', 3, 1, ''), ('220382', '2203', '00,22,2203', '双辽市', '22', '吉林省', '2203', '四平市', '220382', '双辽市', '', '', '', '', 3, 1, ''), ('2204', '22', '00,22', '辽源市', '22', '吉林省', '2204', '辽源市', '', '', '', '', '', '', 2, 1, ''), ('220402', '2204', '00,22,2204', '龙山区', '22', '吉林省', '2204', '辽源市', '220402', '龙山区', '', '', '', '', 3, 1, ''), ('220403', '2204', '00,22,2204', '西安区', '22', '吉林省', '2204', '辽源市', '220403', '西安区', '', '', '', '', 3, 1, ''), ('220421', '2204', '00,22,2204', '东丰县', '22', '吉林省', '2204', '辽源市', '220421', '东丰县', '', '', '', '', 3, 1, ''), ('220422', '2204', '00,22,2204', '东辽县', '22', '吉林省', '2204', '辽源市', '220422', '东辽县', '', '', '', '', 3, 1, ''), ('2205', '22', '00,22', '通化市', '22', '吉林省', '2205', '通化市', '', '', '', '', '', '', 2, 1, ''), ('220502', '2205', '00,22,2205', '东昌区', '22', '吉林省', '2205', '通化市', '220502', '东昌区', '', '', '', '', 3, 1, ''), ('220503', '2205', '00,22,2205', '二道江区', '22', '吉林省', '2205', '通化市', '220503', '二道江区', '', '', '', '', 3, 1, ''), ('220521', '2205', '00,22,2205', '通化县', '22', '吉林省', '2205', '通化市', '220521', '通化县', '', '', '', '', 3, 1, ''), ('220523', '2205', '00,22,2205', '辉南县', '22', '吉林省', '2205', '通化市', '220523', '辉南县', '', '', '', '', 3, 1, ''), ('220524', '2205', '00,22,2205', '柳河县', '22', '吉林省', '2205', '通化市', '220524', '柳河县', '', '', '', '', 3, 1, ''), ('220581', '2205', '00,22,2205', '梅河口市', '22', '吉林省', '2205', '通化市', '220581', '梅河口市', '', '', '', '', 3, 1, ''), ('220582', '2205', '00,22,2205', '集安市', '22', '吉林省', '2205', '通化市', '220582', '集安市', '', '', '', '', 3, 1, ''), ('2206', '22', '00,22', '白山市', '22', '吉林省', '2206', '白山市', '', '', '', '', '', '', 2, 1, ''), ('220602', '2206', '00,22,2206', '浑江区', '22', '吉林省', '2206', '白山市', '220602', '浑江区', '', '', '', '', 3, 1, ''), ('220605', '2206', '00,22,2206', '江源区', '22', '吉林省', '2206', '白山市', '220605', '江源区', '', '', '', '', 3, 1, ''), ('220621', '2206', '00,22,2206', '抚松县', '22', '吉林省', '2206', '白山市', '220621', '抚松县', '', '', '', '', 3, 1, ''), ('220622', '2206', '00,22,2206', '靖宇县', '22', '吉林省', '2206', '白山市', '220622', '靖宇县', '', '', '', '', 3, 1, ''), ('220623', '2206', '00,22,2206', '长白朝鲜族自治县', '22', '吉林省', '2206', '白山市', '220623', '长白朝鲜族自治县', '', '', '', '', 3, 1, ''), ('220681', '2206', '00,22,2206', '临江市', '22', '吉林省', '2206', '白山市', '220681', '临江市', '', '', '', '', 3, 1, ''), ('2207', '22', '00,22', '松原市', '22', '吉林省', '2207', '松原市', '', '', '', '', '', '', 2, 1, ''), ('220702', '2207', '00,22,2207', '宁江区', '22', '吉林省', '2207', '松原市', '220702', '宁江区', '', '', '', '', 3, 1, ''), ('220721', '2207', '00,22,2207', '前郭尔罗斯蒙古族自治县', '22', '吉林省', '2207', '松原市', '220721', '前郭尔罗斯蒙古族自治县', '', '', '', '', 3, 1, ''), ('220722', '2207', '00,22,2207', '长岭县', '22', '吉林省', '2207', '松原市', '220722', '长岭县', '', '', '', '', 3, 1, ''), ('220723', '2207', '00,22,2207', '乾安县', '22', '吉林省', '2207', '松原市', '220723', '乾安县', '', '', '', '', 3, 1, ''), ('220781', '2207', '00,22,2207', '扶余市', '22', '吉林省', '2207', '松原市', '220781', '扶余市', '', '', '', '', 3, 1, ''), ('2208', '22', '00,22', '白城市', '22', '吉林省', '2208', '白城市', '', '', '', '', '', '', 2, 1, ''), ('220802', '2208', '00,22,2208', '洮北区', '22', '吉林省', '2208', '白城市', '220802', '洮北区', '', '', '', '', 3, 1, ''), ('220821', '2208', '00,22,2208', '镇赉县', '22', '吉林省', '2208', '白城市', '220821', '镇赉县', '', '', '', '', 3, 1, ''), ('220822', '2208', '00,22,2208', '通榆县', '22', '吉林省', '2208', '白城市', '220822', '通榆县', '', '', '', '', 3, 1, ''), ('220881', '2208', '00,22,2208', '洮南市', '22', '吉林省', '2208', '白城市', '220881', '洮南市', '', '', '', '', 3, 1, ''), ('220882', '2208', '00,22,2208', '大安市', '22', '吉林省', '2208', '白城市', '220882', '大安市', '', '', '', '', 3, 1, ''), ('2224', '22', '00,22', '延边朝鲜族自治州', '22', '吉林省', '2224', '延边朝鲜族自治州', '', '', '', '', '', '', 2, 1, ''), ('222401', '2224', '00,22,2224', '延吉市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222401', '延吉市', '', '', '', '', 3, 1, ''), ('222402', '2224', '00,22,2224', '图们市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222402', '图们市', '', '', '', '', 3, 1, ''), ('222403', '2224', '00,22,2224', '敦化市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222403', '敦化市', '', '', '', '', 3, 1, ''), ('222404', '2224', '00,22,2224', '珲春市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222404', '珲春市', '', '', '', '', 3, 1, ''), ('222405', '2224', '00,22,2224', '龙井市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222405', '龙井市', '', '', '', '', 3, 1, ''), ('222406', '2224', '00,22,2224', '和龙市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222406', '和龙市', '', '', '', '', 3, 1, ''), ('222424', '2224', '00,22,2224', '汪清县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222424', '汪清县', '', '', '', '', 3, 1, ''), ('222426', '2224', '00,22,2224', '安图县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222426', '安图县', '', '', '', '', 3, 1, ''), ('23', '00', '00', '黑龙江省', '23', '黑龙江省', '', '', '', '', '', '', '', '', 1, 1, ''), ('2301', '23', '00,23', '哈尔滨市', '23', '黑龙江省', '2301', '哈尔滨市', '', '', '', '', '', '', 2, 1, ''), ('230102', '2301', '00,23,2301', '道里区', '23', '黑龙江省', '2301', '哈尔滨市', '230102', '道里区', '', '', '', '', 3, 1, ''), ('230103', '2301', '00,23,2301', '南岗区', '23', '黑龙江省', '2301', '哈尔滨市', '230103', '南岗区', '', '', '', '', 3, 1, ''), ('230104', '2301', '00,23,2301', '道外区', '23', '黑龙江省', '2301', '哈尔滨市', '230104', '道外区', '', '', '', '', 3, 1, ''), ('230108', '2301', '00,23,2301', '平房区', '23', '黑龙江省', '2301', '哈尔滨市', '230108', '平房区', '', '', '', '', 3, 1, ''), ('230109', '2301', '00,23,2301', '松北区', '23', '黑龙江省', '2301', '哈尔滨市', '230109', '松北区', '', '', '', '', 3, 1, ''), ('230110', '2301', '00,23,2301', '香坊区', '23', '黑龙江省', '2301', '哈尔滨市', '230110', '香坊区', '', '', '', '', 3, 1, ''), ('230111', '2301', '00,23,2301', '呼兰区', '23', '黑龙江省', '2301', '哈尔滨市', '230111', '呼兰区', '', '', '', '', 3, 1, ''), ('230112', '2301', '00,23,2301', '阿城区', '23', '黑龙江省', '2301', '哈尔滨市', '230112', '阿城区', '', '', '', '', 3, 1, ''), ('230113', '2301', '00,23,2301', '双城区', '23', '黑龙江省', '2301', '哈尔滨市', '230113', '双城区', '', '', '', '', 3, 1, ''), ('230123', '2301', '00,23,2301', '依兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230123', '依兰县', '', '', '', '', 3, 1, ''), ('230124', '2301', '00,23,2301', '方正县', '23', '黑龙江省', '2301', '哈尔滨市', '230124', '方正县', '', '', '', '', 3, 1, ''), ('230125', '2301', '00,23,2301', '宾县', '23', '黑龙江省', '2301', '哈尔滨市', '230125', '宾县', '', '', '', '', 3, 1, ''), ('230126', '2301', '00,23,2301', '巴彦县', '23', '黑龙江省', '2301', '哈尔滨市', '230126', '巴彦县', '', '', '', '', 3, 1, ''), ('230127', '2301', '00,23,2301', '木兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230127', '木兰县', '', '', '', '', 3, 1, ''), ('230128', '2301', '00,23,2301', '通河县', '23', '黑龙江省', '2301', '哈尔滨市', '230128', '通河县', '', '', '', '', 3, 1, ''), ('230129', '2301', '00,23,2301', '延寿县', '23', '黑龙江省', '2301', '哈尔滨市', '230129', '延寿县', '', '', '', '', 3, 1, ''), ('230183', '2301', '00,23,2301', '尚志市', '23', '黑龙江省', '2301', '哈尔滨市', '230183', '尚志市', '', '', '', '', 3, 1, ''), ('230184', '2301', '00,23,2301', '五常市', '23', '黑龙江省', '2301', '哈尔滨市', '230184', '五常市', '', '', '', '', 3, 1, ''), ('2302', '23', '00,23', '齐齐哈尔市', '23', '黑龙江省', '2302', '齐齐哈尔市', '', '', '', '', '', '', 2, 1, ''), ('230202', '2302', '00,23,2302', '龙沙区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230202', '龙沙区', '', '', '', '', 3, 1, ''), ('230203', '2302', '00,23,2302', '建华区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230203', '建华区', '', '', '', '', 3, 1, ''), ('230204', '2302', '00,23,2302', '铁锋区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230204', '铁锋区', '', '', '', '', 3, 1, ''), ('230205', '2302', '00,23,2302', '昂昂溪区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230205', '昂昂溪区', '', '', '', '', 3, 1, ''), ('230206', '2302', '00,23,2302', '富拉尔基区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230206', '富拉尔基区', '', '', '', '', 3, 1, ''), ('230207', '2302', '00,23,2302', '碾子山区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230207', '碾子山区', '', '', '', '', 3, 1, ''), ('230208', '2302', '00,23,2302', '梅里斯达斡尔族区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230208', '梅里斯达斡尔族区', '', '', '', '', 3, 1, ''), ('230221', '2302', '00,23,2302', '龙江县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230221', '龙江县', '', '', '', '', 3, 1, ''), ('230223', '2302', '00,23,2302', '依安县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230223', '依安县', '', '', '', '', 3, 1, ''), ('230224', '2302', '00,23,2302', '泰来县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230224', '泰来县', '', '', '', '', 3, 1, ''), ('230225', '2302', '00,23,2302', '甘南县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230225', '甘南县', '', '', '', '', 3, 1, ''), ('230227', '2302', '00,23,2302', '富裕县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230227', '富裕县', '', '', '', '', 3, 1, ''), ('230229', '2302', '00,23,2302', '克山县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230229', '克山县', '', '', '', '', 3, 1, ''), ('230230', '2302', '00,23,2302', '克东县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230230', '克东县', '', '', '', '', 3, 1, ''), ('230231', '2302', '00,23,2302', '拜泉县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230231', '拜泉县', '', '', '', '', 3, 1, ''), ('230281', '2302', '00,23,2302', '讷河市', '23', '黑龙江省', '2302', '齐齐哈尔市', '230281', '讷河市', '', '', '', '', 3, 1, ''), ('2303', '23', '00,23', '鸡西市', '23', '黑龙江省', '2303', '鸡西市', '', '', '', '', '', '', 2, 1, ''), ('230302', '2303', '00,23,2303', '鸡冠区', '23', '黑龙江省', '2303', '鸡西市', '230302', '鸡冠区', '', '', '', '', 3, 1, ''), ('230303', '2303', '00,23,2303', '恒山区', '23', '黑龙江省', '2303', '鸡西市', '230303', '恒山区', '', '', '', '', 3, 1, ''), ('230304', '2303', '00,23,2303', '滴道区', '23', '黑龙江省', '2303', '鸡西市', '230304', '滴道区', '', '', '', '', 3, 1, ''), ('230305', '2303', '00,23,2303', '梨树区', '23', '黑龙江省', '2303', '鸡西市', '230305', '梨树区', '', '', '', '', 3, 1, ''), ('230306', '2303', '00,23,2303', '城子河区', '23', '黑龙江省', '2303', '鸡西市', '230306', '城子河区', '', '', '', '', 3, 1, ''), ('230307', '2303', '00,23,2303', '麻山区', '23', '黑龙江省', '2303', '鸡西市', '230307', '麻山区', '', '', '', '', 3, 1, ''), ('230321', '2303', '00,23,2303', '鸡东县', '23', '黑龙江省', '2303', '鸡西市', '230321', '鸡东县', '', '', '', '', 3, 1, ''), ('230381', '2303', '00,23,2303', '虎林市', '23', '黑龙江省', '2303', '鸡西市', '230381', '虎林市', '', '', '', '', 3, 1, ''), ('230382', '2303', '00,23,2303', '密山市', '23', '黑龙江省', '2303', '鸡西市', '230382', '密山市', '', '', '', '', 3, 1, ''), ('2304', '23', '00,23', '鹤岗市', '23', '黑龙江省', '2304', '鹤岗市', '', '', '', '', '', '', 2, 1, ''), ('230402', '2304', '00,23,2304', '向阳区', '23', '黑龙江省', '2304', '鹤岗市', '230402', '向阳区', '', '', '', '', 3, 1, ''), ('230403', '2304', '00,23,2304', '工农区', '23', '黑龙江省', '2304', '鹤岗市', '230403', '工农区', '', '', '', '', 3, 1, ''), ('230404', '2304', '00,23,2304', '南山区', '23', '黑龙江省', '2304', '鹤岗市', '230404', '南山区', '', '', '', '', 3, 1, ''), ('230405', '2304', '00,23,2304', '兴安区', '23', '黑龙江省', '2304', '鹤岗市', '230405', '兴安区', '', '', '', '', 3, 1, ''), ('230406', '2304', '00,23,2304', '东山区', '23', '黑龙江省', '2304', '鹤岗市', '230406', '东山区', '', '', '', '', 3, 1, ''), ('230407', '2304', '00,23,2304', '兴山区', '23', '黑龙江省', '2304', '鹤岗市', '230407', '兴山区', '', '', '', '', 3, 1, ''), ('230421', '2304', '00,23,2304', '萝北县', '23', '黑龙江省', '2304', '鹤岗市', '230421', '萝北县', '', '', '', '', 3, 1, ''), ('230422', '2304', '00,23,2304', '绥滨县', '23', '黑龙江省', '2304', '鹤岗市', '230422', '绥滨县', '', '', '', '', 3, 1, ''), ('2305', '23', '00,23', '双鸭山市', '23', '黑龙江省', '2305', '双鸭山市', '', '', '', '', '', '', 2, 1, ''), ('230502', '2305', '00,23,2305', '尖山区', '23', '黑龙江省', '2305', '双鸭山市', '230502', '尖山区', '', '', '', '', 3, 1, ''), ('230503', '2305', '00,23,2305', '岭东区', '23', '黑龙江省', '2305', '双鸭山市', '230503', '岭东区', '', '', '', '', 3, 1, ''), ('230505', '2305', '00,23,2305', '四方台区', '23', '黑龙江省', '2305', '双鸭山市', '230505', '四方台区', '', '', '', '', 3, 1, ''), ('230506', '2305', '00,23,2305', '宝山区', '23', '黑龙江省', '2305', '双鸭山市', '230506', '宝山区', '', '', '', '', 3, 1, ''), ('230521', '2305', '00,23,2305', '集贤县', '23', '黑龙江省', '2305', '双鸭山市', '230521', '集贤县', '', '', '', '', 3, 1, ''), ('230522', '2305', '00,23,2305', '友谊县', '23', '黑龙江省', '2305', '双鸭山市', '230522', '友谊县', '', '', '', '', 3, 1, ''), ('230523', '2305', '00,23,2305', '宝清县', '23', '黑龙江省', '2305', '双鸭山市', '230523', '宝清县', '', '', '', '', 3, 1, ''), ('230524', '2305', '00,23,2305', '饶河县', '23', '黑龙江省', '2305', '双鸭山市', '230524', '饶河县', '', '', '', '', 3, 1, ''), ('2306', '23', '00,23', '大庆市', '23', '黑龙江省', '2306', '大庆市', '', '', '', '', '', '', 2, 1, ''), ('230602', '2306', '00,23,2306', '萨尔图区', '23', '黑龙江省', '2306', '大庆市', '230602', '萨尔图区', '', '', '', '', 3, 1, ''), ('230603', '2306', '00,23,2306', '龙凤区', '23', '黑龙江省', '2306', '大庆市', '230603', '龙凤区', '', '', '', '', 3, 1, ''), ('230604', '2306', '00,23,2306', '让胡路区', '23', '黑龙江省', '2306', '大庆市', '230604', '让胡路区', '', '', '', '', 3, 1, ''), ('230605', '2306', '00,23,2306', '红岗区', '23', '黑龙江省', '2306', '大庆市', '230605', '红岗区', '', '', '', '', 3, 1, ''), ('230606', '2306', '00,23,2306', '大同区', '23', '黑龙江省', '2306', '大庆市', '230606', '大同区', '', '', '', '', 3, 1, ''), ('230621', '2306', '00,23,2306', '肇州县', '23', '黑龙江省', '2306', '大庆市', '230621', '肇州县', '', '', '', '', 3, 1, ''), ('230622', '2306', '00,23,2306', '肇源县', '23', '黑龙江省', '2306', '大庆市', '230622', '肇源县', '', '', '', '', 3, 1, ''), ('230623', '2306', '00,23,2306', '林甸县', '23', '黑龙江省', '2306', '大庆市', '230623', '林甸县', '', '', '', '', 3, 1, ''), ('230624', '2306', '00,23,2306', '杜尔伯特蒙古族自治县', '23', '黑龙江省', '2306', '大庆市', '230624', '杜尔伯特蒙古族自治县', '', '', '', '', 3, 1, ''), ('2307', '23', '00,23', '伊春市', '23', '黑龙江省', '2307', '伊春市', '', '', '', '', '', '', 2, 1, ''), ('230717', '2307', '00,23,2307', '伊美区', '23', '黑龙江省', '2307', '伊春市', '230717', '伊美区', '', '', '', '', 3, 1, ''), ('230718', '2307', '00,23,2307', '乌翠区', '23', '黑龙江省', '2307', '伊春市', '230718', '乌翠区', '', '', '', '', 3, 1, ''), ('230719', '2307', '00,23,2307', '友好区', '23', '黑龙江省', '2307', '伊春市', '230719', '友好区', '', '', '', '', 3, 1, ''), ('230722', '2307', '00,23,2307', '嘉荫县', '23', '黑龙江省', '2307', '伊春市', '230722', '嘉荫县', '', '', '', '', 3, 1, ''), ('230723', '2307', '00,23,2307', '汤旺县', '23', '黑龙江省', '2307', '伊春市', '230723', '汤旺县', '', '', '', '', 3, 1, ''), ('230724', '2307', '00,23,2307', '丰林县', '23', '黑龙江省', '2307', '伊春市', '230724', '丰林县', '', '', '', '', 3, 1, ''), ('230725', '2307', '00,23,2307', '大箐山县', '23', '黑龙江省', '2307', '伊春市', '230725', '大箐山县', '', '', '', '', 3, 1, ''), ('230726', '2307', '00,23,2307', '南岔县', '23', '黑龙江省', '2307', '伊春市', '230726', '南岔县', '', '', '', '', 3, 1, ''), ('230751', '2307', '00,23,2307', '金林区', '23', '黑龙江省', '2307', '伊春市', '230751', '金林区', '', '', '', '', 3, 1, ''), ('230781', '2307', '00,23,2307', '铁力市', '23', '黑龙江省', '2307', '伊春市', '230781', '铁力市', '', '', '', '', 3, 1, ''), ('2308', '23', '00,23', '佳木斯市', '23', '黑龙江省', '2308', '佳木斯市', '', '', '', '', '', '', 2, 1, ''), ('230803', '2308', '00,23,2308', '向阳区', '23', '黑龙江省', '2308', '佳木斯市', '230803', '向阳区', '', '', '', '', 3, 1, ''), ('230804', '2308', '00,23,2308', '前进区', '23', '黑龙江省', '2308', '佳木斯市', '230804', '前进区', '', '', '', '', 3, 1, ''), ('230805', '2308', '00,23,2308', '东风区', '23', '黑龙江省', '2308', '佳木斯市', '230805', '东风区', '', '', '', '', 3, 1, ''), ('230811', '2308', '00,23,2308', '郊区', '23', '黑龙江省', '2308', '佳木斯市', '230811', '郊区', '', '', '', '', 3, 1, ''), ('230822', '2308', '00,23,2308', '桦南县', '23', '黑龙江省', '2308', '佳木斯市', '230822', '桦南县', '', '', '', '', 3, 1, ''), ('230826', '2308', '00,23,2308', '桦川县', '23', '黑龙江省', '2308', '佳木斯市', '230826', '桦川县', '', '', '', '', 3, 1, ''), ('230828', '2308', '00,23,2308', '汤原县', '23', '黑龙江省', '2308', '佳木斯市', '230828', '汤原县', '', '', '', '', 3, 1, ''), ('230881', '2308', '00,23,2308', '同江市', '23', '黑龙江省', '2308', '佳木斯市', '230881', '同江市', '', '', '', '', 3, 1, ''), ('230882', '2308', '00,23,2308', '富锦市', '23', '黑龙江省', '2308', '佳木斯市', '230882', '富锦市', '', '', '', '', 3, 1, ''), ('230883', '2308', '00,23,2308', '抚远市', '23', '黑龙江省', '2308', '佳木斯市', '230883', '抚远市', '', '', '', '', 3, 1, ''), ('2309', '23', '00,23', '七台河市', '23', '黑龙江省', '2309', '七台河市', '', '', '', '', '', '', 2, 1, ''), ('230902', '2309', '00,23,2309', '新兴区', '23', '黑龙江省', '2309', '七台河市', '230902', '新兴区', '', '', '', '', 3, 1, ''), ('230903', '2309', '00,23,2309', '桃山区', '23', '黑龙江省', '2309', '七台河市', '230903', '桃山区', '', '', '', '', 3, 1, ''), ('230904', '2309', '00,23,2309', '茄子河区', '23', '黑龙江省', '2309', '七台河市', '230904', '茄子河区', '', '', '', '', 3, 1, ''), ('230921', '2309', '00,23,2309', '勃利县', '23', '黑龙江省', '2309', '七台河市', '230921', '勃利县', '', '', '', '', 3, 1, ''), ('2310', '23', '00,23', '牡丹江市', '23', '黑龙江省', '2310', '牡丹江市', '', '', '', '', '', '', 2, 1, ''), ('231002', '2310', '00,23,2310', '东安区', '23', '黑龙江省', '2310', '牡丹江市', '231002', '东安区', '', '', '', '', 3, 1, ''), ('231003', '2310', '00,23,2310', '阳明区', '23', '黑龙江省', '2310', '牡丹江市', '231003', '阳明区', '', '', '', '', 3, 1, ''), ('231004', '2310', '00,23,2310', '爱民区', '23', '黑龙江省', '2310', '牡丹江市', '231004', '爱民区', '', '', '', '', 3, 1, ''), ('231005', '2310', '00,23,2310', '西安区', '23', '黑龙江省', '2310', '牡丹江市', '231005', '西安区', '', '', '', '', 3, 1, ''), ('231025', '2310', '00,23,2310', '林口县', '23', '黑龙江省', '2310', '牡丹江市', '231025', '林口县', '', '', '', '', 3, 1, ''), ('231081', '2310', '00,23,2310', '绥芬河市', '23', '黑龙江省', '2310', '牡丹江市', '231081', '绥芬河市', '', '', '', '', 3, 1, ''), ('231083', '2310', '00,23,2310', '海林市', '23', '黑龙江省', '2310', '牡丹江市', '231083', '海林市', '', '', '', '', 3, 1, ''), ('231084', '2310', '00,23,2310', '宁安市', '23', '黑龙江省', '2310', '牡丹江市', '231084', '宁安市', '', '', '', '', 3, 1, ''), ('231085', '2310', '00,23,2310', '穆棱市', '23', '黑龙江省', '2310', '牡丹江市', '231085', '穆棱市', '', '', '', '', 3, 1, ''), ('231086', '2310', '00,23,2310', '东宁市', '23', '黑龙江省', '2310', '牡丹江市', '231086', '东宁市', '', '', '', '', 3, 1, ''), ('2311', '23', '00,23', '黑河市', '23', '黑龙江省', '2311', '黑河市', '', '', '', '', '', '', 2, 1, ''), ('231102', '2311', '00,23,2311', '爱辉区', '23', '黑龙江省', '2311', '黑河市', '231102', '爱辉区', '', '', '', '', 3, 1, ''), ('231123', '2311', '00,23,2311', '逊克县', '23', '黑龙江省', '2311', '黑河市', '231123', '逊克县', '', '', '', '', 3, 1, ''), ('231124', '2311', '00,23,2311', '孙吴县', '23', '黑龙江省', '2311', '黑河市', '231124', '孙吴县', '', '', '', '', 3, 1, ''), ('231181', '2311', '00,23,2311', '北安市', '23', '黑龙江省', '2311', '黑河市', '231181', '北安市', '', '', '', '', 3, 1, ''), ('231182', '2311', '00,23,2311', '五大连池市', '23', '黑龙江省', '2311', '黑河市', '231182', '五大连池市', '', '', '', '', 3, 1, ''), ('231183', '2311', '00,23,2311', '嫩江市', '23', '黑龙江省', '2311', '黑河市', '231183', '嫩江市', '', '', '', '', 3, 1, ''), ('2312', '23', '00,23', '绥化市', '23', '黑龙江省', '2312', '绥化市', '', '', '', '', '', '', 2, 1, ''), ('231202', '2312', '00,23,2312', '北林区', '23', '黑龙江省', '2312', '绥化市', '231202', '北林区', '', '', '', '', 3, 1, ''), ('231221', '2312', '00,23,2312', '望奎县', '23', '黑龙江省', '2312', '绥化市', '231221', '望奎县', '', '', '', '', 3, 1, ''), ('231222', '2312', '00,23,2312', '兰西县', '23', '黑龙江省', '2312', '绥化市', '231222', '兰西县', '', '', '', '', 3, 1, ''), ('231223', '2312', '00,23,2312', '青冈县', '23', '黑龙江省', '2312', '绥化市', '231223', '青冈县', '', '', '', '', 3, 1, ''), ('231224', '2312', '00,23,2312', '庆安县', '23', '黑龙江省', '2312', '绥化市', '231224', '庆安县', '', '', '', '', 3, 1, ''), ('231225', '2312', '00,23,2312', '明水县', '23', '黑龙江省', '2312', '绥化市', '231225', '明水县', '', '', '', '', 3, 1, ''), ('231226', '2312', '00,23,2312', '绥棱县', '23', '黑龙江省', '2312', '绥化市', '231226', '绥棱县', '', '', '', '', 3, 1, ''), ('231281', '2312', '00,23,2312', '安达市', '23', '黑龙江省', '2312', '绥化市', '231281', '安达市', '', '', '', '', 3, 1, ''), ('231282', '2312', '00,23,2312', '肇东市', '23', '黑龙江省', '2312', '绥化市', '231282', '肇东市', '', '', '', '', 3, 1, ''), ('231283', '2312', '00,23,2312', '海伦市', '23', '黑龙江省', '2312', '绥化市', '231283', '海伦市', '', '', '', '', 3, 1, ''), ('2327', '23', '00,23', '大兴安岭地区', '23', '黑龙江省', '2327', '大兴安岭地区', '', '', '', '', '', '', 2, 1, ''), ('232701', '2327', '00,23,2327', '漠河市', '23', '黑龙江省', '2327', '大兴安岭地区', '232701', '漠河市', '', '', '', '', 3, 1, ''), ('232721', '2327', '00,23,2327', '呼玛县', '23', '黑龙江省', '2327', '大兴安岭地区', '232721', '呼玛县', '', '', '', '', 3, 1, ''), ('232722', '2327', '00,23,2327', '塔河县', '23', '黑龙江省', '2327', '大兴安岭地区', '232722', '塔河县', '', '', '', '', 3, 1, ''), ('31', '00', '00', '上海市', '31', '上海市', '', '', '', '', '', '', '', '', 1, 1, ''), ('3101', '31', '00,31', '上海市', '31', '上海市', '3101', '上海市', '', '', '', '', '', '', 2, 1, ''), ('310101', '3101', '00,31,3101', '黄浦区', '31', '上海市', '3101', '上海市', '310101', '黄浦区', '', '', '', '', 3, 1, ''), ('310104', '3101', '00,31,3101', '徐汇区', '31', '上海市', '3101', '上海市', '310104', '徐汇区', '', '', '', '', 3, 1, ''), ('310105', '3101', '00,31,3101', '长宁区', '31', '上海市', '3101', '上海市', '310105', '长宁区', '', '', '', '', 3, 1, ''), ('310106', '3101', '00,31,3101', '静安区', '31', '上海市', '3101', '上海市', '310106', '静安区', '', '', '', '', 3, 1, ''), ('310107', '3101', '00,31,3101', '普陀区', '31', '上海市', '3101', '上海市', '310107', '普陀区', '', '', '', '', 3, 1, ''), ('310109', '3101', '00,31,3101', '虹口区', '31', '上海市', '3101', '上海市', '310109', '虹口区', '', '', '', '', 3, 1, ''), ('310110', '3101', '00,31,3101', '杨浦区', '31', '上海市', '3101', '上海市', '310110', '杨浦区', '', '', '', '', 3, 1, ''), ('310112', '3101', '00,31,3101', '闵行区', '31', '上海市', '3101', '上海市', '310112', '闵行区', '', '', '', '', 3, 1, ''), ('310113', '3101', '00,31,3101', '宝山区', '31', '上海市', '3101', '上海市', '310113', '宝山区', '', '', '', '', 3, 1, ''), ('310114', '3101', '00,31,3101', '嘉定区', '31', '上海市', '3101', '上海市', '310114', '嘉定区', '', '', '', '', 3, 1, ''), ('310115', '3101', '00,31,3101', '浦东新区', '31', '上海市', '3101', '上海市', '310115', '浦东新区', '', '', '', '', 3, 1, ''), ('310116', '3101', '00,31,3101', '金山区', '31', '上海市', '3101', '上海市', '310116', '金山区', '', '', '', '', 3, 1, ''), ('310117', '3101', '00,31,3101', '松江区', '31', '上海市', '3101', '上海市', '310117', '松江区', '', '', '', '', 3, 1, ''), ('310118', '3101', '00,31,3101', '青浦区', '31', '上海市', '3101', '上海市', '310118', '青浦区', '', '', '', '', 3, 1, ''), ('310120', '3101', '00,31,3101', '奉贤区', '31', '上海市', '3101', '上海市', '310120', '奉贤区', '', '', '', '', 3, 1, ''), ('310151', '3101', '00,31,3101', '崇明区', '31', '上海市', '3101', '上海市', '310151', '崇明区', '', '', '', '', 3, 1, ''), ('32', '00', '00', '江苏省', '32', '江苏省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3201', '32', '00,32', '南京市', '32', '江苏省', '3201', '南京市', '', '', '', '', '', '', 2, 1, ''), ('320102', '3201', '00,32,3201', '玄武区', '32', '江苏省', '3201', '南京市', '320102', '玄武区', '', '', '', '', 3, 1, ''), ('320104', '3201', '00,32,3201', '秦淮区', '32', '江苏省', '3201', '南京市', '320104', '秦淮区', '', '', '', '', 3, 1, ''), ('320105', '3201', '00,32,3201', '建邺区', '32', '江苏省', '3201', '南京市', '320105', '建邺区', '', '', '', '', 3, 1, ''), ('320106', '3201', '00,32,3201', '鼓楼区', '32', '江苏省', '3201', '南京市', '320106', '鼓楼区', '', '', '', '', 3, 1, ''), ('320111', '3201', '00,32,3201', '浦口区', '32', '江苏省', '3201', '南京市', '320111', '浦口区', '', '', '', '', 3, 1, ''), ('320113', '3201', '00,32,3201', '栖霞区', '32', '江苏省', '3201', '南京市', '320113', '栖霞区', '', '', '', '', 3, 1, ''), ('320114', '3201', '00,32,3201', '雨花台区', '32', '江苏省', '3201', '南京市', '320114', '雨花台区', '', '', '', '', 3, 1, ''), ('320115', '3201', '00,32,3201', '江宁区', '32', '江苏省', '3201', '南京市', '320115', '江宁区', '', '', '', '', 3, 1, ''), ('320116', '3201', '00,32,3201', '六合区', '32', '江苏省', '3201', '南京市', '320116', '六合区', '', '', '', '', 3, 1, ''), ('320117', '3201', '00,32,3201', '溧水区', '32', '江苏省', '3201', '南京市', '320117', '溧水区', '', '', '', '', 3, 1, ''), ('320118', '3201', '00,32,3201', '高淳区', '32', '江苏省', '3201', '南京市', '320118', '高淳区', '', '', '', '', 3, 1, ''), ('3202', '32', '00,32', '无锡市', '32', '江苏省', '3202', '无锡市', '', '', '', '', '', '', 2, 1, ''), ('320205', '3202', '00,32,3202', '锡山区', '32', '江苏省', '3202', '无锡市', '320205', '锡山区', '', '', '', '', 3, 1, ''), ('320206', '3202', '00,32,3202', '惠山区', '32', '江苏省', '3202', '无锡市', '320206', '惠山区', '', '', '', '', 3, 1, ''), ('320211', '3202', '00,32,3202', '滨湖区', '32', '江苏省', '3202', '无锡市', '320211', '滨湖区', '', '', '', '', 3, 1, ''), ('320213', '3202', '00,32,3202', '梁溪区', '32', '江苏省', '3202', '无锡市', '320213', '梁溪区', '', '', '', '', 3, 1, ''), ('320214', '3202', '00,32,3202', '新吴区', '32', '江苏省', '3202', '无锡市', '320214', '新吴区', '', '', '', '', 3, 1, ''), ('320281', '3202', '00,32,3202', '江阴市', '32', '江苏省', '3202', '无锡市', '320281', '江阴市', '', '', '', '', 3, 1, ''), ('320282', '3202', '00,32,3202', '宜兴市', '32', '江苏省', '3202', '无锡市', '320282', '宜兴市', '', '', '', '', 3, 1, ''), ('3203', '32', '00,32', '徐州市', '32', '江苏省', '3203', '徐州市', '', '', '', '', '', '', 2, 1, ''), ('320302', '3203', '00,32,3203', '鼓楼区', '32', '江苏省', '3203', '徐州市', '320302', '鼓楼区', '', '', '', '', 3, 1, ''), ('320303', '3203', '00,32,3203', '云龙区', '32', '江苏省', '3203', '徐州市', '320303', '云龙区', '', '', '', '', 3, 1, ''), ('320305', '3203', '00,32,3203', '贾汪区', '32', '江苏省', '3203', '徐州市', '320305', '贾汪区', '', '', '', '', 3, 1, ''), ('320311', '3203', '00,32,3203', '泉山区', '32', '江苏省', '3203', '徐州市', '320311', '泉山区', '', '', '', '', 3, 1, ''), ('320312', '3203', '00,32,3203', '铜山区', '32', '江苏省', '3203', '徐州市', '320312', '铜山区', '', '', '', '', 3, 1, ''), ('320321', '3203', '00,32,3203', '丰县', '32', '江苏省', '3203', '徐州市', '320321', '丰县', '', '', '', '', 3, 1, ''), ('320322', '3203', '00,32,3203', '沛县', '32', '江苏省', '3203', '徐州市', '320322', '沛县', '', '', '', '', 3, 1, ''), ('320324', '3203', '00,32,3203', '睢宁县', '32', '江苏省', '3203', '徐州市', '320324', '睢宁县', '', '', '', '', 3, 1, ''), ('320381', '3203', '00,32,3203', '新沂市', '32', '江苏省', '3203', '徐州市', '320381', '新沂市', '', '', '', '', 3, 1, ''), ('320382', '3203', '00,32,3203', '邳州市', '32', '江苏省', '3203', '徐州市', '320382', '邳州市', '', '', '', '', 3, 1, ''), ('3204', '32', '00,32', '常州市', '32', '江苏省', '3204', '常州市', '', '', '', '', '', '', 2, 1, ''), ('320402', '3204', '00,32,3204', '天宁区', '32', '江苏省', '3204', '常州市', '320402', '天宁区', '', '', '', '', 3, 1, ''), ('320404', '3204', '00,32,3204', '钟楼区', '32', '江苏省', '3204', '常州市', '320404', '钟楼区', '', '', '', '', 3, 1, ''), ('320411', '3204', '00,32,3204', '新北区', '32', '江苏省', '3204', '常州市', '320411', '新北区', '', '', '', '', 3, 1, ''), ('320412', '3204', '00,32,3204', '武进区', '32', '江苏省', '3204', '常州市', '320412', '武进区', '', '', '', '', 3, 1, ''), ('320413', '3204', '00,32,3204', '金坛区', '32', '江苏省', '3204', '常州市', '320413', '金坛区', '', '', '', '', 3, 1, ''), ('320481', '3204', '00,32,3204', '溧阳市', '32', '江苏省', '3204', '常州市', '320481', '溧阳市', '', '', '', '', 3, 1, ''), ('3205', '32', '00,32', '苏州市', '32', '江苏省', '3205', '苏州市', '', '', '', '', '', '', 2, 1, ''), ('320505', '3205', '00,32,3205', '虎丘区', '32', '江苏省', '3205', '苏州市', '320505', '虎丘区', '', '', '', '', 3, 1, ''), ('320506', '3205', '00,32,3205', '吴中区', '32', '江苏省', '3205', '苏州市', '320506', '吴中区', '', '', '', '', 3, 1, ''), ('320507', '3205', '00,32,3205', '相城区', '32', '江苏省', '3205', '苏州市', '320507', '相城区', '', '', '', '', 3, 1, ''), ('320508', '3205', '00,32,3205', '姑苏区', '32', '江苏省', '3205', '苏州市', '320508', '姑苏区', '', '', '', '', 3, 1, ''), ('320509', '3205', '00,32,3205', '吴江区', '32', '江苏省', '3205', '苏州市', '320509', '吴江区', '', '', '', '', 3, 1, ''), ('320581', '3205', '00,32,3205', '常熟市', '32', '江苏省', '3205', '苏州市', '320581', '常熟市', '', '', '', '', 3, 1, ''), ('320582', '3205', '00,32,3205', '张家港市', '32', '江苏省', '3205', '苏州市', '320582', '张家港市', '', '', '', '', 3, 1, ''), ('320583', '3205', '00,32,3205', '昆山市', '32', '江苏省', '3205', '苏州市', '320583', '昆山市', '', '', '', '', 3, 1, ''), ('320585', '3205', '00,32,3205', '太仓市', '32', '江苏省', '3205', '苏州市', '320585', '太仓市', '', '', '', '', 3, 1, ''), ('3206', '32', '00,32', '南通市', '32', '江苏省', '3206', '南通市', '', '', '', '', '', '', 2, 1, ''), ('320602', '3206', '00,32,3206', '崇川区', '32', '江苏省', '3206', '南通市', '320602', '崇川区', '', '', '', '', 3, 1, ''), ('320611', '3206', '00,32,3206', '港闸区', '32', '江苏省', '3206', '南通市', '320611', '港闸区', '', '', '', '', 3, 1, ''), ('320612', '3206', '00,32,3206', '通州区', '32', '江苏省', '3206', '南通市', '320612', '通州区', '', '', '', '', 3, 1, ''), ('320623', '3206', '00,32,3206', '如东县', '32', '江苏省', '3206', '南通市', '320623', '如东县', '', '', '', '', 3, 1, ''), ('320681', '3206', '00,32,3206', '启东市', '32', '江苏省', '3206', '南通市', '320681', '启东市', '', '', '', '', 3, 1, ''), ('320682', '3206', '00,32,3206', '如皋市', '32', '江苏省', '3206', '南通市', '320682', '如皋市', '', '', '', '', 3, 1, ''), ('320684', '3206', '00,32,3206', '海门市', '32', '江苏省', '3206', '南通市', '320684', '海门市', '', '', '', '', 3, 1, ''), ('320685', '3206', '00,32,3206', '海安市', '32', '江苏省', '3206', '南通市', '320685', '海安市', '', '', '', '', 3, 1, ''), ('3207', '32', '00,32', '连云港市', '32', '江苏省', '3207', '连云港市', '', '', '', '', '', '', 2, 1, ''), ('320703', '3207', '00,32,3207', '连云区', '32', '江苏省', '3207', '连云港市', '320703', '连云区', '', '', '', '', 3, 1, ''), ('320706', '3207', '00,32,3207', '海州区', '32', '江苏省', '3207', '连云港市', '320706', '海州区', '', '', '', '', 3, 1, ''), ('320707', '3207', '00,32,3207', '赣榆区', '32', '江苏省', '3207', '连云港市', '320707', '赣榆区', '', '', '', '', 3, 1, ''), ('320722', '3207', '00,32,3207', '东海县', '32', '江苏省', '3207', '连云港市', '320722', '东海县', '', '', '', '', 3, 1, ''), ('320723', '3207', '00,32,3207', '灌云县', '32', '江苏省', '3207', '连云港市', '320723', '灌云县', '', '', '', '', 3, 1, ''), ('320724', '3207', '00,32,3207', '灌南县', '32', '江苏省', '3207', '连云港市', '320724', '灌南县', '', '', '', '', 3, 1, ''), ('3208', '32', '00,32', '淮安市', '32', '江苏省', '3208', '淮安市', '', '', '', '', '', '', 2, 1, ''), ('320803', '3208', '00,32,3208', '淮安区', '32', '江苏省', '3208', '淮安市', '320803', '淮安区', '', '', '', '', 3, 1, ''), ('320804', '3208', '00,32,3208', '淮阴区', '32', '江苏省', '3208', '淮安市', '320804', '淮阴区', '', '', '', '', 3, 1, ''), ('320812', '3208', '00,32,3208', '清江浦区', '32', '江苏省', '3208', '淮安市', '320812', '清江浦区', '', '', '', '', 3, 1, ''), ('320813', '3208', '00,32,3208', '洪泽区', '32', '江苏省', '3208', '淮安市', '320813', '洪泽区', '', '', '', '', 3, 1, ''), ('320826', '3208', '00,32,3208', '涟水县', '32', '江苏省', '3208', '淮安市', '320826', '涟水县', '', '', '', '', 3, 1, ''), ('320830', '3208', '00,32,3208', '盱眙县', '32', '江苏省', '3208', '淮安市', '320830', '盱眙县', '', '', '', '', 3, 1, ''), ('320831', '3208', '00,32,3208', '金湖县', '32', '江苏省', '3208', '淮安市', '320831', '金湖县', '', '', '', '', 3, 1, ''), ('3209', '32', '00,32', '盐城市', '32', '江苏省', '3209', '盐城市', '', '', '', '', '', '', 2, 1, ''), ('320902', '3209', '00,32,3209', '亭湖区', '32', '江苏省', '3209', '盐城市', '320902', '亭湖区', '', '', '', '', 3, 1, ''), ('320903', '3209', '00,32,3209', '盐都区', '32', '江苏省', '3209', '盐城市', '320903', '盐都区', '', '', '', '', 3, 1, ''), ('320904', '3209', '00,32,3209', '大丰区', '32', '江苏省', '3209', '盐城市', '320904', '大丰区', '', '', '', '', 3, 1, ''), ('320921', '3209', '00,32,3209', '响水县', '32', '江苏省', '3209', '盐城市', '320921', '响水县', '', '', '', '', 3, 1, ''), ('320922', '3209', '00,32,3209', '滨海县', '32', '江苏省', '3209', '盐城市', '320922', '滨海县', '', '', '', '', 3, 1, ''), ('320923', '3209', '00,32,3209', '阜宁县', '32', '江苏省', '3209', '盐城市', '320923', '阜宁县', '', '', '', '', 3, 1, ''), ('320924', '3209', '00,32,3209', '射阳县', '32', '江苏省', '3209', '盐城市', '320924', '射阳县', '', '', '', '', 3, 1, ''), ('320925', '3209', '00,32,3209', '建湖县', '32', '江苏省', '3209', '盐城市', '320925', '建湖县', '', '', '', '', 3, 1, ''), ('320981', '3209', '00,32,3209', '东台市', '32', '江苏省', '3209', '盐城市', '320981', '东台市', '', '', '', '', 3, 1, ''), ('3210', '32', '00,32', '扬州市', '32', '江苏省', '3210', '扬州市', '', '', '', '', '', '', 2, 1, ''), ('321002', '3210', '00,32,3210', '广陵区', '32', '江苏省', '3210', '扬州市', '321002', '广陵区', '', '', '', '', 3, 1, ''), ('321003', '3210', '00,32,3210', '邗江区', '32', '江苏省', '3210', '扬州市', '321003', '邗江区', '', '', '', '', 3, 1, ''), ('321012', '3210', '00,32,3210', '江都区', '32', '江苏省', '3210', '扬州市', '321012', '江都区', '', '', '', '', 3, 1, ''), ('321023', '3210', '00,32,3210', '宝应县', '32', '江苏省', '3210', '扬州市', '321023', '宝应县', '', '', '', '', 3, 1, ''), ('321081', '3210', '00,32,3210', '仪征市', '32', '江苏省', '3210', '扬州市', '321081', '仪征市', '', '', '', '', 3, 1, ''), ('321084', '3210', '00,32,3210', '高邮市', '32', '江苏省', '3210', '扬州市', '321084', '高邮市', '', '', '', '', 3, 1, ''), ('3211', '32', '00,32', '镇江市', '32', '江苏省', '3211', '镇江市', '', '', '', '', '', '', 2, 1, ''), ('321102', '3211', '00,32,3211', '京口区', '32', '江苏省', '3211', '镇江市', '321102', '京口区', '', '', '', '', 3, 1, ''), ('321111', '3211', '00,32,3211', '润州区', '32', '江苏省', '3211', '镇江市', '321111', '润州区', '', '', '', '', 3, 1, ''), ('321112', '3211', '00,32,3211', '丹徒区', '32', '江苏省', '3211', '镇江市', '321112', '丹徒区', '', '', '', '', 3, 1, ''), ('321181', '3211', '00,32,3211', '丹阳市', '32', '江苏省', '3211', '镇江市', '321181', '丹阳市', '', '', '', '', 3, 1, ''), ('321182', '3211', '00,32,3211', '扬中市', '32', '江苏省', '3211', '镇江市', '321182', '扬中市', '', '', '', '', 3, 1, ''), ('321183', '3211', '00,32,3211', '句容市', '32', '江苏省', '3211', '镇江市', '321183', '句容市', '', '', '', '', 3, 1, ''), ('3212', '32', '00,32', '泰州市', '32', '江苏省', '3212', '泰州市', '', '', '', '', '', '', 2, 1, ''), ('321202', '3212', '00,32,3212', '海陵区', '32', '江苏省', '3212', '泰州市', '321202', '海陵区', '', '', '', '', 3, 1, ''), ('321203', '3212', '00,32,3212', '高港区', '32', '江苏省', '3212', '泰州市', '321203', '高港区', '', '', '', '', 3, 1, ''), ('321204', '3212', '00,32,3212', '姜堰区', '32', '江苏省', '3212', '泰州市', '321204', '姜堰区', '', '', '', '', 3, 1, ''), ('321281', '3212', '00,32,3212', '兴化市', '32', '江苏省', '3212', '泰州市', '321281', '兴化市', '', '', '', '', 3, 1, ''), ('321282', '3212', '00,32,3212', '靖江市', '32', '江苏省', '3212', '泰州市', '321282', '靖江市', '', '', '', '', 3, 1, ''), ('321283', '3212', '00,32,3212', '泰兴市', '32', '江苏省', '3212', '泰州市', '321283', '泰兴市', '', '', '', '', 3, 1, ''), ('3213', '32', '00,32', '宿迁市', '32', '江苏省', '3213', '宿迁市', '', '', '', '', '', '', 2, 1, ''), ('321302', '3213', '00,32,3213', '宿城区', '32', '江苏省', '3213', '宿迁市', '321302', '宿城区', '', '', '', '', 3, 1, ''), ('321311', '3213', '00,32,3213', '宿豫区', '32', '江苏省', '3213', '宿迁市', '321311', '宿豫区', '', '', '', '', 3, 1, ''), ('321322', '3213', '00,32,3213', '沭阳县', '32', '江苏省', '3213', '宿迁市', '321322', '沭阳县', '', '', '', '', 3, 1, ''), ('321323', '3213', '00,32,3213', '泗阳县', '32', '江苏省', '3213', '宿迁市', '321323', '泗阳县', '', '', '', '', 3, 1, ''), ('321324', '3213', '00,32,3213', '泗洪县', '32', '江苏省', '3213', '宿迁市', '321324', '泗洪县', '', '', '', '', 3, 1, ''), ('33', '00', '00', '浙江省', '33', '浙江省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3301', '33', '00,33', '杭州市', '33', '浙江省', '3301', '杭州市', '', '', '', '', '', '', 2, 1, ''), ('330102', '3301', '00,33,3301', '上城区', '33', '浙江省', '3301', '杭州市', '330102', '上城区', '', '', '', '', 3, 1, ''), ('330103', '3301', '00,33,3301', '下城区', '33', '浙江省', '3301', '杭州市', '330103', '下城区', '', '', '', '', 3, 1, ''), ('330104', '3301', '00,33,3301', '江干区', '33', '浙江省', '3301', '杭州市', '330104', '江干区', '', '', '', '', 3, 1, ''), ('330105', '3301', '00,33,3301', '拱墅区', '33', '浙江省', '3301', '杭州市', '330105', '拱墅区', '', '', '', '', 3, 1, ''), ('330106', '3301', '00,33,3301', '西湖区', '33', '浙江省', '3301', '杭州市', '330106', '西湖区', '', '', '', '', 3, 1, ''), ('330108', '3301', '00,33,3301', '滨江区', '33', '浙江省', '3301', '杭州市', '330108', '滨江区', '', '', '', '', 3, 1, ''), ('330109', '3301', '00,33,3301', '萧山区', '33', '浙江省', '3301', '杭州市', '330109', '萧山区', '', '', '', '', 3, 1, ''), ('330110', '3301', '00,33,3301', '余杭区', '33', '浙江省', '3301', '杭州市', '330110', '余杭区', '', '', '', '', 3, 1, ''), ('330111', '3301', '00,33,3301', '富阳区', '33', '浙江省', '3301', '杭州市', '330111', '富阳区', '', '', '', '', 3, 1, ''), ('330112', '3301', '00,33,3301', '临安区', '33', '浙江省', '3301', '杭州市', '330112', '临安区', '', '', '', '', 3, 1, ''), ('330122', '3301', '00,33,3301', '桐庐县', '33', '浙江省', '3301', '杭州市', '330122', '桐庐县', '', '', '', '', 3, 1, ''), ('330127', '3301', '00,33,3301', '淳安县', '33', '浙江省', '3301', '杭州市', '330127', '淳安县', '', '', '', '', 3, 1, ''), ('330182', '3301', '00,33,3301', '建德市', '33', '浙江省', '3301', '杭州市', '330182', '建德市', '', '', '', '', 3, 1, ''), ('3302', '33', '00,33', '宁波市', '33', '浙江省', '3302', '宁波市', '', '', '', '', '', '', 2, 1, ''), ('330203', '3302', '00,33,3302', '海曙区', '33', '浙江省', '3302', '宁波市', '330203', '海曙区', '', '', '', '', 3, 1, ''), ('330205', '3302', '00,33,3302', '江北区', '33', '浙江省', '3302', '宁波市', '330205', '江北区', '', '', '', '', 3, 1, ''), ('330206', '3302', '00,33,3302', '北仑区', '33', '浙江省', '3302', '宁波市', '330206', '北仑区', '', '', '', '', 3, 1, ''), ('330211', '3302', '00,33,3302', '镇海区', '33', '浙江省', '3302', '宁波市', '330211', '镇海区', '', '', '', '', 3, 1, ''), ('330212', '3302', '00,33,3302', '鄞州区', '33', '浙江省', '3302', '宁波市', '330212', '鄞州区', '', '', '', '', 3, 1, ''), ('330213', '3302', '00,33,3302', '奉化区', '33', '浙江省', '3302', '宁波市', '330213', '奉化区', '', '', '', '', 3, 1, ''), ('330225', '3302', '00,33,3302', '象山县', '33', '浙江省', '3302', '宁波市', '330225', '象山县', '', '', '', '', 3, 1, ''), ('330226', '3302', '00,33,3302', '宁海县', '33', '浙江省', '3302', '宁波市', '330226', '宁海县', '', '', '', '', 3, 1, ''), ('330281', '3302', '00,33,3302', '余姚市', '33', '浙江省', '3302', '宁波市', '330281', '余姚市', '', '', '', '', 3, 1, ''), ('330282', '3302', '00,33,3302', '慈溪市', '33', '浙江省', '3302', '宁波市', '330282', '慈溪市', '', '', '', '', 3, 1, ''), ('3303', '33', '00,33', '温州市', '33', '浙江省', '3303', '温州市', '', '', '', '', '', '', 2, 1, ''), ('330302', '3303', '00,33,3303', '鹿城区', '33', '浙江省', '3303', '温州市', '330302', '鹿城区', '', '', '', '', 3, 1, ''), ('330303', '3303', '00,33,3303', '龙湾区', '33', '浙江省', '3303', '温州市', '330303', '龙湾区', '', '', '', '', 3, 1, ''), ('330304', '3303', '00,33,3303', '瓯海区', '33', '浙江省', '3303', '温州市', '330304', '瓯海区', '', '', '', '', 3, 1, ''), ('330305', '3303', '00,33,3303', '洞头区', '33', '浙江省', '3303', '温州市', '330305', '洞头区', '', '', '', '', 3, 1, ''), ('330324', '3303', '00,33,3303', '永嘉县', '33', '浙江省', '3303', '温州市', '330324', '永嘉县', '', '', '', '', 3, 1, ''), ('330326', '3303', '00,33,3303', '平阳县', '33', '浙江省', '3303', '温州市', '330326', '平阳县', '', '', '', '', 3, 1, ''), ('330327', '3303', '00,33,3303', '苍南县', '33', '浙江省', '3303', '温州市', '330327', '苍南县', '', '', '', '', 3, 1, ''), ('330328', '3303', '00,33,3303', '文成县', '33', '浙江省', '3303', '温州市', '330328', '文成县', '', '', '', '', 3, 1, ''), ('330329', '3303', '00,33,3303', '泰顺县', '33', '浙江省', '3303', '温州市', '330329', '泰顺县', '', '', '', '', 3, 1, ''), ('330381', '3303', '00,33,3303', '瑞安市', '33', '浙江省', '3303', '温州市', '330381', '瑞安市', '', '', '', '', 3, 1, ''), ('330382', '3303', '00,33,3303', '乐清市', '33', '浙江省', '3303', '温州市', '330382', '乐清市', '', '', '', '', 3, 1, ''), ('330383', '3303', '00,33,3303', '龙港市', '33', '浙江省', '3303', '温州市', '330383', '龙港市', '', '', '', '', 3, 1, ''), ('3304', '33', '00,33', '嘉兴市', '33', '浙江省', '3304', '嘉兴市', '', '', '', '', '', '', 2, 1, ''), ('330402', '3304', '00,33,3304', '南湖区', '33', '浙江省', '3304', '嘉兴市', '330402', '南湖区', '', '', '', '', 3, 1, ''), ('330411', '3304', '00,33,3304', '秀洲区', '33', '浙江省', '3304', '嘉兴市', '330411', '秀洲区', '', '', '', '', 3, 1, ''), ('330421', '3304', '00,33,3304', '嘉善县', '33', '浙江省', '3304', '嘉兴市', '330421', '嘉善县', '', '', '', '', 3, 1, ''), ('330424', '3304', '00,33,3304', '海盐县', '33', '浙江省', '3304', '嘉兴市', '330424', '海盐县', '', '', '', '', 3, 1, ''); +INSERT INTO `blade_region` VALUES ('330481', '3304', '00,33,3304', '海宁市', '33', '浙江省', '3304', '嘉兴市', '330481', '海宁市', '', '', '', '', 3, 1, ''), ('330482', '3304', '00,33,3304', '平湖市', '33', '浙江省', '3304', '嘉兴市', '330482', '平湖市', '', '', '', '', 3, 1, ''), ('330483', '3304', '00,33,3304', '桐乡市', '33', '浙江省', '3304', '嘉兴市', '330483', '桐乡市', '', '', '', '', 3, 1, ''), ('3305', '33', '00,33', '湖州市', '33', '浙江省', '3305', '湖州市', '', '', '', '', '', '', 2, 1, ''), ('330502', '3305', '00,33,3305', '吴兴区', '33', '浙江省', '3305', '湖州市', '330502', '吴兴区', '', '', '', '', 3, 1, ''), ('330503', '3305', '00,33,3305', '南浔区', '33', '浙江省', '3305', '湖州市', '330503', '南浔区', '', '', '', '', 3, 1, ''), ('330521', '3305', '00,33,3305', '德清县', '33', '浙江省', '3305', '湖州市', '330521', '德清县', '', '', '', '', 3, 1, ''), ('330522', '3305', '00,33,3305', '长兴县', '33', '浙江省', '3305', '湖州市', '330522', '长兴县', '', '', '', '', 3, 1, ''), ('330523', '3305', '00,33,3305', '安吉县', '33', '浙江省', '3305', '湖州市', '330523', '安吉县', '', '', '', '', 3, 1, ''), ('3306', '33', '00,33', '绍兴市', '33', '浙江省', '3306', '绍兴市', '', '', '', '', '', '', 2, 1, ''), ('330602', '3306', '00,33,3306', '越城区', '33', '浙江省', '3306', '绍兴市', '330602', '越城区', '', '', '', '', 3, 1, ''), ('330603', '3306', '00,33,3306', '柯桥区', '33', '浙江省', '3306', '绍兴市', '330603', '柯桥区', '', '', '', '', 3, 1, ''), ('330604', '3306', '00,33,3306', '上虞区', '33', '浙江省', '3306', '绍兴市', '330604', '上虞区', '', '', '', '', 3, 1, ''), ('330624', '3306', '00,33,3306', '新昌县', '33', '浙江省', '3306', '绍兴市', '330624', '新昌县', '', '', '', '', 3, 1, ''), ('330681', '3306', '00,33,3306', '诸暨市', '33', '浙江省', '3306', '绍兴市', '330681', '诸暨市', '', '', '', '', 3, 1, ''), ('330683', '3306', '00,33,3306', '嵊州市', '33', '浙江省', '3306', '绍兴市', '330683', '嵊州市', '', '', '', '', 3, 1, ''), ('3307', '33', '00,33', '金华市', '33', '浙江省', '3307', '金华市', '', '', '', '', '', '', 2, 1, ''), ('330702', '3307', '00,33,3307', '婺城区', '33', '浙江省', '3307', '金华市', '330702', '婺城区', '', '', '', '', 3, 1, ''), ('330703', '3307', '00,33,3307', '金东区', '33', '浙江省', '3307', '金华市', '330703', '金东区', '', '', '', '', 3, 1, ''), ('330723', '3307', '00,33,3307', '武义县', '33', '浙江省', '3307', '金华市', '330723', '武义县', '', '', '', '', 3, 1, ''), ('330726', '3307', '00,33,3307', '浦江县', '33', '浙江省', '3307', '金华市', '330726', '浦江县', '', '', '', '', 3, 1, ''), ('330727', '3307', '00,33,3307', '磐安县', '33', '浙江省', '3307', '金华市', '330727', '磐安县', '', '', '', '', 3, 1, ''), ('330781', '3307', '00,33,3307', '兰溪市', '33', '浙江省', '3307', '金华市', '330781', '兰溪市', '', '', '', '', 3, 1, ''), ('330782', '3307', '00,33,3307', '义乌市', '33', '浙江省', '3307', '金华市', '330782', '义乌市', '', '', '', '', 3, 1, ''), ('330783', '3307', '00,33,3307', '东阳市', '33', '浙江省', '3307', '金华市', '330783', '东阳市', '', '', '', '', 3, 1, ''), ('330784', '3307', '00,33,3307', '永康市', '33', '浙江省', '3307', '金华市', '330784', '永康市', '', '', '', '', 3, 1, ''), ('3308', '33', '00,33', '衢州市', '33', '浙江省', '3308', '衢州市', '', '', '', '', '', '', 2, 1, ''), ('330802', '3308', '00,33,3308', '柯城区', '33', '浙江省', '3308', '衢州市', '330802', '柯城区', '', '', '', '', 3, 1, ''), ('330803', '3308', '00,33,3308', '衢江区', '33', '浙江省', '3308', '衢州市', '330803', '衢江区', '', '', '', '', 3, 1, ''), ('330822', '3308', '00,33,3308', '常山县', '33', '浙江省', '3308', '衢州市', '330822', '常山县', '', '', '', '', 3, 1, ''), ('330824', '3308', '00,33,3308', '开化县', '33', '浙江省', '3308', '衢州市', '330824', '开化县', '', '', '', '', 3, 1, ''), ('330825', '3308', '00,33,3308', '龙游县', '33', '浙江省', '3308', '衢州市', '330825', '龙游县', '', '', '', '', 3, 1, ''), ('330881', '3308', '00,33,3308', '江山市', '33', '浙江省', '3308', '衢州市', '330881', '江山市', '', '', '', '', 3, 1, ''), ('3309', '33', '00,33', '舟山市', '33', '浙江省', '3309', '舟山市', '', '', '', '', '', '', 2, 1, ''), ('330902', '3309', '00,33,3309', '定海区', '33', '浙江省', '3309', '舟山市', '330902', '定海区', '', '', '', '', 3, 1, ''), ('330903', '3309', '00,33,3309', '普陀区', '33', '浙江省', '3309', '舟山市', '330903', '普陀区', '', '', '', '', 3, 1, ''), ('330921', '3309', '00,33,3309', '岱山县', '33', '浙江省', '3309', '舟山市', '330921', '岱山县', '', '', '', '', 3, 1, ''), ('330922', '3309', '00,33,3309', '嵊泗县', '33', '浙江省', '3309', '舟山市', '330922', '嵊泗县', '', '', '', '', 3, 1, ''), ('3310', '33', '00,33', '台州市', '33', '浙江省', '3310', '台州市', '', '', '', '', '', '', 2, 1, ''), ('331002', '3310', '00,33,3310', '椒江区', '33', '浙江省', '3310', '台州市', '331002', '椒江区', '', '', '', '', 3, 1, ''), ('331003', '3310', '00,33,3310', '黄岩区', '33', '浙江省', '3310', '台州市', '331003', '黄岩区', '', '', '', '', 3, 1, ''), ('331004', '3310', '00,33,3310', '路桥区', '33', '浙江省', '3310', '台州市', '331004', '路桥区', '', '', '', '', 3, 1, ''), ('331022', '3310', '00,33,3310', '三门县', '33', '浙江省', '3310', '台州市', '331022', '三门县', '', '', '', '', 3, 1, ''), ('331023', '3310', '00,33,3310', '天台县', '33', '浙江省', '3310', '台州市', '331023', '天台县', '', '', '', '', 3, 1, ''), ('331024', '3310', '00,33,3310', '仙居县', '33', '浙江省', '3310', '台州市', '331024', '仙居县', '', '', '', '', 3, 1, ''), ('331081', '3310', '00,33,3310', '温岭市', '33', '浙江省', '3310', '台州市', '331081', '温岭市', '', '', '', '', 3, 1, ''), ('331082', '3310', '00,33,3310', '临海市', '33', '浙江省', '3310', '台州市', '331082', '临海市', '', '', '', '', 3, 1, ''), ('331083', '3310', '00,33,3310', '玉环市', '33', '浙江省', '3310', '台州市', '331083', '玉环市', '', '', '', '', 3, 1, ''), ('3311', '33', '00,33', '丽水市', '33', '浙江省', '3311', '丽水市', '', '', '', '', '', '', 2, 1, ''), ('331102', '3311', '00,33,3311', '莲都区', '33', '浙江省', '3311', '丽水市', '331102', '莲都区', '', '', '', '', 3, 1, ''), ('331121', '3311', '00,33,3311', '青田县', '33', '浙江省', '3311', '丽水市', '331121', '青田县', '', '', '', '', 3, 1, ''), ('331122', '3311', '00,33,3311', '缙云县', '33', '浙江省', '3311', '丽水市', '331122', '缙云县', '', '', '', '', 3, 1, ''), ('331123', '3311', '00,33,3311', '遂昌县', '33', '浙江省', '3311', '丽水市', '331123', '遂昌县', '', '', '', '', 3, 1, ''), ('331124', '3311', '00,33,3311', '松阳县', '33', '浙江省', '3311', '丽水市', '331124', '松阳县', '', '', '', '', 3, 1, ''), ('331125', '3311', '00,33,3311', '云和县', '33', '浙江省', '3311', '丽水市', '331125', '云和县', '', '', '', '', 3, 1, ''), ('331126', '3311', '00,33,3311', '庆元县', '33', '浙江省', '3311', '丽水市', '331126', '庆元县', '', '', '', '', 3, 1, ''), ('331127', '3311', '00,33,3311', '景宁畲族自治县', '33', '浙江省', '3311', '丽水市', '331127', '景宁畲族自治县', '', '', '', '', 3, 1, ''), ('331181', '3311', '00,33,3311', '龙泉市', '33', '浙江省', '3311', '丽水市', '331181', '龙泉市', '', '', '', '', 3, 1, ''), ('34', '00', '00', '安徽省', '34', '安徽省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3401', '34', '00,34', '合肥市', '34', '安徽省', '3401', '合肥市', '', '', '', '', '', '', 2, 1, ''), ('340102', '3401', '00,34,3401', '瑶海区', '34', '安徽省', '3401', '合肥市', '340102', '瑶海区', '', '', '', '', 3, 1, ''), ('340103', '3401', '00,34,3401', '庐阳区', '34', '安徽省', '3401', '合肥市', '340103', '庐阳区', '', '', '', '', 3, 1, ''), ('340104', '3401', '00,34,3401', '蜀山区', '34', '安徽省', '3401', '合肥市', '340104', '蜀山区', '', '', '', '', 3, 1, ''), ('340111', '3401', '00,34,3401', '包河区', '34', '安徽省', '3401', '合肥市', '340111', '包河区', '', '', '', '', 3, 1, ''), ('340121', '3401', '00,34,3401', '长丰县', '34', '安徽省', '3401', '合肥市', '340121', '长丰县', '', '', '', '', 3, 1, ''), ('340122', '3401', '00,34,3401', '肥东县', '34', '安徽省', '3401', '合肥市', '340122', '肥东县', '', '', '', '', 3, 1, ''), ('340123', '3401', '00,34,3401', '肥西县', '34', '安徽省', '3401', '合肥市', '340123', '肥西县', '', '', '', '', 3, 1, ''), ('340124', '3401', '00,34,3401', '庐江县', '34', '安徽省', '3401', '合肥市', '340124', '庐江县', '', '', '', '', 3, 1, ''), ('340181', '3401', '00,34,3401', '巢湖市', '34', '安徽省', '3401', '合肥市', '340181', '巢湖市', '', '', '', '', 3, 1, ''), ('3402', '34', '00,34', '芜湖市', '34', '安徽省', '3402', '芜湖市', '', '', '', '', '', '', 2, 1, ''), ('340202', '3402', '00,34,3402', '镜湖区', '34', '安徽省', '3402', '芜湖市', '340202', '镜湖区', '', '', '', '', 3, 1, ''), ('340203', '3402', '00,34,3402', '弋江区', '34', '安徽省', '3402', '芜湖市', '340203', '弋江区', '', '', '', '', 3, 1, ''), ('340207', '3402', '00,34,3402', '鸠江区', '34', '安徽省', '3402', '芜湖市', '340207', '鸠江区', '', '', '', '', 3, 1, ''), ('340208', '3402', '00,34,3402', '三山区', '34', '安徽省', '3402', '芜湖市', '340208', '三山区', '', '', '', '', 3, 1, ''), ('340221', '3402', '00,34,3402', '芜湖县', '34', '安徽省', '3402', '芜湖市', '340221', '芜湖县', '', '', '', '', 3, 1, ''), ('340222', '3402', '00,34,3402', '繁昌县', '34', '安徽省', '3402', '芜湖市', '340222', '繁昌县', '', '', '', '', 3, 1, ''), ('340223', '3402', '00,34,3402', '南陵县', '34', '安徽省', '3402', '芜湖市', '340223', '南陵县', '', '', '', '', 3, 1, ''), ('340281', '3402', '00,34,3402', '无为市', '34', '安徽省', '3402', '芜湖市', '340281', '无为市', '', '', '', '', 3, 1, ''), ('3403', '34', '00,34', '蚌埠市', '34', '安徽省', '3403', '蚌埠市', '', '', '', '', '', '', 2, 1, ''), ('340302', '3403', '00,34,3403', '龙子湖区', '34', '安徽省', '3403', '蚌埠市', '340302', '龙子湖区', '', '', '', '', 3, 1, ''), ('340303', '3403', '00,34,3403', '蚌山区', '34', '安徽省', '3403', '蚌埠市', '340303', '蚌山区', '', '', '', '', 3, 1, ''), ('340304', '3403', '00,34,3403', '禹会区', '34', '安徽省', '3403', '蚌埠市', '340304', '禹会区', '', '', '', '', 3, 1, ''), ('340311', '3403', '00,34,3403', '淮上区', '34', '安徽省', '3403', '蚌埠市', '340311', '淮上区', '', '', '', '', 3, 1, ''), ('340321', '3403', '00,34,3403', '怀远县', '34', '安徽省', '3403', '蚌埠市', '340321', '怀远县', '', '', '', '', 3, 1, ''), ('340322', '3403', '00,34,3403', '五河县', '34', '安徽省', '3403', '蚌埠市', '340322', '五河县', '', '', '', '', 3, 1, ''), ('340323', '3403', '00,34,3403', '固镇县', '34', '安徽省', '3403', '蚌埠市', '340323', '固镇县', '', '', '', '', 3, 1, ''), ('3404', '34', '00,34', '淮南市', '34', '安徽省', '3404', '淮南市', '', '', '', '', '', '', 2, 1, ''), ('340402', '3404', '00,34,3404', '大通区', '34', '安徽省', '3404', '淮南市', '340402', '大通区', '', '', '', '', 3, 1, ''), ('340403', '3404', '00,34,3404', '田家庵区', '34', '安徽省', '3404', '淮南市', '340403', '田家庵区', '', '', '', '', 3, 1, ''), ('340404', '3404', '00,34,3404', '谢家集区', '34', '安徽省', '3404', '淮南市', '340404', '谢家集区', '', '', '', '', 3, 1, ''), ('340405', '3404', '00,34,3404', '八公山区', '34', '安徽省', '3404', '淮南市', '340405', '八公山区', '', '', '', '', 3, 1, ''), ('340406', '3404', '00,34,3404', '潘集区', '34', '安徽省', '3404', '淮南市', '340406', '潘集区', '', '', '', '', 3, 1, ''), ('340421', '3404', '00,34,3404', '凤台县', '34', '安徽省', '3404', '淮南市', '340421', '凤台县', '', '', '', '', 3, 1, ''), ('340422', '3404', '00,34,3404', '寿县', '34', '安徽省', '3404', '淮南市', '340422', '寿县', '', '', '', '', 3, 1, ''), ('3405', '34', '00,34', '马鞍山市', '34', '安徽省', '3405', '马鞍山市', '', '', '', '', '', '', 2, 1, ''), ('340503', '3405', '00,34,3405', '花山区', '34', '安徽省', '3405', '马鞍山市', '340503', '花山区', '', '', '', '', 3, 1, ''), ('340504', '3405', '00,34,3405', '雨山区', '34', '安徽省', '3405', '马鞍山市', '340504', '雨山区', '', '', '', '', 3, 1, ''), ('340506', '3405', '00,34,3405', '博望区', '34', '安徽省', '3405', '马鞍山市', '340506', '博望区', '', '', '', '', 3, 1, ''), ('340521', '3405', '00,34,3405', '当涂县', '34', '安徽省', '3405', '马鞍山市', '340521', '当涂县', '', '', '', '', 3, 1, ''), ('340522', '3405', '00,34,3405', '含山县', '34', '安徽省', '3405', '马鞍山市', '340522', '含山县', '', '', '', '', 3, 1, ''), ('340523', '3405', '00,34,3405', '和县', '34', '安徽省', '3405', '马鞍山市', '340523', '和县', '', '', '', '', 3, 1, ''), ('3406', '34', '00,34', '淮北市', '34', '安徽省', '3406', '淮北市', '', '', '', '', '', '', 2, 1, ''), ('340602', '3406', '00,34,3406', '杜集区', '34', '安徽省', '3406', '淮北市', '340602', '杜集区', '', '', '', '', 3, 1, ''), ('340603', '3406', '00,34,3406', '相山区', '34', '安徽省', '3406', '淮北市', '340603', '相山区', '', '', '', '', 3, 1, ''), ('340604', '3406', '00,34,3406', '烈山区', '34', '安徽省', '3406', '淮北市', '340604', '烈山区', '', '', '', '', 3, 1, ''), ('340621', '3406', '00,34,3406', '濉溪县', '34', '安徽省', '3406', '淮北市', '340621', '濉溪县', '', '', '', '', 3, 1, ''), ('3407', '34', '00,34', '铜陵市', '34', '安徽省', '3407', '铜陵市', '', '', '', '', '', '', 2, 1, ''), ('340705', '3407', '00,34,3407', '铜官区', '34', '安徽省', '3407', '铜陵市', '340705', '铜官区', '', '', '', '', 3, 1, ''), ('340706', '3407', '00,34,3407', '义安区', '34', '安徽省', '3407', '铜陵市', '340706', '义安区', '', '', '', '', 3, 1, ''), ('340711', '3407', '00,34,3407', '郊区', '34', '安徽省', '3407', '铜陵市', '340711', '郊区', '', '', '', '', 3, 1, ''), ('340722', '3407', '00,34,3407', '枞阳县', '34', '安徽省', '3407', '铜陵市', '340722', '枞阳县', '', '', '', '', 3, 1, ''), ('3408', '34', '00,34', '安庆市', '34', '安徽省', '3408', '安庆市', '', '', '', '', '', '', 2, 1, ''), ('340802', '3408', '00,34,3408', '迎江区', '34', '安徽省', '3408', '安庆市', '340802', '迎江区', '', '', '', '', 3, 1, ''), ('340803', '3408', '00,34,3408', '大观区', '34', '安徽省', '3408', '安庆市', '340803', '大观区', '', '', '', '', 3, 1, ''), ('340811', '3408', '00,34,3408', '宜秀区', '34', '安徽省', '3408', '安庆市', '340811', '宜秀区', '', '', '', '', 3, 1, ''), ('340822', '3408', '00,34,3408', '怀宁县', '34', '安徽省', '3408', '安庆市', '340822', '怀宁县', '', '', '', '', 3, 1, ''), ('340825', '3408', '00,34,3408', '太湖县', '34', '安徽省', '3408', '安庆市', '340825', '太湖县', '', '', '', '', 3, 1, ''), ('340826', '3408', '00,34,3408', '宿松县', '34', '安徽省', '3408', '安庆市', '340826', '宿松县', '', '', '', '', 3, 1, ''), ('340827', '3408', '00,34,3408', '望江县', '34', '安徽省', '3408', '安庆市', '340827', '望江县', '', '', '', '', 3, 1, ''), ('340828', '3408', '00,34,3408', '岳西县', '34', '安徽省', '3408', '安庆市', '340828', '岳西县', '', '', '', '', 3, 1, ''), ('340881', '3408', '00,34,3408', '桐城市', '34', '安徽省', '3408', '安庆市', '340881', '桐城市', '', '', '', '', 3, 1, ''), ('340882', '3408', '00,34,3408', '潜山市', '34', '安徽省', '3408', '安庆市', '340882', '潜山市', '', '', '', '', 3, 1, ''), ('3410', '34', '00,34', '黄山市', '34', '安徽省', '3410', '黄山市', '', '', '', '', '', '', 2, 1, ''), ('341002', '3410', '00,34,3410', '屯溪区', '34', '安徽省', '3410', '黄山市', '341002', '屯溪区', '', '', '', '', 3, 1, ''), ('341003', '3410', '00,34,3410', '黄山区', '34', '安徽省', '3410', '黄山市', '341003', '黄山区', '', '', '', '', 3, 1, ''), ('341004', '3410', '00,34,3410', '徽州区', '34', '安徽省', '3410', '黄山市', '341004', '徽州区', '', '', '', '', 3, 1, ''), ('341021', '3410', '00,34,3410', '歙县', '34', '安徽省', '3410', '黄山市', '341021', '歙县', '', '', '', '', 3, 1, ''), ('341022', '3410', '00,34,3410', '休宁县', '34', '安徽省', '3410', '黄山市', '341022', '休宁县', '', '', '', '', 3, 1, ''), ('341023', '3410', '00,34,3410', '黟县', '34', '安徽省', '3410', '黄山市', '341023', '黟县', '', '', '', '', 3, 1, ''), ('341024', '3410', '00,34,3410', '祁门县', '34', '安徽省', '3410', '黄山市', '341024', '祁门县', '', '', '', '', 3, 1, ''), ('3411', '34', '00,34', '滁州市', '34', '安徽省', '3411', '滁州市', '', '', '', '', '', '', 2, 1, ''), ('341102', '3411', '00,34,3411', '琅琊区', '34', '安徽省', '3411', '滁州市', '341102', '琅琊区', '', '', '', '', 3, 1, ''), ('341103', '3411', '00,34,3411', '南谯区', '34', '安徽省', '3411', '滁州市', '341103', '南谯区', '', '', '', '', 3, 1, ''), ('341122', '3411', '00,34,3411', '来安县', '34', '安徽省', '3411', '滁州市', '341122', '来安县', '', '', '', '', 3, 1, ''), ('341124', '3411', '00,34,3411', '全椒县', '34', '安徽省', '3411', '滁州市', '341124', '全椒县', '', '', '', '', 3, 1, ''), ('341125', '3411', '00,34,3411', '定远县', '34', '安徽省', '3411', '滁州市', '341125', '定远县', '', '', '', '', 3, 1, ''), ('341126', '3411', '00,34,3411', '凤阳县', '34', '安徽省', '3411', '滁州市', '341126', '凤阳县', '', '', '', '', 3, 1, ''), ('341181', '3411', '00,34,3411', '天长市', '34', '安徽省', '3411', '滁州市', '341181', '天长市', '', '', '', '', 3, 1, ''), ('341182', '3411', '00,34,3411', '明光市', '34', '安徽省', '3411', '滁州市', '341182', '明光市', '', '', '', '', 3, 1, ''), ('3412', '34', '00,34', '阜阳市', '34', '安徽省', '3412', '阜阳市', '', '', '', '', '', '', 2, 1, ''), ('341202', '3412', '00,34,3412', '颍州区', '34', '安徽省', '3412', '阜阳市', '341202', '颍州区', '', '', '', '', 3, 1, ''), ('341203', '3412', '00,34,3412', '颍东区', '34', '安徽省', '3412', '阜阳市', '341203', '颍东区', '', '', '', '', 3, 1, ''), ('341204', '3412', '00,34,3412', '颍泉区', '34', '安徽省', '3412', '阜阳市', '341204', '颍泉区', '', '', '', '', 3, 1, ''), ('341221', '3412', '00,34,3412', '临泉县', '34', '安徽省', '3412', '阜阳市', '341221', '临泉县', '', '', '', '', 3, 1, ''), ('341222', '3412', '00,34,3412', '太和县', '34', '安徽省', '3412', '阜阳市', '341222', '太和县', '', '', '', '', 3, 1, ''), ('341225', '3412', '00,34,3412', '阜南县', '34', '安徽省', '3412', '阜阳市', '341225', '阜南县', '', '', '', '', 3, 1, ''), ('341226', '3412', '00,34,3412', '颍上县', '34', '安徽省', '3412', '阜阳市', '341226', '颍上县', '', '', '', '', 3, 1, ''), ('341282', '3412', '00,34,3412', '界首市', '34', '安徽省', '3412', '阜阳市', '341282', '界首市', '', '', '', '', 3, 1, ''), ('3413', '34', '00,34', '宿州市', '34', '安徽省', '3413', '宿州市', '', '', '', '', '', '', 2, 1, ''), ('341302', '3413', '00,34,3413', '埇桥区', '34', '安徽省', '3413', '宿州市', '341302', '埇桥区', '', '', '', '', 3, 1, ''), ('341321', '3413', '00,34,3413', '砀山县', '34', '安徽省', '3413', '宿州市', '341321', '砀山县', '', '', '', '', 3, 1, ''), ('341322', '3413', '00,34,3413', '萧县', '34', '安徽省', '3413', '宿州市', '341322', '萧县', '', '', '', '', 3, 1, ''), ('341323', '3413', '00,34,3413', '灵璧县', '34', '安徽省', '3413', '宿州市', '341323', '灵璧县', '', '', '', '', 3, 1, ''), ('341324', '3413', '00,34,3413', '泗县', '34', '安徽省', '3413', '宿州市', '341324', '泗县', '', '', '', '', 3, 1, ''), ('3415', '34', '00,34', '六安市', '34', '安徽省', '3415', '六安市', '', '', '', '', '', '', 2, 1, ''), ('341502', '3415', '00,34,3415', '金安区', '34', '安徽省', '3415', '六安市', '341502', '金安区', '', '', '', '', 3, 1, ''), ('341503', '3415', '00,34,3415', '裕安区', '34', '安徽省', '3415', '六安市', '341503', '裕安区', '', '', '', '', 3, 1, ''), ('341504', '3415', '00,34,3415', '叶集区', '34', '安徽省', '3415', '六安市', '341504', '叶集区', '', '', '', '', 3, 1, ''), ('341522', '3415', '00,34,3415', '霍邱县', '34', '安徽省', '3415', '六安市', '341522', '霍邱县', '', '', '', '', 3, 1, ''), ('341523', '3415', '00,34,3415', '舒城县', '34', '安徽省', '3415', '六安市', '341523', '舒城县', '', '', '', '', 3, 1, ''), ('341524', '3415', '00,34,3415', '金寨县', '34', '安徽省', '3415', '六安市', '341524', '金寨县', '', '', '', '', 3, 1, ''), ('341525', '3415', '00,34,3415', '霍山县', '34', '安徽省', '3415', '六安市', '341525', '霍山县', '', '', '', '', 3, 1, ''), ('3416', '34', '00,34', '亳州市', '34', '安徽省', '3416', '亳州市', '', '', '', '', '', '', 2, 1, ''), ('341602', '3416', '00,34,3416', '谯城区', '34', '安徽省', '3416', '亳州市', '341602', '谯城区', '', '', '', '', 3, 1, ''), ('341621', '3416', '00,34,3416', '涡阳县', '34', '安徽省', '3416', '亳州市', '341621', '涡阳县', '', '', '', '', 3, 1, ''), ('341622', '3416', '00,34,3416', '蒙城县', '34', '安徽省', '3416', '亳州市', '341622', '蒙城县', '', '', '', '', 3, 1, ''), ('341623', '3416', '00,34,3416', '利辛县', '34', '安徽省', '3416', '亳州市', '341623', '利辛县', '', '', '', '', 3, 1, ''), ('3417', '34', '00,34', '池州市', '34', '安徽省', '3417', '池州市', '', '', '', '', '', '', 2, 1, ''), ('341702', '3417', '00,34,3417', '贵池区', '34', '安徽省', '3417', '池州市', '341702', '贵池区', '', '', '', '', 3, 1, ''), ('341721', '3417', '00,34,3417', '东至县', '34', '安徽省', '3417', '池州市', '341721', '东至县', '', '', '', '', 3, 1, ''), ('341722', '3417', '00,34,3417', '石台县', '34', '安徽省', '3417', '池州市', '341722', '石台县', '', '', '', '', 3, 1, ''), ('341723', '3417', '00,34,3417', '青阳县', '34', '安徽省', '3417', '池州市', '341723', '青阳县', '', '', '', '', 3, 1, ''), ('3418', '34', '00,34', '宣城市', '34', '安徽省', '3418', '宣城市', '', '', '', '', '', '', 2, 1, ''), ('341802', '3418', '00,34,3418', '宣州区', '34', '安徽省', '3418', '宣城市', '341802', '宣州区', '', '', '', '', 3, 1, ''), ('341821', '3418', '00,34,3418', '郎溪县', '34', '安徽省', '3418', '宣城市', '341821', '郎溪县', '', '', '', '', 3, 1, ''), ('341823', '3418', '00,34,3418', '泾县', '34', '安徽省', '3418', '宣城市', '341823', '泾县', '', '', '', '', 3, 1, ''), ('341824', '3418', '00,34,3418', '绩溪县', '34', '安徽省', '3418', '宣城市', '341824', '绩溪县', '', '', '', '', 3, 1, ''), ('341825', '3418', '00,34,3418', '旌德县', '34', '安徽省', '3418', '宣城市', '341825', '旌德县', '', '', '', '', 3, 1, ''), ('341881', '3418', '00,34,3418', '宁国市', '34', '安徽省', '3418', '宣城市', '341881', '宁国市', '', '', '', '', 3, 1, ''), ('341882', '3418', '00,34,3418', '广德市', '34', '安徽省', '3418', '宣城市', '341882', '广德市', '', '', '', '', 3, 1, ''), ('35', '00', '00', '福建省', '35', '福建省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3501', '35', '00,35', '福州市', '35', '福建省', '3501', '福州市', '', '', '', '', '', '', 2, 1, ''), ('350102', '3501', '00,35,3501', '鼓楼区', '35', '福建省', '3501', '福州市', '350102', '鼓楼区', '', '', '', '', 3, 1, ''), ('350103', '3501', '00,35,3501', '台江区', '35', '福建省', '3501', '福州市', '350103', '台江区', '', '', '', '', 3, 1, ''), ('350104', '3501', '00,35,3501', '仓山区', '35', '福建省', '3501', '福州市', '350104', '仓山区', '', '', '', '', 3, 1, ''), ('350105', '3501', '00,35,3501', '马尾区', '35', '福建省', '3501', '福州市', '350105', '马尾区', '', '', '', '', 3, 1, ''), ('350111', '3501', '00,35,3501', '晋安区', '35', '福建省', '3501', '福州市', '350111', '晋安区', '', '', '', '', 3, 1, ''), ('350112', '3501', '00,35,3501', '长乐区', '35', '福建省', '3501', '福州市', '350112', '长乐区', '', '', '', '', 3, 1, ''), ('350121', '3501', '00,35,3501', '闽侯县', '35', '福建省', '3501', '福州市', '350121', '闽侯县', '', '', '', '', 3, 1, ''), ('350122', '3501', '00,35,3501', '连江县', '35', '福建省', '3501', '福州市', '350122', '连江县', '', '', '', '', 3, 1, ''), ('350123', '3501', '00,35,3501', '罗源县', '35', '福建省', '3501', '福州市', '350123', '罗源县', '', '', '', '', 3, 1, ''), ('350124', '3501', '00,35,3501', '闽清县', '35', '福建省', '3501', '福州市', '350124', '闽清县', '', '', '', '', 3, 1, ''), ('350125', '3501', '00,35,3501', '永泰县', '35', '福建省', '3501', '福州市', '350125', '永泰县', '', '', '', '', 3, 1, ''), ('350128', '3501', '00,35,3501', '平潭县', '35', '福建省', '3501', '福州市', '350128', '平潭县', '', '', '', '', 3, 1, ''), ('350181', '3501', '00,35,3501', '福清市', '35', '福建省', '3501', '福州市', '350181', '福清市', '', '', '', '', 3, 1, ''), ('3502', '35', '00,35', '厦门市', '35', '福建省', '3502', '厦门市', '', '', '', '', '', '', 2, 1, ''), ('350203', '3502', '00,35,3502', '思明区', '35', '福建省', '3502', '厦门市', '350203', '思明区', '', '', '', '', 3, 1, ''), ('350205', '3502', '00,35,3502', '海沧区', '35', '福建省', '3502', '厦门市', '350205', '海沧区', '', '', '', '', 3, 1, ''), ('350206', '3502', '00,35,3502', '湖里区', '35', '福建省', '3502', '厦门市', '350206', '湖里区', '', '', '', '', 3, 1, ''), ('350211', '3502', '00,35,3502', '集美区', '35', '福建省', '3502', '厦门市', '350211', '集美区', '', '', '', '', 3, 1, ''), ('350212', '3502', '00,35,3502', '同安区', '35', '福建省', '3502', '厦门市', '350212', '同安区', '', '', '', '', 3, 1, ''), ('350213', '3502', '00,35,3502', '翔安区', '35', '福建省', '3502', '厦门市', '350213', '翔安区', '', '', '', '', 3, 1, ''), ('3503', '35', '00,35', '莆田市', '35', '福建省', '3503', '莆田市', '', '', '', '', '', '', 2, 1, ''), ('350302', '3503', '00,35,3503', '城厢区', '35', '福建省', '3503', '莆田市', '350302', '城厢区', '', '', '', '', 3, 1, ''), ('350303', '3503', '00,35,3503', '涵江区', '35', '福建省', '3503', '莆田市', '350303', '涵江区', '', '', '', '', 3, 1, ''), ('350304', '3503', '00,35,3503', '荔城区', '35', '福建省', '3503', '莆田市', '350304', '荔城区', '', '', '', '', 3, 1, ''), ('350305', '3503', '00,35,3503', '秀屿区', '35', '福建省', '3503', '莆田市', '350305', '秀屿区', '', '', '', '', 3, 1, ''), ('350322', '3503', '00,35,3503', '仙游县', '35', '福建省', '3503', '莆田市', '350322', '仙游县', '', '', '', '', 3, 1, ''), ('3504', '35', '00,35', '三明市', '35', '福建省', '3504', '三明市', '', '', '', '', '', '', 2, 1, ''), ('350402', '3504', '00,35,3504', '梅列区', '35', '福建省', '3504', '三明市', '350402', '梅列区', '', '', '', '', 3, 1, ''), ('350403', '3504', '00,35,3504', '三元区', '35', '福建省', '3504', '三明市', '350403', '三元区', '', '', '', '', 3, 1, ''), ('350421', '3504', '00,35,3504', '明溪县', '35', '福建省', '3504', '三明市', '350421', '明溪县', '', '', '', '', 3, 1, ''), ('350423', '3504', '00,35,3504', '清流县', '35', '福建省', '3504', '三明市', '350423', '清流县', '', '', '', '', 3, 1, ''), ('350424', '3504', '00,35,3504', '宁化县', '35', '福建省', '3504', '三明市', '350424', '宁化县', '', '', '', '', 3, 1, ''), ('350425', '3504', '00,35,3504', '大田县', '35', '福建省', '3504', '三明市', '350425', '大田县', '', '', '', '', 3, 1, ''), ('350426', '3504', '00,35,3504', '尤溪县', '35', '福建省', '3504', '三明市', '350426', '尤溪县', '', '', '', '', 3, 1, ''), ('350427', '3504', '00,35,3504', '沙县', '35', '福建省', '3504', '三明市', '350427', '沙县', '', '', '', '', 3, 1, ''), ('350428', '3504', '00,35,3504', '将乐县', '35', '福建省', '3504', '三明市', '350428', '将乐县', '', '', '', '', 3, 1, ''), ('350429', '3504', '00,35,3504', '泰宁县', '35', '福建省', '3504', '三明市', '350429', '泰宁县', '', '', '', '', 3, 1, ''), ('350430', '3504', '00,35,3504', '建宁县', '35', '福建省', '3504', '三明市', '350430', '建宁县', '', '', '', '', 3, 1, ''), ('350481', '3504', '00,35,3504', '永安市', '35', '福建省', '3504', '三明市', '350481', '永安市', '', '', '', '', 3, 1, ''), ('3505', '35', '00,35', '泉州市', '35', '福建省', '3505', '泉州市', '', '', '', '', '', '', 2, 1, ''), ('350502', '3505', '00,35,3505', '鲤城区', '35', '福建省', '3505', '泉州市', '350502', '鲤城区', '', '', '', '', 3, 1, ''), ('350503', '3505', '00,35,3505', '丰泽区', '35', '福建省', '3505', '泉州市', '350503', '丰泽区', '', '', '', '', 3, 1, ''), ('350504', '3505', '00,35,3505', '洛江区', '35', '福建省', '3505', '泉州市', '350504', '洛江区', '', '', '', '', 3, 1, ''), ('350505', '3505', '00,35,3505', '泉港区', '35', '福建省', '3505', '泉州市', '350505', '泉港区', '', '', '', '', 3, 1, ''), ('350521', '3505', '00,35,3505', '惠安县', '35', '福建省', '3505', '泉州市', '350521', '惠安县', '', '', '', '', 3, 1, ''), ('350524', '3505', '00,35,3505', '安溪县', '35', '福建省', '3505', '泉州市', '350524', '安溪县', '', '', '', '', 3, 1, ''), ('350525', '3505', '00,35,3505', '永春县', '35', '福建省', '3505', '泉州市', '350525', '永春县', '', '', '', '', 3, 1, ''), ('350526', '3505', '00,35,3505', '德化县', '35', '福建省', '3505', '泉州市', '350526', '德化县', '', '', '', '', 3, 1, ''), ('350527', '3505', '00,35,3505', '金门县', '35', '福建省', '3505', '泉州市', '350527', '金门县', '', '', '', '', 3, 1, ''), ('350581', '3505', '00,35,3505', '石狮市', '35', '福建省', '3505', '泉州市', '350581', '石狮市', '', '', '', '', 3, 1, ''), ('350582', '3505', '00,35,3505', '晋江市', '35', '福建省', '3505', '泉州市', '350582', '晋江市', '', '', '', '', 3, 1, ''), ('350583', '3505', '00,35,3505', '南安市', '35', '福建省', '3505', '泉州市', '350583', '南安市', '', '', '', '', 3, 1, ''), ('3506', '35', '00,35', '漳州市', '35', '福建省', '3506', '漳州市', '', '', '', '', '', '', 2, 1, ''), ('350602', '3506', '00,35,3506', '芗城区', '35', '福建省', '3506', '漳州市', '350602', '芗城区', '', '', '', '', 3, 1, ''), ('350603', '3506', '00,35,3506', '龙文区', '35', '福建省', '3506', '漳州市', '350603', '龙文区', '', '', '', '', 3, 1, ''), ('350622', '3506', '00,35,3506', '云霄县', '35', '福建省', '3506', '漳州市', '350622', '云霄县', '', '', '', '', 3, 1, ''), ('350623', '3506', '00,35,3506', '漳浦县', '35', '福建省', '3506', '漳州市', '350623', '漳浦县', '', '', '', '', 3, 1, ''), ('350624', '3506', '00,35,3506', '诏安县', '35', '福建省', '3506', '漳州市', '350624', '诏安县', '', '', '', '', 3, 1, ''), ('350625', '3506', '00,35,3506', '长泰县', '35', '福建省', '3506', '漳州市', '350625', '长泰县', '', '', '', '', 3, 1, ''), ('350626', '3506', '00,35,3506', '东山县', '35', '福建省', '3506', '漳州市', '350626', '东山县', '', '', '', '', 3, 1, ''), ('350627', '3506', '00,35,3506', '南靖县', '35', '福建省', '3506', '漳州市', '350627', '南靖县', '', '', '', '', 3, 1, ''), ('350628', '3506', '00,35,3506', '平和县', '35', '福建省', '3506', '漳州市', '350628', '平和县', '', '', '', '', 3, 1, ''), ('350629', '3506', '00,35,3506', '华安县', '35', '福建省', '3506', '漳州市', '350629', '华安县', '', '', '', '', 3, 1, ''), ('350681', '3506', '00,35,3506', '龙海市', '35', '福建省', '3506', '漳州市', '350681', '龙海市', '', '', '', '', 3, 1, ''), ('3507', '35', '00,35', '南平市', '35', '福建省', '3507', '南平市', '', '', '', '', '', '', 2, 1, ''), ('350702', '3507', '00,35,3507', '延平区', '35', '福建省', '3507', '南平市', '350702', '延平区', '', '', '', '', 3, 1, ''), ('350703', '3507', '00,35,3507', '建阳区', '35', '福建省', '3507', '南平市', '350703', '建阳区', '', '', '', '', 3, 1, ''), ('350721', '3507', '00,35,3507', '顺昌县', '35', '福建省', '3507', '南平市', '350721', '顺昌县', '', '', '', '', 3, 1, ''), ('350722', '3507', '00,35,3507', '浦城县', '35', '福建省', '3507', '南平市', '350722', '浦城县', '', '', '', '', 3, 1, ''), ('350723', '3507', '00,35,3507', '光泽县', '35', '福建省', '3507', '南平市', '350723', '光泽县', '', '', '', '', 3, 1, ''), ('350724', '3507', '00,35,3507', '松溪县', '35', '福建省', '3507', '南平市', '350724', '松溪县', '', '', '', '', 3, 1, ''), ('350725', '3507', '00,35,3507', '政和县', '35', '福建省', '3507', '南平市', '350725', '政和县', '', '', '', '', 3, 1, ''), ('350781', '3507', '00,35,3507', '邵武市', '35', '福建省', '3507', '南平市', '350781', '邵武市', '', '', '', '', 3, 1, ''), ('350782', '3507', '00,35,3507', '武夷山市', '35', '福建省', '3507', '南平市', '350782', '武夷山市', '', '', '', '', 3, 1, ''), ('350783', '3507', '00,35,3507', '建瓯市', '35', '福建省', '3507', '南平市', '350783', '建瓯市', '', '', '', '', 3, 1, ''), ('3508', '35', '00,35', '龙岩市', '35', '福建省', '3508', '龙岩市', '', '', '', '', '', '', 2, 1, ''), ('350802', '3508', '00,35,3508', '新罗区', '35', '福建省', '3508', '龙岩市', '350802', '新罗区', '', '', '', '', 3, 1, ''), ('350803', '3508', '00,35,3508', '永定区', '35', '福建省', '3508', '龙岩市', '350803', '永定区', '', '', '', '', 3, 1, ''), ('350821', '3508', '00,35,3508', '长汀县', '35', '福建省', '3508', '龙岩市', '350821', '长汀县', '', '', '', '', 3, 1, ''), ('350823', '3508', '00,35,3508', '上杭县', '35', '福建省', '3508', '龙岩市', '350823', '上杭县', '', '', '', '', 3, 1, ''), ('350824', '3508', '00,35,3508', '武平县', '35', '福建省', '3508', '龙岩市', '350824', '武平县', '', '', '', '', 3, 1, ''), ('350825', '3508', '00,35,3508', '连城县', '35', '福建省', '3508', '龙岩市', '350825', '连城县', '', '', '', '', 3, 1, ''), ('350881', '3508', '00,35,3508', '漳平市', '35', '福建省', '3508', '龙岩市', '350881', '漳平市', '', '', '', '', 3, 1, ''), ('3509', '35', '00,35', '宁德市', '35', '福建省', '3509', '宁德市', '', '', '', '', '', '', 2, 1, ''), ('350902', '3509', '00,35,3509', '蕉城区', '35', '福建省', '3509', '宁德市', '350902', '蕉城区', '', '', '', '', 3, 1, ''), ('350921', '3509', '00,35,3509', '霞浦县', '35', '福建省', '3509', '宁德市', '350921', '霞浦县', '', '', '', '', 3, 1, ''), ('350922', '3509', '00,35,3509', '古田县', '35', '福建省', '3509', '宁德市', '350922', '古田县', '', '', '', '', 3, 1, ''), ('350923', '3509', '00,35,3509', '屏南县', '35', '福建省', '3509', '宁德市', '350923', '屏南县', '', '', '', '', 3, 1, ''), ('350924', '3509', '00,35,3509', '寿宁县', '35', '福建省', '3509', '宁德市', '350924', '寿宁县', '', '', '', '', 3, 1, ''), ('350925', '3509', '00,35,3509', '周宁县', '35', '福建省', '3509', '宁德市', '350925', '周宁县', '', '', '', '', 3, 1, ''), ('350926', '3509', '00,35,3509', '柘荣县', '35', '福建省', '3509', '宁德市', '350926', '柘荣县', '', '', '', '', 3, 1, ''), ('350981', '3509', '00,35,3509', '福安市', '35', '福建省', '3509', '宁德市', '350981', '福安市', '', '', '', '', 3, 1, ''), ('350982', '3509', '00,35,3509', '福鼎市', '35', '福建省', '3509', '宁德市', '350982', '福鼎市', '', '', '', '', 3, 1, ''), ('36', '00', '00', '江西省', '36', '江西省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3601', '36', '00,36', '南昌市', '36', '江西省', '3601', '南昌市', '', '', '', '', '', '', 2, 1, ''), ('360102', '3601', '00,36,3601', '东湖区', '36', '江西省', '3601', '南昌市', '360102', '东湖区', '', '', '', '', 3, 1, ''), ('360103', '3601', '00,36,3601', '西湖区', '36', '江西省', '3601', '南昌市', '360103', '西湖区', '', '', '', '', 3, 1, ''), ('360104', '3601', '00,36,3601', '青云谱区', '36', '江西省', '3601', '南昌市', '360104', '青云谱区', '', '', '', '', 3, 1, ''), ('360111', '3601', '00,36,3601', '青山湖区', '36', '江西省', '3601', '南昌市', '360111', '青山湖区', '', '', '', '', 3, 1, ''), ('360112', '3601', '00,36,3601', '新建区', '36', '江西省', '3601', '南昌市', '360112', '新建区', '', '', '', '', 3, 1, ''), ('360113', '3601', '00,36,3601', '红谷滩区', '36', '江西省', '3601', '南昌市', '360113', '红谷滩区', '', '', '', '', 3, 1, ''), ('360121', '3601', '00,36,3601', '南昌县', '36', '江西省', '3601', '南昌市', '360121', '南昌县', '', '', '', '', 3, 1, ''), ('360123', '3601', '00,36,3601', '安义县', '36', '江西省', '3601', '南昌市', '360123', '安义县', '', '', '', '', 3, 1, ''), ('360124', '3601', '00,36,3601', '进贤县', '36', '江西省', '3601', '南昌市', '360124', '进贤县', '', '', '', '', 3, 1, ''), ('3602', '36', '00,36', '景德镇市', '36', '江西省', '3602', '景德镇市', '', '', '', '', '', '', 2, 1, ''), ('360202', '3602', '00,36,3602', '昌江区', '36', '江西省', '3602', '景德镇市', '360202', '昌江区', '', '', '', '', 3, 1, ''), ('360203', '3602', '00,36,3602', '珠山区', '36', '江西省', '3602', '景德镇市', '360203', '珠山区', '', '', '', '', 3, 1, ''), ('360222', '3602', '00,36,3602', '浮梁县', '36', '江西省', '3602', '景德镇市', '360222', '浮梁县', '', '', '', '', 3, 1, ''), ('360281', '3602', '00,36,3602', '乐平市', '36', '江西省', '3602', '景德镇市', '360281', '乐平市', '', '', '', '', 3, 1, ''), ('3603', '36', '00,36', '萍乡市', '36', '江西省', '3603', '萍乡市', '', '', '', '', '', '', 2, 1, ''), ('360302', '3603', '00,36,3603', '安源区', '36', '江西省', '3603', '萍乡市', '360302', '安源区', '', '', '', '', 3, 1, ''), ('360313', '3603', '00,36,3603', '湘东区', '36', '江西省', '3603', '萍乡市', '360313', '湘东区', '', '', '', '', 3, 1, ''), ('360321', '3603', '00,36,3603', '莲花县', '36', '江西省', '3603', '萍乡市', '360321', '莲花县', '', '', '', '', 3, 1, ''), ('360322', '3603', '00,36,3603', '上栗县', '36', '江西省', '3603', '萍乡市', '360322', '上栗县', '', '', '', '', 3, 1, ''), ('360323', '3603', '00,36,3603', '芦溪县', '36', '江西省', '3603', '萍乡市', '360323', '芦溪县', '', '', '', '', 3, 1, ''), ('3604', '36', '00,36', '九江市', '36', '江西省', '3604', '九江市', '', '', '', '', '', '', 2, 1, ''), ('360402', '3604', '00,36,3604', '濂溪区', '36', '江西省', '3604', '九江市', '360402', '濂溪区', '', '', '', '', 3, 1, ''), ('360403', '3604', '00,36,3604', '浔阳区', '36', '江西省', '3604', '九江市', '360403', '浔阳区', '', '', '', '', 3, 1, ''), ('360404', '3604', '00,36,3604', '柴桑区', '36', '江西省', '3604', '九江市', '360404', '柴桑区', '', '', '', '', 3, 1, ''), ('360423', '3604', '00,36,3604', '武宁县', '36', '江西省', '3604', '九江市', '360423', '武宁县', '', '', '', '', 3, 1, ''), ('360424', '3604', '00,36,3604', '修水县', '36', '江西省', '3604', '九江市', '360424', '修水县', '', '', '', '', 3, 1, ''), ('360425', '3604', '00,36,3604', '永修县', '36', '江西省', '3604', '九江市', '360425', '永修县', '', '', '', '', 3, 1, ''), ('360426', '3604', '00,36,3604', '德安县', '36', '江西省', '3604', '九江市', '360426', '德安县', '', '', '', '', 3, 1, ''), ('360428', '3604', '00,36,3604', '都昌县', '36', '江西省', '3604', '九江市', '360428', '都昌县', '', '', '', '', 3, 1, ''), ('360429', '3604', '00,36,3604', '湖口县', '36', '江西省', '3604', '九江市', '360429', '湖口县', '', '', '', '', 3, 1, ''), ('360430', '3604', '00,36,3604', '彭泽县', '36', '江西省', '3604', '九江市', '360430', '彭泽县', '', '', '', '', 3, 1, ''), ('360481', '3604', '00,36,3604', '瑞昌市', '36', '江西省', '3604', '九江市', '360481', '瑞昌市', '', '', '', '', 3, 1, ''), ('360482', '3604', '00,36,3604', '共青城市', '36', '江西省', '3604', '九江市', '360482', '共青城市', '', '', '', '', 3, 1, ''), ('360483', '3604', '00,36,3604', '庐山市', '36', '江西省', '3604', '九江市', '360483', '庐山市', '', '', '', '', 3, 1, ''), ('3605', '36', '00,36', '新余市', '36', '江西省', '3605', '新余市', '', '', '', '', '', '', 2, 1, ''), ('360502', '3605', '00,36,3605', '渝水区', '36', '江西省', '3605', '新余市', '360502', '渝水区', '', '', '', '', 3, 1, ''), ('360521', '3605', '00,36,3605', '分宜县', '36', '江西省', '3605', '新余市', '360521', '分宜县', '', '', '', '', 3, 1, ''), ('3606', '36', '00,36', '鹰潭市', '36', '江西省', '3606', '鹰潭市', '', '', '', '', '', '', 2, 1, ''), ('360602', '3606', '00,36,3606', '月湖区', '36', '江西省', '3606', '鹰潭市', '360602', '月湖区', '', '', '', '', 3, 1, ''), ('360603', '3606', '00,36,3606', '余江区', '36', '江西省', '3606', '鹰潭市', '360603', '余江区', '', '', '', '', 3, 1, ''), ('360681', '3606', '00,36,3606', '贵溪市', '36', '江西省', '3606', '鹰潭市', '360681', '贵溪市', '', '', '', '', 3, 1, ''), ('3607', '36', '00,36', '赣州市', '36', '江西省', '3607', '赣州市', '', '', '', '', '', '', 2, 1, ''), ('360702', '3607', '00,36,3607', '章贡区', '36', '江西省', '3607', '赣州市', '360702', '章贡区', '', '', '', '', 3, 1, ''), ('360703', '3607', '00,36,3607', '南康区', '36', '江西省', '3607', '赣州市', '360703', '南康区', '', '', '', '', 3, 1, ''), ('360704', '3607', '00,36,3607', '赣县区', '36', '江西省', '3607', '赣州市', '360704', '赣县区', '', '', '', '', 3, 1, ''), ('360722', '3607', '00,36,3607', '信丰县', '36', '江西省', '3607', '赣州市', '360722', '信丰县', '', '', '', '', 3, 1, ''), ('360723', '3607', '00,36,3607', '大余县', '36', '江西省', '3607', '赣州市', '360723', '大余县', '', '', '', '', 3, 1, ''), ('360724', '3607', '00,36,3607', '上犹县', '36', '江西省', '3607', '赣州市', '360724', '上犹县', '', '', '', '', 3, 1, ''), ('360725', '3607', '00,36,3607', '崇义县', '36', '江西省', '3607', '赣州市', '360725', '崇义县', '', '', '', '', 3, 1, ''), ('360726', '3607', '00,36,3607', '安远县', '36', '江西省', '3607', '赣州市', '360726', '安远县', '', '', '', '', 3, 1, ''), ('360727', '3607', '00,36,3607', '龙南县', '36', '江西省', '3607', '赣州市', '360727', '龙南县', '', '', '', '', 3, 1, ''), ('360728', '3607', '00,36,3607', '定南县', '36', '江西省', '3607', '赣州市', '360728', '定南县', '', '', '', '', 3, 1, ''), ('360729', '3607', '00,36,3607', '全南县', '36', '江西省', '3607', '赣州市', '360729', '全南县', '', '', '', '', 3, 1, ''), ('360730', '3607', '00,36,3607', '宁都县', '36', '江西省', '3607', '赣州市', '360730', '宁都县', '', '', '', '', 3, 1, ''), ('360731', '3607', '00,36,3607', '于都县', '36', '江西省', '3607', '赣州市', '360731', '于都县', '', '', '', '', 3, 1, ''), ('360732', '3607', '00,36,3607', '兴国县', '36', '江西省', '3607', '赣州市', '360732', '兴国县', '', '', '', '', 3, 1, ''), ('360733', '3607', '00,36,3607', '会昌县', '36', '江西省', '3607', '赣州市', '360733', '会昌县', '', '', '', '', 3, 1, ''), ('360734', '3607', '00,36,3607', '寻乌县', '36', '江西省', '3607', '赣州市', '360734', '寻乌县', '', '', '', '', 3, 1, ''), ('360735', '3607', '00,36,3607', '石城县', '36', '江西省', '3607', '赣州市', '360735', '石城县', '', '', '', '', 3, 1, ''), ('360781', '3607', '00,36,3607', '瑞金市', '36', '江西省', '3607', '赣州市', '360781', '瑞金市', '', '', '', '', 3, 1, ''), ('3608', '36', '00,36', '吉安市', '36', '江西省', '3608', '吉安市', '', '', '', '', '', '', 2, 1, ''), ('360802', '3608', '00,36,3608', '吉州区', '36', '江西省', '3608', '吉安市', '360802', '吉州区', '', '', '', '', 3, 1, ''), ('360803', '3608', '00,36,3608', '青原区', '36', '江西省', '3608', '吉安市', '360803', '青原区', '', '', '', '', 3, 1, ''), ('360821', '3608', '00,36,3608', '吉安县', '36', '江西省', '3608', '吉安市', '360821', '吉安县', '', '', '', '', 3, 1, ''), ('360822', '3608', '00,36,3608', '吉水县', '36', '江西省', '3608', '吉安市', '360822', '吉水县', '', '', '', '', 3, 1, ''), ('360823', '3608', '00,36,3608', '峡江县', '36', '江西省', '3608', '吉安市', '360823', '峡江县', '', '', '', '', 3, 1, ''), ('360824', '3608', '00,36,3608', '新干县', '36', '江西省', '3608', '吉安市', '360824', '新干县', '', '', '', '', 3, 1, ''), ('360825', '3608', '00,36,3608', '永丰县', '36', '江西省', '3608', '吉安市', '360825', '永丰县', '', '', '', '', 3, 1, ''), ('360826', '3608', '00,36,3608', '泰和县', '36', '江西省', '3608', '吉安市', '360826', '泰和县', '', '', '', '', 3, 1, ''), ('360827', '3608', '00,36,3608', '遂川县', '36', '江西省', '3608', '吉安市', '360827', '遂川县', '', '', '', '', 3, 1, ''), ('360828', '3608', '00,36,3608', '万安县', '36', '江西省', '3608', '吉安市', '360828', '万安县', '', '', '', '', 3, 1, ''), ('360829', '3608', '00,36,3608', '安福县', '36', '江西省', '3608', '吉安市', '360829', '安福县', '', '', '', '', 3, 1, ''), ('360830', '3608', '00,36,3608', '永新县', '36', '江西省', '3608', '吉安市', '360830', '永新县', '', '', '', '', 3, 1, ''), ('360881', '3608', '00,36,3608', '井冈山市', '36', '江西省', '3608', '吉安市', '360881', '井冈山市', '', '', '', '', 3, 1, ''), ('3609', '36', '00,36', '宜春市', '36', '江西省', '3609', '宜春市', '', '', '', '', '', '', 2, 1, ''), ('360902', '3609', '00,36,3609', '袁州区', '36', '江西省', '3609', '宜春市', '360902', '袁州区', '', '', '', '', 3, 1, ''), ('360921', '3609', '00,36,3609', '奉新县', '36', '江西省', '3609', '宜春市', '360921', '奉新县', '', '', '', '', 3, 1, ''), ('360922', '3609', '00,36,3609', '万载县', '36', '江西省', '3609', '宜春市', '360922', '万载县', '', '', '', '', 3, 1, ''), ('360923', '3609', '00,36,3609', '上高县', '36', '江西省', '3609', '宜春市', '360923', '上高县', '', '', '', '', 3, 1, ''), ('360924', '3609', '00,36,3609', '宜丰县', '36', '江西省', '3609', '宜春市', '360924', '宜丰县', '', '', '', '', 3, 1, ''), ('360925', '3609', '00,36,3609', '靖安县', '36', '江西省', '3609', '宜春市', '360925', '靖安县', '', '', '', '', 3, 1, ''), ('360926', '3609', '00,36,3609', '铜鼓县', '36', '江西省', '3609', '宜春市', '360926', '铜鼓县', '', '', '', '', 3, 1, ''), ('360981', '3609', '00,36,3609', '丰城市', '36', '江西省', '3609', '宜春市', '360981', '丰城市', '', '', '', '', 3, 1, ''), ('360982', '3609', '00,36,3609', '樟树市', '36', '江西省', '3609', '宜春市', '360982', '樟树市', '', '', '', '', 3, 1, ''), ('360983', '3609', '00,36,3609', '高安市', '36', '江西省', '3609', '宜春市', '360983', '高安市', '', '', '', '', 3, 1, ''), ('3610', '36', '00,36', '抚州市', '36', '江西省', '3610', '抚州市', '', '', '', '', '', '', 2, 1, ''), ('361002', '3610', '00,36,3610', '临川区', '36', '江西省', '3610', '抚州市', '361002', '临川区', '', '', '', '', 3, 1, ''), ('361003', '3610', '00,36,3610', '东乡区', '36', '江西省', '3610', '抚州市', '361003', '东乡区', '', '', '', '', 3, 1, ''), ('361021', '3610', '00,36,3610', '南城县', '36', '江西省', '3610', '抚州市', '361021', '南城县', '', '', '', '', 3, 1, ''), ('361022', '3610', '00,36,3610', '黎川县', '36', '江西省', '3610', '抚州市', '361022', '黎川县', '', '', '', '', 3, 1, ''), ('361023', '3610', '00,36,3610', '南丰县', '36', '江西省', '3610', '抚州市', '361023', '南丰县', '', '', '', '', 3, 1, ''), ('361024', '3610', '00,36,3610', '崇仁县', '36', '江西省', '3610', '抚州市', '361024', '崇仁县', '', '', '', '', 3, 1, ''), ('361025', '3610', '00,36,3610', '乐安县', '36', '江西省', '3610', '抚州市', '361025', '乐安县', '', '', '', '', 3, 1, ''), ('361026', '3610', '00,36,3610', '宜黄县', '36', '江西省', '3610', '抚州市', '361026', '宜黄县', '', '', '', '', 3, 1, ''), ('361027', '3610', '00,36,3610', '金溪县', '36', '江西省', '3610', '抚州市', '361027', '金溪县', '', '', '', '', 3, 1, ''), ('361028', '3610', '00,36,3610', '资溪县', '36', '江西省', '3610', '抚州市', '361028', '资溪县', '', '', '', '', 3, 1, ''), ('361030', '3610', '00,36,3610', '广昌县', '36', '江西省', '3610', '抚州市', '361030', '广昌县', '', '', '', '', 3, 1, ''), ('3611', '36', '00,36', '上饶市', '36', '江西省', '3611', '上饶市', '', '', '', '', '', '', 2, 1, ''), ('361102', '3611', '00,36,3611', '信州区', '36', '江西省', '3611', '上饶市', '361102', '信州区', '', '', '', '', 3, 1, ''), ('361103', '3611', '00,36,3611', '广丰区', '36', '江西省', '3611', '上饶市', '361103', '广丰区', '', '', '', '', 3, 1, ''), ('361104', '3611', '00,36,3611', '广信区', '36', '江西省', '3611', '上饶市', '361104', '广信区', '', '', '', '', 3, 1, ''), ('361123', '3611', '00,36,3611', '玉山县', '36', '江西省', '3611', '上饶市', '361123', '玉山县', '', '', '', '', 3, 1, ''), ('361124', '3611', '00,36,3611', '铅山县', '36', '江西省', '3611', '上饶市', '361124', '铅山县', '', '', '', '', 3, 1, ''), ('361125', '3611', '00,36,3611', '横峰县', '36', '江西省', '3611', '上饶市', '361125', '横峰县', '', '', '', '', 3, 1, ''), ('361126', '3611', '00,36,3611', '弋阳县', '36', '江西省', '3611', '上饶市', '361126', '弋阳县', '', '', '', '', 3, 1, ''), ('361127', '3611', '00,36,3611', '余干县', '36', '江西省', '3611', '上饶市', '361127', '余干县', '', '', '', '', 3, 1, ''), ('361128', '3611', '00,36,3611', '鄱阳县', '36', '江西省', '3611', '上饶市', '361128', '鄱阳县', '', '', '', '', 3, 1, ''), ('361129', '3611', '00,36,3611', '万年县', '36', '江西省', '3611', '上饶市', '361129', '万年县', '', '', '', '', 3, 1, ''), ('361130', '3611', '00,36,3611', '婺源县', '36', '江西省', '3611', '上饶市', '361130', '婺源县', '', '', '', '', 3, 1, ''), ('361181', '3611', '00,36,3611', '德兴市', '36', '江西省', '3611', '上饶市', '361181', '德兴市', '', '', '', '', 3, 1, ''), ('37', '00', '00', '山东省', '37', '山东省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3701', '37', '00,37', '济南市', '37', '山东省', '3701', '济南市', '', '', '', '', '', '', 2, 1, ''), ('370102', '3701', '00,37,3701', '历下区', '37', '山东省', '3701', '济南市', '370102', '历下区', '', '', '', '', 3, 1, ''), ('370103', '3701', '00,37,3701', '市中区', '37', '山东省', '3701', '济南市', '370103', '市中区', '', '', '', '', 3, 1, ''), ('370104', '3701', '00,37,3701', '槐荫区', '37', '山东省', '3701', '济南市', '370104', '槐荫区', '', '', '', '', 3, 1, ''), ('370105', '3701', '00,37,3701', '天桥区', '37', '山东省', '3701', '济南市', '370105', '天桥区', '', '', '', '', 3, 1, ''), ('370112', '3701', '00,37,3701', '历城区', '37', '山东省', '3701', '济南市', '370112', '历城区', '', '', '', '', 3, 1, ''), ('370113', '3701', '00,37,3701', '长清区', '37', '山东省', '3701', '济南市', '370113', '长清区', '', '', '', '', 3, 1, ''), ('370114', '3701', '00,37,3701', '章丘区', '37', '山东省', '3701', '济南市', '370114', '章丘区', '', '', '', '', 3, 1, ''), ('370115', '3701', '00,37,3701', '济阳区', '37', '山东省', '3701', '济南市', '370115', '济阳区', '', '', '', '', 3, 1, ''), ('370116', '3701', '00,37,3701', '莱芜区', '37', '山东省', '3701', '济南市', '370116', '莱芜区', '', '', '', '', 3, 1, ''), ('370117', '3701', '00,37,3701', '钢城区', '37', '山东省', '3701', '济南市', '370117', '钢城区', '', '', '', '', 3, 1, ''), ('370124', '3701', '00,37,3701', '平阴县', '37', '山东省', '3701', '济南市', '370124', '平阴县', '', '', '', '', 3, 1, ''), ('370126', '3701', '00,37,3701', '商河县', '37', '山东省', '3701', '济南市', '370126', '商河县', '', '', '', '', 3, 1, ''), ('3702', '37', '00,37', '青岛市', '37', '山东省', '3702', '青岛市', '', '', '', '', '', '', 2, 1, ''), ('370202', '3702', '00,37,3702', '市南区', '37', '山东省', '3702', '青岛市', '370202', '市南区', '', '', '', '', 3, 1, ''), ('370203', '3702', '00,37,3702', '市北区', '37', '山东省', '3702', '青岛市', '370203', '市北区', '', '', '', '', 3, 1, ''), ('370211', '3702', '00,37,3702', '黄岛区', '37', '山东省', '3702', '青岛市', '370211', '黄岛区', '', '', '', '', 3, 1, ''), ('370212', '3702', '00,37,3702', '崂山区', '37', '山东省', '3702', '青岛市', '370212', '崂山区', '', '', '', '', 3, 1, ''), ('370213', '3702', '00,37,3702', '李沧区', '37', '山东省', '3702', '青岛市', '370213', '李沧区', '', '', '', '', 3, 1, ''), ('370214', '3702', '00,37,3702', '城阳区', '37', '山东省', '3702', '青岛市', '370214', '城阳区', '', '', '', '', 3, 1, ''), ('370215', '3702', '00,37,3702', '即墨区', '37', '山东省', '3702', '青岛市', '370215', '即墨区', '', '', '', '', 3, 1, ''), ('370281', '3702', '00,37,3702', '胶州市', '37', '山东省', '3702', '青岛市', '370281', '胶州市', '', '', '', '', 3, 1, ''), ('370283', '3702', '00,37,3702', '平度市', '37', '山东省', '3702', '青岛市', '370283', '平度市', '', '', '', '', 3, 1, ''), ('370285', '3702', '00,37,3702', '莱西市', '37', '山东省', '3702', '青岛市', '370285', '莱西市', '', '', '', '', 3, 1, ''), ('3703', '37', '00,37', '淄博市', '37', '山东省', '3703', '淄博市', '', '', '', '', '', '', 2, 1, ''), ('370302', '3703', '00,37,3703', '淄川区', '37', '山东省', '3703', '淄博市', '370302', '淄川区', '', '', '', '', 3, 1, ''), ('370303', '3703', '00,37,3703', '张店区', '37', '山东省', '3703', '淄博市', '370303', '张店区', '', '', '', '', 3, 1, ''), ('370304', '3703', '00,37,3703', '博山区', '37', '山东省', '3703', '淄博市', '370304', '博山区', '', '', '', '', 3, 1, ''), ('370305', '3703', '00,37,3703', '临淄区', '37', '山东省', '3703', '淄博市', '370305', '临淄区', '', '', '', '', 3, 1, ''), ('370306', '3703', '00,37,3703', '周村区', '37', '山东省', '3703', '淄博市', '370306', '周村区', '', '', '', '', 3, 1, ''), ('370321', '3703', '00,37,3703', '桓台县', '37', '山东省', '3703', '淄博市', '370321', '桓台县', '', '', '', '', 3, 1, ''), ('370322', '3703', '00,37,3703', '高青县', '37', '山东省', '3703', '淄博市', '370322', '高青县', '', '', '', '', 3, 1, ''), ('370323', '3703', '00,37,3703', '沂源县', '37', '山东省', '3703', '淄博市', '370323', '沂源县', '', '', '', '', 3, 1, ''), ('3704', '37', '00,37', '枣庄市', '37', '山东省', '3704', '枣庄市', '', '', '', '', '', '', 2, 1, ''), ('370402', '3704', '00,37,3704', '市中区', '37', '山东省', '3704', '枣庄市', '370402', '市中区', '', '', '', '', 3, 1, ''), ('370403', '3704', '00,37,3704', '薛城区', '37', '山东省', '3704', '枣庄市', '370403', '薛城区', '', '', '', '', 3, 1, ''), ('370404', '3704', '00,37,3704', '峄城区', '37', '山东省', '3704', '枣庄市', '370404', '峄城区', '', '', '', '', 3, 1, ''), ('370405', '3704', '00,37,3704', '台儿庄区', '37', '山东省', '3704', '枣庄市', '370405', '台儿庄区', '', '', '', '', 3, 1, ''), ('370406', '3704', '00,37,3704', '山亭区', '37', '山东省', '3704', '枣庄市', '370406', '山亭区', '', '', '', '', 3, 1, ''), ('370481', '3704', '00,37,3704', '滕州市', '37', '山东省', '3704', '枣庄市', '370481', '滕州市', '', '', '', '', 3, 1, ''), ('3705', '37', '00,37', '东营市', '37', '山东省', '3705', '东营市', '', '', '', '', '', '', 2, 1, ''), ('370502', '3705', '00,37,3705', '东营区', '37', '山东省', '3705', '东营市', '370502', '东营区', '', '', '', '', 3, 1, ''), ('370503', '3705', '00,37,3705', '河口区', '37', '山东省', '3705', '东营市', '370503', '河口区', '', '', '', '', 3, 1, ''), ('370505', '3705', '00,37,3705', '垦利区', '37', '山东省', '3705', '东营市', '370505', '垦利区', '', '', '', '', 3, 1, ''), ('370522', '3705', '00,37,3705', '利津县', '37', '山东省', '3705', '东营市', '370522', '利津县', '', '', '', '', 3, 1, ''), ('370523', '3705', '00,37,3705', '广饶县', '37', '山东省', '3705', '东营市', '370523', '广饶县', '', '', '', '', 3, 1, ''), ('3706', '37', '00,37', '烟台市', '37', '山东省', '3706', '烟台市', '', '', '', '', '', '', 2, 1, ''), ('370602', '3706', '00,37,3706', '芝罘区', '37', '山东省', '3706', '烟台市', '370602', '芝罘区', '', '', '', '', 3, 1, ''), ('370611', '3706', '00,37,3706', '福山区', '37', '山东省', '3706', '烟台市', '370611', '福山区', '', '', '', '', 3, 1, ''), ('370612', '3706', '00,37,3706', '牟平区', '37', '山东省', '3706', '烟台市', '370612', '牟平区', '', '', '', '', 3, 1, ''), ('370613', '3706', '00,37,3706', '莱山区', '37', '山东省', '3706', '烟台市', '370613', '莱山区', '', '', '', '', 3, 1, ''), ('370634', '3706', '00,37,3706', '长岛县', '37', '山东省', '3706', '烟台市', '370634', '长岛县', '', '', '', '', 3, 1, ''), ('370681', '3706', '00,37,3706', '龙口市', '37', '山东省', '3706', '烟台市', '370681', '龙口市', '', '', '', '', 3, 1, ''), ('370682', '3706', '00,37,3706', '莱阳市', '37', '山东省', '3706', '烟台市', '370682', '莱阳市', '', '', '', '', 3, 1, ''), ('370683', '3706', '00,37,3706', '莱州市', '37', '山东省', '3706', '烟台市', '370683', '莱州市', '', '', '', '', 3, 1, ''), ('370684', '3706', '00,37,3706', '蓬莱市', '37', '山东省', '3706', '烟台市', '370684', '蓬莱市', '', '', '', '', 3, 1, ''), ('370685', '3706', '00,37,3706', '招远市', '37', '山东省', '3706', '烟台市', '370685', '招远市', '', '', '', '', 3, 1, ''), ('370686', '3706', '00,37,3706', '栖霞市', '37', '山东省', '3706', '烟台市', '370686', '栖霞市', '', '', '', '', 3, 1, ''), ('370687', '3706', '00,37,3706', '海阳市', '37', '山东省', '3706', '烟台市', '370687', '海阳市', '', '', '', '', 3, 1, ''), ('3707', '37', '00,37', '潍坊市', '37', '山东省', '3707', '潍坊市', '', '', '', '', '', '', 2, 1, ''), ('370702', '3707', '00,37,3707', '潍城区', '37', '山东省', '3707', '潍坊市', '370702', '潍城区', '', '', '', '', 3, 1, ''), ('370703', '3707', '00,37,3707', '寒亭区', '37', '山东省', '3707', '潍坊市', '370703', '寒亭区', '', '', '', '', 3, 1, ''), ('370704', '3707', '00,37,3707', '坊子区', '37', '山东省', '3707', '潍坊市', '370704', '坊子区', '', '', '', '', 3, 1, ''), ('370705', '3707', '00,37,3707', '奎文区', '37', '山东省', '3707', '潍坊市', '370705', '奎文区', '', '', '', '', 3, 1, ''), ('370724', '3707', '00,37,3707', '临朐县', '37', '山东省', '3707', '潍坊市', '370724', '临朐县', '', '', '', '', 3, 1, ''), ('370725', '3707', '00,37,3707', '昌乐县', '37', '山东省', '3707', '潍坊市', '370725', '昌乐县', '', '', '', '', 3, 1, ''), ('370781', '3707', '00,37,3707', '青州市', '37', '山东省', '3707', '潍坊市', '370781', '青州市', '', '', '', '', 3, 1, ''), ('370782', '3707', '00,37,3707', '诸城市', '37', '山东省', '3707', '潍坊市', '370782', '诸城市', '', '', '', '', 3, 1, ''), ('370783', '3707', '00,37,3707', '寿光市', '37', '山东省', '3707', '潍坊市', '370783', '寿光市', '', '', '', '', 3, 1, ''), ('370784', '3707', '00,37,3707', '安丘市', '37', '山东省', '3707', '潍坊市', '370784', '安丘市', '', '', '', '', 3, 1, ''), ('370785', '3707', '00,37,3707', '高密市', '37', '山东省', '3707', '潍坊市', '370785', '高密市', '', '', '', '', 3, 1, ''), ('370786', '3707', '00,37,3707', '昌邑市', '37', '山东省', '3707', '潍坊市', '370786', '昌邑市', '', '', '', '', 3, 1, ''), ('3708', '37', '00,37', '济宁市', '37', '山东省', '3708', '济宁市', '', '', '', '', '', '', 2, 1, ''), ('370811', '3708', '00,37,3708', '任城区', '37', '山东省', '3708', '济宁市', '370811', '任城区', '', '', '', '', 3, 1, ''), ('370812', '3708', '00,37,3708', '兖州区', '37', '山东省', '3708', '济宁市', '370812', '兖州区', '', '', '', '', 3, 1, ''), ('370826', '3708', '00,37,3708', '微山县', '37', '山东省', '3708', '济宁市', '370826', '微山县', '', '', '', '', 3, 1, ''), ('370827', '3708', '00,37,3708', '鱼台县', '37', '山东省', '3708', '济宁市', '370827', '鱼台县', '', '', '', '', 3, 1, ''), ('370828', '3708', '00,37,3708', '金乡县', '37', '山东省', '3708', '济宁市', '370828', '金乡县', '', '', '', '', 3, 1, ''), ('370829', '3708', '00,37,3708', '嘉祥县', '37', '山东省', '3708', '济宁市', '370829', '嘉祥县', '', '', '', '', 3, 1, ''), ('370830', '3708', '00,37,3708', '汶上县', '37', '山东省', '3708', '济宁市', '370830', '汶上县', '', '', '', '', 3, 1, ''), ('370831', '3708', '00,37,3708', '泗水县', '37', '山东省', '3708', '济宁市', '370831', '泗水县', '', '', '', '', 3, 1, ''), ('370832', '3708', '00,37,3708', '梁山县', '37', '山东省', '3708', '济宁市', '370832', '梁山县', '', '', '', '', 3, 1, ''), ('370881', '3708', '00,37,3708', '曲阜市', '37', '山东省', '3708', '济宁市', '370881', '曲阜市', '', '', '', '', 3, 1, ''), ('370883', '3708', '00,37,3708', '邹城市', '37', '山东省', '3708', '济宁市', '370883', '邹城市', '', '', '', '', 3, 1, ''), ('3709', '37', '00,37', '泰安市', '37', '山东省', '3709', '泰安市', '', '', '', '', '', '', 2, 1, ''), ('370902', '3709', '00,37,3709', '泰山区', '37', '山东省', '3709', '泰安市', '370902', '泰山区', '', '', '', '', 3, 1, ''), ('370911', '3709', '00,37,3709', '岱岳区', '37', '山东省', '3709', '泰安市', '370911', '岱岳区', '', '', '', '', 3, 1, ''), ('370921', '3709', '00,37,3709', '宁阳县', '37', '山东省', '3709', '泰安市', '370921', '宁阳县', '', '', '', '', 3, 1, ''), ('370923', '3709', '00,37,3709', '东平县', '37', '山东省', '3709', '泰安市', '370923', '东平县', '', '', '', '', 3, 1, ''), ('370982', '3709', '00,37,3709', '新泰市', '37', '山东省', '3709', '泰安市', '370982', '新泰市', '', '', '', '', 3, 1, ''), ('370983', '3709', '00,37,3709', '肥城市', '37', '山东省', '3709', '泰安市', '370983', '肥城市', '', '', '', '', 3, 1, ''), ('3710', '37', '00,37', '威海市', '37', '山东省', '3710', '威海市', '', '', '', '', '', '', 2, 1, ''), ('371002', '3710', '00,37,3710', '环翠区', '37', '山东省', '3710', '威海市', '371002', '环翠区', '', '', '', '', 3, 1, ''), ('371003', '3710', '00,37,3710', '文登区', '37', '山东省', '3710', '威海市', '371003', '文登区', '', '', '', '', 3, 1, ''), ('371082', '3710', '00,37,3710', '荣成市', '37', '山东省', '3710', '威海市', '371082', '荣成市', '', '', '', '', 3, 1, ''), ('371083', '3710', '00,37,3710', '乳山市', '37', '山东省', '3710', '威海市', '371083', '乳山市', '', '', '', '', 3, 1, ''), ('3711', '37', '00,37', '日照市', '37', '山东省', '3711', '日照市', '', '', '', '', '', '', 2, 1, ''), ('371102', '3711', '00,37,3711', '东港区', '37', '山东省', '3711', '日照市', '371102', '东港区', '', '', '', '', 3, 1, ''), ('371103', '3711', '00,37,3711', '岚山区', '37', '山东省', '3711', '日照市', '371103', '岚山区', '', '', '', '', 3, 1, ''), ('371121', '3711', '00,37,3711', '五莲县', '37', '山东省', '3711', '日照市', '371121', '五莲县', '', '', '', '', 3, 1, ''), ('371122', '3711', '00,37,3711', '莒县', '37', '山东省', '3711', '日照市', '371122', '莒县', '', '', '', '', 3, 1, ''), ('3713', '37', '00,37', '临沂市', '37', '山东省', '3713', '临沂市', '', '', '', '', '', '', 2, 1, ''), ('371302', '3713', '00,37,3713', '兰山区', '37', '山东省', '3713', '临沂市', '371302', '兰山区', '', '', '', '', 3, 1, ''), ('371311', '3713', '00,37,3713', '罗庄区', '37', '山东省', '3713', '临沂市', '371311', '罗庄区', '', '', '', '', 3, 1, ''), ('371312', '3713', '00,37,3713', '河东区', '37', '山东省', '3713', '临沂市', '371312', '河东区', '', '', '', '', 3, 1, ''); +INSERT INTO `blade_region` VALUES ('371321', '3713', '00,37,3713', '沂南县', '37', '山东省', '3713', '临沂市', '371321', '沂南县', '', '', '', '', 3, 1, ''), ('371322', '3713', '00,37,3713', '郯城县', '37', '山东省', '3713', '临沂市', '371322', '郯城县', '', '', '', '', 3, 1, ''), ('371323', '3713', '00,37,3713', '沂水县', '37', '山东省', '3713', '临沂市', '371323', '沂水县', '', '', '', '', 3, 1, ''), ('371324', '3713', '00,37,3713', '兰陵县', '37', '山东省', '3713', '临沂市', '371324', '兰陵县', '', '', '', '', 3, 1, ''), ('371325', '3713', '00,37,3713', '费县', '37', '山东省', '3713', '临沂市', '371325', '费县', '', '', '', '', 3, 1, ''), ('371326', '3713', '00,37,3713', '平邑县', '37', '山东省', '3713', '临沂市', '371326', '平邑县', '', '', '', '', 3, 1, ''), ('371327', '3713', '00,37,3713', '莒南县', '37', '山东省', '3713', '临沂市', '371327', '莒南县', '', '', '', '', 3, 1, ''), ('371328', '3713', '00,37,3713', '蒙阴县', '37', '山东省', '3713', '临沂市', '371328', '蒙阴县', '', '', '', '', 3, 1, ''), ('371329', '3713', '00,37,3713', '临沭县', '37', '山东省', '3713', '临沂市', '371329', '临沭县', '', '', '', '', 3, 1, ''), ('3714', '37', '00,37', '德州市', '37', '山东省', '3714', '德州市', '', '', '', '', '', '', 2, 1, ''), ('371402', '3714', '00,37,3714', '德城区', '37', '山东省', '3714', '德州市', '371402', '德城区', '', '', '', '', 3, 1, ''), ('371403', '3714', '00,37,3714', '陵城区', '37', '山东省', '3714', '德州市', '371403', '陵城区', '', '', '', '', 3, 1, ''), ('371422', '3714', '00,37,3714', '宁津县', '37', '山东省', '3714', '德州市', '371422', '宁津县', '', '', '', '', 3, 1, ''), ('371423', '3714', '00,37,3714', '庆云县', '37', '山东省', '3714', '德州市', '371423', '庆云县', '', '', '', '', 3, 1, ''), ('371424', '3714', '00,37,3714', '临邑县', '37', '山东省', '3714', '德州市', '371424', '临邑县', '', '', '', '', 3, 1, ''), ('371425', '3714', '00,37,3714', '齐河县', '37', '山东省', '3714', '德州市', '371425', '齐河县', '', '', '', '', 3, 1, ''), ('371426', '3714', '00,37,3714', '平原县', '37', '山东省', '3714', '德州市', '371426', '平原县', '', '', '', '', 3, 1, ''), ('371427', '3714', '00,37,3714', '夏津县', '37', '山东省', '3714', '德州市', '371427', '夏津县', '', '', '', '', 3, 1, ''), ('371428', '3714', '00,37,3714', '武城县', '37', '山东省', '3714', '德州市', '371428', '武城县', '', '', '', '', 3, 1, ''), ('371481', '3714', '00,37,3714', '乐陵市', '37', '山东省', '3714', '德州市', '371481', '乐陵市', '', '', '', '', 3, 1, ''), ('371482', '3714', '00,37,3714', '禹城市', '37', '山东省', '3714', '德州市', '371482', '禹城市', '', '', '', '', 3, 1, ''), ('3715', '37', '00,37', '聊城市', '37', '山东省', '3715', '聊城市', '', '', '', '', '', '', 2, 1, ''), ('371502', '3715', '00,37,3715', '东昌府区', '37', '山东省', '3715', '聊城市', '371502', '东昌府区', '', '', '', '', 3, 1, ''), ('371503', '3715', '00,37,3715', '茌平区', '37', '山东省', '3715', '聊城市', '371503', '茌平区', '', '', '', '', 3, 1, ''), ('371521', '3715', '00,37,3715', '阳谷县', '37', '山东省', '3715', '聊城市', '371521', '阳谷县', '', '', '', '', 3, 1, ''), ('371522', '3715', '00,37,3715', '莘县', '37', '山东省', '3715', '聊城市', '371522', '莘县', '', '', '', '', 3, 1, ''), ('371524', '3715', '00,37,3715', '东阿县', '37', '山东省', '3715', '聊城市', '371524', '东阿县', '', '', '', '', 3, 1, ''), ('371525', '3715', '00,37,3715', '冠县', '37', '山东省', '3715', '聊城市', '371525', '冠县', '', '', '', '', 3, 1, ''), ('371526', '3715', '00,37,3715', '高唐县', '37', '山东省', '3715', '聊城市', '371526', '高唐县', '', '', '', '', 3, 1, ''), ('371581', '3715', '00,37,3715', '临清市', '37', '山东省', '3715', '聊城市', '371581', '临清市', '', '', '', '', 3, 1, ''), ('3716', '37', '00,37', '滨州市', '37', '山东省', '3716', '滨州市', '', '', '', '', '', '', 2, 1, ''), ('371602', '3716', '00,37,3716', '滨城区', '37', '山东省', '3716', '滨州市', '371602', '滨城区', '', '', '', '', 3, 1, ''), ('371603', '3716', '00,37,3716', '沾化区', '37', '山东省', '3716', '滨州市', '371603', '沾化区', '', '', '', '', 3, 1, ''), ('371621', '3716', '00,37,3716', '惠民县', '37', '山东省', '3716', '滨州市', '371621', '惠民县', '', '', '', '', 3, 1, ''), ('371622', '3716', '00,37,3716', '阳信县', '37', '山东省', '3716', '滨州市', '371622', '阳信县', '', '', '', '', 3, 1, ''), ('371623', '3716', '00,37,3716', '无棣县', '37', '山东省', '3716', '滨州市', '371623', '无棣县', '', '', '', '', 3, 1, ''), ('371625', '3716', '00,37,3716', '博兴县', '37', '山东省', '3716', '滨州市', '371625', '博兴县', '', '', '', '', 3, 1, ''), ('371681', '3716', '00,37,3716', '邹平市', '37', '山东省', '3716', '滨州市', '371681', '邹平市', '', '', '', '', 3, 1, ''), ('3717', '37', '00,37', '菏泽市', '37', '山东省', '3717', '菏泽市', '', '', '', '', '', '', 2, 1, ''), ('371702', '3717', '00,37,3717', '牡丹区', '37', '山东省', '3717', '菏泽市', '371702', '牡丹区', '', '', '', '', 3, 1, ''), ('371703', '3717', '00,37,3717', '定陶区', '37', '山东省', '3717', '菏泽市', '371703', '定陶区', '', '', '', '', 3, 1, ''), ('371721', '3717', '00,37,3717', '曹县', '37', '山东省', '3717', '菏泽市', '371721', '曹县', '', '', '', '', 3, 1, ''), ('371722', '3717', '00,37,3717', '单县', '37', '山东省', '3717', '菏泽市', '371722', '单县', '', '', '', '', 3, 1, ''), ('371723', '3717', '00,37,3717', '成武县', '37', '山东省', '3717', '菏泽市', '371723', '成武县', '', '', '', '', 3, 1, ''), ('371724', '3717', '00,37,3717', '巨野县', '37', '山东省', '3717', '菏泽市', '371724', '巨野县', '', '', '', '', 3, 1, ''), ('371725', '3717', '00,37,3717', '郓城县', '37', '山东省', '3717', '菏泽市', '371725', '郓城县', '', '', '', '', 3, 1, ''), ('371726', '3717', '00,37,3717', '鄄城县', '37', '山东省', '3717', '菏泽市', '371726', '鄄城县', '', '', '', '', 3, 1, ''), ('371728', '3717', '00,37,3717', '东明县', '37', '山东省', '3717', '菏泽市', '371728', '东明县', '', '', '', '', 3, 1, ''), ('41', '00', '00', '河南省', '41', '河南省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4101', '41', '00,41', '郑州市', '41', '河南省', '4101', '郑州市', '', '', '', '', '', '', 2, 1, ''), ('410102', '4101', '00,41,4101', '中原区', '41', '河南省', '4101', '郑州市', '410102', '中原区', '', '', '', '', 3, 1, ''), ('410103', '4101', '00,41,4101', '二七区', '41', '河南省', '4101', '郑州市', '410103', '二七区', '', '', '', '', 3, 1, ''), ('410104', '4101', '00,41,4101', '管城回族区', '41', '河南省', '4101', '郑州市', '410104', '管城回族区', '', '', '', '', 3, 1, ''), ('410105', '4101', '00,41,4101', '金水区', '41', '河南省', '4101', '郑州市', '410105', '金水区', '', '', '', '', 3, 1, ''), ('410106', '4101', '00,41,4101', '上街区', '41', '河南省', '4101', '郑州市', '410106', '上街区', '', '', '', '', 3, 1, ''), ('410108', '4101', '00,41,4101', '惠济区', '41', '河南省', '4101', '郑州市', '410108', '惠济区', '', '', '', '', 3, 1, ''), ('410122', '4101', '00,41,4101', '中牟县', '41', '河南省', '4101', '郑州市', '410122', '中牟县', '', '', '', '', 3, 1, ''), ('410181', '4101', '00,41,4101', '巩义市', '41', '河南省', '4101', '郑州市', '410181', '巩义市', '', '', '', '', 3, 1, ''), ('410182', '4101', '00,41,4101', '荥阳市', '41', '河南省', '4101', '郑州市', '410182', '荥阳市', '', '', '', '', 3, 1, ''), ('410183', '4101', '00,41,4101', '新密市', '41', '河南省', '4101', '郑州市', '410183', '新密市', '', '', '', '', 3, 1, ''), ('410184', '4101', '00,41,4101', '新郑市', '41', '河南省', '4101', '郑州市', '410184', '新郑市', '', '', '', '', 3, 1, ''), ('410185', '4101', '00,41,4101', '登封市', '41', '河南省', '4101', '郑州市', '410185', '登封市', '', '', '', '', 3, 1, ''), ('4102', '41', '00,41', '开封市', '41', '河南省', '4102', '开封市', '', '', '', '', '', '', 2, 1, ''), ('410202', '4102', '00,41,4102', '龙亭区', '41', '河南省', '4102', '开封市', '410202', '龙亭区', '', '', '', '', 3, 1, ''), ('410203', '4102', '00,41,4102', '顺河回族区', '41', '河南省', '4102', '开封市', '410203', '顺河回族区', '', '', '', '', 3, 1, ''), ('410204', '4102', '00,41,4102', '鼓楼区', '41', '河南省', '4102', '开封市', '410204', '鼓楼区', '', '', '', '', 3, 1, ''), ('410205', '4102', '00,41,4102', '禹王台区', '41', '河南省', '4102', '开封市', '410205', '禹王台区', '', '', '', '', 3, 1, ''), ('410212', '4102', '00,41,4102', '祥符区', '41', '河南省', '4102', '开封市', '410212', '祥符区', '', '', '', '', 3, 1, ''), ('410221', '4102', '00,41,4102', '杞县', '41', '河南省', '4102', '开封市', '410221', '杞县', '', '', '', '', 3, 1, ''), ('410222', '4102', '00,41,4102', '通许县', '41', '河南省', '4102', '开封市', '410222', '通许县', '', '', '', '', 3, 1, ''), ('410223', '4102', '00,41,4102', '尉氏县', '41', '河南省', '4102', '开封市', '410223', '尉氏县', '', '', '', '', 3, 1, ''), ('410225', '4102', '00,41,4102', '兰考县', '41', '河南省', '4102', '开封市', '410225', '兰考县', '', '', '', '', 3, 1, ''), ('4103', '41', '00,41', '洛阳市', '41', '河南省', '4103', '洛阳市', '', '', '', '', '', '', 2, 1, ''), ('410302', '4103', '00,41,4103', '老城区', '41', '河南省', '4103', '洛阳市', '410302', '老城区', '', '', '', '', 3, 1, ''), ('410303', '4103', '00,41,4103', '西工区', '41', '河南省', '4103', '洛阳市', '410303', '西工区', '', '', '', '', 3, 1, ''), ('410304', '4103', '00,41,4103', '瀍河回族区', '41', '河南省', '4103', '洛阳市', '410304', '瀍河回族区', '', '', '', '', 3, 1, ''), ('410305', '4103', '00,41,4103', '涧西区', '41', '河南省', '4103', '洛阳市', '410305', '涧西区', '', '', '', '', 3, 1, ''), ('410306', '4103', '00,41,4103', '吉利区', '41', '河南省', '4103', '洛阳市', '410306', '吉利区', '', '', '', '', 3, 1, ''), ('410311', '4103', '00,41,4103', '洛龙区', '41', '河南省', '4103', '洛阳市', '410311', '洛龙区', '', '', '', '', 3, 1, ''), ('410322', '4103', '00,41,4103', '孟津县', '41', '河南省', '4103', '洛阳市', '410322', '孟津县', '', '', '', '', 3, 1, ''), ('410323', '4103', '00,41,4103', '新安县', '41', '河南省', '4103', '洛阳市', '410323', '新安县', '', '', '', '', 3, 1, ''), ('410324', '4103', '00,41,4103', '栾川县', '41', '河南省', '4103', '洛阳市', '410324', '栾川县', '', '', '', '', 3, 1, ''), ('410325', '4103', '00,41,4103', '嵩县', '41', '河南省', '4103', '洛阳市', '410325', '嵩县', '', '', '', '', 3, 1, ''), ('410326', '4103', '00,41,4103', '汝阳县', '41', '河南省', '4103', '洛阳市', '410326', '汝阳县', '', '', '', '', 3, 1, ''), ('410327', '4103', '00,41,4103', '宜阳县', '41', '河南省', '4103', '洛阳市', '410327', '宜阳县', '', '', '', '', 3, 1, ''), ('410328', '4103', '00,41,4103', '洛宁县', '41', '河南省', '4103', '洛阳市', '410328', '洛宁县', '', '', '', '', 3, 1, ''), ('410329', '4103', '00,41,4103', '伊川县', '41', '河南省', '4103', '洛阳市', '410329', '伊川县', '', '', '', '', 3, 1, ''), ('410381', '4103', '00,41,4103', '偃师市', '41', '河南省', '4103', '洛阳市', '410381', '偃师市', '', '', '', '', 3, 1, ''), ('4104', '41', '00,41', '平顶山市', '41', '河南省', '4104', '平顶山市', '', '', '', '', '', '', 2, 1, ''), ('410402', '4104', '00,41,4104', '新华区', '41', '河南省', '4104', '平顶山市', '410402', '新华区', '', '', '', '', 3, 1, ''), ('410403', '4104', '00,41,4104', '卫东区', '41', '河南省', '4104', '平顶山市', '410403', '卫东区', '', '', '', '', 3, 1, ''), ('410404', '4104', '00,41,4104', '石龙区', '41', '河南省', '4104', '平顶山市', '410404', '石龙区', '', '', '', '', 3, 1, ''), ('410411', '4104', '00,41,4104', '湛河区', '41', '河南省', '4104', '平顶山市', '410411', '湛河区', '', '', '', '', 3, 1, ''), ('410421', '4104', '00,41,4104', '宝丰县', '41', '河南省', '4104', '平顶山市', '410421', '宝丰县', '', '', '', '', 3, 1, ''), ('410422', '4104', '00,41,4104', '叶县', '41', '河南省', '4104', '平顶山市', '410422', '叶县', '', '', '', '', 3, 1, ''), ('410423', '4104', '00,41,4104', '鲁山县', '41', '河南省', '4104', '平顶山市', '410423', '鲁山县', '', '', '', '', 3, 1, ''), ('410425', '4104', '00,41,4104', '郏县', '41', '河南省', '4104', '平顶山市', '410425', '郏县', '', '', '', '', 3, 1, ''), ('410481', '4104', '00,41,4104', '舞钢市', '41', '河南省', '4104', '平顶山市', '410481', '舞钢市', '', '', '', '', 3, 1, ''), ('410482', '4104', '00,41,4104', '汝州市', '41', '河南省', '4104', '平顶山市', '410482', '汝州市', '', '', '', '', 3, 1, ''), ('4105', '41', '00,41', '安阳市', '41', '河南省', '4105', '安阳市', '', '', '', '', '', '', 2, 1, ''), ('410502', '4105', '00,41,4105', '文峰区', '41', '河南省', '4105', '安阳市', '410502', '文峰区', '', '', '', '', 3, 1, ''), ('410503', '4105', '00,41,4105', '北关区', '41', '河南省', '4105', '安阳市', '410503', '北关区', '', '', '', '', 3, 1, ''), ('410505', '4105', '00,41,4105', '殷都区', '41', '河南省', '4105', '安阳市', '410505', '殷都区', '', '', '', '', 3, 1, ''), ('410506', '4105', '00,41,4105', '龙安区', '41', '河南省', '4105', '安阳市', '410506', '龙安区', '', '', '', '', 3, 1, ''), ('410522', '4105', '00,41,4105', '安阳县', '41', '河南省', '4105', '安阳市', '410522', '安阳县', '', '', '', '', 3, 1, ''), ('410523', '4105', '00,41,4105', '汤阴县', '41', '河南省', '4105', '安阳市', '410523', '汤阴县', '', '', '', '', 3, 1, ''), ('410526', '4105', '00,41,4105', '滑县', '41', '河南省', '4105', '安阳市', '410526', '滑县', '', '', '', '', 3, 1, ''), ('410527', '4105', '00,41,4105', '内黄县', '41', '河南省', '4105', '安阳市', '410527', '内黄县', '', '', '', '', 3, 1, ''), ('410581', '4105', '00,41,4105', '林州市', '41', '河南省', '4105', '安阳市', '410581', '林州市', '', '', '', '', 3, 1, ''), ('4106', '41', '00,41', '鹤壁市', '41', '河南省', '4106', '鹤壁市', '', '', '', '', '', '', 2, 1, ''), ('410602', '4106', '00,41,4106', '鹤山区', '41', '河南省', '4106', '鹤壁市', '410602', '鹤山区', '', '', '', '', 3, 1, ''), ('410603', '4106', '00,41,4106', '山城区', '41', '河南省', '4106', '鹤壁市', '410603', '山城区', '', '', '', '', 3, 1, ''), ('410611', '4106', '00,41,4106', '淇滨区', '41', '河南省', '4106', '鹤壁市', '410611', '淇滨区', '', '', '', '', 3, 1, ''), ('410621', '4106', '00,41,4106', '浚县', '41', '河南省', '4106', '鹤壁市', '410621', '浚县', '', '', '', '', 3, 1, ''), ('410622', '4106', '00,41,4106', '淇县', '41', '河南省', '4106', '鹤壁市', '410622', '淇县', '', '', '', '', 3, 1, ''), ('4107', '41', '00,41', '新乡市', '41', '河南省', '4107', '新乡市', '', '', '', '', '', '', 2, 1, ''), ('410702', '4107', '00,41,4107', '红旗区', '41', '河南省', '4107', '新乡市', '410702', '红旗区', '', '', '', '', 3, 1, ''), ('410703', '4107', '00,41,4107', '卫滨区', '41', '河南省', '4107', '新乡市', '410703', '卫滨区', '', '', '', '', 3, 1, ''), ('410704', '4107', '00,41,4107', '凤泉区', '41', '河南省', '4107', '新乡市', '410704', '凤泉区', '', '', '', '', 3, 1, ''), ('410711', '4107', '00,41,4107', '牧野区', '41', '河南省', '4107', '新乡市', '410711', '牧野区', '', '', '', '', 3, 1, ''), ('410721', '4107', '00,41,4107', '新乡县', '41', '河南省', '4107', '新乡市', '410721', '新乡县', '', '', '', '', 3, 1, ''), ('410724', '4107', '00,41,4107', '获嘉县', '41', '河南省', '4107', '新乡市', '410724', '获嘉县', '', '', '', '', 3, 1, ''), ('410725', '4107', '00,41,4107', '原阳县', '41', '河南省', '4107', '新乡市', '410725', '原阳县', '', '', '', '', 3, 1, ''), ('410726', '4107', '00,41,4107', '延津县', '41', '河南省', '4107', '新乡市', '410726', '延津县', '', '', '', '', 3, 1, ''), ('410727', '4107', '00,41,4107', '封丘县', '41', '河南省', '4107', '新乡市', '410727', '封丘县', '', '', '', '', 3, 1, ''), ('410781', '4107', '00,41,4107', '卫辉市', '41', '河南省', '4107', '新乡市', '410781', '卫辉市', '', '', '', '', 3, 1, ''), ('410782', '4107', '00,41,4107', '辉县市', '41', '河南省', '4107', '新乡市', '410782', '辉县市', '', '', '', '', 3, 1, ''), ('410783', '4107', '00,41,4107', '长垣市', '41', '河南省', '4107', '新乡市', '410783', '长垣市', '', '', '', '', 3, 1, ''), ('4108', '41', '00,41', '焦作市', '41', '河南省', '4108', '焦作市', '', '', '', '', '', '', 2, 1, ''), ('410802', '4108', '00,41,4108', '解放区', '41', '河南省', '4108', '焦作市', '410802', '解放区', '', '', '', '', 3, 1, ''), ('410803', '4108', '00,41,4108', '中站区', '41', '河南省', '4108', '焦作市', '410803', '中站区', '', '', '', '', 3, 1, ''), ('410804', '4108', '00,41,4108', '马村区', '41', '河南省', '4108', '焦作市', '410804', '马村区', '', '', '', '', 3, 1, ''), ('410811', '4108', '00,41,4108', '山阳区', '41', '河南省', '4108', '焦作市', '410811', '山阳区', '', '', '', '', 3, 1, ''), ('410821', '4108', '00,41,4108', '修武县', '41', '河南省', '4108', '焦作市', '410821', '修武县', '', '', '', '', 3, 1, ''), ('410822', '4108', '00,41,4108', '博爱县', '41', '河南省', '4108', '焦作市', '410822', '博爱县', '', '', '', '', 3, 1, ''), ('410823', '4108', '00,41,4108', '武陟县', '41', '河南省', '4108', '焦作市', '410823', '武陟县', '', '', '', '', 3, 1, ''), ('410825', '4108', '00,41,4108', '温县', '41', '河南省', '4108', '焦作市', '410825', '温县', '', '', '', '', 3, 1, ''), ('410882', '4108', '00,41,4108', '沁阳市', '41', '河南省', '4108', '焦作市', '410882', '沁阳市', '', '', '', '', 3, 1, ''), ('410883', '4108', '00,41,4108', '孟州市', '41', '河南省', '4108', '焦作市', '410883', '孟州市', '', '', '', '', 3, 1, ''), ('4109', '41', '00,41', '濮阳市', '41', '河南省', '4109', '濮阳市', '', '', '', '', '', '', 2, 1, ''), ('410902', '4109', '00,41,4109', '华龙区', '41', '河南省', '4109', '濮阳市', '410902', '华龙区', '', '', '', '', 3, 1, ''), ('410922', '4109', '00,41,4109', '清丰县', '41', '河南省', '4109', '濮阳市', '410922', '清丰县', '', '', '', '', 3, 1, ''), ('410923', '4109', '00,41,4109', '南乐县', '41', '河南省', '4109', '濮阳市', '410923', '南乐县', '', '', '', '', 3, 1, ''), ('410926', '4109', '00,41,4109', '范县', '41', '河南省', '4109', '濮阳市', '410926', '范县', '', '', '', '', 3, 1, ''), ('410927', '4109', '00,41,4109', '台前县', '41', '河南省', '4109', '濮阳市', '410927', '台前县', '', '', '', '', 3, 1, ''), ('410928', '4109', '00,41,4109', '濮阳县', '41', '河南省', '4109', '濮阳市', '410928', '濮阳县', '', '', '', '', 3, 1, ''), ('4110', '41', '00,41', '许昌市', '41', '河南省', '4110', '许昌市', '', '', '', '', '', '', 2, 1, ''), ('411002', '4110', '00,41,4110', '魏都区', '41', '河南省', '4110', '许昌市', '411002', '魏都区', '', '', '', '', 3, 1, ''), ('411003', '4110', '00,41,4110', '建安区', '41', '河南省', '4110', '许昌市', '411003', '建安区', '', '', '', '', 3, 1, ''), ('411024', '4110', '00,41,4110', '鄢陵县', '41', '河南省', '4110', '许昌市', '411024', '鄢陵县', '', '', '', '', 3, 1, ''), ('411025', '4110', '00,41,4110', '襄城县', '41', '河南省', '4110', '许昌市', '411025', '襄城县', '', '', '', '', 3, 1, ''), ('411081', '4110', '00,41,4110', '禹州市', '41', '河南省', '4110', '许昌市', '411081', '禹州市', '', '', '', '', 3, 1, ''), ('411082', '4110', '00,41,4110', '长葛市', '41', '河南省', '4110', '许昌市', '411082', '长葛市', '', '', '', '', 3, 1, ''), ('4111', '41', '00,41', '漯河市', '41', '河南省', '4111', '漯河市', '', '', '', '', '', '', 2, 1, ''), ('411102', '4111', '00,41,4111', '源汇区', '41', '河南省', '4111', '漯河市', '411102', '源汇区', '', '', '', '', 3, 1, ''), ('411103', '4111', '00,41,4111', '郾城区', '41', '河南省', '4111', '漯河市', '411103', '郾城区', '', '', '', '', 3, 1, ''), ('411104', '4111', '00,41,4111', '召陵区', '41', '河南省', '4111', '漯河市', '411104', '召陵区', '', '', '', '', 3, 1, ''), ('411121', '4111', '00,41,4111', '舞阳县', '41', '河南省', '4111', '漯河市', '411121', '舞阳县', '', '', '', '', 3, 1, ''), ('411122', '4111', '00,41,4111', '临颍县', '41', '河南省', '4111', '漯河市', '411122', '临颍县', '', '', '', '', 3, 1, ''), ('4112', '41', '00,41', '三门峡市', '41', '河南省', '4112', '三门峡市', '', '', '', '', '', '', 2, 1, ''), ('411202', '4112', '00,41,4112', '湖滨区', '41', '河南省', '4112', '三门峡市', '411202', '湖滨区', '', '', '', '', 3, 1, ''), ('411203', '4112', '00,41,4112', '陕州区', '41', '河南省', '4112', '三门峡市', '411203', '陕州区', '', '', '', '', 3, 1, ''), ('411221', '4112', '00,41,4112', '渑池县', '41', '河南省', '4112', '三门峡市', '411221', '渑池县', '', '', '', '', 3, 1, ''), ('411224', '4112', '00,41,4112', '卢氏县', '41', '河南省', '4112', '三门峡市', '411224', '卢氏县', '', '', '', '', 3, 1, ''), ('411281', '4112', '00,41,4112', '义马市', '41', '河南省', '4112', '三门峡市', '411281', '义马市', '', '', '', '', 3, 1, ''), ('411282', '4112', '00,41,4112', '灵宝市', '41', '河南省', '4112', '三门峡市', '411282', '灵宝市', '', '', '', '', 3, 1, ''), ('4113', '41', '00,41', '南阳市', '41', '河南省', '4113', '南阳市', '', '', '', '', '', '', 2, 1, ''), ('411302', '4113', '00,41,4113', '宛城区', '41', '河南省', '4113', '南阳市', '411302', '宛城区', '', '', '', '', 3, 1, ''), ('411303', '4113', '00,41,4113', '卧龙区', '41', '河南省', '4113', '南阳市', '411303', '卧龙区', '', '', '', '', 3, 1, ''), ('411321', '4113', '00,41,4113', '南召县', '41', '河南省', '4113', '南阳市', '411321', '南召县', '', '', '', '', 3, 1, ''), ('411322', '4113', '00,41,4113', '方城县', '41', '河南省', '4113', '南阳市', '411322', '方城县', '', '', '', '', 3, 1, ''), ('411323', '4113', '00,41,4113', '西峡县', '41', '河南省', '4113', '南阳市', '411323', '西峡县', '', '', '', '', 3, 1, ''), ('411324', '4113', '00,41,4113', '镇平县', '41', '河南省', '4113', '南阳市', '411324', '镇平县', '', '', '', '', 3, 1, ''), ('411325', '4113', '00,41,4113', '内乡县', '41', '河南省', '4113', '南阳市', '411325', '内乡县', '', '', '', '', 3, 1, ''), ('411326', '4113', '00,41,4113', '淅川县', '41', '河南省', '4113', '南阳市', '411326', '淅川县', '', '', '', '', 3, 1, ''), ('411327', '4113', '00,41,4113', '社旗县', '41', '河南省', '4113', '南阳市', '411327', '社旗县', '', '', '', '', 3, 1, ''), ('411328', '4113', '00,41,4113', '唐河县', '41', '河南省', '4113', '南阳市', '411328', '唐河县', '', '', '', '', 3, 1, ''), ('411329', '4113', '00,41,4113', '新野县', '41', '河南省', '4113', '南阳市', '411329', '新野县', '', '', '', '', 3, 1, ''), ('411330', '4113', '00,41,4113', '桐柏县', '41', '河南省', '4113', '南阳市', '411330', '桐柏县', '', '', '', '', 3, 1, ''), ('411381', '4113', '00,41,4113', '邓州市', '41', '河南省', '4113', '南阳市', '411381', '邓州市', '', '', '', '', 3, 1, ''), ('4114', '41', '00,41', '商丘市', '41', '河南省', '4114', '商丘市', '', '', '', '', '', '', 2, 1, ''), ('411402', '4114', '00,41,4114', '梁园区', '41', '河南省', '4114', '商丘市', '411402', '梁园区', '', '', '', '', 3, 1, ''), ('411403', '4114', '00,41,4114', '睢阳区', '41', '河南省', '4114', '商丘市', '411403', '睢阳区', '', '', '', '', 3, 1, ''), ('411421', '4114', '00,41,4114', '民权县', '41', '河南省', '4114', '商丘市', '411421', '民权县', '', '', '', '', 3, 1, ''), ('411422', '4114', '00,41,4114', '睢县', '41', '河南省', '4114', '商丘市', '411422', '睢县', '', '', '', '', 3, 1, ''), ('411423', '4114', '00,41,4114', '宁陵县', '41', '河南省', '4114', '商丘市', '411423', '宁陵县', '', '', '', '', 3, 1, ''), ('411424', '4114', '00,41,4114', '柘城县', '41', '河南省', '4114', '商丘市', '411424', '柘城县', '', '', '', '', 3, 1, ''), ('411425', '4114', '00,41,4114', '虞城县', '41', '河南省', '4114', '商丘市', '411425', '虞城县', '', '', '', '', 3, 1, ''), ('411426', '4114', '00,41,4114', '夏邑县', '41', '河南省', '4114', '商丘市', '411426', '夏邑县', '', '', '', '', 3, 1, ''), ('411481', '4114', '00,41,4114', '永城市', '41', '河南省', '4114', '商丘市', '411481', '永城市', '', '', '', '', 3, 1, ''), ('4115', '41', '00,41', '信阳市', '41', '河南省', '4115', '信阳市', '', '', '', '', '', '', 2, 1, ''), ('411502', '4115', '00,41,4115', '浉河区', '41', '河南省', '4115', '信阳市', '411502', '浉河区', '', '', '', '', 3, 1, ''), ('411503', '4115', '00,41,4115', '平桥区', '41', '河南省', '4115', '信阳市', '411503', '平桥区', '', '', '', '', 3, 1, ''), ('411521', '4115', '00,41,4115', '罗山县', '41', '河南省', '4115', '信阳市', '411521', '罗山县', '', '', '', '', 3, 1, ''), ('411522', '4115', '00,41,4115', '光山县', '41', '河南省', '4115', '信阳市', '411522', '光山县', '', '', '', '', 3, 1, ''), ('411523', '4115', '00,41,4115', '新县', '41', '河南省', '4115', '信阳市', '411523', '新县', '', '', '', '', 3, 1, ''), ('411524', '4115', '00,41,4115', '商城县', '41', '河南省', '4115', '信阳市', '411524', '商城县', '', '', '', '', 3, 1, ''), ('411525', '4115', '00,41,4115', '固始县', '41', '河南省', '4115', '信阳市', '411525', '固始县', '', '', '', '', 3, 1, ''), ('411526', '4115', '00,41,4115', '潢川县', '41', '河南省', '4115', '信阳市', '411526', '潢川县', '', '', '', '', 3, 1, ''), ('411527', '4115', '00,41,4115', '淮滨县', '41', '河南省', '4115', '信阳市', '411527', '淮滨县', '', '', '', '', 3, 1, ''), ('411528', '4115', '00,41,4115', '息县', '41', '河南省', '4115', '信阳市', '411528', '息县', '', '', '', '', 3, 1, ''), ('4116', '41', '00,41', '周口市', '41', '河南省', '4116', '周口市', '', '', '', '', '', '', 2, 1, ''), ('411602', '4116', '00,41,4116', '川汇区', '41', '河南省', '4116', '周口市', '411602', '川汇区', '', '', '', '', 3, 1, ''), ('411603', '4116', '00,41,4116', '淮阳区', '41', '河南省', '4116', '周口市', '411603', '淮阳区', '', '', '', '', 3, 1, ''), ('411621', '4116', '00,41,4116', '扶沟县', '41', '河南省', '4116', '周口市', '411621', '扶沟县', '', '', '', '', 3, 1, ''), ('411622', '4116', '00,41,4116', '西华县', '41', '河南省', '4116', '周口市', '411622', '西华县', '', '', '', '', 3, 1, ''), ('411623', '4116', '00,41,4116', '商水县', '41', '河南省', '4116', '周口市', '411623', '商水县', '', '', '', '', 3, 1, ''), ('411624', '4116', '00,41,4116', '沈丘县', '41', '河南省', '4116', '周口市', '411624', '沈丘县', '', '', '', '', 3, 1, ''), ('411625', '4116', '00,41,4116', '郸城县', '41', '河南省', '4116', '周口市', '411625', '郸城县', '', '', '', '', 3, 1, ''), ('411627', '4116', '00,41,4116', '太康县', '41', '河南省', '4116', '周口市', '411627', '太康县', '', '', '', '', 3, 1, ''), ('411628', '4116', '00,41,4116', '鹿邑县', '41', '河南省', '4116', '周口市', '411628', '鹿邑县', '', '', '', '', 3, 1, ''), ('411681', '4116', '00,41,4116', '项城市', '41', '河南省', '4116', '周口市', '411681', '项城市', '', '', '', '', 3, 1, ''), ('4117', '41', '00,41', '驻马店市', '41', '河南省', '4117', '驻马店市', '', '', '', '', '', '', 2, 1, ''), ('411702', '4117', '00,41,4117', '驿城区', '41', '河南省', '4117', '驻马店市', '411702', '驿城区', '', '', '', '', 3, 1, ''), ('411721', '4117', '00,41,4117', '西平县', '41', '河南省', '4117', '驻马店市', '411721', '西平县', '', '', '', '', 3, 1, ''), ('411722', '4117', '00,41,4117', '上蔡县', '41', '河南省', '4117', '驻马店市', '411722', '上蔡县', '', '', '', '', 3, 1, ''), ('411723', '4117', '00,41,4117', '平舆县', '41', '河南省', '4117', '驻马店市', '411723', '平舆县', '', '', '', '', 3, 1, ''), ('411724', '4117', '00,41,4117', '正阳县', '41', '河南省', '4117', '驻马店市', '411724', '正阳县', '', '', '', '', 3, 1, ''), ('411725', '4117', '00,41,4117', '确山县', '41', '河南省', '4117', '驻马店市', '411725', '确山县', '', '', '', '', 3, 1, ''), ('411726', '4117', '00,41,4117', '泌阳县', '41', '河南省', '4117', '驻马店市', '411726', '泌阳县', '', '', '', '', 3, 1, ''), ('411727', '4117', '00,41,4117', '汝南县', '41', '河南省', '4117', '驻马店市', '411727', '汝南县', '', '', '', '', 3, 1, ''), ('411728', '4117', '00,41,4117', '遂平县', '41', '河南省', '4117', '驻马店市', '411728', '遂平县', '', '', '', '', 3, 1, ''), ('411729', '4117', '00,41,4117', '新蔡县', '41', '河南省', '4117', '驻马店市', '411729', '新蔡县', '', '', '', '', 3, 1, ''), ('4190', '41', '00,41', '省直辖县级行政区', '41', '河南省', '4190', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, ''), ('419001', '4190', '00,41,4190', '济源市', '41', '河南省', '4190', '省直辖县级行政区', '419001', '济源市', '', '', '', '', 3, 1, ''), ('42', '00', '00', '湖北省', '42', '湖北省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4201', '42', '00,42', '武汉市', '42', '湖北省', '4201', '武汉市', '', '', '', '', '', '', 2, 1, ''), ('420102', '4201', '00,42,4201', '江岸区', '42', '湖北省', '4201', '武汉市', '420102', '江岸区', '', '', '', '', 3, 1, ''), ('420103', '4201', '00,42,4201', '江汉区', '42', '湖北省', '4201', '武汉市', '420103', '江汉区', '', '', '', '', 3, 1, ''), ('420104', '4201', '00,42,4201', '硚口区', '42', '湖北省', '4201', '武汉市', '420104', '硚口区', '', '', '', '', 3, 1, ''), ('420105', '4201', '00,42,4201', '汉阳区', '42', '湖北省', '4201', '武汉市', '420105', '汉阳区', '', '', '', '', 3, 1, ''), ('420106', '4201', '00,42,4201', '武昌区', '42', '湖北省', '4201', '武汉市', '420106', '武昌区', '', '', '', '', 3, 1, ''), ('420107', '4201', '00,42,4201', '青山区', '42', '湖北省', '4201', '武汉市', '420107', '青山区', '', '', '', '', 3, 1, ''), ('420111', '4201', '00,42,4201', '洪山区', '42', '湖北省', '4201', '武汉市', '420111', '洪山区', '', '', '', '', 3, 1, ''), ('420112', '4201', '00,42,4201', '东西湖区', '42', '湖北省', '4201', '武汉市', '420112', '东西湖区', '', '', '', '', 3, 1, ''), ('420113', '4201', '00,42,4201', '汉南区', '42', '湖北省', '4201', '武汉市', '420113', '汉南区', '', '', '', '', 3, 1, ''), ('420114', '4201', '00,42,4201', '蔡甸区', '42', '湖北省', '4201', '武汉市', '420114', '蔡甸区', '', '', '', '', 3, 1, ''), ('420115', '4201', '00,42,4201', '江夏区', '42', '湖北省', '4201', '武汉市', '420115', '江夏区', '', '', '', '', 3, 1, ''), ('420116', '4201', '00,42,4201', '黄陂区', '42', '湖北省', '4201', '武汉市', '420116', '黄陂区', '', '', '', '', 3, 1, ''), ('420117', '4201', '00,42,4201', '新洲区', '42', '湖北省', '4201', '武汉市', '420117', '新洲区', '', '', '', '', 3, 1, ''), ('4202', '42', '00,42', '黄石市', '42', '湖北省', '4202', '黄石市', '', '', '', '', '', '', 2, 1, ''), ('420202', '4202', '00,42,4202', '黄石港区', '42', '湖北省', '4202', '黄石市', '420202', '黄石港区', '', '', '', '', 3, 1, ''), ('420203', '4202', '00,42,4202', '西塞山区', '42', '湖北省', '4202', '黄石市', '420203', '西塞山区', '', '', '', '', 3, 1, ''), ('420204', '4202', '00,42,4202', '下陆区', '42', '湖北省', '4202', '黄石市', '420204', '下陆区', '', '', '', '', 3, 1, ''), ('420205', '4202', '00,42,4202', '铁山区', '42', '湖北省', '4202', '黄石市', '420205', '铁山区', '', '', '', '', 3, 1, ''), ('420222', '4202', '00,42,4202', '阳新县', '42', '湖北省', '4202', '黄石市', '420222', '阳新县', '', '', '', '', 3, 1, ''), ('420281', '4202', '00,42,4202', '大冶市', '42', '湖北省', '4202', '黄石市', '420281', '大冶市', '', '', '', '', 3, 1, ''), ('4203', '42', '00,42', '十堰市', '42', '湖北省', '4203', '十堰市', '', '', '', '', '', '', 2, 1, ''), ('420302', '4203', '00,42,4203', '茅箭区', '42', '湖北省', '4203', '十堰市', '420302', '茅箭区', '', '', '', '', 3, 1, ''), ('420303', '4203', '00,42,4203', '张湾区', '42', '湖北省', '4203', '十堰市', '420303', '张湾区', '', '', '', '', 3, 1, ''), ('420304', '4203', '00,42,4203', '郧阳区', '42', '湖北省', '4203', '十堰市', '420304', '郧阳区', '', '', '', '', 3, 1, ''), ('420322', '4203', '00,42,4203', '郧西县', '42', '湖北省', '4203', '十堰市', '420322', '郧西县', '', '', '', '', 3, 1, ''), ('420323', '4203', '00,42,4203', '竹山县', '42', '湖北省', '4203', '十堰市', '420323', '竹山县', '', '', '', '', 3, 1, ''), ('420324', '4203', '00,42,4203', '竹溪县', '42', '湖北省', '4203', '十堰市', '420324', '竹溪县', '', '', '', '', 3, 1, ''), ('420325', '4203', '00,42,4203', '房县', '42', '湖北省', '4203', '十堰市', '420325', '房县', '', '', '', '', 3, 1, ''), ('420381', '4203', '00,42,4203', '丹江口市', '42', '湖北省', '4203', '十堰市', '420381', '丹江口市', '', '', '', '', 3, 1, ''), ('4205', '42', '00,42', '宜昌市', '42', '湖北省', '4205', '宜昌市', '', '', '', '', '', '', 2, 1, ''), ('420502', '4205', '00,42,4205', '西陵区', '42', '湖北省', '4205', '宜昌市', '420502', '西陵区', '', '', '', '', 3, 1, ''), ('420503', '4205', '00,42,4205', '伍家岗区', '42', '湖北省', '4205', '宜昌市', '420503', '伍家岗区', '', '', '', '', 3, 1, ''), ('420504', '4205', '00,42,4205', '点军区', '42', '湖北省', '4205', '宜昌市', '420504', '点军区', '', '', '', '', 3, 1, ''), ('420505', '4205', '00,42,4205', '猇亭区', '42', '湖北省', '4205', '宜昌市', '420505', '猇亭区', '', '', '', '', 3, 1, ''), ('420506', '4205', '00,42,4205', '夷陵区', '42', '湖北省', '4205', '宜昌市', '420506', '夷陵区', '', '', '', '', 3, 1, ''), ('420525', '4205', '00,42,4205', '远安县', '42', '湖北省', '4205', '宜昌市', '420525', '远安县', '', '', '', '', 3, 1, ''), ('420526', '4205', '00,42,4205', '兴山县', '42', '湖北省', '4205', '宜昌市', '420526', '兴山县', '', '', '', '', 3, 1, ''), ('420527', '4205', '00,42,4205', '秭归县', '42', '湖北省', '4205', '宜昌市', '420527', '秭归县', '', '', '', '', 3, 1, ''), ('420528', '4205', '00,42,4205', '长阳土家族自治县', '42', '湖北省', '4205', '宜昌市', '420528', '长阳土家族自治县', '', '', '', '', 3, 1, ''), ('420529', '4205', '00,42,4205', '五峰土家族自治县', '42', '湖北省', '4205', '宜昌市', '420529', '五峰土家族自治县', '', '', '', '', 3, 1, ''), ('420581', '4205', '00,42,4205', '宜都市', '42', '湖北省', '4205', '宜昌市', '420581', '宜都市', '', '', '', '', 3, 1, ''), ('420582', '4205', '00,42,4205', '当阳市', '42', '湖北省', '4205', '宜昌市', '420582', '当阳市', '', '', '', '', 3, 1, ''), ('420583', '4205', '00,42,4205', '枝江市', '42', '湖北省', '4205', '宜昌市', '420583', '枝江市', '', '', '', '', 3, 1, ''), ('4206', '42', '00,42', '襄阳市', '42', '湖北省', '4206', '襄阳市', '', '', '', '', '', '', 2, 1, ''), ('420602', '4206', '00,42,4206', '襄城区', '42', '湖北省', '4206', '襄阳市', '420602', '襄城区', '', '', '', '', 3, 1, ''), ('420606', '4206', '00,42,4206', '樊城区', '42', '湖北省', '4206', '襄阳市', '420606', '樊城区', '', '', '', '', 3, 1, ''), ('420607', '4206', '00,42,4206', '襄州区', '42', '湖北省', '4206', '襄阳市', '420607', '襄州区', '', '', '', '', 3, 1, ''), ('420624', '4206', '00,42,4206', '南漳县', '42', '湖北省', '4206', '襄阳市', '420624', '南漳县', '', '', '', '', 3, 1, ''), ('420625', '4206', '00,42,4206', '谷城县', '42', '湖北省', '4206', '襄阳市', '420625', '谷城县', '', '', '', '', 3, 1, ''), ('420626', '4206', '00,42,4206', '保康县', '42', '湖北省', '4206', '襄阳市', '420626', '保康县', '', '', '', '', 3, 1, ''), ('420682', '4206', '00,42,4206', '老河口市', '42', '湖北省', '4206', '襄阳市', '420682', '老河口市', '', '', '', '', 3, 1, ''), ('420683', '4206', '00,42,4206', '枣阳市', '42', '湖北省', '4206', '襄阳市', '420683', '枣阳市', '', '', '', '', 3, 1, ''), ('420684', '4206', '00,42,4206', '宜城市', '42', '湖北省', '4206', '襄阳市', '420684', '宜城市', '', '', '', '', 3, 1, ''), ('4207', '42', '00,42', '鄂州市', '42', '湖北省', '4207', '鄂州市', '', '', '', '', '', '', 2, 1, ''), ('420702', '4207', '00,42,4207', '梁子湖区', '42', '湖北省', '4207', '鄂州市', '420702', '梁子湖区', '', '', '', '', 3, 1, ''), ('420703', '4207', '00,42,4207', '华容区', '42', '湖北省', '4207', '鄂州市', '420703', '华容区', '', '', '', '', 3, 1, ''), ('420704', '4207', '00,42,4207', '鄂城区', '42', '湖北省', '4207', '鄂州市', '420704', '鄂城区', '', '', '', '', 3, 1, ''), ('4208', '42', '00,42', '荆门市', '42', '湖北省', '4208', '荆门市', '', '', '', '', '', '', 2, 1, ''), ('420802', '4208', '00,42,4208', '东宝区', '42', '湖北省', '4208', '荆门市', '420802', '东宝区', '', '', '', '', 3, 1, ''), ('420804', '4208', '00,42,4208', '掇刀区', '42', '湖北省', '4208', '荆门市', '420804', '掇刀区', '', '', '', '', 3, 1, ''), ('420822', '4208', '00,42,4208', '沙洋县', '42', '湖北省', '4208', '荆门市', '420822', '沙洋县', '', '', '', '', 3, 1, ''), ('420881', '4208', '00,42,4208', '钟祥市', '42', '湖北省', '4208', '荆门市', '420881', '钟祥市', '', '', '', '', 3, 1, ''), ('420882', '4208', '00,42,4208', '京山市', '42', '湖北省', '4208', '荆门市', '420882', '京山市', '', '', '', '', 3, 1, ''), ('4209', '42', '00,42', '孝感市', '42', '湖北省', '4209', '孝感市', '', '', '', '', '', '', 2, 1, ''), ('420902', '4209', '00,42,4209', '孝南区', '42', '湖北省', '4209', '孝感市', '420902', '孝南区', '', '', '', '', 3, 1, ''), ('420921', '4209', '00,42,4209', '孝昌县', '42', '湖北省', '4209', '孝感市', '420921', '孝昌县', '', '', '', '', 3, 1, ''), ('420922', '4209', '00,42,4209', '大悟县', '42', '湖北省', '4209', '孝感市', '420922', '大悟县', '', '', '', '', 3, 1, ''), ('420923', '4209', '00,42,4209', '云梦县', '42', '湖北省', '4209', '孝感市', '420923', '云梦县', '', '', '', '', 3, 1, ''), ('420981', '4209', '00,42,4209', '应城市', '42', '湖北省', '4209', '孝感市', '420981', '应城市', '', '', '', '', 3, 1, ''), ('420982', '4209', '00,42,4209', '安陆市', '42', '湖北省', '4209', '孝感市', '420982', '安陆市', '', '', '', '', 3, 1, ''), ('420984', '4209', '00,42,4209', '汉川市', '42', '湖北省', '4209', '孝感市', '420984', '汉川市', '', '', '', '', 3, 1, ''), ('4210', '42', '00,42', '荆州市', '42', '湖北省', '4210', '荆州市', '', '', '', '', '', '', 2, 1, ''), ('421002', '4210', '00,42,4210', '沙市区', '42', '湖北省', '4210', '荆州市', '421002', '沙市区', '', '', '', '', 3, 1, ''), ('421003', '4210', '00,42,4210', '荆州区', '42', '湖北省', '4210', '荆州市', '421003', '荆州区', '', '', '', '', 3, 1, ''), ('421022', '4210', '00,42,4210', '公安县', '42', '湖北省', '4210', '荆州市', '421022', '公安县', '', '', '', '', 3, 1, ''), ('421023', '4210', '00,42,4210', '监利县', '42', '湖北省', '4210', '荆州市', '421023', '监利县', '', '', '', '', 3, 1, ''), ('421024', '4210', '00,42,4210', '江陵县', '42', '湖北省', '4210', '荆州市', '421024', '江陵县', '', '', '', '', 3, 1, ''), ('421081', '4210', '00,42,4210', '石首市', '42', '湖北省', '4210', '荆州市', '421081', '石首市', '', '', '', '', 3, 1, ''), ('421083', '4210', '00,42,4210', '洪湖市', '42', '湖北省', '4210', '荆州市', '421083', '洪湖市', '', '', '', '', 3, 1, ''), ('421087', '4210', '00,42,4210', '松滋市', '42', '湖北省', '4210', '荆州市', '421087', '松滋市', '', '', '', '', 3, 1, ''), ('4211', '42', '00,42', '黄冈市', '42', '湖北省', '4211', '黄冈市', '', '', '', '', '', '', 2, 1, ''), ('421102', '4211', '00,42,4211', '黄州区', '42', '湖北省', '4211', '黄冈市', '421102', '黄州区', '', '', '', '', 3, 1, ''), ('421121', '4211', '00,42,4211', '团风县', '42', '湖北省', '4211', '黄冈市', '421121', '团风县', '', '', '', '', 3, 1, ''), ('421122', '4211', '00,42,4211', '红安县', '42', '湖北省', '4211', '黄冈市', '421122', '红安县', '', '', '', '', 3, 1, ''), ('421123', '4211', '00,42,4211', '罗田县', '42', '湖北省', '4211', '黄冈市', '421123', '罗田县', '', '', '', '', 3, 1, ''), ('421124', '4211', '00,42,4211', '英山县', '42', '湖北省', '4211', '黄冈市', '421124', '英山县', '', '', '', '', 3, 1, ''), ('421125', '4211', '00,42,4211', '浠水县', '42', '湖北省', '4211', '黄冈市', '421125', '浠水县', '', '', '', '', 3, 1, ''), ('421126', '4211', '00,42,4211', '蕲春县', '42', '湖北省', '4211', '黄冈市', '421126', '蕲春县', '', '', '', '', 3, 1, ''), ('421127', '4211', '00,42,4211', '黄梅县', '42', '湖北省', '4211', '黄冈市', '421127', '黄梅县', '', '', '', '', 3, 1, ''), ('421181', '4211', '00,42,4211', '麻城市', '42', '湖北省', '4211', '黄冈市', '421181', '麻城市', '', '', '', '', 3, 1, ''), ('421182', '4211', '00,42,4211', '武穴市', '42', '湖北省', '4211', '黄冈市', '421182', '武穴市', '', '', '', '', 3, 1, ''), ('4212', '42', '00,42', '咸宁市', '42', '湖北省', '4212', '咸宁市', '', '', '', '', '', '', 2, 1, ''), ('421202', '4212', '00,42,4212', '咸安区', '42', '湖北省', '4212', '咸宁市', '421202', '咸安区', '', '', '', '', 3, 1, ''), ('421221', '4212', '00,42,4212', '嘉鱼县', '42', '湖北省', '4212', '咸宁市', '421221', '嘉鱼县', '', '', '', '', 3, 1, ''), ('421222', '4212', '00,42,4212', '通城县', '42', '湖北省', '4212', '咸宁市', '421222', '通城县', '', '', '', '', 3, 1, ''), ('421223', '4212', '00,42,4212', '崇阳县', '42', '湖北省', '4212', '咸宁市', '421223', '崇阳县', '', '', '', '', 3, 1, ''), ('421224', '4212', '00,42,4212', '通山县', '42', '湖北省', '4212', '咸宁市', '421224', '通山县', '', '', '', '', 3, 1, ''), ('421281', '4212', '00,42,4212', '赤壁市', '42', '湖北省', '4212', '咸宁市', '421281', '赤壁市', '', '', '', '', 3, 1, ''), ('4213', '42', '00,42', '随州市', '42', '湖北省', '4213', '随州市', '', '', '', '', '', '', 2, 1, ''), ('421303', '4213', '00,42,4213', '曾都区', '42', '湖北省', '4213', '随州市', '421303', '曾都区', '', '', '', '', 3, 1, ''), ('421321', '4213', '00,42,4213', '随县', '42', '湖北省', '4213', '随州市', '421321', '随县', '', '', '', '', 3, 1, ''), ('421381', '4213', '00,42,4213', '广水市', '42', '湖北省', '4213', '随州市', '421381', '广水市', '', '', '', '', 3, 1, ''), ('4228', '42', '00,42', '恩施土家族苗族自治州', '42', '湖北省', '4228', '恩施土家族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('422801', '4228', '00,42,4228', '恩施市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422801', '恩施市', '', '', '', '', 3, 1, ''), ('422802', '4228', '00,42,4228', '利川市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422802', '利川市', '', '', '', '', 3, 1, ''), ('422822', '4228', '00,42,4228', '建始县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422822', '建始县', '', '', '', '', 3, 1, ''), ('422823', '4228', '00,42,4228', '巴东县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422823', '巴东县', '', '', '', '', 3, 1, ''), ('422825', '4228', '00,42,4228', '宣恩县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422825', '宣恩县', '', '', '', '', 3, 1, ''), ('422826', '4228', '00,42,4228', '咸丰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422826', '咸丰县', '', '', '', '', 3, 1, ''), ('422827', '4228', '00,42,4228', '来凤县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422827', '来凤县', '', '', '', '', 3, 1, ''), ('422828', '4228', '00,42,4228', '鹤峰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422828', '鹤峰县', '', '', '', '', 3, 1, ''), ('4290', '42', '00,42', '省直辖县级行政区', '42', '湖北省', '4290', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, ''), ('429004', '4290', '00,42,4290', '仙桃市', '42', '湖北省', '4290', '省直辖县级行政区', '429004', '仙桃市', '', '', '', '', 3, 1, ''), ('429005', '4290', '00,42,4290', '潜江市', '42', '湖北省', '4290', '省直辖县级行政区', '429005', '潜江市', '', '', '', '', 3, 1, ''), ('429006', '4290', '00,42,4290', '天门市', '42', '湖北省', '4290', '省直辖县级行政区', '429006', '天门市', '', '', '', '', 3, 1, ''), ('429021', '4290', '00,42,4290', '神农架林区', '42', '湖北省', '4290', '省直辖县级行政区', '429021', '神农架林区', '', '', '', '', 3, 1, ''), ('43', '00', '00', '湖南省', '43', '湖南省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4301', '43', '00,43', '长沙市', '43', '湖南省', '4301', '长沙市', '', '', '', '', '', '', 2, 1, ''), ('430102', '4301', '00,43,4301', '芙蓉区', '43', '湖南省', '4301', '长沙市', '430102', '芙蓉区', '', '', '', '', 3, 1, ''), ('430103', '4301', '00,43,4301', '天心区', '43', '湖南省', '4301', '长沙市', '430103', '天心区', '', '', '', '', 3, 1, ''), ('430104', '4301', '00,43,4301', '岳麓区', '43', '湖南省', '4301', '长沙市', '430104', '岳麓区', '', '', '', '', 3, 1, ''), ('430105', '4301', '00,43,4301', '开福区', '43', '湖南省', '4301', '长沙市', '430105', '开福区', '', '', '', '', 3, 1, ''), ('430111', '4301', '00,43,4301', '雨花区', '43', '湖南省', '4301', '长沙市', '430111', '雨花区', '', '', '', '', 3, 1, ''), ('430112', '4301', '00,43,4301', '望城区', '43', '湖南省', '4301', '长沙市', '430112', '望城区', '', '', '', '', 3, 1, ''), ('430121', '4301', '00,43,4301', '长沙县', '43', '湖南省', '4301', '长沙市', '430121', '长沙县', '', '', '', '', 3, 1, ''), ('430181', '4301', '00,43,4301', '浏阳市', '43', '湖南省', '4301', '长沙市', '430181', '浏阳市', '', '', '', '', 3, 1, ''), ('430182', '4301', '00,43,4301', '宁乡市', '43', '湖南省', '4301', '长沙市', '430182', '宁乡市', '', '', '', '', 3, 1, ''), ('4302', '43', '00,43', '株洲市', '43', '湖南省', '4302', '株洲市', '', '', '', '', '', '', 2, 1, ''), ('430202', '4302', '00,43,4302', '荷塘区', '43', '湖南省', '4302', '株洲市', '430202', '荷塘区', '', '', '', '', 3, 1, ''), ('430203', '4302', '00,43,4302', '芦淞区', '43', '湖南省', '4302', '株洲市', '430203', '芦淞区', '', '', '', '', 3, 1, ''), ('430204', '4302', '00,43,4302', '石峰区', '43', '湖南省', '4302', '株洲市', '430204', '石峰区', '', '', '', '', 3, 1, ''), ('430211', '4302', '00,43,4302', '天元区', '43', '湖南省', '4302', '株洲市', '430211', '天元区', '', '', '', '', 3, 1, ''), ('430212', '4302', '00,43,4302', '渌口区', '43', '湖南省', '4302', '株洲市', '430212', '渌口区', '', '', '', '', 3, 1, ''), ('430223', '4302', '00,43,4302', '攸县', '43', '湖南省', '4302', '株洲市', '430223', '攸县', '', '', '', '', 3, 1, ''), ('430224', '4302', '00,43,4302', '茶陵县', '43', '湖南省', '4302', '株洲市', '430224', '茶陵县', '', '', '', '', 3, 1, ''), ('430225', '4302', '00,43,4302', '炎陵县', '43', '湖南省', '4302', '株洲市', '430225', '炎陵县', '', '', '', '', 3, 1, ''), ('430281', '4302', '00,43,4302', '醴陵市', '43', '湖南省', '4302', '株洲市', '430281', '醴陵市', '', '', '', '', 3, 1, ''), ('4303', '43', '00,43', '湘潭市', '43', '湖南省', '4303', '湘潭市', '', '', '', '', '', '', 2, 1, ''), ('430302', '4303', '00,43,4303', '雨湖区', '43', '湖南省', '4303', '湘潭市', '430302', '雨湖区', '', '', '', '', 3, 1, ''), ('430304', '4303', '00,43,4303', '岳塘区', '43', '湖南省', '4303', '湘潭市', '430304', '岳塘区', '', '', '', '', 3, 1, ''), ('430321', '4303', '00,43,4303', '湘潭县', '43', '湖南省', '4303', '湘潭市', '430321', '湘潭县', '', '', '', '', 3, 1, ''), ('430381', '4303', '00,43,4303', '湘乡市', '43', '湖南省', '4303', '湘潭市', '430381', '湘乡市', '', '', '', '', 3, 1, ''), ('430382', '4303', '00,43,4303', '韶山市', '43', '湖南省', '4303', '湘潭市', '430382', '韶山市', '', '', '', '', 3, 1, ''), ('4304', '43', '00,43', '衡阳市', '43', '湖南省', '4304', '衡阳市', '', '', '', '', '', '', 2, 1, ''), ('430405', '4304', '00,43,4304', '珠晖区', '43', '湖南省', '4304', '衡阳市', '430405', '珠晖区', '', '', '', '', 3, 1, ''), ('430406', '4304', '00,43,4304', '雁峰区', '43', '湖南省', '4304', '衡阳市', '430406', '雁峰区', '', '', '', '', 3, 1, ''), ('430407', '4304', '00,43,4304', '石鼓区', '43', '湖南省', '4304', '衡阳市', '430407', '石鼓区', '', '', '', '', 3, 1, ''), ('430408', '4304', '00,43,4304', '蒸湘区', '43', '湖南省', '4304', '衡阳市', '430408', '蒸湘区', '', '', '', '', 3, 1, ''), ('430412', '4304', '00,43,4304', '南岳区', '43', '湖南省', '4304', '衡阳市', '430412', '南岳区', '', '', '', '', 3, 1, ''), ('430421', '4304', '00,43,4304', '衡阳县', '43', '湖南省', '4304', '衡阳市', '430421', '衡阳县', '', '', '', '', 3, 1, ''), ('430422', '4304', '00,43,4304', '衡南县', '43', '湖南省', '4304', '衡阳市', '430422', '衡南县', '', '', '', '', 3, 1, ''), ('430423', '4304', '00,43,4304', '衡山县', '43', '湖南省', '4304', '衡阳市', '430423', '衡山县', '', '', '', '', 3, 1, ''), ('430424', '4304', '00,43,4304', '衡东县', '43', '湖南省', '4304', '衡阳市', '430424', '衡东县', '', '', '', '', 3, 1, ''), ('430426', '4304', '00,43,4304', '祁东县', '43', '湖南省', '4304', '衡阳市', '430426', '祁东县', '', '', '', '', 3, 1, ''), ('430481', '4304', '00,43,4304', '耒阳市', '43', '湖南省', '4304', '衡阳市', '430481', '耒阳市', '', '', '', '', 3, 1, ''), ('430482', '4304', '00,43,4304', '常宁市', '43', '湖南省', '4304', '衡阳市', '430482', '常宁市', '', '', '', '', 3, 1, ''), ('4305', '43', '00,43', '邵阳市', '43', '湖南省', '4305', '邵阳市', '', '', '', '', '', '', 2, 1, ''), ('430502', '4305', '00,43,4305', '双清区', '43', '湖南省', '4305', '邵阳市', '430502', '双清区', '', '', '', '', 3, 1, ''), ('430503', '4305', '00,43,4305', '大祥区', '43', '湖南省', '4305', '邵阳市', '430503', '大祥区', '', '', '', '', 3, 1, ''), ('430511', '4305', '00,43,4305', '北塔区', '43', '湖南省', '4305', '邵阳市', '430511', '北塔区', '', '', '', '', 3, 1, ''), ('430522', '4305', '00,43,4305', '新邵县', '43', '湖南省', '4305', '邵阳市', '430522', '新邵县', '', '', '', '', 3, 1, ''), ('430523', '4305', '00,43,4305', '邵阳县', '43', '湖南省', '4305', '邵阳市', '430523', '邵阳县', '', '', '', '', 3, 1, ''), ('430524', '4305', '00,43,4305', '隆回县', '43', '湖南省', '4305', '邵阳市', '430524', '隆回县', '', '', '', '', 3, 1, ''), ('430525', '4305', '00,43,4305', '洞口县', '43', '湖南省', '4305', '邵阳市', '430525', '洞口县', '', '', '', '', 3, 1, ''), ('430527', '4305', '00,43,4305', '绥宁县', '43', '湖南省', '4305', '邵阳市', '430527', '绥宁县', '', '', '', '', 3, 1, ''), ('430528', '4305', '00,43,4305', '新宁县', '43', '湖南省', '4305', '邵阳市', '430528', '新宁县', '', '', '', '', 3, 1, ''), ('430529', '4305', '00,43,4305', '城步苗族自治县', '43', '湖南省', '4305', '邵阳市', '430529', '城步苗族自治县', '', '', '', '', 3, 1, ''), ('430581', '4305', '00,43,4305', '武冈市', '43', '湖南省', '4305', '邵阳市', '430581', '武冈市', '', '', '', '', 3, 1, ''), ('430582', '4305', '00,43,4305', '邵东市', '43', '湖南省', '4305', '邵阳市', '430582', '邵东市', '', '', '', '', 3, 1, ''), ('4306', '43', '00,43', '岳阳市', '43', '湖南省', '4306', '岳阳市', '', '', '', '', '', '', 2, 1, ''), ('430602', '4306', '00,43,4306', '岳阳楼区', '43', '湖南省', '4306', '岳阳市', '430602', '岳阳楼区', '', '', '', '', 3, 1, ''), ('430603', '4306', '00,43,4306', '云溪区', '43', '湖南省', '4306', '岳阳市', '430603', '云溪区', '', '', '', '', 3, 1, ''), ('430611', '4306', '00,43,4306', '君山区', '43', '湖南省', '4306', '岳阳市', '430611', '君山区', '', '', '', '', 3, 1, ''), ('430621', '4306', '00,43,4306', '岳阳县', '43', '湖南省', '4306', '岳阳市', '430621', '岳阳县', '', '', '', '', 3, 1, ''), ('430623', '4306', '00,43,4306', '华容县', '43', '湖南省', '4306', '岳阳市', '430623', '华容县', '', '', '', '', 3, 1, ''), ('430624', '4306', '00,43,4306', '湘阴县', '43', '湖南省', '4306', '岳阳市', '430624', '湘阴县', '', '', '', '', 3, 1, ''), ('430626', '4306', '00,43,4306', '平江县', '43', '湖南省', '4306', '岳阳市', '430626', '平江县', '', '', '', '', 3, 1, ''), ('430681', '4306', '00,43,4306', '汨罗市', '43', '湖南省', '4306', '岳阳市', '430681', '汨罗市', '', '', '', '', 3, 1, ''), ('430682', '4306', '00,43,4306', '临湘市', '43', '湖南省', '4306', '岳阳市', '430682', '临湘市', '', '', '', '', 3, 1, ''), ('4307', '43', '00,43', '常德市', '43', '湖南省', '4307', '常德市', '', '', '', '', '', '', 2, 1, ''), ('430702', '4307', '00,43,4307', '武陵区', '43', '湖南省', '4307', '常德市', '430702', '武陵区', '', '', '', '', 3, 1, ''), ('430703', '4307', '00,43,4307', '鼎城区', '43', '湖南省', '4307', '常德市', '430703', '鼎城区', '', '', '', '', 3, 1, ''), ('430721', '4307', '00,43,4307', '安乡县', '43', '湖南省', '4307', '常德市', '430721', '安乡县', '', '', '', '', 3, 1, ''), ('430722', '4307', '00,43,4307', '汉寿县', '43', '湖南省', '4307', '常德市', '430722', '汉寿县', '', '', '', '', 3, 1, ''), ('430723', '4307', '00,43,4307', '澧县', '43', '湖南省', '4307', '常德市', '430723', '澧县', '', '', '', '', 3, 1, ''), ('430724', '4307', '00,43,4307', '临澧县', '43', '湖南省', '4307', '常德市', '430724', '临澧县', '', '', '', '', 3, 1, ''), ('430725', '4307', '00,43,4307', '桃源县', '43', '湖南省', '4307', '常德市', '430725', '桃源县', '', '', '', '', 3, 1, ''), ('430726', '4307', '00,43,4307', '石门县', '43', '湖南省', '4307', '常德市', '430726', '石门县', '', '', '', '', 3, 1, ''), ('430781', '4307', '00,43,4307', '津市市', '43', '湖南省', '4307', '常德市', '430781', '津市市', '', '', '', '', 3, 1, ''), ('4308', '43', '00,43', '张家界市', '43', '湖南省', '4308', '张家界市', '', '', '', '', '', '', 2, 1, ''), ('430802', '4308', '00,43,4308', '永定区', '43', '湖南省', '4308', '张家界市', '430802', '永定区', '', '', '', '', 3, 1, ''), ('430811', '4308', '00,43,4308', '武陵源区', '43', '湖南省', '4308', '张家界市', '430811', '武陵源区', '', '', '', '', 3, 1, ''), ('430821', '4308', '00,43,4308', '慈利县', '43', '湖南省', '4308', '张家界市', '430821', '慈利县', '', '', '', '', 3, 1, ''), ('430822', '4308', '00,43,4308', '桑植县', '43', '湖南省', '4308', '张家界市', '430822', '桑植县', '', '', '', '', 3, 1, ''), ('4309', '43', '00,43', '益阳市', '43', '湖南省', '4309', '益阳市', '', '', '', '', '', '', 2, 1, ''), ('430902', '4309', '00,43,4309', '资阳区', '43', '湖南省', '4309', '益阳市', '430902', '资阳区', '', '', '', '', 3, 1, ''), ('430903', '4309', '00,43,4309', '赫山区', '43', '湖南省', '4309', '益阳市', '430903', '赫山区', '', '', '', '', 3, 1, ''), ('430921', '4309', '00,43,4309', '南县', '43', '湖南省', '4309', '益阳市', '430921', '南县', '', '', '', '', 3, 1, ''), ('430922', '4309', '00,43,4309', '桃江县', '43', '湖南省', '4309', '益阳市', '430922', '桃江县', '', '', '', '', 3, 1, ''), ('430923', '4309', '00,43,4309', '安化县', '43', '湖南省', '4309', '益阳市', '430923', '安化县', '', '', '', '', 3, 1, ''), ('430981', '4309', '00,43,4309', '沅江市', '43', '湖南省', '4309', '益阳市', '430981', '沅江市', '', '', '', '', 3, 1, ''), ('4310', '43', '00,43', '郴州市', '43', '湖南省', '4310', '郴州市', '', '', '', '', '', '', 2, 1, ''), ('431002', '4310', '00,43,4310', '北湖区', '43', '湖南省', '4310', '郴州市', '431002', '北湖区', '', '', '', '', 3, 1, ''), ('431003', '4310', '00,43,4310', '苏仙区', '43', '湖南省', '4310', '郴州市', '431003', '苏仙区', '', '', '', '', 3, 1, ''), ('431021', '4310', '00,43,4310', '桂阳县', '43', '湖南省', '4310', '郴州市', '431021', '桂阳县', '', '', '', '', 3, 1, ''), ('431022', '4310', '00,43,4310', '宜章县', '43', '湖南省', '4310', '郴州市', '431022', '宜章县', '', '', '', '', 3, 1, ''), ('431023', '4310', '00,43,4310', '永兴县', '43', '湖南省', '4310', '郴州市', '431023', '永兴县', '', '', '', '', 3, 1, ''), ('431024', '4310', '00,43,4310', '嘉禾县', '43', '湖南省', '4310', '郴州市', '431024', '嘉禾县', '', '', '', '', 3, 1, ''), ('431025', '4310', '00,43,4310', '临武县', '43', '湖南省', '4310', '郴州市', '431025', '临武县', '', '', '', '', 3, 1, ''), ('431026', '4310', '00,43,4310', '汝城县', '43', '湖南省', '4310', '郴州市', '431026', '汝城县', '', '', '', '', 3, 1, ''), ('431027', '4310', '00,43,4310', '桂东县', '43', '湖南省', '4310', '郴州市', '431027', '桂东县', '', '', '', '', 3, 1, ''), ('431028', '4310', '00,43,4310', '安仁县', '43', '湖南省', '4310', '郴州市', '431028', '安仁县', '', '', '', '', 3, 1, ''), ('431081', '4310', '00,43,4310', '资兴市', '43', '湖南省', '4310', '郴州市', '431081', '资兴市', '', '', '', '', 3, 1, ''), ('4311', '43', '00,43', '永州市', '43', '湖南省', '4311', '永州市', '', '', '', '', '', '', 2, 1, ''), ('431102', '4311', '00,43,4311', '零陵区', '43', '湖南省', '4311', '永州市', '431102', '零陵区', '', '', '', '', 3, 1, ''), ('431103', '4311', '00,43,4311', '冷水滩区', '43', '湖南省', '4311', '永州市', '431103', '冷水滩区', '', '', '', '', 3, 1, ''), ('431121', '4311', '00,43,4311', '祁阳县', '43', '湖南省', '4311', '永州市', '431121', '祁阳县', '', '', '', '', 3, 1, ''), ('431122', '4311', '00,43,4311', '东安县', '43', '湖南省', '4311', '永州市', '431122', '东安县', '', '', '', '', 3, 1, ''), ('431123', '4311', '00,43,4311', '双牌县', '43', '湖南省', '4311', '永州市', '431123', '双牌县', '', '', '', '', 3, 1, ''), ('431124', '4311', '00,43,4311', '道县', '43', '湖南省', '4311', '永州市', '431124', '道县', '', '', '', '', 3, 1, ''), ('431125', '4311', '00,43,4311', '江永县', '43', '湖南省', '4311', '永州市', '431125', '江永县', '', '', '', '', 3, 1, ''), ('431126', '4311', '00,43,4311', '宁远县', '43', '湖南省', '4311', '永州市', '431126', '宁远县', '', '', '', '', 3, 1, ''), ('431127', '4311', '00,43,4311', '蓝山县', '43', '湖南省', '4311', '永州市', '431127', '蓝山县', '', '', '', '', 3, 1, ''), ('431128', '4311', '00,43,4311', '新田县', '43', '湖南省', '4311', '永州市', '431128', '新田县', '', '', '', '', 3, 1, ''), ('431129', '4311', '00,43,4311', '江华瑶族自治县', '43', '湖南省', '4311', '永州市', '431129', '江华瑶族自治县', '', '', '', '', 3, 1, ''), ('4312', '43', '00,43', '怀化市', '43', '湖南省', '4312', '怀化市', '', '', '', '', '', '', 2, 1, ''), ('431202', '4312', '00,43,4312', '鹤城区', '43', '湖南省', '4312', '怀化市', '431202', '鹤城区', '', '', '', '', 3, 1, ''), ('431221', '4312', '00,43,4312', '中方县', '43', '湖南省', '4312', '怀化市', '431221', '中方县', '', '', '', '', 3, 1, ''), ('431222', '4312', '00,43,4312', '沅陵县', '43', '湖南省', '4312', '怀化市', '431222', '沅陵县', '', '', '', '', 3, 1, ''), ('431223', '4312', '00,43,4312', '辰溪县', '43', '湖南省', '4312', '怀化市', '431223', '辰溪县', '', '', '', '', 3, 1, ''), ('431224', '4312', '00,43,4312', '溆浦县', '43', '湖南省', '4312', '怀化市', '431224', '溆浦县', '', '', '', '', 3, 1, ''), ('431225', '4312', '00,43,4312', '会同县', '43', '湖南省', '4312', '怀化市', '431225', '会同县', '', '', '', '', 3, 1, ''), ('431226', '4312', '00,43,4312', '麻阳苗族自治县', '43', '湖南省', '4312', '怀化市', '431226', '麻阳苗族自治县', '', '', '', '', 3, 1, ''), ('431227', '4312', '00,43,4312', '新晃侗族自治县', '43', '湖南省', '4312', '怀化市', '431227', '新晃侗族自治县', '', '', '', '', 3, 1, ''), ('431228', '4312', '00,43,4312', '芷江侗族自治县', '43', '湖南省', '4312', '怀化市', '431228', '芷江侗族自治县', '', '', '', '', 3, 1, ''), ('431229', '4312', '00,43,4312', '靖州苗族侗族自治县', '43', '湖南省', '4312', '怀化市', '431229', '靖州苗族侗族自治县', '', '', '', '', 3, 1, ''), ('431230', '4312', '00,43,4312', '通道侗族自治县', '43', '湖南省', '4312', '怀化市', '431230', '通道侗族自治县', '', '', '', '', 3, 1, ''), ('431281', '4312', '00,43,4312', '洪江市', '43', '湖南省', '4312', '怀化市', '431281', '洪江市', '', '', '', '', 3, 1, ''), ('4313', '43', '00,43', '娄底市', '43', '湖南省', '4313', '娄底市', '', '', '', '', '', '', 2, 1, ''), ('431302', '4313', '00,43,4313', '娄星区', '43', '湖南省', '4313', '娄底市', '431302', '娄星区', '', '', '', '', 3, 1, ''), ('431321', '4313', '00,43,4313', '双峰县', '43', '湖南省', '4313', '娄底市', '431321', '双峰县', '', '', '', '', 3, 1, ''), ('431322', '4313', '00,43,4313', '新化县', '43', '湖南省', '4313', '娄底市', '431322', '新化县', '', '', '', '', 3, 1, ''), ('431381', '4313', '00,43,4313', '冷水江市', '43', '湖南省', '4313', '娄底市', '431381', '冷水江市', '', '', '', '', 3, 1, ''), ('431382', '4313', '00,43,4313', '涟源市', '43', '湖南省', '4313', '娄底市', '431382', '涟源市', '', '', '', '', 3, 1, ''), ('4331', '43', '00,43', '湘西土家族苗族自治州', '43', '湖南省', '4331', '湘西土家族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('433101', '4331', '00,43,4331', '吉首市', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433101', '吉首市', '', '', '', '', 3, 1, ''), ('433122', '4331', '00,43,4331', '泸溪县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433122', '泸溪县', '', '', '', '', 3, 1, ''), ('433123', '4331', '00,43,4331', '凤凰县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433123', '凤凰县', '', '', '', '', 3, 1, ''), ('433124', '4331', '00,43,4331', '花垣县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433124', '花垣县', '', '', '', '', 3, 1, ''), ('433125', '4331', '00,43,4331', '保靖县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433125', '保靖县', '', '', '', '', 3, 1, ''), ('433126', '4331', '00,43,4331', '古丈县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433126', '古丈县', '', '', '', '', 3, 1, ''), ('433127', '4331', '00,43,4331', '永顺县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433127', '永顺县', '', '', '', '', 3, 1, ''), ('433130', '4331', '00,43,4331', '龙山县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433130', '龙山县', '', '', '', '', 3, 1, ''), ('44', '00', '00', '广东省', '44', '广东省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4401', '44', '00,44', '广州市', '44', '广东省', '4401', '广州市', '', '', '', '', '', '', 2, 1, ''), ('440103', '4401', '00,44,4401', '荔湾区', '44', '广东省', '4401', '广州市', '440103', '荔湾区', '', '', '', '', 3, 1, ''), ('440104', '4401', '00,44,4401', '越秀区', '44', '广东省', '4401', '广州市', '440104', '越秀区', '', '', '', '', 3, 1, ''), ('440105', '4401', '00,44,4401', '海珠区', '44', '广东省', '4401', '广州市', '440105', '海珠区', '', '', '', '', 3, 1, ''), ('440106', '4401', '00,44,4401', '天河区', '44', '广东省', '4401', '广州市', '440106', '天河区', '', '', '', '', 3, 1, ''); +INSERT INTO `blade_region` VALUES ('440111', '4401', '00,44,4401', '白云区', '44', '广东省', '4401', '广州市', '440111', '白云区', '', '', '', '', 3, 1, ''), ('440112', '4401', '00,44,4401', '黄埔区', '44', '广东省', '4401', '广州市', '440112', '黄埔区', '', '', '', '', 3, 1, ''), ('440113', '4401', '00,44,4401', '番禺区', '44', '广东省', '4401', '广州市', '440113', '番禺区', '', '', '', '', 3, 1, ''), ('440114', '4401', '00,44,4401', '花都区', '44', '广东省', '4401', '广州市', '440114', '花都区', '', '', '', '', 3, 1, ''), ('440115', '4401', '00,44,4401', '南沙区', '44', '广东省', '4401', '广州市', '440115', '南沙区', '', '', '', '', 3, 1, ''), ('440117', '4401', '00,44,4401', '从化区', '44', '广东省', '4401', '广州市', '440117', '从化区', '', '', '', '', 3, 1, ''), ('440118', '4401', '00,44,4401', '增城区', '44', '广东省', '4401', '广州市', '440118', '增城区', '', '', '', '', 3, 1, ''), ('4402', '44', '00,44', '韶关市', '44', '广东省', '4402', '韶关市', '', '', '', '', '', '', 2, 1, ''), ('440203', '4402', '00,44,4402', '武江区', '44', '广东省', '4402', '韶关市', '440203', '武江区', '', '', '', '', 3, 1, ''), ('440204', '4402', '00,44,4402', '浈江区', '44', '广东省', '4402', '韶关市', '440204', '浈江区', '', '', '', '', 3, 1, ''), ('440205', '4402', '00,44,4402', '曲江区', '44', '广东省', '4402', '韶关市', '440205', '曲江区', '', '', '', '', 3, 1, ''), ('440222', '4402', '00,44,4402', '始兴县', '44', '广东省', '4402', '韶关市', '440222', '始兴县', '', '', '', '', 3, 1, ''), ('440224', '4402', '00,44,4402', '仁化县', '44', '广东省', '4402', '韶关市', '440224', '仁化县', '', '', '', '', 3, 1, ''), ('440229', '4402', '00,44,4402', '翁源县', '44', '广东省', '4402', '韶关市', '440229', '翁源县', '', '', '', '', 3, 1, ''), ('440232', '4402', '00,44,4402', '乳源瑶族自治县', '44', '广东省', '4402', '韶关市', '440232', '乳源瑶族自治县', '', '', '', '', 3, 1, ''), ('440233', '4402', '00,44,4402', '新丰县', '44', '广东省', '4402', '韶关市', '440233', '新丰县', '', '', '', '', 3, 1, ''), ('440281', '4402', '00,44,4402', '乐昌市', '44', '广东省', '4402', '韶关市', '440281', '乐昌市', '', '', '', '', 3, 1, ''), ('440282', '4402', '00,44,4402', '南雄市', '44', '广东省', '4402', '韶关市', '440282', '南雄市', '', '', '', '', 3, 1, ''), ('4403', '44', '00,44', '深圳市', '44', '广东省', '4403', '深圳市', '', '', '', '', '', '', 2, 1, ''), ('440303', '4403', '00,44,4403', '罗湖区', '44', '广东省', '4403', '深圳市', '440303', '罗湖区', '', '', '', '', 3, 1, ''), ('440304', '4403', '00,44,4403', '福田区', '44', '广东省', '4403', '深圳市', '440304', '福田区', '', '', '', '', 3, 1, ''), ('440305', '4403', '00,44,4403', '南山区', '44', '广东省', '4403', '深圳市', '440305', '南山区', '', '', '', '', 3, 1, ''), ('440306', '4403', '00,44,4403', '宝安区', '44', '广东省', '4403', '深圳市', '440306', '宝安区', '', '', '', '', 3, 1, ''), ('440307', '4403', '00,44,4403', '龙岗区', '44', '广东省', '4403', '深圳市', '440307', '龙岗区', '', '', '', '', 3, 1, ''), ('440308', '4403', '00,44,4403', '盐田区', '44', '广东省', '4403', '深圳市', '440308', '盐田区', '', '', '', '', 3, 1, ''), ('440309', '4403', '00,44,4403', '龙华区', '44', '广东省', '4403', '深圳市', '440309', '龙华区', '', '', '', '', 3, 1, ''), ('440310', '4403', '00,44,4403', '坪山区', '44', '广东省', '4403', '深圳市', '440310', '坪山区', '', '', '', '', 3, 1, ''), ('440311', '4403', '00,44,4403', '光明区', '44', '广东省', '4403', '深圳市', '440311', '光明区', '', '', '', '', 3, 1, ''), ('4404', '44', '00,44', '珠海市', '44', '广东省', '4404', '珠海市', '', '', '', '', '', '', 2, 1, ''), ('440402', '4404', '00,44,4404', '香洲区', '44', '广东省', '4404', '珠海市', '440402', '香洲区', '', '', '', '', 3, 1, ''), ('440403', '4404', '00,44,4404', '斗门区', '44', '广东省', '4404', '珠海市', '440403', '斗门区', '', '', '', '', 3, 1, ''), ('440404', '4404', '00,44,4404', '金湾区', '44', '广东省', '4404', '珠海市', '440404', '金湾区', '', '', '', '', 3, 1, ''), ('4405', '44', '00,44', '汕头市', '44', '广东省', '4405', '汕头市', '', '', '', '', '', '', 2, 1, ''), ('440507', '4405', '00,44,4405', '龙湖区', '44', '广东省', '4405', '汕头市', '440507', '龙湖区', '', '', '', '', 3, 1, ''), ('440511', '4405', '00,44,4405', '金平区', '44', '广东省', '4405', '汕头市', '440511', '金平区', '', '', '', '', 3, 1, ''), ('440512', '4405', '00,44,4405', '濠江区', '44', '广东省', '4405', '汕头市', '440512', '濠江区', '', '', '', '', 3, 1, ''), ('440513', '4405', '00,44,4405', '潮阳区', '44', '广东省', '4405', '汕头市', '440513', '潮阳区', '', '', '', '', 3, 1, ''), ('440514', '4405', '00,44,4405', '潮南区', '44', '广东省', '4405', '汕头市', '440514', '潮南区', '', '', '', '', 3, 1, ''), ('440515', '4405', '00,44,4405', '澄海区', '44', '广东省', '4405', '汕头市', '440515', '澄海区', '', '', '', '', 3, 1, ''), ('440523', '4405', '00,44,4405', '南澳县', '44', '广东省', '4405', '汕头市', '440523', '南澳县', '', '', '', '', 3, 1, ''), ('4406', '44', '00,44', '佛山市', '44', '广东省', '4406', '佛山市', '', '', '', '', '', '', 2, 1, ''), ('440604', '4406', '00,44,4406', '禅城区', '44', '广东省', '4406', '佛山市', '440604', '禅城区', '', '', '', '', 3, 1, ''), ('440605', '4406', '00,44,4406', '南海区', '44', '广东省', '4406', '佛山市', '440605', '南海区', '', '', '', '', 3, 1, ''), ('440606', '4406', '00,44,4406', '顺德区', '44', '广东省', '4406', '佛山市', '440606', '顺德区', '', '', '', '', 3, 1, ''), ('440607', '4406', '00,44,4406', '三水区', '44', '广东省', '4406', '佛山市', '440607', '三水区', '', '', '', '', 3, 1, ''), ('440608', '4406', '00,44,4406', '高明区', '44', '广东省', '4406', '佛山市', '440608', '高明区', '', '', '', '', 3, 1, ''), ('4407', '44', '00,44', '江门市', '44', '广东省', '4407', '江门市', '', '', '', '', '', '', 2, 1, ''), ('440703', '4407', '00,44,4407', '蓬江区', '44', '广东省', '4407', '江门市', '440703', '蓬江区', '', '', '', '', 3, 1, ''), ('440704', '4407', '00,44,4407', '江海区', '44', '广东省', '4407', '江门市', '440704', '江海区', '', '', '', '', 3, 1, ''), ('440705', '4407', '00,44,4407', '新会区', '44', '广东省', '4407', '江门市', '440705', '新会区', '', '', '', '', 3, 1, ''), ('440781', '4407', '00,44,4407', '台山市', '44', '广东省', '4407', '江门市', '440781', '台山市', '', '', '', '', 3, 1, ''), ('440783', '4407', '00,44,4407', '开平市', '44', '广东省', '4407', '江门市', '440783', '开平市', '', '', '', '', 3, 1, ''), ('440784', '4407', '00,44,4407', '鹤山市', '44', '广东省', '4407', '江门市', '440784', '鹤山市', '', '', '', '', 3, 1, ''), ('440785', '4407', '00,44,4407', '恩平市', '44', '广东省', '4407', '江门市', '440785', '恩平市', '', '', '', '', 3, 1, ''), ('4408', '44', '00,44', '湛江市', '44', '广东省', '4408', '湛江市', '', '', '', '', '', '', 2, 1, ''), ('440802', '4408', '00,44,4408', '赤坎区', '44', '广东省', '4408', '湛江市', '440802', '赤坎区', '', '', '', '', 3, 1, ''), ('440803', '4408', '00,44,4408', '霞山区', '44', '广东省', '4408', '湛江市', '440803', '霞山区', '', '', '', '', 3, 1, ''), ('440804', '4408', '00,44,4408', '坡头区', '44', '广东省', '4408', '湛江市', '440804', '坡头区', '', '', '', '', 3, 1, ''), ('440811', '4408', '00,44,4408', '麻章区', '44', '广东省', '4408', '湛江市', '440811', '麻章区', '', '', '', '', 3, 1, ''), ('440823', '4408', '00,44,4408', '遂溪县', '44', '广东省', '4408', '湛江市', '440823', '遂溪县', '', '', '', '', 3, 1, ''), ('440825', '4408', '00,44,4408', '徐闻县', '44', '广东省', '4408', '湛江市', '440825', '徐闻县', '', '', '', '', 3, 1, ''), ('440881', '4408', '00,44,4408', '廉江市', '44', '广东省', '4408', '湛江市', '440881', '廉江市', '', '', '', '', 3, 1, ''), ('440882', '4408', '00,44,4408', '雷州市', '44', '广东省', '4408', '湛江市', '440882', '雷州市', '', '', '', '', 3, 1, ''), ('440883', '4408', '00,44,4408', '吴川市', '44', '广东省', '4408', '湛江市', '440883', '吴川市', '', '', '', '', 3, 1, ''), ('4409', '44', '00,44', '茂名市', '44', '广东省', '4409', '茂名市', '', '', '', '', '', '', 2, 1, ''), ('440902', '4409', '00,44,4409', '茂南区', '44', '广东省', '4409', '茂名市', '440902', '茂南区', '', '', '', '', 3, 1, ''), ('440904', '4409', '00,44,4409', '电白区', '44', '广东省', '4409', '茂名市', '440904', '电白区', '', '', '', '', 3, 1, ''), ('440981', '4409', '00,44,4409', '高州市', '44', '广东省', '4409', '茂名市', '440981', '高州市', '', '', '', '', 3, 1, ''), ('440982', '4409', '00,44,4409', '化州市', '44', '广东省', '4409', '茂名市', '440982', '化州市', '', '', '', '', 3, 1, ''), ('440983', '4409', '00,44,4409', '信宜市', '44', '广东省', '4409', '茂名市', '440983', '信宜市', '', '', '', '', 3, 1, ''), ('4412', '44', '00,44', '肇庆市', '44', '广东省', '4412', '肇庆市', '', '', '', '', '', '', 2, 1, ''), ('441202', '4412', '00,44,4412', '端州区', '44', '广东省', '4412', '肇庆市', '441202', '端州区', '', '', '', '', 3, 1, ''), ('441203', '4412', '00,44,4412', '鼎湖区', '44', '广东省', '4412', '肇庆市', '441203', '鼎湖区', '', '', '', '', 3, 1, ''), ('441204', '4412', '00,44,4412', '高要区', '44', '广东省', '4412', '肇庆市', '441204', '高要区', '', '', '', '', 3, 1, ''), ('441223', '4412', '00,44,4412', '广宁县', '44', '广东省', '4412', '肇庆市', '441223', '广宁县', '', '', '', '', 3, 1, ''), ('441224', '4412', '00,44,4412', '怀集县', '44', '广东省', '4412', '肇庆市', '441224', '怀集县', '', '', '', '', 3, 1, ''), ('441225', '4412', '00,44,4412', '封开县', '44', '广东省', '4412', '肇庆市', '441225', '封开县', '', '', '', '', 3, 1, ''), ('441226', '4412', '00,44,4412', '德庆县', '44', '广东省', '4412', '肇庆市', '441226', '德庆县', '', '', '', '', 3, 1, ''), ('441284', '4412', '00,44,4412', '四会市', '44', '广东省', '4412', '肇庆市', '441284', '四会市', '', '', '', '', 3, 1, ''), ('4413', '44', '00,44', '惠州市', '44', '广东省', '4413', '惠州市', '', '', '', '', '', '', 2, 1, ''), ('441302', '4413', '00,44,4413', '惠城区', '44', '广东省', '4413', '惠州市', '441302', '惠城区', '', '', '', '', 3, 1, ''), ('441303', '4413', '00,44,4413', '惠阳区', '44', '广东省', '4413', '惠州市', '441303', '惠阳区', '', '', '', '', 3, 1, ''), ('441322', '4413', '00,44,4413', '博罗县', '44', '广东省', '4413', '惠州市', '441322', '博罗县', '', '', '', '', 3, 1, ''), ('441323', '4413', '00,44,4413', '惠东县', '44', '广东省', '4413', '惠州市', '441323', '惠东县', '', '', '', '', 3, 1, ''), ('441324', '4413', '00,44,4413', '龙门县', '44', '广东省', '4413', '惠州市', '441324', '龙门县', '', '', '', '', 3, 1, ''), ('4414', '44', '00,44', '梅州市', '44', '广东省', '4414', '梅州市', '', '', '', '', '', '', 2, 1, ''), ('441402', '4414', '00,44,4414', '梅江区', '44', '广东省', '4414', '梅州市', '441402', '梅江区', '', '', '', '', 3, 1, ''), ('441403', '4414', '00,44,4414', '梅县区', '44', '广东省', '4414', '梅州市', '441403', '梅县区', '', '', '', '', 3, 1, ''), ('441422', '4414', '00,44,4414', '大埔县', '44', '广东省', '4414', '梅州市', '441422', '大埔县', '', '', '', '', 3, 1, ''), ('441423', '4414', '00,44,4414', '丰顺县', '44', '广东省', '4414', '梅州市', '441423', '丰顺县', '', '', '', '', 3, 1, ''), ('441424', '4414', '00,44,4414', '五华县', '44', '广东省', '4414', '梅州市', '441424', '五华县', '', '', '', '', 3, 1, ''), ('441426', '4414', '00,44,4414', '平远县', '44', '广东省', '4414', '梅州市', '441426', '平远县', '', '', '', '', 3, 1, ''), ('441427', '4414', '00,44,4414', '蕉岭县', '44', '广东省', '4414', '梅州市', '441427', '蕉岭县', '', '', '', '', 3, 1, ''), ('441481', '4414', '00,44,4414', '兴宁市', '44', '广东省', '4414', '梅州市', '441481', '兴宁市', '', '', '', '', 3, 1, ''), ('4415', '44', '00,44', '汕尾市', '44', '广东省', '4415', '汕尾市', '', '', '', '', '', '', 2, 1, ''), ('441502', '4415', '00,44,4415', '城区', '44', '广东省', '4415', '汕尾市', '441502', '城区', '', '', '', '', 3, 1, ''), ('441521', '4415', '00,44,4415', '海丰县', '44', '广东省', '4415', '汕尾市', '441521', '海丰县', '', '', '', '', 3, 1, ''), ('441523', '4415', '00,44,4415', '陆河县', '44', '广东省', '4415', '汕尾市', '441523', '陆河县', '', '', '', '', 3, 1, ''), ('441581', '4415', '00,44,4415', '陆丰市', '44', '广东省', '4415', '汕尾市', '441581', '陆丰市', '', '', '', '', 3, 1, ''), ('4416', '44', '00,44', '河源市', '44', '广东省', '4416', '河源市', '', '', '', '', '', '', 2, 1, ''), ('441602', '4416', '00,44,4416', '源城区', '44', '广东省', '4416', '河源市', '441602', '源城区', '', '', '', '', 3, 1, ''), ('441621', '4416', '00,44,4416', '紫金县', '44', '广东省', '4416', '河源市', '441621', '紫金县', '', '', '', '', 3, 1, ''), ('441622', '4416', '00,44,4416', '龙川县', '44', '广东省', '4416', '河源市', '441622', '龙川县', '', '', '', '', 3, 1, ''), ('441623', '4416', '00,44,4416', '连平县', '44', '广东省', '4416', '河源市', '441623', '连平县', '', '', '', '', 3, 1, ''), ('441624', '4416', '00,44,4416', '和平县', '44', '广东省', '4416', '河源市', '441624', '和平县', '', '', '', '', 3, 1, ''), ('441625', '4416', '00,44,4416', '东源县', '44', '广东省', '4416', '河源市', '441625', '东源县', '', '', '', '', 3, 1, ''), ('4417', '44', '00,44', '阳江市', '44', '广东省', '4417', '阳江市', '', '', '', '', '', '', 2, 1, ''), ('441702', '4417', '00,44,4417', '江城区', '44', '广东省', '4417', '阳江市', '441702', '江城区', '', '', '', '', 3, 1, ''), ('441704', '4417', '00,44,4417', '阳东区', '44', '广东省', '4417', '阳江市', '441704', '阳东区', '', '', '', '', 3, 1, ''), ('441721', '4417', '00,44,4417', '阳西县', '44', '广东省', '4417', '阳江市', '441721', '阳西县', '', '', '', '', 3, 1, ''), ('441781', '4417', '00,44,4417', '阳春市', '44', '广东省', '4417', '阳江市', '441781', '阳春市', '', '', '', '', 3, 1, ''), ('4418', '44', '00,44', '清远市', '44', '广东省', '4418', '清远市', '', '', '', '', '', '', 2, 1, ''), ('441802', '4418', '00,44,4418', '清城区', '44', '广东省', '4418', '清远市', '441802', '清城区', '', '', '', '', 3, 1, ''), ('441803', '4418', '00,44,4418', '清新区', '44', '广东省', '4418', '清远市', '441803', '清新区', '', '', '', '', 3, 1, ''), ('441821', '4418', '00,44,4418', '佛冈县', '44', '广东省', '4418', '清远市', '441821', '佛冈县', '', '', '', '', 3, 1, ''), ('441823', '4418', '00,44,4418', '阳山县', '44', '广东省', '4418', '清远市', '441823', '阳山县', '', '', '', '', 3, 1, ''), ('441825', '4418', '00,44,4418', '连山壮族瑶族自治县', '44', '广东省', '4418', '清远市', '441825', '连山壮族瑶族自治县', '', '', '', '', 3, 1, ''), ('441826', '4418', '00,44,4418', '连南瑶族自治县', '44', '广东省', '4418', '清远市', '441826', '连南瑶族自治县', '', '', '', '', 3, 1, ''), ('441881', '4418', '00,44,4418', '英德市', '44', '广东省', '4418', '清远市', '441881', '英德市', '', '', '', '', 3, 1, ''), ('441882', '4418', '00,44,4418', '连州市', '44', '广东省', '4418', '清远市', '441882', '连州市', '', '', '', '', 3, 1, ''), ('4419', '44', '00,44', '东莞市', '44', '广东省', '4419', '东莞市', '', '', '', '', '', '', 2, 1, ''), ('441900', '4419', '00,44,4419', '东莞市', '44', '广东省', '4419', '东莞市', '441900', '东莞市', '', '', '', '', 3, 1, ''), ('4420', '44', '00,44', '中山市', '44', '广东省', '4420', '中山市', '', '', '', '', '', '', 2, 1, ''), ('442000', '4420', '00,44,4420', '中山市', '44', '广东省', '4420', '中山市', '442000', '中山市', '', '', '', '', 3, 1, ''), ('4451', '44', '00,44', '潮州市', '44', '广东省', '4451', '潮州市', '', '', '', '', '', '', 2, 1, ''), ('445102', '4451', '00,44,4451', '湘桥区', '44', '广东省', '4451', '潮州市', '445102', '湘桥区', '', '', '', '', 3, 1, ''), ('445103', '4451', '00,44,4451', '潮安区', '44', '广东省', '4451', '潮州市', '445103', '潮安区', '', '', '', '', 3, 1, ''), ('445122', '4451', '00,44,4451', '饶平县', '44', '广东省', '4451', '潮州市', '445122', '饶平县', '', '', '', '', 3, 1, ''), ('4452', '44', '00,44', '揭阳市', '44', '广东省', '4452', '揭阳市', '', '', '', '', '', '', 2, 1, ''), ('445202', '4452', '00,44,4452', '榕城区', '44', '广东省', '4452', '揭阳市', '445202', '榕城区', '', '', '', '', 3, 1, ''), ('445203', '4452', '00,44,4452', '揭东区', '44', '广东省', '4452', '揭阳市', '445203', '揭东区', '', '', '', '', 3, 1, ''), ('445222', '4452', '00,44,4452', '揭西县', '44', '广东省', '4452', '揭阳市', '445222', '揭西县', '', '', '', '', 3, 1, ''), ('445224', '4452', '00,44,4452', '惠来县', '44', '广东省', '4452', '揭阳市', '445224', '惠来县', '', '', '', '', 3, 1, ''), ('445281', '4452', '00,44,4452', '普宁市', '44', '广东省', '4452', '揭阳市', '445281', '普宁市', '', '', '', '', 3, 1, ''), ('4453', '44', '00,44', '云浮市', '44', '广东省', '4453', '云浮市', '', '', '', '', '', '', 2, 1, ''), ('445302', '4453', '00,44,4453', '云城区', '44', '广东省', '4453', '云浮市', '445302', '云城区', '', '', '', '', 3, 1, ''), ('445303', '4453', '00,44,4453', '云安区', '44', '广东省', '4453', '云浮市', '445303', '云安区', '', '', '', '', 3, 1, ''), ('445321', '4453', '00,44,4453', '新兴县', '44', '广东省', '4453', '云浮市', '445321', '新兴县', '', '', '', '', 3, 1, ''), ('445322', '4453', '00,44,4453', '郁南县', '44', '广东省', '4453', '云浮市', '445322', '郁南县', '', '', '', '', 3, 1, ''), ('445381', '4453', '00,44,4453', '罗定市', '44', '广东省', '4453', '云浮市', '445381', '罗定市', '', '', '', '', 3, 1, ''), ('45', '00', '00', '广西壮族自治区', '45', '广西壮族自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('4501', '45', '00,45', '南宁市', '45', '广西壮族自治区', '4501', '南宁市', '', '', '', '', '', '', 2, 1, ''), ('450102', '4501', '00,45,4501', '兴宁区', '45', '广西壮族自治区', '4501', '南宁市', '450102', '兴宁区', '', '', '', '', 3, 1, ''), ('450103', '4501', '00,45,4501', '青秀区', '45', '广西壮族自治区', '4501', '南宁市', '450103', '青秀区', '', '', '', '', 3, 1, ''), ('450105', '4501', '00,45,4501', '江南区', '45', '广西壮族自治区', '4501', '南宁市', '450105', '江南区', '', '', '', '', 3, 1, ''), ('450107', '4501', '00,45,4501', '西乡塘区', '45', '广西壮族自治区', '4501', '南宁市', '450107', '西乡塘区', '', '', '', '', 3, 1, ''), ('450108', '4501', '00,45,4501', '良庆区', '45', '广西壮族自治区', '4501', '南宁市', '450108', '良庆区', '', '', '', '', 3, 1, ''), ('450109', '4501', '00,45,4501', '邕宁区', '45', '广西壮族自治区', '4501', '南宁市', '450109', '邕宁区', '', '', '', '', 3, 1, ''), ('450110', '4501', '00,45,4501', '武鸣区', '45', '广西壮族自治区', '4501', '南宁市', '450110', '武鸣区', '', '', '', '', 3, 1, ''), ('450123', '4501', '00,45,4501', '隆安县', '45', '广西壮族自治区', '4501', '南宁市', '450123', '隆安县', '', '', '', '', 3, 1, ''), ('450124', '4501', '00,45,4501', '马山县', '45', '广西壮族自治区', '4501', '南宁市', '450124', '马山县', '', '', '', '', 3, 1, ''), ('450125', '4501', '00,45,4501', '上林县', '45', '广西壮族自治区', '4501', '南宁市', '450125', '上林县', '', '', '', '', 3, 1, ''), ('450126', '4501', '00,45,4501', '宾阳县', '45', '广西壮族自治区', '4501', '南宁市', '450126', '宾阳县', '', '', '', '', 3, 1, ''), ('450127', '4501', '00,45,4501', '横县', '45', '广西壮族自治区', '4501', '南宁市', '450127', '横县', '', '', '', '', 3, 1, ''), ('4502', '45', '00,45', '柳州市', '45', '广西壮族自治区', '4502', '柳州市', '', '', '', '', '', '', 2, 1, ''), ('450202', '4502', '00,45,4502', '城中区', '45', '广西壮族自治区', '4502', '柳州市', '450202', '城中区', '', '', '', '', 3, 1, ''), ('450203', '4502', '00,45,4502', '鱼峰区', '45', '广西壮族自治区', '4502', '柳州市', '450203', '鱼峰区', '', '', '', '', 3, 1, ''), ('450204', '4502', '00,45,4502', '柳南区', '45', '广西壮族自治区', '4502', '柳州市', '450204', '柳南区', '', '', '', '', 3, 1, ''), ('450205', '4502', '00,45,4502', '柳北区', '45', '广西壮族自治区', '4502', '柳州市', '450205', '柳北区', '', '', '', '', 3, 1, ''), ('450206', '4502', '00,45,4502', '柳江区', '45', '广西壮族自治区', '4502', '柳州市', '450206', '柳江区', '', '', '', '', 3, 1, ''), ('450222', '4502', '00,45,4502', '柳城县', '45', '广西壮族自治区', '4502', '柳州市', '450222', '柳城县', '', '', '', '', 3, 1, ''), ('450223', '4502', '00,45,4502', '鹿寨县', '45', '广西壮族自治区', '4502', '柳州市', '450223', '鹿寨县', '', '', '', '', 3, 1, ''), ('450224', '4502', '00,45,4502', '融安县', '45', '广西壮族自治区', '4502', '柳州市', '450224', '融安县', '', '', '', '', 3, 1, ''), ('450225', '4502', '00,45,4502', '融水苗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450225', '融水苗族自治县', '', '', '', '', 3, 1, ''), ('450226', '4502', '00,45,4502', '三江侗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450226', '三江侗族自治县', '', '', '', '', 3, 1, ''), ('4503', '45', '00,45', '桂林市', '45', '广西壮族自治区', '4503', '桂林市', '', '', '', '', '', '', 2, 1, ''), ('450302', '4503', '00,45,4503', '秀峰区', '45', '广西壮族自治区', '4503', '桂林市', '450302', '秀峰区', '', '', '', '', 3, 1, ''), ('450303', '4503', '00,45,4503', '叠彩区', '45', '广西壮族自治区', '4503', '桂林市', '450303', '叠彩区', '', '', '', '', 3, 1, ''), ('450304', '4503', '00,45,4503', '象山区', '45', '广西壮族自治区', '4503', '桂林市', '450304', '象山区', '', '', '', '', 3, 1, ''), ('450305', '4503', '00,45,4503', '七星区', '45', '广西壮族自治区', '4503', '桂林市', '450305', '七星区', '', '', '', '', 3, 1, ''), ('450311', '4503', '00,45,4503', '雁山区', '45', '广西壮族自治区', '4503', '桂林市', '450311', '雁山区', '', '', '', '', 3, 1, ''), ('450312', '4503', '00,45,4503', '临桂区', '45', '广西壮族自治区', '4503', '桂林市', '450312', '临桂区', '', '', '', '', 3, 1, ''), ('450321', '4503', '00,45,4503', '阳朔县', '45', '广西壮族自治区', '4503', '桂林市', '450321', '阳朔县', '', '', '', '', 3, 1, ''), ('450323', '4503', '00,45,4503', '灵川县', '45', '广西壮族自治区', '4503', '桂林市', '450323', '灵川县', '', '', '', '', 3, 1, ''), ('450324', '4503', '00,45,4503', '全州县', '45', '广西壮族自治区', '4503', '桂林市', '450324', '全州县', '', '', '', '', 3, 1, ''), ('450325', '4503', '00,45,4503', '兴安县', '45', '广西壮族自治区', '4503', '桂林市', '450325', '兴安县', '', '', '', '', 3, 1, ''), ('450326', '4503', '00,45,4503', '永福县', '45', '广西壮族自治区', '4503', '桂林市', '450326', '永福县', '', '', '', '', 3, 1, ''), ('450327', '4503', '00,45,4503', '灌阳县', '45', '广西壮族自治区', '4503', '桂林市', '450327', '灌阳县', '', '', '', '', 3, 1, ''), ('450328', '4503', '00,45,4503', '龙胜各族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450328', '龙胜各族自治县', '', '', '', '', 3, 1, ''), ('450329', '4503', '00,45,4503', '资源县', '45', '广西壮族自治区', '4503', '桂林市', '450329', '资源县', '', '', '', '', 3, 1, ''), ('450330', '4503', '00,45,4503', '平乐县', '45', '广西壮族自治区', '4503', '桂林市', '450330', '平乐县', '', '', '', '', 3, 1, ''), ('450332', '4503', '00,45,4503', '恭城瑶族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450332', '恭城瑶族自治县', '', '', '', '', 3, 1, ''), ('450381', '4503', '00,45,4503', '荔浦市', '45', '广西壮族自治区', '4503', '桂林市', '450381', '荔浦市', '', '', '', '', 3, 1, ''), ('4504', '45', '00,45', '梧州市', '45', '广西壮族自治区', '4504', '梧州市', '', '', '', '', '', '', 2, 1, ''), ('450403', '4504', '00,45,4504', '万秀区', '45', '广西壮族自治区', '4504', '梧州市', '450403', '万秀区', '', '', '', '', 3, 1, ''), ('450405', '4504', '00,45,4504', '长洲区', '45', '广西壮族自治区', '4504', '梧州市', '450405', '长洲区', '', '', '', '', 3, 1, ''), ('450406', '4504', '00,45,4504', '龙圩区', '45', '广西壮族自治区', '4504', '梧州市', '450406', '龙圩区', '', '', '', '', 3, 1, ''), ('450421', '4504', '00,45,4504', '苍梧县', '45', '广西壮族自治区', '4504', '梧州市', '450421', '苍梧县', '', '', '', '', 3, 1, ''), ('450422', '4504', '00,45,4504', '藤县', '45', '广西壮族自治区', '4504', '梧州市', '450422', '藤县', '', '', '', '', 3, 1, ''), ('450423', '4504', '00,45,4504', '蒙山县', '45', '广西壮族自治区', '4504', '梧州市', '450423', '蒙山县', '', '', '', '', 3, 1, ''), ('450481', '4504', '00,45,4504', '岑溪市', '45', '广西壮族自治区', '4504', '梧州市', '450481', '岑溪市', '', '', '', '', 3, 1, ''), ('4505', '45', '00,45', '北海市', '45', '广西壮族自治区', '4505', '北海市', '', '', '', '', '', '', 2, 1, ''), ('450502', '4505', '00,45,4505', '海城区', '45', '广西壮族自治区', '4505', '北海市', '450502', '海城区', '', '', '', '', 3, 1, ''), ('450503', '4505', '00,45,4505', '银海区', '45', '广西壮族自治区', '4505', '北海市', '450503', '银海区', '', '', '', '', 3, 1, ''), ('450512', '4505', '00,45,4505', '铁山港区', '45', '广西壮族自治区', '4505', '北海市', '450512', '铁山港区', '', '', '', '', 3, 1, ''), ('450521', '4505', '00,45,4505', '合浦县', '45', '广西壮族自治区', '4505', '北海市', '450521', '合浦县', '', '', '', '', 3, 1, ''), ('4506', '45', '00,45', '防城港市', '45', '广西壮族自治区', '4506', '防城港市', '', '', '', '', '', '', 2, 1, ''), ('450602', '4506', '00,45,4506', '港口区', '45', '广西壮族自治区', '4506', '防城港市', '450602', '港口区', '', '', '', '', 3, 1, ''), ('450603', '4506', '00,45,4506', '防城区', '45', '广西壮族自治区', '4506', '防城港市', '450603', '防城区', '', '', '', '', 3, 1, ''), ('450621', '4506', '00,45,4506', '上思县', '45', '广西壮族自治区', '4506', '防城港市', '450621', '上思县', '', '', '', '', 3, 1, ''), ('450681', '4506', '00,45,4506', '东兴市', '45', '广西壮族自治区', '4506', '防城港市', '450681', '东兴市', '', '', '', '', 3, 1, ''), ('4507', '45', '00,45', '钦州市', '45', '广西壮族自治区', '4507', '钦州市', '', '', '', '', '', '', 2, 1, ''), ('450702', '4507', '00,45,4507', '钦南区', '45', '广西壮族自治区', '4507', '钦州市', '450702', '钦南区', '', '', '', '', 3, 1, ''), ('450703', '4507', '00,45,4507', '钦北区', '45', '广西壮族自治区', '4507', '钦州市', '450703', '钦北区', '', '', '', '', 3, 1, ''), ('450721', '4507', '00,45,4507', '灵山县', '45', '广西壮族自治区', '4507', '钦州市', '450721', '灵山县', '', '', '', '', 3, 1, ''), ('450722', '4507', '00,45,4507', '浦北县', '45', '广西壮族自治区', '4507', '钦州市', '450722', '浦北县', '', '', '', '', 3, 1, ''), ('4508', '45', '00,45', '贵港市', '45', '广西壮族自治区', '4508', '贵港市', '', '', '', '', '', '', 2, 1, ''), ('450802', '4508', '00,45,4508', '港北区', '45', '广西壮族自治区', '4508', '贵港市', '450802', '港北区', '', '', '', '', 3, 1, ''), ('450803', '4508', '00,45,4508', '港南区', '45', '广西壮族自治区', '4508', '贵港市', '450803', '港南区', '', '', '', '', 3, 1, ''), ('450804', '4508', '00,45,4508', '覃塘区', '45', '广西壮族自治区', '4508', '贵港市', '450804', '覃塘区', '', '', '', '', 3, 1, ''), ('450821', '4508', '00,45,4508', '平南县', '45', '广西壮族自治区', '4508', '贵港市', '450821', '平南县', '', '', '', '', 3, 1, ''), ('450881', '4508', '00,45,4508', '桂平市', '45', '广西壮族自治区', '4508', '贵港市', '450881', '桂平市', '', '', '', '', 3, 1, ''), ('4509', '45', '00,45', '玉林市', '45', '广西壮族自治区', '4509', '玉林市', '', '', '', '', '', '', 2, 1, ''), ('450902', '4509', '00,45,4509', '玉州区', '45', '广西壮族自治区', '4509', '玉林市', '450902', '玉州区', '', '', '', '', 3, 1, ''), ('450903', '4509', '00,45,4509', '福绵区', '45', '广西壮族自治区', '4509', '玉林市', '450903', '福绵区', '', '', '', '', 3, 1, ''), ('450921', '4509', '00,45,4509', '容县', '45', '广西壮族自治区', '4509', '玉林市', '450921', '容县', '', '', '', '', 3, 1, ''), ('450922', '4509', '00,45,4509', '陆川县', '45', '广西壮族自治区', '4509', '玉林市', '450922', '陆川县', '', '', '', '', 3, 1, ''), ('450923', '4509', '00,45,4509', '博白县', '45', '广西壮族自治区', '4509', '玉林市', '450923', '博白县', '', '', '', '', 3, 1, ''), ('450924', '4509', '00,45,4509', '兴业县', '45', '广西壮族自治区', '4509', '玉林市', '450924', '兴业县', '', '', '', '', 3, 1, ''), ('450981', '4509', '00,45,4509', '北流市', '45', '广西壮族自治区', '4509', '玉林市', '450981', '北流市', '', '', '', '', 3, 1, ''), ('4510', '45', '00,45', '百色市', '45', '广西壮族自治区', '4510', '百色市', '', '', '', '', '', '', 2, 1, ''), ('451002', '4510', '00,45,4510', '右江区', '45', '广西壮族自治区', '4510', '百色市', '451002', '右江区', '', '', '', '', 3, 1, ''), ('451003', '4510', '00,45,4510', '田阳区', '45', '广西壮族自治区', '4510', '百色市', '451003', '田阳区', '', '', '', '', 3, 1, ''), ('451022', '4510', '00,45,4510', '田东县', '45', '广西壮族自治区', '4510', '百色市', '451022', '田东县', '', '', '', '', 3, 1, ''), ('451024', '4510', '00,45,4510', '德保县', '45', '广西壮族自治区', '4510', '百色市', '451024', '德保县', '', '', '', '', 3, 1, ''), ('451026', '4510', '00,45,4510', '那坡县', '45', '广西壮族自治区', '4510', '百色市', '451026', '那坡县', '', '', '', '', 3, 1, ''), ('451027', '4510', '00,45,4510', '凌云县', '45', '广西壮族自治区', '4510', '百色市', '451027', '凌云县', '', '', '', '', 3, 1, ''), ('451028', '4510', '00,45,4510', '乐业县', '45', '广西壮族自治区', '4510', '百色市', '451028', '乐业县', '', '', '', '', 3, 1, ''), ('451029', '4510', '00,45,4510', '田林县', '45', '广西壮族自治区', '4510', '百色市', '451029', '田林县', '', '', '', '', 3, 1, ''), ('451030', '4510', '00,45,4510', '西林县', '45', '广西壮族自治区', '4510', '百色市', '451030', '西林县', '', '', '', '', 3, 1, ''), ('451031', '4510', '00,45,4510', '隆林各族自治县', '45', '广西壮族自治区', '4510', '百色市', '451031', '隆林各族自治县', '', '', '', '', 3, 1, ''), ('451081', '4510', '00,45,4510', '靖西市', '45', '广西壮族自治区', '4510', '百色市', '451081', '靖西市', '', '', '', '', 3, 1, ''), ('451082', '4510', '00,45,4510', '平果市', '45', '广西壮族自治区', '4510', '百色市', '451082', '平果市', '', '', '', '', 3, 1, ''), ('4511', '45', '00,45', '贺州市', '45', '广西壮族自治区', '4511', '贺州市', '', '', '', '', '', '', 2, 1, ''), ('451102', '4511', '00,45,4511', '八步区', '45', '广西壮族自治区', '4511', '贺州市', '451102', '八步区', '', '', '', '', 3, 1, ''), ('451103', '4511', '00,45,4511', '平桂区', '45', '广西壮族自治区', '4511', '贺州市', '451103', '平桂区', '', '', '', '', 3, 1, ''), ('451121', '4511', '00,45,4511', '昭平县', '45', '广西壮族自治区', '4511', '贺州市', '451121', '昭平县', '', '', '', '', 3, 1, ''), ('451122', '4511', '00,45,4511', '钟山县', '45', '广西壮族自治区', '4511', '贺州市', '451122', '钟山县', '', '', '', '', 3, 1, ''), ('451123', '4511', '00,45,4511', '富川瑶族自治县', '45', '广西壮族自治区', '4511', '贺州市', '451123', '富川瑶族自治县', '', '', '', '', 3, 1, ''), ('4512', '45', '00,45', '河池市', '45', '广西壮族自治区', '4512', '河池市', '', '', '', '', '', '', 2, 1, ''), ('451202', '4512', '00,45,4512', '金城江区', '45', '广西壮族自治区', '4512', '河池市', '451202', '金城江区', '', '', '', '', 3, 1, ''), ('451203', '4512', '00,45,4512', '宜州区', '45', '广西壮族自治区', '4512', '河池市', '451203', '宜州区', '', '', '', '', 3, 1, ''), ('451221', '4512', '00,45,4512', '南丹县', '45', '广西壮族自治区', '4512', '河池市', '451221', '南丹县', '', '', '', '', 3, 1, ''), ('451222', '4512', '00,45,4512', '天峨县', '45', '广西壮族自治区', '4512', '河池市', '451222', '天峨县', '', '', '', '', 3, 1, ''), ('451223', '4512', '00,45,4512', '凤山县', '45', '广西壮族自治区', '4512', '河池市', '451223', '凤山县', '', '', '', '', 3, 1, ''), ('451224', '4512', '00,45,4512', '东兰县', '45', '广西壮族自治区', '4512', '河池市', '451224', '东兰县', '', '', '', '', 3, 1, ''), ('451225', '4512', '00,45,4512', '罗城仫佬族自治县', '45', '广西壮族自治区', '4512', '河池市', '451225', '罗城仫佬族自治县', '', '', '', '', 3, 1, ''), ('451226', '4512', '00,45,4512', '环江毛南族自治县', '45', '广西壮族自治区', '4512', '河池市', '451226', '环江毛南族自治县', '', '', '', '', 3, 1, ''), ('451227', '4512', '00,45,4512', '巴马瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451227', '巴马瑶族自治县', '', '', '', '', 3, 1, ''), ('451228', '4512', '00,45,4512', '都安瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451228', '都安瑶族自治县', '', '', '', '', 3, 1, ''), ('451229', '4512', '00,45,4512', '大化瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451229', '大化瑶族自治县', '', '', '', '', 3, 1, ''), ('4513', '45', '00,45', '来宾市', '45', '广西壮族自治区', '4513', '来宾市', '', '', '', '', '', '', 2, 1, ''), ('451302', '4513', '00,45,4513', '兴宾区', '45', '广西壮族自治区', '4513', '来宾市', '451302', '兴宾区', '', '', '', '', 3, 1, ''), ('451321', '4513', '00,45,4513', '忻城县', '45', '广西壮族自治区', '4513', '来宾市', '451321', '忻城县', '', '', '', '', 3, 1, ''), ('451322', '4513', '00,45,4513', '象州县', '45', '广西壮族自治区', '4513', '来宾市', '451322', '象州县', '', '', '', '', 3, 1, ''), ('451323', '4513', '00,45,4513', '武宣县', '45', '广西壮族自治区', '4513', '来宾市', '451323', '武宣县', '', '', '', '', 3, 1, ''), ('451324', '4513', '00,45,4513', '金秀瑶族自治县', '45', '广西壮族自治区', '4513', '来宾市', '451324', '金秀瑶族自治县', '', '', '', '', 3, 1, ''), ('451381', '4513', '00,45,4513', '合山市', '45', '广西壮族自治区', '4513', '来宾市', '451381', '合山市', '', '', '', '', 3, 1, ''), ('4514', '45', '00,45', '崇左市', '45', '广西壮族自治区', '4514', '崇左市', '', '', '', '', '', '', 2, 1, ''), ('451402', '4514', '00,45,4514', '江州区', '45', '广西壮族自治区', '4514', '崇左市', '451402', '江州区', '', '', '', '', 3, 1, ''), ('451421', '4514', '00,45,4514', '扶绥县', '45', '广西壮族自治区', '4514', '崇左市', '451421', '扶绥县', '', '', '', '', 3, 1, ''), ('451422', '4514', '00,45,4514', '宁明县', '45', '广西壮族自治区', '4514', '崇左市', '451422', '宁明县', '', '', '', '', 3, 1, ''), ('451423', '4514', '00,45,4514', '龙州县', '45', '广西壮族自治区', '4514', '崇左市', '451423', '龙州县', '', '', '', '', 3, 1, ''), ('451424', '4514', '00,45,4514', '大新县', '45', '广西壮族自治区', '4514', '崇左市', '451424', '大新县', '', '', '', '', 3, 1, ''), ('451425', '4514', '00,45,4514', '天等县', '45', '广西壮族自治区', '4514', '崇左市', '451425', '天等县', '', '', '', '', 3, 1, ''), ('451481', '4514', '00,45,4514', '凭祥市', '45', '广西壮族自治区', '4514', '崇左市', '451481', '凭祥市', '', '', '', '', 3, 1, ''), ('46', '00', '00', '海南省', '46', '海南省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4601', '46', '00,46', '海口市', '46', '海南省', '4601', '海口市', '', '', '', '', '', '', 2, 1, ''), ('460105', '4601', '00,46,4601', '秀英区', '46', '海南省', '4601', '海口市', '460105', '秀英区', '', '', '', '', 3, 1, ''), ('460106', '4601', '00,46,4601', '龙华区', '46', '海南省', '4601', '海口市', '460106', '龙华区', '', '', '', '', 3, 1, ''), ('460107', '4601', '00,46,4601', '琼山区', '46', '海南省', '4601', '海口市', '460107', '琼山区', '', '', '', '', 3, 1, ''), ('460108', '4601', '00,46,4601', '美兰区', '46', '海南省', '4601', '海口市', '460108', '美兰区', '', '', '', '', 3, 1, ''), ('4602', '46', '00,46', '三亚市', '46', '海南省', '4602', '三亚市', '', '', '', '', '', '', 2, 1, ''), ('460202', '4602', '00,46,4602', '海棠区', '46', '海南省', '4602', '三亚市', '460202', '海棠区', '', '', '', '', 3, 1, ''), ('460203', '4602', '00,46,4602', '吉阳区', '46', '海南省', '4602', '三亚市', '460203', '吉阳区', '', '', '', '', 3, 1, ''), ('460204', '4602', '00,46,4602', '天涯区', '46', '海南省', '4602', '三亚市', '460204', '天涯区', '', '', '', '', 3, 1, ''), ('460205', '4602', '00,46,4602', '崖州区', '46', '海南省', '4602', '三亚市', '460205', '崖州区', '', '', '', '', 3, 1, ''), ('4603', '46', '00,46', '三沙市', '46', '海南省', '4603', '三沙市', '', '', '', '', '', '', 2, 1, ''), ('460300', '4603', '00,46,4603', '三沙市', '46', '海南省', '4603', '三沙市', '460300', '三沙市', '', '', '', '', 3, 1, ''), ('4604', '46', '00,46', '儋州市', '46', '海南省', '4604', '儋州市', '', '', '', '', '', '', 2, 1, ''), ('460400', '4604', '00,46,4604', '儋州市', '46', '海南省', '4604', '儋州市', '460400', '儋州市', '', '', '', '', 3, 1, ''), ('4690', '46', '00,46', '省直辖县级行政区', '46', '海南省', '4690', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, ''), ('469001', '4690', '00,46,4690', '五指山市', '46', '海南省', '4690', '省直辖县级行政区', '469001', '五指山市', '', '', '', '', 3, 1, ''), ('469002', '4690', '00,46,4690', '琼海市', '46', '海南省', '4690', '省直辖县级行政区', '469002', '琼海市', '', '', '', '', 3, 1, ''), ('469005', '4690', '00,46,4690', '文昌市', '46', '海南省', '4690', '省直辖县级行政区', '469005', '文昌市', '', '', '', '', 3, 1, ''), ('469006', '4690', '00,46,4690', '万宁市', '46', '海南省', '4690', '省直辖县级行政区', '469006', '万宁市', '', '', '', '', 3, 1, ''), ('469007', '4690', '00,46,4690', '东方市', '46', '海南省', '4690', '省直辖县级行政区', '469007', '东方市', '', '', '', '', 3, 1, ''), ('469021', '4690', '00,46,4690', '定安县', '46', '海南省', '4690', '省直辖县级行政区', '469021', '定安县', '', '', '', '', 3, 1, ''), ('469022', '4690', '00,46,4690', '屯昌县', '46', '海南省', '4690', '省直辖县级行政区', '469022', '屯昌县', '', '', '', '', 3, 1, ''), ('469023', '4690', '00,46,4690', '澄迈县', '46', '海南省', '4690', '省直辖县级行政区', '469023', '澄迈县', '', '', '', '', 3, 1, ''), ('469024', '4690', '00,46,4690', '临高县', '46', '海南省', '4690', '省直辖县级行政区', '469024', '临高县', '', '', '', '', 3, 1, ''), ('469025', '4690', '00,46,4690', '白沙黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469025', '白沙黎族自治县', '', '', '', '', 3, 1, ''), ('469026', '4690', '00,46,4690', '昌江黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469026', '昌江黎族自治县', '', '', '', '', 3, 1, ''), ('469027', '4690', '00,46,4690', '乐东黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469027', '乐东黎族自治县', '', '', '', '', 3, 1, ''), ('469028', '4690', '00,46,4690', '陵水黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469028', '陵水黎族自治县', '', '', '', '', 3, 1, ''), ('469029', '4690', '00,46,4690', '保亭黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469029', '保亭黎族苗族自治县', '', '', '', '', 3, 1, ''), ('469030', '4690', '00,46,4690', '琼中黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469030', '琼中黎族苗族自治县', '', '', '', '', 3, 1, ''), ('50', '00', '00', '重庆市', '50', '重庆市', '', '', '', '', '', '', '', '', 1, 1, ''), ('5001', '50', '00,50', '重庆市', '50', '重庆市', '5001', '重庆市', '', '', '', '', '', '', 2, 1, ''), ('500101', '5001', '00,50,5001', '万州区', '50', '重庆市', '5001', '重庆市', '500101', '万州区', '', '', '', '', 3, 1, ''), ('500102', '5001', '00,50,5001', '涪陵区', '50', '重庆市', '5001', '重庆市', '500102', '涪陵区', '', '', '', '', 3, 1, ''), ('500103', '5001', '00,50,5001', '渝中区', '50', '重庆市', '5001', '重庆市', '500103', '渝中区', '', '', '', '', 3, 1, ''), ('500104', '5001', '00,50,5001', '大渡口区', '50', '重庆市', '5001', '重庆市', '500104', '大渡口区', '', '', '', '', 3, 1, ''), ('500105', '5001', '00,50,5001', '江北区', '50', '重庆市', '5001', '重庆市', '500105', '江北区', '', '', '', '', 3, 1, ''), ('500106', '5001', '00,50,5001', '沙坪坝区', '50', '重庆市', '5001', '重庆市', '500106', '沙坪坝区', '', '', '', '', 3, 1, ''), ('500107', '5001', '00,50,5001', '九龙坡区', '50', '重庆市', '5001', '重庆市', '500107', '九龙坡区', '', '', '', '', 3, 1, ''), ('500108', '5001', '00,50,5001', '南岸区', '50', '重庆市', '5001', '重庆市', '500108', '南岸区', '', '', '', '', 3, 1, ''), ('500109', '5001', '00,50,5001', '北碚区', '50', '重庆市', '5001', '重庆市', '500109', '北碚区', '', '', '', '', 3, 1, ''), ('500110', '5001', '00,50,5001', '綦江区', '50', '重庆市', '5001', '重庆市', '500110', '綦江区', '', '', '', '', 3, 1, ''), ('500111', '5001', '00,50,5001', '大足区', '50', '重庆市', '5001', '重庆市', '500111', '大足区', '', '', '', '', 3, 1, ''), ('500112', '5001', '00,50,5001', '渝北区', '50', '重庆市', '5001', '重庆市', '500112', '渝北区', '', '', '', '', 3, 1, ''), ('500113', '5001', '00,50,5001', '巴南区', '50', '重庆市', '5001', '重庆市', '500113', '巴南区', '', '', '', '', 3, 1, ''), ('500114', '5001', '00,50,5001', '黔江区', '50', '重庆市', '5001', '重庆市', '500114', '黔江区', '', '', '', '', 3, 1, ''), ('500115', '5001', '00,50,5001', '长寿区', '50', '重庆市', '5001', '重庆市', '500115', '长寿区', '', '', '', '', 3, 1, ''), ('500116', '5001', '00,50,5001', '江津区', '50', '重庆市', '5001', '重庆市', '500116', '江津区', '', '', '', '', 3, 1, ''), ('500117', '5001', '00,50,5001', '合川区', '50', '重庆市', '5001', '重庆市', '500117', '合川区', '', '', '', '', 3, 1, ''), ('500118', '5001', '00,50,5001', '永川区', '50', '重庆市', '5001', '重庆市', '500118', '永川区', '', '', '', '', 3, 1, ''), ('500119', '5001', '00,50,5001', '南川区', '50', '重庆市', '5001', '重庆市', '500119', '南川区', '', '', '', '', 3, 1, ''), ('500120', '5001', '00,50,5001', '璧山区', '50', '重庆市', '5001', '重庆市', '500120', '璧山区', '', '', '', '', 3, 1, ''), ('500151', '5001', '00,50,5001', '铜梁区', '50', '重庆市', '5001', '重庆市', '500151', '铜梁区', '', '', '', '', 3, 1, ''), ('500152', '5001', '00,50,5001', '潼南区', '50', '重庆市', '5001', '重庆市', '500152', '潼南区', '', '', '', '', 3, 1, ''), ('500153', '5001', '00,50,5001', '荣昌区', '50', '重庆市', '5001', '重庆市', '500153', '荣昌区', '', '', '', '', 3, 1, ''), ('500154', '5001', '00,50,5001', '开州区', '50', '重庆市', '5001', '重庆市', '500154', '开州区', '', '', '', '', 3, 1, ''), ('500155', '5001', '00,50,5001', '梁平区', '50', '重庆市', '5001', '重庆市', '500155', '梁平区', '', '', '', '', 3, 1, ''), ('500156', '5001', '00,50,5001', '武隆区', '50', '重庆市', '5001', '重庆市', '500156', '武隆区', '', '', '', '', 3, 1, ''), ('5002', '50', '00,50', '重庆市', '50', '重庆市', '5002', '重庆市', '', '', '', '', '', '', 2, 1, ''), ('500229', '5002', '00,50,5002', '城口县', '50', '重庆市', '5002', '重庆市', '500229', '城口县', '', '', '', '', 3, 1, ''), ('500230', '5002', '00,50,5002', '丰都县', '50', '重庆市', '5002', '重庆市', '500230', '丰都县', '', '', '', '', 3, 1, ''), ('500231', '5002', '00,50,5002', '垫江县', '50', '重庆市', '5002', '重庆市', '500231', '垫江县', '', '', '', '', 3, 1, ''), ('500233', '5002', '00,50,5002', '忠县', '50', '重庆市', '5002', '重庆市', '500233', '忠县', '', '', '', '', 3, 1, ''), ('500235', '5002', '00,50,5002', '云阳县', '50', '重庆市', '5002', '重庆市', '500235', '云阳县', '', '', '', '', 3, 1, ''), ('500236', '5002', '00,50,5002', '奉节县', '50', '重庆市', '5002', '重庆市', '500236', '奉节县', '', '', '', '', 3, 1, ''), ('500237', '5002', '00,50,5002', '巫山县', '50', '重庆市', '5002', '重庆市', '500237', '巫山县', '', '', '', '', 3, 1, ''), ('500238', '5002', '00,50,5002', '巫溪县', '50', '重庆市', '5002', '重庆市', '500238', '巫溪县', '', '', '', '', 3, 1, ''), ('500240', '5002', '00,50,5002', '石柱土家族自治县', '50', '重庆市', '5002', '重庆市', '500240', '石柱土家族自治县', '', '', '', '', 3, 1, ''), ('500241', '5002', '00,50,5002', '秀山土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500241', '秀山土家族苗族自治县', '', '', '', '', 3, 1, ''), ('500242', '5002', '00,50,5002', '酉阳土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500242', '酉阳土家族苗族自治县', '', '', '', '', 3, 1, ''), ('500243', '5002', '00,50,5002', '彭水苗族土家族自治县', '50', '重庆市', '5002', '重庆市', '500243', '彭水苗族土家族自治县', '', '', '', '', 3, 1, ''), ('51', '00', '00', '四川省', '51', '四川省', '', '', '', '', '', '', '', '', 1, 1, ''), ('5101', '51', '00,51', '成都市', '51', '四川省', '5101', '成都市', '', '', '', '', '', '', 2, 1, ''), ('510104', '5101', '00,51,5101', '锦江区', '51', '四川省', '5101', '成都市', '510104', '锦江区', '', '', '', '', 3, 1, ''), ('510105', '5101', '00,51,5101', '青羊区', '51', '四川省', '5101', '成都市', '510105', '青羊区', '', '', '', '', 3, 1, ''), ('510106', '5101', '00,51,5101', '金牛区', '51', '四川省', '5101', '成都市', '510106', '金牛区', '', '', '', '', 3, 1, ''), ('510107', '5101', '00,51,5101', '武侯区', '51', '四川省', '5101', '成都市', '510107', '武侯区', '', '', '', '', 3, 1, ''), ('510108', '5101', '00,51,5101', '成华区', '51', '四川省', '5101', '成都市', '510108', '成华区', '', '', '', '', 3, 1, ''), ('510112', '5101', '00,51,5101', '龙泉驿区', '51', '四川省', '5101', '成都市', '510112', '龙泉驿区', '', '', '', '', 3, 1, ''), ('510113', '5101', '00,51,5101', '青白江区', '51', '四川省', '5101', '成都市', '510113', '青白江区', '', '', '', '', 3, 1, ''), ('510114', '5101', '00,51,5101', '新都区', '51', '四川省', '5101', '成都市', '510114', '新都区', '', '', '', '', 3, 1, ''), ('510115', '5101', '00,51,5101', '温江区', '51', '四川省', '5101', '成都市', '510115', '温江区', '', '', '', '', 3, 1, ''), ('510116', '5101', '00,51,5101', '双流区', '51', '四川省', '5101', '成都市', '510116', '双流区', '', '', '', '', 3, 1, ''), ('510117', '5101', '00,51,5101', '郫都区', '51', '四川省', '5101', '成都市', '510117', '郫都区', '', '', '', '', 3, 1, ''), ('510121', '5101', '00,51,5101', '金堂县', '51', '四川省', '5101', '成都市', '510121', '金堂县', '', '', '', '', 3, 1, ''), ('510129', '5101', '00,51,5101', '大邑县', '51', '四川省', '5101', '成都市', '510129', '大邑县', '', '', '', '', 3, 1, ''), ('510131', '5101', '00,51,5101', '蒲江县', '51', '四川省', '5101', '成都市', '510131', '蒲江县', '', '', '', '', 3, 1, ''), ('510132', '5101', '00,51,5101', '新津县', '51', '四川省', '5101', '成都市', '510132', '新津县', '', '', '', '', 3, 1, ''), ('510181', '5101', '00,51,5101', '都江堰市', '51', '四川省', '5101', '成都市', '510181', '都江堰市', '', '', '', '', 3, 1, ''), ('510182', '5101', '00,51,5101', '彭州市', '51', '四川省', '5101', '成都市', '510182', '彭州市', '', '', '', '', 3, 1, ''), ('510183', '5101', '00,51,5101', '邛崃市', '51', '四川省', '5101', '成都市', '510183', '邛崃市', '', '', '', '', 3, 1, ''), ('510184', '5101', '00,51,5101', '崇州市', '51', '四川省', '5101', '成都市', '510184', '崇州市', '', '', '', '', 3, 1, ''), ('510185', '5101', '00,51,5101', '简阳市', '51', '四川省', '5101', '成都市', '510185', '简阳市', '', '', '', '', 3, 1, ''), ('5103', '51', '00,51', '自贡市', '51', '四川省', '5103', '自贡市', '', '', '', '', '', '', 2, 1, ''), ('510302', '5103', '00,51,5103', '自流井区', '51', '四川省', '5103', '自贡市', '510302', '自流井区', '', '', '', '', 3, 1, ''), ('510303', '5103', '00,51,5103', '贡井区', '51', '四川省', '5103', '自贡市', '510303', '贡井区', '', '', '', '', 3, 1, ''), ('510304', '5103', '00,51,5103', '大安区', '51', '四川省', '5103', '自贡市', '510304', '大安区', '', '', '', '', 3, 1, ''), ('510311', '5103', '00,51,5103', '沿滩区', '51', '四川省', '5103', '自贡市', '510311', '沿滩区', '', '', '', '', 3, 1, ''), ('510321', '5103', '00,51,5103', '荣县', '51', '四川省', '5103', '自贡市', '510321', '荣县', '', '', '', '', 3, 1, ''), ('510322', '5103', '00,51,5103', '富顺县', '51', '四川省', '5103', '自贡市', '510322', '富顺县', '', '', '', '', 3, 1, ''), ('5104', '51', '00,51', '攀枝花市', '51', '四川省', '5104', '攀枝花市', '', '', '', '', '', '', 2, 1, ''), ('510402', '5104', '00,51,5104', '东区', '51', '四川省', '5104', '攀枝花市', '510402', '东区', '', '', '', '', 3, 1, ''), ('510403', '5104', '00,51,5104', '西区', '51', '四川省', '5104', '攀枝花市', '510403', '西区', '', '', '', '', 3, 1, ''), ('510411', '5104', '00,51,5104', '仁和区', '51', '四川省', '5104', '攀枝花市', '510411', '仁和区', '', '', '', '', 3, 1, ''), ('510421', '5104', '00,51,5104', '米易县', '51', '四川省', '5104', '攀枝花市', '510421', '米易县', '', '', '', '', 3, 1, ''), ('510422', '5104', '00,51,5104', '盐边县', '51', '四川省', '5104', '攀枝花市', '510422', '盐边县', '', '', '', '', 3, 1, ''), ('5105', '51', '00,51', '泸州市', '51', '四川省', '5105', '泸州市', '', '', '', '', '', '', 2, 1, ''), ('510502', '5105', '00,51,5105', '江阳区', '51', '四川省', '5105', '泸州市', '510502', '江阳区', '', '', '', '', 3, 1, ''), ('510503', '5105', '00,51,5105', '纳溪区', '51', '四川省', '5105', '泸州市', '510503', '纳溪区', '', '', '', '', 3, 1, ''), ('510504', '5105', '00,51,5105', '龙马潭区', '51', '四川省', '5105', '泸州市', '510504', '龙马潭区', '', '', '', '', 3, 1, ''), ('510521', '5105', '00,51,5105', '泸县', '51', '四川省', '5105', '泸州市', '510521', '泸县', '', '', '', '', 3, 1, ''), ('510522', '5105', '00,51,5105', '合江县', '51', '四川省', '5105', '泸州市', '510522', '合江县', '', '', '', '', 3, 1, ''), ('510524', '5105', '00,51,5105', '叙永县', '51', '四川省', '5105', '泸州市', '510524', '叙永县', '', '', '', '', 3, 1, ''), ('510525', '5105', '00,51,5105', '古蔺县', '51', '四川省', '5105', '泸州市', '510525', '古蔺县', '', '', '', '', 3, 1, ''), ('5106', '51', '00,51', '德阳市', '51', '四川省', '5106', '德阳市', '', '', '', '', '', '', 2, 1, ''), ('510603', '5106', '00,51,5106', '旌阳区', '51', '四川省', '5106', '德阳市', '510603', '旌阳区', '', '', '', '', 3, 1, ''), ('510604', '5106', '00,51,5106', '罗江区', '51', '四川省', '5106', '德阳市', '510604', '罗江区', '', '', '', '', 3, 1, ''), ('510623', '5106', '00,51,5106', '中江县', '51', '四川省', '5106', '德阳市', '510623', '中江县', '', '', '', '', 3, 1, ''), ('510681', '5106', '00,51,5106', '广汉市', '51', '四川省', '5106', '德阳市', '510681', '广汉市', '', '', '', '', 3, 1, ''), ('510682', '5106', '00,51,5106', '什邡市', '51', '四川省', '5106', '德阳市', '510682', '什邡市', '', '', '', '', 3, 1, ''), ('510683', '5106', '00,51,5106', '绵竹市', '51', '四川省', '5106', '德阳市', '510683', '绵竹市', '', '', '', '', 3, 1, ''), ('5107', '51', '00,51', '绵阳市', '51', '四川省', '5107', '绵阳市', '', '', '', '', '', '', 2, 1, ''), ('510703', '5107', '00,51,5107', '涪城区', '51', '四川省', '5107', '绵阳市', '510703', '涪城区', '', '', '', '', 3, 1, ''), ('510704', '5107', '00,51,5107', '游仙区', '51', '四川省', '5107', '绵阳市', '510704', '游仙区', '', '', '', '', 3, 1, ''), ('510705', '5107', '00,51,5107', '安州区', '51', '四川省', '5107', '绵阳市', '510705', '安州区', '', '', '', '', 3, 1, ''), ('510722', '5107', '00,51,5107', '三台县', '51', '四川省', '5107', '绵阳市', '510722', '三台县', '', '', '', '', 3, 1, ''), ('510723', '5107', '00,51,5107', '盐亭县', '51', '四川省', '5107', '绵阳市', '510723', '盐亭县', '', '', '', '', 3, 1, ''), ('510725', '5107', '00,51,5107', '梓潼县', '51', '四川省', '5107', '绵阳市', '510725', '梓潼县', '', '', '', '', 3, 1, ''), ('510726', '5107', '00,51,5107', '北川羌族自治县', '51', '四川省', '5107', '绵阳市', '510726', '北川羌族自治县', '', '', '', '', 3, 1, ''), ('510727', '5107', '00,51,5107', '平武县', '51', '四川省', '5107', '绵阳市', '510727', '平武县', '', '', '', '', 3, 1, ''), ('510781', '5107', '00,51,5107', '江油市', '51', '四川省', '5107', '绵阳市', '510781', '江油市', '', '', '', '', 3, 1, ''), ('5108', '51', '00,51', '广元市', '51', '四川省', '5108', '广元市', '', '', '', '', '', '', 2, 1, ''), ('510802', '5108', '00,51,5108', '利州区', '51', '四川省', '5108', '广元市', '510802', '利州区', '', '', '', '', 3, 1, ''), ('510811', '5108', '00,51,5108', '昭化区', '51', '四川省', '5108', '广元市', '510811', '昭化区', '', '', '', '', 3, 1, ''), ('510812', '5108', '00,51,5108', '朝天区', '51', '四川省', '5108', '广元市', '510812', '朝天区', '', '', '', '', 3, 1, ''), ('510821', '5108', '00,51,5108', '旺苍县', '51', '四川省', '5108', '广元市', '510821', '旺苍县', '', '', '', '', 3, 1, ''), ('510822', '5108', '00,51,5108', '青川县', '51', '四川省', '5108', '广元市', '510822', '青川县', '', '', '', '', 3, 1, ''), ('510823', '5108', '00,51,5108', '剑阁县', '51', '四川省', '5108', '广元市', '510823', '剑阁县', '', '', '', '', 3, 1, ''), ('510824', '5108', '00,51,5108', '苍溪县', '51', '四川省', '5108', '广元市', '510824', '苍溪县', '', '', '', '', 3, 1, ''), ('5109', '51', '00,51', '遂宁市', '51', '四川省', '5109', '遂宁市', '', '', '', '', '', '', 2, 1, ''), ('510903', '5109', '00,51,5109', '船山区', '51', '四川省', '5109', '遂宁市', '510903', '船山区', '', '', '', '', 3, 1, ''), ('510904', '5109', '00,51,5109', '安居区', '51', '四川省', '5109', '遂宁市', '510904', '安居区', '', '', '', '', 3, 1, ''), ('510921', '5109', '00,51,5109', '蓬溪县', '51', '四川省', '5109', '遂宁市', '510921', '蓬溪县', '', '', '', '', 3, 1, ''), ('510923', '5109', '00,51,5109', '大英县', '51', '四川省', '5109', '遂宁市', '510923', '大英县', '', '', '', '', 3, 1, ''), ('510981', '5109', '00,51,5109', '射洪市', '51', '四川省', '5109', '遂宁市', '510981', '射洪市', '', '', '', '', 3, 1, ''), ('5110', '51', '00,51', '内江市', '51', '四川省', '5110', '内江市', '', '', '', '', '', '', 2, 1, ''), ('511002', '5110', '00,51,5110', '市中区', '51', '四川省', '5110', '内江市', '511002', '市中区', '', '', '', '', 3, 1, ''), ('511011', '5110', '00,51,5110', '东兴区', '51', '四川省', '5110', '内江市', '511011', '东兴区', '', '', '', '', 3, 1, ''), ('511024', '5110', '00,51,5110', '威远县', '51', '四川省', '5110', '内江市', '511024', '威远县', '', '', '', '', 3, 1, ''), ('511025', '5110', '00,51,5110', '资中县', '51', '四川省', '5110', '内江市', '511025', '资中县', '', '', '', '', 3, 1, ''), ('511083', '5110', '00,51,5110', '隆昌市', '51', '四川省', '5110', '内江市', '511083', '隆昌市', '', '', '', '', 3, 1, ''), ('5111', '51', '00,51', '乐山市', '51', '四川省', '5111', '乐山市', '', '', '', '', '', '', 2, 1, ''), ('511102', '5111', '00,51,5111', '市中区', '51', '四川省', '5111', '乐山市', '511102', '市中区', '', '', '', '', 3, 1, ''), ('511111', '5111', '00,51,5111', '沙湾区', '51', '四川省', '5111', '乐山市', '511111', '沙湾区', '', '', '', '', 3, 1, ''), ('511112', '5111', '00,51,5111', '五通桥区', '51', '四川省', '5111', '乐山市', '511112', '五通桥区', '', '', '', '', 3, 1, ''), ('511113', '5111', '00,51,5111', '金口河区', '51', '四川省', '5111', '乐山市', '511113', '金口河区', '', '', '', '', 3, 1, ''), ('511123', '5111', '00,51,5111', '犍为县', '51', '四川省', '5111', '乐山市', '511123', '犍为县', '', '', '', '', 3, 1, ''), ('511124', '5111', '00,51,5111', '井研县', '51', '四川省', '5111', '乐山市', '511124', '井研县', '', '', '', '', 3, 1, ''), ('511126', '5111', '00,51,5111', '夹江县', '51', '四川省', '5111', '乐山市', '511126', '夹江县', '', '', '', '', 3, 1, ''), ('511129', '5111', '00,51,5111', '沐川县', '51', '四川省', '5111', '乐山市', '511129', '沐川县', '', '', '', '', 3, 1, ''), ('511132', '5111', '00,51,5111', '峨边彝族自治县', '51', '四川省', '5111', '乐山市', '511132', '峨边彝族自治县', '', '', '', '', 3, 1, ''), ('511133', '5111', '00,51,5111', '马边彝族自治县', '51', '四川省', '5111', '乐山市', '511133', '马边彝族自治县', '', '', '', '', 3, 1, ''), ('511181', '5111', '00,51,5111', '峨眉山市', '51', '四川省', '5111', '乐山市', '511181', '峨眉山市', '', '', '', '', 3, 1, ''), ('5113', '51', '00,51', '南充市', '51', '四川省', '5113', '南充市', '', '', '', '', '', '', 2, 1, ''), ('511302', '5113', '00,51,5113', '顺庆区', '51', '四川省', '5113', '南充市', '511302', '顺庆区', '', '', '', '', 3, 1, ''), ('511303', '5113', '00,51,5113', '高坪区', '51', '四川省', '5113', '南充市', '511303', '高坪区', '', '', '', '', 3, 1, ''), ('511304', '5113', '00,51,5113', '嘉陵区', '51', '四川省', '5113', '南充市', '511304', '嘉陵区', '', '', '', '', 3, 1, ''), ('511321', '5113', '00,51,5113', '南部县', '51', '四川省', '5113', '南充市', '511321', '南部县', '', '', '', '', 3, 1, ''), ('511322', '5113', '00,51,5113', '营山县', '51', '四川省', '5113', '南充市', '511322', '营山县', '', '', '', '', 3, 1, ''), ('511323', '5113', '00,51,5113', '蓬安县', '51', '四川省', '5113', '南充市', '511323', '蓬安县', '', '', '', '', 3, 1, ''), ('511324', '5113', '00,51,5113', '仪陇县', '51', '四川省', '5113', '南充市', '511324', '仪陇县', '', '', '', '', 3, 1, ''), ('511325', '5113', '00,51,5113', '西充县', '51', '四川省', '5113', '南充市', '511325', '西充县', '', '', '', '', 3, 1, ''), ('511381', '5113', '00,51,5113', '阆中市', '51', '四川省', '5113', '南充市', '511381', '阆中市', '', '', '', '', 3, 1, ''), ('5114', '51', '00,51', '眉山市', '51', '四川省', '5114', '眉山市', '', '', '', '', '', '', 2, 1, ''), ('511402', '5114', '00,51,5114', '东坡区', '51', '四川省', '5114', '眉山市', '511402', '东坡区', '', '', '', '', 3, 1, ''), ('511403', '5114', '00,51,5114', '彭山区', '51', '四川省', '5114', '眉山市', '511403', '彭山区', '', '', '', '', 3, 1, ''), ('511421', '5114', '00,51,5114', '仁寿县', '51', '四川省', '5114', '眉山市', '511421', '仁寿县', '', '', '', '', 3, 1, ''), ('511423', '5114', '00,51,5114', '洪雅县', '51', '四川省', '5114', '眉山市', '511423', '洪雅县', '', '', '', '', 3, 1, ''), ('511424', '5114', '00,51,5114', '丹棱县', '51', '四川省', '5114', '眉山市', '511424', '丹棱县', '', '', '', '', 3, 1, ''), ('511425', '5114', '00,51,5114', '青神县', '51', '四川省', '5114', '眉山市', '511425', '青神县', '', '', '', '', 3, 1, ''), ('5115', '51', '00,51', '宜宾市', '51', '四川省', '5115', '宜宾市', '', '', '', '', '', '', 2, 1, ''), ('511502', '5115', '00,51,5115', '翠屏区', '51', '四川省', '5115', '宜宾市', '511502', '翠屏区', '', '', '', '', 3, 1, ''), ('511503', '5115', '00,51,5115', '南溪区', '51', '四川省', '5115', '宜宾市', '511503', '南溪区', '', '', '', '', 3, 1, ''), ('511504', '5115', '00,51,5115', '叙州区', '51', '四川省', '5115', '宜宾市', '511504', '叙州区', '', '', '', '', 3, 1, ''), ('511523', '5115', '00,51,5115', '江安县', '51', '四川省', '5115', '宜宾市', '511523', '江安县', '', '', '', '', 3, 1, ''), ('511524', '5115', '00,51,5115', '长宁县', '51', '四川省', '5115', '宜宾市', '511524', '长宁县', '', '', '', '', 3, 1, ''), ('511525', '5115', '00,51,5115', '高县', '51', '四川省', '5115', '宜宾市', '511525', '高县', '', '', '', '', 3, 1, ''), ('511526', '5115', '00,51,5115', '珙县', '51', '四川省', '5115', '宜宾市', '511526', '珙县', '', '', '', '', 3, 1, ''), ('511527', '5115', '00,51,5115', '筠连县', '51', '四川省', '5115', '宜宾市', '511527', '筠连县', '', '', '', '', 3, 1, ''), ('511528', '5115', '00,51,5115', '兴文县', '51', '四川省', '5115', '宜宾市', '511528', '兴文县', '', '', '', '', 3, 1, ''), ('511529', '5115', '00,51,5115', '屏山县', '51', '四川省', '5115', '宜宾市', '511529', '屏山县', '', '', '', '', 3, 1, ''), ('5116', '51', '00,51', '广安市', '51', '四川省', '5116', '广安市', '', '', '', '', '', '', 2, 1, ''), ('511602', '5116', '00,51,5116', '广安区', '51', '四川省', '5116', '广安市', '511602', '广安区', '', '', '', '', 3, 1, ''), ('511603', '5116', '00,51,5116', '前锋区', '51', '四川省', '5116', '广安市', '511603', '前锋区', '', '', '', '', 3, 1, ''), ('511621', '5116', '00,51,5116', '岳池县', '51', '四川省', '5116', '广安市', '511621', '岳池县', '', '', '', '', 3, 1, ''), ('511622', '5116', '00,51,5116', '武胜县', '51', '四川省', '5116', '广安市', '511622', '武胜县', '', '', '', '', 3, 1, ''), ('511623', '5116', '00,51,5116', '邻水县', '51', '四川省', '5116', '广安市', '511623', '邻水县', '', '', '', '', 3, 1, ''), ('511681', '5116', '00,51,5116', '华蓥市', '51', '四川省', '5116', '广安市', '511681', '华蓥市', '', '', '', '', 3, 1, ''), ('5117', '51', '00,51', '达州市', '51', '四川省', '5117', '达州市', '', '', '', '', '', '', 2, 1, ''), ('511702', '5117', '00,51,5117', '通川区', '51', '四川省', '5117', '达州市', '511702', '通川区', '', '', '', '', 3, 1, ''), ('511703', '5117', '00,51,5117', '达川区', '51', '四川省', '5117', '达州市', '511703', '达川区', '', '', '', '', 3, 1, ''), ('511722', '5117', '00,51,5117', '宣汉县', '51', '四川省', '5117', '达州市', '511722', '宣汉县', '', '', '', '', 3, 1, ''), ('511723', '5117', '00,51,5117', '开江县', '51', '四川省', '5117', '达州市', '511723', '开江县', '', '', '', '', 3, 1, ''), ('511724', '5117', '00,51,5117', '大竹县', '51', '四川省', '5117', '达州市', '511724', '大竹县', '', '', '', '', 3, 1, ''), ('511725', '5117', '00,51,5117', '渠县', '51', '四川省', '5117', '达州市', '511725', '渠县', '', '', '', '', 3, 1, ''), ('511781', '5117', '00,51,5117', '万源市', '51', '四川省', '5117', '达州市', '511781', '万源市', '', '', '', '', 3, 1, ''), ('5118', '51', '00,51', '雅安市', '51', '四川省', '5118', '雅安市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO `blade_region` VALUES ('511802', '5118', '00,51,5118', '雨城区', '51', '四川省', '5118', '雅安市', '511802', '雨城区', '', '', '', '', 3, 1, ''), ('511803', '5118', '00,51,5118', '名山区', '51', '四川省', '5118', '雅安市', '511803', '名山区', '', '', '', '', 3, 1, ''), ('511822', '5118', '00,51,5118', '荥经县', '51', '四川省', '5118', '雅安市', '511822', '荥经县', '', '', '', '', 3, 1, ''), ('511823', '5118', '00,51,5118', '汉源县', '51', '四川省', '5118', '雅安市', '511823', '汉源县', '', '', '', '', 3, 1, ''), ('511824', '5118', '00,51,5118', '石棉县', '51', '四川省', '5118', '雅安市', '511824', '石棉县', '', '', '', '', 3, 1, ''), ('511825', '5118', '00,51,5118', '天全县', '51', '四川省', '5118', '雅安市', '511825', '天全县', '', '', '', '', 3, 1, ''), ('511826', '5118', '00,51,5118', '芦山县', '51', '四川省', '5118', '雅安市', '511826', '芦山县', '', '', '', '', 3, 1, ''), ('511827', '5118', '00,51,5118', '宝兴县', '51', '四川省', '5118', '雅安市', '511827', '宝兴县', '', '', '', '', 3, 1, ''), ('5119', '51', '00,51', '巴中市', '51', '四川省', '5119', '巴中市', '', '', '', '', '', '', 2, 1, ''), ('511902', '5119', '00,51,5119', '巴州区', '51', '四川省', '5119', '巴中市', '511902', '巴州区', '', '', '', '', 3, 1, ''), ('511903', '5119', '00,51,5119', '恩阳区', '51', '四川省', '5119', '巴中市', '511903', '恩阳区', '', '', '', '', 3, 1, ''), ('511921', '5119', '00,51,5119', '通江县', '51', '四川省', '5119', '巴中市', '511921', '通江县', '', '', '', '', 3, 1, ''), ('511922', '5119', '00,51,5119', '南江县', '51', '四川省', '5119', '巴中市', '511922', '南江县', '', '', '', '', 3, 1, ''), ('511923', '5119', '00,51,5119', '平昌县', '51', '四川省', '5119', '巴中市', '511923', '平昌县', '', '', '', '', 3, 1, ''), ('5120', '51', '00,51', '资阳市', '51', '四川省', '5120', '资阳市', '', '', '', '', '', '', 2, 1, ''), ('512002', '5120', '00,51,5120', '雁江区', '51', '四川省', '5120', '资阳市', '512002', '雁江区', '', '', '', '', 3, 1, ''), ('512021', '5120', '00,51,5120', '安岳县', '51', '四川省', '5120', '资阳市', '512021', '安岳县', '', '', '', '', 3, 1, ''), ('512022', '5120', '00,51,5120', '乐至县', '51', '四川省', '5120', '资阳市', '512022', '乐至县', '', '', '', '', 3, 1, ''), ('5132', '51', '00,51', '阿坝藏族羌族自治州', '51', '四川省', '5132', '阿坝藏族羌族自治州', '', '', '', '', '', '', 2, 1, ''), ('513201', '5132', '00,51,5132', '马尔康市', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513201', '马尔康市', '', '', '', '', 3, 1, ''), ('513221', '5132', '00,51,5132', '汶川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513221', '汶川县', '', '', '', '', 3, 1, ''), ('513222', '5132', '00,51,5132', '理县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513222', '理县', '', '', '', '', 3, 1, ''), ('513223', '5132', '00,51,5132', '茂县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513223', '茂县', '', '', '', '', 3, 1, ''), ('513224', '5132', '00,51,5132', '松潘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513224', '松潘县', '', '', '', '', 3, 1, ''), ('513225', '5132', '00,51,5132', '九寨沟县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513225', '九寨沟县', '', '', '', '', 3, 1, ''), ('513226', '5132', '00,51,5132', '金川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513226', '金川县', '', '', '', '', 3, 1, ''), ('513227', '5132', '00,51,5132', '小金县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513227', '小金县', '', '', '', '', 3, 1, ''), ('513228', '5132', '00,51,5132', '黑水县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513228', '黑水县', '', '', '', '', 3, 1, ''), ('513230', '5132', '00,51,5132', '壤塘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513230', '壤塘县', '', '', '', '', 3, 1, ''), ('513231', '5132', '00,51,5132', '阿坝县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513231', '阿坝县', '', '', '', '', 3, 1, ''), ('513232', '5132', '00,51,5132', '若尔盖县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513232', '若尔盖县', '', '', '', '', 3, 1, ''), ('513233', '5132', '00,51,5132', '红原县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513233', '红原县', '', '', '', '', 3, 1, ''), ('5133', '51', '00,51', '甘孜藏族自治州', '51', '四川省', '5133', '甘孜藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('513301', '5133', '00,51,5133', '康定市', '51', '四川省', '5133', '甘孜藏族自治州', '513301', '康定市', '', '', '', '', 3, 1, ''), ('513322', '5133', '00,51,5133', '泸定县', '51', '四川省', '5133', '甘孜藏族自治州', '513322', '泸定县', '', '', '', '', 3, 1, ''), ('513323', '5133', '00,51,5133', '丹巴县', '51', '四川省', '5133', '甘孜藏族自治州', '513323', '丹巴县', '', '', '', '', 3, 1, ''), ('513324', '5133', '00,51,5133', '九龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513324', '九龙县', '', '', '', '', 3, 1, ''), ('513325', '5133', '00,51,5133', '雅江县', '51', '四川省', '5133', '甘孜藏族自治州', '513325', '雅江县', '', '', '', '', 3, 1, ''), ('513326', '5133', '00,51,5133', '道孚县', '51', '四川省', '5133', '甘孜藏族自治州', '513326', '道孚县', '', '', '', '', 3, 1, ''), ('513327', '5133', '00,51,5133', '炉霍县', '51', '四川省', '5133', '甘孜藏族自治州', '513327', '炉霍县', '', '', '', '', 3, 1, ''), ('513328', '5133', '00,51,5133', '甘孜县', '51', '四川省', '5133', '甘孜藏族自治州', '513328', '甘孜县', '', '', '', '', 3, 1, ''), ('513329', '5133', '00,51,5133', '新龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513329', '新龙县', '', '', '', '', 3, 1, ''), ('513330', '5133', '00,51,5133', '德格县', '51', '四川省', '5133', '甘孜藏族自治州', '513330', '德格县', '', '', '', '', 3, 1, ''), ('513331', '5133', '00,51,5133', '白玉县', '51', '四川省', '5133', '甘孜藏族自治州', '513331', '白玉县', '', '', '', '', 3, 1, ''), ('513332', '5133', '00,51,5133', '石渠县', '51', '四川省', '5133', '甘孜藏族自治州', '513332', '石渠县', '', '', '', '', 3, 1, ''), ('513333', '5133', '00,51,5133', '色达县', '51', '四川省', '5133', '甘孜藏族自治州', '513333', '色达县', '', '', '', '', 3, 1, ''), ('513334', '5133', '00,51,5133', '理塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513334', '理塘县', '', '', '', '', 3, 1, ''), ('513335', '5133', '00,51,5133', '巴塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513335', '巴塘县', '', '', '', '', 3, 1, ''), ('513336', '5133', '00,51,5133', '乡城县', '51', '四川省', '5133', '甘孜藏族自治州', '513336', '乡城县', '', '', '', '', 3, 1, ''), ('513337', '5133', '00,51,5133', '稻城县', '51', '四川省', '5133', '甘孜藏族自治州', '513337', '稻城县', '', '', '', '', 3, 1, ''), ('513338', '5133', '00,51,5133', '得荣县', '51', '四川省', '5133', '甘孜藏族自治州', '513338', '得荣县', '', '', '', '', 3, 1, ''), ('5134', '51', '00,51', '凉山彝族自治州', '51', '四川省', '5134', '凉山彝族自治州', '', '', '', '', '', '', 2, 1, ''), ('513401', '5134', '00,51,5134', '西昌市', '51', '四川省', '5134', '凉山彝族自治州', '513401', '西昌市', '', '', '', '', 3, 1, ''), ('513422', '5134', '00,51,5134', '木里藏族自治县', '51', '四川省', '5134', '凉山彝族自治州', '513422', '木里藏族自治县', '', '', '', '', 3, 1, ''), ('513423', '5134', '00,51,5134', '盐源县', '51', '四川省', '5134', '凉山彝族自治州', '513423', '盐源县', '', '', '', '', 3, 1, ''), ('513424', '5134', '00,51,5134', '德昌县', '51', '四川省', '5134', '凉山彝族自治州', '513424', '德昌县', '', '', '', '', 3, 1, ''), ('513425', '5134', '00,51,5134', '会理县', '51', '四川省', '5134', '凉山彝族自治州', '513425', '会理县', '', '', '', '', 3, 1, ''), ('513426', '5134', '00,51,5134', '会东县', '51', '四川省', '5134', '凉山彝族自治州', '513426', '会东县', '', '', '', '', 3, 1, ''), ('513427', '5134', '00,51,5134', '宁南县', '51', '四川省', '5134', '凉山彝族自治州', '513427', '宁南县', '', '', '', '', 3, 1, ''), ('513428', '5134', '00,51,5134', '普格县', '51', '四川省', '5134', '凉山彝族自治州', '513428', '普格县', '', '', '', '', 3, 1, ''), ('513429', '5134', '00,51,5134', '布拖县', '51', '四川省', '5134', '凉山彝族自治州', '513429', '布拖县', '', '', '', '', 3, 1, ''), ('513430', '5134', '00,51,5134', '金阳县', '51', '四川省', '5134', '凉山彝族自治州', '513430', '金阳县', '', '', '', '', 3, 1, ''), ('513431', '5134', '00,51,5134', '昭觉县', '51', '四川省', '5134', '凉山彝族自治州', '513431', '昭觉县', '', '', '', '', 3, 1, ''), ('513432', '5134', '00,51,5134', '喜德县', '51', '四川省', '5134', '凉山彝族自治州', '513432', '喜德县', '', '', '', '', 3, 1, ''), ('513433', '5134', '00,51,5134', '冕宁县', '51', '四川省', '5134', '凉山彝族自治州', '513433', '冕宁县', '', '', '', '', 3, 1, ''), ('513434', '5134', '00,51,5134', '越西县', '51', '四川省', '5134', '凉山彝族自治州', '513434', '越西县', '', '', '', '', 3, 1, ''), ('513435', '5134', '00,51,5134', '甘洛县', '51', '四川省', '5134', '凉山彝族自治州', '513435', '甘洛县', '', '', '', '', 3, 1, ''), ('513436', '5134', '00,51,5134', '美姑县', '51', '四川省', '5134', '凉山彝族自治州', '513436', '美姑县', '', '', '', '', 3, 1, ''), ('513437', '5134', '00,51,5134', '雷波县', '51', '四川省', '5134', '凉山彝族自治州', '513437', '雷波县', '', '', '', '', 3, 1, ''), ('52', '00', '00', '贵州省', '52', '贵州省', '', '', '', '', '', '', '', '', 1, 1, ''), ('5201', '52', '00,52', '贵阳市', '52', '贵州省', '5201', '贵阳市', '', '', '', '', '', '', 2, 1, ''), ('520102', '5201', '00,52,5201', '南明区', '52', '贵州省', '5201', '贵阳市', '520102', '南明区', '', '', '', '', 3, 1, ''), ('520103', '5201', '00,52,5201', '云岩区', '52', '贵州省', '5201', '贵阳市', '520103', '云岩区', '', '', '', '', 3, 1, ''), ('520111', '5201', '00,52,5201', '花溪区', '52', '贵州省', '5201', '贵阳市', '520111', '花溪区', '', '', '', '', 3, 1, ''), ('520112', '5201', '00,52,5201', '乌当区', '52', '贵州省', '5201', '贵阳市', '520112', '乌当区', '', '', '', '', 3, 1, ''), ('520113', '5201', '00,52,5201', '白云区', '52', '贵州省', '5201', '贵阳市', '520113', '白云区', '', '', '', '', 3, 1, ''), ('520115', '5201', '00,52,5201', '观山湖区', '52', '贵州省', '5201', '贵阳市', '520115', '观山湖区', '', '', '', '', 3, 1, ''), ('520121', '5201', '00,52,5201', '开阳县', '52', '贵州省', '5201', '贵阳市', '520121', '开阳县', '', '', '', '', 3, 1, ''), ('520122', '5201', '00,52,5201', '息烽县', '52', '贵州省', '5201', '贵阳市', '520122', '息烽县', '', '', '', '', 3, 1, ''), ('520123', '5201', '00,52,5201', '修文县', '52', '贵州省', '5201', '贵阳市', '520123', '修文县', '', '', '', '', 3, 1, ''), ('520181', '5201', '00,52,5201', '清镇市', '52', '贵州省', '5201', '贵阳市', '520181', '清镇市', '', '', '', '', 3, 1, ''), ('5202', '52', '00,52', '六盘水市', '52', '贵州省', '5202', '六盘水市', '', '', '', '', '', '', 2, 1, ''), ('520201', '5202', '00,52,5202', '钟山区', '52', '贵州省', '5202', '六盘水市', '520201', '钟山区', '', '', '', '', 3, 1, ''), ('520203', '5202', '00,52,5202', '六枝特区', '52', '贵州省', '5202', '六盘水市', '520203', '六枝特区', '', '', '', '', 3, 1, ''), ('520221', '5202', '00,52,5202', '水城县', '52', '贵州省', '5202', '六盘水市', '520221', '水城县', '', '', '', '', 3, 1, ''), ('520281', '5202', '00,52,5202', '盘州市', '52', '贵州省', '5202', '六盘水市', '520281', '盘州市', '', '', '', '', 3, 1, ''), ('5203', '52', '00,52', '遵义市', '52', '贵州省', '5203', '遵义市', '', '', '', '', '', '', 2, 1, ''), ('520302', '5203', '00,52,5203', '红花岗区', '52', '贵州省', '5203', '遵义市', '520302', '红花岗区', '', '', '', '', 3, 1, ''), ('520303', '5203', '00,52,5203', '汇川区', '52', '贵州省', '5203', '遵义市', '520303', '汇川区', '', '', '', '', 3, 1, ''), ('520304', '5203', '00,52,5203', '播州区', '52', '贵州省', '5203', '遵义市', '520304', '播州区', '', '', '', '', 3, 1, ''), ('520322', '5203', '00,52,5203', '桐梓县', '52', '贵州省', '5203', '遵义市', '520322', '桐梓县', '', '', '', '', 3, 1, ''), ('520323', '5203', '00,52,5203', '绥阳县', '52', '贵州省', '5203', '遵义市', '520323', '绥阳县', '', '', '', '', 3, 1, ''), ('520324', '5203', '00,52,5203', '正安县', '52', '贵州省', '5203', '遵义市', '520324', '正安县', '', '', '', '', 3, 1, ''), ('520325', '5203', '00,52,5203', '道真仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520325', '道真仡佬族苗族自治县', '', '', '', '', 3, 1, ''), ('520326', '5203', '00,52,5203', '务川仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520326', '务川仡佬族苗族自治县', '', '', '', '', 3, 1, ''), ('520327', '5203', '00,52,5203', '凤冈县', '52', '贵州省', '5203', '遵义市', '520327', '凤冈县', '', '', '', '', 3, 1, ''), ('520328', '5203', '00,52,5203', '湄潭县', '52', '贵州省', '5203', '遵义市', '520328', '湄潭县', '', '', '', '', 3, 1, ''), ('520329', '5203', '00,52,5203', '余庆县', '52', '贵州省', '5203', '遵义市', '520329', '余庆县', '', '', '', '', 3, 1, ''), ('520330', '5203', '00,52,5203', '习水县', '52', '贵州省', '5203', '遵义市', '520330', '习水县', '', '', '', '', 3, 1, ''), ('520381', '5203', '00,52,5203', '赤水市', '52', '贵州省', '5203', '遵义市', '520381', '赤水市', '', '', '', '', 3, 1, ''), ('520382', '5203', '00,52,5203', '仁怀市', '52', '贵州省', '5203', '遵义市', '520382', '仁怀市', '', '', '', '', 3, 1, ''), ('5204', '52', '00,52', '安顺市', '52', '贵州省', '5204', '安顺市', '', '', '', '', '', '', 2, 1, ''), ('520402', '5204', '00,52,5204', '西秀区', '52', '贵州省', '5204', '安顺市', '520402', '西秀区', '', '', '', '', 3, 1, ''), ('520403', '5204', '00,52,5204', '平坝区', '52', '贵州省', '5204', '安顺市', '520403', '平坝区', '', '', '', '', 3, 1, ''), ('520422', '5204', '00,52,5204', '普定县', '52', '贵州省', '5204', '安顺市', '520422', '普定县', '', '', '', '', 3, 1, ''), ('520423', '5204', '00,52,5204', '镇宁布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520423', '镇宁布依族苗族自治县', '', '', '', '', 3, 1, ''), ('520424', '5204', '00,52,5204', '关岭布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520424', '关岭布依族苗族自治县', '', '', '', '', 3, 1, ''), ('520425', '5204', '00,52,5204', '紫云苗族布依族自治县', '52', '贵州省', '5204', '安顺市', '520425', '紫云苗族布依族自治县', '', '', '', '', 3, 1, ''), ('5205', '52', '00,52', '毕节市', '52', '贵州省', '5205', '毕节市', '', '', '', '', '', '', 2, 1, ''), ('520502', '5205', '00,52,5205', '七星关区', '52', '贵州省', '5205', '毕节市', '520502', '七星关区', '', '', '', '', 3, 1, ''), ('520521', '5205', '00,52,5205', '大方县', '52', '贵州省', '5205', '毕节市', '520521', '大方县', '', '', '', '', 3, 1, ''), ('520522', '5205', '00,52,5205', '黔西县', '52', '贵州省', '5205', '毕节市', '520522', '黔西县', '', '', '', '', 3, 1, ''), ('520523', '5205', '00,52,5205', '金沙县', '52', '贵州省', '5205', '毕节市', '520523', '金沙县', '', '', '', '', 3, 1, ''), ('520524', '5205', '00,52,5205', '织金县', '52', '贵州省', '5205', '毕节市', '520524', '织金县', '', '', '', '', 3, 1, ''), ('520525', '5205', '00,52,5205', '纳雍县', '52', '贵州省', '5205', '毕节市', '520525', '纳雍县', '', '', '', '', 3, 1, ''), ('520526', '5205', '00,52,5205', '威宁彝族回族苗族自治县', '52', '贵州省', '5205', '毕节市', '520526', '威宁彝族回族苗族自治县', '', '', '', '', 3, 1, ''), ('520527', '5205', '00,52,5205', '赫章县', '52', '贵州省', '5205', '毕节市', '520527', '赫章县', '', '', '', '', 3, 1, ''), ('5206', '52', '00,52', '铜仁市', '52', '贵州省', '5206', '铜仁市', '', '', '', '', '', '', 2, 1, ''), ('520602', '5206', '00,52,5206', '碧江区', '52', '贵州省', '5206', '铜仁市', '520602', '碧江区', '', '', '', '', 3, 1, ''), ('520603', '5206', '00,52,5206', '万山区', '52', '贵州省', '5206', '铜仁市', '520603', '万山区', '', '', '', '', 3, 1, ''), ('520621', '5206', '00,52,5206', '江口县', '52', '贵州省', '5206', '铜仁市', '520621', '江口县', '', '', '', '', 3, 1, ''), ('520622', '5206', '00,52,5206', '玉屏侗族自治县', '52', '贵州省', '5206', '铜仁市', '520622', '玉屏侗族自治县', '', '', '', '', 3, 1, ''), ('520623', '5206', '00,52,5206', '石阡县', '52', '贵州省', '5206', '铜仁市', '520623', '石阡县', '', '', '', '', 3, 1, ''), ('520624', '5206', '00,52,5206', '思南县', '52', '贵州省', '5206', '铜仁市', '520624', '思南县', '', '', '', '', 3, 1, ''), ('520625', '5206', '00,52,5206', '印江土家族苗族自治县', '52', '贵州省', '5206', '铜仁市', '520625', '印江土家族苗族自治县', '', '', '', '', 3, 1, ''), ('520626', '5206', '00,52,5206', '德江县', '52', '贵州省', '5206', '铜仁市', '520626', '德江县', '', '', '', '', 3, 1, ''), ('520627', '5206', '00,52,5206', '沿河土家族自治县', '52', '贵州省', '5206', '铜仁市', '520627', '沿河土家族自治县', '', '', '', '', 3, 1, ''), ('520628', '5206', '00,52,5206', '松桃苗族自治县', '52', '贵州省', '5206', '铜仁市', '520628', '松桃苗族自治县', '', '', '', '', 3, 1, ''), ('5223', '52', '00,52', '黔西南布依族苗族自治州', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('522301', '5223', '00,52,5223', '兴义市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522301', '兴义市', '', '', '', '', 3, 1, ''), ('522302', '5223', '00,52,5223', '兴仁市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522302', '兴仁市', '', '', '', '', 3, 1, ''), ('522323', '5223', '00,52,5223', '普安县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522323', '普安县', '', '', '', '', 3, 1, ''), ('522324', '5223', '00,52,5223', '晴隆县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522324', '晴隆县', '', '', '', '', 3, 1, ''), ('522325', '5223', '00,52,5223', '贞丰县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522325', '贞丰县', '', '', '', '', 3, 1, ''), ('522326', '5223', '00,52,5223', '望谟县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522326', '望谟县', '', '', '', '', 3, 1, ''), ('522327', '5223', '00,52,5223', '册亨县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522327', '册亨县', '', '', '', '', 3, 1, ''), ('522328', '5223', '00,52,5223', '安龙县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522328', '安龙县', '', '', '', '', 3, 1, ''), ('5226', '52', '00,52', '黔东南苗族侗族自治州', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '', '', '', '', '', '', 2, 1, ''), ('522601', '5226', '00,52,5226', '凯里市', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522601', '凯里市', '', '', '', '', 3, 1, ''), ('522622', '5226', '00,52,5226', '黄平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522622', '黄平县', '', '', '', '', 3, 1, ''), ('522623', '5226', '00,52,5226', '施秉县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522623', '施秉县', '', '', '', '', 3, 1, ''), ('522624', '5226', '00,52,5226', '三穗县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522624', '三穗县', '', '', '', '', 3, 1, ''), ('522625', '5226', '00,52,5226', '镇远县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522625', '镇远县', '', '', '', '', 3, 1, ''), ('522626', '5226', '00,52,5226', '岑巩县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522626', '岑巩县', '', '', '', '', 3, 1, ''), ('522627', '5226', '00,52,5226', '天柱县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522627', '天柱县', '', '', '', '', 3, 1, ''), ('522628', '5226', '00,52,5226', '锦屏县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522628', '锦屏县', '', '', '', '', 3, 1, ''), ('522629', '5226', '00,52,5226', '剑河县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522629', '剑河县', '', '', '', '', 3, 1, ''), ('522630', '5226', '00,52,5226', '台江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522630', '台江县', '', '', '', '', 3, 1, ''), ('522631', '5226', '00,52,5226', '黎平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522631', '黎平县', '', '', '', '', 3, 1, ''), ('522632', '5226', '00,52,5226', '榕江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522632', '榕江县', '', '', '', '', 3, 1, ''), ('522633', '5226', '00,52,5226', '从江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522633', '从江县', '', '', '', '', 3, 1, ''), ('522634', '5226', '00,52,5226', '雷山县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522634', '雷山县', '', '', '', '', 3, 1, ''), ('522635', '5226', '00,52,5226', '麻江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522635', '麻江县', '', '', '', '', 3, 1, ''), ('522636', '5226', '00,52,5226', '丹寨县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522636', '丹寨县', '', '', '', '', 3, 1, ''), ('5227', '52', '00,52', '黔南布依族苗族自治州', '52', '贵州省', '5227', '黔南布依族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('522701', '5227', '00,52,5227', '都匀市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522701', '都匀市', '', '', '', '', 3, 1, ''), ('522702', '5227', '00,52,5227', '福泉市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522702', '福泉市', '', '', '', '', 3, 1, ''), ('522722', '5227', '00,52,5227', '荔波县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522722', '荔波县', '', '', '', '', 3, 1, ''), ('522723', '5227', '00,52,5227', '贵定县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522723', '贵定县', '', '', '', '', 3, 1, ''), ('522725', '5227', '00,52,5227', '瓮安县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522725', '瓮安县', '', '', '', '', 3, 1, ''), ('522726', '5227', '00,52,5227', '独山县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522726', '独山县', '', '', '', '', 3, 1, ''), ('522727', '5227', '00,52,5227', '平塘县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522727', '平塘县', '', '', '', '', 3, 1, ''), ('522728', '5227', '00,52,5227', '罗甸县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522728', '罗甸县', '', '', '', '', 3, 1, ''), ('522729', '5227', '00,52,5227', '长顺县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522729', '长顺县', '', '', '', '', 3, 1, ''), ('522730', '5227', '00,52,5227', '龙里县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522730', '龙里县', '', '', '', '', 3, 1, ''), ('522731', '5227', '00,52,5227', '惠水县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522731', '惠水县', '', '', '', '', 3, 1, ''), ('522732', '5227', '00,52,5227', '三都水族自治县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522732', '三都水族自治县', '', '', '', '', 3, 1, ''), ('53', '00', '00', '云南省', '53', '云南省', '', '', '', '', '', '', '', '', 1, 1, ''), ('5301', '53', '00,53', '昆明市', '53', '云南省', '5301', '昆明市', '', '', '', '', '', '', 2, 1, ''), ('530102', '5301', '00,53,5301', '五华区', '53', '云南省', '5301', '昆明市', '530102', '五华区', '', '', '', '', 3, 1, ''), ('530103', '5301', '00,53,5301', '盘龙区', '53', '云南省', '5301', '昆明市', '530103', '盘龙区', '', '', '', '', 3, 1, ''), ('530111', '5301', '00,53,5301', '官渡区', '53', '云南省', '5301', '昆明市', '530111', '官渡区', '', '', '', '', 3, 1, ''), ('530112', '5301', '00,53,5301', '西山区', '53', '云南省', '5301', '昆明市', '530112', '西山区', '', '', '', '', 3, 1, ''), ('530113', '5301', '00,53,5301', '东川区', '53', '云南省', '5301', '昆明市', '530113', '东川区', '', '', '', '', 3, 1, ''), ('530114', '5301', '00,53,5301', '呈贡区', '53', '云南省', '5301', '昆明市', '530114', '呈贡区', '', '', '', '', 3, 1, ''), ('530115', '5301', '00,53,5301', '晋宁区', '53', '云南省', '5301', '昆明市', '530115', '晋宁区', '', '', '', '', 3, 1, ''), ('530124', '5301', '00,53,5301', '富民县', '53', '云南省', '5301', '昆明市', '530124', '富民县', '', '', '', '', 3, 1, ''), ('530125', '5301', '00,53,5301', '宜良县', '53', '云南省', '5301', '昆明市', '530125', '宜良县', '', '', '', '', 3, 1, ''), ('530126', '5301', '00,53,5301', '石林彝族自治县', '53', '云南省', '5301', '昆明市', '530126', '石林彝族自治县', '', '', '', '', 3, 1, ''), ('530127', '5301', '00,53,5301', '嵩明县', '53', '云南省', '5301', '昆明市', '530127', '嵩明县', '', '', '', '', 3, 1, ''), ('530128', '5301', '00,53,5301', '禄劝彝族苗族自治县', '53', '云南省', '5301', '昆明市', '530128', '禄劝彝族苗族自治县', '', '', '', '', 3, 1, ''), ('530129', '5301', '00,53,5301', '寻甸回族彝族自治县', '53', '云南省', '5301', '昆明市', '530129', '寻甸回族彝族自治县', '', '', '', '', 3, 1, ''), ('530181', '5301', '00,53,5301', '安宁市', '53', '云南省', '5301', '昆明市', '530181', '安宁市', '', '', '', '', 3, 1, ''), ('5303', '53', '00,53', '曲靖市', '53', '云南省', '5303', '曲靖市', '', '', '', '', '', '', 2, 1, ''), ('530302', '5303', '00,53,5303', '麒麟区', '53', '云南省', '5303', '曲靖市', '530302', '麒麟区', '', '', '', '', 3, 1, ''), ('530303', '5303', '00,53,5303', '沾益区', '53', '云南省', '5303', '曲靖市', '530303', '沾益区', '', '', '', '', 3, 1, ''), ('530304', '5303', '00,53,5303', '马龙区', '53', '云南省', '5303', '曲靖市', '530304', '马龙区', '', '', '', '', 3, 1, ''), ('530322', '5303', '00,53,5303', '陆良县', '53', '云南省', '5303', '曲靖市', '530322', '陆良县', '', '', '', '', 3, 1, ''), ('530323', '5303', '00,53,5303', '师宗县', '53', '云南省', '5303', '曲靖市', '530323', '师宗县', '', '', '', '', 3, 1, ''), ('530324', '5303', '00,53,5303', '罗平县', '53', '云南省', '5303', '曲靖市', '530324', '罗平县', '', '', '', '', 3, 1, ''), ('530325', '5303', '00,53,5303', '富源县', '53', '云南省', '5303', '曲靖市', '530325', '富源县', '', '', '', '', 3, 1, ''), ('530326', '5303', '00,53,5303', '会泽县', '53', '云南省', '5303', '曲靖市', '530326', '会泽县', '', '', '', '', 3, 1, ''), ('530381', '5303', '00,53,5303', '宣威市', '53', '云南省', '5303', '曲靖市', '530381', '宣威市', '', '', '', '', 3, 1, ''), ('5304', '53', '00,53', '玉溪市', '53', '云南省', '5304', '玉溪市', '', '', '', '', '', '', 2, 1, ''), ('530402', '5304', '00,53,5304', '红塔区', '53', '云南省', '5304', '玉溪市', '530402', '红塔区', '', '', '', '', 3, 1, ''), ('530403', '5304', '00,53,5304', '江川区', '53', '云南省', '5304', '玉溪市', '530403', '江川区', '', '', '', '', 3, 1, ''), ('530423', '5304', '00,53,5304', '通海县', '53', '云南省', '5304', '玉溪市', '530423', '通海县', '', '', '', '', 3, 1, ''), ('530424', '5304', '00,53,5304', '华宁县', '53', '云南省', '5304', '玉溪市', '530424', '华宁县', '', '', '', '', 3, 1, ''), ('530425', '5304', '00,53,5304', '易门县', '53', '云南省', '5304', '玉溪市', '530425', '易门县', '', '', '', '', 3, 1, ''), ('530426', '5304', '00,53,5304', '峨山彝族自治县', '53', '云南省', '5304', '玉溪市', '530426', '峨山彝族自治县', '', '', '', '', 3, 1, ''), ('530427', '5304', '00,53,5304', '新平彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530427', '新平彝族傣族自治县', '', '', '', '', 3, 1, ''), ('530428', '5304', '00,53,5304', '元江哈尼族彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530428', '元江哈尼族彝族傣族自治县', '', '', '', '', 3, 1, ''), ('530481', '5304', '00,53,5304', '澄江市', '53', '云南省', '5304', '玉溪市', '530481', '澄江市', '', '', '', '', 3, 1, ''), ('5305', '53', '00,53', '保山市', '53', '云南省', '5305', '保山市', '', '', '', '', '', '', 2, 1, ''), ('530502', '5305', '00,53,5305', '隆阳区', '53', '云南省', '5305', '保山市', '530502', '隆阳区', '', '', '', '', 3, 1, ''), ('530521', '5305', '00,53,5305', '施甸县', '53', '云南省', '5305', '保山市', '530521', '施甸县', '', '', '', '', 3, 1, ''), ('530523', '5305', '00,53,5305', '龙陵县', '53', '云南省', '5305', '保山市', '530523', '龙陵县', '', '', '', '', 3, 1, ''), ('530524', '5305', '00,53,5305', '昌宁县', '53', '云南省', '5305', '保山市', '530524', '昌宁县', '', '', '', '', 3, 1, ''), ('530581', '5305', '00,53,5305', '腾冲市', '53', '云南省', '5305', '保山市', '530581', '腾冲市', '', '', '', '', 3, 1, ''), ('5306', '53', '00,53', '昭通市', '53', '云南省', '5306', '昭通市', '', '', '', '', '', '', 2, 1, ''), ('530602', '5306', '00,53,5306', '昭阳区', '53', '云南省', '5306', '昭通市', '530602', '昭阳区', '', '', '', '', 3, 1, ''), ('530621', '5306', '00,53,5306', '鲁甸县', '53', '云南省', '5306', '昭通市', '530621', '鲁甸县', '', '', '', '', 3, 1, ''), ('530622', '5306', '00,53,5306', '巧家县', '53', '云南省', '5306', '昭通市', '530622', '巧家县', '', '', '', '', 3, 1, ''), ('530623', '5306', '00,53,5306', '盐津县', '53', '云南省', '5306', '昭通市', '530623', '盐津县', '', '', '', '', 3, 1, ''), ('530624', '5306', '00,53,5306', '大关县', '53', '云南省', '5306', '昭通市', '530624', '大关县', '', '', '', '', 3, 1, ''), ('530625', '5306', '00,53,5306', '永善县', '53', '云南省', '5306', '昭通市', '530625', '永善县', '', '', '', '', 3, 1, ''), ('530626', '5306', '00,53,5306', '绥江县', '53', '云南省', '5306', '昭通市', '530626', '绥江县', '', '', '', '', 3, 1, ''), ('530627', '5306', '00,53,5306', '镇雄县', '53', '云南省', '5306', '昭通市', '530627', '镇雄县', '', '', '', '', 3, 1, ''), ('530628', '5306', '00,53,5306', '彝良县', '53', '云南省', '5306', '昭通市', '530628', '彝良县', '', '', '', '', 3, 1, ''), ('530629', '5306', '00,53,5306', '威信县', '53', '云南省', '5306', '昭通市', '530629', '威信县', '', '', '', '', 3, 1, ''), ('530681', '5306', '00,53,5306', '水富市', '53', '云南省', '5306', '昭通市', '530681', '水富市', '', '', '', '', 3, 1, ''), ('5307', '53', '00,53', '丽江市', '53', '云南省', '5307', '丽江市', '', '', '', '', '', '', 2, 1, ''), ('530702', '5307', '00,53,5307', '古城区', '53', '云南省', '5307', '丽江市', '530702', '古城区', '', '', '', '', 3, 1, ''), ('530721', '5307', '00,53,5307', '玉龙纳西族自治县', '53', '云南省', '5307', '丽江市', '530721', '玉龙纳西族自治县', '', '', '', '', 3, 1, ''), ('530722', '5307', '00,53,5307', '永胜县', '53', '云南省', '5307', '丽江市', '530722', '永胜县', '', '', '', '', 3, 1, ''), ('530723', '5307', '00,53,5307', '华坪县', '53', '云南省', '5307', '丽江市', '530723', '华坪县', '', '', '', '', 3, 1, ''), ('530724', '5307', '00,53,5307', '宁蒗彝族自治县', '53', '云南省', '5307', '丽江市', '530724', '宁蒗彝族自治县', '', '', '', '', 3, 1, ''), ('5308', '53', '00,53', '普洱市', '53', '云南省', '5308', '普洱市', '', '', '', '', '', '', 2, 1, ''), ('530802', '5308', '00,53,5308', '思茅区', '53', '云南省', '5308', '普洱市', '530802', '思茅区', '', '', '', '', 3, 1, ''), ('530821', '5308', '00,53,5308', '宁洱哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530821', '宁洱哈尼族彝族自治县', '', '', '', '', 3, 1, ''), ('530822', '5308', '00,53,5308', '墨江哈尼族自治县', '53', '云南省', '5308', '普洱市', '530822', '墨江哈尼族自治县', '', '', '', '', 3, 1, ''), ('530823', '5308', '00,53,5308', '景东彝族自治县', '53', '云南省', '5308', '普洱市', '530823', '景东彝族自治县', '', '', '', '', 3, 1, ''), ('530824', '5308', '00,53,5308', '景谷傣族彝族自治县', '53', '云南省', '5308', '普洱市', '530824', '景谷傣族彝族自治县', '', '', '', '', 3, 1, ''), ('530825', '5308', '00,53,5308', '镇沅彝族哈尼族拉祜族自治县', '53', '云南省', '5308', '普洱市', '530825', '镇沅彝族哈尼族拉祜族自治县', '', '', '', '', 3, 1, ''), ('530826', '5308', '00,53,5308', '江城哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530826', '江城哈尼族彝族自治县', '', '', '', '', 3, 1, ''), ('530827', '5308', '00,53,5308', '孟连傣族拉祜族佤族自治县', '53', '云南省', '5308', '普洱市', '530827', '孟连傣族拉祜族佤族自治县', '', '', '', '', 3, 1, ''), ('530828', '5308', '00,53,5308', '澜沧拉祜族自治县', '53', '云南省', '5308', '普洱市', '530828', '澜沧拉祜族自治县', '', '', '', '', 3, 1, ''), ('530829', '5308', '00,53,5308', '西盟佤族自治县', '53', '云南省', '5308', '普洱市', '530829', '西盟佤族自治县', '', '', '', '', 3, 1, ''), ('5309', '53', '00,53', '临沧市', '53', '云南省', '5309', '临沧市', '', '', '', '', '', '', 2, 1, ''), ('530902', '5309', '00,53,5309', '临翔区', '53', '云南省', '5309', '临沧市', '530902', '临翔区', '', '', '', '', 3, 1, ''), ('530921', '5309', '00,53,5309', '凤庆县', '53', '云南省', '5309', '临沧市', '530921', '凤庆县', '', '', '', '', 3, 1, ''), ('530922', '5309', '00,53,5309', '云县', '53', '云南省', '5309', '临沧市', '530922', '云县', '', '', '', '', 3, 1, ''), ('530923', '5309', '00,53,5309', '永德县', '53', '云南省', '5309', '临沧市', '530923', '永德县', '', '', '', '', 3, 1, ''), ('530924', '5309', '00,53,5309', '镇康县', '53', '云南省', '5309', '临沧市', '530924', '镇康县', '', '', '', '', 3, 1, ''), ('530925', '5309', '00,53,5309', '双江拉祜族佤族布朗族傣族自治县', '53', '云南省', '5309', '临沧市', '530925', '双江拉祜族佤族布朗族傣族自治县', '', '', '', '', 3, 1, ''), ('530926', '5309', '00,53,5309', '耿马傣族佤族自治县', '53', '云南省', '5309', '临沧市', '530926', '耿马傣族佤族自治县', '', '', '', '', 3, 1, ''), ('530927', '5309', '00,53,5309', '沧源佤族自治县', '53', '云南省', '5309', '临沧市', '530927', '沧源佤族自治县', '', '', '', '', 3, 1, ''), ('5323', '53', '00,53', '楚雄彝族自治州', '53', '云南省', '5323', '楚雄彝族自治州', '', '', '', '', '', '', 2, 1, ''), ('532301', '5323', '00,53,5323', '楚雄市', '53', '云南省', '5323', '楚雄彝族自治州', '532301', '楚雄市', '', '', '', '', 3, 1, ''), ('532322', '5323', '00,53,5323', '双柏县', '53', '云南省', '5323', '楚雄彝族自治州', '532322', '双柏县', '', '', '', '', 3, 1, ''), ('532323', '5323', '00,53,5323', '牟定县', '53', '云南省', '5323', '楚雄彝族自治州', '532323', '牟定县', '', '', '', '', 3, 1, ''), ('532324', '5323', '00,53,5323', '南华县', '53', '云南省', '5323', '楚雄彝族自治州', '532324', '南华县', '', '', '', '', 3, 1, ''), ('532325', '5323', '00,53,5323', '姚安县', '53', '云南省', '5323', '楚雄彝族自治州', '532325', '姚安县', '', '', '', '', 3, 1, ''), ('532326', '5323', '00,53,5323', '大姚县', '53', '云南省', '5323', '楚雄彝族自治州', '532326', '大姚县', '', '', '', '', 3, 1, ''), ('532327', '5323', '00,53,5323', '永仁县', '53', '云南省', '5323', '楚雄彝族自治州', '532327', '永仁县', '', '', '', '', 3, 1, ''), ('532328', '5323', '00,53,5323', '元谋县', '53', '云南省', '5323', '楚雄彝族自治州', '532328', '元谋县', '', '', '', '', 3, 1, ''), ('532329', '5323', '00,53,5323', '武定县', '53', '云南省', '5323', '楚雄彝族自治州', '532329', '武定县', '', '', '', '', 3, 1, ''), ('532331', '5323', '00,53,5323', '禄丰县', '53', '云南省', '5323', '楚雄彝族自治州', '532331', '禄丰县', '', '', '', '', 3, 1, ''), ('5325', '53', '00,53', '红河哈尼族彝族自治州', '53', '云南省', '5325', '红河哈尼族彝族自治州', '', '', '', '', '', '', 2, 1, ''), ('532501', '5325', '00,53,5325', '个旧市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532501', '个旧市', '', '', '', '', 3, 1, ''), ('532502', '5325', '00,53,5325', '开远市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532502', '开远市', '', '', '', '', 3, 1, ''), ('532503', '5325', '00,53,5325', '蒙自市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532503', '蒙自市', '', '', '', '', 3, 1, ''), ('532504', '5325', '00,53,5325', '弥勒市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532504', '弥勒市', '', '', '', '', 3, 1, ''), ('532523', '5325', '00,53,5325', '屏边苗族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532523', '屏边苗族自治县', '', '', '', '', 3, 1, ''), ('532524', '5325', '00,53,5325', '建水县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532524', '建水县', '', '', '', '', 3, 1, ''), ('532525', '5325', '00,53,5325', '石屏县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532525', '石屏县', '', '', '', '', 3, 1, ''), ('532527', '5325', '00,53,5325', '泸西县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532527', '泸西县', '', '', '', '', 3, 1, ''), ('532528', '5325', '00,53,5325', '元阳县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532528', '元阳县', '', '', '', '', 3, 1, ''), ('532529', '5325', '00,53,5325', '红河县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532529', '红河县', '', '', '', '', 3, 1, ''), ('532530', '5325', '00,53,5325', '金平苗族瑶族傣族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532530', '金平苗族瑶族傣族自治县', '', '', '', '', 3, 1, ''), ('532531', '5325', '00,53,5325', '绿春县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532531', '绿春县', '', '', '', '', 3, 1, ''), ('532532', '5325', '00,53,5325', '河口瑶族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532532', '河口瑶族自治县', '', '', '', '', 3, 1, ''), ('5326', '53', '00,53', '文山壮族苗族自治州', '53', '云南省', '5326', '文山壮族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('532601', '5326', '00,53,5326', '文山市', '53', '云南省', '5326', '文山壮族苗族自治州', '532601', '文山市', '', '', '', '', 3, 1, ''), ('532622', '5326', '00,53,5326', '砚山县', '53', '云南省', '5326', '文山壮族苗族自治州', '532622', '砚山县', '', '', '', '', 3, 1, ''), ('532623', '5326', '00,53,5326', '西畴县', '53', '云南省', '5326', '文山壮族苗族自治州', '532623', '西畴县', '', '', '', '', 3, 1, ''), ('532624', '5326', '00,53,5326', '麻栗坡县', '53', '云南省', '5326', '文山壮族苗族自治州', '532624', '麻栗坡县', '', '', '', '', 3, 1, ''), ('532625', '5326', '00,53,5326', '马关县', '53', '云南省', '5326', '文山壮族苗族自治州', '532625', '马关县', '', '', '', '', 3, 1, ''), ('532626', '5326', '00,53,5326', '丘北县', '53', '云南省', '5326', '文山壮族苗族自治州', '532626', '丘北县', '', '', '', '', 3, 1, ''), ('532627', '5326', '00,53,5326', '广南县', '53', '云南省', '5326', '文山壮族苗族自治州', '532627', '广南县', '', '', '', '', 3, 1, ''), ('532628', '5326', '00,53,5326', '富宁县', '53', '云南省', '5326', '文山壮族苗族自治州', '532628', '富宁县', '', '', '', '', 3, 1, ''), ('5328', '53', '00,53', '西双版纳傣族自治州', '53', '云南省', '5328', '西双版纳傣族自治州', '', '', '', '', '', '', 2, 1, ''), ('532801', '5328', '00,53,5328', '景洪市', '53', '云南省', '5328', '西双版纳傣族自治州', '532801', '景洪市', '', '', '', '', 3, 1, ''), ('532822', '5328', '00,53,5328', '勐海县', '53', '云南省', '5328', '西双版纳傣族自治州', '532822', '勐海县', '', '', '', '', 3, 1, ''), ('532823', '5328', '00,53,5328', '勐腊县', '53', '云南省', '5328', '西双版纳傣族自治州', '532823', '勐腊县', '', '', '', '', 3, 1, ''), ('5329', '53', '00,53', '大理白族自治州', '53', '云南省', '5329', '大理白族自治州', '', '', '', '', '', '', 2, 1, ''), ('532901', '5329', '00,53,5329', '大理市', '53', '云南省', '5329', '大理白族自治州', '532901', '大理市', '', '', '', '', 3, 1, ''), ('532922', '5329', '00,53,5329', '漾濞彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532922', '漾濞彝族自治县', '', '', '', '', 3, 1, ''), ('532923', '5329', '00,53,5329', '祥云县', '53', '云南省', '5329', '大理白族自治州', '532923', '祥云县', '', '', '', '', 3, 1, ''), ('532924', '5329', '00,53,5329', '宾川县', '53', '云南省', '5329', '大理白族自治州', '532924', '宾川县', '', '', '', '', 3, 1, ''), ('532925', '5329', '00,53,5329', '弥渡县', '53', '云南省', '5329', '大理白族自治州', '532925', '弥渡县', '', '', '', '', 3, 1, ''), ('532926', '5329', '00,53,5329', '南涧彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532926', '南涧彝族自治县', '', '', '', '', 3, 1, ''), ('532927', '5329', '00,53,5329', '巍山彝族回族自治县', '53', '云南省', '5329', '大理白族自治州', '532927', '巍山彝族回族自治县', '', '', '', '', 3, 1, ''), ('532928', '5329', '00,53,5329', '永平县', '53', '云南省', '5329', '大理白族自治州', '532928', '永平县', '', '', '', '', 3, 1, ''), ('532929', '5329', '00,53,5329', '云龙县', '53', '云南省', '5329', '大理白族自治州', '532929', '云龙县', '', '', '', '', 3, 1, ''), ('532930', '5329', '00,53,5329', '洱源县', '53', '云南省', '5329', '大理白族自治州', '532930', '洱源县', '', '', '', '', 3, 1, ''), ('532931', '5329', '00,53,5329', '剑川县', '53', '云南省', '5329', '大理白族自治州', '532931', '剑川县', '', '', '', '', 3, 1, ''), ('532932', '5329', '00,53,5329', '鹤庆县', '53', '云南省', '5329', '大理白族自治州', '532932', '鹤庆县', '', '', '', '', 3, 1, ''), ('5331', '53', '00,53', '德宏傣族景颇族自治州', '53', '云南省', '5331', '德宏傣族景颇族自治州', '', '', '', '', '', '', 2, 1, ''), ('533102', '5331', '00,53,5331', '瑞丽市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533102', '瑞丽市', '', '', '', '', 3, 1, ''), ('533103', '5331', '00,53,5331', '芒市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533103', '芒市', '', '', '', '', 3, 1, ''), ('533122', '5331', '00,53,5331', '梁河县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533122', '梁河县', '', '', '', '', 3, 1, ''), ('533123', '5331', '00,53,5331', '盈江县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533123', '盈江县', '', '', '', '', 3, 1, ''), ('533124', '5331', '00,53,5331', '陇川县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533124', '陇川县', '', '', '', '', 3, 1, ''), ('5333', '53', '00,53', '怒江傈僳族自治州', '53', '云南省', '5333', '怒江傈僳族自治州', '', '', '', '', '', '', 2, 1, ''), ('533301', '5333', '00,53,5333', '泸水市', '53', '云南省', '5333', '怒江傈僳族自治州', '533301', '泸水市', '', '', '', '', 3, 1, ''), ('533323', '5333', '00,53,5333', '福贡县', '53', '云南省', '5333', '怒江傈僳族自治州', '533323', '福贡县', '', '', '', '', 3, 1, ''), ('533324', '5333', '00,53,5333', '贡山独龙族怒族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533324', '贡山独龙族怒族自治县', '', '', '', '', 3, 1, ''), ('533325', '5333', '00,53,5333', '兰坪白族普米族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533325', '兰坪白族普米族自治县', '', '', '', '', 3, 1, ''), ('5334', '53', '00,53', '迪庆藏族自治州', '53', '云南省', '5334', '迪庆藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('533401', '5334', '00,53,5334', '香格里拉市', '53', '云南省', '5334', '迪庆藏族自治州', '533401', '香格里拉市', '', '', '', '', 3, 1, ''), ('533422', '5334', '00,53,5334', '德钦县', '53', '云南省', '5334', '迪庆藏族自治州', '533422', '德钦县', '', '', '', '', 3, 1, ''), ('533423', '5334', '00,53,5334', '维西傈僳族自治县', '53', '云南省', '5334', '迪庆藏族自治州', '533423', '维西傈僳族自治县', '', '', '', '', 3, 1, ''), ('54', '00', '00', '西藏自治区', '54', '西藏自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('5401', '54', '00,54', '拉萨市', '54', '西藏自治区', '5401', '拉萨市', '', '', '', '', '', '', 2, 1, ''), ('540102', '5401', '00,54,5401', '城关区', '54', '西藏自治区', '5401', '拉萨市', '540102', '城关区', '', '', '', '', 3, 1, ''), ('540103', '5401', '00,54,5401', '堆龙德庆区', '54', '西藏自治区', '5401', '拉萨市', '540103', '堆龙德庆区', '', '', '', '', 3, 1, ''), ('540104', '5401', '00,54,5401', '达孜区', '54', '西藏自治区', '5401', '拉萨市', '540104', '达孜区', '', '', '', '', 3, 1, ''), ('540121', '5401', '00,54,5401', '林周县', '54', '西藏自治区', '5401', '拉萨市', '540121', '林周县', '', '', '', '', 3, 1, ''), ('540122', '5401', '00,54,5401', '当雄县', '54', '西藏自治区', '5401', '拉萨市', '540122', '当雄县', '', '', '', '', 3, 1, ''), ('540123', '5401', '00,54,5401', '尼木县', '54', '西藏自治区', '5401', '拉萨市', '540123', '尼木县', '', '', '', '', 3, 1, ''), ('540124', '5401', '00,54,5401', '曲水县', '54', '西藏自治区', '5401', '拉萨市', '540124', '曲水县', '', '', '', '', 3, 1, ''), ('540127', '5401', '00,54,5401', '墨竹工卡县', '54', '西藏自治区', '5401', '拉萨市', '540127', '墨竹工卡县', '', '', '', '', 3, 1, ''), ('5402', '54', '00,54', '日喀则市', '54', '西藏自治区', '5402', '日喀则市', '', '', '', '', '', '', 2, 1, ''), ('540202', '5402', '00,54,5402', '桑珠孜区', '54', '西藏自治区', '5402', '日喀则市', '540202', '桑珠孜区', '', '', '', '', 3, 1, ''), ('540221', '5402', '00,54,5402', '南木林县', '54', '西藏自治区', '5402', '日喀则市', '540221', '南木林县', '', '', '', '', 3, 1, ''), ('540222', '5402', '00,54,5402', '江孜县', '54', '西藏自治区', '5402', '日喀则市', '540222', '江孜县', '', '', '', '', 3, 1, ''), ('540223', '5402', '00,54,5402', '定日县', '54', '西藏自治区', '5402', '日喀则市', '540223', '定日县', '', '', '', '', 3, 1, ''), ('540224', '5402', '00,54,5402', '萨迦县', '54', '西藏自治区', '5402', '日喀则市', '540224', '萨迦县', '', '', '', '', 3, 1, ''), ('540225', '5402', '00,54,5402', '拉孜县', '54', '西藏自治区', '5402', '日喀则市', '540225', '拉孜县', '', '', '', '', 3, 1, ''), ('540226', '5402', '00,54,5402', '昂仁县', '54', '西藏自治区', '5402', '日喀则市', '540226', '昂仁县', '', '', '', '', 3, 1, ''), ('540227', '5402', '00,54,5402', '谢通门县', '54', '西藏自治区', '5402', '日喀则市', '540227', '谢通门县', '', '', '', '', 3, 1, ''), ('540228', '5402', '00,54,5402', '白朗县', '54', '西藏自治区', '5402', '日喀则市', '540228', '白朗县', '', '', '', '', 3, 1, ''), ('540229', '5402', '00,54,5402', '仁布县', '54', '西藏自治区', '5402', '日喀则市', '540229', '仁布县', '', '', '', '', 3, 1, ''), ('540230', '5402', '00,54,5402', '康马县', '54', '西藏自治区', '5402', '日喀则市', '540230', '康马县', '', '', '', '', 3, 1, ''), ('540231', '5402', '00,54,5402', '定结县', '54', '西藏自治区', '5402', '日喀则市', '540231', '定结县', '', '', '', '', 3, 1, ''), ('540232', '5402', '00,54,5402', '仲巴县', '54', '西藏自治区', '5402', '日喀则市', '540232', '仲巴县', '', '', '', '', 3, 1, ''), ('540233', '5402', '00,54,5402', '亚东县', '54', '西藏自治区', '5402', '日喀则市', '540233', '亚东县', '', '', '', '', 3, 1, ''), ('540234', '5402', '00,54,5402', '吉隆县', '54', '西藏自治区', '5402', '日喀则市', '540234', '吉隆县', '', '', '', '', 3, 1, ''), ('540235', '5402', '00,54,5402', '聂拉木县', '54', '西藏自治区', '5402', '日喀则市', '540235', '聂拉木县', '', '', '', '', 3, 1, ''), ('540236', '5402', '00,54,5402', '萨嘎县', '54', '西藏自治区', '5402', '日喀则市', '540236', '萨嘎县', '', '', '', '', 3, 1, ''), ('540237', '5402', '00,54,5402', '岗巴县', '54', '西藏自治区', '5402', '日喀则市', '540237', '岗巴县', '', '', '', '', 3, 1, ''), ('5403', '54', '00,54', '昌都市', '54', '西藏自治区', '5403', '昌都市', '', '', '', '', '', '', 2, 1, ''), ('540302', '5403', '00,54,5403', '卡若区', '54', '西藏自治区', '5403', '昌都市', '540302', '卡若区', '', '', '', '', 3, 1, ''), ('540321', '5403', '00,54,5403', '江达县', '54', '西藏自治区', '5403', '昌都市', '540321', '江达县', '', '', '', '', 3, 1, ''), ('540322', '5403', '00,54,5403', '贡觉县', '54', '西藏自治区', '5403', '昌都市', '540322', '贡觉县', '', '', '', '', 3, 1, ''), ('540323', '5403', '00,54,5403', '类乌齐县', '54', '西藏自治区', '5403', '昌都市', '540323', '类乌齐县', '', '', '', '', 3, 1, ''), ('540324', '5403', '00,54,5403', '丁青县', '54', '西藏自治区', '5403', '昌都市', '540324', '丁青县', '', '', '', '', 3, 1, ''), ('540325', '5403', '00,54,5403', '察雅县', '54', '西藏自治区', '5403', '昌都市', '540325', '察雅县', '', '', '', '', 3, 1, ''), ('540326', '5403', '00,54,5403', '八宿县', '54', '西藏自治区', '5403', '昌都市', '540326', '八宿县', '', '', '', '', 3, 1, ''), ('540327', '5403', '00,54,5403', '左贡县', '54', '西藏自治区', '5403', '昌都市', '540327', '左贡县', '', '', '', '', 3, 1, ''), ('540328', '5403', '00,54,5403', '芒康县', '54', '西藏自治区', '5403', '昌都市', '540328', '芒康县', '', '', '', '', 3, 1, ''), ('540329', '5403', '00,54,5403', '洛隆县', '54', '西藏自治区', '5403', '昌都市', '540329', '洛隆县', '', '', '', '', 3, 1, ''), ('540330', '5403', '00,54,5403', '边坝县', '54', '西藏自治区', '5403', '昌都市', '540330', '边坝县', '', '', '', '', 3, 1, ''), ('5404', '54', '00,54', '林芝市', '54', '西藏自治区', '5404', '林芝市', '', '', '', '', '', '', 2, 1, ''), ('540402', '5404', '00,54,5404', '巴宜区', '54', '西藏自治区', '5404', '林芝市', '540402', '巴宜区', '', '', '', '', 3, 1, ''), ('540421', '5404', '00,54,5404', '工布江达县', '54', '西藏自治区', '5404', '林芝市', '540421', '工布江达县', '', '', '', '', 3, 1, ''), ('540422', '5404', '00,54,5404', '米林县', '54', '西藏自治区', '5404', '林芝市', '540422', '米林县', '', '', '', '', 3, 1, ''), ('540423', '5404', '00,54,5404', '墨脱县', '54', '西藏自治区', '5404', '林芝市', '540423', '墨脱县', '', '', '', '', 3, 1, ''), ('540424', '5404', '00,54,5404', '波密县', '54', '西藏自治区', '5404', '林芝市', '540424', '波密县', '', '', '', '', 3, 1, ''), ('540425', '5404', '00,54,5404', '察隅县', '54', '西藏自治区', '5404', '林芝市', '540425', '察隅县', '', '', '', '', 3, 1, ''), ('540426', '5404', '00,54,5404', '朗县', '54', '西藏自治区', '5404', '林芝市', '540426', '朗县', '', '', '', '', 3, 1, ''), ('5405', '54', '00,54', '山南市', '54', '西藏自治区', '5405', '山南市', '', '', '', '', '', '', 2, 1, ''), ('540502', '5405', '00,54,5405', '乃东区', '54', '西藏自治区', '5405', '山南市', '540502', '乃东区', '', '', '', '', 3, 1, ''), ('540521', '5405', '00,54,5405', '扎囊县', '54', '西藏自治区', '5405', '山南市', '540521', '扎囊县', '', '', '', '', 3, 1, ''), ('540522', '5405', '00,54,5405', '贡嘎县', '54', '西藏自治区', '5405', '山南市', '540522', '贡嘎县', '', '', '', '', 3, 1, ''), ('540523', '5405', '00,54,5405', '桑日县', '54', '西藏自治区', '5405', '山南市', '540523', '桑日县', '', '', '', '', 3, 1, ''), ('540524', '5405', '00,54,5405', '琼结县', '54', '西藏自治区', '5405', '山南市', '540524', '琼结县', '', '', '', '', 3, 1, ''), ('540525', '5405', '00,54,5405', '曲松县', '54', '西藏自治区', '5405', '山南市', '540525', '曲松县', '', '', '', '', 3, 1, ''), ('540526', '5405', '00,54,5405', '措美县', '54', '西藏自治区', '5405', '山南市', '540526', '措美县', '', '', '', '', 3, 1, ''), ('540527', '5405', '00,54,5405', '洛扎县', '54', '西藏自治区', '5405', '山南市', '540527', '洛扎县', '', '', '', '', 3, 1, ''), ('540528', '5405', '00,54,5405', '加查县', '54', '西藏自治区', '5405', '山南市', '540528', '加查县', '', '', '', '', 3, 1, ''), ('540529', '5405', '00,54,5405', '隆子县', '54', '西藏自治区', '5405', '山南市', '540529', '隆子县', '', '', '', '', 3, 1, ''), ('540530', '5405', '00,54,5405', '错那县', '54', '西藏自治区', '5405', '山南市', '540530', '错那县', '', '', '', '', 3, 1, ''), ('540531', '5405', '00,54,5405', '浪卡子县', '54', '西藏自治区', '5405', '山南市', '540531', '浪卡子县', '', '', '', '', 3, 1, ''), ('5406', '54', '00,54', '那曲市', '54', '西藏自治区', '5406', '那曲市', '', '', '', '', '', '', 2, 1, ''), ('540602', '5406', '00,54,5406', '色尼区', '54', '西藏自治区', '5406', '那曲市', '540602', '色尼区', '', '', '', '', 3, 1, ''), ('540621', '5406', '00,54,5406', '嘉黎县', '54', '西藏自治区', '5406', '那曲市', '540621', '嘉黎县', '', '', '', '', 3, 1, ''), ('540622', '5406', '00,54,5406', '比如县', '54', '西藏自治区', '5406', '那曲市', '540622', '比如县', '', '', '', '', 3, 1, ''), ('540623', '5406', '00,54,5406', '聂荣县', '54', '西藏自治区', '5406', '那曲市', '540623', '聂荣县', '', '', '', '', 3, 1, ''), ('540624', '5406', '00,54,5406', '安多县', '54', '西藏自治区', '5406', '那曲市', '540624', '安多县', '', '', '', '', 3, 1, ''), ('540625', '5406', '00,54,5406', '申扎县', '54', '西藏自治区', '5406', '那曲市', '540625', '申扎县', '', '', '', '', 3, 1, ''), ('540626', '5406', '00,54,5406', '索县', '54', '西藏自治区', '5406', '那曲市', '540626', '索县', '', '', '', '', 3, 1, ''), ('540627', '5406', '00,54,5406', '班戈县', '54', '西藏自治区', '5406', '那曲市', '540627', '班戈县', '', '', '', '', 3, 1, ''), ('540628', '5406', '00,54,5406', '巴青县', '54', '西藏自治区', '5406', '那曲市', '540628', '巴青县', '', '', '', '', 3, 1, ''), ('540629', '5406', '00,54,5406', '尼玛县', '54', '西藏自治区', '5406', '那曲市', '540629', '尼玛县', '', '', '', '', 3, 1, ''), ('540630', '5406', '00,54,5406', '双湖县', '54', '西藏自治区', '5406', '那曲市', '540630', '双湖县', '', '', '', '', 3, 1, ''), ('5425', '54', '00,54', '阿里地区', '54', '西藏自治区', '5425', '阿里地区', '', '', '', '', '', '', 2, 1, ''), ('542521', '5425', '00,54,5425', '普兰县', '54', '西藏自治区', '5425', '阿里地区', '542521', '普兰县', '', '', '', '', 3, 1, ''), ('542522', '5425', '00,54,5425', '札达县', '54', '西藏自治区', '5425', '阿里地区', '542522', '札达县', '', '', '', '', 3, 1, ''), ('542523', '5425', '00,54,5425', '噶尔县', '54', '西藏自治区', '5425', '阿里地区', '542523', '噶尔县', '', '', '', '', 3, 1, ''), ('542524', '5425', '00,54,5425', '日土县', '54', '西藏自治区', '5425', '阿里地区', '542524', '日土县', '', '', '', '', 3, 1, ''), ('542525', '5425', '00,54,5425', '革吉县', '54', '西藏自治区', '5425', '阿里地区', '542525', '革吉县', '', '', '', '', 3, 1, ''), ('542526', '5425', '00,54,5425', '改则县', '54', '西藏自治区', '5425', '阿里地区', '542526', '改则县', '', '', '', '', 3, 1, ''), ('542527', '5425', '00,54,5425', '措勤县', '54', '西藏自治区', '5425', '阿里地区', '542527', '措勤县', '', '', '', '', 3, 1, ''), ('61', '00', '00', '陕西省', '61', '陕西省', '', '', '', '', '', '', '', '', 1, 1, ''), ('6101', '61', '00,61', '西安市', '61', '陕西省', '6101', '西安市', '', '', '', '', '', '', 2, 1, ''), ('610102', '6101', '00,61,6101', '新城区', '61', '陕西省', '6101', '西安市', '610102', '新城区', '', '', '', '', 3, 1, ''), ('610103', '6101', '00,61,6101', '碑林区', '61', '陕西省', '6101', '西安市', '610103', '碑林区', '', '', '', '', 3, 1, ''), ('610104', '6101', '00,61,6101', '莲湖区', '61', '陕西省', '6101', '西安市', '610104', '莲湖区', '', '', '', '', 3, 1, ''), ('610111', '6101', '00,61,6101', '灞桥区', '61', '陕西省', '6101', '西安市', '610111', '灞桥区', '', '', '', '', 3, 1, ''), ('610112', '6101', '00,61,6101', '未央区', '61', '陕西省', '6101', '西安市', '610112', '未央区', '', '', '', '', 3, 1, ''), ('610113', '6101', '00,61,6101', '雁塔区', '61', '陕西省', '6101', '西安市', '610113', '雁塔区', '', '', '', '', 3, 1, ''), ('610114', '6101', '00,61,6101', '阎良区', '61', '陕西省', '6101', '西安市', '610114', '阎良区', '', '', '', '', 3, 1, ''), ('610115', '6101', '00,61,6101', '临潼区', '61', '陕西省', '6101', '西安市', '610115', '临潼区', '', '', '', '', 3, 1, ''), ('610116', '6101', '00,61,6101', '长安区', '61', '陕西省', '6101', '西安市', '610116', '长安区', '', '', '', '', 3, 1, ''), ('610117', '6101', '00,61,6101', '高陵区', '61', '陕西省', '6101', '西安市', '610117', '高陵区', '', '', '', '', 3, 1, ''), ('610118', '6101', '00,61,6101', '鄠邑区', '61', '陕西省', '6101', '西安市', '610118', '鄠邑区', '', '', '', '', 3, 1, ''), ('610122', '6101', '00,61,6101', '蓝田县', '61', '陕西省', '6101', '西安市', '610122', '蓝田县', '', '', '', '', 3, 1, ''), ('610124', '6101', '00,61,6101', '周至县', '61', '陕西省', '6101', '西安市', '610124', '周至县', '', '', '', '', 3, 1, ''), ('6102', '61', '00,61', '铜川市', '61', '陕西省', '6102', '铜川市', '', '', '', '', '', '', 2, 1, ''), ('610202', '6102', '00,61,6102', '王益区', '61', '陕西省', '6102', '铜川市', '610202', '王益区', '', '', '', '', 3, 1, ''), ('610203', '6102', '00,61,6102', '印台区', '61', '陕西省', '6102', '铜川市', '610203', '印台区', '', '', '', '', 3, 1, ''), ('610204', '6102', '00,61,6102', '耀州区', '61', '陕西省', '6102', '铜川市', '610204', '耀州区', '', '', '', '', 3, 1, ''), ('610222', '6102', '00,61,6102', '宜君县', '61', '陕西省', '6102', '铜川市', '610222', '宜君县', '', '', '', '', 3, 1, ''), ('6103', '61', '00,61', '宝鸡市', '61', '陕西省', '6103', '宝鸡市', '', '', '', '', '', '', 2, 1, ''), ('610302', '6103', '00,61,6103', '渭滨区', '61', '陕西省', '6103', '宝鸡市', '610302', '渭滨区', '', '', '', '', 3, 1, ''), ('610303', '6103', '00,61,6103', '金台区', '61', '陕西省', '6103', '宝鸡市', '610303', '金台区', '', '', '', '', 3, 1, ''), ('610304', '6103', '00,61,6103', '陈仓区', '61', '陕西省', '6103', '宝鸡市', '610304', '陈仓区', '', '', '', '', 3, 1, ''), ('610322', '6103', '00,61,6103', '凤翔县', '61', '陕西省', '6103', '宝鸡市', '610322', '凤翔县', '', '', '', '', 3, 1, ''), ('610323', '6103', '00,61,6103', '岐山县', '61', '陕西省', '6103', '宝鸡市', '610323', '岐山县', '', '', '', '', 3, 1, ''), ('610324', '6103', '00,61,6103', '扶风县', '61', '陕西省', '6103', '宝鸡市', '610324', '扶风县', '', '', '', '', 3, 1, ''), ('610326', '6103', '00,61,6103', '眉县', '61', '陕西省', '6103', '宝鸡市', '610326', '眉县', '', '', '', '', 3, 1, ''), ('610327', '6103', '00,61,6103', '陇县', '61', '陕西省', '6103', '宝鸡市', '610327', '陇县', '', '', '', '', 3, 1, ''), ('610328', '6103', '00,61,6103', '千阳县', '61', '陕西省', '6103', '宝鸡市', '610328', '千阳县', '', '', '', '', 3, 1, ''), ('610329', '6103', '00,61,6103', '麟游县', '61', '陕西省', '6103', '宝鸡市', '610329', '麟游县', '', '', '', '', 3, 1, ''), ('610330', '6103', '00,61,6103', '凤县', '61', '陕西省', '6103', '宝鸡市', '610330', '凤县', '', '', '', '', 3, 1, ''), ('610331', '6103', '00,61,6103', '太白县', '61', '陕西省', '6103', '宝鸡市', '610331', '太白县', '', '', '', '', 3, 1, ''), ('6104', '61', '00,61', '咸阳市', '61', '陕西省', '6104', '咸阳市', '', '', '', '', '', '', 2, 1, ''), ('610402', '6104', '00,61,6104', '秦都区', '61', '陕西省', '6104', '咸阳市', '610402', '秦都区', '', '', '', '', 3, 1, ''), ('610403', '6104', '00,61,6104', '杨陵区', '61', '陕西省', '6104', '咸阳市', '610403', '杨陵区', '', '', '', '', 3, 1, ''), ('610404', '6104', '00,61,6104', '渭城区', '61', '陕西省', '6104', '咸阳市', '610404', '渭城区', '', '', '', '', 3, 1, ''), ('610422', '6104', '00,61,6104', '三原县', '61', '陕西省', '6104', '咸阳市', '610422', '三原县', '', '', '', '', 3, 1, ''), ('610423', '6104', '00,61,6104', '泾阳县', '61', '陕西省', '6104', '咸阳市', '610423', '泾阳县', '', '', '', '', 3, 1, ''), ('610424', '6104', '00,61,6104', '乾县', '61', '陕西省', '6104', '咸阳市', '610424', '乾县', '', '', '', '', 3, 1, ''), ('610425', '6104', '00,61,6104', '礼泉县', '61', '陕西省', '6104', '咸阳市', '610425', '礼泉县', '', '', '', '', 3, 1, ''), ('610426', '6104', '00,61,6104', '永寿县', '61', '陕西省', '6104', '咸阳市', '610426', '永寿县', '', '', '', '', 3, 1, ''), ('610428', '6104', '00,61,6104', '长武县', '61', '陕西省', '6104', '咸阳市', '610428', '长武县', '', '', '', '', 3, 1, ''), ('610429', '6104', '00,61,6104', '旬邑县', '61', '陕西省', '6104', '咸阳市', '610429', '旬邑县', '', '', '', '', 3, 1, ''), ('610430', '6104', '00,61,6104', '淳化县', '61', '陕西省', '6104', '咸阳市', '610430', '淳化县', '', '', '', '', 3, 1, ''), ('610431', '6104', '00,61,6104', '武功县', '61', '陕西省', '6104', '咸阳市', '610431', '武功县', '', '', '', '', 3, 1, ''), ('610481', '6104', '00,61,6104', '兴平市', '61', '陕西省', '6104', '咸阳市', '610481', '兴平市', '', '', '', '', 3, 1, ''), ('610482', '6104', '00,61,6104', '彬州市', '61', '陕西省', '6104', '咸阳市', '610482', '彬州市', '', '', '', '', 3, 1, ''), ('6105', '61', '00,61', '渭南市', '61', '陕西省', '6105', '渭南市', '', '', '', '', '', '', 2, 1, ''), ('610502', '6105', '00,61,6105', '临渭区', '61', '陕西省', '6105', '渭南市', '610502', '临渭区', '', '', '', '', 3, 1, ''), ('610503', '6105', '00,61,6105', '华州区', '61', '陕西省', '6105', '渭南市', '610503', '华州区', '', '', '', '', 3, 1, ''), ('610522', '6105', '00,61,6105', '潼关县', '61', '陕西省', '6105', '渭南市', '610522', '潼关县', '', '', '', '', 3, 1, ''), ('610523', '6105', '00,61,6105', '大荔县', '61', '陕西省', '6105', '渭南市', '610523', '大荔县', '', '', '', '', 3, 1, ''), ('610524', '6105', '00,61,6105', '合阳县', '61', '陕西省', '6105', '渭南市', '610524', '合阳县', '', '', '', '', 3, 1, ''), ('610525', '6105', '00,61,6105', '澄城县', '61', '陕西省', '6105', '渭南市', '610525', '澄城县', '', '', '', '', 3, 1, ''), ('610526', '6105', '00,61,6105', '蒲城县', '61', '陕西省', '6105', '渭南市', '610526', '蒲城县', '', '', '', '', 3, 1, ''), ('610527', '6105', '00,61,6105', '白水县', '61', '陕西省', '6105', '渭南市', '610527', '白水县', '', '', '', '', 3, 1, ''), ('610528', '6105', '00,61,6105', '富平县', '61', '陕西省', '6105', '渭南市', '610528', '富平县', '', '', '', '', 3, 1, ''), ('610581', '6105', '00,61,6105', '韩城市', '61', '陕西省', '6105', '渭南市', '610581', '韩城市', '', '', '', '', 3, 1, ''); +INSERT INTO `blade_region` VALUES ('610582', '6105', '00,61,6105', '华阴市', '61', '陕西省', '6105', '渭南市', '610582', '华阴市', '', '', '', '', 3, 1, ''), ('6106', '61', '00,61', '延安市', '61', '陕西省', '6106', '延安市', '', '', '', '', '', '', 2, 1, ''), ('610602', '6106', '00,61,6106', '宝塔区', '61', '陕西省', '6106', '延安市', '610602', '宝塔区', '', '', '', '', 3, 1, ''), ('610603', '6106', '00,61,6106', '安塞区', '61', '陕西省', '6106', '延安市', '610603', '安塞区', '', '', '', '', 3, 1, ''), ('610621', '6106', '00,61,6106', '延长县', '61', '陕西省', '6106', '延安市', '610621', '延长县', '', '', '', '', 3, 1, ''), ('610622', '6106', '00,61,6106', '延川县', '61', '陕西省', '6106', '延安市', '610622', '延川县', '', '', '', '', 3, 1, ''), ('610625', '6106', '00,61,6106', '志丹县', '61', '陕西省', '6106', '延安市', '610625', '志丹县', '', '', '', '', 3, 1, ''), ('610626', '6106', '00,61,6106', '吴起县', '61', '陕西省', '6106', '延安市', '610626', '吴起县', '', '', '', '', 3, 1, ''), ('610627', '6106', '00,61,6106', '甘泉县', '61', '陕西省', '6106', '延安市', '610627', '甘泉县', '', '', '', '', 3, 1, ''), ('610628', '6106', '00,61,6106', '富县', '61', '陕西省', '6106', '延安市', '610628', '富县', '', '', '', '', 3, 1, ''), ('610629', '6106', '00,61,6106', '洛川县', '61', '陕西省', '6106', '延安市', '610629', '洛川县', '', '', '', '', 3, 1, ''), ('610630', '6106', '00,61,6106', '宜川县', '61', '陕西省', '6106', '延安市', '610630', '宜川县', '', '', '', '', 3, 1, ''), ('610631', '6106', '00,61,6106', '黄龙县', '61', '陕西省', '6106', '延安市', '610631', '黄龙县', '', '', '', '', 3, 1, ''), ('610632', '6106', '00,61,6106', '黄陵县', '61', '陕西省', '6106', '延安市', '610632', '黄陵县', '', '', '', '', 3, 1, ''), ('610681', '6106', '00,61,6106', '子长市', '61', '陕西省', '6106', '延安市', '610681', '子长市', '', '', '', '', 3, 1, ''), ('6107', '61', '00,61', '汉中市', '61', '陕西省', '6107', '汉中市', '', '', '', '', '', '', 2, 1, ''), ('610702', '6107', '00,61,6107', '汉台区', '61', '陕西省', '6107', '汉中市', '610702', '汉台区', '', '', '', '', 3, 1, ''), ('610703', '6107', '00,61,6107', '南郑区', '61', '陕西省', '6107', '汉中市', '610703', '南郑区', '', '', '', '', 3, 1, ''), ('610722', '6107', '00,61,6107', '城固县', '61', '陕西省', '6107', '汉中市', '610722', '城固县', '', '', '', '', 3, 1, ''), ('610723', '6107', '00,61,6107', '洋县', '61', '陕西省', '6107', '汉中市', '610723', '洋县', '', '', '', '', 3, 1, ''), ('610724', '6107', '00,61,6107', '西乡县', '61', '陕西省', '6107', '汉中市', '610724', '西乡县', '', '', '', '', 3, 1, ''), ('610725', '6107', '00,61,6107', '勉县', '61', '陕西省', '6107', '汉中市', '610725', '勉县', '', '', '', '', 3, 1, ''), ('610726', '6107', '00,61,6107', '宁强县', '61', '陕西省', '6107', '汉中市', '610726', '宁强县', '', '', '', '', 3, 1, ''), ('610727', '6107', '00,61,6107', '略阳县', '61', '陕西省', '6107', '汉中市', '610727', '略阳县', '', '', '', '', 3, 1, ''), ('610728', '6107', '00,61,6107', '镇巴县', '61', '陕西省', '6107', '汉中市', '610728', '镇巴县', '', '', '', '', 3, 1, ''), ('610729', '6107', '00,61,6107', '留坝县', '61', '陕西省', '6107', '汉中市', '610729', '留坝县', '', '', '', '', 3, 1, ''), ('610730', '6107', '00,61,6107', '佛坪县', '61', '陕西省', '6107', '汉中市', '610730', '佛坪县', '', '', '', '', 3, 1, ''), ('6108', '61', '00,61', '榆林市', '61', '陕西省', '6108', '榆林市', '', '', '', '', '', '', 2, 1, ''), ('610802', '6108', '00,61,6108', '榆阳区', '61', '陕西省', '6108', '榆林市', '610802', '榆阳区', '', '', '', '', 3, 1, ''), ('610803', '6108', '00,61,6108', '横山区', '61', '陕西省', '6108', '榆林市', '610803', '横山区', '', '', '', '', 3, 1, ''), ('610822', '6108', '00,61,6108', '府谷县', '61', '陕西省', '6108', '榆林市', '610822', '府谷县', '', '', '', '', 3, 1, ''), ('610824', '6108', '00,61,6108', '靖边县', '61', '陕西省', '6108', '榆林市', '610824', '靖边县', '', '', '', '', 3, 1, ''), ('610825', '6108', '00,61,6108', '定边县', '61', '陕西省', '6108', '榆林市', '610825', '定边县', '', '', '', '', 3, 1, ''), ('610826', '6108', '00,61,6108', '绥德县', '61', '陕西省', '6108', '榆林市', '610826', '绥德县', '', '', '', '', 3, 1, ''), ('610827', '6108', '00,61,6108', '米脂县', '61', '陕西省', '6108', '榆林市', '610827', '米脂县', '', '', '', '', 3, 1, ''), ('610828', '6108', '00,61,6108', '佳县', '61', '陕西省', '6108', '榆林市', '610828', '佳县', '', '', '', '', 3, 1, ''), ('610829', '6108', '00,61,6108', '吴堡县', '61', '陕西省', '6108', '榆林市', '610829', '吴堡县', '', '', '', '', 3, 1, ''), ('610830', '6108', '00,61,6108', '清涧县', '61', '陕西省', '6108', '榆林市', '610830', '清涧县', '', '', '', '', 3, 1, ''), ('610831', '6108', '00,61,6108', '子洲县', '61', '陕西省', '6108', '榆林市', '610831', '子洲县', '', '', '', '', 3, 1, ''), ('610881', '6108', '00,61,6108', '神木市', '61', '陕西省', '6108', '榆林市', '610881', '神木市', '', '', '', '', 3, 1, ''), ('6109', '61', '00,61', '安康市', '61', '陕西省', '6109', '安康市', '', '', '', '', '', '', 2, 1, ''), ('610902', '6109', '00,61,6109', '汉滨区', '61', '陕西省', '6109', '安康市', '610902', '汉滨区', '', '', '', '', 3, 1, ''), ('610921', '6109', '00,61,6109', '汉阴县', '61', '陕西省', '6109', '安康市', '610921', '汉阴县', '', '', '', '', 3, 1, ''), ('610922', '6109', '00,61,6109', '石泉县', '61', '陕西省', '6109', '安康市', '610922', '石泉县', '', '', '', '', 3, 1, ''), ('610923', '6109', '00,61,6109', '宁陕县', '61', '陕西省', '6109', '安康市', '610923', '宁陕县', '', '', '', '', 3, 1, ''), ('610924', '6109', '00,61,6109', '紫阳县', '61', '陕西省', '6109', '安康市', '610924', '紫阳县', '', '', '', '', 3, 1, ''), ('610925', '6109', '00,61,6109', '岚皋县', '61', '陕西省', '6109', '安康市', '610925', '岚皋县', '', '', '', '', 3, 1, ''), ('610926', '6109', '00,61,6109', '平利县', '61', '陕西省', '6109', '安康市', '610926', '平利县', '', '', '', '', 3, 1, ''), ('610927', '6109', '00,61,6109', '镇坪县', '61', '陕西省', '6109', '安康市', '610927', '镇坪县', '', '', '', '', 3, 1, ''), ('610928', '6109', '00,61,6109', '旬阳县', '61', '陕西省', '6109', '安康市', '610928', '旬阳县', '', '', '', '', 3, 1, ''), ('610929', '6109', '00,61,6109', '白河县', '61', '陕西省', '6109', '安康市', '610929', '白河县', '', '', '', '', 3, 1, ''), ('6110', '61', '00,61', '商洛市', '61', '陕西省', '6110', '商洛市', '', '', '', '', '', '', 2, 1, ''), ('611002', '6110', '00,61,6110', '商州区', '61', '陕西省', '6110', '商洛市', '611002', '商州区', '', '', '', '', 3, 1, ''), ('611021', '6110', '00,61,6110', '洛南县', '61', '陕西省', '6110', '商洛市', '611021', '洛南县', '', '', '', '', 3, 1, ''), ('611022', '6110', '00,61,6110', '丹凤县', '61', '陕西省', '6110', '商洛市', '611022', '丹凤县', '', '', '', '', 3, 1, ''), ('611023', '6110', '00,61,6110', '商南县', '61', '陕西省', '6110', '商洛市', '611023', '商南县', '', '', '', '', 3, 1, ''), ('611024', '6110', '00,61,6110', '山阳县', '61', '陕西省', '6110', '商洛市', '611024', '山阳县', '', '', '', '', 3, 1, ''), ('611025', '6110', '00,61,6110', '镇安县', '61', '陕西省', '6110', '商洛市', '611025', '镇安县', '', '', '', '', 3, 1, ''), ('611026', '6110', '00,61,6110', '柞水县', '61', '陕西省', '6110', '商洛市', '611026', '柞水县', '', '', '', '', 3, 1, ''), ('62', '00', '00', '甘肃省', '62', '甘肃省', '', '', '', '', '', '', '', '', 1, 1, ''), ('6201', '62', '00,62', '兰州市', '62', '甘肃省', '6201', '兰州市', '', '', '', '', '', '', 2, 1, ''), ('620102', '6201', '00,62,6201', '城关区', '62', '甘肃省', '6201', '兰州市', '620102', '城关区', '', '', '', '', 3, 1, ''), ('620103', '6201', '00,62,6201', '七里河区', '62', '甘肃省', '6201', '兰州市', '620103', '七里河区', '', '', '', '', 3, 1, ''), ('620104', '6201', '00,62,6201', '西固区', '62', '甘肃省', '6201', '兰州市', '620104', '西固区', '', '', '', '', 3, 1, ''), ('620105', '6201', '00,62,6201', '安宁区', '62', '甘肃省', '6201', '兰州市', '620105', '安宁区', '', '', '', '', 3, 1, ''), ('620111', '6201', '00,62,6201', '红古区', '62', '甘肃省', '6201', '兰州市', '620111', '红古区', '', '', '', '', 3, 1, ''), ('620121', '6201', '00,62,6201', '永登县', '62', '甘肃省', '6201', '兰州市', '620121', '永登县', '', '', '', '', 3, 1, ''), ('620122', '6201', '00,62,6201', '皋兰县', '62', '甘肃省', '6201', '兰州市', '620122', '皋兰县', '', '', '', '', 3, 1, ''), ('620123', '6201', '00,62,6201', '榆中县', '62', '甘肃省', '6201', '兰州市', '620123', '榆中县', '', '', '', '', 3, 1, ''), ('6202', '62', '00,62', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', '', '', '', '', '', '', 2, 1, ''), ('620200', '6202', '00,62,6202', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', '620200', '嘉峪关市', '', '', '', '', 3, 1, ''), ('6203', '62', '00,62', '金昌市', '62', '甘肃省', '6203', '金昌市', '', '', '', '', '', '', 2, 1, ''), ('620302', '6203', '00,62,6203', '金川区', '62', '甘肃省', '6203', '金昌市', '620302', '金川区', '', '', '', '', 3, 1, ''), ('620321', '6203', '00,62,6203', '永昌县', '62', '甘肃省', '6203', '金昌市', '620321', '永昌县', '', '', '', '', 3, 1, ''), ('6204', '62', '00,62', '白银市', '62', '甘肃省', '6204', '白银市', '', '', '', '', '', '', 2, 1, ''), ('620402', '6204', '00,62,6204', '白银区', '62', '甘肃省', '6204', '白银市', '620402', '白银区', '', '', '', '', 3, 1, ''), ('620403', '6204', '00,62,6204', '平川区', '62', '甘肃省', '6204', '白银市', '620403', '平川区', '', '', '', '', 3, 1, ''), ('620421', '6204', '00,62,6204', '靖远县', '62', '甘肃省', '6204', '白银市', '620421', '靖远县', '', '', '', '', 3, 1, ''), ('620422', '6204', '00,62,6204', '会宁县', '62', '甘肃省', '6204', '白银市', '620422', '会宁县', '', '', '', '', 3, 1, ''), ('620423', '6204', '00,62,6204', '景泰县', '62', '甘肃省', '6204', '白银市', '620423', '景泰县', '', '', '', '', 3, 1, ''), ('6205', '62', '00,62', '天水市', '62', '甘肃省', '6205', '天水市', '', '', '', '', '', '', 2, 1, ''), ('620502', '6205', '00,62,6205', '秦州区', '62', '甘肃省', '6205', '天水市', '620502', '秦州区', '', '', '', '', 3, 1, ''), ('620503', '6205', '00,62,6205', '麦积区', '62', '甘肃省', '6205', '天水市', '620503', '麦积区', '', '', '', '', 3, 1, ''), ('620521', '6205', '00,62,6205', '清水县', '62', '甘肃省', '6205', '天水市', '620521', '清水县', '', '', '', '', 3, 1, ''), ('620522', '6205', '00,62,6205', '秦安县', '62', '甘肃省', '6205', '天水市', '620522', '秦安县', '', '', '', '', 3, 1, ''), ('620523', '6205', '00,62,6205', '甘谷县', '62', '甘肃省', '6205', '天水市', '620523', '甘谷县', '', '', '', '', 3, 1, ''), ('620524', '6205', '00,62,6205', '武山县', '62', '甘肃省', '6205', '天水市', '620524', '武山县', '', '', '', '', 3, 1, ''), ('620525', '6205', '00,62,6205', '张家川回族自治县', '62', '甘肃省', '6205', '天水市', '620525', '张家川回族自治县', '', '', '', '', 3, 1, ''), ('6206', '62', '00,62', '武威市', '62', '甘肃省', '6206', '武威市', '', '', '', '', '', '', 2, 1, ''), ('620602', '6206', '00,62,6206', '凉州区', '62', '甘肃省', '6206', '武威市', '620602', '凉州区', '', '', '', '', 3, 1, ''), ('620621', '6206', '00,62,6206', '民勤县', '62', '甘肃省', '6206', '武威市', '620621', '民勤县', '', '', '', '', 3, 1, ''), ('620622', '6206', '00,62,6206', '古浪县', '62', '甘肃省', '6206', '武威市', '620622', '古浪县', '', '', '', '', 3, 1, ''), ('620623', '6206', '00,62,6206', '天祝藏族自治县', '62', '甘肃省', '6206', '武威市', '620623', '天祝藏族自治县', '', '', '', '', 3, 1, ''), ('6207', '62', '00,62', '张掖市', '62', '甘肃省', '6207', '张掖市', '', '', '', '', '', '', 2, 1, ''), ('620702', '6207', '00,62,6207', '甘州区', '62', '甘肃省', '6207', '张掖市', '620702', '甘州区', '', '', '', '', 3, 1, ''), ('620721', '6207', '00,62,6207', '肃南裕固族自治县', '62', '甘肃省', '6207', '张掖市', '620721', '肃南裕固族自治县', '', '', '', '', 3, 1, ''), ('620722', '6207', '00,62,6207', '民乐县', '62', '甘肃省', '6207', '张掖市', '620722', '民乐县', '', '', '', '', 3, 1, ''), ('620723', '6207', '00,62,6207', '临泽县', '62', '甘肃省', '6207', '张掖市', '620723', '临泽县', '', '', '', '', 3, 1, ''), ('620724', '6207', '00,62,6207', '高台县', '62', '甘肃省', '6207', '张掖市', '620724', '高台县', '', '', '', '', 3, 1, ''), ('620725', '6207', '00,62,6207', '山丹县', '62', '甘肃省', '6207', '张掖市', '620725', '山丹县', '', '', '', '', 3, 1, ''), ('6208', '62', '00,62', '平凉市', '62', '甘肃省', '6208', '平凉市', '', '', '', '', '', '', 2, 1, ''), ('620802', '6208', '00,62,6208', '崆峒区', '62', '甘肃省', '6208', '平凉市', '620802', '崆峒区', '', '', '', '', 3, 1, ''), ('620821', '6208', '00,62,6208', '泾川县', '62', '甘肃省', '6208', '平凉市', '620821', '泾川县', '', '', '', '', 3, 1, ''), ('620822', '6208', '00,62,6208', '灵台县', '62', '甘肃省', '6208', '平凉市', '620822', '灵台县', '', '', '', '', 3, 1, ''), ('620823', '6208', '00,62,6208', '崇信县', '62', '甘肃省', '6208', '平凉市', '620823', '崇信县', '', '', '', '', 3, 1, ''), ('620825', '6208', '00,62,6208', '庄浪县', '62', '甘肃省', '6208', '平凉市', '620825', '庄浪县', '', '', '', '', 3, 1, ''), ('620826', '6208', '00,62,6208', '静宁县', '62', '甘肃省', '6208', '平凉市', '620826', '静宁县', '', '', '', '', 3, 1, ''), ('620881', '6208', '00,62,6208', '华亭市', '62', '甘肃省', '6208', '平凉市', '620881', '华亭市', '', '', '', '', 3, 1, ''), ('6209', '62', '00,62', '酒泉市', '62', '甘肃省', '6209', '酒泉市', '', '', '', '', '', '', 2, 1, ''), ('620902', '6209', '00,62,6209', '肃州区', '62', '甘肃省', '6209', '酒泉市', '620902', '肃州区', '', '', '', '', 3, 1, ''), ('620921', '6209', '00,62,6209', '金塔县', '62', '甘肃省', '6209', '酒泉市', '620921', '金塔县', '', '', '', '', 3, 1, ''), ('620922', '6209', '00,62,6209', '瓜州县', '62', '甘肃省', '6209', '酒泉市', '620922', '瓜州县', '', '', '', '', 3, 1, ''), ('620923', '6209', '00,62,6209', '肃北蒙古族自治县', '62', '甘肃省', '6209', '酒泉市', '620923', '肃北蒙古族自治县', '', '', '', '', 3, 1, ''), ('620924', '6209', '00,62,6209', '阿克塞哈萨克族自治县', '62', '甘肃省', '6209', '酒泉市', '620924', '阿克塞哈萨克族自治县', '', '', '', '', 3, 1, ''), ('620981', '6209', '00,62,6209', '玉门市', '62', '甘肃省', '6209', '酒泉市', '620981', '玉门市', '', '', '', '', 3, 1, ''), ('620982', '6209', '00,62,6209', '敦煌市', '62', '甘肃省', '6209', '酒泉市', '620982', '敦煌市', '', '', '', '', 3, 1, ''), ('6210', '62', '00,62', '庆阳市', '62', '甘肃省', '6210', '庆阳市', '', '', '', '', '', '', 2, 1, ''), ('621002', '6210', '00,62,6210', '西峰区', '62', '甘肃省', '6210', '庆阳市', '621002', '西峰区', '', '', '', '', 3, 1, ''), ('621021', '6210', '00,62,6210', '庆城县', '62', '甘肃省', '6210', '庆阳市', '621021', '庆城县', '', '', '', '', 3, 1, ''), ('621022', '6210', '00,62,6210', '环县', '62', '甘肃省', '6210', '庆阳市', '621022', '环县', '', '', '', '', 3, 1, ''), ('621023', '6210', '00,62,6210', '华池县', '62', '甘肃省', '6210', '庆阳市', '621023', '华池县', '', '', '', '', 3, 1, ''), ('621024', '6210', '00,62,6210', '合水县', '62', '甘肃省', '6210', '庆阳市', '621024', '合水县', '', '', '', '', 3, 1, ''), ('621025', '6210', '00,62,6210', '正宁县', '62', '甘肃省', '6210', '庆阳市', '621025', '正宁县', '', '', '', '', 3, 1, ''), ('621026', '6210', '00,62,6210', '宁县', '62', '甘肃省', '6210', '庆阳市', '621026', '宁县', '', '', '', '', 3, 1, ''), ('621027', '6210', '00,62,6210', '镇原县', '62', '甘肃省', '6210', '庆阳市', '621027', '镇原县', '', '', '', '', 3, 1, ''), ('6211', '62', '00,62', '定西市', '62', '甘肃省', '6211', '定西市', '', '', '', '', '', '', 2, 1, ''), ('621102', '6211', '00,62,6211', '安定区', '62', '甘肃省', '6211', '定西市', '621102', '安定区', '', '', '', '', 3, 1, ''), ('621121', '6211', '00,62,6211', '通渭县', '62', '甘肃省', '6211', '定西市', '621121', '通渭县', '', '', '', '', 3, 1, ''), ('621122', '6211', '00,62,6211', '陇西县', '62', '甘肃省', '6211', '定西市', '621122', '陇西县', '', '', '', '', 3, 1, ''), ('621123', '6211', '00,62,6211', '渭源县', '62', '甘肃省', '6211', '定西市', '621123', '渭源县', '', '', '', '', 3, 1, ''), ('621124', '6211', '00,62,6211', '临洮县', '62', '甘肃省', '6211', '定西市', '621124', '临洮县', '', '', '', '', 3, 1, ''), ('621125', '6211', '00,62,6211', '漳县', '62', '甘肃省', '6211', '定西市', '621125', '漳县', '', '', '', '', 3, 1, ''), ('621126', '6211', '00,62,6211', '岷县', '62', '甘肃省', '6211', '定西市', '621126', '岷县', '', '', '', '', 3, 1, ''), ('6212', '62', '00,62', '陇南市', '62', '甘肃省', '6212', '陇南市', '', '', '', '', '', '', 2, 1, ''), ('621202', '6212', '00,62,6212', '武都区', '62', '甘肃省', '6212', '陇南市', '621202', '武都区', '', '', '', '', 3, 1, ''), ('621221', '6212', '00,62,6212', '成县', '62', '甘肃省', '6212', '陇南市', '621221', '成县', '', '', '', '', 3, 1, ''), ('621222', '6212', '00,62,6212', '文县', '62', '甘肃省', '6212', '陇南市', '621222', '文县', '', '', '', '', 3, 1, ''), ('621223', '6212', '00,62,6212', '宕昌县', '62', '甘肃省', '6212', '陇南市', '621223', '宕昌县', '', '', '', '', 3, 1, ''), ('621224', '6212', '00,62,6212', '康县', '62', '甘肃省', '6212', '陇南市', '621224', '康县', '', '', '', '', 3, 1, ''), ('621225', '6212', '00,62,6212', '西和县', '62', '甘肃省', '6212', '陇南市', '621225', '西和县', '', '', '', '', 3, 1, ''), ('621226', '6212', '00,62,6212', '礼县', '62', '甘肃省', '6212', '陇南市', '621226', '礼县', '', '', '', '', 3, 1, ''), ('621227', '6212', '00,62,6212', '徽县', '62', '甘肃省', '6212', '陇南市', '621227', '徽县', '', '', '', '', 3, 1, ''), ('621228', '6212', '00,62,6212', '两当县', '62', '甘肃省', '6212', '陇南市', '621228', '两当县', '', '', '', '', 3, 1, ''), ('6229', '62', '00,62', '临夏回族自治州', '62', '甘肃省', '6229', '临夏回族自治州', '', '', '', '', '', '', 2, 1, ''), ('622901', '6229', '00,62,6229', '临夏市', '62', '甘肃省', '6229', '临夏回族自治州', '622901', '临夏市', '', '', '', '', 3, 1, ''), ('622921', '6229', '00,62,6229', '临夏县', '62', '甘肃省', '6229', '临夏回族自治州', '622921', '临夏县', '', '', '', '', 3, 1, ''), ('622922', '6229', '00,62,6229', '康乐县', '62', '甘肃省', '6229', '临夏回族自治州', '622922', '康乐县', '', '', '', '', 3, 1, ''), ('622923', '6229', '00,62,6229', '永靖县', '62', '甘肃省', '6229', '临夏回族自治州', '622923', '永靖县', '', '', '', '', 3, 1, ''), ('622924', '6229', '00,62,6229', '广河县', '62', '甘肃省', '6229', '临夏回族自治州', '622924', '广河县', '', '', '', '', 3, 1, ''), ('622925', '6229', '00,62,6229', '和政县', '62', '甘肃省', '6229', '临夏回族自治州', '622925', '和政县', '', '', '', '', 3, 1, ''), ('622926', '6229', '00,62,6229', '东乡族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622926', '东乡族自治县', '', '', '', '', 3, 1, ''), ('622927', '6229', '00,62,6229', '积石山保安族东乡族撒拉族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622927', '积石山保安族东乡族撒拉族自治县', '', '', '', '', 3, 1, ''), ('6230', '62', '00,62', '甘南藏族自治州', '62', '甘肃省', '6230', '甘南藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('623001', '6230', '00,62,6230', '合作市', '62', '甘肃省', '6230', '甘南藏族自治州', '623001', '合作市', '', '', '', '', 3, 1, ''), ('623021', '6230', '00,62,6230', '临潭县', '62', '甘肃省', '6230', '甘南藏族自治州', '623021', '临潭县', '', '', '', '', 3, 1, ''), ('623022', '6230', '00,62,6230', '卓尼县', '62', '甘肃省', '6230', '甘南藏族自治州', '623022', '卓尼县', '', '', '', '', 3, 1, ''), ('623023', '6230', '00,62,6230', '舟曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623023', '舟曲县', '', '', '', '', 3, 1, ''), ('623024', '6230', '00,62,6230', '迭部县', '62', '甘肃省', '6230', '甘南藏族自治州', '623024', '迭部县', '', '', '', '', 3, 1, ''), ('623025', '6230', '00,62,6230', '玛曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623025', '玛曲县', '', '', '', '', 3, 1, ''), ('623026', '6230', '00,62,6230', '碌曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623026', '碌曲县', '', '', '', '', 3, 1, ''), ('623027', '6230', '00,62,6230', '夏河县', '62', '甘肃省', '6230', '甘南藏族自治州', '623027', '夏河县', '', '', '', '', 3, 1, ''), ('63', '00', '00', '青海省', '63', '青海省', '', '', '', '', '', '', '', '', 1, 1, ''), ('6301', '63', '00,63', '西宁市', '63', '青海省', '6301', '西宁市', '', '', '', '', '', '', 2, 1, ''), ('630102', '6301', '00,63,6301', '城东区', '63', '青海省', '6301', '西宁市', '630102', '城东区', '', '', '', '', 3, 1, ''), ('630103', '6301', '00,63,6301', '城中区', '63', '青海省', '6301', '西宁市', '630103', '城中区', '', '', '', '', 3, 1, ''), ('630104', '6301', '00,63,6301', '城西区', '63', '青海省', '6301', '西宁市', '630104', '城西区', '', '', '', '', 3, 1, ''), ('630105', '6301', '00,63,6301', '城北区', '63', '青海省', '6301', '西宁市', '630105', '城北区', '', '', '', '', 3, 1, ''), ('630106', '6301', '00,63,6301', '湟中区', '63', '青海省', '6301', '西宁市', '630106', '湟中区', '', '', '', '', 3, 1, ''), ('630121', '6301', '00,63,6301', '大通回族土族自治县', '63', '青海省', '6301', '西宁市', '630121', '大通回族土族自治县', '', '', '', '', 3, 1, ''), ('630123', '6301', '00,63,6301', '湟源县', '63', '青海省', '6301', '西宁市', '630123', '湟源县', '', '', '', '', 3, 1, ''), ('6302', '63', '00,63', '海东市', '63', '青海省', '6302', '海东市', '', '', '', '', '', '', 2, 1, ''), ('630202', '6302', '00,63,6302', '乐都区', '63', '青海省', '6302', '海东市', '630202', '乐都区', '', '', '', '', 3, 1, ''), ('630203', '6302', '00,63,6302', '平安区', '63', '青海省', '6302', '海东市', '630203', '平安区', '', '', '', '', 3, 1, ''), ('630222', '6302', '00,63,6302', '民和回族土族自治县', '63', '青海省', '6302', '海东市', '630222', '民和回族土族自治县', '', '', '', '', 3, 1, ''), ('630223', '6302', '00,63,6302', '互助土族自治县', '63', '青海省', '6302', '海东市', '630223', '互助土族自治县', '', '', '', '', 3, 1, ''), ('630224', '6302', '00,63,6302', '化隆回族自治县', '63', '青海省', '6302', '海东市', '630224', '化隆回族自治县', '', '', '', '', 3, 1, ''), ('630225', '6302', '00,63,6302', '循化撒拉族自治县', '63', '青海省', '6302', '海东市', '630225', '循化撒拉族自治县', '', '', '', '', 3, 1, ''), ('6322', '63', '00,63', '海北藏族自治州', '63', '青海省', '6322', '海北藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632221', '6322', '00,63,6322', '门源回族自治县', '63', '青海省', '6322', '海北藏族自治州', '632221', '门源回族自治县', '', '', '', '', 3, 1, ''), ('632222', '6322', '00,63,6322', '祁连县', '63', '青海省', '6322', '海北藏族自治州', '632222', '祁连县', '', '', '', '', 3, 1, ''), ('632223', '6322', '00,63,6322', '海晏县', '63', '青海省', '6322', '海北藏族自治州', '632223', '海晏县', '', '', '', '', 3, 1, ''), ('632224', '6322', '00,63,6322', '刚察县', '63', '青海省', '6322', '海北藏族自治州', '632224', '刚察县', '', '', '', '', 3, 1, ''), ('6323', '63', '00,63', '黄南藏族自治州', '63', '青海省', '6323', '黄南藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632321', '6323', '00,63,6323', '同仁县', '63', '青海省', '6323', '黄南藏族自治州', '632321', '同仁县', '', '', '', '', 3, 1, ''), ('632322', '6323', '00,63,6323', '尖扎县', '63', '青海省', '6323', '黄南藏族自治州', '632322', '尖扎县', '', '', '', '', 3, 1, ''), ('632323', '6323', '00,63,6323', '泽库县', '63', '青海省', '6323', '黄南藏族自治州', '632323', '泽库县', '', '', '', '', 3, 1, ''), ('632324', '6323', '00,63,6323', '河南蒙古族自治县', '63', '青海省', '6323', '黄南藏族自治州', '632324', '河南蒙古族自治县', '', '', '', '', 3, 1, ''), ('6325', '63', '00,63', '海南藏族自治州', '63', '青海省', '6325', '海南藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632521', '6325', '00,63,6325', '共和县', '63', '青海省', '6325', '海南藏族自治州', '632521', '共和县', '', '', '', '', 3, 1, ''), ('632522', '6325', '00,63,6325', '同德县', '63', '青海省', '6325', '海南藏族自治州', '632522', '同德县', '', '', '', '', 3, 1, ''), ('632523', '6325', '00,63,6325', '贵德县', '63', '青海省', '6325', '海南藏族自治州', '632523', '贵德县', '', '', '', '', 3, 1, ''), ('632524', '6325', '00,63,6325', '兴海县', '63', '青海省', '6325', '海南藏族自治州', '632524', '兴海县', '', '', '', '', 3, 1, ''), ('632525', '6325', '00,63,6325', '贵南县', '63', '青海省', '6325', '海南藏族自治州', '632525', '贵南县', '', '', '', '', 3, 1, ''), ('6326', '63', '00,63', '果洛藏族自治州', '63', '青海省', '6326', '果洛藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632621', '6326', '00,63,6326', '玛沁县', '63', '青海省', '6326', '果洛藏族自治州', '632621', '玛沁县', '', '', '', '', 3, 1, ''), ('632622', '6326', '00,63,6326', '班玛县', '63', '青海省', '6326', '果洛藏族自治州', '632622', '班玛县', '', '', '', '', 3, 1, ''), ('632623', '6326', '00,63,6326', '甘德县', '63', '青海省', '6326', '果洛藏族自治州', '632623', '甘德县', '', '', '', '', 3, 1, ''), ('632624', '6326', '00,63,6326', '达日县', '63', '青海省', '6326', '果洛藏族自治州', '632624', '达日县', '', '', '', '', 3, 1, ''), ('632625', '6326', '00,63,6326', '久治县', '63', '青海省', '6326', '果洛藏族自治州', '632625', '久治县', '', '', '', '', 3, 1, ''), ('632626', '6326', '00,63,6326', '玛多县', '63', '青海省', '6326', '果洛藏族自治州', '632626', '玛多县', '', '', '', '', 3, 1, ''), ('6327', '63', '00,63', '玉树藏族自治州', '63', '青海省', '6327', '玉树藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632701', '6327', '00,63,6327', '玉树市', '63', '青海省', '6327', '玉树藏族自治州', '632701', '玉树市', '', '', '', '', 3, 1, ''), ('632722', '6327', '00,63,6327', '杂多县', '63', '青海省', '6327', '玉树藏族自治州', '632722', '杂多县', '', '', '', '', 3, 1, ''), ('632723', '6327', '00,63,6327', '称多县', '63', '青海省', '6327', '玉树藏族自治州', '632723', '称多县', '', '', '', '', 3, 1, ''), ('632724', '6327', '00,63,6327', '治多县', '63', '青海省', '6327', '玉树藏族自治州', '632724', '治多县', '', '', '', '', 3, 1, ''), ('632725', '6327', '00,63,6327', '囊谦县', '63', '青海省', '6327', '玉树藏族自治州', '632725', '囊谦县', '', '', '', '', 3, 1, ''), ('632726', '6327', '00,63,6327', '曲麻莱县', '63', '青海省', '6327', '玉树藏族自治州', '632726', '曲麻莱县', '', '', '', '', 3, 1, ''), ('6328', '63', '00,63', '海西蒙古族藏族自治州', '63', '青海省', '6328', '海西蒙古族藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632801', '6328', '00,63,6328', '格尔木市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632801', '格尔木市', '', '', '', '', 3, 1, ''), ('632802', '6328', '00,63,6328', '德令哈市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632802', '德令哈市', '', '', '', '', 3, 1, ''), ('632803', '6328', '00,63,6328', '茫崖市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632803', '茫崖市', '', '', '', '', 3, 1, ''), ('632821', '6328', '00,63,6328', '乌兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632821', '乌兰县', '', '', '', '', 3, 1, ''), ('632822', '6328', '00,63,6328', '都兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632822', '都兰县', '', '', '', '', 3, 1, ''), ('632823', '6328', '00,63,6328', '天峻县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632823', '天峻县', '', '', '', '', 3, 1, ''), ('64', '00', '00', '宁夏回族自治区', '64', '宁夏回族自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('6401', '64', '00,64', '银川市', '64', '宁夏回族自治区', '6401', '银川市', '', '', '', '', '', '', 2, 1, ''), ('640104', '6401', '00,64,6401', '兴庆区', '64', '宁夏回族自治区', '6401', '银川市', '640104', '兴庆区', '', '', '', '', 3, 1, ''), ('640105', '6401', '00,64,6401', '西夏区', '64', '宁夏回族自治区', '6401', '银川市', '640105', '西夏区', '', '', '', '', 3, 1, ''), ('640106', '6401', '00,64,6401', '金凤区', '64', '宁夏回族自治区', '6401', '银川市', '640106', '金凤区', '', '', '', '', 3, 1, ''), ('640121', '6401', '00,64,6401', '永宁县', '64', '宁夏回族自治区', '6401', '银川市', '640121', '永宁县', '', '', '', '', 3, 1, ''), ('640122', '6401', '00,64,6401', '贺兰县', '64', '宁夏回族自治区', '6401', '银川市', '640122', '贺兰县', '', '', '', '', 3, 1, ''), ('640181', '6401', '00,64,6401', '灵武市', '64', '宁夏回族自治区', '6401', '银川市', '640181', '灵武市', '', '', '', '', 3, 1, ''), ('6402', '64', '00,64', '石嘴山市', '64', '宁夏回族自治区', '6402', '石嘴山市', '', '', '', '', '', '', 2, 1, ''), ('640202', '6402', '00,64,6402', '大武口区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640202', '大武口区', '', '', '', '', 3, 1, ''), ('640205', '6402', '00,64,6402', '惠农区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640205', '惠农区', '', '', '', '', 3, 1, ''), ('640221', '6402', '00,64,6402', '平罗县', '64', '宁夏回族自治区', '6402', '石嘴山市', '640221', '平罗县', '', '', '', '', 3, 1, ''), ('6403', '64', '00,64', '吴忠市', '64', '宁夏回族自治区', '6403', '吴忠市', '', '', '', '', '', '', 2, 1, ''), ('640302', '6403', '00,64,6403', '利通区', '64', '宁夏回族自治区', '6403', '吴忠市', '640302', '利通区', '', '', '', '', 3, 1, ''), ('640303', '6403', '00,64,6403', '红寺堡区', '64', '宁夏回族自治区', '6403', '吴忠市', '640303', '红寺堡区', '', '', '', '', 3, 1, ''), ('640323', '6403', '00,64,6403', '盐池县', '64', '宁夏回族自治区', '6403', '吴忠市', '640323', '盐池县', '', '', '', '', 3, 1, ''), ('640324', '6403', '00,64,6403', '同心县', '64', '宁夏回族自治区', '6403', '吴忠市', '640324', '同心县', '', '', '', '', 3, 1, ''), ('640381', '6403', '00,64,6403', '青铜峡市', '64', '宁夏回族自治区', '6403', '吴忠市', '640381', '青铜峡市', '', '', '', '', 3, 1, ''), ('6404', '64', '00,64', '固原市', '64', '宁夏回族自治区', '6404', '固原市', '', '', '', '', '', '', 2, 1, ''), ('640402', '6404', '00,64,6404', '原州区', '64', '宁夏回族自治区', '6404', '固原市', '640402', '原州区', '', '', '', '', 3, 1, ''), ('640422', '6404', '00,64,6404', '西吉县', '64', '宁夏回族自治区', '6404', '固原市', '640422', '西吉县', '', '', '', '', 3, 1, ''), ('640423', '6404', '00,64,6404', '隆德县', '64', '宁夏回族自治区', '6404', '固原市', '640423', '隆德县', '', '', '', '', 3, 1, ''), ('640424', '6404', '00,64,6404', '泾源县', '64', '宁夏回族自治区', '6404', '固原市', '640424', '泾源县', '', '', '', '', 3, 1, ''), ('640425', '6404', '00,64,6404', '彭阳县', '64', '宁夏回族自治区', '6404', '固原市', '640425', '彭阳县', '', '', '', '', 3, 1, ''), ('6405', '64', '00,64', '中卫市', '64', '宁夏回族自治区', '6405', '中卫市', '', '', '', '', '', '', 2, 1, ''), ('640502', '6405', '00,64,6405', '沙坡头区', '64', '宁夏回族自治区', '6405', '中卫市', '640502', '沙坡头区', '', '', '', '', 3, 1, ''), ('640521', '6405', '00,64,6405', '中宁县', '64', '宁夏回族自治区', '6405', '中卫市', '640521', '中宁县', '', '', '', '', 3, 1, ''), ('640522', '6405', '00,64,6405', '海原县', '64', '宁夏回族自治区', '6405', '中卫市', '640522', '海原县', '', '', '', '', 3, 1, ''), ('65', '00', '00', '新疆维吾尔自治区', '65', '新疆维吾尔自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('6501', '65', '00,65', '乌鲁木齐市', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '', '', '', '', '', '', 2, 1, ''), ('650102', '6501', '00,65,6501', '天山区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650102', '天山区', '', '', '', '', 3, 1, ''), ('650103', '6501', '00,65,6501', '沙依巴克区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650103', '沙依巴克区', '', '', '', '', 3, 1, ''), ('650104', '6501', '00,65,6501', '新市区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650104', '新市区', '', '', '', '', 3, 1, ''), ('650105', '6501', '00,65,6501', '水磨沟区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650105', '水磨沟区', '', '', '', '', 3, 1, ''), ('650106', '6501', '00,65,6501', '头屯河区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650106', '头屯河区', '', '', '', '', 3, 1, ''), ('650107', '6501', '00,65,6501', '达坂城区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650107', '达坂城区', '', '', '', '', 3, 1, ''), ('650109', '6501', '00,65,6501', '米东区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650109', '米东区', '', '', '', '', 3, 1, ''), ('650121', '6501', '00,65,6501', '乌鲁木齐县', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650121', '乌鲁木齐县', '', '', '', '', 3, 1, ''), ('6502', '65', '00,65', '克拉玛依市', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '', '', '', '', '', '', 2, 1, ''), ('650202', '6502', '00,65,6502', '独山子区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650202', '独山子区', '', '', '', '', 3, 1, ''), ('650203', '6502', '00,65,6502', '克拉玛依区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650203', '克拉玛依区', '', '', '', '', 3, 1, ''), ('650204', '6502', '00,65,6502', '白碱滩区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650204', '白碱滩区', '', '', '', '', 3, 1, ''), ('650205', '6502', '00,65,6502', '乌尔禾区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650205', '乌尔禾区', '', '', '', '', 3, 1, ''), ('6504', '65', '00,65', '吐鲁番市', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '', '', '', '', '', '', 2, 1, ''), ('650402', '6504', '00,65,6504', '高昌区', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650402', '高昌区', '', '', '', '', 3, 1, ''), ('650421', '6504', '00,65,6504', '鄯善县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650421', '鄯善县', '', '', '', '', 3, 1, ''), ('650422', '6504', '00,65,6504', '托克逊县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650422', '托克逊县', '', '', '', '', 3, 1, ''), ('6505', '65', '00,65', '哈密市', '65', '新疆维吾尔自治区', '6505', '哈密市', '', '', '', '', '', '', 2, 1, ''), ('650502', '6505', '00,65,6505', '伊州区', '65', '新疆维吾尔自治区', '6505', '哈密市', '650502', '伊州区', '', '', '', '', 3, 1, ''), ('650521', '6505', '00,65,6505', '巴里坤哈萨克自治县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650521', '巴里坤哈萨克自治县', '', '', '', '', 3, 1, ''), ('650522', '6505', '00,65,6505', '伊吾县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650522', '伊吾县', '', '', '', '', 3, 1, ''), ('6523', '65', '00,65', '昌吉回族自治州', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '', '', '', '', '', '', 2, 1, ''), ('652301', '6523', '00,65,6523', '昌吉市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652301', '昌吉市', '', '', '', '', 3, 1, ''), ('652302', '6523', '00,65,6523', '阜康市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652302', '阜康市', '', '', '', '', 3, 1, ''), ('652323', '6523', '00,65,6523', '呼图壁县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652323', '呼图壁县', '', '', '', '', 3, 1, ''), ('652324', '6523', '00,65,6523', '玛纳斯县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652324', '玛纳斯县', '', '', '', '', 3, 1, ''), ('652325', '6523', '00,65,6523', '奇台县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652325', '奇台县', '', '', '', '', 3, 1, ''), ('652327', '6523', '00,65,6523', '吉木萨尔县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652327', '吉木萨尔县', '', '', '', '', 3, 1, ''), ('652328', '6523', '00,65,6523', '木垒哈萨克自治县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652328', '木垒哈萨克自治县', '', '', '', '', 3, 1, ''), ('6527', '65', '00,65', '博尔塔拉蒙古自治州', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '', '', '', '', '', '', 2, 1, ''), ('652701', '6527', '00,65,6527', '博乐市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652701', '博乐市', '', '', '', '', 3, 1, ''), ('652702', '6527', '00,65,6527', '阿拉山口市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652702', '阿拉山口市', '', '', '', '', 3, 1, ''), ('652722', '6527', '00,65,6527', '精河县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652722', '精河县', '', '', '', '', 3, 1, ''), ('652723', '6527', '00,65,6527', '温泉县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652723', '温泉县', '', '', '', '', 3, 1, ''), ('6528', '65', '00,65', '巴音郭楞蒙古自治州', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '', '', '', '', '', '', 2, 1, ''), ('652801', '6528', '00,65,6528', '库尔勒市', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652801', '库尔勒市', '', '', '', '', 3, 1, ''), ('652822', '6528', '00,65,6528', '轮台县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652822', '轮台县', '', '', '', '', 3, 1, ''), ('652823', '6528', '00,65,6528', '尉犁县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652823', '尉犁县', '', '', '', '', 3, 1, ''), ('652824', '6528', '00,65,6528', '若羌县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652824', '若羌县', '', '', '', '', 3, 1, ''), ('652825', '6528', '00,65,6528', '且末县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652825', '且末县', '', '', '', '', 3, 1, ''), ('652826', '6528', '00,65,6528', '焉耆回族自治县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652826', '焉耆回族自治县', '', '', '', '', 3, 1, ''), ('652827', '6528', '00,65,6528', '和静县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652827', '和静县', '', '', '', '', 3, 1, ''), ('652828', '6528', '00,65,6528', '和硕县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652828', '和硕县', '', '', '', '', 3, 1, ''), ('652829', '6528', '00,65,6528', '博湖县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652829', '博湖县', '', '', '', '', 3, 1, ''), ('6529', '65', '00,65', '阿克苏地区', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '', '', '', '', '', '', 2, 1, ''), ('652901', '6529', '00,65,6529', '阿克苏市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652901', '阿克苏市', '', '', '', '', 3, 1, ''), ('652902', '6529', '00,65,6529', '库车市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652902', '库车市', '', '', '', '', 3, 1, ''), ('652922', '6529', '00,65,6529', '温宿县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652922', '温宿县', '', '', '', '', 3, 1, ''), ('652924', '6529', '00,65,6529', '沙雅县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652924', '沙雅县', '', '', '', '', 3, 1, ''), ('652925', '6529', '00,65,6529', '新和县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652925', '新和县', '', '', '', '', 3, 1, ''), ('652926', '6529', '00,65,6529', '拜城县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652926', '拜城县', '', '', '', '', 3, 1, ''), ('652927', '6529', '00,65,6529', '乌什县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652927', '乌什县', '', '', '', '', 3, 1, ''), ('652928', '6529', '00,65,6529', '阿瓦提县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652928', '阿瓦提县', '', '', '', '', 3, 1, ''), ('652929', '6529', '00,65,6529', '柯坪县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652929', '柯坪县', '', '', '', '', 3, 1, ''), ('6530', '65', '00,65', '克孜勒苏柯尔克孜自治州', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '', '', '', '', '', '', 2, 1, ''), ('653001', '6530', '00,65,6530', '阿图什市', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653001', '阿图什市', '', '', '', '', 3, 1, ''), ('653022', '6530', '00,65,6530', '阿克陶县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653022', '阿克陶县', '', '', '', '', 3, 1, ''), ('653023', '6530', '00,65,6530', '阿合奇县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653023', '阿合奇县', '', '', '', '', 3, 1, ''), ('653024', '6530', '00,65,6530', '乌恰县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653024', '乌恰县', '', '', '', '', 3, 1, ''), ('6531', '65', '00,65', '喀什地区', '65', '新疆维吾尔自治区', '6531', '喀什地区', '', '', '', '', '', '', 2, 1, ''), ('653101', '6531', '00,65,6531', '喀什市', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653101', '喀什市', '', '', '', '', 3, 1, ''), ('653121', '6531', '00,65,6531', '疏附县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653121', '疏附县', '', '', '', '', 3, 1, ''), ('653122', '6531', '00,65,6531', '疏勒县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653122', '疏勒县', '', '', '', '', 3, 1, ''), ('653123', '6531', '00,65,6531', '英吉沙县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653123', '英吉沙县', '', '', '', '', 3, 1, ''), ('653124', '6531', '00,65,6531', '泽普县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653124', '泽普县', '', '', '', '', 3, 1, ''), ('653125', '6531', '00,65,6531', '莎车县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653125', '莎车县', '', '', '', '', 3, 1, ''), ('653126', '6531', '00,65,6531', '叶城县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653126', '叶城县', '', '', '', '', 3, 1, ''), ('653127', '6531', '00,65,6531', '麦盖提县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653127', '麦盖提县', '', '', '', '', 3, 1, ''), ('653128', '6531', '00,65,6531', '岳普湖县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653128', '岳普湖县', '', '', '', '', 3, 1, ''), ('653129', '6531', '00,65,6531', '伽师县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653129', '伽师县', '', '', '', '', 3, 1, ''), ('653130', '6531', '00,65,6531', '巴楚县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653130', '巴楚县', '', '', '', '', 3, 1, ''), ('653131', '6531', '00,65,6531', '塔什库尔干塔吉克自治县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653131', '塔什库尔干塔吉克自治县', '', '', '', '', 3, 1, ''), ('6532', '65', '00,65', '和田地区', '65', '新疆维吾尔自治区', '6532', '和田地区', '', '', '', '', '', '', 2, 1, ''), ('653201', '6532', '00,65,6532', '和田市', '65', '新疆维吾尔自治区', '6532', '和田地区', '653201', '和田市', '', '', '', '', 3, 1, ''), ('653221', '6532', '00,65,6532', '和田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653221', '和田县', '', '', '', '', 3, 1, ''), ('653222', '6532', '00,65,6532', '墨玉县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653222', '墨玉县', '', '', '', '', 3, 1, ''), ('653223', '6532', '00,65,6532', '皮山县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653223', '皮山县', '', '', '', '', 3, 1, ''), ('653224', '6532', '00,65,6532', '洛浦县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653224', '洛浦县', '', '', '', '', 3, 1, ''), ('653225', '6532', '00,65,6532', '策勒县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653225', '策勒县', '', '', '', '', 3, 1, ''), ('653226', '6532', '00,65,6532', '于田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653226', '于田县', '', '', '', '', 3, 1, ''), ('653227', '6532', '00,65,6532', '民丰县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653227', '民丰县', '', '', '', '', 3, 1, ''), ('6540', '65', '00,65', '伊犁哈萨克自治州', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '', '', '', '', '', '', 2, 1, ''), ('654002', '6540', '00,65,6540', '伊宁市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654002', '伊宁市', '', '', '', '', 3, 1, ''), ('654003', '6540', '00,65,6540', '奎屯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654003', '奎屯市', '', '', '', '', 3, 1, ''), ('654004', '6540', '00,65,6540', '霍尔果斯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654004', '霍尔果斯市', '', '', '', '', 3, 1, ''), ('654021', '6540', '00,65,6540', '伊宁县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654021', '伊宁县', '', '', '', '', 3, 1, ''), ('654022', '6540', '00,65,6540', '察布查尔锡伯自治县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654022', '察布查尔锡伯自治县', '', '', '', '', 3, 1, ''), ('654023', '6540', '00,65,6540', '霍城县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654023', '霍城县', '', '', '', '', 3, 1, ''), ('654024', '6540', '00,65,6540', '巩留县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654024', '巩留县', '', '', '', '', 3, 1, ''), ('654025', '6540', '00,65,6540', '新源县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654025', '新源县', '', '', '', '', 3, 1, ''), ('654026', '6540', '00,65,6540', '昭苏县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654026', '昭苏县', '', '', '', '', 3, 1, ''), ('654027', '6540', '00,65,6540', '特克斯县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654027', '特克斯县', '', '', '', '', 3, 1, ''), ('654028', '6540', '00,65,6540', '尼勒克县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654028', '尼勒克县', '', '', '', '', 3, 1, ''), ('6542', '65', '00,65', '塔城地区', '65', '新疆维吾尔自治区', '6542', '塔城地区', '', '', '', '', '', '', 2, 1, ''), ('654201', '6542', '00,65,6542', '塔城市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654201', '塔城市', '', '', '', '', 3, 1, ''), ('654202', '6542', '00,65,6542', '乌苏市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654202', '乌苏市', '', '', '', '', 3, 1, ''), ('654221', '6542', '00,65,6542', '额敏县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654221', '额敏县', '', '', '', '', 3, 1, ''), ('654223', '6542', '00,65,6542', '沙湾县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654223', '沙湾县', '', '', '', '', 3, 1, ''), ('654224', '6542', '00,65,6542', '托里县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654224', '托里县', '', '', '', '', 3, 1, ''), ('654225', '6542', '00,65,6542', '裕民县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654225', '裕民县', '', '', '', '', 3, 1, ''), ('654226', '6542', '00,65,6542', '和布克赛尔蒙古自治县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654226', '和布克赛尔蒙古自治县', '', '', '', '', 3, 1, ''), ('6543', '65', '00,65', '阿勒泰地区', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '', '', '', '', '', '', 2, 1, ''), ('654301', '6543', '00,65,6543', '阿勒泰市', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654301', '阿勒泰市', '', '', '', '', 3, 1, ''), ('654321', '6543', '00,65,6543', '布尔津县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654321', '布尔津县', '', '', '', '', 3, 1, ''), ('654322', '6543', '00,65,6543', '富蕴县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654322', '富蕴县', '', '', '', '', 3, 1, ''), ('654323', '6543', '00,65,6543', '福海县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654323', '福海县', '', '', '', '', 3, 1, ''), ('654324', '6543', '00,65,6543', '哈巴河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654324', '哈巴河县', '', '', '', '', 3, 1, ''), ('654325', '6543', '00,65,6543', '青河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654325', '青河县', '', '', '', '', 3, 1, ''), ('654326', '6543', '00,65,6543', '吉木乃县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654326', '吉木乃县', '', '', '', '', 3, 1, ''), ('6590', '65', '00,65', '自治区直辖县级行政区', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '', '', '', '', '', '', 2, 1, ''), ('659001', '6590', '00,65,6590', '石河子市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659001', '石河子市', '', '', '', '', 3, 1, ''), ('659002', '6590', '00,65,6590', '阿拉尔市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659002', '阿拉尔市', '', '', '', '', 3, 1, ''), ('659003', '6590', '00,65,6590', '图木舒克市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659003', '图木舒克市', '', '', '', '', 3, 1, ''), ('659004', '6590', '00,65,6590', '五家渠市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659004', '五家渠市', '', '', '', '', 3, 1, ''), ('659005', '6590', '00,65,6590', '北屯市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659005', '北屯市', '', '', '', '', 3, 1, ''), ('659006', '6590', '00,65,6590', '铁门关市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659006', '铁门关市', '', '', '', '', 3, 1, ''), ('659007', '6590', '00,65,6590', '双河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659007', '双河市', '', '', '', '', 3, 1, ''), ('659008', '6590', '00,65,6590', '可克达拉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659008', '可克达拉市', '', '', '', '', 3, 1, ''), ('659009', '6590', '00,65,6590', '昆玉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659009', '昆玉市', '', '', '', '', 3, 1, ''), ('659010', '6590', '00,65,6590', '胡杨河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659010', '胡杨河市', '', '', '', '', 3, 1, ''), ('71', '00', '00', '台湾省', '71', '台湾省', '', '', '', '', '', '', '', '', 1, 1, ''), ('81', '00', '00', '香港特别行政区', '81', '香港特别行政区', '', '', '', '', '', '', '', '', 1, 1, ''), ('82', '00', '00', '澳门特别行政区', '82', '澳门特别行政区', '', '', '', '', '', '', '', '', 1, 1, ''); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_report_file +-- ---------------------------- +DROP TABLE IF EXISTS `blade_report_file`; +CREATE TABLE `blade_report_file` ( + `id` bigint(64) NOT NULL COMMENT '主键', + `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '文件名', + `content` mediumblob NULL COMMENT '文件内容', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '报表文件表'; + +-- ---------------------------- +-- Table structure for blade_role +-- ---------------------------- +DROP TABLE IF EXISTS `blade_role`; +CREATE TABLE `blade_role` ( + `id` bigint(64) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `parent_id` bigint(64) NULL DEFAULT 0 COMMENT '父主键', + `role_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色名', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `role_alias` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色别名', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色表'; + +-- ---------------------------- +-- Records of blade_role +-- ---------------------------- +BEGIN; +INSERT INTO `blade_role` VALUES (1123598816738675201, '000000', 0, '超级管理员', 1, 'administrator', 0), (1123598816738675202, '000000', 0, '用户', 2, 'user', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_role_menu +-- ---------------------------- +DROP TABLE IF EXISTS `blade_role_menu`; +CREATE TABLE `blade_role_menu` ( + `id` bigint(64) NOT NULL COMMENT '主键', + `menu_id` bigint(64) NULL DEFAULT NULL COMMENT '菜单id', + `role_id` bigint(64) NULL DEFAULT NULL COMMENT '角色id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色菜单表'; + +-- ---------------------------- +-- Records of blade_role_menu +-- ---------------------------- +BEGIN; +INSERT INTO `blade_role_menu` VALUES (1123598817738675201, 1123598815738675201, 1123598816738675201), (1123598817738675202, 1123598815738675202, 1123598816738675201), (1123598817738675203, 1123598815738675203, 1123598816738675201), (1123598817738675204, 1123598815738675204, 1123598816738675201), (1123598817738675205, 1123598815738675205, 1123598816738675201), (1123598817738675206, 1123598815738675206, 1123598816738675201), (1123598817738675207, 1123598815738675207, 1123598816738675201), (1123598817738675208, 1123598815738675208, 1123598816738675201), (1123598817738675209, 1123598815738675209, 1123598816738675201), (1123598817738675210, 1123598815738675210, 1123598816738675201), (1123598817738675211, 1123598815738675211, 1123598816738675201), (1123598817738675212, 1123598815738675212, 1123598816738675201), (1123598817738675213, 1123598815738675213, 1123598816738675201), (1123598817738675214, 1123598815738675214, 1123598816738675201), (1123598817738675215, 1123598815738675215, 1123598816738675201), (1123598817738675216, 1123598815738675216, 1123598816738675201), (1123598817738675217, 1123598815738675217, 1123598816738675201), (1123598817738675218, 1123598815738675218, 1123598816738675201), (1123598817738675219, 1123598815738675219, 1123598816738675201), (1123598817738675220, 1123598815738675220, 1123598816738675201), (1123598817738675221, 1123598815738675221, 1123598816738675201), (1123598817738675222, 1123598815738675222, 1123598816738675201), (1123598817738675223, 1123598815738675223, 1123598816738675201), (1123598817738675224, 1123598815738675224, 1123598816738675201), (1123598817738675225, 1123598815738675225, 1123598816738675201), (1123598817738675226, 1123598815738675226, 1123598816738675201), (1123598817738675227, 1123598815738675227, 1123598816738675201), (1123598817738675228, 1123598815738675228, 1123598816738675201), (1123598817738675229, 1123598815738675229, 1123598816738675201), (1123598817738675230, 1123598815738675230, 1123598816738675201), (1123598817738675231, 1123598815738675231, 1123598816738675201), (1123598817738675232, 1123598815738675232, 1123598816738675201), (1123598817738675233, 1123598815738675233, 1123598816738675201), (1123598817738675234, 1123598815738675234, 1123598816738675201), (1123598817738675235, 1123598815738675235, 1123598816738675201), (1123598817738675236, 1123598815738675236, 1123598816738675201), (1123598817738675237, 1123598815738675237, 1123598816738675201), (1123598817738675238, 1123598815738675238, 1123598816738675201), (1123598817738675239, 1123598815738675239, 1123598816738675201), (1123598817738675240, 1123598815738675240, 1123598816738675201), (1123598817738675241, 1123598815738675241, 1123598816738675201), (1123598817738675242, 1123598815738675242, 1123598816738675201), (1123598817738675243, 1123598815738675243, 1123598816738675201), (1123598817738675244, 1123598815738675244, 1123598816738675201), (1123598817738675245, 1123598815738675245, 1123598816738675201), (1123598817738675246, 1123598815738675246, 1123598816738675201), (1123598817738675247, 1123598815738675247, 1123598816738675201), (1123598817738675248, 1123598815738675248, 1123598816738675201), (1123598817738675249, 1123598815738675249, 1123598816738675201), (1123598817738675250, 1123598815738675250, 1123598816738675201), (1123598817738675251, 1123598815738675251, 1123598816738675201), (1123598817738675252, 1123598815738675252, 1123598816738675201), (1123598817738675253, 1123598815738675253, 1123598816738675201), (1123598817738675254, 1123598815738675254, 1123598816738675201), (1123598817738675255, 1123598815738675255, 1123598816738675201), (1123598817738675256, 1123598815738675256, 1123598816738675201), (1123598817738675257, 1123598815738675257, 1123598816738675201), (1123598817738675258, 1123598815738675258, 1123598816738675201), (1123598817738675259, 1123598815738675259, 1123598816738675201), (1123598817738675260, 1123598815738675260, 1123598816738675201), (1123598817738675261, 1123598815738675261, 1123598816738675201), (1123598817738675262, 1123598815738675262, 1123598816738675201), (1123598817738675263, 1123598815738675263, 1123598816738675201), (1123598817738675264, 1123598815738675264, 1123598816738675201), (1123598817738675265, 1123598815738675265, 1123598816738675201), (1123598817738675266, 1123598815738675266, 1123598816738675201), (1123598817738675267, 1123598815738675267, 1123598816738675201), (1123598817738675268, 1123598815738675268, 1123598816738675201), (1123598817738675269, 1123598815738675269, 1123598816738675201), (1123598817738675270, 1123598815738675270, 1123598816738675201), (1161272893875225001, 1164733389668962251, 1123598816738675201), (1161272893875225002, 1164733389668962252, 1123598816738675201), (1161272893875225003, 1164733389668962253, 1123598816738675201), (1161272893875225004, 1164733389668962254, 1123598816738675201), (1161272893875225005, 1164733389668962255, 1123598816738675201), (1161272893875225006, 1164733389668962256, 1123598816738675201), (1161272893875226001, 1164733399668962201, 1123598816738675201), (1161272893875226002, 1164733399668962202, 1123598816738675201), (1161272893875226003, 1164733399668962203, 1123598816738675201), (1161272893875226004, 1164733399668962204, 1123598816738675201), (1161272893875226005, 1164733399668962205, 1123598816738675201), (1161272893875226006, 1164733399668962206, 1123598816738675201), (1161272893875226007, 1164733399668962207, 1123598816738675201), (1161272893875228001, 1164733399669962301, 1123598816738675201), (1161272893875228002, 1164733399669962302, 1123598816738675201), (1161272893875228003, 1164733399669962303, 1123598816738675201), (1296030340342616066, 1123598815738675201, 1123598816738675202), (1296030340367781890, 1123598815738675202, 1123598816738675202), (1296030340384559105, 1123598815738675219, 1123598816738675202), (1296030340401336321, 1123598815738675220, 1123598816738675202), (1296030340413919233, 1123598815738675221, 1123598816738675202), (1296030340434890753, 1123598815738675222, 1123598816738675202); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_tenant +-- ---------------------------- +DROP TABLE IF EXISTS `blade_tenant`; +CREATE TABLE `blade_tenant` ( + `id` bigint(64) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', + `tenant_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户名称', + `domain` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '域名地址', + `linkman` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系人', + `contact_number` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系电话', + `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系地址', + `create_user` bigint(64) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(64) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '租户表'; + +-- ---------------------------- +-- Records of blade_tenant +-- ---------------------------- +BEGIN; +INSERT INTO `blade_tenant` VALUES (1123598820738675201, '000000', '管理组', '', 'admin', '666666', '管理组', 1123598821738675201, '2019-01-01 00:00:39', 1123598821738675201, '2019-01-01 00:00:39', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_user +-- ---------------------------- +DROP TABLE IF EXISTS `blade_user`; +CREATE TABLE `blade_user` ( + `id` bigint(64) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户编号', + `account` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号', + `password` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码', + `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '昵称', + `real_name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '真名', + `avatar` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像', + `email` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱', + `phone` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机', + `birthday` datetime(0) NULL DEFAULT NULL COMMENT '生日', + `sex` smallint(6) NULL DEFAULT NULL COMMENT '性别', + `role_id` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色id', + `dept_id` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门id', + `post_id` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '岗位id', + `create_user` bigint(64) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(64) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户表'; + +-- ---------------------------- +-- Records of blade_user +-- ---------------------------- +BEGIN; +INSERT INTO `blade_user` VALUES (1123598821738675201, '000000', NULL, 'admin', '90b9aa7e25f80cf4f64e990b78a9fc5ebd6cecad', '管理员', '管理员', '', 'admin@bladex.vip', '22233322', '2018-08-08 00:00:00', 1, '1123598816738675201', '1123598813738675201', '1123598817738675201', 1123598821738675201, '2018-08-08 00:00:00', 1123598821738675201, '2018-08-08 00:00:00', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_user_oauth +-- ---------------------------- +DROP TABLE IF EXISTS `blade_user_oauth`; +CREATE TABLE `blade_user_oauth` ( + `id` bigint(64) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户ID', + `uuid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '第三方系统用户ID', + `user_id` bigint(64) NULL DEFAULT NULL COMMENT '用户ID', + `username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号', + `nickname` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名', + `avatar` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像', + `blog` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用主页', + `company` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公司名', + `location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地址', + `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮件', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `gender` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别', + `source` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '来源', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户第三方认证表'; + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/script/kuboard/saber-db/my.cnf b/script/kuboard/saber-db/my.cnf new file mode 100644 index 00000000..7d8e75f9 --- /dev/null +++ b/script/kuboard/saber-db/my.cnf @@ -0,0 +1,7 @@ +[mysqld] + +init_connect='SET collation_connection = utf8_unicode_ci' +init_connect='SET NAMES utf8' +character-set-server=utf8 +collation-server=utf8_unicode_ci +skip-character-set-client-handshake From d15f2236c1b0c1ef160e62c816798cc6e1b659a1 Mon Sep 17 00:00:00 2001 From: smallchill Date: Tue, 29 Jun 2021 11:17:33 +0800 Subject: [PATCH 05/25] =?UTF-8?q?:tada:=203.1.0.RELEASE=20=E5=BA=95?= =?UTF-8?q?=E5=B1=82=E6=9E=B6=E6=9E=84=E5=8D=87=E7=BA=A7=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +-- blade-auth/pom.xml | 2 +- blade-common/pom.xml | 2 +- blade-gateway/pom.xml | 2 +- blade-ops/blade-admin/pom.xml | 2 +- blade-ops/blade-develop/pom.xml | 2 +- blade-ops/blade-report/pom.xml | 2 +- blade-ops/blade-resource/pom.xml | 2 +- blade-ops/blade-seata-order/pom.xml | 2 +- blade-ops/blade-seata-storage/pom.xml | 2 +- blade-ops/blade-swagger/pom.xml | 2 +- blade-ops/pom.xml | 4 +-- blade-service-api/blade-demo-api/pom.xml | 2 +- blade-service-api/blade-desk-api/pom.xml | 2 +- blade-service-api/blade-dict-api/pom.xml | 2 +- blade-service-api/blade-system-api/pom.xml | 2 +- blade-service-api/blade-user-api/pom.xml | 2 +- blade-service-api/pom.xml | 4 +-- blade-service/blade-demo/pom.xml | 2 +- blade-service/blade-desk/pom.xml | 2 +- blade-service/blade-log/pom.xml | 2 +- blade-service/blade-system/pom.xml | 2 +- .../system/service/impl/DictServiceImpl.java | 4 +-- blade-service/blade-user/pom.xml | 2 +- .../user/service/impl/UserServiceImpl.java | 7 ++--- blade-service/pom.xml | 4 +-- doc/nacos/blade.yaml | 2 +- pom.xml | 16 +++++------ script/docker/.env | 2 +- script/docker/deploy.sh | 1 + script/docker/docker-compose.yml | 2 +- script/kuboard/kuboard_spring-blade.yaml | 28 +++++++++---------- 32 files changed, 59 insertions(+), 59 deletions(-) diff --git a/README.md b/README.md index 694da6b1..c8feef6d 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@

- Downloads + Downloads Build Status Build Status Coverage Status - Downloads + Downloads Downloads diff --git a/blade-auth/pom.xml b/blade-auth/pom.xml index af2ea9e5..c3467fe5 100644 --- a/blade-auth/pom.xml +++ b/blade-auth/pom.xml @@ -8,7 +8,7 @@ SpringBlade org.springblade - 3.0.3 + 3.1.0 blade-auth diff --git a/blade-common/pom.xml b/blade-common/pom.xml index 86029b81..a167f875 100644 --- a/blade-common/pom.xml +++ b/blade-common/pom.xml @@ -5,7 +5,7 @@ SpringBlade org.springblade - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-gateway/pom.xml b/blade-gateway/pom.xml index fa27ecda..b5ec77e4 100644 --- a/blade-gateway/pom.xml +++ b/blade-gateway/pom.xml @@ -5,7 +5,7 @@ SpringBlade org.springblade - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-ops/blade-admin/pom.xml b/blade-ops/blade-admin/pom.xml index 1220b829..cce71b3d 100644 --- a/blade-ops/blade-admin/pom.xml +++ b/blade-ops/blade-admin/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-ops/blade-develop/pom.xml b/blade-ops/blade-develop/pom.xml index 557495e9..aecc99bb 100644 --- a/blade-ops/blade-develop/pom.xml +++ b/blade-ops/blade-develop/pom.xml @@ -6,7 +6,7 @@ org.springblade blade-ops - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-ops/blade-report/pom.xml b/blade-ops/blade-report/pom.xml index 2159b7ca..933269a6 100644 --- a/blade-ops/blade-report/pom.xml +++ b/blade-ops/blade-report/pom.xml @@ -5,7 +5,7 @@ org.springblade blade-ops - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-ops/blade-resource/pom.xml b/blade-ops/blade-resource/pom.xml index a0ccf994..377a0bbb 100644 --- a/blade-ops/blade-resource/pom.xml +++ b/blade-ops/blade-resource/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-ops/blade-seata-order/pom.xml b/blade-ops/blade-seata-order/pom.xml index 41391ff8..0ce4b87b 100644 --- a/blade-ops/blade-seata-order/pom.xml +++ b/blade-ops/blade-seata-order/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-ops/blade-seata-storage/pom.xml b/blade-ops/blade-seata-storage/pom.xml index 9086de3b..d8cffc44 100644 --- a/blade-ops/blade-seata-storage/pom.xml +++ b/blade-ops/blade-seata-storage/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-ops/blade-swagger/pom.xml b/blade-ops/blade-swagger/pom.xml index bb12699c..7435ff0a 100644 --- a/blade-ops/blade-swagger/pom.xml +++ b/blade-ops/blade-swagger/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-ops/pom.xml b/blade-ops/pom.xml index 93083caa..06e2d852 100644 --- a/blade-ops/pom.xml +++ b/blade-ops/pom.xml @@ -5,13 +5,13 @@ SpringBlade org.springblade - 3.0.3 + 3.1.0 4.0.0 blade-ops ${project.artifactId} - 3.0.3 + 3.1.0 pom blade-admin diff --git a/blade-service-api/blade-demo-api/pom.xml b/blade-service-api/blade-demo-api/pom.xml index 8ab36073..b1835413 100644 --- a/blade-service-api/blade-demo-api/pom.xml +++ b/blade-service-api/blade-demo-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-service-api/blade-desk-api/pom.xml b/blade-service-api/blade-desk-api/pom.xml index 07b22d85..240136b1 100644 --- a/blade-service-api/blade-desk-api/pom.xml +++ b/blade-service-api/blade-desk-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-service-api/blade-dict-api/pom.xml b/blade-service-api/blade-dict-api/pom.xml index 995a0c4f..26523988 100644 --- a/blade-service-api/blade-dict-api/pom.xml +++ b/blade-service-api/blade-dict-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-service-api/blade-system-api/pom.xml b/blade-service-api/blade-system-api/pom.xml index 2220d3bb..0fe4c24e 100644 --- a/blade-service-api/blade-system-api/pom.xml +++ b/blade-service-api/blade-system-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-service-api/blade-user-api/pom.xml b/blade-service-api/blade-user-api/pom.xml index 57f7f49a..be91de02 100644 --- a/blade-service-api/blade-user-api/pom.xml +++ b/blade-service-api/blade-user-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-service-api/pom.xml b/blade-service-api/pom.xml index 0f8d3076..0c476847 100644 --- a/blade-service-api/pom.xml +++ b/blade-service-api/pom.xml @@ -5,13 +5,13 @@ SpringBlade org.springblade - 3.0.3 + 3.1.0 4.0.0 blade-service-api ${project.artifactId} - 3.0.3 + 3.1.0 pom SpringBlade 微服务API集合 diff --git a/blade-service/blade-demo/pom.xml b/blade-service/blade-demo/pom.xml index 8db43791..c9b6d2e7 100644 --- a/blade-service/blade-demo/pom.xml +++ b/blade-service/blade-demo/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-service/blade-desk/pom.xml b/blade-service/blade-desk/pom.xml index 28f64f09..3fd88135 100644 --- a/blade-service/blade-desk/pom.xml +++ b/blade-service/blade-desk/pom.xml @@ -6,7 +6,7 @@ org.springblade blade-service - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-service/blade-log/pom.xml b/blade-service/blade-log/pom.xml index 7595e130..22cc540a 100644 --- a/blade-service/blade-log/pom.xml +++ b/blade-service/blade-log/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-service/blade-system/pom.xml b/blade-service/blade-system/pom.xml index 86c6215d..548fb4c4 100644 --- a/blade-service/blade-system/pom.xml +++ b/blade-service/blade-system/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DictServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DictServiceImpl.java index 671b7488..36dc4ba7 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DictServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DictServiceImpl.java @@ -18,8 +18,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.exceptions.ApiException; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.core.log.exception.ServiceException; import org.springblade.core.tool.node.ForestNodeMerger; import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.StringPool; @@ -72,7 +72,7 @@ public boolean submit(Dict dict) { LambdaQueryWrapper lqw = Wrappers.query().lambda().eq(Dict::getCode, dict.getCode()).eq(Dict::getDictKey, dict.getDictKey()); Integer cnt = baseMapper.selectCount((Func.isEmpty(dict.getId())) ? lqw : lqw.notIn(Dict::getId, dict.getId())); if (cnt > 0) { - throw new ApiException("当前字典键值已存在!"); + throw new ServiceException("当前字典键值已存在!"); } return saveOrUpdate(dict); } diff --git a/blade-service/blade-user/pom.xml b/blade-service/blade-user/pom.xml index e117499d..35f3b4bd 100644 --- a/blade-service/blade-user/pom.xml +++ b/blade-service/blade-user/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.0.3 + 3.1.0 4.0.0 diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java b/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java index 278cdc77..d89c45b2 100644 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java +++ b/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java @@ -19,7 +19,6 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.exceptions.ApiException; import lombok.AllArgsConstructor; import org.springblade.common.constant.CommonConstant; import org.springblade.core.log.exception.ServiceException; @@ -63,7 +62,7 @@ public boolean submit(User user) { } Integer cnt = baseMapper.selectCount(Wrappers.query().lambda().eq(User::getTenantId, user.getTenantId()).eq(User::getAccount, user.getAccount())); if (cnt > 0) { - throw new ApiException("当前用户已存在!"); + throw new ServiceException("当前用户已存在!"); } return saveOrUpdate(user); } @@ -191,11 +190,11 @@ public boolean registerGuest(User user, Long oauthId) { R result = sysClient.getTenant(user.getTenantId()); Tenant tenant = result.getData(); if (!result.isSuccess() || tenant == null || tenant.getId() == null) { - throw new ApiException("租户信息错误!"); + throw new ServiceException("租户信息错误!"); } UserOauth userOauth = userOauthService.getById(oauthId); if (userOauth == null || userOauth.getId() == null) { - throw new ApiException("第三方登陆信息错误!"); + throw new ServiceException("第三方登陆信息错误!"); } user.setRealName(user.getName()); user.setAvatar(userOauth.getAvatar()); diff --git a/blade-service/pom.xml b/blade-service/pom.xml index e52b7f93..6b9b9a4b 100644 --- a/blade-service/pom.xml +++ b/blade-service/pom.xml @@ -7,12 +7,12 @@ org.springblade SpringBlade - 3.0.3 + 3.1.0 blade-service ${project.artifactId} - 3.0.3 + 3.1.0 pom SpringBlade 微服务集合 diff --git a/doc/nacos/blade.yaml b/doc/nacos/blade.yaml index 73cd02e8..4264c7d2 100644 --- a/doc/nacos/blade.yaml +++ b/doc/nacos/blade.yaml @@ -69,7 +69,7 @@ knife4j: swagger: title: SpringBlade 接口文档系统 description: SpringBlade 接口文档系统 - version: 3.0.3 + version: 3.1.0 license: Powered By SpringBlade licenseUrl: https://bladex.vip terms-of-service-url: https://bladex.vip diff --git a/pom.xml b/pom.xml index 8fbf580f..bc8433de 100644 --- a/pom.xml +++ b/pom.xml @@ -5,12 +5,12 @@ org.springblade SpringBlade - 3.0.3 + 3.1.0 pom - 3.0.3 - 3.0.3 + 3.1.0 + 3.1.0 1.8 3.8.1 @@ -21,13 +21,13 @@ 1.6.2 2.2.6 1.2.5 - 2.2.5.RELEASE - 2.0.0 - 2.3.1 + 2021.1 + 2.0.2 + 2.4.2 2.0.0.RELEASE - 2.4.4 - 2020.0.2 + 2.5.2 + 2020.0.3 Cairo-SR8 diff --git a/script/docker/.env b/script/docker/.env index 264f45d1..2758b244 100644 --- a/script/docker/.env +++ b/script/docker/.env @@ -1,2 +1,2 @@ REGISTER=192.168.0.157/blade -TAG=3.0.3 +TAG=3.1.0 diff --git a/script/docker/deploy.sh b/script/docker/deploy.sh index 72fd95f5..d8604b68 100644 --- a/script/docker/deploy.sh +++ b/script/docker/deploy.sh @@ -1,3 +1,4 @@ +#!/bin/bash #使用说明,用来提示输入参数 usage() { diff --git a/script/docker/docker-compose.yml b/script/docker/docker-compose.yml index d02360fc..e757b61b 100644 --- a/script/docker/docker-compose.yml +++ b/script/docker/docker-compose.yml @@ -1,7 +1,7 @@ version: '3' services: nacos: - image: nacos/nacos-server:2.0.0 + image: nacos/nacos-server:2.0.2 hostname: "nacos-standalone" environment: - MODE=standalone diff --git a/script/kuboard/kuboard_spring-blade.yaml b/script/kuboard/kuboard_spring-blade.yaml index 1a4a055a..e00b5637 100644 --- a/script/kuboard/kuboard_spring-blade.yaml +++ b/script/kuboard/kuboard_spring-blade.yaml @@ -152,7 +152,7 @@ spec: spec: containers: - name: blade-admin - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-admin:3.0.3' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-admin:3.1.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -386,7 +386,7 @@ spec: spec: containers: - name: blade-auth - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-auth:3.0.3' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-auth:3.1.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -625,7 +625,7 @@ spec: spec: containers: - name: blade-desk - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-desk:3.0.3' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-desk:3.1.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -864,7 +864,7 @@ spec: spec: containers: - name: blade-develop - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-develop:3.0.3' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-develop:3.1.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1096,7 +1096,7 @@ spec: spec: containers: - name: blade-gateway - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-gateway:3.0.3' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-gateway:3.1.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1331,7 +1331,7 @@ spec: spec: containers: - name: blade-log - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-log:3.0.3' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-log:3.1.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1565,7 +1565,7 @@ spec: spec: containers: - name: blade-report - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-report:3.0.3' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-report:3.1.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1799,7 +1799,7 @@ spec: spec: containers: - name: blade-resource - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-resource:3.0.3' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-resource:3.1.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -2033,7 +2033,7 @@ spec: spec: containers: - name: blade-system - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-system:3.0.3' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-system:3.1.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -2267,7 +2267,7 @@ spec: spec: containers: - name: blade-user - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-user:3.0.3' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-user:3.1.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -2496,7 +2496,7 @@ spec: spec: containers: - name: saber-web - image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-web:3.0.3' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-web:3.1.0' ports: - name: web containerPort: 80 @@ -2721,7 +2721,7 @@ spec: spec: containers: - name: blade-swagger - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-swagger:3.0.3' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-swagger:3.1.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -3016,7 +3016,7 @@ spec: defaultMode: 420 containers: - name: nacos - image: 'swr.cn-east-2.myhuaweicloud.com/blade/nacos-server:2.0.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/nacos-server:2.0.2' ports: - name: client containerPort: 8848 @@ -3749,7 +3749,7 @@ spec: spec: containers: - name: mysql - image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-db:v3.0.3' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-db:v3.1.0' ports: - name: mysql containerPort: 3306 From 5914f6c133c49eadc7b3ecba7618ffd0c450f836 Mon Sep 17 00:00:00 2001 From: smallchill Date: Fri, 5 Nov 2021 01:17:34 +0800 Subject: [PATCH 06/25] =?UTF-8?q?:tada:=203.2.0.RELEASE=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=81=B5=E6=B4=BB=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90?= =?UTF-8?q?=E7=89=B9=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 +- blade-auth/pom.xml | 2 +- .../org/springblade/auth/utils/TokenUtil.java | 1 + blade-common/pom.xml | 2 +- blade-gateway/pom.xml | 2 +- .../gateway/filter/AuthFilter.java | 2 +- blade-ops/blade-admin/pom.xml | 2 +- blade-ops/blade-develop/pom.xml | 2 +- blade-ops/blade-report/pom.xml | 2 +- blade-ops/blade-resource/pom.xml | 2 +- blade-ops/blade-seata-order/pom.xml | 2 +- blade-ops/blade-seata-storage/pom.xml | 2 +- blade-ops/blade-swagger/pom.xml | 2 +- blade-ops/pom.xml | 4 +- blade-service-api/blade-demo-api/pom.xml | 2 +- blade-service-api/blade-desk-api/pom.xml | 2 +- blade-service-api/blade-dict-api/pom.xml | 2 +- blade-service-api/blade-scope-api/pom.xml | 30 ++++ .../system/cache/DataScopeCache.java | 92 +++++++++++ .../system/config/ScopeConfiguration.java | 42 +++++ .../system/feign/IDataScopeClient.java | 71 ++++++++ .../feign/IDataScopeClientFallback.java | 44 +++++ .../system/handler/DataScopeModelHandler.java | 64 ++++++++ blade-service-api/blade-system-api/pom.xml | 2 +- .../springblade/system/entity/DataScope.java | 97 +++++++++++ .../org/springblade/system/entity/Dept.java | 6 + .../springblade/system/entity/RoleScope.java | 64 ++++++++ .../springblade/system/vo/CheckedTreeVO.java | 34 ++++ .../springblade/system/vo/DataScopeVO.java | 38 +++++ .../springblade/system/vo/GrantTreeVO.java | 36 +++++ .../org/springblade/system/vo/GrantVO.java | 3 + .../org/springblade/system/vo/MenuVO.java | 6 + blade-service-api/blade-user-api/pom.xml | 2 +- blade-service-api/pom.xml | 5 +- blade-service/blade-demo/pom.xml | 2 +- blade-service/blade-desk/pom.xml | 2 +- .../src/test/java/BladeDemoTest.java | 2 +- blade-service/blade-log/pom.xml | 2 +- blade-service/blade-system/pom.xml | 2 +- .../controller/DataScopeController.java | 120 ++++++++++++++ .../system/controller/DeptController.java | 7 +- .../system/controller/MenuController.java | 65 ++++++-- .../system/controller/RoleController.java | 29 +++- .../system/feign/DataScopeClient.java | 106 ++++++++++++ .../system/mapper/DataScopeMapper.java | 28 ++++ .../system/mapper/DataScopeMapper.xml | 5 + .../springblade/system/mapper/MenuMapper.java | 25 +++ .../springblade/system/mapper/MenuMapper.xml | 144 +++++++++++++++++ .../system/mapper/RoleScopeMapper.java | 28 ++++ .../system/mapper/RoleScopeMapper.xml | 12 ++ .../system/service/IDataScopeService.java | 28 ++++ .../system/service/IDeptService.java | 8 + .../system/service/IMenuService.java | 26 +++ .../system/service/IRoleScopeService.java | 28 ++++ .../system/service/IRoleService.java | 2 +- .../service/impl/DataScopeServiceImpl.java | 32 ++++ .../system/service/impl/DeptServiceImpl.java | 26 +++ .../system/service/impl/DictServiceImpl.java | 2 +- .../system/service/impl/MenuServiceImpl.java | 25 ++- .../service/impl/RegionServiceImpl.java | 4 +- .../service/impl/RoleScopeServiceImpl.java | 32 ++++ .../system/service/impl/RoleServiceImpl.java | 24 ++- .../system/wrapper/DataScopeWrapper.java | 53 ++++++ .../system/wrapper/MenuWrapper.java | 4 + blade-service/blade-user/pom.xml | 2 +- .../user/service/impl/UserServiceImpl.java | 2 +- blade-service/pom.xml | 9 +- doc/nacos/blade-demo-dev.yaml | 4 +- doc/nacos/blade.yaml | 2 +- doc/sql/blade/blade-saber-mysql.sql | 151 +++++++++++------- doc/sql/blade/blade-sword-mysql.sql | 148 +++++++++++------ doc/sql/blade/blade-update-3.1.0~3.2.0.sql | 115 +++++++++++++ pom.xml | 16 +- script/docker/.env | 2 +- script/kuboard/kuboard_spring-blade.yaml | 26 +-- 75 files changed, 1826 insertions(+), 200 deletions(-) create mode 100644 blade-service-api/blade-scope-api/pom.xml create mode 100644 blade-service-api/blade-scope-api/src/main/java/org/springblade/system/cache/DataScopeCache.java create mode 100644 blade-service-api/blade-scope-api/src/main/java/org/springblade/system/config/ScopeConfiguration.java create mode 100644 blade-service-api/blade-scope-api/src/main/java/org/springblade/system/feign/IDataScopeClient.java create mode 100644 blade-service-api/blade-scope-api/src/main/java/org/springblade/system/feign/IDataScopeClientFallback.java create mode 100644 blade-service-api/blade-scope-api/src/main/java/org/springblade/system/handler/DataScopeModelHandler.java create mode 100644 blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/DataScope.java create mode 100644 blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/RoleScope.java create mode 100644 blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/CheckedTreeVO.java create mode 100644 blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/DataScopeVO.java create mode 100644 blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/GrantTreeVO.java create mode 100644 blade-service/blade-system/src/main/java/org/springblade/system/controller/DataScopeController.java create mode 100644 blade-service/blade-system/src/main/java/org/springblade/system/feign/DataScopeClient.java create mode 100644 blade-service/blade-system/src/main/java/org/springblade/system/mapper/DataScopeMapper.java create mode 100644 blade-service/blade-system/src/main/java/org/springblade/system/mapper/DataScopeMapper.xml create mode 100644 blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleScopeMapper.java create mode 100644 blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleScopeMapper.xml create mode 100644 blade-service/blade-system/src/main/java/org/springblade/system/service/IDataScopeService.java create mode 100644 blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleScopeService.java create mode 100644 blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DataScopeServiceImpl.java create mode 100644 blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleScopeServiceImpl.java create mode 100644 blade-service/blade-system/src/main/java/org/springblade/system/wrapper/DataScopeWrapper.java create mode 100644 doc/sql/blade/blade-update-3.1.0~3.2.0.sql diff --git a/README.md b/README.md index c8feef6d..ba164475 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@

- Downloads + Downloads Build Status Build Status Coverage Status - Downloads + Downloads Downloads @@ -186,6 +186,3 @@ Apache Licence也是对商业应用友好的许可。使用者也可以在需要 - -## 关注我们 -![](https://images.gitee.com/uploads/images/2019/0330/065148_f0ada806_410595.jpeg) \ No newline at end of file diff --git a/blade-auth/pom.xml b/blade-auth/pom.xml index c3467fe5..cd348d3c 100644 --- a/blade-auth/pom.xml +++ b/blade-auth/pom.xml @@ -8,7 +8,7 @@ SpringBlade org.springblade - 3.1.0 + 3.2.0 blade-auth diff --git a/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java b/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java index 912a1a83..5de8370b 100644 --- a/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java +++ b/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java @@ -61,6 +61,7 @@ public static AuthInfo createAuthInfo(UserInfo userInfo) { param.put(TokenConstant.OAUTH_ID, userInfo.getOauthId()); param.put(TokenConstant.USER_ID, Func.toStr(user.getId())); param.put(TokenConstant.ROLE_ID, user.getRoleId()); + param.put(TokenConstant.DEPT_ID, user.getDeptId()); param.put(TokenConstant.ACCOUNT, user.getAccount()); param.put(TokenConstant.USER_NAME, user.getAccount()); param.put(TokenConstant.ROLE_NAME, Func.join(userInfo.getRoles())); diff --git a/blade-common/pom.xml b/blade-common/pom.xml index a167f875..2ff4b64d 100644 --- a/blade-common/pom.xml +++ b/blade-common/pom.xml @@ -5,7 +5,7 @@ SpringBlade org.springblade - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-gateway/pom.xml b/blade-gateway/pom.xml index b5ec77e4..49f20495 100644 --- a/blade-gateway/pom.xml +++ b/blade-gateway/pom.xml @@ -5,7 +5,7 @@ SpringBlade org.springblade - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java b/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java index 1e29459e..0e5a7f08 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java @@ -61,7 +61,7 @@ public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { ServerHttpResponse resp = exchange.getResponse(); String headerToken = exchange.getRequest().getHeaders().getFirst(AuthProvider.AUTH_KEY); String paramToken = exchange.getRequest().getQueryParams().getFirst(AuthProvider.AUTH_KEY); - if (StringUtils.isAllBlank(headerToken, paramToken)) { + if (StringUtils.isBlank(headerToken) && StringUtils.isBlank(paramToken)) { return unAuth(resp, "缺失令牌,鉴权失败"); } String auth = StringUtils.isBlank(headerToken) ? paramToken : headerToken; diff --git a/blade-ops/blade-admin/pom.xml b/blade-ops/blade-admin/pom.xml index cce71b3d..f1d835cb 100644 --- a/blade-ops/blade-admin/pom.xml +++ b/blade-ops/blade-admin/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-ops/blade-develop/pom.xml b/blade-ops/blade-develop/pom.xml index aecc99bb..350af894 100644 --- a/blade-ops/blade-develop/pom.xml +++ b/blade-ops/blade-develop/pom.xml @@ -6,7 +6,7 @@ org.springblade blade-ops - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-ops/blade-report/pom.xml b/blade-ops/blade-report/pom.xml index 933269a6..99ed51dd 100644 --- a/blade-ops/blade-report/pom.xml +++ b/blade-ops/blade-report/pom.xml @@ -5,7 +5,7 @@ org.springblade blade-ops - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-ops/blade-resource/pom.xml b/blade-ops/blade-resource/pom.xml index 377a0bbb..6d2f36aa 100644 --- a/blade-ops/blade-resource/pom.xml +++ b/blade-ops/blade-resource/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-ops/blade-seata-order/pom.xml b/blade-ops/blade-seata-order/pom.xml index 0ce4b87b..0a7e5e30 100644 --- a/blade-ops/blade-seata-order/pom.xml +++ b/blade-ops/blade-seata-order/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-ops/blade-seata-storage/pom.xml b/blade-ops/blade-seata-storage/pom.xml index d8cffc44..97c0ef10 100644 --- a/blade-ops/blade-seata-storage/pom.xml +++ b/blade-ops/blade-seata-storage/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-ops/blade-swagger/pom.xml b/blade-ops/blade-swagger/pom.xml index 7435ff0a..695223e6 100644 --- a/blade-ops/blade-swagger/pom.xml +++ b/blade-ops/blade-swagger/pom.xml @@ -5,7 +5,7 @@ blade-ops org.springblade - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-ops/pom.xml b/blade-ops/pom.xml index 06e2d852..2c8ddc04 100644 --- a/blade-ops/pom.xml +++ b/blade-ops/pom.xml @@ -5,13 +5,13 @@ SpringBlade org.springblade - 3.1.0 + 3.2.0 4.0.0 blade-ops ${project.artifactId} - 3.1.0 + 3.2.0 pom blade-admin diff --git a/blade-service-api/blade-demo-api/pom.xml b/blade-service-api/blade-demo-api/pom.xml index b1835413..2fca853d 100644 --- a/blade-service-api/blade-demo-api/pom.xml +++ b/blade-service-api/blade-demo-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-service-api/blade-desk-api/pom.xml b/blade-service-api/blade-desk-api/pom.xml index 240136b1..92587273 100644 --- a/blade-service-api/blade-desk-api/pom.xml +++ b/blade-service-api/blade-desk-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-service-api/blade-dict-api/pom.xml b/blade-service-api/blade-dict-api/pom.xml index 26523988..bde6b399 100644 --- a/blade-service-api/blade-dict-api/pom.xml +++ b/blade-service-api/blade-dict-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-service-api/blade-scope-api/pom.xml b/blade-service-api/blade-scope-api/pom.xml new file mode 100644 index 00000000..43487bdd --- /dev/null +++ b/blade-service-api/blade-scope-api/pom.xml @@ -0,0 +1,30 @@ + + + + blade-service-api + org.springblade + 3.2.0 + + 4.0.0 + + blade-scope-api + ${project.artifactId} + ${blade.project.version} + jar + + + + org.springblade + blade-core-secure + ${blade.tool.version} + + + org.springblade + blade-core-datascope + ${blade.tool.version} + + + + diff --git a/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/cache/DataScopeCache.java b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/cache/DataScopeCache.java new file mode 100644 index 00000000..a55a156f --- /dev/null +++ b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/cache/DataScopeCache.java @@ -0,0 +1,92 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.system.cache; + +import org.springblade.core.datascope.model.DataScopeModel; +import org.springblade.core.tool.utils.*; +import org.springblade.system.feign.IDataScopeClient; + +import java.util.List; + +import static org.springblade.core.tool.utils.CacheUtil.SYS_CACHE; + + +/** + * 数据权限缓存 + * + * @author Chill + */ +public class DataScopeCache { + + private static final String SCOPE_CACHE_CODE = "dataScope:code:"; + private static final String SCOPE_CACHE_CLASS = "dataScope:class:"; + private static final String DEPT_CACHE_ANCESTORS = "dept:ancestors:"; + + private static IDataScopeClient dataScopeClient; + + private static IDataScopeClient getDataScopeClient() { + if (dataScopeClient == null) { + dataScopeClient = SpringUtil.getBean(IDataScopeClient.class); + } + return dataScopeClient; + } + + /** + * 获取数据权限 + * + * @param mapperId 数据权限mapperId + * @param roleId 用户角色集合 + * @return DataScopeModel + */ + public static DataScopeModel getDataScopeByMapper(String mapperId, String roleId) { + DataScopeModel dataScope = CacheUtil.get(SYS_CACHE, SCOPE_CACHE_CLASS, mapperId + StringPool.COLON + roleId, DataScopeModel.class); + if (dataScope == null || !dataScope.getSearched()) { + dataScope = getDataScopeClient().getDataScopeByMapper(mapperId, roleId); + CacheUtil.put(SYS_CACHE, SCOPE_CACHE_CLASS, mapperId + StringPool.COLON + roleId, dataScope); + } + return StringUtil.isNotBlank(dataScope.getResourceCode()) ? dataScope : null; + } + + /** + * 获取数据权限 + * + * @param code 数据权限资源编号 + * @return DataScopeModel + */ + public static DataScopeModel getDataScopeByCode(String code) { + DataScopeModel dataScope = CacheUtil.get(SYS_CACHE, SCOPE_CACHE_CODE, code, DataScopeModel.class); + if (dataScope == null || !dataScope.getSearched()) { + dataScope = getDataScopeClient().getDataScopeByCode(code); + CacheUtil.put(SYS_CACHE, SCOPE_CACHE_CODE, code, dataScope); + } + return StringUtil.isNotBlank(dataScope.getResourceCode()) ? dataScope : null; + } + + /** + * 获取部门子级 + * + * @param deptId 部门id + * @return deptIds + */ + public static List getDeptAncestors(Long deptId) { + List ancestors = CacheUtil.get(SYS_CACHE, DEPT_CACHE_ANCESTORS, deptId, List.class); + if (CollectionUtil.isEmpty(ancestors)) { + ancestors = getDataScopeClient().getDeptAncestors(deptId); + CacheUtil.put(SYS_CACHE, DEPT_CACHE_ANCESTORS, deptId, ancestors); + } + return ancestors; + } +} diff --git a/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/config/ScopeConfiguration.java b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/config/ScopeConfiguration.java new file mode 100644 index 00000000..365d5e74 --- /dev/null +++ b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/config/ScopeConfiguration.java @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.system.config; + + +import lombok.AllArgsConstructor; +import org.springblade.core.datascope.handler.ScopeModelHandler; +import org.springblade.core.secure.config.RegistryConfiguration; +import org.springblade.system.handler.DataScopeModelHandler; +import org.springframework.boot.autoconfigure.AutoConfigureBefore; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 公共封装包配置类 + * + * @author Chill + */ +@Configuration +@AllArgsConstructor +@AutoConfigureBefore(RegistryConfiguration.class) +public class ScopeConfiguration { + + @Bean + public ScopeModelHandler scopeModelHandler() { + return new DataScopeModelHandler(); + } + +} diff --git a/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/feign/IDataScopeClient.java b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/feign/IDataScopeClient.java new file mode 100644 index 00000000..6dc5b161 --- /dev/null +++ b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/feign/IDataScopeClient.java @@ -0,0 +1,71 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.system.feign; + +import org.springblade.core.datascope.model.DataScopeModel; +import org.springblade.core.launch.constant.AppConstant; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + * 数据权限Feign接口类 + * + * @author Chill + */ +@FeignClient( + value = AppConstant.APPLICATION_SYSTEM_NAME, + fallback = IDataScopeClientFallback.class +) +public interface IDataScopeClient { + + String API_PREFIX = "/client/data-scope"; + String GET_DATA_SCOPE_BY_MAPPER = API_PREFIX + "/by-mapper"; + String GET_DATA_SCOPE_BY_CODE = API_PREFIX + "/by-code"; + String GET_DEPT_ANCESTORS = API_PREFIX + "/dept-ancestors"; + + /** + * 获取数据权限 + * + * @param mapperId 数据权限mapperId + * @param roleId 用户角色集合 + * @return DataScopeModel + */ + @GetMapping(GET_DATA_SCOPE_BY_MAPPER) + DataScopeModel getDataScopeByMapper(@RequestParam("mapperId") String mapperId, @RequestParam("roleId") String roleId); + + /** + * 获取数据权限 + * + * @param code 数据权限资源编号 + * @return DataScopeModel + */ + @GetMapping(GET_DATA_SCOPE_BY_CODE) + DataScopeModel getDataScopeByCode(@RequestParam("code") String code); + + /** + * 获取部门子级 + * + * @param deptId 部门id + * @return deptIds + */ + @GetMapping(GET_DEPT_ANCESTORS) + List getDeptAncestors(@RequestParam("deptId") Long deptId); + + +} diff --git a/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/feign/IDataScopeClientFallback.java b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/feign/IDataScopeClientFallback.java new file mode 100644 index 00000000..abcd35a3 --- /dev/null +++ b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/feign/IDataScopeClientFallback.java @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.system.feign; + +import org.springblade.core.datascope.model.DataScopeModel; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * IDataScopeClientFallback + * + * @author Chill + */ +@Component +public class IDataScopeClientFallback implements IDataScopeClient { + @Override + public DataScopeModel getDataScopeByMapper(String mapperId, String roleId) { + return null; + } + + @Override + public DataScopeModel getDataScopeByCode(String code) { + return null; + } + + @Override + public List getDeptAncestors(Long deptId) { + return null; + } +} diff --git a/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/handler/DataScopeModelHandler.java b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/handler/DataScopeModelHandler.java new file mode 100644 index 00000000..2e7cb67c --- /dev/null +++ b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/handler/DataScopeModelHandler.java @@ -0,0 +1,64 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.system.handler; + +import org.springblade.core.datascope.handler.ScopeModelHandler; +import org.springblade.core.datascope.model.DataScopeModel; +import org.springblade.system.cache.DataScopeCache; + +import java.util.List; + +/** + * 通用数据权限规则 + * + * @author Chill + */ +public class DataScopeModelHandler implements ScopeModelHandler { + + /** + * 获取数据权限 + * + * @param mapperId 数据权限mapperId + * @param roleId 用户角色集合 + * @return DataScopeModel + */ + @Override + public DataScopeModel getDataScopeByMapper(String mapperId, String roleId) { + return DataScopeCache.getDataScopeByMapper(mapperId, roleId); + } + + /** + * 获取数据权限 + * + * @param code 数据权限资源编号 + * @return DataScopeModel + */ + @Override + public DataScopeModel getDataScopeByCode(String code) { + return DataScopeCache.getDataScopeByCode(code); + } + + /** + * 获取部门子级 + * + * @param deptId 部门id + * @return deptIds + */ + @Override + public List getDeptAncestors(Long deptId) { + return DataScopeCache.getDeptAncestors(deptId); + } +} diff --git a/blade-service-api/blade-system-api/pom.xml b/blade-service-api/blade-system-api/pom.xml index 0fe4c24e..c788723f 100644 --- a/blade-service-api/blade-system-api/pom.xml +++ b/blade-service-api/blade-system-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/DataScope.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/DataScope.java new file mode 100644 index 00000000..486763d2 --- /dev/null +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/DataScope.java @@ -0,0 +1,97 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.system.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +/** + * 实体类 + * + * @author BladeX + */ +@Data +@TableName("blade_scope_data") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "DataScope对象", description = "DataScope对象") +public class DataScope extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty(value = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 菜单主键 + */ + @ApiModelProperty(value = "菜单主键") + private Long menuId; + /** + * 资源编号 + */ + @ApiModelProperty(value = "资源编号") + private String resourceCode; + /** + * 数据权限名称 + */ + @ApiModelProperty(value = "数据权限名称") + private String scopeName; + /** + * 数据权限可见字段 + */ + @ApiModelProperty(value = "数据权限可见字段") + private String scopeField; + /** + * 数据权限类名 + */ + @ApiModelProperty(value = "数据权限类名") + private String scopeClass; + /** + * 数据权限字段 + */ + @ApiModelProperty(value = "数据权限字段") + private String scopeColumn; + /** + * 数据权限类型 + */ + @ApiModelProperty(value = "数据权限类型") + private Integer scopeType; + /** + * 数据权限值域 + */ + @ApiModelProperty(value = "数据权限值域") + private String scopeValue; + /** + * 数据权限备注 + */ + @ApiModelProperty(value = "数据权限备注") + private String remark; + + +} diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Dept.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Dept.java index 9350877f..367daecc 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Dept.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Dept.java @@ -60,6 +60,12 @@ public class Dept implements Serializable { @JsonSerialize(using = ToStringSerializer.class) private Long parentId; + /** + * 祖级机构主键 + */ + @ApiModelProperty(value = "祖级机构主键") + private String ancestors; + /** * 部门名 */ diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/RoleScope.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/RoleScope.java new file mode 100644 index 00000000..756a015b --- /dev/null +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/RoleScope.java @@ -0,0 +1,64 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.system.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("blade_role_scope") +@ApiModel(value = "RoleScope对象", description = "RoleScope对象") +public class RoleScope implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @ApiModelProperty(value = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 权限id + */ + @JsonSerialize(using = ToStringSerializer.class) + @ApiModelProperty(value = "权限id") + private Long scopeId; + + /** + * 角色id + */ + @JsonSerialize(using = ToStringSerializer.class) + @ApiModelProperty(value = "角色id") + private Long roleId; + + +} diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/CheckedTreeVO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/CheckedTreeVO.java new file mode 100644 index 00000000..7156c7aa --- /dev/null +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/CheckedTreeVO.java @@ -0,0 +1,34 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.system.vo; + +import lombok.Data; + +import java.util.List; + +/** + * CheckedTreeVO + * + * @author Chill + */ +@Data +public class CheckedTreeVO { + + private List menu; + + private List dataScope; + +} diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/DataScopeVO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/DataScopeVO.java new file mode 100644 index 00000000..59c8d40f --- /dev/null +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/DataScopeVO.java @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.system.vo; + +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.system.entity.DataScope; + +/** + * 视图实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "DataScopeVO对象", description = "DataScopeVO对象") +public class DataScopeVO extends DataScope { + private static final long serialVersionUID = 1L; + + /** + * 规则类型名 + */ + private String scopeTypeName; +} diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/GrantTreeVO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/GrantTreeVO.java new file mode 100644 index 00000000..4d9c1442 --- /dev/null +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/GrantTreeVO.java @@ -0,0 +1,36 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.system.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * GrantTreeVO + * + * @author Chill + */ +@Data +public class GrantTreeVO implements Serializable { + private static final long serialVersionUID = 1L; + + private List menu; + + private List dataScope; + +} diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/GrantVO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/GrantVO.java index 79797f13..31cbc808 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/GrantVO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/GrantVO.java @@ -36,4 +36,7 @@ public class GrantVO implements Serializable { @ApiModelProperty(value = "menuIds集合") private List menuIds; + @ApiModelProperty(value = "dataScopeIds集合") + private List dataScopeIds; + } diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/MenuVO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/MenuVO.java index b27071f0..60a76ae3 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/MenuVO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/MenuVO.java @@ -56,6 +56,12 @@ public class MenuVO extends Menu implements INode { @JsonInclude(JsonInclude.Include.NON_EMPTY) private List children; + /** + * 是否有子孙节点 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private Boolean hasChildren; + @Override public List getChildren() { if (this.children == null) { diff --git a/blade-service-api/blade-user-api/pom.xml b/blade-service-api/blade-user-api/pom.xml index be91de02..b7a50bb0 100644 --- a/blade-service-api/blade-user-api/pom.xml +++ b/blade-service-api/blade-user-api/pom.xml @@ -5,7 +5,7 @@ blade-service-api org.springblade - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-service-api/pom.xml b/blade-service-api/pom.xml index 0c476847..617c26eb 100644 --- a/blade-service-api/pom.xml +++ b/blade-service-api/pom.xml @@ -5,13 +5,13 @@ SpringBlade org.springblade - 3.1.0 + 3.2.0 4.0.0 blade-service-api ${project.artifactId} - 3.1.0 + 3.2.0 pom SpringBlade 微服务API集合 @@ -20,6 +20,7 @@ blade-dict-api blade-system-api blade-user-api + blade-scope-api blade-demo-api diff --git a/blade-service/blade-demo/pom.xml b/blade-service/blade-demo/pom.xml index c9b6d2e7..8c52f703 100644 --- a/blade-service/blade-demo/pom.xml +++ b/blade-service/blade-demo/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-service/blade-desk/pom.xml b/blade-service/blade-desk/pom.xml index 3fd88135..f7304c99 100644 --- a/blade-service/blade-desk/pom.xml +++ b/blade-service/blade-desk/pom.xml @@ -6,7 +6,7 @@ org.springblade blade-service - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-service/blade-desk/src/test/java/BladeDemoTest.java b/blade-service/blade-desk/src/test/java/BladeDemoTest.java index 86ed5a3d..66e31dad 100644 --- a/blade-service/blade-desk/src/test/java/BladeDemoTest.java +++ b/blade-service/blade-desk/src/test/java/BladeDemoTest.java @@ -22,7 +22,7 @@ public class BladeDemoTest { @Test public void contextLoads() { - int count = noticeService.count(); + Long count = noticeService.count(); System.out.println("notice数量:[" + count + "] 个"); } diff --git a/blade-service/blade-log/pom.xml b/blade-service/blade-log/pom.xml index 22cc540a..67e8c3b0 100644 --- a/blade-service/blade-log/pom.xml +++ b/blade-service/blade-log/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-service/blade-system/pom.xml b/blade-service/blade-system/pom.xml index 548fb4c4..201430b7 100644 --- a/blade-service/blade-system/pom.xml +++ b/blade-service/blade-system/pom.xml @@ -5,7 +5,7 @@ blade-service org.springblade - 3.1.0 + 3.2.0 4.0.0 diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/DataScopeController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/DataScopeController.java new file mode 100644 index 00000000..214055ed --- /dev/null +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/DataScopeController.java @@ -0,0 +1,120 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.system.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.CacheUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.system.entity.DataScope; +import org.springblade.system.service.IDataScopeService; +import org.springblade.system.vo.DataScopeVO; +import org.springblade.system.wrapper.DataScopeWrapper; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +import static org.springblade.core.tool.utils.CacheUtil.SYS_CACHE; + +/** + * 数据权限控制器 + * + * @author BladeX + */ +@RestController +@AllArgsConstructor +@RequestMapping("/data-scope") +@Api(value = "数据权限", tags = "数据权限") +public class DataScopeController extends BladeController { + + private final IDataScopeService dataScopeService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "详情", notes = "传入dataScope") + public R detail(DataScope dataScope) { + DataScope detail = dataScopeService.getOne(Condition.getQueryWrapper(dataScope)); + return R.data(detail); + } + + /** + * 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "分页", notes = "传入dataScope") + public R> list(DataScope dataScope, Query query) { + IPage pages = dataScopeService.page(Condition.getPage(query), Condition.getQueryWrapper(dataScope)); + return R.data(DataScopeWrapper.build().pageVO(pages)); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "新增", notes = "传入dataScope") + public R save(@Valid @RequestBody DataScope dataScope) { + CacheUtil.clear(SYS_CACHE); + return R.status(dataScopeService.save(dataScope)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "修改", notes = "传入dataScope") + public R update(@Valid @RequestBody DataScope dataScope) { + CacheUtil.clear(SYS_CACHE); + return R.status(dataScopeService.updateById(dataScope)); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "新增或修改", notes = "传入dataScope") + public R submit(@Valid @RequestBody DataScope dataScope) { + CacheUtil.clear(SYS_CACHE); + return R.status(dataScopeService.saveOrUpdate(dataScope)); + } + + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "逻辑删除", notes = "传入ids") + public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + CacheUtil.clear(SYS_CACHE); + return R.status(dataScopeService.deleteLogic(Func.toLongList(ids))); + } + +} diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java index 5e161cc1..8800e969 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java @@ -96,11 +96,8 @@ public R> tree(String tenantId, BladeUser bladeUser) { @PostMapping("/submit") @ApiOperationSupport(order = 4) @ApiOperation(value = "新增或修改", notes = "传入dept") - public R submit(@Valid @RequestBody Dept dept, BladeUser user) { - if (Func.isEmpty(dept.getId())) { - dept.setTenantId(user.getTenantId()); - } - return R.status(deptService.saveOrUpdate(dept)); + public R submit(@Valid @RequestBody Dept dept) { + return R.status(deptService.submit(dept)); } /** diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/MenuController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/MenuController.java index aa19580e..30836e84 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/MenuController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/MenuController.java @@ -28,6 +28,8 @@ import org.springblade.core.tool.utils.Func; import org.springblade.system.entity.Menu; import org.springblade.system.service.IMenuService; +import org.springblade.system.vo.CheckedTreeVO; +import org.springblade.system.vo.GrantTreeVO; import org.springblade.system.vo.MenuVO; import org.springblade.system.wrapper.MenuWrapper; import org.springframework.web.bind.annotation.*; @@ -74,17 +76,48 @@ public R detail(Menu menu) { @ApiOperationSupport(order = 2) @ApiOperation(value = "列表", notes = "传入menu") public R> list(@ApiIgnore @RequestParam Map menu) { - @SuppressWarnings("unchecked") List

list = menuService.list(Condition.getQueryWrapper(menu, Menu.class).lambda().orderByAsc(Menu::getSort)); return R.data(MenuWrapper.build().listNodeVO(list)); } + /** + * 菜单列表 + */ + @GetMapping("/menu-list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "code", value = "菜单编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "name", value = "菜单名称", paramType = "query", dataType = "string") + }) + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + @ApiOperationSupport(order = 3) + @ApiOperation(value = "菜单列表", notes = "传入menu") + public R> menuList(@ApiIgnore @RequestParam Map menu) { + List list = menuService.list(Condition.getQueryWrapper(menu, Menu.class).lambda().eq(Menu::getCategory, 1).orderByAsc(Menu::getSort)); + return R.data(MenuWrapper.build().listNodeVO(list)); + } + + /** + * 懒加载菜单列表 + */ + @GetMapping("/lazy-menu-list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "code", value = "菜单编号", paramType = "query", dataType = "string"), + @ApiImplicitParam(name = "name", value = "菜单名称", paramType = "query", dataType = "string") + }) + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + @ApiOperationSupport(order = 4) + @ApiOperation(value = "懒加载菜单列表", notes = "传入menu") + public R> lazyMenuList(Long parentId, @ApiIgnore @RequestParam Map menu) { + List list = menuService.lazyMenuList(parentId, menu); + return R.data(MenuWrapper.build().listNodeLazyVO(list)); + } + /** * 新增或修改 */ @PostMapping("/submit") @PreAuth(RoleConstant.HAS_ROLE_ADMIN) - @ApiOperationSupport(order = 3) + @ApiOperationSupport(order = 5) @ApiOperation(value = "新增或修改", notes = "传入menu") public R submit(@Valid @RequestBody Menu menu) { return R.status(menuService.saveOrUpdate(menu)); @@ -96,7 +129,7 @@ public R submit(@Valid @RequestBody Menu menu) { */ @PostMapping("/remove") @PreAuth(RoleConstant.HAS_ROLE_ADMIN) - @ApiOperationSupport(order = 4) + @ApiOperationSupport(order = 6) @ApiOperation(value = "删除", notes = "传入ids") public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { return R.status(menuService.removeByIds(Func.toLongList(ids))); @@ -106,7 +139,7 @@ public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam * 前端菜单数据 */ @GetMapping("/routes") - @ApiOperationSupport(order = 5) + @ApiOperationSupport(order = 7) @ApiOperation(value = "前端菜单数据", notes = "前端菜单数据") public R> routes(BladeUser user) { List list = menuService.routes((user == null || user.getUserId() == 0L) ? null : user.getRoleId()); @@ -117,7 +150,7 @@ public R> routes(BladeUser user) { * 前端按钮数据 */ @GetMapping("/buttons") - @ApiOperationSupport(order = 6) + @ApiOperationSupport(order = 8) @ApiOperation(value = "前端按钮数据", notes = "前端按钮数据") public R> buttons(BladeUser user) { List list = menuService.buttons(user.getRoleId()); @@ -128,7 +161,7 @@ public R> buttons(BladeUser user) { * 获取菜单树形结构 */ @GetMapping("/tree") - @ApiOperationSupport(order = 7) + @ApiOperationSupport(order = 9) @ApiOperation(value = "树形结构", notes = "树形结构") public R> tree() { List tree = menuService.tree(); @@ -139,27 +172,33 @@ public R> tree() { * 获取权限分配树形结构 */ @GetMapping("/grant-tree") - @ApiOperationSupport(order = 8) + @ApiOperationSupport(order = 10) @ApiOperation(value = "权限分配树形结构", notes = "权限分配树形结构") - public R> grantTree(BladeUser user) { - return R.data(menuService.grantTree(user)); + public R grantTree(BladeUser user) { + GrantTreeVO vo = new GrantTreeVO(); + vo.setMenu(menuService.grantTree(user)); + vo.setDataScope(menuService.grantDataScopeTree(user)); + return R.data(vo); } /** * 获取权限分配树形结构 */ @GetMapping("/role-tree-keys") - @ApiOperationSupport(order = 9) + @ApiOperationSupport(order = 11) @ApiOperation(value = "角色所分配的树", notes = "角色所分配的树") - public R> roleTreeKeys(String roleIds) { - return R.data(menuService.roleTreeKeys(roleIds)); + public R roleTreeKeys(String roleIds) { + CheckedTreeVO vo = new CheckedTreeVO(); + vo.setMenu(menuService.roleTreeKeys(roleIds)); + vo.setDataScope(menuService.dataScopeTreeKeys(roleIds)); + return R.data(vo); } /** * 获取配置的角色权限 */ @GetMapping("auth-routes") - @ApiOperationSupport(order = 10) + @ApiOperationSupport(order = 12) @ApiOperation(value = "菜单的角色权限") public R> authRoutes(BladeUser user) { if (Func.isEmpty(user) || user.getUserId() == 0L) { diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/RoleController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/RoleController.java index f9d1f712..ef365dec 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/RoleController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/RoleController.java @@ -25,6 +25,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.node.INode; +import org.springblade.core.tool.utils.CacheUtil; import org.springblade.core.tool.utils.Func; import org.springblade.system.entity.Role; import org.springblade.system.service.IRoleService; @@ -38,6 +39,8 @@ import java.util.List; import java.util.Map; +import static org.springblade.core.tool.utils.CacheUtil.SYS_CACHE; + /** * 控制器 * @@ -89,27 +92,41 @@ public R> tree(String tenantId, BladeUser bladeUser) { return R.data(tree); } + + /** + * 获取指定角色树形结构 + */ + @GetMapping("/tree-by-id") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "树形结构", notes = "树形结构") + public R> treeById(Long roleId, BladeUser bladeUser) { + Role role = roleService.getById(roleId); + List tree = roleService.tree(Func.notNull(role) ? role.getTenantId() : bladeUser.getTenantId()); + return R.data(tree); + } + /** * 新增或修改 */ @PostMapping("/submit") - @ApiOperationSupport(order = 4) + @ApiOperationSupport(order = 5) @ApiOperation(value = "新增或修改", notes = "传入role") public R submit(@Valid @RequestBody Role role, BladeUser user) { + CacheUtil.clear(SYS_CACHE); if (Func.isEmpty(role.getId())) { role.setTenantId(user.getTenantId()); } return R.status(roleService.saveOrUpdate(role)); } - /** * 删除 */ @PostMapping("/remove") - @ApiOperationSupport(order = 5) + @ApiOperationSupport(order = 6) @ApiOperation(value = "删除", notes = "传入ids") public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + CacheUtil.clear(SYS_CACHE); return R.status(roleService.removeByIds(Func.toLongList(ids))); } @@ -117,11 +134,11 @@ public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam * 设置菜单权限 */ @PostMapping("/grant") - @ApiOperationSupport(order = 6) + @ApiOperationSupport(order = 7) @ApiOperation(value = "权限设置", notes = "传入roleId集合以及menuId集合") public R grant(@RequestBody GrantVO grantVO) { - boolean temp = roleService.grant(grantVO.getRoleIds(), grantVO.getMenuIds()); + CacheUtil.clear(SYS_CACHE); + boolean temp = roleService.grant(grantVO.getRoleIds(), grantVO.getMenuIds(), grantVO.getDataScopeIds()); return R.status(temp); } - } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/feign/DataScopeClient.java b/blade-service/blade-system/src/main/java/org/springblade/system/feign/DataScopeClient.java new file mode 100644 index 00000000..9167bc49 --- /dev/null +++ b/blade-service/blade-system/src/main/java/org/springblade/system/feign/DataScopeClient.java @@ -0,0 +1,106 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.system.feign; + +import lombok.RequiredArgsConstructor; +import org.springblade.core.datascope.constant.DataScopeConstant; +import org.springblade.core.datascope.model.DataScopeModel; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.Func; +import org.springframework.jdbc.core.BeanPropertyRowMapper; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * 数据权限Feign实现类 + * + * @author Chill + */ +@ApiIgnore +@RestController +@RequiredArgsConstructor +public class DataScopeClient implements IDataScopeClient { + + private static final DataScopeModel SEARCHED_DATA_SCOPE_MODEL = new DataScopeModel(Boolean.TRUE); + + private final JdbcTemplate jdbcTemplate; + + /** + * 获取数据权限 + * + * @param mapperId 数据权限mapperId + * @param roleId 用户角色集合 + * @return DataScopeModel + */ + @Override + @GetMapping(GET_DATA_SCOPE_BY_MAPPER) + public DataScopeModel getDataScopeByMapper(String mapperId, String roleId) { + List args = new ArrayList<>(Collections.singletonList(mapperId)); + List roleIds = Func.toLongList(roleId); + args.addAll(roleIds); + // 增加searched字段防止未配置的参数重复读库导致缓存击穿 + // 后续若有新增配置则会清空缓存重新加载 + DataScopeModel dataScope; + List list = jdbcTemplate.query(DataScopeConstant.dataByMapper(roleIds.size()), args.toArray(), new BeanPropertyRowMapper<>(DataScopeModel.class)); + if (CollectionUtil.isNotEmpty(list)) { + dataScope = list.iterator().next(); + dataScope.setSearched(Boolean.TRUE); + } else { + dataScope = SEARCHED_DATA_SCOPE_MODEL; + } + return dataScope; + } + + /** + * 获取数据权限 + * + * @param code 数据权限资源编号 + * @return DataScopeModel + */ + @Override + @GetMapping(GET_DATA_SCOPE_BY_CODE) + public DataScopeModel getDataScopeByCode(String code) { + // 增加searched字段防止未配置的参数重复读库导致缓存击穿 + // 后续若有新增配置则会清空缓存重新加载 + DataScopeModel dataScope; + List list = jdbcTemplate.query(DataScopeConstant.DATA_BY_CODE, new Object[]{code}, new BeanPropertyRowMapper<>(DataScopeModel.class)); + if (CollectionUtil.isNotEmpty(list)) { + dataScope = list.iterator().next(); + dataScope.setSearched(Boolean.TRUE); + } else { + dataScope = SEARCHED_DATA_SCOPE_MODEL; + } + return dataScope; + } + + /** + * 获取部门子级 + * + * @param deptId 部门id + * @return deptIds + */ + @Override + @GetMapping(GET_DEPT_ANCESTORS) + public List getDeptAncestors(Long deptId) { + return jdbcTemplate.queryForList(DataScopeConstant.DATA_BY_DEPT, new Object[]{deptId}, Long.class); + } +} diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DataScopeMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DataScopeMapper.java new file mode 100644 index 00000000..88f05784 --- /dev/null +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DataScopeMapper.java @@ -0,0 +1,28 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.system.entity.DataScope; + +/** + * Mapper 接口 + * + * @author BladeX + */ +public interface DataScopeMapper extends BaseMapper { + +} diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DataScopeMapper.xml b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DataScopeMapper.xml new file mode 100644 index 00000000..cbb46594 --- /dev/null +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DataScopeMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/MenuMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/MenuMapper.java index 771bfae4..b5320aba 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/MenuMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/MenuMapper.java @@ -22,6 +22,7 @@ import org.springblade.system.vo.MenuVO; import java.util.List; +import java.util.Map; /** * Mapper 接口 @@ -39,6 +40,15 @@ public interface MenuMapper extends BaseMapper

{ */ List selectMenuPage(IPage page, MenuVO menu); + /** + * 懒加载菜单列表 + * + * @param parentId + * @param param + * @return + */ + List lazyMenuList(Long parentId, Map param); + /** * 树形结构 * @@ -61,6 +71,21 @@ public interface MenuMapper extends BaseMapper { */ List grantTreeByRole(List roleId); + /** + * 数据权限授权树形结构 + * + * @return + */ + List grantDataScopeTree(); + + /** + * 数据权限授权树形结构 + * + * @param roleId + * @return + */ + List grantDataScopeTreeByRole(List roleId); + /** * 所有菜单 * diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/MenuMapper.xml b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/MenuMapper.xml index 260c9311..e36edfef 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/MenuMapper.xml +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/MenuMapper.xml @@ -19,6 +19,23 @@ + + + + + + + + + + + + + + + + + @@ -37,6 +54,35 @@ select * from blade_menu where is_deleted = 0 + + @@ -127,6 +173,104 @@ ) + + + + - SELECT id, tenant_id, account, name, real_name, email, phone, birthday, role_id, dept_id, post_id FROM blade_user ${ew.customSqlSegment} diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserOauthMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserOauthMapper.java similarity index 95% rename from blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserOauthMapper.java rename to blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserOauthMapper.java index 350236e7..0dccd32e 100644 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserOauthMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserOauthMapper.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springblade.system.user.mapper; +package org.springblade.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springblade.system.user.entity.UserOauth; diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserOauthMapper.xml b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserOauthMapper.xml similarity index 93% rename from blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserOauthMapper.xml rename to blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserOauthMapper.xml index c1ccf8da..84cbf92a 100644 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserOauthMapper.xml +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserOauthMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserOauthService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserOauthService.java similarity index 95% rename from blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserOauthService.java rename to blade-service/blade-system/src/main/java/org/springblade/system/service/IUserOauthService.java index dc5f06d2..d9af28ac 100644 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserOauthService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserOauthService.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springblade.system.user.service; +package org.springblade.system.service; import com.baomidou.mybatisplus.extension.service.IService; diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserService.java similarity index 96% rename from blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserService.java rename to blade-service/blade-system/src/main/java/org/springblade/system/service/IUserService.java index 7ec72819..dc4fadc4 100644 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserService.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springblade.system.user.service; +package org.springblade.system.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; @@ -22,7 +22,7 @@ import org.springblade.system.user.entity.User; import org.springblade.system.user.entity.UserInfo; import org.springblade.system.user.entity.UserOauth; -import org.springblade.system.user.excel.UserExcel; +import org.springblade.system.excel.UserExcel; import java.util.List; diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserOauthServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserOauthServiceImpl.java similarity index 85% rename from blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserOauthServiceImpl.java rename to blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserOauthServiceImpl.java index d0fdb7af..6f0b1663 100644 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserOauthServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserOauthServiceImpl.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springblade.system.user.service.impl; +package org.springblade.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.AllArgsConstructor; import org.springblade.system.user.entity.UserOauth; -import org.springblade.system.user.mapper.UserOauthMapper; -import org.springblade.system.user.service.IUserOauthService; +import org.springblade.system.mapper.UserOauthMapper; +import org.springblade.system.service.IUserOauthService; import org.springframework.stereotype.Service; /** diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserServiceImpl.java similarity index 96% rename from blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java rename to blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserServiceImpl.java index f8b64a73..f93bf975 100644 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserServiceImpl.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springblade.system.user.service.impl; +package org.springblade.system.service.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; @@ -30,10 +30,10 @@ import org.springblade.system.user.entity.User; import org.springblade.system.user.entity.UserInfo; import org.springblade.system.user.entity.UserOauth; -import org.springblade.system.user.excel.UserExcel; -import org.springblade.system.user.mapper.UserMapper; -import org.springblade.system.user.service.IUserOauthService; -import org.springblade.system.user.service.IUserService; +import org.springblade.system.excel.UserExcel; +import org.springblade.system.mapper.UserMapper; +import org.springblade.system.service.IUserOauthService; +import org.springblade.system.service.IUserService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/wrapper/UserWrapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/UserWrapper.java similarity index 95% rename from blade-service/blade-user/src/main/java/org/springblade/system/user/wrapper/UserWrapper.java rename to blade-service/blade-system/src/main/java/org/springblade/system/wrapper/UserWrapper.java index e064084d..d6cdd306 100644 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/wrapper/UserWrapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/UserWrapper.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springblade.system.user.wrapper; +package org.springblade.system.wrapper; import org.springblade.core.mp.support.BaseEntityWrapper; import org.springblade.core.tool.api.R; @@ -22,7 +22,7 @@ import org.springblade.core.tool.utils.SpringUtil; import org.springblade.system.feign.IDictClient; import org.springblade.system.user.entity.User; -import org.springblade.system.user.service.IUserService; +import org.springblade.system.service.IUserService; import org.springblade.system.user.vo.UserVO; import java.util.List; diff --git a/blade-service/blade-user/Dockerfile b/blade-service/blade-user/Dockerfile deleted file mode 100644 index 2df08e78..00000000 --- a/blade-service/blade-user/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM bladex/alpine-java:openjdk17_cn_slim - -MAINTAINER bladejava@qq.com - -RUN mkdir -p /blade/user - -WORKDIR /blade/user - -EXPOSE 8102 - -ADD ./target/blade-user.jar ./app.jar - -ENTRYPOINT ["java", "--add-opens java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] - -CMD ["--spring.profiles.active=test"] diff --git a/blade-service/blade-user/pom.xml b/blade-service/blade-user/pom.xml deleted file mode 100644 index 87f1e9dc..00000000 --- a/blade-service/blade-user/pom.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - blade-service - org.springblade - 4.1.0 - - - 4.0.0 - - blade-user - ${project.artifactId} - ${blade.project.version} - jar - - - - org.springblade - blade-core-boot - ${blade.tool.version} - - - org.springblade - blade-user-api - ${blade.project.version} - - - org.springblade - blade-dict-api - ${blade.project.version} - - - org.springblade - blade-system-api - ${blade.project.version} - - - com.alibaba - easyexcel - ${easyexcel.version} - - - - - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - - - diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/UserApplication.java b/blade-service/blade-user/src/main/java/org/springblade/system/user/UserApplication.java deleted file mode 100644 index 9521cf71..00000000 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/UserApplication.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). - *

- * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - *

- * http://www.apache.org/licenses/LICENSE-2.0 - *

- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springblade.system.user; - -import org.springblade.core.cloud.client.BladeCloudApplication; -import org.springblade.core.launch.BladeApplication; -import org.springblade.core.launch.constant.AppConstant; - -/** - * 用户启动器 - * - * @author Chill - */ -@BladeCloudApplication -public class UserApplication { - - public static void main(String[] args) { - BladeApplication.run(AppConstant.APPLICATION_USER_NAME, UserApplication.class, args); - } - -} diff --git a/blade-service/blade-user/src/main/resources/application-dev.yml b/blade-service/blade-user/src/main/resources/application-dev.yml deleted file mode 100644 index 2d9323b6..00000000 --- a/blade-service/blade-user/src/main/resources/application-dev.yml +++ /dev/null @@ -1,10 +0,0 @@ -#服务器端口 -server: - port: 8102 - -#数据源配置 -spring: - datasource: - url: ${blade.datasource.dev.url} - username: ${blade.datasource.dev.username} - password: ${blade.datasource.dev.password} diff --git a/blade-service/blade-user/src/main/resources/application-prod.yml b/blade-service/blade-user/src/main/resources/application-prod.yml deleted file mode 100644 index c0d8c056..00000000 --- a/blade-service/blade-user/src/main/resources/application-prod.yml +++ /dev/null @@ -1,10 +0,0 @@ -#服务器端口 -server: - port: 8102 - -#数据源配置 -spring: - datasource: - url: ${blade.datasource.prod.url} - username: ${blade.datasource.prod.username} - password: ${blade.datasource.prod.password} diff --git a/blade-service/blade-user/src/main/resources/application-test.yml b/blade-service/blade-user/src/main/resources/application-test.yml deleted file mode 100644 index 57b842e0..00000000 --- a/blade-service/blade-user/src/main/resources/application-test.yml +++ /dev/null @@ -1,10 +0,0 @@ -#服务器端口 -server: - port: 8102 - -#数据源配置 -spring: - datasource: - url: ${blade.datasource.test.url} - username: ${blade.datasource.test.username} - password: ${blade.datasource.test.password} diff --git a/blade-service/pom.xml b/blade-service/pom.xml index 1db479e4..cb46b849 100644 --- a/blade-service/pom.xml +++ b/blade-service/pom.xml @@ -7,12 +7,12 @@ org.springblade SpringBlade - 4.1.0 + 4.2.0 blade-service ${project.artifactId} - 4.1.0 + 4.2.0 pom SpringBlade 微服务集合 @@ -20,7 +20,6 @@ blade-desk blade-log blade-system - blade-user blade-demo diff --git a/doc/nacos/blade.yaml b/doc/nacos/blade.yaml index 1cd354ed..dfac40df 100644 --- a/doc/nacos/blade.yaml +++ b/doc/nacos/blade.yaml @@ -73,7 +73,7 @@ knife4j: swagger: title: SpringBlade 接口文档系统 description: SpringBlade 接口文档系统 - version: 4.1.0 + version: 4.2.0 license: Powered By SpringBlade licenseUrl: https://bladex.cn terms-of-service-url: https://bladex.cn diff --git a/doc/sql/blade/blade-saber-mysql.sql b/doc/sql/blade/blade-saber-mysql.sql index 6a53d55f..43c6dbe6 100644 --- a/doc/sql/blade/blade-saber-mysql.sql +++ b/doc/sql/blade/blade-saber-mysql.sql @@ -262,7 +262,7 @@ CREATE TABLE `blade_menu` ( -- Records of blade_menu -- ---------------------------- BEGIN; -INSERT INTO `blade_menu` VALUES (1123598815738675201, 0, 'desk', '工作台', 'menu', '/desk', 'iconfont iconicon_airplay', 1, 1, 0, 1, NULL, 0), (1123598815738675202, 1123598815738675201, 'notice', '通知公告', 'menu', '/desk/notice', 'iconfont iconicon_sms', 1, 1, 0, 1, NULL, 0), (1123598815738675203, 0, 'system', '系统管理', 'menu', '/system', 'iconfont iconicon_setting', 99, 1, 0, 1, NULL, 0), (1123598815738675204, 1123598815738675203, 'user', '用户管理', 'menu', '/system/user', 'iconfont iconicon_principal', 1, 1, 0, 1, NULL, 0), (1123598815738675205, 1123598815738675203, 'dept', '部门管理', 'menu', '/system/dept', 'iconfont iconicon_group', 2, 1, 0, 1, NULL, 0), (1123598815738675206, 1123598815738675203, 'dict', '字典管理', 'menu', '/system/dict', 'iconfont iconicon_addresslist', 3, 1, 0, 1, NULL, 0), (1123598815738675207, 1123598815738675203, 'menu', '菜单管理', 'menu', '/system/menu', 'iconfont iconicon_subordinate', 4, 1, 0, 1, NULL, 0), (1123598815738675209, 1123598815738675203, 'param', '参数管理', 'menu', '/system/param', 'iconfont iconicon_community_line', 6, 1, 0, 1, NULL, 0), (1123598815738675210, 0, 'monitor', '系统监控', 'menu', '/monitor', 'iconfont icon-yanzhengma', 3, 1, 0, 1, NULL, 0), (1123598815738675211, 1123598815738675210, 'doc', '接口文档', 'menu', 'http://localhost/doc.html', 'iconfont iconicon_study', 1, 1, 0, 2, NULL, 0), (1123598815738675212, 1123598815738675210, 'admin', '服务治理', 'menu', 'http://localhost:7002', 'iconfont icon-canshu', 2, 1, 0, 2, NULL, 0), (1123598815738675213, 1123598815738675210, 'log', '日志管理', 'menu', '/monitor/log', 'iconfont iconicon_doc', 3, 1, 0, 1, NULL, 0), (1123598815738675214, 1123598815738675213, 'log_usual', '通用日志', 'menu', '/monitor/log/usual', NULL, 1, 1, 0, 1, NULL, 0), (1123598815738675215, 1123598815738675213, 'log_api', '接口日志', 'menu', '/monitor/log/api', NULL, 2, 1, 0, 1, NULL, 0), (1123598815738675216, 1123598815738675213, 'log_error', '错误日志', 'menu', '/monitor/log/error', NULL, 3, 1, 0, 1, NULL, 0), (1123598815738675217, 0, 'tool', '研发工具', 'menu', '/tool', 'iconfont icon-wxbgongju', 4, 1, 0, 1, NULL, 0), (1123598815738675218, 1123598815738675217, 'code', '代码生成', 'menu', '/tool/code', 'iconfont iconicon_savememo', 1, 1, 0, 1, NULL, 0), (1123598815738675219, 1123598815738675202, 'notice_add', '新增', 'add', '/desk/notice/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675220, 1123598815738675202, 'notice_edit', '修改', 'edit', '/desk/notice/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675221, 1123598815738675202, 'notice_delete', '删除', 'delete', '/api/blade-desk/notice/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675222, 1123598815738675202, 'notice_view', '查看', 'view', '/desk/notice/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675223, 1123598815738675204, 'user_add', '新增', 'add', '/system/user/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675224, 1123598815738675204, 'user_edit', '修改', 'edit', '/system/user/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675225, 1123598815738675204, 'user_delete', '删除', 'delete', '/api/blade-user/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675226, 1123598815738675204, 'user_role', '角色配置', 'role', NULL, 'user-add', 4, 2, 1, 1, NULL, 0), (1123598815738675227, 1123598815738675204, 'user_reset', '密码重置', 'reset-password', '/api/blade-user/reset-password', 'retweet', 5, 2, 1, 1, NULL, 0), (1123598815738675228, 1123598815738675204, 'user_view', '查看', 'view', '/system/user/view', 'file-text', 6, 2, 2, 1, NULL, 0), (1123598815738675229, 1123598815738675205, 'dept_add', '新增', 'add', '/system/dept/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675230, 1123598815738675205, 'dept_edit', '修改', 'edit', '/system/dept/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675231, 1123598815738675205, 'dept_delete', '删除', 'delete', '/api/blade-system/dept/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675232, 1123598815738675205, 'dept_view', '查看', 'view', '/system/dept/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675233, 1123598815738675206, 'dict_add', '新增', 'add', '/system/dict/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675234, 1123598815738675206, 'dict_edit', '修改', 'edit', '/system/dict/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675235, 1123598815738675206, 'dict_delete', '删除', 'delete', '/api/blade-system/dict/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675236, 1123598815738675206, 'dict_view', '查看', 'view', '/system/dict/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675237, 1123598815738675207, 'menu_add', '新增', 'add', '/system/menu/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675238, 1123598815738675207, 'menu_edit', '修改', 'edit', '/system/menu/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675239, 1123598815738675207, 'menu_delete', '删除', 'delete', '/api/blade-system/menu/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675240, 1123598815738675207, 'menu_view', '查看', 'view', '/system/menu/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675241, 1123598815738675308, 'role_add', '新增', 'add', '/authority/role/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675242, 1123598815738675308, 'role_edit', '修改', 'edit', '/authority/role/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675243, 1123598815738675308, 'role_delete', '删除', 'delete', '/api/blade-system/role/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675244, 1123598815738675308, 'role_view', '查看', 'view', '/authority/role/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675245, 1123598815738675209, 'param_add', '新增', 'add', '/system/param/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675246, 1123598815738675209, 'param_edit', '修改', 'edit', '/system/param/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675247, 1123598815738675209, 'param_delete', '删除', 'delete', '/api/blade-system/param/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675248, 1123598815738675209, 'param_view', '查看', 'view', '/system/param/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675249, 1123598815738675214, 'log_usual_view', '查看', 'view', '/monitor/log/usual/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675250, 1123598815738675215, 'log_api_view', '查看', 'view', '/monitor/log/api/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675251, 1123598815738675216, 'log_error_view', '查看', 'view', '/monitor/log/error/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675252, 1123598815738675218, 'code_add', '新增', 'add', '/tool/code/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675253, 1123598815738675218, 'code_edit', '修改', 'edit', '/tool/code/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675254, 1123598815738675218, 'code_delete', '删除', 'delete', '/api/blade-system/code/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675255, 1123598815738675218, 'code_view', '查看', 'view', '/tool/code/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675256, 1123598815738675203, 'tenant', '租户管理', 'menu', '/system/tenant', 'iconfont icon-quanxian', 7, 1, 0, 1, NULL, 0), (1123598815738675257, 1123598815738675256, 'tenant_add', '新增', 'add', '/system/tenant/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675258, 1123598815738675256, 'tenant_edit', '修改', 'edit', '/system/tenant/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675259, 1123598815738675256, 'tenant_delete', '删除', 'delete', '/api/blade-system/tenant/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675260, 1123598815738675256, 'tenant_view', '查看', 'view', '/system/tenant/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675261, 1123598815738675203, 'client', '应用管理', 'menu', '/system/client', 'iconfont iconicon_mobilephone', 8, 1, 0, 1, NULL, 0), (1123598815738675262, 1123598815738675261, 'client_add', '新增', 'add', '/system/client/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675263, 1123598815738675261, 'client_edit', '修改', 'edit', '/system/client/edit', 'form', 2, 2, 2, 2, NULL, 0), (1123598815738675264, 1123598815738675261, 'client_delete', '删除', 'delete', '/api/blade-system/client/remove', 'delete', 3, 2, 3, 3, NULL, 0), (1123598815738675265, 1123598815738675261, 'client_view', '查看', 'view', '/system/client/view', 'file-text', 4, 2, 2, 2, NULL, 0), (1123598815738675266, 1123598815738675217, 'datasource', '数据源管理', 'menu', '/tool/datasource', 'iconfont icon-caidanguanli', 2, 1, 0, 1, NULL, 0), (1123598815738675267, 1123598815738675266, 'datasource_add', '新增', 'add', '/tool/datasource/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675268, 1123598815738675266, 'datasource_edit', '修改', 'edit', '/tool/datasource/edit', 'form', 2, 2, 2, 2, NULL, 0), (1123598815738675269, 1123598815738675266, 'datasource_delete', '删除', 'delete', '/api/blade-develop/datasource/remove', 'delete', 3, 2, 3, 3, NULL, 0), (1123598815738675270, 1123598815738675266, 'datasource_view', '查看', 'view', '/tool/datasource/view', 'file-text', 4, 2, 2, 2, NULL, 0), (1123598815738675307, 0, 'authority', '权限管理', 'menu', '/authority', 'iconfont icon-bofangqi-suoping', 98, 1, 0, 1, '', 0), (1123598815738675308, 1123598815738675307, 'role', '角色管理', 'menu', '/authority/role', 'iconfont iconicon_boss', 1, 1, 0, 1, NULL, 0), (1123598815738675309, 1123598815738675307, 'data_scope', '数据权限', 'menu', '/authority/datascope', 'iconfont icon-shujuzhanshi2', 2, 1, 0, 1, '', 0), (1123598815738675310, 1123598815738675309, 'data_scope_setting', '权限配置', 'setting', NULL, 'setting', 1, 2, 2, 1, NULL, 0), (1164733389668962251, 1123598815738675203, 'post', '岗位管理', 'menu', '/system/post', 'iconfont iconicon_message', 2, 1, 0, 1, NULL, 0), (1164733389668962252, 1164733389668962251, 'post_add', '新增', 'add', '/system/post/add', 'plus', 1, 2, 1, 1, NULL, 0), (1164733389668962253, 1164733389668962251, 'post_edit', '修改', 'edit', '/system/post/edit', 'form', 2, 2, 2, 1, NULL, 0), (1164733389668962254, 1164733389668962251, 'post_delete', '删除', 'delete', '/api/blade-system/post/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1164733389668962255, 1164733389668962251, 'post_view', '查看', 'view', '/system/post/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1164733399668962201, 0, 'base', '基础配置', 'menu', '/base', 'iconfont iconicon_affiliations_li', 97, 1, 0, 1, NULL, 0), (1164733399668962202, 1164733399668962201, 'region', '行政区划', 'menu', '/base/region', 'iconfont icon-iframe', 1, 1, 0, 1, NULL, 0), (1164733399668962203, 1164733399668962202, 'region_add', '新增下级', 'add', '', '', 1, 2, 1, 1, NULL, 0), (1164733399668962204, 1164733399668962202, 'region_delete', '删除', 'delete', '/api/blade-system/region/remove', '', 2, 2, 2, 1, NULL, 0), (1164733399668962205, 1164733399668962202, 'region_import', '导入', 'import', '', '', 3, 2, 3, 1, NULL, 0), (1164733399668962206, 1164733399668962202, 'region_export', '导出', 'export', '', '', 4, 2, 2, 1, NULL, 0), (1164733399668962207, 1164733399668962202, 'region_debug', '调试', 'debug', '', '', 5, 2, 2, 1, NULL, 0), (1164733399669962301, 0, 'report', '报表管理', 'menu', '/report', 'iconfont icon-shujuzhanshi2', 5, 1, 0, 1, NULL, 0), (1164733399669962302, 1164733399669962301, 'report_setting', '报表配置', 'menu', 'http://localhost:8108/ureport/designer', 'iconfont icon-rizhi', 1, 1, 0, 1, NULL, 0), (1164733399669962303, 1164733399669962301, 'report_list', '报表列表', 'menu', '/report/reportlist', 'iconfont icon-biaodan', 2, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu` VALUES (1123598815738675201, 0, 'desk', '工作台', 'menu', '/desk', 'iconfont iconicon_airplay', 1, 1, 0, 1, NULL, 0), (1123598815738675202, 1123598815738675201, 'notice', '通知公告', 'menu', '/desk/notice', 'iconfont iconicon_sms', 1, 1, 0, 1, NULL, 0), (1123598815738675203, 0, 'system', '系统管理', 'menu', '/system', 'iconfont iconicon_setting', 99, 1, 0, 1, NULL, 0), (1123598815738675204, 1123598815738675203, 'user', '用户管理', 'menu', '/system/user', 'iconfont iconicon_principal', 1, 1, 0, 1, NULL, 0), (1123598815738675205, 1123598815738675203, 'dept', '部门管理', 'menu', '/system/dept', 'iconfont iconicon_group', 2, 1, 0, 1, NULL, 0), (1123598815738675206, 1123598815738675203, 'dict', '字典管理', 'menu', '/system/dict', 'iconfont iconicon_addresslist', 3, 1, 0, 1, NULL, 0), (1123598815738675207, 1123598815738675203, 'menu', '菜单管理', 'menu', '/system/menu', 'iconfont iconicon_subordinate', 4, 1, 0, 1, NULL, 0), (1123598815738675209, 1123598815738675203, 'param', '参数管理', 'menu', '/system/param', 'iconfont iconicon_community_line', 6, 1, 0, 1, NULL, 0), (1123598815738675210, 0, 'monitor', '系统监控', 'menu', '/monitor', 'iconfont icon-yanzhengma', 3, 1, 0, 1, NULL, 0), (1123598815738675211, 1123598815738675210, 'doc', '接口文档', 'menu', 'http://localhost/doc.html', 'iconfont iconicon_study', 1, 1, 0, 2, NULL, 0), (1123598815738675212, 1123598815738675210, 'admin', '服务治理', 'menu', 'http://localhost:7002', 'iconfont icon-canshu', 2, 1, 0, 2, NULL, 0), (1123598815738675213, 1123598815738675210, 'log', '日志管理', 'menu', '/monitor/log', 'iconfont iconicon_doc', 3, 1, 0, 1, NULL, 0), (1123598815738675214, 1123598815738675213, 'log_usual', '通用日志', 'menu', '/monitor/log/usual', NULL, 1, 1, 0, 1, NULL, 0), (1123598815738675215, 1123598815738675213, 'log_api', '接口日志', 'menu', '/monitor/log/api', NULL, 2, 1, 0, 1, NULL, 0), (1123598815738675216, 1123598815738675213, 'log_error', '错误日志', 'menu', '/monitor/log/error', NULL, 3, 1, 0, 1, NULL, 0), (1123598815738675217, 0, 'tool', '研发工具', 'menu', '/tool', 'iconfont icon-wxbgongju', 4, 1, 0, 1, NULL, 0), (1123598815738675218, 1123598815738675217, 'code', '代码生成', 'menu', '/tool/code', 'iconfont iconicon_savememo', 1, 1, 0, 1, NULL, 0), (1123598815738675219, 1123598815738675202, 'notice_add', '新增', 'add', '/desk/notice/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675220, 1123598815738675202, 'notice_edit', '修改', 'edit', '/desk/notice/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675221, 1123598815738675202, 'notice_delete', '删除', 'delete', '/api/blade-desk/notice/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675222, 1123598815738675202, 'notice_view', '查看', 'view', '/desk/notice/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675223, 1123598815738675204, 'user_add', '新增', 'add', '/system/user/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675224, 1123598815738675204, 'user_edit', '修改', 'edit', '/system/user/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675225, 1123598815738675204, 'user_delete', '删除', 'delete', '/api/blade-system/user/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675226, 1123598815738675204, 'user_role', '角色配置', 'role', NULL, 'user-add', 4, 2, 1, 1, NULL, 0), (1123598815738675227, 1123598815738675204, 'user_reset', '密码重置', 'reset-password', '/api/blade-system/user/reset-password', 'retweet', 5, 2, 1, 1, NULL, 0), (1123598815738675228, 1123598815738675204, 'user_view', '查看', 'view', '/system/user/view', 'file-text', 6, 2, 2, 1, NULL, 0), (1123598815738675229, 1123598815738675205, 'dept_add', '新增', 'add', '/system/dept/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675230, 1123598815738675205, 'dept_edit', '修改', 'edit', '/system/dept/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675231, 1123598815738675205, 'dept_delete', '删除', 'delete', '/api/blade-system/dept/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675232, 1123598815738675205, 'dept_view', '查看', 'view', '/system/dept/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675233, 1123598815738675206, 'dict_add', '新增', 'add', '/system/dict/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675234, 1123598815738675206, 'dict_edit', '修改', 'edit', '/system/dict/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675235, 1123598815738675206, 'dict_delete', '删除', 'delete', '/api/blade-system/dict/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675236, 1123598815738675206, 'dict_view', '查看', 'view', '/system/dict/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675237, 1123598815738675207, 'menu_add', '新增', 'add', '/system/menu/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675238, 1123598815738675207, 'menu_edit', '修改', 'edit', '/system/menu/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675239, 1123598815738675207, 'menu_delete', '删除', 'delete', '/api/blade-system/menu/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675240, 1123598815738675207, 'menu_view', '查看', 'view', '/system/menu/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675241, 1123598815738675308, 'role_add', '新增', 'add', '/authority/role/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675242, 1123598815738675308, 'role_edit', '修改', 'edit', '/authority/role/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675243, 1123598815738675308, 'role_delete', '删除', 'delete', '/api/blade-system/role/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675244, 1123598815738675308, 'role_view', '查看', 'view', '/authority/role/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675245, 1123598815738675209, 'param_add', '新增', 'add', '/system/param/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675246, 1123598815738675209, 'param_edit', '修改', 'edit', '/system/param/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675247, 1123598815738675209, 'param_delete', '删除', 'delete', '/api/blade-system/param/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675248, 1123598815738675209, 'param_view', '查看', 'view', '/system/param/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675249, 1123598815738675214, 'log_usual_view', '查看', 'view', '/monitor/log/usual/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675250, 1123598815738675215, 'log_api_view', '查看', 'view', '/monitor/log/api/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675251, 1123598815738675216, 'log_error_view', '查看', 'view', '/monitor/log/error/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675252, 1123598815738675218, 'code_add', '新增', 'add', '/tool/code/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675253, 1123598815738675218, 'code_edit', '修改', 'edit', '/tool/code/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675254, 1123598815738675218, 'code_delete', '删除', 'delete', '/api/blade-system/code/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675255, 1123598815738675218, 'code_view', '查看', 'view', '/tool/code/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675256, 1123598815738675203, 'tenant', '租户管理', 'menu', '/system/tenant', 'iconfont icon-quanxian', 7, 1, 0, 1, NULL, 0), (1123598815738675257, 1123598815738675256, 'tenant_add', '新增', 'add', '/system/tenant/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675258, 1123598815738675256, 'tenant_edit', '修改', 'edit', '/system/tenant/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675259, 1123598815738675256, 'tenant_delete', '删除', 'delete', '/api/blade-system/tenant/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675260, 1123598815738675256, 'tenant_view', '查看', 'view', '/system/tenant/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675261, 1123598815738675203, 'client', '应用管理', 'menu', '/system/client', 'iconfont iconicon_mobilephone', 8, 1, 0, 1, NULL, 0), (1123598815738675262, 1123598815738675261, 'client_add', '新增', 'add', '/system/client/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675263, 1123598815738675261, 'client_edit', '修改', 'edit', '/system/client/edit', 'form', 2, 2, 2, 2, NULL, 0), (1123598815738675264, 1123598815738675261, 'client_delete', '删除', 'delete', '/api/blade-system/client/remove', 'delete', 3, 2, 3, 3, NULL, 0), (1123598815738675265, 1123598815738675261, 'client_view', '查看', 'view', '/system/client/view', 'file-text', 4, 2, 2, 2, NULL, 0), (1123598815738675266, 1123598815738675217, 'datasource', '数据源管理', 'menu', '/tool/datasource', 'iconfont icon-caidanguanli', 2, 1, 0, 1, NULL, 0), (1123598815738675267, 1123598815738675266, 'datasource_add', '新增', 'add', '/tool/datasource/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675268, 1123598815738675266, 'datasource_edit', '修改', 'edit', '/tool/datasource/edit', 'form', 2, 2, 2, 2, NULL, 0), (1123598815738675269, 1123598815738675266, 'datasource_delete', '删除', 'delete', '/api/blade-develop/datasource/remove', 'delete', 3, 2, 3, 3, NULL, 0), (1123598815738675270, 1123598815738675266, 'datasource_view', '查看', 'view', '/tool/datasource/view', 'file-text', 4, 2, 2, 2, NULL, 0), (1123598815738675307, 0, 'authority', '权限管理', 'menu', '/authority', 'iconfont icon-bofangqi-suoping', 98, 1, 0, 1, '', 0), (1123598815738675308, 1123598815738675307, 'role', '角色管理', 'menu', '/authority/role', 'iconfont iconicon_boss', 1, 1, 0, 1, NULL, 0), (1123598815738675309, 1123598815738675307, 'data_scope', '数据权限', 'menu', '/authority/datascope', 'iconfont icon-shujuzhanshi2', 2, 1, 0, 1, '', 0), (1123598815738675310, 1123598815738675309, 'data_scope_setting', '权限配置', 'setting', NULL, 'setting', 1, 2, 2, 1, NULL, 0), (1164733389668962251, 1123598815738675203, 'post', '岗位管理', 'menu', '/system/post', 'iconfont iconicon_message', 2, 1, 0, 1, NULL, 0), (1164733389668962252, 1164733389668962251, 'post_add', '新增', 'add', '/system/post/add', 'plus', 1, 2, 1, 1, NULL, 0), (1164733389668962253, 1164733389668962251, 'post_edit', '修改', 'edit', '/system/post/edit', 'form', 2, 2, 2, 1, NULL, 0), (1164733389668962254, 1164733389668962251, 'post_delete', '删除', 'delete', '/api/blade-system/post/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1164733389668962255, 1164733389668962251, 'post_view', '查看', 'view', '/system/post/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1164733399668962201, 0, 'base', '基础配置', 'menu', '/base', 'iconfont iconicon_affiliations_li', 97, 1, 0, 1, NULL, 0), (1164733399668962202, 1164733399668962201, 'region', '行政区划', 'menu', '/base/region', 'iconfont icon-iframe', 1, 1, 0, 1, NULL, 0), (1164733399668962203, 1164733399668962202, 'region_add', '新增下级', 'add', '', '', 1, 2, 1, 1, NULL, 0), (1164733399668962204, 1164733399668962202, 'region_delete', '删除', 'delete', '/api/blade-system/region/remove', '', 2, 2, 2, 1, NULL, 0), (1164733399668962205, 1164733399668962202, 'region_import', '导入', 'import', '', '', 3, 2, 3, 1, NULL, 0), (1164733399668962206, 1164733399668962202, 'region_export', '导出', 'export', '', '', 4, 2, 2, 1, NULL, 0), (1164733399668962207, 1164733399668962202, 'region_debug', '调试', 'debug', '', '', 5, 2, 2, 1, NULL, 0), (1164733399669962301, 0, 'report', '报表管理', 'menu', '/report', 'iconfont icon-shujuzhanshi2', 5, 1, 0, 1, NULL, 0), (1164733399669962302, 1164733399669962301, 'report_setting', '报表配置', 'menu', 'http://localhost:8108/ureport/designer', 'iconfont icon-rizhi', 1, 1, 0, 1, NULL, 0), (1164733399669962303, 1164733399669962301, 'report_list', '报表列表', 'menu', '/report/reportlist', 'iconfont icon-biaodan', 2, 1, 0, 1, NULL, 0); COMMIT; -- ---------------------------- diff --git a/doc/sql/blade/blade-sword-mysql.sql b/doc/sql/blade/blade-sword-mysql.sql index df403554..89da663d 100644 --- a/doc/sql/blade/blade-sword-mysql.sql +++ b/doc/sql/blade/blade-sword-mysql.sql @@ -262,7 +262,7 @@ CREATE TABLE `blade_menu` ( -- Records of blade_menu -- ---------------------------- BEGIN; -INSERT INTO `blade_menu` VALUES (1123598815738675201, 0, 'desk', '工作台', 'menu', '/desk', 'desktop', 1, 1, 0, 1, NULL, 0), (1123598815738675202, 1123598815738675201, 'notice', '通知公告', 'menu', '/desk/notice', NULL, 1, 1, 0, 1, NULL, 0), (1123598815738675203, 0, 'system', '系统管理', 'menu', '/system', 'setting', 99, 1, 0, 1, NULL, 0), (1123598815738675204, 1123598815738675203, 'user', '用户管理', 'menu', '/system/user', NULL, 1, 1, 0, 1, NULL, 0), (1123598815738675205, 1123598815738675203, 'dept', '部门管理', 'menu', '/system/dept', NULL, 2, 1, 0, 1, NULL, 0), (1123598815738675206, 1123598815738675203, 'dict', '字典管理', 'menu', '/system/dict', NULL, 3, 1, 0, 1, NULL, 0), (1123598815738675207, 1123598815738675203, 'menu', '菜单管理', 'menu', '/system/menu', NULL, 4, 1, 0, 1, NULL, 0), (1123598815738675209, 1123598815738675203, 'param', '参数管理', 'menu', '/system/param', NULL, 6, 1, 0, 1, NULL, 0), (1123598815738675210, 0, 'monitor', '系统监控', 'menu', '/monitor', 'fund', 3, 1, 0, 1, NULL, 0), (1123598815738675211, 1123598815738675210, 'doc', '接口文档', 'menu', 'http://localhost/doc.html', NULL, 1, 1, 0, 2, NULL, 0), (1123598815738675212, 1123598815738675210, 'admin', '服务治理', 'menu', 'http://localhost:7002', NULL, 2, 1, 0, 2, NULL, 0), (1123598815738675213, 1123598815738675210, 'log', '日志管理', 'menu', '/monitor/log', NULL, 3, 1, 0, 1, NULL, 0), (1123598815738675214, 1123598815738675213, 'log_usual', '通用日志', 'menu', '/monitor/log/usual', NULL, 1, 1, 0, 1, NULL, 0), (1123598815738675215, 1123598815738675213, 'log_api', '接口日志', 'menu', '/monitor/log/api', NULL, 2, 1, 0, 1, NULL, 0), (1123598815738675216, 1123598815738675213, 'log_error', '错误日志', 'menu', '/monitor/log/error', NULL, 3, 1, 0, 1, NULL, 0), (1123598815738675217, 0, 'tool', '研发工具', 'menu', '/tool', 'tool', 4, 1, 0, 1, NULL, 0), (1123598815738675218, 1123598815738675217, 'code', '代码生成', 'menu', '/tool/code', NULL, 1, 1, 0, 1, NULL, 0), (1123598815738675219, 1123598815738675202, 'notice_add', '新增', 'add', '/desk/notice/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675220, 1123598815738675202, 'notice_edit', '修改', 'edit', '/desk/notice/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675221, 1123598815738675202, 'notice_delete', '删除', 'delete', '/api/blade-desk/notice/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675222, 1123598815738675202, 'notice_view', '查看', 'view', '/desk/notice/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675223, 1123598815738675204, 'user_add', '新增', 'add', '/system/user/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675224, 1123598815738675204, 'user_edit', '修改', 'edit', '/system/user/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675225, 1123598815738675204, 'user_delete', '删除', 'delete', '/api/blade-user/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675226, 1123598815738675204, 'user_role', '角色配置', 'role', NULL, 'user-add', 4, 2, 1, 1, NULL, 0), (1123598815738675227, 1123598815738675204, 'user_reset', '密码重置', 'reset-password', '/api/blade-user/reset-password', 'retweet', 5, 2, 1, 1, NULL, 0), (1123598815738675228, 1123598815738675204, 'user_view', '查看', 'view', '/system/user/view', 'file-text', 6, 2, 2, 1, NULL, 0), (1123598815738675229, 1123598815738675205, 'dept_add', '新增', 'add', '/system/dept/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675230, 1123598815738675205, 'dept_edit', '修改', 'edit', '/system/dept/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675231, 1123598815738675205, 'dept_delete', '删除', 'delete', '/api/blade-system/dept/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675232, 1123598815738675205, 'dept_view', '查看', 'view', '/system/dept/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675233, 1123598815738675206, 'dict_add', '新增', 'add', '/system/dict/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675234, 1123598815738675206, 'dict_edit', '修改', 'edit', '/system/dict/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675235, 1123598815738675206, 'dict_delete', '删除', 'delete', '/api/blade-system/dict/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675236, 1123598815738675206, 'dict_view', '查看', 'view', '/system/dict/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675237, 1123598815738675207, 'menu_add', '新增', 'add', '/system/menu/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675238, 1123598815738675207, 'menu_edit', '修改', 'edit', '/system/menu/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675239, 1123598815738675207, 'menu_delete', '删除', 'delete', '/api/blade-system/menu/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675240, 1123598815738675207, 'menu_view', '查看', 'view', '/system/menu/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675241, 1123598815738675308, 'role_add', '新增', 'add', '/authority/role/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675242, 1123598815738675308, 'role_edit', '修改', 'edit', '/authority/role/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675243, 1123598815738675308, 'role_delete', '删除', 'delete', '/api/blade-system/role/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675244, 1123598815738675308, 'role_view', '查看', 'view', '/authority/role/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675245, 1123598815738675209, 'param_add', '新增', 'add', '/system/param/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675246, 1123598815738675209, 'param_edit', '修改', 'edit', '/system/param/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675247, 1123598815738675209, 'param_delete', '删除', 'delete', '/api/blade-system/param/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675248, 1123598815738675209, 'param_view', '查看', 'view', '/system/param/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675249, 1123598815738675214, 'log_usual_view', '查看', 'view', '/monitor/log/usual/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675250, 1123598815738675215, 'log_api_view', '查看', 'view', '/monitor/log/api/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675251, 1123598815738675216, 'log_error_view', '查看', 'view', '/monitor/log/error/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675252, 1123598815738675218, 'code_add', '新增', 'add', '/tool/code/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675253, 1123598815738675218, 'code_edit', '修改', 'edit', '/tool/code/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675254, 1123598815738675218, 'code_delete', '删除', 'delete', '/api/blade-system/code/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675255, 1123598815738675218, 'code_view', '查看', 'view', '/tool/code/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675256, 1123598815738675203, 'tenant', '租户管理', 'menu', '/system/tenant', NULL, 7, 1, 0, 1, NULL, 0), (1123598815738675257, 1123598815738675256, 'tenant_add', '新增', 'add', '/system/tenant/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675258, 1123598815738675256, 'tenant_edit', '修改', 'edit', '/system/tenant/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675259, 1123598815738675256, 'tenant_delete', '删除', 'delete', '/api/blade-system/tenant/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675260, 1123598815738675256, 'tenant_view', '查看', 'view', '/system/tenant/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675261, 1123598815738675203, 'client', '应用管理', 'menu', '/system/client', NULL, 8, 1, 0, 1, NULL, 0), (1123598815738675262, 1123598815738675261, 'client_add', '新增', 'add', '/system/client/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675263, 1123598815738675261, 'client_edit', '修改', 'edit', '/system/client/edit', 'form', 2, 2, 2, 2, NULL, 0), (1123598815738675264, 1123598815738675261, 'client_delete', '删除', 'delete', '/api/blade-system/client/remove', 'delete', 3, 2, 3, 3, NULL, 0), (1123598815738675265, 1123598815738675261, 'client_view', '查看', 'view', '/system/client/view', 'file-text', 4, 2, 2, 2, NULL, 0), (1123598815738675266, 1123598815738675217, 'datasource', '数据源管理', 'menu', '/tool/datasource', '', 2, 1, 0, 1, NULL, 0), (1123598815738675267, 1123598815738675266, 'datasource_add', '新增', 'add', '/tool/datasource/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675268, 1123598815738675266, 'datasource_edit', '修改', 'edit', '/tool/datasource/edit', 'form', 2, 2, 2, 2, NULL, 0), (1123598815738675269, 1123598815738675266, 'datasource_delete', '删除', 'delete', '/api/blade-develop/datasource/remove', 'delete', 3, 2, 3, 3, NULL, 0), (1123598815738675270, 1123598815738675266, 'datasource_view', '查看', 'view', '/tool/datasource/view', 'file-text', 4, 2, 2, 2, NULL, 0), (1123598815738675307, 0, 'authority', '权限管理', 'menu', '/authority', 'safety-certificate', 98, 1, 0, 1, '', 0), (1123598815738675308, 1123598815738675307, 'role', '角色管理', 'menu', '/authority/role', '', 1, 1, 0, 1, NULL, 0), (1123598815738675309, 1123598815738675307, 'data_scope', '数据权限', 'menu', '/authority/datascope', '', 2, 1, 0, 1, '', 0), (1123598815738675310, 1123598815738675309, 'data_scope_setting', '权限配置', 'setting', NULL, 'setting', 1, 2, 2, 1, NULL, 0), (1164733389668962251, 1123598815738675203, 'post', '岗位管理', 'menu', '/system/post', '', 2, 1, 0, 1, NULL, 0), (1164733389668962252, 1164733389668962251, 'post_add', '新增', 'add', '/system/post/add', 'plus', 1, 2, 1, 1, NULL, 0), (1164733389668962253, 1164733389668962251, 'post_edit', '修改', 'edit', '/system/post/edit', 'form', 2, 2, 2, 1, NULL, 0), (1164733389668962254, 1164733389668962251, 'post_delete', '删除', 'delete', '/api/blade-system/post/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1164733389668962255, 1164733389668962251, 'post_view', '查看', 'view', '/system/post/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1164733399668962201, 0, 'base', '基础配置', 'menu', '/base', 'sliders', 97, 1, 0, 1, NULL, 0), (1164733399668962202, 1164733399668962201, 'region', '行政区划', 'menu', '/base/region', '', 1, 1, 0, 1, NULL, 0), (1164733399668962203, 1164733399668962202, 'region_add', '新增下级', 'add', '', '', 1, 2, 1, 1, NULL, 0), (1164733399668962204, 1164733399668962202, 'region_delete', '删除', 'delete', '/api/blade-system/region/remove', '', 2, 2, 2, 1, NULL, 0), (1164733399668962205, 1164733399668962202, 'region_import', '导入', 'import', '', '', 3, 2, 3, 1, NULL, 0), (1164733399668962206, 1164733399668962202, 'region_export', '导出', 'export', '', '', 4, 2, 2, 1, NULL, 0), (1164733399668962207, 1164733399668962202, 'region_debug', '调试', 'debug', '', '', 5, 2, 2, 1, NULL, 0), (1164733399669962301, 0, 'report', '报表管理', 'menu', '/report', 'bar-chart', 5, 1, 0, 1, NULL, 0), (1164733399669962302, 1164733399669962301, 'report_setting', '报表配置', 'menu', 'http://localhost:8108/ureport/designer', '', 1, 1, 0, 1, NULL, 0), (1164733399669962303, 1164733399669962301, 'report_list', '报表列表', 'menu', '/report/reportlist', '', 2, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu` VALUES (1123598815738675201, 0, 'desk', '工作台', 'menu', '/desk', 'desktop', 1, 1, 0, 1, NULL, 0), (1123598815738675202, 1123598815738675201, 'notice', '通知公告', 'menu', '/desk/notice', NULL, 1, 1, 0, 1, NULL, 0), (1123598815738675203, 0, 'system', '系统管理', 'menu', '/system', 'setting', 99, 1, 0, 1, NULL, 0), (1123598815738675204, 1123598815738675203, 'user', '用户管理', 'menu', '/system/user', NULL, 1, 1, 0, 1, NULL, 0), (1123598815738675205, 1123598815738675203, 'dept', '部门管理', 'menu', '/system/dept', NULL, 2, 1, 0, 1, NULL, 0), (1123598815738675206, 1123598815738675203, 'dict', '字典管理', 'menu', '/system/dict', NULL, 3, 1, 0, 1, NULL, 0), (1123598815738675207, 1123598815738675203, 'menu', '菜单管理', 'menu', '/system/menu', NULL, 4, 1, 0, 1, NULL, 0), (1123598815738675209, 1123598815738675203, 'param', '参数管理', 'menu', '/system/param', NULL, 6, 1, 0, 1, NULL, 0), (1123598815738675210, 0, 'monitor', '系统监控', 'menu', '/monitor', 'fund', 3, 1, 0, 1, NULL, 0), (1123598815738675211, 1123598815738675210, 'doc', '接口文档', 'menu', 'http://localhost/doc.html', NULL, 1, 1, 0, 2, NULL, 0), (1123598815738675212, 1123598815738675210, 'admin', '服务治理', 'menu', 'http://localhost:7002', NULL, 2, 1, 0, 2, NULL, 0), (1123598815738675213, 1123598815738675210, 'log', '日志管理', 'menu', '/monitor/log', NULL, 3, 1, 0, 1, NULL, 0), (1123598815738675214, 1123598815738675213, 'log_usual', '通用日志', 'menu', '/monitor/log/usual', NULL, 1, 1, 0, 1, NULL, 0), (1123598815738675215, 1123598815738675213, 'log_api', '接口日志', 'menu', '/monitor/log/api', NULL, 2, 1, 0, 1, NULL, 0), (1123598815738675216, 1123598815738675213, 'log_error', '错误日志', 'menu', '/monitor/log/error', NULL, 3, 1, 0, 1, NULL, 0), (1123598815738675217, 0, 'tool', '研发工具', 'menu', '/tool', 'tool', 4, 1, 0, 1, NULL, 0), (1123598815738675218, 1123598815738675217, 'code', '代码生成', 'menu', '/tool/code', NULL, 1, 1, 0, 1, NULL, 0), (1123598815738675219, 1123598815738675202, 'notice_add', '新增', 'add', '/desk/notice/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675220, 1123598815738675202, 'notice_edit', '修改', 'edit', '/desk/notice/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675221, 1123598815738675202, 'notice_delete', '删除', 'delete', '/api/blade-desk/notice/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675222, 1123598815738675202, 'notice_view', '查看', 'view', '/desk/notice/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675223, 1123598815738675204, 'user_add', '新增', 'add', '/system/user/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675224, 1123598815738675204, 'user_edit', '修改', 'edit', '/system/user/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675225, 1123598815738675204, 'user_delete', '删除', 'delete', '/api/blade-system/user/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675226, 1123598815738675204, 'user_role', '角色配置', 'role', NULL, 'user-add', 4, 2, 1, 1, NULL, 0), (1123598815738675227, 1123598815738675204, 'user_reset', '密码重置', 'reset-password', '/api/blade-system/user/reset-password', 'retweet', 5, 2, 1, 1, NULL, 0), (1123598815738675228, 1123598815738675204, 'user_view', '查看', 'view', '/system/user/view', 'file-text', 6, 2, 2, 1, NULL, 0), (1123598815738675229, 1123598815738675205, 'dept_add', '新增', 'add', '/system/dept/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675230, 1123598815738675205, 'dept_edit', '修改', 'edit', '/system/dept/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675231, 1123598815738675205, 'dept_delete', '删除', 'delete', '/api/blade-system/dept/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675232, 1123598815738675205, 'dept_view', '查看', 'view', '/system/dept/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675233, 1123598815738675206, 'dict_add', '新增', 'add', '/system/dict/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675234, 1123598815738675206, 'dict_edit', '修改', 'edit', '/system/dict/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675235, 1123598815738675206, 'dict_delete', '删除', 'delete', '/api/blade-system/dict/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675236, 1123598815738675206, 'dict_view', '查看', 'view', '/system/dict/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675237, 1123598815738675207, 'menu_add', '新增', 'add', '/system/menu/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675238, 1123598815738675207, 'menu_edit', '修改', 'edit', '/system/menu/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675239, 1123598815738675207, 'menu_delete', '删除', 'delete', '/api/blade-system/menu/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675240, 1123598815738675207, 'menu_view', '查看', 'view', '/system/menu/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675241, 1123598815738675308, 'role_add', '新增', 'add', '/authority/role/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675242, 1123598815738675308, 'role_edit', '修改', 'edit', '/authority/role/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675243, 1123598815738675308, 'role_delete', '删除', 'delete', '/api/blade-system/role/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675244, 1123598815738675308, 'role_view', '查看', 'view', '/authority/role/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675245, 1123598815738675209, 'param_add', '新增', 'add', '/system/param/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675246, 1123598815738675209, 'param_edit', '修改', 'edit', '/system/param/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675247, 1123598815738675209, 'param_delete', '删除', 'delete', '/api/blade-system/param/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675248, 1123598815738675209, 'param_view', '查看', 'view', '/system/param/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675249, 1123598815738675214, 'log_usual_view', '查看', 'view', '/monitor/log/usual/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675250, 1123598815738675215, 'log_api_view', '查看', 'view', '/monitor/log/api/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675251, 1123598815738675216, 'log_error_view', '查看', 'view', '/monitor/log/error/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675252, 1123598815738675218, 'code_add', '新增', 'add', '/tool/code/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675253, 1123598815738675218, 'code_edit', '修改', 'edit', '/tool/code/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675254, 1123598815738675218, 'code_delete', '删除', 'delete', '/api/blade-system/code/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675255, 1123598815738675218, 'code_view', '查看', 'view', '/tool/code/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675256, 1123598815738675203, 'tenant', '租户管理', 'menu', '/system/tenant', NULL, 7, 1, 0, 1, NULL, 0), (1123598815738675257, 1123598815738675256, 'tenant_add', '新增', 'add', '/system/tenant/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675258, 1123598815738675256, 'tenant_edit', '修改', 'edit', '/system/tenant/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675259, 1123598815738675256, 'tenant_delete', '删除', 'delete', '/api/blade-system/tenant/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675260, 1123598815738675256, 'tenant_view', '查看', 'view', '/system/tenant/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675261, 1123598815738675203, 'client', '应用管理', 'menu', '/system/client', NULL, 8, 1, 0, 1, NULL, 0), (1123598815738675262, 1123598815738675261, 'client_add', '新增', 'add', '/system/client/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675263, 1123598815738675261, 'client_edit', '修改', 'edit', '/system/client/edit', 'form', 2, 2, 2, 2, NULL, 0), (1123598815738675264, 1123598815738675261, 'client_delete', '删除', 'delete', '/api/blade-system/client/remove', 'delete', 3, 2, 3, 3, NULL, 0), (1123598815738675265, 1123598815738675261, 'client_view', '查看', 'view', '/system/client/view', 'file-text', 4, 2, 2, 2, NULL, 0), (1123598815738675266, 1123598815738675217, 'datasource', '数据源管理', 'menu', '/tool/datasource', '', 2, 1, 0, 1, NULL, 0), (1123598815738675267, 1123598815738675266, 'datasource_add', '新增', 'add', '/tool/datasource/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675268, 1123598815738675266, 'datasource_edit', '修改', 'edit', '/tool/datasource/edit', 'form', 2, 2, 2, 2, NULL, 0), (1123598815738675269, 1123598815738675266, 'datasource_delete', '删除', 'delete', '/api/blade-develop/datasource/remove', 'delete', 3, 2, 3, 3, NULL, 0), (1123598815738675270, 1123598815738675266, 'datasource_view', '查看', 'view', '/tool/datasource/view', 'file-text', 4, 2, 2, 2, NULL, 0), (1123598815738675307, 0, 'authority', '权限管理', 'menu', '/authority', 'safety-certificate', 98, 1, 0, 1, '', 0), (1123598815738675308, 1123598815738675307, 'role', '角色管理', 'menu', '/authority/role', '', 1, 1, 0, 1, NULL, 0), (1123598815738675309, 1123598815738675307, 'data_scope', '数据权限', 'menu', '/authority/datascope', '', 2, 1, 0, 1, '', 0), (1123598815738675310, 1123598815738675309, 'data_scope_setting', '权限配置', 'setting', NULL, 'setting', 1, 2, 2, 1, NULL, 0), (1164733389668962251, 1123598815738675203, 'post', '岗位管理', 'menu', '/system/post', '', 2, 1, 0, 1, NULL, 0), (1164733389668962252, 1164733389668962251, 'post_add', '新增', 'add', '/system/post/add', 'plus', 1, 2, 1, 1, NULL, 0), (1164733389668962253, 1164733389668962251, 'post_edit', '修改', 'edit', '/system/post/edit', 'form', 2, 2, 2, 1, NULL, 0), (1164733389668962254, 1164733389668962251, 'post_delete', '删除', 'delete', '/api/blade-system/post/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1164733389668962255, 1164733389668962251, 'post_view', '查看', 'view', '/system/post/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1164733399668962201, 0, 'base', '基础配置', 'menu', '/base', 'sliders', 97, 1, 0, 1, NULL, 0), (1164733399668962202, 1164733399668962201, 'region', '行政区划', 'menu', '/base/region', '', 1, 1, 0, 1, NULL, 0), (1164733399668962203, 1164733399668962202, 'region_add', '新增下级', 'add', '', '', 1, 2, 1, 1, NULL, 0), (1164733399668962204, 1164733399668962202, 'region_delete', '删除', 'delete', '/api/blade-system/region/remove', '', 2, 2, 2, 1, NULL, 0), (1164733399668962205, 1164733399668962202, 'region_import', '导入', 'import', '', '', 3, 2, 3, 1, NULL, 0), (1164733399668962206, 1164733399668962202, 'region_export', '导出', 'export', '', '', 4, 2, 2, 1, NULL, 0), (1164733399668962207, 1164733399668962202, 'region_debug', '调试', 'debug', '', '', 5, 2, 2, 1, NULL, 0), (1164733399669962301, 0, 'report', '报表管理', 'menu', '/report', 'bar-chart', 5, 1, 0, 1, NULL, 0), (1164733399669962302, 1164733399669962301, 'report_setting', '报表配置', 'menu', 'http://localhost:8108/ureport/designer', '', 1, 1, 0, 1, NULL, 0), (1164733399669962303, 1164733399669962301, 'report_list', '报表列表', 'menu', '/report/reportlist', '', 2, 1, 0, 1, NULL, 0); COMMIT; -- ---------------------------- diff --git a/pom.xml b/pom.xml index d5a279ed..2d555210 100644 --- a/pom.xml +++ b/pom.xml @@ -5,12 +5,12 @@ org.springblade SpringBlade - 4.1.0 + 4.2.0 pom - 4.1.0 - 4.1.0 + 4.2.0 + 4.2.0 17 3.11.0 @@ -19,12 +19,13 @@ 1.6.0 1.6.2 3.3.4 + 4.1.2 3.1.3 - 6.1.10 - 3.2.7 + 6.1.12 + 3.2.9 3.2.3 - 2023.0.2 + 2023.0.3 2023.0.1.0 2.3.2 diff --git a/script/docker/.env b/script/docker/.env index 3e87a4be..09d04fa3 100644 --- a/script/docker/.env +++ b/script/docker/.env @@ -1,2 +1,2 @@ REGISTER=192.168.0.157/blade -TAG=4.1.0 +TAG=4.2.0 diff --git a/script/docker/deploy.sh b/script/docker/deploy.sh index 9d6858ed..cc286cfc 100644 --- a/script/docker/deploy.sh +++ b/script/docker/deploy.sh @@ -46,7 +46,7 @@ base(){ #启动程序模块 modules(){ - docker-compose up -d blade-gateway1 blade-gateway2 blade-admin blade-auth1 blade-auth2 blade-user blade-desk blade-system blade-log blade-report blade-develop + docker-compose up -d blade-gateway1 blade-gateway2 blade-admin blade-auth1 blade-auth2 blade-desk blade-system blade-log blade-report blade-develop } #关闭所有模块 diff --git a/script/docker/docker-compose.yml b/script/docker/docker-compose.yml index f9e3d64d..f5d26f7c 100644 --- a/script/docker/docker-compose.yml +++ b/script/docker/docker-compose.yml @@ -133,13 +133,6 @@ services: networks: - blade_net - blade-user: - image: "${REGISTER}/blade-user:${TAG}" - privileged: true - restart: always - networks: - - blade_net - blade-system: image: "${REGISTER}/blade-system:${TAG}" privileged: true diff --git a/script/kuboard/kuboard_spring-blade.yaml b/script/kuboard/kuboard_spring-blade.yaml index fcaaff96..e12bd0f5 100644 --- a/script/kuboard/kuboard_spring-blade.yaml +++ b/script/kuboard/kuboard_spring-blade.yaml @@ -152,7 +152,7 @@ spec: spec: containers: - name: blade-admin - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-admin:4.1.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-admin:4.2.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -386,7 +386,7 @@ spec: spec: containers: - name: blade-auth - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-auth:4.1.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-auth:4.2.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -625,7 +625,7 @@ spec: spec: containers: - name: blade-desk - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-desk:4.1.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-desk:4.2.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -864,7 +864,7 @@ spec: spec: containers: - name: blade-develop - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-develop:4.1.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-develop:4.2.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1096,7 +1096,7 @@ spec: spec: containers: - name: blade-gateway - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-gateway:4.1.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-gateway:4.2.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1331,7 +1331,7 @@ spec: spec: containers: - name: blade-log - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-log:4.1.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-log:4.2.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1565,7 +1565,7 @@ spec: spec: containers: - name: blade-report - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-report:4.1.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-report:4.2.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1799,7 +1799,7 @@ spec: spec: containers: - name: blade-resource - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-resource:4.1.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-resource:4.2.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -2033,7 +2033,7 @@ spec: spec: containers: - name: blade-system - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-system:4.1.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-system:4.2.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -2111,240 +2111,6 @@ status: reason: NewReplicaSetAvailable message: ReplicaSet "blade-system-8dd57fd47" has successfully progressed. ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: blade-user - namespace: spring-blade - uid: 597b4693-e9a6-4d56-b040-84839e6e760e - resourceVersion: '257611' - generation: 2 - creationTimestamp: '2021-05-04T08:05:59Z' - labels: - k8s.kuboard.cn/layer: svc - k8s.kuboard.cn/name: blade-user - annotations: - deployment.kubernetes.io/revision: '1' - k8s.kuboard.cn/workload: blade-user - managedFields: - - manager: Mozilla - operation: Update - apiVersion: apps/v1 - time: '2021-05-04T08:05:59Z' - fieldsType: FieldsV1 - fieldsV1: - 'f:metadata': - 'f:annotations': - .: {} - 'f:k8s.kuboard.cn/workload': {} - 'f:labels': - .: {} - 'f:k8s.kuboard.cn/layer': {} - 'f:k8s.kuboard.cn/name': {} - 'f:spec': - 'f:progressDeadlineSeconds': {} - 'f:replicas': {} - 'f:revisionHistoryLimit': {} - 'f:selector': {} - 'f:strategy': - 'f:rollingUpdate': - .: {} - 'f:maxSurge': {} - 'f:maxUnavailable': {} - 'f:type': {} - 'f:template': - 'f:metadata': - 'f:labels': - .: {} - 'f:k8s.kuboard.cn/layer': {} - 'f:k8s.kuboard.cn/name': {} - 'f:spec': - 'f:containers': - 'k:{"name":"blade-user"}': - .: {} - 'f:args': {} - 'f:envFrom': {} - 'f:image': {} - 'f:imagePullPolicy': {} - 'f:livenessProbe': - .: {} - 'f:failureThreshold': {} - 'f:httpGet': - .: {} - 'f:path': {} - 'f:port': {} - 'f:scheme': {} - 'f:periodSeconds': {} - 'f:successThreshold': {} - 'f:timeoutSeconds': {} - 'f:name': {} - 'f:ports': - .: {} - 'k:{"containerPort":80,"protocol":"TCP"}': - .: {} - 'f:containerPort': {} - 'f:name': {} - 'f:protocol': {} - 'f:readinessProbe': - .: {} - 'f:failureThreshold': {} - 'f:httpGet': - .: {} - 'f:path': {} - 'f:port': {} - 'f:scheme': {} - 'f:periodSeconds': {} - 'f:successThreshold': {} - 'f:timeoutSeconds': {} - 'f:resources': - .: {} - 'f:limits': - .: {} - 'f:memory': {} - 'f:requests': - .: {} - 'f:memory': {} - 'f:startupProbe': - .: {} - 'f:failureThreshold': {} - 'f:httpGet': - .: {} - 'f:path': {} - 'f:port': {} - 'f:scheme': {} - 'f:periodSeconds': {} - 'f:successThreshold': {} - 'f:timeoutSeconds': {} - 'f:terminationMessagePath': {} - 'f:terminationMessagePolicy': {} - 'f:dnsPolicy': {} - 'f:restartPolicy': {} - 'f:schedulerName': {} - 'f:securityContext': {} - 'f:terminationGracePeriodSeconds': {} - - manager: kube-controller-manager - operation: Update - apiVersion: apps/v1 - time: '2021-05-04T08:06:59Z' - fieldsType: FieldsV1 - fieldsV1: - 'f:metadata': - 'f:annotations': - 'f:deployment.kubernetes.io/revision': {} - 'f:status': - 'f:conditions': - .: {} - 'k:{"type":"Available"}': - .: {} - 'f:lastTransitionTime': {} - 'f:lastUpdateTime': {} - 'f:message': {} - 'f:reason': {} - 'f:status': {} - 'f:type': {} - 'k:{"type":"Progressing"}': - .: {} - 'f:lastTransitionTime': {} - 'f:lastUpdateTime': {} - 'f:message': {} - 'f:reason': {} - 'f:status': {} - 'f:type': {} - 'f:observedGeneration': {} -spec: - replicas: 0 - selector: - matchLabels: - k8s.kuboard.cn/layer: svc - k8s.kuboard.cn/name: blade-user - template: - metadata: - creationTimestamp: null - labels: - k8s.kuboard.cn/layer: svc - k8s.kuboard.cn/name: blade-user - spec: - containers: - - name: blade-user - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-user:4.1.0' - args: - - '--spring.profiles.active=${PROFILE}' - - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' - - '--spring.cloud.nacos.discovery.server-addr=${NACOS_SERVER_ADDR}' - - >- - --spring.cloud.sentinel.transport.dashboard=${SENTINEL_DASHBOARD_ADDR} - - '--server.port=80' - ports: - - name: server - containerPort: 80 - protocol: TCP - envFrom: - - configMapRef: - name: blade-config - resources: - limits: - memory: 2Gi - requests: - memory: 200Mi - livenessProbe: - httpGet: - path: /actuator/health - port: 80 - scheme: HTTP - timeoutSeconds: 1 - periodSeconds: 10 - successThreshold: 1 - failureThreshold: 3 - readinessProbe: - httpGet: - path: /actuator/health - port: 80 - scheme: HTTP - timeoutSeconds: 1 - periodSeconds: 10 - successThreshold: 1 - failureThreshold: 3 - startupProbe: - httpGet: - path: /actuator/health - port: 80 - scheme: HTTP - timeoutSeconds: 1 - periodSeconds: 10 - successThreshold: 1 - failureThreshold: 20 - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - imagePullPolicy: Always - restartPolicy: Always - terminationGracePeriodSeconds: 30 - dnsPolicy: ClusterFirst - securityContext: {} - schedulerName: default-scheduler - strategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 25% - maxSurge: 25% - revisionHistoryLimit: 10 - progressDeadlineSeconds: 600 -status: - observedGeneration: 2 - conditions: - - type: Available - status: 'True' - lastUpdateTime: '2021-05-04T08:06:59Z' - lastTransitionTime: '2021-05-04T08:06:59Z' - reason: MinimumReplicasAvailable - message: Deployment has minimum availability. - - type: Progressing - status: 'True' - lastUpdateTime: '2021-05-04T08:06:59Z' - lastTransitionTime: '2021-05-04T08:05:59Z' - reason: NewReplicaSetAvailable - message: ReplicaSet "blade-user-795df5c657" has successfully progressed. - --- kind: Deployment apiVersion: apps/v1 @@ -2496,7 +2262,7 @@ spec: spec: containers: - name: saber-web - image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-web:4.1.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-web:4.2.0' ports: - name: web containerPort: 80 @@ -2721,7 +2487,7 @@ spec: spec: containers: - name: blade-swagger - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-swagger:4.1.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-swagger:4.2.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -3749,7 +3515,7 @@ spec: spec: containers: - name: mysql - image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-db:v4.1.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-db:v4.2.0' ports: - name: mysql containerPort: 3306 diff --git a/script/kuboard/saber-db/blade-saber-mysql.sql b/script/kuboard/saber-db/blade-saber-mysql.sql index 2b1f9453..dd655ef1 100644 --- a/script/kuboard/saber-db/blade-saber-mysql.sql +++ b/script/kuboard/saber-db/blade-saber-mysql.sql @@ -262,7 +262,7 @@ CREATE TABLE `blade_menu` ( -- Records of blade_menu -- ---------------------------- BEGIN; -INSERT INTO `blade_menu` VALUES (1123598815738675201, 0, 'desk', '工作台', 'menu', '/desk', 'iconfont iconicon_airplay', 1, 1, 0, 1, NULL, 0), (1123598815738675202, 1123598815738675201, 'notice', '通知公告', 'menu', '/desk/notice', 'iconfont iconicon_sms', 1, 1, 0, 1, NULL, 0), (1123598815738675203, 0, 'system', '系统管理', 'menu', '/system', 'iconfont iconicon_setting', 99, 1, 0, 1, NULL, 0), (1123598815738675204, 1123598815738675203, 'user', '用户管理', 'menu', '/system/user', 'iconfont iconicon_principal', 1, 1, 0, 1, NULL, 0), (1123598815738675205, 1123598815738675203, 'dept', '部门管理', 'menu', '/system/dept', 'iconfont iconicon_group', 2, 1, 0, 1, NULL, 0), (1123598815738675206, 1123598815738675203, 'dict', '字典管理', 'menu', '/system/dict', 'iconfont iconicon_addresslist', 3, 1, 0, 1, NULL, 0), (1123598815738675207, 1123598815738675203, 'menu', '菜单管理', 'menu', '/system/menu', 'iconfont iconicon_subordinate', 4, 1, 0, 1, NULL, 0), (1123598815738675208, 1123598815738675203, 'role', '角色管理', 'menu', '/system/role', 'iconfont iconicon_boss', 5, 1, 0, 1, NULL, 0), (1123598815738675209, 1123598815738675203, 'param', '参数管理', 'menu', '/system/param', 'iconfont iconicon_community_line', 6, 1, 0, 1, NULL, 0), (1123598815738675210, 0, 'monitor', '系统监控', 'menu', '/monitor', 'iconfont icon-yanzhengma', 3, 1, 0, 1, NULL, 0), (1123598815738675211, 1123598815738675210, 'doc', '接口文档', 'menu', 'http://localhost/doc.html', 'iconfont iconicon_study', 1, 1, 0, 2, NULL, 0), (1123598815738675212, 1123598815738675210, 'admin', '服务治理', 'menu', 'http://localhost:7002', 'iconfont icon-canshu', 2, 1, 0, 2, NULL, 0), (1123598815738675213, 1123598815738675210, 'log', '日志管理', 'menu', '/monitor/log', 'iconfont iconicon_doc', 3, 1, 0, 1, NULL, 0), (1123598815738675214, 1123598815738675213, 'log_usual', '通用日志', 'menu', '/monitor/log/usual', NULL, 1, 1, 0, 1, NULL, 0), (1123598815738675215, 1123598815738675213, 'log_api', '接口日志', 'menu', '/monitor/log/api', NULL, 2, 1, 0, 1, NULL, 0), (1123598815738675216, 1123598815738675213, 'log_error', '错误日志', 'menu', '/monitor/log/error', NULL, 3, 1, 0, 1, NULL, 0), (1123598815738675217, 0, 'tool', '研发工具', 'menu', '/tool', 'iconfont icon-wxbgongju', 4, 1, 0, 1, NULL, 0), (1123598815738675218, 1123598815738675217, 'code', '代码生成', 'menu', '/tool/code', 'iconfont iconicon_savememo', 1, 1, 0, 1, NULL, 0), (1123598815738675219, 1123598815738675202, 'notice_add', '新增', 'add', '/desk/notice/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675220, 1123598815738675202, 'notice_edit', '修改', 'edit', '/desk/notice/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675221, 1123598815738675202, 'notice_delete', '删除', 'delete', '/api/blade-desk/notice/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675222, 1123598815738675202, 'notice_view', '查看', 'view', '/desk/notice/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675223, 1123598815738675204, 'user_add', '新增', 'add', '/system/user/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675224, 1123598815738675204, 'user_edit', '修改', 'edit', '/system/user/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675225, 1123598815738675204, 'user_delete', '删除', 'delete', '/api/blade-user/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675226, 1123598815738675204, 'user_role', '角色配置', 'role', NULL, 'user-add', 4, 2, 1, 1, NULL, 0), (1123598815738675227, 1123598815738675204, 'user_reset', '密码重置', 'reset-password', '/api/blade-user/reset-password', 'retweet', 5, 2, 1, 1, NULL, 0), (1123598815738675228, 1123598815738675204, 'user_view', '查看', 'view', '/system/user/view', 'file-text', 6, 2, 2, 1, NULL, 0), (1123598815738675229, 1123598815738675205, 'dept_add', '新增', 'add', '/system/dept/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675230, 1123598815738675205, 'dept_edit', '修改', 'edit', '/system/dept/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675231, 1123598815738675205, 'dept_delete', '删除', 'delete', '/api/blade-system/dept/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675232, 1123598815738675205, 'dept_view', '查看', 'view', '/system/dept/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675233, 1123598815738675206, 'dict_add', '新增', 'add', '/system/dict/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675234, 1123598815738675206, 'dict_edit', '修改', 'edit', '/system/dict/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675235, 1123598815738675206, 'dict_delete', '删除', 'delete', '/api/blade-system/dict/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675236, 1123598815738675206, 'dict_view', '查看', 'view', '/system/dict/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675237, 1123598815738675207, 'menu_add', '新增', 'add', '/system/menu/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675238, 1123598815738675207, 'menu_edit', '修改', 'edit', '/system/menu/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675239, 1123598815738675207, 'menu_delete', '删除', 'delete', '/api/blade-system/menu/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675240, 1123598815738675207, 'menu_view', '查看', 'view', '/system/menu/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675241, 1123598815738675208, 'role_add', '新增', 'add', '/system/role/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675242, 1123598815738675208, 'role_edit', '修改', 'edit', '/system/role/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675243, 1123598815738675208, 'role_delete', '删除', 'delete', '/api/blade-system/role/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675244, 1123598815738675208, 'role_view', '查看', 'view', '/system/role/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675245, 1123598815738675209, 'param_add', '新增', 'add', '/system/param/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675246, 1123598815738675209, 'param_edit', '修改', 'edit', '/system/param/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675247, 1123598815738675209, 'param_delete', '删除', 'delete', '/api/blade-system/param/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675248, 1123598815738675209, 'param_view', '查看', 'view', '/system/param/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675249, 1123598815738675214, 'log_usual_view', '查看', 'view', '/monitor/log/usual/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675250, 1123598815738675215, 'log_api_view', '查看', 'view', '/monitor/log/api/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675251, 1123598815738675216, 'log_error_view', '查看', 'view', '/monitor/log/error/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675252, 1123598815738675218, 'code_add', '新增', 'add', '/tool/code/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675253, 1123598815738675218, 'code_edit', '修改', 'edit', '/tool/code/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675254, 1123598815738675218, 'code_delete', '删除', 'delete', '/api/blade-system/code/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675255, 1123598815738675218, 'code_view', '查看', 'view', '/tool/code/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675256, 1123598815738675203, 'tenant', '租户管理', 'menu', '/system/tenant', 'iconfont icon-quanxian', 7, 1, 0, 1, NULL, 0), (1123598815738675257, 1123598815738675256, 'tenant_add', '新增', 'add', '/system/tenant/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675258, 1123598815738675256, 'tenant_edit', '修改', 'edit', '/system/tenant/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675259, 1123598815738675256, 'tenant_delete', '删除', 'delete', '/api/blade-system/tenant/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675260, 1123598815738675256, 'tenant_view', '查看', 'view', '/system/tenant/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675261, 1123598815738675203, 'client', '应用管理', 'menu', '/system/client', 'iconfont iconicon_mobilephone', 8, 1, 0, 1, NULL, 0), (1123598815738675262, 1123598815738675261, 'client_add', '新增', 'add', '/system/client/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675263, 1123598815738675261, 'client_edit', '修改', 'edit', '/system/client/edit', 'form', 2, 2, 2, 2, NULL, 0), (1123598815738675264, 1123598815738675261, 'client_delete', '删除', 'delete', '/api/blade-system/client/remove', 'delete', 3, 2, 3, 3, NULL, 0), (1123598815738675265, 1123598815738675261, 'client_view', '查看', 'view', '/system/client/view', 'file-text', 4, 2, 2, 2, NULL, 0), (1123598815738675266, 1123598815738675217, 'datasource', '数据源管理', 'menu', '/tool/datasource', 'iconfont icon-caidanguanli', 2, 1, 0, 1, NULL, 0), (1123598815738675267, 1123598815738675266, 'datasource_add', '新增', 'add', '/tool/datasource/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675268, 1123598815738675266, 'datasource_edit', '修改', 'edit', '/tool/datasource/edit', 'form', 2, 2, 2, 2, NULL, 0), (1123598815738675269, 1123598815738675266, 'datasource_delete', '删除', 'delete', '/api/blade-develop/datasource/remove', 'delete', 3, 2, 3, 3, NULL, 0), (1123598815738675270, 1123598815738675266, 'datasource_view', '查看', 'view', '/tool/datasource/view', 'file-text', 4, 2, 2, 2, NULL, 0), (1164733389668962251, 1123598815738675203, 'post', '岗位管理', 'menu', '/system/post', 'iconfont iconicon_message', 2, 1, 0, 1, NULL, 0), (1164733389668962252, 1164733389668962251, 'post_add', '新增', 'add', '/system/post/add', 'plus', 1, 2, 1, 1, NULL, 0), (1164733389668962253, 1164733389668962251, 'post_edit', '修改', 'edit', '/system/post/edit', 'form', 2, 2, 2, 1, NULL, 0), (1164733389668962254, 1164733389668962251, 'post_delete', '删除', 'delete', '/api/blade-system/post/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1164733389668962255, 1164733389668962251, 'post_view', '查看', 'view', '/system/post/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1164733399668962201, 0, 'base', '基础配置', 'menu', '/base', 'iconfont iconicon_affiliations_li', 97, 1, 0, 1, NULL, 0), (1164733399668962202, 1164733399668962201, 'region', '行政区划', 'menu', '/base/region', 'iconfont icon-iframe', 1, 1, 0, 1, NULL, 0), (1164733399668962203, 1164733399668962202, 'region_add', '新增下级', 'add', '', '', 1, 2, 1, 1, NULL, 0), (1164733399668962204, 1164733399668962202, 'region_delete', '删除', 'delete', '/api/blade-system/region/remove', '', 2, 2, 2, 1, NULL, 0), (1164733399668962205, 1164733399668962202, 'region_import', '导入', 'import', '', '', 3, 2, 3, 1, NULL, 0), (1164733399668962206, 1164733399668962202, 'region_export', '导出', 'export', '', '', 4, 2, 2, 1, NULL, 0), (1164733399668962207, 1164733399668962202, 'region_debug', '调试', 'debug', '', '', 5, 2, 2, 1, NULL, 0), (1164733399669962301, 0, 'report', '报表管理', 'menu', '/report', 'iconfont icon-shujuzhanshi2', 5, 1, 0, 1, NULL, 0), (1164733399669962302, 1164733399669962301, 'report_setting', '报表配置', 'menu', 'http://localhost:8108/ureport/designer', 'iconfont icon-rizhi', 1, 1, 0, 1, NULL, 0), (1164733399669962303, 1164733399669962301, 'report_list', '报表列表', 'menu', '/report/reportlist', 'iconfont icon-biaodan', 2, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu` VALUES (1123598815738675201, 0, 'desk', '工作台', 'menu', '/desk', 'iconfont iconicon_airplay', 1, 1, 0, 1, NULL, 0), (1123598815738675202, 1123598815738675201, 'notice', '通知公告', 'menu', '/desk/notice', 'iconfont iconicon_sms', 1, 1, 0, 1, NULL, 0), (1123598815738675203, 0, 'system', '系统管理', 'menu', '/system', 'iconfont iconicon_setting', 99, 1, 0, 1, NULL, 0), (1123598815738675204, 1123598815738675203, 'user', '用户管理', 'menu', '/system/user', 'iconfont iconicon_principal', 1, 1, 0, 1, NULL, 0), (1123598815738675205, 1123598815738675203, 'dept', '部门管理', 'menu', '/system/dept', 'iconfont iconicon_group', 2, 1, 0, 1, NULL, 0), (1123598815738675206, 1123598815738675203, 'dict', '字典管理', 'menu', '/system/dict', 'iconfont iconicon_addresslist', 3, 1, 0, 1, NULL, 0), (1123598815738675207, 1123598815738675203, 'menu', '菜单管理', 'menu', '/system/menu', 'iconfont iconicon_subordinate', 4, 1, 0, 1, NULL, 0), (1123598815738675208, 1123598815738675203, 'role', '角色管理', 'menu', '/system/role', 'iconfont iconicon_boss', 5, 1, 0, 1, NULL, 0), (1123598815738675209, 1123598815738675203, 'param', '参数管理', 'menu', '/system/param', 'iconfont iconicon_community_line', 6, 1, 0, 1, NULL, 0), (1123598815738675210, 0, 'monitor', '系统监控', 'menu', '/monitor', 'iconfont icon-yanzhengma', 3, 1, 0, 1, NULL, 0), (1123598815738675211, 1123598815738675210, 'doc', '接口文档', 'menu', 'http://localhost/doc.html', 'iconfont iconicon_study', 1, 1, 0, 2, NULL, 0), (1123598815738675212, 1123598815738675210, 'admin', '服务治理', 'menu', 'http://localhost:7002', 'iconfont icon-canshu', 2, 1, 0, 2, NULL, 0), (1123598815738675213, 1123598815738675210, 'log', '日志管理', 'menu', '/monitor/log', 'iconfont iconicon_doc', 3, 1, 0, 1, NULL, 0), (1123598815738675214, 1123598815738675213, 'log_usual', '通用日志', 'menu', '/monitor/log/usual', NULL, 1, 1, 0, 1, NULL, 0), (1123598815738675215, 1123598815738675213, 'log_api', '接口日志', 'menu', '/monitor/log/api', NULL, 2, 1, 0, 1, NULL, 0), (1123598815738675216, 1123598815738675213, 'log_error', '错误日志', 'menu', '/monitor/log/error', NULL, 3, 1, 0, 1, NULL, 0), (1123598815738675217, 0, 'tool', '研发工具', 'menu', '/tool', 'iconfont icon-wxbgongju', 4, 1, 0, 1, NULL, 0), (1123598815738675218, 1123598815738675217, 'code', '代码生成', 'menu', '/tool/code', 'iconfont iconicon_savememo', 1, 1, 0, 1, NULL, 0), (1123598815738675219, 1123598815738675202, 'notice_add', '新增', 'add', '/desk/notice/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675220, 1123598815738675202, 'notice_edit', '修改', 'edit', '/desk/notice/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675221, 1123598815738675202, 'notice_delete', '删除', 'delete', '/api/blade-desk/notice/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675222, 1123598815738675202, 'notice_view', '查看', 'view', '/desk/notice/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675223, 1123598815738675204, 'user_add', '新增', 'add', '/system/user/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675224, 1123598815738675204, 'user_edit', '修改', 'edit', '/system/user/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675225, 1123598815738675204, 'user_delete', '删除', 'delete', '/api/blade-system/user/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675226, 1123598815738675204, 'user_role', '角色配置', 'role', NULL, 'user-add', 4, 2, 1, 1, NULL, 0), (1123598815738675227, 1123598815738675204, 'user_reset', '密码重置', 'reset-password', '/api/blade-system/user/reset-password', 'retweet', 5, 2, 1, 1, NULL, 0), (1123598815738675228, 1123598815738675204, 'user_view', '查看', 'view', '/system/user/view', 'file-text', 6, 2, 2, 1, NULL, 0), (1123598815738675229, 1123598815738675205, 'dept_add', '新增', 'add', '/system/dept/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675230, 1123598815738675205, 'dept_edit', '修改', 'edit', '/system/dept/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675231, 1123598815738675205, 'dept_delete', '删除', 'delete', '/api/blade-system/dept/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675232, 1123598815738675205, 'dept_view', '查看', 'view', '/system/dept/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675233, 1123598815738675206, 'dict_add', '新增', 'add', '/system/dict/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675234, 1123598815738675206, 'dict_edit', '修改', 'edit', '/system/dict/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675235, 1123598815738675206, 'dict_delete', '删除', 'delete', '/api/blade-system/dict/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675236, 1123598815738675206, 'dict_view', '查看', 'view', '/system/dict/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675237, 1123598815738675207, 'menu_add', '新增', 'add', '/system/menu/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675238, 1123598815738675207, 'menu_edit', '修改', 'edit', '/system/menu/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675239, 1123598815738675207, 'menu_delete', '删除', 'delete', '/api/blade-system/menu/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675240, 1123598815738675207, 'menu_view', '查看', 'view', '/system/menu/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675241, 1123598815738675208, 'role_add', '新增', 'add', '/system/role/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675242, 1123598815738675208, 'role_edit', '修改', 'edit', '/system/role/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675243, 1123598815738675208, 'role_delete', '删除', 'delete', '/api/blade-system/role/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675244, 1123598815738675208, 'role_view', '查看', 'view', '/system/role/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675245, 1123598815738675209, 'param_add', '新增', 'add', '/system/param/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675246, 1123598815738675209, 'param_edit', '修改', 'edit', '/system/param/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675247, 1123598815738675209, 'param_delete', '删除', 'delete', '/api/blade-system/param/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675248, 1123598815738675209, 'param_view', '查看', 'view', '/system/param/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675249, 1123598815738675214, 'log_usual_view', '查看', 'view', '/monitor/log/usual/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675250, 1123598815738675215, 'log_api_view', '查看', 'view', '/monitor/log/api/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675251, 1123598815738675216, 'log_error_view', '查看', 'view', '/monitor/log/error/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675252, 1123598815738675218, 'code_add', '新增', 'add', '/tool/code/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675253, 1123598815738675218, 'code_edit', '修改', 'edit', '/tool/code/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675254, 1123598815738675218, 'code_delete', '删除', 'delete', '/api/blade-system/code/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675255, 1123598815738675218, 'code_view', '查看', 'view', '/tool/code/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675256, 1123598815738675203, 'tenant', '租户管理', 'menu', '/system/tenant', 'iconfont icon-quanxian', 7, 1, 0, 1, NULL, 0), (1123598815738675257, 1123598815738675256, 'tenant_add', '新增', 'add', '/system/tenant/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675258, 1123598815738675256, 'tenant_edit', '修改', 'edit', '/system/tenant/edit', 'form', 2, 2, 2, 1, NULL, 0), (1123598815738675259, 1123598815738675256, 'tenant_delete', '删除', 'delete', '/api/blade-system/tenant/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1123598815738675260, 1123598815738675256, 'tenant_view', '查看', 'view', '/system/tenant/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1123598815738675261, 1123598815738675203, 'client', '应用管理', 'menu', '/system/client', 'iconfont iconicon_mobilephone', 8, 1, 0, 1, NULL, 0), (1123598815738675262, 1123598815738675261, 'client_add', '新增', 'add', '/system/client/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675263, 1123598815738675261, 'client_edit', '修改', 'edit', '/system/client/edit', 'form', 2, 2, 2, 2, NULL, 0), (1123598815738675264, 1123598815738675261, 'client_delete', '删除', 'delete', '/api/blade-system/client/remove', 'delete', 3, 2, 3, 3, NULL, 0), (1123598815738675265, 1123598815738675261, 'client_view', '查看', 'view', '/system/client/view', 'file-text', 4, 2, 2, 2, NULL, 0), (1123598815738675266, 1123598815738675217, 'datasource', '数据源管理', 'menu', '/tool/datasource', 'iconfont icon-caidanguanli', 2, 1, 0, 1, NULL, 0), (1123598815738675267, 1123598815738675266, 'datasource_add', '新增', 'add', '/tool/datasource/add', 'plus', 1, 2, 1, 1, NULL, 0), (1123598815738675268, 1123598815738675266, 'datasource_edit', '修改', 'edit', '/tool/datasource/edit', 'form', 2, 2, 2, 2, NULL, 0), (1123598815738675269, 1123598815738675266, 'datasource_delete', '删除', 'delete', '/api/blade-develop/datasource/remove', 'delete', 3, 2, 3, 3, NULL, 0), (1123598815738675270, 1123598815738675266, 'datasource_view', '查看', 'view', '/tool/datasource/view', 'file-text', 4, 2, 2, 2, NULL, 0), (1164733389668962251, 1123598815738675203, 'post', '岗位管理', 'menu', '/system/post', 'iconfont iconicon_message', 2, 1, 0, 1, NULL, 0), (1164733389668962252, 1164733389668962251, 'post_add', '新增', 'add', '/system/post/add', 'plus', 1, 2, 1, 1, NULL, 0), (1164733389668962253, 1164733389668962251, 'post_edit', '修改', 'edit', '/system/post/edit', 'form', 2, 2, 2, 1, NULL, 0), (1164733389668962254, 1164733389668962251, 'post_delete', '删除', 'delete', '/api/blade-system/post/remove', 'delete', 3, 2, 3, 1, NULL, 0), (1164733389668962255, 1164733389668962251, 'post_view', '查看', 'view', '/system/post/view', 'file-text', 4, 2, 2, 1, NULL, 0), (1164733399668962201, 0, 'base', '基础配置', 'menu', '/base', 'iconfont iconicon_affiliations_li', 97, 1, 0, 1, NULL, 0), (1164733399668962202, 1164733399668962201, 'region', '行政区划', 'menu', '/base/region', 'iconfont icon-iframe', 1, 1, 0, 1, NULL, 0), (1164733399668962203, 1164733399668962202, 'region_add', '新增下级', 'add', '', '', 1, 2, 1, 1, NULL, 0), (1164733399668962204, 1164733399668962202, 'region_delete', '删除', 'delete', '/api/blade-system/region/remove', '', 2, 2, 2, 1, NULL, 0), (1164733399668962205, 1164733399668962202, 'region_import', '导入', 'import', '', '', 3, 2, 3, 1, NULL, 0), (1164733399668962206, 1164733399668962202, 'region_export', '导出', 'export', '', '', 4, 2, 2, 1, NULL, 0), (1164733399668962207, 1164733399668962202, 'region_debug', '调试', 'debug', '', '', 5, 2, 2, 1, NULL, 0), (1164733399669962301, 0, 'report', '报表管理', 'menu', '/report', 'iconfont icon-shujuzhanshi2', 5, 1, 0, 1, NULL, 0), (1164733399669962302, 1164733399669962301, 'report_setting', '报表配置', 'menu', 'http://localhost:8108/ureport/designer', 'iconfont icon-rizhi', 1, 1, 0, 1, NULL, 0), (1164733399669962303, 1164733399669962301, 'report_list', '报表列表', 'menu', '/report/reportlist', 'iconfont icon-biaodan', 2, 1, 0, 1, NULL, 0); COMMIT; -- ---------------------------- From 74669cebe5f8eb2d654db2bbf294859d2b07fbd3 Mon Sep 17 00:00:00 2001 From: smallchill Date: Thu, 7 Nov 2024 19:56:49 +0800 Subject: [PATCH 21/25] =?UTF-8?q?:tada:=204.3.0.RELEASE=20=E5=A4=9A?= =?UTF-8?q?=E7=A7=9F=E6=88=B7=E6=94=AF=E6=8C=81=E7=BA=BF=E7=A8=8B=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E6=8C=87=E5=AE=9A=E7=A7=9F=E6=88=B7ID=E4=B8=8E?= =?UTF-8?q?=E5=BF=BD=E7=95=A5=E7=A7=9F=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 + README.md | 10 +- blade-auth/Dockerfile | 4 +- blade-auth/pom.xml | 11 +- .../org/springblade/auth/AuthApplication.java | 2 +- .../auth/controller/AuthController.java | 2 +- .../auth/controller/SocialController.java | 2 +- .../springblade/auth/enums/BladeUserEnum.java | 2 +- .../auth/granter/CaptchaTokenGranter.java | 2 +- .../auth/granter/ITokenGranter.java | 2 +- .../auth/granter/PasswordTokenGranter.java | 2 +- .../auth/granter/RefreshTokenGranter.java | 2 +- .../auth/granter/SocialTokenGranter.java | 2 +- .../auth/granter/TokenGranterBuilder.java | 2 +- .../auth/granter/TokenParameter.java | 2 +- .../org/springblade/auth/utils/TokenUtil.java | 2 +- blade-common/pom.xml | 6 +- .../springblade/common/cache/CacheNames.java | 2 +- .../config/BladeCommonConfiguration.java | 2 +- .../common/launch/LauncherServiceImpl.java | 2 +- .../springblade/common/tool/CommonUtil.java | 2 +- .../springblade/common/tool/PropsUtil.java | 2 +- blade-gateway/Dockerfile | 2 +- blade-gateway/pom.xml | 8 +- .../gateway/GateWayApplication.java | 2 +- .../gateway/config/JwtConfiguration.java | 2 +- .../config/RouterFunctionConfiguration.java | 2 +- .../controller/DiscoveryClientController.java | 2 +- .../gateway/filter/AuthFilter.java | 2 +- .../handler/ErrorExceptionHandler.java | 2 +- .../gateway/props/AuthProperties.java | 2 +- .../gateway/props/JwtProperties.java | 29 ++- .../gateway/provider/AuthProvider.java | 2 +- .../gateway/provider/ResponseProvider.java | 2 +- .../springblade/gateway/utils/JwtCrypto.java | 29 ++- .../springblade/gateway/utils/JwtUtil.java | 2 +- blade-ops/blade-admin/Dockerfile | 2 +- blade-ops/blade-admin/pom.xml | 8 +- .../springblade/admin/AdminApplication.java | 2 +- blade-ops/blade-develop/Dockerfile | 2 +- blade-ops/blade-develop/pom.xml | 7 +- .../develop/DevelopApplication.java | 2 +- .../develop/controller/CodeController.java | 4 +- .../controller/DatasourceController.java | 2 +- .../org/springblade/develop/entity/Code.java | 2 +- .../develop/entity/Datasource.java | 2 +- .../develop/mapper/CodeMapper.java | 2 +- .../develop/mapper/DatasourceMapper.java | 2 +- .../develop/service/ICodeService.java | 2 +- .../develop/service/IDatasourceService.java | 2 +- .../develop/service/impl/CodeServiceImpl.java | 2 +- .../service/impl/DatasourceServiceImpl.java | 2 +- .../resources/templates/controller.java.vm | 2 +- .../main/resources/templates/wrapper.java.vm | 2 +- .../org/springblade/test/CodeGenerator.java | 2 +- .../resources/templates/controller.java.vm | 2 +- .../test/resources/templates/wrapper.java.vm | 2 +- blade-ops/blade-report/Dockerfile | 2 +- blade-ops/blade-report/pom.xml | 6 +- .../springblade/report/ReportApplication.java | 2 +- .../config/BladeReportConfiguration.java | 2 +- blade-ops/blade-resource/Dockerfile | 2 +- blade-ops/blade-resource/pom.xml | 11 +- .../resource/ResourceApplication.java | 2 +- .../resource/endpoint/OssEndpoint.java | 2 +- blade-ops/blade-seata-order/pom.xml | 6 +- .../seata/order/SeataOrderApplication.java | 2 +- blade-ops/blade-seata-storage/pom.xml | 6 +- .../storage/SeataStorageApplication.java | 2 +- blade-ops/pom.xml | 3 +- blade-service-api/blade-demo-api/pom.xml | 3 +- .../java/com/example/demo/entity/Notice.java | 2 +- .../com/example/demo/feign/INoticeClient.java | 2 +- blade-service-api/blade-desk-api/pom.xml | 3 +- .../org/springblade/desk/entity/Notice.java | 2 +- .../springblade/desk/feign/INoticeClient.java | 2 +- blade-service-api/blade-dict-api/pom.xml | 3 +- .../org/springblade/system/dto/DictDTO.java | 2 +- .../org/springblade/system/entity/Dict.java | 2 +- .../springblade/system/feign/IDictClient.java | 2 +- .../system/feign/IDictClientFallback.java | 2 +- .../org/springblade/system/vo/DictVO.java | 2 +- blade-service-api/blade-scope-api/pom.xml | 5 +- .../system/cache/DataScopeCache.java | 2 +- .../system/config/ScopeConfiguration.java | 2 +- .../system/feign/IDataScopeClient.java | 2 +- .../feign/IDataScopeClientFallback.java | 2 +- .../system/handler/DataScopeModelHandler.java | 2 +- blade-service-api/blade-system-api/pom.xml | 3 +- .../org/springblade/system/dto/DeptDTO.java | 2 +- .../org/springblade/system/dto/MenuDTO.java | 2 +- .../org/springblade/system/dto/ParamDTO.java | 2 +- .../org/springblade/system/dto/RoleDTO.java | 2 +- .../springblade/system/dto/RoleMenuDTO.java | 2 +- .../springblade/system/entity/AuthClient.java | 2 +- .../springblade/system/entity/DataScope.java | 2 +- .../org/springblade/system/entity/Dept.java | 2 +- .../org/springblade/system/entity/Menu.java | 2 +- .../org/springblade/system/entity/Param.java | 2 +- .../org/springblade/system/entity/Post.java | 2 +- .../org/springblade/system/entity/Region.java | 2 +- .../org/springblade/system/entity/Role.java | 2 +- .../springblade/system/entity/RoleMenu.java | 2 +- .../springblade/system/entity/RoleScope.java | 2 +- .../org/springblade/system/entity/Tenant.java | 2 +- .../springblade/system/feign/ISysClient.java | 2 +- .../system/feign/ISysClientFallback.java | 2 +- .../springblade/system/vo/CheckedTreeVO.java | 2 +- .../springblade/system/vo/DataScopeVO.java | 2 +- .../org/springblade/system/vo/DeptVO.java | 2 +- .../springblade/system/vo/GrantTreeVO.java | 2 +- .../org/springblade/system/vo/GrantVO.java | 2 +- .../org/springblade/system/vo/MenuVO.java | 2 +- .../org/springblade/system/vo/ParamVO.java | 2 +- .../org/springblade/system/vo/PostVO.java | 2 +- .../org/springblade/system/vo/RegionVO.java | 2 +- .../org/springblade/system/vo/RoleMenuVO.java | 2 +- .../org/springblade/system/vo/RoleVO.java | 2 +- blade-service-api/blade-user-api/pom.xml | 3 +- .../springblade/system/user/entity/User.java | 2 +- .../system/user/entity/UserInfo.java | 2 +- .../system/user/entity/UserOauth.java | 2 +- .../system/user/feign/IUserClient.java | 2 +- .../user/feign/IUserClientFallback.java | 2 +- .../springblade/system/user/vo/UserVO.java | 2 +- blade-service-api/pom.xml | 5 +- blade-service/blade-demo/pom.xml | 7 +- .../com/example/demo/DemoApplication.java | 2 +- .../demo/config/DemoConfiguration.java | 2 +- .../demo/controller/DemoController.java | 2 +- .../demo/controller/DynamicController.java | 2 +- .../demo/controller/NoticeController.java | 2 +- .../com/example/demo/feign/NoticeClient.java | 2 +- .../launcher/DemoLauncherServiceImpl.java | 2 +- .../com/example/demo/mapper/NoticeMapper.java | 2 +- .../example/demo/service/IDynamicService.java | 2 +- .../example/demo/service/INoticeService.java | 2 +- .../demo/service/impl/NoticeServiceImpl.java | 2 +- blade-service/blade-desk/Dockerfile | 2 +- blade-service/blade-desk/pom.xml | 8 +- .../org/springblade/desk/DeskApplication.java | 2 +- .../desk/controller/NoticeController.java | 2 +- .../springblade/desk/feign/NoticeClient.java | 2 +- .../springblade/desk/mapper/NoticeMapper.java | 2 +- .../desk/service/INoticeService.java | 2 +- .../desk/service/impl/NoticeServiceImpl.java | 2 +- .../desk/wrapper/NoticeWrapper.java | 2 +- .../launcher/DemoTestLauncherServiceImpl.java | 2 +- blade-service/blade-log/Dockerfile | 2 +- blade-service/blade-log/pom.xml | 4 +- .../springblade/core/log/LogApplication.java | 2 +- .../core/log/controller/LogApiController.java | 2 +- .../log/controller/LogErrorController.java | 2 +- .../log/controller/LogUsualController.java | 2 +- .../springblade/core/log/feign/LogClient.java | 2 +- .../core/log/mapper/LogApiMapper.java | 2 +- .../core/log/mapper/LogErrorMapper.java | 2 +- .../core/log/mapper/LogUsualMapper.java | 2 +- .../core/log/service/ILogApiService.java | 2 +- .../core/log/service/ILogErrorService.java | 2 +- .../core/log/service/ILogUsualService.java | 2 +- .../log/service/impl/LogApiServiceImpl.java | 2 +- .../log/service/impl/LogErrorServiceImpl.java | 2 +- .../log/service/impl/LogUsualServiceImpl.java | 2 +- blade-service/blade-system/Dockerfile | 2 +- blade-service/blade-system/pom.xml | 13 +- .../springblade/system/SystemApplication.java | 2 +- .../controller/AuthClientController.java | 2 +- .../controller/DataScopeController.java | 2 +- .../system/controller/DeptController.java | 2 +- .../system/controller/DictController.java | 2 +- .../system/controller/MenuController.java | 2 +- .../system/controller/ParamController.java | 2 +- .../system/controller/PostController.java | 2 +- .../system/controller/RegionController.java | 2 +- .../system/controller/RoleController.java | 2 +- .../system/controller/TenantController.java | 2 +- .../system/controller/UserController.java | 14 +- .../springblade/system/excel/UserExcel.java | 2 +- .../system/feign/DataScopeClient.java | 2 +- .../springblade/system/feign/DictClient.java | 2 +- .../springblade/system/feign/SysClient.java | 2 +- .../springblade/system/feign/UserClient.java | 2 +- .../system/mapper/AuthClientMapper.java | 2 +- .../system/mapper/DataScopeMapper.java | 2 +- .../springblade/system/mapper/DeptMapper.java | 2 +- .../springblade/system/mapper/DictMapper.java | 2 +- .../springblade/system/mapper/MenuMapper.java | 2 +- .../system/mapper/ParamMapper.java | 2 +- .../springblade/system/mapper/PostMapper.java | 2 +- .../system/mapper/RegionMapper.java | 2 +- .../springblade/system/mapper/RoleMapper.java | 2 +- .../system/mapper/RoleMenuMapper.java | 2 +- .../system/mapper/RoleScopeMapper.java | 2 +- .../system/mapper/TenantMapper.java | 2 +- .../springblade/system/mapper/UserMapper.java | 2 +- .../system/mapper/UserOauthMapper.java | 2 +- .../system/service/IAuthClientService.java | 2 +- .../system/service/IDataScopeService.java | 2 +- .../system/service/IDeptService.java | 2 +- .../system/service/IDictService.java | 2 +- .../system/service/IMenuService.java | 2 +- .../system/service/IParamService.java | 2 +- .../system/service/IPostService.java | 2 +- .../system/service/IRegionService.java | 2 +- .../system/service/IRoleMenuService.java | 2 +- .../system/service/IRoleScopeService.java | 2 +- .../system/service/IRoleService.java | 2 +- .../system/service/ITenantService.java | 2 +- .../system/service/IUserOauthService.java | 2 +- .../system/service/IUserService.java | 2 +- .../service/impl/AuthClientServiceImpl.java | 2 +- .../service/impl/DataScopeServiceImpl.java | 2 +- .../system/service/impl/DeptServiceImpl.java | 2 +- .../system/service/impl/DictServiceImpl.java | 2 +- .../system/service/impl/MenuServiceImpl.java | 2 +- .../system/service/impl/ParamServiceImpl.java | 2 +- .../system/service/impl/PostServiceImpl.java | 2 +- .../service/impl/RegionServiceImpl.java | 2 +- .../service/impl/RoleMenuServiceImpl.java | 2 +- .../service/impl/RoleScopeServiceImpl.java | 2 +- .../system/service/impl/RoleServiceImpl.java | 2 +- .../service/impl/TenantServiceImpl.java | 4 +- .../service/impl/UserOauthServiceImpl.java | 2 +- .../system/service/impl/UserServiceImpl.java | 2 +- .../system/wrapper/DataScopeWrapper.java | 2 +- .../system/wrapper/DeptWrapper.java | 2 +- .../system/wrapper/DictWrapper.java | 2 +- .../system/wrapper/MenuWrapper.java | 2 +- .../system/wrapper/PostWrapper.java | 2 +- .../system/wrapper/RegionWrapper.java | 2 +- .../system/wrapper/RoleWrapper.java | 2 +- .../system/wrapper/UserWrapper.java | 2 +- blade-service/pom.xml | 5 +- doc/nacos/blade.yaml | 4 +- pom.xml | 179 ++++++++++++++---- script/docker/.env | 2 +- script/kuboard/kuboard_spring-blade.yaml | 24 +-- script/service/rename.sh | 2 +- 239 files changed, 443 insertions(+), 408 deletions(-) diff --git a/.gitignore b/.gitignore index 83e50754..5850020e 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,7 @@ Thumbs.db *.war *.ear /target + +# Flattened pom +.flattened-pom.xml +/**/.flattened-pom.xml diff --git a/README.md b/README.md index f5632101..c52aa5df 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- Downloads + Downloads Build Status Build Status Coverage Status @@ -33,12 +33,12 @@ |----------------------|------------| | Java | 17+ | | NodeJS | 18+ | -| Spring | 6.1.12 | -| Spring Boot | 3.2.9 | +| Spring | 6.1.14 | +| Spring Boot | 3.2.10 | | Spring Cloud | 2023.0.3 | -| Spring Cloud Alibaba | 2023.0.1.0 | +| Spring Cloud Alibaba | 2023.0.1.2 | | Nacos Alibaba | 2.3.2 | -| Mybatis Plus | 3.5.7 | +| Mybatis Plus | 3.5.8 | ## 工程结构 diff --git a/blade-auth/Dockerfile b/blade-auth/Dockerfile index 1e4e1ac1..2cce55ab 100644 --- a/blade-auth/Dockerfile +++ b/blade-auth/Dockerfile @@ -1,3 +1,5 @@ +# 网络问题无法下载可以改为阿里云镜像 +# FROM registry.cn-hangzhou.aliyuncs.com/bladex-repo/alpine-java:openjdk17_cn_slim FROM bladex/alpine-java:openjdk17_cn_slim MAINTAINER bladejava@qq.com @@ -10,6 +12,6 @@ EXPOSE 8010 ADD ./target/blade-auth.jar ./app.jar -ENTRYPOINT ["java", "--add-opens java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] +ENTRYPOINT ["java", "--add-opens", "java.base/java.lang=ALL-UNNAMED", "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] CMD ["--spring.profiles.active=test"] diff --git a/blade-auth/pom.xml b/blade-auth/pom.xml index b4d30e42..110fb317 100644 --- a/blade-auth/pom.xml +++ b/blade-auth/pom.xml @@ -8,12 +8,11 @@ SpringBlade org.springblade - 4.2.0 + ${revision} blade-auth ${project.artifactId} - ${blade.project.version} jar @@ -21,43 +20,35 @@ org.springblade blade-common - ${blade.project.version} org.springblade blade-core-cloud - ${blade.tool.version} org.springblade blade-core-secure - ${blade.tool.version} org.springblade blade-starter-log - ${blade.tool.version} org.springblade blade-starter-social - ${blade.tool.version} org.springblade blade-user-api - ${blade.project.version} org.springblade blade-starter-swagger - ${blade.tool.version} com.github.whvcse easy-captcha - ${captcha.version} diff --git a/blade-auth/src/main/java/org/springblade/auth/AuthApplication.java b/blade-auth/src/main/java/org/springblade/auth/AuthApplication.java index 9754cc9f..3811301b 100644 --- a/blade-auth/src/main/java/org/springblade/auth/AuthApplication.java +++ b/blade-auth/src/main/java/org/springblade/auth/AuthApplication.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-auth/src/main/java/org/springblade/auth/controller/AuthController.java b/blade-auth/src/main/java/org/springblade/auth/controller/AuthController.java index 3f9babff..e932edf9 100644 --- a/blade-auth/src/main/java/org/springblade/auth/controller/AuthController.java +++ b/blade-auth/src/main/java/org/springblade/auth/controller/AuthController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-auth/src/main/java/org/springblade/auth/controller/SocialController.java b/blade-auth/src/main/java/org/springblade/auth/controller/SocialController.java index f64b9220..3955b27a 100644 --- a/blade-auth/src/main/java/org/springblade/auth/controller/SocialController.java +++ b/blade-auth/src/main/java/org/springblade/auth/controller/SocialController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-auth/src/main/java/org/springblade/auth/enums/BladeUserEnum.java b/blade-auth/src/main/java/org/springblade/auth/enums/BladeUserEnum.java index 4d0d538a..2b218d54 100644 --- a/blade-auth/src/main/java/org/springblade/auth/enums/BladeUserEnum.java +++ b/blade-auth/src/main/java/org/springblade/auth/enums/BladeUserEnum.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-auth/src/main/java/org/springblade/auth/granter/CaptchaTokenGranter.java b/blade-auth/src/main/java/org/springblade/auth/granter/CaptchaTokenGranter.java index 0762f935..3f77c258 100644 --- a/blade-auth/src/main/java/org/springblade/auth/granter/CaptchaTokenGranter.java +++ b/blade-auth/src/main/java/org/springblade/auth/granter/CaptchaTokenGranter.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-auth/src/main/java/org/springblade/auth/granter/ITokenGranter.java b/blade-auth/src/main/java/org/springblade/auth/granter/ITokenGranter.java index b2ec7318..9649e9d5 100644 --- a/blade-auth/src/main/java/org/springblade/auth/granter/ITokenGranter.java +++ b/blade-auth/src/main/java/org/springblade/auth/granter/ITokenGranter.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-auth/src/main/java/org/springblade/auth/granter/PasswordTokenGranter.java b/blade-auth/src/main/java/org/springblade/auth/granter/PasswordTokenGranter.java index 908135a2..1db1498f 100644 --- a/blade-auth/src/main/java/org/springblade/auth/granter/PasswordTokenGranter.java +++ b/blade-auth/src/main/java/org/springblade/auth/granter/PasswordTokenGranter.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-auth/src/main/java/org/springblade/auth/granter/RefreshTokenGranter.java b/blade-auth/src/main/java/org/springblade/auth/granter/RefreshTokenGranter.java index 95fd95fe..f5b86f1b 100644 --- a/blade-auth/src/main/java/org/springblade/auth/granter/RefreshTokenGranter.java +++ b/blade-auth/src/main/java/org/springblade/auth/granter/RefreshTokenGranter.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-auth/src/main/java/org/springblade/auth/granter/SocialTokenGranter.java b/blade-auth/src/main/java/org/springblade/auth/granter/SocialTokenGranter.java index 689ae63d..ff1513b3 100644 --- a/blade-auth/src/main/java/org/springblade/auth/granter/SocialTokenGranter.java +++ b/blade-auth/src/main/java/org/springblade/auth/granter/SocialTokenGranter.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-auth/src/main/java/org/springblade/auth/granter/TokenGranterBuilder.java b/blade-auth/src/main/java/org/springblade/auth/granter/TokenGranterBuilder.java index e8700f7d..d872128b 100644 --- a/blade-auth/src/main/java/org/springblade/auth/granter/TokenGranterBuilder.java +++ b/blade-auth/src/main/java/org/springblade/auth/granter/TokenGranterBuilder.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-auth/src/main/java/org/springblade/auth/granter/TokenParameter.java b/blade-auth/src/main/java/org/springblade/auth/granter/TokenParameter.java index 368c83ef..e992b969 100644 --- a/blade-auth/src/main/java/org/springblade/auth/granter/TokenParameter.java +++ b/blade-auth/src/main/java/org/springblade/auth/granter/TokenParameter.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java b/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java index 82231f12..e8d71f9c 100644 --- a/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java +++ b/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-common/pom.xml b/blade-common/pom.xml index 813af3ed..4f014b10 100644 --- a/blade-common/pom.xml +++ b/blade-common/pom.xml @@ -5,30 +5,26 @@ SpringBlade org.springblade - 4.2.0 + ${revision} 4.0.0 blade-common ${project.artifactId} - ${blade.project.version} jar org.springblade blade-core-launch - ${blade.tool.version} org.springblade blade-starter-loadbalancer - ${blade.tool.version} net.dreamlu mica-auto - ${mica.auto.version} provided diff --git a/blade-common/src/main/java/org/springblade/common/cache/CacheNames.java b/blade-common/src/main/java/org/springblade/common/cache/CacheNames.java index 7fbb0072..1d72d076 100644 --- a/blade-common/src/main/java/org/springblade/common/cache/CacheNames.java +++ b/blade-common/src/main/java/org/springblade/common/cache/CacheNames.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-common/src/main/java/org/springblade/common/config/BladeCommonConfiguration.java b/blade-common/src/main/java/org/springblade/common/config/BladeCommonConfiguration.java index 90a25b1d..ed34ca23 100644 --- a/blade-common/src/main/java/org/springblade/common/config/BladeCommonConfiguration.java +++ b/blade-common/src/main/java/org/springblade/common/config/BladeCommonConfiguration.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java b/blade-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java index bbe99f87..8a090e98 100644 --- a/blade-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java +++ b/blade-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-common/src/main/java/org/springblade/common/tool/CommonUtil.java b/blade-common/src/main/java/org/springblade/common/tool/CommonUtil.java index 4fd9d10e..5785606b 100644 --- a/blade-common/src/main/java/org/springblade/common/tool/CommonUtil.java +++ b/blade-common/src/main/java/org/springblade/common/tool/CommonUtil.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-common/src/main/java/org/springblade/common/tool/PropsUtil.java b/blade-common/src/main/java/org/springblade/common/tool/PropsUtil.java index 9644e243..0801fb22 100644 --- a/blade-common/src/main/java/org/springblade/common/tool/PropsUtil.java +++ b/blade-common/src/main/java/org/springblade/common/tool/PropsUtil.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-gateway/Dockerfile b/blade-gateway/Dockerfile index e4109773..8d53271a 100644 --- a/blade-gateway/Dockerfile +++ b/blade-gateway/Dockerfile @@ -10,6 +10,6 @@ EXPOSE 80 ADD ./target/blade-gateway.jar ./app.jar -ENTRYPOINT ["java", "--add-opens java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] +ENTRYPOINT ["java", "--add-opens", "java.base/java.lang=ALL-UNNAMED", "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] CMD ["--spring.profiles.active=test"] diff --git a/blade-gateway/pom.xml b/blade-gateway/pom.xml index bb256292..caccfdeb 100644 --- a/blade-gateway/pom.xml +++ b/blade-gateway/pom.xml @@ -5,13 +5,12 @@ SpringBlade org.springblade - 4.2.0 + ${revision} 4.0.0 blade-gateway ${project.artifactId} - ${blade.project.version} jar @@ -19,7 +18,6 @@ org.springblade blade-core-launch - ${blade.tool.version} org.springframework.boot @@ -34,7 +32,6 @@ org.springblade blade-common - ${blade.project.version} org.springblade @@ -54,7 +51,6 @@ de.codecentric spring-boot-admin-starter-client - ${spring.boot.admin.version} org.springframework.cloud @@ -78,12 +74,10 @@ io.jsonwebtoken jjwt-impl - 0.11.2 io.jsonwebtoken jjwt-jackson - 0.11.2 diff --git a/blade-gateway/src/main/java/org/springblade/gateway/GateWayApplication.java b/blade-gateway/src/main/java/org/springblade/gateway/GateWayApplication.java index 53d39931..5e9e6c9c 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/GateWayApplication.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/GateWayApplication.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-gateway/src/main/java/org/springblade/gateway/config/JwtConfiguration.java b/blade-gateway/src/main/java/org/springblade/gateway/config/JwtConfiguration.java index 83731e6f..45b35262 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/config/JwtConfiguration.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/config/JwtConfiguration.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-gateway/src/main/java/org/springblade/gateway/config/RouterFunctionConfiguration.java b/blade-gateway/src/main/java/org/springblade/gateway/config/RouterFunctionConfiguration.java index e19978a2..700bf99c 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/config/RouterFunctionConfiguration.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/config/RouterFunctionConfiguration.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-gateway/src/main/java/org/springblade/gateway/controller/DiscoveryClientController.java b/blade-gateway/src/main/java/org/springblade/gateway/controller/DiscoveryClientController.java index 4568fe93..478785d9 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/controller/DiscoveryClientController.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/controller/DiscoveryClientController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java b/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java index e684c58b..cef89b25 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-gateway/src/main/java/org/springblade/gateway/handler/ErrorExceptionHandler.java b/blade-gateway/src/main/java/org/springblade/gateway/handler/ErrorExceptionHandler.java index 3794fd18..8746849f 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/handler/ErrorExceptionHandler.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/handler/ErrorExceptionHandler.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-gateway/src/main/java/org/springblade/gateway/props/AuthProperties.java b/blade-gateway/src/main/java/org/springblade/gateway/props/AuthProperties.java index 38a924db..2f77c8b0 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/props/AuthProperties.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/props/AuthProperties.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-gateway/src/main/java/org/springblade/gateway/props/JwtProperties.java b/blade-gateway/src/main/java/org/springblade/gateway/props/JwtProperties.java index 67b41af7..7baef528 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/props/JwtProperties.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/props/JwtProperties.java @@ -1,18 +1,17 @@ -/* - * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * Neither the name of the dreamlu.net developer nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * Author: Chill 庄骞 (smallchill@163.com) +/** + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.springblade.gateway.props; diff --git a/blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java b/blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java index c0087b2b..7756bf00 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-gateway/src/main/java/org/springblade/gateway/provider/ResponseProvider.java b/blade-gateway/src/main/java/org/springblade/gateway/provider/ResponseProvider.java index ddcd65d9..676a6882 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/provider/ResponseProvider.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/provider/ResponseProvider.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-gateway/src/main/java/org/springblade/gateway/utils/JwtCrypto.java b/blade-gateway/src/main/java/org/springblade/gateway/utils/JwtCrypto.java index 99ec888b..30f7fe68 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/utils/JwtCrypto.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/utils/JwtCrypto.java @@ -1,18 +1,17 @@ -/* - * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * Neither the name of the dreamlu.net developer nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * Author: Chill 庄骞 (smallchill@163.com) +/** + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.springblade.gateway.utils; diff --git a/blade-gateway/src/main/java/org/springblade/gateway/utils/JwtUtil.java b/blade-gateway/src/main/java/org/springblade/gateway/utils/JwtUtil.java index 70cc2994..5c374aab 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/utils/JwtUtil.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/utils/JwtUtil.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-admin/Dockerfile b/blade-ops/blade-admin/Dockerfile index 257eb09f..61e5f627 100644 --- a/blade-ops/blade-admin/Dockerfile +++ b/blade-ops/blade-admin/Dockerfile @@ -10,6 +10,6 @@ EXPOSE 7002 ADD ./target/blade-admin.jar ./app.jar -ENTRYPOINT ["java", "--add-opens java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] +ENTRYPOINT ["java", "--add-opens", "java.base/java.lang=ALL-UNNAMED", "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] CMD ["--spring.profiles.active=test"] diff --git a/blade-ops/blade-admin/pom.xml b/blade-ops/blade-admin/pom.xml index 87c2696b..9c150af2 100644 --- a/blade-ops/blade-admin/pom.xml +++ b/blade-ops/blade-admin/pom.xml @@ -5,13 +5,12 @@ blade-ops org.springblade - 4.2.0 + ${revision} 4.0.0 blade-admin ${project.artifactId} - ${blade.project.version} jar @@ -19,22 +18,18 @@ org.springblade blade-common - ${blade.project.version} org.springblade blade-core-launch - ${blade.tool.version} org.springblade blade-core-tool - ${blade.tool.version} org.springblade blade-core-cloud - ${blade.tool.version} org.springblade @@ -46,7 +41,6 @@ de.codecentric spring-boot-admin-starter-server - ${spring.boot.admin.version} diff --git a/blade-ops/blade-admin/src/main/java/org/springblade/admin/AdminApplication.java b/blade-ops/blade-admin/src/main/java/org/springblade/admin/AdminApplication.java index 42c6633b..f5769a2b 100644 --- a/blade-ops/blade-admin/src/main/java/org/springblade/admin/AdminApplication.java +++ b/blade-ops/blade-admin/src/main/java/org/springblade/admin/AdminApplication.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-develop/Dockerfile b/blade-ops/blade-develop/Dockerfile index 927e8773..37c0333b 100644 --- a/blade-ops/blade-develop/Dockerfile +++ b/blade-ops/blade-develop/Dockerfile @@ -10,6 +10,6 @@ EXPOSE 7007 ADD ./target/blade-develop.jar ./app.jar -ENTRYPOINT ["java", "--add-opens java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] +ENTRYPOINT ["java", "--add-opens", "java.base/java.lang=ALL-UNNAMED", "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] CMD ["--spring.profiles.active=test"] diff --git a/blade-ops/blade-develop/pom.xml b/blade-ops/blade-develop/pom.xml index dca9fe51..3d8ecea8 100644 --- a/blade-ops/blade-develop/pom.xml +++ b/blade-ops/blade-develop/pom.xml @@ -6,14 +6,13 @@ org.springblade blade-ops - 4.2.0 + ${revision} 4.0.0 blade-develop ${project.artifactId} - ${blade.project.version} jar @@ -21,22 +20,18 @@ org.springblade blade-core-boot - ${blade.tool.version} org.springblade blade-common - ${blade.project.version} org.springblade blade-starter-develop - ${blade.tool.version} org.springblade blade-dict-api - ${blade.project.version} diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/DevelopApplication.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/DevelopApplication.java index 57650e79..a38357c2 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/DevelopApplication.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/DevelopApplication.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/CodeController.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/CodeController.java index 121ed7f2..867b7e19 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/CodeController.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/CodeController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -126,7 +126,7 @@ public R copy(@Parameter(description = "主键", required = true) @RequestParam @PostMapping("/gen-code") @ApiOperationSupport(order = 6) @Operation(summary = "代码生成", description = "传入ids") - public R genCode(@Parameter(description = "主键集合", required = true) @RequestParam String ids, @RequestParam(defaultValue = "sword") String system) { + public R genCode(@Parameter(description = "主键集合", required = true) @RequestParam String ids, @RequestParam(defaultValue = "saber3") String system) { Collection codes = codeService.listByIds(Func.toLongList(ids)); codes.forEach(code -> { BladeCodeGenerator generator = new BladeCodeGenerator(); diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/DatasourceController.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/DatasourceController.java index cf16eb41..4677ac66 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/DatasourceController.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/DatasourceController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/entity/Code.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/entity/Code.java index 8958fbac..b04c3374 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/entity/Code.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/entity/Code.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/entity/Datasource.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/entity/Datasource.java index ea82a476..1ea5e15a 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/entity/Datasource.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/entity/Datasource.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/mapper/CodeMapper.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/mapper/CodeMapper.java index ac38043b..8ed52191 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/mapper/CodeMapper.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/mapper/CodeMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/mapper/DatasourceMapper.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/mapper/DatasourceMapper.java index 3f3be53c..bb816518 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/mapper/DatasourceMapper.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/mapper/DatasourceMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/ICodeService.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/ICodeService.java index 38e25a77..49e0574e 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/ICodeService.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/ICodeService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/IDatasourceService.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/IDatasourceService.java index d8109f3e..0321b49d 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/IDatasourceService.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/IDatasourceService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/impl/CodeServiceImpl.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/impl/CodeServiceImpl.java index 83aaa96a..44f1c7f3 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/impl/CodeServiceImpl.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/impl/CodeServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/impl/DatasourceServiceImpl.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/impl/DatasourceServiceImpl.java index c14222e8..5d7cc075 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/impl/DatasourceServiceImpl.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/service/impl/DatasourceServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-develop/src/main/resources/templates/controller.java.vm b/blade-ops/blade-develop/src/main/resources/templates/controller.java.vm index e83cd27d..3862210a 100644 --- a/blade-ops/blade-develop/src/main/resources/templates/controller.java.vm +++ b/blade-ops/blade-develop/src/main/resources/templates/controller.java.vm @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-develop/src/main/resources/templates/wrapper.java.vm b/blade-ops/blade-develop/src/main/resources/templates/wrapper.java.vm index 3729f014..4c331cd7 100644 --- a/blade-ops/blade-develop/src/main/resources/templates/wrapper.java.vm +++ b/blade-ops/blade-develop/src/main/resources/templates/wrapper.java.vm @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-develop/src/test/java/org/springblade/test/CodeGenerator.java b/blade-ops/blade-develop/src/test/java/org/springblade/test/CodeGenerator.java index 6cb84af7..373ac259 100644 --- a/blade-ops/blade-develop/src/test/java/org/springblade/test/CodeGenerator.java +++ b/blade-ops/blade-develop/src/test/java/org/springblade/test/CodeGenerator.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-develop/src/test/resources/templates/controller.java.vm b/blade-ops/blade-develop/src/test/resources/templates/controller.java.vm index e83cd27d..3862210a 100644 --- a/blade-ops/blade-develop/src/test/resources/templates/controller.java.vm +++ b/blade-ops/blade-develop/src/test/resources/templates/controller.java.vm @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-develop/src/test/resources/templates/wrapper.java.vm b/blade-ops/blade-develop/src/test/resources/templates/wrapper.java.vm index 3729f014..4c331cd7 100644 --- a/blade-ops/blade-develop/src/test/resources/templates/wrapper.java.vm +++ b/blade-ops/blade-develop/src/test/resources/templates/wrapper.java.vm @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-report/Dockerfile b/blade-ops/blade-report/Dockerfile index 1723cb93..3fae63ff 100644 --- a/blade-ops/blade-report/Dockerfile +++ b/blade-ops/blade-report/Dockerfile @@ -10,6 +10,6 @@ EXPOSE 8108 ADD ./target/blade-report.jar ./app.jar -ENTRYPOINT ["java", "--add-opens java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] +ENTRYPOINT ["java", "--add-opens", "java.base/java.lang=ALL-UNNAMED", "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] CMD ["--spring.profiles.active=test"] diff --git a/blade-ops/blade-report/pom.xml b/blade-ops/blade-report/pom.xml index a8224d2f..b72fbf3c 100644 --- a/blade-ops/blade-report/pom.xml +++ b/blade-ops/blade-report/pom.xml @@ -5,14 +5,13 @@ org.springblade blade-ops - 4.2.0 + ${revision} 4.0.0 blade-report ${project.artifactId} - ${blade.project.version} jar @@ -20,17 +19,14 @@ org.springblade blade-core-boot - ${blade.tool.version} org.springblade blade-starter-report - ${blade.tool.version} org.springblade blade-common - ${blade.project.version} diff --git a/blade-ops/blade-report/src/main/java/org/springblade/report/ReportApplication.java b/blade-ops/blade-report/src/main/java/org/springblade/report/ReportApplication.java index ca5c56c7..02281b87 100644 --- a/blade-ops/blade-report/src/main/java/org/springblade/report/ReportApplication.java +++ b/blade-ops/blade-report/src/main/java/org/springblade/report/ReportApplication.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-report/src/main/java/org/springblade/report/config/BladeReportConfiguration.java b/blade-ops/blade-report/src/main/java/org/springblade/report/config/BladeReportConfiguration.java index 443efa04..10122bfe 100644 --- a/blade-ops/blade-report/src/main/java/org/springblade/report/config/BladeReportConfiguration.java +++ b/blade-ops/blade-report/src/main/java/org/springblade/report/config/BladeReportConfiguration.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-resource/Dockerfile b/blade-ops/blade-resource/Dockerfile index 576c8cf3..ca95c3dc 100644 --- a/blade-ops/blade-resource/Dockerfile +++ b/blade-ops/blade-resource/Dockerfile @@ -10,6 +10,6 @@ EXPOSE 8010 ADD ./target/blade-resource.jar ./app.jar -ENTRYPOINT ["java", "--add-opens java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] +ENTRYPOINT ["java", "--add-opens", "java.base/java.lang=ALL-UNNAMED", "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] CMD ["--spring.profiles.active=test"] diff --git a/blade-ops/blade-resource/pom.xml b/blade-ops/blade-resource/pom.xml index b69e3028..7dc3b602 100644 --- a/blade-ops/blade-resource/pom.xml +++ b/blade-ops/blade-resource/pom.xml @@ -5,30 +5,26 @@ blade-ops org.springblade - 4.2.0 + ${revision} 4.0.0 blade-resource ${project.artifactId} - ${blade.project.version} jar org.springblade blade-common - ${blade.project.version} org.springblade blade-core-tool - ${blade.tool.version} org.springblade blade-core-cloud - ${blade.tool.version} org.springblade @@ -39,7 +35,10 @@ org.springblade blade-starter-oss - ${blade.tool.version} + + + org.springblade + blade-starter-swagger diff --git a/blade-ops/blade-resource/src/main/java/org/springblade/resource/ResourceApplication.java b/blade-ops/blade-resource/src/main/java/org/springblade/resource/ResourceApplication.java index 4e294f31..a044c17e 100644 --- a/blade-ops/blade-resource/src/main/java/org/springblade/resource/ResourceApplication.java +++ b/blade-ops/blade-resource/src/main/java/org/springblade/resource/ResourceApplication.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-resource/src/main/java/org/springblade/resource/endpoint/OssEndpoint.java b/blade-ops/blade-resource/src/main/java/org/springblade/resource/endpoint/OssEndpoint.java index 50be4b00..952528fb 100644 --- a/blade-ops/blade-resource/src/main/java/org/springblade/resource/endpoint/OssEndpoint.java +++ b/blade-ops/blade-resource/src/main/java/org/springblade/resource/endpoint/OssEndpoint.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-seata-order/pom.xml b/blade-ops/blade-seata-order/pom.xml index 45744ad9..3d9a9c69 100644 --- a/blade-ops/blade-seata-order/pom.xml +++ b/blade-ops/blade-seata-order/pom.xml @@ -5,30 +5,26 @@ blade-ops org.springblade - 4.2.0 + ${revision} 4.0.0 blade-seata-order ${project.artifactId} - ${blade.project.version} jar org.springblade blade-common - ${blade.project.version} org.springblade blade-core-boot - ${blade.tool.version} org.springblade blade-starter-transaction - ${blade.tool.version} diff --git a/blade-ops/blade-seata-order/src/main/java/org/springblade/seata/order/SeataOrderApplication.java b/blade-ops/blade-seata-order/src/main/java/org/springblade/seata/order/SeataOrderApplication.java index f277f031..bff38d2a 100644 --- a/blade-ops/blade-seata-order/src/main/java/org/springblade/seata/order/SeataOrderApplication.java +++ b/blade-ops/blade-seata-order/src/main/java/org/springblade/seata/order/SeataOrderApplication.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/blade-seata-storage/pom.xml b/blade-ops/blade-seata-storage/pom.xml index 62730df7..42014a4e 100644 --- a/blade-ops/blade-seata-storage/pom.xml +++ b/blade-ops/blade-seata-storage/pom.xml @@ -5,30 +5,26 @@ blade-ops org.springblade - 4.2.0 + ${revision} 4.0.0 blade-seata-storage ${project.artifactId} - ${blade.project.version} jar org.springblade blade-common - ${blade.project.version} org.springblade blade-core-boot - ${blade.tool.version} org.springblade blade-starter-transaction - ${blade.tool.version} diff --git a/blade-ops/blade-seata-storage/src/main/java/org/springblade/seata/storage/SeataStorageApplication.java b/blade-ops/blade-seata-storage/src/main/java/org/springblade/seata/storage/SeataStorageApplication.java index 5f8686df..431f07c9 100644 --- a/blade-ops/blade-seata-storage/src/main/java/org/springblade/seata/storage/SeataStorageApplication.java +++ b/blade-ops/blade-seata-storage/src/main/java/org/springblade/seata/storage/SeataStorageApplication.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-ops/pom.xml b/blade-ops/pom.xml index 2e2245a8..650a1676 100644 --- a/blade-ops/pom.xml +++ b/blade-ops/pom.xml @@ -5,13 +5,12 @@ SpringBlade org.springblade - 4.2.0 + ${revision} 4.0.0 blade-ops ${project.artifactId} - 4.2.0 pom blade-admin diff --git a/blade-service-api/blade-demo-api/pom.xml b/blade-service-api/blade-demo-api/pom.xml index 084620f5..fee8cfea 100644 --- a/blade-service-api/blade-demo-api/pom.xml +++ b/blade-service-api/blade-demo-api/pom.xml @@ -5,13 +5,12 @@ blade-service-api org.springblade - 4.2.0 + ${revision} 4.0.0 blade-demo-api ${project.artifactId} - ${blade.project.version} jar diff --git a/blade-service-api/blade-demo-api/src/main/java/com/example/demo/entity/Notice.java b/blade-service-api/blade-demo-api/src/main/java/com/example/demo/entity/Notice.java index ba181dae..84c38731 100644 --- a/blade-service-api/blade-demo-api/src/main/java/com/example/demo/entity/Notice.java +++ b/blade-service-api/blade-demo-api/src/main/java/com/example/demo/entity/Notice.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-demo-api/src/main/java/com/example/demo/feign/INoticeClient.java b/blade-service-api/blade-demo-api/src/main/java/com/example/demo/feign/INoticeClient.java index 911be4d7..19410c0f 100644 --- a/blade-service-api/blade-demo-api/src/main/java/com/example/demo/feign/INoticeClient.java +++ b/blade-service-api/blade-demo-api/src/main/java/com/example/demo/feign/INoticeClient.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-desk-api/pom.xml b/blade-service-api/blade-desk-api/pom.xml index 2805b9ee..f9e538e3 100644 --- a/blade-service-api/blade-desk-api/pom.xml +++ b/blade-service-api/blade-desk-api/pom.xml @@ -5,13 +5,12 @@ blade-service-api org.springblade - 4.2.0 + ${revision} 4.0.0 blade-desk-api ${project.artifactId} - ${blade.project.version} jar diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/entity/Notice.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/entity/Notice.java index fcab0abe..1cdde926 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/entity/Notice.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/entity/Notice.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/feign/INoticeClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/feign/INoticeClient.java index 1c964004..3d174e85 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/feign/INoticeClient.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/feign/INoticeClient.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-dict-api/pom.xml b/blade-service-api/blade-dict-api/pom.xml index 435e852c..31d0a38b 100644 --- a/blade-service-api/blade-dict-api/pom.xml +++ b/blade-service-api/blade-dict-api/pom.xml @@ -5,13 +5,12 @@ blade-service-api org.springblade - 4.2.0 + ${revision} 4.0.0 blade-dict-api ${project.artifactId} - ${blade.project.version} jar diff --git a/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/dto/DictDTO.java b/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/dto/DictDTO.java index 46186f93..ad023065 100644 --- a/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/dto/DictDTO.java +++ b/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/dto/DictDTO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/entity/Dict.java b/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/entity/Dict.java index cf114cea..1ca169c0 100644 --- a/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/entity/Dict.java +++ b/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/entity/Dict.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/feign/IDictClient.java b/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/feign/IDictClient.java index 9aeabeeb..ade68aa4 100644 --- a/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/feign/IDictClient.java +++ b/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/feign/IDictClient.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/feign/IDictClientFallback.java b/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/feign/IDictClientFallback.java index 82f671de..b5483123 100644 --- a/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/feign/IDictClientFallback.java +++ b/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/feign/IDictClientFallback.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/vo/DictVO.java b/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/vo/DictVO.java index 69f0b1b4..a7e2e9f9 100644 --- a/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/vo/DictVO.java +++ b/blade-service-api/blade-dict-api/src/main/java/org/springblade/system/vo/DictVO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-scope-api/pom.xml b/blade-service-api/blade-scope-api/pom.xml index 65abba33..3eef2c73 100644 --- a/blade-service-api/blade-scope-api/pom.xml +++ b/blade-service-api/blade-scope-api/pom.xml @@ -5,25 +5,22 @@ blade-service-api org.springblade - 4.2.0 + ${revision} 4.0.0 blade-scope-api ${project.artifactId} - ${blade.project.version} jar org.springblade blade-core-secure - ${blade.tool.version} org.springblade blade-starter-datascope - ${blade.tool.version} diff --git a/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/cache/DataScopeCache.java b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/cache/DataScopeCache.java index a55a156f..456423a5 100644 --- a/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/cache/DataScopeCache.java +++ b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/cache/DataScopeCache.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/config/ScopeConfiguration.java b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/config/ScopeConfiguration.java index e38ec61b..0b8df115 100644 --- a/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/config/ScopeConfiguration.java +++ b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/config/ScopeConfiguration.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/feign/IDataScopeClient.java b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/feign/IDataScopeClient.java index 6dc5b161..fef9adde 100644 --- a/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/feign/IDataScopeClient.java +++ b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/feign/IDataScopeClient.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/feign/IDataScopeClientFallback.java b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/feign/IDataScopeClientFallback.java index abcd35a3..68a14abe 100644 --- a/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/feign/IDataScopeClientFallback.java +++ b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/feign/IDataScopeClientFallback.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/handler/DataScopeModelHandler.java b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/handler/DataScopeModelHandler.java index 2e7cb67c..64857d98 100644 --- a/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/handler/DataScopeModelHandler.java +++ b/blade-service-api/blade-scope-api/src/main/java/org/springblade/system/handler/DataScopeModelHandler.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/pom.xml b/blade-service-api/blade-system-api/pom.xml index e6c2ee2b..683da46f 100644 --- a/blade-service-api/blade-system-api/pom.xml +++ b/blade-service-api/blade-system-api/pom.xml @@ -5,13 +5,12 @@ blade-service-api org.springblade - 4.2.0 + ${revision} 4.0.0 blade-system-api ${project.artifactId} - ${blade.project.version} jar diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/DeptDTO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/DeptDTO.java index 6236fd27..ca73baff 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/DeptDTO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/DeptDTO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/MenuDTO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/MenuDTO.java index 9e3f30d7..899ca500 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/MenuDTO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/MenuDTO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/ParamDTO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/ParamDTO.java index 0be65d98..893cd192 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/ParamDTO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/ParamDTO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/RoleDTO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/RoleDTO.java index cce0548f..066d5aa1 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/RoleDTO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/RoleDTO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/RoleMenuDTO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/RoleMenuDTO.java index 1ba94ab1..c37aec17 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/RoleMenuDTO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/dto/RoleMenuDTO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/AuthClient.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/AuthClient.java index d55df9bb..136d84ff 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/AuthClient.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/AuthClient.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/DataScope.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/DataScope.java index 2567753b..b08d8930 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/DataScope.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/DataScope.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Dept.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Dept.java index cf27d49b..48c1040b 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Dept.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Dept.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Menu.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Menu.java index 89d54a46..ec61d889 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Menu.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Menu.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Param.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Param.java index 57c64e1b..59df84f1 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Param.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Param.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Post.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Post.java index 5519b23d..66dc2548 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Post.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Post.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Region.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Region.java index 956b7544..7e1e49b6 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Region.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Region.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Role.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Role.java index 8b4c54aa..642e45aa 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Role.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Role.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/RoleMenu.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/RoleMenu.java index 5fadb60e..e7470cc2 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/RoleMenu.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/RoleMenu.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/RoleScope.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/RoleScope.java index 8ee01215..50af1a54 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/RoleScope.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/RoleScope.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Tenant.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Tenant.java index ae9ab0cf..6272bb55 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Tenant.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Tenant.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java index 302b5f25..1bd27dac 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java index f4578ab1..83958bab 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/CheckedTreeVO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/CheckedTreeVO.java index 7156c7aa..23a074ed 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/CheckedTreeVO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/CheckedTreeVO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/DataScopeVO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/DataScopeVO.java index 7b960e10..f6b1b6ea 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/DataScopeVO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/DataScopeVO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/DeptVO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/DeptVO.java index 7fd66fdb..511d1900 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/DeptVO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/DeptVO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/GrantTreeVO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/GrantTreeVO.java index 325e5259..6a19c5fa 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/GrantTreeVO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/GrantTreeVO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/GrantVO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/GrantVO.java index a7d3ab5f..a781e797 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/GrantVO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/GrantVO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/MenuVO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/MenuVO.java index 5eea41c9..b90d4925 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/MenuVO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/MenuVO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/ParamVO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/ParamVO.java index a54abb35..a00bee5e 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/ParamVO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/ParamVO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/PostVO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/PostVO.java index ac860550..55bcff67 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/PostVO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/PostVO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/RegionVO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/RegionVO.java index 2d98b8b1..4ebcdba3 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/RegionVO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/RegionVO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/RoleMenuVO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/RoleMenuVO.java index 8a3fb7e9..e736500a 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/RoleMenuVO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/RoleMenuVO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/RoleVO.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/RoleVO.java index 89622ad0..e5e9a073 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/RoleVO.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/RoleVO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-user-api/pom.xml b/blade-service-api/blade-user-api/pom.xml index d5f34216..5a6c5f8e 100644 --- a/blade-service-api/blade-user-api/pom.xml +++ b/blade-service-api/blade-user-api/pom.xml @@ -5,13 +5,12 @@ blade-service-api org.springblade - 4.2.0 + ${revision} 4.0.0 blade-user-api ${project.artifactId} - ${blade.project.version} jar diff --git a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java index 027115bb..e68756cf 100644 --- a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java +++ b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/UserInfo.java b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/UserInfo.java index 59d470f0..5290b21a 100644 --- a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/UserInfo.java +++ b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/UserInfo.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/UserOauth.java b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/UserOauth.java index 4dbe8627..81dfbbda 100644 --- a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/UserOauth.java +++ b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/UserOauth.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClient.java b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClient.java index e9e83633..f85e1ed1 100644 --- a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClient.java +++ b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClient.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClientFallback.java b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClientFallback.java index 25a28517..61ea8d97 100644 --- a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClientFallback.java +++ b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClientFallback.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/vo/UserVO.java b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/vo/UserVO.java index bdd93005..92fb693b 100644 --- a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/vo/UserVO.java +++ b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/vo/UserVO.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service-api/pom.xml b/blade-service-api/pom.xml index 32f7b2fe..b8d623a2 100644 --- a/blade-service-api/pom.xml +++ b/blade-service-api/pom.xml @@ -5,13 +5,12 @@ SpringBlade org.springblade - 4.2.0 + ${revision} 4.0.0 blade-service-api ${project.artifactId} - 4.2.0 pom SpringBlade 微服务API集合 @@ -28,7 +27,6 @@ org.springblade blade-starter-mybatis - ${blade.tool.version} org.springframework.cloud @@ -37,7 +35,6 @@ net.dreamlu mica-auto - ${mica.auto.version} provided diff --git a/blade-service/blade-demo/pom.xml b/blade-service/blade-demo/pom.xml index 4cceffa7..d1a2cb1b 100644 --- a/blade-service/blade-demo/pom.xml +++ b/blade-service/blade-demo/pom.xml @@ -5,35 +5,30 @@ blade-service org.springblade - 4.2.0 + ${revision} 4.0.0 blade-demo ${project.artifactId} - ${blade.project.version} jar org.springblade blade-core-boot - ${blade.tool.version} org.springblade blade-starter-swagger - ${blade.tool.version} org.springblade blade-demo-api - ${blade.project.version} com.baomidou dynamic-datasource-spring-boot3-starter - 4.3.0 diff --git a/blade-service/blade-demo/src/main/java/com/example/demo/DemoApplication.java b/blade-service/blade-demo/src/main/java/com/example/demo/DemoApplication.java index 5193c78c..4d7cae4b 100644 --- a/blade-service/blade-demo/src/main/java/com/example/demo/DemoApplication.java +++ b/blade-service/blade-demo/src/main/java/com/example/demo/DemoApplication.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-demo/src/main/java/com/example/demo/config/DemoConfiguration.java b/blade-service/blade-demo/src/main/java/com/example/demo/config/DemoConfiguration.java index 88c99274..d54045c1 100644 --- a/blade-service/blade-demo/src/main/java/com/example/demo/config/DemoConfiguration.java +++ b/blade-service/blade-demo/src/main/java/com/example/demo/config/DemoConfiguration.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-demo/src/main/java/com/example/demo/controller/DemoController.java b/blade-service/blade-demo/src/main/java/com/example/demo/controller/DemoController.java index 6063beea..4e0eeeb4 100644 --- a/blade-service/blade-demo/src/main/java/com/example/demo/controller/DemoController.java +++ b/blade-service/blade-demo/src/main/java/com/example/demo/controller/DemoController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-demo/src/main/java/com/example/demo/controller/DynamicController.java b/blade-service/blade-demo/src/main/java/com/example/demo/controller/DynamicController.java index d2d1b1f6..8375cc19 100644 --- a/blade-service/blade-demo/src/main/java/com/example/demo/controller/DynamicController.java +++ b/blade-service/blade-demo/src/main/java/com/example/demo/controller/DynamicController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-demo/src/main/java/com/example/demo/controller/NoticeController.java b/blade-service/blade-demo/src/main/java/com/example/demo/controller/NoticeController.java index 438fb2a4..02f919e6 100644 --- a/blade-service/blade-demo/src/main/java/com/example/demo/controller/NoticeController.java +++ b/blade-service/blade-demo/src/main/java/com/example/demo/controller/NoticeController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-demo/src/main/java/com/example/demo/feign/NoticeClient.java b/blade-service/blade-demo/src/main/java/com/example/demo/feign/NoticeClient.java index 0d7e3ec1..05e0f60e 100644 --- a/blade-service/blade-demo/src/main/java/com/example/demo/feign/NoticeClient.java +++ b/blade-service/blade-demo/src/main/java/com/example/demo/feign/NoticeClient.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-demo/src/main/java/com/example/demo/launcher/DemoLauncherServiceImpl.java b/blade-service/blade-demo/src/main/java/com/example/demo/launcher/DemoLauncherServiceImpl.java index ec6b1672..8f2b0ea3 100644 --- a/blade-service/blade-demo/src/main/java/com/example/demo/launcher/DemoLauncherServiceImpl.java +++ b/blade-service/blade-demo/src/main/java/com/example/demo/launcher/DemoLauncherServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-demo/src/main/java/com/example/demo/mapper/NoticeMapper.java b/blade-service/blade-demo/src/main/java/com/example/demo/mapper/NoticeMapper.java index a69dbd8d..3f45a87c 100644 --- a/blade-service/blade-demo/src/main/java/com/example/demo/mapper/NoticeMapper.java +++ b/blade-service/blade-demo/src/main/java/com/example/demo/mapper/NoticeMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-demo/src/main/java/com/example/demo/service/IDynamicService.java b/blade-service/blade-demo/src/main/java/com/example/demo/service/IDynamicService.java index 5eb5a141..4f8a3542 100644 --- a/blade-service/blade-demo/src/main/java/com/example/demo/service/IDynamicService.java +++ b/blade-service/blade-demo/src/main/java/com/example/demo/service/IDynamicService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-demo/src/main/java/com/example/demo/service/INoticeService.java b/blade-service/blade-demo/src/main/java/com/example/demo/service/INoticeService.java index 1bf17fd5..a423a44f 100644 --- a/blade-service/blade-demo/src/main/java/com/example/demo/service/INoticeService.java +++ b/blade-service/blade-demo/src/main/java/com/example/demo/service/INoticeService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-demo/src/main/java/com/example/demo/service/impl/NoticeServiceImpl.java b/blade-service/blade-demo/src/main/java/com/example/demo/service/impl/NoticeServiceImpl.java index d31519c1..2e1b4696 100644 --- a/blade-service/blade-demo/src/main/java/com/example/demo/service/impl/NoticeServiceImpl.java +++ b/blade-service/blade-demo/src/main/java/com/example/demo/service/impl/NoticeServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-desk/Dockerfile b/blade-service/blade-desk/Dockerfile index eccaf1a0..a50a739e 100644 --- a/blade-service/blade-desk/Dockerfile +++ b/blade-service/blade-desk/Dockerfile @@ -10,6 +10,6 @@ EXPOSE 8105 ADD ./target/blade-desk.jar ./app.jar -ENTRYPOINT ["java", "--add-opens java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] +ENTRYPOINT ["java", "--add-opens", "java.base/java.lang=ALL-UNNAMED", "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] CMD ["--spring.profiles.active=test"] diff --git a/blade-service/blade-desk/pom.xml b/blade-service/blade-desk/pom.xml index afcf4415..aaf44d55 100644 --- a/blade-service/blade-desk/pom.xml +++ b/blade-service/blade-desk/pom.xml @@ -6,41 +6,35 @@ org.springblade blade-service - 4.2.0 + ${revision} 4.0.0 blade-desk ${project.artifactId} - ${blade.project.version} jar org.springblade blade-core-boot - ${blade.tool.version} org.springblade blade-starter-swagger - ${blade.tool.version} org.springblade blade-desk-api - ${blade.project.version} org.springblade blade-dict-api - ${blade.project.version} org.springblade blade-core-test - ${blade.tool.version} test diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/DeskApplication.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/DeskApplication.java index 07489b7c..41b031a2 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/DeskApplication.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/DeskApplication.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/controller/NoticeController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/controller/NoticeController.java index 729a8614..326d3d75 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/controller/NoticeController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/controller/NoticeController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/feign/NoticeClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/feign/NoticeClient.java index a177d13f..99d0e139 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/feign/NoticeClient.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/feign/NoticeClient.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/mapper/NoticeMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/mapper/NoticeMapper.java index daed99a6..14f22f87 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/mapper/NoticeMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/mapper/NoticeMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/service/INoticeService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/service/INoticeService.java index 05f235ad..3b0b774c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/service/INoticeService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/service/INoticeService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/service/impl/NoticeServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/service/impl/NoticeServiceImpl.java index 576dc515..e9459e65 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/service/impl/NoticeServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/service/impl/NoticeServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/wrapper/NoticeWrapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/wrapper/NoticeWrapper.java index 6b22cc36..c96ea7e2 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/wrapper/NoticeWrapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/wrapper/NoticeWrapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-desk/src/test/java/org/springblade/desk/test/launcher/DemoTestLauncherServiceImpl.java b/blade-service/blade-desk/src/test/java/org/springblade/desk/test/launcher/DemoTestLauncherServiceImpl.java index 495d7b0e..bac5bd2a 100644 --- a/blade-service/blade-desk/src/test/java/org/springblade/desk/test/launcher/DemoTestLauncherServiceImpl.java +++ b/blade-service/blade-desk/src/test/java/org/springblade/desk/test/launcher/DemoTestLauncherServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-log/Dockerfile b/blade-service/blade-log/Dockerfile index 24f36ee5..391d7613 100644 --- a/blade-service/blade-log/Dockerfile +++ b/blade-service/blade-log/Dockerfile @@ -10,6 +10,6 @@ EXPOSE 8103 ADD ./target/blade-log.jar ./app.jar -ENTRYPOINT ["java", "--add-opens java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] +ENTRYPOINT ["java", "--add-opens", "java.base/java.lang=ALL-UNNAMED", "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] CMD ["--spring.profiles.active=test"] diff --git a/blade-service/blade-log/pom.xml b/blade-service/blade-log/pom.xml index 00a69e77..686ba7e8 100644 --- a/blade-service/blade-log/pom.xml +++ b/blade-service/blade-log/pom.xml @@ -5,13 +5,12 @@ blade-service org.springblade - 4.2.0 + ${revision} 4.0.0 blade-log ${project.artifactId} - ${blade.project.version} jar @@ -19,7 +18,6 @@ org.springblade blade-core-boot - ${blade.tool.version} diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/LogApplication.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/LogApplication.java index 0f42e9b4..cc9607d6 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/LogApplication.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/LogApplication.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogApiController.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogApiController.java index 64a129c1..692dd3fe 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogApiController.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogApiController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogErrorController.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogErrorController.java index bc8afac1..255b312f 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogErrorController.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogErrorController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogUsualController.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogUsualController.java index 16f75e99..a628073d 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogUsualController.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogUsualController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/feign/LogClient.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/feign/LogClient.java index 7e91b306..f0ebaeac 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/feign/LogClient.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/feign/LogClient.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/mapper/LogApiMapper.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/mapper/LogApiMapper.java index f927ae2a..7076ba76 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/mapper/LogApiMapper.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/mapper/LogApiMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/mapper/LogErrorMapper.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/mapper/LogErrorMapper.java index d7bcc4a1..d9c2fcca 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/mapper/LogErrorMapper.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/mapper/LogErrorMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/mapper/LogUsualMapper.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/mapper/LogUsualMapper.java index a64d6a15..3bc908dd 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/mapper/LogUsualMapper.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/mapper/LogUsualMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/service/ILogApiService.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/service/ILogApiService.java index a75f6624..3d573534 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/service/ILogApiService.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/service/ILogApiService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/service/ILogErrorService.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/service/ILogErrorService.java index ca1ad972..d596f7d2 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/service/ILogErrorService.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/service/ILogErrorService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/service/ILogUsualService.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/service/ILogUsualService.java index 560bf941..12900092 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/service/ILogUsualService.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/service/ILogUsualService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/service/impl/LogApiServiceImpl.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/service/impl/LogApiServiceImpl.java index b875de5f..b394412d 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/service/impl/LogApiServiceImpl.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/service/impl/LogApiServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/service/impl/LogErrorServiceImpl.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/service/impl/LogErrorServiceImpl.java index 5188eff7..26468428 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/service/impl/LogErrorServiceImpl.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/service/impl/LogErrorServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/service/impl/LogUsualServiceImpl.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/service/impl/LogUsualServiceImpl.java index 2c04c672..66e6b1b7 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/service/impl/LogUsualServiceImpl.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/service/impl/LogUsualServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/Dockerfile b/blade-service/blade-system/Dockerfile index 209a0565..4d8c2508 100644 --- a/blade-service/blade-system/Dockerfile +++ b/blade-service/blade-system/Dockerfile @@ -10,6 +10,6 @@ EXPOSE 8106 ADD ./target/blade-system.jar ./app.jar -ENTRYPOINT ["java", "--add-opens java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] +ENTRYPOINT ["java", "--add-opens", "java.base/java.lang=ALL-UNNAMED", "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] CMD ["--spring.profiles.active=test"] diff --git a/blade-service/blade-system/pom.xml b/blade-service/blade-system/pom.xml index e2d996bf..5401468c 100644 --- a/blade-service/blade-system/pom.xml +++ b/blade-service/blade-system/pom.xml @@ -5,65 +5,54 @@ blade-service org.springblade - 4.2.0 + ${revision} 4.0.0 blade-system ${project.artifactId} - ${blade.project.version} jar org.springblade blade-core-boot - ${blade.tool.version} org.springblade blade-dict-api - ${blade.project.version} org.springblade blade-system-api - ${blade.project.version} org.springblade blade-user-api - ${blade.project.version} com.alibaba easyexcel - ${easyexcel.version} org.apache.poi poi - ${poi.version} org.apache.poi poi-ooxml - ${poi.version} org.apache.poi poi-ooxml-schemas - ${poi.version} org.apache.poi poi-scratchpad - ${poi.version} org.apache.poi ooxml-schemas - 1.4 diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/SystemApplication.java b/blade-service/blade-system/src/main/java/org/springblade/system/SystemApplication.java index 0ad19046..05182c76 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/SystemApplication.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/SystemApplication.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/AuthClientController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/AuthClientController.java index 083123bc..a63791b4 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/AuthClientController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/AuthClientController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/DataScopeController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/DataScopeController.java index 451b1501..5bfd1ecf 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/DataScopeController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/DataScopeController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java index a655083d..b79a2e1e 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/DictController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/DictController.java index b91767c2..f46071bc 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/DictController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/DictController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/MenuController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/MenuController.java index c498a5a3..f508668f 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/MenuController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/MenuController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/ParamController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/ParamController.java index 3150845f..956437bf 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/ParamController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/ParamController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/PostController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/PostController.java index 3519e063..f5f82f30 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/PostController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/PostController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/RegionController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/RegionController.java index 2818933f..4b543198 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/RegionController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/RegionController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/RoleController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/RoleController.java index 9585632a..43d8c103 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/RoleController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/RoleController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/TenantController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/TenantController.java index 1b1b4674..754b4585 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/TenantController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/TenantController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java index 0667d34c..b2969fa4 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -76,6 +76,7 @@ public class UserController { @ApiOperationSupport(order = 1) @Operation(summary = "查看详情", description = "传入id") @GetMapping("/detail") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) public R detail(User user) { User detail = userService.getOne(Condition.getQueryWrapper(user)); return R.data(UserWrapper.build().entityVO(detail)); @@ -102,6 +103,7 @@ public R info(BladeUser user) { }) @ApiOperationSupport(order = 3) @Operation(summary = "列表", description = "传入account和realName") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) public R> list(@Parameter(hidden = true) @RequestParam Map user, Query query, BladeUser bladeUser) { QueryWrapper queryWrapper = Condition.getQueryWrapper(user, User.class); IPage pages = userService.page(Condition.getPage(query), (!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId()) : queryWrapper); @@ -114,6 +116,7 @@ public R> list(@Parameter(hidden = true) @RequestParam Map> userList(User user) { + public R> userList(User user) { List list = userService.list(Condition.getQueryWrapper(user)); - return R.data(list); + return R.data(UserWrapper.build().listVO(list)); } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/excel/UserExcel.java b/blade-service/blade-system/src/main/java/org/springblade/system/excel/UserExcel.java index 653189e1..5b9dbb56 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/excel/UserExcel.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/excel/UserExcel.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/feign/DataScopeClient.java b/blade-service/blade-system/src/main/java/org/springblade/system/feign/DataScopeClient.java index ba9fc694..d2a8179a 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/feign/DataScopeClient.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/feign/DataScopeClient.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/feign/DictClient.java b/blade-service/blade-system/src/main/java/org/springblade/system/feign/DictClient.java index a9211582..b040ac4a 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/feign/DictClient.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/feign/DictClient.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java b/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java index cc2ec462..c73dc3b4 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/feign/UserClient.java b/blade-service/blade-system/src/main/java/org/springblade/system/feign/UserClient.java index 8abcd003..b2638f41 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/feign/UserClient.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/feign/UserClient.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/AuthClientMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/AuthClientMapper.java index adcc699f..4006a0ce 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/AuthClientMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/AuthClientMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DataScopeMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DataScopeMapper.java index 88f05784..2b50c077 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DataScopeMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DataScopeMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.java index 2ac6f77b..f30acc4e 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DictMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DictMapper.java index 1a511ffd..41edd464 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DictMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DictMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/MenuMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/MenuMapper.java index b5320aba..9208ab42 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/MenuMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/MenuMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/ParamMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/ParamMapper.java index 9cc4c1ff..ba8b959a 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/ParamMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/ParamMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/PostMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/PostMapper.java index 233eb2d9..7da1124c 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/PostMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/PostMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RegionMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RegionMapper.java index 45b7c450..b3e74451 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RegionMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RegionMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.java index 0a9197f4..022908fd 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMenuMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMenuMapper.java index 943edf4a..998ca6ea 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMenuMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMenuMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleScopeMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleScopeMapper.java index c92be8ca..a5457ddb 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleScopeMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleScopeMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/TenantMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/TenantMapper.java index dea6bab6..0339f8fd 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/TenantMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/TenantMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.java index 8f2515a2..3f606752 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserOauthMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserOauthMapper.java index 0dccd32e..f9486b0b 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserOauthMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserOauthMapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IAuthClientService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IAuthClientService.java index 38b2160d..35aa18ba 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IAuthClientService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IAuthClientService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IDataScopeService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IDataScopeService.java index da57ba9b..c1efaa68 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IDataScopeService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IDataScopeService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java index e38b0400..cdb80e30 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IDictService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IDictService.java index 7ba84a85..edf9c8e8 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IDictService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IDictService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IMenuService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IMenuService.java index decd7ab7..0e49dc94 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IMenuService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IMenuService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IParamService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IParamService.java index 14f012d3..694e548d 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IParamService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IParamService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IPostService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IPostService.java index d0f2d5b7..b628c8e2 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IPostService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IPostService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IRegionService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IRegionService.java index b1e5e578..75d7af46 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IRegionService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IRegionService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleMenuService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleMenuService.java index 8d44de34..7275e5b4 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleMenuService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleMenuService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleScopeService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleScopeService.java index aeee80ec..5cda1750 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleScopeService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleScopeService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleService.java index d061eaed..52f81cc2 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/ITenantService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/ITenantService.java index 1783df15..6fdc8a7e 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/ITenantService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/ITenantService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserOauthService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserOauthService.java index d9af28ac..791c2dc8 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserOauthService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserOauthService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserService.java index dc4fadc4..793e2d89 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserService.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/AuthClientServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/AuthClientServiceImpl.java index e75e5efb..2e260a4f 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/AuthClientServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/AuthClientServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DataScopeServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DataScopeServiceImpl.java index 5842be6c..abe2b1ef 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DataScopeServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DataScopeServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java index 0d4298b8..7606df04 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DictServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DictServiceImpl.java index ec42ec20..ba23ced3 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DictServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DictServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/MenuServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/MenuServiceImpl.java index 73d52346..1a9d6a88 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/MenuServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/MenuServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/ParamServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/ParamServiceImpl.java index 9cbd6239..d17f8b52 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/ParamServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/ParamServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/PostServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/PostServiceImpl.java index 6c57028d..decb61b9 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/PostServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/PostServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RegionServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RegionServiceImpl.java index 32f3b482..cef6a484 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RegionServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RegionServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleMenuServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleMenuServiceImpl.java index 2217cd2c..89dc2b0d 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleMenuServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleMenuServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleScopeServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleScopeServiceImpl.java index 2fb4ed37..af2b830b 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleScopeServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleScopeServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java index 907c92e7..85315fad 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java index 0751bd06..ac69c6a3 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,9 +18,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.AllArgsConstructor; -import org.springblade.core.boot.tenant.TenantId; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tenant.TenantId; import org.springblade.core.tool.api.R; import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.utils.DigestUtil; diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserOauthServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserOauthServiceImpl.java index 6f0b1663..ceb71d5b 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserOauthServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserOauthServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserServiceImpl.java index f93bf975..1f4f8ddf 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserServiceImpl.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/DataScopeWrapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/DataScopeWrapper.java index 9729da1d..80c0b513 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/DataScopeWrapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/DataScopeWrapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/DeptWrapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/DeptWrapper.java index bdd5ff54..d158fa64 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/DeptWrapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/DeptWrapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/DictWrapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/DictWrapper.java index ac50242c..6f8e8cb5 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/DictWrapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/DictWrapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/MenuWrapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/MenuWrapper.java index 2839c244..de3bc21d 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/MenuWrapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/MenuWrapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/PostWrapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/PostWrapper.java index 73fa2b89..ded28e82 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/PostWrapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/PostWrapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/RegionWrapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/RegionWrapper.java index 2bcdbb07..03db63f5 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/RegionWrapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/RegionWrapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/RoleWrapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/RoleWrapper.java index 3f2bd24c..ed48eadd 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/RoleWrapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/RoleWrapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/UserWrapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/UserWrapper.java index d6cdd306..088ac06f 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/UserWrapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/wrapper/UserWrapper.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/blade-service/pom.xml b/blade-service/pom.xml index cb46b849..b61cdffb 100644 --- a/blade-service/pom.xml +++ b/blade-service/pom.xml @@ -7,12 +7,11 @@ org.springblade SpringBlade - 4.2.0 + ${revision} blade-service ${project.artifactId} - 4.2.0 pom SpringBlade 微服务集合 @@ -27,12 +26,10 @@ org.springblade blade-common - ${blade.project.version} org.springblade blade-scope-api - ${blade.project.version} diff --git a/doc/nacos/blade.yaml b/doc/nacos/blade.yaml index dfac40df..a2f88a1b 100644 --- a/doc/nacos/blade.yaml +++ b/doc/nacos/blade.yaml @@ -73,13 +73,13 @@ knife4j: swagger: title: SpringBlade 接口文档系统 description: SpringBlade 接口文档系统 - version: 4.2.0 + version: 4.3.0 license: Powered By SpringBlade licenseUrl: https://bladex.cn terms-of-service-url: https://bladex.cn contact: name: smallchill - email: smallchill@163.com + email: bladejava@qq.com url: https://gitee.com/smallc #blade配置 diff --git a/pom.xml b/pom.xml index 2d555210..1dd4ac98 100644 --- a/pom.xml +++ b/pom.xml @@ -5,31 +5,21 @@ org.springblade SpringBlade - 4.2.0 + ${revision} pom - 4.2.0 - 4.2.0 + 4.3.0 17 3.11.0 + 1.3.0 - 4.5.0 - 1.6.0 1.6.2 3.3.4 4.1.2 3.1.3 - 6.1.12 - 3.2.9 - 3.2.3 - 2023.0.3 - - 2023.0.1.0 - 2.3.2 - 10.211.55.5 http://${docker.registry.url}:2375 @@ -47,40 +37,121 @@ + - org.springframework - spring-framework-bom - ${spring.version} + org.springblade + blade-core-bom + ${revision} pom import + - org.springframework.boot - spring-boot-dependencies - ${spring.boot.version} - pom - import + org.springblade + blade-common + ${revision} - org.springframework.cloud - spring-cloud-dependencies - ${spring.cloud.version} - pom - import + org.springblade + blade-dict-api + ${revision} - com.alibaba.cloud - spring-cloud-alibaba-dependencies - ${alibaba.cloud.version} - pom - import + org.springblade + blade-scope-api + ${revision} - com.github.xiaoymin - knife4j-dependencies - ${knife4j.version} - pom - import + org.springblade + blade-desk-api + ${revision} + + + org.springblade + blade-user-api + ${revision} + + + org.springblade + blade-system-api + ${revision} + + + org.springblade + blade-demo-api + ${revision} + + + + de.codecentric + spring-boot-admin-starter-server + 3.2.3 + + + de.codecentric + spring-boot-admin-starter-client + 3.2.3 + + + + com.github.whvcse + easy-captcha + ${captcha.version} + + + + com.alibaba + easyexcel + ${easyexcel.version} + + + org.apache.poi + poi + ${poi.version} + + + org.apache.poi + poi-ooxml + ${poi.version} + + + org.apache.poi + poi-ooxml-schemas + ${poi.version} + + + org.apache.poi + poi-scratchpad + ${poi.version} + + + org.apache.poi + ooxml-schemas + 1.4 + + + + com.baomidou + dynamic-datasource-spring-boot3-starter + 4.3.0 + + + + io.jsonwebtoken + jjwt-impl + 0.11.2 + + + io.jsonwebtoken + jjwt-jackson + 0.11.2 + + + + net.dreamlu + mica-auto + ${mica.auto.version} + provided @@ -111,7 +182,7 @@ org.springframework.boot spring-boot-maven-plugin - ${spring.boot.version} + 3.2.10 ${project.build.finalName} @@ -123,6 +194,7 @@ + org.apache.maven.plugins maven-antrun-plugin @@ -147,6 +219,39 @@ + + org.codehaus.mojo + flatten-maven-plugin + ${maven.flatten.version} + + true + oss + + remove + remove + remove + remove + remove + remove + + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + org.springframework.boot spring-boot-maven-plugin diff --git a/script/docker/.env b/script/docker/.env index 09d04fa3..616e36bd 100644 --- a/script/docker/.env +++ b/script/docker/.env @@ -1,2 +1,2 @@ REGISTER=192.168.0.157/blade -TAG=4.2.0 +TAG=4.3.0 diff --git a/script/kuboard/kuboard_spring-blade.yaml b/script/kuboard/kuboard_spring-blade.yaml index e12bd0f5..a96ae527 100644 --- a/script/kuboard/kuboard_spring-blade.yaml +++ b/script/kuboard/kuboard_spring-blade.yaml @@ -152,7 +152,7 @@ spec: spec: containers: - name: blade-admin - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-admin:4.2.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-admin:4.3.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -386,7 +386,7 @@ spec: spec: containers: - name: blade-auth - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-auth:4.2.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-auth:4.3.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -625,7 +625,7 @@ spec: spec: containers: - name: blade-desk - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-desk:4.2.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-desk:4.3.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -864,7 +864,7 @@ spec: spec: containers: - name: blade-develop - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-develop:4.2.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-develop:4.3.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1096,7 +1096,7 @@ spec: spec: containers: - name: blade-gateway - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-gateway:4.2.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-gateway:4.3.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1331,7 +1331,7 @@ spec: spec: containers: - name: blade-log - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-log:4.2.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-log:4.3.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1565,7 +1565,7 @@ spec: spec: containers: - name: blade-report - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-report:4.2.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-report:4.3.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1799,7 +1799,7 @@ spec: spec: containers: - name: blade-resource - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-resource:4.2.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-resource:4.3.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -2033,7 +2033,7 @@ spec: spec: containers: - name: blade-system - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-system:4.2.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-system:4.3.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -2262,7 +2262,7 @@ spec: spec: containers: - name: saber-web - image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-web:4.2.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-web:4.3.0' ports: - name: web containerPort: 80 @@ -2487,7 +2487,7 @@ spec: spec: containers: - name: blade-swagger - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-swagger:4.2.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-swagger:4.3.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -3515,7 +3515,7 @@ spec: spec: containers: - name: mysql - image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-db:v4.2.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-db:v4.3.0' ports: - name: mysql containerPort: 3306 diff --git a/script/service/rename.sh b/script/service/rename.sh index 4d74b9cc..a520be6c 100755 --- a/script/service/rename.sh +++ b/script/service/rename.sh @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright (c) 2018-2028, Chill Zhuang 庄骞 (bladejava@qq.com). +# Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). #

# Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. From cd04e833902ee4bacf21eb26e815b64df13e0bdf Mon Sep 17 00:00:00 2001 From: smallchill Date: Sat, 18 Jan 2025 18:19:14 +0800 Subject: [PATCH 22/25] =?UTF-8?q?:tada:=204.4.0.RELEASE=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E9=BB=91=E7=99=BD=E5=90=8D=E5=8D=95=E3=80=81=E8=84=B1?= =?UTF-8?q?=E6=95=8F=E5=B7=A5=E5=85=B7=E3=80=81BladeRedis=E6=96=B0?= =?UTF-8?q?=E7=89=88=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +- blade-auth/pom.xml | 4 ++ .../auth/controller/AuthController.java | 6 +- .../auth/granter/CaptchaTokenGranter.java | 5 +- .../core/log/controller/LogApiController.java | 23 +++----- .../log/controller/LogErrorController.java | 25 +++----- .../log/controller/LogUsualController.java | 23 +++----- .../springblade/core/log/pojo/LogApiVO.java | 44 ++++++++++++++ .../springblade/core/log/pojo/LogErrorVO.java | 54 +++++++++++++++++ .../springblade/core/log/pojo/LogUsualVO.java | 48 +++++++++++++++ .../core/log/pojo/package-info.java | 6 ++ .../core/log/wrapper/LogApiWrapper.java | 52 ++++++++++++++++ .../core/log/wrapper/LogErrorWrapper.java | 59 +++++++++++++++++++ .../core/log/wrapper/LogUsualWrapper.java | 56 ++++++++++++++++++ doc/nacos/blade.yaml | 10 ++-- pom.xml | 6 +- script/docker/.env | 2 +- script/kuboard/kuboard_spring-blade.yaml | 24 ++++---- 18 files changed, 376 insertions(+), 77 deletions(-) create mode 100644 blade-service/blade-log/src/main/java/org/springblade/core/log/pojo/LogApiVO.java create mode 100644 blade-service/blade-log/src/main/java/org/springblade/core/log/pojo/LogErrorVO.java create mode 100644 blade-service/blade-log/src/main/java/org/springblade/core/log/pojo/LogUsualVO.java create mode 100644 blade-service/blade-log/src/main/java/org/springblade/core/log/pojo/package-info.java create mode 100644 blade-service/blade-log/src/main/java/org/springblade/core/log/wrapper/LogApiWrapper.java create mode 100644 blade-service/blade-log/src/main/java/org/springblade/core/log/wrapper/LogErrorWrapper.java create mode 100644 blade-service/blade-log/src/main/java/org/springblade/core/log/wrapper/LogUsualWrapper.java diff --git a/README.md b/README.md index c52aa5df..0d316b62 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- Downloads + Downloads Build Status Build Status Coverage Status @@ -33,8 +33,8 @@ |----------------------|------------| | Java | 17+ | | NodeJS | 18+ | -| Spring | 6.1.14 | -| Spring Boot | 3.2.10 | +| Spring | 6.1.15 | +| Spring Boot | 3.2.12 | | Spring Cloud | 2023.0.3 | | Spring Cloud Alibaba | 2023.0.1.2 | | Nacos Alibaba | 2.3.2 | diff --git a/blade-auth/pom.xml b/blade-auth/pom.xml index 110fb317..0bffcb6a 100644 --- a/blade-auth/pom.xml +++ b/blade-auth/pom.xml @@ -37,6 +37,10 @@ org.springblade blade-starter-social + + org.springblade + blade-starter-redis + org.springblade blade-user-api diff --git a/blade-auth/src/main/java/org/springblade/auth/controller/AuthController.java b/blade-auth/src/main/java/org/springblade/auth/controller/AuthController.java index e932edf9..6c0a7aa6 100644 --- a/blade-auth/src/main/java/org/springblade/auth/controller/AuthController.java +++ b/blade-auth/src/main/java/org/springblade/auth/controller/AuthController.java @@ -25,11 +25,11 @@ import org.springblade.auth.granter.TokenParameter; import org.springblade.auth.utils.TokenUtil; import org.springblade.common.cache.CacheNames; +import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.secure.AuthInfo; import org.springblade.core.tool.api.R; import org.springblade.core.tool.support.Kv; import org.springblade.core.tool.utils.Func; -import org.springblade.core.tool.utils.RedisUtil; import org.springblade.core.tool.utils.WebUtil; import org.springblade.system.user.entity.UserInfo; import org.springframework.web.bind.annotation.GetMapping; @@ -50,7 +50,7 @@ @Tag(name = "用户授权认证", description = "授权接口") public class AuthController { - private RedisUtil redisUtil; + private BladeRedis bladeRedis; @PostMapping("token") @Operation(summary = "获取认证token", description = "传入租户ID:tenantId,账号:account,密码:password") @@ -87,7 +87,7 @@ public R captcha() { String verCode = specCaptcha.text().toLowerCase(); String key = UUID.randomUUID().toString(); // 存入redis并设置过期时间为30分钟 - redisUtil.set(CacheNames.CAPTCHA_KEY + key, verCode, 30L, TimeUnit.MINUTES); + bladeRedis.setEx(CacheNames.CAPTCHA_KEY + key, verCode, 30L, TimeUnit.MINUTES); // 将key和base64返回给前端 return R.data(Kv.init().set("key", key).set("image", specCaptcha.toBase64())); } diff --git a/blade-auth/src/main/java/org/springblade/auth/granter/CaptchaTokenGranter.java b/blade-auth/src/main/java/org/springblade/auth/granter/CaptchaTokenGranter.java index 3f77c258..4bcadba5 100644 --- a/blade-auth/src/main/java/org/springblade/auth/granter/CaptchaTokenGranter.java +++ b/blade-auth/src/main/java/org/springblade/auth/granter/CaptchaTokenGranter.java @@ -20,6 +20,7 @@ import org.springblade.auth.utils.TokenUtil; import org.springblade.common.cache.CacheNames; import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.secure.props.BladeAuthProperties; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.*; @@ -41,7 +42,7 @@ public class CaptchaTokenGranter implements ITokenGranter { public static final String GRANT_TYPE = "captcha"; private IUserClient userClient; - private RedisUtil redisUtil; + private BladeRedis bladeRedis; private BladeAuthProperties authProperties; @@ -52,7 +53,7 @@ public UserInfo grant(TokenParameter tokenParameter) { String key = request.getHeader(TokenUtil.CAPTCHA_HEADER_KEY); String code = request.getHeader(TokenUtil.CAPTCHA_HEADER_CODE); // 获取验证码 - String redisCode = String.valueOf(redisUtil.get(CacheNames.CAPTCHA_KEY + key)); + String redisCode = Func.toStr(bladeRedis.get(CacheNames.CAPTCHA_KEY + key)); // 判断验证码 if (code == null || !StringUtil.equalsIgnoreCase(redisCode, code)) { throw new ServiceException(TokenUtil.CAPTCHA_NOT_CORRECT); diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogApiController.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogApiController.java index 692dd3fe..e0a019c9 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogApiController.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogApiController.java @@ -17,29 +17,25 @@ import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.Parameter; import lombok.AllArgsConstructor; import org.springblade.core.log.model.LogApi; -import org.springblade.core.log.model.LogApiVo; +import org.springblade.core.log.pojo.LogApiVO; import org.springblade.core.log.service.ILogApiService; +import org.springblade.core.log.wrapper.LogApiWrapper; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.annotation.PreAuth; import org.springblade.core.tool.api.R; import org.springblade.core.tool.constant.RoleConstant; -import org.springblade.core.tool.utils.BeanUtil; -import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.StringPool; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** * 控制器 @@ -59,8 +55,10 @@ public class LogApiController { * 查询单条 */ @GetMapping("/detail") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) public R detail(LogApi log) { - return R.data(logService.getOne(Condition.getQueryWrapper(log))); + LogApi logApi = logService.getOne(Condition.getQueryWrapper(log)); + return R.data(LogApiWrapper.build().entity(logApi)); } /** @@ -68,18 +66,11 @@ public R detail(LogApi log) { */ @GetMapping("/list") @PreAuth(RoleConstant.HAS_ROLE_ADMIN) - public R> list(@Parameter(hidden = true) @RequestParam Map log, Query query) { + public R> list(@Parameter(hidden = true) @RequestParam Map log, Query query) { query.setAscs("create_time"); query.setDescs(StringPool.EMPTY); IPage pages = logService.page(Condition.getPage(query), Condition.getQueryWrapper(log, LogApi.class)); - List records = pages.getRecords().stream().map(logApi -> { - LogApiVo vo = BeanUtil.copyProperties(logApi, LogApiVo.class); - vo.setStrId(Func.toStr(logApi.getId())); - return vo; - }).collect(Collectors.toList()); - IPage pageVo = new Page<>(pages.getCurrent(), pages.getSize(), pages.getTotal()); - pageVo.setRecords(records); - return R.data(pageVo); + return R.data(LogApiWrapper.build().pageVO(pages)); } } diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogErrorController.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogErrorController.java index 255b312f..b35ffd9a 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogErrorController.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogErrorController.java @@ -17,29 +17,25 @@ import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.Parameter; import lombok.AllArgsConstructor; import org.springblade.core.log.model.LogError; -import org.springblade.core.log.model.LogErrorVo; +import org.springblade.core.log.pojo.LogErrorVO; import org.springblade.core.log.service.ILogErrorService; +import org.springblade.core.log.wrapper.LogErrorWrapper; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.annotation.PreAuth; import org.springblade.core.tool.api.R; import org.springblade.core.tool.constant.RoleConstant; -import org.springblade.core.tool.utils.BeanUtil; -import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.StringPool; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** * 控制器 @@ -59,8 +55,10 @@ public class LogErrorController { * 查询单条 */ @GetMapping("/detail") - public R detail(LogError logError) { - return R.data(errorLogService.getOne(Condition.getQueryWrapper(logError))); + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + public R detail(LogError log) { + LogError logError = errorLogService.getOne(Condition.getQueryWrapper(log)); + return R.data(LogErrorWrapper.build().entity(logError)); } /** @@ -68,18 +66,11 @@ public R detail(LogError logError) { */ @GetMapping("/list") @PreAuth(RoleConstant.HAS_ROLE_ADMIN) - public R> list(@Parameter(hidden = true) @RequestParam Map logError, Query query) { + public R> list(@Parameter(hidden = true) @RequestParam Map logError, Query query) { query.setAscs("create_time"); query.setDescs(StringPool.EMPTY); IPage pages = errorLogService.page(Condition.getPage(query), Condition.getQueryWrapper(logError, LogError.class)); - List records = pages.getRecords().stream().map(logApi -> { - LogErrorVo vo = BeanUtil.copyProperties(logApi, LogErrorVo.class); - vo.setStrId(Func.toStr(logApi.getId())); - return vo; - }).collect(Collectors.toList()); - IPage pageVo = new Page<>(pages.getCurrent(), pages.getSize(), pages.getTotal()); - pageVo.setRecords(records); - return R.data(pageVo); + return R.data(LogErrorWrapper.build().pageVO(pages)); } } diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogUsualController.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogUsualController.java index a628073d..a0548ad8 100644 --- a/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogUsualController.java +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/controller/LogUsualController.java @@ -17,29 +17,25 @@ import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.Parameter; import lombok.AllArgsConstructor; import org.springblade.core.log.model.LogUsual; -import org.springblade.core.log.model.LogUsualVo; +import org.springblade.core.log.pojo.LogUsualVO; import org.springblade.core.log.service.ILogUsualService; +import org.springblade.core.log.wrapper.LogUsualWrapper; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.annotation.PreAuth; import org.springblade.core.tool.api.R; import org.springblade.core.tool.constant.RoleConstant; -import org.springblade.core.tool.utils.BeanUtil; -import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.StringPool; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** * 控制器 @@ -59,8 +55,10 @@ public class LogUsualController { * 查询单条 */ @GetMapping("/detail") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) public R detail(LogUsual log) { - return R.data(logService.getOne(Condition.getQueryWrapper(log))); + LogUsual logUsual = logService.getOne(Condition.getQueryWrapper(log)); + return R.data(LogUsualWrapper.build().entity(logUsual)); } /** @@ -68,18 +66,11 @@ public R detail(LogUsual log) { */ @GetMapping("/list") @PreAuth(RoleConstant.HAS_ROLE_ADMIN) - public R> list(@Parameter(hidden = true) @RequestParam Map log, Query query) { + public R> list(@Parameter(hidden = true) @RequestParam Map log, Query query) { query.setAscs("create_time"); query.setDescs(StringPool.EMPTY); IPage pages = logService.page(Condition.getPage(query), Condition.getQueryWrapper(log, LogUsual.class)); - List records = pages.getRecords().stream().map(logApi -> { - LogUsualVo vo = BeanUtil.copyProperties(logApi, LogUsualVo.class); - vo.setStrId(Func.toStr(logApi.getId())); - return vo; - }).collect(Collectors.toList()); - IPage pageVo = new Page<>(pages.getCurrent(), pages.getSize(), pages.getTotal()); - pageVo.setRecords(records); - return R.data(pageVo); + return R.data(LogUsualWrapper.build().pageVO(pages)); } } diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/pojo/LogApiVO.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/pojo/LogApiVO.java new file mode 100644 index 00000000..91fa9fe6 --- /dev/null +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/pojo/LogApiVO.java @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.core.log.pojo; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.log.model.LogApi; + +import java.io.Serial; + +/** + * LogApiVO + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class LogApiVO extends LogApi { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 操作提交的数据 + */ + @JsonIgnore + private String params; + + +} diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/pojo/LogErrorVO.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/pojo/LogErrorVO.java new file mode 100644 index 00000000..39ae29ba --- /dev/null +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/pojo/LogErrorVO.java @@ -0,0 +1,54 @@ +/** + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.core.log.pojo; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.log.model.LogError; + +import java.io.Serial; + +/** + * LogErrorVO + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class LogErrorVO extends LogError { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 操作提交的数据 + */ + @JsonIgnore + private String params; + + /** + * 堆栈信息 + */ + @JsonIgnore + private String stackTrace; + + /** + * 异常消息 + */ + @JsonIgnore + private String message; +} diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/pojo/LogUsualVO.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/pojo/LogUsualVO.java new file mode 100644 index 00000000..5bc2b164 --- /dev/null +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/pojo/LogUsualVO.java @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.core.log.pojo; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.log.model.LogUsual; + +import java.io.Serial; + +/** + * LogUsualVO + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class LogUsualVO extends LogUsual { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 操作提交的数据 + */ + @JsonIgnore + private String params; + + /** + * 日志数据 + */ + @JsonIgnore + private String logData; +} diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/pojo/package-info.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/pojo/package-info.java new file mode 100644 index 00000000..1340f814 --- /dev/null +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/pojo/package-info.java @@ -0,0 +1,6 @@ +/** + * Created by Blade. + * + * @author zhuangqian + */ +package org.springblade.core.log.pojo; diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/wrapper/LogApiWrapper.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/wrapper/LogApiWrapper.java new file mode 100644 index 00000000..0259fd27 --- /dev/null +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/wrapper/LogApiWrapper.java @@ -0,0 +1,52 @@ +/** + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.core.log.wrapper; + +import org.springblade.core.log.model.LogApi; +import org.springblade.core.log.pojo.LogApiVO; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.sensitive.SensitiveUtil; +import org.springblade.core.tool.sensitive.SensitiveWord; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.StringUtil; + +import java.util.Objects; + +/** + * Log包装类,返回视图层所需的字段 + * + * @author Chill + */ +public class LogApiWrapper extends BaseEntityWrapper { + + public static LogApiWrapper build() { + return new LogApiWrapper(); + } + + @Override + public LogApiVO entityVO(LogApi logApi) { + return Objects.requireNonNull(BeanUtil.copyProperties(logApi, LogApiVO.class)); + } + + public LogApi entity(LogApi logApi) { + String params = logApi.getParams(); + if (StringUtil.isNotBlank(params)) { + logApi.setParams(SensitiveUtil.processWithWords(params, SensitiveWord.SECURE.getWords())); + } + return logApi; + } + +} diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/wrapper/LogErrorWrapper.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/wrapper/LogErrorWrapper.java new file mode 100644 index 00000000..c75485dc --- /dev/null +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/wrapper/LogErrorWrapper.java @@ -0,0 +1,59 @@ +/** + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.core.log.wrapper; + +import org.springblade.core.log.model.LogError; +import org.springblade.core.log.pojo.LogErrorVO; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.sensitive.SensitiveUtil; +import org.springblade.core.tool.sensitive.SensitiveWord; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.StringUtil; + +import java.util.Objects; + +/** + * Log包装类,返回视图层所需的字段 + * + * @author Chill + */ +public class LogErrorWrapper extends BaseEntityWrapper { + + public static LogErrorWrapper build() { + return new LogErrorWrapper(); + } + + @Override + public LogErrorVO entityVO(LogError logError) { + return Objects.requireNonNull(BeanUtil.copyProperties(logError, LogErrorVO.class)); + } + + public LogError entity(LogError logError) { + String params = logError.getParams(); + String stackTrace = logError.getStackTrace(); + String message = logError.getMessage(); + if (StringUtil.isNotBlank(params)) { + logError.setParams(SensitiveUtil.processWithWords(params, SensitiveWord.SECURE.getWords())); + } + if (StringUtil.isNotBlank(stackTrace)) { + logError.setStackTrace(SensitiveUtil.processWithWords(stackTrace, SensitiveWord.SECURE.getWords())); + } + if (StringUtil.isNotBlank(message)) { + logError.setMessage(SensitiveUtil.processWithWords(message, SensitiveWord.SECURE.getWords())); + } + return logError; + } +} diff --git a/blade-service/blade-log/src/main/java/org/springblade/core/log/wrapper/LogUsualWrapper.java b/blade-service/blade-log/src/main/java/org/springblade/core/log/wrapper/LogUsualWrapper.java new file mode 100644 index 00000000..aa5e7297 --- /dev/null +++ b/blade-service/blade-log/src/main/java/org/springblade/core/log/wrapper/LogUsualWrapper.java @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.core.log.wrapper; + +import org.springblade.core.log.model.LogUsual; +import org.springblade.core.log.pojo.LogUsualVO; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.sensitive.SensitiveUtil; +import org.springblade.core.tool.sensitive.SensitiveWord; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.StringUtil; + +import java.util.Objects; + +/** + * Log包装类,返回视图层所需的字段 + * + * @author Chill + */ +public class LogUsualWrapper extends BaseEntityWrapper { + + public static LogUsualWrapper build() { + return new LogUsualWrapper(); + } + + @Override + public LogUsualVO entityVO(LogUsual logUsual) { + return Objects.requireNonNull(BeanUtil.copyProperties(logUsual, LogUsualVO.class)); + } + + public LogUsual entity(LogUsual logUsual) { + String params = logUsual.getParams(); + String logData = logUsual.getLogData(); + if (StringUtil.isNotBlank(params)) { + logUsual.setParams(SensitiveUtil.processWithWords(params, SensitiveWord.SECURE.getWords())); + } + if (StringUtil.isNotBlank(logData)) { + logUsual.setLogData(SensitiveUtil.processWithWords(logData, SensitiveWord.SECURE.getWords())); + } + return logUsual; + } + +} diff --git a/doc/nacos/blade.yaml b/doc/nacos/blade.yaml index a2f88a1b..67a7376a 100644 --- a/doc/nacos/blade.yaml +++ b/doc/nacos/blade.yaml @@ -73,7 +73,7 @@ knife4j: swagger: title: SpringBlade 接口文档系统 description: SpringBlade 接口文档系统 - version: 4.3.0 + version: 4.4.0 license: Powered By SpringBlade licenseUrl: https://bladex.cn terms-of-service-url: https://bladex.cn @@ -86,14 +86,14 @@ swagger: blade: auth: #使用 @org.springblade.test.Sm2KeyGenerator 获取,用于国密sm2验签,需和前端保持一致 - public-key: 请配置sm2公钥 + public-key: ${BLADE_OAUTH2_PUBLIC_KEY} #使用 @org.springblade.test.Sm2KeyGenerator 获取,用于国密sm2解密,前端无需配置 - private-key: 请配置sm2私钥 + private-key: ${BLADE_OAUTH2_PRIVATE_KEY} token: #使用 @org.springblade.test.SignKeyGenerator 获取 - sign-key: 请配置32位签名 + sign-key: ${BLADE_TOKEN_SIGN_KEY} #使用 @org.springblade.test.SignKeyGenerator 获取 - aes-key: 请配置cryptoKey + aes-key: ${BLADE_TOKEN_CRYPTO_KEY} xss: enabled: true skip-url: diff --git a/pom.xml b/pom.xml index 1dd4ac98..80fefb8b 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,9 @@ pom - 4.3.0 + 4.4.0 + + 4.4.2 17 3.11.0 @@ -41,7 +43,7 @@ org.springblade blade-core-bom - ${revision} + ${blade.tool.version} pom import diff --git a/script/docker/.env b/script/docker/.env index 616e36bd..caee97d1 100644 --- a/script/docker/.env +++ b/script/docker/.env @@ -1,2 +1,2 @@ REGISTER=192.168.0.157/blade -TAG=4.3.0 +TAG=4.4.0 diff --git a/script/kuboard/kuboard_spring-blade.yaml b/script/kuboard/kuboard_spring-blade.yaml index a96ae527..bc978373 100644 --- a/script/kuboard/kuboard_spring-blade.yaml +++ b/script/kuboard/kuboard_spring-blade.yaml @@ -152,7 +152,7 @@ spec: spec: containers: - name: blade-admin - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-admin:4.3.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-admin:4.4.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -386,7 +386,7 @@ spec: spec: containers: - name: blade-auth - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-auth:4.3.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-auth:4.4.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -625,7 +625,7 @@ spec: spec: containers: - name: blade-desk - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-desk:4.3.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-desk:4.4.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -864,7 +864,7 @@ spec: spec: containers: - name: blade-develop - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-develop:4.3.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-develop:4.4.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1096,7 +1096,7 @@ spec: spec: containers: - name: blade-gateway - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-gateway:4.3.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-gateway:4.4.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1331,7 +1331,7 @@ spec: spec: containers: - name: blade-log - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-log:4.3.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-log:4.4.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1565,7 +1565,7 @@ spec: spec: containers: - name: blade-report - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-report:4.3.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-report:4.4.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1799,7 +1799,7 @@ spec: spec: containers: - name: blade-resource - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-resource:4.3.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-resource:4.4.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -2033,7 +2033,7 @@ spec: spec: containers: - name: blade-system - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-system:4.3.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-system:4.4.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -2262,7 +2262,7 @@ spec: spec: containers: - name: saber-web - image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-web:4.3.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-web:4.4.0' ports: - name: web containerPort: 80 @@ -2487,7 +2487,7 @@ spec: spec: containers: - name: blade-swagger - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-swagger:4.3.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-swagger:4.4.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -3515,7 +3515,7 @@ spec: spec: containers: - name: mysql - image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-db:v4.3.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-db:v4.4.0' ports: - name: mysql containerPort: 3306 From 524f13d15d9dea8ad45c67b4aadf1d894430bfef Mon Sep 17 00:00:00 2001 From: smallchill Date: Mon, 20 Jan 2025 17:06:34 +0800 Subject: [PATCH 23/25] =?UTF-8?q?:tada:=204.4.0.RELEASE=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E9=BB=91=E7=99=BD=E5=90=8D=E5=8D=95=E3=80=81=E8=84=B1?= =?UTF-8?q?=E6=95=8F=E5=B7=A5=E5=85=B7=E3=80=81BladeRedis=E6=96=B0?= =?UTF-8?q?=E7=89=88=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/RouterFunctionConfiguration.java | 45 +---- .../gateway/filter/GatewayFilter.java | 161 ++++++++++++++++++ .../gateway/props/RequestProperties.java | 58 +++++++ 3 files changed, 225 insertions(+), 39 deletions(-) create mode 100644 blade-gateway/src/main/java/org/springblade/gateway/filter/GatewayFilter.java create mode 100644 blade-gateway/src/main/java/org/springblade/gateway/props/RequestProperties.java diff --git a/blade-gateway/src/main/java/org/springblade/gateway/config/RouterFunctionConfiguration.java b/blade-gateway/src/main/java/org/springblade/gateway/config/RouterFunctionConfiguration.java index 700bf99c..e2ef767c 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/config/RouterFunctionConfiguration.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/config/RouterFunctionConfiguration.java @@ -18,20 +18,13 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springblade.gateway.filter.GatewayFilter; import org.springblade.gateway.props.AuthProperties; +import org.springblade.gateway.props.RequestProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.HttpStatus; -import org.springframework.http.server.reactive.ServerHttpRequest; -import org.springframework.http.server.reactive.ServerHttpResponse; -import org.springframework.web.cors.reactive.CorsUtils; -import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebFilter; -import org.springframework.web.server.WebFilterChain; -import reactor.core.publisher.Mono; /** * 路由配置信息 @@ -41,41 +34,15 @@ @Slf4j @Configuration(proxyBeanMethods = false) @AllArgsConstructor -@EnableConfigurationProperties({AuthProperties.class}) +@EnableConfigurationProperties({AuthProperties.class, RequestProperties.class}) public class RouterFunctionConfiguration { /** - * 这里为支持的请求头,如果有自定义的header字段请自己添加 - */ - private static final String ALLOWED_HEADERS = "X-Requested-With, Tenant-Id, Blade-Auth, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, username, client, knfie4j-gateway-request, knife4j-gateway-code, request-origion"; - private static final String ALLOWED_METHODS = "GET,POST,PUT,DELETE,OPTIONS,HEAD"; - private static final String ALLOWED_ORIGIN = "*"; - private static final String ALLOWED_EXPOSE = "*"; - private static final String MAX_AGE = "18000L"; - - /** - * 跨域配置 + * 全局配置 */ @Bean - public WebFilter corsFilter() { - return (ServerWebExchange ctx, WebFilterChain chain) -> { - ServerHttpRequest request = ctx.getRequest(); - if (CorsUtils.isCorsRequest(request)) { - ServerHttpResponse response = ctx.getResponse(); - HttpHeaders headers = response.getHeaders(); - headers.add("Access-Control-Allow-Headers", ALLOWED_HEADERS); - headers.add("Access-Control-Allow-Methods", ALLOWED_METHODS); - headers.add("Access-Control-Allow-Origin", ALLOWED_ORIGIN); - headers.add("Access-Control-Expose-Headers", ALLOWED_EXPOSE); - headers.add("Access-Control-Max-Age", MAX_AGE); - headers.add("Access-Control-Allow-Credentials", "true"); - if (request.getMethod() == HttpMethod.OPTIONS) { - response.setStatusCode(HttpStatus.OK); - return Mono.empty(); - } - } - return chain.filter(ctx); - }; + public WebFilter gatewayFilter(RequestProperties requestProperties) { + return new GatewayFilter(requestProperties); } } diff --git a/blade-gateway/src/main/java/org/springblade/gateway/filter/GatewayFilter.java b/blade-gateway/src/main/java/org/springblade/gateway/filter/GatewayFilter.java new file mode 100644 index 00000000..3867f9ab --- /dev/null +++ b/blade-gateway/src/main/java/org/springblade/gateway/filter/GatewayFilter.java @@ -0,0 +1,161 @@ +/** + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.gateway.filter; + +import lombok.RequiredArgsConstructor; +import org.springblade.gateway.props.RequestProperties; +import org.springframework.core.Ordered; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.http.server.reactive.ServerHttpResponse; +import org.springframework.lang.NonNull; +import org.springframework.util.AntPathMatcher; +import org.springframework.util.PatternMatchUtils; +import org.springframework.web.cors.reactive.CorsUtils; +import org.springframework.web.server.ServerWebExchange; +import org.springframework.web.server.WebFilter; +import org.springframework.web.server.WebFilterChain; +import reactor.core.publisher.Mono; + +import java.util.List; +import java.util.Objects; + +/** + * 全局拦截器 + * + * @author Chill + */ +@RequiredArgsConstructor +public class GatewayFilter implements WebFilter, Ordered { + + /** + * 请求配置 + */ + private final RequestProperties requestProperties; + /** + * 路径匹配 + */ + private final AntPathMatcher antPathMatcher = new AntPathMatcher(); + + /** + * 默认拦截地址 + */ + private final List defaultBlockUrl = List.of("/**/actuator/**", "/health/**"); + /** + * 默认白名单 + */ + private final List defaultWhiteList = List.of("127.0.0.1", "172.30.*.*", "192.168.*.*", "10.*.*.*", "0:0:0:0:0:0:0:1"); + /** + * 默认提示信息 + */ + private final static String DEFAULT_MESSAGE = "当前请求被拒绝,请联系管理员!"; + + /** + * 这里为支持的请求头,如果有自定义的header字段请自己添加 + */ + private static final String ALLOWED_HEADERS = "X-Requested-With, Tenant-Id, Blade-Auth, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, username, client, knfie4j-gateway-request, knife4j-gateway-code, request-origion"; + private static final String ALLOWED_METHODS = "GET,POST,PUT,DELETE,OPTIONS,HEAD"; + private static final String ALLOWED_ORIGIN = "*"; + private static final String ALLOWED_EXPOSE = "*"; + private static final String MAX_AGE = "18000L"; + + + @NonNull + @Override + public Mono filter(@NonNull ServerWebExchange exchange, @NonNull WebFilterChain chain) { + ServerHttpRequest request = exchange.getRequest(); + // 处理跨域请求 + if (CorsUtils.isCorsRequest(request)) { + ServerHttpResponse response = exchange.getResponse(); + HttpHeaders headers = response.getHeaders(); + headers.add("Access-Control-Allow-Headers", ALLOWED_HEADERS); + headers.add("Access-Control-Allow-Methods", ALLOWED_METHODS); + headers.add("Access-Control-Allow-Origin", ALLOWED_ORIGIN); + headers.add("Access-Control-Expose-Headers", ALLOWED_EXPOSE); + headers.add("Access-Control-Max-Age", MAX_AGE); + headers.add("Access-Control-Allow-Credentials", "true"); + if (request.getMethod() == HttpMethod.OPTIONS) { + response.setStatusCode(HttpStatus.OK); + return Mono.empty(); + } + } + // 处理黑白名单与拦截请求 + if (requestProperties.getEnabled()) { + String path = request.getPath().value(); + String ip = Objects.requireNonNull(request.getRemoteAddress()).getHostString(); + if (isRequestBlock(path, ip)) { + throw new RuntimeException(DEFAULT_MESSAGE); + } + } + return chain.filter(exchange); + } + + + /** + * 是否白名单 + * + * @param ip ip地址 + * @return boolean + */ + private boolean isWhiteList(String ip) { + List whiteList = requestProperties.getWhiteList(); + String[] defaultWhiteIps = defaultWhiteList.toArray(new String[0]); + String[] whiteIps = whiteList.toArray(new String[0]); + return PatternMatchUtils.simpleMatch(defaultWhiteIps, ip) || PatternMatchUtils.simpleMatch(whiteIps, ip); + } + + /** + * 是否黑名单 + * + * @param ip ip地址 + * @return boolean + */ + private boolean isBlackList(String ip) { + List blackList = requestProperties.getBlackList(); + String[] blackIps = blackList.toArray(new String[0]); + return PatternMatchUtils.simpleMatch(blackIps, ip); + } + + /** + * 是否禁用请求访问 + * + * @param path 请求路径 + * @return boolean + */ + private boolean isRequestBlock(String path) { + List blockUrl = requestProperties.getBlockUrl(); + return defaultBlockUrl.stream().anyMatch(pattern -> antPathMatcher.match(pattern, path)) || + blockUrl.stream().anyMatch(pattern -> antPathMatcher.match(pattern, path)); + } + + /** + * 是否拦截请求 + * + * @param path 请求路径 + * @param ip ip地址 + * @return boolean + */ + private boolean isRequestBlock(String path, String ip) { + return (isRequestBlock(path) && !isWhiteList(ip)) || isBlackList(ip); + } + + @Override + public int getOrder() { + return Ordered.HIGHEST_PRECEDENCE; + } +} diff --git a/blade-gateway/src/main/java/org/springblade/gateway/props/RequestProperties.java b/blade-gateway/src/main/java/org/springblade/gateway/props/RequestProperties.java new file mode 100644 index 00000000..3250e008 --- /dev/null +++ b/blade-gateway/src/main/java/org/springblade/gateway/props/RequestProperties.java @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springblade.gateway.props; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +import java.util.ArrayList; +import java.util.List; + +/** + * Request配置类 + * + * @author Chill + */ +@Data +@ConfigurationProperties("blade.request") +public class RequestProperties { + + /** + * 开启自定义request + */ + private Boolean enabled = true; + + /** + * 放行url + */ + private List skipUrl = new ArrayList<>(); + + /** + * 禁用url + */ + private List blockUrl = new ArrayList<>(); + + /** + * 白名单,支持通配符,例如:10.20.0.8*、10.20.0.* + */ + private List whiteList = new ArrayList<>(); + + /** + * 黑名单,支持通配符,例如:10.20.0.8*、10.20.0.* + */ + private List blackList = new ArrayList<>(); + +} From fb91e2627f412331214863455f738d0e58639925 Mon Sep 17 00:00:00 2001 From: smallchill Date: Tue, 21 Jan 2025 11:01:58 +0800 Subject: [PATCH 24/25] =?UTF-8?q?:tada:=20=E5=A2=9E=E5=8A=A0=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E9=80=82=E9=85=8D=E6=96=B0=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blade-auth/pom.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/blade-auth/pom.xml b/blade-auth/pom.xml index 0bffcb6a..411d9d0b 100644 --- a/blade-auth/pom.xml +++ b/blade-auth/pom.xml @@ -49,6 +49,10 @@ org.springblade blade-starter-swagger + + com.baomidou + mybatis-plus-spring-boot-autoconfigure + com.github.whvcse From bcd93a7a4e3de85e197371731ca9f3dc4e75936c Mon Sep 17 00:00:00 2001 From: smallchill Date: Fri, 14 Mar 2025 10:21:31 +0800 Subject: [PATCH 25/25] =?UTF-8?q?:tada:=204.5.0.RELEASE=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E8=B4=A6=E5=8F=B7=E9=94=81=E5=AE=9A=E4=B8=8E=E8=A7=A3?= =?UTF-8?q?=E9=94=81=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=96=B0=E5=A2=9E=E8=85=BE?= =?UTF-8?q?=E8=AE=AF=E4=BA=91=E5=AF=B9=E8=B1=A1=E5=AD=98=E5=82=A8=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 23 +++++++------- .../auth/granter/CaptchaTokenGranter.java | 23 +++++++++++++- .../auth/granter/PasswordTokenGranter.java | 26 ++++++++++++++++ .../org/springblade/auth/utils/TokenUtil.java | 1 + .../springblade/common/cache/CacheNames.java | 22 ++++++++++++- .../system/controller/UserController.java | 31 ++++++++++++++++--- doc/nacos/blade.yaml | 4 +-- pom.xml | 4 +-- script/docker/.env | 2 +- script/kuboard/kuboard_spring-blade.yaml | 24 +++++++------- 10 files changed, 125 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 0d316b62..f64f14a0 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- Downloads + Downloads Build Status Build Status Coverage Status @@ -81,19 +81,20 @@ SpringBlade ## 官方产品 -| 简介 | 演示地址 | -|---------------|------------------------------------------------------| -| BladeX企业级开发平台 | [https://saber3.bladex.cn](https://saber3.bladex.cn) | -| BladeX可视化数据大屏 | [https://data.bladex.cn](https://data.bladex.cn) | -| BladeX物联网开发平台 | [https://iot.bladex.cn](https://iot.bladex.cn) | +| 简介 | 演示地址 | +|-----------------|------------------------------------------------------| +| BladeX企业级开发平台 | [https://saber3.bladex.cn](https://saber3.bladex.cn) | +| BladeX可视化数据大屏 | [https://data.bladex.cn](https://data.bladex.cn) | +| BladeX物联网开发平台 | [https://iot.bladex.cn](https://iot.bladex.cn) | +| BladeXAI大模型平台 | [https://aigc.bladex.cn/](https://aigc.bladex.cn/) | ## 前端项目 -| 简介 | 地址 | -|--------------------|----------------------------------------------------------------------------------------------------| -| 前端框架Sword(基于React) | [https://gitee.com/smallc/Sword](https://gitee.com/smallc/Sword) | -| 前端框架Saber(基于Vue2) | [https://gitee.com/smallc/Saber](https://gitee.com/smallc/Saber) | -| 前端框架Saber3(基于Vue3) | [https://gitee.com/smallc/Saber3](https://gitee.com/smallc/Saber/tree/3.x/) | +| 简介 | 地址 | +|--------------------|------------------------------------------------------------------------------| +| 前端框架Saber3(基于Vue3) | [https://gitee.com/smallc/Saber3](https://gitee.com/smallc/Saber) | +| 前端框架Saber(基于Vue2) | [https://gitee.com/smallc/Saber2](https://gitee.com/smallc/Saber/tree/vue2/) | +| 前端框架Sword(基于React) | [https://gitee.com/smallc/Sword](https://gitee.com/smallc/Sword) | ## 后端项目 | 简介 | 地址 | diff --git a/blade-auth/src/main/java/org/springblade/auth/granter/CaptchaTokenGranter.java b/blade-auth/src/main/java/org/springblade/auth/granter/CaptchaTokenGranter.java index 4bcadba5..a0781970 100644 --- a/blade-auth/src/main/java/org/springblade/auth/granter/CaptchaTokenGranter.java +++ b/blade-auth/src/main/java/org/springblade/auth/granter/CaptchaTokenGranter.java @@ -16,6 +16,7 @@ package org.springblade.auth.granter; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springblade.auth.enums.BladeUserEnum; import org.springblade.auth.utils.TokenUtil; import org.springblade.common.cache.CacheNames; @@ -30,16 +31,20 @@ import jakarta.servlet.http.HttpServletRequest; +import java.time.Duration; + /** * 验证码TokenGranter * * @author Chill */ +@Slf4j @Component @AllArgsConstructor public class CaptchaTokenGranter implements ITokenGranter { public static final String GRANT_TYPE = "captcha"; + public static final Integer FAIL_COUNT = 5; private IUserClient userClient; private BladeRedis bladeRedis; @@ -53,7 +58,7 @@ public UserInfo grant(TokenParameter tokenParameter) { String key = request.getHeader(TokenUtil.CAPTCHA_HEADER_KEY); String code = request.getHeader(TokenUtil.CAPTCHA_HEADER_CODE); // 获取验证码 - String redisCode = Func.toStr(bladeRedis.get(CacheNames.CAPTCHA_KEY + key)); + String redisCode = Func.toStr(bladeRedis.getAndDel(CacheNames.CAPTCHA_KEY + key)); // 判断验证码 if (code == null || !StringUtil.equalsIgnoreCase(redisCode, code)) { throw new ServiceException(TokenUtil.CAPTCHA_NOT_CORRECT); @@ -62,6 +67,14 @@ public UserInfo grant(TokenParameter tokenParameter) { String tenantId = tokenParameter.getArgs().getStr("tenantId"); String account = tokenParameter.getArgs().getStr("account"); String password = tokenParameter.getArgs().getStr("password"); + + // 判断登录是否锁定 + int cnt = Func.toInt(bladeRedis.get(CacheNames.tenantKey(tenantId, CacheNames.USER_FAIL_KEY, account)), 0); + if (cnt >= FAIL_COUNT) { + log.error("用户登录失败次数过多, 账号:{}, IP:{}", account, WebUtil.getIP()); + throw new ServiceException(TokenUtil.USER_HAS_TOO_MANY_FAILS); + } + UserInfo userInfo = null; if (Func.isNoneBlank(account, password)) { // 获取用户类型 @@ -80,6 +93,14 @@ public UserInfo grant(TokenParameter tokenParameter) { } userInfo = result.isSuccess() ? result.getData() : null; } + + if (userInfo == null || userInfo.getUser() == null) { + // 增加错误锁定次数 + bladeRedis.setEx(CacheNames.tenantKey(tenantId, CacheNames.USER_FAIL_KEY, account), cnt + 1, Duration.ofMinutes(30)); + } else { + // 成功则清除登录缓存 + bladeRedis.del(CacheNames.tenantKey(tenantId, CacheNames.USER_FAIL_KEY, account)); + } return userInfo; } diff --git a/blade-auth/src/main/java/org/springblade/auth/granter/PasswordTokenGranter.java b/blade-auth/src/main/java/org/springblade/auth/granter/PasswordTokenGranter.java index 1db1498f..201d8094 100644 --- a/blade-auth/src/main/java/org/springblade/auth/granter/PasswordTokenGranter.java +++ b/blade-auth/src/main/java/org/springblade/auth/granter/PasswordTokenGranter.java @@ -16,28 +16,38 @@ package org.springblade.auth.granter; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springblade.auth.enums.BladeUserEnum; import org.springblade.auth.utils.TokenUtil; +import org.springblade.common.cache.CacheNames; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.secure.props.BladeAuthProperties; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DigestUtil; import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.WebUtil; import org.springblade.system.user.entity.UserInfo; import org.springblade.system.user.feign.IUserClient; import org.springframework.stereotype.Component; +import java.time.Duration; + /** * PasswordTokenGranter * * @author Chill */ +@Slf4j @Component @AllArgsConstructor public class PasswordTokenGranter implements ITokenGranter { public static final String GRANT_TYPE = "password"; + public static final Integer FAIL_COUNT = 5; private IUserClient userClient; + private BladeRedis bladeRedis; private BladeAuthProperties authProperties; @@ -46,6 +56,14 @@ public UserInfo grant(TokenParameter tokenParameter) { String tenantId = tokenParameter.getArgs().getStr("tenantId"); String account = tokenParameter.getArgs().getStr("account"); String password = tokenParameter.getArgs().getStr("password"); + + // 判断登录是否锁定 + int cnt = Func.toInt(bladeRedis.get(CacheNames.tenantKey(tenantId, CacheNames.USER_FAIL_KEY, account)), 0); + if (cnt >= FAIL_COUNT) { + log.error("用户登录失败次数过多, 账号:{}, IP:{}", account, WebUtil.getIP()); + throw new ServiceException(TokenUtil.USER_HAS_TOO_MANY_FAILS); + } + UserInfo userInfo = null; if (Func.isNoneBlank(account, password)) { // 获取用户类型 @@ -64,6 +82,14 @@ public UserInfo grant(TokenParameter tokenParameter) { } userInfo = result.isSuccess() ? result.getData() : null; } + + if (userInfo == null || userInfo.getUser() == null) { + // 增加错误锁定次数 + bladeRedis.setEx(CacheNames.tenantKey(tenantId, CacheNames.USER_FAIL_KEY, account), cnt + 1, Duration.ofMinutes(30)); + } else { + // 成功则清除登录缓存 + bladeRedis.del(CacheNames.tenantKey(tenantId, CacheNames.USER_FAIL_KEY, account)); + } return userInfo; } diff --git a/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java b/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java index e8d71f9c..daf67948 100644 --- a/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java +++ b/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java @@ -47,6 +47,7 @@ public class TokenUtil { public final static String HEADER_KEY = "Authorization"; public final static String HEADER_PREFIX = "Basic "; public final static String ENCRYPT_PREFIX = "04"; + public final static String USER_HAS_TOO_MANY_FAILS = "用户登录失败次数过多"; public final static String DEFAULT_AVATAR = "https://bladex.cn/images/logo.png"; /** diff --git a/blade-common/src/main/java/org/springblade/common/cache/CacheNames.java b/blade-common/src/main/java/org/springblade/common/cache/CacheNames.java index 1d72d076..36408961 100644 --- a/blade-common/src/main/java/org/springblade/common/cache/CacheNames.java +++ b/blade-common/src/main/java/org/springblade/common/cache/CacheNames.java @@ -27,6 +27,26 @@ public interface CacheNames { String DICT_VALUE = "dict:value"; String DICT_LIST = "dict:list"; - String CAPTCHA_KEY = "blade:auth::captcha:"; + /** + * 验证码key + */ + String CAPTCHA_KEY = "blade:auth::blade:captcha:"; + + /** + * 登录失败key + */ + String USER_FAIL_KEY = "blade:user::blade:fail:"; + + /** + * 返回租户格式的key + * + * @param tenantId 租户编号 + * @param cacheKey 缓存key + * @param cacheKeyValue 缓存key值 + * @return tenantKey + */ + static String tenantKey(String tenantId, String cacheKey, String cacheKeyValue) { + return tenantId.concat(":").concat(cacheKey).concat(cacheKeyValue); + } } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java index b2969fa4..dc5c35e7 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java @@ -20,6 +20,7 @@ import com.alibaba.excel.read.builder.ExcelReaderBuilder; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -30,8 +31,10 @@ import jakarta.validation.Valid; import lombok.AllArgsConstructor; import lombok.SneakyThrows; +import org.springblade.common.cache.CacheNames; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; +import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.annotation.PreAuth; import org.springblade.core.secure.utils.SecureUtil; @@ -39,6 +42,7 @@ import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.constant.RoleConstant; import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; import org.springblade.system.user.entity.User; import org.springblade.system.excel.UserExcel; import org.springblade.system.excel.UserImportListener; @@ -69,6 +73,7 @@ public class UserController { private IUserService userService; + private BladeRedis bladeRedis; /** * 查询单条 @@ -85,7 +90,7 @@ public R detail(User user) { /** * 查询单条 */ - @ApiOperationSupport(order =2) + @ApiOperationSupport(order = 2) @Operation(summary = "查看详情", description = "传入id") @GetMapping("/info") public R info(BladeUser user) { @@ -212,7 +217,7 @@ public R> userList(User user) { @Operation(summary = "导入用户", description = "传入excel") public R importUser(MultipartFile file, Integer isCovered) { String filename = file.getOriginalFilename(); - if (StringUtils.isEmpty(filename)) { + if (StringUtil.isBlank(filename)) { throw new RuntimeException("请上传文件!"); } if ((!StringUtils.endsWithIgnoreCase(filename, ".xls") && !StringUtils.endsWithIgnoreCase(filename, ".xlsx"))) { @@ -240,14 +245,14 @@ public R importUser(MultipartFile file, Integer isCovered) { @PreAuth(RoleConstant.HAS_ROLE_ADMIN) public void exportUser(@Parameter(hidden = true) @RequestParam Map user, BladeUser bladeUser, HttpServletResponse response) { QueryWrapper queryWrapper = Condition.getQueryWrapper(user, User.class); - if (!SecureUtil.isAdministrator()){ + if (!SecureUtil.isAdministrator()) { queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId()); } queryWrapper.lambda().eq(User::getIsDeleted, BladeConstant.DB_NOT_DELETED); List list = userService.exportUser(queryWrapper); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding(StandardCharsets.UTF_8.name()); - String fileName = URLEncoder.encode("用户数据导出", StandardCharsets.UTF_8.name()); + String fileName = URLEncoder.encode("用户数据导出", StandardCharsets.UTF_8); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); EasyExcel.write(response.getOutputStream(), UserExcel.class).sheet("用户数据表").doWrite(list); } @@ -263,7 +268,7 @@ public void exportUser(HttpServletResponse response) { List list = new ArrayList<>(); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding(StandardCharsets.UTF_8.name()); - String fileName = URLEncoder.encode("用户数据模板", StandardCharsets.UTF_8.name()); + String fileName = URLEncoder.encode("用户数据模板", StandardCharsets.UTF_8); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); EasyExcel.write(response.getOutputStream(), UserExcel.class).sheet("用户数据表").doWrite(list); } @@ -279,4 +284,20 @@ public R registerGuest(User user, Long oauthId) { } + /** + * 用户解锁 + */ + @PostMapping("/unlock") + @ApiOperationSupport(order = 16) + @Operation(summary = "账号解锁") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + public R unlock(String userIds) { + if (StringUtil.isBlank(userIds)) { + return R.fail("请至少选择一个用户"); + } + List userList = userService.list(Wrappers.lambdaQuery().in(User::getId, Func.toLongList(userIds))); + userList.forEach(user -> bladeRedis.del(CacheNames.tenantKey(user.getTenantId(), CacheNames.USER_FAIL_KEY, user.getAccount()))); + return R.success("操作成功"); + } + } diff --git a/doc/nacos/blade.yaml b/doc/nacos/blade.yaml index 67a7376a..0f78c0c1 100644 --- a/doc/nacos/blade.yaml +++ b/doc/nacos/blade.yaml @@ -67,13 +67,13 @@ knife4j: language: zh_cn enableFooter: false enableFooterCustom: true - footerCustomContent: Copyright © 2024 SpringBlade All Rights Reserved + footerCustomContent: Copyright © 2025 SpringBlade All Rights Reserved #swagger配置信息 swagger: title: SpringBlade 接口文档系统 description: SpringBlade 接口文档系统 - version: 4.4.0 + version: 4.5.0 license: Powered By SpringBlade licenseUrl: https://bladex.cn terms-of-service-url: https://bladex.cn diff --git a/pom.xml b/pom.xml index 80fefb8b..4514578c 100644 --- a/pom.xml +++ b/pom.xml @@ -9,9 +9,9 @@ pom - 4.4.0 + 4.5.0 - 4.4.2 + 4.5.0 17 3.11.0 diff --git a/script/docker/.env b/script/docker/.env index caee97d1..c3bd0472 100644 --- a/script/docker/.env +++ b/script/docker/.env @@ -1,2 +1,2 @@ REGISTER=192.168.0.157/blade -TAG=4.4.0 +TAG=4.5.0 diff --git a/script/kuboard/kuboard_spring-blade.yaml b/script/kuboard/kuboard_spring-blade.yaml index bc978373..557a6c34 100644 --- a/script/kuboard/kuboard_spring-blade.yaml +++ b/script/kuboard/kuboard_spring-blade.yaml @@ -152,7 +152,7 @@ spec: spec: containers: - name: blade-admin - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-admin:4.4.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-admin:4.5.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -386,7 +386,7 @@ spec: spec: containers: - name: blade-auth - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-auth:4.4.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-auth:4.5.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -625,7 +625,7 @@ spec: spec: containers: - name: blade-desk - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-desk:4.4.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-desk:4.5.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -864,7 +864,7 @@ spec: spec: containers: - name: blade-develop - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-develop:4.4.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-develop:4.5.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1096,7 +1096,7 @@ spec: spec: containers: - name: blade-gateway - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-gateway:4.4.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-gateway:4.5.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1331,7 +1331,7 @@ spec: spec: containers: - name: blade-log - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-log:4.4.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-log:4.5.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1565,7 +1565,7 @@ spec: spec: containers: - name: blade-report - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-report:4.4.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-report:4.5.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -1799,7 +1799,7 @@ spec: spec: containers: - name: blade-resource - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-resource:4.4.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-resource:4.5.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -2033,7 +2033,7 @@ spec: spec: containers: - name: blade-system - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-system:4.4.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-system:4.5.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -2262,7 +2262,7 @@ spec: spec: containers: - name: saber-web - image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-web:4.4.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-web:4.5.0' ports: - name: web containerPort: 80 @@ -2487,7 +2487,7 @@ spec: spec: containers: - name: blade-swagger - image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-swagger:4.4.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/blade-swagger:4.5.0' args: - '--spring.profiles.active=${PROFILE}' - '--spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR}' @@ -3515,7 +3515,7 @@ spec: spec: containers: - name: mysql - image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-db:v4.4.0' + image: 'swr.cn-east-2.myhuaweicloud.com/blade/saber-db:v4.5.0' ports: - name: mysql containerPort: 3306

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%0D1GP>bPdlR{U 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