From 23d2353b0799734a06b7d64800873ddb7d7cbe4b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=94=B0=E8=89=BA=E9=B9=8F?= <18382071280@163.com>
Date: Wed, 23 Aug 2023 16:33:15 +0800
Subject: [PATCH] =?UTF-8?q?fix(*)=20=E9=A6=96=E6=AC=A1=E6=8F=90=E4=BA=A4Co?=
=?UTF-8?q?mmon=E9=A1=B9=E7=9B=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Common/pom.xml | 170 +
.../annotation/DataExportAnnotation.java | 11 +
.../cloud/common/api/ALiYunSMSEnum.java | 35 +
.../crtech/cloud/common/api/CommonResult.java | 123 +
.../crtech/cloud/common/api/IErrorCode.java | 10 +
.../crtech/cloud/common/api/ResultCode.java | 27 +
.../cloud/common/constant/AuthConstant.java | 9 +
.../common/constant/MessageConstant.java | 17 +
.../cloud/common/constant/RedisConstant.java | 16 +
.../cn/crtech/cloud/common/dto/Result.java | 86 +
.../cn/crtech/cloud/common/dto/UserDto.java | 76 +
.../crtech/cloud/common/plugins/Logger.java | 88 +
.../common/plugins/SendMessageService.java | 88 +
.../cn/crtech/cloud/common/pojo/Tree.java | 27 +
.../crtech/cloud/common/utils/CommonFun.java | 36 +
.../cloud/common/utils/EncryptUtil.java | 120 +
.../cloud/common/utils/IDGenerator.java | 12 +
.../cloud/common/utils/IdCardInfoUtil.java | 7140 +++++++++++++++++
.../cloud/common/utils/OrganizeTree.java | 59 +
.../cloud/common/utils/SendSMSUtils.java | 112 +
.../cloud/common/utils/ThumbnailatorUtil.java | 409 +
21 files changed, 8671 insertions(+)
create mode 100644 Common/pom.xml
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/annotation/DataExportAnnotation.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/api/ALiYunSMSEnum.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/api/CommonResult.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/api/IErrorCode.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/api/ResultCode.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/constant/AuthConstant.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/constant/MessageConstant.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/constant/RedisConstant.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/dto/Result.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/dto/UserDto.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/plugins/Logger.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/plugins/SendMessageService.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/pojo/Tree.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/utils/CommonFun.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/utils/EncryptUtil.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/utils/IDGenerator.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/utils/IdCardInfoUtil.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/utils/OrganizeTree.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/utils/SendSMSUtils.java
create mode 100644 Common/src/main/java/cn/crtech/cloud/common/utils/ThumbnailatorUtil.java
diff --git a/Common/pom.xml b/Common/pom.xml
new file mode 100644
index 0000000..a4ff118
--- /dev/null
+++ b/Common/pom.xml
@@ -0,0 +1,170 @@
+
+
+ 4.0.0
+
+ cn.crtech.cloud.common
+ Common
+ 1.0.1
+
+
+
+ cn.crtech.cloud.dependencies
+ Dependencies
+ 1.0.1
+
+
+
+
+
+ 8
+ 8
+ 1.8
+ UTF-8
+ UTF-8
+
+ 1.2.83
+ 0.4.9
+ 1.2.8
+ 8.0.27
+ 2.8.8
+ 1.9.13
+ 1.5.2.Final
+ 4.0.3
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-bootstrap
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-context
+
+
+
+
+ tk.mybatis
+ mapper-spring-boot-starter
+
+
+
+
+ org.mybatis
+ mybatis
+
+
+
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+
+
+
+
+ cn.hutool
+ hutool-all
+
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+ org.slf4j
+ slf4j-api
+
+
+ org.springframework
+ spring-tx
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+ org.springframework
+ spring-beans
+
+
+ org.springframework
+ spring-core
+
+
+ io.lettuce
+ lettuce-core
+
+
+
+
+
+
+ com.alibaba
+ druid
+ ${druid.version}
+
+
+
+
+ net.coobird
+ thumbnailator
+ ${thumbnailator.version}
+
+
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.version}
+
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ ${jackson.databind.version}
+
+
+ org.codehaus.jackson
+ jackson-mapper-asl
+ ${jackson.mapper.asl.version}
+
+
+
+
+ org.wildfly.common
+ wildfly-common
+ ${wildfly.version}
+
+
+
+
+ com.aliyun
+ aliyun-java-sdk-core
+ ${aliyun.sdk.version}
+
+
+
diff --git a/Common/src/main/java/cn/crtech/cloud/common/annotation/DataExportAnnotation.java b/Common/src/main/java/cn/crtech/cloud/common/annotation/DataExportAnnotation.java
new file mode 100644
index 0000000..1780555
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/annotation/DataExportAnnotation.java
@@ -0,0 +1,11 @@
+package cn.crtech.cloud.common.annotation;
+
+import java.lang.annotation.*;
+
+@Documented // 文档
+@Retention(RetentionPolicy.RUNTIME) // 在运行时可以获取
+@Target({ ElementType.FIELD, ElementType.TYPE }) // 作用到字段上
+public @interface DataExportAnnotation {
+ //导出字段名称
+ String value() default "";
+}
diff --git a/Common/src/main/java/cn/crtech/cloud/common/api/ALiYunSMSEnum.java b/Common/src/main/java/cn/crtech/cloud/common/api/ALiYunSMSEnum.java
new file mode 100644
index 0000000..9da7059
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/api/ALiYunSMSEnum.java
@@ -0,0 +1,35 @@
+package cn.crtech.cloud.common.api;
+
+import org.springframework.util.StringUtils;
+
+/**
+ * 阿里云模板配置
+ */
+public enum ALiYunSMSEnum {
+ SMS_133972087("SECTION_CHECK_IN_CODE");
+
+ private String typeCode;
+
+ public String getTypeCode() {
+ return typeCode;
+ }
+
+ public void setTypeCode(String typeCode) {
+ this.typeCode = typeCode;
+ }
+
+ ALiYunSMSEnum(String typeCode) {
+ this.typeCode = typeCode;
+ }
+
+ public static ALiYunSMSEnum getEnumValue(String typeCode) {
+ if (!StringUtils.isEmpty(typeCode)) {
+ for (ALiYunSMSEnum sendCodeEnum : ALiYunSMSEnum.values()) {
+ if (sendCodeEnum.getTypeCode().equals(typeCode)) {
+ return sendCodeEnum;
+ }
+ }
+ }
+ return null;
+ }
+}
diff --git a/Common/src/main/java/cn/crtech/cloud/common/api/CommonResult.java b/Common/src/main/java/cn/crtech/cloud/common/api/CommonResult.java
new file mode 100644
index 0000000..2c1b259
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/api/CommonResult.java
@@ -0,0 +1,123 @@
+package cn.crtech.cloud.common.api;
+
+/**
+ * 通用返回对象
+ */
+public class CommonResult {
+ private long code;
+ private String message;
+ private T data;
+
+ protected CommonResult() {
+ }
+
+ protected CommonResult(long code, String message, T data) {
+ this.code = code;
+ this.message = message;
+ this.data = data;
+ }
+
+ /**
+ * 成功返回结果
+ *
+ * @param data 获取的数据
+ */
+ public static CommonResult success(T data) {
+ return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data);
+ }
+
+ /**
+ * 成功返回结果
+ *
+ * @param data 获取的数据
+ * @param message 提示信息
+ */
+ public static CommonResult success(T data, String message) {
+ return new CommonResult(ResultCode.SUCCESS.getCode(), message, data);
+ }
+
+ /**
+ * 失败返回结果
+ * @param errorCode 错误码
+ */
+ public static CommonResult failed(IErrorCode errorCode) {
+ return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null);
+ }
+
+ /**
+ * 失败返回结果
+ * @param errorCode 错误码
+ * @param message 错误信息
+ */
+ public static CommonResult failed(IErrorCode errorCode, String message) {
+ return new CommonResult(errorCode.getCode(), message, null);
+ }
+
+ /**
+ * 失败返回结果
+ * @param message 提示信息
+ */
+ public static CommonResult failed(String message) {
+ return new CommonResult(ResultCode.FAILED.getCode(), message, null);
+ }
+
+ /**
+ * 失败返回结果
+ */
+ public static CommonResult failed() {
+ return failed(ResultCode.FAILED);
+ }
+
+ /**
+ * 参数验证失败返回结果
+ */
+ public static CommonResult validateFailed() {
+ return failed(ResultCode.VALIDATE_FAILED);
+ }
+
+ /**
+ * 参数验证失败返回结果
+ * @param message 提示信息
+ */
+ public static CommonResult validateFailed(String message) {
+ return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null);
+ }
+
+ /**
+ * 未登录返回结果
+ */
+ public static CommonResult unauthorized(T data) {
+ return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data);
+ }
+
+ /**
+ * 未授权返回结果
+ */
+ public static CommonResult forbidden(T data) {
+ return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data);
+ }
+
+ public long getCode() {
+ return code;
+ }
+
+ public void setCode(long code) {
+ this.code = code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public T getData() {
+ return data;
+ }
+
+ public void setData(T data) {
+ this.data = data;
+ }
+}
diff --git a/Common/src/main/java/cn/crtech/cloud/common/api/IErrorCode.java b/Common/src/main/java/cn/crtech/cloud/common/api/IErrorCode.java
new file mode 100644
index 0000000..bafac3f
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/api/IErrorCode.java
@@ -0,0 +1,10 @@
+package cn.crtech.cloud.common.api;
+
+/**
+ * 封装API的错误码
+ */
+public interface IErrorCode {
+ long getCode();
+
+ String getMessage();
+}
diff --git a/Common/src/main/java/cn/crtech/cloud/common/api/ResultCode.java b/Common/src/main/java/cn/crtech/cloud/common/api/ResultCode.java
new file mode 100644
index 0000000..12412c0
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/api/ResultCode.java
@@ -0,0 +1,27 @@
+package cn.crtech.cloud.common.api;
+
+/**
+ * 枚举了一些常用API操作码
+ */
+public enum ResultCode implements IErrorCode {
+ SUCCESS(200, "操作成功"),
+ FAILED(500, "操作失败"),
+ VALIDATE_FAILED(404, "参数检验失败"),
+ UNAUTHORIZED(401, "暂未登录或token已经过期"),
+ FORBIDDEN(403, "没有相关权限");
+ private long code;
+ private String message;
+
+ private ResultCode(long code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public long getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
diff --git a/Common/src/main/java/cn/crtech/cloud/common/constant/AuthConstant.java b/Common/src/main/java/cn/crtech/cloud/common/constant/AuthConstant.java
new file mode 100644
index 0000000..da74f3e
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/constant/AuthConstant.java
@@ -0,0 +1,9 @@
+package cn.crtech.cloud.common.constant;
+
+/**
+ */
+public class AuthConstant {
+ public static final String AUTHORITY_PREFIX = "ROLE_";
+ public static final String AUTHORITY_CLAIM_NAME = "authorities";
+ public static final String APP_SPECIAL_AUTHORITY_SUFFIX = "_Limit_Authority";
+}
diff --git a/Common/src/main/java/cn/crtech/cloud/common/constant/MessageConstant.java b/Common/src/main/java/cn/crtech/cloud/common/constant/MessageConstant.java
new file mode 100644
index 0000000..8edc581
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/constant/MessageConstant.java
@@ -0,0 +1,17 @@
+package cn.crtech.cloud.common.constant;
+
+/**
+ * 消息常量
+ */
+public class MessageConstant {
+ public static final String LOGIN_SUCCESS = "登录成功!";
+ public static final String USERNAME_PASSWORD_ERROR = "用户名或密码错误!";
+ public static final String CREDENTIALS_EXPIRED = "该账户的登录凭证已过期,请重新登录!";
+ public static final String ACCOUNT_DISABLED = "该账户已被禁用,请联系管理员!";
+ public static final String ACCOUNT_LOCKED = "该账号已被锁定,请联系管理员!";
+ public static final String ACCOUNT_EXPIRED = "该账号已过期,请联系管理员!";
+ public static final String PERMISSION_DENIED = "没有访问权限,请联系管理员!";
+ public static final String ACCOUNT_SIGNATURE_ERROR = "签名校验失败!";
+ public static final String ACCOUNT_UN_REGISTER = "当前用户未注册!";
+ public static final String ACCOUNT_ERROR = "未查找到当前用户!";
+}
diff --git a/Common/src/main/java/cn/crtech/cloud/common/constant/RedisConstant.java b/Common/src/main/java/cn/crtech/cloud/common/constant/RedisConstant.java
new file mode 100644
index 0000000..c6f6a15
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/constant/RedisConstant.java
@@ -0,0 +1,16 @@
+package cn.crtech.cloud.common.constant;
+
+/**
+ * Redis常量
+ */
+public class RedisConstant {
+ public static final String FREE_SERIES_APP_VERSION = "AUTH:FREE:SERIES:APP:VERSION";
+ public static final String FREE_VERSION_API = "AUTH:FREE_RESOURCE_ROLES_MAP:${SERIESCODE}:${APPCODE}:${VERSION}";
+ public static final String RESOURCE_ROLES_MAP = "AUTH:RESOURCE_ROLES_MAP";
+ public static final String RESOURCE_ADMIN_MAP = "AUTH:RESOURCE_ADMIN_MAP";
+ public static final String DEFAULT_ROLES_MAP = "AUTH:DEDEFAULT_ROLES_MAPFAULT_ROLES_MAP";
+ public static final String CURRENT_USREINFO = "USER:CURRENT_USERINFO:";
+ public static final String CURRENT_WX_USREINFO = "USER:CURRENT_WX_USERINFO:";
+ public static final String LIMIT_AUTHORITY_API_MAP = "AUTH:LIMIT_AUTHORITY_API_MAP";
+ public static final String APP_FEIGN_API_MAP = "AUTH:APP_FEIGN_API_MAP";
+}
diff --git a/Common/src/main/java/cn/crtech/cloud/common/dto/Result.java b/Common/src/main/java/cn/crtech/cloud/common/dto/Result.java
new file mode 100644
index 0000000..1cd3cee
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/dto/Result.java
@@ -0,0 +1,86 @@
+package cn.crtech.cloud.common.dto;
+
+import java.io.Serializable;
+
+/**
+ * 系统返统一回结果实体类
+ */
+public class Result implements Serializable {
+ private String message;
+
+ private Object data;
+
+ private boolean success;
+
+ public Result() {
+ }
+
+ public Result(String message, boolean success) {
+ this.message = message;
+ this.success = success;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public Object getData() {
+ return data;
+ }
+
+ public void setData(Object data) {
+ this.data = data;
+ }
+
+ public static Result success() {
+ Result result = new Result();
+ result.message = "操作成功";
+ result.success = true;
+ return result;
+ }
+
+ public static Result success(Object data) {
+ Result result = Result.success();
+ result.data = data;
+ return result;
+ }
+
+ public static Result success(Object data, String operation) {
+ Result result = Result.success();
+ result.data = data;
+ result.message = operation;
+ return result;
+ }
+
+ public static Result error() {
+ Result result = new Result();
+ result.message = "操作失败";
+ result.success = false;
+ return result;
+ }
+
+ public static Result error(Object data) {
+ Result result = Result.error();
+ result.data = data;
+ return result;
+ }
+
+ public static Result error(Object data, String operation) {
+ Result result = Result.error();
+ result.data = data;
+ result.message = operation;
+ return result;
+ }
+}
diff --git a/Common/src/main/java/cn/crtech/cloud/common/dto/UserDto.java b/Common/src/main/java/cn/crtech/cloud/common/dto/UserDto.java
new file mode 100644
index 0000000..0528128
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/dto/UserDto.java
@@ -0,0 +1,76 @@
+package cn.crtech.cloud.common.dto;
+
+import cn.crtech.cloud.common.annotation.DataExportAnnotation;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Author : yj
+ * Date : 2021-01-14
+ * Description:
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class UserDto {
+ private String companyCode;
+
+ private String companyName;
+
+ private String userName;
+
+ private Integer status;
+
+ private List roles;
+
+ private Boolean companyAdmin;
+
+ @DataExportAnnotation("主键id")
+ private Integer id;
+
+ @DataExportAnnotation("姓名")
+ private String name;
+
+ @DataExportAnnotation("身份证")
+ private String idCard;
+
+ @DataExportAnnotation("昵称")
+ private String nickName;
+
+ @DataExportAnnotation("最后修改人")
+ private Long lastModifier;
+
+ @DataExportAnnotation("最后修时间")
+ private Date lastModifyTime;
+
+ @DataExportAnnotation("状态")
+ private Integer state;
+
+ @DataExportAnnotation("手机号码")
+ private String mobile;
+
+ @DataExportAnnotation("邮箱")
+ private String email;
+
+ @DataExportAnnotation("头像")
+ private String avatar;
+
+ @DataExportAnnotation("密码")
+ private String password;
+
+ @DataExportAnnotation("身份证正面")
+ private String idCardPrev;
+
+ @DataExportAnnotation("身份证反面")
+ private String idCardNext;
+
+ @DataExportAnnotation("真实姓名")
+ private String realName;
+
+ @DataExportAnnotation("注册时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date regTime;
+}
diff --git a/Common/src/main/java/cn/crtech/cloud/common/plugins/Logger.java b/Common/src/main/java/cn/crtech/cloud/common/plugins/Logger.java
new file mode 100644
index 0000000..fe2ee47
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/plugins/Logger.java
@@ -0,0 +1,88 @@
+package cn.crtech.cloud.common.plugins;
+
+import org.slf4j.LoggerFactory;
+
+/**
+ * 自定义日志实体类
+ */
+public class Logger {
+ private static final org.slf4j.Logger logger = LoggerFactory.getLogger(Logger.class);
+
+ public static void info(String msg) {
+ logger.info(msg);
+ }
+
+ public static void error(String msg) {
+ logger.error(msg);
+ }
+
+ public static void debug(String msg) {
+ info(msg);
+ }
+
+ /**
+ * 格式化
+ *
+ * @param jsonStr 字符串
+ * @return 返回处理结果
+ */
+ public static String formatJson(String jsonStr) {
+ if (null == jsonStr || "".equals(jsonStr)) {
+ return "";
+ }
+ StringBuilder sb = new StringBuilder();
+ sb.append("\n");
+ char last = '\0';
+ char current = '\0';
+ int indent = 0;
+ for (int i = 0; i < jsonStr.length(); i++) {
+ last = current;
+ current = jsonStr.charAt(i);
+
+ //遇到{ [换行,且下一行缩进
+ switch (current) {
+ case '{':
+ case '[':
+ sb.append(current);
+ sb.append('\n');
+ indent++;
+ addIndentBlank(sb, indent);
+ break;
+
+ //遇到} ]换行,当前行缩进
+ case '}':
+ case ']':
+ sb.append('\n');
+ indent--;
+ addIndentBlank(sb, indent);
+ sb.append(current);
+ break;
+
+ //遇到,换行
+ case ',':
+ sb.append(current);
+ if (last != '\\') {
+ sb.append('\n');
+ addIndentBlank(sb, indent);
+ }
+ break;
+ default:
+ sb.append(current);
+ }
+ }
+
+ return sb.toString();
+ }
+
+ /**
+ * 添加space
+ *
+ * @param sb 字符串
+ * @param indent 位置
+ */
+ private static void addIndentBlank(StringBuilder sb, int indent) {
+ for (int i = 0; i < indent; i++) {
+ sb.append('\t');
+ }
+ }
+}
diff --git a/Common/src/main/java/cn/crtech/cloud/common/plugins/SendMessageService.java b/Common/src/main/java/cn/crtech/cloud/common/plugins/SendMessageService.java
new file mode 100644
index 0000000..b237eaa
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/plugins/SendMessageService.java
@@ -0,0 +1,88 @@
+package cn.crtech.cloud.common.plugins;
+
+import cn.crtech.cloud.common.api.ALiYunSMSEnum;
+import cn.crtech.cloud.common.utils.SendSMSUtils;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 阿里短信发送工具类
+ */
+@Component
+public class SendMessageService {
+ public Map send(Map map) throws Exception {
+ Map ret = null;
+ if (!map.containsKey("cretch-cloud")) {
+ Logger.info("采用凌凯短信平台发送...");
+ ret = sendHttp(map);
+ } else {
+ Logger.info("采用阿里云平台发送...");
+ ret = sendCloud(map);
+ }
+ Logger.info(JSON.toJSONString(ret));
+ return ret;
+ }
+
+ private Map sendHttp(Map map) throws Exception {
+ Map resultMap = new HashMap<>();
+ if (!map.containsKey("mobile")) {
+ resultMap.put("success", false);
+ resultMap.put("message", "手机号不能为空!");
+ return resultMap;
+ }
+
+ if (!map.containsKey("content")) {
+ resultMap.put("success", false);
+ resultMap.put("message", "消息内容不能为空!");
+ return resultMap;
+ }
+
+ int success = SendSMSUtils.sendLingKaiSMS(map);
+ if (success > 0) {
+ resultMap.put("success", true);
+ resultMap.put("message", "短信发送成功!");
+ } else {
+ resultMap.put("success", false);
+ resultMap.put("message", "短信服务器出错!");
+ }
+
+ return resultMap;
+ }
+
+ private Map sendCloud(Map map) {
+ Map resultMap = new HashMap<>();
+ if (map.get("mobiles") == null) {
+ resultMap.put("success", false);
+ resultMap.put("message", "手机号不能为空!");
+ return resultMap;
+ } else if (map.get("templateCode") == null) {
+ resultMap.put("success", false);
+ resultMap.put("message", "模版Code不能为空!");
+ return resultMap;
+ } else {
+ String code = map.get("templateCode").toString();
+ ALiYunSMSEnum codeEnum = ALiYunSMSEnum.getEnumValue(code);
+ if (code == null || codeEnum == null) {
+ resultMap.put("success", false);
+ resultMap.put("message", "模版Code错误!");
+ } else {
+ String mobile = map.get("mobile").toString();
+ JSONObject jo = SendSMSUtils.sendALiYunSMS(map, mobile, codeEnum.name());
+ Logger.info(jo.toJSONString());
+ if ("OK".equals(jo.get("Code"))) {
+ resultMap.put("success", true);
+ resultMap.put("message", "短信发送成功!");
+ } else {
+ Logger.info(jo.toJSONString());
+ resultMap.put("success", false);
+ resultMap.put("message", jo.toJSONString());
+ }
+ }
+ return resultMap;
+ }
+ }
+}
diff --git a/Common/src/main/java/cn/crtech/cloud/common/pojo/Tree.java b/Common/src/main/java/cn/crtech/cloud/common/pojo/Tree.java
new file mode 100644
index 0000000..a0ac29f
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/pojo/Tree.java
@@ -0,0 +1,27 @@
+package cn.crtech.cloud.common.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import javax.persistence.Transient;
+import java.util.List;
+
+@Data
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public abstract class Tree {
+ @Transient
+ private Object realId;
+
+ @Transient
+ private Object realParentId;
+
+ @Transient
+ private List children;
+
+ //判断是否根节点
+ public abstract Boolean isRoot();
+}
diff --git a/Common/src/main/java/cn/crtech/cloud/common/utils/CommonFun.java b/Common/src/main/java/cn/crtech/cloud/common/utils/CommonFun.java
new file mode 100644
index 0000000..d65f8d9
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/utils/CommonFun.java
@@ -0,0 +1,36 @@
+package cn.crtech.cloud.common.utils;
+
+import java.util.UUID;
+
+public class CommonFun {
+ private static long startValue = 0;
+
+ /**
+ * 获取时间戳式的ID值,每秒可取1000个
+ * 长度16位
+ * 格式为:1639 4620 6212 3001 最大为9999 9999 9999 9 999 -》 2286-11-21 01:46:39.999 + 999
+ * @return
+ */
+ public static synchronized long getSSID() {
+ String id;
+ startValue++;
+ startValue = startValue % 1000;
+ java.text.DecimalFormat format = new java.text.DecimalFormat("000");
+
+ String sStartValue = format.format(startValue);
+ String sDate = String.valueOf(System.currentTimeMillis());
+ id = sDate + sStartValue;
+ return Long.parseLong(id);
+ }
+
+ /**
+ * 获取md5式的ID值
+ * @return
+ */
+ public static synchronized String getUUID() {
+ String id = UUID.randomUUID().toString();
+ id = id.replaceAll("-", "");
+ id = id.toUpperCase();
+ return id;
+ }
+}
diff --git a/Common/src/main/java/cn/crtech/cloud/common/utils/EncryptUtil.java b/Common/src/main/java/cn/crtech/cloud/common/utils/EncryptUtil.java
new file mode 100644
index 0000000..dc06dc0
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/utils/EncryptUtil.java
@@ -0,0 +1,120 @@
+package cn.crtech.cloud.common.utils;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.crypto.*;
+import javax.crypto.spec.SecretKeySpec;
+import java.io.UnsupportedEncodingException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+
+public class EncryptUtil {
+ protected static final Logger logger = LoggerFactory.getLogger(EncryptUtil.class);
+
+ public EncryptUtil() {
+ }
+
+ public static String parseByte2HexStr(byte[] buf) {
+ StringBuffer sb = new StringBuffer();
+
+ for(int i = 0; i < buf.length; ++i) {
+ String hex = Integer.toHexString(buf[i] & 255);
+ if (hex.length() == 1) {
+ hex = '0' + hex;
+ }
+
+ sb.append(hex.toUpperCase());
+ }
+
+ return sb.toString();
+ }
+
+ public static byte[] parseHexStr2Byte(String hexStr) {
+ if (hexStr.length() < 1) {
+ return null;
+ } else {
+ byte[] result = new byte[hexStr.length() / 2];
+
+ for(int i = 0; i < hexStr.length() / 2; ++i) {
+ int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16);
+ int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16);
+ result[i] = (byte)(high * 16 + low);
+ }
+
+ return result;
+ }
+ }
+
+ public static byte[] decrypt(byte[] content, String password) {
+ try {
+ KeyGenerator kgen = KeyGenerator.getInstance("AES");
+ SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
+ secureRandom.setSeed(password.getBytes());
+ kgen.init(128, secureRandom);
+ SecretKey secretKey = kgen.generateKey();
+ byte[] enCodeFormat = secretKey.getEncoded();
+ SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
+ Cipher cipher = Cipher.getInstance("AES");
+ cipher.init(2, key);
+ byte[] result = cipher.doFinal(content);
+ return result;
+ } catch (NoSuchAlgorithmException var9) {
+ logger.error(var9.getMessage(), var9);
+ } catch (NoSuchPaddingException var10) {
+ logger.error(var10.getMessage(), var10);
+ } catch (InvalidKeyException var11) {
+ logger.error(var11.getMessage(), var11);
+ } catch (IllegalBlockSizeException var12) {
+ logger.error(var12.getMessage(), var12);
+ } catch (BadPaddingException var13) {
+ logger.error(var13.getMessage(), var13);
+ }
+
+ return null;
+ }
+
+ public static byte[] encrypt(String content, String password) {
+ try {
+ KeyGenerator kgen = KeyGenerator.getInstance("AES");
+ SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
+ secureRandom.setSeed(password.getBytes());
+ kgen.init(128, secureRandom);
+ SecretKey secretKey = kgen.generateKey();
+ byte[] enCodeFormat = secretKey.getEncoded();
+ SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
+ Cipher cipher = Cipher.getInstance("AES");
+ byte[] byteContent = content.getBytes("utf-8");
+ cipher.init(1, key);
+ byte[] result = cipher.doFinal(byteContent);
+ return result;
+ } catch (NoSuchAlgorithmException var10) {
+ logger.error(var10.getMessage(), var10);
+ } catch (NoSuchPaddingException var11) {
+ logger.error(var11.getMessage(), var11);
+ } catch (InvalidKeyException var12) {
+ logger.error(var12.getMessage(), var12);
+ } catch (UnsupportedEncodingException var13) {
+ logger.error(var13.getMessage(), var13);
+ } catch (IllegalBlockSizeException var14) {
+ logger.error(var14.getMessage(), var14);
+ } catch (BadPaddingException var15) {
+ logger.error(var15.getMessage(), var15);
+ }
+
+ return null;
+ }
+
+ public static void main(String[] args) {
+ String content = "www.server41.com";
+ String password = "THIS SHALL NOT BE SEEN.";
+ System.out.println("加密前:" + content);
+ byte[] encryptResult = encrypt(content, password);
+ String encryptResultStr = parseByte2HexStr(encryptResult);
+ System.out.println("加密后:" + encryptResultStr);
+ byte[] decryptFrom = parseHexStr2Byte(encryptResultStr);
+ byte[] decryptResult = decrypt(decryptFrom, password);
+ System.out.println("解密后:" + new String(decryptResult));
+ }
+}
\ No newline at end of file
diff --git a/Common/src/main/java/cn/crtech/cloud/common/utils/IDGenerator.java b/Common/src/main/java/cn/crtech/cloud/common/utils/IDGenerator.java
new file mode 100644
index 0000000..584291f
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/utils/IDGenerator.java
@@ -0,0 +1,12 @@
+package cn.crtech.cloud.common.utils;
+
+import tk.mybatis.mapper.genid.GenId;
+
+import java.util.UUID;
+
+public class IDGenerator implements GenId {
+ @Override
+ public String genId(String s, String s1) {
+ return UUID.randomUUID().toString();
+ }
+}
diff --git a/Common/src/main/java/cn/crtech/cloud/common/utils/IdCardInfoUtil.java b/Common/src/main/java/cn/crtech/cloud/common/utils/IdCardInfoUtil.java
new file mode 100644
index 0000000..1029f3c
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/utils/IdCardInfoUtil.java
@@ -0,0 +1,7140 @@
+package cn.crtech.cloud.common.utils;
+
+public class IdCardInfoUtil {
+ /**
+ * 获取出生日期
+ *
+ * @return 返回日期格式
+ */
+ public String getBirthFromIdCard(String idCard) {
+ idCard = IdCardMethod15To18(idCard);
+ if (idCard.length() != 18 && idCard.length() != 15) {
+ return "请输入正确的身份证号码";
+ }
+ if (idCard.length() == 18) {
+ String year = idCard.substring(6).substring(0, 4);// 得到年份
+ String month = idCard.substring(10).substring(0, 2);// 得到月份
+ String day = idCard.substring(12).substring(0, 2);// 得到日
+ return (year + "-" + month + "-" + day);
+ } else if (idCard.length() == 15) {
+ String year = "19" + idCard.substring(6, 8);// 年份
+ String month = idCard.substring(8, 10);// 月份
+ String day = idCard.substring(10, 12);// 得到日
+ return (year + "-" + month + "-" + day);
+ }
+ return null;
+ }
+
+ /**
+ * 获取性别
+ * 0=未知的性别,9=未说明的性别,2=女性,1=男性
+ *
+ * @return int
+ */
+ public int getSexFromIdCard(String idCard) {
+ int sex = 9;
+ // 身份证号码为空
+ if (idCard == "" || idCard.length() <= 0) {
+ return sex = 0;
+ }
+ if (idCard.length() == 18) {
+ if (Integer.parseInt(idCard.substring(16).substring(0, 1)) % 2 == 0) {// 判断性别
+ sex = 2; // 女
+ } else {
+ sex = 1; // 男
+ }
+ } else if (idCard.length() == 15) {
+ String usex = idCard.substring(14, 15);// 用户的性别
+ if (Integer.parseInt(usex) % 2 == 0) {
+ sex = 2; // 女
+ } else {
+ sex = 1; // 男
+ }
+ }
+ return sex;
+ }
+
+ private String IdCardMethod15To18(String idCard) {
+ if (idCard.length() == 15) {
+ //将字符串转化为buffer进行操作
+ StringBuffer stringBuffer = new StringBuffer(idCard);
+ //身份证最后一位校验码,X代表10(顺序固定)
+ char[] checkIndex = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
+ int sum = 0;
+ //在第6位插入年份的前两位19
+ stringBuffer.insert(6, "19");
+ for (int i = 0; i < stringBuffer.length(); i++) {
+ char c = stringBuffer.charAt(i);
+ //前17位数字
+ int ai = Integer.valueOf(String.valueOf(c));
+ //前17位每位对应的系数(7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 )
+ int wi = ((int) Math.pow(2, stringBuffer.length() - i)) % 11;
+ //总和(每位数字乘以系数再相加)
+ sum = sum + ai * wi;
+ }
+ //总和除以11求余
+ int indexOf = sum % 11;
+ //根据余数作为下表在校验码数组里取值
+ stringBuffer.append(checkIndex[indexOf]);
+ return stringBuffer.toString();
+ } else {
+ return idCard;
+ }
+ }
+
+ public static String getNativePlace(String idCard) {
+ int nativePlaceCode = Integer.parseInt(idCard.substring(0, 6));
+ int shengCode = nativePlaceCode / 10000;
+ int shiCode = nativePlaceCode / 100;
+ int quxianCode = nativePlaceCode;
+ String sheng = getNameString(shengCode);
+ String shi = getNameString(shiCode);
+ String quxian = getNameString(quxianCode);
+ String nativePlace = "";
+ if (sheng != null) {
+ nativePlace += sheng;
+ }
+ if (shi != null) {
+ nativePlace += shi;
+ }
+ if (quxian != null) {
+ nativePlace += quxian;
+ }
+ return nativePlace;
+ }
+
+ private static String getNameString(int code) {
+ switch (code) {
+ case 11:
+ return "北京市";
+ case 1101:
+ return "市辖区";
+ case 110101:
+ return "东城区";
+ case 110102:
+ return "西城区";
+ case 110105:
+ return "朝阳区";
+ case 110106:
+ return "丰台区";
+ case 110107:
+ return "石景山区";
+ case 110108:
+ return "海淀区";
+ case 110109:
+ return "门头沟区";
+ case 110111:
+ return "房山区";
+ case 110112:
+ return "通州区";
+ case 110113:
+ return "顺义区";
+ case 110114:
+ return "昌平区";
+ case 110115:
+ return "大兴区";
+ case 110116:
+ return "怀柔区";
+ case 110117:
+ return "平谷区";
+ case 1102:
+ return "县";
+ case 110228:
+ return "密云县";
+ case 110229:
+ return "延庆县";
+ case 12:
+ return "天津市";
+ case 1201:
+ return "市辖区";
+ case 120101:
+ return "和平区";
+ case 120102:
+ return "河东区";
+ case 120103:
+ return "河西区";
+ case 120104:
+ return "南开区";
+ case 120105:
+ return "河北区";
+ case 120106:
+ return "红桥区";
+ case 120110:
+ return "东丽区";
+ case 120111:
+ return "西青区";
+ case 120112:
+ return "津南区";
+ case 120113:
+ return "北辰区";
+ case 120114:
+ return "武清区";
+ case 120115:
+ return "宝坻区";
+ case 120116:
+ return "滨海新区";
+ case 1202:
+ return "县";
+ case 120221:
+ return "宁河县";
+ case 120223:
+ return "静海县";
+ case 120225:
+ return "蓟县";
+ case 13:
+ return "河北省";
+ case 1301:
+ return "石家庄市";
+ case 130101:
+ return "市辖区";
+ case 130102:
+ return "长安区";
+ case 130104:
+ return "桥西区";
+ case 130105:
+ return "新华区";
+ case 130107:
+ return "井陉矿区";
+ case 130108:
+ return "裕华区";
+ case 130109:
+ return "藁城区";
+ case 130110:
+ return "鹿泉区";
+ case 130111:
+ return "栾城区";
+ case 130121:
+ return "井陉县";
+ case 130123:
+ return "正定县";
+ case 130125:
+ return "行唐县";
+ case 130126:
+ return "灵寿县";
+ case 130127:
+ return "高邑县";
+ case 130128:
+ return "深泽县";
+ case 130129:
+ return "赞皇县";
+ case 130130:
+ return "无极县";
+ case 130131:
+ return "平山县";
+ case 130132:
+ return "元氏县";
+ case 130133:
+ return "赵县";
+ case 130183:
+ return "晋州市";
+ case 130184:
+ return "新乐市";
+ case 1302:
+ return "唐山市";
+ case 130201:
+ return "市辖区";
+ case 130202:
+ return "路南区";
+ case 130203:
+ return "路北区";
+ case 130204:
+ return "古冶区";
+ case 130205:
+ return "开平区";
+ case 130207:
+ return "丰南区";
+ case 130208:
+ return "丰润区";
+ case 130209:
+ return "曹妃甸区";
+ case 130223:
+ return "滦县";
+ case 130224:
+ return "滦南县";
+ case 130225:
+ return "乐亭县";
+ case 130227:
+ return "迁西县";
+ case 130229:
+ return "玉田县";
+ case 130281:
+ return "遵化市";
+ case 130283:
+ return "迁安市";
+ case 1303:
+ return "秦皇岛市";
+ case 130301:
+ return "市辖区";
+ case 130302:
+ return "海港区";
+ case 130303:
+ return "山海关区";
+ case 130304:
+ return "北戴河区";
+ case 130321:
+ return "青龙满族自治县";
+ case 130322:
+ return "昌黎县";
+ case 130323:
+ return "抚宁县";
+ case 130324:
+ return "卢龙县";
+ case 1304:
+ return "邯郸市";
+ case 130401:
+ return "市辖区";
+ case 130402:
+ return "邯山区";
+ case 130403:
+ return "丛台区";
+ case 130404:
+ return "复兴区";
+ case 130406:
+ return "峰峰矿区";
+ case 130421:
+ return "邯郸县";
+ case 130423:
+ return "临漳县";
+ case 130424:
+ return "成安县";
+ case 130425:
+ return "大名县";
+ case 130426:
+ return "涉县";
+ case 130427:
+ return "磁县";
+ case 130428:
+ return "肥乡县";
+ case 130429:
+ return "永年县";
+ case 130430:
+ return "邱县";
+ case 130431:
+ return "鸡泽县";
+ case 130432:
+ return "广平县";
+ case 130433:
+ return "馆陶县";
+ case 130434:
+ return "魏县";
+ case 130435:
+ return "曲周县";
+ case 130481:
+ return "武安市";
+ case 1305:
+ return "邢台市";
+ case 130501:
+ return "市辖区";
+ case 130502:
+ return "桥东区";
+ case 130503:
+ return "桥西区";
+ case 130521:
+ return "邢台县";
+ case 130522:
+ return "临城县";
+ case 130523:
+ return "内丘县";
+ case 130524:
+ return "柏乡县";
+ case 130525:
+ return "隆尧县";
+ case 130526:
+ return "任县";
+ case 130527:
+ return "南和县";
+ case 130528:
+ return "宁晋县";
+ case 130529:
+ return "巨鹿县";
+ case 130530:
+ return "新河县";
+ case 130531:
+ return "广宗县";
+ case 130532:
+ return "平乡县";
+ case 130533:
+ return "威县";
+ case 130534:
+ return "清河县";
+ case 130535:
+ return "临西县";
+ case 130581:
+ return "南宫市";
+ case 130582:
+ return "沙河市";
+ case 1306:
+ return "保定市";
+ case 130601:
+ return "市辖区";
+ case 130602:
+ return "新市区";
+ case 130603:
+ return "北市区";
+ case 130604:
+ return "南市区";
+ case 130621:
+ return "满城县";
+ case 130622:
+ return "清苑县";
+ case 130623:
+ return "涞水县";
+ case 130624:
+ return "阜平县";
+ case 130625:
+ return "徐水县";
+ case 130626:
+ return "定兴县";
+ case 130627:
+ return "唐县";
+ case 130628:
+ return "高阳县";
+ case 130629:
+ return "容城县";
+ case 130630:
+ return "涞源县";
+ case 130631:
+ return "望都县";
+ case 130632:
+ return "安新县";
+ case 130633:
+ return "易县";
+ case 130634:
+ return "曲阳县";
+ case 130635:
+ return "蠡县";
+ case 130636:
+ return "顺平县";
+ case 130637:
+ return "博野县";
+ case 130638:
+ return "雄县";
+ case 130681:
+ return "涿州市";
+ case 130683:
+ return "安国市";
+ case 130684:
+ return "高碑店市";
+ case 1307:
+ return "张家口市";
+ case 130701:
+ return "市辖区";
+ case 130702:
+ return "桥东区";
+ case 130703:
+ return "桥西区";
+ case 130705:
+ return "宣化区";
+ case 130706:
+ return "下花园区";
+ case 130721:
+ return "宣化县";
+ case 130722:
+ return "张北县";
+ case 130723:
+ return "康保县";
+ case 130724:
+ return "沽源县";
+ case 130725:
+ return "尚义县";
+ case 130726:
+ return "蔚县";
+ case 130727:
+ return "阳原县";
+ case 130728:
+ return "怀安县";
+ case 130729:
+ return "万全县";
+ case 130730:
+ return "怀来县";
+ case 130731:
+ return "涿鹿县";
+ case 130732:
+ return "赤城县";
+ case 130733:
+ return "崇礼县";
+ case 1308:
+ return "承德市";
+ case 130801:
+ return "市辖区";
+ case 130802:
+ return "双桥区";
+ case 130803:
+ return "双滦区";
+ case 130804:
+ return "鹰手营子矿区";
+ case 130821:
+ return "承德县";
+ case 130822:
+ return "兴隆县";
+ case 130823:
+ return "平泉县";
+ case 130824:
+ return "滦平县";
+ case 130825:
+ return "隆化县";
+ case 130826:
+ return "丰宁满族自治县";
+ case 130827:
+ return "宽城满族自治县";
+ case 130828:
+ return "围场满族蒙古族自治县";
+ case 1309:
+ return "沧州市";
+ case 130901:
+ return "市辖区";
+ case 130902:
+ return "新华区";
+ case 130903:
+ return "运河区";
+ case 130921:
+ return "沧县";
+ case 130922:
+ return "青县";
+ case 130923:
+ return "东光县";
+ case 130924:
+ return "海兴县";
+ case 130925:
+ return "盐山县";
+ case 130926:
+ return "肃宁县";
+ case 130927:
+ return "南皮县";
+ case 130928:
+ return "吴桥县";
+ case 130929:
+ return "献县";
+ case 130930:
+ return "孟村回族自治县";
+ case 130981:
+ return "泊头市";
+ case 130982:
+ return "任丘市";
+ case 130983:
+ return "黄骅市";
+ case 130984:
+ return "河间市";
+ case 1310:
+ return "廊坊市";
+ case 131001:
+ return "市辖区";
+ case 131002:
+ return "安次区";
+ case 131003:
+ return "广阳区";
+ case 131022:
+ return "固安县";
+ case 131023:
+ return "永清县";
+ case 131024:
+ return "香河县";
+ case 131025:
+ return "大城县";
+ case 131026:
+ return "文安县";
+ case 131028:
+ return "大厂回族自治县";
+ case 131081:
+ return "霸州市";
+ case 131082:
+ return "三河市";
+ case 1311:
+ return "衡水市";
+ case 131101:
+ return "市辖区";
+ case 131102:
+ return "桃城区";
+ case 131121:
+ return "枣强县";
+ case 131122:
+ return "武邑县";
+ case 131123:
+ return "武强县";
+ case 131124:
+ return "饶阳县";
+ case 131125:
+ return "安平县";
+ case 131126:
+ return "故城县";
+ case 131127:
+ return "景县";
+ case 131128:
+ return "阜城县";
+ case 131181:
+ return "冀州市";
+ case 131182:
+ return "深州市";
+ case 1390:
+ return "省直辖县级行政区划";
+ case 139001:
+ return "定州市";
+ case 139002:
+ return "辛集市";
+ case 14:
+ return "山西省";
+ case 1401:
+ return "太原市";
+ case 140101:
+ return "市辖区";
+ case 140105:
+ return "小店区";
+ case 140106:
+ return "迎泽区";
+ case 140107:
+ return "杏花岭区";
+ case 140108:
+ return "尖草坪区";
+ case 140109:
+ return "万柏林区";
+ case 140110:
+ return "晋源区";
+ case 140121:
+ return "清徐县";
+ case 140122:
+ return "阳曲县";
+ case 140123:
+ return "娄烦县";
+ case 140181:
+ return "古交市";
+ case 1402:
+ return "大同市";
+ case 140201:
+ return "市辖区";
+ case 140202:
+ return "城区";
+ case 140203:
+ return "矿区";
+ case 140211:
+ return "南郊区";
+ case 140212:
+ return "新荣区";
+ case 140221:
+ return "阳高县";
+ case 140222:
+ return "天镇县";
+ case 140223:
+ return "广灵县";
+ case 140224:
+ return "灵丘县";
+ case 140225:
+ return "浑源县";
+ case 140226:
+ return "左云县";
+ case 140227:
+ return "大同县";
+ case 1403:
+ return "阳泉市";
+ case 140301:
+ return "市辖区";
+ case 140302:
+ return "城区";
+ case 140303:
+ return "矿区";
+ case 140311:
+ return "郊区";
+ case 140321:
+ return "平定县";
+ case 140322:
+ return "盂县";
+ case 1404:
+ return "长治市";
+ case 140401:
+ return "市辖区";
+ case 140402:
+ return "城区";
+ case 140411:
+ return "郊区";
+ case 140421:
+ return "长治县";
+ case 140423:
+ return "襄垣县";
+ case 140424:
+ return "屯留县";
+ case 140425:
+ return "平顺县";
+ case 140426:
+ return "黎城县";
+ case 140427:
+ return "壶关县";
+ case 140428:
+ return "长子县";
+ case 140429:
+ return "武乡县";
+ case 140430:
+ return "沁县";
+ case 140431:
+ return "沁源县";
+ case 140481:
+ return "潞城市";
+ case 1405:
+ return "晋城市";
+ case 140501:
+ return "市辖区";
+ case 140502:
+ return "城区";
+ case 140521:
+ return "沁水县";
+ case 140522:
+ return "阳城县";
+ case 140524:
+ return "陵川县";
+ case 140525:
+ return "泽州县";
+ case 140581:
+ return "高平市";
+ case 1406:
+ return "朔州市";
+ case 140601:
+ return "市辖区";
+ case 140602:
+ return "朔城区";
+ case 140603:
+ return "平鲁区";
+ case 140621:
+ return "山阴县";
+ case 140622:
+ return "应县";
+ case 140623:
+ return "右玉县";
+ case 140624:
+ return "怀仁县";
+ case 1407:
+ return "晋中市";
+ case 140701:
+ return "市辖区";
+ case 140702:
+ return "榆次区";
+ case 140721:
+ return "榆社县";
+ case 140722:
+ return "左权县";
+ case 140723:
+ return "和顺县";
+ case 140724:
+ return "昔阳县";
+ case 140725:
+ return "寿阳县";
+ case 140726:
+ return "太谷县";
+ case 140727:
+ return "祁县";
+ case 140728:
+ return "平遥县";
+ case 140729:
+ return "灵石县";
+ case 140781:
+ return "介休市";
+ case 1408:
+ return "运城市";
+ case 140801:
+ return "市辖区";
+ case 140802:
+ return "盐湖区";
+ case 140821:
+ return "临猗县";
+ case 140822:
+ return "万荣县";
+ case 140823:
+ return "闻喜县";
+ case 140824:
+ return "稷山县";
+ case 140825:
+ return "新绛县";
+ case 140826:
+ return "绛县";
+ case 140827:
+ return "垣曲县";
+ case 140828:
+ return "夏县";
+ case 140829:
+ return "平陆县";
+ case 140830:
+ return "芮城县";
+ case 140881:
+ return "永济市";
+ case 140882:
+ return "河津市";
+ case 1409:
+ return "忻州市";
+ case 140901:
+ return "市辖区";
+ case 140902:
+ return "忻府区";
+ case 140921:
+ return "定襄县";
+ case 140922:
+ return "五台县";
+ case 140923:
+ return "代县";
+ case 140924:
+ return "繁峙县";
+ case 140925:
+ return "宁武县";
+ case 140926:
+ return "静乐县";
+ case 140927:
+ return "神池县";
+ case 140928:
+ return "五寨县";
+ case 140929:
+ return "岢岚县";
+ case 140930:
+ return "河曲县";
+ case 140931:
+ return "保德县";
+ case 140932:
+ return "偏关县";
+ case 140981:
+ return "原平市";
+ case 1410:
+ return "临汾市";
+ case 141001:
+ return "市辖区";
+ case 141002:
+ return "尧都区";
+ case 141021:
+ return "曲沃县";
+ case 141022:
+ return "翼城县";
+ case 141023:
+ return "襄汾县";
+ case 141024:
+ return "洪洞县";
+ case 141025:
+ return "古县";
+ case 141026:
+ return "安泽县";
+ case 141027:
+ return "浮山县";
+ case 141028:
+ return "吉县";
+ case 141029:
+ return "乡宁县";
+ case 141030:
+ return "大宁县";
+ case 141031:
+ return "隰县";
+ case 141032:
+ return "永和县";
+ case 141033:
+ return "蒲县";
+ case 141034:
+ return "汾西县";
+ case 141081:
+ return "侯马市";
+ case 141082:
+ return "霍州市";
+ case 1411:
+ return "吕梁市";
+ case 141101:
+ return "市辖区";
+ case 141102:
+ return "离石区";
+ case 141121:
+ return "文水县";
+ case 141122:
+ return "交城县";
+ case 141123:
+ return "兴县";
+ case 141124:
+ return "临县";
+ case 141125:
+ return "柳林县";
+ case 141126:
+ return "石楼县";
+ case 141127:
+ return "岚县";
+ case 141128:
+ return "方山县";
+ case 141129:
+ return "中阳县";
+ case 141130:
+ return "交口县";
+ case 141181:
+ return "孝义市";
+ case 141182:
+ return "汾阳市";
+ case 15:
+ return "内蒙古自治区";
+ case 1501:
+ return "呼和浩特市";
+ case 150101:
+ return "市辖区";
+ case 150102:
+ return "新城区";
+ case 150103:
+ return "回民区";
+ case 150104:
+ return "玉泉区";
+ case 150105:
+ return "赛罕区";
+ case 150121:
+ return "土默特左旗";
+ case 150122:
+ return "托克托县";
+ case 150123:
+ return "和林格尔县";
+ case 150124:
+ return "清水河县";
+ case 150125:
+ return "武川县";
+ case 1502:
+ return "包头市";
+ case 150201:
+ return "市辖区";
+ case 150202:
+ return "东河区";
+ case 150203:
+ return "昆都仑区";
+ case 150204:
+ return "青山区";
+ case 150205:
+ return "石拐区";
+ case 150206:
+ return "白云鄂博矿区";
+ case 150207:
+ return "九原区";
+ case 150221:
+ return "土默特右旗";
+ case 150222:
+ return "固阳县";
+ case 150223:
+ return "达尔罕茂明安联合旗";
+ case 1503:
+ return "乌海市";
+ case 150301:
+ return "市辖区";
+ case 150302:
+ return "海勃湾区";
+ case 150303:
+ return "海南区";
+ case 150304:
+ return "乌达区";
+ case 1504:
+ return "赤峰市";
+ case 150401:
+ return "市辖区";
+ case 150402:
+ return "红山区";
+ case 150403:
+ return "元宝山区";
+ case 150404:
+ return "松山区";
+ case 150421:
+ return "阿鲁科尔沁旗";
+ case 150422:
+ return "巴林左旗";
+ case 150423:
+ return "巴林右旗";
+ case 150424:
+ return "林西县";
+ case 150425:
+ return "克什克腾旗";
+ case 150426:
+ return "翁牛特旗";
+ case 150428:
+ return "喀喇沁旗";
+ case 150429:
+ return "宁城县";
+ case 150430:
+ return "敖汉旗";
+ case 1505:
+ return "通辽市";
+ case 150501:
+ return "市辖区";
+ case 150502:
+ return "科尔沁区";
+ case 150521:
+ return "科尔沁左翼中旗";
+ case 150522:
+ return "科尔沁左翼后旗";
+ case 150523:
+ return "开鲁县";
+ case 150524:
+ return "库伦旗";
+ case 150525:
+ return "奈曼旗";
+ case 150526:
+ return "扎鲁特旗";
+ case 150581:
+ return "霍林郭勒市";
+ case 1506:
+ return "鄂尔多斯市";
+ case 150601:
+ return "市辖区";
+ case 150602:
+ return "东胜区";
+ case 150621:
+ return "达拉特旗";
+ case 150622:
+ return "准格尔旗";
+ case 150623:
+ return "鄂托克前旗";
+ case 150624:
+ return "鄂托克旗";
+ case 150625:
+ return "杭锦旗";
+ case 150626:
+ return "乌审旗";
+ case 150627:
+ return "伊金霍洛旗";
+ case 1507:
+ return "呼伦贝尔市";
+ case 150701:
+ return "市辖区";
+ case 150702:
+ return "海拉尔区";
+ case 150703:
+ return "扎赉诺尔区";
+ case 150721:
+ return "阿荣旗";
+ case 150722:
+ return "莫力达瓦达斡尔族自治旗";
+ case 150723:
+ return "鄂伦春自治旗";
+ case 150724:
+ return "鄂温克族自治旗";
+ case 150725:
+ return "陈巴尔虎旗";
+ case 150726:
+ return "新巴尔虎左旗";
+ case 150727:
+ return "新巴尔虎右旗";
+ case 150781:
+ return "满洲里市";
+ case 150782:
+ return "牙克石市";
+ case 150783:
+ return "扎兰屯市";
+ case 150784:
+ return "额尔古纳市";
+ case 150785:
+ return "根河市";
+ case 1508:
+ return "巴彦淖尔市";
+ case 150801:
+ return "市辖区";
+ case 150802:
+ return "临河区";
+ case 150821:
+ return "五原县";
+ case 150822:
+ return "磴口县";
+ case 150823:
+ return "乌拉特前旗";
+ case 150824:
+ return "乌拉特中旗";
+ case 150825:
+ return "乌拉特后旗";
+ case 150826:
+ return "杭锦后旗";
+ case 1509:
+ return "乌兰察布市";
+ case 150901:
+ return "市辖区";
+ case 150902:
+ return "集宁区";
+ case 150921:
+ return "卓资县";
+ case 150922:
+ return "化德县";
+ case 150923:
+ return "商都县";
+ case 150924:
+ return "兴和县";
+ case 150925:
+ return "凉城县";
+ case 150926:
+ return "察哈尔右翼前旗";
+ case 150927:
+ return "察哈尔右翼中旗";
+ case 150928:
+ return "察哈尔右翼后旗";
+ case 150929:
+ return "四子王旗";
+ case 150981:
+ return "丰镇市";
+ case 1522:
+ return "兴安盟";
+ case 152201:
+ return "乌兰浩特市";
+ case 152202:
+ return "阿尔山市";
+ case 152221:
+ return "科尔沁右翼前旗";
+ case 152222:
+ return "科尔沁右翼中旗";
+ case 152223:
+ return "扎赉特旗";
+ case 152224:
+ return "突泉县";
+ case 1525:
+ return "锡林郭勒盟";
+ case 152501:
+ return "二连浩特市";
+ case 152502:
+ return "锡林浩特市";
+ case 152522:
+ return "阿巴嘎旗";
+ case 152523:
+ return "苏尼特左旗";
+ case 152524:
+ return "苏尼特右旗";
+ case 152525:
+ return "东乌珠穆沁旗";
+ case 152526:
+ return "西乌珠穆沁旗";
+ case 152527:
+ return "太仆寺旗";
+ case 152528:
+ return "镶黄旗";
+ case 152529:
+ return "正镶白旗";
+ case 152530:
+ return "正蓝旗";
+ case 152531:
+ return "多伦县";
+ case 1529:
+ return "阿拉善盟";
+ case 152921:
+ return "阿拉善左旗";
+ case 152922:
+ return "阿拉善右旗";
+ case 152923:
+ return "额济纳旗";
+ case 21:
+ return "辽宁省";
+ case 2101:
+ return "沈阳市";
+ case 210101:
+ return "市辖区";
+ case 210102:
+ return "和平区";
+ case 210103:
+ return "沈河区";
+ case 210104:
+ return "大东区";
+ case 210105:
+ return "皇姑区";
+ case 210106:
+ return "铁西区";
+ case 210111:
+ return "苏家屯区";
+ case 210112:
+ return "浑南区";
+ case 210113:
+ return "沈北新区";
+ case 210114:
+ return "于洪区";
+ case 210122:
+ return "辽中县";
+ case 210123:
+ return "康平县";
+ case 210124:
+ return "法库县";
+ case 210181:
+ return "新民市";
+ case 2102:
+ return "大连市";
+ case 210201:
+ return "市辖区";
+ case 210202:
+ return "中山区";
+ case 210203:
+ return "西岗区";
+ case 210204:
+ return "沙河口区";
+ case 210211:
+ return "甘井子区";
+ case 210212:
+ return "旅顺口区";
+ case 210213:
+ return "金州区";
+ case 210224:
+ return "长海县";
+ case 210281:
+ return "瓦房店市";
+ case 210282:
+ return "普兰店市";
+ case 210283:
+ return "庄河市";
+ case 2103:
+ return "鞍山市";
+ case 210301:
+ return "市辖区";
+ case 210302:
+ return "铁东区";
+ case 210303:
+ return "铁西区";
+ case 210304:
+ return "立山区";
+ case 210311:
+ return "千山区";
+ case 210321:
+ return "台安县";
+ case 210323:
+ return "岫岩满族自治县";
+ case 210381:
+ return "海城市";
+ case 2104:
+ return "抚顺市";
+ case 210401:
+ return "市辖区";
+ case 210402:
+ return "新抚区";
+ case 210403:
+ return "东洲区";
+ case 210404:
+ return "望花区";
+ case 210411:
+ return "顺城区";
+ case 210421:
+ return "抚顺县";
+ case 210422:
+ return "新宾满族自治县";
+ case 210423:
+ return "清原满族自治县";
+ case 2105:
+ return "本溪市";
+ case 210501:
+ return "市辖区";
+ case 210502:
+ return "平山区";
+ case 210503:
+ return "溪湖区";
+ case 210504:
+ return "明山区";
+ case 210505:
+ return "南芬区";
+ case 210521:
+ return "本溪满族自治县";
+ case 210522:
+ return "桓仁满族自治县";
+ case 2106:
+ return "丹东市";
+ case 210601:
+ return "市辖区";
+ case 210602:
+ return "元宝区";
+ case 210603:
+ return "振兴区";
+ case 210604:
+ return "振安区";
+ case 210624:
+ return "宽甸满族自治县";
+ case 210681:
+ return "东港市";
+ case 210682:
+ return "凤城市";
+ case 2107:
+ return "锦州市";
+ case 210701:
+ return "市辖区";
+ case 210702:
+ return "古塔区";
+ case 210703:
+ return "凌河区";
+ case 210711:
+ return "太和区";
+ case 210726:
+ return "黑山县";
+ case 210727:
+ return "义县";
+ case 210781:
+ return "凌海市";
+ case 210782:
+ return "北镇市";
+ case 2108:
+ return "营口市";
+ case 210801:
+ return "市辖区";
+ case 210802:
+ return "站前区";
+ case 210803:
+ return "西市区";
+ case 210804:
+ return "鲅鱼圈区";
+ case 210811:
+ return "老边区";
+ case 210881:
+ return "盖州市";
+ case 210882:
+ return "大石桥市";
+ case 2109:
+ return "阜新市";
+ case 210901:
+ return "市辖区";
+ case 210902:
+ return "海州区";
+ case 210903:
+ return "新邱区";
+ case 210904:
+ return "太平区";
+ case 210905:
+ return "清河门区";
+ case 210911:
+ return "细河区";
+ case 210921:
+ return "阜新蒙古族自治县";
+ case 210922:
+ return "彰武县";
+ case 2110:
+ return "辽阳市";
+ case 211001:
+ return "市辖区";
+ case 211002:
+ return "白塔区";
+ case 211003:
+ return "文圣区";
+ case 211004:
+ return "宏伟区";
+ case 211005:
+ return "弓长岭区";
+ case 211011:
+ return "太子河区";
+ case 211021:
+ return "辽阳县";
+ case 211081:
+ return "灯塔市";
+ case 2111:
+ return "盘锦市";
+ case 211101:
+ return "市辖区";
+ case 211102:
+ return "双台子区";
+ case 211103:
+ return "兴隆台区";
+ case 211121:
+ return "大洼县";
+ case 211122:
+ return "盘山县";
+ case 2112:
+ return "铁岭市";
+ case 211201:
+ return "市辖区";
+ case 211202:
+ return "银州区";
+ case 211204:
+ return "清河区";
+ case 211221:
+ return "铁岭县";
+ case 211223:
+ return "西丰县";
+ case 211224:
+ return "昌图县";
+ case 211281:
+ return "调兵山市";
+ case 211282:
+ return "开原市";
+ case 2113:
+ return "朝阳市";
+ case 211301:
+ return "市辖区";
+ case 211302:
+ return "双塔区";
+ case 211303:
+ return "龙城区";
+ case 211321:
+ return "朝阳县";
+ case 211322:
+ return "建平县";
+ case 211324:
+ return "喀喇沁左翼蒙古族自治县";
+ case 211381:
+ return "北票市";
+ case 211382:
+ return "凌源市";
+ case 2114:
+ return "葫芦岛市";
+ case 211401:
+ return "市辖区";
+ case 211402:
+ return "连山区";
+ case 211403:
+ return "龙港区";
+ case 211404:
+ return "南票区";
+ case 211421:
+ return "绥中县";
+ case 211422:
+ return "建昌县";
+ case 211481:
+ return "兴城市";
+ case 22:
+ return "吉林省";
+ case 2201:
+ return "长春市";
+ case 220101:
+ return "市辖区";
+ case 220102:
+ return "南关区";
+ case 220103:
+ return "宽城区";
+ case 220104:
+ return "朝阳区";
+ case 220105:
+ return "二道区";
+ case 220106:
+ return "绿园区";
+ case 220112:
+ return "双阳区";
+ case 220113:
+ return "九台区";
+ case 220122:
+ return "农安县";
+ case 220182:
+ return "榆树市";
+ case 220183:
+ return "德惠市";
+ case 2202:
+ return "吉林市";
+ case 220201:
+ return "市辖区";
+ case 220202:
+ return "昌邑区";
+ case 220203:
+ return "龙潭区";
+ case 220204:
+ return "船营区";
+ case 220211:
+ return "丰满区";
+ case 220221:
+ return "永吉县";
+ case 220281:
+ return "蛟河市";
+ case 220282:
+ return "桦甸市";
+ case 220283:
+ return "舒兰市";
+ case 220284:
+ return "磐石市";
+ case 2203:
+ return "四平市";
+ case 220301:
+ return "市辖区";
+ case 220302:
+ return "铁西区";
+ case 220303:
+ return "铁东区";
+ case 220322:
+ return "梨树县";
+ case 220323:
+ return "伊通满族自治县";
+ case 220381:
+ return "公主岭市";
+ case 220382:
+ return "双辽市";
+ case 2204:
+ return "辽源市";
+ case 220401:
+ return "市辖区";
+ case 220402:
+ return "龙山区";
+ case 220403:
+ return "西安区";
+ case 220421:
+ return "东丰县";
+ case 220422:
+ return "东辽县";
+ case 2205:
+ return "通化市";
+ case 220501:
+ return "市辖区";
+ case 220502:
+ return "东昌区";
+ case 220503:
+ return "二道江区";
+ case 220521:
+ return "通化县";
+ case 220523:
+ return "辉南县";
+ case 220524:
+ return "柳河县";
+ case 220581:
+ return "梅河口市";
+ case 220582:
+ return "集安市";
+ case 2206:
+ return "白山市";
+ case 220601:
+ return "市辖区";
+ case 220602:
+ return "浑江区";
+ case 220605:
+ return "江源区";
+ case 220621:
+ return "抚松县";
+ case 220622:
+ return "靖宇县";
+ case 220623:
+ return "长白朝鲜族自治县";
+ case 220681:
+ return "临江市";
+ case 2207:
+ return "松原市";
+ case 220701:
+ return "市辖区";
+ case 220702:
+ return "宁江区";
+ case 220721:
+ return "前郭尔罗斯蒙古族自治县";
+ case 220722:
+ return "长岭县";
+ case 220723:
+ return "乾安县";
+ case 220781:
+ return "扶余市";
+ case 2208:
+ return "白城市";
+ case 220801:
+ return "市辖区";
+ case 220802:
+ return "洮北区";
+ case 220821:
+ return "镇赉县";
+ case 220822:
+ return "通榆县";
+ case 220881:
+ return "洮南市";
+ case 220882:
+ return "大安市";
+ case 2224:
+ return "延边朝鲜族自治州";
+ case 222401:
+ return "延吉市";
+ case 222402:
+ return "图们市";
+ case 222403:
+ return "敦化市";
+ case 222404:
+ return "珲春市";
+ case 222405:
+ return "龙井市";
+ case 222406:
+ return "和龙市";
+ case 222424:
+ return "汪清县";
+ case 222426:
+ return "安图县";
+ case 23:
+ return "黑龙江省";
+ case 2301:
+ return "哈尔滨市";
+ case 230101:
+ return "市辖区";
+ case 230102:
+ return "道里区";
+ case 230103:
+ return "南岗区";
+ case 230104:
+ return "道外区";
+ case 230108:
+ return "平房区";
+ case 230109:
+ return "松北区";
+ case 230110:
+ return "香坊区";
+ case 230111:
+ return "呼兰区";
+ case 230112:
+ return "阿城区";
+ case 230123:
+ return "依兰县";
+ case 230124:
+ return "方正县";
+ case 230125:
+ return "宾县";
+ case 230126:
+ return "巴彦县";
+ case 230127:
+ return "木兰县";
+ case 230128:
+ return "通河县";
+ case 230129:
+ return "延寿县";
+ case 230182:
+ return "双城市";
+ case 230183:
+ return "尚志市";
+ case 230184:
+ return "五常市";
+ case 2302:
+ return "齐齐哈尔市";
+ case 230201:
+ return "市辖区";
+ case 230202:
+ return "龙沙区";
+ case 230203:
+ return "建华区";
+ case 230204:
+ return "铁锋区";
+ case 230205:
+ return "昂昂溪区";
+ case 230206:
+ return "富拉尔基区";
+ case 230207:
+ return "碾子山区";
+ case 230208:
+ return "梅里斯达斡尔族区";
+ case 230221:
+ return "龙江县";
+ case 230223:
+ return "依安县";
+ case 230224:
+ return "泰来县";
+ case 230225:
+ return "甘南县";
+ case 230227:
+ return "富裕县";
+ case 230229:
+ return "克山县";
+ case 230230:
+ return "克东县";
+ case 230231:
+ return "拜泉县";
+ case 230281:
+ return "讷河市";
+ case 2303:
+ return "鸡西市";
+ case 230301:
+ return "市辖区";
+ case 230302:
+ return "鸡冠区";
+ case 230303:
+ return "恒山区";
+ case 230304:
+ return "滴道区";
+ case 230305:
+ return "梨树区";
+ case 230306:
+ return "城子河区";
+ case 230307:
+ return "麻山区";
+ case 230321:
+ return "鸡东县";
+ case 230381:
+ return "虎林市";
+ case 230382:
+ return "密山市";
+ case 2304:
+ return "鹤岗市";
+ case 230401:
+ return "市辖区";
+ case 230402:
+ return "向阳区";
+ case 230403:
+ return "工农区";
+ case 230404:
+ return "南山区";
+ case 230405:
+ return "兴安区";
+ case 230406:
+ return "东山区";
+ case 230407:
+ return "兴山区";
+ case 230421:
+ return "萝北县";
+ case 230422:
+ return "绥滨县";
+ case 2305:
+ return "双鸭山市";
+ case 230501:
+ return "市辖区";
+ case 230502:
+ return "尖山区";
+ case 230503:
+ return "岭东区";
+ case 230505:
+ return "四方台区";
+ case 230506:
+ return "宝山区";
+ case 230521:
+ return "集贤县";
+ case 230522:
+ return "友谊县";
+ case 230523:
+ return "宝清县";
+ case 230524:
+ return "饶河县";
+ case 2306:
+ return "大庆市";
+ case 230601:
+ return "市辖区";
+ case 230602:
+ return "萨尔图区";
+ case 230603:
+ return "龙凤区";
+ case 230604:
+ return "让胡路区";
+ case 230605:
+ return "红岗区";
+ case 230606:
+ return "大同区";
+ case 230621:
+ return "肇州县";
+ case 230622:
+ return "肇源县";
+ case 230623:
+ return "林甸县";
+ case 230624:
+ return "杜尔伯特蒙古族自治县";
+ case 2307:
+ return "伊春市";
+ case 230701:
+ return "市辖区";
+ case 230702:
+ return "伊春区";
+ case 230703:
+ return "南岔区";
+ case 230704:
+ return "友好区";
+ case 230705:
+ return "西林区";
+ case 230706:
+ return "翠峦区";
+ case 230707:
+ return "新青区";
+ case 230708:
+ return "美溪区";
+ case 230709:
+ return "金山屯区";
+ case 230710:
+ return "五营区";
+ case 230711:
+ return "乌马河区";
+ case 230712:
+ return "汤旺河区";
+ case 230713:
+ return "带岭区";
+ case 230714:
+ return "乌伊岭区";
+ case 230715:
+ return "红星区";
+ case 230716:
+ return "上甘岭区";
+ case 230722:
+ return "嘉荫县";
+ case 230781:
+ return "铁力市";
+ case 2308:
+ return "佳木斯市";
+ case 230801:
+ return "市辖区";
+ case 230803:
+ return "向阳区";
+ case 230804:
+ return "前进区";
+ case 230805:
+ return "东风区";
+ case 230811:
+ return "郊区";
+ case 230822:
+ return "桦南县";
+ case 230826:
+ return "桦川县";
+ case 230828:
+ return "汤原县";
+ case 230833:
+ return "抚远县";
+ case 230881:
+ return "同江市";
+ case 230882:
+ return "富锦市";
+ case 2309:
+ return "七台河市";
+ case 230901:
+ return "市辖区";
+ case 230902:
+ return "新兴区";
+ case 230903:
+ return "桃山区";
+ case 230904:
+ return "茄子河区";
+ case 230921:
+ return "勃利县";
+ case 2310:
+ return "牡丹江市";
+ case 231001:
+ return "市辖区";
+ case 231002:
+ return "东安区";
+ case 231003:
+ return "阳明区";
+ case 231004:
+ return "爱民区";
+ case 231005:
+ return "西安区";
+ case 231024:
+ return "东宁县";
+ case 231025:
+ return "林口县";
+ case 231081:
+ return "绥芬河市";
+ case 231083:
+ return "海林市";
+ case 231084:
+ return "宁安市";
+ case 231085:
+ return "穆棱市";
+ case 2311:
+ return "黑河市";
+ case 231101:
+ return "市辖区";
+ case 231102:
+ return "爱辉区";
+ case 231121:
+ return "嫩江县";
+ case 231123:
+ return "逊克县";
+ case 231124:
+ return "孙吴县";
+ case 231181:
+ return "北安市";
+ case 231182:
+ return "五大连池市";
+ case 2312:
+ return "绥化市";
+ case 231201:
+ return "市辖区";
+ case 231202:
+ return "北林区";
+ case 231221:
+ return "望奎县";
+ case 231222:
+ return "兰西县";
+ case 231223:
+ return "青冈县";
+ case 231224:
+ return "庆安县";
+ case 231225:
+ return "明水县";
+ case 231226:
+ return "绥棱县";
+ case 231281:
+ return "安达市";
+ case 231282:
+ return "肇东市";
+ case 231283:
+ return "海伦市";
+ case 2327:
+ return "大兴安岭地区";
+ case 232721:
+ return "呼玛县";
+ case 232722:
+ return "塔河县";
+ case 232723:
+ return "漠河县";
+ case 31:
+ return "上海市";
+ case 3101:
+ return "市辖区";
+ case 310101:
+ return "黄浦区";
+ case 310104:
+ return "徐汇区";
+ case 310105:
+ return "长宁区";
+ case 310106:
+ return "静安区";
+ case 310107:
+ return "普陀区";
+ case 310108:
+ return "闸北区";
+ case 310109:
+ return "虹口区";
+ case 310110:
+ return "杨浦区";
+ case 310112:
+ return "闵行区";
+ case 310113:
+ return "宝山区";
+ case 310114:
+ return "嘉定区";
+ case 310115:
+ return "浦东新区";
+ case 310116:
+ return "金山区";
+ case 310117:
+ return "松江区";
+ case 310118:
+ return "青浦区";
+ case 310120:
+ return "奉贤区";
+ case 3102:
+ return "县";
+ case 310230:
+ return "崇明县";
+ case 32:
+ return "江苏省";
+ case 3201:
+ return "南京市";
+ case 320101:
+ return "市辖区";
+ case 320102:
+ return "玄武区";
+ case 320104:
+ return "秦淮区";
+ case 320105:
+ return "建邺区";
+ case 320106:
+ return "鼓楼区";
+ case 320111:
+ return "浦口区";
+ case 320113:
+ return "栖霞区";
+ case 320114:
+ return "雨花台区";
+ case 320115:
+ return "江宁区";
+ case 320116:
+ return "六合区";
+ case 320117:
+ return "溧水区";
+ case 320118:
+ return "高淳区";
+ case 3202:
+ return "无锡市";
+ case 320201:
+ return "市辖区";
+ case 320202:
+ return "崇安区";
+ case 320203:
+ return "南长区";
+ case 320204:
+ return "北塘区";
+ case 320205:
+ return "锡山区";
+ case 320206:
+ return "惠山区";
+ case 320211:
+ return "滨湖区";
+ case 320281:
+ return "江阴市";
+ case 320282:
+ return "宜兴市";
+ case 3203:
+ return "徐州市";
+ case 320301:
+ return "市辖区";
+ case 320302:
+ return "鼓楼区";
+ case 320303:
+ return "云龙区";
+ case 320305:
+ return "贾汪区";
+ case 320311:
+ return "泉山区";
+ case 320312:
+ return "铜山区";
+ case 320321:
+ return "丰县";
+ case 320322:
+ return "沛县";
+ case 320324:
+ return "睢宁县";
+ case 320381:
+ return "新沂市";
+ case 320382:
+ return "邳州市";
+ case 3204:
+ return "常州市";
+ case 320401:
+ return "市辖区";
+ case 320402:
+ return "天宁区";
+ case 320404:
+ return "钟楼区";
+ case 320405:
+ return "戚墅堰区";
+ case 320411:
+ return "新北区";
+ case 320412:
+ return "武进区";
+ case 320481:
+ return "溧阳市";
+ case 320482:
+ return "金坛市";
+ case 3205:
+ return "苏州市";
+ case 320501:
+ return "市辖区";
+ case 320505:
+ return "虎丘区";
+ case 320506:
+ return "吴中区";
+ case 320507:
+ return "相城区";
+ case 320508:
+ return "姑苏区";
+ case 320509:
+ return "吴江区";
+ case 320581:
+ return "常熟市";
+ case 320582:
+ return "张家港市";
+ case 320583:
+ return "昆山市";
+ case 320585:
+ return "太仓市";
+ case 3206:
+ return "南通市";
+ case 320601:
+ return "市辖区";
+ case 320602:
+ return "崇川区";
+ case 320611:
+ return "港闸区";
+ case 320612:
+ return "通州区";
+ case 320621:
+ return "海安县";
+ case 320623:
+ return "如东县";
+ case 320681:
+ return "启东市";
+ case 320682:
+ return "如皋市";
+ case 320684:
+ return "海门市";
+ case 3207:
+ return "连云港市";
+ case 320701:
+ return "市辖区";
+ case 320703:
+ return "连云区";
+ case 320706:
+ return "海州区";
+ case 320707:
+ return "赣榆区";
+ case 320722:
+ return "东海县";
+ case 320723:
+ return "灌云县";
+ case 320724:
+ return "灌南县";
+ case 3208:
+ return "淮安市";
+ case 320801:
+ return "市辖区";
+ case 320802:
+ return "清河区";
+ case 320803:
+ return "淮安区";
+ case 320804:
+ return "淮阴区";
+ case 320811:
+ return "清浦区";
+ case 320826:
+ return "涟水县";
+ case 320829:
+ return "洪泽县";
+ case 320830:
+ return "盱眙县";
+ case 320831:
+ return "金湖县";
+ case 3209:
+ return "盐城市";
+ case 320901:
+ return "市辖区";
+ case 320902:
+ return "亭湖区";
+ case 320903:
+ return "盐都区";
+ case 320921:
+ return "响水县";
+ case 320922:
+ return "滨海县";
+ case 320923:
+ return "阜宁县";
+ case 320924:
+ return "射阳县";
+ case 320925:
+ return "建湖县";
+ case 320981:
+ return "东台市";
+ case 320982:
+ return "大丰市";
+ case 3210:
+ return "扬州市";
+ case 321001:
+ return "市辖区";
+ case 321002:
+ return "广陵区";
+ case 321003:
+ return "邗江区";
+ case 321012:
+ return "江都区";
+ case 321023:
+ return "宝应县";
+ case 321081:
+ return "仪征市";
+ case 321084:
+ return "高邮市";
+ case 3211:
+ return "镇江市";
+ case 321101:
+ return "市辖区";
+ case 321102:
+ return "京口区";
+ case 321111:
+ return "润州区";
+ case 321112:
+ return "丹徒区";
+ case 321181:
+ return "丹阳市";
+ case 321182:
+ return "扬中市";
+ case 321183:
+ return "句容市";
+ case 3212:
+ return "泰州市";
+ case 321201:
+ return "市辖区";
+ case 321202:
+ return "海陵区";
+ case 321203:
+ return "高港区";
+ case 321204:
+ return "姜堰区";
+ case 321281:
+ return "兴化市";
+ case 321282:
+ return "靖江市";
+ case 321283:
+ return "泰兴市";
+ case 3213:
+ return "宿迁市";
+ case 321301:
+ return "市辖区";
+ case 321302:
+ return "宿城区";
+ case 321311:
+ return "宿豫区";
+ case 321322:
+ return "沭阳县";
+ case 321323:
+ return "泗阳县";
+ case 321324:
+ return "泗洪县";
+ case 33:
+ return "浙江省";
+ case 3301:
+ return "杭州市";
+ case 330101:
+ return "市辖区";
+ case 330102:
+ return "上城区";
+ case 330103:
+ return "下城区";
+ case 330104:
+ return "江干区";
+ case 330105:
+ return "拱墅区";
+ case 330106:
+ return "西湖区";
+ case 330108:
+ return "滨江区";
+ case 330109:
+ return "萧山区";
+ case 330110:
+ return "余杭区";
+ case 330122:
+ return "桐庐县";
+ case 330127:
+ return "淳安县";
+ case 330182:
+ return "建德市";
+ case 330183:
+ return "富阳市";
+ case 330185:
+ return "临安市";
+ case 3302:
+ return "宁波市";
+ case 330201:
+ return "市辖区";
+ case 330203:
+ return "海曙区";
+ case 330204:
+ return "江东区";
+ case 330205:
+ return "江北区";
+ case 330206:
+ return "北仑区";
+ case 330211:
+ return "镇海区";
+ case 330212:
+ return "鄞州区";
+ case 330225:
+ return "象山县";
+ case 330226:
+ return "宁海县";
+ case 330281:
+ return "余姚市";
+ case 330282:
+ return "慈溪市";
+ case 330283:
+ return "奉化市";
+ case 3303:
+ return "温州市";
+ case 330301:
+ return "市辖区";
+ case 330302:
+ return "鹿城区";
+ case 330303:
+ return "龙湾区";
+ case 330304:
+ return "瓯海区";
+ case 330322:
+ return "洞头县";
+ case 330324:
+ return "永嘉县";
+ case 330326:
+ return "平阳县";
+ case 330327:
+ return "苍南县";
+ case 330328:
+ return "文成县";
+ case 330329:
+ return "泰顺县";
+ case 330381:
+ return "瑞安市";
+ case 330382:
+ return "乐清市";
+ case 3304:
+ return "嘉兴市";
+ case 330401:
+ return "市辖区";
+ case 330402:
+ return "南湖区";
+ case 330411:
+ return "秀洲区";
+ case 330421:
+ return "嘉善县";
+ case 330424:
+ return "海盐县";
+ case 330481:
+ return "海宁市";
+ case 330482:
+ return "平湖市";
+ case 330483:
+ return "桐乡市";
+ case 3305:
+ return "湖州市";
+ case 330501:
+ return "市辖区";
+ case 330502:
+ return "吴兴区";
+ case 330503:
+ return "南浔区";
+ case 330521:
+ return "德清县";
+ case 330522:
+ return "长兴县";
+ case 330523:
+ return "安吉县";
+ case 3306:
+ return "绍兴市";
+ case 330601:
+ return "市辖区";
+ case 330602:
+ return "越城区";
+ case 330603:
+ return "柯桥区";
+ case 330604:
+ return "上虞区";
+ case 330624:
+ return "新昌县";
+ case 330681:
+ return "诸暨市";
+ case 330683:
+ return "嵊州市";
+ case 3307:
+ return "金华市";
+ case 330701:
+ return "市辖区";
+ case 330702:
+ return "婺城区";
+ case 330703:
+ return "金东区";
+ case 330723:
+ return "武义县";
+ case 330726:
+ return "浦江县";
+ case 330727:
+ return "磐安县";
+ case 330781:
+ return "兰溪市";
+ case 330782:
+ return "义乌市";
+ case 330783:
+ return "东阳市";
+ case 330784:
+ return "永康市";
+ case 3308:
+ return "衢州市";
+ case 330801:
+ return "市辖区";
+ case 330802:
+ return "柯城区";
+ case 330803:
+ return "衢江区";
+ case 330822:
+ return "常山县";
+ case 330824:
+ return "开化县";
+ case 330825:
+ return "龙游县";
+ case 330881:
+ return "江山市";
+ case 3309:
+ return "舟山市";
+ case 330901:
+ return "市辖区";
+ case 330902:
+ return "定海区";
+ case 330903:
+ return "普陀区";
+ case 330921:
+ return "岱山县";
+ case 330922:
+ return "嵊泗县";
+ case 3310:
+ return "台州市";
+ case 331001:
+ return "市辖区";
+ case 331002:
+ return "椒江区";
+ case 331003:
+ return "黄岩区";
+ case 331004:
+ return "路桥区";
+ case 331021:
+ return "玉环县";
+ case 331022:
+ return "三门县";
+ case 331023:
+ return "天台县";
+ case 331024:
+ return "仙居县";
+ case 331081:
+ return "温岭市";
+ case 331082:
+ return "临海市";
+ case 3311:
+ return "丽水市";
+ case 331101:
+ return "市辖区";
+ case 331102:
+ return "莲都区";
+ case 331121:
+ return "青田县";
+ case 331122:
+ return "缙云县";
+ case 331123:
+ return "遂昌县";
+ case 331124:
+ return "松阳县";
+ case 331125:
+ return "云和县";
+ case 331126:
+ return "庆元县";
+ case 331127:
+ return "景宁畲族自治县";
+ case 331181:
+ return "龙泉市";
+ case 34:
+ return "安徽省";
+ case 3401:
+ return "合肥市";
+ case 340101:
+ return "市辖区";
+ case 340102:
+ return "瑶海区";
+ case 340103:
+ return "庐阳区";
+ case 340104:
+ return "蜀山区";
+ case 340111:
+ return "包河区";
+ case 340121:
+ return "长丰县";
+ case 340122:
+ return "肥东县";
+ case 340123:
+ return "肥西县";
+ case 340124:
+ return "庐江县";
+ case 340181:
+ return "巢湖市";
+ case 3402:
+ return "芜湖市";
+ case 340201:
+ return "市辖区";
+ case 340202:
+ return "镜湖区";
+ case 340203:
+ return "弋江区";
+ case 340207:
+ return "鸠江区";
+ case 340208:
+ return "三山区";
+ case 340221:
+ return "芜湖县";
+ case 340222:
+ return "繁昌县";
+ case 340223:
+ return "南陵县";
+ case 340225:
+ return "无为县";
+ case 3403:
+ return "蚌埠市";
+ case 340301:
+ return "市辖区";
+ case 340302:
+ return "龙子湖区";
+ case 340303:
+ return "蚌山区";
+ case 340304:
+ return "禹会区";
+ case 340311:
+ return "淮上区";
+ case 340321:
+ return "怀远县";
+ case 340322:
+ return "五河县";
+ case 340323:
+ return "固镇县";
+ case 3404:
+ return "淮南市";
+ case 340401:
+ return "市辖区";
+ case 340402:
+ return "大通区";
+ case 340403:
+ return "田家庵区";
+ case 340404:
+ return "谢家集区";
+ case 340405:
+ return "八公山区";
+ case 340406:
+ return "潘集区";
+ case 340421:
+ return "凤台县";
+ case 3405:
+ return "马鞍山市";
+ case 340501:
+ return "市辖区";
+ case 340503:
+ return "花山区";
+ case 340504:
+ return "雨山区";
+ case 340506:
+ return "博望区";
+ case 340521:
+ return "当涂县";
+ case 340522:
+ return "含山县";
+ case 340523:
+ return "和县";
+ case 3406:
+ return "淮北市";
+ case 340601:
+ return "市辖区";
+ case 340602:
+ return "杜集区";
+ case 340603:
+ return "相山区";
+ case 340604:
+ return "烈山区";
+ case 340621:
+ return "濉溪县";
+ case 3407:
+ return "铜陵市";
+ case 340701:
+ return "市辖区";
+ case 340702:
+ return "铜官山区";
+ case 340703:
+ return "狮子山区";
+ case 340711:
+ return "郊区";
+ case 340721:
+ return "铜陵县";
+ case 3408:
+ return "安庆市";
+ case 340801:
+ return "市辖区";
+ case 340802:
+ return "迎江区";
+ case 340803:
+ return "大观区";
+ case 340811:
+ return "宜秀区";
+ case 340822:
+ return "怀宁县";
+ case 340823:
+ return "枞阳县";
+ case 340824:
+ return "潜山县";
+ case 340825:
+ return "太湖县";
+ case 340826:
+ return "宿松县";
+ case 340827:
+ return "望江县";
+ case 340828:
+ return "岳西县";
+ case 340881:
+ return "桐城市";
+ case 3410:
+ return "黄山市";
+ case 341001:
+ return "市辖区";
+ case 341002:
+ return "屯溪区";
+ case 341003:
+ return "黄山区";
+ case 341004:
+ return "徽州区";
+ case 341021:
+ return "歙县";
+ case 341022:
+ return "休宁县";
+ case 341023:
+ return "黟县";
+ case 341024:
+ return "祁门县";
+ case 3411:
+ return "滁州市";
+ case 341101:
+ return "市辖区";
+ case 341102:
+ return "琅琊区";
+ case 341103:
+ return "南谯区";
+ case 341122:
+ return "来安县";
+ case 341124:
+ return "全椒县";
+ case 341125:
+ return "定远县";
+ case 341126:
+ return "凤阳县";
+ case 341181:
+ return "天长市";
+ case 341182:
+ return "明光市";
+ case 3412:
+ return "阜阳市";
+ case 341201:
+ return "市辖区";
+ case 341202:
+ return "颍州区";
+ case 341203:
+ return "颍东区";
+ case 341204:
+ return "颍泉区";
+ case 341221:
+ return "临泉县";
+ case 341222:
+ return "太和县";
+ case 341225:
+ return "阜南县";
+ case 341226:
+ return "颍上县";
+ case 341282:
+ return "界首市";
+ case 3413:
+ return "宿州市";
+ case 341301:
+ return "市辖区";
+ case 341302:
+ return "埇桥区";
+ case 341321:
+ return "砀山县";
+ case 341322:
+ return "萧县";
+ case 341323:
+ return "灵璧县";
+ case 341324:
+ return "泗县";
+ case 3415:
+ return "六安市";
+ case 341501:
+ return "市辖区";
+ case 341502:
+ return "金安区";
+ case 341503:
+ return "裕安区";
+ case 341521:
+ return "寿县";
+ case 341522:
+ return "霍邱县";
+ case 341523:
+ return "舒城县";
+ case 341524:
+ return "金寨县";
+ case 341525:
+ return "霍山县";
+ case 3416:
+ return "亳州市";
+ case 341601:
+ return "市辖区";
+ case 341602:
+ return "谯城区";
+ case 341621:
+ return "涡阳县";
+ case 341622:
+ return "蒙城县";
+ case 341623:
+ return "利辛县";
+ case 3417:
+ return "池州市";
+ case 341701:
+ return "市辖区";
+ case 341702:
+ return "贵池区";
+ case 341721:
+ return "东至县";
+ case 341722:
+ return "石台县";
+ case 341723:
+ return "青阳县";
+ case 3418:
+ return "宣城市";
+ case 341801:
+ return "市辖区";
+ case 341802:
+ return "宣州区";
+ case 341821:
+ return "郎溪县";
+ case 341822:
+ return "广德县";
+ case 341823:
+ return "泾县";
+ case 341824:
+ return "绩溪县";
+ case 341825:
+ return "旌德县";
+ case 341881:
+ return "宁国市";
+ case 35:
+ return "福建省";
+ case 3501:
+ return "福州市";
+ case 350101:
+ return "市辖区";
+ case 350102:
+ return "鼓楼区";
+ case 350103:
+ return "台江区";
+ case 350104:
+ return "仓山区";
+ case 350105:
+ return "马尾区";
+ case 350111:
+ return "晋安区";
+ case 350121:
+ return "闽侯县";
+ case 350122:
+ return "连江县";
+ case 350123:
+ return "罗源县";
+ case 350124:
+ return "闽清县";
+ case 350125:
+ return "永泰县";
+ case 350128:
+ return "平潭县";
+ case 350181:
+ return "福清市";
+ case 350182:
+ return "长乐市";
+ case 3502:
+ return "厦门市";
+ case 350201:
+ return "市辖区";
+ case 350203:
+ return "思明区";
+ case 350205:
+ return "海沧区";
+ case 350206:
+ return "湖里区";
+ case 350211:
+ return "集美区";
+ case 350212:
+ return "同安区";
+ case 350213:
+ return "翔安区";
+ case 3503:
+ return "莆田市";
+ case 350301:
+ return "市辖区";
+ case 350302:
+ return "城厢区";
+ case 350303:
+ return "涵江区";
+ case 350304:
+ return "荔城区";
+ case 350305:
+ return "秀屿区";
+ case 350322:
+ return "仙游县";
+ case 3504:
+ return "三明市";
+ case 350401:
+ return "市辖区";
+ case 350402:
+ return "梅列区";
+ case 350403:
+ return "三元区";
+ case 350421:
+ return "明溪县";
+ case 350423:
+ return "清流县";
+ case 350424:
+ return "宁化县";
+ case 350425:
+ return "大田县";
+ case 350426:
+ return "尤溪县";
+ case 350427:
+ return "沙县";
+ case 350428:
+ return "将乐县";
+ case 350429:
+ return "泰宁县";
+ case 350430:
+ return "建宁县";
+ case 350481:
+ return "永安市";
+ case 3505:
+ return "泉州市";
+ case 350501:
+ return "市辖区";
+ case 350502:
+ return "鲤城区";
+ case 350503:
+ return "丰泽区";
+ case 350504:
+ return "洛江区";
+ case 350505:
+ return "泉港区";
+ case 350521:
+ return "惠安县";
+ case 350524:
+ return "安溪县";
+ case 350525:
+ return "永春县";
+ case 350526:
+ return "德化县";
+ case 350527:
+ return "金门县";
+ case 350581:
+ return "石狮市";
+ case 350582:
+ return "晋江市";
+ case 350583:
+ return "南安市";
+ case 3506:
+ return "漳州市";
+ case 350601:
+ return "市辖区";
+ case 350602:
+ return "芗城区";
+ case 350603:
+ return "龙文区";
+ case 350622:
+ return "云霄县";
+ case 350623:
+ return "漳浦县";
+ case 350624:
+ return "诏安县";
+ case 350625:
+ return "长泰县";
+ case 350626:
+ return "东山县";
+ case 350627:
+ return "南靖县";
+ case 350628:
+ return "平和县";
+ case 350629:
+ return "华安县";
+ case 350681:
+ return "龙海市";
+ case 3507:
+ return "南平市";
+ case 350701:
+ return "市辖区";
+ case 350702:
+ return "延平区";
+ case 350721:
+ return "顺昌县";
+ case 350722:
+ return "浦城县";
+ case 350723:
+ return "光泽县";
+ case 350724:
+ return "松溪县";
+ case 350725:
+ return "政和县";
+ case 350781:
+ return "邵武市";
+ case 350782:
+ return "武夷山市";
+ case 350783:
+ return "建瓯市";
+ case 350784:
+ return "建阳市";
+ case 3508:
+ return "龙岩市";
+ case 350801:
+ return "市辖区";
+ case 350802:
+ return "新罗区";
+ case 350821:
+ return "长汀县";
+ case 350822:
+ return "永定县";
+ case 350823:
+ return "上杭县";
+ case 350824:
+ return "武平县";
+ case 350825:
+ return "连城县";
+ case 350881:
+ return "漳平市";
+ case 3509:
+ return "宁德市";
+ case 350901:
+ return "市辖区";
+ case 350902:
+ return "蕉城区";
+ case 350921:
+ return "霞浦县";
+ case 350922:
+ return "古田县";
+ case 350923:
+ return "屏南县";
+ case 350924:
+ return "寿宁县";
+ case 350925:
+ return "周宁县";
+ case 350926:
+ return "柘荣县";
+ case 350981:
+ return "福安市";
+ case 350982:
+ return "福鼎市";
+ case 36:
+ return "江西省";
+ case 3601:
+ return "南昌市";
+ case 360101:
+ return "市辖区";
+ case 360102:
+ return "东湖区";
+ case 360103:
+ return "西湖区";
+ case 360104:
+ return "青云谱区";
+ case 360105:
+ return "湾里区";
+ case 360111:
+ return "青山湖区";
+ case 360121:
+ return "南昌县";
+ case 360122:
+ return "新建县";
+ case 360123:
+ return "安义县";
+ case 360124:
+ return "进贤县";
+ case 3602:
+ return "景德镇市";
+ case 360201:
+ return "市辖区";
+ case 360202:
+ return "昌江区";
+ case 360203:
+ return "珠山区";
+ case 360222:
+ return "浮梁县";
+ case 360281:
+ return "乐平市";
+ case 3603:
+ return "萍乡市";
+ case 360301:
+ return "市辖区";
+ case 360302:
+ return "安源区";
+ case 360313:
+ return "湘东区";
+ case 360321:
+ return "莲花县";
+ case 360322:
+ return "上栗县";
+ case 360323:
+ return "芦溪县";
+ case 3604:
+ return "九江市";
+ case 360401:
+ return "市辖区";
+ case 360402:
+ return "庐山区";
+ case 360403:
+ return "浔阳区";
+ case 360421:
+ return "九江县";
+ case 360423:
+ return "武宁县";
+ case 360424:
+ return "修水县";
+ case 360425:
+ return "永修县";
+ case 360426:
+ return "德安县";
+ case 360427:
+ return "星子县";
+ case 360428:
+ return "都昌县";
+ case 360429:
+ return "湖口县";
+ case 360430:
+ return "彭泽县";
+ case 360481:
+ return "瑞昌市";
+ case 360482:
+ return "共青城市";
+ case 3605:
+ return "新余市";
+ case 360501:
+ return "市辖区";
+ case 360502:
+ return "渝水区";
+ case 360521:
+ return "分宜县";
+ case 3606:
+ return "鹰潭市";
+ case 360601:
+ return "市辖区";
+ case 360602:
+ return "月湖区";
+ case 360622:
+ return "余江县";
+ case 360681:
+ return "贵溪市";
+ case 3607:
+ return "赣州市";
+ case 360701:
+ return "市辖区";
+ case 360702:
+ return "章贡区";
+ case 360703:
+ return "南康区";
+ case 360721:
+ return "赣县";
+ case 360722:
+ return "信丰县";
+ case 360723:
+ return "大余县";
+ case 360724:
+ return "上犹县";
+ case 360725:
+ return "崇义县";
+ case 360726:
+ return "安远县";
+ case 360727:
+ return "龙南县";
+ case 360728:
+ return "定南县";
+ case 360729:
+ return "全南县";
+ case 360730:
+ return "宁都县";
+ case 360731:
+ return "于都县";
+ case 360732:
+ return "兴国县";
+ case 360733:
+ return "会昌县";
+ case 360734:
+ return "寻乌县";
+ case 360735:
+ return "石城县";
+ case 360781:
+ return "瑞金市";
+ case 3608:
+ return "吉安市";
+ case 360801:
+ return "市辖区";
+ case 360802:
+ return "吉州区";
+ case 360803:
+ return "青原区";
+ case 360821:
+ return "吉安县";
+ case 360822:
+ return "吉水县";
+ case 360823:
+ return "峡江县";
+ case 360824:
+ return "新干县";
+ case 360825:
+ return "永丰县";
+ case 360826:
+ return "泰和县";
+ case 360827:
+ return "遂川县";
+ case 360828:
+ return "万安县";
+ case 360829:
+ return "安福县";
+ case 360830:
+ return "永新县";
+ case 360881:
+ return "井冈山市";
+ case 3609:
+ return "宜春市";
+ case 360901:
+ return "市辖区";
+ case 360902:
+ return "袁州区";
+ case 360921:
+ return "奉新县";
+ case 360922:
+ return "万载县";
+ case 360923:
+ return "上高县";
+ case 360924:
+ return "宜丰县";
+ case 360925:
+ return "靖安县";
+ case 360926:
+ return "铜鼓县";
+ case 360981:
+ return "丰城市";
+ case 360982:
+ return "樟树市";
+ case 360983:
+ return "高安市";
+ case 3610:
+ return "抚州市";
+ case 361001:
+ return "市辖区";
+ case 361002:
+ return "临川区";
+ case 361021:
+ return "南城县";
+ case 361022:
+ return "黎川县";
+ case 361023:
+ return "南丰县";
+ case 361024:
+ return "崇仁县";
+ case 361025:
+ return "乐安县";
+ case 361026:
+ return "宜黄县";
+ case 361027:
+ return "金溪县";
+ case 361028:
+ return "资溪县";
+ case 361029:
+ return "东乡县";
+ case 361030:
+ return "广昌县";
+ case 3611:
+ return "上饶市";
+ case 361101:
+ return "市辖区";
+ case 361102:
+ return "信州区";
+ case 361121:
+ return "上饶县";
+ case 361122:
+ return "广丰县";
+ case 361123:
+ return "玉山县";
+ case 361124:
+ return "铅山县";
+ case 361125:
+ return "横峰县";
+ case 361126:
+ return "弋阳县";
+ case 361127:
+ return "余干县";
+ case 361128:
+ return "鄱阳县";
+ case 361129:
+ return "万年县";
+ case 361130:
+ return "婺源县";
+ case 361181:
+ return "德兴市";
+ case 37:
+ return "山东省";
+ case 3701:
+ return "济南市";
+ case 370101:
+ return "市辖区";
+ case 370102:
+ return "历下区";
+ case 370103:
+ return "市中区";
+ case 370104:
+ return "槐荫区";
+ case 370105:
+ return "天桥区";
+ case 370112:
+ return "历城区";
+ case 370113:
+ return "长清区";
+ case 370124:
+ return "平阴县";
+ case 370125:
+ return "济阳县";
+ case 370126:
+ return "商河县";
+ case 370181:
+ return "章丘市";
+ case 3702:
+ return "青岛市";
+ case 370201:
+ return "市辖区";
+ case 370202:
+ return "市南区";
+ case 370203:
+ return "市北区";
+ case 370211:
+ return "黄岛区";
+ case 370212:
+ return "崂山区";
+ case 370213:
+ return "李沧区";
+ case 370214:
+ return "城阳区";
+ case 370281:
+ return "胶州市";
+ case 370282:
+ return "即墨市";
+ case 370283:
+ return "平度市";
+ case 370285:
+ return "莱西市";
+ case 3703:
+ return "淄博市";
+ case 370301:
+ return "市辖区";
+ case 370302:
+ return "淄川区";
+ case 370303:
+ return "张店区";
+ case 370304:
+ return "博山区";
+ case 370305:
+ return "临淄区";
+ case 370306:
+ return "周村区";
+ case 370321:
+ return "桓台县";
+ case 370322:
+ return "高青县";
+ case 370323:
+ return "沂源县";
+ case 3704:
+ return "枣庄市";
+ case 370401:
+ return "市辖区";
+ case 370402:
+ return "市中区";
+ case 370403:
+ return "薛城区";
+ case 370404:
+ return "峄城区";
+ case 370405:
+ return "台儿庄区";
+ case 370406:
+ return "山亭区";
+ case 370481:
+ return "滕州市";
+ case 3705:
+ return "东营市";
+ case 370501:
+ return "市辖区";
+ case 370502:
+ return "东营区";
+ case 370503:
+ return "河口区";
+ case 370521:
+ return "垦利县";
+ case 370522:
+ return "利津县";
+ case 370523:
+ return "广饶县";
+ case 3706:
+ return "烟台市";
+ case 370601:
+ return "市辖区";
+ case 370602:
+ return "芝罘区";
+ case 370611:
+ return "福山区";
+ case 370612:
+ return "牟平区";
+ case 370613:
+ return "莱山区";
+ case 370634:
+ return "长岛县";
+ case 370681:
+ return "龙口市";
+ case 370682:
+ return "莱阳市";
+ case 370683:
+ return "莱州市";
+ case 370684:
+ return "蓬莱市";
+ case 370685:
+ return "招远市";
+ case 370686:
+ return "栖霞市";
+ case 370687:
+ return "海阳市";
+ case 3707:
+ return "潍坊市";
+ case 370701:
+ return "市辖区";
+ case 370702:
+ return "潍城区";
+ case 370703:
+ return "寒亭区";
+ case 370704:
+ return "坊子区";
+ case 370705:
+ return "奎文区";
+ case 370724:
+ return "临朐县";
+ case 370725:
+ return "昌乐县";
+ case 370781:
+ return "青州市";
+ case 370782:
+ return "诸城市";
+ case 370783:
+ return "寿光市";
+ case 370784:
+ return "安丘市";
+ case 370785:
+ return "高密市";
+ case 370786:
+ return "昌邑市";
+ case 3708:
+ return "济宁市";
+ case 370801:
+ return "市辖区";
+ case 370811:
+ return "任城区";
+ case 370812:
+ return "兖州区";
+ case 370826:
+ return "微山县";
+ case 370827:
+ return "鱼台县";
+ case 370828:
+ return "金乡县";
+ case 370829:
+ return "嘉祥县";
+ case 370830:
+ return "汶上县";
+ case 370831:
+ return "泗水县";
+ case 370832:
+ return "梁山县";
+ case 370881:
+ return "曲阜市";
+ case 370883:
+ return "邹城市";
+ case 3709:
+ return "泰安市";
+ case 370901:
+ return "市辖区";
+ case 370902:
+ return "泰山区";
+ case 370911:
+ return "岱岳区";
+ case 370921:
+ return "宁阳县";
+ case 370923:
+ return "东平县";
+ case 370982:
+ return "新泰市";
+ case 370983:
+ return "肥城市";
+ case 3710:
+ return "威海市";
+ case 371001:
+ return "市辖区";
+ case 371002:
+ return "环翠区";
+ case 371003:
+ return "文登区";
+ case 371082:
+ return "荣成市";
+ case 371083:
+ return "乳山市";
+ case 3711:
+ return "日照市";
+ case 371101:
+ return "市辖区";
+ case 371102:
+ return "东港区";
+ case 371103:
+ return "岚山区";
+ case 371121:
+ return "五莲县";
+ case 371122:
+ return "莒县";
+ case 3712:
+ return "莱芜市";
+ case 371201:
+ return "市辖区";
+ case 371202:
+ return "莱城区";
+ case 371203:
+ return "钢城区";
+ case 3713:
+ return "临沂市";
+ case 371301:
+ return "市辖区";
+ case 371302:
+ return "兰山区";
+ case 371311:
+ return "罗庄区";
+ case 371312:
+ return "河东区";
+ case 371321:
+ return "沂南县";
+ case 371322:
+ return "郯城县";
+ case 371323:
+ return "沂水县";
+ case 371324:
+ return "兰陵县";
+ case 371325:
+ return "费县";
+ case 371326:
+ return "平邑县";
+ case 371327:
+ return "莒南县";
+ case 371328:
+ return "蒙阴县";
+ case 371329:
+ return "临沭县";
+ case 3714:
+ return "德州市";
+ case 371401:
+ return "市辖区";
+ case 371402:
+ return "德城区";
+ case 371403:
+ return "陵城区";
+ case 371422:
+ return "宁津县";
+ case 371423:
+ return "庆云县";
+ case 371424:
+ return "临邑县";
+ case 371425:
+ return "齐河县";
+ case 371426:
+ return "平原县";
+ case 371427:
+ return "夏津县";
+ case 371428:
+ return "武城县";
+ case 371481:
+ return "乐陵市";
+ case 371482:
+ return "禹城市";
+ case 3715:
+ return "聊城市";
+ case 371501:
+ return "市辖区";
+ case 371502:
+ return "东昌府区";
+ case 371521:
+ return "阳谷县";
+ case 371522:
+ return "莘县";
+ case 371523:
+ return "茌平县";
+ case 371524:
+ return "东阿县";
+ case 371525:
+ return "冠县";
+ case 371526:
+ return "高唐县";
+ case 371581:
+ return "临清市";
+ case 3716:
+ return "滨州市";
+ case 371601:
+ return "市辖区";
+ case 371602:
+ return "滨城区";
+ case 371603:
+ return "沾化区";
+ case 371621:
+ return "惠民县";
+ case 371622:
+ return "阳信县";
+ case 371623:
+ return "无棣县";
+ case 371625:
+ return "博兴县";
+ case 371626:
+ return "邹平县";
+ case 3717:
+ return "菏泽市";
+ case 371701:
+ return "市辖区";
+ case 371702:
+ return "牡丹区";
+ case 371721:
+ return "曹县";
+ case 371722:
+ return "单县";
+ case 371723:
+ return "成武县";
+ case 371724:
+ return "巨野县";
+ case 371725:
+ return "郓城县";
+ case 371726:
+ return "鄄城县";
+ case 371727:
+ return "定陶县";
+ case 371728:
+ return "东明县";
+ case 41:
+ return "河南省";
+ case 4101:
+ return "郑州市";
+ case 410101:
+ return "市辖区";
+ case 410102:
+ return "中原区";
+ case 410103:
+ return "二七区";
+ case 410104:
+ return "管城回族区";
+ case 410105:
+ return "金水区";
+ case 410106:
+ return "上街区";
+ case 410108:
+ return "惠济区";
+ case 410122:
+ return "中牟县";
+ case 410181:
+ return "巩义市";
+ case 410182:
+ return "荥阳市";
+ case 410183:
+ return "新密市";
+ case 410184:
+ return "新郑市";
+ case 410185:
+ return "登封市";
+ case 4102:
+ return "开封市";
+ case 410201:
+ return "市辖区";
+ case 410202:
+ return "龙亭区";
+ case 410203:
+ return "顺河回族区";
+ case 410204:
+ return "鼓楼区";
+ case 410205:
+ return "禹王台区";
+ case 410211:
+ return "金明区";
+ case 410221:
+ return "杞县";
+ case 410222:
+ return "通许县";
+ case 410223:
+ return "尉氏县";
+ case 410224:
+ return "开封县";
+ case 410225:
+ return "兰考县";
+ case 4103:
+ return "洛阳市";
+ case 410301:
+ return "市辖区";
+ case 410302:
+ return "老城区";
+ case 410303:
+ return "西工区";
+ case 410304:
+ return "瀍河回族区";
+ case 410305:
+ return "涧西区";
+ case 410306:
+ return "吉利区";
+ case 410311:
+ return "洛龙区";
+ case 410322:
+ return "孟津县";
+ case 410323:
+ return "新安县";
+ case 410324:
+ return "栾川县";
+ case 410325:
+ return "嵩县";
+ case 410326:
+ return "汝阳县";
+ case 410327:
+ return "宜阳县";
+ case 410328:
+ return "洛宁县";
+ case 410329:
+ return "伊川县";
+ case 410381:
+ return "偃师市";
+ case 4104:
+ return "平顶山市";
+ case 410401:
+ return "市辖区";
+ case 410402:
+ return "新华区";
+ case 410403:
+ return "卫东区";
+ case 410404:
+ return "石龙区";
+ case 410411:
+ return "湛河区";
+ case 410421:
+ return "宝丰县";
+ case 410422:
+ return "叶县";
+ case 410423:
+ return "鲁山县";
+ case 410425:
+ return "郏县";
+ case 410481:
+ return "舞钢市";
+ case 410482:
+ return "汝州市";
+ case 4105:
+ return "安阳市";
+ case 410501:
+ return "市辖区";
+ case 410502:
+ return "文峰区";
+ case 410503:
+ return "北关区";
+ case 410505:
+ return "殷都区";
+ case 410506:
+ return "龙安区";
+ case 410522:
+ return "安阳县";
+ case 410523:
+ return "汤阴县";
+ case 410526:
+ return "滑县";
+ case 410527:
+ return "内黄县";
+ case 410581:
+ return "林州市";
+ case 4106:
+ return "鹤壁市";
+ case 410601:
+ return "市辖区";
+ case 410602:
+ return "鹤山区";
+ case 410603:
+ return "山城区";
+ case 410611:
+ return "淇滨区";
+ case 410621:
+ return "浚县";
+ case 410622:
+ return "淇县";
+ case 4107:
+ return "新乡市";
+ case 410701:
+ return "市辖区";
+ case 410702:
+ return "红旗区";
+ case 410703:
+ return "卫滨区";
+ case 410704:
+ return "凤泉区";
+ case 410711:
+ return "牧野区";
+ case 410721:
+ return "新乡县";
+ case 410724:
+ return "获嘉县";
+ case 410725:
+ return "原阳县";
+ case 410726:
+ return "延津县";
+ case 410727:
+ return "封丘县";
+ case 410728:
+ return "长垣县";
+ case 410781:
+ return "卫辉市";
+ case 410782:
+ return "辉县市";
+ case 4108:
+ return "焦作市";
+ case 410801:
+ return "市辖区";
+ case 410802:
+ return "解放区";
+ case 410803:
+ return "中站区";
+ case 410804:
+ return "马村区";
+ case 410811:
+ return "山阳区";
+ case 410821:
+ return "修武县";
+ case 410822:
+ return "博爱县";
+ case 410823:
+ return "武陟县";
+ case 410825:
+ return "温县";
+ case 410882:
+ return "沁阳市";
+ case 410883:
+ return "孟州市";
+ case 4109:
+ return "濮阳市";
+ case 410901:
+ return "市辖区";
+ case 410902:
+ return "华龙区";
+ case 410922:
+ return "清丰县";
+ case 410923:
+ return "南乐县";
+ case 410926:
+ return "范县";
+ case 410927:
+ return "台前县";
+ case 410928:
+ return "濮阳县";
+ case 4110:
+ return "许昌市";
+ case 411001:
+ return "市辖区";
+ case 411002:
+ return "魏都区";
+ case 411023:
+ return "许昌县";
+ case 411024:
+ return "鄢陵县";
+ case 411025:
+ return "襄城县";
+ case 411081:
+ return "禹州市";
+ case 411082:
+ return "长葛市";
+ case 4111:
+ return "漯河市";
+ case 411101:
+ return "市辖区";
+ case 411102:
+ return "源汇区";
+ case 411103:
+ return "郾城区";
+ case 411104:
+ return "召陵区";
+ case 411121:
+ return "舞阳县";
+ case 411122:
+ return "临颍县";
+ case 4112:
+ return "三门峡市";
+ case 411201:
+ return "市辖区";
+ case 411202:
+ return "湖滨区";
+ case 411221:
+ return "渑池县";
+ case 411222:
+ return "陕县";
+ case 411224:
+ return "卢氏县";
+ case 411281:
+ return "义马市";
+ case 411282:
+ return "灵宝市";
+ case 4113:
+ return "南阳市";
+ case 411301:
+ return "市辖区";
+ case 411302:
+ return "宛城区";
+ case 411303:
+ return "卧龙区";
+ case 411321:
+ return "南召县";
+ case 411322:
+ return "方城县";
+ case 411323:
+ return "西峡县";
+ case 411324:
+ return "镇平县";
+ case 411325:
+ return "内乡县";
+ case 411326:
+ return "淅川县";
+ case 411327:
+ return "社旗县";
+ case 411328:
+ return "唐河县";
+ case 411329:
+ return "新野县";
+ case 411330:
+ return "桐柏县";
+ case 411381:
+ return "邓州市";
+ case 4114:
+ return "商丘市";
+ case 411401:
+ return "市辖区";
+ case 411402:
+ return "梁园区";
+ case 411403:
+ return "睢阳区";
+ case 411421:
+ return "民权县";
+ case 411422:
+ return "睢县";
+ case 411423:
+ return "宁陵县";
+ case 411424:
+ return "柘城县";
+ case 411425:
+ return "虞城县";
+ case 411426:
+ return "夏邑县";
+ case 411481:
+ return "永城市";
+ case 4115:
+ return "信阳市";
+ case 411501:
+ return "市辖区";
+ case 411502:
+ return "浉河区";
+ case 411503:
+ return "平桥区";
+ case 411521:
+ return "罗山县";
+ case 411522:
+ return "光山县";
+ case 411523:
+ return "新县";
+ case 411524:
+ return "商城县";
+ case 411525:
+ return "固始县";
+ case 411526:
+ return "潢川县";
+ case 411527:
+ return "淮滨县";
+ case 411528:
+ return "息县";
+ case 4116:
+ return "周口市";
+ case 411601:
+ return "市辖区";
+ case 411602:
+ return "川汇区";
+ case 411621:
+ return "扶沟县";
+ case 411622:
+ return "西华县";
+ case 411623:
+ return "商水县";
+ case 411624:
+ return "沈丘县";
+ case 411625:
+ return "郸城县";
+ case 411626:
+ return "淮阳县";
+ case 411627:
+ return "太康县";
+ case 411628:
+ return "鹿邑县";
+ case 411681:
+ return "项城市";
+ case 4117:
+ return "驻马店市";
+ case 411701:
+ return "市辖区";
+ case 411702:
+ return "驿城区";
+ case 411721:
+ return "西平县";
+ case 411722:
+ return "上蔡县";
+ case 411723:
+ return "平舆县";
+ case 411724:
+ return "正阳县";
+ case 411725:
+ return "确山县";
+ case 411726:
+ return "泌阳县";
+ case 411727:
+ return "汝南县";
+ case 411728:
+ return "遂平县";
+ case 411729:
+ return "新蔡县";
+ case 4190:
+ return "省直辖县级行政区划";
+ case 419001:
+ return "济源市";
+ case 42:
+ return "湖北省";
+ case 4201:
+ return "武汉市";
+ case 420101:
+ return "市辖区";
+ case 420102:
+ return "江岸区";
+ case 420103:
+ return "江汉区";
+ case 420104:
+ return "硚口区";
+ case 420105:
+ return "汉阳区";
+ case 420106:
+ return "武昌区";
+ case 420107:
+ return "青山区";
+ case 420111:
+ return "洪山区";
+ case 420112:
+ return "东西湖区";
+ case 420113:
+ return "汉南区";
+ case 420114:
+ return "蔡甸区";
+ case 420115:
+ return "江夏区";
+ case 420116:
+ return "黄陂区";
+ case 420117:
+ return "新洲区";
+ case 4202:
+ return "黄石市";
+ case 420201:
+ return "市辖区";
+ case 420202:
+ return "黄石港区";
+ case 420203:
+ return "西塞山区";
+ case 420204:
+ return "下陆区";
+ case 420205:
+ return "铁山区";
+ case 420222:
+ return "阳新县";
+ case 420281:
+ return "大冶市";
+ case 4203:
+ return "十堰市";
+ case 420301:
+ return "市辖区";
+ case 420302:
+ return "茅箭区";
+ case 420303:
+ return "张湾区";
+ case 420304:
+ return "郧阳区";
+ case 420322:
+ return "郧西县";
+ case 420323:
+ return "竹山县";
+ case 420324:
+ return "竹溪县";
+ case 420325:
+ return "房县";
+ case 420381:
+ return "丹江口市";
+ case 4205:
+ return "宜昌市";
+ case 420501:
+ return "市辖区";
+ case 420502:
+ return "西陵区";
+ case 420503:
+ return "伍家岗区";
+ case 420504:
+ return "点军区";
+ case 420505:
+ return "猇亭区";
+ case 420506:
+ return "夷陵区";
+ case 420525:
+ return "远安县";
+ case 420526:
+ return "兴山县";
+ case 420527:
+ return "秭归县";
+ case 420528:
+ return "长阳土家族自治县";
+ case 420529:
+ return "五峰土家族自治县";
+ case 420581:
+ return "宜都市";
+ case 420582:
+ return "当阳市";
+ case 420583:
+ return "枝江市";
+ case 4206:
+ return "襄阳市";
+ case 420601:
+ return "市辖区";
+ case 420602:
+ return "襄城区";
+ case 420606:
+ return "樊城区";
+ case 420607:
+ return "襄州区";
+ case 420624:
+ return "南漳县";
+ case 420625:
+ return "谷城县";
+ case 420626:
+ return "保康县";
+ case 420682:
+ return "老河口市";
+ case 420683:
+ return "枣阳市";
+ case 420684:
+ return "宜城市";
+ case 4207:
+ return "鄂州市";
+ case 420701:
+ return "市辖区";
+ case 420702:
+ return "梁子湖区";
+ case 420703:
+ return "华容区";
+ case 420704:
+ return "鄂城区";
+ case 4208:
+ return "荆门市";
+ case 420801:
+ return "市辖区";
+ case 420802:
+ return "东宝区";
+ case 420804:
+ return "掇刀区";
+ case 420821:
+ return "京山县";
+ case 420822:
+ return "沙洋县";
+ case 420881:
+ return "钟祥市";
+ case 4209:
+ return "孝感市";
+ case 420901:
+ return "市辖区";
+ case 420902:
+ return "孝南区";
+ case 420921:
+ return "孝昌县";
+ case 420922:
+ return "大悟县";
+ case 420923:
+ return "云梦县";
+ case 420981:
+ return "应城市";
+ case 420982:
+ return "安陆市";
+ case 420984:
+ return "汉川市";
+ case 4210:
+ return "荆州市";
+ case 421001:
+ return "市辖区";
+ case 421002:
+ return "沙市区";
+ case 421003:
+ return "荆州区";
+ case 421022:
+ return "公安县";
+ case 421023:
+ return "监利县";
+ case 421024:
+ return "江陵县";
+ case 421081:
+ return "石首市";
+ case 421083:
+ return "洪湖市";
+ case 421087:
+ return "松滋市";
+ case 4211:
+ return "黄冈市";
+ case 421101:
+ return "市辖区";
+ case 421102:
+ return "黄州区";
+ case 421121:
+ return "团风县";
+ case 421122:
+ return "红安县";
+ case 421123:
+ return "罗田县";
+ case 421124:
+ return "英山县";
+ case 421125:
+ return "浠水县";
+ case 421126:
+ return "蕲春县";
+ case 421127:
+ return "黄梅县";
+ case 421181:
+ return "麻城市";
+ case 421182:
+ return "武穴市";
+ case 4212:
+ return "咸宁市";
+ case 421201:
+ return "市辖区";
+ case 421202:
+ return "咸安区";
+ case 421221:
+ return "嘉鱼县";
+ case 421222:
+ return "通城县";
+ case 421223:
+ return "崇阳县";
+ case 421224:
+ return "通山县";
+ case 421281:
+ return "赤壁市";
+ case 4213:
+ return "随州市";
+ case 421301:
+ return "市辖区";
+ case 421303:
+ return "曾都区";
+ case 421321:
+ return "随县";
+ case 421381:
+ return "广水市";
+ case 4228:
+ return "恩施土家族苗族自治州";
+ case 422801:
+ return "恩施市";
+ case 422802:
+ return "利川市";
+ case 422822:
+ return "建始县";
+ case 422823:
+ return "巴东县";
+ case 422825:
+ return "宣恩县";
+ case 422826:
+ return "咸丰县";
+ case 422827:
+ return "来凤县";
+ case 422828:
+ return "鹤峰县";
+ case 4290:
+ return "省直辖县级行政区划";
+ case 429004:
+ return "仙桃市";
+ case 429005:
+ return "潜江市";
+ case 429006:
+ return "天门市";
+ case 429021:
+ return "神农架林区";
+ case 43:
+ return "湖南省";
+ case 4301:
+ return "长沙市";
+ case 430101:
+ return "市辖区";
+ case 430102:
+ return "芙蓉区";
+ case 430103:
+ return "天心区";
+ case 430104:
+ return "岳麓区";
+ case 430105:
+ return "开福区";
+ case 430111:
+ return "雨花区";
+ case 430112:
+ return "望城区";
+ case 430121:
+ return "长沙县";
+ case 430124:
+ return "宁乡县";
+ case 430181:
+ return "浏阳市";
+ case 4302:
+ return "株洲市";
+ case 430201:
+ return "市辖区";
+ case 430202:
+ return "荷塘区";
+ case 430203:
+ return "芦淞区";
+ case 430204:
+ return "石峰区";
+ case 430211:
+ return "天元区";
+ case 430221:
+ return "株洲县";
+ case 430223:
+ return "攸县";
+ case 430224:
+ return "茶陵县";
+ case 430225:
+ return "炎陵县";
+ case 430281:
+ return "醴陵市";
+ case 4303:
+ return "湘潭市";
+ case 430301:
+ return "市辖区";
+ case 430302:
+ return "雨湖区";
+ case 430304:
+ return "岳塘区";
+ case 430321:
+ return "湘潭县";
+ case 430381:
+ return "湘乡市";
+ case 430382:
+ return "韶山市";
+ case 4304:
+ return "衡阳市";
+ case 430401:
+ return "市辖区";
+ case 430405:
+ return "珠晖区";
+ case 430406:
+ return "雁峰区";
+ case 430407:
+ return "石鼓区";
+ case 430408:
+ return "蒸湘区";
+ case 430412:
+ return "南岳区";
+ case 430421:
+ return "衡阳县";
+ case 430422:
+ return "衡南县";
+ case 430423:
+ return "衡山县";
+ case 430424:
+ return "衡东县";
+ case 430426:
+ return "祁东县";
+ case 430481:
+ return "耒阳市";
+ case 430482:
+ return "常宁市";
+ case 4305:
+ return "邵阳市";
+ case 430501:
+ return "市辖区";
+ case 430502:
+ return "双清区";
+ case 430503:
+ return "大祥区";
+ case 430511:
+ return "北塔区";
+ case 430521:
+ return "邵东县";
+ case 430522:
+ return "新邵县";
+ case 430523:
+ return "邵阳县";
+ case 430524:
+ return "隆回县";
+ case 430525:
+ return "洞口县";
+ case 430527:
+ return "绥宁县";
+ case 430528:
+ return "新宁县";
+ case 430529:
+ return "城步苗族自治县";
+ case 430581:
+ return "武冈市";
+ case 4306:
+ return "岳阳市";
+ case 430601:
+ return "市辖区";
+ case 430602:
+ return "岳阳楼区";
+ case 430603:
+ return "云溪区";
+ case 430611:
+ return "君山区";
+ case 430621:
+ return "岳阳县";
+ case 430623:
+ return "华容县";
+ case 430624:
+ return "湘阴县";
+ case 430626:
+ return "平江县";
+ case 430681:
+ return "汨罗市";
+ case 430682:
+ return "临湘市";
+ case 4307:
+ return "常德市";
+ case 430701:
+ return "市辖区";
+ case 430702:
+ return "武陵区";
+ case 430703:
+ return "鼎城区";
+ case 430721:
+ return "安乡县";
+ case 430722:
+ return "汉寿县";
+ case 430723:
+ return "澧县";
+ case 430724:
+ return "临澧县";
+ case 430725:
+ return "桃源县";
+ case 430726:
+ return "石门县";
+ case 430781:
+ return "津市市";
+ case 4308:
+ return "张家界市";
+ case 430801:
+ return "市辖区";
+ case 430802:
+ return "永定区";
+ case 430811:
+ return "武陵源区";
+ case 430821:
+ return "慈利县";
+ case 430822:
+ return "桑植县";
+ case 4309:
+ return "益阳市";
+ case 430901:
+ return "市辖区";
+ case 430902:
+ return "资阳区";
+ case 430903:
+ return "赫山区";
+ case 430921:
+ return "南县";
+ case 430922:
+ return "桃江县";
+ case 430923:
+ return "安化县";
+ case 430981:
+ return "沅江市";
+ case 4310:
+ return "郴州市";
+ case 431001:
+ return "市辖区";
+ case 431002:
+ return "北湖区";
+ case 431003:
+ return "苏仙区";
+ case 431021:
+ return "桂阳县";
+ case 431022:
+ return "宜章县";
+ case 431023:
+ return "永兴县";
+ case 431024:
+ return "嘉禾县";
+ case 431025:
+ return "临武县";
+ case 431026:
+ return "汝城县";
+ case 431027:
+ return "桂东县";
+ case 431028:
+ return "安仁县";
+ case 431081:
+ return "资兴市";
+ case 4311:
+ return "永州市";
+ case 431101:
+ return "市辖区";
+ case 431102:
+ return "零陵区";
+ case 431103:
+ return "冷水滩区";
+ case 431121:
+ return "祁阳县";
+ case 431122:
+ return "东安县";
+ case 431123:
+ return "双牌县";
+ case 431124:
+ return "道县";
+ case 431125:
+ return "江永县";
+ case 431126:
+ return "宁远县";
+ case 431127:
+ return "蓝山县";
+ case 431128:
+ return "新田县";
+ case 431129:
+ return "江华瑶族自治县";
+ case 4312:
+ return "怀化市";
+ case 431201:
+ return "市辖区";
+ case 431202:
+ return "鹤城区";
+ case 431221:
+ return "中方县";
+ case 431222:
+ return "沅陵县";
+ case 431223:
+ return "辰溪县";
+ case 431224:
+ return "溆浦县";
+ case 431225:
+ return "会同县";
+ case 431226:
+ return "麻阳苗族自治县";
+ case 431227:
+ return "新晃侗族自治县";
+ case 431228:
+ return "芷江侗族自治县";
+ case 431229:
+ return "靖州苗族侗族自治县";
+ case 431230:
+ return "通道侗族自治县";
+ case 431281:
+ return "洪江市";
+ case 4313:
+ return "娄底市";
+ case 431301:
+ return "市辖区";
+ case 431302:
+ return "娄星区";
+ case 431321:
+ return "双峰县";
+ case 431322:
+ return "新化县";
+ case 431381:
+ return "冷水江市";
+ case 431382:
+ return "涟源市";
+ case 4331:
+ return "湘西土家族苗族自治州";
+ case 433101:
+ return "吉首市";
+ case 433122:
+ return "泸溪县";
+ case 433123:
+ return "凤凰县";
+ case 433124:
+ return "花垣县";
+ case 433125:
+ return "保靖县";
+ case 433126:
+ return "古丈县";
+ case 433127:
+ return "永顺县";
+ case 433130:
+ return "龙山县";
+ case 44:
+ return "广东省";
+ case 4401:
+ return "广州市";
+ case 440101:
+ return "市辖区";
+ case 440103:
+ return "荔湾区";
+ case 440104:
+ return "越秀区";
+ case 440105:
+ return "海珠区";
+ case 440106:
+ return "天河区";
+ case 440111:
+ return "白云区";
+ case 440112:
+ return "黄埔区";
+ case 440113:
+ return "番禺区";
+ case 440114:
+ return "花都区";
+ case 440115:
+ return "南沙区";
+ case 440116:
+ return "萝岗区";
+ case 440117:
+ return "从化区";
+ case 440118:
+ return "增城区";
+ case 4402:
+ return "韶关市";
+ case 440201:
+ return "市辖区";
+ case 440203:
+ return "武江区";
+ case 440204:
+ return "浈江区";
+ case 440205:
+ return "曲江区";
+ case 440222:
+ return "始兴县";
+ case 440224:
+ return "仁化县";
+ case 440229:
+ return "翁源县";
+ case 440232:
+ return "乳源瑶族自治县";
+ case 440233:
+ return "新丰县";
+ case 440281:
+ return "乐昌市";
+ case 440282:
+ return "南雄市";
+ case 4403:
+ return "深圳市";
+ case 440301:
+ return "市辖区";
+ case 440303:
+ return "罗湖区";
+ case 440304:
+ return "福田区";
+ case 440305:
+ return "南山区";
+ case 440306:
+ return "宝安区";
+ case 440307:
+ return "龙岗区";
+ case 440308:
+ return "盐田区";
+ case 4404:
+ return "珠海市";
+ case 440401:
+ return "市辖区";
+ case 440402:
+ return "香洲区";
+ case 440403:
+ return "斗门区";
+ case 440404:
+ return "金湾区";
+ case 4405:
+ return "汕头市";
+ case 440501:
+ return "市辖区";
+ case 440507:
+ return "龙湖区";
+ case 440511:
+ return "金平区";
+ case 440512:
+ return "濠江区";
+ case 440513:
+ return "潮阳区";
+ case 440514:
+ return "潮南区";
+ case 440515:
+ return "澄海区";
+ case 440523:
+ return "南澳县";
+ case 4406:
+ return "佛山市";
+ case 440601:
+ return "市辖区";
+ case 440604:
+ return "禅城区";
+ case 440605:
+ return "南海区";
+ case 440606:
+ return "顺德区";
+ case 440607:
+ return "三水区";
+ case 440608:
+ return "高明区";
+ case 4407:
+ return "江门市";
+ case 440701:
+ return "市辖区";
+ case 440703:
+ return "蓬江区";
+ case 440704:
+ return "江海区";
+ case 440705:
+ return "新会区";
+ case 440781:
+ return "台山市";
+ case 440783:
+ return "开平市";
+ case 440784:
+ return "鹤山市";
+ case 440785:
+ return "恩平市";
+ case 4408:
+ return "湛江市";
+ case 440801:
+ return "市辖区";
+ case 440802:
+ return "赤坎区";
+ case 440803:
+ return "霞山区";
+ case 440804:
+ return "坡头区";
+ case 440811:
+ return "麻章区";
+ case 440823:
+ return "遂溪县";
+ case 440825:
+ return "徐闻县";
+ case 440881:
+ return "廉江市";
+ case 440882:
+ return "雷州市";
+ case 440883:
+ return "吴川市";
+ case 4409:
+ return "茂名市";
+ case 440901:
+ return "市辖区";
+ case 440902:
+ return "茂南区";
+ case 440904:
+ return "电白区";
+ case 440981:
+ return "高州市";
+ case 440982:
+ return "化州市";
+ case 440983:
+ return "信宜市";
+ case 4412:
+ return "肇庆市";
+ case 441201:
+ return "市辖区";
+ case 441202:
+ return "端州区";
+ case 441203:
+ return "鼎湖区";
+ case 441223:
+ return "广宁县";
+ case 441224:
+ return "怀集县";
+ case 441225:
+ return "封开县";
+ case 441226:
+ return "德庆县";
+ case 441283:
+ return "高要市";
+ case 441284:
+ return "四会市";
+ case 4413:
+ return "惠州市";
+ case 441301:
+ return "市辖区";
+ case 441302:
+ return "惠城区";
+ case 441303:
+ return "惠阳区";
+ case 441322:
+ return "博罗县";
+ case 441323:
+ return "惠东县";
+ case 441324:
+ return "龙门县";
+ case 4414:
+ return "梅州市";
+ case 441401:
+ return "市辖区";
+ case 441402:
+ return "梅江区";
+ case 441403:
+ return "梅县区";
+ case 441422:
+ return "大埔县";
+ case 441423:
+ return "丰顺县";
+ case 441424:
+ return "五华县";
+ case 441426:
+ return "平远县";
+ case 441427:
+ return "蕉岭县";
+ case 441481:
+ return "兴宁市";
+ case 4415:
+ return "汕尾市";
+ case 441501:
+ return "市辖区";
+ case 441502:
+ return "城区";
+ case 441521:
+ return "海丰县";
+ case 441523:
+ return "陆河县";
+ case 441581:
+ return "陆丰市";
+ case 4416:
+ return "河源市";
+ case 441601:
+ return "市辖区";
+ case 441602:
+ return "源城区";
+ case 441621:
+ return "紫金县";
+ case 441622:
+ return "龙川县";
+ case 441623:
+ return "连平县";
+ case 441624:
+ return "和平县";
+ case 441625:
+ return "东源县";
+ case 4417:
+ return "阳江市";
+ case 441701:
+ return "市辖区";
+ case 441702:
+ return "江城区";
+ case 441721:
+ return "阳西县";
+ case 441723:
+ return "阳东县";
+ case 441781:
+ return "阳春市";
+ case 4418:
+ return "清远市";
+ case 441801:
+ return "市辖区";
+ case 441802:
+ return "清城区";
+ case 441803:
+ return "清新区";
+ case 441821:
+ return "佛冈县";
+ case 441823:
+ return "阳山县";
+ case 441825:
+ return "连山壮族瑶族自治县";
+ case 441826:
+ return "连南瑶族自治县";
+ case 441881:
+ return "英德市";
+ case 441882:
+ return "连州市";
+ case 4419:
+ return "东莞市";
+ case 4420:
+ return "中山市";
+ case 4451:
+ return "潮州市";
+ case 445101:
+ return "市辖区";
+ case 445102:
+ return "湘桥区";
+ case 445103:
+ return "潮安区";
+ case 445122:
+ return "饶平县";
+ case 4452:
+ return "揭阳市";
+ case 445201:
+ return "市辖区";
+ case 445202:
+ return "榕城区";
+ case 445203:
+ return "揭东区";
+ case 445222:
+ return "揭西县";
+ case 445224:
+ return "惠来县";
+ case 445281:
+ return "普宁市";
+ case 4453:
+ return "云浮市";
+ case 445301:
+ return "市辖区";
+ case 445302:
+ return "云城区";
+ case 445303:
+ return "云安区";
+ case 445321:
+ return "新兴县";
+ case 445322:
+ return "郁南县";
+ case 445381:
+ return "罗定市";
+ case 45:
+ return "广西壮族自治区";
+ case 4501:
+ return "南宁市";
+ case 450101:
+ return "市辖区";
+ case 450102:
+ return "兴宁区";
+ case 450103:
+ return "青秀区";
+ case 450105:
+ return "江南区";
+ case 450107:
+ return "西乡塘区";
+ case 450108:
+ return "良庆区";
+ case 450109:
+ return "邕宁区";
+ case 450122:
+ return "武鸣县";
+ case 450123:
+ return "隆安县";
+ case 450124:
+ return "马山县";
+ case 450125:
+ return "上林县";
+ case 450126:
+ return "宾阳县";
+ case 450127:
+ return "横县";
+ case 4502:
+ return "柳州市";
+ case 450201:
+ return "市辖区";
+ case 450202:
+ return "城中区";
+ case 450203:
+ return "鱼峰区";
+ case 450204:
+ return "柳南区";
+ case 450205:
+ return "柳北区";
+ case 450221:
+ return "柳江县";
+ case 450222:
+ return "柳城县";
+ case 450223:
+ return "鹿寨县";
+ case 450224:
+ return "融安县";
+ case 450225:
+ return "融水苗族自治县";
+ case 450226:
+ return "三江侗族自治县";
+ case 4503:
+ return "桂林市";
+ case 450301:
+ return "市辖区";
+ case 450302:
+ return "秀峰区";
+ case 450303:
+ return "叠彩区";
+ case 450304:
+ return "象山区";
+ case 450305:
+ return "七星区";
+ case 450311:
+ return "雁山区";
+ case 450312:
+ return "临桂区";
+ case 450321:
+ return "阳朔县";
+ case 450323:
+ return "灵川县";
+ case 450324:
+ return "全州县";
+ case 450325:
+ return "兴安县";
+ case 450326:
+ return "永福县";
+ case 450327:
+ return "灌阳县";
+ case 450328:
+ return "龙胜各族自治县";
+ case 450329:
+ return "资源县";
+ case 450330:
+ return "平乐县";
+ case 450331:
+ return "荔浦县";
+ case 450332:
+ return "恭城瑶族自治县";
+ case 4504:
+ return "梧州市";
+ case 450401:
+ return "市辖区";
+ case 450403:
+ return "万秀区";
+ case 450405:
+ return "长洲区";
+ case 450406:
+ return "龙圩区";
+ case 450421:
+ return "苍梧县";
+ case 450422:
+ return "藤县";
+ case 450423:
+ return "蒙山县";
+ case 450481:
+ return "岑溪市";
+ case 4505:
+ return "北海市";
+ case 450501:
+ return "市辖区";
+ case 450502:
+ return "海城区";
+ case 450503:
+ return "银海区";
+ case 450512:
+ return "铁山港区";
+ case 450521:
+ return "合浦县";
+ case 4506:
+ return "防城港市";
+ case 450601:
+ return "市辖区";
+ case 450602:
+ return "港口区";
+ case 450603:
+ return "防城区";
+ case 450621:
+ return "上思县";
+ case 450681:
+ return "东兴市";
+ case 4507:
+ return "钦州市";
+ case 450701:
+ return "市辖区";
+ case 450702:
+ return "钦南区";
+ case 450703:
+ return "钦北区";
+ case 450721:
+ return "灵山县";
+ case 450722:
+ return "浦北县";
+ case 4508:
+ return "贵港市";
+ case 450801:
+ return "市辖区";
+ case 450802:
+ return "港北区";
+ case 450803:
+ return "港南区";
+ case 450804:
+ return "覃塘区";
+ case 450821:
+ return "平南县";
+ case 450881:
+ return "桂平市";
+ case 4509:
+ return "玉林市";
+ case 450901:
+ return "市辖区";
+ case 450902:
+ return "玉州区";
+ case 450903:
+ return "福绵区";
+ case 450921:
+ return "容县";
+ case 450922:
+ return "陆川县";
+ case 450923:
+ return "博白县";
+ case 450924:
+ return "兴业县";
+ case 450981:
+ return "北流市";
+ case 4510:
+ return "百色市";
+ case 451001:
+ return "市辖区";
+ case 451002:
+ return "右江区";
+ case 451021:
+ return "田阳县";
+ case 451022:
+ return "田东县";
+ case 451023:
+ return "平果县";
+ case 451024:
+ return "德保县";
+ case 451025:
+ return "靖西县";
+ case 451026:
+ return "那坡县";
+ case 451027:
+ return "凌云县";
+ case 451028:
+ return "乐业县";
+ case 451029:
+ return "田林县";
+ case 451030:
+ return "西林县";
+ case 451031:
+ return "隆林各族自治县";
+ case 4511:
+ return "贺州市";
+ case 451101:
+ return "市辖区";
+ case 451102:
+ return "八步区";
+ case 451121:
+ return "昭平县";
+ case 451122:
+ return "钟山县";
+ case 451123:
+ return "富川瑶族自治县";
+ case 4512:
+ return "河池市";
+ case 451201:
+ return "市辖区";
+ case 451202:
+ return "金城江区";
+ case 451221:
+ return "南丹县";
+ case 451222:
+ return "天峨县";
+ case 451223:
+ return "凤山县";
+ case 451224:
+ return "东兰县";
+ case 451225:
+ return "罗城仫佬族自治县";
+ case 451226:
+ return "环江毛南族自治县";
+ case 451227:
+ return "巴马瑶族自治县";
+ case 451228:
+ return "都安瑶族自治县";
+ case 451229:
+ return "大化瑶族自治县";
+ case 451281:
+ return "宜州市";
+ case 4513:
+ return "来宾市";
+ case 451301:
+ return "市辖区";
+ case 451302:
+ return "兴宾区";
+ case 451321:
+ return "忻城县";
+ case 451322:
+ return "象州县";
+ case 451323:
+ return "武宣县";
+ case 451324:
+ return "金秀瑶族自治县";
+ case 451381:
+ return "合山市";
+ case 4514:
+ return "崇左市";
+ case 451401:
+ return "市辖区";
+ case 451402:
+ return "江州区";
+ case 451421:
+ return "扶绥县";
+ case 451422:
+ return "宁明县";
+ case 451423:
+ return "龙州县";
+ case 451424:
+ return "大新县";
+ case 451425:
+ return "天等县";
+ case 451481:
+ return "凭祥市";
+ case 46:
+ return "海南省";
+ case 4601:
+ return "海口市";
+ case 460101:
+ return "市辖区";
+ case 460105:
+ return "秀英区";
+ case 460106:
+ return "龙华区";
+ case 460107:
+ return "琼山区";
+ case 460108:
+ return "美兰区";
+ case 4602:
+ return "三亚市";
+ case 460201:
+ return "市辖区";
+ case 460202:
+ return "海棠区";
+ case 460203:
+ return "吉阳区";
+ case 460204:
+ return "天涯区";
+ case 460205:
+ return "崖州区";
+ case 4603:
+ return "三沙市";
+ case 4690:
+ return "省直辖县级行政区划";
+ case 469001:
+ return "五指山市";
+ case 469002:
+ return "琼海市";
+ case 469003:
+ return "儋州市";
+ case 469005:
+ return "文昌市";
+ case 469006:
+ return "万宁市";
+ case 469007:
+ return "东方市";
+ case 469021:
+ return "定安县";
+ case 469022:
+ return "屯昌县";
+ case 469023:
+ return "澄迈县";
+ case 469024:
+ return "临高县";
+ case 469025:
+ return "白沙黎族自治县";
+ case 469026:
+ return "昌江黎族自治县";
+ case 469027:
+ return "乐东黎族自治县";
+ case 469028:
+ return "陵水黎族自治县";
+ case 469029:
+ return "保亭黎族苗族自治县";
+ case 469030:
+ return "琼中黎族苗族自治县";
+ case 50:
+ return "重庆市";
+ case 5001:
+ return "市辖区";
+ case 500101:
+ return "万州区";
+ case 500102:
+ return "涪陵区";
+ case 500103:
+ return "渝中区";
+ case 500104:
+ return "大渡口区";
+ case 500105:
+ return "江北区";
+ case 500106:
+ return "沙坪坝区";
+ case 500107:
+ return "九龙坡区";
+ case 500108:
+ return "南岸区";
+ case 500109:
+ return "北碚区";
+ case 500110:
+ return "綦江区";
+ case 500111:
+ return "大足区";
+ case 500112:
+ return "渝北区";
+ case 500113:
+ return "巴南区";
+ case 500114:
+ return "黔江区";
+ case 500115:
+ return "长寿区";
+ case 500116:
+ return "江津区";
+ case 500117:
+ return "合川区";
+ case 500118:
+ return "永川区";
+ case 500119:
+ return "南川区";
+ case 500120:
+ return "璧山区";
+ case 500151:
+ return "铜梁区";
+ case 5002:
+ return "县";
+ case 500223:
+ return "潼南县";
+ case 500226:
+ return "荣昌县";
+ case 500228:
+ return "梁平县";
+ case 500229:
+ return "城口县";
+ case 500230:
+ return "丰都县";
+ case 500231:
+ return "垫江县";
+ case 500232:
+ return "武隆县";
+ case 500233:
+ return "忠县";
+ case 500234:
+ return "开县";
+ case 500235:
+ return "云阳县";
+ case 500236:
+ return "奉节县";
+ case 500237:
+ return "巫山县";
+ case 500238:
+ return "巫溪县";
+ case 500240:
+ return "石柱土家族自治县";
+ case 500241:
+ return "秀山土家族苗族自治县";
+ case 500242:
+ return "酉阳土家族苗族自治县";
+ case 500243:
+ return "彭水苗族土家族自治县";
+ case 51:
+ return "四川省";
+ case 5101:
+ return "成都市";
+ case 510101:
+ return "市辖区";
+ case 510104:
+ return "锦江区";
+ case 510105:
+ return "青羊区";
+ case 510106:
+ return "金牛区";
+ case 510107:
+ return "武侯区";
+ case 510108:
+ return "成华区";
+ case 510112:
+ return "龙泉驿区";
+ case 510113:
+ return "青白江区";
+ case 510114:
+ return "新都区";
+ case 510115:
+ return "温江区";
+ case 510121:
+ return "金堂县";
+ case 510122:
+ return "双流县";
+ case 510124:
+ return "郫县";
+ case 510129:
+ return "大邑县";
+ case 510131:
+ return "蒲江县";
+ case 510132:
+ return "新津县";
+ case 510181:
+ return "都江堰市";
+ case 510182:
+ return "彭州市";
+ case 510183:
+ return "邛崃市";
+ case 510184:
+ return "崇州市";
+ case 5103:
+ return "自贡市";
+ case 510301:
+ return "市辖区";
+ case 510302:
+ return "自流井区";
+ case 510303:
+ return "贡井区";
+ case 510304:
+ return "大安区";
+ case 510311:
+ return "沿滩区";
+ case 510321:
+ return "荣县";
+ case 510322:
+ return "富顺县";
+ case 5104:
+ return "攀枝花市";
+ case 510401:
+ return "市辖区";
+ case 510402:
+ return "东区";
+ case 510403:
+ return "西区";
+ case 510411:
+ return "仁和区";
+ case 510421:
+ return "米易县";
+ case 510422:
+ return "盐边县";
+ case 5105:
+ return "泸州市";
+ case 510501:
+ return "市辖区";
+ case 510502:
+ return "江阳区";
+ case 510503:
+ return "纳溪区";
+ case 510504:
+ return "龙马潭区";
+ case 510521:
+ return "泸县";
+ case 510522:
+ return "合江县";
+ case 510524:
+ return "叙永县";
+ case 510525:
+ return "古蔺县";
+ case 5106:
+ return "德阳市";
+ case 510601:
+ return "市辖区";
+ case 510603:
+ return "旌阳区";
+ case 510623:
+ return "中江县";
+ case 510626:
+ return "罗江县";
+ case 510681:
+ return "广汉市";
+ case 510682:
+ return "什邡市";
+ case 510683:
+ return "绵竹市";
+ case 5107:
+ return "绵阳市";
+ case 510701:
+ return "市辖区";
+ case 510703:
+ return "涪城区";
+ case 510704:
+ return "游仙区";
+ case 510722:
+ return "三台县";
+ case 510723:
+ return "盐亭县";
+ case 510724:
+ return "安县";
+ case 510725:
+ return "梓潼县";
+ case 510726:
+ return "北川羌族自治县";
+ case 510727:
+ return "平武县";
+ case 510781:
+ return "江油市";
+ case 5108:
+ return "广元市";
+ case 510801:
+ return "市辖区";
+ case 510802:
+ return "利州区";
+ case 510811:
+ return "昭化区";
+ case 510812:
+ return "朝天区";
+ case 510821:
+ return "旺苍县";
+ case 510822:
+ return "青川县";
+ case 510823:
+ return "剑阁县";
+ case 510824:
+ return "苍溪县";
+ case 5109:
+ return "遂宁市";
+ case 510901:
+ return "市辖区";
+ case 510903:
+ return "船山区";
+ case 510904:
+ return "安居区";
+ case 510921:
+ return "蓬溪县";
+ case 510922:
+ return "射洪县";
+ case 510923:
+ return "大英县";
+ case 5110:
+ return "内江市";
+ case 511001:
+ return "市辖区";
+ case 511002:
+ return "市中区";
+ case 511011:
+ return "东兴区";
+ case 511024:
+ return "威远县";
+ case 511025:
+ return "资中县";
+ case 511028:
+ return "隆昌县";
+ case 5111:
+ return "乐山市";
+ case 511101:
+ return "市辖区";
+ case 511102:
+ return "市中区";
+ case 511111:
+ return "沙湾区";
+ case 511112:
+ return "五通桥区";
+ case 511113:
+ return "金口河区";
+ case 511123:
+ return "犍为县";
+ case 511124:
+ return "井研县";
+ case 511126:
+ return "夹江县";
+ case 511129:
+ return "沐川县";
+ case 511132:
+ return "峨边彝族自治县";
+ case 511133:
+ return "马边彝族自治县";
+ case 511181:
+ return "峨眉山市";
+ case 5113:
+ return "南充市";
+ case 511301:
+ return "市辖区";
+ case 511302:
+ return "顺庆区";
+ case 511303:
+ return "高坪区";
+ case 511304:
+ return "嘉陵区";
+ case 511321:
+ return "南部县";
+ case 511322:
+ return "营山县";
+ case 511323:
+ return "蓬安县";
+ case 511324:
+ return "仪陇县";
+ case 511325:
+ return "西充县";
+ case 511381:
+ return "阆中市";
+ case 5114:
+ return "眉山市";
+ case 511401:
+ return "市辖区";
+ case 511402:
+ return "东坡区";
+ case 511421:
+ return "仁寿县";
+ case 511422:
+ return "彭山县";
+ case 511423:
+ return "洪雅县";
+ case 511424:
+ return "丹棱县";
+ case 511425:
+ return "青神县";
+ case 5115:
+ return "宜宾市";
+ case 511501:
+ return "市辖区";
+ case 511502:
+ return "翠屏区";
+ case 511503:
+ return "南溪区";
+ case 511521:
+ return "宜宾县";
+ case 511523:
+ return "江安县";
+ case 511524:
+ return "长宁县";
+ case 511525:
+ return "高县";
+ case 511526:
+ return "珙县";
+ case 511527:
+ return "筠连县";
+ case 511528:
+ return "兴文县";
+ case 511529:
+ return "屏山县";
+ case 5116:
+ return "广安市";
+ case 511601:
+ return "市辖区";
+ case 511602:
+ return "广安区";
+ case 511603:
+ return "前锋区";
+ case 511621:
+ return "岳池县";
+ case 511622:
+ return "武胜县";
+ case 511623:
+ return "邻水县";
+ case 511681:
+ return "华蓥市";
+ case 5117:
+ return "达州市";
+ case 511701:
+ return "市辖区";
+ case 511702:
+ return "通川区";
+ case 511703:
+ return "达川区";
+ case 511722:
+ return "宣汉县";
+ case 511723:
+ return "开江县";
+ case 511724:
+ return "大竹县";
+ case 511725:
+ return "渠县";
+ case 511781:
+ return "万源市";
+ case 5118:
+ return "雅安市";
+ case 511801:
+ return "市辖区";
+ case 511802:
+ return "雨城区";
+ case 511803:
+ return "名山区";
+ case 511822:
+ return "荥经县";
+ case 511823:
+ return "汉源县";
+ case 511824:
+ return "石棉县";
+ case 511825:
+ return "天全县";
+ case 511826:
+ return "芦山县";
+ case 511827:
+ return "宝兴县";
+ case 5119:
+ return "巴中市";
+ case 511901:
+ return "市辖区";
+ case 511902:
+ return "巴州区";
+ case 511903:
+ return "恩阳区";
+ case 511921:
+ return "通江县";
+ case 511922:
+ return "南江县";
+ case 511923:
+ return "平昌县";
+ case 5120:
+ return "资阳市";
+ case 512001:
+ return "市辖区";
+ case 512002:
+ return "雁江区";
+ case 512021:
+ return "安岳县";
+ case 512022:
+ return "乐至县";
+ case 512081:
+ return "简阳市";
+ case 5132:
+ return "阿坝藏族羌族自治州";
+ case 513221:
+ return "汶川县";
+ case 513222:
+ return "理县";
+ case 513223:
+ return "茂县";
+ case 513224:
+ return "松潘县";
+ case 513225:
+ return "九寨沟县";
+ case 513226:
+ return "金川县";
+ case 513227:
+ return "小金县";
+ case 513228:
+ return "黑水县";
+ case 513229:
+ return "马尔康县";
+ case 513230:
+ return "壤塘县";
+ case 513231:
+ return "阿坝县";
+ case 513232:
+ return "若尔盖县";
+ case 513233:
+ return "红原县";
+ case 5133:
+ return "甘孜藏族自治州";
+ case 513321:
+ return "康定县";
+ case 513322:
+ return "泸定县";
+ case 513323:
+ return "丹巴县";
+ case 513324:
+ return "九龙县";
+ case 513325:
+ return "雅江县";
+ case 513326:
+ return "道孚县";
+ case 513327:
+ return "炉霍县";
+ case 513328:
+ return "甘孜县";
+ case 513329:
+ return "新龙县";
+ case 513330:
+ return "德格县";
+ case 513331:
+ return "白玉县";
+ case 513332:
+ return "石渠县";
+ case 513333:
+ return "色达县";
+ case 513334:
+ return "理塘县";
+ case 513335:
+ return "巴塘县";
+ case 513336:
+ return "乡城县";
+ case 513337:
+ return "稻城县";
+ case 513338:
+ return "得荣县";
+ case 5134:
+ return "凉山彝族自治州";
+ case 513401:
+ return "西昌市";
+ case 513422:
+ return "木里藏族自治县";
+ case 513423:
+ return "盐源县";
+ case 513424:
+ return "德昌县";
+ case 513425:
+ return "会理县";
+ case 513426:
+ return "会东县";
+ case 513427:
+ return "宁南县";
+ case 513428:
+ return "普格县";
+ case 513429:
+ return "布拖县";
+ case 513430:
+ return "金阳县";
+ case 513431:
+ return "昭觉县";
+ case 513432:
+ return "喜德县";
+ case 513433:
+ return "冕宁县";
+ case 513434:
+ return "越西县";
+ case 513435:
+ return "甘洛县";
+ case 513436:
+ return "美姑县";
+ case 513437:
+ return "雷波县";
+ case 52:
+ return "贵州省";
+ case 5201:
+ return "贵阳市";
+ case 520101:
+ return "市辖区";
+ case 520102:
+ return "南明区";
+ case 520103:
+ return "云岩区";
+ case 520111:
+ return "花溪区";
+ case 520112:
+ return "乌当区";
+ case 520113:
+ return "白云区";
+ case 520115:
+ return "观山湖区";
+ case 520121:
+ return "开阳县";
+ case 520122:
+ return "息烽县";
+ case 520123:
+ return "修文县";
+ case 520181:
+ return "清镇市";
+ case 5202:
+ return "六盘水市";
+ case 520201:
+ return "钟山区";
+ case 520203:
+ return "六枝特区";
+ case 520221:
+ return "水城县";
+ case 520222:
+ return "盘县";
+ case 5203:
+ return "遵义市";
+ case 520301:
+ return "市辖区";
+ case 520302:
+ return "红花岗区";
+ case 520303:
+ return "汇川区";
+ case 520321:
+ return "遵义县";
+ case 520322:
+ return "桐梓县";
+ case 520323:
+ return "绥阳县";
+ case 520324:
+ return "正安县";
+ case 520325:
+ return "道真仡佬族苗族自治县";
+ case 520326:
+ return "务川仡佬族苗族自治县";
+ case 520327:
+ return "凤冈县";
+ case 520328:
+ return "湄潭县";
+ case 520329:
+ return "余庆县";
+ case 520330:
+ return "习水县";
+ case 520381:
+ return "赤水市";
+ case 520382:
+ return "仁怀市";
+ case 5204:
+ return "安顺市";
+ case 520401:
+ return "市辖区";
+ case 520402:
+ return "西秀区";
+ case 520421:
+ return "平坝县";
+ case 520422:
+ return "普定县";
+ case 520423:
+ return "镇宁布依族苗族自治县";
+ case 520424:
+ return "关岭布依族苗族自治县";
+ case 520425:
+ return "紫云苗族布依族自治县";
+ case 5205:
+ return "毕节市";
+ case 520501:
+ return "市辖区";
+ case 520502:
+ return "七星关区";
+ case 520521:
+ return "大方县";
+ case 520522:
+ return "黔西县";
+ case 520523:
+ return "金沙县";
+ case 520524:
+ return "织金县";
+ case 520525:
+ return "纳雍县";
+ case 520526:
+ return "威宁彝族回族苗族自治县";
+ case 520527:
+ return "赫章县";
+ case 5206:
+ return "铜仁市";
+ case 520601:
+ return "市辖区";
+ case 520602:
+ return "碧江区";
+ case 520603:
+ return "万山区";
+ case 520621:
+ return "江口县";
+ case 520622:
+ return "玉屏侗族自治县";
+ case 520623:
+ return "石阡县";
+ case 520624:
+ return "思南县";
+ case 520625:
+ return "印江土家族苗族自治县";
+ case 520626:
+ return "德江县";
+ case 520627:
+ return "沿河土家族自治县";
+ case 520628:
+ return "松桃苗族自治县";
+ case 5223:
+ return "黔西南布依族苗族自治州";
+ case 522301:
+ return "兴义市";
+ case 522322:
+ return "兴仁县";
+ case 522323:
+ return "普安县";
+ case 522324:
+ return "晴隆县";
+ case 522325:
+ return "贞丰县";
+ case 522326:
+ return "望谟县";
+ case 522327:
+ return "册亨县";
+ case 522328:
+ return "安龙县";
+ case 5226:
+ return "黔东南苗族侗族自治州";
+ case 522601:
+ return "凯里市";
+ case 522622:
+ return "黄平县";
+ case 522623:
+ return "施秉县";
+ case 522624:
+ return "三穗县";
+ case 522625:
+ return "镇远县";
+ case 522626:
+ return "岑巩县";
+ case 522627:
+ return "天柱县";
+ case 522628:
+ return "锦屏县";
+ case 522629:
+ return "剑河县";
+ case 522630:
+ return "台江县";
+ case 522631:
+ return "黎平县";
+ case 522632:
+ return "榕江县";
+ case 522633:
+ return "从江县";
+ case 522634:
+ return "雷山县";
+ case 522635:
+ return "麻江县";
+ case 522636:
+ return "丹寨县";
+ case 5227:
+ return "黔南布依族苗族自治州";
+ case 522701:
+ return "都匀市";
+ case 522702:
+ return "福泉市";
+ case 522722:
+ return "荔波县";
+ case 522723:
+ return "贵定县";
+ case 522725:
+ return "瓮安县";
+ case 522726:
+ return "独山县";
+ case 522727:
+ return "平塘县";
+ case 522728:
+ return "罗甸县";
+ case 522729:
+ return "长顺县";
+ case 522730:
+ return "龙里县";
+ case 522731:
+ return "惠水县";
+ case 522732:
+ return "三都水族自治县";
+ case 53:
+ return "云南省";
+ case 5301:
+ return "昆明市";
+ case 530101:
+ return "市辖区";
+ case 530102:
+ return "五华区";
+ case 530103:
+ return "盘龙区";
+ case 530111:
+ return "官渡区";
+ case 530112:
+ return "西山区";
+ case 530113:
+ return "东川区";
+ case 530114:
+ return "呈贡区";
+ case 530122:
+ return "晋宁县";
+ case 530124:
+ return "富民县";
+ case 530125:
+ return "宜良县";
+ case 530126:
+ return "石林彝族自治县";
+ case 530127:
+ return "嵩明县";
+ case 530128:
+ return "禄劝彝族苗族自治县";
+ case 530129:
+ return "寻甸回族彝族自治县";
+ case 530181:
+ return "安宁市";
+ case 5303:
+ return "曲靖市";
+ case 530301:
+ return "市辖区";
+ case 530302:
+ return "麒麟区";
+ case 530321:
+ return "马龙县";
+ case 530322:
+ return "陆良县";
+ case 530323:
+ return "师宗县";
+ case 530324:
+ return "罗平县";
+ case 530325:
+ return "富源县";
+ case 530326:
+ return "会泽县";
+ case 530328:
+ return "沾益县";
+ case 530381:
+ return "宣威市";
+ case 5304:
+ return "玉溪市";
+ case 530401:
+ return "市辖区";
+ case 530402:
+ return "红塔区";
+ case 530421:
+ return "江川县";
+ case 530422:
+ return "澄江县";
+ case 530423:
+ return "通海县";
+ case 530424:
+ return "华宁县";
+ case 530425:
+ return "易门县";
+ case 530426:
+ return "峨山彝族自治县";
+ case 530427:
+ return "新平彝族傣族自治县";
+ case 530428:
+ return "元江哈尼族彝族傣族自治县";
+ case 5305:
+ return "保山市";
+ case 530501:
+ return "市辖区";
+ case 530502:
+ return "隆阳区";
+ case 530521:
+ return "施甸县";
+ case 530522:
+ return "腾冲县";
+ case 530523:
+ return "龙陵县";
+ case 530524:
+ return "昌宁县";
+ case 5306:
+ return "昭通市";
+ case 530601:
+ return "市辖区";
+ case 530602:
+ return "昭阳区";
+ case 530621:
+ return "鲁甸县";
+ case 530622:
+ return "巧家县";
+ case 530623:
+ return "盐津县";
+ case 530624:
+ return "大关县";
+ case 530625:
+ return "永善县";
+ case 530626:
+ return "绥江县";
+ case 530627:
+ return "镇雄县";
+ case 530628:
+ return "彝良县";
+ case 530629:
+ return "威信县";
+ case 530630:
+ return "水富县";
+ case 5307:
+ return "丽江市";
+ case 530701:
+ return "市辖区";
+ case 530702:
+ return "古城区";
+ case 530721:
+ return "玉龙纳西族自治县";
+ case 530722:
+ return "永胜县";
+ case 530723:
+ return "华坪县";
+ case 530724:
+ return "宁蒗彝族自治县";
+ case 5308:
+ return "普洱市";
+ case 530801:
+ return "市辖区";
+ case 530802:
+ return "思茅区";
+ case 530821:
+ return "宁洱哈尼族彝族自治县";
+ case 530822:
+ return "墨江哈尼族自治县";
+ case 530823:
+ return "景东彝族自治县";
+ case 530824:
+ return "景谷傣族彝族自治县";
+ case 530825:
+ return "镇沅彝族哈尼族拉祜族自治县";
+ case 530826:
+ return "江城哈尼族彝族自治县";
+ case 530827:
+ return "孟连傣族拉祜族佤族自治县";
+ case 530828:
+ return "澜沧拉祜族自治县";
+ case 530829:
+ return "西盟佤族自治县";
+ case 5309:
+ return "临沧市";
+ case 530901:
+ return "市辖区";
+ case 530902:
+ return "临翔区";
+ case 530921:
+ return "凤庆县";
+ case 530922:
+ return "云县";
+ case 530923:
+ return "永德县";
+ case 530924:
+ return "镇康县";
+ case 530925:
+ return "双江拉祜族佤族布朗族傣族自治县";
+ case 530926:
+ return "耿马傣族佤族自治县";
+ case 530927:
+ return "沧源佤族自治县";
+ case 5323:
+ return "楚雄彝族自治州";
+ case 532301:
+ return "楚雄市";
+ case 532322:
+ return "双柏县";
+ case 532323:
+ return "牟定县";
+ case 532324:
+ return "南华县";
+ case 532325:
+ return "姚安县";
+ case 532326:
+ return "大姚县";
+ case 532327:
+ return "永仁县";
+ case 532328:
+ return "元谋县";
+ case 532329:
+ return "武定县";
+ case 532331:
+ return "禄丰县";
+ case 5325:
+ return "红河哈尼族彝族自治州";
+ case 532501:
+ return "个旧市";
+ case 532502:
+ return "开远市";
+ case 532503:
+ return "蒙自市";
+ case 532504:
+ return "弥勒市";
+ case 532523:
+ return "屏边苗族自治县";
+ case 532524:
+ return "建水县";
+ case 532525:
+ return "石屏县";
+ case 532527:
+ return "泸西县";
+ case 532528:
+ return "元阳县";
+ case 532529:
+ return "红河县";
+ case 532530:
+ return "金平苗族瑶族傣族自治县";
+ case 532531:
+ return "绿春县";
+ case 532532:
+ return "河口瑶族自治县";
+ case 5326:
+ return "文山壮族苗族自治州";
+ case 532601:
+ return "文山市";
+ case 532622:
+ return "砚山县";
+ case 532623:
+ return "西畴县";
+ case 532624:
+ return "麻栗坡县";
+ case 532625:
+ return "马关县";
+ case 532626:
+ return "丘北县";
+ case 532627:
+ return "广南县";
+ case 532628:
+ return "富宁县";
+ case 5328:
+ return "西双版纳傣族自治州";
+ case 532801:
+ return "景洪市";
+ case 532822:
+ return "勐海县";
+ case 532823:
+ return "勐腊县";
+ case 5329:
+ return "大理白族自治州";
+ case 532901:
+ return "大理市";
+ case 532922:
+ return "漾濞彝族自治县";
+ case 532923:
+ return "祥云县";
+ case 532924:
+ return "宾川县";
+ case 532925:
+ return "弥渡县";
+ case 532926:
+ return "南涧彝族自治县";
+ case 532927:
+ return "巍山彝族回族自治县";
+ case 532928:
+ return "永平县";
+ case 532929:
+ return "云龙县";
+ case 532930:
+ return "洱源县";
+ case 532931:
+ return "剑川县";
+ case 532932:
+ return "鹤庆县";
+ case 5331:
+ return "德宏傣族景颇族自治州";
+ case 533102:
+ return "瑞丽市";
+ case 533103:
+ return "芒市";
+ case 533122:
+ return "梁河县";
+ case 533123:
+ return "盈江县";
+ case 533124:
+ return "陇川县";
+ case 5333:
+ return "怒江傈僳族自治州";
+ case 533321:
+ return "泸水县";
+ case 533323:
+ return "福贡县";
+ case 533324:
+ return "贡山独龙族怒族自治县";
+ case 533325:
+ return "兰坪白族普米族自治县";
+ case 5334:
+ return "迪庆藏族自治州";
+ case 533421:
+ return "香格里拉县";
+ case 533422:
+ return "德钦县";
+ case 533423:
+ return "维西傈僳族自治县";
+ case 54:
+ return "西藏自治区";
+ case 5401:
+ return "拉萨市";
+ case 540101:
+ return "市辖区";
+ case 540102:
+ return "城关区";
+ case 540121:
+ return "林周县";
+ case 540122:
+ return "当雄县";
+ case 540123:
+ return "尼木县";
+ case 540124:
+ return "曲水县";
+ case 540125:
+ return "堆龙德庆县";
+ case 540126:
+ return "达孜县";
+ case 540127:
+ return "墨竹工卡县";
+ case 5402:
+ return "日喀则市";
+ case 540202:
+ return "桑珠孜区";
+ case 540221:
+ return "南木林县";
+ case 540222:
+ return "江孜县";
+ case 540223:
+ return "定日县";
+ case 540224:
+ return "萨迦县";
+ case 540225:
+ return "拉孜县";
+ case 540226:
+ return "昂仁县";
+ case 540227:
+ return "谢通门县";
+ case 540228:
+ return "白朗县";
+ case 540229:
+ return "仁布县";
+ case 540230:
+ return "康马县";
+ case 540231:
+ return "定结县";
+ case 540232:
+ return "仲巴县";
+ case 540233:
+ return "亚东县";
+ case 540234:
+ return "吉隆县";
+ case 540235:
+ return "聂拉木县";
+ case 540236:
+ return "萨嘎县";
+ case 540237:
+ return "岗巴县";
+ case 5421:
+ return "昌都地区";
+ case 542121:
+ return "昌都县";
+ case 542122:
+ return "江达县";
+ case 542123:
+ return "贡觉县";
+ case 542124:
+ return "类乌齐县";
+ case 542125:
+ return "丁青县";
+ case 542126:
+ return "察雅县";
+ case 542127:
+ return "八宿县";
+ case 542128:
+ return "左贡县";
+ case 542129:
+ return "芒康县";
+ case 542132:
+ return "洛隆县";
+ case 542133:
+ return "边坝县";
+ case 5422:
+ return "山南地区";
+ case 542221:
+ return "乃东县";
+ case 542222:
+ return "扎囊县";
+ case 542223:
+ return "贡嘎县";
+ case 542224:
+ return "桑日县";
+ case 542225:
+ return "琼结县";
+ case 542226:
+ return "曲松县";
+ case 542227:
+ return "措美县";
+ case 542228:
+ return "洛扎县";
+ case 542229:
+ return "加查县";
+ case 542231:
+ return "隆子县";
+ case 542232:
+ return "错那县";
+ case 542233:
+ return "浪卡子县";
+ case 5424:
+ return "那曲地区";
+ case 542421:
+ return "那曲县";
+ case 542422:
+ return "嘉黎县";
+ case 542423:
+ return "比如县";
+ case 542424:
+ return "聂荣县";
+ case 542425:
+ return "安多县";
+ case 542426:
+ return "申扎县";
+ case 542427:
+ return "索县";
+ case 542428:
+ return "班戈县";
+ case 542429:
+ return "巴青县";
+ case 542430:
+ return "尼玛县";
+ case 542431:
+ return "双湖县";
+ case 5425:
+ return "阿里地区";
+ case 542521:
+ return "普兰县";
+ case 542522:
+ return "札达县";
+ case 542523:
+ return "噶尔县";
+ case 542524:
+ return "日土县";
+ case 542525:
+ return "革吉县";
+ case 542526:
+ return "改则县";
+ case 542527:
+ return "措勤县";
+ case 5426:
+ return "林芝地区";
+ case 542621:
+ return "林芝县";
+ case 542622:
+ return "工布江达县";
+ case 542623:
+ return "米林县";
+ case 542624:
+ return "墨脱县";
+ case 542625:
+ return "波密县";
+ case 542626:
+ return "察隅县";
+ case 542627:
+ return "朗县";
+ case 61:
+ return "陕西省";
+ case 6101:
+ return "西安市";
+ case 610101:
+ return "市辖区";
+ case 610102:
+ return "新城区";
+ case 610103:
+ return "碑林区";
+ case 610104:
+ return "莲湖区";
+ case 610111:
+ return "灞桥区";
+ case 610112:
+ return "未央区";
+ case 610113:
+ return "雁塔区";
+ case 610114:
+ return "阎良区";
+ case 610115:
+ return "临潼区";
+ case 610116:
+ return "长安区";
+ case 610122:
+ return "蓝田县";
+ case 610124:
+ return "周至县";
+ case 610125:
+ return "户县";
+ case 610126:
+ return "高陵县";
+ case 6102:
+ return "铜川市";
+ case 610201:
+ return "市辖区";
+ case 610202:
+ return "王益区";
+ case 610203:
+ return "印台区";
+ case 610204:
+ return "耀州区";
+ case 610222:
+ return "宜君县";
+ case 6103:
+ return "宝鸡市";
+ case 610301:
+ return "市辖区";
+ case 610302:
+ return "渭滨区";
+ case 610303:
+ return "金台区";
+ case 610304:
+ return "陈仓区";
+ case 610322:
+ return "凤翔县";
+ case 610323:
+ return "岐山县";
+ case 610324:
+ return "扶风县";
+ case 610326:
+ return "眉县";
+ case 610327:
+ return "陇县";
+ case 610328:
+ return "千阳县";
+ case 610329:
+ return "麟游县";
+ case 610330:
+ return "凤县";
+ case 610331:
+ return "太白县";
+ case 6104:
+ return "咸阳市";
+ case 610401:
+ return "市辖区";
+ case 610402:
+ return "秦都区";
+ case 610403:
+ return "杨陵区";
+ case 610404:
+ return "渭城区";
+ case 610422:
+ return "三原县";
+ case 610423:
+ return "泾阳县";
+ case 610424:
+ return "乾县";
+ case 610425:
+ return "礼泉县";
+ case 610426:
+ return "永寿县";
+ case 610427:
+ return "彬县";
+ case 610428:
+ return "长武县";
+ case 610429:
+ return "旬邑县";
+ case 610430:
+ return "淳化县";
+ case 610431:
+ return "武功县";
+ case 610481:
+ return "兴平市";
+ case 6105:
+ return "渭南市";
+ case 610501:
+ return "市辖区";
+ case 610502:
+ return "临渭区";
+ case 610521:
+ return "华县";
+ case 610522:
+ return "潼关县";
+ case 610523:
+ return "大荔县";
+ case 610524:
+ return "合阳县";
+ case 610525:
+ return "澄城县";
+ case 610526:
+ return "蒲城县";
+ case 610527:
+ return "白水县";
+ case 610528:
+ return "富平县";
+ case 610581:
+ return "韩城市";
+ case 610582:
+ return "华阴市";
+ case 6106:
+ return "延安市";
+ case 610601:
+ return "市辖区";
+ case 610602:
+ return "宝塔区";
+ case 610621:
+ return "延长县";
+ case 610622:
+ return "延川县";
+ case 610623:
+ return "子长县";
+ case 610624:
+ return "安塞县";
+ case 610625:
+ return "志丹县";
+ case 610626:
+ return "吴起县";
+ case 610627:
+ return "甘泉县";
+ case 610628:
+ return "富县";
+ case 610629:
+ return "洛川县";
+ case 610630:
+ return "宜川县";
+ case 610631:
+ return "黄龙县";
+ case 610632:
+ return "黄陵县";
+ case 6107:
+ return "汉中市";
+ case 610701:
+ return "市辖区";
+ case 610702:
+ return "汉台区";
+ case 610721:
+ return "南郑县";
+ case 610722:
+ return "城固县";
+ case 610723:
+ return "洋县";
+ case 610724:
+ return "西乡县";
+ case 610725:
+ return "勉县";
+ case 610726:
+ return "宁强县";
+ case 610727:
+ return "略阳县";
+ case 610728:
+ return "镇巴县";
+ case 610729:
+ return "留坝县";
+ case 610730:
+ return "佛坪县";
+ case 6108:
+ return "榆林市";
+ case 610801:
+ return "市辖区";
+ case 610802:
+ return "榆阳区";
+ case 610821:
+ return "神木县";
+ case 610822:
+ return "府谷县";
+ case 610823:
+ return "横山县";
+ case 610824:
+ return "靖边县";
+ case 610825:
+ return "定边县";
+ case 610826:
+ return "绥德县";
+ case 610827:
+ return "米脂县";
+ case 610828:
+ return "佳县";
+ case 610829:
+ return "吴堡县";
+ case 610830:
+ return "清涧县";
+ case 610831:
+ return "子洲县";
+ case 6109:
+ return "安康市";
+ case 610901:
+ return "市辖区";
+ case 610902:
+ return "汉滨区";
+ case 610921:
+ return "汉阴县";
+ case 610922:
+ return "石泉县";
+ case 610923:
+ return "宁陕县";
+ case 610924:
+ return "紫阳县";
+ case 610925:
+ return "岚皋县";
+ case 610926:
+ return "平利县";
+ case 610927:
+ return "镇坪县";
+ case 610928:
+ return "旬阳县";
+ case 610929:
+ return "白河县";
+ case 6110:
+ return "商洛市";
+ case 611001:
+ return "市辖区";
+ case 611002:
+ return "商州区";
+ case 611021:
+ return "洛南县";
+ case 611022:
+ return "丹凤县";
+ case 611023:
+ return "商南县";
+ case 611024:
+ return "山阳县";
+ case 611025:
+ return "镇安县";
+ case 611026:
+ return "柞水县";
+ case 62:
+ return "甘肃省";
+ case 6201:
+ return "兰州市";
+ case 620101:
+ return "市辖区";
+ case 620102:
+ return "城关区";
+ case 620103:
+ return "七里河区";
+ case 620104:
+ return "西固区";
+ case 620105:
+ return "安宁区";
+ case 620111:
+ return "红古区";
+ case 620121:
+ return "永登县";
+ case 620122:
+ return "皋兰县";
+ case 620123:
+ return "榆中县";
+ case 6202:
+ return "嘉峪关市";
+ case 620201:
+ return "市辖区";
+ case 6203:
+ return "金昌市";
+ case 620301:
+ return "市辖区";
+ case 620302:
+ return "金川区";
+ case 620321:
+ return "永昌县";
+ case 6204:
+ return "白银市";
+ case 620401:
+ return "市辖区";
+ case 620402:
+ return "白银区";
+ case 620403:
+ return "平川区";
+ case 620421:
+ return "靖远县";
+ case 620422:
+ return "会宁县";
+ case 620423:
+ return "景泰县";
+ case 6205:
+ return "天水市";
+ case 620501:
+ return "市辖区";
+ case 620502:
+ return "秦州区";
+ case 620503:
+ return "麦积区";
+ case 620521:
+ return "清水县";
+ case 620522:
+ return "秦安县";
+ case 620523:
+ return "甘谷县";
+ case 620524:
+ return "武山县";
+ case 620525:
+ return "张家川回族自治县";
+ case 6206:
+ return "武威市";
+ case 620601:
+ return "市辖区";
+ case 620602:
+ return "凉州区";
+ case 620621:
+ return "民勤县";
+ case 620622:
+ return "古浪县";
+ case 620623:
+ return "天祝藏族自治县";
+ case 6207:
+ return "张掖市";
+ case 620701:
+ return "市辖区";
+ case 620702:
+ return "甘州区";
+ case 620721:
+ return "肃南裕固族自治县";
+ case 620722:
+ return "民乐县";
+ case 620723:
+ return "临泽县";
+ case 620724:
+ return "高台县";
+ case 620725:
+ return "山丹县";
+ case 6208:
+ return "平凉市";
+ case 620801:
+ return "市辖区";
+ case 620802:
+ return "崆峒区";
+ case 620821:
+ return "泾川县";
+ case 620822:
+ return "灵台县";
+ case 620823:
+ return "崇信县";
+ case 620824:
+ return "华亭县";
+ case 620825:
+ return "庄浪县";
+ case 620826:
+ return "静宁县";
+ case 6209:
+ return "酒泉市";
+ case 620901:
+ return "市辖区";
+ case 620902:
+ return "肃州区";
+ case 620921:
+ return "金塔县";
+ case 620922:
+ return "瓜州县";
+ case 620923:
+ return "肃北蒙古族自治县";
+ case 620924:
+ return "阿克塞哈萨克族自治县";
+ case 620981:
+ return "玉门市";
+ case 620982:
+ return "敦煌市";
+ case 6210:
+ return "庆阳市";
+ case 621001:
+ return "市辖区";
+ case 621002:
+ return "西峰区";
+ case 621021:
+ return "庆城县";
+ case 621022:
+ return "环县";
+ case 621023:
+ return "华池县";
+ case 621024:
+ return "合水县";
+ case 621025:
+ return "正宁县";
+ case 621026:
+ return "宁县";
+ case 621027:
+ return "镇原县";
+ case 6211:
+ return "定西市";
+ case 621101:
+ return "市辖区";
+ case 621102:
+ return "安定区";
+ case 621121:
+ return "通渭县";
+ case 621122:
+ return "陇西县";
+ case 621123:
+ return "渭源县";
+ case 621124:
+ return "临洮县";
+ case 621125:
+ return "漳县";
+ case 621126:
+ return "岷县";
+ case 6212:
+ return "陇南市";
+ case 621201:
+ return "市辖区";
+ case 621202:
+ return "武都区";
+ case 621221:
+ return "成县";
+ case 621222:
+ return "文县";
+ case 621223:
+ return "宕昌县";
+ case 621224:
+ return "康县";
+ case 621225:
+ return "西和县";
+ case 621226:
+ return "礼县";
+ case 621227:
+ return "徽县";
+ case 621228:
+ return "两当县";
+ case 6229:
+ return "临夏回族自治州";
+ case 622901:
+ return "临夏市";
+ case 622921:
+ return "临夏县";
+ case 622922:
+ return "康乐县";
+ case 622923:
+ return "永靖县";
+ case 622924:
+ return "广河县";
+ case 622925:
+ return "和政县";
+ case 622926:
+ return "东乡族自治县";
+ case 622927:
+ return "积石山保安族东乡族撒拉族自治县";
+ case 6230:
+ return "甘南藏族自治州";
+ case 623001:
+ return "合作市";
+ case 623021:
+ return "临潭县";
+ case 623022:
+ return "卓尼县";
+ case 623023:
+ return "舟曲县";
+ case 623024:
+ return "迭部县";
+ case 623025:
+ return "玛曲县";
+ case 623026:
+ return "碌曲县";
+ case 623027:
+ return "夏河县";
+ case 63:
+ return "青海省";
+ case 6301:
+ return "西宁市";
+ case 630101:
+ return "市辖区";
+ case 630102:
+ return "城东区";
+ case 630103:
+ return "城中区";
+ case 630104:
+ return "城西区";
+ case 630105:
+ return "城北区";
+ case 630121:
+ return "大通回族土族自治县";
+ case 630122:
+ return "湟中县";
+ case 630123:
+ return "湟源县";
+ case 6302:
+ return "海东市";
+ case 630202:
+ return "乐都区";
+ case 630221:
+ return "平安县";
+ case 630222:
+ return "民和回族土族自治县";
+ case 630223:
+ return "互助土族自治县";
+ case 630224:
+ return "化隆回族自治县";
+ case 630225:
+ return "循化撒拉族自治县";
+ case 6322:
+ return "海北藏族自治州";
+ case 632221:
+ return "门源回族自治县";
+ case 632222:
+ return "祁连县";
+ case 632223:
+ return "海晏县";
+ case 632224:
+ return "刚察县";
+ case 6323:
+ return "黄南藏族自治州";
+ case 632321:
+ return "同仁县";
+ case 632322:
+ return "尖扎县";
+ case 632323:
+ return "泽库县";
+ case 632324:
+ return "河南蒙古族自治县";
+ case 6325:
+ return "海南藏族自治州";
+ case 632521:
+ return "共和县";
+ case 632522:
+ return "同德县";
+ case 632523:
+ return "贵德县";
+ case 632524:
+ return "兴海县";
+ case 632525:
+ return "贵南县";
+ case 6326:
+ return "果洛藏族自治州";
+ case 632621:
+ return "玛沁县";
+ case 632622:
+ return "班玛县";
+ case 632623:
+ return "甘德县";
+ case 632624:
+ return "达日县";
+ case 632625:
+ return "久治县";
+ case 632626:
+ return "玛多县";
+ case 6327:
+ return "玉树藏族自治州";
+ case 632701:
+ return "玉树市";
+ case 632722:
+ return "杂多县";
+ case 632723:
+ return "称多县";
+ case 632724:
+ return "治多县";
+ case 632725:
+ return "囊谦县";
+ case 632726:
+ return "曲麻莱县";
+ case 6328:
+ return "海西蒙古族藏族自治州";
+ case 632801:
+ return "格尔木市";
+ case 632802:
+ return "德令哈市";
+ case 632821:
+ return "乌兰县";
+ case 632822:
+ return "都兰县";
+ case 632823:
+ return "天峻县";
+ case 64:
+ return "宁夏回族自治区";
+ case 6401:
+ return "银川市";
+ case 640101:
+ return "市辖区";
+ case 640104:
+ return "兴庆区";
+ case 640105:
+ return "西夏区";
+ case 640106:
+ return "金凤区";
+ case 640121:
+ return "永宁县";
+ case 640122:
+ return "贺兰县";
+ case 640181:
+ return "灵武市";
+ case 6402:
+ return "石嘴山市";
+ case 640201:
+ return "市辖区";
+ case 640202:
+ return "大武口区";
+ case 640205:
+ return "惠农区";
+ case 640221:
+ return "平罗县";
+ case 6403:
+ return "吴忠市";
+ case 640301:
+ return "市辖区";
+ case 640302:
+ return "利通区";
+ case 640303:
+ return "红寺堡区";
+ case 640323:
+ return "盐池县";
+ case 640324:
+ return "同心县";
+ case 640381:
+ return "青铜峡市";
+ case 6404:
+ return "固原市";
+ case 640401:
+ return "市辖区";
+ case 640402:
+ return "原州区";
+ case 640422:
+ return "西吉县";
+ case 640423:
+ return "隆德县";
+ case 640424:
+ return "泾源县";
+ case 640425:
+ return "彭阳县";
+ case 6405:
+ return "中卫市";
+ case 640501:
+ return "市辖区";
+ case 640502:
+ return "沙坡头区";
+ case 640521:
+ return "中宁县";
+ case 640522:
+ return "海原县";
+ case 65:
+ return "新疆维吾尔自治区";
+ case 6501:
+ return "乌鲁木齐市";
+ case 650101:
+ return "市辖区";
+ case 650102:
+ return "天山区";
+ case 650103:
+ return "沙依巴克区";
+ case 650104:
+ return "新市区";
+ case 650105:
+ return "水磨沟区";
+ case 650106:
+ return "头屯河区";
+ case 650107:
+ return "达坂城区";
+ case 650109:
+ return "米东区";
+ case 650121:
+ return "乌鲁木齐县";
+ case 6502:
+ return "克拉玛依市";
+ case 650201:
+ return "市辖区";
+ case 650202:
+ return "独山子区";
+ case 650203:
+ return "克拉玛依区";
+ case 650204:
+ return "白碱滩区";
+ case 650205:
+ return "乌尔禾区";
+ case 6521:
+ return "吐鲁番地区";
+ case 652101:
+ return "吐鲁番市";
+ case 652122:
+ return "鄯善县";
+ case 652123:
+ return "托克逊县";
+ case 6522:
+ return "哈密地区";
+ case 652201:
+ return "哈密市";
+ case 652222:
+ return "巴里坤哈萨克自治县";
+ case 652223:
+ return "伊吾县";
+ case 6523:
+ return "昌吉回族自治州";
+ case 652301:
+ return "昌吉市";
+ case 652302:
+ return "阜康市";
+ case 652323:
+ return "呼图壁县";
+ case 652324:
+ return "玛纳斯县";
+ case 652325:
+ return "奇台县";
+ case 652327:
+ return "吉木萨尔县";
+ case 652328:
+ return "木垒哈萨克自治县";
+ case 6527:
+ return "博尔塔拉蒙古自治州";
+ case 652701:
+ return "博乐市";
+ case 652702:
+ return "阿拉山口市";
+ case 652722:
+ return "精河县";
+ case 652723:
+ return "温泉县";
+ case 6528:
+ return "巴音郭楞蒙古自治州";
+ case 652801:
+ return "库尔勒市";
+ case 652822:
+ return "轮台县";
+ case 652823:
+ return "尉犁县";
+ case 652824:
+ return "若羌县";
+ case 652825:
+ return "且末县";
+ case 652826:
+ return "焉耆回族自治县";
+ case 652827:
+ return "和静县";
+ case 652828:
+ return "和硕县";
+ case 652829:
+ return "博湖县";
+ case 6529:
+ return "阿克苏地区";
+ case 652901:
+ return "阿克苏市";
+ case 652922:
+ return "温宿县";
+ case 652923:
+ return "库车县";
+ case 652924:
+ return "沙雅县";
+ case 652925:
+ return "新和县";
+ case 652926:
+ return "拜城县";
+ case 652927:
+ return "乌什县";
+ case 652928:
+ return "阿瓦提县";
+ case 652929:
+ return "柯坪县";
+ case 6530:
+ return "克孜勒苏柯尔克孜自治州";
+ case 653001:
+ return "阿图什市";
+ case 653022:
+ return "阿克陶县";
+ case 653023:
+ return "阿合奇县";
+ case 653024:
+ return "乌恰县";
+ case 6531:
+ return "喀什地区";
+ case 653101:
+ return "喀什市";
+ case 653121:
+ return "疏附县";
+ case 653122:
+ return "疏勒县";
+ case 653123:
+ return "英吉沙县";
+ case 653124:
+ return "泽普县";
+ case 653125:
+ return "莎车县";
+ case 653126:
+ return "叶城县";
+ case 653127:
+ return "麦盖提县";
+ case 653128:
+ return "岳普湖县";
+ case 653129:
+ return "伽师县";
+ case 653130:
+ return "巴楚县";
+ case 653131:
+ return "塔什库尔干塔吉克自治县";
+ case 6532:
+ return "和田地区";
+ case 653201:
+ return "和田市";
+ case 653221:
+ return "和田县";
+ case 653222:
+ return "墨玉县";
+ case 653223:
+ return "皮山县";
+ case 653224:
+ return "洛浦县";
+ case 653225:
+ return "策勒县";
+ case 653226:
+ return "于田县";
+ case 653227:
+ return "民丰县";
+ case 6540:
+ return "伊犁哈萨克自治州";
+ case 654002:
+ return "伊宁市";
+ case 654003:
+ return "奎屯市";
+ case 654021:
+ return "伊宁县";
+ case 654022:
+ return "察布查尔锡伯自治县";
+ case 654023:
+ return "霍城县";
+ case 654024:
+ return "巩留县";
+ case 654025:
+ return "新源县";
+ case 654026:
+ return "昭苏县";
+ case 654027:
+ return "特克斯县";
+ case 654028:
+ return "尼勒克县";
+ case 6542:
+ return "塔城地区";
+ case 654201:
+ return "塔城市";
+ case 654202:
+ return "乌苏市";
+ case 654221:
+ return "额敏县";
+ case 654223:
+ return "沙湾县";
+ case 654224:
+ return "托里县";
+ case 654225:
+ return "裕民县";
+ case 654226:
+ return "和布克赛尔蒙古自治县";
+ case 6543:
+ return "阿勒泰地区";
+ case 654301:
+ return "阿勒泰市";
+ case 654321:
+ return "布尔津县";
+ case 654322:
+ return "富蕴县";
+ case 654323:
+ return "福海县";
+ case 654324:
+ return "哈巴河县";
+ case 654325:
+ return "青河县";
+ case 654326:
+ return "吉木乃县";
+ case 6590:
+ return "自治区直辖县级行政区划";
+ case 659001:
+ return "石河子市";
+ case 659002:
+ return "阿拉尔市";
+ case 659003:
+ return "图木舒克市";
+ case 659004:
+ return "五家渠市";
+ case 71:
+ return "台湾省";
+ case 81:
+ return "香港特别行政区";
+ case 82:
+ return "澳门特别行政区";
+ default:
+ return null;
+ }
+ }
+}
+
+
diff --git a/Common/src/main/java/cn/crtech/cloud/common/utils/OrganizeTree.java b/Common/src/main/java/cn/crtech/cloud/common/utils/OrganizeTree.java
new file mode 100644
index 0000000..42c8fc3
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/utils/OrganizeTree.java
@@ -0,0 +1,59 @@
+package cn.crtech.cloud.common.utils;
+
+import cn.crtech.cloud.common.pojo.Tree;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * author 墨衣
+ * date 2022/3/31
+ * descript
+ **/
+public class OrganizeTree {
+ private List treeList;
+
+ public OrganizeTree(List treeList) {
+ this.treeList = treeList;
+ }
+
+ //建立树形结构
+ public List buildTree() {
+ List tree = new ArrayList<>();
+ for (T node : getRootNode()) {
+ node = buildChildTree(node);
+ tree.add(node);
+ }
+ return tree;
+ }
+
+ //递归,建立子树形结构
+ private T buildChildTree(T pNode) {
+ List child = new ArrayList<>();
+ for (T node : treeList) {
+ //pNode的id必定存在,node可能存在,可能为null
+ String parentId = node.getRealParentId() == null ? "" : node.getRealParentId().toString();
+ if (pNode.getRealId().toString().equals(parentId)) {
+ child.add(buildChildTree(node));
+ }
+ }
+ if (child.size() != 0) {
+ pNode.setChildren(child);
+ } else {
+ pNode.setChildren(null);
+ }
+
+ return pNode;
+ }
+
+ //获取根节点
+ private List getRootNode() {
+ List root = new ArrayList<>();
+ for (T node : treeList) {
+ if (node.isRoot()) {
+ root.add(node);
+ }
+ }
+ return root;
+ }
+}
diff --git a/Common/src/main/java/cn/crtech/cloud/common/utils/SendSMSUtils.java b/Common/src/main/java/cn/crtech/cloud/common/utils/SendSMSUtils.java
new file mode 100644
index 0000000..ef09916
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/utils/SendSMSUtils.java
@@ -0,0 +1,112 @@
+package cn.crtech.cloud.common.utils;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.aliyuncs.CommonRequest;
+import com.aliyuncs.CommonResponse;
+import com.aliyuncs.DefaultAcsClient;
+import com.aliyuncs.IAcsClient;
+import com.aliyuncs.http.MethodType;
+import com.aliyuncs.profile.DefaultProfile;
+import jdk.nashorn.internal.runtime.logging.DebugLogger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.util.Map;
+
+public class SendSMSUtils {
+ private static final Logger logger = LoggerFactory.getLogger(DebugLogger.class);
+ private static final SendSMSUtils ourInstance = new SendSMSUtils();
+
+ public static SendSMSUtils getInstance() {
+ return ourInstance;
+ }
+
+ private SendSMSUtils() {
+ }
+
+ /**
+ * @param map 模板参数
+ * @param mobiles 手机号码
+ * @param templateCode 模板code
+ * signName
+ * accessKeySecret
+ * accessKeyId
+ * domain
+ * @return 返回处理结果
+ */
+ public static JSONObject sendALiYunSMS(Map map, String mobiles, String templateCode) {
+
+ String accessKeyId = map.get("accessKeyId").toString();
+ String accessKeySecret = map.get("accessKeySecret").toString();
+ String signName = map.get("signName").toString();
+ String domain = map.get("domain").toString();
+
+ DefaultProfile profile = DefaultProfile.getProfile("default", accessKeyId, accessKeySecret);
+ IAcsClient client = new DefaultAcsClient(profile);
+
+ CommonRequest request = new CommonRequest();
+ request.setMethod(MethodType.POST);
+ request.setDomain(domain);
+ request.setVersion("2017-05-25");
+ request.setAction("SendSms");
+ request.putQueryParameter("PhoneNumbers", mobiles);
+ request.putQueryParameter("SignName", signName);
+ request.putQueryParameter("TemplateCode", templateCode);
+ //移除以下两个不必要的参数
+ map.remove("templateCode");
+ map.remove("platform");
+ String str = JSONObject.toJSONString(map);
+ logger.info("发文:" + str);
+ request.putQueryParameter("TemplateParam", str);
+ JSONObject jo = null;
+ try {
+ CommonResponse response = client.getCommonResponse(request);
+ logger.info(response.getData());
+ jo = JSON.parseObject(response.getData());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ logger.info("返回:" + jo);
+ return jo;
+ }
+
+ /**
+ * int > 0 发送成功!
+ *
+ * mobile 手机号码
+ * content 内容
+ * pwd lingKai配置
+ * domain
+ * corpId
+ *
+ * @return 返回处理结果
+ * @throws Exception 发送异常
+ */
+ public static int sendLingKaiSMS(Map map) throws Exception {
+ String mobile = map.get("mobile").toString();
+ String content = map.get("content").toString();
+ String corpId = map.get("corpId").toString();
+ String pwd = map.get("pwd").toString();
+ String domain = map.get("domain").toString();
+
+ String send_content = URLEncoder.encode(content, "GB2312");
+ URL url = new URL(domain + "?CorpID=" + corpId + "&Pwd=" + pwd + "&Mobile=" + mobile + "&Content=" + send_content);
+ BufferedReader in;
+ int inputLine = 0;
+ try {
+ logger.info("开始发送短信手机号码为:" + mobile);
+ in = new BufferedReader(new InputStreamReader(url.openStream()));
+ inputLine = new Integer(in.readLine());
+ } catch (Exception e) {
+ logger.info("网络异常,发送短信失败!");
+ inputLine = -2;
+ }
+ logger.info("发送成功!");
+ return inputLine;
+ }
+}
diff --git a/Common/src/main/java/cn/crtech/cloud/common/utils/ThumbnailatorUtil.java b/Common/src/main/java/cn/crtech/cloud/common/utils/ThumbnailatorUtil.java
new file mode 100644
index 0000000..b803260
--- /dev/null
+++ b/Common/src/main/java/cn/crtech/cloud/common/utils/ThumbnailatorUtil.java
@@ -0,0 +1,409 @@
+package cn.crtech.cloud.common.utils;
+
+import net.coobird.thumbnailator.Thumbnails;
+import net.coobird.thumbnailator.geometry.Coordinate;
+import net.coobird.thumbnailator.geometry.Position;
+
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.InputStream;
+import java.util.List;
+
+/**
+ * Author : yj
+ * Date : 2021-03-29
+ * Description:
+ */
+public class ThumbnailatorUtil {
+ /**
+ * 图片尺寸不变,压缩图片文件大小
+ *
+ * @param bytes 图片文件二进制流
+ * @param imageType 图片格式
+ * @param quality 质量因子 1为最高质量
+ * @return
+ */
+ public static byte[] compressImage(byte[] bytes, String imageType, float quality) {
+ InputStream in = null;
+ ByteArrayOutputStream bout = null;
+ try {
+ in = new ByteArrayInputStream(bytes);
+ bout = new ByteArrayOutputStream(1024);
+
+ // 图片尺寸不变,压缩图片文件大小outputQuality实现,参数1为最高质量
+ Thumbnails.of(in).scale(1f).outputFormat(imageType).outputQuality(quality).toOutputStream(bout);
+
+ byte[] compressiondata = bout.toByteArray();
+
+ return compressiondata;
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ } finally {
+ try {
+ if (in != null) {
+ in.close();
+ }
+ if (bout != null) {
+ bout.close();
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ }
+
+ /**
+ * 指定宽高压缩图片
+ *
+ * @param bytes 图片文件二进制流
+ * @param width 压缩宽度
+ * @param height 压缩高度
+ * @return
+ */
+ public static byte[] compressImageWithWH(byte[] bytes, int width, int height) {
+ InputStream in = null;
+ ByteArrayOutputStream bout = null;
+ try {
+ in = new ByteArrayInputStream(bytes);
+ bout = new ByteArrayOutputStream(1024);
+
+ Thumbnails.of(in).size(width, height).toOutputStream(bout);
+
+ return bout.toByteArray();
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ } finally {
+ try {
+ if (in != null) {
+ in.close();
+ }
+ if (bout != null) {
+ bout.close();
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ }
+
+ /**
+ * 根据比列压缩图片
+ *
+ * @param bytes
+ * @param scale
+ * @return
+ */
+ public static byte[] compressImageWithScale(byte[] bytes, double scale) {
+ InputStream in = null;
+ ByteArrayOutputStream bout = null;
+ try {
+ in = new ByteArrayInputStream(bytes);
+ bout = new ByteArrayOutputStream(1024);
+
+ Thumbnails.of(in).scale(scale).toOutputStream(bout);
+
+ return bout.toByteArray();
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ } finally {
+ try {
+ if (in != null) {
+ in.close();
+ }
+ if (bout != null) {
+ bout.close();
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ }
+
+ /**
+ * 转换图片格式
+ *
+ * @param bytes 源图片文件流
+ * @param toformatImageType 转换后图片格式
+ * @return
+ */
+ public static byte[] formatImage(byte[] bytes, String toformatImageType, int width, int height) {
+ InputStream in = null;
+ ByteArrayOutputStream bout = null;
+ try {
+ in = new ByteArrayInputStream(bytes);
+ bout = new ByteArrayOutputStream(1024);
+
+ Thumbnails.of(in).size(width, height).outputFormat(toformatImageType).toOutputStream(bout);
+
+ return bout.toByteArray();
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ } finally {
+ try {
+ if (in != null) {
+ in.close();
+ }
+ if (bout != null) {
+ bout.close();
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ }
+
+ /**
+ * 根据坐标裁剪图片
+ *
+ * @param bytes 源图片文件流
+ * @param x 起始x坐标
+ * @param y 起始y坐标
+ * @param x1 结束x坐标
+ * @param y1 结束y坐标
+ * @param keepAspectRatio 默认是按照比例缩放的,值为false 时不按比例缩放
+ * @return
+ */
+ public static byte[] cutImage(byte[] bytes, int x, int y, int x1, int y1, boolean keepAspectRatio) {
+ InputStream in = null;
+ ByteArrayOutputStream bout = null;
+ try {
+ in = new ByteArrayInputStream(bytes);
+ bout = new ByteArrayOutputStream(1024);
+
+ int width = x1 - x;
+ int height = y1 - y;
+ Thumbnails.of(in).sourceRegion(x, y, x1, y1).size(width, height).keepAspectRatio(keepAspectRatio).toOutputStream(bout);
+
+ return bout.toByteArray();
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ } finally {
+ try {
+ if (in != null) {
+ in.close();
+ }
+ if (bout != null) {
+ bout.close();
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ }
+
+ /**
+ * 添加图片水印
+ *
+ * @param bytes 源图片文件流
+ * @param width 宽度
+ * @param height 高度
+ * @param position 位置 Positions.BOTTOM_RIGHT
+ * @param watermark 水印图片地址
+ * @param opacity 透明度 0.5f
+ * @param quality 图片质量 0.8f
+ * @return
+ */
+ public static byte[] addImageWater(byte[] bytes, int width, int height, Position position, String watermark, float opacity, float quality) {
+ InputStream in = null;
+ ByteArrayOutputStream bout = null;
+ try {
+ in = new ByteArrayInputStream(bytes);
+ bout = new ByteArrayOutputStream(1024);
+
+ Thumbnails.of(in)
+ .size(width, height)
+ // 加水印 参数:1.水印位置 2.水印图片 3.不透明度0.0-1.0
+ .watermark(position, ImageIO.read(new File(watermark)), opacity)
+ .outputQuality(quality)
+ .toOutputStream(bout);
+
+ return bout.toByteArray();
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ } finally {
+ try {
+ if (in != null) {
+ in.close();
+ }
+ if (bout != null) {
+ bout.close();
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ }
+
+ /**
+ * 添加文字水印
+ *
+ * @param bytes
+ * @param position
+ * @param waterText
+ * @param rotate
+ * @param opacity
+ * @param quality
+ * @return
+ */
+ public static byte[] addTextWater(byte[] bytes, Position position, String waterText, double rotate, float opacity, float quality) {
+ InputStream in = null;
+ ByteArrayOutputStream bout = null;
+ try {
+ in = new ByteArrayInputStream(bytes);
+ bout = new ByteArrayOutputStream(1024);
+
+ // 设置480x160的大小区域显示水印文本
+ BufferedImage bi = new BufferedImage(480, 160, BufferedImage.TYPE_INT_RGB);
+ Graphics2D g = bi.createGraphics();
+
+ // 设置绘图区域透明
+ bi = g.getDeviceConfiguration().createCompatibleImage(480, 160, Transparency.TRANSLUCENT);
+ g.dispose();
+ g = bi.createGraphics();
+
+ // 设置字体类型、大小、加粗、颜色
+ g.setFont(new Font("微软雅黑", Font.BOLD, 32));
+ g.setColor(new Color(0, 0, 0));
+ char[] data = waterText.toCharArray();
+ // 设置文本显示坐标(0,80)
+ g.drawChars(data, 0, data.length, 0, 80);
+ g.dispose();
+
+ Thumbnails.of(in).scale(1).watermark(position, bi, opacity).outputQuality(quality).toOutputStream(bout);
+
+ return bout.toByteArray();
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ } finally {
+ try {
+ if (in != null) {
+ in.close();
+ }
+ if (bout != null) {
+ bout.close();
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ }
+
+ /**
+ * 整屏添加文字水印
+ *
+ * @param bytes 源图片二进制流
+ * @param width 图片宽度
+ * @param height 图片高度
+ * @param intervalWidth 间隔宽度
+ * @param intervalHeight 间隔高度
+ * @param waterTextList 水印内容列表
+ * @param fontSize 文字大小
+ * @param opacity 透明度
+ * @param quality 质量
+ * @return
+ */
+ public static byte[] addTextWaterFullScreen(byte[] bytes, int width, int height, int intervalWidth, int intervalHeight, List waterTextList, int fontSize, float opacity, float quality) {
+ InputStream in = null;
+ ByteArrayOutputStream bout = null;
+ try {
+ in = new ByteArrayInputStream(bytes);
+ bout = new ByteArrayOutputStream(1024);
+
+ // 设置图片大小区域显示水印文本
+ BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
+ // 创建一个Graphics2D的对象
+ Graphics2D g = bi.createGraphics();
+
+ // 设置绘图区域透明,即背景透明
+ bi = g.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);
+ g.dispose();
+ g = bi.createGraphics();
+
+ // 设置字体类型,加粗,字体大小
+ Font font = new Font("微软雅黑", Font.BOLD, fontSize);
+ g.setFont(font);
+ // 旋转角度(单位:弧度),以圆点(0,0)为圆心,正代表顺时针,负代表逆时针
+ g.rotate(Math.toRadians(-30), 0, 0);
+ // 设置字体颜色
+ g.setColor(new Color(0, 0, 0));
+ int distance = fontSize + 12;
+ int size = waterTextList.size();
+ // 设置文字字体显示坐标位置
+ for (int i = 0; i < size; i++) {
+ char[] data = waterTextList.get(i).toCharArray();
+ g.drawChars(data, 0, data.length, 0, height / 2 + i * distance);
+ }
+ g.dispose();
+
+ Thumbnails.Builder extends InputStream> builder = Thumbnails.of(in).scale(1);
+
+ // 添加文字水印
+ int wMod = (int) Math.ceil(width / intervalWidth);
+ int hMod = (int) Math.ceil(height / intervalHeight);
+ for (int i = 0; i <= wMod; i++) {
+ for (int j = 0; j <= hMod; j++) {
+ int x = (i) * intervalWidth - intervalWidth / 2;
+ int y = (j) * intervalHeight - intervalHeight / 2;
+ System.out.println(x + "," + y);
+ builder.watermark(new Coordinate(x, y), bi, opacity);
+ }
+ }
+
+ builder.outputQuality(quality).toOutputStream(bout);
+
+ return bout.toByteArray();
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ } finally {
+ try {
+ if (in != null) {
+ in.close();
+ }
+ if (bout != null) {
+ bout.close();
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ }
+
+ /**
+ * 旋转 ,正数:顺时针 负数:逆时针
+ *
+ * @param bytes 源图片文件流
+ * @param width 宽
+ * @param height 高
+ * @param rotate 角度
+ */
+ public static byte[] rotateImage(byte[] bytes, int width, int height, double rotate) {
+ InputStream in = null;
+ ByteArrayOutputStream bout = null;
+ try {
+ in = new ByteArrayInputStream(bytes);
+ bout = new ByteArrayOutputStream(1024);
+
+ Thumbnails.of(in).size(width, height).rotate(rotate).toOutputStream(bout);
+
+ return bout.toByteArray();
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ } finally {
+ try {
+ if (in != null) {
+ in.close();
+ }
+ if (bout != null) {
+ bout.close();
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ }
+}
+