diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..84d6c9f --- /dev/null +++ b/.gitignore @@ -0,0 +1,50 @@ +###################################################################### +# Build Tools + +.gradle +/build/ +!gradle/wrapper/gradle-wrapper.jar + +target/ +!.mvn/wrapper/maven-wrapper.jar + +###################################################################### +# IDE + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +nbproject/private/ +build/* +nbbuild/ +dist/ +nbdist/ +.nb-gradle/ + +###################################################################### +# Others +*.log +*.xml.versionsBackup +*.swp + +!*/build/*.java +!*/build/*.html +!*/build/*.xml +/sql/local.sql + +/ruoyi-admin/src/main/resources/application-dev.yml +/ruoyi-admin/src/main/resources/application-prod.yml +*local*.yml +apiclient_key.pem \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..8564f29 --- /dev/null +++ b/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2018 RuoYi + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index 5877b16..7238eb1 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,52 @@ -# pet-admin +## 平台简介 -猫妈狗爸伴宠师小程序后端代码 \ No newline at end of file +若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。我们在此基础上开发了ruoyi-mall,希望能给做商城的朋友减轻工作量。 + +* 前端采用Vue、Element UI。 +* 后端采用Spring Boot、Spring Security、Redis & Jwt。 +* 权限认证使用Jwt,支持多终端认证系统。 +* 支持加载动态权限菜单,多方式轻松权限控制。 +* 高效率开发,使用代码生成器可以一键生成前后端代码。 + +## B站讲解视频 +https://www.bilibili.com/video/BV16N4y1d7MM +## 本地运行文档 +https://docs.ichengle.top/mall/run.html +## 系统部署文档 +https://docs.ichengle.top/mall/ops.html + +## 项目地址 +| | gitee | github | +|:--------------:|:----------------------------------------|:---------------------------------------------| +| 管理端vue element | https://gitee.com/zccbbg/ruoyi-mall-vue | https://github.com/zccbbg/ruoyi-mall-vue | +| h5 uniapp | https://gitee.com/zccbbg/ruoyi-mall-uniapp | https://github.com/zccbbg/ruoyi-mall-uniapp | + +## 在线体验 +### 管理后台演示地址 +http://mall.ichengle.top +### 小程序和h5 + + + +### 给大家一个便宜寄快递的福利,大件5折,小件6折: + + +## 若依技术专栏 +- 常见问题:https://blog.csdn.net/qq_27575627/category_12336113.html +- 后端技术:https://blog.csdn.net/qq_27575627/category_12331868.html +- 前端技术:https://blog.csdn.net/qq_27575627/category_12331867.html +- 运维:https://blog.csdn.net/qq_27575627/category_12332546.html + +## 若依mall功能 +1. 首页: +2. PMS商品管理: +3. UMS会员管理: +4. OMS订单管理: +5. SMS营销管理: +6. CMS内容管理: + +## 交流群/技术支持 +| 公众号 | +|:------------------------------------------:| +| | +扫公众号二维码,关注后,回复:“加群” \ No newline at end of file diff --git a/bin/clean.bat b/bin/clean.bat new file mode 100644 index 0000000..24c0974 --- /dev/null +++ b/bin/clean.bat @@ -0,0 +1,12 @@ +@echo off +echo. +echo [Ϣ] target· +echo. + +%~d0 +cd %~dp0 + +cd .. +call mvn clean + +pause \ No newline at end of file diff --git a/bin/package.bat b/bin/package.bat new file mode 100644 index 0000000..c693ec0 --- /dev/null +++ b/bin/package.bat @@ -0,0 +1,12 @@ +@echo off +echo. +echo [Ϣ] Weḅwar/jarļ +echo. + +%~d0 +cd %~dp0 + +cd .. +call mvn clean package -Dmaven.test.skip=true + +pause \ No newline at end of file diff --git a/bin/run.bat b/bin/run.bat new file mode 100644 index 0000000..41efbd0 --- /dev/null +++ b/bin/run.bat @@ -0,0 +1,14 @@ +@echo off +echo. +echo [Ϣ] ʹJarWeb̡ +echo. + +cd %~dp0 +cd ../ruoyi-admin/target + +set JAVA_OPTS=-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m + +java -jar %JAVA_OPTS% ruoyi-admin.jar + +cd bin +pause \ No newline at end of file diff --git a/doc/SMS_TEMPLATE_List.xlsx b/doc/SMS_TEMPLATE_List.xlsx new file mode 100644 index 0000000..fe99ff9 Binary files /dev/null and b/doc/SMS_TEMPLATE_List.xlsx differ diff --git a/doc/datacall.jpg b/doc/datacall.jpg new file mode 100644 index 0000000..8a31a98 Binary files /dev/null and b/doc/datacall.jpg differ diff --git a/doc/express.jpg b/doc/express.jpg new file mode 100644 index 0000000..1b16052 Binary files /dev/null and b/doc/express.jpg differ diff --git a/doc/h5演示.png b/doc/h5演示.png new file mode 100644 index 0000000..f4aa9c8 Binary files /dev/null and b/doc/h5演示.png differ diff --git a/doc/小程序演示.jpg b/doc/小程序演示.jpg new file mode 100644 index 0000000..b503c9c Binary files /dev/null and b/doc/小程序演示.jpg differ diff --git a/doc/若依环境使用手册.docx b/doc/若依环境使用手册.docx new file mode 100644 index 0000000..9e4daef Binary files /dev/null and b/doc/若依环境使用手册.docx differ diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..60166e5 --- /dev/null +++ b/pom.xml @@ -0,0 +1,331 @@ + + + 4.0.0 + + com.ruoyi + ruoyi + 3.7.0 + + ruoyi + + + 3.7.0 + UTF-8 + UTF-8 + 1.8 + 3.1.1 + 1.2.6 + 1.21 + 3.0.0 + 2.3.2 + 2.1.4 + 1.3.1 + 1.2.79 + 5.8.0 + 5.8.0 + 2.11.0 + 1.4 + 3.2.2 + 4.1.2 + 1.7 + 0.9.1 + 1.16.20 + 3.3.2 + 3.13.6 + + 2.0.23 + + + + + + + + + org.springframework.boot + spring-boot-dependencies + 2.2.13.RELEASE + pom + import + + + + + com.alibaba + druid-spring-boot-starter + ${druid.version} + + + + + eu.bitwalker + UserAgentUtils + ${bitwalker.version} + + + + + + + + com.github.pagehelper + pagehelper-spring-boot-starter + ${pagehelper.boot.version} + + + + + com.github.oshi + oshi-core + ${oshi.version} + + + + net.java.dev.jna + jna + ${jna.version} + + + + net.java.dev.jna + jna-platform + ${jna.version} + + + + + io.springfox + springfox-boot-starter + ${swagger.version} + + + io.swagger + swagger-models + + + org.mapstruct + mapstruct + + + + + + + commons-io + commons-io + ${commons.io.version} + + + + + commons-fileupload + commons-fileupload + ${commons.fileupload.version} + + + + com.aliyun.oss + aliyun-sdk-oss + 3.15.2 + + + + + org.apache.poi + poi-ooxml + ${poi.version} + + + + + org.apache.velocity + velocity + ${velocity.version} + + + commons-collections + commons-collections + + + + + + + commons-collections + commons-collections + ${commons.collections.version} + + + + + com.alibaba + fastjson + ${fastjson.version} + + + + + io.jsonwebtoken + jjwt + ${jwt.version} + + + + + com.github.penggle + kaptcha + ${kaptcha.version} + + + + + com.ruoyi + ruoyi-quartz + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-generator + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-framework + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-system + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-common + ${ruoyi.version} + + + + org.projectlombok + lombok + ${lombok.version} + + + cn.hutool + hutool-all + 5.7.13 + + + + org.mapstruct + mapstruct + 1.4.2.Final + + + com.aliyun + dysmsapi20170525 + ${aliyun.sms.version} + + + + + + ruoyi-admin + ruoyi-framework + ruoyi-system + ruoyi-quartz + ruoyi-generator + ruoyi-common + ruoyi-mall + + pom + + + + + org.projectlombok + lombok + + + cn.hutool + hutool-all + + + + com.baomidou + mybatis-plus-boot-starter + ${mybatis.plus.version} + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + ${java.version} + ${java.version} + ${project.build.sourceEncoding} + + + org.mapstruct + mapstruct-processor + 1.4.2.Final + + + org.projectlombok + lombok + 1.18.4 + + + org.projectlombok + lombok-mapstruct-binding + 0.2.0 + + + + + + + + + + public + aliyun nexus + http://maven.aliyun.com/nexus/content/groups/public/ + + true + + + + + + + public + aliyun nexus + http://maven.aliyun.com/nexus/content/groups/public/ + + true + + + false + + + + + diff --git a/ruoyi-admin/.DS_Store b/ruoyi-admin/.DS_Store new file mode 100644 index 0000000..2593a31 Binary files /dev/null and b/ruoyi-admin/.DS_Store differ diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml new file mode 100644 index 0000000..4a473df --- /dev/null +++ b/ruoyi-admin/pom.xml @@ -0,0 +1,133 @@ + + + + ruoyi + com.ruoyi + 3.7.0 + + 4.0.0 + jar + ruoyi-admin + + + web服务入口 + + + + + + + + + + io.springfox + springfox-boot-starter + + + + + io.swagger + swagger-models + 1.6.2 + + + + + mysql + mysql-connector-java + + + + + com.ruoyi + ruoyi-framework + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-quartz + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-generator + ${ruoyi.version} + + + + com.ruoyi + ruoyi-mall + ${ruoyi.version} + + + org.junit.vintage + junit-vintage-engine + test + + + org.springframework.boot + spring-boot-starter-test + 2.5.0 + test + + + com.h2database + h2 + test + + + + org.mapstruct + mapstruct + 1.4.2.Final + + + + + com.aliyun + dysmsapi20170525 + true + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.1.1.RELEASE + + true + + + + + repackage + + + + + + org.apache.maven.plugins + maven-war-plugin + 3.1.0 + + false + ${project.artifactId} + + + + ${project.artifactId} + + + diff --git a/ruoyi-admin/src/.DS_Store b/ruoyi-admin/src/.DS_Store new file mode 100644 index 0000000..b321661 Binary files /dev/null and b/ruoyi-admin/src/.DS_Store differ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java new file mode 100644 index 0000000..d5f8260 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java @@ -0,0 +1,38 @@ +package com.ruoyi; + +import com.cyl.wechat.WechatPayData; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.retry.annotation.EnableRetry; +import org.springframework.scheduling.annotation.EnableScheduling; + +/** + * 启动程序 + * + * @author ruoyi + */ +@SpringBootApplication( + exclude = {DataSourceAutoConfiguration.class}, + scanBasePackages = {"com.ruoyi", "com.cyl"} +) +@EnableConfigurationProperties(WechatPayData.class) +@EnableScheduling +@EnableRetry +public class RuoYiApplication { + public static void main(String[] args) { + // System.setProperty("spring.devtools.restart.enabled", "false"); + SpringApplication.run(RuoYiApplication.class, args); + System.out.println("(♥◠‿◠)ノ゙ 若依启动成功 ლ(´ڡ`ლ)゙ \n" + + " .-------. ____ __ \n" + + " | _ _ \\ \\ \\ / / \n" + + " | ( ' ) | \\ _. / ' \n" + + " |(_ o _) / _( )_ .' \n" + + " | (_,_).' __ ___(_ o _)' \n" + + " | |\\ \\ | || |(_,_)' \n" + + " | | \\ `' /| `-' / \n" + + " | | \\ / \\ / \n" + + " ''-' `'-' `-..-' "); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiServletInitializer.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiServletInitializer.java new file mode 100644 index 0000000..6de67dc --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiServletInitializer.java @@ -0,0 +1,18 @@ +package com.ruoyi; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * web容器中进行部署 + * + * @author ruoyi + */ +public class RuoYiServletInitializer extends SpringBootServletInitializer +{ + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) + { + return application.sources(RuoYiApplication.class); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java new file mode 100644 index 0000000..0aad226 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java @@ -0,0 +1,96 @@ +package com.ruoyi.web.controller.common; + +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.util.concurrent.TimeUnit; +import javax.annotation.Resource; +import javax.imageio.ImageIO; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.util.FastByteArrayOutputStream; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; +import com.google.code.kaptcha.Producer; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.utils.sign.Base64; +import com.ruoyi.common.utils.uuid.IdUtils; +import com.ruoyi.system.service.ISysConfigService; + +/** + * 验证码操作处理 + * + * @author ruoyi + */ +@RestController +public class CaptchaController +{ + @Resource(name = "captchaProducer") + private Producer captchaProducer; + + @Resource(name = "captchaProducerMath") + private Producer captchaProducerMath; + + @Autowired + private RedisCache redisCache; + + // 验证码类型 + @Value("${ruoyi.captchaType}") + private String captchaType; + + @Autowired + private ISysConfigService configService; + /** + * 生成验证码 + */ + @GetMapping("/captchaImage") + public AjaxResult getCode(HttpServletResponse response) throws IOException + { + AjaxResult ajax = AjaxResult.success(); + boolean captchaOnOff = configService.selectCaptchaOnOff(); + ajax.put("captchaOnOff", captchaOnOff); + if (!captchaOnOff) + { + return ajax; + } + + // 保存验证码信息 + String uuid = IdUtils.simpleUUID(); + String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; + + String capStr = null, code = null; + BufferedImage image = null; + + // 生成验证码 + if ("math".equals(captchaType)) + { + String capText = captchaProducerMath.createText(); + capStr = capText.substring(0, capText.lastIndexOf("@")); + code = capText.substring(capText.lastIndexOf("@") + 1); + image = captchaProducerMath.createImage(capStr); + } + else if ("char".equals(captchaType)) + { + capStr = code = captchaProducer.createText(); + image = captchaProducer.createImage(capStr); + } + + redisCache.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); + // 转换流信息写出 + FastByteArrayOutputStream os = new FastByteArrayOutputStream(); + try + { + ImageIO.write(image, "jpg", os); + } + catch (IOException e) + { + return AjaxResult.error(e.getMessage()); + } + + ajax.put("uuid", uuid); + ajax.put("img", Base64.encode(os.toByteArray())); + return ajax; + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CodeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CodeController.java new file mode 100644 index 0000000..bf5656d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CodeController.java @@ -0,0 +1,29 @@ +package com.ruoyi.web.controller.common; + +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.system.service.PhoneCodeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; + +@RestController +@RequestMapping("/code") +public class CodeController extends BaseController { + @Value("${ruoyi.traceIdName}") + private String traceIdName; + @Autowired + private PhoneCodeService phoneCodeService; + + @GetMapping("/get") + public AjaxResult getCode(HttpServletRequest request, @RequestParam String phone) { + String uuid = request.getHeader(traceIdName); + boolean res = phoneCodeService.obtainCode(uuid, phone); + return AjaxResult.success(res); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java new file mode 100644 index 0000000..5d54b4f --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java @@ -0,0 +1,180 @@ +package com.ruoyi.web.controller.common; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.manager.ums.domain.Address; +import com.cyl.manager.ums.mapper.AddressMapper; +import com.cyl.manager.ums.pojo.dto.AddressDTO; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.redis.RedisService; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.file.FileUploadUtils; +import com.ruoyi.common.utils.file.FileUtils; +import com.ruoyi.common.utils.file.MimeTypeUtils; +import com.ruoyi.framework.config.ServerConfig; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 通用请求处理 + * + * @author ruoyi + */ +@RestController +public class CommonController +{ + private static final Logger log = LoggerFactory.getLogger(CommonController.class); + + @Autowired + private ServerConfig serverConfig; + + @Autowired + private RedisService redisService; + + @Autowired + private AddressMapper addressMapper; + + /** + * 通用下载请求 + * + * @param fileName 文件名称 + * @param delete 是否删除 + */ + @GetMapping("common/download") + public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) + { + try + { + if (!FileUtils.checkAllowDownload(fileName)) + { + throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName)); + } + String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1); + String filePath = RuoYiConfig.getDownloadPath() + fileName; + + response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); + FileUtils.setAttachmentResponseHeader(response, realFileName); + FileUtils.writeBytes(filePath, response.getOutputStream()); + if (delete) + { + FileUtils.deleteFile(filePath); + } + } + catch (Exception e) + { + log.error("下载文件失败", e); + } + } + + /** + * 通用上传请求 + */ + @PostMapping("/common/upload") + public AjaxResult uploadFile(MultipartFile file) throws Exception + { + try + { + // 上传文件路径 + String filePath = RuoYiConfig.getUploadPath(); + // 上传并返回新文件名称 + String fileName = FileUploadUtils.upload(filePath, file, MimeTypeUtils.isImg(file.getContentType())); + String url = serverConfig.getUrl() + fileName; + AjaxResult ajax = AjaxResult.success(); + ajax.put("fileName", fileName); + ajax.put("url", url); + return ajax; + } + catch (Exception e) + { + return AjaxResult.error(e.getMessage()); + } + } + + /** + * 本地资源通用下载 + */ + @GetMapping("/common/download/resource") + public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response) + throws Exception + { + try + { + if (!FileUtils.checkAllowDownload(resource)) + { + throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource)); + } + // 本地资源路径 + String localPath = RuoYiConfig.getProfile(); + // 数据库资源地址 + String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX); + // 下载名称 + String downloadName = StringUtils.substringAfterLast(downloadPath, "/"); + response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); + FileUtils.setAttachmentResponseHeader(response, downloadName); + FileUtils.writeBytes(downloadPath, response.getOutputStream()); + } + catch (Exception e) + { + log.error("下载文件失败", e); + } + } + + @GetMapping("/common/area") + public AjaxResult getAddressList() { + String addresses = redisService.getAddressList(); + if (org.apache.commons.lang3.StringUtils.isNotEmpty(addresses)) { + return AjaxResult.success(JSON.parseArray(addresses, AddressDTO.class)); + } + QueryWrapper
addressQueryWrapper = new QueryWrapper<>(); + addressQueryWrapper.in("level", Arrays.asList(0,1,2)); + List
addressList = addressMapper.selectList(addressQueryWrapper); + Map> cityMap = addressList.stream().filter(it -> it.getLevel() == 1).collect(Collectors.groupingBy(it -> it.getParentCode())); + Map> districtMap = addressList.stream().filter(it -> it.getLevel() == 2).collect(Collectors.groupingBy(it -> it.getParentCode())); + List result = new ArrayList<>(); + addressList.stream().filter(it -> it.getLevel() == 0).forEach(it -> { + AddressDTO dto = new AddressDTO(); + dto.setId(it.getCode()); + dto.setLevel("province"); + dto.setName(it.getName()); + dto.setPid(0L); + //获取城市列表 + List child = new ArrayList<>(); + if (cityMap.containsKey(it.getCode())) { + cityMap.get(it.getCode()).forEach(city -> { + AddressDTO cityDto = new AddressDTO(); + cityDto.setId(city.getCode()); + cityDto.setLevel("city"); + cityDto.setName(city.getName()); + cityDto.setPid(city.getParentCode()); + cityDto.setChildren(districtMap.containsKey(city.getCode()) ? + districtMap.get(city.getCode()).stream().map(district -> { + AddressDTO districtDto = new AddressDTO(); + districtDto.setId(district.getCode()); + districtDto.setLevel("district"); + districtDto.setName(district.getName()); + districtDto.setPid(district.getParentCode()); + return districtDto; + }).collect(Collectors.toList()) : Collections.EMPTY_LIST); + child.add(cityDto); + }); + } + dto.setChildren(child); + result.add(dto); + }); + redisService.setAddressList(JSON.toJSONString(result)); + return AjaxResult.success(result); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/OssController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/OssController.java new file mode 100644 index 0000000..aa2bafa --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/OssController.java @@ -0,0 +1,43 @@ +package com.ruoyi.web.controller.common; + +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.OssUtils; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +@RestController +@Api(tags = "OSS对象存储Controller") +@RequestMapping("/oss") +public class OssController { + @Autowired + OssUtils ossUtils; + + @PostMapping("upload") + public AjaxResult uploadFile(MultipartFile file) { + //返回上传oss的url + String url = ossUtils.uploadOneFile(file); + AjaxResult ajax = AjaxResult.success(); + ajax.put("fileName", file.getOriginalFilename()); + ajax.put("url", url); + return ajax; + } + + @PostMapping("uploadArrayFile") + public List uploadArrayFile(MultipartFile[] files) { + //返回上传oss的url + return ossUtils.uploadArrayFile(files); + } + + @PostMapping("deleteFile") + public boolean deleteFile(@RequestBody String fileUrl) { + //返回是否删除成功 + return ossUtils.deleteFile(fileUrl); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java new file mode 100644 index 0000000..7b97de2 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java @@ -0,0 +1,53 @@ +package com.ruoyi.web.controller.monitor; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisCallback; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.StringUtils; + +/** + * 缓存监控 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/monitor/cache") +public class CacheController +{ + @Autowired + private RedisTemplate redisTemplate; + + @PreAuthorize("@ss.hasPermi('monitor:cache:list')") + @GetMapping() + public AjaxResult getInfo() throws Exception + { + Properties info = (Properties) redisTemplate.execute((RedisCallback) connection -> connection.info()); + Properties commandStats = (Properties) redisTemplate.execute((RedisCallback) connection -> connection.info("commandstats")); + Object dbSize = redisTemplate.execute((RedisCallback) connection -> connection.dbSize()); + + Map result = new HashMap<>(3); + result.put("info", info); + result.put("dbSize", dbSize); + + List> pieList = new ArrayList<>(); + commandStats.stringPropertyNames().forEach(key -> { + Map data = new HashMap<>(2); + String property = commandStats.getProperty(key); + data.put("name", StringUtils.removeStart(key, "cmdstat_")); + data.put("value", StringUtils.substringBetween(property, "calls=", ",usec")); + pieList.add(data); + }); + result.put("commandStats", pieList); + return AjaxResult.success(result); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/ServerController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/ServerController.java new file mode 100644 index 0000000..cc805ad --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/ServerController.java @@ -0,0 +1,27 @@ +package com.ruoyi.web.controller.monitor; + +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.framework.web.domain.Server; + +/** + * 服务器监控 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/monitor/server") +public class ServerController +{ + @PreAuthorize("@ss.hasPermi('monitor:server:list')") + @GetMapping() + public AjaxResult getInfo() throws Exception + { + Server server = new Server(); + server.copyTo(); + return AjaxResult.success(server); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java new file mode 100644 index 0000000..339f242 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java @@ -0,0 +1,67 @@ +package com.ruoyi.web.controller.monitor; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.domain.SysLogininfor; +import com.ruoyi.system.service.ISysLogininforService; + +/** + * 系统访问记录 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/monitor/logininfor") +public class SysLogininforController extends BaseController +{ + @Autowired + private ISysLogininforService logininforService; + + @PreAuthorize("@ss.hasPermi('monitor:logininfor:list')") + @GetMapping("/list") + public TableDataInfo list(SysLogininfor logininfor) + { + startPage(); + List list = logininforService.selectLogininforList(logininfor); + return getDataTable(list); + } + + @Log(title = "登录日志", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('monitor:logininfor:export')") + @GetMapping("/export") + public AjaxResult export(SysLogininfor logininfor) + { + List list = logininforService.selectLogininforList(logininfor); + ExcelUtil util = new ExcelUtil(SysLogininfor.class); + return util.exportExcel(list, "登录日志"); + } + + @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')") + @Log(title = "登录日志", businessType = BusinessType.DELETE) + @DeleteMapping("/{infoIds}") + public AjaxResult remove(@PathVariable Long[] infoIds) + { + return toAjax(logininforService.deleteLogininforByIds(infoIds)); + } + + @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')") + @Log(title = "登录日志", businessType = BusinessType.CLEAN) + @DeleteMapping("/clean") + public AjaxResult clean() + { + logininforService.cleanLogininfor(); + return AjaxResult.success(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java new file mode 100644 index 0000000..1d7eb02 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java @@ -0,0 +1,67 @@ +package com.ruoyi.web.controller.monitor; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.domain.SysOperLog; +import com.ruoyi.system.service.ISysOperLogService; + +/** + * 操作日志记录 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/monitor/operlog") +public class SysOperlogController extends BaseController +{ + @Autowired + private ISysOperLogService operLogService; + + @PreAuthorize("@ss.hasPermi('monitor:operlog:list')") + @GetMapping("/list") + public TableDataInfo list(SysOperLog operLog) + { + startPage(); + List list = operLogService.selectOperLogList(operLog); + return getDataTable(list); + } + + @Log(title = "操作日志", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('monitor:operlog:export')") + @GetMapping("/export") + public AjaxResult export(SysOperLog operLog) + { + List list = operLogService.selectOperLogList(operLog); + ExcelUtil util = new ExcelUtil(SysOperLog.class); + return util.exportExcel(list, "操作日志"); + } + + @Log(title = "操作日志", businessType = BusinessType.DELETE) + @PreAuthorize("@ss.hasPermi('monitor:operlog:remove')") + @DeleteMapping("/{operIds}") + public AjaxResult remove(@PathVariable Long[] operIds) + { + return toAjax(operLogService.deleteOperLogByIds(operIds)); + } + + @Log(title = "操作日志", businessType = BusinessType.CLEAN) + @PreAuthorize("@ss.hasPermi('monitor:operlog:remove')") + @DeleteMapping("/clean") + public AjaxResult clean() + { + operLogService.cleanOperLog(); + return AjaxResult.success(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java new file mode 100644 index 0000000..9b157ea --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java @@ -0,0 +1,92 @@ +package com.ruoyi.web.controller.monitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.domain.SysUserOnline; +import com.ruoyi.system.service.ISysUserOnlineService; + +/** + * 在线用户监控 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/monitor/online") +public class SysUserOnlineController extends BaseController +{ + @Autowired + private ISysUserOnlineService userOnlineService; + + @Autowired + private RedisCache redisCache; + + @PreAuthorize("@ss.hasPermi('monitor:online:list')") + @GetMapping("/list") + public TableDataInfo list(String ipaddr, String userName) + { + Collection keys = redisCache.keys(Constants.LOGIN_TOKEN_KEY + "*"); + List userOnlineList = new ArrayList(); + for (String key : keys) + { + LoginUser user = redisCache.getCacheObject(key); + if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) + { + if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername())) + { + userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user)); + } + } + else if (StringUtils.isNotEmpty(ipaddr)) + { + if (StringUtils.equals(ipaddr, user.getIpaddr())) + { + userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user)); + } + } + else if (StringUtils.isNotEmpty(userName) && StringUtils.isNotNull(user.getUser())) + { + if (StringUtils.equals(userName, user.getUsername())) + { + userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user)); + } + } + else + { + userOnlineList.add(userOnlineService.loginUserToUserOnline(user)); + } + } + Collections.reverse(userOnlineList); + userOnlineList.removeAll(Collections.singleton(null)); + return getDataTable(userOnlineList); + } + + /** + * 强退用户 + */ + @PreAuthorize("@ss.hasPermi('monitor:online:forceLogout')") + @Log(title = "在线用户", businessType = BusinessType.FORCE) + @DeleteMapping("/{tokenId}") + public AjaxResult forceLogout(@PathVariable String tokenId) + { + redisCache.deleteObject(Constants.LOGIN_TOKEN_KEY + tokenId); + return AjaxResult.success(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java new file mode 100644 index 0000000..7f76a41 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java @@ -0,0 +1,135 @@ +package com.ruoyi.web.controller.system; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.domain.SysConfig; +import com.ruoyi.system.service.ISysConfigService; + +/** + * 参数配置 信息操作处理 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/config") +public class SysConfigController extends BaseController +{ + @Autowired + private ISysConfigService configService; + + /** + * 获取参数配置列表 + */ + @PreAuthorize("@ss.hasPermi('system:config:list')") + @GetMapping("/list") + public TableDataInfo list(SysConfig config) + { + startPage(); + List list = configService.selectConfigList(config); + return getDataTable(list); + } + + @Log(title = "参数管理", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('system:config:export')") + @GetMapping("/export") + public AjaxResult export(SysConfig config) + { + List list = configService.selectConfigList(config); + ExcelUtil util = new ExcelUtil(SysConfig.class); + return util.exportExcel(list, "参数数据"); + } + + /** + * 根据参数编号获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:config:query')") + @GetMapping(value = "/{configId}") + public AjaxResult getInfo(@PathVariable Long configId) + { + return AjaxResult.success(configService.selectConfigById(configId)); + } + + /** + * 根据参数键名查询参数值 + */ + @GetMapping(value = "/configKey/{configKey}") + public AjaxResult getConfigKey(@PathVariable String configKey) + { + return AjaxResult.success(configService.selectConfigByKey(configKey)); + } + + /** + * 新增参数配置 + */ + @PreAuthorize("@ss.hasPermi('system:config:add')") + @Log(title = "参数管理", businessType = BusinessType.INSERT) + @PostMapping + @RepeatSubmit + public AjaxResult add(@Validated @RequestBody SysConfig config) + { + if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) + { + return AjaxResult.error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在"); + } + config.setCreateBy(getUserId()); + return toAjax(configService.insertConfig(config)); + } + + /** + * 修改参数配置 + */ + @PreAuthorize("@ss.hasPermi('system:config:edit')") + @Log(title = "参数管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysConfig config) + { + if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) + { + return AjaxResult.error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在"); + } + config.setUpdateBy(getUserId()); + return toAjax(configService.updateConfig(config)); + } + + /** + * 删除参数配置 + */ + @PreAuthorize("@ss.hasPermi('system:config:remove')") + @Log(title = "参数管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{configIds}") + public AjaxResult remove(@PathVariable Long[] configIds) + { + configService.deleteConfigByIds(configIds); + return success(); + } + + /** + * 刷新参数缓存 + */ + @PreAuthorize("@ss.hasPermi('system:config:remove')") + @Log(title = "参数管理", businessType = BusinessType.CLEAN) + @DeleteMapping("/refreshCache") + public AjaxResult refreshCache() + { + configService.resetConfigCache(); + return AjaxResult.success(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java new file mode 100644 index 0000000..35a636a --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java @@ -0,0 +1,163 @@ +package com.ruoyi.web.controller.system; + +import java.util.Iterator; +import java.util.List; +import org.apache.commons.lang3.ArrayUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.service.ISysDeptService; + +/** + * 部门信息 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/dept") +public class SysDeptController extends BaseController +{ + @Autowired + private ISysDeptService deptService; + + /** + * 获取部门列表 + */ + @PreAuthorize("@ss.hasPermi('system:dept:list')") + @GetMapping("/list") + public AjaxResult list(SysDept dept) + { + List depts = deptService.selectDeptList(dept); + return AjaxResult.success(depts); + } + + /** + * 查询部门列表(排除节点) + */ + @PreAuthorize("@ss.hasPermi('system:dept:list')") + @GetMapping("/list/exclude/{deptId}") + public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) + { + List depts = deptService.selectDeptList(new SysDept()); + Iterator it = depts.iterator(); + while (it.hasNext()) + { + SysDept d = (SysDept) it.next(); + if (d.getDeptId().intValue() == deptId + || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + "")) + { + it.remove(); + } + } + return AjaxResult.success(depts); + } + + /** + * 根据部门编号获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:dept:query')") + @GetMapping(value = "/{deptId}") + public AjaxResult getInfo(@PathVariable Long deptId) + { + deptService.checkDeptDataScope(deptId); + return AjaxResult.success(deptService.selectDeptById(deptId)); + } + + /** + * 获取部门下拉树列表 + */ + @GetMapping("/treeselect") + public AjaxResult treeselect(SysDept dept) + { + List depts = deptService.selectDeptList(dept); + return AjaxResult.success(deptService.buildDeptTreeSelect(depts)); + } + + /** + * 加载对应角色部门列表树 + */ + @GetMapping(value = "/roleDeptTreeselect/{roleId}") + public AjaxResult roleDeptTreeselect(@PathVariable("roleId") Long roleId) + { + List depts = deptService.selectDeptList(new SysDept()); + AjaxResult ajax = AjaxResult.success(); + ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); + ajax.put("depts", deptService.buildDeptTreeSelect(depts)); + return ajax; + } + + /** + * 新增部门 + */ + @PreAuthorize("@ss.hasPermi('system:dept:add')") + @Log(title = "部门管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysDept dept) + { + if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) + { + return AjaxResult.error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在"); + } + dept.setCreateBy(getUserId()); + return toAjax(deptService.insertDept(dept)); + } + + /** + * 修改部门 + */ + @PreAuthorize("@ss.hasPermi('system:dept:edit')") + @Log(title = "部门管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysDept dept) + { + if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) + { + return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在"); + } + else if (dept.getParentId().equals(dept.getDeptId())) + { + return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己"); + } + else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) + && deptService.selectNormalChildrenDeptById(dept.getDeptId()) > 0) + { + return AjaxResult.error("该部门包含未停用的子部门!"); + } + dept.setUpdateBy(getUserId()); + return toAjax(deptService.updateDept(dept)); + } + + /** + * 删除部门 + */ + @PreAuthorize("@ss.hasPermi('system:dept:remove')") + @Log(title = "部门管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{deptId}") + public AjaxResult remove(@PathVariable Long deptId) + { + if (deptService.hasChildByDeptId(deptId)) + { + return AjaxResult.error("存在下级部门,不允许删除"); + } + if (deptService.checkDeptExistUser(deptId)) + { + return AjaxResult.error("部门存在用户,不允许删除"); + } + return toAjax(deptService.deleteDeptById(deptId)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java new file mode 100644 index 0000000..1b53fb7 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java @@ -0,0 +1,136 @@ +package com.ruoyi.web.controller.system; + +import java.util.ArrayList; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysDictData; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.service.ISysDictDataService; +import com.ruoyi.system.service.ISysDictTypeService; + +/** + * 数据字典信息 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/dict/data") +public class SysDictDataController extends BaseController +{ + @Autowired + private ISysDictDataService dictDataService; + + @Autowired + private ISysDictTypeService dictTypeService; + + @PreAuthorize("@ss.hasPermi('system:dict:list')") + @GetMapping("/list") + public TableDataInfo list(SysDictData dictData) + { + startPage(); + List list = dictDataService.selectDictDataList(dictData); + return getDataTable(list); + } + + @Log(title = "字典数据", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('system:dict:export')") + @GetMapping("/export") + public AjaxResult export(SysDictData dictData) + { + List list = dictDataService.selectDictDataList(dictData); + ExcelUtil util = new ExcelUtil(SysDictData.class); + return util.exportExcel(list, "字典数据"); + } + + /** + * 查询字典数据详细 + */ + @PreAuthorize("@ss.hasPermi('system:dict:query')") + @GetMapping(value = "/{dictCode}") + public AjaxResult getInfo(@PathVariable Long dictCode) + { + return AjaxResult.success(dictDataService.selectDictDataById(dictCode)); + } + + /** + * 根据字典类型查询字典数据信息 + */ + @GetMapping(value = "/type/{dictType}") + public AjaxResult dictType(@PathVariable String dictType) + { + List data = dictTypeService.selectDictDataByType(dictType); + if (StringUtils.isNull(data)) + { + data = new ArrayList(); + } + return AjaxResult.success(data); + } + + /** + * 根据字典类型查询字典数据信息 + */ + @PostMapping(value = "/all-by-types") + public AjaxResult allByTypes(@RequestBody List dictTypes) + { + SysDictData query = new SysDictData(); + query.getParams().put("dictTypes", dictTypes); + List data = dictDataService.selectDictDataList(query); + if (StringUtils.isNull(data)) + { + data = new ArrayList<>(); + } + return AjaxResult.success(data); + } + + /** + * 新增字典类型 + */ + @PreAuthorize("@ss.hasPermi('system:dict:add')") + @Log(title = "字典数据", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysDictData dict) + { + dict.setCreateBy(getUserId()); + return toAjax(dictDataService.insertDictData(dict)); + } + + /** + * 修改保存字典类型 + */ + @PreAuthorize("@ss.hasPermi('system:dict:edit')") + @Log(title = "字典数据", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysDictData dict) + { + dict.setUpdateBy(getUserId()); + return toAjax(dictDataService.updateDictData(dict)); + } + + /** + * 删除字典类型 + */ + @PreAuthorize("@ss.hasPermi('system:dict:remove')") + @Log(title = "字典类型", businessType = BusinessType.DELETE) + @DeleteMapping("/{dictCodes}") + public AjaxResult remove(@PathVariable Long[] dictCodes) + { + dictDataService.deleteDictDataByIds(dictCodes); + return success(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java new file mode 100644 index 0000000..0beaffe --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java @@ -0,0 +1,131 @@ +package com.ruoyi.web.controller.system; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysDictType; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.service.ISysDictTypeService; + +/** + * 数据字典信息 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/dict/type") +public class SysDictTypeController extends BaseController +{ + @Autowired + private ISysDictTypeService dictTypeService; + + @PreAuthorize("@ss.hasPermi('system:dict:list')") + @GetMapping("/list") + public TableDataInfo list(SysDictType dictType) + { + startPage(); + List list = dictTypeService.selectDictTypeList(dictType); + return getDataTable(list); + } + + @Log(title = "字典类型", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('system:dict:export')") + @GetMapping("/export") + public AjaxResult export(SysDictType dictType) + { + List list = dictTypeService.selectDictTypeList(dictType); + ExcelUtil util = new ExcelUtil(SysDictType.class); + return util.exportExcel(list, "字典类型"); + } + + /** + * 查询字典类型详细 + */ + @PreAuthorize("@ss.hasPermi('system:dict:query')") + @GetMapping(value = "/{dictId}") + public AjaxResult getInfo(@PathVariable Long dictId) + { + return AjaxResult.success(dictTypeService.selectDictTypeById(dictId)); + } + + /** + * 新增字典类型 + */ + @PreAuthorize("@ss.hasPermi('system:dict:add')") + @Log(title = "字典类型", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysDictType dict) + { + if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) + { + return AjaxResult.error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在"); + } + dict.setCreateBy(getUserId()); + return toAjax(dictTypeService.insertDictType(dict)); + } + + /** + * 修改字典类型 + */ + @PreAuthorize("@ss.hasPermi('system:dict:edit')") + @Log(title = "字典类型", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysDictType dict) + { + if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) + { + return AjaxResult.error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在"); + } + dict.setUpdateBy(getUserId()); + return toAjax(dictTypeService.updateDictType(dict)); + } + + /** + * 删除字典类型 + */ + @PreAuthorize("@ss.hasPermi('system:dict:remove')") + @Log(title = "字典类型", businessType = BusinessType.DELETE) + @DeleteMapping("/{dictIds}") + public AjaxResult remove(@PathVariable Long[] dictIds) + { + dictTypeService.deleteDictTypeByIds(dictIds); + return success(); + } + + /** + * 刷新字典缓存 + */ + @PreAuthorize("@ss.hasPermi('system:dict:remove')") + @Log(title = "字典类型", businessType = BusinessType.CLEAN) + @DeleteMapping("/refreshCache") + public AjaxResult refreshCache() + { + dictTypeService.resetDictCache(); + return AjaxResult.success(); + } + + /** + * 获取字典选择框列表 + */ + @GetMapping("/optionselect") + public AjaxResult optionselect() + { + List dictTypes = dictTypeService.selectDictTypeAll(); + return AjaxResult.success(dictTypes); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java new file mode 100644 index 0000000..13007eb --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java @@ -0,0 +1,29 @@ +package com.ruoyi.web.controller.system; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.utils.StringUtils; + +/** + * 首页 + * + * @author ruoyi + */ +@RestController +public class SysIndexController +{ + /** 系统基础配置 */ + @Autowired + private RuoYiConfig ruoyiConfig; + + /** + * 访问首页,提示语 + */ + @RequestMapping("/") + public String index() + { + return StringUtils.format("欢迎使用{}后台管理框架,当前版本:v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion()); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java new file mode 100644 index 0000000..78c8dee --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java @@ -0,0 +1,97 @@ +package com.ruoyi.web.controller.system; + +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysMenu; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginBody; +import com.ruoyi.common.core.domain.model.PhoneLoginBody; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.framework.web.service.SysLoginService; +import com.ruoyi.framework.web.service.SysPermissionService; +import com.ruoyi.system.service.ISysMenuService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Set; + +/** + * 登录验证 + * + * @author ruoyi + */ +@RestController +public class SysLoginController { + @Autowired + private SysLoginService loginService; + @Autowired + private ISysMenuService menuService; + @Autowired + private SysPermissionService permissionService; + + /** + * 登录方法 + * + * @param loginBody 登录信息 + * @return 结果 + */ + @PostMapping("/login") + public AjaxResult login(@RequestBody LoginBody loginBody) { + AjaxResult ajax = AjaxResult.success(); + // 生成令牌 + String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), + loginBody.getUuid()); + ajax.put(Constants.TOKEN, token); + return ajax; + } + + /** + * 使用手机号登陆 + * + * @param loginBody 登录信息 + * @return 结果 + */ + @PostMapping("/login/phone") + public AjaxResult login(@RequestBody PhoneLoginBody loginBody) { + AjaxResult ajax = AjaxResult.success(); + SysUser user = loginService.phoneLogin(loginBody.getPhone(), loginBody.getCode(), loginBody.getUuid()); + ajax.put(Constants.TOKEN, loginService.createToken(user)); + return ajax; + } + + /** + * 获取用户信息 + * + * @return 用户信息 + */ + @GetMapping("getInfo") + public AjaxResult getInfo() { + SysUser user = SecurityUtils.getLoginUser().getUser(); + // 角色集合 + Set roles = permissionService.getRolePermission(user); + // 权限集合 + Set permissions = permissionService.getMenuPermission(user); + AjaxResult ajax = AjaxResult.success(); + ajax.put("user", user); + ajax.put("roles", roles); + ajax.put("permissions", permissions); + return ajax; + } + + /** + * 获取路由信息 + * + * @return 路由信息 + */ + @GetMapping("getRouters") + public AjaxResult getRouters() + { + Long userId = SecurityUtils.getUserId(); + List menus = menuService.selectMenuTreeByUserId(userId); + return AjaxResult.success(menuService.buildMenus(menus)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java new file mode 100644 index 0000000..7dbcea0 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java @@ -0,0 +1,142 @@ +package com.ruoyi.web.controller.system; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysMenu; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.service.ISysMenuService; + +/** + * 菜单信息 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/menu") +public class SysMenuController extends BaseController +{ + @Autowired + private ISysMenuService menuService; + + /** + * 获取菜单列表 + */ + @PreAuthorize("@ss.hasPermi('system:menu:list')") + @GetMapping("/list") + public AjaxResult list(SysMenu menu) + { + List menus = menuService.selectMenuList(menu, getUserId()); + return AjaxResult.success(menus); + } + + /** + * 根据菜单编号获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:menu:query')") + @GetMapping(value = "/{menuId}") + public AjaxResult getInfo(@PathVariable Long menuId) + { + return AjaxResult.success(menuService.selectMenuById(menuId)); + } + + /** + * 获取菜单下拉树列表 + */ + @GetMapping("/treeselect") + public AjaxResult treeselect(SysMenu menu) + { + List menus = menuService.selectMenuList(menu, getUserId()); + return AjaxResult.success(menuService.buildMenuTreeSelect(menus)); + } + + /** + * 加载对应角色菜单列表树 + */ + @GetMapping(value = "/roleMenuTreeselect/{roleId}") + public AjaxResult roleMenuTreeselect(@PathVariable("roleId") Long roleId) + { + List menus = menuService.selectMenuList(getUserId()); + AjaxResult ajax = AjaxResult.success(); + ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId)); + ajax.put("menus", menuService.buildMenuTreeSelect(menus)); + return ajax; + } + + /** + * 新增菜单 + */ + @PreAuthorize("@ss.hasPermi('system:menu:add')") + @Log(title = "菜单管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysMenu menu) + { + if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))) + { + return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); + } + else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) + { + return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); + } + menu.setCreateBy(getUserId()); + return toAjax(menuService.insertMenu(menu)); + } + + /** + * 修改菜单 + */ + @PreAuthorize("@ss.hasPermi('system:menu:edit')") + @Log(title = "菜单管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysMenu menu) + { + if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))) + { + return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); + } + else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) + { + return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); + } + else if (menu.getMenuId().equals(menu.getParentId())) + { + return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己"); + } + menu.setUpdateBy(getUserId()); + return toAjax(menuService.updateMenu(menu)); + } + + /** + * 删除菜单 + */ + @PreAuthorize("@ss.hasPermi('system:menu:remove')") + @Log(title = "菜单管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{menuId}") + public AjaxResult remove(@PathVariable("menuId") Long menuId) + { + if (menuService.hasChildByMenuId(menuId)) + { + return AjaxResult.error("存在子菜单,不允许删除"); + } + if (menuService.checkMenuExistRole(menuId)) + { + return AjaxResult.error("菜单已分配,不允许删除"); + } + return toAjax(menuService.deleteMenuById(menuId)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java new file mode 100644 index 0000000..ff3a1da --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java @@ -0,0 +1,91 @@ +package com.ruoyi.web.controller.system; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.system.domain.SysNotice; +import com.ruoyi.system.service.ISysNoticeService; + +/** + * 公告 信息操作处理 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/notice") +public class SysNoticeController extends BaseController +{ + @Autowired + private ISysNoticeService noticeService; + + /** + * 获取通知公告列表 + */ + @PreAuthorize("@ss.hasPermi('system:notice:list')") + @GetMapping("/list") + public TableDataInfo list(SysNotice notice) + { + startPage(); + List list = noticeService.selectNoticeList(notice); + return getDataTable(list); + } + + /** + * 根据通知公告编号获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:notice:query')") + @GetMapping(value = "/{noticeId}") + public AjaxResult getInfo(@PathVariable Long noticeId) + { + return AjaxResult.success(noticeService.selectNoticeById(noticeId)); + } + + /** + * 新增通知公告 + */ + @PreAuthorize("@ss.hasPermi('system:notice:add')") + @Log(title = "通知公告", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysNotice notice) + { + notice.setCreateBy(getUserId()); + return toAjax(noticeService.insertNotice(notice)); + } + + /** + * 修改通知公告 + */ + @PreAuthorize("@ss.hasPermi('system:notice:edit')") + @Log(title = "通知公告", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysNotice notice) + { + notice.setUpdateBy(getUserId()); + return toAjax(noticeService.updateNotice(notice)); + } + + /** + * 删除通知公告 + */ + @PreAuthorize("@ss.hasPermi('system:notice:remove')") + @Log(title = "通知公告", businessType = BusinessType.DELETE) + @DeleteMapping("/{noticeIds}") + public AjaxResult remove(@PathVariable Long[] noticeIds) + { + return toAjax(noticeService.deleteNoticeByIds(noticeIds)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java new file mode 100644 index 0000000..2f7736b --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java @@ -0,0 +1,129 @@ +package com.ruoyi.web.controller.system; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.domain.SysPost; +import com.ruoyi.system.service.ISysPostService; + +/** + * 岗位信息操作处理 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/post") +public class SysPostController extends BaseController +{ + @Autowired + private ISysPostService postService; + + /** + * 获取岗位列表 + */ + @PreAuthorize("@ss.hasPermi('system:post:list')") + @GetMapping("/list") + public TableDataInfo list(SysPost post) + { + startPage(); + List list = postService.selectPostList(post); + return getDataTable(list); + } + + @Log(title = "岗位管理", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('system:post:export')") + @GetMapping("/export") + public AjaxResult export(SysPost post) + { + List list = postService.selectPostList(post); + ExcelUtil util = new ExcelUtil(SysPost.class); + return util.exportExcel(list, "岗位数据"); + } + + /** + * 根据岗位编号获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:post:query')") + @GetMapping(value = "/{postId}") + public AjaxResult getInfo(@PathVariable Long postId) + { + return AjaxResult.success(postService.selectPostById(postId)); + } + + /** + * 新增岗位 + */ + @PreAuthorize("@ss.hasPermi('system:post:add')") + @Log(title = "岗位管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysPost post) + { + if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post))) + { + return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在"); + } + else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post))) + { + return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); + } + post.setCreateBy(getUserId()); + return toAjax(postService.insertPost(post)); + } + + /** + * 修改岗位 + */ + @PreAuthorize("@ss.hasPermi('system:post:edit')") + @Log(title = "岗位管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysPost post) + { + if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post))) + { + return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在"); + } + else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post))) + { + return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在"); + } + post.setUpdateBy(getUserId()); + return toAjax(postService.updatePost(post)); + } + + /** + * 删除岗位 + */ + @PreAuthorize("@ss.hasPermi('system:post:remove')") + @Log(title = "岗位管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{postIds}") + public AjaxResult remove(@PathVariable Long[] postIds) + { + return toAjax(postService.deletePostByIds(postIds)); + } + + /** + * 获取岗位选择框列表 + */ + @GetMapping("/optionselect") + public AjaxResult optionselect() + { + List posts = postService.selectPostAll(); + return AjaxResult.success(posts); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java new file mode 100644 index 0000000..90eb8f3 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java @@ -0,0 +1,141 @@ +package com.ruoyi.web.controller.system; + +import java.io.IOException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.file.FileUploadUtils; +import com.ruoyi.framework.web.service.TokenService; +import com.ruoyi.system.service.ISysUserService; + +/** + * 个人信息 业务处理 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/user/profile") +public class SysProfileController extends BaseController +{ + @Autowired + private ISysUserService userService; + + @Autowired + private TokenService tokenService; + + /** + * 个人信息 + */ + @GetMapping + public AjaxResult profile() + { + LoginUser loginUser = getLoginUser(); + SysUser user = loginUser.getUser(); + AjaxResult ajax = AjaxResult.success(user); + ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername())); + ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername())); + return ajax; + } + + /** + * 修改用户 + */ + @Log(title = "个人信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult updateProfile(@RequestBody SysUser user) + { + if (StringUtils.isNotEmpty(user.getPhonenumber()) + && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) + { + return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); + } + if (StringUtils.isNotEmpty(user.getEmail()) + && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) + { + return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); + } + LoginUser loginUser = getLoginUser(); + SysUser sysUser = loginUser.getUser(); + user.setUserId(sysUser.getUserId()); + user.setPassword(null); + if (userService.updateUserProfile(user) > 0) + { + // 更新缓存用户信息 + sysUser.setNickName(user.getNickName()); + sysUser.setPhonenumber(user.getPhonenumber()); + sysUser.setEmail(user.getEmail()); + sysUser.setSex(user.getSex()); + tokenService.setLoginUser(loginUser); + return AjaxResult.success(); + } + return AjaxResult.error("修改个人信息异常,请联系管理员"); + } + + /** + * 重置密码 + */ + @Log(title = "个人信息", businessType = BusinessType.UPDATE) + @PutMapping("/updatePwd") + public AjaxResult updatePwd(String oldPassword, String newPassword) + { + LoginUser loginUser = getLoginUser(); + String userName = loginUser.getUsername(); + String password = loginUser.getPassword(); + if (!SecurityUtils.matchesPassword(oldPassword, password)) + { + return AjaxResult.error("修改密码失败,旧密码错误"); + } + if (SecurityUtils.matchesPassword(newPassword, password)) + { + return AjaxResult.error("新密码不能与旧密码相同"); + } + if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0) + { + // 更新缓存用户密码 + loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword)); + tokenService.setLoginUser(loginUser); + return AjaxResult.success(); + } + return AjaxResult.error("修改密码异常,请联系管理员"); + } + + /** + * 头像上传 + */ + @Log(title = "用户头像", businessType = BusinessType.UPDATE) + @PostMapping("/avatar") + public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws IOException + { + if (!file.isEmpty()) + { + LoginUser loginUser = getLoginUser(); + String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file); + if (userService.updateUserAvatar(loginUser.getUsername(), avatar)) + { + AjaxResult ajax = AjaxResult.success(); + ajax.put("imgUrl", avatar); + // 更新缓存用户头像 + loginUser.getUser().setAvatar(avatar); + tokenService.setLoginUser(loginUser); + return ajax; + } + } + return AjaxResult.error("上传图片异常,请联系管理员"); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java new file mode 100644 index 0000000..762f1d9 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java @@ -0,0 +1,38 @@ +package com.ruoyi.web.controller.system; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.model.RegisterBody; +import com.ruoyi.framework.web.service.SysRegisterService; +import com.ruoyi.system.service.ISysConfigService; + +/** + * 注册验证 + * + * @author ruoyi + */ +@RestController +public class SysRegisterController extends BaseController +{ + @Autowired + private SysRegisterService registerService; + + @Autowired + private ISysConfigService configService; + + @PostMapping("/register") + public AjaxResult register(@RequestBody RegisterBody user) + { + if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) + { + return error("当前系统没有开启注册功能!"); + } + String msg = registerService.register(user); + return StringUtils.isEmpty(msg) ? success() : error(msg); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java new file mode 100644 index 0000000..56d947e --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java @@ -0,0 +1,240 @@ +package com.ruoyi.web.controller.system; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.framework.web.service.SysPermissionService; +import com.ruoyi.framework.web.service.TokenService; +import com.ruoyi.system.domain.SysUserRole; +import com.ruoyi.system.service.ISysRoleService; +import com.ruoyi.system.service.ISysUserService; + +/** + * 角色信息 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/role") +public class SysRoleController extends BaseController +{ + @Autowired + private ISysRoleService roleService; + + @Autowired + private TokenService tokenService; + + @Autowired + private SysPermissionService permissionService; + + @Autowired + private ISysUserService userService; + + @PreAuthorize("@ss.hasPermi('system:role:list')") + @GetMapping("/list") + public TableDataInfo list(SysRole role) + { + startPage(); + List list = roleService.selectRoleList(role); + return getDataTable(list); + } + + @Log(title = "角色管理", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('system:role:export')") + @GetMapping("/export") + public AjaxResult export(SysRole role) + { + List list = roleService.selectRoleList(role); + ExcelUtil util = new ExcelUtil(SysRole.class); + return util.exportExcel(list, "角色数据"); + } + + /** + * 根据角色编号获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:role:query')") + @GetMapping(value = "/{roleId}") + public AjaxResult getInfo(@PathVariable Long roleId) + { + roleService.checkRoleDataScope(roleId); + return AjaxResult.success(roleService.selectRoleById(roleId)); + } + + /** + * 新增角色 + */ + @PreAuthorize("@ss.hasPermi('system:role:add')") + @Log(title = "角色管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysRole role) + { + if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) + { + return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在"); + } + else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))) + { + return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); + } + role.setCreateBy(getUserId()); + return toAjax(roleService.insertRole(role)); + + } + + /** + * 修改保存角色 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysRole role) + { + roleService.checkRoleAllowed(role); + if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) + { + return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在"); + } + else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))) + { + return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); + } + role.setUpdateBy(getUserId()); + + if (roleService.updateRole(role) > 0) + { + // 更新缓存用户权限 + LoginUser loginUser = getLoginUser(); + if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin()) + { + loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser())); + loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName())); + tokenService.setLoginUser(loginUser); + } + return AjaxResult.success(); + } + return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,请联系管理员"); + } + + /** + * 修改保存数据权限 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.UPDATE) + @PutMapping("/dataScope") + public AjaxResult dataScope(@RequestBody SysRole role) + { + roleService.checkRoleAllowed(role); + return toAjax(roleService.authDataScope(role)); + } + + /** + * 状态修改 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public AjaxResult changeStatus(@RequestBody SysRole role) + { + roleService.checkRoleAllowed(role); + role.setUpdateBy(getUserId()); + return toAjax(roleService.updateRoleStatus(role)); + } + + /** + * 删除角色 + */ + @PreAuthorize("@ss.hasPermi('system:role:remove')") + @Log(title = "角色管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{roleIds}") + public AjaxResult remove(@PathVariable Long[] roleIds) + { + return toAjax(roleService.deleteRoleByIds(roleIds)); + } + + /** + * 获取角色选择框列表 + */ + @PreAuthorize("@ss.hasPermi('system:role:query')") + @GetMapping("/optionselect") + public AjaxResult optionselect() + { + return AjaxResult.success(roleService.selectRoleAll()); + } + + /** + * 查询已分配用户角色列表 + */ + @PreAuthorize("@ss.hasPermi('system:role:list')") + @GetMapping("/authUser/allocatedList") + public TableDataInfo allocatedList(SysUser user) + { + startPage(); + List list = userService.selectAllocatedList(user); + return getDataTable(list); + } + + /** + * 查询未分配用户角色列表 + */ + @PreAuthorize("@ss.hasPermi('system:role:list')") + @GetMapping("/authUser/unallocatedList") + public TableDataInfo unallocatedList(SysUser user) + { + startPage(); + List list = userService.selectUnallocatedList(user); + return getDataTable(list); + } + + /** + * 取消授权用户 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.GRANT) + @PutMapping("/authUser/cancel") + public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole) + { + return toAjax(roleService.deleteAuthUser(userRole)); + } + + /** + * 批量取消授权用户 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.GRANT) + @PutMapping("/authUser/cancelAll") + public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds) + { + return toAjax(roleService.deleteAuthUsers(roleId, userIds)); + } + + /** + * 批量选择用户授权 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.GRANT) + @PutMapping("/authUser/selectAll") + public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds) + { + return toAjax(roleService.insertAuthUsers(roleId, userIds)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java new file mode 100644 index 0000000..5c0875d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -0,0 +1,230 @@ +package com.ruoyi.web.controller.system; + +import java.util.List; +import java.util.stream.Collectors; +import org.apache.commons.lang3.ArrayUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.service.ISysPostService; +import com.ruoyi.system.service.ISysRoleService; +import com.ruoyi.system.service.ISysUserService; + +/** + * 用户信息 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/system/user") +public class SysUserController extends BaseController +{ + @Autowired + private ISysUserService userService; + + @Autowired + private ISysRoleService roleService; + + @Autowired + private ISysPostService postService; + + /** + * 获取用户列表 + */ + @PreAuthorize("@ss.hasPermi('system:user:list')") + @GetMapping("/list") + public TableDataInfo list(SysUser user) + { + startPage(); + List list = userService.selectUserList(user); + return getDataTable(list); + } + + @Log(title = "用户管理", businessType = BusinessType.EXPORT) + @PreAuthorize("@ss.hasPermi('system:user:export')") + @GetMapping("/export") + public AjaxResult export(SysUser user) + { + List list = userService.selectUserList(user); + ExcelUtil util = new ExcelUtil(SysUser.class); + return util.exportExcel(list, "用户数据"); + } + + @Log(title = "用户管理", businessType = BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('system:user:import')") + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception + { + ExcelUtil util = new ExcelUtil(SysUser.class); + List userList = util.importExcel(file.getInputStream()); + String message = userService.importUser(userList, updateSupport, getUserId()); + return AjaxResult.success(message); + } + + @GetMapping("/importTemplate") + public AjaxResult importTemplate() + { + ExcelUtil util = new ExcelUtil(SysUser.class); + return util.importTemplateExcel("用户数据"); + } + + /** + * 根据用户编号获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:user:query')") + @GetMapping(value = { "/", "/{userId}" }) + public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) + { + userService.checkUserDataScope(userId); + AjaxResult ajax = AjaxResult.success(); + List roles = roleService.selectRoleAll(); + ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); + ajax.put("posts", postService.selectPostAll()); + if (StringUtils.isNotNull(userId)) + { + ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId)); + ajax.put("postIds", postService.selectPostListByUserId(userId)); + ajax.put("roleIds", roleService.selectRoleListByUserId(userId)); + } + return ajax; + } + + /** + * 新增用户 + */ + @PreAuthorize("@ss.hasPermi('system:user:add')") + @Log(title = "用户管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SysUser user) + { + if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName()))) + { + return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); + } + else if (StringUtils.isNotEmpty(user.getPhonenumber()) + && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) + { + return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); + } + else if (StringUtils.isNotEmpty(user.getEmail()) + && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) + { + return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); + } + user.setCreateBy(getUserId()); + user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); + return toAjax(userService.insertUser(user)); + } + + /** + * 修改用户 + */ + @PreAuthorize("@ss.hasPermi('system:user:edit')") + @Log(title = "用户管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SysUser user) + { + userService.checkUserAllowed(user); + if (StringUtils.isNotEmpty(user.getPhonenumber()) + && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) + { + return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); + } + else if (StringUtils.isNotEmpty(user.getEmail()) + && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) + { + return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); + } + user.setUpdateBy(getUserId()); + return toAjax(userService.updateUser(user)); + } + + /** + * 删除用户 + */ + @PreAuthorize("@ss.hasPermi('system:user:remove')") + @Log(title = "用户管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{userIds}") + public AjaxResult remove(@PathVariable Long[] userIds) + { + if (ArrayUtils.contains(userIds, getUserId())) + { + return error("当前用户不能删除"); + } + return toAjax(userService.deleteUserByIds(userIds)); + } + + /** + * 重置密码 + */ + @PreAuthorize("@ss.hasPermi('system:user:resetPwd')") + @Log(title = "用户管理", businessType = BusinessType.UPDATE) + @PutMapping("/resetPwd") + public AjaxResult resetPwd(@RequestBody SysUser user) + { + userService.checkUserAllowed(user); + user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); + user.setUpdateBy(getUserId()); + return toAjax(userService.resetPwd(user)); + } + + /** + * 状态修改 + */ + @PreAuthorize("@ss.hasPermi('system:user:edit')") + @Log(title = "用户管理", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public AjaxResult changeStatus(@RequestBody SysUser user) + { + userService.checkUserAllowed(user); + user.setUpdateBy(getUserId()); + return toAjax(userService.updateUserStatus(user)); + } + + /** + * 根据用户编号获取授权角色 + */ + @PreAuthorize("@ss.hasPermi('system:user:query')") + @GetMapping("/authRole/{userId}") + public AjaxResult authRole(@PathVariable("userId") Long userId) + { + AjaxResult ajax = AjaxResult.success(); + SysUser user = userService.selectUserById(userId); + List roles = roleService.selectRolesByUserId(userId); + ajax.put("user", user); + ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); + return ajax; + } + + /** + * 用户授权角色 + */ + @PreAuthorize("@ss.hasPermi('system:user:edit')") + @Log(title = "用户管理", businessType = BusinessType.GRANT) + @PutMapping("/authRole") + public AjaxResult insertAuthRole(Long userId, Long[] roleIds) + { + userService.insertUserAuth(userId, roleIds); + return success(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/SwaggerController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/SwaggerController.java new file mode 100644 index 0000000..f66ca24 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/SwaggerController.java @@ -0,0 +1,24 @@ +package com.ruoyi.web.controller.tool; + +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import com.ruoyi.common.core.controller.BaseController; + +/** + * swagger 接口 + * + * @author ruoyi + */ +@Controller +@RequestMapping("/tool/swagger") +public class SwaggerController extends BaseController +{ + @PreAuthorize("@ss.hasPermi('tool:swagger:view')") + @GetMapping() + public String index() + { + return redirect("/swagger-ui.html"); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java new file mode 100644 index 0000000..381ab13 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java @@ -0,0 +1,181 @@ +package com.ruoyi.web.controller.tool; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.StringUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; + +/** + * swagger 用户测试方法 + * + * @author ruoyi + */ +@Api("用户信息管理") +@RestController +@RequestMapping("/test/user") +public class TestController extends BaseController +{ + private final static Map users = new LinkedHashMap(); + { + users.put(1, new UserEntity(1, "admin", "admin123", "15888888888")); + users.put(2, new UserEntity(2, "ry", "admin123", "15666666666")); + } + + @ApiOperation("获取用户列表") + @GetMapping("/list") + public AjaxResult userList() + { + List userList = new ArrayList(users.values()); + return AjaxResult.success(userList); + } + + @ApiOperation("获取用户详细") + @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path") + @GetMapping("/{userId}") + public AjaxResult getUser(@PathVariable Integer userId) + { + if (!users.isEmpty() && users.containsKey(userId)) + { + return AjaxResult.success(users.get(userId)); + } + else + { + return error("用户不存在"); + } + } + + @ApiOperation("新增用户") + @ApiImplicitParams({ + @ApiImplicitParam(name = "userId", value = "用户id", dataType = "Integer"), + @ApiImplicitParam(name = "username", value = "用户名称", dataType = "String"), + @ApiImplicitParam(name = "password", value = "用户密码", dataType = "String"), + @ApiImplicitParam(name = "mobile", value = "用户手机", dataType = "String") + }) + @PostMapping("/save") + public AjaxResult save(UserEntity user) + { + if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId())) + { + return error("用户ID不能为空"); + } + return AjaxResult.success(users.put(user.getUserId(), user)); + } + + @ApiOperation("更新用户") + @PutMapping("/update") + public AjaxResult update(@RequestBody UserEntity user) + { + if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId())) + { + return error("用户ID不能为空"); + } + if (users.isEmpty() || !users.containsKey(user.getUserId())) + { + return error("用户不存在"); + } + users.remove(user.getUserId()); + return AjaxResult.success(users.put(user.getUserId(), user)); + } + + @ApiOperation("删除用户信息") + @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path") + @DeleteMapping("/{userId}") + public AjaxResult delete(@PathVariable Integer userId) + { + if (!users.isEmpty() && users.containsKey(userId)) + { + users.remove(userId); + return success(); + } + else + { + return error("用户不存在"); + } + } +} + +@ApiModel(value = "UserEntity", description = "用户实体") +class UserEntity +{ + @ApiModelProperty("用户ID") + private Integer userId; + + @ApiModelProperty("用户名称") + private String username; + + @ApiModelProperty("用户密码") + private String password; + + @ApiModelProperty("用户手机") + private String mobile; + + public UserEntity() + { + + } + + public UserEntity(Integer userId, String username, String password, String mobile) + { + this.userId = userId; + this.username = username; + this.password = password; + this.mobile = mobile; + } + + public Integer getUserId() + { + return userId; + } + + public void setUserId(Integer userId) + { + this.userId = userId; + } + + public String getUsername() + { + return username; + } + + public void setUsername(String username) + { + this.username = username; + } + + public String getPassword() + { + return password; + } + + public void setPassword(String password) + { + this.password = password; + } + + public String getMobile() + { + return mobile; + } + + public void setMobile(String mobile) + { + this.mobile = mobile; + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/H5MemberInterceptor.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/H5MemberInterceptor.java new file mode 100644 index 0000000..61dffda --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/H5MemberInterceptor.java @@ -0,0 +1,96 @@ +package com.ruoyi.web.core.config; + +import com.cyl.manager.staff.domain.Staff; +import com.cyl.manager.staff.service.IStaffService; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.domain.MemberWechat; +import com.cyl.manager.ums.service.MemberService; +import com.cyl.manager.ums.service.MemberWechatService; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.HttpStatus; +import com.ruoyi.common.core.domain.model.LoginMember; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.framework.config.LocalDataUtil; +import com.ruoyi.framework.web.service.TokenService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@Configuration +public class H5MemberInterceptor extends HandlerInterceptorAdapter { + + @Autowired + private TokenService tokenService; + @Autowired + private MemberService memberService; + + @Autowired + private MemberWechatService memberWechatService; + + @Autowired + private IStaffService iStaffService; + + private static String[] WHITE_PATHS = { + "/h5/sms/login", + "/h5/wechat/login", + "/h5/account/login", + "/h5/register", + "/h5/validate", + "/h5/staff", + "/h5/order/listByOpenid", + "/h5/system", + "/h5/oss/upload", + "/h5/companion/staff/getTrainAnswerRecord", + }; + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + String requestUri = request.getRequestURI(); + boolean flag = true; + if (!requestUri.startsWith("/h5/")) { + return super.preHandle(request, response, handler); + } + + for (String s : WHITE_PATHS) { + if (requestUri.startsWith(s)) { + flag = false; + break; + } + } + if (!flag) { + return super.preHandle(request, response, handler); + } + LoginMember loginMember = tokenService.getLoginMember(request); + if (loginMember == null) { + throw new ServiceException("获取用户ID异常", HttpStatus.UNAUTHORIZED); + } + tokenService.verifyMemberToken(loginMember); + if (new Integer(1).equals(loginMember.getSourceType())) { + //伴宠师 + Staff staff = iStaffService.getById(loginMember.getMemberId()); + + if (staff == null) { + throw new ServiceException("获取用户ID异常", HttpStatus.UNAUTHORIZED); + } + //将员工信息存放至全局 + LocalDataUtil.setVar(Constants.STAFF_INFO, staff); + }else { + //获取会员信息 + Member member = memberService.selectById(loginMember.getMemberId()); + if (member == null || member.getStatus() == 0) { + throw new ServiceException("获取用户ID异常", HttpStatus.UNAUTHORIZED); + } + //将会员信息存放至全局 + LocalDataUtil.setVar(Constants.MEMBER_INFO, member); + } + + + return super.preHandle(request, response, handler); + } + + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/MvcConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/MvcConfig.java new file mode 100644 index 0000000..dc8ca76 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/MvcConfig.java @@ -0,0 +1,23 @@ +package com.ruoyi.web.core.config; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Configuration +@Slf4j +public class MvcConfig extends WebMvcConfigurerAdapter { + + @Bean + public H5MemberInterceptor memberInterceptor() { + return new H5MemberInterceptor(); + } + + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(memberInterceptor()); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java new file mode 100644 index 0000000..a9716b6 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java @@ -0,0 +1,121 @@ +package com.ruoyi.web.core.config; + +import com.ruoyi.common.config.RuoYiConfig; +import io.swagger.annotations.ApiOperation; +import io.swagger.models.auth.In; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.*; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spi.service.contexts.SecurityContext; +import springfox.documentation.spring.web.plugins.Docket; + +import java.util.ArrayList; +import java.util.List; + +/** + * Swagger2的接口配置 + * + * @author ruoyi + */ +@Configuration +public class SwaggerConfig +{ + /** 系统基础配置 */ + @Autowired + private RuoYiConfig ruoyiConfig; + + /** 是否开启swagger */ + @Value("${swagger.enabled}") + private boolean enabled; + + /** 设置请求的统一前缀 */ + @Value("${swagger.pathMapping}") + private String pathMapping; + + /** + * 创建API + */ + @Bean + public Docket createRestApi() + { + return new Docket(DocumentationType.OAS_30) + // 是否启用Swagger + .enable(enabled) + // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息) + .apiInfo(apiInfo()) + // 设置哪些接口暴露给Swagger展示 + .select() + // 扫描所有有注解的api,用这种方式更灵活 + .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) + // 扫描指定包中的swagger注解 + // .apis(RequestHandlerSelectors.basePackage("com.ruoyi.project.tool.swagger")) + // 扫描所有 .apis(RequestHandlerSelectors.any()) + .paths(PathSelectors.any()) + .build() + /* 设置安全模式,swagger可以设置访问token */ + .securitySchemes(securitySchemes()) + .securityContexts(securityContexts()) + .pathMapping(pathMapping); + } + + /** + * 安全模式,这里指定token通过Authorization头请求头传递 + */ + private List securitySchemes() + { + List apiKeyList = new ArrayList(); + apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue())); + return apiKeyList; + } + + /** + * 安全上下文 + */ + private List securityContexts() + { + List securityContexts = new ArrayList<>(); + securityContexts.add( + SecurityContext.builder() + .securityReferences(defaultAuth()) + .operationSelector(o -> o.requestMappingPattern().matches("/.*")) + .build()); + return securityContexts; + } + + /** + * 默认的安全上引用 + */ + private List defaultAuth() + { + AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); + AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; + authorizationScopes[0] = authorizationScope; + List securityReferences = new ArrayList<>(); + securityReferences.add(new SecurityReference("Authorization", authorizationScopes)); + return securityReferences; + } + + /** + * 添加摘要信息 + */ + private ApiInfo apiInfo() + { + // 用ApiInfoBuilder进行定制 + return new ApiInfoBuilder() + // 设置标题 + .title("标题:接口文档") + // 描述 + .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...") + // 作者信息 + .contact(new Contact(ruoyiConfig.getName(), null, null)) + // 版本 + .version("版本号:" + ruoyiConfig.getVersion()) + .build(); + } +} diff --git a/ruoyi-admin/src/main/resources/META-INF/spring-devtools.properties b/ruoyi-admin/src/main/resources/META-INF/spring-devtools.properties new file mode 100644 index 0000000..2b23f85 --- /dev/null +++ b/ruoyi-admin/src/main/resources/META-INF/spring-devtools.properties @@ -0,0 +1 @@ +restart.include.json=/com.alibaba.fastjson.*.jar \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/apiclient_cert.p12 b/ruoyi-admin/src/main/resources/apiclient_cert.p12 new file mode 100644 index 0000000..cb7f6d2 Binary files /dev/null and b/ruoyi-admin/src/main/resources/apiclient_cert.p12 differ diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml new file mode 100644 index 0000000..07c3aa4 --- /dev/null +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -0,0 +1,103 @@ +# 数据源配置 +spring: + datasource: + type: com.alibaba.druid.pool.DruidDataSource + driverClassName: com.mysql.cj.jdbc.Driver + druid: + # 主库数据源 + master: + url: jdbc:mysql://ip:port/catmdogf_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true + username: root + password: password + # 从库数据源 + slave: + # 从数据源开关/默认关闭 + enabled: false + url: + username: + password: + statViewServlet: + # 控制台管理用户名和密码 + login-username: ruoyi + login-password: 123456 + # redis 配置 + redis: + # 地址 + host: 47.97.158.59 + # 端口,默认为6379 + port: 6379 + # 数据库索引 + database: 5 + # 密码 + password: Qweruiop@123 +redisson: + address: "redis://ip" + password: "password" # 如果有密码的话 + connectionPoolSize: 10 + idleConnectionTimeout: 10000 + timeout: 3000 + +ruoyi: + # 文件路径 示例( Windows配置C:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) + profile: /Users/daixiande/Work/ruoyi/uploadPath +scheduling: + enabled: false +#操作oss需要的一些参数 +aliyun: + accessKeyId: accesskey # 阿里云的accessKeyId + secretAccessKey: secretkey # accessKey 密码 + oss: + endPoint: oss-cn-shanghai.aliyuncs.com # Endpoint:在阿里云oss控制台查看自己使用的endpoint + bucketName: catmdogf # bucket 名称 + cdnName: cdn.catmdogd.com +wechat: + enabled: true + appId: appid + secret: 你的微信服务号密钥 + merchantId: merchant + privateKeyPath: /data/software/app/key/apiclient_key.pem + #privateKeyPath: /Users/daixiande/Work/杂七杂八/1665639691_20240111_cert/apiclient_key.pem + merchantSerialNumber: 6050244FC18200362585F1F9FD6557A1B291E8C0 + apiV3key: paykey + apiV2key: paykey + notifyUrl: https://api.catmdogd.com/prod-api/no-auth/wechat/notify + notifyUrlForBCHSH: https://api.catmdogd.com/prod-api/no-auth/wechat/notifyForBCHSH + miniProgramAppId: appid + miniProgramSecret: secret + staffAppId: wx01f0f43759922fda + staffSecret: b0a5617e6e4c387262a32af2b355c8b6 + pay: + v3: + # 租户id + miniapp: + # 应用appId 服务商模式下为服务商的appid 必填 + app-id: wxd1a6ba7b5e17a5b6 + # v2 api 密钥 1.0.5版本以后如果用到V2的接口时必填 + app-secret: secret + # api v3 密钥 必填 + app-v3-secret: paykey + # 微信支付商户号 服务商模式下为服务商的mchid 必填 + mch-id: merchant + # 商户服务器域名 用于回调 需要放开回调接口的安全策略 必填 + domain: https://api-test.catmdogd.com + # 商户 api 证书路径 必填 填写classpath路径 位于 maven项目的resources文件下 + cert-path: apiclient_cert.p12 + #cert-path: /data/software/app/key/apiclient_cert.p12 + + +sms: + enabled: true + # 阿里云 dysmsapi.aliyuncs.com + endpoint: dysmsapi.aliyuncs.com + accessKeyId: accesskey #阿里云短信服务控制台查看 + accessKeySecret: 6qvhtCb9MkswKEGmRmlpOXwtKwKJFv #同上 + signName: 猫妈狗爸 + #猫妈狗爸 + templateId: SMS_301225389 + # 腾讯专用 + sdkAppId: +aes: + # aes的密钥 + key: 1111111111123456 + + diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml new file mode 100644 index 0000000..22e5375 --- /dev/null +++ b/ruoyi-admin/src/main/resources/application.yml @@ -0,0 +1,249 @@ +# 项目相关配置 +ruoyi: + # 名称 + name: RuoYi-test + # 版本 + version: 3.7.0 + # 版权年份 + copyrightYear: 2025 + # 实例演示开关 + demoEnabled: true + # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) + profile: /Users/daixiande/Work/ruoyi/uploadPath + # 获取ip地址开关 + addressEnabled: true + # 验证码类型 math 数组计算 char 字符验证 + captchaType: math + # 前端请求的 跟踪 header name + traceIdName: x-web-trace-id + +# 开发环境配置 +server: + # 服务器的HTTP端口,默认为8080 + port: 8081 + servlet: + # 应用的访问路径 + context-path: / + tomcat: + # tomcat的URI编码 + uri-encoding: UTF-8 + # tomcat最大线程数,默认为200 + max-threads: 800 + # Tomcat启动初始化的线程数,默认值25 + min-spare-threads: 30 + +# 日志配置 +logging: + level: + com.ruoyi: debug + org.springframework: warn + +# Spring配置 +spring: + # 资源信息 + messages: + # 国际化资源文件路径 + basename: i18n/messages + profiles: + active: druid + # 文件上传 + servlet: + multipart: + # 单个文件大小 + max-file-size: 10MB + # 设置总上传的文件大小 + max-request-size: 20MB + # 服务模块 + devtools: + restart: + # 热部署开关 + enabled: true + datasource: + type: com.alibaba.druid.pool.DruidDataSource + driverClassName: com.mysql.cj.jdbc.Driver + druid: + # 初始连接数 + initialSize: 5 + # 最小连接池数量 + minIdle: 10 + # 最大连接池数量 + maxActive: 20 + # 配置获取连接等待超时的时间 + maxWait: 60000 + # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 + timeBetweenEvictionRunsMillis: 60000 + # 配置一个连接在池中最小生存的时间,单位是毫秒 + minEvictableIdleTimeMillis: 300000 + # 配置一个连接在池中最大生存的时间,单位是毫秒 + maxEvictableIdleTimeMillis: 900000 + # 配置检测连接是否有效 + validationQuery: SELECT 1 FROM DUAL + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + webStatFilter: + enabled: true + statViewServlet: + enabled: true + # 设置白名单,不填则允许所有访问 + allow: + url-pattern: /druid/* + filter: + stat: + enabled: true + # 慢SQL记录 + log-slow-sql: true + slow-sql-millis: 1000 + merge-sql: true + wall: + config: + multi-statement-allow: true + # redis 配置 + redis: + # 连接超时时间 + timeout: 50s + lettuce: + pool: + # 连接池中的最小空闲连接 + min-idle: 0 + # 连接池中的最大空闲连接 + max-idle: 8 + # 连接池的最大数据库连接数 + max-active: 8 + # #连接池最大阻塞等待时间(使用负值表示没有限制) + max-wait: -1ms + +# token配置 +token: + # 令牌自定义标识 + header: Authorization + # 令牌密钥 + secret: abcdefghijkomnopqrstuvwxyx + # 令牌有效期(默认30分钟) + expireTime: 30 + memberExpireTime: 30 +# mybatis-plus 配置 +mybatis-plus: + # 搜索指定包别名 + typeAliasesPackage: com.cyl.**.domain, com.ruoyi.common.core.domain.entity, com.ruoyi.**.domain + # 配置mapper的扫描,找到所有的mapper.xml映射文件 + mapperLocations: classpath*:mapper/**/*Mapper.xml + # 加载全局的配置文件 + configLocation: classpath:mybatis/mybatis-config.xml + global-config: + db-config: + id-type: auto + update-strategy: ignored +pagehelper: + helperDialect: mysql + supportMethodsArguments: true + params: count=countSql + +# Swagger配置 +swagger: + # 是否开启swagger + enabled: true + # 请求前缀 + pathMapping: /test-api + +# 防止XSS攻击 +xss: + # 过滤开关 + enabled: true + # 排除链接(多个用逗号分隔) + excludes: /system/notice + # 匹配链接 + urlPatterns: /system/*,/monitor/*,/tool/* +extra: + wx: + appid: wxappid + secret: wxsecret + redirect: "" +scheduling: + enabled: true +http-pool: + connection-request-timeout: 10000 + connection-timeout: 10000 + socket-timeout: 10000 + max-per-route: 200 + max-total: 200 +gen: + # 作者 + author: daixiande + # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool + packageName: com.cyl.mall + # 自动去除表前缀,默认是false + autoRemovePre: false + # 表前缀(生成类名不会包含表前缀,多个用逗号分隔) + tablePrefix: cscdc_ + # 一级权限名 + rootPermission: cscdc + # 模板根路径 + templateRootPath: vm + # 路径 + path: + # 后端根目录 + backPath: /Users/daixiande/Work/杂七杂八/CatmDogd-Mall/ + # 后端 service 模块名 + serviceModule: mybatis-plus-demo + # 后端 api 模块名, 默认与 service 一致 + apiModule: mybatis-plus-api + # 前端根目录 + frontPath: /Users/daixiande/Work/杂七杂八/CatmDogd-Mall-Front/ + # 前端 api 目录 + frontApiPath: src/api/system + # 前端 view 目录 + frontViewPath: src/views/system + # sql 目录 + sql: sql + # 环境变量 + env: + # 审计 的 基类(创建者,创建时间,更新者,更新时间) + baseAudit: com.ruoyi.common.core.domain.BaseAudit + # 树 的 基类 + baseTree: com.ruoyi.common.core.domain.TreeEntity + # 对于新增的模板,如果没有默认值,在这里进行配置 + fileMap: + "api.js.vm": "${frontPath}/${frontApiPath}/${className}.js" + "controller.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/controller/${ClassName}Controller.java" + "service.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/service/I${ClassName}Service.java" + "serviceImpl.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/service/impl/${ClassName}ServiceImpl.java" + "mapper.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/mapper/${ClassName}Mapper.java" + "convert.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/convert/${ClassName}Convert.java" + "example.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/pojo/example/${ClassName}Example.java" + "query.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/pojo/query/${ClassName}Query.java" + "dto.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/pojo/dto/${ClassName}DTO.java" + "vo.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/pojo/vo/${ClassName}VO.java" + "domain.java.vm": "${backPath}/${apiModule}/${MAIN_JAVA}/${packageName}/domain/${ClassName}.java" + "mapper.xml.vm": "${backPath}/${serviceModule}/${MAIN_RESOURCES}/mapper/${ClassName}Mapper.xml" + "sql.vm": "${backPath}/sql/${className}.sql" + "h2.sql.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/db/${tableName}-h2.sql" + "add.vue.vm": "${frontPath}/${frontViewPath}/Add${ClassName}.vue" + "index.vue.vm": "${frontPath}/${frontViewPath}/index.vue" + "index-tree.vue.vm": "${frontPath}/${frontViewPath}/index.vue" + "sub-domain.java.vm": "${frontPath}/${frontViewPath}/Sub${ClassName}.vue" + templates: + - vm/js/api.js.vm + - vm/java/controller.java.vm + - vm/java/service.java.vm + - vm/java/serviceImpl.java.vm + - vm/java/mapper.java.vm + - vm/java/convert.java.vm + - vm/java/query.java.vm + - vm/java/vo.java.vm + - vm/java/domain.java.vm + - vm/xml/mapper.xml.vm + - vm/sql/sql.vm + testTemplates: + # - vm2/sql/h2.sql.vm + crudTemplates: + - vm/vue/index.vue.vm + treeTemplates: + # - vm2/vue/index-tree.vue.vm + subTemplates: + # - vm2/vue/index.vue.vm + # - vm2/java/sub-domain.java.vm + type2component: + "String": "a-input(" + "LocalDate": "a-date-picker(" + "LocalDateTime": "a-date-picker(format=\"YYYY-MM-DD HH:mm\"" diff --git a/ruoyi-admin/src/main/resources/banner.txt b/ruoyi-admin/src/main/resources/banner.txt new file mode 100644 index 0000000..0931cb8 --- /dev/null +++ b/ruoyi-admin/src/main/resources/banner.txt @@ -0,0 +1,24 @@ +Application Version: ${ruoyi.version} +Spring Boot Version: ${spring-boot.version} +//////////////////////////////////////////////////////////////////// +// _ooOoo_ // +// o8888888o // +// 88" . "88 // +// (| ^_^ |) // +// O\ = /O // +// ____/`---'\____ // +// .' \\| |// `. // +// / \\||| : |||// \ // +// / _||||| -:- |||||- \ // +// | | \\\ - /// | | // +// | \_| ''\---/'' | | // +// \ .-\__ `-` ___/-. / // +// ___`. .' /--.--\ `. . ___ // +// ."" '< `.___\_<|>_/___.' >'"". // +// | | : `- \`.;`\ _ /`;.`/ - ` : | | // +// \ \ `-. \_ __\ /__ _/ .-` / / // +// ========`-.____`-.___\_____/___.-`____.-'======== // +// `=---=' // +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // +// 佛祖保佑 永不宕机 永无BUG // +//////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/i18n/messages.properties b/ruoyi-admin/src/main/resources/i18n/messages.properties new file mode 100644 index 0000000..71cf52d --- /dev/null +++ b/ruoyi-admin/src/main/resources/i18n/messages.properties @@ -0,0 +1,37 @@ +#错误消息 +not.null=* 必须填写 +user.jcaptcha.error=验证码错误 +user.jcaptcha.expire=验证码已失效 +user.not.exists=用户不存在/密码错误 +user.password.not.match=用户不存在/密码错误 +user.password.retry.limit.count=密码输入错误{0}次 +user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定10分钟 +user.password.delete=对不起,您的账号已被删除 +user.blocked=用户已封禁,请联系管理员 +role.blocked=角色已封禁,请联系管理员 +user.logout.success=退出成功 + +length.not.valid=长度必须在{min}到{max}个字符之间 + +user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头 +user.password.not.valid=* 5-50个字符 + +user.email.not.valid=邮箱格式错误 +user.mobile.phone.number.not.valid=手机号格式错误 +user.login.success=登录成功 +user.register.success=注册成功 +user.notfound=请重新登录 +user.forcelogout=管理员强制退出,请重新登录 +user.unknown.error=未知错误,请重新登录 + +##文件上传消息 +upload.exceed.maxSize=上传的文件大小超出限制的文件大小!
允许的文件最大大小是:{0}MB! +upload.filename.exceed.length=上传的文件名最长{0}个字符 + +##权限 +no.permission=您没有数据的权限,请联系管理员添加权限 [{0}] +no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}] +no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}] +no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}] +no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}] +no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}] diff --git a/ruoyi-admin/src/main/resources/logback.xml b/ruoyi-admin/src/main/resources/logback.xml new file mode 100644 index 0000000..29a2134 --- /dev/null +++ b/ruoyi-admin/src/main/resources/logback.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/mall.current.log + + + + ${log.path}/mall.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + + + + ${log.path}/mall-error.log + + + + ${log.path}/mall-error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + + + + + ${log.path}/sys-user.log + + + ${log.path}/sys-user.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml b/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml new file mode 100644 index 0000000..e62f8cc --- /dev/null +++ b/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/ruoyi-admin/src/test/java/com/fjp/lc/test/common/CommonTest.java b/ruoyi-admin/src/test/java/com/fjp/lc/test/common/CommonTest.java new file mode 100644 index 0000000..fd6d4c8 --- /dev/null +++ b/ruoyi-admin/src/test/java/com/fjp/lc/test/common/CommonTest.java @@ -0,0 +1,112 @@ +package com.fjp.lc.test.common; + +import cn.hutool.core.img.Img; +import cn.hutool.core.img.ImgUtil; +import cn.hutool.core.io.FileUtil; +import com.alibaba.fastjson.JSON; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.codec.digest.DigestUtils; +import org.junit.Test; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.web.client.RestTemplate; + +import java.io.File; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.Timestamp; +import java.time.Instant; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +@Slf4j +public class CommonTest { + /* @Test + public void test3() throws IOException { + Long start = System.currentTimeMillis(); + log.info("start {}", start); + Thumbnails.of("D:/build/tt.jpg") + .scale(1f) + .outputQuality(0.5f) + .toFile("D:/build/tt1.jpg"); + log.info("end {}", System.currentTimeMillis() - start); + }*/ + + @Test + public void test4() throws IOException { + String f1 = "D:/build/tt.jpg"; + String f2 = "D:/build/tt2.jpg"; + Long start = System.currentTimeMillis(); + log.info("start {}", start); + ImgUtil.scale(new File(f1), new File(f2), .1f); + log.info("end {}", System.currentTimeMillis() - start); + } + @Test + public void test5() throws IOException { + String f1 = "D:/build/tt.jpg"; + String f2 = "D:/build/tt3.jpg"; + Long start = System.currentTimeMillis(); + log.info("start {}", start); + Img.from(FileUtil.file(f1)) + .setQuality(1)//压缩比率 + .write(FileUtil.file(f2)); + log.info("end {}", System.currentTimeMillis() - start); + } + + @Test + public void testTimestampt(){ + Instant tsObj = Instant.now(); + + long secs = tsObj.getEpochSecond(); + + System.out.println(secs); + } + + @Test + public void test() throws NoSuchAlgorithmException { + RestTemplate restTemplate = new RestTemplate(); + + String url = "http://bmfw.www.gov.cn/bjww/interface/interfaceJson"; + + String key = "3C502C97ABDA40D0A60FBEE50FAAD1DA"; + Long timestamp = Instant.now().getEpochSecond(); + String token = "23y0ufFl5YxIyGrI8hWRUZmKkvtSjLQA"; + String nonce ="123456789abcdefg"; + String passid = "zdww"; + String tempString = timestamp + token + nonce + timestamp; + + String signatureHeader = DigestUtils.sha256Hex(tempString).toUpperCase(); + System.out.println(signatureHeader); + tempString = timestamp + "fTN2pfuisxTavbTuYVSsNJHetwq5bJvC" + "QkjjtiLM2dCratiA" + timestamp; + String zdwwsignature = DigestUtils.sha256Hex(tempString).toUpperCase(); + System.out.println(zdwwsignature); + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + headers.set("x-wif-nonce","QkjjtiLM2dCratiA"); + headers.set("x-wif-paasid","smt-application"); + headers.set("x-wif-signature",zdwwsignature); + headers.set("x-wif-timestamp",timestamp.toString()); + headers.set("Origin","http://bmfw.www.gov.cn"); + headers.set("Referer","http://bmfw.www.gov.cn/yqfxdjcx/risk.html"); + + Map map = new HashMap(); + map.put("appId","NcApplication"); + map.put("paasHeader",passid); + map.put("timestampHeader",timestamp.toString()); + map.put("nonceHeader",nonce); + map.put("signatureHeader",signatureHeader); + map.put("key",key); + + String json= JSON.toJSONString(map); + System.out.println(json); + HttpEntity entity = new HttpEntity(json,headers); + + String ans = restTemplate.postForObject(url, entity, String.class); + System.out.println(ans); + + } +} diff --git a/ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java b/ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java new file mode 100644 index 0000000..5258ac9 --- /dev/null +++ b/ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java @@ -0,0 +1,134 @@ +package com.fjp.lc.test.service; + +import cn.hutool.core.lang.Snowflake; +import cn.hutool.core.util.CharsetUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.crypto.SecureUtil; +import cn.hutool.crypto.symmetric.AES; +import com.cyl.h5.pojo.dto.PayNotifyMessageDTO; +import com.cyl.h5.service.H5OrderService; +import com.cyl.manager.aws.domain.SystemStatistics; +import com.cyl.manager.aws.mapper.SystemStatisticsMapper; +import com.cyl.manager.aws.service.SystemStatisticsService; +import com.cyl.manager.ums.service.MemberCartService; +import com.cyl.wechat.WechatAuthService; +import com.cyl.wechat.WechatPayData; +import com.cyl.wechat.WechatPayService; +import com.ruoyi.RuoYiApplication; +import com.ruoyi.common.config.properties.SmsProperties; +import com.ruoyi.common.core.sms.AliyunSmsTemplate; +import com.ruoyi.common.core.sms.SmsTemplate; +import com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction; +import lombok.extern.slf4j.Slf4j; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.ResponseEntity; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +@RunWith(SpringRunner.class) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = RuoYiApplication.class) +@ActiveProfiles("dev") +@Slf4j +public class ServiceTest { + @Autowired + private MemberCartService memberCartService; + + @Autowired + private SmsProperties smsProperties; + + @Value("${aes.key}") + private String key; + + @Autowired + private SystemStatisticsService systemStatisticsService; + + @Autowired + private SystemStatisticsMapper systemStatisticsMapper; + + @Test + public void test1() { + memberCartService.mineCartNum(); + } + @Test + public void test2(){ + System.out.println(smsProperties); + if (!smsProperties.getEnabled()) { + throw new RuntimeException("没有开启短信服务"); + } + Map map = new HashMap<>(1); + map.put("code", "1234"); + SmsTemplate smsTemplate = new AliyunSmsTemplate(smsProperties); + Object send = smsTemplate.send("15706259078", "SMS_146125046", map); + log.info("短信发送结果:" + send); + } + + @Test + public void test3(){ + String content = "test中文"; + AES aes = SecureUtil.aes(key.getBytes()); + byte[] encrypt = aes.encrypt(content); + byte[] decrypt = aes.decrypt(encrypt); + String encryptHex = aes.encryptHex(content); + System.out.println("加密后16进制:" + encryptHex); + String decryptStr = aes.decryptStr(encryptHex, CharsetUtil.CHARSET_UTF_8); + System.out.println("解密:" + decryptStr); + } + + @Test + public void test4(){ + //参数1为终端ID +//参数2为数据中心ID + Snowflake snowflake = IdUtil.createSnowflake(1, 1); + long id = snowflake.nextId(); + System.out.println("id:" + id); + } + + @Autowired + private WechatPayService wechatPayService; + @Autowired + private WechatAuthService wechatAuthService; + @Test + public void test5(){ +// String code = "0611P2Ga1D8QCF0CVuJa1qNUJa11P2GL"; +// WechatUserAuth userToken = wechatAuthService.getUserToken(code); + String openId="oUA8I6lDdwSfz-EwR4284dU3KOYw"; + String res = wechatPayService.jsapiPay(UUID.randomUUID().toString().substring(0,30), "测试支付", 1, openId, 22L, WechatPayData.appId); + System.out.println(res); + + } + + @Autowired + private H5OrderService h5OrderService; + + @Test + public void test6(){ + PayNotifyMessageDTO messageDTO = new PayNotifyMessageDTO(); + messageDTO.setPayTime(new Date()); + messageDTO.setOutTradeNo(5365581195495425L); + messageDTO.setMemberId(22L); + messageDTO.setTradeStatus(Transaction.TradeStateEnum.SUCCESS); + messageDTO.setTradeNo(""); + ResponseEntity stringResponseEntity = h5OrderService.payCallBack(messageDTO); + System.out.println(stringResponseEntity.getBody()); + } + + @Test + public void test7(){ + LocalDateTime startTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN).plusDays(-1); + LocalDateTime endTime = LocalDateTime.of(LocalDate.now(), LocalTime.MAX).plusDays(-1); + SystemStatistics data = systemStatisticsService.stat(startTime, endTime); + systemStatisticsMapper.insert(data); + } +} diff --git a/ruoyi-admin/src/test/java/com/fjp/lc/test/service/WechatTest.java b/ruoyi-admin/src/test/java/com/fjp/lc/test/service/WechatTest.java new file mode 100644 index 0000000..cb462a3 --- /dev/null +++ b/ruoyi-admin/src/test/java/com/fjp/lc/test/service/WechatTest.java @@ -0,0 +1,25 @@ +package com.fjp.lc.test.service; + +import com.cyl.h5.pojo.vo.form.WechatLoginForm; +import com.cyl.manager.ums.service.MemberWechatService; +import com.ruoyi.RuoYiApplication; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = RuoYiApplication.class) +@ActiveProfiles("dev") +public class WechatTest { + @Autowired + private MemberWechatService memberWechatService; + @Test + public void testAuth() { + WechatLoginForm f = new WechatLoginForm(); + f.setCode("081zPgHa1FbRQE0wGIIa1lgb1C1zPgHi"); + memberWechatService.login(f); + } +} diff --git a/ruoyi-common/.DS_Store b/ruoyi-common/.DS_Store new file mode 100644 index 0000000..637d050 Binary files /dev/null and b/ruoyi-common/.DS_Store differ diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml new file mode 100644 index 0000000..aeb8a85 --- /dev/null +++ b/ruoyi-common/pom.xml @@ -0,0 +1,148 @@ + + + + ruoyi + com.ruoyi + 3.7.0 + + 4.0.0 + + ruoyi-common + + + common通用工具 + + + + + + + org.springframework + spring-context-support + + + + + org.springframework + spring-web + + + + + org.springframework.boot + spring-boot-starter-security + + + + + com.github.pagehelper + pagehelper-spring-boot-starter + + + + + org.springframework.boot + spring-boot-starter-validation + + + + + org.apache.commons + commons-lang3 + + + + + com.fasterxml.jackson.core + jackson-databind + + + + + com.alibaba + fastjson + + + + + commons-io + commons-io + + + + + commons-fileupload + commons-fileupload + + + + + org.apache.poi + poi-ooxml + + + + + org.yaml + snakeyaml + + + + + io.jsonwebtoken + jjwt + + + + + javax.xml.bind + jaxb-api + + + + com.aliyun.oss + aliyun-sdk-oss + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + + org.apache.commons + commons-pool2 + + + + + eu.bitwalker + UserAgentUtils + + + + + javax.servlet + javax.servlet-api + + + + + com.aliyun + dysmsapi20170525 + true + + + + + org.redisson + redisson-spring-boot-starter + ${redisson.version} + + + + diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataScope.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataScope.java new file mode 100644 index 0000000..176878e --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataScope.java @@ -0,0 +1,28 @@ +package com.ruoyi.common.annotation; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 数据权限过滤注解 + * + * @author ruoyi + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DataScope +{ + /** + * 部门表的别名 + */ + public String deptAlias() default ""; + + /** + * 用户表的别名 + */ + public String userAlias() default ""; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataSource.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataSource.java new file mode 100644 index 0000000..79cd191 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataSource.java @@ -0,0 +1,28 @@ +package com.ruoyi.common.annotation; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import com.ruoyi.common.enums.DataSourceType; + +/** + * 自定义多数据源切换注解 + * + * 优先级:先方法,后类,如果方法覆盖了类上的数据源类型,以方法的为准,否则以类上的为准 + * + * @author ruoyi + */ +@Target({ ElementType.METHOD, ElementType.TYPE }) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Inherited +public @interface DataSource +{ + /** + * 切换数据源名称 + */ + public DataSourceType value() default DataSourceType.MASTER; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java new file mode 100644 index 0000000..3754e0e --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java @@ -0,0 +1,176 @@ +package com.ruoyi.common.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.math.BigDecimal; +import com.ruoyi.common.utils.poi.ExcelHandlerAdapter; + +/** + * 自定义导出Excel数据注解 + * + * @author ruoyi + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface Excel +{ + /** + * 导出时在excel中排序 + */ + public int sort() default Integer.MAX_VALUE; + + /** + * 导出到Excel中的名字. + */ + public String name() default ""; + + /** + * 日期格式, 如: yyyy-MM-dd + */ + public String dateFormat() default ""; + + /** + * 如果是字典类型,请设置字典的type值 (如: sys_user_sex) + */ + public String dictType() default ""; + + /** + * 读取内容转表达式 (如: 0=男,1=女,2=未知) + */ + public String readConverterExp() default ""; + + /** + * 分隔符,读取字符串组内容 + */ + public String separator() default ","; + + /** + * BigDecimal 精度 默认:-1(默认不开启BigDecimal格式化) + */ + public int scale() default -1; + + /** + * BigDecimal 舍入规则 默认:BigDecimal.ROUND_HALF_EVEN + */ + public int roundingMode() default BigDecimal.ROUND_HALF_EVEN; + + /** + * 导出类型(0数字 1字符串) + */ + public ColumnType cellType() default ColumnType.STRING; + + /** + * 导出时在excel中每个列的高度 单位为字符 + */ + public double height() default 14; + + /** + * 导出时在excel中每个列的宽 单位为字符 + */ + public double width() default 16; + + /** + * 文字后缀,如% 90 变成90% + */ + public String suffix() default ""; + + /** + * 当值为空时,字段的默认值 + */ + public String defaultValue() default ""; + + /** + * 提示信息 + */ + public String prompt() default ""; + + /** + * 设置只能选择不能输入的列内容. + */ + public String[] combo() default {}; + + /** + * 是否导出数据,应对需求:有时我们需要导出一份模板,这是标题需要但内容需要用户手工填写. + */ + public boolean isExport() default true; + + /** + * 另一个类中的属性名称,支持多级获取,以小数点隔开 + */ + public String targetAttr() default ""; + + /** + * 是否自动统计数据,在最后追加一行统计数据总和 + */ + public boolean isStatistics() default false; + + /** + * 导出字段对齐方式(0:默认;1:靠左;2:居中;3:靠右) + */ + public Align align() default Align.AUTO; + + /** + * 自定义数据处理器 + */ + public Class handler() default ExcelHandlerAdapter.class; + + /** + * 自定义数据处理器参数 + */ + public String[] args() default {}; + + public enum Align + { + AUTO(0), LEFT(1), CENTER(2), RIGHT(3); + private final int value; + + Align(int value) + { + this.value = value; + } + + public int value() + { + return this.value; + } + } + + /** + * 字段类型(0:导出导入;1:仅导出;2:仅导入) + */ + Type type() default Type.ALL; + + public enum Type + { + ALL(0), EXPORT(1), IMPORT(2); + private final int value; + + Type(int value) + { + this.value = value; + } + + public int value() + { + return this.value; + } + } + + public enum ColumnType + { + NUMERIC(0), STRING(1), IMAGE(2); + private final int value; + + ColumnType(int value) + { + this.value = value; + } + + public int value() + { + return this.value; + } + } +} \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excels.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excels.java new file mode 100644 index 0000000..1f1cc81 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excels.java @@ -0,0 +1,18 @@ +package com.ruoyi.common.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Excel注解集 + * + * @author ruoyi + */ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface Excels +{ + public Excel[] value(); +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java new file mode 100644 index 0000000..ca02c6c --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java @@ -0,0 +1,46 @@ +package com.ruoyi.common.annotation; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.enums.OperatorType; + +/** + * 自定义操作日志记录注解 + * + * @author ruoyi + * + */ +@Target({ ElementType.PARAMETER, ElementType.METHOD }) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface Log +{ + /** + * 模块 + */ + public String title() default ""; + + /** + * 功能 + */ + public BusinessType businessType() default BusinessType.OTHER; + + /** + * 操作人类别 + */ + public OperatorType operatorType() default OperatorType.MANAGE; + + /** + * 是否保存请求的参数 + */ + public boolean isSaveRequestData() default true; + + /** + * 是否保存响应的参数 + */ + public boolean isSaveResponseData() default true; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java new file mode 100644 index 0000000..69461ea --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java @@ -0,0 +1,40 @@ +package com.ruoyi.common.annotation; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.enums.LimitType; + +/** + * 限流注解 + * + * @author ruoyi + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface RateLimiter +{ + /** + * 限流key + */ + public String key() default Constants.RATE_LIMIT_KEY; + + /** + * 限流时间,单位秒 + */ + public int time() default 60; + + /** + * 限流次数 + */ + public int count() default 100; + + /** + * 限流类型 + */ + public LimitType limitType() default LimitType.DEFAULT; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RepeatSubmit.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RepeatSubmit.java new file mode 100644 index 0000000..b769748 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RepeatSubmit.java @@ -0,0 +1,31 @@ +package com.ruoyi.common.annotation; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 自定义注解防止表单重复提交 + * + * @author ruoyi + * + */ +@Inherited +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface RepeatSubmit +{ + /** + * 间隔时间(ms),小于此时间视为重复提交 + */ + public int interval() default 5000; + + /** + * 提示消息 + */ + public String message() default "不允许重复提交,请稍候再试"; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java new file mode 100644 index 0000000..faf25be --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java @@ -0,0 +1,124 @@ +package com.ruoyi.common.config; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +/** + * 读取项目相关配置 + * + * @author ruoyi + */ +@Component +@ConfigurationProperties(prefix = "ruoyi") +public class RuoYiConfig +{ + /** 项目名称 */ + private String name; + + /** 版本 */ + private String version; + + /** 版权年份 */ + private String copyrightYear; + + /** 实例演示开关 */ + private boolean demoEnabled; + + /** 上传路径 */ + private static String profile; + + /** 获取地址开关 */ + private static boolean addressEnabled; + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + public String getVersion() + { + return version; + } + + public void setVersion(String version) + { + this.version = version; + } + + public String getCopyrightYear() + { + return copyrightYear; + } + + public void setCopyrightYear(String copyrightYear) + { + this.copyrightYear = copyrightYear; + } + + public boolean isDemoEnabled() + { + return demoEnabled; + } + + public void setDemoEnabled(boolean demoEnabled) + { + this.demoEnabled = demoEnabled; + } + + public static String getProfile() + { + return profile; + } + + public void setProfile(String profile) + { + RuoYiConfig.profile = profile; + } + + public static boolean isAddressEnabled() + { + return addressEnabled; + } + + public void setAddressEnabled(boolean addressEnabled) + { + RuoYiConfig.addressEnabled = addressEnabled; + } + + /** + * 获取导入上传路径 + */ + public static String getImportPath() + { + return getProfile() + "/import"; + } + + /** + * 获取头像上传路径 + */ + public static String getAvatarPath() + { + return getProfile() + "/avatar"; + } + + /** + * 获取下载路径 + */ + public static String getDownloadPath() + { + return getProfile() + "/download/"; + } + + /** + * 获取上传路径 + */ + public static String getUploadPath() + { + return getProfile() + "/upload"; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/SmsConfig.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/SmsConfig.java new file mode 100644 index 0000000..b540ddf --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/SmsConfig.java @@ -0,0 +1,34 @@ +package com.ruoyi.common.config; + +import com.ruoyi.common.config.properties.SmsProperties; +import com.ruoyi.common.core.sms.AliyunSmsTemplate; +import com.ruoyi.common.core.sms.SmsTemplate; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +/** + * 短信配置类 + * + * @author Lion Li + * @version 4.2.0 + */ +@EnableConfigurationProperties(SmsProperties.class) +public class SmsConfig { + + @Configuration + @ConditionalOnProperty(value = "sms.enabled", havingValue = "true") + @ConditionalOnClass(com.aliyun.dysmsapi20170525.Client.class) + static class AliyunSmsConfig { + + @Bean + public SmsTemplate aliyunSmsTemplate(SmsProperties smsProperties) { + return new AliyunSmsTemplate(smsProperties); + } + + } + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/properties/SmsProperties.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/properties/SmsProperties.java new file mode 100644 index 0000000..2c93b39 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/properties/SmsProperties.java @@ -0,0 +1,46 @@ +package com.ruoyi.common.config.properties; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +/** + * SMS短信 配置属性 + * + * @author Lion Li + * @version 4.2.0 + */ +@Data +@ConfigurationProperties(prefix = "sms") +@Component +public class SmsProperties { + + private Boolean enabled; + + /** + * 配置节点 + * 阿里云 dysmsapi.aliyuncs.com + */ + private String endpoint; + + /** + * key + */ + private String accessKeyId; + + /** + * 密匙 + */ + private String accessKeySecret; + + /* + * 短信签名 + */ + private String signName; + + /** + * 短信应用ID (腾讯专属) + */ + private String sdkAppId; + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CommonConstant.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CommonConstant.java new file mode 100644 index 0000000..9afd1c4 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CommonConstant.java @@ -0,0 +1,5 @@ +package com.ruoyi.common.constant; + +public interface CommonConstant { + int BATCH_SIZE = 100; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java new file mode 100644 index 0000000..7b895d9 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java @@ -0,0 +1,261 @@ +package com.ruoyi.common.constant; + +import io.jsonwebtoken.Claims; + +/** + * 通用常量信息 + * + * @author ruoyi + */ +public class Constants +{ + /** + * UTF-8 字符集 + */ + public static final String UTF8 = "UTF-8"; + + /** + * GBK 字符集 + */ + public static final String GBK = "GBK"; + + /** + * http请求 + */ + public static final String HTTP = "http://"; + + /** + * https请求 + */ + public static final String HTTPS = "https://"; + + /** + * 通用成功标识 + */ + public static final String SUCCESS = "0"; + + /** + * 通用失败标识 + */ + public static final String FAIL = "1"; + + /** + * 登录成功 + */ + public static final String LOGIN_SUCCESS = "Success"; + + /** + * 注销 + */ + public static final String LOGOUT = "Logout"; + + /** + * 注册 + */ + public static final String REGISTER = "Register"; + + /** + * 登录失败 + */ + public static final String LOGIN_FAIL = "Error"; + + /** + * 验证码 redis key + */ + public static final String CAPTCHA_CODE_KEY = "captcha_codes:"; + + /** + * 登录用户 redis key + */ + public static final String LOGIN_TOKEN_KEY = "login_tokens:"; + public static final String LOGIN_MEMBER_TOKEN_KEY = "login_member_tokens:"; + public static final String MEMBER_INFO = "member_info"; + public static final String STAFF_INFO = "staff_info"; + + /** + * 防重提交 redis key + */ + public static final String REPEAT_SUBMIT_KEY = "repeat_submit:"; + + /** + * 限流 redis key + */ + public static final String RATE_LIMIT_KEY = "rate_limit:"; + + /** + * 验证码有效期(分钟) + */ + public static final Integer CAPTCHA_EXPIRATION = 2; + + /** + * 令牌 + */ + public static final String TOKEN = "token"; + + /** + * 令牌前缀 + */ + public static final String TOKEN_PREFIX = "Bearer "; + + /** + * 令牌前缀 + */ + public static final String LOGIN_USER_KEY = "login_user_key"; + public static final String LOGIN_MEMBER_KEY = "login_member_key"; + + /** + * 用户ID + */ + public static final String JWT_USERID = "userid"; + + /** + * 用户名称 + */ + public static final String JWT_USERNAME = Claims.SUBJECT; + + /** + * 用户头像 + */ + public static final String JWT_AVATAR = "avatar"; + + /** + * 创建时间 + */ + public static final String JWT_CREATED = "created"; + + /** + * 用户权限 + */ + public static final String JWT_AUTHORITIES = "authorities"; + + /** + * 参数管理 cache key + */ + public static final String SYS_CONFIG_KEY = "sys_config:"; + + /** + * 字典管理 cache key + */ + public static final String SYS_DICT_KEY = "sys_dict:"; + + /** + * 资源映射路径 前缀 + */ + public static final String RESOURCE_PREFIX = "/profile"; + + /** + * RMI 远程方法调用 + */ + public static final String LOOKUP_RMI = "rmi://"; + + /** + * LDAP 远程方法调用 + */ + public static final String LOOKUP_LDAP = "ldap://"; + + public static final String SPAN_ID = "spanId"; + + /** + * 会员账号状态 + */ + public static class MEMBER_ACCOUNT_STATUS { + public static final Integer FORBIDDEN = 0; + public static final Integer NORMAL = 1; + } + + /** + * 登录提示信息 + */ + public static class LOGIN_INFO { + public static final String WRONG = "账号或密码错误"; + public static final String FORBIDDEN = "您的账号被禁用,请联系管理员"; + public static final String SUCCESS = "登录成功"; + public static final String TO_REGISTER = "请先注册"; + } + + /** + * 验证码相关提示信息 + */ + public static class VERIFY_CODE_INFO { + public static final String EXPIRED = "验证码已过期"; + public static final String WRONG = "验证码错误"; + } + + /** + * 上架状态:0->下架;1->上架 + */ + public static class PublishStatus { + public static final Integer GROUNDING = 1; + public static final Integer UNDERCARRIAGE = 0; + } + + /** + * 0->未支付;1->支付宝;2->微信 + */ + public static class PayType { + public static final Integer NO_PAY = 0; + public static final Integer ALIPAY = 1; + public static final Integer WECHAT = 2; + //系统扣款 + public static final Integer SYSTEM = 3; + //手动扣款 + public static final Integer MANUAL = 4; + } + + /** + * 订单来源 购物车:cart + */ + public static class OrderFrom { + public static final String CART = "cart"; + } + + /** + * 订单状态 0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 + */ + public static class OrderStatus { + public static final Integer NOTPAID = 0; + public static final Integer SEND = 1; + public static final Integer GET = 2; + public static final Integer CONFIRM = 3; + public static final Integer CLOSED = 4; + public static final Integer UNVAILD = 5; + } + + /** + * H5订单查询状态 + * -1->全部 0->待付款;1->待发货;2->待收货;3->已完成;4->已关闭;5->无效订单 -2->售后单 + */ + public static class H5OrderStatus{ + public static final Integer ALL = -1; + public static final Integer UN_PAY = 0; + public static final Integer NOT_DELIVERED = 1; + public static final Integer DELIVERED = 2; + public static final Integer COMPLETED = 3; + public static final Integer CLOSED = 4; + public static final Integer INVALID = 5; + public static final Integer REFUND = -2; + } + + /** + * 交易类型(1为支付 2为提现 3为退款) + */ + public static class PaymentOpType { + public static final Integer PAY = 1; + public static final Integer WITHDRAWAL = 2; + public static final Integer REFUND = 3; + } + + /** + * 状态(0:未完成交易 1:完成关键交易) + */ + public static class PaymentStatus { + public static final Integer INCOMPLETE = 0; + public static final Integer COMPLETE = 1; + } + + public static class OptType { + public static final Integer AGREE = 1; + public static final Integer REFUSE = 2; + public static final Integer GIVING = 3; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/DispatchOrderConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/DispatchOrderConstants.java new file mode 100644 index 0000000..712f099 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/DispatchOrderConstants.java @@ -0,0 +1,12 @@ +package com.ruoyi.common.constant; + +//派单常量 +public class DispatchOrderConstants { + private DispatchOrderConstants(){} + + //派单库存常量 + public static final String DISPATCH_ORDER_COUNT = "DISPATCH_ORDER_COUNT"; + + //抢单加锁常量 + public static final String DISPATCH_ORDER_ACCEPTED = "DISPATCH_ORDER_ACCEPTED"; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java new file mode 100644 index 0000000..e2c6678 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java @@ -0,0 +1,139 @@ +package com.ruoyi.common.constant; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * 代码生成通用常量 + * + * @author ruoyi + */ +public class GenConstants { + /** 单表(增删改查) */ + public static final String TPL_CRUD = "crud"; + + /** 树表(增删改查) */ + public static final String TPL_TREE = "tree"; + + /** 主子表(增删改查) */ + public static final String TPL_SUB = "sub"; + + /** 树编码字段 */ + public static final String TREE_CODE = "treeCode"; + + /** 树父编码字段 */ + public static final String TREE_PARENT_CODE = "treeParentCode"; + + /** 树名称字段 */ + public static final String TREE_NAME = "treeName"; + + /** 上级菜单ID字段 */ + public static final String PARENT_MENU_ID = "parentMenuId"; + + /** 上级菜单名称字段 */ + public static final String PARENT_MENU_NAME = "parentMenuName"; + + /** 是否开启审计字段 */ + public static final String AUDIT = "audit"; + + /** 数据库字符串类型 */ + public static final String[] COLUMNTYPE_STR = { "char", "varchar", "nvarchar", "varchar2" }; + + /** 数据库文本类型 */ + public static final String[] COLUMNTYPE_TEXT = { "tinytext", "text", "mediumtext", "longtext" }; + + /** 数据库时间类型 */ + public static final String[] COLUMNTYPE_TIME = { "datetime", "time", "date", "timestamp" }; + + /** 数据库数字类型 */ + public static final String[] COLUMNTYPE_NUMBER = { "tinyint", "smallint", "mediumint", "int", "number", "integer", + "bit", "bigint", "float", "double", "decimal" }; + + public static final String[] COLUMNTYPE_INT = { "tinyint", "smallint", "mediumint", "int", "integer"}; + public static final String[] COLUMNTYPE_DECIMAL = { "float", "double", "decimal"}; + + /** 页面不需要编辑字段 */ + public static final String[] COLUMNNAME_NOT_EDIT = { "id", "create_by", "create_time", "del_flag" }; + + /** 页面不需要显示的列表字段 */ + public static final String[] COLUMNNAME_NOT_LIST = { "id", "create_by", "create_time", "del_flag", "update_by", + "update_time" }; + + /** 页面不需要查询字段 */ + public static final String[] COLUMNNAME_NOT_QUERY = { "id", "create_by", "create_time", "del_flag", "update_by", + "update_time", "remark" }; + + /** Entity基类字段 */ + public static final String[] BASE_ENTITY = { "createBy", "createTime", "updateBy", "updateTime" }; + + /** Tree基类字段 */ + public static final String[] TREE_ENTITY = { "parentName", "parentId", "orderNum", "ancestors", "children" }; + + /** 文本框 */ + public static final String HTML_INPUT = "input"; + + /** 文本域 */ + public static final String HTML_TEXTAREA = "textarea"; + + /** 下拉框 */ + public static final String HTML_SELECT = "select"; + + /** 单选框 */ + public static final String HTML_RADIO = "radio"; + + /** 复选框 */ + public static final String HTML_CHECKBOX = "checkbox"; + + /** 日期控件 */ + public static final String HTML_DATETIME = "datetime"; + + /** 图片上传控件 */ + public static final String HTML_IMAGE_UPLOAD = "imageUpload"; + + /** 文件上传控件 */ + public static final String HTML_FILE_UPLOAD = "fileUpload"; + + /** 富文本控件 */ + public static final String HTML_EDITOR = "editor"; + + /** 字符串类型 */ + public static final String TYPE_STRING = "String"; + + /** 整型 */ + public static final String TYPE_INTEGER = "Integer"; + + /** 长整型 */ + public static final String TYPE_LONG = "Long"; + + /** + * 浮点型 + */ + public static final String TYPE_DOUBLE = "Double"; + + /** + * 高精度计算类型 + */ + public static final String TYPE_BIGDECIMAL = "BigDecimal"; + + /** + * 时间类型 + */ + public static final String TYPE_DATE = "Date"; + public static final String TYPE_LOCAL_DATE = "LocalDate"; + public static final String TYPE_LOCAL_DATE_TIME = "LocalDateTime"; + public static final String TYPE_LOCAL_TIME = "LocalTime"; + public static final List TYPE_DATE_ARR = new ArrayList<>( + Arrays.asList(TYPE_LOCAL_DATE, TYPE_LOCAL_DATE_TIME, TYPE_LOCAL_TIME, TYPE_DATE) + ); + + /** + * 模糊查询 + */ + public static final String QUERY_LIKE = "LIKE"; + + /** + * 需要 + */ + public static final String REQUIRE = "1"; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java new file mode 100644 index 0000000..d60afee --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java @@ -0,0 +1,89 @@ +package com.ruoyi.common.constant; + +/** + * 返回状态码 + * + * @author ruoyi + */ +public class HttpStatus +{ + /** + * 操作成功 + */ + public static final int SUCCESS = 200; + + /** + * 对象创建成功 + */ + public static final int CREATED = 201; + + /** + * 请求已经被接受 + */ + public static final int ACCEPTED = 202; + + /** + * 操作已经执行成功,但是没有返回数据 + */ + public static final int NO_CONTENT = 204; + + /** + * 资源已被移除 + */ + public static final int MOVED_PERM = 301; + + /** + * 重定向 + */ + public static final int SEE_OTHER = 303; + + /** + * 资源没有被修改 + */ + public static final int NOT_MODIFIED = 304; + + /** + * 参数列表错误(缺少,格式不匹配) + */ + public static final int BAD_REQUEST = 400; + + /** + * 未授权 + */ + public static final int UNAUTHORIZED = 401; + + /** + * 访问受限,授权过期 + */ + public static final int FORBIDDEN = 403; + + /** + * 资源,服务未找到 + */ + public static final int NOT_FOUND = 404; + + /** + * 不允许的http方法 + */ + public static final int BAD_METHOD = 405; + + /** + * 资源冲突,或者资源被锁 + */ + public static final int CONFLICT = 409; + + /** + * 不支持的数据,媒体类型 + */ + public static final int UNSUPPORTED_TYPE = 415; + + /** + * 系统内部错误 + */ + public static final int ERROR = 500; + + /** + * 接口未实现 + */ + public static final int NOT_IMPLEMENTED = 501; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/ScheduleConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/ScheduleConstants.java new file mode 100644 index 0000000..62ad815 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/ScheduleConstants.java @@ -0,0 +1,50 @@ +package com.ruoyi.common.constant; + +/** + * 任务调度通用常量 + * + * @author ruoyi + */ +public class ScheduleConstants +{ + public static final String TASK_CLASS_NAME = "TASK_CLASS_NAME"; + + /** 执行目标key */ + public static final String TASK_PROPERTIES = "TASK_PROPERTIES"; + + /** 默认 */ + public static final String MISFIRE_DEFAULT = "0"; + + /** 立即触发执行 */ + public static final String MISFIRE_IGNORE_MISFIRES = "1"; + + /** 触发一次执行 */ + public static final String MISFIRE_FIRE_AND_PROCEED = "2"; + + /** 不触发立即执行 */ + public static final String MISFIRE_DO_NOTHING = "3"; + + public enum Status + { + /** + * 正常 + */ + NORMAL("0"), + /** + * 暂停 + */ + PAUSE("1"); + + private String value; + + private Status(String value) + { + this.value = value; + } + + public String getValue() + { + return value; + } + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java new file mode 100644 index 0000000..4ed6009 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java @@ -0,0 +1,78 @@ +package com.ruoyi.common.constant; + +/** + * 用户常量信息 + * + * @author ruoyi + */ +public class UserConstants +{ + /** + * 平台内系统用户的唯一标志 + */ + public static final String SYS_USER = "SYS_USER"; + + /** 正常状态 */ + public static final String NORMAL = "0"; + + /** 异常状态 */ + public static final String EXCEPTION = "1"; + + /** 用户封禁状态 */ + public static final String USER_DISABLE = "1"; + + /** 角色封禁状态 */ + public static final String ROLE_DISABLE = "1"; + + /** 部门正常状态 */ + public static final String DEPT_NORMAL = "0"; + + /** 部门停用状态 */ + public static final String DEPT_DISABLE = "1"; + + /** 字典正常状态 */ + public static final String DICT_NORMAL = "0"; + + /** 是否为系统默认(是) */ + public static final String YES = "Y"; + + /** 是否菜单外链(是) */ + public static final String YES_FRAME = "0"; + + /** 是否菜单外链(否) */ + public static final String NO_FRAME = "1"; + + /** 菜单类型(目录) */ + public static final String TYPE_DIR = "M"; + + /** 菜单类型(菜单) */ + public static final String TYPE_MENU = "C"; + + /** 菜单类型(按钮) */ + public static final String TYPE_BUTTON = "F"; + + /** Layout组件标识 */ + public final static String LAYOUT = "Layout"; + + /** ParentView组件标识 */ + public final static String PARENT_VIEW = "ParentView"; + + /** InnerLink组件标识 */ + public final static String INNER_LINK = "InnerLink"; + + /** 校验返回结果码 */ + public final static String UNIQUE = "0"; + public final static String NOT_UNIQUE = "1"; + + /** + * 用户名长度限制 + */ + public static final int USERNAME_MIN_LENGTH = 2; + public static final int USERNAME_MAX_LENGTH = 20; + + /** + * 密码长度限制 + */ + public static final int PASSWORD_MIN_LENGTH = 5; + public static final int PASSWORD_MAX_LENGTH = 20; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java new file mode 100644 index 0000000..0edae6c --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java @@ -0,0 +1,194 @@ +package com.ruoyi.common.core.controller; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.ruoyi.common.constant.HttpStatus; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.core.page.PageDomain; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.page.TableSupport; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.sql.SqlUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.annotation.InitBinder; + +import java.beans.PropertyEditorSupport; +import java.util.Date; +import java.util.List; + +/** + * web层通用数据处理 + * + * @author ruoyi + */ +public class BaseController +{ + protected final Logger logger = LoggerFactory.getLogger(this.getClass()); + + /** + * 将前台传递过来的日期格式的字符串,自动转化为Date类型 + */ + @InitBinder + public void initBinder(WebDataBinder binder) + { + // Date 类型转换 + binder.registerCustomEditor(Date.class, new PropertyEditorSupport() + { + @Override + public void setAsText(String text) + { + setValue(DateUtils.parseDate(text)); + } + }); + } + + /** + * 设置请求分页数据 + */ + protected void startPage() + { + PageDomain pageDomain = TableSupport.buildPageRequest(); + Integer pageNum = pageDomain.getPageNum(); + Integer pageSize = pageDomain.getPageSize(); + if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) + { + String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); + Boolean reasonable = pageDomain.getReasonable(); + PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable); + } + } + + /** + * 设置请求排序数据 + */ + protected void startOrderBy() + { + PageDomain pageDomain = TableSupport.buildPageRequest(); + if (StringUtils.isNotEmpty(pageDomain.getOrderBy())) + { + String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); + PageHelper.orderBy(orderBy); + } + } + + /** + * 响应请求分页数据 + */ + @SuppressWarnings({"rawtypes", "unchecked"}) + protected TableDataInfo getDataTable(List list) { + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(HttpStatus.SUCCESS); + rspData.setMsg("查询成功"); + rspData.setRows(list); + rspData.setTotal(new PageInfo(list).getTotal()); + return rspData; + } + + protected TableDataInfo getDataTable(Page page) { + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(HttpStatus.SUCCESS); + rspData.setMsg("查询成功"); + rspData.setRows(page.getContent()); + rspData.setTotal(page.getTotalElements()); + return rspData; + } + + /** + * 返回成功 + */ + public AjaxResult success() { + return AjaxResult.success(); + } + + /** + * 返回失败消息 + */ + public AjaxResult error() + { + return AjaxResult.error(); + } + + /** + * 返回成功消息 + */ + public AjaxResult success(String message) + { + return AjaxResult.success(message); + } + + /** + * 返回失败消息 + */ + public AjaxResult error(String message) + { + return AjaxResult.error(message); + } + + /** + * 响应返回结果 + * + * @param rows 影响行数 + * @return 操作结果 + */ + protected AjaxResult toAjax(int rows) + { + return rows > 0 ? AjaxResult.success() : AjaxResult.error(); + } + + /** + * 响应返回结果 + * + * @param result 结果 + * @return 操作结果 + */ + protected AjaxResult toAjax(boolean result) + { + return result ? success() : error(); + } + + /** + * 页面跳转 + */ + public String redirect(String url) + { + return StringUtils.format("redirect:{}", url); + } + + /** + * 获取用户缓存信息 + */ + public LoginUser getLoginUser() + { + return SecurityUtils.getLoginUser(); + } + + /** + * 获取登录用户id + */ + public Long getUserId() + { + return getLoginUser().getUserId(); + } + + /** + * 获取登录部门id + */ + public Long getDeptId() + { + return getLoginUser().getDeptId(); + } + + /** + * 获取登录用户名 + */ + public String getUsername() + { + return getLoginUser().getUsername(); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java new file mode 100644 index 0000000..49d2fde --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java @@ -0,0 +1,166 @@ +package com.ruoyi.common.core.domain; + +import java.util.HashMap; +import com.ruoyi.common.constant.HttpStatus; +import com.ruoyi.common.utils.StringUtils; + +/** + * 操作消息提醒 + * + * @author ruoyi + */ +public class AjaxResult extends HashMap +{ + private static final long serialVersionUID = 1L; + + /** 状态码 */ + public static final String CODE_TAG = "code"; + + /** 返回内容 */ + public static final String MSG_TAG = "msg"; + + /** 数据对象 */ + public static final String DATA_TAG = "data"; + + /** + * 初始化一个新创建的 AjaxResult 对象,使其表示一个空消息。 + */ + public AjaxResult() + { + } + + /** + * 初始化一个新创建的 AjaxResult 对象 + * + * @param code 状态码 + * @param msg 返回内容 + */ + public AjaxResult(int code, String msg) + { + super.put(CODE_TAG, code); + super.put(MSG_TAG, msg); + } + + /** + * 初始化一个新创建的 AjaxResult 对象 + * + * @param code 状态码 + * @param msg 返回内容 + * @param data 数据对象 + */ + public AjaxResult(int code, String msg, Object data) + { + super.put(CODE_TAG, code); + super.put(MSG_TAG, msg); + if (StringUtils.isNotNull(data)) + { + super.put(DATA_TAG, data); + } + } + + /** + * 返回成功消息 + * + * @return 成功消息 + */ + public static AjaxResult success() + { + return AjaxResult.success("操作成功"); + } + + /** + * 返回成功数据 + * + * @return 成功消息 + */ + public static AjaxResult success(Object data) + { + return AjaxResult.success("操作成功", data); + } + public static AjaxResult successData(Object data) + { + return AjaxResult.success("操作成功", data); + } + + /** + * 返回成功消息 + * + * @param msg 返回内容 + * @return 成功消息 + */ + public static AjaxResult success(String msg) + { + return AjaxResult.success(msg, null); + } + + /** + * 返回成功消息 + * + * @param msg 返回内容 + * @param data 数据对象 + * @return 成功消息 + */ + public static AjaxResult success(String msg, Object data) + { + return new AjaxResult(HttpStatus.SUCCESS, msg, data); + } + + /** + * 返回错误消息 + * + * @return + */ + public static AjaxResult error() + { + return AjaxResult.error("操作失败"); + } + + /** + * 返回错误消息 + * + * @param msg 返回内容 + * @return 警告消息 + */ + public static AjaxResult error(String msg) + { + return AjaxResult.error(msg, null); + } + + /** + * 返回错误消息 + * + * @param msg 返回内容 + * @param data 数据对象 + * @return 警告消息 + */ + public static AjaxResult error(String msg, Object data) + { + return new AjaxResult(HttpStatus.ERROR, msg, data); + } + + /** + * 返回错误消息 + * + * @param code 状态码 + * @param msg 返回内容 + * @return 警告消息 + */ + public static AjaxResult error(int code, String msg) + { + return new AjaxResult(code, msg, null); + } + + /** + * 方便链式调用 + * + * @param key 键 + * @param value 值 + * @return 数据对象 + */ + @Override + public AjaxResult put(String key, Object value) + { + super.put(key, value); + return this; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseAudit.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseAudit.java new file mode 100644 index 0000000..8c9ec29 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseAudit.java @@ -0,0 +1,31 @@ +package com.ruoyi.common.core.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class BaseAudit { + /** + * 创建者 + */ + private Long createBy; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + /** + * 更新者 + */ + private Long updateBy; + + /** + * 更新时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java new file mode 100644 index 0000000..683ceb6 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java @@ -0,0 +1,62 @@ +package com.ruoyi.common.core.domain; + +import com.baomidou.mybatisplus.annotation.TableField; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; + +/** + * Entity基类 + * + * @author ruoyi + */ +public abstract class BaseEntity extends BaseAudit implements Serializable, IQuery { + private static final long serialVersionUID = 1L; + + /** + * 搜索值 + */ + @TableField(exist = false) + private String searchValue; + + /** + * 备注 + */ + private String remark; + + /** + * 请求参数 + */ + @TableField(exist = false) + private Map params; + + @Override + public String getSearchValue() { + return searchValue; + } + + public void setSearchValue(String searchValue) { + this.searchValue = searchValue; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + @Override + public Map getParams() { + if (params == null) { + params = new HashMap<>(); + } + return params; + } + + public void setParams(Map params) { + this.params = params; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/IQuery.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/IQuery.java new file mode 100644 index 0000000..6ed29f0 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/IQuery.java @@ -0,0 +1,15 @@ +package com.ruoyi.common.core.domain; + +import java.util.Map; + +public interface IQuery { + /** + * @return 搜索值 + */ + String getSearchValue(); + + /** + * @return 所有参数 + */ + Map getParams(); +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java new file mode 100644 index 0000000..a180a18 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java @@ -0,0 +1,79 @@ +package com.ruoyi.common.core.domain; + +import java.util.ArrayList; +import java.util.List; + +/** + * Tree基类 + * + * @author ruoyi + */ +public class TreeEntity extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 父菜单名称 */ + private String parentName; + + /** 父菜单ID */ + private Long parentId; + + /** 显示顺序 */ + private Integer orderNum; + + /** 祖级列表 */ + private String ancestors; + + /** 子部门 */ + private List children = new ArrayList<>(); + + public String getParentName() + { + return parentName; + } + + public void setParentName(String parentName) + { + this.parentName = parentName; + } + + public Long getParentId() + { + return parentId; + } + + public void setParentId(Long parentId) + { + this.parentId = parentId; + } + + public Integer getOrderNum() + { + return orderNum; + } + + public void setOrderNum(Integer orderNum) + { + this.orderNum = orderNum; + } + + public String getAncestors() + { + return ancestors; + } + + public void setAncestors(String ancestors) + { + this.ancestors = ancestors; + } + + public List getChildren() + { + return children; + } + + public void setChildren(List children) + { + this.children = children; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java new file mode 100644 index 0000000..bd835db --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java @@ -0,0 +1,77 @@ +package com.ruoyi.common.core.domain; + +import java.io.Serializable; +import java.util.List; +import java.util.stream.Collectors; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.common.core.domain.entity.SysMenu; + +/** + * Treeselect树结构实体类 + * + * @author ruoyi + */ +public class TreeSelect implements Serializable +{ + private static final long serialVersionUID = 1L; + + /** 节点ID */ + private Long id; + + /** 节点名称 */ + private String label; + + /** 子节点 */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private List children; + + public TreeSelect() + { + + } + + public TreeSelect(SysDept dept) + { + this.id = dept.getDeptId(); + this.label = dept.getDeptName(); + this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + public TreeSelect(SysMenu menu) + { + this.id = menu.getMenuId(); + this.label = menu.getMenuName(); + this.children = menu.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + public Long getId() + { + return id; + } + + public void setId(Long id) + { + this.id = id; + } + + public String getLabel() + { + return label; + } + + public void setLabel(String label) + { + this.label = label; + } + + public List getChildren() + { + return children; + } + + public void setChildren(List children) + { + this.children = children; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java new file mode 100644 index 0000000..c9238e2 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java @@ -0,0 +1,202 @@ +package com.ruoyi.common.core.domain.entity; + +import java.util.ArrayList; +import java.util.List; +import javax.validation.constraints.Email; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 部门表 sys_dept + * + * @author ruoyi + */ +public class SysDept extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 部门ID */ + private Long deptId; + + /** 父部门ID */ + private Long parentId; + + /** 祖级列表 */ + private String ancestors; + + /** 部门名称 */ + private String deptName; + + /** 显示顺序 */ + private String orderNum; + + /** 负责人 */ + private String leader; + + /** 联系电话 */ + private String phone; + + /** 邮箱 */ + private String email; + + /** 部门状态:0正常,1停用 */ + private String status; + + /** 删除标志(0代表存在 2代表删除) */ + private String delFlag; + + /** 父部门名称 */ + private String parentName; + + /** 子部门 */ + private List children = new ArrayList(); + + public Long getDeptId() + { + return deptId; + } + + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getParentId() + { + return parentId; + } + + public void setParentId(Long parentId) + { + this.parentId = parentId; + } + + public String getAncestors() + { + return ancestors; + } + + public void setAncestors(String ancestors) + { + this.ancestors = ancestors; + } + + @NotBlank(message = "部门名称不能为空") + @Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符") + public String getDeptName() + { + return deptName; + } + + public void setDeptName(String deptName) + { + this.deptName = deptName; + } + + @NotBlank(message = "显示顺序不能为空") + public String getOrderNum() + { + return orderNum; + } + + public void setOrderNum(String orderNum) + { + this.orderNum = orderNum; + } + + public String getLeader() + { + return leader; + } + + public void setLeader(String leader) + { + this.leader = leader; + } + + @Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符") + public String getPhone() + { + return phone; + } + + public void setPhone(String phone) + { + this.phone = phone; + } + + @Email(message = "邮箱格式不正确") + @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符") + public String getEmail() + { + return email; + } + + public void setEmail(String email) + { + this.email = email; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getDelFlag() + { + return delFlag; + } + + public void setDelFlag(String delFlag) + { + this.delFlag = delFlag; + } + + public String getParentName() + { + return parentName; + } + + public void setParentName(String parentName) + { + this.parentName = parentName; + } + + public List getChildren() + { + return children; + } + + public void setChildren(List children) + { + this.children = children; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("deptId", getDeptId()) + .append("parentId", getParentId()) + .append("ancestors", getAncestors()) + .append("deptName", getDeptName()) + .append("orderNum", getOrderNum()) + .append("leader", getLeader()) + .append("phone", getPhone()) + .append("email", getEmail()) + .append("status", getStatus()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java new file mode 100644 index 0000000..3f152b3 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java @@ -0,0 +1,176 @@ +package com.ruoyi.common.core.domain.entity; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.annotation.Excel.ColumnType; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 字典数据表 sys_dict_data + * + * @author ruoyi + */ +public class SysDictData extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 字典编码 */ + @Excel(name = "字典编码", cellType = ColumnType.NUMERIC) + private Long dictCode; + + /** 字典排序 */ + @Excel(name = "字典排序", cellType = ColumnType.NUMERIC) + private Long dictSort; + + /** 字典标签 */ + @Excel(name = "字典标签") + private String dictLabel; + + /** 字典键值 */ + @Excel(name = "字典键值") + private String dictValue; + + /** 字典类型 */ + @Excel(name = "字典类型") + private String dictType; + + /** 样式属性(其他样式扩展) */ + private String cssClass; + + /** 表格字典样式 */ + private String listClass; + + /** 是否默认(Y是 N否) */ + @Excel(name = "是否默认", readConverterExp = "Y=是,N=否") + private String isDefault; + + /** 状态(0正常 1停用) */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + public Long getDictCode() + { + return dictCode; + } + + public void setDictCode(Long dictCode) + { + this.dictCode = dictCode; + } + + public Long getDictSort() + { + return dictSort; + } + + public void setDictSort(Long dictSort) + { + this.dictSort = dictSort; + } + + @NotBlank(message = "字典标签不能为空") + @Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符") + public String getDictLabel() + { + return dictLabel; + } + + public void setDictLabel(String dictLabel) + { + this.dictLabel = dictLabel; + } + + @NotBlank(message = "字典键值不能为空") + @Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符") + public String getDictValue() + { + return dictValue; + } + + public void setDictValue(String dictValue) + { + this.dictValue = dictValue; + } + + @NotBlank(message = "字典类型不能为空") + @Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符") + public String getDictType() + { + return dictType; + } + + public void setDictType(String dictType) + { + this.dictType = dictType; + } + + @Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符") + public String getCssClass() + { + return cssClass; + } + + public void setCssClass(String cssClass) + { + this.cssClass = cssClass; + } + + public String getListClass() + { + return listClass; + } + + public void setListClass(String listClass) + { + this.listClass = listClass; + } + + public boolean getDefault() + { + return UserConstants.YES.equals(this.isDefault) ? true : false; + } + + public String getIsDefault() + { + return isDefault; + } + + public void setIsDefault(String isDefault) + { + this.isDefault = isDefault; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("dictCode", getDictCode()) + .append("dictSort", getDictSort()) + .append("dictLabel", getDictLabel()) + .append("dictValue", getDictValue()) + .append("dictType", getDictType()) + .append("cssClass", getCssClass()) + .append("listClass", getListClass()) + .append("isDefault", getIsDefault()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java new file mode 100644 index 0000000..d2c4249 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java @@ -0,0 +1,94 @@ +package com.ruoyi.common.core.domain.entity; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.annotation.Excel.ColumnType; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 字典类型表 sys_dict_type + * + * @author ruoyi + */ +public class SysDictType extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 字典主键 */ + @Excel(name = "字典主键", cellType = ColumnType.NUMERIC) + private Long dictId; + + /** 字典名称 */ + @Excel(name = "字典名称") + private String dictName; + + /** 字典类型 */ + @Excel(name = "字典类型") + private String dictType; + + /** 状态(0正常 1停用) */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + public Long getDictId() + { + return dictId; + } + + public void setDictId(Long dictId) + { + this.dictId = dictId; + } + + @NotBlank(message = "字典名称不能为空") + @Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符") + public String getDictName() + { + return dictName; + } + + public void setDictName(String dictName) + { + this.dictName = dictName; + } + + @NotBlank(message = "字典类型不能为空") + @Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符") + public String getDictType() + { + return dictType; + } + + public void setDictType(String dictType) + { + this.dictType = dictType; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("dictId", getDictId()) + .append("dictName", getDictName()) + .append("dictType", getDictType()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java new file mode 100644 index 0000000..5e79fc9 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java @@ -0,0 +1,258 @@ +package com.ruoyi.common.core.domain.entity; + +import java.util.ArrayList; +import java.util.List; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 菜单权限表 sys_menu + * + * @author ruoyi + */ +public class SysMenu extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 菜单ID */ + private Long menuId; + + /** 菜单名称 */ + private String menuName; + + /** 父菜单名称 */ + private String parentName; + + /** 父菜单ID */ + private Long parentId; + + /** 显示顺序 */ + private String orderNum; + + /** 路由地址 */ + private String path; + + /** 组件路径 */ + private String component; + + /** 路由参数 */ + private String query; + + /** 是否为外链(0是 1否) */ + private String isFrame; + + /** 是否缓存(0缓存 1不缓存) */ + private String isCache; + + /** 类型(M目录 C菜单 F按钮) */ + private String menuType; + + /** 显示状态(0显示 1隐藏) */ + private String visible; + + /** 菜单状态(0显示 1隐藏) */ + private String status; + + /** 权限字符串 */ + private String perms; + + /** 菜单图标 */ + private String icon; + + /** 子菜单 */ + private List children = new ArrayList(); + + public Long getMenuId() + { + return menuId; + } + + public void setMenuId(Long menuId) + { + this.menuId = menuId; + } + + @NotBlank(message = "菜单名称不能为空") + @Size(min = 0, max = 50, message = "菜单名称长度不能超过50个字符") + public String getMenuName() + { + return menuName; + } + + public void setMenuName(String menuName) + { + this.menuName = menuName; + } + + public String getParentName() + { + return parentName; + } + + public void setParentName(String parentName) + { + this.parentName = parentName; + } + + public Long getParentId() + { + return parentId; + } + + public void setParentId(Long parentId) + { + this.parentId = parentId; + } + + @NotBlank(message = "显示顺序不能为空") + public String getOrderNum() + { + return orderNum; + } + + public void setOrderNum(String orderNum) + { + this.orderNum = orderNum; + } + + @Size(min = 0, max = 200, message = "路由地址不能超过200个字符") + public String getPath() + { + return path; + } + + public void setPath(String path) + { + this.path = path; + } + + @Size(min = 0, max = 200, message = "组件路径不能超过255个字符") + public String getComponent() + { + return component; + } + + public void setComponent(String component) + { + this.component = component; + } + + public String getQuery() + { + return query; + } + + public void setQuery(String query) + { + this.query = query; + } + + public String getIsFrame() + { + return isFrame; + } + + public void setIsFrame(String isFrame) + { + this.isFrame = isFrame; + } + + public String getIsCache() + { + return isCache; + } + + public void setIsCache(String isCache) + { + this.isCache = isCache; + } + + @NotBlank(message = "菜单类型不能为空") + public String getMenuType() + { + return menuType; + } + + public void setMenuType(String menuType) + { + this.menuType = menuType; + } + + public String getVisible() + { + return visible; + } + + public void setVisible(String visible) + { + this.visible = visible; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } + + @Size(min = 0, max = 100, message = "权限标识长度不能超过100个字符") + public String getPerms() + { + return perms; + } + + public void setPerms(String perms) + { + this.perms = perms; + } + + public String getIcon() + { + return icon; + } + + public void setIcon(String icon) + { + this.icon = icon; + } + + public List getChildren() + { + return children; + } + + public void setChildren(List children) + { + this.children = children; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("menuId", getMenuId()) + .append("menuName", getMenuName()) + .append("parentId", getParentId()) + .append("orderNum", getOrderNum()) + .append("path", getPath()) + .append("component", getComponent()) + .append("isFrame", getIsFrame()) + .append("IsCache", getIsCache()) + .append("menuType", getMenuType()) + .append("visible", getVisible()) + .append("status ", getStatus()) + .append("perms", getPerms()) + .append("icon", getIcon()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java new file mode 100644 index 0000000..36629eb --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java @@ -0,0 +1,226 @@ +package com.ruoyi.common.core.domain.entity; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.annotation.Excel.ColumnType; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 角色表 sys_role + * + * @author ruoyi + */ +public class SysRole extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 角色ID */ + @Excel(name = "角色序号", cellType = ColumnType.NUMERIC) + private Long roleId; + + /** 角色名称 */ + @Excel(name = "角色名称") + private String roleName; + + /** 角色权限 */ + @Excel(name = "角色权限") + private String roleKey; + + /** 角色排序 */ + @Excel(name = "角色排序") + private String roleSort; + + /** 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) */ + @Excel(name = "数据范围", readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限") + private String dataScope; + + /** 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示) */ + private boolean menuCheckStrictly; + + /** 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 ) */ + private boolean deptCheckStrictly; + + /** 角色状态(0正常 1停用) */ + @Excel(name = "角色状态", readConverterExp = "0=正常,1=停用") + private String status; + + /** 删除标志(0代表存在 2代表删除) */ + private String delFlag; + + /** 用户是否存在此角色标识 默认不存在 */ + private boolean flag = false; + + /** 菜单组 */ + private Long[] menuIds; + + /** 部门组(数据权限) */ + private Long[] deptIds; + + public SysRole() + { + + } + + public SysRole(Long roleId) + { + this.roleId = roleId; + } + + public Long getRoleId() + { + return roleId; + } + + public void setRoleId(Long roleId) + { + this.roleId = roleId; + } + + public boolean isAdmin() + { + return isAdmin(this.roleId); + } + + public static boolean isAdmin(Long roleId) + { + return roleId != null && 1L == roleId; + } + + @NotBlank(message = "角色名称不能为空") + @Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符") + public String getRoleName() + { + return roleName; + } + + public void setRoleName(String roleName) + { + this.roleName = roleName; + } + + @NotBlank(message = "权限字符不能为空") + @Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符") + public String getRoleKey() + { + return roleKey; + } + + public void setRoleKey(String roleKey) + { + this.roleKey = roleKey; + } + + @NotBlank(message = "显示顺序不能为空") + public String getRoleSort() + { + return roleSort; + } + + public void setRoleSort(String roleSort) + { + this.roleSort = roleSort; + } + + public String getDataScope() + { + return dataScope; + } + + public void setDataScope(String dataScope) + { + this.dataScope = dataScope; + } + + public boolean isMenuCheckStrictly() + { + return menuCheckStrictly; + } + + public void setMenuCheckStrictly(boolean menuCheckStrictly) + { + this.menuCheckStrictly = menuCheckStrictly; + } + + public boolean isDeptCheckStrictly() + { + return deptCheckStrictly; + } + + public void setDeptCheckStrictly(boolean deptCheckStrictly) + { + this.deptCheckStrictly = deptCheckStrictly; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getDelFlag() + { + return delFlag; + } + + public void setDelFlag(String delFlag) + { + this.delFlag = delFlag; + } + + public boolean isFlag() + { + return flag; + } + + public void setFlag(boolean flag) + { + this.flag = flag; + } + + public Long[] getMenuIds() + { + return menuIds; + } + + public void setMenuIds(Long[] menuIds) + { + this.menuIds = menuIds; + } + + public Long[] getDeptIds() + { + return deptIds; + } + + public void setDeptIds(Long[] deptIds) + { + this.deptIds = deptIds; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("roleId", getRoleId()) + .append("roleName", getRoleName()) + .append("roleKey", getRoleKey()) + .append("roleSort", getRoleSort()) + .append("dataScope", getDataScope()) + .append("menuCheckStrictly", isMenuCheckStrictly()) + .append("deptCheckStrictly", isDeptCheckStrictly()) + .append("status", getStatus()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java new file mode 100644 index 0000000..f6968c0 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java @@ -0,0 +1,341 @@ +package com.ruoyi.common.core.domain.entity; + +import java.util.Date; +import java.util.List; +import javax.validation.constraints.Email; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.annotation.Excel.ColumnType; +import com.ruoyi.common.annotation.Excel.Type; +import com.ruoyi.common.annotation.Excels; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 用户对象 sys_user + * + * @author ruoyi + */ +public class SysUser extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 用户ID */ + @Excel(name = "用户序号", cellType = ColumnType.NUMERIC, prompt = "用户编号") + private Long userId; + + /** 部门ID */ + @Excel(name = "部门编号", type = Type.IMPORT) + private Long deptId; + + /** 用户账号 */ + @Excel(name = "登录名称") + private String userName; + + /** 用户昵称 */ + @Excel(name = "用户名称") + private String nickName; + + /** 用户邮箱 */ + @Excel(name = "用户邮箱") + private String email; + + /** 手机号码 */ + @Excel(name = "手机号码") + private String phonenumber; + + /** 用户性别 */ + @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知") + private String sex; + + /** 用户头像 */ + private String avatar; + + /** 密码 */ + private String password; + + /** 盐加密 */ + private String salt; + + /** 帐号状态(0正常 1停用) */ + @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用") + private String status; + + /** 删除标志(0代表存在 2代表删除) */ + private String delFlag; + + /** 最后登录IP */ + @Excel(name = "最后登录IP", type = Type.EXPORT) + private String loginIp; + + /** 最后登录时间 */ + @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT) + private Date loginDate; + + /** 部门对象 */ + @Excels({ + @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT), + @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT) + }) + private SysDept dept; + + /** 角色对象 */ + private List roles; + + /** 角色组 */ + private Long[] roleIds; + + /** 岗位组 */ + private Long[] postIds; + + /** 角色ID */ + private Long roleId; + + public SysUser() + { + + } + + public SysUser(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + public void setUserId(Long userId) + { + this.userId = userId; + } + + public boolean isAdmin() + { + return isAdmin(this.userId); + } + + public static boolean isAdmin(Long userId) + { + return userId != null && 1L == userId; + } + + public Long getDeptId() + { + return deptId; + } + + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符") + public String getNickName() + { + return nickName; + } + + public void setNickName(String nickName) + { + this.nickName = nickName; + } + + @NotBlank(message = "用户账号不能为空") + @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符") + public String getUserName() + { + return userName; + } + + public void setUserName(String userName) + { + this.userName = userName; + } + + @Email(message = "邮箱格式不正确") + @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符") + public String getEmail() + { + return email; + } + + public void setEmail(String email) + { + this.email = email; + } + + @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符") + public String getPhonenumber() + { + return phonenumber; + } + + public void setPhonenumber(String phonenumber) + { + this.phonenumber = phonenumber; + } + + public String getSex() + { + return sex; + } + + public void setSex(String sex) + { + this.sex = sex; + } + + public String getAvatar() + { + return avatar; + } + + public void setAvatar(String avatar) + { + this.avatar = avatar; + } + + @JsonIgnore + @JsonProperty + public String getPassword() + { + return password; + } + + public void setPassword(String password) + { + this.password = password; + } + + public String getSalt() + { + return salt; + } + + public void setSalt(String salt) + { + this.salt = salt; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getDelFlag() + { + return delFlag; + } + + public void setDelFlag(String delFlag) + { + this.delFlag = delFlag; + } + + public String getLoginIp() + { + return loginIp; + } + + public void setLoginIp(String loginIp) + { + this.loginIp = loginIp; + } + + public Date getLoginDate() + { + return loginDate; + } + + public void setLoginDate(Date loginDate) + { + this.loginDate = loginDate; + } + + public SysDept getDept() + { + return dept; + } + + public void setDept(SysDept dept) + { + this.dept = dept; + } + + public List getRoles() + { + return roles; + } + + public void setRoles(List roles) + { + this.roles = roles; + } + + public Long[] getRoleIds() + { + return roleIds; + } + + public void setRoleIds(Long[] roleIds) + { + this.roleIds = roleIds; + } + + public Long[] getPostIds() + { + return postIds; + } + + public void setPostIds(Long[] postIds) + { + this.postIds = postIds; + } + + public Long getRoleId() + { + return roleId; + } + + public void setRoleId(Long roleId) + { + this.roleId = roleId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("userId", getUserId()) + .append("deptId", getDeptId()) + .append("userName", getUserName()) + .append("nickName", getNickName()) + .append("email", getEmail()) + .append("phonenumber", getPhonenumber()) + .append("sex", getSex()) + .append("avatar", getAvatar()) + .append("password", getPassword()) + .append("salt", getSalt()) + .append("status", getStatus()) + .append("delFlag", getDelFlag()) + .append("loginIp", getLoginIp()) + .append("loginDate", getLoginDate()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .append("dept", getDept()) + .toString(); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/ExtraUserBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/ExtraUserBody.java new file mode 100644 index 0000000..8c46102 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/ExtraUserBody.java @@ -0,0 +1,14 @@ +package com.ruoyi.common.core.domain.model; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class ExtraUserBody { + private String login; + private String nickname; + private Integer sex; + private String avatar; + private String phone; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java new file mode 100644 index 0000000..586d132 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java @@ -0,0 +1,32 @@ +package com.ruoyi.common.core.domain.model; + +import lombok.Data; + +/** + * 用户登录对象 + * + * @author ruoyi + */ +@Data +public class LoginBody +{ + /** + * 用户名 + */ + private String username; + + /** + * 用户密码 + */ + private String password; + + /** + * 验证码 + */ + private String code; + + /** + * 唯一标识 + */ + private String uuid = ""; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginMember.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginMember.java new file mode 100644 index 0000000..5c5ec35 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginMember.java @@ -0,0 +1,18 @@ +package com.ruoyi.common.core.domain.model; + +import lombok.Data; + +@Data +public class LoginMember { + + private Long memberId; + private String token; + private Long loginTime; + private Long expireTime; + + /** + * 登录类型(1伴宠师端 其它为客户端) + */ + private Integer sourceType; + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java new file mode 100644 index 0000000..db4d2a5 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java @@ -0,0 +1,266 @@ +package com.ruoyi.common.core.domain.model; + +import java.util.Collection; +import java.util.Set; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; +import com.alibaba.fastjson.annotation.JSONField; +import com.ruoyi.common.core.domain.entity.SysUser; + +/** + * 登录用户身份权限 + * + * @author ruoyi + */ +public class LoginUser implements UserDetails +{ + private static final long serialVersionUID = 1L; + + /** + * 用户ID + */ + private Long userId; + + /** + * 部门ID + */ + private Long deptId; + + /** + * 用户唯一标识 + */ + private String token; + + /** + * 登录时间 + */ + private Long loginTime; + + /** + * 过期时间 + */ + private Long expireTime; + + /** + * 登录IP地址 + */ + private String ipaddr; + + /** + * 登录地点 + */ + private String loginLocation; + + /** + * 浏览器类型 + */ + private String browser; + + /** + * 操作系统 + */ + private String os; + + /** + * 权限列表 + */ + private Set permissions; + + /** + * 用户信息 + */ + private SysUser user; + + public Long getUserId() + { + return userId; + } + + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getDeptId() + { + return deptId; + } + + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public String getToken() + { + return token; + } + + public void setToken(String token) + { + this.token = token; + } + + public LoginUser() + { + } + + public LoginUser(SysUser user, Set permissions) + { + this.user = user; + this.permissions = permissions; + } + + public LoginUser(Long userId, Long deptId, SysUser user, Set permissions) + { + this.userId = userId; + this.deptId = deptId; + this.user = user; + this.permissions = permissions; + } + + @JSONField(serialize = false) + @Override + public String getPassword() + { + return user.getPassword(); + } + + @Override + public String getUsername() + { + return user.getUserName(); + } + + /** + * 账户是否未过期,过期无法验证 + */ + @JSONField(serialize = false) + @Override + public boolean isAccountNonExpired() + { + return true; + } + + /** + * 指定用户是否解锁,锁定的用户无法进行身份验证 + * + * @return + */ + @JSONField(serialize = false) + @Override + public boolean isAccountNonLocked() + { + return true; + } + + /** + * 指示是否已过期的用户的凭据(密码),过期的凭据防止认证 + * + * @return + */ + @JSONField(serialize = false) + @Override + public boolean isCredentialsNonExpired() + { + return true; + } + + /** + * 是否可用 ,禁用的用户不能身份验证 + * + * @return + */ + @JSONField(serialize = false) + @Override + public boolean isEnabled() + { + return true; + } + + public Long getLoginTime() + { + return loginTime; + } + + public void setLoginTime(Long loginTime) + { + this.loginTime = loginTime; + } + + public String getIpaddr() + { + return ipaddr; + } + + public void setIpaddr(String ipaddr) + { + this.ipaddr = ipaddr; + } + + public String getLoginLocation() + { + return loginLocation; + } + + public void setLoginLocation(String loginLocation) + { + this.loginLocation = loginLocation; + } + + public String getBrowser() + { + return browser; + } + + public void setBrowser(String browser) + { + this.browser = browser; + } + + public String getOs() + { + return os; + } + + public void setOs(String os) + { + this.os = os; + } + + public Long getExpireTime() + { + return expireTime; + } + + public void setExpireTime(Long expireTime) + { + this.expireTime = expireTime; + } + + public Set getPermissions() + { + return permissions; + } + + public void setPermissions(Set permissions) + { + this.permissions = permissions; + } + + public SysUser getUser() + { + return user; + } + + public void setUser(SysUser user) + { + this.user = user; + } + + @Override + public Collection getAuthorities() + { + return null; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/PhoneLoginBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/PhoneLoginBody.java new file mode 100644 index 0000000..7cbfe46 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/PhoneLoginBody.java @@ -0,0 +1,12 @@ +package com.ruoyi.common.core.domain.model; + +import lombok.Data; + + + +@Data +public class PhoneLoginBody { + private String phone; + private String code; + private String uuid; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java new file mode 100644 index 0000000..96ccec8 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java @@ -0,0 +1,10 @@ +package com.ruoyi.common.core.domain.model; + +/** + * 用户注册对象 + * + * @author ruoyi + */ +public class RegisterBody extends LoginBody { + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsResult.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsResult.java new file mode 100644 index 0000000..a273374 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsResult.java @@ -0,0 +1,35 @@ +package com.ruoyi.common.core.domain.model; + +import lombok.Builder; +import lombok.Data; + +/** + * 上传返回体 + * + * @author Lion Li + */ +@Data +@Builder +public class SmsResult { + + /** + * 是否成功 + */ + private boolean isSuccess; + + /** + * 响应消息 + */ + private String message; + + /** + * 实际响应体 + *

+ * 可自行转换为 SDK 对应的 SendSmsResponse + */ + private String response; + /** + * uuid + */ + private String uuid; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatis/BaseAuditInterceptor.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatis/BaseAuditInterceptor.java new file mode 100644 index 0000000..fef5855 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatis/BaseAuditInterceptor.java @@ -0,0 +1,164 @@ +package com.ruoyi.common.core.mybatis; + +import cn.hutool.core.util.StrUtil; +import com.ruoyi.common.core.domain.BaseAudit; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.SecurityUtils; +import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.executor.Executor; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.mapping.SqlCommandType; +import org.apache.ibatis.plugin.Interceptor; +import org.apache.ibatis.plugin.Intercepts; +import org.apache.ibatis.plugin.Invocation; +import org.apache.ibatis.plugin.Signature; +import org.springframework.stereotype.Component; + +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +//@Component +@Slf4j +//@Intercepts(@Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class})) +public class BaseAuditInterceptor implements Interceptor { + private Map clazz2Id = new ConcurrentHashMap<>(); + private Method noMethod = BaseAuditInterceptor.class.getMethods()[0]; + @Override + public Object intercept(Invocation invocation) throws IllegalAccessException, InvocationTargetException { + if(this.getUserId()!=null){ + fillField(invocation); + } + return invocation.proceed(); + } + + private void fillField(Invocation invocation) { + Object[] args = invocation.getArgs(); + if (args.length < 2) { + return; + } + // 参数1 执行语句 + MappedStatement ms = (MappedStatement) args[0]; + SqlCommandType sqlCommandType = ms.getSqlCommandType(); + // 如果是“增加”或“更新”操作,则继续进行默认操作信息赋值。否则,则退出 + if (sqlCommandType != SqlCommandType.INSERT && sqlCommandType != SqlCommandType.UPDATE) { + return; + } + + // 参数2 参数 + Object parameter = args[1]; + // 插入或更新参数可能是 list 或 实体 + if (parameter instanceof List) { + List real = (List) parameter; + if (!(real.get(0) instanceof BaseAudit)) { + return; + } + dealList(real); + } else if (!(parameter instanceof BaseAudit)) { + return; + } + dealItem((BaseAudit) parameter); + } + + private void dealItem(BaseAudit parameter) { + Class c = parameter.getClass(); + Method idMethod; + try { + if (!clazz2Id.containsKey(c)) { + try { + idMethod = getIdMethod(c); + clazz2Id.put(c, idMethod); + } catch (Exception e) { + clazz2Id.put(c, noMethod); + return; + } + } else if (clazz2Id.get(c) == noMethod) { + log.error("没有 id 的方法,请添加 @MybatisId注解,或者增加 id 属性"); + return; + } else { + idMethod = clazz2Id.get(c); + } + + Object id = idMethod.invoke(parameter); + LocalDateTime time = LocalDateTime.now(); + if (id == null) { + if (parameter.getCreateTime() == null) { + parameter.setCreateTime(time); + } + if (parameter.getCreateBy() == null) { + parameter.setCreateBy(getUserId()); + } + } else { + if (parameter.getUpdateBy() == null) { + parameter.setUpdateBy(getUserId()); + } + if (parameter.getUpdateTime() == null) { + parameter.setUpdateTime(time); + } + } + } catch (Exception e) { + log.error("处理 审计参数失败 {}", parameter, e); + } + } + + private Long getUserId() { + try { + return SecurityUtils.getLoginUser().getUserId(); + } catch (ServiceException e) { + log.debug("获取当前线程 userId 失败!", e); + return -1L; + } + } + + /** + * 获取某个类的 id 字段的 get 方法 + * + * @param c 类 + * @return id get 方法 + */ + private Method getIdMethod(Class c) throws NoSuchMethodException, NoSuchFieldException { + // 有 @Id 注解 + Field[] fields = c.getDeclaredFields(); + for (Field field : fields) { + if (field.getAnnotation(MybatisId.class) != null) { + try { + String camel = StrUtil.upperFirst(StrUtil.toCamelCase(field.getName())); + return c.getMethod("get" + camel); + } catch (NoSuchMethodException e) { + log.error("@MybatisId 注解的属性 {},必须有 对应的get 方法", field.getName()); + throw e; + } + } + } + Method[] methods = c.getMethods(); + for (Method method : methods) { + if (method.getAnnotation(MybatisId.class) != null) { + if (method.getParameterCount() > 0) { + log.error("@MybatisId 注解的方法 {} 必须无参数!", method.getName()); + throw new RuntimeException("@MybatisId 注解的方法必须无参数: " + method.getName()); + } + return method; + } + } + // 有 id 字段 + Field idFiled = c.getDeclaredField("id"); + if (idFiled != null) { + try { + return c.getMethod("getId"); + } catch (NoSuchMethodException e) { + log.error("@MybatisId 注解的属性 {},必须有 对应的get 方法", idFiled.getName()); + throw e; + } + } + // 抛出异常 + throw new RuntimeException("无 id 方法"); + } + + private void dealList(List real) { + real.forEach(this::dealItem); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatis/MybatisAutoSetUserAuditInfoInterceptor.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatis/MybatisAutoSetUserAuditInfoInterceptor.java new file mode 100644 index 0000000..e9b2968 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatis/MybatisAutoSetUserAuditInfoInterceptor.java @@ -0,0 +1,106 @@ +package com.ruoyi.common.core.mybatis; + +import com.ruoyi.common.core.domain.BaseAudit; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.SecurityUtils; +import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.executor.Executor; +import org.apache.ibatis.mapping.*; +import org.apache.ibatis.plugin.*; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; +import java.util.*; + +@Component +@Slf4j +@Intercepts(value = {@Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class})}) +public class MybatisAutoSetUserAuditInfoInterceptor implements Interceptor { + + private static final Integer INDEX_ZERO = 0; + private static final Integer INDEX_ONE = 1; + + @Override + public Object intercept(Invocation invocation) throws Throwable { + autoSetUserAuditInfo(invocation); + return invocation.proceed(); + } + + private void autoSetUserAuditInfo(Invocation invocation){ + Object[] queryArgs = invocation.getArgs(); + MappedStatement mappedStatement = (MappedStatement) queryArgs[INDEX_ZERO]; + if(!mappedStatement.getId().contains("com.cyl")){ + return; + } + Long userId = this.getUserId(); + if (userId == null) { + return; + } + SqlCommandType sqlCommandType = mappedStatement.getSqlCommandType(); + // 如果是“增加”或“更新”操作,则继续进行默认操作信息赋值。否则,则退出 + if (sqlCommandType != SqlCommandType.INSERT && sqlCommandType != SqlCommandType.UPDATE) { + return; + } + Object object = queryArgs[INDEX_ONE]; + if (object instanceof List) { + List objectList = (List) object; + if (!(objectList.get(0) instanceof BaseAudit)) { + return; + } + dealList(objectList,sqlCommandType); + } else if (object instanceof Map) { + Map map = (Map)object; + Iterator> iterable = map.entrySet().iterator(); + Set objects = new HashSet<>(); + while (iterable.hasNext()) { + objects.add(iterable.next().getValue()); + } + objects.stream().filter(it -> it instanceof BaseAudit).forEach(it -> this.dealItem((BaseAudit) it,sqlCommandType)); + } else if (object instanceof BaseAudit) { + dealItem((BaseAudit)object,sqlCommandType); + } + return; + + } + + private void dealItem(BaseAudit parameter,SqlCommandType sqlCommandType){ + + try { + LocalDateTime time = LocalDateTime.now(); + if (sqlCommandType == SqlCommandType.INSERT ) { + parameter.setCreateTime(time); + parameter.setCreateBy(getUserId()); + } + else if (sqlCommandType == SqlCommandType.UPDATE ) { + parameter.setUpdateBy(getUserId()); + parameter.setUpdateTime(time); + } + } catch (Exception e) { + log.error("处理 审计参数失败 {}", parameter, e); + } + } + + private void dealList(List list,SqlCommandType sqlCommandType) { + list.forEach(item->{ + dealItem(item,sqlCommandType); + }); + } + + @Override + public Object plugin(Object target) { + return Plugin.wrap(target, this); + } + + @Override + public void setProperties(Properties properties) { + + } + + private Long getUserId() { + try { + return SecurityUtils.getLoginUser().getUserId(); + } catch (ServiceException e) { + return null; + } + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatis/MybatisId.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatis/MybatisId.java new file mode 100644 index 0000000..6606937 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatis/MybatisId.java @@ -0,0 +1,15 @@ +package com.ruoyi.common.core.mybatis; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * @author feiji + * @see BaseAuditInterceptor 使用,用来标记 id 字段或者方法 + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.FIELD, ElementType.METHOD}) +public @interface MybatisId { +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/PageDomain.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/PageDomain.java new file mode 100644 index 0000000..8966cb4 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/PageDomain.java @@ -0,0 +1,101 @@ +package com.ruoyi.common.core.page; + +import com.ruoyi.common.utils.StringUtils; + +/** + * 分页数据 + * + * @author ruoyi + */ +public class PageDomain +{ + /** 当前记录起始索引 */ + private Integer pageNum; + + /** 每页显示记录数 */ + private Integer pageSize; + + /** 排序列 */ + private String orderByColumn; + + /** 排序的方向desc或者asc */ + private String isAsc = "asc"; + + /** 分页参数合理化 */ + private Boolean reasonable = true; + + public String getOrderBy() + { + if (StringUtils.isEmpty(orderByColumn)) + { + return ""; + } + return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc; + } + + public Integer getPageNum() + { + return pageNum; + } + + public void setPageNum(Integer pageNum) + { + this.pageNum = pageNum; + } + + public Integer getPageSize() + { + return pageSize; + } + + public void setPageSize(Integer pageSize) + { + this.pageSize = pageSize; + } + + public String getOrderByColumn() + { + return orderByColumn; + } + + public void setOrderByColumn(String orderByColumn) + { + this.orderByColumn = orderByColumn; + } + + public String getIsAsc() + { + return isAsc; + } + + public void setIsAsc(String isAsc) + { + if (StringUtils.isNotEmpty(isAsc)) + { + // 兼容前端排序类型 + if ("ascending".equals(isAsc)) + { + isAsc = "asc"; + } + else if ("descending".equals(isAsc)) + { + isAsc = "desc"; + } + this.isAsc = isAsc; + } + } + + public Boolean getReasonable() + { + if (StringUtils.isNull(reasonable)) + { + return Boolean.TRUE; + } + return reasonable; + } + + public void setReasonable(Boolean reasonable) + { + this.reasonable = reasonable; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java new file mode 100644 index 0000000..847685b --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java @@ -0,0 +1,85 @@ +package com.ruoyi.common.core.page; + +import java.io.Serializable; +import java.util.List; + +/** + * 表格分页数据对象 + * + * @author ruoyi + */ +public class TableDataInfo implements Serializable +{ + private static final long serialVersionUID = 1L; + + /** 总记录数 */ + private long total; + + /** 列表数据 */ + private List rows; + + /** 消息状态码 */ + private int code; + + /** 消息内容 */ + private String msg; + + /** + * 表格数据对象 + */ + public TableDataInfo() + { + } + + /** + * 分页 + * + * @param list 列表数据 + * @param total 总记录数 + */ + public TableDataInfo(List list, int total) + { + this.rows = list; + this.total = total; + } + + public long getTotal() + { + return total; + } + + public void setTotal(long total) + { + this.total = total; + } + + public List getRows() + { + return rows; + } + + public void setRows(List rows) + { + this.rows = rows; + } + + public int getCode() + { + return code; + } + + public void setCode(int code) + { + this.code = code; + } + + public String getMsg() + { + return msg; + } + + public void setMsg(String msg) + { + this.msg = msg; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableSupport.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableSupport.java new file mode 100644 index 0000000..5f30168 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableSupport.java @@ -0,0 +1,55 @@ +package com.ruoyi.common.core.page; + +import com.ruoyi.common.utils.ServletUtils; + +/** + * 表格数据处理 + * + * @author ruoyi + */ +public class TableSupport +{ + /** + * 当前记录起始索引 + */ + public static final String PAGE_NUM = "pageNum"; + + /** + * 每页显示记录数 + */ + public static final String PAGE_SIZE = "pageSize"; + + /** + * 排序列 + */ + public static final String ORDER_BY_COLUMN = "orderByColumn"; + + /** + * 排序的方向 "desc" 或者 "asc". + */ + public static final String IS_ASC = "isAsc"; + + /** + * 分页参数合理化 + */ + public static final String REASONABLE = "reasonable"; + + /** + * 封装分页对象 + */ + public static PageDomain getPageDomain() + { + PageDomain pageDomain = new PageDomain(); + pageDomain.setPageNum(ServletUtils.getParameterToInt(PAGE_NUM)); + pageDomain.setPageSize(ServletUtils.getParameterToInt(PAGE_SIZE)); + pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN)); + pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC)); + pageDomain.setReasonable(ServletUtils.getParameterToBool(REASONABLE)); + return pageDomain; + } + + public static PageDomain buildPageRequest() + { + return getPageDomain(); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java new file mode 100644 index 0000000..22a610d --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java @@ -0,0 +1,234 @@ +package com.ruoyi.common.core.redis; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.BoundSetOperations; +import org.springframework.data.redis.core.HashOperations; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.ValueOperations; +import org.springframework.stereotype.Component; + +/** + * spring redis 工具类 + * + * @author ruoyi + **/ +@SuppressWarnings(value = { "unchecked", "rawtypes" }) +@Component +public class RedisCache +{ + @Autowired + public RedisTemplate redisTemplate; + + /** + * 缓存基本的对象,Integer、String、实体类等 + * + * @param key 缓存的键值 + * @param value 缓存的值 + */ + public void setCacheObject(final String key, final T value) + { + redisTemplate.opsForValue().set(key, value); + } + + /** + * 缓存基本的对象,Integer、String、实体类等 + * + * @param key 缓存的键值 + * @param value 缓存的值 + * @param timeout 时间 + * @param timeUnit 时间颗粒度 + */ + public void setCacheObject(final String key, final T value, final Integer timeout, final TimeUnit timeUnit) + { + redisTemplate.opsForValue().set(key, value, timeout, timeUnit); + } + + /** + * 设置有效时间 + * + * @param key Redis键 + * @param timeout 超时时间 + * @return true=设置成功;false=设置失败 + */ + public boolean expire(final String key, final long timeout) + { + return expire(key, timeout, TimeUnit.SECONDS); + } + + /** + * 设置有效时间 + * + * @param key Redis键 + * @param timeout 超时时间 + * @param unit 时间单位 + * @return true=设置成功;false=设置失败 + */ + public boolean expire(final String key, final long timeout, final TimeUnit unit) + { + return redisTemplate.expire(key, timeout, unit); + } + + /** + * 获得缓存的基本对象。 + * + * @param key 缓存键值 + * @return 缓存键值对应的数据 + */ + public T getCacheObject(final String key) + { + ValueOperations operation = redisTemplate.opsForValue(); + return operation.get(key); + } + + /** + * 删除单个对象 + * + * @param key + */ + public boolean deleteObject(final String key) + { + return redisTemplate.delete(key); + } + + /** + * 删除集合对象 + * + * @param collection 多个对象 + * @return + */ + public long deleteObject(final Collection collection) + { + return redisTemplate.delete(collection); + } + + /** + * 缓存List数据 + * + * @param key 缓存的键值 + * @param dataList 待缓存的List数据 + * @return 缓存的对象 + */ + public long setCacheList(final String key, final List dataList) + { + Long count = redisTemplate.opsForList().rightPushAll(key, dataList); + return count == null ? 0 : count; + } + + /** + * 获得缓存的list对象 + * + * @param key 缓存的键值 + * @return 缓存键值对应的数据 + */ + public List getCacheList(final String key) + { + return redisTemplate.opsForList().range(key, 0, -1); + } + + /** + * 缓存Set + * + * @param key 缓存键值 + * @param dataSet 缓存的数据 + * @return 缓存数据的对象 + */ + public BoundSetOperations setCacheSet(final String key, final Set dataSet) + { + BoundSetOperations setOperation = redisTemplate.boundSetOps(key); + Iterator it = dataSet.iterator(); + while (it.hasNext()) + { + setOperation.add(it.next()); + } + return setOperation; + } + + /** + * 获得缓存的set + * + * @param key + * @return + */ + public Set getCacheSet(final String key) + { + return redisTemplate.opsForSet().members(key); + } + + /** + * 缓存Map + * + * @param key + * @param dataMap + */ + public void setCacheMap(final String key, final Map dataMap) + { + if (dataMap != null) { + redisTemplate.opsForHash().putAll(key, dataMap); + } + } + + /** + * 获得缓存的Map + * + * @param key + * @return + */ + public Map getCacheMap(final String key) + { + return redisTemplate.opsForHash().entries(key); + } + + /** + * 往Hash中存入数据 + * + * @param key Redis键 + * @param hKey Hash键 + * @param value 值 + */ + public void setCacheMapValue(final String key, final String hKey, final T value) + { + redisTemplate.opsForHash().put(key, hKey, value); + } + + /** + * 获取Hash中的数据 + * + * @param key Redis键 + * @param hKey Hash键 + * @return Hash中的对象 + */ + public T getCacheMapValue(final String key, final String hKey) + { + HashOperations opsForHash = redisTemplate.opsForHash(); + return opsForHash.get(key, hKey); + } + + /** + * 获取多个Hash中的数据 + * + * @param key Redis键 + * @param hKeys Hash键集合 + * @return Hash对象集合 + */ + public List getMultiCacheMapValue(final String key, final Collection hKeys) + { + return redisTemplate.opsForHash().multiGet(key, hKeys); + } + + /** + * 获得缓存的基本对象列表 + * + * @param pattern 字符串前缀 + * @return 对象列表 + */ + public Collection keys(final String pattern) + { + return redisTemplate.keys(pattern); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisService.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisService.java new file mode 100644 index 0000000..739e798 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisService.java @@ -0,0 +1,73 @@ +package com.ruoyi.common.core.redis; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.concurrent.TimeUnit; + +@Service +public class RedisService { + @Autowired + private RedisCache redisCache; + + public void setMatchList(Long userId, List userIds) { + String key = RedisKeys.MATCH_LIST_OF + userId; + redisCache.setCacheList(key, userIds); + redisCache.expire(key, 7, TimeUnit.DAYS); + } + + public List getMatchList(Long userId) { + String key = RedisKeys.MATCH_LIST_OF + userId; + return redisCache.getCacheList(key); + } + + public String getAddressList() { + String key = RedisKeys.ADDRESS_LIST_KEY; + return redisCache.getCacheObject(key); + } + + public void setAddressList(String list) { + String key = RedisKeys.ADDRESS_LIST_KEY; + redisCache.setCacheObject(key,list); + } + + interface RedisKeys { + String MATCH_LIST_OF = "MATCH_LIST_OF_"; + String ADDRESS_LIST_KEY = "ADDRESS_LIST_KEY_"; + } + + /** + * redis实现分布式锁 --- 上锁 + * + * @param key + * @param jobInfo + * @param lockSecond + * @return + * @throws Exception + */ + public void lock(String key, String jobInfo, Integer lockSecond) throws Exception { + String existJobInfo = redisCache.getCacheObject(key); + if (StringUtils.isNotEmpty(existJobInfo)) { + throw new Exception(String.format("获取锁失败: redisKey: %s, existJobInfo: %s", key, existJobInfo)); + } + redisCache.setCacheObject(key, jobInfo, lockSecond, TimeUnit.SECONDS); + } + + /** + * redis实现分布式锁 --- 解锁 + * + * @param key + * @param jobInfo + * @throws Exception + */ + public void unLock(String key, String jobInfo) throws Exception { + String existJobInfo = redisCache.getCacheObject(key); + if (jobInfo.equals(existJobInfo)) { + redisCache.deleteObject(key); + } else { + throw new Exception(String.format("释放锁异常: redisKey: %s, existJobInfo: %s, jobInfo: %s", key, existJobInfo, jobInfo)); + } + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/sms/AliyunSmsTemplate.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/sms/AliyunSmsTemplate.java new file mode 100644 index 0000000..a795ffa --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/sms/AliyunSmsTemplate.java @@ -0,0 +1,71 @@ +package com.ruoyi.common.core.sms; + +import com.aliyun.dysmsapi20170525.Client; +import com.aliyun.dysmsapi20170525.models.SendSmsRequest; +import com.aliyun.dysmsapi20170525.models.SendSmsResponse; +import com.aliyun.teaopenapi.models.Config; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.ruoyi.common.config.properties.SmsProperties; +import com.ruoyi.common.core.domain.model.SmsResult; +import com.ruoyi.common.exception.sms.SmsException; +import com.ruoyi.common.utils.JsonUtils; +import com.ruoyi.common.utils.StringUtils; +import lombok.SneakyThrows; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; + +import java.util.Map; + +/** + * Aliyun 短信模板 + * + * @author Lion Li + * @version 4.2.0 + */ +public class AliyunSmsTemplate implements SmsTemplate { + + @Autowired + private SmsProperties properties; + + private Client client; + + @SneakyThrows(Exception.class) + public AliyunSmsTemplate(SmsProperties smsProperties) { + this.properties = smsProperties; + Config config = new Config() + // 您的AccessKey ID + .setAccessKeyId(smsProperties.getAccessKeyId()) + // 您的AccessKey Secret + .setAccessKeySecret(smsProperties.getAccessKeySecret()) + // 访问的域名 + .setEndpoint(smsProperties.getEndpoint()); + this.client = new Client(config); + } + + @Override + public SmsResult send(String phones, String templateId, Map param) { + if (StringUtils.isBlank(phones)) { + throw new SmsException("手机号不能为空"); + } + if (StringUtils.isBlank(templateId)) { + throw new SmsException("模板ID不能为空"); + } + SendSmsRequest req = new SendSmsRequest() + .setPhoneNumbers(phones) + .setSignName(properties.getSignName()) + .setTemplateCode(templateId) + .setTemplateParam(JsonUtils.toJsonString(param)); + try { + SendSmsResponse resp = client.sendSms(req); + return SmsResult.builder() + .isSuccess("OK".equals(resp.getBody().getCode())) + .message(resp.getBody().getMessage()) + .response(JsonUtils.toJsonString(resp)) + .build(); + } catch (Exception e) { + throw new SmsException(e.getMessage()); + } + } + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/sms/AliyunSmsUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/sms/AliyunSmsUtils.java new file mode 100644 index 0000000..379bec8 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/sms/AliyunSmsUtils.java @@ -0,0 +1,171 @@ +package com.ruoyi.common.core.sms; + +import com.aliyun.dysmsapi20170525.Client; +import com.aliyun.dysmsapi20170525.models.SendSmsRequest; +import com.aliyun.dysmsapi20170525.models.SendSmsResponse; +import com.aliyun.teaopenapi.models.Config; +import com.ruoyi.common.config.properties.SmsProperties; +import com.ruoyi.common.core.domain.model.SmsResult; +import com.ruoyi.common.exception.sms.SmsException; +import com.ruoyi.common.utils.JsonUtils; +import com.ruoyi.common.utils.StringUtils; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +/** + * 阿里云短信工具类工具类 + * + * @author daixd + **/ +@Component +@Slf4j +public class AliyunSmsUtils { + + private static Client client; + + @Autowired + private static SmsProperties properties; + + private static String orderCreateSuccessTemplateId = "SMS_475766020"; + private static String bcshOrderComplete = "SMS_475776102"; + + private static String poOrderTodayStartService = "SMS_478300164"; + + private static String bcshOrderBeginToday = "SMS_475865917"; + private static String bcshOrderBeginNextDay = "SMS_475736087"; + private static String bcshHasOrder = "SMS_475905981"; + private static String bcshJoinSuccess = "SMS_475796041"; + private static String bcshJoinFail = "SMS_475925946"; + private static String poOrderComplete = "SMS_475811073"; + private static String poStartService = "SMS_475920915"; + private static String poCreatePetAndService = "SMS_475980895"; + + @SneakyThrows(Exception.class) + public AliyunSmsUtils(SmsProperties smsProperties) { + if (client == null) { + this.properties = smsProperties; + Config config = new Config() + // 您的AccessKey ID + .setAccessKeyId(properties.getAccessKeyId()) + // 您的AccessKey Secret + .setAccessKeySecret(properties.getAccessKeySecret()) + // 访问的域名 + .setEndpoint(properties.getEndpoint()); + this.client = new Client(config); + } + } + + public static SmsResult send(String phones, String templateId, Map param) { + log.info("开始发送短信,模版ID:【" + templateId + "】,接收手机号:" + phones + ",参数:" + JsonUtils.toJsonString(param)); + + if (StringUtils.isBlank(phones)) { + throw new SmsException("手机号不能为空"); + } + if (StringUtils.isBlank(templateId)) { + throw new SmsException("模板ID不能为空"); + } + SendSmsRequest req = new SendSmsRequest() + .setPhoneNumbers(phones) + .setSignName(properties.getSignName()) + .setTemplateCode(templateId) + .setTemplateParam(JsonUtils.toJsonString(param)); + try { + SendSmsResponse resp = client.sendSms(req); + log.info("发送短信成功,code【" + resp.getBody().getCode() + "】,发送结果:" + resp.getBody().getMessage()); + return SmsResult.builder() + .isSuccess("OK".equals(resp.getBody().getCode())) + .message(resp.getBody().getMessage()) + .response(JsonUtils.toJsonString(resp)) + .build(); + } catch (Exception e) { + throw new SmsException(e.getMessage()); + } + } + + public static SmsResult sendOrderSuccessSMS(String phones, String startTime, String endTime) { + log.info("【短信发送】开始发送短信消费者:客户成功下单"); + Map param = new HashMap<>(); + param.put("startTime", startTime); + param.put("endTime", endTime); + + return send(phones, orderCreateSuccessTemplateId, param); + } + + public static SmsResult sendPoCreatePetAndServiceSMS(String phones) { + log.info("【短信发送】开始发送短信消费者:宠物档案和服务档案未创建提醒"); + Map param = new HashMap<>(); + return send(phones, poCreatePetAndService, param); + } + + public static SmsResult sendPoStartServiceSMS(String phones) { + log.info("【短信发送】开始发送短信消费者:消费者-服务即将开始提醒"); + Map param = new HashMap<>(); + return send(phones, poStartService, param); + } + + public static SmsResult sendPoTodayStartServiceSMS(String phones) { + log.info("【短信发送】开始发送短信消费者:消费者-服务即将开始提醒"); + Map param = new HashMap<>(); + return send(phones, poOrderTodayStartService, param); + } + + public static SmsResult sendPoOrderCompleteSMS(String phones, String amount, String level, String discount) { + log.info("【短信发送】开始发送短信消费者:消费者-订单服务即将结束提醒"); + Map param = new HashMap<>(); + param.put("amount", amount); + param.put("level", level); + param.put("discount", discount); + + return send(phones, poOrderComplete, param); + } + + public static SmsResult sendBcshJoinFailSMS(String phones) { + log.info("【短信发送】开始发送短信消费者:伴宠师提交审核信息未通过提醒"); + Map param = new HashMap<>(); + return send(phones, bcshJoinFail, param); + } + + public static SmsResult sendBcshJoinSuccessSMS(String phones) { + log.info("【短信发送】开始发送短信消费者:伴宠师认证通过提醒"); + Map param = new HashMap<>(); + return send(phones, bcshJoinSuccess, param); + } + + public static SmsResult sendBcshHasOrderSMS(String phones) { + log.info("【短信发送】开始发送短信消费者:伴宠师订单抢单通知"); + Map param = new HashMap<>(); + return send(phones, bcshHasOrder, param); + } + + public static SmsResult sendBcshOrderBeginNextDaySMS(String phones, String address, String petName) { + log.info("【短信发送】开始发送短信消费者:伴宠师订单服务开始通知"); + Map param = new HashMap<>(); + param.put("address", address); + param.put("petName", petName); + + return send(phones, bcshOrderBeginNextDay, param); + } + + public static SmsResult sendBcshOrderBeginTodaySMS(String phones, String address, String petName) { + log.info("【短信发送】开始发送短信消费者:伴宠师-订单服务开始通知"); + Map param = new HashMap<>(); + param.put("address", address); + param.put("petName", petName); + + return send(phones, bcshOrderBeginToday, param); + } + + public static SmsResult sendBcshOrderCompleteSMS(String phones, String orderId, String amount) { + log.info("【短信发送】开始发送短信消费者:伴宠师订单完成通知"); + Map param = new HashMap<>(); + param.put("orderId", orderId); + param.put("amount", amount); + + return send(phones, bcshOrderComplete, param); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/sms/SmsTemplate.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/sms/SmsTemplate.java new file mode 100644 index 0000000..ee6064b --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/sms/SmsTemplate.java @@ -0,0 +1,26 @@ +package com.ruoyi.common.core.sms; + +import com.ruoyi.common.core.domain.model.SmsResult; + +import java.util.Map; + +/** + * 短信模板 + * + * @author Lion Li + * @version 4.2.0 + */ +public interface SmsTemplate { + + /** + * 发送短信 + * + * @param phones 电话号(多个逗号分割) + * @param templateId 模板id + * @param param 模板对应参数 + * 阿里 需使用 模板变量名称对应内容 例如: code=1234 + * 腾讯 需使用 模板变量顺序对应内容 例如: 1=1234, 1为模板内第一个参数 + */ + SmsResult send(String phones, String templateId, Map param); + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/text/CharsetKit.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/text/CharsetKit.java new file mode 100644 index 0000000..84124aa --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/text/CharsetKit.java @@ -0,0 +1,86 @@ +package com.ruoyi.common.core.text; + +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import com.ruoyi.common.utils.StringUtils; + +/** + * 字符集工具类 + * + * @author ruoyi + */ +public class CharsetKit +{ + /** ISO-8859-1 */ + public static final String ISO_8859_1 = "ISO-8859-1"; + /** UTF-8 */ + public static final String UTF_8 = "UTF-8"; + /** GBK */ + public static final String GBK = "GBK"; + + /** ISO-8859-1 */ + public static final Charset CHARSET_ISO_8859_1 = Charset.forName(ISO_8859_1); + /** UTF-8 */ + public static final Charset CHARSET_UTF_8 = Charset.forName(UTF_8); + /** GBK */ + public static final Charset CHARSET_GBK = Charset.forName(GBK); + + /** + * 转换为Charset对象 + * + * @param charset 字符集,为空则返回默认字符集 + * @return Charset + */ + public static Charset charset(String charset) + { + return StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset); + } + + /** + * 转换字符串的字符集编码 + * + * @param source 字符串 + * @param srcCharset 源字符集,默认ISO-8859-1 + * @param destCharset 目标字符集,默认UTF-8 + * @return 转换后的字符集 + */ + public static String convert(String source, String srcCharset, String destCharset) + { + return convert(source, Charset.forName(srcCharset), Charset.forName(destCharset)); + } + + /** + * 转换字符串的字符集编码 + * + * @param source 字符串 + * @param srcCharset 源字符集,默认ISO-8859-1 + * @param destCharset 目标字符集,默认UTF-8 + * @return 转换后的字符集 + */ + public static String convert(String source, Charset srcCharset, Charset destCharset) + { + if (null == srcCharset) + { + srcCharset = StandardCharsets.ISO_8859_1; + } + + if (null == destCharset) + { + destCharset = StandardCharsets.UTF_8; + } + + if (StringUtils.isEmpty(source) || srcCharset.equals(destCharset)) + { + return source; + } + return new String(source.getBytes(srcCharset), destCharset); + } + + /** + * @return 系统字符集编码 + */ + public static String systemCharset() + { + return Charset.defaultCharset().name(); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java new file mode 100644 index 0000000..1fb7461 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java @@ -0,0 +1,1005 @@ +package com.ruoyi.common.core.text; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.nio.ByteBuffer; +import java.nio.charset.Charset; +import java.text.NumberFormat; +import java.util.Set; +import com.ruoyi.common.utils.StringUtils; +import org.apache.commons.lang3.ArrayUtils; + +/** + * 类型转换器 + * + * @author ruoyi + */ +public class Convert +{ + /** + * 转换为字符串
+ * 如果给定的值为null,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static String toStr(Object value, String defaultValue) + { + if (null == value) + { + return defaultValue; + } + if (value instanceof String) + { + return (String) value; + } + return value.toString(); + } + + /** + * 转换为字符串
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static String toStr(Object value) + { + return toStr(value, null); + } + + /** + * 转换为字符
+ * 如果给定的值为null,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Character toChar(Object value, Character defaultValue) + { + if (null == value) + { + return defaultValue; + } + if (value instanceof Character) + { + return (Character) value; + } + + final String valueStr = toStr(value, null); + return StringUtils.isEmpty(valueStr) ? defaultValue : valueStr.charAt(0); + } + + /** + * 转换为字符
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Character toChar(Object value) + { + return toChar(value, null); + } + + /** + * 转换为byte
+ * 如果给定的值为null,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Byte toByte(Object value, Byte defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Byte) + { + return (Byte) value; + } + if (value instanceof Number) + { + return ((Number) value).byteValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return Byte.parseByte(valueStr); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为byte
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Byte toByte(Object value) + { + return toByte(value, null); + } + + /** + * 转换为Short
+ * 如果给定的值为null,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Short toShort(Object value, Short defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Short) + { + return (Short) value; + } + if (value instanceof Number) + { + return ((Number) value).shortValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return Short.parseShort(valueStr.trim()); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为Short
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Short toShort(Object value) + { + return toShort(value, null); + } + + /** + * 转换为Number
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Number toNumber(Object value, Number defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Number) + { + return (Number) value; + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return NumberFormat.getInstance().parse(valueStr); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为Number
+ * 如果给定的值为空,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Number toNumber(Object value) + { + return toNumber(value, null); + } + + /** + * 转换为int
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Integer toInt(Object value, Integer defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Integer) + { + return (Integer) value; + } + if (value instanceof Number) + { + return ((Number) value).intValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return Integer.parseInt(valueStr.trim()); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为int
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Integer toInt(Object value) + { + return toInt(value, null); + } + + /** + * 转换为Integer数组
+ * + * @param str 被转换的值 + * @return 结果 + */ + public static Integer[] toIntArray(String str) + { + return toIntArray(",", str); + } + + /** + * 转换为Long数组
+ * + * @param str 被转换的值 + * @return 结果 + */ + public static Long[] toLongArray(String str) + { + return toLongArray(",", str); + } + + /** + * 转换为Integer数组
+ * + * @param split 分隔符 + * @param split 被转换的值 + * @return 结果 + */ + public static Integer[] toIntArray(String split, String str) + { + if (StringUtils.isEmpty(str)) + { + return new Integer[] {}; + } + String[] arr = str.split(split); + final Integer[] ints = new Integer[arr.length]; + for (int i = 0; i < arr.length; i++) + { + final Integer v = toInt(arr[i], 0); + ints[i] = v; + } + return ints; + } + + /** + * 转换为Long数组
+ * + * @param split 分隔符 + * @param str 被转换的值 + * @return 结果 + */ + public static Long[] toLongArray(String split, String str) + { + if (StringUtils.isEmpty(str)) + { + return new Long[] {}; + } + String[] arr = str.split(split); + final Long[] longs = new Long[arr.length]; + for (int i = 0; i < arr.length; i++) + { + final Long v = toLong(arr[i], null); + longs[i] = v; + } + return longs; + } + + /** + * 转换为String数组
+ * + * @param str 被转换的值 + * @return 结果 + */ + public static String[] toStrArray(String str) + { + return toStrArray(",", str); + } + + /** + * 转换为String数组
+ * + * @param split 分隔符 + * @param split 被转换的值 + * @return 结果 + */ + public static String[] toStrArray(String split, String str) + { + return str.split(split); + } + + /** + * 转换为long
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Long toLong(Object value, Long defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Long) + { + return (Long) value; + } + if (value instanceof Number) + { + return ((Number) value).longValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + // 支持科学计数法 + return new BigDecimal(valueStr.trim()).longValue(); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为long
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Long toLong(Object value) + { + return toLong(value, null); + } + + /** + * 转换为double
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Double toDouble(Object value, Double defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Double) + { + return (Double) value; + } + if (value instanceof Number) + { + return ((Number) value).doubleValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + // 支持科学计数法 + return new BigDecimal(valueStr.trim()).doubleValue(); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为double
+ * 如果给定的值为空,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Double toDouble(Object value) + { + return toDouble(value, null); + } + + /** + * 转换为Float
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Float toFloat(Object value, Float defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Float) + { + return (Float) value; + } + if (value instanceof Number) + { + return ((Number) value).floatValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return Float.parseFloat(valueStr.trim()); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为Float
+ * 如果给定的值为空,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Float toFloat(Object value) + { + return toFloat(value, null); + } + + /** + * 转换为boolean
+ * String支持的值为:true、false、yes、ok、no,1,0 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Boolean toBool(Object value, Boolean defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Boolean) + { + return (Boolean) value; + } + String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + valueStr = valueStr.trim().toLowerCase(); + switch (valueStr) + { + case "true": + return true; + case "false": + return false; + case "yes": + return true; + case "ok": + return true; + case "no": + return false; + case "1": + return true; + case "0": + return false; + default: + return defaultValue; + } + } + + /** + * 转换为boolean
+ * 如果给定的值为空,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Boolean toBool(Object value) + { + return toBool(value, null); + } + + /** + * 转换为Enum对象
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * + * @param clazz Enum的Class + * @param value 值 + * @param defaultValue 默认值 + * @return Enum + */ + public static > E toEnum(Class clazz, Object value, E defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (clazz.isAssignableFrom(value.getClass())) + { + @SuppressWarnings("unchecked") + E myE = (E) value; + return myE; + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return Enum.valueOf(clazz, valueStr); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为Enum对象
+ * 如果给定的值为空,或者转换失败,返回默认值null
+ * + * @param clazz Enum的Class + * @param value 值 + * @return Enum + */ + public static > E toEnum(Class clazz, Object value) + { + return toEnum(clazz, value, null); + } + + /** + * 转换为BigInteger
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static BigInteger toBigInteger(Object value, BigInteger defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof BigInteger) + { + return (BigInteger) value; + } + if (value instanceof Long) + { + return BigInteger.valueOf((Long) value); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return new BigInteger(valueStr); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为BigInteger
+ * 如果给定的值为空,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static BigInteger toBigInteger(Object value) + { + return toBigInteger(value, null); + } + + /** + * 转换为BigDecimal
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static BigDecimal toBigDecimal(Object value, BigDecimal defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof BigDecimal) + { + return (BigDecimal) value; + } + if (value instanceof Long) + { + return new BigDecimal((Long) value); + } + if (value instanceof Double) + { + return new BigDecimal((Double) value); + } + if (value instanceof Integer) + { + return new BigDecimal((Integer) value); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return new BigDecimal(valueStr); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为BigDecimal
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static BigDecimal toBigDecimal(Object value) + { + return toBigDecimal(value, null); + } + + /** + * 将对象转为字符串
+ * 1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法 + * + * @param obj 对象 + * @return 字符串 + */ + public static String utf8Str(Object obj) + { + return str(obj, CharsetKit.CHARSET_UTF_8); + } + + /** + * 将对象转为字符串
+ * 1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法 + * + * @param obj 对象 + * @param charsetName 字符集 + * @return 字符串 + */ + public static String str(Object obj, String charsetName) + { + return str(obj, Charset.forName(charsetName)); + } + + /** + * 将对象转为字符串
+ * 1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法 + * + * @param obj 对象 + * @param charset 字符集 + * @return 字符串 + */ + public static String str(Object obj, Charset charset) + { + if (null == obj) + { + return null; + } + + if (obj instanceof String) + { + return (String) obj; + } + else if (obj instanceof byte[]) + { + return str((byte[]) obj, charset); + } + else if (obj instanceof Byte[]) + { + byte[] bytes = ArrayUtils.toPrimitive((Byte[]) obj); + return str(bytes, charset); + } + else if (obj instanceof ByteBuffer) + { + return str((ByteBuffer) obj, charset); + } + return obj.toString(); + } + + /** + * 将byte数组转为字符串 + * + * @param bytes byte数组 + * @param charset 字符集 + * @return 字符串 + */ + public static String str(byte[] bytes, String charset) + { + return str(bytes, StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset)); + } + + /** + * 解码字节码 + * + * @param data 字符串 + * @param charset 字符集,如果此字段为空,则解码的结果取决于平台 + * @return 解码后的字符串 + */ + public static String str(byte[] data, Charset charset) + { + if (data == null) + { + return null; + } + + if (null == charset) + { + return new String(data); + } + return new String(data, charset); + } + + /** + * 将编码的byteBuffer数据转换为字符串 + * + * @param data 数据 + * @param charset 字符集,如果为空使用当前系统字符集 + * @return 字符串 + */ + public static String str(ByteBuffer data, String charset) + { + if (data == null) + { + return null; + } + + return str(data, Charset.forName(charset)); + } + + /** + * 将编码的byteBuffer数据转换为字符串 + * + * @param data 数据 + * @param charset 字符集,如果为空使用当前系统字符集 + * @return 字符串 + */ + public static String str(ByteBuffer data, Charset charset) + { + if (null == charset) + { + charset = Charset.defaultCharset(); + } + return charset.decode(data).toString(); + } + + // ----------------------------------------------------------------------- 全角半角转换 + /** + * 半角转全角 + * + * @param input String. + * @return 全角字符串. + */ + public static String toSBC(String input) + { + return toSBC(input, null); + } + + /** + * 半角转全角 + * + * @param input String + * @param notConvertSet 不替换的字符集合 + * @return 全角字符串. + */ + public static String toSBC(String input, Set notConvertSet) + { + char c[] = input.toCharArray(); + for (int i = 0; i < c.length; i++) + { + if (null != notConvertSet && notConvertSet.contains(c[i])) + { + // 跳过不替换的字符 + continue; + } + + if (c[i] == ' ') + { + c[i] = '\u3000'; + } + else if (c[i] < '\177') + { + c[i] = (char) (c[i] + 65248); + + } + } + return new String(c); + } + + /** + * 全角转半角 + * + * @param input String. + * @return 半角字符串 + */ + public static String toDBC(String input) + { + return toDBC(input, null); + } + + /** + * 替换全角为半角 + * + * @param text 文本 + * @param notConvertSet 不替换的字符集合 + * @return 替换后的字符 + */ + public static String toDBC(String text, Set notConvertSet) + { + char c[] = text.toCharArray(); + for (int i = 0; i < c.length; i++) + { + if (null != notConvertSet && notConvertSet.contains(c[i])) + { + // 跳过不替换的字符 + continue; + } + + if (c[i] == '\u3000') + { + c[i] = ' '; + } + else if (c[i] > '\uFF00' && c[i] < '\uFF5F') + { + c[i] = (char) (c[i] - 65248); + } + } + String returnString = new String(c); + + return returnString; + } + + /** + * 数字金额大写转换 先写个完整的然后将如零拾替换成零 + * + * @param n 数字 + * @return 中文大写数字 + */ + public static String digitUppercase(double n) + { + String[] fraction = { "角", "分" }; + String[] digit = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; + String[][] unit = { { "元", "万", "亿" }, { "", "拾", "佰", "仟" } }; + + String head = n < 0 ? "负" : ""; + n = Math.abs(n); + + String s = ""; + for (int i = 0; i < fraction.length; i++) + { + s += (digit[(int) (Math.floor(n * 10 * Math.pow(10, i)) % 10)] + fraction[i]).replaceAll("(零.)+", ""); + } + if (s.length() < 1) + { + s = "整"; + } + int integerPart = (int) Math.floor(n); + + for (int i = 0; i < unit[0].length && integerPart > 0; i++) + { + String p = ""; + for (int j = 0; j < unit[1].length && n > 0; j++) + { + p = digit[integerPart % 10] + unit[1][j] + p; + integerPart = integerPart / 10; + } + s = p.replaceAll("(零.)*零$", "").replaceAll("^$", "零") + unit[0][i] + s; + } + return head + s.replaceAll("(零.)*零元", "元").replaceFirst("(零.)+", "").replaceAll("(零.)+", "零").replaceAll("^整$", "零元整"); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/text/StrFormatter.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/text/StrFormatter.java new file mode 100644 index 0000000..c78ac77 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/text/StrFormatter.java @@ -0,0 +1,92 @@ +package com.ruoyi.common.core.text; + +import com.ruoyi.common.utils.StringUtils; + +/** + * 字符串格式化 + * + * @author ruoyi + */ +public class StrFormatter +{ + public static final String EMPTY_JSON = "{}"; + public static final char C_BACKSLASH = '\\'; + public static final char C_DELIM_START = '{'; + public static final char C_DELIM_END = '}'; + + /** + * 格式化字符串
+ * 此方法只是简单将占位符 {} 按照顺序替换为参数
+ * 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可
+ * 例:
+ * 通常使用:format("this is {} for {}", "a", "b") -> this is a for b
+ * 转义{}: format("this is \\{} for {}", "a", "b") -> this is \{} for a
+ * 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b
+ * + * @param strPattern 字符串模板 + * @param argArray 参数列表 + * @return 结果 + */ + public static String format(final String strPattern, final Object... argArray) + { + if (StringUtils.isEmpty(strPattern) || StringUtils.isEmpty(argArray)) + { + return strPattern; + } + final int strPatternLength = strPattern.length(); + + // 初始化定义好的长度以获得更好的性能 + StringBuilder sbuf = new StringBuilder(strPatternLength + 50); + + int handledPosition = 0; + int delimIndex;// 占位符所在位置 + for (int argIndex = 0; argIndex < argArray.length; argIndex++) + { + delimIndex = strPattern.indexOf(EMPTY_JSON, handledPosition); + if (delimIndex == -1) + { + if (handledPosition == 0) + { + return strPattern; + } + else + { // 字符串模板剩余部分不再包含占位符,加入剩余部分后返回结果 + sbuf.append(strPattern, handledPosition, strPatternLength); + return sbuf.toString(); + } + } + else + { + if (delimIndex > 0 && strPattern.charAt(delimIndex - 1) == C_BACKSLASH) + { + if (delimIndex > 1 && strPattern.charAt(delimIndex - 2) == C_BACKSLASH) + { + // 转义符之前还有一个转义符,占位符依旧有效 + sbuf.append(strPattern, handledPosition, delimIndex - 1); + sbuf.append(Convert.utf8Str(argArray[argIndex])); + handledPosition = delimIndex + 2; + } + else + { + // 占位符被转义 + argIndex--; + sbuf.append(strPattern, handledPosition, delimIndex - 1); + sbuf.append(C_DELIM_START); + handledPosition = delimIndex + 1; + } + } + else + { + // 正常占位符 + sbuf.append(strPattern, handledPosition, delimIndex); + sbuf.append(Convert.utf8Str(argArray[argIndex])); + handledPosition = delimIndex + 2; + } + } + } + // 加入最后一个占位符后所有的字符 + sbuf.append(strPattern, handledPosition, strPattern.length()); + + return sbuf.toString(); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/AftersaleStatus.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/AftersaleStatus.java new file mode 100644 index 0000000..c18c799 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/AftersaleStatus.java @@ -0,0 +1,31 @@ +package com.ruoyi.common.enums; + +/** + * 售后状态 + * + * @author ruoyi + */ +public enum AftersaleStatus +{ + APPLY(0, "待处理"), + WAIT(1, "退货中"), + SUCCESS(2, "已完成"), + REJECT(3, "已拒绝"), + CANCEL(4,"用户取消"); + + private final Integer type; + private final String msg; + + private AftersaleStatus(Integer type, String msg) { + this.type = type; + this.msg = msg; + } + + public Integer getType() { + return this.type; + } + + public String getMsg() { + return this.msg; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/BondOrderStatus.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/BondOrderStatus.java new file mode 100644 index 0000000..ea0f60c --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/BondOrderStatus.java @@ -0,0 +1,30 @@ +package com.ruoyi.common.enums; + +/** + * 保证金交易状态 + * + * @author ruoyi + */ +public enum BondOrderStatus { + UN_PAY(0, "待交易"), + SUCCESS(1, "交易成功"), + FAILED(2, "交易失败"), + CLOSED(3, "关闭交易"), + INVALID(4, "无效订单"); + + private final Integer type; + private final String msg; + + private BondOrderStatus(Integer type, String msg) { + this.type = type; + this.msg = msg; + } + + public Integer getType() { + return this.type; + } + + public String getMsg() { + return this.msg; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/BondTransactionType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/BondTransactionType.java new file mode 100644 index 0000000..a9f55fe --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/BondTransactionType.java @@ -0,0 +1,29 @@ +package com.ruoyi.common.enums; + +/** + * 保证金缴纳类型 + * + * @author ruoyi + */ +public enum BondTransactionType { + PAY(0, "缴纳保证金"), + DEDUCT(1, "扣除保证金"), + REFUND(2, "保证金退款"), + ; + + private final Integer type; + private final String msg; + + private BondTransactionType(Integer type, String msg) { + this.type = type; + this.msg = msg; + } + + public Integer getType() { + return this.type; + } + + public String getMsg() { + return this.msg; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessStatus.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessStatus.java new file mode 100644 index 0000000..10b7306 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessStatus.java @@ -0,0 +1,20 @@ +package com.ruoyi.common.enums; + +/** + * 操作状态 + * + * @author ruoyi + * + */ +public enum BusinessStatus +{ + /** + * 成功 + */ + SUCCESS, + + /** + * 失败 + */ + FAIL, +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java new file mode 100644 index 0000000..2e17c4a --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java @@ -0,0 +1,59 @@ +package com.ruoyi.common.enums; + +/** + * 业务操作类型 + * + * @author ruoyi + */ +public enum BusinessType +{ + /** + * 其它 + */ + OTHER, + + /** + * 新增 + */ + INSERT, + + /** + * 修改 + */ + UPDATE, + + /** + * 删除 + */ + DELETE, + + /** + * 授权 + */ + GRANT, + + /** + * 导出 + */ + EXPORT, + + /** + * 导入 + */ + IMPORT, + + /** + * 强退 + */ + FORCE, + + /** + * 生成代码 + */ + GENCODE, + + /** + * 清空数据 + */ + CLEAN, +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java new file mode 100644 index 0000000..0d945be --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java @@ -0,0 +1,19 @@ +package com.ruoyi.common.enums; + +/** + * 数据源 + * + * @author ruoyi + */ +public enum DataSourceType +{ + /** + * 主库 + */ + MASTER, + + /** + * 从库 + */ + SLAVE +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/HttpMethod.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/HttpMethod.java new file mode 100644 index 0000000..be6f739 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/HttpMethod.java @@ -0,0 +1,36 @@ +package com.ruoyi.common.enums; + +import java.util.HashMap; +import java.util.Map; +import org.springframework.lang.Nullable; + +/** + * 请求方式 + * + * @author ruoyi + */ +public enum HttpMethod +{ + GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE; + + private static final Map mappings = new HashMap<>(16); + + static + { + for (HttpMethod httpMethod : values()) + { + mappings.put(httpMethod.name(), httpMethod); + } + } + + @Nullable + public static HttpMethod resolve(@Nullable String method) + { + return (method != null ? mappings.get(method) : null); + } + + public boolean matches(String method) + { + return (this == resolve(method)); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/LimitType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/LimitType.java new file mode 100644 index 0000000..c609fd8 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/LimitType.java @@ -0,0 +1,20 @@ +package com.ruoyi.common.enums; + +/** + * 限流类型 + * + * @author ruoyi + */ + +public enum LimitType +{ + /** + * 默认策略全局限流 + */ + DEFAULT, + + /** + * 根据请求者IP进行限流 + */ + IP +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/MemberDiscountEnum.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/MemberDiscountEnum.java new file mode 100644 index 0000000..2405448 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/MemberDiscountEnum.java @@ -0,0 +1,36 @@ +package com.ruoyi.common.enums; + +import lombok.Getter; + +@Getter +public enum MemberDiscountEnum { + NEW_PARENTS(1, 0.95), + ORDINARY_MEMBER(2, 0.90), + SILVER_MEMBER(3, 0.88), + GOLD_MEMBER(4, 0.85); + + private final Integer level; + private final double discount; + + private MemberDiscountEnum(Integer level, double discount) { + this.level = level; + this.discount = discount; + } + public static double getDisCount(Integer level) { + for (MemberDiscountEnum memberLevel : values()) { + if (memberLevel.getLevel().equals(level)) { + return memberLevel.getDiscount(); + } + } + return 0.95; + } + + public static Integer getLevel(double discount) { + for (MemberDiscountEnum memberLevel : values()) { + if (memberLevel.getDiscount() == discount) { + return memberLevel.getLevel(); + } + } + return 1; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/MemberLevel.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/MemberLevel.java new file mode 100644 index 0000000..d1c574a --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/MemberLevel.java @@ -0,0 +1,37 @@ +package com.ruoyi.common.enums; + +import lombok.Data; +import lombok.Getter; + +@Getter +public enum MemberLevel { + NEW_PARENTS(1, "新晋家长"), + ORDINARY_MEMBER(2, "普卡会员"), + SILVER_MEMBER(3, "银卡会员"), + GOLD_MEMBER(4, "金卡会员"); + + private final Integer code; + private final String name; + + private MemberLevel(Integer code, String name) { + this.code = code; + this.name = name; + } + public static String getName(Integer code) { + for (MemberLevel memberLevel : values()) { + if (memberLevel.getCode().equals(code)) { + return memberLevel.getName(); + } + } + return ""; + } + + public static Integer getCode(String name) { + for (MemberLevel memberLevel : values()) { + if (memberLevel.getName().equals(name)) { + return memberLevel.getCode(); + } + } + return null; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/OperatorType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/OperatorType.java new file mode 100644 index 0000000..bdd143c --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/OperatorType.java @@ -0,0 +1,24 @@ +package com.ruoyi.common.enums; + +/** + * 操作人类别 + * + * @author ruoyi + */ +public enum OperatorType +{ + /** + * 其它 + */ + OTHER, + + /** + * 后台用户 + */ + MANAGE, + + /** + * 手机端用户 + */ + MOBILE +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/OrderRefundStatus.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/OrderRefundStatus.java new file mode 100644 index 0000000..06865a7 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/OrderRefundStatus.java @@ -0,0 +1,31 @@ +package com.ruoyi.common.enums; + +/** + * 用户状态 + * + * @author ruoyi + */ +public enum OrderRefundStatus +{ + NO_REFUND(1, "无售后"), + APPLY(2, "申请中"), + WAIT(3, "退款中"), + SUCCESS(4, "退款成功"), + FAIL(5,"退款失败"); + + private final Integer type; + private final String msg; + + private OrderRefundStatus(Integer type, String msg) { + this.type = type; + this.msg = msg; + } + + public Integer getType() { + return this.type; + } + + public String getMsg() { + return this.msg; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/OrderStatus.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/OrderStatus.java new file mode 100644 index 0000000..9e3a88c --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/OrderStatus.java @@ -0,0 +1,34 @@ +package com.ruoyi.common.enums; + +/** + * 用户状态 + * + * @author ruoyi + */ +public enum OrderStatus +{ + ALL_DATA(-1,"全部订单"), + UN_PAY(0, "待付款"), + NOT_DELIVERED(1, "待发货"), + DELIVERED(2, "待收货"), + COMPLETE(3, "已完成"), + CLOSED(4, "已关闭"), + INVALID(5, "无效订单"), + REFUUND(-2, "售后订单"); + + private final Integer type; + private final String msg; + + private OrderStatus(Integer type, String msg) { + this.type = type; + this.msg = msg; + } + + public Integer getType() { + return this.type; + } + + public String getMsg() { + return this.msg; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/ServiceTimeSlotEnum.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/ServiceTimeSlotEnum.java new file mode 100644 index 0000000..36c481a --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/ServiceTimeSlotEnum.java @@ -0,0 +1,40 @@ +package com.ruoyi.common.enums; + +import lombok.Getter; + +/** + * @Author Tang, Shuai(shuatang @ deloitte.com.cn) + * @Date 2024/12/23 22:15 + */ +@Getter +public enum ServiceTimeSlotEnum { + + MORNING("MORNING", "08:00-12:00"), + AFTERNOON("AFTERNOON", "12:00-18:00"), + EVENING("EVENING", "18:00-22:00"); + + private final String label; + private final String desc; + + private ServiceTimeSlotEnum(String label, String desc) { + this.label = label; + this.desc = desc; + } + public static String getLabel(String desc) { + for (ServiceTimeSlotEnum serviceTimeSlotEnum : values()) { + if (serviceTimeSlotEnum.getDesc().equals(desc)) { + return serviceTimeSlotEnum.getLabel(); + } + } + return "MORNING"; + } + + public static String getDesc(String label) { + for (ServiceTimeSlotEnum serviceTimeSlotEnum : values()) { + if (serviceTimeSlotEnum.getLabel().equals(label)){ + return serviceTimeSlotEnum.getDesc(); + } + } + return "08:00-12:00"; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/StaffAuthenticateStatusEnum.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/StaffAuthenticateStatusEnum.java new file mode 100644 index 0000000..06d77d1 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/StaffAuthenticateStatusEnum.java @@ -0,0 +1,33 @@ +package com.ruoyi.common.enums; + +import lombok.Data; + +/** + * 伴宠师认证状态 + */ +public enum StaffAuthenticateStatusEnum { + + BEGIN(0, "未开始"), + BASIC_EXAM_PASSED(1, "通过基础考核"), + BASIC_EXAM_FAILED(2, "考核失败"), + TRAIN_EXAM_AUDITING(3, "培训考核审核中"), + TRAIN_EXAM_PASSED(4, "培训考核审核通过"), + TRAIN_EXAM_FAILED(5, "培训考核审核失败"); + + StaffAuthenticateStatusEnum(Integer key, String value){ + this.key = key; + this.value = value; + } + + private final Integer key; + + private final String value; + + public Integer getKey() { + return key; + } + + public String getValue() { + return value; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/StaffBondStatus.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/StaffBondStatus.java new file mode 100644 index 0000000..bc528ba --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/StaffBondStatus.java @@ -0,0 +1,27 @@ +package com.ruoyi.common.enums; + +/** + * 员工保证金缴纳状态 + * + * @author ruoyi + */ +public enum StaffBondStatus { + UN_PAY(0, "未缴纳"), + PAID(1, "已缴纳"); + + private final Integer type; + private final String msg; + + private StaffBondStatus(Integer type, String msg) { + this.type = type; + this.msg = msg; + } + + public Integer getType() { + return this.type; + } + + public String getMsg() { + return this.msg; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/StockTypeEnum.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/StockTypeEnum.java new file mode 100644 index 0000000..b9cb0c6 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/StockTypeEnum.java @@ -0,0 +1,43 @@ +package com.ruoyi.common.enums; + +import lombok.Data; +import lombok.Getter; + +/** + * @Author Tang, Shuai(shuatang @ deloitte.com.cn) + * @Date 2024/12/28 19:48 + */ +@Getter +public enum StockTypeEnum { + PNORMAL("PNORMAL", "平台满减券"), + PDISCOUNT("PDISCOUNT", "平台折扣券"), + NORMAL("NORMAL", "微信满减券"), + DISCOUNT("DISCOUNT", "微信折扣券"), + EXCHANGE("EXCHANGE", "微信换购券"), + PTRAIL("PTRAIL", "平台体验券"); + + private final String label; + private final String desc; + + private StockTypeEnum(String label, String desc) { + this.label = label; + this.desc = desc; + } + public static String getEnumLabel(String desc) { + for (StockTypeEnum stockTypeEnum : values()) { + if (stockTypeEnum.getDesc().equals(desc)) { + return stockTypeEnum.getLabel(); + } + } + return ""; + } + + public static String getEnumDesc(String label) { + for (StockTypeEnum stockTypeEnum : values()) { + if (stockTypeEnum.getLabel().equals(label)){ + return stockTypeEnum.getDesc(); + } + } + return ""; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/TradeStatusEnum.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/TradeStatusEnum.java new file mode 100644 index 0000000..5e057d1 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/TradeStatusEnum.java @@ -0,0 +1,58 @@ +package com.ruoyi.common.enums; + +/** + * 支付状态 + */ +public enum TradeStatusEnum { + + // 交易成功 + TRADE_SUCCESS("TRADE_SUCCESS", 10), + SUCCESS("SUCCESS", 10), + // 用户待支付 + WAIT_BUYER_PAY("WAIT_BUYER_PAY", 20), + NOTPAY("NOTPAY", 20), + // 交易关闭 + TRADE_CLOSED("TRADE_CLOSED", 30), + CLOSED("CLOSED", 30), + // 交易结束 + TRADE_FINISHED("TRADE_FINISHED", 40), + // 未知状态码 + UNKNOWN("UNKNOWN", -1); + + public static int dealTradeStatus(String code) { + for (TradeStatusEnum tradeStatus : values()) { + if (tradeStatus.getCode().equals(code)) { + return tradeStatus.getStatus(); + } + } + return UNKNOWN.getStatus(); + } + + TradeStatusEnum(String code, Integer status) { + this.code = code; + this.status = status; + } + + private String code; + + private Integer status; + + public String getCode() { + return code; + } + + public TradeStatusEnum setCode(String code) { + this.code = code; + return this; + } + + public Integer getStatus() { + return status; + } + + public TradeStatusEnum setStatus(Integer status) { + this.status = status; + return this; + } + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/UserStatus.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/UserStatus.java new file mode 100644 index 0000000..d7ff44a --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/UserStatus.java @@ -0,0 +1,30 @@ +package com.ruoyi.common.enums; + +/** + * 用户状态 + * + * @author ruoyi + */ +public enum UserStatus +{ + OK("0", "正常"), DISABLE("1", "停用"), DELETED("2", "删除"); + + private final String code; + private final String info; + + UserStatus(String code, String info) + { + this.code = code; + this.info = info; + } + + public String getCode() + { + return code; + } + + public String getInfo() + { + return info; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/DemoModeException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/DemoModeException.java new file mode 100644 index 0000000..f6ad2ab --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/DemoModeException.java @@ -0,0 +1,15 @@ +package com.ruoyi.common.exception; + +/** + * 演示模式异常 + * + * @author ruoyi + */ +public class DemoModeException extends RuntimeException +{ + private static final long serialVersionUID = 1L; + + public DemoModeException() + { + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/GlobalException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/GlobalException.java new file mode 100644 index 0000000..211441b --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/GlobalException.java @@ -0,0 +1,58 @@ +package com.ruoyi.common.exception; + +/** + * 全局异常 + * + * @author ruoyi + */ +public class GlobalException extends RuntimeException +{ + + private static final long serialVersionUID = 1L; + + /** + * 错误提示 + */ + private String message; + + /** + * 错误明细,内部调试错误 + * + * 和 {@link CommonResult#getDetailMessage()} 一致的设计 + */ + private String detailMessage; + + /** + * 空构造方法,避免反序列化问题 + */ + public GlobalException() + { + } + + public GlobalException(String message) + { + this.message = message; + } + + public String getDetailMessage() + { + return detailMessage; + } + + public GlobalException setDetailMessage(String detailMessage) + { + this.detailMessage = detailMessage; + return this; + } + + public String getMessage() + { + return message; + } + + public GlobalException setMessage(String message) + { + this.message = message; + return this; + } +} \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/ServiceException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/ServiceException.java new file mode 100644 index 0000000..6297f87 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/ServiceException.java @@ -0,0 +1,73 @@ +package com.ruoyi.common.exception; + +/** + * 业务异常 + * + * @author ruoyi + */ +public final class ServiceException extends RuntimeException +{ + private static final long serialVersionUID = 1L; + + /** + * 错误码 + */ + private Integer code; + + /** + * 错误提示 + */ + private String message; + + /** + * 错误明细,内部调试错误 + * + * 和 {@link CommonResult#getDetailMessage()} 一致的设计 + */ + private String detailMessage; + + /** + * 空构造方法,避免反序列化问题 + */ + public ServiceException() + { + } + + public ServiceException(String message) + { + this.message = message; + } + + public ServiceException(String message, Integer code) + { + this.message = message; + this.code = code; + } + + public String getDetailMessage() + { + return detailMessage; + } + + public String getMessage() + { + return message; + } + + public Integer getCode() + { + return code; + } + + public ServiceException setMessage(String message) + { + this.message = message; + return this; + } + + public ServiceException setDetailMessage(String detailMessage) + { + this.detailMessage = detailMessage; + return this; + } +} \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/UtilException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/UtilException.java new file mode 100644 index 0000000..980fa46 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/UtilException.java @@ -0,0 +1,26 @@ +package com.ruoyi.common.exception; + +/** + * 工具类异常 + * + * @author ruoyi + */ +public class UtilException extends RuntimeException +{ + private static final long serialVersionUID = 8247610319171014183L; + + public UtilException(Throwable e) + { + super(e.getMessage(), e); + } + + public UtilException(String message) + { + super(message); + } + + public UtilException(String message, Throwable throwable) + { + super(message, throwable); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/base/BaseException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/base/BaseException.java new file mode 100644 index 0000000..8e6cee5 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/base/BaseException.java @@ -0,0 +1,103 @@ +package com.ruoyi.common.exception.base; + +import com.ruoyi.common.utils.MessageUtils; +import com.ruoyi.common.utils.StringUtils; +import lombok.extern.slf4j.Slf4j; + +/** + * 基础异常 + * + * @author ruoyi + */ +@Slf4j +public class BaseException extends RuntimeException +{ + private static final long serialVersionUID = 1L; + + /** + * 所属模块 + */ + private String module; + + /** + * 错误码 + */ + private String code; + + /** + * 错误码对应的参数 + */ + private Object[] args; + + /** + * 错误消息 + */ + private String defaultMessage; + + public BaseException(String module, String code, Object[] args, String defaultMessage) + { + this.module = module; + this.code = code; + this.args = args; + this.defaultMessage = defaultMessage; + } + + public BaseException(String module, String code, Object[] args) + { + this(module, code, args, null); + } + + public BaseException(String module, String defaultMessage) + { + this(module, null, null, defaultMessage); + } + + public BaseException(String code, Object[] args) + { + this(null, code, args, null); + } + + public BaseException(String defaultMessage) + { + this(null, null, null, defaultMessage); + } + + @Override + public String getMessage() + { + String message = null; + if (!StringUtils.isEmpty(code)) { + try { + message = MessageUtils.message(code, args); + } catch (Exception e) { + log.error("国际化code:{} 处理异常", code, e); + message = code; + } + } + if (message == null) + { + message = defaultMessage; + } + return message; + } + + public String getModule() + { + return module; + } + + public String getCode() + { + return code; + } + + public Object[] getArgs() + { + return args; + } + + public String getDefaultMessage() + { + return defaultMessage; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/FileException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/FileException.java new file mode 100644 index 0000000..871f09b --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/FileException.java @@ -0,0 +1,19 @@ +package com.ruoyi.common.exception.file; + +import com.ruoyi.common.exception.base.BaseException; + +/** + * 文件信息异常类 + * + * @author ruoyi + */ +public class FileException extends BaseException +{ + private static final long serialVersionUID = 1L; + + public FileException(String code, Object[] args) + { + super("file", code, args, null); + } + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/FileNameLengthLimitExceededException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/FileNameLengthLimitExceededException.java new file mode 100644 index 0000000..70e0ec9 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/FileNameLengthLimitExceededException.java @@ -0,0 +1,16 @@ +package com.ruoyi.common.exception.file; + +/** + * 文件名称超长限制异常类 + * + * @author ruoyi + */ +public class FileNameLengthLimitExceededException extends FileException +{ + private static final long serialVersionUID = 1L; + + public FileNameLengthLimitExceededException(int defaultFileNameLength) + { + super("upload.filename.exceed.length", new Object[] { defaultFileNameLength }); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/FileSizeLimitExceededException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/FileSizeLimitExceededException.java new file mode 100644 index 0000000..ec6ab05 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/FileSizeLimitExceededException.java @@ -0,0 +1,16 @@ +package com.ruoyi.common.exception.file; + +/** + * 文件名大小限制异常类 + * + * @author ruoyi + */ +public class FileSizeLimitExceededException extends FileException +{ + private static final long serialVersionUID = 1L; + + public FileSizeLimitExceededException(long defaultMaxSize) + { + super("upload.exceed.maxSize", new Object[] { defaultMaxSize }); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/InvalidExtensionException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/InvalidExtensionException.java new file mode 100644 index 0000000..f1c8e83 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/InvalidExtensionException.java @@ -0,0 +1,81 @@ +package com.ruoyi.common.exception.file; + +import java.util.Arrays; +import org.apache.commons.fileupload.FileUploadException; + +/** + * 文件上传 误异常类 + * + * @author ruoyi + */ +public class InvalidExtensionException extends FileUploadException +{ + private static final long serialVersionUID = 1L; + + private String[] allowedExtension; + private String extension; + private String filename; + + public InvalidExtensionException(String[] allowedExtension, String extension, String filename) + { + super("filename : [" + filename + "], extension : [" + extension + "], allowed extension : [" + Arrays.toString(allowedExtension) + "]"); + this.allowedExtension = allowedExtension; + this.extension = extension; + this.filename = filename; + } + + public String[] getAllowedExtension() + { + return allowedExtension; + } + + public String getExtension() + { + return extension; + } + + public String getFilename() + { + return filename; + } + + public static class InvalidImageExtensionException extends InvalidExtensionException + { + private static final long serialVersionUID = 1L; + + public InvalidImageExtensionException(String[] allowedExtension, String extension, String filename) + { + super(allowedExtension, extension, filename); + } + } + + public static class InvalidFlashExtensionException extends InvalidExtensionException + { + private static final long serialVersionUID = 1L; + + public InvalidFlashExtensionException(String[] allowedExtension, String extension, String filename) + { + super(allowedExtension, extension, filename); + } + } + + public static class InvalidMediaExtensionException extends InvalidExtensionException + { + private static final long serialVersionUID = 1L; + + public InvalidMediaExtensionException(String[] allowedExtension, String extension, String filename) + { + super(allowedExtension, extension, filename); + } + } + + public static class InvalidVideoExtensionException extends InvalidExtensionException + { + private static final long serialVersionUID = 1L; + + public InvalidVideoExtensionException(String[] allowedExtension, String extension, String filename) + { + super(allowedExtension, extension, filename); + } + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/job/TaskException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/job/TaskException.java new file mode 100644 index 0000000..a567b40 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/job/TaskException.java @@ -0,0 +1,34 @@ +package com.ruoyi.common.exception.job; + +/** + * 计划策略异常 + * + * @author ruoyi + */ +public class TaskException extends Exception +{ + private static final long serialVersionUID = 1L; + + private Code code; + + public TaskException(String msg, Code code) + { + this(msg, code, null); + } + + public TaskException(String msg, Code code, Exception nestedEx) + { + super(msg, nestedEx); + this.code = code; + } + + public Code getCode() + { + return code; + } + + public enum Code + { + TASK_EXISTS, NO_TASK_EXISTS, TASK_ALREADY_STARTED, UNKNOWN, CONFIG_ERROR, TASK_NODE_NOT_AVAILABLE + } +} \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/sms/SmsException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/sms/SmsException.java new file mode 100644 index 0000000..9d66156 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/sms/SmsException.java @@ -0,0 +1,17 @@ +package com.ruoyi.common.exception.sms; + + +/** + * Sms异常类 + * + * @author Lion Li + */ +public class SmsException extends RuntimeException { + + private static final long serialVersionUID = 1L; + + public SmsException(String msg) { + super(msg); + } + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/user/CaptchaException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/user/CaptchaException.java new file mode 100644 index 0000000..389dbc7 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/user/CaptchaException.java @@ -0,0 +1,16 @@ +package com.ruoyi.common.exception.user; + +/** + * 验证码错误异常类 + * + * @author ruoyi + */ +public class CaptchaException extends UserException +{ + private static final long serialVersionUID = 1L; + + public CaptchaException() + { + super("user.jcaptcha.error", null); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/user/CaptchaExpireException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/user/CaptchaExpireException.java new file mode 100644 index 0000000..85f9486 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/user/CaptchaExpireException.java @@ -0,0 +1,16 @@ +package com.ruoyi.common.exception.user; + +/** + * 验证码失效异常类 + * + * @author ruoyi + */ +public class CaptchaExpireException extends UserException +{ + private static final long serialVersionUID = 1L; + + public CaptchaExpireException() + { + super("user.jcaptcha.expire", null); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/user/UserException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/user/UserException.java new file mode 100644 index 0000000..c292d70 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/user/UserException.java @@ -0,0 +1,18 @@ +package com.ruoyi.common.exception.user; + +import com.ruoyi.common.exception.base.BaseException; + +/** + * 用户信息异常类 + * + * @author ruoyi + */ +public class UserException extends BaseException +{ + private static final long serialVersionUID = 1L; + + public UserException(String code, Object[] args) + { + super("user", code, args, null); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/user/UserPasswordNotMatchException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/user/UserPasswordNotMatchException.java new file mode 100644 index 0000000..a7f3e5f --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/user/UserPasswordNotMatchException.java @@ -0,0 +1,16 @@ +package com.ruoyi.common.exception.user; + +/** + * 用户密码不正确或不符合规范异常类 + * + * @author ruoyi + */ +public class UserPasswordNotMatchException extends UserException +{ + private static final long serialVersionUID = 1L; + + public UserPasswordNotMatchException() + { + super("user.password.not.match", null); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java new file mode 100644 index 0000000..a1bcfe2 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java @@ -0,0 +1,52 @@ +package com.ruoyi.common.filter; + +import java.io.IOException; +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import org.springframework.http.MediaType; +import com.ruoyi.common.utils.StringUtils; + +/** + * Repeatable 过滤器 + * + * @author ruoyi + */ +public class RepeatableFilter implements Filter +{ + @Override + public void init(FilterConfig filterConfig) throws ServletException + { + + } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws IOException, ServletException + { + ServletRequest requestWrapper = null; + if (request instanceof HttpServletRequest + && StringUtils.startsWithIgnoreCase(request.getContentType(), MediaType.APPLICATION_JSON_VALUE)) + { + requestWrapper = new RepeatedlyRequestWrapper((HttpServletRequest) request, response); + } + if (null == requestWrapper) + { + chain.doFilter(request, response); + } + else + { + chain.doFilter(requestWrapper, response); + } + } + + @Override + public void destroy() + { + + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java new file mode 100644 index 0000000..614c24c --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java @@ -0,0 +1,75 @@ +package com.ruoyi.common.filter; + +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import javax.servlet.ReadListener; +import javax.servlet.ServletInputStream; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; +import com.ruoyi.common.utils.http.HttpHelper; + +/** + * 构建可重复读取inputStream的request + * + * @author ruoyi + */ +public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper +{ + private final byte[] body; + + public RepeatedlyRequestWrapper(HttpServletRequest request, ServletResponse response) throws IOException + { + super(request); + request.setCharacterEncoding("UTF-8"); + response.setCharacterEncoding("UTF-8"); + + body = HttpHelper.getBodyString(request).getBytes("UTF-8"); + } + + @Override + public BufferedReader getReader() throws IOException + { + return new BufferedReader(new InputStreamReader(getInputStream())); + } + + @Override + public ServletInputStream getInputStream() throws IOException + { + final ByteArrayInputStream bais = new ByteArrayInputStream(body); + return new ServletInputStream() + { + @Override + public int read() throws IOException + { + return bais.read(); + } + + @Override + public int available() throws IOException + { + return body.length; + } + + @Override + public boolean isFinished() + { + return false; + } + + @Override + public boolean isReady() + { + return false; + } + + @Override + public void setReadListener(ReadListener readListener) + { + + } + }; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java new file mode 100644 index 0000000..99323ed --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java @@ -0,0 +1,74 @@ +package com.ruoyi.common.filter; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import com.ruoyi.common.utils.StringUtils; + +/** + * 防止XSS攻击的过滤器 + * + * @author ruoyi + */ +public class XssFilter implements Filter +{ + /** + * 排除链接 + */ + public List excludes = new ArrayList<>(); + + @Override + public void init(FilterConfig filterConfig) throws ServletException + { + String tempExcludes = filterConfig.getInitParameter("excludes"); + if (StringUtils.isNotEmpty(tempExcludes)) + { + String[] url = tempExcludes.split(","); + for (int i = 0; url != null && i < url.length; i++) + { + excludes.add(url[i]); + } + } + } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws IOException, ServletException + { + HttpServletRequest req = (HttpServletRequest) request; + HttpServletResponse resp = (HttpServletResponse) response; + if (handleExcludeURL(req, resp)) + { + chain.doFilter(request, response); + return; + } + XssHttpServletRequestWrapper xssRequest = new XssHttpServletRequestWrapper((HttpServletRequest) request); + chain.doFilter(xssRequest, response); + } + + private boolean handleExcludeURL(HttpServletRequest request, HttpServletResponse response) + { + String url = request.getServletPath(); + String method = request.getMethod(); + // GET DELETE 不过滤 + if (method == null || method.matches("GET") || method.matches("DELETE")) + { + return true; + } + return StringUtils.matches(url, excludes); + } + + @Override + public void destroy() + { + + } +} \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java new file mode 100644 index 0000000..b1eeb65 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java @@ -0,0 +1,111 @@ +package com.ruoyi.common.filter; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import javax.servlet.ReadListener; +import javax.servlet.ServletInputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; +import org.apache.commons.io.IOUtils; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.html.EscapeUtil; + +/** + * XSS过滤处理 + * + * @author ruoyi + */ +public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper +{ + /** + * @param request + */ + public XssHttpServletRequestWrapper(HttpServletRequest request) + { + super(request); + } + + @Override + public String[] getParameterValues(String name) + { + String[] values = super.getParameterValues(name); + if (values != null) + { + int length = values.length; + String[] escapseValues = new String[length]; + for (int i = 0; i < length; i++) + { + // 防xss攻击和过滤前后空格 + escapseValues[i] = EscapeUtil.clean(values[i]).trim(); + } + return escapseValues; + } + return super.getParameterValues(name); + } + + @Override + public ServletInputStream getInputStream() throws IOException + { + // 非json类型,直接返回 + if (!isJsonRequest()) + { + return super.getInputStream(); + } + + // 为空,直接返回 + String json = IOUtils.toString(super.getInputStream(), "utf-8"); + if (StringUtils.isEmpty(json)) + { + return super.getInputStream(); + } + + // xss过滤 + json = EscapeUtil.clean(json).trim(); + byte[] jsonBytes = json.getBytes("utf-8"); + final ByteArrayInputStream bis = new ByteArrayInputStream(jsonBytes); + return new ServletInputStream() + { + @Override + public boolean isFinished() + { + return true; + } + + @Override + public boolean isReady() + { + return true; + } + + @Override + public int available() throws IOException + { + return jsonBytes.length; + } + + @Override + public void setReadListener(ReadListener readListener) + { + } + + @Override + public int read() throws IOException + { + return bis.read(); + } + }; + } + + /** + * 是否是Json请求 + * + * @param request + */ + public boolean isJsonRequest() + { + String header = super.getHeader(HttpHeaders.CONTENT_TYPE); + return StringUtils.startsWithIgnoreCase(header, MediaType.APPLICATION_JSON_VALUE); + } +} \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/pojo/query/WechatVM.java b/ruoyi-common/src/main/java/com/ruoyi/common/pojo/query/WechatVM.java new file mode 100644 index 0000000..c960052 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/pojo/query/WechatVM.java @@ -0,0 +1,9 @@ +package com.ruoyi.common.pojo.query; + +import lombok.Data; + +@Data +public class WechatVM { + private String code; + private String state; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/AesCryptoUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/AesCryptoUtils.java new file mode 100644 index 0000000..e908fd3 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/AesCryptoUtils.java @@ -0,0 +1,30 @@ +package com.ruoyi.common.utils; + +import cn.hutool.core.util.CharsetUtil; +import cn.hutool.crypto.SecureUtil; +import cn.hutool.crypto.symmetric.AES; + +/** + * aes加密工具 + */ +public class AesCryptoUtils { + + public static String encrypt(String key, String content){ + SecureUtil.disableBouncyCastle(); + if (StringUtils.isBlank(key) || StringUtils.isBlank(content)){ + throw new RuntimeException("错误"); + } + AES aes = SecureUtil.aes(key.getBytes()); + byte[] encrypt = aes.encrypt(content); + return aes.encryptHex(content); + } + + public static String decrypt(String key, String content){ + SecureUtil.disableBouncyCastle(); + if (StringUtils.isBlank(key) || StringUtils.isBlank(content)){ + throw new RuntimeException("错误"); + } + AES aes = SecureUtil.aes(key.getBytes()); + return aes.decryptStr(content, CharsetUtil.CHARSET_UTF_8); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/Arith.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/Arith.java new file mode 100644 index 0000000..b6326c2 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/Arith.java @@ -0,0 +1,114 @@ +package com.ruoyi.common.utils; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +/** + * 精确的浮点数运算 + * + * @author ruoyi + */ +public class Arith +{ + + /** 默认除法运算精度 */ + private static final int DEF_DIV_SCALE = 10; + + /** 这个类不能实例化 */ + private Arith() + { + } + + /** + * 提供精确的加法运算。 + * @param v1 被加数 + * @param v2 加数 + * @return 两个参数的和 + */ + public static double add(double v1, double v2) + { + BigDecimal b1 = new BigDecimal(Double.toString(v1)); + BigDecimal b2 = new BigDecimal(Double.toString(v2)); + return b1.add(b2).doubleValue(); + } + + /** + * 提供精确的减法运算。 + * @param v1 被减数 + * @param v2 减数 + * @return 两个参数的差 + */ + public static double sub(double v1, double v2) + { + BigDecimal b1 = new BigDecimal(Double.toString(v1)); + BigDecimal b2 = new BigDecimal(Double.toString(v2)); + return b1.subtract(b2).doubleValue(); + } + + /** + * 提供精确的乘法运算。 + * @param v1 被乘数 + * @param v2 乘数 + * @return 两个参数的积 + */ + public static double mul(double v1, double v2) + { + BigDecimal b1 = new BigDecimal(Double.toString(v1)); + BigDecimal b2 = new BigDecimal(Double.toString(v2)); + return b1.multiply(b2).doubleValue(); + } + + /** + * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 + * 小数点以后10位,以后的数字四舍五入。 + * @param v1 被除数 + * @param v2 除数 + * @return 两个参数的商 + */ + public static double div(double v1, double v2) + { + return div(v1, v2, DEF_DIV_SCALE); + } + + /** + * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 + * 定精度,以后的数字四舍五入。 + * @param v1 被除数 + * @param v2 除数 + * @param scale 表示表示需要精确到小数点以后几位。 + * @return 两个参数的商 + */ + public static double div(double v1, double v2, int scale) + { + if (scale < 0) + { + throw new IllegalArgumentException( + "The scale must be a positive integer or zero"); + } + BigDecimal b1 = new BigDecimal(Double.toString(v1)); + BigDecimal b2 = new BigDecimal(Double.toString(v2)); + if (b1.compareTo(BigDecimal.ZERO) == 0) + { + return BigDecimal.ZERO.doubleValue(); + } + return b1.divide(b2, scale, RoundingMode.HALF_UP).doubleValue(); + } + + /** + * 提供精确的小数位四舍五入处理。 + * @param v 需要四舍五入的数字 + * @param scale 小数点后保留几位 + * @return 四舍五入后的结果 + */ + public static double round(double v, int scale) + { + if (scale < 0) + { + throw new IllegalArgumentException( + "The scale must be a positive integer or zero"); + } + BigDecimal b = new BigDecimal(Double.toString(v)); + BigDecimal one = BigDecimal.ONE; + return b.divide(one, scale, RoundingMode.HALF_UP).doubleValue(); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java new file mode 100644 index 0000000..51b563d --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java @@ -0,0 +1,173 @@ +package com.ruoyi.common.utils; + +import java.lang.management.ManagementFactory; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.time.temporal.ChronoUnit; +import java.util.Date; +import org.apache.commons.lang3.time.DateFormatUtils; + +/** + * 时间工具类 + * + * @author ruoyi + */ +public class DateUtils extends org.apache.commons.lang3.time.DateUtils +{ + public static String YYYY = "yyyy"; + + public static String YYYY_MM = "yyyy-MM"; + + public static String YYYY_MM_DD = "yyyy-MM-dd"; + + public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; + + public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; + + private static String[] parsePatterns = { + "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", + "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", + "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"}; + + /** + * 获取当前Date型日期 + * + * @return Date() 当前日期 + */ + public static Date getNowDate() + { + return new Date(); + } + + /** + * 获取当前日期, 默认格式为yyyy-MM-dd + * + * @return String + */ + public static String getDate() + { + return dateTimeNow(YYYY_MM_DD); + } + + public static final String getTime() + { + return dateTimeNow(YYYY_MM_DD_HH_MM_SS); + } + + public static final String dateTimeNow() + { + return dateTimeNow(YYYYMMDDHHMMSS); + } + + public static final String dateTimeNow(final String format) + { + return parseDateToStr(format, new Date()); + } + + public static final String dateTime(final Date date) + { + return parseDateToStr(YYYY_MM_DD, date); + } + + public static final String parseDateToStr(final String format, final Date date) + { + return new SimpleDateFormat(format).format(date); + } + + public static final String parseDateToStr(final String format, final LocalDateTime date) + { + return DateTimeFormatter.ofPattern(format).format(date); + } + + public static final Date dateTime(final String format, final String ts) + { + try + { + return new SimpleDateFormat(format).parse(ts); + } + catch (ParseException e) + { + throw new RuntimeException(e); + } + } + + /** + * 日期路径 即年/月/日 如2018/08/08 + */ + public static final String datePath() + { + Date now = new Date(); + return DateFormatUtils.format(now, "yyyy/MM/dd"); + } + + /** + * 日期路径 即年/月/日 如20180808 + */ + public static final String dateTime() + { + Date now = new Date(); + return DateFormatUtils.format(now, "yyyyMMdd"); + } + + /** + * 日期型字符串转化为日期 格式 + */ + public static Date parseDate(Object str) + { + if (str == null) + { + return null; + } + try + { + return parseDate(str.toString(), parsePatterns); + } + catch (ParseException e) + { + return null; + } + } + + /** + * 获取服务器启动时间 + */ + public static Date getServerStartDate() + { + long time = ManagementFactory.getRuntimeMXBean().getStartTime(); + return new Date(time); + } + + /** + * 计算两个时间差 + */ + public static String getDatePoor(Date endDate, Date nowDate) + { + long nd = 1000 * 24 * 60 * 60; + long nh = 1000 * 60 * 60; + long nm = 1000 * 60; + // long ns = 1000; + // 获得两个时间的毫秒时间差异 + long diff = endDate.getTime() - nowDate.getTime(); + // 计算差多少天 + long day = diff / nd; + // 计算差多少小时 + long hour = diff % nd / nh; + // 计算差多少分钟 + long min = diff % nd % nh / nm; + // 计算差多少秒//输出结果 + // long sec = diff % nd % nh % nm / ns; + return day + "天" + hour + "小时" + min + "分钟"; + } + + /** + * 获取2个时间间隔天数 + * @param beginTime + * @param endTime + * @return + */ + public static Long betweenDay(LocalDateTime beginTime, LocalDateTime endTime){ + return ChronoUnit.DAYS.between(beginTime.toLocalDate().atStartOfDay(),endTime.toLocalDate().atStartOfDay()); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java new file mode 100644 index 0000000..fd9946d --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java @@ -0,0 +1,183 @@ +package com.ruoyi.common.utils; + +import java.util.Collection; +import java.util.List; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.entity.SysDictData; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.utils.spring.SpringUtils; + +/** + * 字典工具类 + * + * @author ruoyi + */ +public class DictUtils +{ + /** + * 分隔符 + */ + public static final String SEPARATOR = ","; + + /** + * 设置字典缓存 + * + * @param key 参数键 + * @param dictDatas 字典数据列表 + */ + public static void setDictCache(String key, List dictDatas) + { + SpringUtils.getBean(RedisCache.class).setCacheObject(getCacheKey(key), dictDatas); + } + + /** + * 获取字典缓存 + * + * @param key 参数键 + * @return dictDatas 字典数据列表 + */ + public static List getDictCache(String key) + { + Object cacheObj = SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key)); + if (StringUtils.isNotNull(cacheObj)) + { + List dictDatas = StringUtils.cast(cacheObj); + return dictDatas; + } + return null; + } + + /** + * 根据字典类型和字典值获取字典标签 + * + * @param dictType 字典类型 + * @param dictValue 字典值 + * @return 字典标签 + */ + public static String getDictLabel(String dictType, String dictValue) + { + return getDictLabel(dictType, dictValue, SEPARATOR); + } + + /** + * 根据字典类型和字典标签获取字典值 + * + * @param dictType 字典类型 + * @param dictLabel 字典标签 + * @return 字典值 + */ + public static String getDictValue(String dictType, String dictLabel) + { + return getDictValue(dictType, dictLabel, SEPARATOR); + } + + /** + * 根据字典类型和字典值获取字典标签 + * + * @param dictType 字典类型 + * @param dictValue 字典值 + * @param separator 分隔符 + * @return 字典标签 + */ + public static String getDictLabel(String dictType, String dictValue, String separator) + { + StringBuilder propertyString = new StringBuilder(); + List datas = getDictCache(dictType); + + if (StringUtils.containsAny(separator, dictValue) && StringUtils.isNotEmpty(datas)) + { + for (SysDictData dict : datas) + { + for (String value : dictValue.split(separator)) + { + if (value.equals(dict.getDictValue())) + { + propertyString.append(dict.getDictLabel() + separator); + break; + } + } + } + } + else + { + for (SysDictData dict : datas) + { + if (dictValue.equals(dict.getDictValue())) + { + return dict.getDictLabel(); + } + } + } + return StringUtils.stripEnd(propertyString.toString(), separator); + } + + /** + * 根据字典类型和字典标签获取字典值 + * + * @param dictType 字典类型 + * @param dictLabel 字典标签 + * @param separator 分隔符 + * @return 字典值 + */ + public static String getDictValue(String dictType, String dictLabel, String separator) + { + StringBuilder propertyString = new StringBuilder(); + List datas = getDictCache(dictType); + + if (StringUtils.containsAny(separator, dictLabel) && StringUtils.isNotEmpty(datas)) + { + for (SysDictData dict : datas) + { + for (String label : dictLabel.split(separator)) + { + if (label.equals(dict.getDictLabel())) + { + propertyString.append(dict.getDictValue() + separator); + break; + } + } + } + } + else + { + for (SysDictData dict : datas) + { + if (dictLabel.equals(dict.getDictLabel())) + { + return dict.getDictValue(); + } + } + } + return StringUtils.stripEnd(propertyString.toString(), separator); + } + + /** + * 删除指定字典缓存 + * + * @param key 字典键 + */ + public static void removeDictCache(String key) + { + SpringUtils.getBean(RedisCache.class).deleteObject(getCacheKey(key)); + } + + /** + * 清空字典缓存 + */ + public static void clearDictCache() + { + Collection keys = SpringUtils.getBean(RedisCache.class).keys(Constants.SYS_DICT_KEY + "*"); + SpringUtils.getBean(RedisCache.class).deleteObject(keys); + } + + /** + * 设置cache key + * + * @param configKey 参数键 + * @return 缓存键key + */ + public static String getCacheKey(String configKey) + { + return Constants.SYS_DICT_KEY + configKey; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ExceptionUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ExceptionUtil.java new file mode 100644 index 0000000..ae81a69 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ExceptionUtil.java @@ -0,0 +1,40 @@ +package com.ruoyi.common.utils; + +import java.io.PrintWriter; +import java.io.StringWriter; +import org.apache.commons.lang3.exception.ExceptionUtils; + +/** + * 错误信息处理类。 + * + * @author ruoyi + */ +public class ExceptionUtil +{ + /** + * 获取exception的详细错误信息。 + */ + public static String getExceptionMessage(Throwable e) + { + StringWriter sw = new StringWriter(); + e.printStackTrace(new PrintWriter(sw, true)); + String str = sw.toString(); + return str; + } + + public static String getRootErrorMessage(Exception e) + { + Throwable root = ExceptionUtils.getRootCause(e); + root = (root == null ? e : root); + if (root == null) + { + return ""; + } + String msg = root.getMessage(); + if (msg == null) + { + return "null"; + } + return StringUtils.defaultString(msg); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/IDGenerator.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/IDGenerator.java new file mode 100644 index 0000000..133ce2e --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/IDGenerator.java @@ -0,0 +1,104 @@ +package com.ruoyi.common.utils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Created by yangyincong on 15/8/16. + * ID生成器 workId (1~4) + */ +public class IDGenerator { + private final static Logger logger = LoggerFactory.getLogger(IDGenerator.class); + private final static long twepoch = 1361753741828L; + private final static long workerIdBits = 4L; + private final static long maxWorkerId = -1L ^ -1L << workerIdBits; + private final static long sequenceBits = 10L; + private long workerId; + private long sequence = 0L; + + private final static long workerIdShift = sequenceBits; + private final static long timestampLeftShift = sequenceBits + workerIdBits; + private final static long sequenceMask = -1L ^ -1L << sequenceBits; + + private long lastTimestamp = -1L; + + private IDGenerator(final long workerId) { + super(); + this.workerId = workerId; + } + + public static long generateMinId(int wid, long time) { + return (time - twepoch << timestampLeftShift) | (wid << workerIdShift); + } + + public synchronized long nextId() { + long timestamp = this.timeGen(); + if (this.lastTimestamp == timestamp) { + this.sequence = (this.sequence + 1) & sequenceMask; + if (this.sequence == 0) { + timestamp = this.tilNextMillis(this.lastTimestamp); + } + } else { + this.sequence = 0; + } + if (timestamp < this.lastTimestamp) { + try { + throw new Exception( + String.format( + "Clock moved backwards. Refusing to generate id for %d milliseconds", + this.lastTimestamp - timestamp)); + } catch (Exception e) { + e.printStackTrace(); + } + } + + this.lastTimestamp = timestamp; + long nextId = ((timestamp - twepoch << timestampLeftShift)) + | (this.workerId << workerIdShift) | (this.sequence); + return nextId; + } + + public static long generateMaxId(long wid, long time) { + return (time - twepoch << timestampLeftShift) | (wid << workerIdShift) | sequenceMask; + } + + private long tilNextMillis(final long lastTimestamp) { + long timestamp = this.timeGen(); + while (timestamp <= lastTimestamp) { + timestamp = this.timeGen(); + } + return timestamp; + } + + private long timeGen() { + return System.currentTimeMillis(); + } + + private static IDGenerator generator; + + public static synchronized void init(Long workerId) throws Exception { + workerId = workerId % maxWorkerId; + logger.info("程序中init的workid为:{}", workerId); + if (workerId > maxWorkerId || workerId < 0) { + throw new IllegalArgumentException(String.format( + "worker Id can't be greater than %d or less than 0", + IDGenerator.maxWorkerId)); + } + generator = new IDGenerator(workerId); + } + + public static Long generateId() { + if (null == generator) { + synchronized (IDGenerator.class) { + if (null == generator) { + try { + init(2L); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + return generator.nextId(); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/JsonUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/JsonUtils.java new file mode 100644 index 0000000..e5c471e --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/JsonUtils.java @@ -0,0 +1,112 @@ +package com.ruoyi.common.utils; + +import cn.hutool.core.lang.Dict; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.exc.MismatchedInputException; +import com.ruoyi.common.utils.spring.SpringUtils; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * JSON 工具类 + * + * @author 芋道源码 + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class JsonUtils { + + private static final ObjectMapper OBJECT_MAPPER = SpringUtils.getBean(ObjectMapper.class); + + public static ObjectMapper getObjectMapper() { + return OBJECT_MAPPER; + } + + public static String toJsonString(Object object) { + if (ObjectUtil.isNull(object)) { + return null; + } + try { + return OBJECT_MAPPER.writeValueAsString(object); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + public static T parseObject(String text, Class clazz) { + if (StringUtils.isEmpty(text)) { + return null; + } + try { + return OBJECT_MAPPER.readValue(text, clazz); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public static T parseObject(byte[] bytes, Class clazz) { + if (ArrayUtil.isEmpty(bytes)) { + return null; + } + try { + return OBJECT_MAPPER.readValue(bytes, clazz); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public static T parseObject(String text, TypeReference typeReference) { + if (StringUtils.isBlank(text)) { + return null; + } + try { + return OBJECT_MAPPER.readValue(text, typeReference); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public static Dict parseMap(String text) { + if (StringUtils.isBlank(text)) { + return null; + } + try { + return OBJECT_MAPPER.readValue(text, OBJECT_MAPPER.getTypeFactory().constructType(Dict.class)); + } catch (MismatchedInputException e) { + // 类型不匹配说明不是json + return null; + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public static List parseArrayMap(String text) { + if (StringUtils.isBlank(text)) { + return null; + } + try { + return OBJECT_MAPPER.readValue(text, OBJECT_MAPPER.getTypeFactory().constructCollectionType(List.class, Dict.class)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public static List parseArray(String text, Class clazz) { + if (StringUtils.isEmpty(text)) { + return new ArrayList<>(); + } + try { + return OBJECT_MAPPER.readValue(text, OBJECT_MAPPER.getTypeFactory().constructCollectionType(List.class, clazz)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/LogUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/LogUtils.java new file mode 100644 index 0000000..0de30c6 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/LogUtils.java @@ -0,0 +1,18 @@ +package com.ruoyi.common.utils; + +/** + * 处理并记录日志文件 + * + * @author ruoyi + */ +public class LogUtils +{ + public static String getBlock(Object msg) + { + if (msg == null) + { + msg = ""; + } + return "[" + msg.toString() + "]"; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/MessageUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/MessageUtils.java new file mode 100644 index 0000000..7dac75a --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/MessageUtils.java @@ -0,0 +1,26 @@ +package com.ruoyi.common.utils; + +import org.springframework.context.MessageSource; +import org.springframework.context.i18n.LocaleContextHolder; +import com.ruoyi.common.utils.spring.SpringUtils; + +/** + * 获取i18n资源文件 + * + * @author ruoyi + */ +public class MessageUtils +{ + /** + * 根据消息键和参数 获取消息 委托给spring messageSource + * + * @param code 消息键 + * @param args 参数 + * @return 获取国际化翻译值 + */ + public static String message(String code, Object... args) + { + MessageSource messageSource = SpringUtils.getBean(MessageSource.class); + return messageSource.getMessage(code, args, LocaleContextHolder.getLocale()); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/OssUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/OssUtils.java new file mode 100644 index 0000000..88a78d6 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/OssUtils.java @@ -0,0 +1,118 @@ +package com.ruoyi.common.utils; + +import cn.hutool.core.date.DateTime; +import com.aliyun.oss.OSS; +import com.aliyun.oss.OSSClientBuilder; +import com.ruoyi.common.utils.uuid.UUID; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +import java.util.ArrayList; +import java.util.List; + +@Component +public class OssUtils { + + @Value("${aliyun.accessKeyId}") + private String accessKeyId; + + @Value("${aliyun.secretAccessKey}") + private String secretAccessKey; + + @Value("${aliyun.oss.endPoint}") + private String endPoint; + + @Value("${aliyun.oss.bucketName}") + private String bucketName; + + @Value("${aliyun.oss.cdnName}") + private String cdnName; + + public String uploadOneFile(MultipartFile file) { + + // 创建OSSClient实例。 + OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, secretAccessKey); + //设置文件名 + String fileName = new DateTime().toString("yyyy/MM/dd") + + UUID.randomUUID().toString().replace("-", "") + + file.getOriginalFilename(); + + try { + // 创建PutObject请求。 + ossClient.putObject(bucketName, fileName, file.getInputStream()); + + String url = "https://" + bucketName + "." + endPoint + "/" + fileName; + if (StringUtils.isNotEmpty(cdnName)) { + url = "https://" + cdnName + "/" + fileName; + } + + return url; + } catch (Exception e) { + e.printStackTrace(); + return null; + } finally { + if (ossClient != null) { + ossClient.shutdown(); + } + } + } + + public List uploadArrayFile(MultipartFile[] files) { + // 创建OSSClient实例。 + OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, secretAccessKey); + List list = new ArrayList<>(); + + try { + //设置文件名 + for (MultipartFile file : files) { + String fileName = new DateTime().toString("yyyy/MM/dd") + + UUID.randomUUID().toString().replace("-", "") + + file.getOriginalFilename(); + // 创建PutObject请求。 + ossClient.putObject(bucketName, fileName, file.getInputStream()); + + String url = "http://" + bucketName + "." + endPoint + "/" + fileName; +// System.out.println(url); + list.add(url); + } + + } catch (Exception e) { + e.printStackTrace(); + return null; + } finally { + if (ossClient != null) { + ossClient.shutdown(); + } + } + return list; + + } + + public boolean deleteFile(String fileUrl) { + + // 创建OSSClient实例。 + OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, secretAccessKey); + /** oss删除文件是根据文件完成路径删除的,但文件完整路径中不能包含Bucket名称。 + * 比如文件路径为:http://edu-czf.oss-cn-guangzhou.aliyuncs.com/2022/08/abc.jpg", + * 则完整路径就是:2022/08/abc.jpg + */ + int begin = ("http://" + bucketName + "." + endPoint + "/").length(); //找到文件路径的开始下标 + String deleteUrl = fileUrl.substring(begin); + + try { + // 删除文件请求 + ossClient.deleteObject(bucketName, deleteUrl); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } finally { + if (ossClient != null) { + ossClient.shutdown(); + } + } + } + +} + diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PhoneUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PhoneUtils.java new file mode 100644 index 0000000..f2fd5bd --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PhoneUtils.java @@ -0,0 +1,14 @@ +package com.ruoyi.common.utils; + +/** + * 手机号工具类 + */ +public class PhoneUtils { + + public static String hidePhone(String phone){ + if (StringUtils.isEmpty(phone) || phone.length() < 11){ + throw new RuntimeException("手机号格式错误"); + } + return phone.substring(0, 3) + "****" + phone.substring(7, 11); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ResponseUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ResponseUtils.java new file mode 100644 index 0000000..692ed61 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ResponseUtils.java @@ -0,0 +1,26 @@ +package com.ruoyi.common.utils; + +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.util.MultiValueMap; + +import java.util.ArrayList; +import java.util.List; + +public class ResponseUtils { + + private static final String MESSAGE = "msg"; + private static final String CODE = "code"; + private static final String DATA = "data"; + + private ResponseUtils(){} + + private static ResponseEntity getEntity(Object body, HttpStatus statusCode){ + MultiValueMap headers = new HttpHeaders(); + List contentType = new ArrayList(); + contentType.add("application/json;charset=utf-8"); + headers.put("Content-Type", contentType); + return new ResponseEntity(body, headers, statusCode); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java new file mode 100644 index 0000000..8a4d152 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java @@ -0,0 +1,119 @@ +package com.ruoyi.common.utils; + +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import com.ruoyi.common.constant.HttpStatus; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.exception.ServiceException; + +/** + * 安全服务工具类 + * + * @author ruoyi + */ +public class SecurityUtils +{ + private static BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); + /** + * 用户ID + **/ + public static Long getUserId() + { + try + { + return getLoginUser().getUserId(); + } + catch (Exception e) + { + throw new ServiceException("获取用户ID异常", HttpStatus.UNAUTHORIZED); + } + } + + /** + * 获取部门ID + **/ + public static Long getDeptId() + { + try + { + return getLoginUser().getDeptId(); + } + catch (Exception e) + { + throw new ServiceException("获取部门ID异常", HttpStatus.UNAUTHORIZED); + } + } + + /** + * 获取用户账户 + **/ + public static String getUsername() + { + try + { + return getLoginUser().getUsername(); + } + catch (Exception e) + { + throw new ServiceException("获取用户账户异常", HttpStatus.UNAUTHORIZED); + } + } + + /** + * 获取用户 + **/ + public static LoginUser getLoginUser() + { + try + { + return (LoginUser) getAuthentication().getPrincipal(); + } + catch (Exception e) + { + throw new ServiceException("获取用户信息异常", HttpStatus.UNAUTHORIZED); + } + } + + /** + * 获取Authentication + */ + public static Authentication getAuthentication() + { + return SecurityContextHolder.getContext().getAuthentication(); + } + + /** + * 生成BCryptPasswordEncoder密码 + * + * @param password 密码 + * @return 加密字符串 + */ + public static String encryptPassword(String password) { + return passwordEncoder.encode(password); + } + + /** + * 判断密码是否相同 + * + * @param rawPassword 真实密码 + * @param encodedPassword 加密后字符 + * @return 结果 + */ + public static boolean matchesPassword(String rawPassword, String encodedPassword) + { + BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); + return passwordEncoder.matches(rawPassword, encodedPassword); + } + + /** + * 是否为管理员 + * + * @param userId 用户ID + * @return 结果 + */ + public static boolean isAdmin(Long userId) + { + return userId != null && 1L == userId; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java new file mode 100644 index 0000000..03576c5 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java @@ -0,0 +1,152 @@ +package com.ruoyi.common.utils; + +import java.io.IOException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import com.ruoyi.common.core.text.Convert; + +/** + * 客户端工具类 + * + * @author ruoyi + */ +public class ServletUtils +{ + /** + * 获取String参数 + */ + public static String getParameter(String name) + { + return getRequest().getParameter(name); + } + + /** + * 获取String参数 + */ + public static String getParameter(String name, String defaultValue) + { + return Convert.toStr(getRequest().getParameter(name), defaultValue); + } + + /** + * 获取Integer参数 + */ + public static Integer getParameterToInt(String name) + { + return Convert.toInt(getRequest().getParameter(name)); + } + + /** + * 获取Integer参数 + */ + public static Integer getParameterToInt(String name, Integer defaultValue) + { + return Convert.toInt(getRequest().getParameter(name), defaultValue); + } + + /** + * 获取Boolean参数 + */ + public static Boolean getParameterToBool(String name) + { + return Convert.toBool(getRequest().getParameter(name)); + } + + /** + * 获取Boolean参数 + */ + public static Boolean getParameterToBool(String name, Boolean defaultValue) + { + return Convert.toBool(getRequest().getParameter(name), defaultValue); + } + + /** + * 获取request + */ + public static HttpServletRequest getRequest() + { + return getRequestAttributes().getRequest(); + } + + /** + * 获取response + */ + public static HttpServletResponse getResponse() + { + return getRequestAttributes().getResponse(); + } + + /** + * 获取session + */ + public static HttpSession getSession() + { + return getRequest().getSession(); + } + + public static ServletRequestAttributes getRequestAttributes() + { + RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); + return (ServletRequestAttributes) attributes; + } + + /** + * 将字符串渲染到客户端 + * + * @param response 渲染对象 + * @param string 待渲染的字符串 + * @return null + */ + public static String renderString(HttpServletResponse response, String string) + { + try + { + response.setStatus(200); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().print(string); + } + catch (IOException e) + { + e.printStackTrace(); + } + return null; + } + + /** + * 是否是Ajax异步请求 + * + * @param request + */ + public static boolean isAjaxRequest(HttpServletRequest request) + { + String accept = request.getHeader("accept"); + if (accept != null && accept.indexOf("application/json") != -1) + { + return true; + } + + String xRequestedWith = request.getHeader("X-Requested-With"); + if (xRequestedWith != null && xRequestedWith.indexOf("XMLHttpRequest") != -1) + { + return true; + } + + String uri = request.getRequestURI(); + if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml")) + { + return true; + } + + String ajax = request.getParameter("__ajax"); + if (StringUtils.inStringIgnoreCase(ajax, "json", "xml")) + { + return true; + } + return false; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtils.java new file mode 100644 index 0000000..beffc1e --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtils.java @@ -0,0 +1,33 @@ +package com.ruoyi.common.utils; + +/** + * @Author: czc + * @Description: TODO + * @DateTime: 2023/6/16 17:50 + **/ +public class SmsUtils { + + public static String createRandom(boolean numberFlag, int length) { + String retStr = ""; + String strTable = numberFlag ? "1234567890" : "1234567890abcdefghijkmnpqrstuvwxyz"; + int len = strTable.length(); + boolean bDone = true; + do { + retStr = ""; + int count = 0; + for (int i = 0; i < length; i++) { + double dblR = Math.random() * len; + int intR = (int) Math.floor(dblR); + char c = strTable.charAt(intR); + if (('0' <= c) && (c <= '9')) { + count++; + } + retStr += strTable.charAt(intR); + } + if (count >= 2) { + bDone = false; + } + } while (bDone); + return retStr; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SortUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SortUtil.java new file mode 100644 index 0000000..537ffc0 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SortUtil.java @@ -0,0 +1,56 @@ +package com.ruoyi.common.utils; + +import com.ruoyi.common.exception.base.BaseException; +import org.springframework.data.domain.Sort; + +import java.util.*; +import java.util.regex.Pattern; + +public class SortUtil { + private static final Pattern COLUMN_REG = Pattern.compile("^[\\w\\_\\d]+$"); + + public static String sort2string(Sort sort) { + return sort2string(sort, Collections.emptyMap()); + } + + public static String sort2stringOrDefault(Sort sort) { + return sort2string(sort, "id desc"); + } + + public static String sort2string(Sort sort, String defaultSort) { + String o = sort2string(sort, Collections.emptyMap()); + return !StringUtils.isEmpty(o) ? o : defaultSort; + } + + public static String sort2string(Sort sort, Map sortColumns) { + Iterator orders = sort.stream().iterator(); + Set cols = new HashSet<>(); + StringBuilder sb = new StringBuilder(); + while (orders.hasNext()) { + Sort.Order it = orders.next(); + String prop = it.getProperty(); + if (!cols.add(prop)) { + continue; + } + if (!COLUMN_REG.matcher(prop).find()) { + throw new BaseException("排序字段错误"); + } + if (sortColumns == null || sortColumns.size() == 0) { + sb.append(prop) + .append(" ") + .append(it.getDirection()) + .append(","); + continue; + } + if (!sortColumns.containsKey(prop)) { + throw new BaseException("排序字段错误"); + } + sb.append(sortColumns.get(prop)) + .append(" ") + .append(it.getDirection()) + .append(","); + } + return sb.length() > 0 ? sb.substring(0, sb.length() - 1) : null; + } +} + diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java new file mode 100644 index 0000000..4ca2bfc --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java @@ -0,0 +1,534 @@ +package com.ruoyi.common.utils; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import org.springframework.util.AntPathMatcher; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.text.StrFormatter; + +/** + * 字符串工具类 + * + * @author ruoyi + */ +public class StringUtils extends org.apache.commons.lang3.StringUtils +{ + /** 空字符串 */ + private static final String NULLSTR = ""; + + /** 下划线 */ + private static final char SEPARATOR = '_'; + + /** + * 获取参数不为空值 + * + * @param value defaultValue 要判断的value + * @return value 返回值 + */ + public static T nvl(T value, T defaultValue) + { + return value != null ? value : defaultValue; + } + + /** + * * 判断一个Collection是否为空, 包含List,Set,Queue + * + * @param coll 要判断的Collection + * @return true:为空 false:非空 + */ + public static boolean isEmpty(Collection coll) + { + return isNull(coll) || coll.isEmpty(); + } + + /** + * * 判断一个Collection是否非空,包含List,Set,Queue + * + * @param coll 要判断的Collection + * @return true:非空 false:空 + */ + public static boolean isNotEmpty(Collection coll) + { + return !isEmpty(coll); + } + + /** + * * 判断一个对象数组是否为空 + * + * @param objects 要判断的对象数组 + ** @return true:为空 false:非空 + */ + public static boolean isEmpty(Object[] objects) + { + return isNull(objects) || (objects.length == 0); + } + + /** + * * 判断一个对象数组是否非空 + * + * @param objects 要判断的对象数组 + * @return true:非空 false:空 + */ + public static boolean isNotEmpty(Object[] objects) + { + return !isEmpty(objects); + } + + /** + * * 判断一个Map是否为空 + * + * @param map 要判断的Map + * @return true:为空 false:非空 + */ + public static boolean isEmpty(Map map) + { + return isNull(map) || map.isEmpty(); + } + + /** + * * 判断一个Map是否为空 + * + * @param map 要判断的Map + * @return true:非空 false:空 + */ + public static boolean isNotEmpty(Map map) + { + return !isEmpty(map); + } + + /** + * * 判断一个字符串是否为空串 + * + * @param str String + * @return true:为空 false:非空 + */ + public static boolean isEmpty(String str) + { + return isNull(str) || NULLSTR.equals(str.trim()); + } + + /** + * * 判断一个字符串是否为非空串 + * + * @param str String + * @return true:非空串 false:空串 + */ + public static boolean isNotEmpty(String str) + { + return !isEmpty(str); + } + + /** + * * 判断一个对象是否为空 + * + * @param object Object + * @return true:为空 false:非空 + */ + public static boolean isNull(Object object) + { + return object == null; + } + + /** + * * 判断一个对象是否非空 + * + * @param object Object + * @return true:非空 false:空 + */ + public static boolean isNotNull(Object object) + { + return !isNull(object); + } + + /** + * * 判断一个对象是否是数组类型(Java基本型别的数组) + * + * @param object 对象 + * @return true:是数组 false:不是数组 + */ + public static boolean isArray(Object object) + { + return isNotNull(object) && object.getClass().isArray(); + } + + /** + * 去空格 + */ + public static String trim(String str) + { + return (str == null ? "" : str.trim()); + } + + /** + * 截取字符串 + * + * @param str 字符串 + * @param start 开始 + * @return 结果 + */ + public static String substring(final String str, int start) + { + if (str == null) + { + return NULLSTR; + } + + if (start < 0) + { + start = str.length() + start; + } + + if (start < 0) + { + start = 0; + } + if (start > str.length()) + { + return NULLSTR; + } + + return str.substring(start); + } + + /** + * 截取字符串 + * + * @param str 字符串 + * @param start 开始 + * @param end 结束 + * @return 结果 + */ + public static String substring(final String str, int start, int end) + { + if (str == null) + { + return NULLSTR; + } + + if (end < 0) + { + end = str.length() + end; + } + if (start < 0) + { + start = str.length() + start; + } + + if (end > str.length()) + { + end = str.length(); + } + + if (start > end) + { + return NULLSTR; + } + + if (start < 0) + { + start = 0; + } + if (end < 0) + { + end = 0; + } + + return str.substring(start, end); + } + + /** + * 格式化文本, {} 表示占位符
+ * 此方法只是简单将占位符 {} 按照顺序替换为参数
+ * 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可
+ * 例:
+ * 通常使用:format("this is {} for {}", "a", "b") -> this is a for b
+ * 转义{}: format("this is \\{} for {}", "a", "b") -> this is \{} for a
+ * 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b
+ * + * @param template 文本模板,被替换的部分用 {} 表示 + * @param params 参数值 + * @return 格式化后的文本 + */ + public static String format(String template, Object... params) + { + if (isEmpty(params) || isEmpty(template)) + { + return template; + } + return StrFormatter.format(template, params); + } + + /** + * 是否为http(s)://开头 + * + * @param link 链接 + * @return 结果 + */ + public static boolean ishttp(String link) + { + return StringUtils.startsWithAny(link, Constants.HTTP, Constants.HTTPS); + } + + /** + * 字符串转set + * + * @param str 字符串 + * @param sep 分隔符 + * @return set集合 + */ + public static final Set str2Set(String str, String sep) + { + return new HashSet(str2List(str, sep, true, false)); + } + + /** + * 字符串转list + * + * @param str 字符串 + * @param sep 分隔符 + * @param filterBlank 过滤纯空白 + * @param trim 去掉首尾空白 + * @return list集合 + */ + public static final List str2List(String str, String sep, boolean filterBlank, boolean trim) + { + List list = new ArrayList(); + if (StringUtils.isEmpty(str)) + { + return list; + } + + // 过滤空白字符串 + if (filterBlank && StringUtils.isBlank(str)) + { + return list; + } + String[] split = str.split(sep); + for (String string : split) + { + if (filterBlank && StringUtils.isBlank(string)) + { + continue; + } + if (trim) + { + string = string.trim(); + } + list.add(string); + } + + return list; + } + + /** + * 查找指定字符串是否包含指定字符串列表中的任意一个字符串同时串忽略大小写 + * + * @param cs 指定字符串 + * @param searchCharSequences 需要检查的字符串数组 + * @return 是否包含任意一个字符串 + */ + public static boolean containsAnyIgnoreCase(CharSequence cs, CharSequence... searchCharSequences) + { + if (isEmpty(cs) || isEmpty(searchCharSequences)) + { + return false; + } + for (CharSequence testStr : searchCharSequences) + { + if (containsIgnoreCase(cs, testStr)) + { + return true; + } + } + return false; + } + + /** + * 驼峰转下划线命名 + */ + public static String toUnderScoreCase(String str) + { + if (str == null) + { + return null; + } + StringBuilder sb = new StringBuilder(); + // 前置字符是否大写 + boolean preCharIsUpperCase = true; + // 当前字符是否大写 + boolean curreCharIsUpperCase = true; + // 下一字符是否大写 + boolean nexteCharIsUpperCase = true; + for (int i = 0; i < str.length(); i++) + { + char c = str.charAt(i); + if (i > 0) + { + preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1)); + } + else + { + preCharIsUpperCase = false; + } + + curreCharIsUpperCase = Character.isUpperCase(c); + + if (i < (str.length() - 1)) + { + nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1)); + } + + if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) + { + sb.append(SEPARATOR); + } + else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) + { + sb.append(SEPARATOR); + } + sb.append(Character.toLowerCase(c)); + } + + return sb.toString(); + } + + /** + * 是否包含字符串 + * + * @param str 验证字符串 + * @param strs 字符串组 + * @return 包含返回true + */ + public static boolean inStringIgnoreCase(String str, String... strs) + { + if (str != null && strs != null) + { + for (String s : strs) + { + if (str.equalsIgnoreCase(trim(s))) + { + return true; + } + } + } + return false; + } + + /** + * 将下划线大写方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。 例如:HELLO_WORLD->HelloWorld + * + * @param name 转换前的下划线大写方式命名的字符串 + * @return 转换后的驼峰式命名的字符串 + */ + public static String convertToCamelCase(String name) + { + StringBuilder result = new StringBuilder(); + // 快速检查 + if (name == null || name.isEmpty()) + { + // 没必要转换 + return ""; + } + else if (!name.contains("_")) + { + // 不含下划线,仅将首字母大写 + return name.substring(0, 1).toUpperCase() + name.substring(1); + } + // 用下划线将原始字符串分割 + String[] camels = name.split("_"); + for (String camel : camels) + { + // 跳过原始字符串中开头、结尾的下换线或双重下划线 + if (camel.isEmpty()) + { + continue; + } + // 首字母大写 + result.append(camel.substring(0, 1).toUpperCase()); + result.append(camel.substring(1).toLowerCase()); + } + return result.toString(); + } + + /** + * 驼峰式命名法 例如:user_name->userName + */ + public static String toCamelCase(String s) + { + if (s == null) + { + return null; + } + s = s.toLowerCase(); + StringBuilder sb = new StringBuilder(s.length()); + boolean upperCase = false; + for (int i = 0; i < s.length(); i++) + { + char c = s.charAt(i); + + if (c == SEPARATOR) + { + upperCase = true; + } + else if (upperCase) + { + sb.append(Character.toUpperCase(c)); + upperCase = false; + } + else + { + sb.append(c); + } + } + return sb.toString(); + } + + /** + * 查找指定字符串是否匹配指定字符串列表中的任意一个字符串 + * + * @param str 指定字符串 + * @param strs 需要检查的字符串数组 + * @return 是否匹配 + */ + public static boolean matches(String str, List strs) + { + if (isEmpty(str) || isEmpty(strs)) + { + return false; + } + for (String pattern : strs) + { + if (isMatch(pattern, str)) + { + return true; + } + } + return false; + } + + /** + * 判断url是否与规则配置: + * ? 表示单个字符; + * * 表示一层路径内的任意字符串,不可跨层级; + * ** 表示任意层路径; + * + * @param pattern 匹配规则 + * @param url 需要匹配的url + * @return + */ + public static boolean isMatch(String pattern, String url) + { + AntPathMatcher matcher = new AntPathMatcher(); + return matcher.match(pattern, url); + } + + @SuppressWarnings("unchecked") + public static T cast(Object obj) + { + return (T) obj; + } +} \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/Threads.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/Threads.java new file mode 100644 index 0000000..71fe6d5 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/Threads.java @@ -0,0 +1,99 @@ +package com.ruoyi.common.utils; + +import java.util.concurrent.CancellationException; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * 线程相关工具类. + * + * @author ruoyi + */ +public class Threads +{ + private static final Logger logger = LoggerFactory.getLogger(Threads.class); + + /** + * sleep等待,单位为毫秒 + */ + public static void sleep(long milliseconds) + { + try + { + Thread.sleep(milliseconds); + } + catch (InterruptedException e) + { + return; + } + } + + /** + * 停止线程池 + * 先使用shutdown, 停止接收新任务并尝试完成所有已存在任务. + * 如果超时, 则调用shutdownNow, 取消在workQueue中Pending的任务,并中断所有阻塞函数. + * 如果仍然超時,則強制退出. + * 另对在shutdown时线程本身被调用中断做了处理. + */ + public static void shutdownAndAwaitTermination(ExecutorService pool) + { + if (pool != null && !pool.isShutdown()) + { + pool.shutdown(); + try + { + if (!pool.awaitTermination(120, TimeUnit.SECONDS)) + { + pool.shutdownNow(); + if (!pool.awaitTermination(120, TimeUnit.SECONDS)) + { + logger.info("Pool did not terminate"); + } + } + } + catch (InterruptedException ie) + { + pool.shutdownNow(); + Thread.currentThread().interrupt(); + } + } + } + + /** + * 打印线程异常信息 + */ + public static void printException(Runnable r, Throwable t) + { + if (t == null && r instanceof Future) + { + try + { + Future future = (Future) r; + if (future.isDone()) + { + future.get(); + } + } + catch (CancellationException ce) + { + t = ce; + } + catch (ExecutionException ee) + { + t = ee.getCause(); + } + catch (InterruptedException ie) + { + Thread.currentThread().interrupt(); + } + } + if (t != null) + { + logger.error(t.getMessage(), t); + } + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/VerifyCodeUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/VerifyCodeUtils.java new file mode 100644 index 0000000..5fdf3a9 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/VerifyCodeUtils.java @@ -0,0 +1,228 @@ +package com.ruoyi.common.utils; + +import java.awt.Color; +import java.awt.Font; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.RenderingHints; +import java.awt.geom.AffineTransform; +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.io.OutputStream; +import java.security.SecureRandom; +import java.util.Arrays; +import java.util.Random; +import javax.imageio.ImageIO; + +/** + * 验证码工具类 + * + * @author ruoyi + */ +public class VerifyCodeUtils +{ + // 使用到Algerian字体,系统里没有的话需要安装字体,字体只显示大写,去掉了1,0,i,o几个容易混淆的字符 + public static final String VERIFY_CODES = "123456789ABCDEFGHJKLMNPQRSTUVWXYZ"; + + private static Random random = new SecureRandom(); + + /** + * 使用系统默认字符源生成验证码 + * + * @param verifySize 验证码长度 + * @return + */ + public static String generateVerifyCode(int verifySize) + { + return generateVerifyCode(verifySize, VERIFY_CODES); + } + + /** + * 使用指定源生成验证码 + * + * @param verifySize 验证码长度 + * @param sources 验证码字符源 + * @return + */ + public static String generateVerifyCode(int verifySize, String sources) + { + if (sources == null || sources.length() == 0) + { + sources = VERIFY_CODES; + } + int codesLen = sources.length(); + Random rand = new Random(System.currentTimeMillis()); + StringBuilder verifyCode = new StringBuilder(verifySize); + for (int i = 0; i < verifySize; i++) + { + verifyCode.append(sources.charAt(rand.nextInt(codesLen - 1))); + } + return verifyCode.toString(); + } + + /** + * 输出指定验证码图片流 + * + * @param w + * @param h + * @param os + * @param code + * @throws IOException + */ + public static void outputImage(int w, int h, OutputStream os, String code) throws IOException + { + int verifySize = code.length(); + BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); + Random rand = new Random(); + Graphics2D g2 = image.createGraphics(); + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + Color[] colors = new Color[5]; + Color[] colorSpaces = new Color[] { Color.WHITE, Color.CYAN, Color.GRAY, Color.LIGHT_GRAY, Color.MAGENTA, + Color.ORANGE, Color.PINK, Color.YELLOW }; + float[] fractions = new float[colors.length]; + for (int i = 0; i < colors.length; i++) + { + colors[i] = colorSpaces[rand.nextInt(colorSpaces.length)]; + fractions[i] = rand.nextFloat(); + } + Arrays.sort(fractions); + + g2.setColor(Color.GRAY);// 设置边框色 + g2.fillRect(0, 0, w, h); + + Color c = getRandColor(200, 250); + g2.setColor(c);// 设置背景色 + g2.fillRect(0, 2, w, h - 4); + + // 绘制干扰线 + Random random = new Random(); + g2.setColor(getRandColor(160, 200));// 设置线条的颜色 + for (int i = 0; i < 20; i++) + { + int x = random.nextInt(w - 1); + int y = random.nextInt(h - 1); + int xl = random.nextInt(6) + 1; + int yl = random.nextInt(12) + 1; + g2.drawLine(x, y, x + xl + 40, y + yl + 20); + } + + // 添加噪点 + float yawpRate = 0.05f;// 噪声率 + int area = (int) (yawpRate * w * h); + for (int i = 0; i < area; i++) + { + int x = random.nextInt(w); + int y = random.nextInt(h); + int rgb = getRandomIntColor(); + image.setRGB(x, y, rgb); + } + + shear(g2, w, h, c);// 使图片扭曲 + + g2.setColor(getRandColor(100, 160)); + int fontSize = h - 4; + Font font = new Font("Algerian", Font.ITALIC, fontSize); + g2.setFont(font); + char[] chars = code.toCharArray(); + for (int i = 0; i < verifySize; i++) + { + AffineTransform affine = new AffineTransform(); + affine.setToRotation(Math.PI / 4 * rand.nextDouble() * (rand.nextBoolean() ? 1 : -1), + (w / verifySize) * i + fontSize / 2, h / 2); + g2.setTransform(affine); + g2.drawChars(chars, i, 1, ((w - 10) / verifySize) * i + 5, h / 2 + fontSize / 2 - 10); + } + + g2.dispose(); + ImageIO.write(image, "jpg", os); + } + + private static Color getRandColor(int fc, int bc) + { + if (fc > 255) { + fc = 255; + } + if (bc > 255) { + bc = 255; + } + int r = fc + random.nextInt(bc - fc); + int g = fc + random.nextInt(bc - fc); + int b = fc + random.nextInt(bc - fc); + return new Color(r, g, b); + } + + private static int getRandomIntColor() + { + int[] rgb = getRandomRgb(); + int color = 0; + for (int c : rgb) + { + color = color << 8; + color = color | c; + } + return color; + } + + private static int[] getRandomRgb() + { + int[] rgb = new int[3]; + for (int i = 0; i < 3; i++) + { + rgb[i] = random.nextInt(255); + } + return rgb; + } + + private static void shear(Graphics g, int w1, int h1, Color color) + { + shearX(g, w1, h1, color); + shearY(g, w1, h1, color); + } + + private static void shearX(Graphics g, int w1, int h1, Color color) + { + + int period = random.nextInt(2); + + boolean borderGap = true; + int frames = 1; + int phase = random.nextInt(2); + + for (int i = 0; i < h1; i++) + { + double d = (double) (period >> 1) + * Math.sin((double) i / (double) period + (6.2831853071795862D * (double) phase) / (double) frames); + g.copyArea(0, i, w1, 1, (int) d, 0); + if (borderGap) + { + g.setColor(color); + g.drawLine((int) d, i, 0, i); + g.drawLine((int) d + w1, i, w1, i); + } + } + + } + + private static void shearY(Graphics g, int w1, int h1, Color color) + { + + int period = random.nextInt(40) + 10; // 50; + + boolean borderGap = true; + int frames = 20; + int phase = 7; + for (int i = 0; i < w1; i++) + { + double d = (double) (period >> 1) + * Math.sin((double) i / (double) period + (6.2831853071795862D * (double) phase) / (double) frames); + g.copyArea(i, 0, 1, h1, 0, (int) d); + if (borderGap) + { + g.setColor(color); + g.drawLine(i, (int) d, i, 0); + g.drawLine(i, (int) d + h1, i, h1); + } + + } + } +} \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/BeanUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/BeanUtils.java new file mode 100644 index 0000000..4463662 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/BeanUtils.java @@ -0,0 +1,110 @@ +package com.ruoyi.common.utils.bean; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Bean 工具类 + * + * @author ruoyi + */ +public class BeanUtils extends org.springframework.beans.BeanUtils +{ + /** Bean方法名中属性名开始的下标 */ + private static final int BEAN_METHOD_PROP_INDEX = 3; + + /** * 匹配getter方法的正则表达式 */ + private static final Pattern GET_PATTERN = Pattern.compile("get(\\p{javaUpperCase}\\w*)"); + + /** * 匹配setter方法的正则表达式 */ + private static final Pattern SET_PATTERN = Pattern.compile("set(\\p{javaUpperCase}\\w*)"); + + /** + * Bean属性复制工具方法。 + * + * @param dest 目标对象 + * @param src 源对象 + */ + public static void copyBeanProp(Object dest, Object src) + { + try + { + copyProperties(src, dest); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + /** + * 获取对象的setter方法。 + * + * @param obj 对象 + * @return 对象的setter方法列表 + */ + public static List getSetterMethods(Object obj) + { + // setter方法列表 + List setterMethods = new ArrayList(); + + // 获取所有方法 + Method[] methods = obj.getClass().getMethods(); + + // 查找setter方法 + + for (Method method : methods) + { + Matcher m = SET_PATTERN.matcher(method.getName()); + if (m.matches() && (method.getParameterTypes().length == 1)) + { + setterMethods.add(method); + } + } + // 返回setter方法列表 + return setterMethods; + } + + /** + * 获取对象的getter方法。 + * + * @param obj 对象 + * @return 对象的getter方法列表 + */ + + public static List getGetterMethods(Object obj) + { + // getter方法列表 + List getterMethods = new ArrayList(); + // 获取所有方法 + Method[] methods = obj.getClass().getMethods(); + // 查找getter方法 + for (Method method : methods) + { + Matcher m = GET_PATTERN.matcher(method.getName()); + if (m.matches() && (method.getParameterTypes().length == 0)) + { + getterMethods.add(method); + } + } + // 返回getter方法列表 + return getterMethods; + } + + /** + * 检查Bean方法名中的属性名是否相等。
+ * 如getName()和setName()属性名一样,getName()和setAge()属性名不一样。 + * + * @param m1 方法名1 + * @param m2 方法名2 + * @return 属性名一样返回true,否则返回false + */ + + public static boolean isMethodPropEquals(String m1, String m2) + { + return m1.substring(BEAN_METHOD_PROP_INDEX).equals(m2.substring(BEAN_METHOD_PROP_INDEX)); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileTypeUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileTypeUtils.java new file mode 100644 index 0000000..68130b9 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileTypeUtils.java @@ -0,0 +1,76 @@ +package com.ruoyi.common.utils.file; + +import java.io.File; +import org.apache.commons.lang3.StringUtils; + +/** + * 文件类型工具类 + * + * @author ruoyi + */ +public class FileTypeUtils +{ + /** + * 获取文件类型 + *

+ * 例如: ruoyi.txt, 返回: txt + * + * @param file 文件名 + * @return 后缀(不含".") + */ + public static String getFileType(File file) + { + if (null == file) + { + return StringUtils.EMPTY; + } + return getFileType(file.getName()); + } + + /** + * 获取文件类型 + *

+ * 例如: ruoyi.txt, 返回: txt + * + * @param fileName 文件名 + * @return 后缀(不含".") + */ + public static String getFileType(String fileName) + { + int separatorIndex = fileName.lastIndexOf("."); + if (separatorIndex < 0) + { + return ""; + } + return fileName.substring(separatorIndex + 1).toLowerCase(); + } + + /** + * 获取文件类型 + * + * @param photoByte 文件字节码 + * @return 后缀(不含".") + */ + public static String getFileExtendName(byte[] photoByte) + { + String strFileExtendName = "JPG"; + if ((photoByte[0] == 71) && (photoByte[1] == 73) && (photoByte[2] == 70) && (photoByte[3] == 56) + && ((photoByte[4] == 55) || (photoByte[4] == 57)) && (photoByte[5] == 97)) + { + strFileExtendName = "GIF"; + } + else if ((photoByte[6] == 74) && (photoByte[7] == 70) && (photoByte[8] == 73) && (photoByte[9] == 70)) + { + strFileExtendName = "JPG"; + } + else if ((photoByte[0] == 66) && (photoByte[1] == 77)) + { + strFileExtendName = "BMP"; + } + else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) + { + strFileExtendName = "PNG"; + } + return strFileExtendName; + } +} \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java new file mode 100644 index 0000000..60d18cf --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java @@ -0,0 +1,256 @@ +package com.ruoyi.common.utils.file; + +import cn.hutool.core.img.Img; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.exception.file.FileNameLengthLimitExceededException; +import com.ruoyi.common.exception.file.FileSizeLimitExceededException; +import com.ruoyi.common.exception.file.InvalidExtensionException; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.uuid.IdUtils; +import org.apache.commons.io.FilenameUtils; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; + +/** + * 文件上传工具类 + * + * @author ruoyi + */ +public class FileUploadUtils +{ + /** + * 默认大小 50M + */ + public static final long DEFAULT_MAX_SIZE = 50 * 1024 * 1024; + public static final long ONE_M = 1024 * 1024; + + /** + * 默认的文件名最大长度 100 + */ + public static final int DEFAULT_FILE_NAME_LENGTH = 100; + + /** + * 默认上传的地址 + */ + private static String defaultBaseDir = RuoYiConfig.getProfile(); + + public static void setDefaultBaseDir(String defaultBaseDir) + { + FileUploadUtils.defaultBaseDir = defaultBaseDir; + } + + public static String getDefaultBaseDir() + { + return defaultBaseDir; + } + + /** + * 以默认配置进行文件上传 + * + * @param file 上传的文件 + * @return 文件名称 + * @throws Exception + */ + public static final String upload(MultipartFile file) throws IOException + { + try + { + return upload(getDefaultBaseDir(), file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, false); + } + catch (Exception e) + { + throw new IOException(e.getMessage(), e); + } + } + + /** + * 根据文件路径上传 + * + * @param baseDir 相对应用的基目录 + * @param file 上传的文件 + * @return 文件名称 + * @throws IOException + */ + public static final String upload(String baseDir, MultipartFile file) throws IOException { + try { + return upload(baseDir, file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, false); + } catch (Exception e) { + throw new IOException(e.getMessage(), e); + } + } + + /** + * 根据文件路径上传 + * + * @param baseDir 相对应用的基目录 + * @param file 上传的文件 + * @return 文件名称 + * @throws IOException + */ + public static final String upload(String baseDir, MultipartFile file, boolean scale) throws IOException { + try { + return upload(baseDir, file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, scale); + } catch (Exception e) { + throw new IOException(e.getMessage(), e); + } + } + + /** + * 文件上传 + * + * @param baseDir 相对应用的基目录 + * @param file 上传的文件 + * @param allowedExtension 上传文件类型 + * @param scale 是否缩放 + * @return 返回上传成功的文件名 + * @throws FileSizeLimitExceededException 如果超出最大大小 + * @throws FileNameLengthLimitExceededException 文件名太长 + * @throws IOException 比如读写文件出错时 + * @throws InvalidExtensionException 文件校验异常 + */ + public static final String upload(String baseDir, MultipartFile file, String[] allowedExtension, boolean scale) + throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException, + InvalidExtensionException { + int fileNamelength = file.getOriginalFilename().length(); + if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) { + throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH); + } + + assertAllowed(file, allowedExtension); + + String fileName = extractFilename(file); + + File desc = getAbsoluteFile(baseDir, fileName); + long size = file.getSize(); + if (scale && size > ONE_M) { + Img.from(file.getInputStream()) + //压缩比率 + .setQuality(ONE_M * 1.0 / size) + .write(desc); + } else { + file.transferTo(desc); + } + return getPathFileName(baseDir, fileName); + } + + /** + * 编码文件名 + */ + public static final String extractFilename(MultipartFile file) + { + String fileName = file.getOriginalFilename(); + String extension = getExtension(file); + fileName = DateUtils.datePath() + "/" + IdUtils.simpleUUID() + "." + extension; + return fileName; + } + + public static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException + { + File desc = new File(uploadDir + File.separator + fileName); + + if (!desc.exists()) + { + if (!desc.getParentFile().exists()) + { + desc.getParentFile().mkdirs(); + } + } + return desc; + } + + public static final String getPathFileName(String uploadDir, String fileName) throws IOException + { + int dirLastIndex = RuoYiConfig.getProfile().length() + 1; + String currentDir = StringUtils.substring(uploadDir, dirLastIndex); + String pathFileName = Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName; + return pathFileName; + } + + /** + * 文件大小校验 + * + * @param file 上传的文件 + * @return + * @throws FileSizeLimitExceededException 如果超出最大大小 + * @throws InvalidExtensionException + */ + public static final void assertAllowed(MultipartFile file, String[] allowedExtension) + throws FileSizeLimitExceededException, InvalidExtensionException + { + long size = file.getSize(); + if (DEFAULT_MAX_SIZE != -1 && size > DEFAULT_MAX_SIZE) + { + throw new FileSizeLimitExceededException(DEFAULT_MAX_SIZE / 1024 / 1024); + } + + String fileName = file.getOriginalFilename(); + String extension = getExtension(file); + if (allowedExtension != null && !isAllowedExtension(extension, allowedExtension)) + { + if (allowedExtension == MimeTypeUtils.IMAGE_EXTENSION) + { + throw new InvalidExtensionException.InvalidImageExtensionException(allowedExtension, extension, + fileName); + } + else if (allowedExtension == MimeTypeUtils.FLASH_EXTENSION) + { + throw new InvalidExtensionException.InvalidFlashExtensionException(allowedExtension, extension, + fileName); + } + else if (allowedExtension == MimeTypeUtils.MEDIA_EXTENSION) + { + throw new InvalidExtensionException.InvalidMediaExtensionException(allowedExtension, extension, + fileName); + } + else if (allowedExtension == MimeTypeUtils.VIDEO_EXTENSION) + { + throw new InvalidExtensionException.InvalidVideoExtensionException(allowedExtension, extension, + fileName); + } + else + { + throw new InvalidExtensionException(allowedExtension, extension, fileName); + } + } + + } + + /** + * 判断MIME类型是否是允许的MIME类型 + * + * @param extension + * @param allowedExtension + * @return + */ + public static final boolean isAllowedExtension(String extension, String[] allowedExtension) + { + for (String str : allowedExtension) + { + if (str.equalsIgnoreCase(extension)) + { + return true; + } + } + return false; + } + + /** + * 获取文件名的后缀 + * + * @param file 表单文件 + * @return 后缀名 + */ + public static final String getExtension(MultipartFile file) + { + String extension = FilenameUtils.getExtension(file.getOriginalFilename()); + if (StringUtils.isEmpty(extension)) + { + extension = MimeTypeUtils.getExtension(file.getContentType()); + } + return extension; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java new file mode 100644 index 0000000..7a24459 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java @@ -0,0 +1,259 @@ +package com.ruoyi.common.utils.file; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.ArrayUtils; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.uuid.IdUtils; + +/** + * 文件处理工具类 + * + * @author ruoyi + */ +public class FileUtils +{ + public static String FILENAME_PATTERN = "[a-zA-Z0-9_\\-\\|\\.\\u4e00-\\u9fa5]+"; + + /** + * 输出指定文件的byte数组 + * + * @param filePath 文件路径 + * @param os 输出流 + * @return + */ + public static void writeBytes(String filePath, OutputStream os) throws IOException + { + FileInputStream fis = null; + try + { + File file = new File(filePath); + if (!file.exists()) + { + throw new FileNotFoundException(filePath); + } + fis = new FileInputStream(file); + byte[] b = new byte[1024]; + int length; + while ((length = fis.read(b)) > 0) + { + os.write(b, 0, length); + } + } + catch (IOException e) + { + throw e; + } + finally + { + IOUtils.close(os); + IOUtils.close(fis); + } + } + + /** + * 写数据到文件中 + * + * @param data 数据 + * @return 目标文件 + * @throws IOException IO异常 + */ + public static String writeImportBytes(byte[] data) throws IOException + { + return writeBytes(data, RuoYiConfig.getImportPath()); + } + + /** + * 写数据到文件中 + * + * @param data 数据 + * @param uploadDir 目标文件 + * @return 目标文件 + * @throws IOException IO异常 + */ + public static String writeBytes(byte[] data, String uploadDir) throws IOException + { + FileOutputStream fos = null; + String pathName = ""; + try + { + String extension = getFileExtendName(data); + pathName = DateUtils.datePath() + "/" + IdUtils.fastUUID() + "." + extension; + File file = FileUploadUtils.getAbsoluteFile(uploadDir, pathName); + fos = new FileOutputStream(file); + fos.write(data); + } + finally + { + IOUtils.close(fos); + } + return FileUploadUtils.getPathFileName(uploadDir, pathName); + } + + /** + * 删除文件 + * + * @param filePath 文件 + * @return + */ + public static boolean deleteFile(String filePath) + { + boolean flag = false; + File file = new File(filePath); + // 路径为文件且不为空则进行删除 + if (file.isFile() && file.exists()) + { + file.delete(); + flag = true; + } + return flag; + } + + /** + * 文件名称验证 + * + * @param filename 文件名称 + * @return true 正常 false 非法 + */ + public static boolean isValidFilename(String filename) + { + return filename.matches(FILENAME_PATTERN); + } + + /** + * 检查文件是否可下载 + * + * @param resource 需要下载的文件 + * @return true 正常 false 非法 + */ + public static boolean checkAllowDownload(String resource) + { + // 禁止目录上跳级别 + if (StringUtils.contains(resource, "..")) + { + return false; + } + + // 检查允许下载的文件规则 + if (ArrayUtils.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(resource))) + { + return true; + } + + // 不在允许下载的文件规则 + return false; + } + + /** + * 下载文件名重新编码 + * + * @param request 请求对象 + * @param fileName 文件名 + * @return 编码后的文件名 + */ + public static String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException + { + final String agent = request.getHeader("USER-AGENT"); + String filename = fileName; + if (agent.contains("MSIE")) + { + // IE浏览器 + filename = URLEncoder.encode(filename, "utf-8"); + filename = filename.replace("+", " "); + } + else if (agent.contains("Firefox")) + { + // 火狐浏览器 + filename = new String(fileName.getBytes(), "ISO8859-1"); + } + else if (agent.contains("Chrome")) + { + // google浏览器 + filename = URLEncoder.encode(filename, "utf-8"); + } + else + { + // 其它浏览器 + filename = URLEncoder.encode(filename, "utf-8"); + } + return filename; + } + + /** + * 下载文件名重新编码 + * + * @param response 响应对象 + * @param realFileName 真实文件名 + * @return + */ + public static void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException + { + String percentEncodedFileName = percentEncode(realFileName); + + StringBuilder contentDispositionValue = new StringBuilder(); + contentDispositionValue.append("attachment; filename=") + .append(percentEncodedFileName) + .append(";") + .append("filename*=") + .append("utf-8''") + .append(percentEncodedFileName); + + response.addHeader("Access-Control-Allow-Origin", "*"); + response.addHeader("Access-Control-Expose-Headers", "Content-Disposition,download-filename"); + response.setHeader("Content-disposition", contentDispositionValue.toString()); + response.setHeader("download-filename", percentEncodedFileName); + } + + /** + * 百分号编码工具方法 + * + * @param s 需要百分号编码的字符串 + * @return 百分号编码后的字符串 + */ + public static String percentEncode(String s) throws UnsupportedEncodingException + { + String encode = URLEncoder.encode(s, StandardCharsets.UTF_8.toString()); + return encode.replaceAll("\\+", "%20"); + } + + /** + * 获取图像后缀 + * + * @param photoByte 图像数据 + * @return 后缀名 + */ + public static String getFileExtendName(byte[] photoByte) + { + String strFileExtendName = "jpg"; + if ((photoByte[0] == 71) && (photoByte[1] == 73) && (photoByte[2] == 70) && (photoByte[3] == 56) + && ((photoByte[4] == 55) || (photoByte[4] == 57)) && (photoByte[5] == 97)) + { + strFileExtendName = "gif"; + } + else if ((photoByte[6] == 74) && (photoByte[7] == 70) && (photoByte[8] == 73) && (photoByte[9] == 70)) + { + strFileExtendName = "jpg"; + } + else if ((photoByte[0] == 66) && (photoByte[1] == 77)) + { + strFileExtendName = "bmp"; + } + else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) + { + strFileExtendName = "png"; + } + return strFileExtendName; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java new file mode 100644 index 0000000..0b7b5aa --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java @@ -0,0 +1,101 @@ +package com.ruoyi.common.utils.file; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.FileInputStream; +import java.io.InputStream; +import java.net.URL; +import java.net.URLConnection; +import java.util.Arrays; +import org.apache.poi.util.IOUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.utils.StringUtils; + +/** + * 图片处理工具类 + * + * @author ruoyi + */ +public class ImageUtils +{ + private static final Logger log = LoggerFactory.getLogger(ImageUtils.class); + + public static byte[] getImage(String imagePath) + { + InputStream is = getFile(imagePath); + try + { + return IOUtils.toByteArray(is); + } + catch (Exception e) + { + log.error("图片加载异常 {}", e); + return null; + } + finally + { + IOUtils.closeQuietly(is); + } + } + + public static InputStream getFile(String imagePath) + { + try + { + byte[] result = readFile(imagePath); + result = Arrays.copyOf(result, result.length); + return new ByteArrayInputStream(result); + } + catch (Exception e) + { + log.error("获取图片异常 {}", e); + } + return null; + } + + /** + * 读取文件为字节数据 + * + * @param key 地址 + * @return 字节数据 + */ + public static byte[] readFile(String url) + { + InputStream in = null; + ByteArrayOutputStream baos = null; + try + { + if (url.startsWith("http")) + { + // 网络地址 + URL urlObj = new URL(url); + URLConnection urlConnection = urlObj.openConnection(); + urlConnection.setConnectTimeout(30 * 1000); + urlConnection.setReadTimeout(60 * 1000); + urlConnection.setDoInput(true); + in = urlConnection.getInputStream(); + } + else + { + // 本机地址 + String localPath = RuoYiConfig.getProfile(); + String downloadPath = localPath + StringUtils.substringAfter(url, Constants.RESOURCE_PREFIX); + in = new FileInputStream(downloadPath); + } + return IOUtils.toByteArray(in); + } + catch (Exception e) + { + log.error("获取文件路径异常 {}", e); + return null; + } + finally + { + IOUtils.closeQuietly(in); + IOUtils.closeQuietly(baos); + } + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MimeTypeUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MimeTypeUtils.java new file mode 100644 index 0000000..43c27e2 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MimeTypeUtils.java @@ -0,0 +1,65 @@ +package com.ruoyi.common.utils.file; + +import cn.hutool.core.util.StrUtil; + +/** + * 媒体类型工具类 + * + * @author ruoyi + */ +public class MimeTypeUtils +{ + public static final String IMAGE_PNG = "image/png"; + + public static final String IMAGE_JPG = "image/jpg"; + + public static final String IMAGE_JPEG = "image/jpeg"; + + public static final String IMAGE_BMP = "image/bmp"; + + public static final String IMAGE_GIF = "image/gif"; + + public static final String[] IMAGE_EXTENSION = { "bmp", "gif", "jpg", "jpeg", "png" }; + + public static final String[] FLASH_EXTENSION = { "swf", "flv" }; + + public static final String[] MEDIA_EXTENSION = { "swf", "flv", "mp3", "wav", "wma", "wmv", "mid", "avi", "mpg", + "asf", "rm", "rmvb" }; + + public static final String[] VIDEO_EXTENSION = { "mp4", "avi", "rmvb" }; + + public static final String[] DEFAULT_ALLOWED_EXTENSION = { + // 图片 + "bmp", "gif", "jpg", "jpeg", "png", + // word excel powerpoint + "doc", "docx", "xls", "xlsx", "ppt", "pptx", "html", "htm", "txt", + // 压缩文件 + "rar", "zip", "gz", "bz2", + // 视频格式 + "mp4", "avi", "rmvb", + // pdf + "pdf" }; + + public static String getExtension(String prefix) + { + switch (prefix) + { + case IMAGE_PNG: + return "png"; + case IMAGE_JPG: + return "jpg"; + case IMAGE_JPEG: + return "jpeg"; + case IMAGE_BMP: + return "bmp"; + case IMAGE_GIF: + return "gif"; + default: + return ""; + } + } + public static boolean isImg(String contentType) { + String ext = MimeTypeUtils.getExtension(contentType); + return StrUtil.isNotEmpty(ext); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/EscapeUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/EscapeUtil.java new file mode 100644 index 0000000..7f74ac2 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/EscapeUtil.java @@ -0,0 +1,155 @@ +package com.ruoyi.common.utils.html; + +import com.ruoyi.common.utils.StringUtils; + +/** + * 转义和反转义工具类 + * + * @author ruoyi + */ +public class EscapeUtil +{ + public static final String RE_HTML_MARK = "(<[^<]*?>)|(<[\\s]*?/[^<]*?>)|(<[^<]*?/[\\s]*?>)"; + + private static final char[][] TEXT = new char[64][]; + + static + { + for (int i = 0; i < 64; i++) + { + TEXT[i] = new char[] { (char) i }; + } + + // special HTML characters + TEXT['\''] = "'".toCharArray(); // 单引号 + TEXT['"'] = """.toCharArray(); // 双引号 + TEXT['&'] = "&".toCharArray(); // &符 + TEXT['<'] = "<".toCharArray(); // 小于号 + TEXT['>'] = ">".toCharArray(); // 大于号 + } + + /** + * 转义文本中的HTML字符为安全的字符 + * + * @param text 被转义的文本 + * @return 转义后的文本 + */ + public static String escape(String text) + { + return encode(text); + } + + /** + * 还原被转义的HTML特殊字符 + * + * @param content 包含转义符的HTML内容 + * @return 转换后的字符串 + */ + public static String unescape(String content) + { + return decode(content); + } + + /** + * 清除所有HTML标签,但是不删除标签内的内容 + * + * @param content 文本 + * @return 清除标签后的文本 + */ + public static String clean(String content) + { + return new HTMLFilter().filter(content); + } + + /** + * Escape编码 + * + * @param text 被编码的文本 + * @return 编码后的字符 + */ + private static String encode(String text) + { + int len; + if ((text == null) || ((len = text.length()) == 0)) + { + return StringUtils.EMPTY; + } + StringBuilder buffer = new StringBuilder(len + (len >> 2)); + char c; + for (int i = 0; i < len; i++) + { + c = text.charAt(i); + if (c < 64) + { + buffer.append(TEXT[c]); + } + else + { + buffer.append(c); + } + } + return buffer.toString(); + } + + /** + * Escape解码 + * + * @param content 被转义的内容 + * @return 解码后的字符串 + */ + public static String decode(String content) + { + if (StringUtils.isEmpty(content)) + { + return content; + } + + StringBuilder tmp = new StringBuilder(content.length()); + int lastPos = 0, pos = 0; + char ch; + while (lastPos < content.length()) + { + pos = content.indexOf("%", lastPos); + if (pos == lastPos) + { + if (content.charAt(pos + 1) == 'u') + { + ch = (char) Integer.parseInt(content.substring(pos + 2, pos + 6), 16); + tmp.append(ch); + lastPos = pos + 6; + } + else + { + ch = (char) Integer.parseInt(content.substring(pos + 1, pos + 3), 16); + tmp.append(ch); + lastPos = pos + 3; + } + } + else + { + if (pos == -1) + { + tmp.append(content.substring(lastPos)); + lastPos = content.length(); + } + else + { + tmp.append(content.substring(lastPos, pos)); + lastPos = pos; + } + } + } + return tmp.toString(); + } + + public static void main(String[] args) + { + String html = ""; + // String html = "ipt>alert(\"XSS\")ipt>"; + // String html = "<123"; + // String html = "123>"; + System.out.println(EscapeUtil.clean(html)); + System.out.println(EscapeUtil.escape(html)); + System.out.println(EscapeUtil.unescape(html)); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/HTMLFilter.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/HTMLFilter.java new file mode 100644 index 0000000..dc5a1ce --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/html/HTMLFilter.java @@ -0,0 +1,570 @@ +package com.ruoyi.common.utils.html; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * HTML过滤器,用于去除XSS漏洞隐患。 + * + * @author ruoyi + */ +public final class HTMLFilter +{ + /** + * regex flag union representing /si modifiers in php + **/ + private static final int REGEX_FLAGS_SI = Pattern.CASE_INSENSITIVE | Pattern.DOTALL; + private static final Pattern P_COMMENTS = Pattern.compile("", Pattern.DOTALL); + private static final Pattern P_COMMENT = Pattern.compile("^!--(.*)--$", REGEX_FLAGS_SI); + private static final Pattern P_TAGS = Pattern.compile("<(.*?)>", Pattern.DOTALL); + private static final Pattern P_END_TAG = Pattern.compile("^/([a-z0-9]+)", REGEX_FLAGS_SI); + private static final Pattern P_START_TAG = Pattern.compile("^([a-z0-9]+)(.*?)(/?)$", REGEX_FLAGS_SI); + private static final Pattern P_QUOTED_ATTRIBUTES = Pattern.compile("([a-z0-9]+)=([\"'])(.*?)\\2", REGEX_FLAGS_SI); + private static final Pattern P_UNQUOTED_ATTRIBUTES = Pattern.compile("([a-z0-9]+)(=)([^\"\\s']+)", REGEX_FLAGS_SI); + private static final Pattern P_PROTOCOL = Pattern.compile("^([^:]+):", REGEX_FLAGS_SI); + private static final Pattern P_ENTITY = Pattern.compile("&#(\\d+);?"); + private static final Pattern P_ENTITY_UNICODE = Pattern.compile("&#x([0-9a-f]+);?"); + private static final Pattern P_ENCODE = Pattern.compile("%([0-9a-f]{2});?"); + private static final Pattern P_VALID_ENTITIES = Pattern.compile("&([^&;]*)(?=(;|&|$))"); + private static final Pattern P_VALID_QUOTES = Pattern.compile("(>|^)([^<]+?)(<|$)", Pattern.DOTALL); + private static final Pattern P_END_ARROW = Pattern.compile("^>"); + private static final Pattern P_BODY_TO_END = Pattern.compile("<([^>]*?)(?=<|$)"); + private static final Pattern P_XML_CONTENT = Pattern.compile("(^|>)([^<]*?)(?=>)"); + private static final Pattern P_STRAY_LEFT_ARROW = Pattern.compile("<([^>]*?)(?=<|$)"); + private static final Pattern P_STRAY_RIGHT_ARROW = Pattern.compile("(^|>)([^<]*?)(?=>)"); + private static final Pattern P_AMP = Pattern.compile("&"); + private static final Pattern P_QUOTE = Pattern.compile("\""); + private static final Pattern P_LEFT_ARROW = Pattern.compile("<"); + private static final Pattern P_RIGHT_ARROW = Pattern.compile(">"); + private static final Pattern P_BOTH_ARROWS = Pattern.compile("<>"); + + // @xxx could grow large... maybe use sesat's ReferenceMap + private static final ConcurrentMap P_REMOVE_PAIR_BLANKS = new ConcurrentHashMap<>(); + private static final ConcurrentMap P_REMOVE_SELF_BLANKS = new ConcurrentHashMap<>(); + + /** + * set of allowed html elements, along with allowed attributes for each element + **/ + private final Map> vAllowed; + /** + * counts of open tags for each (allowable) html element + **/ + private final Map vTagCounts = new HashMap<>(); + + /** + * html elements which must always be self-closing (e.g. "") + **/ + private final String[] vSelfClosingTags; + /** + * html elements which must always have separate opening and closing tags (e.g. "") + **/ + private final String[] vNeedClosingTags; + /** + * set of disallowed html elements + **/ + private final String[] vDisallowed; + /** + * attributes which should be checked for valid protocols + **/ + private final String[] vProtocolAtts; + /** + * allowed protocols + **/ + private final String[] vAllowedProtocols; + /** + * tags which should be removed if they contain no content (e.g. "" or "") + **/ + private final String[] vRemoveBlanks; + /** + * entities allowed within html markup + **/ + private final String[] vAllowedEntities; + /** + * flag determining whether comments are allowed in input String. + */ + private final boolean stripComment; + private final boolean encodeQuotes; + /** + * flag determining whether to try to make tags when presented with "unbalanced" angle brackets (e.g. "" + * becomes " text "). If set to false, unbalanced angle brackets will be html escaped. + */ + private final boolean alwaysMakeTags; + + /** + * Default constructor. + */ + public HTMLFilter() + { + vAllowed = new HashMap<>(); + + final ArrayList a_atts = new ArrayList<>(); + a_atts.add("href"); + a_atts.add("target"); + vAllowed.put("a", a_atts); + + final ArrayList img_atts = new ArrayList<>(); + img_atts.add("src"); + img_atts.add("width"); + img_atts.add("height"); + img_atts.add("alt"); + vAllowed.put("img", img_atts); + + final ArrayList no_atts = new ArrayList<>(); + vAllowed.put("b", no_atts); + vAllowed.put("strong", no_atts); + vAllowed.put("i", no_atts); + vAllowed.put("em", no_atts); + + vSelfClosingTags = new String[] { "img" }; + vNeedClosingTags = new String[] { "a", "b", "strong", "i", "em" }; + vDisallowed = new String[] {}; + vAllowedProtocols = new String[] { "http", "mailto", "https" }; // no ftp. + vProtocolAtts = new String[] { "src", "href" }; + vRemoveBlanks = new String[] { "a", "b", "strong", "i", "em" }; + vAllowedEntities = new String[] { "amp", "gt", "lt", "quot" }; + stripComment = true; + encodeQuotes = true; + alwaysMakeTags = false; + } + + /** + * Map-parameter configurable constructor. + * + * @param conf map containing configuration. keys match field names. + */ + @SuppressWarnings("unchecked") + public HTMLFilter(final Map conf) + { + + assert conf.containsKey("vAllowed") : "configuration requires vAllowed"; + assert conf.containsKey("vSelfClosingTags") : "configuration requires vSelfClosingTags"; + assert conf.containsKey("vNeedClosingTags") : "configuration requires vNeedClosingTags"; + assert conf.containsKey("vDisallowed") : "configuration requires vDisallowed"; + assert conf.containsKey("vAllowedProtocols") : "configuration requires vAllowedProtocols"; + assert conf.containsKey("vProtocolAtts") : "configuration requires vProtocolAtts"; + assert conf.containsKey("vRemoveBlanks") : "configuration requires vRemoveBlanks"; + assert conf.containsKey("vAllowedEntities") : "configuration requires vAllowedEntities"; + + vAllowed = Collections.unmodifiableMap((HashMap>) conf.get("vAllowed")); + vSelfClosingTags = (String[]) conf.get("vSelfClosingTags"); + vNeedClosingTags = (String[]) conf.get("vNeedClosingTags"); + vDisallowed = (String[]) conf.get("vDisallowed"); + vAllowedProtocols = (String[]) conf.get("vAllowedProtocols"); + vProtocolAtts = (String[]) conf.get("vProtocolAtts"); + vRemoveBlanks = (String[]) conf.get("vRemoveBlanks"); + vAllowedEntities = (String[]) conf.get("vAllowedEntities"); + stripComment = conf.containsKey("stripComment") ? (Boolean) conf.get("stripComment") : true; + encodeQuotes = conf.containsKey("encodeQuotes") ? (Boolean) conf.get("encodeQuotes") : true; + alwaysMakeTags = conf.containsKey("alwaysMakeTags") ? (Boolean) conf.get("alwaysMakeTags") : true; + } + + private void reset() + { + vTagCounts.clear(); + } + + // --------------------------------------------------------------- + // my versions of some PHP library functions + public static String chr(final int decimal) + { + return String.valueOf((char) decimal); + } + + public static String htmlSpecialChars(final String s) + { + String result = s; + result = regexReplace(P_AMP, "&", result); + result = regexReplace(P_QUOTE, """, result); + result = regexReplace(P_LEFT_ARROW, "<", result); + result = regexReplace(P_RIGHT_ARROW, ">", result); + return result; + } + + // --------------------------------------------------------------- + + /** + * given a user submitted input String, filter out any invalid or restricted html. + * + * @param input text (i.e. submitted by a user) than may contain html + * @return "clean" version of input, with only valid, whitelisted html elements allowed + */ + public String filter(final String input) + { + reset(); + String s = input; + + s = escapeComments(s); + + s = balanceHTML(s); + + s = checkTags(s); + + s = processRemoveBlanks(s); + + // s = validateEntities(s); + + return s; + } + + public boolean isAlwaysMakeTags() + { + return alwaysMakeTags; + } + + public boolean isStripComments() + { + return stripComment; + } + + private String escapeComments(final String s) + { + final Matcher m = P_COMMENTS.matcher(s); + final StringBuffer buf = new StringBuffer(); + if (m.find()) + { + final String match = m.group(1); // (.*?) + m.appendReplacement(buf, Matcher.quoteReplacement("")); + } + m.appendTail(buf); + + return buf.toString(); + } + + private String balanceHTML(String s) + { + if (alwaysMakeTags) + { + // + // try and form html + // + s = regexReplace(P_END_ARROW, "", s); + // 不追加结束标签 + s = regexReplace(P_BODY_TO_END, "<$1>", s); + s = regexReplace(P_XML_CONTENT, "$1<$2", s); + + } + else + { + // + // escape stray brackets + // + s = regexReplace(P_STRAY_LEFT_ARROW, "<$1", s); + s = regexReplace(P_STRAY_RIGHT_ARROW, "$1$2><", s); + + // + // the last regexp causes '<>' entities to appear + // (we need to do a lookahead assertion so that the last bracket can + // be used in the next pass of the regexp) + // + s = regexReplace(P_BOTH_ARROWS, "", s); + } + + return s; + } + + private String checkTags(String s) + { + Matcher m = P_TAGS.matcher(s); + + final StringBuffer buf = new StringBuffer(); + while (m.find()) + { + String replaceStr = m.group(1); + replaceStr = processTag(replaceStr); + m.appendReplacement(buf, Matcher.quoteReplacement(replaceStr)); + } + m.appendTail(buf); + + // these get tallied in processTag + // (remember to reset before subsequent calls to filter method) + final StringBuilder sBuilder = new StringBuilder(buf.toString()); + for (String key : vTagCounts.keySet()) + { + for (int ii = 0; ii < vTagCounts.get(key); ii++) + { + sBuilder.append(""); + } + } + s = sBuilder.toString(); + + return s; + } + + private String processRemoveBlanks(final String s) + { + String result = s; + for (String tag : vRemoveBlanks) + { + if (!P_REMOVE_PAIR_BLANKS.containsKey(tag)) + { + P_REMOVE_PAIR_BLANKS.putIfAbsent(tag, Pattern.compile("<" + tag + "(\\s[^>]*)?>")); + } + result = regexReplace(P_REMOVE_PAIR_BLANKS.get(tag), "", result); + if (!P_REMOVE_SELF_BLANKS.containsKey(tag)) + { + P_REMOVE_SELF_BLANKS.putIfAbsent(tag, Pattern.compile("<" + tag + "(\\s[^>]*)?/>")); + } + result = regexReplace(P_REMOVE_SELF_BLANKS.get(tag), "", result); + } + + return result; + } + + private static String regexReplace(final Pattern regex_pattern, final String replacement, final String s) + { + Matcher m = regex_pattern.matcher(s); + return m.replaceAll(replacement); + } + + private String processTag(final String s) + { + // ending tags + Matcher m = P_END_TAG.matcher(s); + if (m.find()) + { + final String name = m.group(1).toLowerCase(); + if (allowed(name)) + { + if (false == inArray(name, vSelfClosingTags)) + { + if (vTagCounts.containsKey(name)) + { + vTagCounts.put(name, vTagCounts.get(name) - 1); + return ""; + } + } + } + } + + // starting tags + m = P_START_TAG.matcher(s); + if (m.find()) + { + final String name = m.group(1).toLowerCase(); + final String body = m.group(2); + String ending = m.group(3); + + // debug( "in a starting tag, name='" + name + "'; body='" + body + "'; ending='" + ending + "'" ); + if (allowed(name)) + { + final StringBuilder params = new StringBuilder(); + + final Matcher m2 = P_QUOTED_ATTRIBUTES.matcher(body); + final Matcher m3 = P_UNQUOTED_ATTRIBUTES.matcher(body); + final List paramNames = new ArrayList<>(); + final List paramValues = new ArrayList<>(); + while (m2.find()) + { + paramNames.add(m2.group(1)); // ([a-z0-9]+) + paramValues.add(m2.group(3)); // (.*?) + } + while (m3.find()) + { + paramNames.add(m3.group(1)); // ([a-z0-9]+) + paramValues.add(m3.group(3)); // ([^\"\\s']+) + } + + String paramName, paramValue; + for (int ii = 0; ii < paramNames.size(); ii++) + { + paramName = paramNames.get(ii).toLowerCase(); + paramValue = paramValues.get(ii); + + // debug( "paramName='" + paramName + "'" ); + // debug( "paramValue='" + paramValue + "'" ); + // debug( "allowed? " + vAllowed.get( name ).contains( paramName ) ); + + if (allowedAttribute(name, paramName)) + { + if (inArray(paramName, vProtocolAtts)) + { + paramValue = processParamProtocol(paramValue); + } + params.append(' ').append(paramName).append("=\\\"").append(paramValue).append("\""); + } + } + + if (inArray(name, vSelfClosingTags)) + { + ending = " /"; + } + + if (inArray(name, vNeedClosingTags)) + { + ending = ""; + } + + if (ending == null || ending.length() < 1) + { + if (vTagCounts.containsKey(name)) + { + vTagCounts.put(name, vTagCounts.get(name) + 1); + } + else + { + vTagCounts.put(name, 1); + } + } + else + { + ending = " /"; + } + return "<" + name + params + ending + ">"; + } + else + { + return ""; + } + } + + // comments + m = P_COMMENT.matcher(s); + if (!stripComment && m.find()) + { + return "<" + m.group() + ">"; + } + + return ""; + } + + private String processParamProtocol(String s) + { + s = decodeEntities(s); + final Matcher m = P_PROTOCOL.matcher(s); + if (m.find()) + { + final String protocol = m.group(1); + if (!inArray(protocol, vAllowedProtocols)) + { + // bad protocol, turn into local anchor link instead + s = "#" + s.substring(protocol.length() + 1); + if (s.startsWith("#//")) + { + s = "#" + s.substring(3); + } + } + } + + return s; + } + + private String decodeEntities(String s) + { + StringBuffer buf = new StringBuffer(); + + Matcher m = P_ENTITY.matcher(s); + while (m.find()) + { + final String match = m.group(1); + final int decimal = Integer.decode(match).intValue(); + m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); + } + m.appendTail(buf); + s = buf.toString(); + + buf = new StringBuffer(); + m = P_ENTITY_UNICODE.matcher(s); + while (m.find()) + { + final String match = m.group(1); + final int decimal = Integer.valueOf(match, 16).intValue(); + m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); + } + m.appendTail(buf); + s = buf.toString(); + + buf = new StringBuffer(); + m = P_ENCODE.matcher(s); + while (m.find()) + { + final String match = m.group(1); + final int decimal = Integer.valueOf(match, 16).intValue(); + m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); + } + m.appendTail(buf); + s = buf.toString(); + + s = validateEntities(s); + return s; + } + + private String validateEntities(final String s) + { + StringBuffer buf = new StringBuffer(); + + // validate entities throughout the string + Matcher m = P_VALID_ENTITIES.matcher(s); + while (m.find()) + { + final String one = m.group(1); // ([^&;]*) + final String two = m.group(2); // (?=(;|&|$)) + m.appendReplacement(buf, Matcher.quoteReplacement(checkEntity(one, two))); + } + m.appendTail(buf); + + return encodeQuotes(buf.toString()); + } + + private String encodeQuotes(final String s) + { + if (encodeQuotes) + { + StringBuffer buf = new StringBuffer(); + Matcher m = P_VALID_QUOTES.matcher(s); + while (m.find()) + { + final String one = m.group(1); // (>|^) + final String two = m.group(2); // ([^<]+?) + final String three = m.group(3); // (<|$) + // 不替换双引号为",防止json格式无效 regexReplace(P_QUOTE, """, two) + m.appendReplacement(buf, Matcher.quoteReplacement(one + two + three)); + } + m.appendTail(buf); + return buf.toString(); + } + else + { + return s; + } + } + + private String checkEntity(final String preamble, final String term) + { + + return ";".equals(term) && isValidEntity(preamble) ? '&' + preamble : "&" + preamble; + } + + private boolean isValidEntity(final String entity) + { + return inArray(entity, vAllowedEntities); + } + + private static boolean inArray(final String s, final String[] array) + { + for (String item : array) + { + if (item != null && item.equals(s)) + { + return true; + } + } + return false; + } + + private boolean allowed(final String name) + { + return (vAllowed.isEmpty() || vAllowed.containsKey(name)) && !inArray(name, vDisallowed); + } + + private boolean allowedAttribute(final String name, final String paramName) + { + return allowed(name) && (vAllowed.isEmpty() || vAllowed.get(name).contains(paramName)); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java new file mode 100644 index 0000000..dac60ad --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java @@ -0,0 +1,55 @@ +package com.ruoyi.common.utils.http; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.Charset; +import javax.servlet.ServletRequest; +import org.apache.commons.lang3.exception.ExceptionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * 通用http工具封装 + * + * @author ruoyi + */ +public class HttpHelper +{ + private static final Logger LOGGER = LoggerFactory.getLogger(HttpHelper.class); + + public static String getBodyString(ServletRequest request) + { + StringBuilder sb = new StringBuilder(); + BufferedReader reader = null; + try (InputStream inputStream = request.getInputStream()) + { + reader = new BufferedReader(new InputStreamReader(inputStream, Charset.forName("UTF-8"))); + String line = ""; + while ((line = reader.readLine()) != null) + { + sb.append(line); + } + } + catch (IOException e) + { + LOGGER.warn("getBodyString出现问题!"); + } + finally + { + if (reader != null) + { + try + { + reader.close(); + } + catch (IOException e) + { + LOGGER.error(ExceptionUtils.getMessage(e)); + } + } + } + return sb.toString(); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java new file mode 100644 index 0000000..6e3994f --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java @@ -0,0 +1,263 @@ +package com.ruoyi.common.utils.http; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.net.ConnectException; +import java.net.SocketTimeoutException; +import java.net.URL; +import java.net.URLConnection; +import java.security.cert.X509Certificate; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSession; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.utils.StringUtils; + +/** + * 通用http发送方法 + * + * @author ruoyi + */ +public class HttpUtils +{ + private static final Logger log = LoggerFactory.getLogger(HttpUtils.class); + + /** + * 向指定 URL 发送GET方法的请求 + * + * @param url 发送请求的 URL + * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return 所代表远程资源的响应结果 + */ + public static String sendGet(String url, String param) + { + return sendGet(url, param, Constants.UTF8); + } + + /** + * 向指定 URL 发送GET方法的请求 + * + * @param url 发送请求的 URL + * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @param contentType 编码类型 + * @return 所代表远程资源的响应结果 + */ + public static String sendGet(String url, String param, String contentType) + { + StringBuilder result = new StringBuilder(); + BufferedReader in = null; + try + { + String urlNameString = StringUtils.isNotBlank(param) ? url + "?" + param : url; + log.info("sendGet - {}", urlNameString); + URL realUrl = new URL(urlNameString); + URLConnection connection = realUrl.openConnection(); + connection.setRequestProperty("accept", "*/*"); + connection.setRequestProperty("connection", "Keep-Alive"); + connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + connection.connect(); + in = new BufferedReader(new InputStreamReader(connection.getInputStream(), contentType)); + String line; + while ((line = in.readLine()) != null) + { + result.append(line); + } + log.info("recv - {}", result); + } + catch (ConnectException e) + { + log.error("调用HttpUtils.sendGet ConnectException, url=" + url + ",param=" + param, e); + } + catch (SocketTimeoutException e) + { + log.error("调用HttpUtils.sendGet SocketTimeoutException, url=" + url + ",param=" + param, e); + } + catch (IOException e) + { + log.error("调用HttpUtils.sendGet IOException, url=" + url + ",param=" + param, e); + } + catch (Exception e) + { + log.error("调用HttpsUtil.sendGet Exception, url=" + url + ",param=" + param, e); + } + finally + { + try + { + if (in != null) + { + in.close(); + } + } + catch (Exception ex) + { + log.error("调用in.close Exception, url=" + url + ",param=" + param, ex); + } + } + return result.toString(); + } + + /** + * 向指定 URL 发送POST方法的请求 + * + * @param url 发送请求的 URL + * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return 所代表远程资源的响应结果 + */ + public static String sendPost(String url, String param) + { + PrintWriter out = null; + BufferedReader in = null; + StringBuilder result = new StringBuilder(); + try + { + String urlNameString = url; + log.info("sendPost - {}", urlNameString); + URL realUrl = new URL(urlNameString); + URLConnection conn = realUrl.openConnection(); + conn.setRequestProperty("accept", "*/*"); + conn.setRequestProperty("connection", "Keep-Alive"); + conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + conn.setRequestProperty("Accept-Charset", "utf-8"); + conn.setRequestProperty("contentType", "utf-8"); + conn.setDoOutput(true); + conn.setDoInput(true); + out = new PrintWriter(conn.getOutputStream()); + out.print(param); + out.flush(); + in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8")); + String line; + while ((line = in.readLine()) != null) + { + result.append(line); + } + log.info("recv - {}", result); + } + catch (ConnectException e) + { + log.error("调用HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e); + } + catch (SocketTimeoutException e) + { + log.error("调用HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e); + } + catch (IOException e) + { + log.error("调用HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e); + } + catch (Exception e) + { + log.error("调用HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e); + } + finally + { + try + { + if (out != null) + { + out.close(); + } + if (in != null) + { + in.close(); + } + } + catch (IOException ex) + { + log.error("调用in.close Exception, url=" + url + ",param=" + param, ex); + } + } + return result.toString(); + } + + public static String sendSSLPost(String url, String param) + { + StringBuilder result = new StringBuilder(); + String urlNameString = url + "?" + param; + try + { + log.info("sendSSLPost - {}", urlNameString); + SSLContext sc = SSLContext.getInstance("SSL"); + sc.init(null, new TrustManager[] { new TrustAnyTrustManager() }, new java.security.SecureRandom()); + URL console = new URL(urlNameString); + HttpsURLConnection conn = (HttpsURLConnection) console.openConnection(); + conn.setRequestProperty("accept", "*/*"); + conn.setRequestProperty("connection", "Keep-Alive"); + conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + conn.setRequestProperty("Accept-Charset", "utf-8"); + conn.setRequestProperty("contentType", "utf-8"); + conn.setDoOutput(true); + conn.setDoInput(true); + + conn.setSSLSocketFactory(sc.getSocketFactory()); + conn.setHostnameVerifier(new TrustAnyHostnameVerifier()); + conn.connect(); + InputStream is = conn.getInputStream(); + BufferedReader br = new BufferedReader(new InputStreamReader(is)); + String ret = ""; + while ((ret = br.readLine()) != null) + { + if (ret != null && !"".equals(ret.trim())) + { + result.append(new String(ret.getBytes("ISO-8859-1"), "utf-8")); + } + } + log.info("recv - {}", result); + conn.disconnect(); + br.close(); + } + catch (ConnectException e) + { + log.error("调用HttpUtils.sendSSLPost ConnectException, url=" + url + ",param=" + param, e); + } + catch (SocketTimeoutException e) + { + log.error("调用HttpUtils.sendSSLPost SocketTimeoutException, url=" + url + ",param=" + param, e); + } + catch (IOException e) + { + log.error("调用HttpUtils.sendSSLPost IOException, url=" + url + ",param=" + param, e); + } + catch (Exception e) + { + log.error("调用HttpsUtil.sendSSLPost Exception, url=" + url + ",param=" + param, e); + } + return result.toString(); + } + + private static class TrustAnyTrustManager implements X509TrustManager + { + @Override + public void checkClientTrusted(X509Certificate[] chain, String authType) + { + } + + @Override + public void checkServerTrusted(X509Certificate[] chain, String authType) + { + } + + @Override + public X509Certificate[] getAcceptedIssuers() + { + return new X509Certificate[] {}; + } + } + + private static class TrustAnyHostnameVerifier implements HostnameVerifier + { + @Override + public boolean verify(String hostname, SSLSession session) + { + return true; + } + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java new file mode 100644 index 0000000..8c8728a --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java @@ -0,0 +1,61 @@ +package com.ruoyi.common.utils.ip; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import com.alibaba.fastjson.JSONObject; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.http.HttpUtils; + +/** + * 获取地址类 + * + * @author ruoyi + */ +public class AddressUtils +{ + private static final Logger log = LoggerFactory.getLogger(AddressUtils.class); + + // IP地址查询 + public static final String IP_URL = "http://whois.pconline.com.cn/ipJson.jsp"; + + // 未知地址 + public static final String UNKNOWN = "XX XX"; + + public static String getRealAddressByIP(String ip) + { + String address = UNKNOWN; + // 内网不查询 + if (IpUtils.internalIp(ip)) + { + return "内网IP"; + } + if (RuoYiConfig.isAddressEnabled()) + { + try + { + String rspStr = HttpUtils.sendGet(IP_URL, "ip=" + ip + "&json=true", Constants.GBK); + if (StringUtils.isEmpty(rspStr)) + { + log.error("获取地理位置异常 {}", ip); + return UNKNOWN; + } + JSONObject obj = JSONObject.parseObject(rspStr); + String region = obj.getString("pro"); + String city = obj.getString("city"); + String operator = ((String)obj.get("addr")).split(" ")[1]; + return String.format("%s|%s|%s", region, city, operator); + } + catch (Exception e) + { + log.error("获取地理位置异常 {}", ip); + } + } + return address; + } + + public static void main(String[] args) { + System.out.println("地址:" + getRealAddressByIP("14.125.8.236")); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java new file mode 100644 index 0000000..1b3f42b --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java @@ -0,0 +1,195 @@ +package com.ruoyi.common.utils.ip; + +import java.net.InetAddress; +import java.net.UnknownHostException; +import javax.servlet.http.HttpServletRequest; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.html.EscapeUtil; + +/** + * 获取IP方法 + * + * @author ruoyi + */ +public class IpUtils +{ + public static String getIpAddr(HttpServletRequest request) + { + if (request == null) + { + return "unknown"; + } + String ip = request.getHeader("x-forwarded-for"); + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) + { + ip = request.getHeader("Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) + { + ip = request.getHeader("X-Forwarded-For"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) + { + ip = request.getHeader("WL-Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) + { + ip = request.getHeader("X-Real-IP"); + } + + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) + { + ip = request.getRemoteAddr(); + } + return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : EscapeUtil.clean(ip); + } + + public static boolean internalIp(String ip) + { + byte[] addr = textToNumericFormatV4(ip); + return internalIp(addr) || "127.0.0.1".equals(ip); + } + + private static boolean internalIp(byte[] addr) + { + if (StringUtils.isNull(addr) || addr.length < 2) + { + return true; + } + final byte b0 = addr[0]; + final byte b1 = addr[1]; + // 10.x.x.x/8 + final byte SECTION_1 = 0x0A; + // 172.16.x.x/12 + final byte SECTION_2 = (byte) 0xAC; + final byte SECTION_3 = (byte) 0x10; + final byte SECTION_4 = (byte) 0x1F; + // 192.168.x.x/16 + final byte SECTION_5 = (byte) 0xC0; + final byte SECTION_6 = (byte) 0xA8; + switch (b0) + { + case SECTION_1: + return true; + case SECTION_2: + if (b1 >= SECTION_3 && b1 <= SECTION_4) + { + return true; + } + case SECTION_5: + switch (b1) + { + case SECTION_6: + return true; + } + default: + return false; + } + } + + /** + * 将IPv4地址转换成字节 + * + * @param text IPv4地址 + * @return byte 字节 + */ + public static byte[] textToNumericFormatV4(String text) + { + if (text.length() == 0) + { + return null; + } + + byte[] bytes = new byte[4]; + String[] elements = text.split("\\.", -1); + try + { + long l; + int i; + switch (elements.length) + { + case 1: + l = Long.parseLong(elements[0]); + if ((l < 0L) || (l > 4294967295L)) { + return null; + } + bytes[0] = (byte) (int) (l >> 24 & 0xFF); + bytes[1] = (byte) (int) ((l & 0xFFFFFF) >> 16 & 0xFF); + bytes[2] = (byte) (int) ((l & 0xFFFF) >> 8 & 0xFF); + bytes[3] = (byte) (int) (l & 0xFF); + break; + case 2: + l = Integer.parseInt(elements[0]); + if ((l < 0L) || (l > 255L)) { + return null; + } + bytes[0] = (byte) (int) (l & 0xFF); + l = Integer.parseInt(elements[1]); + if ((l < 0L) || (l > 16777215L)) { + return null; + } + bytes[1] = (byte) (int) (l >> 16 & 0xFF); + bytes[2] = (byte) (int) ((l & 0xFFFF) >> 8 & 0xFF); + bytes[3] = (byte) (int) (l & 0xFF); + break; + case 3: + for (i = 0; i < 2; ++i) + { + l = Integer.parseInt(elements[i]); + if ((l < 0L) || (l > 255L)) { + return null; + } + bytes[i] = (byte) (int) (l & 0xFF); + } + l = Integer.parseInt(elements[2]); + if ((l < 0L) || (l > 65535L)) { + return null; + } + bytes[2] = (byte) (int) (l >> 8 & 0xFF); + bytes[3] = (byte) (int) (l & 0xFF); + break; + case 4: + for (i = 0; i < 4; ++i) + { + l = Integer.parseInt(elements[i]); + if ((l < 0L) || (l > 255L)) { + return null; + } + bytes[i] = (byte) (int) (l & 0xFF); + } + break; + default: + return null; + } + } + catch (NumberFormatException e) + { + return null; + } + return bytes; + } + + public static String getHostIp() + { + try + { + return InetAddress.getLocalHost().getHostAddress(); + } + catch (UnknownHostException e) + { + } + return "127.0.0.1"; + } + + public static String getHostName() + { + try + { + return InetAddress.getLocalHost().getHostName(); + } + catch (UnknownHostException e) + { + } + return "未知"; + } +} \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelHandlerAdapter.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelHandlerAdapter.java new file mode 100644 index 0000000..5ea74c1 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelHandlerAdapter.java @@ -0,0 +1,19 @@ +package com.ruoyi.common.utils.poi; + +/** + * Excel数据格式处理适配器 + * + * @author ruoyi + */ +public interface ExcelHandlerAdapter +{ + /** + * 格式化 + * + * @param value 单元格数据值 + * @param args excel注解args参数组 + * + * @return 处理后的值 + */ + Object format(Object value, String[] args); +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java new file mode 100644 index 0000000..d199321 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java @@ -0,0 +1,1405 @@ +package com.ruoyi.common.utils.poi; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.math.BigDecimal; +import java.text.DecimalFormat; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Comparator; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.stream.Collectors; +import javax.servlet.http.HttpServletResponse; + +import com.alibaba.fastjson.JSONArray; +import org.apache.poi.hssf.usermodel.HSSFClientAnchor; +import org.apache.poi.hssf.usermodel.HSSFPicture; +import org.apache.poi.hssf.usermodel.HSSFPictureData; +import org.apache.poi.hssf.usermodel.HSSFShape; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ooxml.POIXMLDocumentPart; +import org.apache.poi.ss.usermodel.BorderStyle; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.ClientAnchor; +import org.apache.poi.ss.usermodel.DataValidation; +import org.apache.poi.ss.usermodel.DataValidationConstraint; +import org.apache.poi.ss.usermodel.DataValidationHelper; +import org.apache.poi.ss.usermodel.DateUtil; +import org.apache.poi.ss.usermodel.Drawing; +import org.apache.poi.ss.usermodel.FillPatternType; +import org.apache.poi.ss.usermodel.Font; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.ss.usermodel.PictureData; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.VerticalAlignment; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.usermodel.WorkbookFactory; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.ss.util.CellRangeAddressList; +import org.apache.poi.util.IOUtils; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; +import org.apache.poi.xssf.usermodel.XSSFClientAnchor; +import org.apache.poi.xssf.usermodel.XSSFDataValidation; +import org.apache.poi.xssf.usermodel.XSSFDrawing; +import org.apache.poi.xssf.usermodel.XSSFPicture; +import org.apache.poi.xssf.usermodel.XSSFShape; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTMarker; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.annotation.Excel.ColumnType; +import com.ruoyi.common.annotation.Excel.Type; +import com.ruoyi.common.annotation.Excels; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.exception.UtilException; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.DictUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.file.FileTypeUtils; +import com.ruoyi.common.utils.file.FileUtils; +import com.ruoyi.common.utils.file.ImageUtils; +import com.ruoyi.common.utils.reflect.ReflectUtils; + +/** + * Excel相关处理 + * + * @author ruoyi + */ +public class ExcelUtil +{ + private static final Logger log = LoggerFactory.getLogger(ExcelUtil.class); + + /** + * Excel sheet最大行数,默认65536 + */ + public static final int sheetSize = 65536; + + /** + * 工作表名称 + */ + private String sheetName; + + /** + * 导出类型(EXPORT:导出数据;IMPORT:导入模板) + */ + private Type type; + + /** + * 工作薄对象 + */ + private Workbook wb; + + /** + * 工作表对象 + */ + private Sheet sheet; + + /** + * 样式列表 + */ + private Map styles; + + /** + * 导入导出数据列表 + */ + private List list; + + /** + * 注解列表 + */ + private List fields; + + /** + * 当前行号 + */ + private int rownum; + + /** + * 标题 + */ + private String title; + + /** + * 最大高度 + */ + private short maxHeight; + + /** + * 统计列表 + */ + private Map statistics = new HashMap(); + + /** + * 数字格式 + */ + private static final DecimalFormat DOUBLE_FORMAT = new DecimalFormat("######0.00"); + + /** + * 实体对象 + */ + public Class clazz; + + public ExcelUtil(Class clazz) + { + this.clazz = clazz; + } + + public void init(List list, String sheetName, String title, Type type) + { + if (list == null) + { + list = new ArrayList(); + } + this.list = list; + this.sheetName = sheetName; + this.type = type; + this.title = title; + createExcelField(); + createWorkbook(); + createTitle(); + } + + /** + * 创建excel第一行标题 + */ + public void createTitle() + { + if (StringUtils.isNotEmpty(title)) + { + Row titleRow = sheet.createRow(rownum == 0 ? rownum++ : 0); + titleRow.setHeightInPoints(30); + Cell titleCell = titleRow.createCell(0); + titleCell.setCellStyle(styles.get("title")); + titleCell.setCellValue(title); + sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), titleRow.getRowNum(), titleRow.getRowNum(), + this.fields.size() - 1)); + } + } + + /** + * 对excel表单默认第一个索引名转换成list + * + * @param is 输入流 + * @return 转换后集合 + */ + public List importExcel(InputStream is) throws Exception + { + return importExcel(is, 0); + } + + /** + * 对excel表单默认第一个索引名转换成list + * + * @param is 输入流 + * @param titleNum 标题占用行数 + * @return 转换后集合 + */ + public List importExcel(InputStream is, int titleNum) throws Exception + { + return importExcel(StringUtils.EMPTY, is, titleNum); + } + + /** + * 对excel表单指定表格索引名转换成list + * + * @param sheetName 表格索引名 + * @param titleNum 标题占用行数 + * @param is 输入流 + * @return 转换后集合 + */ + public List importExcel(String sheetName, InputStream is, int titleNum) throws Exception + { + this.type = Type.IMPORT; + this.wb = WorkbookFactory.create(is); + List list = new ArrayList(); + // 如果指定sheet名,则取指定sheet中的内容 否则默认指向第1个sheet + Sheet sheet = StringUtils.isNotEmpty(sheetName) ? wb.getSheet(sheetName) : wb.getSheetAt(0); + if (sheet == null) + { + throw new IOException("文件sheet不存在"); + } + boolean isXSSFWorkbook = !(wb instanceof HSSFWorkbook); + Map pictures; + if (isXSSFWorkbook) + { + pictures = getSheetPictures07((XSSFSheet) sheet, (XSSFWorkbook) wb); + } + else + { + pictures = getSheetPictures03((HSSFSheet) sheet, (HSSFWorkbook) wb); + } + // 获取最后一个非空行的行下标,比如总行数为n,则返回的为n-1 + int rows = sheet.getLastRowNum(); + + if (rows > 0) + { + // 定义一个map用于存放excel列的序号和field. + Map cellMap = new HashMap(); + // 获取表头 + Row heard = sheet.getRow(titleNum); + for (int i = 0; i < heard.getPhysicalNumberOfCells(); i++) + { + Cell cell = heard.getCell(i); + if (StringUtils.isNotNull(cell)) + { + String value = this.getCellValue(heard, i).toString(); + cellMap.put(value, i); + } + else + { + cellMap.put(null, i); + } + } + // 有数据时才处理 得到类的所有field. + List fields = this.getFields(); + Map fieldsMap = new HashMap(); + for (Object[] objects : fields) + { + Excel attr = (Excel) objects[1]; + Integer column = cellMap.get(attr.name()); + if (column != null) + { + fieldsMap.put(column, objects); + } + } + for (int i = titleNum + 1; i <= rows; i++) + { + // 从第2行开始取数据,默认第一行是表头. + Row row = sheet.getRow(i); + // 判断当前行是否是空行 + if (isRowEmpty(row)) + { + continue; + } + T entity = null; + for (Map.Entry entry : fieldsMap.entrySet()) + { + Object val = this.getCellValue(row, entry.getKey()); + + // 如果不存在实例则新建. + entity = (entity == null ? clazz.newInstance() : entity); + // 从map中得到对应列的field. + Field field = (Field) entry.getValue()[0]; + Excel attr = (Excel) entry.getValue()[1]; + // 取得类型,并根据对象类型设置值. + Class fieldType = field.getType(); + if (String.class == fieldType) + { + String s = Convert.toStr(val); + if (StringUtils.endsWith(s, ".0")) + { + val = StringUtils.substringBefore(s, ".0"); + } + else + { + String dateFormat = field.getAnnotation(Excel.class).dateFormat(); + if (StringUtils.isNotEmpty(dateFormat)) + { + val = DateUtils.parseDateToStr(dateFormat, (Date) val); + } + else + { + val = Convert.toStr(val); + } + } + } + else if ((Integer.TYPE == fieldType || Integer.class == fieldType) && StringUtils.isNumeric(Convert.toStr(val))) + { + val = Convert.toInt(val); + } + else if (Long.TYPE == fieldType || Long.class == fieldType) + { + val = Convert.toLong(val); + } + else if (Double.TYPE == fieldType || Double.class == fieldType) + { + val = Convert.toDouble(val); + } + else if (Float.TYPE == fieldType || Float.class == fieldType) + { + val = Convert.toFloat(val); + } + else if (BigDecimal.class == fieldType) + { + val = Convert.toBigDecimal(val); + } + else if (Date.class == fieldType) + { + if (val instanceof String) + { + val = DateUtils.parseDate(val); + } + else if (val instanceof Double) + { + val = DateUtil.getJavaDate((Double) val); + } + } + else if (Boolean.TYPE == fieldType || Boolean.class == fieldType) + { + val = Convert.toBool(val, false); + } + if (StringUtils.isNotNull(fieldType)) + { + String propertyName = field.getName(); + if (StringUtils.isNotEmpty(attr.targetAttr())) + { + propertyName = field.getName() + "." + attr.targetAttr(); + } + else if (StringUtils.isNotEmpty(attr.readConverterExp())) + { + val = reverseByExp(Convert.toStr(val), attr.readConverterExp(), attr.separator()); + } + else if (StringUtils.isNotEmpty(attr.dictType())) + { + val = reverseDictByExp(Convert.toStr(val), attr.dictType(), attr.separator()); + } + else if (!attr.handler().equals(ExcelHandlerAdapter.class)) + { + val = dataFormatHandlerAdapter(val, attr); + } + else if (ColumnType.IMAGE == attr.cellType() && StringUtils.isNotEmpty(pictures)) + { + PictureData image = pictures.get(row.getRowNum() + "_" + entry.getKey()); + if (image == null) + { + val = ""; + } + else + { + byte[] data = image.getData(); + val = FileUtils.writeImportBytes(data); + } + } + ReflectUtils.invokeSetter(entity, propertyName, val); + } + } + list.add(entity); + } + } + return list; + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param list 导出数据集合 + * @param sheetName 工作表的名称 + * @return 结果 + */ + public AjaxResult exportExcel(List list, String sheetName) + { + return exportExcel(list, sheetName, StringUtils.EMPTY); + } + public String writeExcel(List list, String sheetName) + { + log.info("【导出】将要导出的数据:"+ JSONArray.toJSONString(list)); + this.init(list, sheetName, title, Type.EXPORT); + return exportExcel(); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param list 导出数据集合 + * @param sheetName 工作表的名称 + * @param title 标题 + * @return 结果 + */ + public AjaxResult exportExcel(List list, String sheetName, String title) + { + this.init(list, sheetName, title, Type.EXPORT); + return AjaxResult.success(exportExcel()); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param response 返回数据 + * @param list 导出数据集合 + * @param sheetName 工作表的名称 + * @return 结果 + * @throws IOException + */ + public void exportExcel(HttpServletResponse response, List list, String sheetName)throws IOException + { + exportExcel(response, list, sheetName, StringUtils.EMPTY); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param response 返回数据 + * @param list 导出数据集合 + * @param sheetName 工作表的名称 + * @param title 标题 + * @return 结果 + * @throws IOException + */ + public void exportExcel(HttpServletResponse response, List list, String sheetName, String title) throws IOException + { + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + this.init(list, sheetName, title, Type.EXPORT); + exportExcel(response.getOutputStream()); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param sheetName 工作表的名称 + * @return 结果 + */ + public AjaxResult importTemplateExcel(String sheetName) + { + return importTemplateExcel(sheetName, StringUtils.EMPTY); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param sheetName 工作表的名称 + * @param title 标题 + * @return 结果 + */ + public AjaxResult importTemplateExcel(String sheetName, String title) + { + this.init(null, sheetName, title, Type.IMPORT); + return AjaxResult.success(exportExcel()); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param sheetName 工作表的名称 + * @return 结果 + */ + public void importTemplateExcel(HttpServletResponse response, String sheetName) throws IOException + { + importTemplateExcel(response, sheetName, StringUtils.EMPTY); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param sheetName 工作表的名称 + * @param title 标题 + * @return 结果 + */ + public void importTemplateExcel(HttpServletResponse response, String sheetName, String title) throws IOException + { + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + this.init(null, sheetName, title, Type.IMPORT); + exportExcel(response.getOutputStream()); + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @return 结果 + */ + public void exportExcel(OutputStream out) + { + try + { + writeSheet(); + wb.write(out); + } + catch (Exception e) + { + log.error("导出Excel异常{}", e.getMessage()); + } + finally + { + IOUtils.closeQuietly(wb); + IOUtils.closeQuietly(out); + } + } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @return 结果 + */ + public String exportExcel() + { + OutputStream out = null; + try + { + writeSheet(); + String filename = encodingFilename(sheetName); + out = new FileOutputStream(getAbsoluteFile(filename)); + wb.write(out); + return filename; + } + catch (Exception e) + { + log.error("导出Excel异常{}", e.getMessage()); + throw new UtilException("导出Excel失败,请联系网站管理员!"); + } + finally + { + IOUtils.closeQuietly(wb); + IOUtils.closeQuietly(out); + } + } + + /** + * 创建写入数据到Sheet + */ + public void writeSheet() + { + // 取出一共有多少个sheet. + int sheetNo = Math.max(1, (int) Math.ceil(list.size() * 1.0 / sheetSize)); + for (int index = 0; index < sheetNo; index++) + { + createSheet(sheetNo, index); + + // 产生一行 + Row row = sheet.createRow(rownum); + int column = 0; + // 写入各个字段的列头名称 + for (Object[] os : fields) + { + Excel excel = (Excel) os[1]; + this.createCell(excel, row, column++); + } + if (Type.EXPORT.equals(type)) + { + fillExcelData(index, row); + addStatisticsRow(); + } + } + } + + /** + * 填充excel数据 + * + * @param index 序号 + * @param row 单元格行 + */ + public void fillExcelData(int index, Row row) + { + int startNo = index * sheetSize; + int endNo = Math.min(startNo + sheetSize, list.size()); + for (int i = startNo; i < endNo; i++) + { + row = sheet.createRow(i + 1 + rownum - startNo); + // 得到导出对象. + T vo = (T) list.get(i); + int column = 0; + for (Object[] os : fields) + { + Field field = (Field) os[0]; + Excel excel = (Excel) os[1]; + this.addCell(excel, row, vo, field, column++); + } + } + } + + /** + * 创建表格样式 + * + * @param wb 工作薄对象 + * @return 样式列表 + */ + private Map createStyles(Workbook wb) + { + // 写入各条记录,每条记录对应excel表中的一行 + Map styles = new HashMap(); + CellStyle style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font titleFont = wb.createFont(); + titleFont.setFontName("Arial"); + titleFont.setFontHeightInPoints((short) 16); + titleFont.setBold(true); + style.setFont(titleFont); + styles.put("title", style); + + style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderBottom(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = wb.createFont(); + dataFont.setFontName("Arial"); + dataFont.setFontHeightInPoints((short) 10); + style.setFont(dataFont); + styles.put("data", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = wb.createFont(); + headerFont.setFontName("Arial"); + headerFont.setFontHeightInPoints((short) 10); + headerFont.setBold(true); + headerFont.setColor(IndexedColors.WHITE.getIndex()); + style.setFont(headerFont); + styles.put("header", style); + + style = wb.createCellStyle(); + style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + Font totalFont = wb.createFont(); + totalFont.setFontName("Arial"); + totalFont.setFontHeightInPoints((short) 10); + style.setFont(totalFont); + styles.put("total", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.LEFT); + styles.put("data1", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.CENTER); + styles.put("data2", style); + + style = wb.createCellStyle(); + style.cloneStyleFrom(styles.get("data")); + style.setAlignment(HorizontalAlignment.RIGHT); + styles.put("data3", style); + + return styles; + } + + /** + * 创建单元格 + */ + public Cell createCell(Excel attr, Row row, int column) + { + // 创建列 + Cell cell = row.createCell(column); + // 写入列信息 + cell.setCellValue(attr.name()); + setDataValidation(attr, row, column); + cell.setCellStyle(styles.get("header")); + return cell; + } + + /** + * 设置单元格信息 + * + * @param value 单元格值 + * @param attr 注解相关 + * @param cell 单元格信息 + */ + public void setCellVo(Object value, Excel attr, Cell cell) + { + if (ColumnType.STRING == attr.cellType()) + { + cell.setCellValue(StringUtils.isNull(value) ? attr.defaultValue() : value + attr.suffix()); + } + else if (ColumnType.NUMERIC == attr.cellType()) + { + if (StringUtils.isNotNull(value)) + { + cell.setCellValue(StringUtils.contains(Convert.toStr(value), ".") ? Convert.toDouble(value) : Convert.toInt(value)); + } + } + else if (ColumnType.IMAGE == attr.cellType()) + { + ClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, (short) cell.getColumnIndex(), cell.getRow().getRowNum(), (short) (cell.getColumnIndex() + 1), cell.getRow().getRowNum() + 1); + String imagePath = Convert.toStr(value); + if (StringUtils.isNotEmpty(imagePath)) + { + byte[] data = ImageUtils.getImage(imagePath); + getDrawingPatriarch(cell.getSheet()).createPicture(anchor, + cell.getSheet().getWorkbook().addPicture(data, getImageType(data))); + } + } + } + + /** + * 获取画布 + */ + public static Drawing getDrawingPatriarch(Sheet sheet) + { + if (sheet.getDrawingPatriarch() == null) + { + sheet.createDrawingPatriarch(); + } + return sheet.getDrawingPatriarch(); + } + + /** + * 获取图片类型,设置图片插入类型 + */ + public int getImageType(byte[] value) + { + String type = FileTypeUtils.getFileExtendName(value); + if ("JPG".equalsIgnoreCase(type)) + { + return Workbook.PICTURE_TYPE_JPEG; + } + else if ("PNG".equalsIgnoreCase(type)) + { + return Workbook.PICTURE_TYPE_PNG; + } + return Workbook.PICTURE_TYPE_JPEG; + } + + /** + * 创建表格样式 + */ + public void setDataValidation(Excel attr, Row row, int column) + { + if (attr.name().indexOf("注:") >= 0) + { + sheet.setColumnWidth(column, 6000); + } + else + { + // 设置列宽 + sheet.setColumnWidth(column, (int) ((attr.width() + 0.72) * 256)); + } + // 如果设置了提示信息则鼠标放上去提示. + if (StringUtils.isNotEmpty(attr.prompt())) + { + // 这里默认设了2-101列提示. + setXSSFPrompt(sheet, "", attr.prompt(), 1, 100, column, column); + } + // 如果设置了combo属性则本列只能选择不能输入 + if (attr.combo().length > 0) + { + // 这里默认设了2-101列只能选择不能输入. + setXSSFValidation(sheet, attr.combo(), 1, 100, column, column); + } + } + + /** + * 添加单元格 + */ + public Cell addCell(Excel attr, Row row, T vo, Field field, int column) + { + Cell cell = null; + try + { + // 设置行高 + row.setHeight(maxHeight); + // 根据Excel中设置情况决定是否导出,有些情况需要保持为空,希望用户填写这一列. + if (attr.isExport()) + { + // 创建cell + cell = row.createCell(column); + int align = attr.align().value(); + cell.setCellStyle(styles.get("data" + (align >= 1 && align <= 3 ? align : ""))); + + // 用于读取对象中的属性 + Object value = getTargetValue(vo, field, attr); + String dateFormat = attr.dateFormat(); + String readConverterExp = attr.readConverterExp(); + String separator = attr.separator(); + String dictType = attr.dictType(); + if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) + { + if (value instanceof LocalDateTime) { + cell.setCellValue(DateUtils.parseDateToStr(dateFormat, (LocalDateTime) value)); + } else { + cell.setCellValue(DateUtils.parseDateToStr(dateFormat, (Date) value)); + } + } + else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value)) + { + cell.setCellValue(convertByExp(Convert.toStr(value), readConverterExp, separator)); + } + else if (StringUtils.isNotEmpty(dictType) && StringUtils.isNotNull(value)) + { + cell.setCellValue(convertDictByExp(Convert.toStr(value), dictType, separator)); + } + else if (value instanceof BigDecimal && -1 != attr.scale()) + { + cell.setCellValue((((BigDecimal) value).setScale(attr.scale(), attr.roundingMode())).toString()); + } + else if (!attr.handler().equals(ExcelHandlerAdapter.class)) + { + cell.setCellValue(dataFormatHandlerAdapter(value, attr)); + } + else + { + // 设置列类型 + setCellVo(value, attr, cell); + } + addStatisticsData(column, Convert.toStr(value), attr); + } + } + catch (Exception e) + { + log.error("导出Excel失败{}", e); + } + return cell; + } + + /** + * 设置 POI XSSFSheet 单元格提示 + * + * @param sheet 表单 + * @param promptTitle 提示标题 + * @param promptContent 提示内容 + * @param firstRow 开始行 + * @param endRow 结束行 + * @param firstCol 开始列 + * @param endCol 结束列 + */ + public void setXSSFPrompt(Sheet sheet, String promptTitle, String promptContent, int firstRow, int endRow, + int firstCol, int endCol) + { + DataValidationHelper helper = sheet.getDataValidationHelper(); + DataValidationConstraint constraint = helper.createCustomConstraint("DD1"); + CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol); + DataValidation dataValidation = helper.createValidation(constraint, regions); + dataValidation.createPromptBox(promptTitle, promptContent); + dataValidation.setShowPromptBox(true); + sheet.addValidationData(dataValidation); + } + + /** + * 设置某些列的值只能输入预制的数据,显示下拉框. + * + * @param sheet 要设置的sheet. + * @param textlist 下拉框显示的内容 + * @param firstRow 开始行 + * @param endRow 结束行 + * @param firstCol 开始列 + * @param endCol 结束列 + * @return 设置好的sheet. + */ + public void setXSSFValidation(Sheet sheet, String[] textlist, int firstRow, int endRow, int firstCol, int endCol) + { + DataValidationHelper helper = sheet.getDataValidationHelper(); + // 加载下拉列表内容 + DataValidationConstraint constraint = helper.createExplicitListConstraint(textlist); + // 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列 + CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol); + // 数据有效性对象 + DataValidation dataValidation = helper.createValidation(constraint, regions); + // 处理Excel兼容性问题 + if (dataValidation instanceof XSSFDataValidation) + { + dataValidation.setSuppressDropDownArrow(true); + dataValidation.setShowErrorBox(true); + } + else + { + dataValidation.setSuppressDropDownArrow(false); + } + + sheet.addValidationData(dataValidation); + } + + /** + * 解析导出值 0=男,1=女,2=未知 + * + * @param propertyValue 参数值 + * @param converterExp 翻译注解 + * @param separator 分隔符 + * @return 解析后值 + */ + public static String convertByExp(String propertyValue, String converterExp, String separator) + { + StringBuilder propertyString = new StringBuilder(); + String[] convertSource = converterExp.split(","); + for (String item : convertSource) + { + String[] itemArray = item.split("="); + if (StringUtils.containsAny(separator, propertyValue)) + { + for (String value : propertyValue.split(separator)) + { + if (itemArray[0].equals(value)) + { + propertyString.append(itemArray[1] + separator); + break; + } + } + } + else + { + if (itemArray[0].equals(propertyValue)) + { + return itemArray[1]; + } + } + } + return StringUtils.stripEnd(propertyString.toString(), separator); + } + + /** + * 反向解析值 男=0,女=1,未知=2 + * + * @param propertyValue 参数值 + * @param converterExp 翻译注解 + * @param separator 分隔符 + * @return 解析后值 + */ + public static String reverseByExp(String propertyValue, String converterExp, String separator) + { + StringBuilder propertyString = new StringBuilder(); + String[] convertSource = converterExp.split(","); + for (String item : convertSource) + { + String[] itemArray = item.split("="); + if (StringUtils.containsAny(separator, propertyValue)) + { + for (String value : propertyValue.split(separator)) + { + if (itemArray[1].equals(value)) + { + propertyString.append(itemArray[0] + separator); + break; + } + } + } + else + { + if (itemArray[1].equals(propertyValue)) + { + return itemArray[0]; + } + } + } + return StringUtils.stripEnd(propertyString.toString(), separator); + } + + /** + * 解析字典值 + * + * @param dictValue 字典值 + * @param dictType 字典类型 + * @param separator 分隔符 + * @return 字典标签 + */ + public static String convertDictByExp(String dictValue, String dictType, String separator) + { + return DictUtils.getDictLabel(dictType, dictValue, separator); + } + + /** + * 反向解析值字典值 + * + * @param dictLabel 字典标签 + * @param dictType 字典类型 + * @param separator 分隔符 + * @return 字典值 + */ + public static String reverseDictByExp(String dictLabel, String dictType, String separator) + { + return DictUtils.getDictValue(dictType, dictLabel, separator); + } + + /** + * 数据处理器 + * + * @param value 数据值 + * @param excel 数据注解 + * @return + */ + public String dataFormatHandlerAdapter(Object value, Excel excel) + { + try + { + Object instance = excel.handler().newInstance(); + Method formatMethod = excel.handler().getMethod("format", new Class[] { Object.class, String[].class }); + value = formatMethod.invoke(instance, value, excel.args()); + } + catch (Exception e) + { + log.error("不能格式化数据 " + excel.handler(), e.getMessage()); + } + return Convert.toStr(value); + } + + /** + * 合计统计信息 + */ + private void addStatisticsData(Integer index, String text, Excel entity) + { + if (entity != null && entity.isStatistics()) + { + Double temp = 0D; + if (!statistics.containsKey(index)) + { + statistics.put(index, temp); + } + try + { + temp = Double.valueOf(text); + } + catch (NumberFormatException e) + { + } + statistics.put(index, statistics.get(index) + temp); + } + } + + /** + * 创建统计行 + */ + public void addStatisticsRow() + { + if (statistics.size() > 0) + { + Row row = sheet.createRow(sheet.getLastRowNum() + 1); + Set keys = statistics.keySet(); + Cell cell = row.createCell(0); + cell.setCellStyle(styles.get("total")); + cell.setCellValue("合计"); + + for (Integer key : keys) + { + cell = row.createCell(key); + cell.setCellStyle(styles.get("total")); + cell.setCellValue(DOUBLE_FORMAT.format(statistics.get(key))); + } + statistics.clear(); + } + } + + /** + * 编码文件名 + */ + public String encodingFilename(String filename) + { + filename = UUID.randomUUID().toString() + "_" + filename + ".xlsx"; + return filename; + } + + /** + * 获取下载路径 + * + * @param filename 文件名称 + */ + public String getAbsoluteFile(String filename) + { + String downloadPath = RuoYiConfig.getDownloadPath() + filename; + File desc = new File(downloadPath); + if (!desc.getParentFile().exists()) + { + desc.getParentFile().mkdirs(); + } + return downloadPath; + } + + /** + * 获取bean中的属性值 + * + * @param vo 实体对象 + * @param field 字段 + * @param excel 注解 + * @return 最终的属性值 + * @throws Exception + */ + private Object getTargetValue(T vo, Field field, Excel excel) throws Exception + { + Object o = field.get(vo); + if (StringUtils.isNotEmpty(excel.targetAttr())) + { + String target = excel.targetAttr(); + if (target.indexOf(".") > -1) + { + String[] targets = target.split("[.]"); + for (String name : targets) + { + o = getValue(o, name); + } + } + else + { + o = getValue(o, target); + } + } + return o; + } + + /** + * 以类的属性的get方法方法形式获取值 + * + * @param o + * @param name + * @return value + * @throws Exception + */ + private Object getValue(Object o, String name) throws Exception + { + if (StringUtils.isNotNull(o) && StringUtils.isNotEmpty(name)) + { + Class clazz = o.getClass(); + Field field = clazz.getDeclaredField(name); + field.setAccessible(true); + o = field.get(o); + } + return o; + } + + /** + * 得到所有定义字段 + */ + private void createExcelField() + { + this.fields = getFields(); + this.fields = this.fields.stream().sorted(Comparator.comparing(objects -> ((Excel) objects[1]).sort())).collect(Collectors.toList()); + this.maxHeight = getRowHeight(); + } + + /** + * 获取字段注解信息 + */ + public List getFields() + { + List fields = new ArrayList(); + List tempFields = new ArrayList<>(); + tempFields.addAll(Arrays.asList(clazz.getSuperclass().getDeclaredFields())); + tempFields.addAll(Arrays.asList(clazz.getDeclaredFields())); + for (Field field : tempFields) + { + // 单注解 + if (field.isAnnotationPresent(Excel.class)) + { + Excel attr = field.getAnnotation(Excel.class); + if (attr != null && (attr.type() == Type.ALL || attr.type() == type)) + { + field.setAccessible(true); + fields.add(new Object[] { field, attr }); + } + } + + // 多注解 + if (field.isAnnotationPresent(Excels.class)) + { + Excels attrs = field.getAnnotation(Excels.class); + Excel[] excels = attrs.value(); + for (Excel attr : excels) + { + if (attr != null && (attr.type() == Type.ALL || attr.type() == type)) + { + field.setAccessible(true); + fields.add(new Object[] { field, attr }); + } + } + } + } + return fields; + } + + /** + * 根据注解获取最大行高 + */ + public short getRowHeight() + { + double maxHeight = 0; + for (Object[] os : this.fields) + { + Excel excel = (Excel) os[1]; + maxHeight = maxHeight > excel.height() ? maxHeight : excel.height(); + } + return (short) (maxHeight * 20); + } + + /** + * 创建一个工作簿 + */ + public void createWorkbook() + { + this.wb = new SXSSFWorkbook(500); + this.sheet = wb.createSheet(); + wb.setSheetName(0, sheetName); + this.styles = createStyles(wb); + } + + /** + * 创建工作表 + * + * @param sheetNo sheet数量 + * @param index 序号 + */ + public void createSheet(int sheetNo, int index) + { + // 设置工作表的名称. + if (sheetNo > 1 && index > 0) + { + this.sheet = wb.createSheet(); + this.createTitle(); + wb.setSheetName(index, sheetName + index); + } + } + + /** + * 获取单元格值 + * + * @param row 获取的行 + * @param column 获取单元格列号 + * @return 单元格值 + */ + public Object getCellValue(Row row, int column) + { + if (row == null) + { + return row; + } + Object val = ""; + try + { + Cell cell = row.getCell(column); + if (StringUtils.isNotNull(cell)) + { + if (cell.getCellType() == CellType.NUMERIC || cell.getCellType() == CellType.FORMULA) + { + val = cell.getNumericCellValue(); + if (DateUtil.isCellDateFormatted(cell)) + { + val = DateUtil.getJavaDate((Double) val); // POI Excel 日期格式转换 + } + else + { + if ((Double) val % 1 != 0) + { + val = new BigDecimal(val.toString()); + } + else + { + val = new DecimalFormat("0").format(val); + } + } + } + else if (cell.getCellType() == CellType.STRING) + { + val = cell.getStringCellValue(); + } + else if (cell.getCellType() == CellType.BOOLEAN) + { + val = cell.getBooleanCellValue(); + } + else if (cell.getCellType() == CellType.ERROR) + { + val = cell.getErrorCellValue(); + } + + } + } + catch (Exception e) + { + return val; + } + return val; + } + + /** + * 判断是否是空行 + * + * @param row 判断的行 + * @return + */ + private boolean isRowEmpty(Row row) + { + if (row == null) + { + return true; + } + for (int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++) + { + Cell cell = row.getCell(i); + if (cell != null && cell.getCellType() != CellType.BLANK) + { + return false; + } + } + return true; + } + + /** + * 获取Excel2003图片 + * + * @param sheet 当前sheet对象 + * @param workbook 工作簿对象 + * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData + */ + public static Map getSheetPictures03(HSSFSheet sheet, HSSFWorkbook workbook) + { + Map sheetIndexPicMap = new HashMap(); + List pictures = workbook.getAllPictures(); + if (!pictures.isEmpty()) + { + for (HSSFShape shape : sheet.getDrawingPatriarch().getChildren()) + { + HSSFClientAnchor anchor = (HSSFClientAnchor) shape.getAnchor(); + if (shape instanceof HSSFPicture) + { + HSSFPicture pic = (HSSFPicture) shape; + int pictureIndex = pic.getPictureIndex() - 1; + HSSFPictureData picData = pictures.get(pictureIndex); + String picIndex = String.valueOf(anchor.getRow1()) + "_" + String.valueOf(anchor.getCol1()); + sheetIndexPicMap.put(picIndex, picData); + } + } + return sheetIndexPicMap; + } + else + { + return sheetIndexPicMap; + } + } + + /** + * 获取Excel2007图片 + * + * @param sheet 当前sheet对象 + * @param workbook 工作簿对象 + * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData + */ + public static Map getSheetPictures07(XSSFSheet sheet, XSSFWorkbook workbook) + { + Map sheetIndexPicMap = new HashMap(); + for (POIXMLDocumentPart dr : sheet.getRelations()) + { + if (dr instanceof XSSFDrawing) + { + XSSFDrawing drawing = (XSSFDrawing) dr; + List shapes = drawing.getShapes(); + for (XSSFShape shape : shapes) + { + if (shape instanceof XSSFPicture) + { + XSSFPicture pic = (XSSFPicture) shape; + XSSFClientAnchor anchor = pic.getPreferredSize(); + CTMarker ctMarker = anchor.getFrom(); + String picIndex = ctMarker.getRow() + "_" + ctMarker.getCol(); + sheetIndexPicMap.put(picIndex, pic.getPictureData()); + } + } + } + } + return sheetIndexPicMap; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java new file mode 100644 index 0000000..b19953e --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java @@ -0,0 +1,410 @@ +package com.ruoyi.common.utils.reflect; + +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.Date; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.Validate; +import org.apache.poi.ss.usermodel.DateUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.utils.DateUtils; + +/** + * 反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class, 被AOP过的真实类等工具函数. + * + * @author ruoyi + */ +@SuppressWarnings("rawtypes") +public class ReflectUtils +{ + private static final String SETTER_PREFIX = "set"; + + private static final String GETTER_PREFIX = "get"; + + private static final String CGLIB_CLASS_SEPARATOR = "$$"; + + private static Logger logger = LoggerFactory.getLogger(ReflectUtils.class); + + /** + * 调用Getter方法. + * 支持多级,如:对象名.对象名.方法 + */ + @SuppressWarnings("unchecked") + public static E invokeGetter(Object obj, String propertyName) + { + Object object = obj; + for (String name : StringUtils.split(propertyName, ".")) + { + String getterMethodName = GETTER_PREFIX + StringUtils.capitalize(name); + object = invokeMethod(object, getterMethodName, new Class[] {}, new Object[] {}); + } + return (E) object; + } + + /** + * 调用Setter方法, 仅匹配方法名。 + * 支持多级,如:对象名.对象名.方法 + */ + public static void invokeSetter(Object obj, String propertyName, E value) + { + Object object = obj; + String[] names = StringUtils.split(propertyName, "."); + for (int i = 0; i < names.length; i++) + { + if (i < names.length - 1) + { + String getterMethodName = GETTER_PREFIX + StringUtils.capitalize(names[i]); + object = invokeMethod(object, getterMethodName, new Class[] {}, new Object[] {}); + } + else + { + String setterMethodName = SETTER_PREFIX + StringUtils.capitalize(names[i]); + invokeMethodByName(object, setterMethodName, new Object[] { value }); + } + } + } + + /** + * 直接读取对象属性值, 无视private/protected修饰符, 不经过getter函数. + */ + @SuppressWarnings("unchecked") + public static E getFieldValue(final Object obj, final String fieldName) + { + Field field = getAccessibleField(obj, fieldName); + if (field == null) + { + logger.debug("在 [" + obj.getClass() + "] 中,没有找到 [" + fieldName + "] 字段 "); + return null; + } + E result = null; + try + { + result = (E) field.get(obj); + } + catch (IllegalAccessException e) + { + logger.error("不可能抛出的异常{}", e.getMessage()); + } + return result; + } + + /** + * 直接设置对象属性值, 无视private/protected修饰符, 不经过setter函数. + */ + public static void setFieldValue(final Object obj, final String fieldName, final E value) + { + Field field = getAccessibleField(obj, fieldName); + if (field == null) + { + // throw new IllegalArgumentException("在 [" + obj.getClass() + "] 中,没有找到 [" + fieldName + "] 字段 "); + logger.debug("在 [" + obj.getClass() + "] 中,没有找到 [" + fieldName + "] 字段 "); + return; + } + try + { + field.set(obj, value); + } + catch (IllegalAccessException e) + { + logger.error("不可能抛出的异常: {}", e.getMessage()); + } + } + + /** + * 直接调用对象方法, 无视private/protected修饰符. + * 用于一次性调用的情况,否则应使用getAccessibleMethod()函数获得Method后反复调用. + * 同时匹配方法名+参数类型, + */ + @SuppressWarnings("unchecked") + public static E invokeMethod(final Object obj, final String methodName, final Class[] parameterTypes, + final Object[] args) + { + if (obj == null || methodName == null) + { + return null; + } + Method method = getAccessibleMethod(obj, methodName, parameterTypes); + if (method == null) + { + logger.debug("在 [" + obj.getClass() + "] 中,没有找到 [" + methodName + "] 方法 "); + return null; + } + try + { + return (E) method.invoke(obj, args); + } + catch (Exception e) + { + String msg = "method: " + method + ", obj: " + obj + ", args: " + args + ""; + throw convertReflectionExceptionToUnchecked(msg, e); + } + } + + /** + * 直接调用对象方法, 无视private/protected修饰符, + * 用于一次性调用的情况,否则应使用getAccessibleMethodByName()函数获得Method后反复调用. + * 只匹配函数名,如果有多个同名函数调用第一个。 + */ + @SuppressWarnings("unchecked") + public static E invokeMethodByName(final Object obj, final String methodName, final Object[] args) + { + Method method = getAccessibleMethodByName(obj, methodName, args.length); + if (method == null) + { + // 如果为空不报错,直接返回空。 + logger.debug("在 [" + obj.getClass() + "] 中,没有找到 [" + methodName + "] 方法 "); + return null; + } + try + { + // 类型转换(将参数数据类型转换为目标方法参数类型) + Class[] cs = method.getParameterTypes(); + for (int i = 0; i < cs.length; i++) + { + if (args[i] != null && !args[i].getClass().equals(cs[i])) + { + if (cs[i] == String.class) + { + args[i] = Convert.toStr(args[i]); + if (StringUtils.endsWith((String) args[i], ".0")) + { + args[i] = StringUtils.substringBefore((String) args[i], ".0"); + } + } + else if (cs[i] == Integer.class) + { + args[i] = Convert.toInt(args[i]); + } + else if (cs[i] == Long.class) + { + args[i] = Convert.toLong(args[i]); + } + else if (cs[i] == Double.class) + { + args[i] = Convert.toDouble(args[i]); + } + else if (cs[i] == Float.class) + { + args[i] = Convert.toFloat(args[i]); + } + else if (cs[i] == Date.class) + { + if (args[i] instanceof String) + { + args[i] = DateUtils.parseDate(args[i]); + } + else + { + args[i] = DateUtil.getJavaDate((Double) args[i]); + } + } + else if (cs[i] == boolean.class || cs[i] == Boolean.class) + { + args[i] = Convert.toBool(args[i]); + } + } + } + return (E) method.invoke(obj, args); + } + catch (Exception e) + { + String msg = "method: " + method + ", obj: " + obj + ", args: " + args + ""; + throw convertReflectionExceptionToUnchecked(msg, e); + } + } + + /** + * 循环向上转型, 获取对象的DeclaredField, 并强制设置为可访问. + * 如向上转型到Object仍无法找到, 返回null. + */ + public static Field getAccessibleField(final Object obj, final String fieldName) + { + // 为空不报错。直接返回 null + if (obj == null) + { + return null; + } + Validate.notBlank(fieldName, "fieldName can't be blank"); + for (Class superClass = obj.getClass(); superClass != Object.class; superClass = superClass.getSuperclass()) + { + try + { + Field field = superClass.getDeclaredField(fieldName); + makeAccessible(field); + return field; + } + catch (NoSuchFieldException e) + { + continue; + } + } + return null; + } + + /** + * 循环向上转型, 获取对象的DeclaredMethod,并强制设置为可访问. + * 如向上转型到Object仍无法找到, 返回null. + * 匹配函数名+参数类型。 + * 用于方法需要被多次调用的情况. 先使用本函数先取得Method,然后调用Method.invoke(Object obj, Object... args) + */ + public static Method getAccessibleMethod(final Object obj, final String methodName, + final Class... parameterTypes) + { + // 为空不报错。直接返回 null + if (obj == null) + { + return null; + } + Validate.notBlank(methodName, "methodName can't be blank"); + for (Class searchType = obj.getClass(); searchType != Object.class; searchType = searchType.getSuperclass()) + { + try + { + Method method = searchType.getDeclaredMethod(methodName, parameterTypes); + makeAccessible(method); + return method; + } + catch (NoSuchMethodException e) + { + continue; + } + } + return null; + } + + /** + * 循环向上转型, 获取对象的DeclaredMethod,并强制设置为可访问. + * 如向上转型到Object仍无法找到, 返回null. + * 只匹配函数名。 + * 用于方法需要被多次调用的情况. 先使用本函数先取得Method,然后调用Method.invoke(Object obj, Object... args) + */ + public static Method getAccessibleMethodByName(final Object obj, final String methodName, int argsNum) + { + // 为空不报错。直接返回 null + if (obj == null) + { + return null; + } + Validate.notBlank(methodName, "methodName can't be blank"); + for (Class searchType = obj.getClass(); searchType != Object.class; searchType = searchType.getSuperclass()) + { + Method[] methods = searchType.getDeclaredMethods(); + for (Method method : methods) + { + if (method.getName().equals(methodName) && method.getParameterTypes().length == argsNum) + { + makeAccessible(method); + return method; + } + } + } + return null; + } + + /** + * 改变private/protected的方法为public,尽量不调用实际改动的语句,避免JDK的SecurityManager抱怨。 + */ + public static void makeAccessible(Method method) + { + if ((!Modifier.isPublic(method.getModifiers()) || !Modifier.isPublic(method.getDeclaringClass().getModifiers())) + && !method.isAccessible()) + { + method.setAccessible(true); + } + } + + /** + * 改变private/protected的成员变量为public,尽量不调用实际改动的语句,避免JDK的SecurityManager抱怨。 + */ + public static void makeAccessible(Field field) + { + if ((!Modifier.isPublic(field.getModifiers()) || !Modifier.isPublic(field.getDeclaringClass().getModifiers()) + || Modifier.isFinal(field.getModifiers())) && !field.isAccessible()) + { + field.setAccessible(true); + } + } + + /** + * 通过反射, 获得Class定义中声明的泛型参数的类型, 注意泛型必须定义在父类处 + * 如无法找到, 返回Object.class. + */ + @SuppressWarnings("unchecked") + public static Class getClassGenricType(final Class clazz) + { + return getClassGenricType(clazz, 0); + } + + /** + * 通过反射, 获得Class定义中声明的父类的泛型参数的类型. + * 如无法找到, 返回Object.class. + */ + public static Class getClassGenricType(final Class clazz, final int index) + { + Type genType = clazz.getGenericSuperclass(); + + if (!(genType instanceof ParameterizedType)) + { + logger.debug(clazz.getSimpleName() + "'s superclass not ParameterizedType"); + return Object.class; + } + + Type[] params = ((ParameterizedType) genType).getActualTypeArguments(); + + if (index >= params.length || index < 0) + { + logger.debug("Index: " + index + ", Size of " + clazz.getSimpleName() + "'s Parameterized Type: " + + params.length); + return Object.class; + } + if (!(params[index] instanceof Class)) + { + logger.debug(clazz.getSimpleName() + " not set the actual class on superclass generic parameter"); + return Object.class; + } + + return (Class) params[index]; + } + + public static Class getUserClass(Object instance) + { + if (instance == null) + { + throw new RuntimeException("Instance must not be null"); + } + Class clazz = instance.getClass(); + if (clazz != null && clazz.getName().contains(CGLIB_CLASS_SEPARATOR)) + { + Class superClass = clazz.getSuperclass(); + if (superClass != null && !Object.class.equals(superClass)) + { + return superClass; + } + } + return clazz; + + } + + /** + * 将反射时的checked exception转换为unchecked exception. + */ + public static RuntimeException convertReflectionExceptionToUnchecked(String msg, Exception e) + { + if (e instanceof IllegalAccessException || e instanceof IllegalArgumentException + || e instanceof NoSuchMethodException) + { + return new IllegalArgumentException(msg, e); + } + else if (e instanceof InvocationTargetException) + { + return new RuntimeException(msg, ((InvocationTargetException) e).getTargetException()); + } + return new RuntimeException(msg, e); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Base64.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Base64.java new file mode 100644 index 0000000..ca1cd92 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Base64.java @@ -0,0 +1,291 @@ +package com.ruoyi.common.utils.sign; + +/** + * Base64工具类 + * + * @author ruoyi + */ +public final class Base64 +{ + static private final int BASELENGTH = 128; + static private final int LOOKUPLENGTH = 64; + static private final int TWENTYFOURBITGROUP = 24; + static private final int EIGHTBIT = 8; + static private final int SIXTEENBIT = 16; + static private final int FOURBYTE = 4; + static private final int SIGN = -128; + static private final char PAD = '='; + static final private byte[] base64Alphabet = new byte[BASELENGTH]; + static final private char[] lookUpBase64Alphabet = new char[LOOKUPLENGTH]; + + static + { + for (int i = 0; i < BASELENGTH; ++i) + { + base64Alphabet[i] = -1; + } + for (int i = 'Z'; i >= 'A'; i--) + { + base64Alphabet[i] = (byte) (i - 'A'); + } + for (int i = 'z'; i >= 'a'; i--) + { + base64Alphabet[i] = (byte) (i - 'a' + 26); + } + + for (int i = '9'; i >= '0'; i--) + { + base64Alphabet[i] = (byte) (i - '0' + 52); + } + + base64Alphabet['+'] = 62; + base64Alphabet['/'] = 63; + + for (int i = 0; i <= 25; i++) + { + lookUpBase64Alphabet[i] = (char) ('A' + i); + } + + for (int i = 26, j = 0; i <= 51; i++, j++) + { + lookUpBase64Alphabet[i] = (char) ('a' + j); + } + + for (int i = 52, j = 0; i <= 61; i++, j++) + { + lookUpBase64Alphabet[i] = (char) ('0' + j); + } + lookUpBase64Alphabet[62] = (char) '+'; + lookUpBase64Alphabet[63] = (char) '/'; + } + + private static boolean isWhiteSpace(char octect) + { + return (octect == 0x20 || octect == 0xd || octect == 0xa || octect == 0x9); + } + + private static boolean isPad(char octect) + { + return (octect == PAD); + } + + private static boolean isData(char octect) + { + return (octect < BASELENGTH && base64Alphabet[octect] != -1); + } + + /** + * Encodes hex octects into Base64 + * + * @param binaryData Array containing binaryData + * @return Encoded Base64 array + */ + public static String encode(byte[] binaryData) + { + if (binaryData == null) + { + return null; + } + + int lengthDataBits = binaryData.length * EIGHTBIT; + if (lengthDataBits == 0) + { + return ""; + } + + int fewerThan24bits = lengthDataBits % TWENTYFOURBITGROUP; + int numberTriplets = lengthDataBits / TWENTYFOURBITGROUP; + int numberQuartet = fewerThan24bits != 0 ? numberTriplets + 1 : numberTriplets; + char encodedData[] = null; + + encodedData = new char[numberQuartet * 4]; + + byte k = 0, l = 0, b1 = 0, b2 = 0, b3 = 0; + + int encodedIndex = 0; + int dataIndex = 0; + + for (int i = 0; i < numberTriplets; i++) + { + b1 = binaryData[dataIndex++]; + b2 = binaryData[dataIndex++]; + b3 = binaryData[dataIndex++]; + + l = (byte) (b2 & 0x0f); + k = (byte) (b1 & 0x03); + + byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) : (byte) ((b1) >> 2 ^ 0xc0); + byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4) : (byte) ((b2) >> 4 ^ 0xf0); + byte val3 = ((b3 & SIGN) == 0) ? (byte) (b3 >> 6) : (byte) ((b3) >> 6 ^ 0xfc); + + encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[(l << 2) | val3]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[b3 & 0x3f]; + } + + // form integral number of 6-bit groups + if (fewerThan24bits == EIGHTBIT) + { + b1 = binaryData[dataIndex]; + k = (byte) (b1 & 0x03); + byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) : (byte) ((b1) >> 2 ^ 0xc0); + encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[k << 4]; + encodedData[encodedIndex++] = PAD; + encodedData[encodedIndex++] = PAD; + } + else if (fewerThan24bits == SIXTEENBIT) + { + b1 = binaryData[dataIndex]; + b2 = binaryData[dataIndex + 1]; + l = (byte) (b2 & 0x0f); + k = (byte) (b1 & 0x03); + + byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) : (byte) ((b1) >> 2 ^ 0xc0); + byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4) : (byte) ((b2) >> 4 ^ 0xf0); + + encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2]; + encodedData[encodedIndex++] = PAD; + } + return new String(encodedData); + } + + /** + * Decodes Base64 data into octects + * + * @param encoded string containing Base64 data + * @return Array containind decoded data. + */ + public static byte[] decode(String encoded) + { + if (encoded == null) + { + return null; + } + + char[] base64Data = encoded.toCharArray(); + // remove white spaces + int len = removeWhiteSpace(base64Data); + + if (len % FOURBYTE != 0) + { + return null;// should be divisible by four + } + + int numberQuadruple = (len / FOURBYTE); + + if (numberQuadruple == 0) + { + return new byte[0]; + } + + byte decodedData[] = null; + byte b1 = 0, b2 = 0, b3 = 0, b4 = 0; + char d1 = 0, d2 = 0, d3 = 0, d4 = 0; + + int i = 0; + int encodedIndex = 0; + int dataIndex = 0; + decodedData = new byte[(numberQuadruple) * 3]; + + for (; i < numberQuadruple - 1; i++) + { + + if (!isData((d1 = base64Data[dataIndex++])) || !isData((d2 = base64Data[dataIndex++])) + || !isData((d3 = base64Data[dataIndex++])) || !isData((d4 = base64Data[dataIndex++]))) + { + return null; + } // if found "no data" just return null + + b1 = base64Alphabet[d1]; + b2 = base64Alphabet[d2]; + b3 = base64Alphabet[d3]; + b4 = base64Alphabet[d4]; + + decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); + decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); + decodedData[encodedIndex++] = (byte) (b3 << 6 | b4); + } + + if (!isData((d1 = base64Data[dataIndex++])) || !isData((d2 = base64Data[dataIndex++]))) + { + return null;// if found "no data" just return null + } + + b1 = base64Alphabet[d1]; + b2 = base64Alphabet[d2]; + + d3 = base64Data[dataIndex++]; + d4 = base64Data[dataIndex++]; + if (!isData((d3)) || !isData((d4))) + {// Check if they are PAD characters + if (isPad(d3) && isPad(d4)) + { + if ((b2 & 0xf) != 0)// last 4 bits should be zero + { + return null; + } + byte[] tmp = new byte[i * 3 + 1]; + System.arraycopy(decodedData, 0, tmp, 0, i * 3); + tmp[encodedIndex] = (byte) (b1 << 2 | b2 >> 4); + return tmp; + } + else if (!isPad(d3) && isPad(d4)) + { + b3 = base64Alphabet[d3]; + if ((b3 & 0x3) != 0)// last 2 bits should be zero + { + return null; + } + byte[] tmp = new byte[i * 3 + 2]; + System.arraycopy(decodedData, 0, tmp, 0, i * 3); + tmp[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); + tmp[encodedIndex] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); + return tmp; + } + else + { + return null; + } + } + else + { // No PAD e.g 3cQl + b3 = base64Alphabet[d3]; + b4 = base64Alphabet[d4]; + decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4); + decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf)); + decodedData[encodedIndex++] = (byte) (b3 << 6 | b4); + + } + return decodedData; + } + + /** + * remove WhiteSpace from MIME containing encoded Base64 data. + * + * @param data the byte array of base64 data (with WS) + * @return the new length + */ + private static int removeWhiteSpace(char[] data) + { + if (data == null) + { + return 0; + } + + // count characters that's not whitespace + int newSize = 0; + int len = data.length; + for (int i = 0; i < len; i++) + { + if (!isWhiteSpace(data[i])) + { + data[newSize++] = data[i]; + } + } + return newSize; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Md5Utils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Md5Utils.java new file mode 100644 index 0000000..de77ee8 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Md5Utils.java @@ -0,0 +1,66 @@ +package com.ruoyi.common.utils.sign; + +import java.security.MessageDigest; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Md5加密方法 + * + * @author ruoyi + */ +public class Md5Utils +{ + private static final Logger log = LoggerFactory.getLogger(Md5Utils.class); + + private static byte[] md5(String s) + { + MessageDigest algorithm; + try + { + algorithm = MessageDigest.getInstance("MD5"); + algorithm.reset(); + algorithm.update(s.getBytes("UTF-8")); + byte[] messageDigest = algorithm.digest(); + return messageDigest; + } + catch (Exception e) + { + log.error("MD5 Error...", e); + } + return null; + } + + private static final String toHex(byte hash[]) + { + if (hash == null) + { + return null; + } + StringBuffer buf = new StringBuffer(hash.length * 2); + int i; + + for (i = 0; i < hash.length; i++) + { + if ((hash[i] & 0xff) < 0x10) + { + buf.append("0"); + } + buf.append(Long.toString(hash[i] & 0xff, 16)); + } + return buf.toString(); + } + + public static String hash(String s) + { + try + { + return new String(toHex(md5(s)).getBytes("UTF-8"), "UTF-8"); + } + catch (Exception e) + { + log.error("not supported charset...{}", e); + return s; + } + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java new file mode 100644 index 0000000..9993b98 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java @@ -0,0 +1,146 @@ +package com.ruoyi.common.utils.spring; + +import org.springframework.aop.framework.AopContext; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.springframework.beans.factory.config.BeanFactoryPostProcessor; +import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; +import com.ruoyi.common.utils.StringUtils; + +/** + * spring工具类 方便在非spring管理环境中获取bean + * + * @author ruoyi + */ +@Component +public final class SpringUtils implements BeanFactoryPostProcessor, ApplicationContextAware +{ + /** Spring应用上下文环境 */ + private static ConfigurableListableBeanFactory beanFactory; + + private static ApplicationContext applicationContext; + + @Override + public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException + { + SpringUtils.beanFactory = beanFactory; + } + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException + { + SpringUtils.applicationContext = applicationContext; + } + + /** + * 获取对象 + * + * @param name + * @return Object 一个以所给名字注册的bean的实例 + * @throws org.springframework.beans.BeansException + * + */ + @SuppressWarnings("unchecked") + public static T getBean(String name) throws BeansException + { + return (T) beanFactory.getBean(name); + } + + /** + * 获取类型为requiredType的对象 + * + * @param clz + * @return + * @throws org.springframework.beans.BeansException + * + */ + public static T getBean(Class clz) throws BeansException + { + T result = (T) beanFactory.getBean(clz); + return result; + } + + /** + * 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true + * + * @param name + * @return boolean + */ + public static boolean containsBean(String name) + { + return beanFactory.containsBean(name); + } + + /** + * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException) + * + * @param name + * @return boolean + * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException + * + */ + public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException + { + return beanFactory.isSingleton(name); + } + + /** + * @param name + * @return Class 注册对象的类型 + * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException + * + */ + public static Class getType(String name) throws NoSuchBeanDefinitionException + { + return beanFactory.getType(name); + } + + /** + * 如果给定的bean名字在bean定义中有别名,则返回这些别名 + * + * @param name + * @return + * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException + * + */ + public static String[] getAliases(String name) throws NoSuchBeanDefinitionException + { + return beanFactory.getAliases(name); + } + + /** + * 获取aop代理对象 + * + * @param invoker + * @return + */ + @SuppressWarnings("unchecked") + public static T getAopProxy(T invoker) + { + return (T) AopContext.currentProxy(); + } + + /** + * 获取当前的环境配置,无配置返回null + * + * @return 当前的环境配置 + */ + public static String[] getActiveProfiles() + { + return applicationContext.getEnvironment().getActiveProfiles(); + } + + /** + * 获取当前的环境配置,当有多个环境配置时,只获取第一个 + * + * @return 当前的环境配置 + */ + public static String getActiveProfile() + { + final String[] activeProfiles = getActiveProfiles(); + return StringUtils.isNotEmpty(activeProfiles) ? activeProfiles[0] : null; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java new file mode 100644 index 0000000..a198946 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java @@ -0,0 +1,37 @@ +package com.ruoyi.common.utils.sql; + +import com.ruoyi.common.exception.UtilException; +import com.ruoyi.common.utils.StringUtils; + +/** + * sql操作工具类 + * + * @author ruoyi + */ +public class SqlUtil +{ + /** + * 仅支持字母、数字、下划线、空格、逗号、小数点(支持多个字段排序) + */ + public static String SQL_PATTERN = "[a-zA-Z0-9_\\ \\,\\.]+"; + + /** + * 检查字符,防止注入绕过 + */ + public static String escapeOrderBySql(String value) + { + if (StringUtils.isNotEmpty(value) && !isValidOrderBySql(value)) + { + throw new UtilException("参数不符合规范,不能进行查询"); + } + return value; + } + + /** + * 验证 order by 语法是否符合规范 + */ + public static boolean isValidOrderBySql(String value) + { + return value.matches(SQL_PATTERN); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/IdUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/IdUtils.java new file mode 100644 index 0000000..2c84427 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/IdUtils.java @@ -0,0 +1,49 @@ +package com.ruoyi.common.utils.uuid; + +/** + * ID生成器工具类 + * + * @author ruoyi + */ +public class IdUtils +{ + /** + * 获取随机UUID + * + * @return 随机UUID + */ + public static String randomUUID() + { + return UUID.randomUUID().toString(); + } + + /** + * 简化的UUID,去掉了横线 + * + * @return 简化的UUID,去掉了横线 + */ + public static String simpleUUID() + { + return UUID.randomUUID().toString(true); + } + + /** + * 获取随机UUID,使用性能更好的ThreadLocalRandom生成UUID + * + * @return 随机UUID + */ + public static String fastUUID() + { + return UUID.fastUUID().toString(); + } + + /** + * 简化的UUID,去掉了横线,使用性能更好的ThreadLocalRandom生成UUID + * + * @return 简化的UUID,去掉了横线 + */ + public static String fastSimpleUUID() + { + return UUID.fastUUID().toString(true); + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/UUID.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/UUID.java new file mode 100644 index 0000000..062d633 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/UUID.java @@ -0,0 +1,484 @@ +package com.ruoyi.common.utils.uuid; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; +import java.util.Random; +import java.util.concurrent.ThreadLocalRandom; +import com.ruoyi.common.exception.UtilException; + +/** + * 提供通用唯一识别码(universally unique identifier)(UUID)实现 + * + * @author ruoyi + */ +public final class UUID implements java.io.Serializable, Comparable +{ + private static final long serialVersionUID = -1185015143654744140L; + + /** + * SecureRandom 的单例 + * + */ + private static class Holder + { + static final SecureRandom numberGenerator = getSecureRandom(); + } + + /** 此UUID的最高64有效位 */ + private final long mostSigBits; + + /** 此UUID的最低64有效位 */ + private final long leastSigBits; + + /** + * 私有构造 + * + * @param data 数据 + */ + private UUID(byte[] data) + { + long msb = 0; + long lsb = 0; + assert data.length == 16 : "data must be 16 bytes in length"; + for (int i = 0; i < 8; i++) + { + msb = (msb << 8) | (data[i] & 0xff); + } + for (int i = 8; i < 16; i++) + { + lsb = (lsb << 8) | (data[i] & 0xff); + } + this.mostSigBits = msb; + this.leastSigBits = lsb; + } + + /** + * 使用指定的数据构造新的 UUID。 + * + * @param mostSigBits 用于 {@code UUID} 的最高有效 64 位 + * @param leastSigBits 用于 {@code UUID} 的最低有效 64 位 + */ + public UUID(long mostSigBits, long leastSigBits) + { + this.mostSigBits = mostSigBits; + this.leastSigBits = leastSigBits; + } + + /** + * 获取类型 4(伪随机生成的)UUID 的静态工厂。 使用加密的本地线程伪随机数生成器生成该 UUID。 + * + * @return 随机生成的 {@code UUID} + */ + public static UUID fastUUID() + { + return randomUUID(false); + } + + /** + * 获取类型 4(伪随机生成的)UUID 的静态工厂。 使用加密的强伪随机数生成器生成该 UUID。 + * + * @return 随机生成的 {@code UUID} + */ + public static UUID randomUUID() + { + return randomUUID(true); + } + + /** + * 获取类型 4(伪随机生成的)UUID 的静态工厂。 使用加密的强伪随机数生成器生成该 UUID。 + * + * @param isSecure 是否使用{@link SecureRandom}如果是可以获得更安全的随机码,否则可以得到更好的性能 + * @return 随机生成的 {@code UUID} + */ + public static UUID randomUUID(boolean isSecure) + { + final Random ng = isSecure ? Holder.numberGenerator : getRandom(); + + byte[] randomBytes = new byte[16]; + ng.nextBytes(randomBytes); + randomBytes[6] &= 0x0f; /* clear version */ + randomBytes[6] |= 0x40; /* set to version 4 */ + randomBytes[8] &= 0x3f; /* clear variant */ + randomBytes[8] |= 0x80; /* set to IETF variant */ + return new UUID(randomBytes); + } + + /** + * 根据指定的字节数组获取类型 3(基于名称的)UUID 的静态工厂。 + * + * @param name 用于构造 UUID 的字节数组。 + * + * @return 根据指定数组生成的 {@code UUID} + */ + public static UUID nameUUIDFromBytes(byte[] name) + { + MessageDigest md; + try + { + md = MessageDigest.getInstance("MD5"); + } + catch (NoSuchAlgorithmException nsae) + { + throw new InternalError("MD5 not supported"); + } + byte[] md5Bytes = md.digest(name); + md5Bytes[6] &= 0x0f; /* clear version */ + md5Bytes[6] |= 0x30; /* set to version 3 */ + md5Bytes[8] &= 0x3f; /* clear variant */ + md5Bytes[8] |= 0x80; /* set to IETF variant */ + return new UUID(md5Bytes); + } + + /** + * 根据 {@link #toString()} 方法中描述的字符串标准表示形式创建{@code UUID}。 + * + * @param name 指定 {@code UUID} 字符串 + * @return 具有指定值的 {@code UUID} + * @throws IllegalArgumentException 如果 name 与 {@link #toString} 中描述的字符串表示形式不符抛出此异常 + * + */ + public static UUID fromString(String name) + { + String[] components = name.split("-"); + if (components.length != 5) + { + throw new IllegalArgumentException("Invalid UUID string: " + name); + } + for (int i = 0; i < 5; i++) + { + components[i] = "0x" + components[i]; + } + + long mostSigBits = Long.decode(components[0]).longValue(); + mostSigBits <<= 16; + mostSigBits |= Long.decode(components[1]).longValue(); + mostSigBits <<= 16; + mostSigBits |= Long.decode(components[2]).longValue(); + + long leastSigBits = Long.decode(components[3]).longValue(); + leastSigBits <<= 48; + leastSigBits |= Long.decode(components[4]).longValue(); + + return new UUID(mostSigBits, leastSigBits); + } + + /** + * 返回此 UUID 的 128 位值中的最低有效 64 位。 + * + * @return 此 UUID 的 128 位值中的最低有效 64 位。 + */ + public long getLeastSignificantBits() + { + return leastSigBits; + } + + /** + * 返回此 UUID 的 128 位值中的最高有效 64 位。 + * + * @return 此 UUID 的 128 位值中最高有效 64 位。 + */ + public long getMostSignificantBits() + { + return mostSigBits; + } + + /** + * 与此 {@code UUID} 相关联的版本号. 版本号描述此 {@code UUID} 是如何生成的。 + *

+ * 版本号具有以下含意: + *

    + *
  • 1 基于时间的 UUID + *
  • 2 DCE 安全 UUID + *
  • 3 基于名称的 UUID + *
  • 4 随机生成的 UUID + *
+ * + * @return 此 {@code UUID} 的版本号 + */ + public int version() + { + // Version is bits masked by 0x000000000000F000 in MS long + return (int) ((mostSigBits >> 12) & 0x0f); + } + + /** + * 与此 {@code UUID} 相关联的变体号。变体号描述 {@code UUID} 的布局。 + *

+ * 变体号具有以下含意: + *

    + *
  • 0 为 NCS 向后兼容保留 + *
  • 2 IETF RFC 4122(Leach-Salz), 用于此类 + *
  • 6 保留,微软向后兼容 + *
  • 7 保留供以后定义使用 + *
+ * + * @return 此 {@code UUID} 相关联的变体号 + */ + public int variant() + { + // This field is composed of a varying number of bits. + // 0 - - Reserved for NCS backward compatibility + // 1 0 - The IETF aka Leach-Salz variant (used by this class) + // 1 1 0 Reserved, Microsoft backward compatibility + // 1 1 1 Reserved for future definition. + return (int) ((leastSigBits >>> (64 - (leastSigBits >>> 62))) & (leastSigBits >> 63)); + } + + /** + * 与此 UUID 相关联的时间戳值。 + * + *

+ * 60 位的时间戳值根据此 {@code UUID} 的 time_low、time_mid 和 time_hi 字段构造。
+ * 所得到的时间戳以 100 毫微秒为单位,从 UTC(通用协调时间) 1582 年 10 月 15 日零时开始。 + * + *

+ * 时间戳值仅在在基于时间的 UUID(其 version 类型为 1)中才有意义。
+ * 如果此 {@code UUID} 不是基于时间的 UUID,则此方法抛出 UnsupportedOperationException。 + * + * @throws UnsupportedOperationException 如果此 {@code UUID} 不是 version 为 1 的 UUID。 + */ + public long timestamp() throws UnsupportedOperationException + { + checkTimeBase(); + return (mostSigBits & 0x0FFFL) << 48// + | ((mostSigBits >> 16) & 0x0FFFFL) << 32// + | mostSigBits >>> 32; + } + + /** + * 与此 UUID 相关联的时钟序列值。 + * + *

+ * 14 位的时钟序列值根据此 UUID 的 clock_seq 字段构造。clock_seq 字段用于保证在基于时间的 UUID 中的时间唯一性。 + *

+ * {@code clockSequence} 值仅在基于时间的 UUID(其 version 类型为 1)中才有意义。 如果此 UUID 不是基于时间的 UUID,则此方法抛出 + * UnsupportedOperationException。 + * + * @return 此 {@code UUID} 的时钟序列 + * + * @throws UnsupportedOperationException 如果此 UUID 的 version 不为 1 + */ + public int clockSequence() throws UnsupportedOperationException + { + checkTimeBase(); + return (int) ((leastSigBits & 0x3FFF000000000000L) >>> 48); + } + + /** + * 与此 UUID 相关的节点值。 + * + *

+ * 48 位的节点值根据此 UUID 的 node 字段构造。此字段旨在用于保存机器的 IEEE 802 地址,该地址用于生成此 UUID 以保证空间唯一性。 + *

+ * 节点值仅在基于时间的 UUID(其 version 类型为 1)中才有意义。
+ * 如果此 UUID 不是基于时间的 UUID,则此方法抛出 UnsupportedOperationException。 + * + * @return 此 {@code UUID} 的节点值 + * + * @throws UnsupportedOperationException 如果此 UUID 的 version 不为 1 + */ + public long node() throws UnsupportedOperationException + { + checkTimeBase(); + return leastSigBits & 0x0000FFFFFFFFFFFFL; + } + + /** + * 返回此{@code UUID} 的字符串表现形式。 + * + *

+ * UUID 的字符串表示形式由此 BNF 描述: + * + *

+     * {@code
+     * UUID                   = ----
+     * time_low               = 4*
+     * time_mid               = 2*
+     * time_high_and_version  = 2*
+     * variant_and_sequence   = 2*
+     * node                   = 6*
+     * hexOctet               = 
+     * hexDigit               = [0-9a-fA-F]
+     * }
+     * 
+ * + * + * + * @return 此{@code UUID} 的字符串表现形式 + * @see #toString(boolean) + */ + @Override + public String toString() + { + return toString(false); + } + + /** + * 返回此{@code UUID} 的字符串表现形式。 + * + *

+ * UUID 的字符串表示形式由此 BNF 描述: + * + *

+     * {@code
+     * UUID                   = ----
+     * time_low               = 4*
+     * time_mid               = 2*
+     * time_high_and_version  = 2*
+     * variant_and_sequence   = 2*
+     * node                   = 6*
+     * hexOctet               = 
+     * hexDigit               = [0-9a-fA-F]
+     * }
+     * 
+ * + * + * + * @param isSimple 是否简单模式,简单模式为不带'-'的UUID字符串 + * @return 此{@code UUID} 的字符串表现形式 + */ + public String toString(boolean isSimple) + { + final StringBuilder builder = new StringBuilder(isSimple ? 32 : 36); + // time_low + builder.append(digits(mostSigBits >> 32, 8)); + if (false == isSimple) + { + builder.append('-'); + } + // time_mid + builder.append(digits(mostSigBits >> 16, 4)); + if (false == isSimple) + { + builder.append('-'); + } + // time_high_and_version + builder.append(digits(mostSigBits, 4)); + if (false == isSimple) + { + builder.append('-'); + } + // variant_and_sequence + builder.append(digits(leastSigBits >> 48, 4)); + if (false == isSimple) + { + builder.append('-'); + } + // node + builder.append(digits(leastSigBits, 12)); + + return builder.toString(); + } + + /** + * 返回此 UUID 的哈希码。 + * + * @return UUID 的哈希码值。 + */ + @Override + public int hashCode() + { + long hilo = mostSigBits ^ leastSigBits; + return ((int) (hilo >> 32)) ^ (int) hilo; + } + + /** + * 将此对象与指定对象比较。 + *

+ * 当且仅当参数不为 {@code null}、而是一个 UUID 对象、具有与此 UUID 相同的 varriant、包含相同的值(每一位均相同)时,结果才为 {@code true}。 + * + * @param obj 要与之比较的对象 + * + * @return 如果对象相同,则返回 {@code true};否则返回 {@code false} + */ + @Override + public boolean equals(Object obj) + { + if ((null == obj) || (obj.getClass() != UUID.class)) + { + return false; + } + UUID id = (UUID) obj; + return (mostSigBits == id.mostSigBits && leastSigBits == id.leastSigBits); + } + + // Comparison Operations + + /** + * 将此 UUID 与指定的 UUID 比较。 + * + *

+ * 如果两个 UUID 不同,且第一个 UUID 的最高有效字段大于第二个 UUID 的对应字段,则第一个 UUID 大于第二个 UUID。 + * + * @param val 与此 UUID 比较的 UUID + * + * @return 在此 UUID 小于、等于或大于 val 时,分别返回 -1、0 或 1。 + * + */ + @Override + public int compareTo(UUID val) + { + // The ordering is intentionally set up so that the UUIDs + // can simply be numerically compared as two numbers + return (this.mostSigBits < val.mostSigBits ? -1 : // + (this.mostSigBits > val.mostSigBits ? 1 : // + (this.leastSigBits < val.leastSigBits ? -1 : // + (this.leastSigBits > val.leastSigBits ? 1 : // + 0)))); + } + + // ------------------------------------------------------------------------------------------------------------------- + // Private method start + /** + * 返回指定数字对应的hex值 + * + * @param val 值 + * @param digits 位 + * @return 值 + */ + private static String digits(long val, int digits) + { + long hi = 1L << (digits * 4); + return Long.toHexString(hi | (val & (hi - 1))).substring(1); + } + + /** + * 检查是否为time-based版本UUID + */ + private void checkTimeBase() + { + if (version() != 1) + { + throw new UnsupportedOperationException("Not a time-based UUID"); + } + } + + /** + * 获取{@link SecureRandom},类提供加密的强随机数生成器 (RNG) + * + * @return {@link SecureRandom} + */ + public static SecureRandom getSecureRandom() + { + try + { + return SecureRandom.getInstance("SHA1PRNG"); + } + catch (NoSuchAlgorithmException e) + { + throw new UtilException(e); + } + } + + /** + * 获取随机数生成器对象
+ * ThreadLocalRandom是JDK 7之后提供并发产生随机数,能够解决多个线程发生的竞争争夺。 + * + * @return {@link ThreadLocalRandom} + */ + public static ThreadLocalRandom getRandom() + { + return ThreadLocalRandom.current(); + } +} diff --git a/ruoyi-framework/.DS_Store b/ruoyi-framework/.DS_Store new file mode 100644 index 0000000..14f10b3 Binary files /dev/null and b/ruoyi-framework/.DS_Store differ diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml new file mode 100644 index 0000000..e7111e5 --- /dev/null +++ b/ruoyi-framework/pom.xml @@ -0,0 +1,73 @@ + + + + ruoyi + com.ruoyi + 3.7.0 + + 4.0.0 + + ruoyi-framework + + + framework框架核心 + + + + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-aop + + + + + com.alibaba + druid-spring-boot-starter + + + com.sun + tools + + + com.sun + jconsole + + + + + + + com.github.penggle + kaptcha + + + javax.servlet-api + javax.servlet + + + + + + + com.github.oshi + oshi-core + + + + + com.ruoyi + ruoyi-system + + + + diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java new file mode 100644 index 0000000..48f8d72 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java @@ -0,0 +1,149 @@ +package com.ruoyi.framework.aspectj; + +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.springframework.stereotype.Component; +import com.ruoyi.common.annotation.DataScope; +import com.ruoyi.common.core.domain.BaseEntity; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.SecurityUtils; + +/** + * 数据过滤处理 + * + * @author ruoyi + */ +@Aspect +@Component +public class DataScopeAspect +{ + /** + * 全部数据权限 + */ + public static final String DATA_SCOPE_ALL = "1"; + + /** + * 自定数据权限 + */ + public static final String DATA_SCOPE_CUSTOM = "2"; + + /** + * 部门数据权限 + */ + public static final String DATA_SCOPE_DEPT = "3"; + + /** + * 部门及以下数据权限 + */ + public static final String DATA_SCOPE_DEPT_AND_CHILD = "4"; + + /** + * 仅本人数据权限 + */ + public static final String DATA_SCOPE_SELF = "5"; + + /** + * 数据权限过滤关键字 + */ + public static final String DATA_SCOPE = "dataScope"; + + @Before("@annotation(controllerDataScope)") + public void doBefore(JoinPoint point, DataScope controllerDataScope) throws Throwable + { + clearDataScope(point); + handleDataScope(point, controllerDataScope); + } + + protected void handleDataScope(final JoinPoint joinPoint, DataScope controllerDataScope) + { + // 获取当前的用户 + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (StringUtils.isNotNull(loginUser)) + { + SysUser currentUser = loginUser.getUser(); + // 如果是超级管理员,则不过滤数据 + if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()) + { + dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(), + controllerDataScope.userAlias()); + } + } + } + + /** + * 数据范围过滤 + * + * @param joinPoint 切点 + * @param user 用户 + * @param userAlias 别名 + */ + public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias) + { + StringBuilder sqlString = new StringBuilder(); + + for (SysRole role : user.getRoles()) + { + String dataScope = role.getDataScope(); + if (DATA_SCOPE_ALL.equals(dataScope)) + { + sqlString = new StringBuilder(); + break; + } + else if (DATA_SCOPE_CUSTOM.equals(dataScope)) + { + sqlString.append(StringUtils.format( + " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias, + role.getRoleId())); + } + else if (DATA_SCOPE_DEPT.equals(dataScope)) + { + sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId())); + } + else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) + { + sqlString.append(StringUtils.format( + " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )", + deptAlias, user.getDeptId(), user.getDeptId())); + } + else if (DATA_SCOPE_SELF.equals(dataScope)) + { + if (StringUtils.isNotBlank(userAlias)) + { + sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId())); + } + else + { + // 数据权限为仅本人且没有userAlias别名不查询任何数据 + sqlString.append(" OR 1=0 "); + } + } + } + + if (StringUtils.isNotBlank(sqlString.toString())) + { + Object params = joinPoint.getArgs()[0]; + if (StringUtils.isNotNull(params) && params instanceof BaseEntity) + { + BaseEntity baseEntity = (BaseEntity) params; + baseEntity.getParams().put(DATA_SCOPE, " AND (" + sqlString.substring(4) + ")"); + } + } + } + + /** + * 拼接权限sql前先清空params.dataScope参数防止注入 + */ + private void clearDataScope(final JoinPoint joinPoint) + { + Object params = joinPoint.getArgs()[0]; + if (StringUtils.isNotNull(params) && params instanceof BaseEntity) + { + BaseEntity baseEntity = (BaseEntity) params; + baseEntity.getParams().put(DATA_SCOPE, ""); + } + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java new file mode 100644 index 0000000..8c2c9f4 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java @@ -0,0 +1,72 @@ +package com.ruoyi.framework.aspectj; + +import java.util.Objects; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.annotation.AnnotationUtils; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; +import com.ruoyi.common.annotation.DataSource; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.framework.datasource.DynamicDataSourceContextHolder; + +/** + * 多数据源处理 + * + * @author ruoyi + */ +@Aspect +@Order(1) +@Component +public class DataSourceAspect +{ + protected Logger logger = LoggerFactory.getLogger(getClass()); + + @Pointcut("@annotation(com.ruoyi.common.annotation.DataSource)" + + "|| @within(com.ruoyi.common.annotation.DataSource)") + public void dsPointCut() + { + + } + + @Around("dsPointCut()") + public Object around(ProceedingJoinPoint point) throws Throwable + { + DataSource dataSource = getDataSource(point); + + if (StringUtils.isNotNull(dataSource)) + { + DynamicDataSourceContextHolder.setDataSourceType(dataSource.value().name()); + } + + try + { + return point.proceed(); + } + finally + { + // 销毁数据源 在执行方法之后 + DynamicDataSourceContextHolder.clearDataSourceType(); + } + } + + /** + * 获取需要切换的数据源 + */ + public DataSource getDataSource(ProceedingJoinPoint point) + { + MethodSignature signature = (MethodSignature) point.getSignature(); + DataSource dataSource = AnnotationUtils.findAnnotation(signature.getMethod(), DataSource.class); + if (Objects.nonNull(dataSource)) + { + return dataSource; + } + + return AnnotationUtils.findAnnotation(signature.getDeclaringType(), DataSource.class); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java new file mode 100644 index 0000000..9bf5b8c --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java @@ -0,0 +1,218 @@ +package com.ruoyi.framework.aspectj; + +import java.util.Collection; +import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.AfterReturning; +import org.aspectj.lang.annotation.AfterThrowing; +import org.aspectj.lang.annotation.Aspect; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +import org.springframework.validation.BindingResult; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.servlet.HandlerMapping; +import com.alibaba.fastjson.JSON; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.enums.BusinessStatus; +import com.ruoyi.common.enums.HttpMethod; +import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.ip.IpUtils; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.framework.manager.AsyncManager; +import com.ruoyi.framework.manager.factory.AsyncFactory; +import com.ruoyi.system.domain.SysOperLog; + +/** + * 操作日志记录处理 + * + * @author ruoyi + */ +@Aspect +@Component +public class LogAspect +{ + private static final Logger log = LoggerFactory.getLogger(LogAspect.class); + + /** + * 处理完请求后执行 + * + * @param joinPoint 切点 + */ + @AfterReturning(pointcut = "@annotation(controllerLog)", returning = "jsonResult") + public void doAfterReturning(JoinPoint joinPoint, Log controllerLog, Object jsonResult) + { + handleLog(joinPoint, controllerLog, null, jsonResult); + } + + /** + * 拦截异常操作 + * + * @param joinPoint 切点 + * @param e 异常 + */ + @AfterThrowing(value = "@annotation(controllerLog)", throwing = "e") + public void doAfterThrowing(JoinPoint joinPoint, Log controllerLog, Exception e) + { + handleLog(joinPoint, controllerLog, e, null); + } + + protected void handleLog(final JoinPoint joinPoint, Log controllerLog, final Exception e, Object jsonResult) + { + try + { + + // 获取当前的用户 + LoginUser loginUser = SecurityUtils.getLoginUser(); + + // *========数据库日志=========*// + SysOperLog operLog = new SysOperLog(); + operLog.setStatus(BusinessStatus.SUCCESS.ordinal()); + // 请求的地址 + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + operLog.setOperIp(ip); + operLog.setOperUrl(ServletUtils.getRequest().getRequestURI()); + if (loginUser != null) + { + operLog.setOperName(loginUser.getUsername()); + } + + if (e != null) + { + operLog.setStatus(BusinessStatus.FAIL.ordinal()); + operLog.setErrorMsg(StringUtils.substring(e.getMessage(), 0, 2000)); + } + // 设置方法名称 + String className = joinPoint.getTarget().getClass().getName(); + String methodName = joinPoint.getSignature().getName(); + operLog.setMethod(className + "." + methodName + "()"); + // 设置请求方式 + operLog.setRequestMethod(ServletUtils.getRequest().getMethod()); + // 处理设置注解上的参数 + getControllerMethodDescription(joinPoint, controllerLog, operLog, jsonResult); + // 保存数据库 + AsyncManager.me().execute(AsyncFactory.recordOper(operLog)); + } + catch (Exception exp) + { + // 记录本地异常日志 + log.error("==前置通知异常=="); + log.error("异常信息:{}", exp.getMessage()); + exp.printStackTrace(); + } + } + + /** + * 获取注解中对方法的描述信息 用于Controller层注解 + * + * @param log 日志 + * @param operLog 操作日志 + * @throws Exception + */ + public void getControllerMethodDescription(JoinPoint joinPoint, Log log, SysOperLog operLog, Object jsonResult) throws Exception + { + // 设置action动作 + operLog.setBusinessType(log.businessType().ordinal()); + // 设置标题 + operLog.setTitle(log.title()); + // 设置操作人类别 + operLog.setOperatorType(log.operatorType().ordinal()); + // 是否需要保存request,参数和值 + if (log.isSaveRequestData()) + { + // 获取参数的信息,传入到数据库中。 + setRequestValue(joinPoint, operLog); + } + // 是否需要保存response,参数和值 + if (log.isSaveResponseData() && StringUtils.isNotNull(jsonResult)) + { + operLog.setJsonResult(StringUtils.substring(JSON.toJSONString(jsonResult), 0, 2000)); + } + } + + /** + * 获取请求的参数,放到log中 + * + * @param operLog 操作日志 + * @throws Exception 异常 + */ + private void setRequestValue(JoinPoint joinPoint, SysOperLog operLog) throws Exception + { + String requestMethod = operLog.getRequestMethod(); + if (HttpMethod.PUT.name().equals(requestMethod) || HttpMethod.POST.name().equals(requestMethod)) + { + String params = argsArrayToString(joinPoint.getArgs()); + operLog.setOperParam(StringUtils.substring(params, 0, 2000)); + } + else + { + Map paramsMap = (Map) ServletUtils.getRequest().getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE); + operLog.setOperParam(StringUtils.substring(paramsMap.toString(), 0, 2000)); + } + } + + /** + * 参数拼装 + */ + private String argsArrayToString(Object[] paramsArray) + { + String params = ""; + if (paramsArray != null && paramsArray.length > 0) + { + for (Object o : paramsArray) + { + if (StringUtils.isNotNull(o) && !isFilterObject(o)) + { + try + { + Object jsonObj = JSON.toJSON(o); + params += jsonObj.toString() + " "; + } + catch (Exception e) + { + } + } + } + } + return params.trim(); + } + + /** + * 判断是否需要过滤的对象。 + * + * @param o 对象信息。 + * @return 如果是需要过滤的对象,则返回true;否则返回false。 + */ + @SuppressWarnings("rawtypes") + public boolean isFilterObject(final Object o) + { + Class clazz = o.getClass(); + if (clazz.isArray()) + { + return clazz.getComponentType().isAssignableFrom(MultipartFile.class); + } + else if (Collection.class.isAssignableFrom(clazz)) + { + Collection collection = (Collection) o; + for (Object value : collection) + { + return value instanceof MultipartFile; + } + } + else if (Map.class.isAssignableFrom(clazz)) + { + Map map = (Map) o; + for (Object value : map.entrySet()) + { + Map.Entry entry = (Map.Entry) value; + return entry.getValue() instanceof MultipartFile; + } + } + return o instanceof MultipartFile || o instanceof HttpServletRequest || o instanceof HttpServletResponse + || o instanceof BindingResult; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LoggingAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LoggingAspect.java new file mode 100644 index 0000000..846b6f9 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LoggingAspect.java @@ -0,0 +1,128 @@ +package com.ruoyi.framework.aspectj; + +import com.alibaba.fastjson.JSON; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.AfterThrowing; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.env.Environment; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import java.util.Arrays; +import java.util.stream.Collectors; + +/** + * Aspect for logging execution of service and repository Spring components. + *

+ * By default, it only runs with the "dev" profile. + */ +@Aspect +@Component +public class LoggingAspect { + private final Logger log = LoggerFactory.getLogger(this.getClass()); + private final Environment env; + + public LoggingAspect(Environment env) { + this.env = env; + } + + /** + * Pointcut that matches all repositories, services and Web REST endpoints. + */ + @Pointcut("within(@org.springframework.stereotype.Repository *)" + + " || within(@org.springframework.stereotype.Service *)" + + " || within(@org.springframework.web.bind.annotation.RestController *)") + public void springBeanPointcut() { + // Method is empty as this is just a Pointcut, the implementations are in the advices. + } + + @Pointcut("@annotation(org.springframework.scheduling.annotation.Scheduled)") + public void scheduledJob() { + // Method is empty as this is just a Pointcut, the implementations are in the advices. + } + + /** + * Pointcut that matches all repositories, services and Web REST endpoints. + */ + @Pointcut("within(@org.springframework.web.bind.annotation.RestController *)") + public void springBeanResourcePointcut() { + // Method is empty as this is just a Pointcut, the implementations are in the advices. + } + + /** + * Advice that logs methods throwing exceptions. + * + * @param joinPoint join point for advice + * @param e exception + */ + @AfterThrowing(pointcut = "springBeanPointcut() && scheduledJob()", throwing = "e") + public void logAfterThrowing(JoinPoint joinPoint, Throwable e) { + log.error("Exception in {}.{}() with cause = \'{}\' and exception = \'{}\'", joinPoint.getSignature().getDeclaringTypeName(), + joinPoint.getSignature().getName(), e.getCause() != null ? e.getCause() : "NULL", e.getMessage(), e); + } + + /** + * Advice that logs when a method is entered and exited. + * + * @param joinPoint join point for advice + * @return result + * @throws Throwable throws IllegalArgumentException + */ + @Around("scheduledJob()") + public Object scheduledJobAround(ProceedingJoinPoint joinPoint) throws Throwable { + String clazzName = joinPoint.getSignature().getDeclaringTypeName(), + funcName = joinPoint.getSignature().getName(); + long start = System.currentTimeMillis(); + log.info("执行定时任务 {} {}.{}", start, clazzName, funcName); + Object result = joinPoint.proceed(); + long end = System.currentTimeMillis(); + log.info("执行定时任务 {} {}.{}, host {} ms", start, clazzName, funcName, end - start); + return result; + } + + @Around("springBeanResourcePointcut()") + public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable { + try { + + log.info("Enter: {}.{}() with argument[s] = {}", joinPoint.getSignature().getDeclaringTypeName(), + joinPoint.getSignature().getName(), convertString(joinPoint.getArgs())); + + Object result = joinPoint.proceed(); + log.debug("Exit: {}.{}() with result = {}", joinPoint.getSignature().getDeclaringTypeName(), + joinPoint.getSignature().getName(), result); + return result; + } catch (IllegalArgumentException e) { + log.error("Illegal argument: {} in {}.{}()", Arrays.toString(joinPoint.getArgs()), + joinPoint.getSignature().getDeclaringTypeName(), joinPoint.getSignature().getName()); + throw e; + } + } + + private String convertString(Object[] args) { + if (args == null || args.length == 0) { + return "[]"; + } + String params = Arrays.stream(args).map(it -> { + if (it instanceof ServletResponse) { + return "ServletResponse"; + } + if (it instanceof ServletRequest) { + return "ServletRequest"; + } + if (it instanceof MultipartFile) { + MultipartFile f = (MultipartFile) it; + return String.format("{fileName: \"%s\", name:\"%s\", contentType: \"%s\", size: \"%d\"}", + f.getOriginalFilename(), f.getName(), f.getContentType(), f.getSize()); + } + return JSON.toJSONString(it); + }).collect(Collectors.joining(",")); + return "[" + params + "]"; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java new file mode 100644 index 0000000..511fe95 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java @@ -0,0 +1,91 @@ +package com.ruoyi.framework.aspectj; + +import java.lang.reflect.Method; +import java.util.Collections; +import java.util.List; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.reflect.MethodSignature; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.script.RedisScript; +import org.springframework.stereotype.Component; +import com.ruoyi.common.annotation.RateLimiter; +import com.ruoyi.common.enums.LimitType; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.ip.IpUtils; + +/** + * 限流处理 + * + * @author ruoyi + */ +@Aspect +@Component +public class RateLimiterAspect +{ + private static final Logger log = LoggerFactory.getLogger(RateLimiterAspect.class); + + private RedisTemplate redisTemplate; + + private RedisScript limitScript; + + @Autowired + public void setRedisTemplate1(RedisTemplate redisTemplate) + { + this.redisTemplate = redisTemplate; + } + + @Autowired + public void setLimitScript(RedisScript limitScript) + { + this.limitScript = limitScript; + } + + @Before("@annotation(rateLimiter)") + public void doBefore(JoinPoint point, RateLimiter rateLimiter) throws Throwable + { + String key = rateLimiter.key(); + int time = rateLimiter.time(); + int count = rateLimiter.count(); + + String combineKey = getCombineKey(rateLimiter, point); + List keys = Collections.singletonList(combineKey); + try + { + Long number = redisTemplate.execute(limitScript, keys, count, time); + if (StringUtils.isNull(number) || number.intValue() > count) + { + throw new ServiceException("访问过于频繁,请稍后再试"); + } + log.info("限制请求'{}',当前请求'{}',缓存key'{}'", count, number.intValue(), key); + } + catch (ServiceException e) + { + throw e; + } + catch (Exception e) + { + throw new RuntimeException("服务器限流异常,请稍后再试"); + } + } + + public String getCombineKey(RateLimiter rateLimiter, JoinPoint point) + { + StringBuffer stringBuffer = new StringBuffer(rateLimiter.key()); + if (rateLimiter.limitType() == LimitType.IP) + { + stringBuffer.append(IpUtils.getIpAddr(ServletUtils.getRequest())).append("-"); + } + MethodSignature signature = (MethodSignature) point.getSignature(); + Method method = signature.getMethod(); + Class targetClass = method.getDeclaringClass(); + stringBuffer.append(targetClass.getName()).append("-").append(method.getName()); + return stringBuffer.toString(); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java new file mode 100644 index 0000000..39d260f --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java @@ -0,0 +1,31 @@ +package com.ruoyi.framework.config; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.EnableAspectJAutoProxy; + +import java.util.TimeZone; + +/** + * 程序注解配置 + * + * @author ruoyi + */ +@Configuration +// 表示通过aop框架暴露该代理对象,AopContext能够访问 +@EnableAspectJAutoProxy(exposeProxy = true) +// 指定要扫描的Mapper类的包的路径 +@MapperScan({"com.ruoyi.**.mapper", "com.fjp.**.mapper", "com.cyl.**.mapper"}) +public class ApplicationConfig +{ + /** + * 时区配置 + */ + @Bean + public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization() + { + return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault()); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/CaptchaConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/CaptchaConfig.java new file mode 100644 index 0000000..dcf9656 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/CaptchaConfig.java @@ -0,0 +1,83 @@ +package com.ruoyi.framework.config; + +import java.util.Properties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import com.google.code.kaptcha.impl.DefaultKaptcha; +import com.google.code.kaptcha.util.Config; +import static com.google.code.kaptcha.Constants.*; + +/** + * 验证码配置 + * + * @author ruoyi + */ +@Configuration +public class CaptchaConfig +{ + @Bean(name = "captchaProducer") + public DefaultKaptcha getKaptchaBean() + { + DefaultKaptcha defaultKaptcha = new DefaultKaptcha(); + Properties properties = new Properties(); + // 是否有边框 默认为true 我们可以自己设置yes,no + properties.setProperty(KAPTCHA_BORDER, "yes"); + // 验证码文本字符颜色 默认为Color.BLACK + properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_COLOR, "black"); + // 验证码图片宽度 默认为200 + properties.setProperty(KAPTCHA_IMAGE_WIDTH, "160"); + // 验证码图片高度 默认为50 + properties.setProperty(KAPTCHA_IMAGE_HEIGHT, "60"); + // 验证码文本字符大小 默认为40 + properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "38"); + // KAPTCHA_SESSION_KEY + properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCode"); + // 验证码文本字符长度 默认为5 + properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "4"); + // 验证码文本字体样式 默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize) + properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_NAMES, "Arial,Courier"); + // 图片样式 水纹com.google.code.kaptcha.impl.WaterRipple 鱼眼com.google.code.kaptcha.impl.FishEyeGimpy 阴影com.google.code.kaptcha.impl.ShadowGimpy + properties.setProperty(KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.ShadowGimpy"); + Config config = new Config(properties); + defaultKaptcha.setConfig(config); + return defaultKaptcha; + } + + @Bean(name = "captchaProducerMath") + public DefaultKaptcha getKaptchaBeanMath() + { + DefaultKaptcha defaultKaptcha = new DefaultKaptcha(); + Properties properties = new Properties(); + // 是否有边框 默认为true 我们可以自己设置yes,no + properties.setProperty(KAPTCHA_BORDER, "no"); + // 边框颜色 默认为Color.BLACK + properties.setProperty(KAPTCHA_BORDER_COLOR, "105,179,90"); + // 验证码文本字符颜色 默认为Color.BLACK + properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_COLOR, "blue"); + // 验证码图片宽度 默认为200 + properties.setProperty(KAPTCHA_IMAGE_WIDTH, "160"); + // 验证码图片高度 默认为50 + properties.setProperty(KAPTCHA_IMAGE_HEIGHT, "60"); + // 验证码文本字符大小 默认为40 + properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "35"); + // KAPTCHA_SESSION_KEY + properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCodeMath"); + // 验证码文本生成器 + properties.setProperty(KAPTCHA_TEXTPRODUCER_IMPL, "com.ruoyi.framework.config.KaptchaTextCreator"); + // 验证码文本字符间距 默认为2 + properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_SPACE, "3"); + // 验证码文本字符长度 默认为5 + properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "6"); + // 验证码文本字体样式 默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize) + properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_NAMES, "Arial,Courier"); + // 验证码噪点颜色 默认为Color.BLACK + properties.setProperty(KAPTCHA_NOISE_COLOR, "white"); + // 干扰实现类 + properties.setProperty(KAPTCHA_NOISE_IMPL, "com.google.code.kaptcha.impl.NoNoise"); + // 图片样式 水纹com.google.code.kaptcha.impl.WaterRipple 鱼眼com.google.code.kaptcha.impl.FishEyeGimpy 阴影com.google.code.kaptcha.impl.ShadowGimpy + properties.setProperty(KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.ShadowGimpy"); + Config config = new Config(properties); + defaultKaptcha.setConfig(config); + return defaultKaptcha; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java new file mode 100644 index 0000000..f6abac1 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java @@ -0,0 +1,126 @@ +package com.ruoyi.framework.config; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.sql.DataSource; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; +import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties; +import com.alibaba.druid.util.Utils; +import com.ruoyi.common.enums.DataSourceType; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.framework.config.properties.DruidProperties; +import com.ruoyi.framework.datasource.DynamicDataSource; + +/** + * druid 配置多数据源 + * + * @author ruoyi + */ +@Configuration +public class DruidConfig +{ + @Bean + @ConfigurationProperties("spring.datasource.druid.master") + public DataSource masterDataSource(DruidProperties druidProperties) + { + DruidDataSource dataSource = DruidDataSourceBuilder.create().build(); + return druidProperties.dataSource(dataSource); + } + + @Bean + @ConfigurationProperties("spring.datasource.druid.slave") + @ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true") + public DataSource slaveDataSource(DruidProperties druidProperties) + { + DruidDataSource dataSource = DruidDataSourceBuilder.create().build(); + return druidProperties.dataSource(dataSource); + } + + @Bean(name = "dynamicDataSource") + @Primary + public DynamicDataSource dataSource(DataSource masterDataSource) + { + Map targetDataSources = new HashMap<>(); + targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource); + setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource"); + return new DynamicDataSource(masterDataSource, targetDataSources); + } + + /** + * 设置数据源 + * + * @param targetDataSources 备选数据源集合 + * @param sourceName 数据源名称 + * @param beanName bean名称 + */ + public void setDataSource(Map targetDataSources, String sourceName, String beanName) + { + try + { + DataSource dataSource = SpringUtils.getBean(beanName); + targetDataSources.put(sourceName, dataSource); + } + catch (Exception e) + { + } + } + + /** + * 去除监控页面底部的广告 + */ + @SuppressWarnings({ "rawtypes", "unchecked" }) + @Bean + @ConditionalOnProperty(name = "spring.datasource.druid.statViewServlet.enabled", havingValue = "true") + public FilterRegistrationBean removeDruidFilterRegistrationBean(DruidStatProperties properties) + { + // 获取web监控页面的参数 + DruidStatProperties.StatViewServlet config = properties.getStatViewServlet(); + // 提取common.js的配置路径 + String pattern = config.getUrlPattern() != null ? config.getUrlPattern() : "/druid/*"; + String commonJsPattern = pattern.replaceAll("\\*", "js/common.js"); + final String filePath = "support/http/resources/js/common.js"; + // 创建filter进行过滤 + Filter filter = new Filter() + { + @Override + public void init(javax.servlet.FilterConfig filterConfig) throws ServletException + { + } + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws IOException, ServletException + { + chain.doFilter(request, response); + // 重置缓冲区,响应头不会被重置 + response.resetBuffer(); + // 获取common.js + String text = Utils.readFromResource(filePath); + // 正则替换banner, 除去底部的广告信息 + text = text.replaceAll("
", ""); + text = text.replaceAll("powered.*?shrek.wang", ""); + response.getWriter().write(text); + } + @Override + public void destroy() + { + } + }; + FilterRegistrationBean registrationBean = new FilterRegistrationBean(); + registrationBean.setFilter(filter); + registrationBean.addUrlPatterns(commonJsPattern); + return registrationBean; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FastJson2JsonRedisSerializer.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FastJson2JsonRedisSerializer.java new file mode 100644 index 0000000..59812ea --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FastJson2JsonRedisSerializer.java @@ -0,0 +1,71 @@ +package com.ruoyi.framework.config; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.serializer.SerializerFeature; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.type.TypeFactory; +import org.springframework.data.redis.serializer.RedisSerializer; +import org.springframework.data.redis.serializer.SerializationException; +import com.alibaba.fastjson.parser.ParserConfig; +import org.springframework.util.Assert; +import java.nio.charset.Charset; + +/** + * Redis使用FastJson序列化 + * + * @author ruoyi + */ +public class FastJson2JsonRedisSerializer implements RedisSerializer +{ + @SuppressWarnings("unused") + private ObjectMapper objectMapper = new ObjectMapper(); + + public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); + + private Class clazz; + + static + { + ParserConfig.getGlobalInstance().setAutoTypeSupport(true); + } + + public FastJson2JsonRedisSerializer(Class clazz) + { + super(); + this.clazz = clazz; + } + + @Override + public byte[] serialize(T t) throws SerializationException + { + if (t == null) + { + return new byte[0]; + } + return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET); + } + + @Override + public T deserialize(byte[] bytes) throws SerializationException + { + if (bytes == null || bytes.length <= 0) + { + return null; + } + String str = new String(bytes, DEFAULT_CHARSET); + + return JSON.parseObject(str, clazz); + } + + public void setObjectMapper(ObjectMapper objectMapper) + { + Assert.notNull(objectMapper, "'objectMapper' must not be null"); + this.objectMapper = objectMapper; + } + + protected JavaType getJavaType(Class clazz) + { + return TypeFactory.defaultInstance().constructType(clazz); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java new file mode 100644 index 0000000..87b3750 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java @@ -0,0 +1,58 @@ +package com.ruoyi.framework.config; + +import java.util.HashMap; +import java.util.Map; +import javax.servlet.DispatcherType; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import com.ruoyi.common.filter.RepeatableFilter; +import com.ruoyi.common.filter.XssFilter; +import com.ruoyi.common.utils.StringUtils; + +/** + * Filter配置 + * + * @author ruoyi + */ +@Configuration +@ConditionalOnProperty(value = "xss.enabled", havingValue = "true") +public class FilterConfig +{ + @Value("${xss.excludes}") + private String excludes; + + @Value("${xss.urlPatterns}") + private String urlPatterns; + + @SuppressWarnings({ "rawtypes", "unchecked" }) + @Bean + public FilterRegistrationBean xssFilterRegistration() + { + FilterRegistrationBean registration = new FilterRegistrationBean(); + registration.setDispatcherTypes(DispatcherType.REQUEST); + registration.setFilter(new XssFilter()); + registration.addUrlPatterns(StringUtils.split(urlPatterns, ",")); + registration.setName("xssFilter"); + registration.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE); + Map initParameters = new HashMap(); + initParameters.put("excludes", excludes); + registration.setInitParameters(initParameters); + return registration; + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + @Bean + public FilterRegistrationBean someFilterRegistration() + { + FilterRegistrationBean registration = new FilterRegistrationBean(); + registration.setFilter(new RepeatableFilter()); + registration.addUrlPatterns("/*"); + registration.setName("repeatableFilter"); + registration.setOrder(FilterRegistrationBean.LOWEST_PRECEDENCE); + return registration; + } + +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java new file mode 100644 index 0000000..3e74580 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java @@ -0,0 +1,75 @@ +package com.ruoyi.framework.config; + +import java.util.Random; +import com.google.code.kaptcha.text.impl.DefaultTextCreator; + +/** + * 验证码文本生成器 + * + * @author ruoyi + */ +public class KaptchaTextCreator extends DefaultTextCreator +{ + private static final String[] CNUMBERS = "0,1,2,3,4,5,6,7,8,9,10".split(","); + + @Override + public String getText() + { + Integer result = 0; + Random random = new Random(); + int x = random.nextInt(10); + int y = random.nextInt(10); + StringBuilder suChinese = new StringBuilder(); + int randomoperands = (int) Math.round(Math.random() * 2); + if (randomoperands == 0) + { + result = x * y; + suChinese.append(CNUMBERS[x]); + suChinese.append("*"); + suChinese.append(CNUMBERS[y]); + } + else if (randomoperands == 1) + { + if (!(x == 0) && y % x == 0) + { + result = y / x; + suChinese.append(CNUMBERS[y]); + suChinese.append("/"); + suChinese.append(CNUMBERS[x]); + } + else + { + result = x + y; + suChinese.append(CNUMBERS[x]); + suChinese.append("+"); + suChinese.append(CNUMBERS[y]); + } + } + else if (randomoperands == 2) + { + if (x >= y) + { + result = x - y; + suChinese.append(CNUMBERS[x]); + suChinese.append("-"); + suChinese.append(CNUMBERS[y]); + } + else + { + result = y - x; + suChinese.append(CNUMBERS[y]); + suChinese.append("-"); + suChinese.append(CNUMBERS[x]); + } + } + else + { + result = x + y; + suChinese.append(CNUMBERS[x]); + suChinese.append("+"); + suChinese.append(CNUMBERS[y]); + } + suChinese.append("=?@" + result); + return suChinese.toString(); + } +} \ No newline at end of file diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/LocalDataUtil.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/LocalDataUtil.java new file mode 100644 index 0000000..5fde949 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/LocalDataUtil.java @@ -0,0 +1,27 @@ +package com.ruoyi.framework.config; + +import java.util.HashMap; +import java.util.Map; + +/** + * + */ +public class LocalDataUtil { + + private static ThreadLocal> LOCAL_VARS = new ThreadLocal>(); + + public static void setVar(String key, Object obj) { + Map stringObjectMap = LOCAL_VARS.get(); + if (null == stringObjectMap) { + stringObjectMap = new HashMap<>(); + LOCAL_VARS.set(stringObjectMap); + } + stringObjectMap.put(key, obj); + } + + public static Object getVar(String key) { + Map stringObjectMap = LOCAL_VARS.get(); + return null != stringObjectMap ? stringObjectMap.get(key) : null; + } + +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MyBatisConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MyBatisConfig.java new file mode 100644 index 0000000..15bae5a --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MyBatisConfig.java @@ -0,0 +1,145 @@ +package com.ruoyi.framework.config; + +import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor; +import com.ruoyi.common.core.mybatis.MybatisAutoSetUserAuditInfoInterceptor; +import org.apache.ibatis.session.SqlSessionFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; +import org.springframework.core.io.Resource; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.core.io.support.ResourcePatternResolver; +import org.springframework.core.type.classreading.CachingMetadataReaderFactory; +import org.springframework.core.type.classreading.MetadataReader; +import org.springframework.core.type.classreading.MetadataReaderFactory; +import org.springframework.util.ClassUtils; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; + +/** + * Mybatis支持*匹配扫描包 + * + * @author ruoyi + */ +@Configuration +public class MyBatisConfig +{ + @Autowired + private Environment env; + + static final String DEFAULT_RESOURCE_PATTERN = "**/*.class"; + + public static String setTypeAliasesPackage(String typeAliasesPackage) + { + ResourcePatternResolver resolver = (ResourcePatternResolver) new PathMatchingResourcePatternResolver(); + MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resolver); + List allResult = new ArrayList(); + try + { + for (String aliasesPackage : typeAliasesPackage.split(",")) + { + List result = new ArrayList(); + aliasesPackage = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + + ClassUtils.convertClassNameToResourcePath(aliasesPackage.trim()) + "/" + DEFAULT_RESOURCE_PATTERN; + Resource[] resources = resolver.getResources(aliasesPackage); + if (resources != null && resources.length > 0) + { + MetadataReader metadataReader = null; + for (Resource resource : resources) + { + if (resource.isReadable()) + { + metadataReader = metadataReaderFactory.getMetadataReader(resource); + try + { + result.add(Class.forName(metadataReader.getClassMetadata().getClassName()).getPackage().getName()); + } + catch (ClassNotFoundException e) + { + e.printStackTrace(); + } + } + } + } + if (result.size() > 0) + { + HashSet hashResult = new HashSet(result); + allResult.addAll(hashResult); + } + } + if (allResult.size() > 0) + { + typeAliasesPackage = String.join(",", (String[]) allResult.toArray(new String[0])); + } + else + { + throw new RuntimeException("mybatis typeAliasesPackage 路径扫描错误,参数typeAliasesPackage:" + typeAliasesPackage + "未找到任何包"); + } + } + catch (IOException e) + { + e.printStackTrace(); + } + return typeAliasesPackage; + } + + public Resource[] resolveMapperLocations(String[] mapperLocations) + { + ResourcePatternResolver resourceResolver = new PathMatchingResourcePatternResolver(); + List resources = new ArrayList(); + if (mapperLocations != null) + { + for (String mapperLocation : mapperLocations) + { + try + { + Resource[] mappers = resourceResolver.getResources(mapperLocation); + resources.addAll(Arrays.asList(mappers)); + } + catch (IOException e) + { + // ignore + } + } + } + return resources.toArray(new Resource[resources.size()]); + } + + /*@Bean + public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception + { + String typeAliasesPackage = env.getProperty("mybatis-plus.typeAliasesPackage"); + String mapperLocations = env.getProperty("mybatis-plus.mapperLocations"); + String configLocation = env.getProperty("mybatis-plus.configLocation"); + typeAliasesPackage = setTypeAliasesPackage(typeAliasesPackage); + VFS.addImplClass(SpringBootVFS.class); + + final MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean(); + sessionFactory.setDataSource(dataSource); + sessionFactory.setTypeAliasesPackage(typeAliasesPackage); + sessionFactory.setMapperLocations(resolveMapperLocations(StringUtils.split(mapperLocations, ","))); + sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation)); + sessionFactory.setGlobalConfig(); + return sessionFactory.getObject(); + }*/ + + @Bean + public String myInterceptor(SqlSessionFactory sqlSessionFactory) { + sqlSessionFactory.getConfiguration().addInterceptor(new MybatisAutoSetUserAuditInfoInterceptor()); + return "interceptor"; + } + + /** + * 注册数据库乐观锁插件 + * @return + */ + @Bean + public OptimisticLockerInterceptor optimisticLockerInterceptor(){ + return new OptimisticLockerInterceptor(); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/PaginationConfiguration.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/PaginationConfiguration.java new file mode 100644 index 0000000..8c15310 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/PaginationConfiguration.java @@ -0,0 +1,9 @@ +package com.ruoyi.framework.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.data.web.config.EnableSpringDataWebSupport; + +@Configuration +@EnableSpringDataWebSupport +public class PaginationConfiguration { +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java new file mode 100644 index 0000000..833f219 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java @@ -0,0 +1,79 @@ +package com.ruoyi.framework.config; + +import org.springframework.cache.annotation.CachingConfigurerSupport; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.script.DefaultRedisScript; +import org.springframework.data.redis.serializer.StringRedisSerializer; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; + +/** + * redis配置 + * + * @author ruoyi + */ +@Configuration +@EnableCaching +public class RedisConfig extends CachingConfigurerSupport +{ + @Bean + @SuppressWarnings(value = { "unchecked", "rawtypes" }) + public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) + { + RedisTemplate template = new RedisTemplate<>(); + template.setConnectionFactory(connectionFactory); + + FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer(Object.class); + + ObjectMapper mapper = new ObjectMapper(); + mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); + serializer.setObjectMapper(mapper); + + // 使用StringRedisSerializer来序列化和反序列化redis的key值 + template.setKeySerializer(new StringRedisSerializer()); + template.setValueSerializer(serializer); + + // Hash的key也采用StringRedisSerializer的序列化方式 + template.setHashKeySerializer(new StringRedisSerializer()); + template.setHashValueSerializer(serializer); + + template.afterPropertiesSet(); + return template; + } + + @Bean + public DefaultRedisScript limitScript() + { + DefaultRedisScript redisScript = new DefaultRedisScript<>(); + redisScript.setScriptText(limitScriptText()); + redisScript.setResultType(Long.class); + return redisScript; + } + + /** + * 限流脚本 + */ + private String limitScriptText() + { + return "local key = KEYS[1]\n" + + "local count = tonumber(ARGV[1])\n" + + "local time = tonumber(ARGV[2])\n" + + "local current = redis.call('get', key);\n" + + "if current and tonumber(current) > count then\n" + + " return tonumber(current);\n" + + "end\n" + + "current = redis.call('incr', key)\n" + + "if tonumber(current) == 1 then\n" + + " redis.call('expire', key, time)\n" + + "end\n" + + "return tonumber(current);"; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java new file mode 100644 index 0000000..8fbb87b --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java @@ -0,0 +1,69 @@ +package com.ruoyi.framework.config; + +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.framework.interceptor.RepeatSubmitInterceptor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.CacheControl; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.filter.CorsFilter; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +import java.util.concurrent.TimeUnit; + +/** + * 通用配置 + * + * @author ruoyi + */ +@Configuration +public class ResourcesConfig implements WebMvcConfigurer +{ + @Autowired + private RepeatSubmitInterceptor repeatSubmitInterceptor; + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + /** 本地文件上传路径 */ + registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**") + .addResourceLocations("file:" + RuoYiConfig.getProfile() + "/") + .setCacheControl(CacheControl.maxAge(365, TimeUnit.DAYS)); + + /** swagger配置 */ + registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/"); + } + + /** + * 自定义拦截规则 + */ + @Override + public void addInterceptors(InterceptorRegistry registry) + { + registry.addInterceptor(repeatSubmitInterceptor).addPathPatterns("/**"); + } + + /** + * 跨域配置 + */ + @Bean + public CorsFilter corsFilter() + { + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + CorsConfiguration config = new CorsConfiguration(); + config.setAllowCredentials(true); + // 设置访问源地址 + config.addAllowedOrigin("*"); + // 设置访问源请求头 + config.addAllowedHeader("*"); + // 设置访问源请求方法 + config.addAllowedMethod("*"); + // 对接口配置跨域设置 + source.registerCorsConfiguration("/**", config); + return new CorsFilter(source); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java new file mode 100644 index 0000000..ec958b5 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -0,0 +1,148 @@ +package com.ruoyi.framework.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.http.HttpMethod; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.http.SessionCreationPolicy; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.security.web.authentication.logout.LogoutFilter; +import org.springframework.web.filter.CorsFilter; +import com.ruoyi.framework.security.filter.JwtAuthenticationTokenFilter; +import com.ruoyi.framework.security.handle.AuthenticationEntryPointImpl; +import com.ruoyi.framework.security.handle.LogoutSuccessHandlerImpl; + +/** + * spring security配置 + * + * @author ruoyi + */ +@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true) +public class SecurityConfig extends WebSecurityConfigurerAdapter +{ + /** + * 自定义用户认证逻辑 + */ + @Autowired + private UserDetailsService userDetailsService; + + /** + * 认证失败处理类 + */ + @Autowired + private AuthenticationEntryPointImpl unauthorizedHandler; + + /** + * 退出处理类 + */ + @Autowired + private LogoutSuccessHandlerImpl logoutSuccessHandler; + + /** + * token认证过滤器 + */ + @Autowired + private JwtAuthenticationTokenFilter authenticationTokenFilter; + + /** + * 跨域过滤器 + */ + @Autowired + private CorsFilter corsFilter; + + /** + * 解决 无法直接注入 AuthenticationManager + * + * @return + * @throws Exception + */ + @Bean + @Override + public AuthenticationManager authenticationManagerBean() throws Exception + { + return super.authenticationManagerBean(); + } + + /** + * anyRequest | 匹配所有请求路径 + * access | SpringEl表达式结果为true时可以访问 + * anonymous | 匿名可以访问 + * denyAll | 用户不能访问 + * fullyAuthenticated | 用户完全认证可以访问(非remember-me下自动登录) + * hasAnyAuthority | 如果有参数,参数表示权限,则其中任何一个权限可以访问 + * hasAnyRole | 如果有参数,参数表示角色,则其中任何一个角色可以访问 + * hasAuthority | 如果有参数,参数表示权限,则其权限可以访问 + * hasIpAddress | 如果有参数,参数表示IP地址,如果用户IP和参数匹配,则可以访问 + * hasRole | 如果有参数,参数表示角色,则其角色可以访问 + * permitAll | 用户可以任意访问 + * rememberMe | 允许通过remember-me登录的用户访问 + * authenticated | 用户登录后可访问 + */ + @Override + protected void configure(HttpSecurity httpSecurity) throws Exception + { + httpSecurity + // CSRF禁用,因为不使用session + .csrf().disable() + // 认证失败处理类 + .exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and() + // 基于token,所以不需要session + .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and() + // 过滤请求 + .authorizeRequests() + // 对于登录login 注册register 验证码captchaImage 允许匿名访问 + .antMatchers("/login/*", "/login", "/code/get", "/register", "/captchaImage").anonymous() + .antMatchers( + HttpMethod.GET, + "/", + "/*.html", + "/**/*.html", + "/**/*.css", + "/**/*.js", + "/profile/**" + ).permitAll() + .antMatchers("/h5/**").permitAll() + .antMatchers("/no-auth/**").permitAll() + .antMatchers("/common/download**").anonymous() + .antMatchers("/common/download/resource**").anonymous() + .antMatchers("/swagger-ui.html").anonymous() + .antMatchers("/swagger-resources/**").anonymous() + .antMatchers("/webjars/**").anonymous() + .antMatchers("/*/api-docs").anonymous() + .antMatchers("/druid/**").anonymous() + // 除上面外的所有请求全部需要鉴权认证 + .anyRequest().authenticated() + .and() + .headers().frameOptions().disable(); + httpSecurity.logout().logoutUrl("/logout").logoutSuccessHandler(logoutSuccessHandler); + // 添加JWT filter + httpSecurity.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class); + // 添加CORS filter + httpSecurity.addFilterBefore(corsFilter, JwtAuthenticationTokenFilter.class); + httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class); + } + + /** + * 强散列哈希加密实现 + */ + @Bean + public BCryptPasswordEncoder bCryptPasswordEncoder() + { + return new BCryptPasswordEncoder(); + } + + /** + * 身份认证接口 + */ + @Override + protected void configure(AuthenticationManagerBuilder auth) throws Exception + { + auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder()); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ServerConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ServerConfig.java new file mode 100644 index 0000000..b5b7de3 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ServerConfig.java @@ -0,0 +1,32 @@ +package com.ruoyi.framework.config; + +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Component; +import com.ruoyi.common.utils.ServletUtils; + +/** + * 服务相关配置 + * + * @author ruoyi + */ +@Component +public class ServerConfig +{ + /** + * 获取完整的请求路径,包括:域名,端口,上下文访问路径 + * + * @return 服务地址 + */ + public String getUrl() + { + HttpServletRequest request = ServletUtils.getRequest(); + return getDomain(request); + } + + public static String getDomain(HttpServletRequest request) + { + StringBuffer url = request.getRequestURL(); + String contextPath = request.getServletContext().getContextPath(); + return url.delete(url.length() - request.getRequestURI().length(), url.length()).append(contextPath).toString(); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java new file mode 100644 index 0000000..0d67c22 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java @@ -0,0 +1,62 @@ +package com.ruoyi.framework.config; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.ThreadPoolExecutor; +import org.apache.commons.lang3.concurrent.BasicThreadFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import com.ruoyi.common.utils.Threads; + +/** + * 线程池配置 + * + * @author ruoyi + **/ +@Configuration +public class ThreadPoolConfig +{ + // 核心线程池大小 + private int corePoolSize = 50; + + // 最大可创建的线程数 + private int maxPoolSize = 200; + + // 队列最大长度 + private int queueCapacity = 1000; + + // 线程池维护线程所允许的空闲时间 + private int keepAliveSeconds = 300; + + @Bean(name = "threadPoolTaskExecutor") + public ThreadPoolTaskExecutor threadPoolTaskExecutor() + { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + executor.setMaxPoolSize(maxPoolSize); + executor.setCorePoolSize(corePoolSize); + executor.setQueueCapacity(queueCapacity); + executor.setKeepAliveSeconds(keepAliveSeconds); + // 线程池对拒绝任务(无线程可用)的处理策略 + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + return executor; + } + + /** + * 执行周期性或定时任务 + */ + @Bean(name = "scheduledExecutorService") + protected ScheduledExecutorService scheduledExecutorService() + { + return new ScheduledThreadPoolExecutor(corePoolSize, + new BasicThreadFactory.Builder().namingPattern("schedule-pool-%d").daemon(true).build()) + { + @Override + protected void afterExecute(Runnable r, Throwable t) + { + super.afterExecute(r, t); + Threads.printException(r, t); + } + }; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/DruidProperties.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/DruidProperties.java new file mode 100644 index 0000000..84f7e00 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/DruidProperties.java @@ -0,0 +1,77 @@ +package com.ruoyi.framework.config.properties; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import com.alibaba.druid.pool.DruidDataSource; + +/** + * druid 配置属性 + * + * @author ruoyi + */ +@Configuration +public class DruidProperties +{ + @Value("${spring.datasource.druid.initialSize}") + private int initialSize; + + @Value("${spring.datasource.druid.minIdle}") + private int minIdle; + + @Value("${spring.datasource.druid.maxActive}") + private int maxActive; + + @Value("${spring.datasource.druid.maxWait}") + private int maxWait; + + @Value("${spring.datasource.druid.timeBetweenEvictionRunsMillis}") + private int timeBetweenEvictionRunsMillis; + + @Value("${spring.datasource.druid.minEvictableIdleTimeMillis}") + private int minEvictableIdleTimeMillis; + + @Value("${spring.datasource.druid.maxEvictableIdleTimeMillis}") + private int maxEvictableIdleTimeMillis; + + @Value("${spring.datasource.druid.validationQuery}") + private String validationQuery; + + @Value("${spring.datasource.druid.testWhileIdle}") + private boolean testWhileIdle; + + @Value("${spring.datasource.druid.testOnBorrow}") + private boolean testOnBorrow; + + @Value("${spring.datasource.druid.testOnReturn}") + private boolean testOnReturn; + + public DruidDataSource dataSource(DruidDataSource datasource) + { + /** 配置初始化大小、最小、最大 */ + datasource.setInitialSize(initialSize); + datasource.setMaxActive(maxActive); + datasource.setMinIdle(minIdle); + + /** 配置获取连接等待超时的时间 */ + datasource.setMaxWait(maxWait); + + /** 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 */ + datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); + + /** 配置一个连接在池中最小、最大生存的时间,单位是毫秒 */ + datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); + datasource.setMaxEvictableIdleTimeMillis(maxEvictableIdleTimeMillis); + + /** + * 用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。 + */ + datasource.setValidationQuery(validationQuery); + /** 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 */ + datasource.setTestWhileIdle(testWhileIdle); + /** 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */ + datasource.setTestOnBorrow(testOnBorrow); + /** 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */ + datasource.setTestOnReturn(testOnReturn); + return datasource; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSource.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSource.java new file mode 100644 index 0000000..e70b8cf --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSource.java @@ -0,0 +1,26 @@ +package com.ruoyi.framework.datasource; + +import java.util.Map; +import javax.sql.DataSource; +import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; + +/** + * 动态数据源 + * + * @author ruoyi + */ +public class DynamicDataSource extends AbstractRoutingDataSource +{ + public DynamicDataSource(DataSource defaultTargetDataSource, Map targetDataSources) + { + super.setDefaultTargetDataSource(defaultTargetDataSource); + super.setTargetDataSources(targetDataSources); + super.afterPropertiesSet(); + } + + @Override + protected Object determineCurrentLookupKey() + { + return DynamicDataSourceContextHolder.getDataSourceType(); + } +} \ No newline at end of file diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java new file mode 100644 index 0000000..3572db9 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java @@ -0,0 +1,45 @@ +package com.ruoyi.framework.datasource; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * 数据源切换处理 + * + * @author ruoyi + */ +public class DynamicDataSourceContextHolder +{ + public static final Logger log = LoggerFactory.getLogger(DynamicDataSourceContextHolder.class); + + /** + * 使用ThreadLocal维护变量,ThreadLocal为每个使用该变量的线程提供独立的变量副本, + * 所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。 + */ + private static final ThreadLocal CONTEXT_HOLDER = new ThreadLocal<>(); + + /** + * 设置数据源的变量 + */ + public static void setDataSourceType(String dsType) + { + log.info("切换到{}数据源", dsType); + CONTEXT_HOLDER.set(dsType); + } + + /** + * 获得数据源的变量 + */ + public static String getDataSourceType() + { + return CONTEXT_HOLDER.get(); + } + + /** + * 清空数据源变量 + */ + public static void clearDataSourceType() + { + CONTEXT_HOLDER.remove(); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/RepeatSubmitInterceptor.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/RepeatSubmitInterceptor.java new file mode 100644 index 0000000..5bf4522 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/RepeatSubmitInterceptor.java @@ -0,0 +1,55 @@ +package com.ruoyi.framework.interceptor; + +import java.lang.reflect.Method; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Component; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; +import com.alibaba.fastjson.JSONObject; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.ServletUtils; + +/** + * 防止重复提交拦截器 + * + * @author ruoyi + */ +@Component +public abstract class RepeatSubmitInterceptor extends HandlerInterceptorAdapter +{ + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception + { + if (handler instanceof HandlerMethod) + { + HandlerMethod handlerMethod = (HandlerMethod) handler; + Method method = handlerMethod.getMethod(); + RepeatSubmit annotation = method.getAnnotation(RepeatSubmit.class); + if (annotation != null) + { + if (this.isRepeatSubmit(request, annotation)) + { + AjaxResult ajaxResult = AjaxResult.error(annotation.message()); + ServletUtils.renderString(response, JSONObject.toJSONString(ajaxResult)); + return false; + } + } + return true; + } + else + { + return super.preHandle(request, response, handler); + } + } + + /** + * 验证是否重复提交由子类实现具体的防重复提交的规则 + * + * @param request + * @return + * @throws Exception + */ + public abstract boolean isRepeatSubmit(HttpServletRequest request, RepeatSubmit annotation); +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java new file mode 100644 index 0000000..0138f14 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java @@ -0,0 +1,114 @@ +package com.ruoyi.framework.interceptor.impl; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; +import javax.servlet.http.HttpServletRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import com.alibaba.fastjson.JSONObject; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.filter.RepeatedlyRequestWrapper; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.http.HttpHelper; +import com.ruoyi.framework.interceptor.RepeatSubmitInterceptor; + +/** + * 判断请求url和数据是否和上一次相同, + * 如果和上次相同,则是重复提交表单。 有效时间为10秒内。 + * + * @author ruoyi + */ +@Component +public class SameUrlDataInterceptor extends RepeatSubmitInterceptor +{ + public final String REPEAT_PARAMS = "repeatParams"; + + public final String REPEAT_TIME = "repeatTime"; + + // 令牌自定义标识 + @Value("${token.header}") + private String header; + + @Autowired + private RedisCache redisCache; + + @SuppressWarnings("unchecked") + @Override + public boolean isRepeatSubmit(HttpServletRequest request, RepeatSubmit annotation) + { + String nowParams = ""; + if (request instanceof RepeatedlyRequestWrapper) + { + RepeatedlyRequestWrapper repeatedlyRequest = (RepeatedlyRequestWrapper) request; + nowParams = HttpHelper.getBodyString(repeatedlyRequest); + } + + // body参数为空,获取Parameter的数据 + if (StringUtils.isEmpty(nowParams)) + { + nowParams = JSONObject.toJSONString(request.getParameterMap()); + } + Map nowDataMap = new HashMap(); + nowDataMap.put(REPEAT_PARAMS, nowParams); + nowDataMap.put(REPEAT_TIME, System.currentTimeMillis()); + + // 请求地址(作为存放cache的key值) + String url = request.getRequestURI(); + + // 唯一值(没有消息头则使用请求地址) + String submitKey = request.getHeader(header); + if (StringUtils.isEmpty(submitKey)) + { + submitKey = url; + } + + // 唯一标识(指定key + 消息头) + String cacheRepeatKey = Constants.REPEAT_SUBMIT_KEY + submitKey; + + Object sessionObj = redisCache.getCacheObject(cacheRepeatKey); + if (sessionObj != null) + { + Map sessionMap = (Map) sessionObj; + if (sessionMap.containsKey(url)) + { + Map preDataMap = (Map) sessionMap.get(url); + if (compareParams(nowDataMap, preDataMap) && compareTime(nowDataMap, preDataMap, annotation.interval())) + { + return true; + } + } + } + Map cacheMap = new HashMap(); + cacheMap.put(url, nowDataMap); + redisCache.setCacheObject(cacheRepeatKey, cacheMap, annotation.interval(), TimeUnit.MILLISECONDS); + return false; + } + + /** + * 判断参数是否相同 + */ + private boolean compareParams(Map nowMap, Map preMap) + { + String nowParams = (String) nowMap.get(REPEAT_PARAMS); + String preParams = (String) preMap.get(REPEAT_PARAMS); + return nowParams.equals(preParams); + } + + /** + * 判断两次间隔时间 + */ + private boolean compareTime(Map nowMap, Map preMap, int interval) + { + long time1 = (Long) nowMap.get(REPEAT_TIME); + long time2 = (Long) preMap.get(REPEAT_TIME); + if ((time1 - time2) < interval) + { + return true; + } + return false; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/AsyncManager.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/AsyncManager.java new file mode 100644 index 0000000..7387a02 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/AsyncManager.java @@ -0,0 +1,55 @@ +package com.ruoyi.framework.manager; + +import java.util.TimerTask; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; +import com.ruoyi.common.utils.Threads; +import com.ruoyi.common.utils.spring.SpringUtils; + +/** + * 异步任务管理器 + * + * @author ruoyi + */ +public class AsyncManager +{ + /** + * 操作延迟10毫秒 + */ + private final int OPERATE_DELAY_TIME = 10; + + /** + * 异步操作任务调度线程池 + */ + private ScheduledExecutorService executor = SpringUtils.getBean("scheduledExecutorService"); + + /** + * 单例模式 + */ + private AsyncManager(){} + + private static AsyncManager me = new AsyncManager(); + + public static AsyncManager me() + { + return me; + } + + /** + * 执行任务 + * + * @param task 任务 + */ + public void execute(TimerTask task) + { + executor.schedule(task, OPERATE_DELAY_TIME, TimeUnit.MILLISECONDS); + } + + /** + * 停止任务线程池 + */ + public void shutdown() + { + Threads.shutdownAndAwaitTermination(executor); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/ShutdownManager.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/ShutdownManager.java new file mode 100644 index 0000000..e36ca3c --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/ShutdownManager.java @@ -0,0 +1,39 @@ +package com.ruoyi.framework.manager; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +import javax.annotation.PreDestroy; + +/** + * 确保应用退出时能关闭后台线程 + * + * @author ruoyi + */ +@Component +public class ShutdownManager +{ + private static final Logger logger = LoggerFactory.getLogger("sys-user"); + + @PreDestroy + public void destroy() + { + shutdownAsyncManager(); + } + + /** + * 停止异步执行任务 + */ + private void shutdownAsyncManager() + { + try + { + logger.info("====关闭后台任务任务线程池===="); + AsyncManager.me().shutdown(); + } + catch (Exception e) + { + logger.error(e.getMessage(), e); + } + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java new file mode 100644 index 0000000..23d0230 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java @@ -0,0 +1,102 @@ +package com.ruoyi.framework.manager.factory; + +import java.util.TimerTask; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.utils.LogUtils; +import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.ip.AddressUtils; +import com.ruoyi.common.utils.ip.IpUtils; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.system.domain.SysLogininfor; +import com.ruoyi.system.domain.SysOperLog; +import com.ruoyi.system.service.ISysLogininforService; +import com.ruoyi.system.service.ISysOperLogService; +import eu.bitwalker.useragentutils.UserAgent; + +/** + * 异步工厂(产生任务用) + * + * @author ruoyi + */ +public class AsyncFactory +{ + private static final Logger sys_user_logger = LoggerFactory.getLogger("sys-user"); + + /** + * 记录登录信息 + * + * @param username 用户名 + * @param status 状态 + * @param message 消息 + * @param args 列表 + * @return 任务task + */ + public static TimerTask recordLogininfor(final String username, final String status, final String message, + final Object... args) + { + final UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent")); + final String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + return new TimerTask() + { + @Override + public void run() + { + String address = AddressUtils.getRealAddressByIP(ip); + StringBuilder s = new StringBuilder(); + s.append(LogUtils.getBlock(ip)); + s.append(address); + s.append(LogUtils.getBlock(username)); + s.append(LogUtils.getBlock(status)); + s.append(LogUtils.getBlock(message)); + // 打印信息到日志 + sys_user_logger.info(s.toString(), args); + // 获取客户端操作系统 + String os = userAgent.getOperatingSystem().getName(); + // 获取客户端浏览器 + String browser = userAgent.getBrowser().getName(); + // 封装对象 + SysLogininfor logininfor = new SysLogininfor(); + logininfor.setUserName(username); + logininfor.setIpaddr(ip); + logininfor.setLoginLocation(address); + logininfor.setBrowser(browser); + logininfor.setOs(os); + logininfor.setMsg(message); + // 日志状态 + if (StringUtils.equalsAny(status, Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER)) + { + logininfor.setStatus(Constants.SUCCESS); + } + else if (Constants.LOGIN_FAIL.equals(status)) + { + logininfor.setStatus(Constants.FAIL); + } + // 插入数据 + SpringUtils.getBean(ISysLogininforService.class).insertLogininfor(logininfor); + } + }; + } + + /** + * 操作日志记录 + * + * @param operLog 操作日志信息 + * @return 任务task + */ + public static TimerTask recordOper(final SysOperLog operLog) + { + return new TimerTask() + { + @Override + public void run() + { + // 远程查询操作地点 + operLog.setOperLocation(AddressUtils.getRealAddressByIP(operLog.getOperIp())); + SpringUtils.getBean(ISysOperLogService.class).insertOperlog(operLog); + } + }; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java new file mode 100644 index 0000000..046df99 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java @@ -0,0 +1,62 @@ +package com.ruoyi.framework.security.filter; + +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.framework.web.service.TokenService; +import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; +import org.springframework.stereotype.Component; +import org.springframework.web.filter.OncePerRequestFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.UUID; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +/** + * token过滤器 验证token有效性 + * + * @author ruoyi + */ +@Component +public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { + private Lock lock = new ReentrantLock(); + @Autowired + private TokenService tokenService; + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) + throws ServletException, IOException { + LoginUser loginUser = tokenService.getLoginUser(request); + if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUtils.getAuthentication())) { + tokenService.verifyToken(loginUser); + UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginUser, null, loginUser.getAuthorities()); + authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); + SecurityContextHolder.getContext().setAuthentication(authenticationToken); + } + boolean locked = false; + try { + locked = lock.tryLock(2, TimeUnit.MILLISECONDS); + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + MDC.put(Constants.SPAN_ID, uuid); + response.addHeader(Constants.SPAN_ID, uuid); + } catch (InterruptedException e) { + e.printStackTrace(); + } finally { + if (locked) { + lock.unlock(); + } + } + chain.doFilter(request, response); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/AuthenticationEntryPointImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/AuthenticationEntryPointImpl.java new file mode 100644 index 0000000..c22dd32 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/AuthenticationEntryPointImpl.java @@ -0,0 +1,34 @@ +package com.ruoyi.framework.security.handle; + +import java.io.IOException; +import java.io.Serializable; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.AuthenticationEntryPoint; +import org.springframework.stereotype.Component; +import com.alibaba.fastjson.JSON; +import com.ruoyi.common.constant.HttpStatus; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.StringUtils; + +/** + * 认证失败处理类 返回未授权 + * + * @author ruoyi + */ +@Component +public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint, Serializable +{ + private static final long serialVersionUID = -8970718410437077606L; + + @Override + public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) + throws IOException + { + int code = HttpStatus.UNAUTHORIZED; + String msg = StringUtils.format("请求访问:{},认证失败,无法访问系统资源", request.getRequestURI()); + ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.error(code, msg))); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java new file mode 100644 index 0000000..e5fc11d --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java @@ -0,0 +1,53 @@ +package com.ruoyi.framework.security.handle; + +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.core.Authentication; +import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; +import com.alibaba.fastjson.JSON; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.HttpStatus; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.framework.manager.AsyncManager; +import com.ruoyi.framework.manager.factory.AsyncFactory; +import com.ruoyi.framework.web.service.TokenService; + +/** + * 自定义退出处理类 返回成功 + * + * @author ruoyi + */ +@Configuration +public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler +{ + @Autowired + private TokenService tokenService; + + /** + * 退出处理 + * + * @return + */ + @Override + public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) + throws IOException, ServletException + { + LoginUser loginUser = tokenService.getLoginUser(request); + if (StringUtils.isNotNull(loginUser)) + { + String userName = loginUser.getUsername(); + // 删除用户缓存记录 + tokenService.delLoginUser(loginUser.getToken()); + // 记录用户退出日志 + AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGOUT, "退出成功")); + } + ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.error(HttpStatus.SUCCESS, "退出成功"))); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/Server.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/Server.java new file mode 100644 index 0000000..63b03da --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/Server.java @@ -0,0 +1,240 @@ +package com.ruoyi.framework.web.domain; + +import java.net.UnknownHostException; +import java.util.LinkedList; +import java.util.List; +import java.util.Properties; +import com.ruoyi.common.utils.Arith; +import com.ruoyi.common.utils.ip.IpUtils; +import com.ruoyi.framework.web.domain.server.Cpu; +import com.ruoyi.framework.web.domain.server.Jvm; +import com.ruoyi.framework.web.domain.server.Mem; +import com.ruoyi.framework.web.domain.server.Sys; +import com.ruoyi.framework.web.domain.server.SysFile; +import oshi.SystemInfo; +import oshi.hardware.CentralProcessor; +import oshi.hardware.CentralProcessor.TickType; +import oshi.hardware.GlobalMemory; +import oshi.hardware.HardwareAbstractionLayer; +import oshi.software.os.FileSystem; +import oshi.software.os.OSFileStore; +import oshi.software.os.OperatingSystem; +import oshi.util.Util; + +/** + * 服务器相关信息 + * + * @author ruoyi + */ +public class Server +{ + private static final int OSHI_WAIT_SECOND = 1000; + + /** + * CPU相关信息 + */ + private Cpu cpu = new Cpu(); + + /** + * 內存相关信息 + */ + private Mem mem = new Mem(); + + /** + * JVM相关信息 + */ + private Jvm jvm = new Jvm(); + + /** + * 服务器相关信息 + */ + private Sys sys = new Sys(); + + /** + * 磁盘相关信息 + */ + private List sysFiles = new LinkedList(); + + public Cpu getCpu() + { + return cpu; + } + + public void setCpu(Cpu cpu) + { + this.cpu = cpu; + } + + public Mem getMem() + { + return mem; + } + + public void setMem(Mem mem) + { + this.mem = mem; + } + + public Jvm getJvm() + { + return jvm; + } + + public void setJvm(Jvm jvm) + { + this.jvm = jvm; + } + + public Sys getSys() + { + return sys; + } + + public void setSys(Sys sys) + { + this.sys = sys; + } + + public List getSysFiles() + { + return sysFiles; + } + + public void setSysFiles(List sysFiles) + { + this.sysFiles = sysFiles; + } + + public void copyTo() throws Exception + { + SystemInfo si = new SystemInfo(); + HardwareAbstractionLayer hal = si.getHardware(); + + setCpuInfo(hal.getProcessor()); + + setMemInfo(hal.getMemory()); + + setSysInfo(); + + setJvmInfo(); + + setSysFiles(si.getOperatingSystem()); + } + + /** + * 设置CPU信息 + */ + private void setCpuInfo(CentralProcessor processor) + { + // CPU信息 + long[] prevTicks = processor.getSystemCpuLoadTicks(); + Util.sleep(OSHI_WAIT_SECOND); + long[] ticks = processor.getSystemCpuLoadTicks(); + long nice = ticks[TickType.NICE.getIndex()] - prevTicks[TickType.NICE.getIndex()]; + long irq = ticks[TickType.IRQ.getIndex()] - prevTicks[TickType.IRQ.getIndex()]; + long softirq = ticks[TickType.SOFTIRQ.getIndex()] - prevTicks[TickType.SOFTIRQ.getIndex()]; + long steal = ticks[TickType.STEAL.getIndex()] - prevTicks[TickType.STEAL.getIndex()]; + long cSys = ticks[TickType.SYSTEM.getIndex()] - prevTicks[TickType.SYSTEM.getIndex()]; + long user = ticks[TickType.USER.getIndex()] - prevTicks[TickType.USER.getIndex()]; + long iowait = ticks[TickType.IOWAIT.getIndex()] - prevTicks[TickType.IOWAIT.getIndex()]; + long idle = ticks[TickType.IDLE.getIndex()] - prevTicks[TickType.IDLE.getIndex()]; + long totalCpu = user + nice + cSys + idle + iowait + irq + softirq + steal; + cpu.setCpuNum(processor.getLogicalProcessorCount()); + cpu.setTotal(totalCpu); + cpu.setSys(cSys); + cpu.setUsed(user); + cpu.setWait(iowait); + cpu.setFree(idle); + } + + /** + * 设置内存信息 + */ + private void setMemInfo(GlobalMemory memory) + { + mem.setTotal(memory.getTotal()); + mem.setUsed(memory.getTotal() - memory.getAvailable()); + mem.setFree(memory.getAvailable()); + } + + /** + * 设置服务器信息 + */ + private void setSysInfo() + { + Properties props = System.getProperties(); + sys.setComputerName(IpUtils.getHostName()); + sys.setComputerIp(IpUtils.getHostIp()); + sys.setOsName(props.getProperty("os.name")); + sys.setOsArch(props.getProperty("os.arch")); + sys.setUserDir(props.getProperty("user.dir")); + } + + /** + * 设置Java虚拟机 + */ + private void setJvmInfo() throws UnknownHostException + { + Properties props = System.getProperties(); + jvm.setTotal(Runtime.getRuntime().totalMemory()); + jvm.setMax(Runtime.getRuntime().maxMemory()); + jvm.setFree(Runtime.getRuntime().freeMemory()); + jvm.setVersion(props.getProperty("java.version")); + jvm.setHome(props.getProperty("java.home")); + } + + /** + * 设置磁盘信息 + */ + private void setSysFiles(OperatingSystem os) + { + FileSystem fileSystem = os.getFileSystem(); + List fsArray = fileSystem.getFileStores(); + for (OSFileStore fs : fsArray) + { + long free = fs.getUsableSpace(); + long total = fs.getTotalSpace(); + long used = total - free; + SysFile sysFile = new SysFile(); + sysFile.setDirName(fs.getMount()); + sysFile.setSysTypeName(fs.getType()); + sysFile.setTypeName(fs.getName()); + sysFile.setTotal(convertFileSize(total)); + sysFile.setFree(convertFileSize(free)); + sysFile.setUsed(convertFileSize(used)); + sysFile.setUsage(Arith.mul(Arith.div(used, total, 4), 100)); + sysFiles.add(sysFile); + } + } + + /** + * 字节转换 + * + * @param size 字节大小 + * @return 转换后值 + */ + public String convertFileSize(long size) + { + long kb = 1024; + long mb = kb * 1024; + long gb = mb * 1024; + if (size >= gb) + { + return String.format("%.1f GB", (float) size / gb); + } + else if (size >= mb) + { + float f = (float) size / mb; + return String.format(f > 100 ? "%.0f MB" : "%.1f MB", f); + } + else if (size >= kb) + { + float f = (float) size / kb; + return String.format(f > 100 ? "%.0f KB" : "%.1f KB", f); + } + else + { + return String.format("%d B", size); + } + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Cpu.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Cpu.java new file mode 100644 index 0000000..a13a66c --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Cpu.java @@ -0,0 +1,101 @@ +package com.ruoyi.framework.web.domain.server; + +import com.ruoyi.common.utils.Arith; + +/** + * CPU相关信息 + * + * @author ruoyi + */ +public class Cpu +{ + /** + * 核心数 + */ + private int cpuNum; + + /** + * CPU总的使用率 + */ + private double total; + + /** + * CPU系统使用率 + */ + private double sys; + + /** + * CPU用户使用率 + */ + private double used; + + /** + * CPU当前等待率 + */ + private double wait; + + /** + * CPU当前空闲率 + */ + private double free; + + public int getCpuNum() + { + return cpuNum; + } + + public void setCpuNum(int cpuNum) + { + this.cpuNum = cpuNum; + } + + public double getTotal() + { + return Arith.round(Arith.mul(total, 100), 2); + } + + public void setTotal(double total) + { + this.total = total; + } + + public double getSys() + { + return Arith.round(Arith.mul(sys / total, 100), 2); + } + + public void setSys(double sys) + { + this.sys = sys; + } + + public double getUsed() + { + return Arith.round(Arith.mul(used / total, 100), 2); + } + + public void setUsed(double used) + { + this.used = used; + } + + public double getWait() + { + return Arith.round(Arith.mul(wait / total, 100), 2); + } + + public void setWait(double wait) + { + this.wait = wait; + } + + public double getFree() + { + return Arith.round(Arith.mul(free / total, 100), 2); + } + + public void setFree(double free) + { + this.free = free; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Jvm.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Jvm.java new file mode 100644 index 0000000..485d201 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Jvm.java @@ -0,0 +1,122 @@ +package com.ruoyi.framework.web.domain.server; + +import java.lang.management.ManagementFactory; +import com.ruoyi.common.utils.Arith; +import com.ruoyi.common.utils.DateUtils; + +/** + * JVM相关信息 + * + * @author ruoyi + */ +public class Jvm +{ + /** + * 当前JVM占用的内存总数(M) + */ + private double total; + + /** + * JVM最大可用内存总数(M) + */ + private double max; + + /** + * JVM空闲内存(M) + */ + private double free; + + /** + * JDK版本 + */ + private String version; + + /** + * JDK路径 + */ + private String home; + + public double getTotal() + { + return Arith.div(total, (1024 * 1024), 2); + } + + public void setTotal(double total) + { + this.total = total; + } + + public double getMax() + { + return Arith.div(max, (1024 * 1024), 2); + } + + public void setMax(double max) + { + this.max = max; + } + + public double getFree() + { + return Arith.div(free, (1024 * 1024), 2); + } + + public void setFree(double free) + { + this.free = free; + } + + public double getUsed() + { + return Arith.div(total - free, (1024 * 1024), 2); + } + + public double getUsage() + { + return Arith.mul(Arith.div(total - free, total, 4), 100); + } + + /** + * 获取JDK名称 + */ + public String getName() + { + return ManagementFactory.getRuntimeMXBean().getVmName(); + } + + public String getVersion() + { + return version; + } + + public void setVersion(String version) + { + this.version = version; + } + + public String getHome() + { + return home; + } + + public void setHome(String home) + { + this.home = home; + } + + /** + * JDK启动时间 + */ + public String getStartTime() + { + return DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.getServerStartDate()); + } + + /** + * JDK运行时间 + */ + public String getRunTime() + { + return DateUtils.getDatePoor(DateUtils.getNowDate(), DateUtils.getServerStartDate()); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Mem.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Mem.java new file mode 100644 index 0000000..13eec52 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Mem.java @@ -0,0 +1,61 @@ +package com.ruoyi.framework.web.domain.server; + +import com.ruoyi.common.utils.Arith; + +/** + * 內存相关信息 + * + * @author ruoyi + */ +public class Mem +{ + /** + * 内存总量 + */ + private double total; + + /** + * 已用内存 + */ + private double used; + + /** + * 剩余内存 + */ + private double free; + + public double getTotal() + { + return Arith.div(total, (1024 * 1024 * 1024), 2); + } + + public void setTotal(long total) + { + this.total = total; + } + + public double getUsed() + { + return Arith.div(used, (1024 * 1024 * 1024), 2); + } + + public void setUsed(long used) + { + this.used = used; + } + + public double getFree() + { + return Arith.div(free, (1024 * 1024 * 1024), 2); + } + + public void setFree(long free) + { + this.free = free; + } + + public double getUsage() + { + return Arith.mul(Arith.div(used, total, 4), 100); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Sys.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Sys.java new file mode 100644 index 0000000..45d64d9 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Sys.java @@ -0,0 +1,84 @@ +package com.ruoyi.framework.web.domain.server; + +/** + * 系统相关信息 + * + * @author ruoyi + */ +public class Sys +{ + /** + * 服务器名称 + */ + private String computerName; + + /** + * 服务器Ip + */ + private String computerIp; + + /** + * 项目路径 + */ + private String userDir; + + /** + * 操作系统 + */ + private String osName; + + /** + * 系统架构 + */ + private String osArch; + + public String getComputerName() + { + return computerName; + } + + public void setComputerName(String computerName) + { + this.computerName = computerName; + } + + public String getComputerIp() + { + return computerIp; + } + + public void setComputerIp(String computerIp) + { + this.computerIp = computerIp; + } + + public String getUserDir() + { + return userDir; + } + + public void setUserDir(String userDir) + { + this.userDir = userDir; + } + + public String getOsName() + { + return osName; + } + + public void setOsName(String osName) + { + this.osName = osName; + } + + public String getOsArch() + { + return osArch; + } + + public void setOsArch(String osArch) + { + this.osArch = osArch; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/SysFile.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/SysFile.java new file mode 100644 index 0000000..1320cde --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/SysFile.java @@ -0,0 +1,114 @@ +package com.ruoyi.framework.web.domain.server; + +/** + * 系统文件相关信息 + * + * @author ruoyi + */ +public class SysFile +{ + /** + * 盘符路径 + */ + private String dirName; + + /** + * 盘符类型 + */ + private String sysTypeName; + + /** + * 文件类型 + */ + private String typeName; + + /** + * 总大小 + */ + private String total; + + /** + * 剩余大小 + */ + private String free; + + /** + * 已经使用量 + */ + private String used; + + /** + * 资源的使用率 + */ + private double usage; + + public String getDirName() + { + return dirName; + } + + public void setDirName(String dirName) + { + this.dirName = dirName; + } + + public String getSysTypeName() + { + return sysTypeName; + } + + public void setSysTypeName(String sysTypeName) + { + this.sysTypeName = sysTypeName; + } + + public String getTypeName() + { + return typeName; + } + + public void setTypeName(String typeName) + { + this.typeName = typeName; + } + + public String getTotal() + { + return total; + } + + public void setTotal(String total) + { + this.total = total; + } + + public String getFree() + { + return free; + } + + public void setFree(String free) + { + this.free = free; + } + + public String getUsed() + { + return used; + } + + public void setUsed(String used) + { + this.used = used; + } + + public double getUsage() + { + return usage; + } + + public void setUsage(double usage) + { + this.usage = usage; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java new file mode 100644 index 0000000..12df348 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java @@ -0,0 +1,120 @@ +package com.ruoyi.framework.web.exception; + +import javax.servlet.http.HttpServletRequest; + +import com.ruoyi.common.exception.base.BaseException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.security.access.AccessDeniedException; +import org.springframework.validation.BindException; +import org.springframework.web.HttpRequestMethodNotSupportedException; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import com.ruoyi.common.constant.HttpStatus; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.exception.DemoModeException; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.StringUtils; + +/** + * 全局异常处理器 + * + * @author ruoyi + */ +@RestControllerAdvice +public class GlobalExceptionHandler +{ + private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class); + + /** + * 权限校验异常 + */ + @ExceptionHandler(AccessDeniedException.class) + public AjaxResult handleAccessDeniedException(AccessDeniedException e, HttpServletRequest request) + { + String requestURI = request.getRequestURI(); + log.error("请求地址'{}',权限校验失败'{}'", requestURI, e.getMessage()); + return AjaxResult.error(HttpStatus.FORBIDDEN, "没有权限,请联系管理员授权"); + } + + /** + * 请求方式不支持 + */ + @ExceptionHandler(HttpRequestMethodNotSupportedException.class) + public AjaxResult handleHttpRequestMethodNotSupported(HttpRequestMethodNotSupportedException e, + HttpServletRequest request) + { + String requestURI = request.getRequestURI(); + log.error("请求地址'{}',不支持'{}'请求", requestURI, e.getMethod()); + return AjaxResult.error(e.getMessage()); + } + /** + * 自定义验证异常 + */ + @ExceptionHandler(MethodArgumentNotValidException.class) + public Object handleMethodArgumentNotValidException(MethodArgumentNotValidException e) + { + log.error(e.getMessage(), e); + String message = e.getBindingResult().getFieldError().getDefaultMessage(); + return AjaxResult.error(message); + } + /** + * 自定义验证异常 + */ + @ExceptionHandler(BindException.class) + public AjaxResult handleBindException(BindException e) + { + log.error(e.getMessage(), e); + String message = e.getAllErrors().get(0).getDefaultMessage(); + return AjaxResult.error(message); + } + /** + * 业务异常 + */ + @ExceptionHandler(ServiceException.class) + public AjaxResult handleServiceException(ServiceException e, HttpServletRequest request) + { + log.error(e.getMessage(), e); + Integer code = e.getCode(); + return StringUtils.isNotNull(code) ? AjaxResult.error(code, e.getMessage()) : AjaxResult.error(e.getMessage()); + } + + + + @ExceptionHandler(BaseException.class) + public AjaxResult handleBaseException(BaseException e, HttpServletRequest request) { + log.error("请求地址'{}',发生未知异常.", request.getRequestURI(), e); + return AjaxResult.error(e.getMessage(), e.getCode()); + } + + /** + * 演示模式异常 + */ + @ExceptionHandler(DemoModeException.class) + public AjaxResult handleDemoModeException(DemoModeException e) + { + return AjaxResult.error("演示模式,不允许操作"); + } + + /** + * 拦截未知的运行时异常 + */ + @ExceptionHandler(RuntimeException.class) + public AjaxResult handleRuntimeException(RuntimeException e, HttpServletRequest request) + { + String requestURI = request.getRequestURI(); + log.error("请求地址'{}',发生未知异常.", requestURI, e); + return AjaxResult.error(e.getMessage()); + } + /** + * 系统异常 + */ + @ExceptionHandler(Exception.class) + public AjaxResult handleException(Exception e, HttpServletRequest request) + { + String requestURI = request.getRequestURI(); + log.error("请求地址'{}',发生系统异常.", requestURI, e); + return AjaxResult.error(e.getMessage()); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java new file mode 100644 index 0000000..68b1d69 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java @@ -0,0 +1,165 @@ +package com.ruoyi.framework.web.service; + +import java.util.Set; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; + +/** + * RuoYi首创 自定义权限实现,ss取自SpringSecurity首字母 + * + * @author ruoyi + */ +@Service("ss") +public class PermissionService +{ + /** 所有权限标识 */ + private static final String ALL_PERMISSION = "*:*:*"; + + /** 管理员角色权限标识 */ + private static final String SUPER_ADMIN = "admin"; + + private static final String ROLE_DELIMETER = ","; + + private static final String PERMISSION_DELIMETER = ","; + + /** + * 验证用户是否具备某权限 + * + * @param permission 权限字符串 + * @return 用户是否具备某权限 + */ + public boolean hasPermi(String permission) + { + if (StringUtils.isEmpty(permission)) + { + return false; + } + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getPermissions())) + { + return false; + } + return hasPermissions(loginUser.getPermissions(), permission); + } + + /** + * 验证用户是否不具备某权限,与 hasPermi逻辑相反 + * + * @param permission 权限字符串 + * @return 用户是否不具备某权限 + */ + public boolean lacksPermi(String permission) + { + return hasPermi(permission) != true; + } + + /** + * 验证用户是否具有以下任意一个权限 + * + * @param permissions 以 PERMISSION_NAMES_DELIMETER 为分隔符的权限列表 + * @return 用户是否具有以下任意一个权限 + */ + public boolean hasAnyPermi(String permissions) + { + if (StringUtils.isEmpty(permissions)) + { + return false; + } + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getPermissions())) + { + return false; + } + Set authorities = loginUser.getPermissions(); + for (String permission : permissions.split(PERMISSION_DELIMETER)) + { + if (permission != null && hasPermissions(authorities, permission)) + { + return true; + } + } + return false; + } + + /** + * 判断用户是否拥有某个角色 + * + * @param role 角色字符串 + * @return 用户是否具备某角色 + */ + public boolean hasRole(String role) + { + if (StringUtils.isEmpty(role)) + { + return false; + } + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getUser().getRoles())) + { + return false; + } + for (SysRole sysRole : loginUser.getUser().getRoles()) + { + String roleKey = sysRole.getRoleKey(); + if (SUPER_ADMIN.equals(roleKey) || roleKey.equals(StringUtils.trim(role))) + { + return true; + } + } + return false; + } + + /** + * 验证用户是否不具备某角色,与 isRole逻辑相反。 + * + * @param role 角色名称 + * @return 用户是否不具备某角色 + */ + public boolean lacksRole(String role) + { + return hasRole(role) != true; + } + + /** + * 验证用户是否具有以下任意一个角色 + * + * @param roles 以 ROLE_NAMES_DELIMETER 为分隔符的角色列表 + * @return 用户是否具有以下任意一个角色 + */ + public boolean hasAnyRoles(String roles) + { + if (StringUtils.isEmpty(roles)) + { + return false; + } + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getUser().getRoles())) + { + return false; + } + for (String role : roles.split(ROLE_DELIMETER)) + { + if (hasRole(role)) + { + return true; + } + } + return false; + } + + /** + * 判断是否包含权限 + * + * @param permissions 权限列表 + * @param permission 权限字符串 + * @return 用户是否具备某权限 + */ + private boolean hasPermissions(Set permissions, String permission) + { + return permissions.contains(ALL_PERMISSION) || permissions.contains(StringUtils.trim(permission)); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java new file mode 100644 index 0000000..2198fba --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -0,0 +1,228 @@ +package com.ruoyi.framework.web.service; + +import cn.hutool.core.util.RandomUtil; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.ExtraUserBody; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.exception.user.CaptchaException; +import com.ruoyi.common.exception.user.CaptchaExpireException; +import com.ruoyi.common.exception.user.UserException; +import com.ruoyi.common.exception.user.UserPasswordNotMatchException; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.MessageUtils; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.ip.IpUtils; +import com.ruoyi.framework.manager.AsyncManager; +import com.ruoyi.framework.manager.factory.AsyncFactory; +import com.ruoyi.system.service.ISysConfigService; +import com.ruoyi.system.service.ISysRoleService; +import com.ruoyi.system.service.ISysUserService; +import com.ruoyi.system.service.PhoneCodeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.authentication.BadCredentialsException; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.Collections; +import java.util.Date; +import java.util.List; + +/** + * 登录校验方法 + * + * @author ruoyi + */ +@Component +public class SysLoginService { + @Autowired + private TokenService tokenService; + @Resource + private AuthenticationManager authenticationManager; + @Autowired + private RedisCache redisCache; + @Autowired + private ISysUserService userService; + @Autowired + private ISysConfigService configService; + @Autowired + private PhoneCodeService phoneCodeService; + @Autowired + private SysPermissionService permissionService; + @Autowired + private ISysRoleService sysRoleService; + + /** + * 登录验证 + * + * @param username 用户名 + * @param password 密码 + * @param code 验证码 + * @param uuid 唯一标识 + * @return 结果 + */ + public String login(String username, String password, String code, String uuid) { + boolean captchaOnOff = configService.selectCaptchaOnOff(); + // 验证码开关 + if (captchaOnOff) { + validateCaptcha(username, code, uuid); + } + // 用户验证 + Authentication authentication = null; + try { + // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername + authentication = authenticationManager + .authenticate(new UsernamePasswordAuthenticationToken(username, password)); + } + catch (Exception e) + { + if (e instanceof BadCredentialsException) + { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match"))); + throw new UserPasswordNotMatchException(); + } + else + { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage())); + throw new ServiceException(e.getMessage()); + } + } + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); + LoginUser loginUser = (LoginUser) authentication.getPrincipal(); + recordLoginInfo(loginUser.getUser()); + // 生成token + return tokenService.createToken(loginUser); + } + + + public LoginUser loginH5(String username, String password, String uuid) { + // 用户验证 + Authentication authentication = null; + try { + // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername + authentication = authenticationManager + .authenticate(new UsernamePasswordAuthenticationToken(username, password)); + } + catch (Exception e) + { + if (e instanceof BadCredentialsException) + { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match"))); + throw new UserPasswordNotMatchException(); + } + else + { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage())); + throw new ServiceException(e.getMessage()); + } + } + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); + LoginUser loginUser = (LoginUser) authentication.getPrincipal(); + + return loginUser; + } + + /** + * 校验验证码 + * + * @param username 用户名 + * @param code 验证码 + * @param uuid 唯一标识 + * @return 结果 + */ + public void validateCaptcha(String username, String code, String uuid) + { + String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; + String captcha = redisCache.getCacheObject(verifyKey); + redisCache.deleteObject(verifyKey); + if (captcha == null) + { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"))); + throw new CaptchaExpireException(); + } + if (!code.equalsIgnoreCase(captcha)) + { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"))); + throw new CaptchaException(); + } + } + + /** + * 记录登录信息 + */ + public void recordLoginInfo(SysUser user) { + user.setLoginIp(IpUtils.getIpAddr(ServletUtils.getRequest())); + user.setLoginDate(DateUtils.getNowDate()); + userService.updateUserProfile(user); + } + + public SysUser phoneLogin(String phone, String code, String uuid) { + // 校验数据 + // if (!phoneCodeService.validCode(uuid, phone, code)) { + // throw new GlobalException("校验失败"); + // } + SysUser user = userService.selectUserByUserName(phone); + // TODO 内测版,只要电话号码对的上就行 + if (user == null) { + throw new UserException("user.password.not.match", null); + } + SysRole vipRole = sysRoleService.selectRoleByKey("vip"); + // 如果用户不存在,则创建用户,赋予权限 + if (user == null) { + user = new SysUser(); + user.setUserName(phone); + user.setNickName("love_" + RandomUtil.randomNumbers(6)); + user.setPhonenumber(phone); + user.setPassword(SecurityUtils.encryptPassword(RandomUtil.randomString(32))); + boolean regFlag = userService.registerUser(user); + // 增加用户的权限,绑定角色 + sysRoleService.insertAuthUsers(vipRole.getRoleId(), new Long[]{user.getUserId()}); + } else { + // 查询用户是否具有会员角色,如果没有绑定 + List roles = sysRoleService.selectRoleListByUserId(user.getUserId()); + Integer roleId = vipRole.getRoleId().intValue(); + if (!roles.contains(roleId)) { + sysRoleService.insertAuthUsers(vipRole.getRoleId(), new Long[]{user.getUserId()}); + } + } + AsyncManager.me().execute(AsyncFactory.recordLogininfor(phone, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); + recordLoginInfo(user); + return user; + } + + public SysUser initVipUser(ExtraUserBody body) { + Date now = new Date(); + SysUser user = new SysUser(); + user.setNickName(body.getNickname()); + user.setUserName(body.getLogin()); + user.setAvatar(body.getAvatar()); + user.setLoginDate(now); + user.setPassword(SecurityUtils.encryptPassword(RandomUtil.randomString(16))); + + // 注册用户 + userService.registerUser(user); + + // 赋予角色 + SysRole role = sysRoleService.selectRoleByKey("common"); + // 增加用户的权限,绑定角色 + sysRoleService.insertAuthUsers(role.getRoleId(), new Long[]{user.getUserId()}); + + AsyncManager.me().execute(AsyncFactory.recordLogininfor(body.getLogin(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.register.success"))); + recordLoginInfo(user); + user.setRoles(Collections.singletonList(role)); + return user; + } + + public String createToken(SysUser user) { + LoginUser loginUser = new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user)); + return tokenService.createToken(loginUser); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPermissionService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPermissionService.java new file mode 100644 index 0000000..feb8038 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPermissionService.java @@ -0,0 +1,66 @@ +package com.ruoyi.framework.web.service; + +import java.util.HashSet; +import java.util.Set; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.system.service.ISysMenuService; +import com.ruoyi.system.service.ISysRoleService; + +/** + * 用户权限处理 + * + * @author ruoyi + */ +@Component +public class SysPermissionService +{ + @Autowired + private ISysRoleService roleService; + + @Autowired + private ISysMenuService menuService; + + /** + * 获取角色数据权限 + * + * @param user 用户信息 + * @return 角色权限信息 + */ + public Set getRolePermission(SysUser user) + { + Set roles = new HashSet(); + // 管理员拥有所有权限 + if (user.isAdmin()) + { + roles.add("admin"); + } + else + { + roles.addAll(roleService.selectRolePermissionByUserId(user.getUserId())); + } + return roles; + } + + /** + * 获取菜单数据权限 + * + * @param user 用户信息 + * @return 菜单权限信息 + */ + public Set getMenuPermission(SysUser user) + { + Set perms = new HashSet(); + // 管理员拥有所有权限 + if (user.isAdmin()) + { + perms.add("*:*:*"); + } + else + { + perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId())); + } + return perms; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java new file mode 100644 index 0000000..088c1f3 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java @@ -0,0 +1,117 @@ +package com.ruoyi.framework.web.service; + +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.RegisterBody; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.exception.user.CaptchaException; +import com.ruoyi.common.exception.user.CaptchaExpireException; +import com.ruoyi.common.utils.MessageUtils; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.framework.manager.AsyncManager; +import com.ruoyi.framework.manager.factory.AsyncFactory; +import com.ruoyi.system.service.ISysConfigService; +import com.ruoyi.system.service.ISysUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; + +/** + * 注册校验方法 + * + * @author ruoyi + */ +@Component +public class SysRegisterService +{ + @Autowired + private ISysUserService userService; + + @Autowired + private ISysConfigService configService; + + @Autowired + private RedisCache redisCache; + + /** + * 注册 + */ + public String register(RegisterBody registerBody) + { + String msg = "", username = registerBody.getUsername(), password = registerBody.getPassword(); + + boolean captchaOnOff = configService.selectCaptchaOnOff(); + // 验证码开关 + if (captchaOnOff) + { + validateCaptcha(username, registerBody.getCode(), registerBody.getUuid()); + } + + if (StringUtils.isEmpty(username)) + { + msg = "用户名不能为空"; + } + else if (StringUtils.isEmpty(password)) + { + msg = "用户密码不能为空"; + } + else if (username.length() < UserConstants.USERNAME_MIN_LENGTH + || username.length() > UserConstants.USERNAME_MAX_LENGTH) + { + msg = "账户长度必须在2到20个字符之间"; + } + else if (password.length() < UserConstants.PASSWORD_MIN_LENGTH + || password.length() > UserConstants.PASSWORD_MAX_LENGTH) + { + msg = "密码长度必须在5到20个字符之间"; + } else if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(username))) { + msg = "保存用户'" + username + "'失败,注册账号已存在"; + } else { + try { + register(username, "", "", registerBody.getPassword()); + } catch (Exception e) { + msg = e.getMessage(); + } + } + return msg; + } + + public SysUser register(String username, String nickname, String phone, String password) { + SysUser sysUser = new SysUser(); + sysUser.setUserName(username); + sysUser.setNickName(nickname); + sysUser.setPhonenumber(phone); + sysUser.setPassword(SecurityUtils.encryptPassword(password)); + boolean regFlag = userService.registerUser(sysUser); + if (!regFlag) { + throw new RuntimeException("注册失败,请联系系统管理人员"); + } + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.REGISTER, + MessageUtils.message("user.register.success"))); + return sysUser; + } + + /** + * 校验验证码 + * + * @param username 用户名 + * @param code 验证码 + * @param uuid 唯一标识 + * @return 结果 + */ + public void validateCaptcha(String username, String code, String uuid) + { + String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; + String captcha = redisCache.getCacheObject(verifyKey); + redisCache.deleteObject(verifyKey); + if (captcha == null) + { + throw new CaptchaExpireException(); + } + if (!code.equalsIgnoreCase(captcha)) + { + throw new CaptchaException(); + } + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java new file mode 100644 index 0000000..844f779 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java @@ -0,0 +1,272 @@ +package com.ruoyi.framework.web.service; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; +import javax.servlet.http.HttpServletRequest; + +import com.ruoyi.common.core.domain.model.LoginMember; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.ip.AddressUtils; +import com.ruoyi.common.utils.ip.IpUtils; +import com.ruoyi.common.utils.uuid.IdUtils; +import eu.bitwalker.useragentutils.UserAgent; +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; + +/** + * token验证处理 + * + * @author ruoyi + */ +@Component +public class TokenService +{ + // 令牌自定义标识 + @Value("${token.header}") + private String header; + + // 令牌秘钥 + @Value("${token.secret}") + private String secret; + + // 令牌有效期(默认30分钟) + @Value("${token.expireTime}") + private int expireTime; + + //单位 天 + @Value("${token.memberExpireTime}") + private int memberExpireTime; + + protected static final long MILLIS_SECOND = 1000; + + protected static final long MILLIS_MINUTE = 60 * MILLIS_SECOND; + + private static final Long MILLIS_MINUTE_TEN = 20 * 60 * 1000L; + + @Autowired + private RedisCache redisCache; + + /** + * 获取用户身份信息 + * + * @return 用户信息 + */ + public LoginUser getLoginUser(HttpServletRequest request) + { + // 获取请求携带的令牌 + String token = getToken(request); + if (StringUtils.isNotEmpty(token)) + { + try + { + Claims claims = parseToken(token); + // 解析对应的权限以及用户信息 + String uuid = (String) claims.get(Constants.LOGIN_USER_KEY); + String userKey = getTokenKey(uuid); + LoginUser user = redisCache.getCacheObject(userKey); + return user; + } + catch (Exception e) + { + } + } + return null; + } + + public LoginMember getLoginMember(HttpServletRequest request) { + // 获取请求携带的令牌 + String token = getToken(request); + if (StringUtils.isNotEmpty(token)) { + try { + Claims claims = parseToken(token); + // 解析对应的权限以及用户信息 + String uuid = (String) claims.get(Constants.LOGIN_MEMBER_KEY); + String userKey = Constants.LOGIN_MEMBER_TOKEN_KEY + uuid; + return redisCache.getCacheObject(userKey); + } catch (Exception e) { + } + } + return null; + } + + /** + * 设置用户身份信息 + */ + public void setLoginUser(LoginUser loginUser) + { + if (StringUtils.isNotNull(loginUser) && StringUtils.isNotEmpty(loginUser.getToken())) + { + refreshToken(loginUser); + } + } + + /** + * 删除用户身份信息 + */ + public void delLoginUser(String token) + { + if (StringUtils.isNotEmpty(token)) + { + String userKey = getTokenKey(token); + redisCache.deleteObject(userKey); + } + } + + /** + * 创建令牌 + * + * @param loginUser 用户信息 + * @return 令牌 + */ + public String createToken(LoginUser loginUser) + { + String token = IdUtils.fastUUID(); + loginUser.setToken(token); + setUserAgent(loginUser); + refreshToken(loginUser); + + Map claims = new HashMap<>(); + claims.put(Constants.LOGIN_USER_KEY, token); + return createToken(claims); + } + + public String createMemberToken(LoginMember loginMember){ + String token = IdUtils.fastUUID(); + loginMember.setToken(token); + refreshMemberToken(loginMember); + Map claims = new HashMap<>(); + claims.put(Constants.LOGIN_MEMBER_KEY, token); + return createToken(claims); + } + + /** + * 验证令牌有效期,相差不足20分钟,自动刷新缓存 + * + * @param loginUser + * @return 令牌 + */ + public void verifyToken(LoginUser loginUser) + { + long expireTime = loginUser.getExpireTime(); + long currentTime = System.currentTimeMillis(); + if (expireTime - currentTime <= MILLIS_MINUTE_TEN) + { + refreshToken(loginUser); + } + } + + public void verifyMemberToken(LoginMember loginUser) { + long expireTime = loginUser.getExpireTime(); + long currentTime = System.currentTimeMillis(); + if (expireTime - currentTime <= MILLIS_MINUTE_TEN) { + refreshMemberToken(loginUser); + } + } + + /** + * 刷新令牌有效期 + * + * @param loginUser 登录信息 + */ + public void refreshToken(LoginUser loginUser) + { + loginUser.setLoginTime(System.currentTimeMillis()); + loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE); + // 根据uuid将loginUser缓存 + String userKey = getTokenKey(loginUser.getToken()); + redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES); + } + + public void refreshMemberToken(LoginMember loginUser) { + loginUser.setLoginTime(System.currentTimeMillis()); + loginUser.setExpireTime(loginUser.getLoginTime() + memberExpireTime * 24 * 60 * MILLIS_MINUTE); + // 根据uuid将loginUser缓存 + String userKey = Constants.LOGIN_MEMBER_TOKEN_KEY + loginUser.getToken(); + redisCache.setCacheObject(userKey, loginUser, memberExpireTime, TimeUnit.DAYS); + } + + /** + * 设置用户代理信息 + * + * @param loginUser 登录信息 + */ + public void setUserAgent(LoginUser loginUser) + { + UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent")); + String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); + loginUser.setIpaddr(ip); + loginUser.setLoginLocation(AddressUtils.getRealAddressByIP(ip)); + loginUser.setBrowser(userAgent.getBrowser().getName()); + loginUser.setOs(userAgent.getOperatingSystem().getName()); + } + + /** + * 从数据声明生成令牌 + * + * @param claims 数据声明 + * @return 令牌 + */ + private String createToken(Map claims) + { + String token = Jwts.builder() + .setClaims(claims) + .signWith(SignatureAlgorithm.HS512, secret).compact(); + return token; + } + + /** + * 从令牌中获取数据声明 + * + * @param token 令牌 + * @return 数据声明 + */ + private Claims parseToken(String token) + { + return Jwts.parser() + .setSigningKey(secret) + .parseClaimsJws(token) + .getBody(); + } + + /** + * 从令牌中获取用户名 + * + * @param token 令牌 + * @return 用户名 + */ + public String getUsernameFromToken(String token) + { + Claims claims = parseToken(token); + return claims.getSubject(); + } + + /** + * 获取请求token + * + * @param request + * @return token + */ + private String getToken(HttpServletRequest request) + { + String token = request.getHeader(header); + if (StringUtils.isNotEmpty(token) && token.startsWith(Constants.TOKEN_PREFIX)) + { + token = token.replace(Constants.TOKEN_PREFIX, ""); + } + return token; + } + + private String getTokenKey(String uuid) + { + return Constants.LOGIN_TOKEN_KEY + uuid; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java new file mode 100644 index 0000000..c8b1c7b --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java @@ -0,0 +1,60 @@ +package com.ruoyi.framework.web.service; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.stereotype.Service; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.enums.UserStatus; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.service.ISysUserService; + +/** + * 用户验证处理 + * + * @author ruoyi + */ +@Service +public class UserDetailsServiceImpl implements UserDetailsService +{ + private static final Logger log = LoggerFactory.getLogger(UserDetailsServiceImpl.class); + + @Autowired + private ISysUserService userService; + + @Autowired + private SysPermissionService permissionService; + + @Override + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException + { + SysUser user = userService.selectUserByUserName(username); + if (StringUtils.isNull(user)) + { + log.info("登录用户:{} 不存在.", username); + throw new ServiceException("登录用户:" + username + " 不存在"); + } + else if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) + { + log.info("登录用户:{} 已被删除.", username); + throw new ServiceException("对不起,您的账号:" + username + " 已被删除"); + } + else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) + { + log.info("登录用户:{} 已被停用.", username); + throw new ServiceException("对不起,您的账号:" + username + " 已停用"); + } + + return createLoginUser(user); + } + + public UserDetails createLoginUser(SysUser user) + { + return new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user)); + } +} diff --git a/ruoyi-generator/.DS_Store b/ruoyi-generator/.DS_Store new file mode 100644 index 0000000..b6f0902 Binary files /dev/null and b/ruoyi-generator/.DS_Store differ diff --git a/ruoyi-generator/pom.xml b/ruoyi-generator/pom.xml new file mode 100644 index 0000000..0097973 --- /dev/null +++ b/ruoyi-generator/pom.xml @@ -0,0 +1,83 @@ + + + + ruoyi + com.ruoyi + 3.7.0 + + 4.0.0 + + ruoyi-generator + + + generator代码生成 + + + + + + + org.apache.velocity + velocity + + + + + commons-collections + commons-collections + + + cn.hutool + hutool-all + + + + com.ruoyi + ruoyi-common + + + org.projectlombok + lombok + + + org.springframework.data + spring-data-commons + + + org.springframework.boot + spring-boot-starter-test + 2.5.0 + test + + + com.h2database + h2 + test + + + org.junit.vintage + junit-vintage-engine + test + + + org.hamcrest + hamcrest-core + + + + + + mysql + mysql-connector-java + test + + + + org.mybatis.generator + mybatis-generator-core + 1.4.0 + + + diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/config/GenConfig.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/config/GenConfig.java new file mode 100644 index 0000000..7a6e7b1 --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/config/GenConfig.java @@ -0,0 +1,55 @@ +package com.ruoyi.generator.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +/** + * 读取代码生成相关配置 + * + * @author ruoyi + */ +@Data +@Component +@ConfigurationProperties(prefix = "gen", ignoreInvalidFields = true) +// @PropertySource(value = { "classpath:generator.yml" }), // 只能识别 key: value +public class GenConfig { + /**作者*/ + public String author; + + /**生成包路径*/ + public String packageName; + + /** 自动去除表前缀,默认是false */ + public boolean autoRemovePre; + + /** 表前缀(类名不会包含表前缀) */ + public String tablePrefix; + + /** 一级权限名 */ + public String rootPermission; + /** 模板根路径 */ + public String templateRootPath; + + /** 环境变量,可以在模板中使用 */ + private Map env; + /** 标准路径 */ + private Map path; + /** 模板,对应的生成路径 */ + private Map fileMap; + + /** 通用模板 */ + public List templates; + + /** 子模板 */ + public List subTemplates; + + /** 树模板 */ + public List treeTemplates; + + /** crud 模板 */ + public List crudTemplates; +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/config/GenPathConfig.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/config/GenPathConfig.java new file mode 100644 index 0000000..a7894c5 --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/config/GenPathConfig.java @@ -0,0 +1,27 @@ +package com.ruoyi.generator.config; + +import cn.hutool.core.util.StrUtil; +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "gen.path") +public class GenPathConfig { + private String backPath; + private String serviceModule; + private String apiModule; + private String frontPath; + private String sql; + private String frontApiPath; + private String frontViewPath; + + public void setBackPath(String backPath) { + if (StrUtil.isEmpty(backPath)) { + this.backPath = System.getProperty("user.dir"); + } else { + this.backPath = backPath; + } + } +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/constant/ProjectPathConstant.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/constant/ProjectPathConstant.java new file mode 100644 index 0000000..c5f912d --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/constant/ProjectPathConstant.java @@ -0,0 +1,19 @@ +package com.ruoyi.generator.constant; + +public interface ProjectPathConstant { + String MAIN_JAVA = "MAIN_JAVA"; + String MAIN_RESOURCES = "MAIN_RESOURCES"; + String TEST_JAVA = "TEST_JAVA"; + String TEST_RESOURCES = "TEST_RESOURCES"; + + String MAIN_JAVA_VALUE = "src/main/java"; + String MAIN_RESOURCES_VALUE = "src/main/resources"; + String TEST_JAVA_VALUE = "src/test/java"; + String TEST_RESOURCES_VALUE = "src/test/resources"; + + String DOMAIN = "domain"; + String VO = "vo"; + String DTO = "dto"; + String QUERY = "query"; + String EXAMPLE = "example"; +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java new file mode 100644 index 0000000..11f7d34 --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java @@ -0,0 +1,216 @@ +package com.ruoyi.generator.controller; + +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.common.utils.SecurityUtils; +import org.apache.commons.io.IOUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.generator.domain.GenTable; +import com.ruoyi.generator.domain.GenTableColumn; +import com.ruoyi.generator.service.IGenTableColumnService; +import com.ruoyi.generator.service.IGenTableService; + +/** + * 代码生成 操作处理 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/tool/gen") +public class GenController extends BaseController +{ + @Autowired + private IGenTableService genTableService; + + @Autowired + private IGenTableColumnService genTableColumnService; + + /** + * 查询代码生成列表 + */ + @PreAuthorize("@ss.hasPermi('tool:gen:list')") + @GetMapping("/list") + public TableDataInfo genList(GenTable genTable) + { + startPage(); + List list = genTableService.selectGenTableList(genTable); + return getDataTable(list); + } + + /** + * 修改代码生成业务 + */ + @PreAuthorize("@ss.hasPermi('tool:gen:query')") + @GetMapping(value = "/{talbleId}") + public AjaxResult getInfo(@PathVariable Long talbleId) + { + GenTable table = genTableService.selectGenTableById(talbleId); + List tables = genTableService.selectGenTableAll(); + List list = genTableColumnService.selectGenTableColumnListByTableId(talbleId); + Map map = new HashMap(); + map.put("info", table); + map.put("rows", list); + map.put("tables", tables); + return AjaxResult.success(map); + } + + /** + * 查询数据库列表 + */ + @PreAuthorize("@ss.hasPermi('tool:gen:list')") + @GetMapping("/db/list") + public TableDataInfo dataList(GenTable genTable) + { + startPage(); + List list = genTableService.selectDbTableList(genTable); + return getDataTable(list); + } + + /** + * 查询数据表字段列表 + */ + @PreAuthorize("@ss.hasPermi('tool:gen:list')") + @GetMapping(value = "/column/{talbleId}") + public TableDataInfo columnList(Long tableId) + { + TableDataInfo dataInfo = new TableDataInfo(); + List list = genTableColumnService.selectGenTableColumnListByTableId(tableId); + dataInfo.setRows(list); + dataInfo.setTotal(list.size()); + return dataInfo; + } + + /** + * 导入表结构(保存) + */ + @PreAuthorize("@ss.hasPermi('tool:gen:import')") + @Log(title = "代码生成", businessType = BusinessType.IMPORT) + @PostMapping("/importTable") + public AjaxResult importTableSave(String tables) + { + String[] tableNames = Convert.toStrArray(tables); + // 查询表信息 + List tableList = genTableService.selectDbTableListByNames(tableNames); + genTableService.importGenTable(tableList, SecurityUtils.getUserId()); + return AjaxResult.success(); + } + + /** + * 修改保存代码生成业务 + */ + @PreAuthorize("@ss.hasPermi('tool:gen:edit')") + @Log(title = "代码生成", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult editSave(@Validated @RequestBody GenTable genTable) + { + genTableService.validateEdit(genTable); + genTableService.updateGenTable(genTable); + return AjaxResult.success(); + } + + /** + * 删除代码生成 + */ + @PreAuthorize("@ss.hasPermi('tool:gen:remove')") + @Log(title = "代码生成", businessType = BusinessType.DELETE) + @DeleteMapping("/{tableIds}") + public AjaxResult remove(@PathVariable Long[] tableIds) + { + genTableService.deleteGenTableByIds(tableIds); + return AjaxResult.success(); + } + + /** + * 预览代码 + */ + @PreAuthorize("@ss.hasPermi('tool:gen:preview')") + @GetMapping("/preview/{tableId}") + public AjaxResult preview(@PathVariable("tableId") Long tableId) throws IOException + { + Map dataMap = genTableService.previewCode(tableId); + return AjaxResult.success(dataMap); + } + + /** + * 生成代码(下载方式) + */ + @PreAuthorize("@ss.hasPermi('tool:gen:code')") + @Log(title = "代码生成", businessType = BusinessType.GENCODE) + @GetMapping("/download/{tableName}") + public void download(HttpServletResponse response, @PathVariable("tableName") String tableName) throws IOException + { + byte[] data = genTableService.downloadCode(tableName); + genCode(response, data); + } + + /** + * 生成代码(自定义路径) + */ + @PreAuthorize("@ss.hasPermi('tool:gen:code')") + @Log(title = "代码生成", businessType = BusinessType.GENCODE) + @GetMapping("/genCode/{tableName}") + public AjaxResult genCode(@PathVariable("tableName") String tableName) + { + genTableService.generatorCode(tableName); + return AjaxResult.success(); + } + + /** + * 同步数据库 + */ + @PreAuthorize("@ss.hasPermi('tool:gen:edit')") + @Log(title = "代码生成", businessType = BusinessType.UPDATE) + @GetMapping("/synchDb/{tableName}") + public AjaxResult synchDb(@PathVariable("tableName") String tableName) + { + genTableService.synchDb(tableName); + return AjaxResult.success(); + } + + /** + * 批量生成代码 + */ + @PreAuthorize("@ss.hasPermi('tool:gen:code')") + @Log(title = "代码生成", businessType = BusinessType.GENCODE) + @GetMapping("/batchGenCode") + public void batchGenCode(HttpServletResponse response, String tables) throws IOException + { + String[] tableNames = Convert.toStrArray(tables); + byte[] data = genTableService.downloadCode(tableNames); + genCode(response, data); + } + + /** + * 生成zip文件 + */ + private void genCode(HttpServletResponse response, byte[] data) throws IOException + { + response.reset(); + response.addHeader("Access-Control-Allow-Origin", "*"); + response.addHeader("Access-Control-Expose-Headers", "Content-Disposition"); + response.setHeader("Content-Disposition", "attachment; filename=\"ruoyi.zip\""); + response.addHeader("Content-Length", "" + data.length); + response.setContentType("application/octet-stream; charset=UTF-8"); + IOUtils.write(data, response.getOutputStream()); + } +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java new file mode 100644 index 0000000..665994f --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java @@ -0,0 +1,441 @@ +package com.ruoyi.generator.domain; + +import cn.hutool.core.util.StrUtil; +import com.ruoyi.common.constant.GenConstants; +import com.ruoyi.common.core.domain.BaseEntity; +import com.ruoyi.common.core.mybatis.MybatisId; +import com.ruoyi.common.utils.StringUtils; +import org.apache.commons.lang3.ArrayUtils; + +import javax.validation.Valid; +import javax.validation.constraints.NotBlank; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * 业务表 gen_table + * + * @author ruoyi + */ +public class GenTable extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 编号 */ + @MybatisId + private Long tableId; + + /** 表名称 */ + @NotBlank(message = "表名称不能为空") + private String tableName; + + /** 表描述 */ + @NotBlank(message = "表描述不能为空") + private String tableComment; + + /** 关联父表的表名 */ + private String subTableName; + + /** 本表关联父表的外键名 */ + private String subTableFkName; + + /** 实体类名称(首字母大写) */ + @NotBlank(message = "实体类名称不能为空") + private String className; + + /** 使用的模板(crud单表操作 tree树表操作 sub主子表操作) */ + private String tplCategory; + + /** 生成包路径 */ + @NotBlank(message = "生成包路径不能为空") + private String packageName; + + /** 生成模块名 */ + @NotBlank(message = "生成模块名不能为空") + private String moduleName; + + /** 生成业务名 */ + @NotBlank(message = "生成业务名不能为空") + private String businessName; + + /** 生成功能名 */ + @NotBlank(message = "生成功能名不能为空") + private String functionName; + + /** 生成作者 */ + @NotBlank(message = "作者不能为空") + private String functionAuthor; + + /** 生成代码方式(0zip压缩包 1自定义路径) */ + private String genType; + + /** 生成路径(不填默认项目路径) */ + private String genPath; + + /** 主键信息 */ + private GenTableColumn pkColumn; + + /** 子表信息 */ + private GenTable subTable; + + /** 表列信息 */ + @Valid + private List columns; + + /** 其它生成选项 */ + private String options; + + /** 树编码字段 */ + private String treeCode; + + /** 树父编码字段 */ + private String treeParentCode; + + /** 树名称字段 */ + private String treeName; + + /** 上级菜单ID字段 */ + private String parentMenuId; + + /** 上级菜单名称字段 */ + private String parentMenuName; + + /** 是否是审计表 */ + private Integer audit; + + public Integer getAudit() { + if (this.audit == null) { + this.audit = calcAudit(); + } + return audit; + } + + private int calcAudit() { + if (this.columns == null) { + return 0; + } + return ( + this.columns.stream().anyMatch(it -> StrUtil.equalsIgnoreCase(it.getColumnName(), "create_time") && StrUtil.startWithIgnoreCase(it.getColumnType(), "datetime")) + && this.columns.stream().anyMatch(it -> StrUtil.equalsIgnoreCase(it.getColumnName(), "update_time") && StrUtil.startWithIgnoreCase(it.getColumnType(), "datetime")) + && this.columns.stream().anyMatch(it -> StrUtil.equalsIgnoreCase(it.getColumnName(), "create_by") && StrUtil.startWithIgnoreCase(it.getColumnType(), "bigint")) + && this.columns.stream().anyMatch(it -> StrUtil.equalsIgnoreCase(it.getColumnName(), "update_by") && StrUtil.startWithIgnoreCase(it.getColumnType(), "bigint")) + ? 1 : 0 + ); + } + + /** + * 有省市区 + * + * @return 是否有 + */ + public boolean hasPct() { + if (this.columns == null) { + return false; + } + return this.columns.stream().anyMatch(it -> StrUtil.equalsIgnoreCase(it.getJavaField(), "provinceId")) + && this.columns.stream().anyMatch(it -> StrUtil.equalsIgnoreCase(it.getJavaField(), "cityId")) + && this.columns.stream().anyMatch(it -> StrUtil.equalsIgnoreCase(it.getJavaField(), "townId")); + } + + public boolean hasRichText() { + if (this.columns == null) { + return false; + + } + return this.columns.stream().anyMatch(it -> Objects.equals(it.getHtmlType(), "editor")); + } + + public void setAudit(Integer audit) { + this.audit = audit; + } + + public Long getTableId() + { + return tableId; + } + + public void setTableId(Long tableId) + { + this.tableId = tableId; + } + + public String getTableName() + { + return tableName; + } + + public void setTableName(String tableName) + { + this.tableName = tableName; + } + + public String getTableComment() + { + return tableComment; + } + + public void setTableComment(String tableComment) + { + this.tableComment = tableComment; + } + + public String getSubTableName() + { + return subTableName; + } + + public void setSubTableName(String subTableName) + { + this.subTableName = subTableName; + } + + public String getSubTableFkName() + { + return subTableFkName; + } + + public void setSubTableFkName(String subTableFkName) + { + this.subTableFkName = subTableFkName; + } + + public String getClassName() + { + return className; + } + + public void setClassName(String className) + { + this.className = className; + } + + public String getTplCategory() + { + return tplCategory; + } + + public void setTplCategory(String tplCategory) + { + this.tplCategory = tplCategory; + } + + public String getPackageName() + { + return packageName; + } + + public void setPackageName(String packageName) + { + this.packageName = packageName; + } + + public String getModuleName() + { + return moduleName; + } + + public void setModuleName(String moduleName) + { + this.moduleName = moduleName; + } + + public String getBusinessName() + { + return businessName; + } + + public void setBusinessName(String businessName) + { + this.businessName = businessName; + } + + public String getFunctionName() + { + return functionName; + } + + public void setFunctionName(String functionName) + { + this.functionName = functionName; + } + + public String getFunctionAuthor() + { + return functionAuthor; + } + + public void setFunctionAuthor(String functionAuthor) + { + this.functionAuthor = functionAuthor; + } + + public String getGenType() + { + return genType; + } + + public void setGenType(String genType) + { + this.genType = genType; + } + + public String getGenPath() + { + return genPath; + } + + public void setGenPath(String genPath) + { + this.genPath = genPath; + } + + public GenTableColumn getPkColumn() + { + return pkColumn; + } + + public void setPkColumn(GenTableColumn pkColumn) + { + this.pkColumn = pkColumn; + } + + public GenTable getSubTable() + { + return subTable; + } + + public void setSubTable(GenTable subTable) + { + this.subTable = subTable; + } + + public List getColumns() + { + return columns; + } + + public void setColumns(List columns) + { + this.columns = columns; + } + + public String getOptions() + { + return options; + } + + public void setOptions(String options) + { + this.options = options; + } + + public String getTreeCode() + { + return treeCode; + } + + public void setTreeCode(String treeCode) + { + this.treeCode = treeCode; + } + + public String getTreeParentCode() + { + return treeParentCode; + } + + public void setTreeParentCode(String treeParentCode) + { + this.treeParentCode = treeParentCode; + } + + public String getTreeName() + { + return treeName; + } + + public void setTreeName(String treeName) + { + this.treeName = treeName; + } + + public String getParentMenuId() + { + return parentMenuId; + } + + public void setParentMenuId(String parentMenuId) + { + this.parentMenuId = parentMenuId; + } + + public String getParentMenuName() + { + return parentMenuName; + } + + public void setParentMenuName(String parentMenuName) + { + this.parentMenuName = parentMenuName; + } + + public boolean isSub() + { + return isSub(this.tplCategory); + } + + public static boolean isSub(String tplCategory) + { + return tplCategory != null && StringUtils.equals(GenConstants.TPL_SUB, tplCategory); + } + + public boolean isTree() + { + return isTree(this.tplCategory); + } + + public static boolean isTree(String tplCategory) + { + return tplCategory != null && StringUtils.equals(GenConstants.TPL_TREE, tplCategory); + } + + public boolean isCrud() + { + return isCrud(this.tplCategory); + } + + public static boolean isCrud(String tplCategory) + { + return tplCategory != null && StringUtils.equals(GenConstants.TPL_CRUD, tplCategory); + } + + public boolean isSuperColumn(String javaField) + { + return isSuperColumn(this.tplCategory, javaField); + } + + public boolean isSuperColumn(String tplCategory, String javaField) + { + // 树节点 + if (isTree(tplCategory)) { + return StringUtils.equalsAnyIgnoreCase(javaField, + ArrayUtils.addAll(GenConstants.TREE_ENTITY, GenConstants.BASE_ENTITY)); + } + // 审计节点 + if (Objects.equals(getAudit(), 1)) { + return StringUtils.equalsAnyIgnoreCase(javaField, GenConstants.BASE_ENTITY); + } + return false; + } + + public boolean hasDate() { + return columns.stream().anyMatch(GenTableColumn::isDate); + } + + public List dateImports() { + return columns.stream().filter(GenTableColumn::isDate) + .map(it -> StrUtil.equals(it.getJavaType(), GenConstants.TYPE_DATE) ? "java.util.Date" : ("java.time." + it.getJavaType())) + .distinct().collect(Collectors.toList()); + } +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java new file mode 100644 index 0000000..aefdcbd --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java @@ -0,0 +1,425 @@ +package com.ruoyi.generator.domain; + +import cn.hutool.core.util.StrUtil; +import com.ruoyi.common.constant.GenConstants; +import com.ruoyi.common.core.domain.BaseEntity; +import com.ruoyi.common.core.mybatis.MybatisId; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.generator.util.GenUtils; + +import javax.validation.constraints.NotBlank; + +/** + * 代码生成业务字段表 gen_table_column + * + * @author ruoyi + */ +public class GenTableColumn extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 编号 + */ + @MybatisId + private Long columnId; + + /** + * 归属表编号 + */ + private Long tableId; + + /** + * 列名称 + */ + private String columnName; + + /** + * 列描述 + */ + private String columnComment; + + /** + * 列类型 + */ + private String columnType; + + /** + * JAVA类型 + */ + private String javaType; + + /** + * JAVA字段名 + */ + @NotBlank(message = "Java属性不能为空") + private String javaField; + + /** + * 是否主键(1是) + */ + private String isPk; + + /** + * 是否自增(1是) + */ + private String isIncrement; + + /** + * 是否必填(1是) + */ + private String isRequired; + + /** + * 是否为插入字段(1是) + */ + private String isInsert; + + /** + * 是否编辑字段(1是) + */ + private String isEdit; + + /** + * 是否列表字段(1是) + */ + private String isList; + + /** + * 是否查询字段(1是) + */ + private String isQuery; + + /** + * 查询方式(EQ等于、NE不等于、GT大于、LT小于、LIKE模糊、BETWEEN范围) + */ + private String queryType; + + /** + * 显示类型(input文本框、textarea文本域、select下拉框、checkbox复选框、radio单选框、datetime日期控件、image图片上传控件、upload文件上传控件、editor富文本控件) + */ + private String htmlType; + + /** + * 字典类型 + */ + private String dictType; + + /** + * 排序 + */ + private Integer sort; + + public void setColumnId(Long columnId) { + this.columnId = columnId; + } + + public Long getColumnId() { + return columnId; + } + + public void setTableId(Long tableId) { + this.tableId = tableId; + } + + public Long getTableId() { + return tableId; + } + + public void setColumnName(String columnName) { + this.columnName = columnName; + } + + public String getColumnName() { + return columnName; + } + + public void setColumnComment(String columnComment) { + this.columnComment = columnComment; + } + + public String getColumnComment() { + return columnComment; + } + + public void setColumnType(String columnType) { + this.columnType = columnType; + } + + public String getColumnType() { + return columnType; + } + + public String getCapColumnType() { + int index = columnType.indexOf(' '); + if (index == -1) { + index = columnType.indexOf('('); + } + String type; + if (index == -1) { + type = columnType.toUpperCase(); + } else { + type = columnType.substring(0, index).toUpperCase(); + } + if ("INT".equals(type)) { + return "INTEGER"; + } + if ("DATETIME".equals(type)) { + return "DATE"; + } + if (StrUtil.equalsAnyIgnoreCase(type, "TEXT", "JSON")) { + return "VARCHAR"; + } + return type; + } + + public boolean isPct() { + return StrUtil.equalsAnyIgnoreCase(this.getJavaField(), "provinceId", "cityId", "townId"); + } + + public void setJavaType(String javaType) { + this.javaType = javaType; + } + + public String getJavaType() { + return javaType; + } + + public void setJavaField(String javaField) { + this.javaField = javaField; + } + + public String getJavaField() { + return javaField; + } + + public String getCapJavaField() { + return StringUtils.capitalize(javaField); + } + + public String getQueryField() { + String suffix = GenUtils.queryType2Suffix.get(this.queryType); + return suffix == null ? "" : suffix; + } + + public String getQueryMethod() { + String suffix = GenUtils.queryType2Method.get(this.queryType); + return suffix == null ? "" : suffix; + } + + public void setIsPk(String isPk) { + this.isPk = isPk; + } + + public String getIsPk() { + return isPk; + } + + public boolean isPk() { + return isPk(this.isPk); + } + + public boolean isPk(String isPk) { + return isPk != null && StringUtils.equals("1", isPk); + } + + public String getIsIncrement() { + return isIncrement; + } + + public void setIsIncrement(String isIncrement) { + this.isIncrement = isIncrement; + } + + public boolean isIncrement() { + return isIncrement(this.isIncrement); + } + + public boolean isIncrement(String isIncrement) { + return isIncrement != null && StringUtils.equals("1", isIncrement); + } + + public void setIsRequired(String isRequired) { + this.isRequired = isRequired; + } + + public String getIsRequired() { + return isRequired; + } + + public boolean isRequired() { + return isRequired(this.isRequired); + } + + public boolean isRequired(String isRequired) { + return isRequired != null && StringUtils.equals("1", isRequired); + } + + public void setIsInsert(String isInsert) { + this.isInsert = isInsert; + } + + public String getIsInsert() { + return isInsert; + } + + public boolean isInsert() { + return isInsert(this.isInsert); + } + + public boolean isInsert(String isInsert) { + return isInsert != null && StringUtils.equals("1", isInsert); + } + + public void setIsEdit(String isEdit) { + this.isEdit = isEdit; + } + + public String getIsEdit() { + return isEdit; + } + + public boolean isEdit() { + return isInsert(this.isEdit); + } + + public boolean isEdit(String isEdit) { + return isEdit != null && StringUtils.equals("1", isEdit); + } + + public void setIsList(String isList) { + this.isList = isList; + } + + public String getIsList() { + return isList; + } + + public boolean isList() { + return isList(this.isList); + } + + public boolean isList(String isList) { + return isList != null && StringUtils.equals("1", isList); + } + + public void setIsQuery(String isQuery) { + this.isQuery = isQuery; + } + + public String getIsQuery() { + return isQuery; + } + + public boolean isQuery() { + return isQuery(this.isQuery); + } + + public boolean isQuery(String isQuery) { + return isQuery != null && StringUtils.equals("1", isQuery); + } + + public void setQueryType(String queryType) { + this.queryType = queryType; + } + + public String getQueryType() { + return queryType; + } + + public String getHtmlType() { + return htmlType; + } + + public void setHtmlType(String htmlType) { + this.htmlType = htmlType; + } + + public void setDictType(String dictType) { + this.dictType = dictType; + } + + public String getDictType() { + return dictType; + } + + public void setSort(Integer sort) { + this.sort = sort; + } + + public Integer getSort() { + return sort; + } + + public boolean isSuperColumn() { + return isSuperColumn(this.javaField); + } + + public static boolean isSuperColumn(String javaField) { + return StringUtils.equalsAnyIgnoreCase(javaField, + // BaseEntity + "createBy", "createTime", "updateBy", "updateTime", "remark", + // TreeEntity + "parentName", "parentId", "orderNum", "ancestors"); + } + + public boolean isUsableColumn() { + return isUsableColumn(javaField); + } + + public static boolean isUsableColumn(String javaField) { + // isSuperColumn()中的名单用于避免生成多余Domain属性,若某些属性在生成页面时需要用到不能忽略,则放在此处白名单 + return StringUtils.equalsAnyIgnoreCase(javaField, "parentId", "orderNum", "remark"); + } + + public String readConverterExp() { + String remarks = StringUtils.substringBetween(this.columnComment, "(", ")"); + StringBuffer sb = new StringBuffer(); + if (StringUtils.isNotEmpty(remarks)) { + for (String value : remarks.split(" ")) { + if (StringUtils.isNotEmpty(value)) { + Object startStr = value.subSequence(0, 1); + String endStr = value.substring(1); + sb.append("").append(startStr).append("=").append(endStr).append(","); + } + } + return sb.deleteCharAt(sb.length() - 1).toString(); + } else { + return this.columnComment; + } + } + + public boolean isDate() { + return GenConstants.TYPE_DATE_ARR.contains(javaType); + } + + public String getDateFormat() { + if (!isDate()) { + return ""; + } + if (GenConstants.TYPE_LOCAL_DATE.equals(javaType)) { + return "yyyy-MM-dd"; + } + if (GenConstants.TYPE_LOCAL_DATE_TIME.equals(javaType) || GenConstants.TYPE_DATE.equals(javaType)) { + return "yyyy-MM-dd HH:mm:ss"; + } + return "HH:mm:ss"; + } + + public String genLabel() { + if (!StrUtil.isEmpty(columnComment)) { + int index = columnComment.indexOf("("); + return index > -1 ? columnComment.substring(0, index) : columnComment; + } + return javaField; + } + + public String genComponent() { + if (javaField.endsWith("type")) { + return "a-select"; + } + if (isDate()) { + return "a-date-picker"; + } + return "a-input"; + } +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableColumnMapper.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableColumnMapper.java new file mode 100644 index 0000000..951e166 --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableColumnMapper.java @@ -0,0 +1,60 @@ +package com.ruoyi.generator.mapper; + +import java.util.List; +import com.ruoyi.generator.domain.GenTableColumn; + +/** + * 业务字段 数据层 + * + * @author ruoyi + */ +public interface GenTableColumnMapper +{ + /** + * 根据表名称查询列信息 + * + * @param tableName 表名称 + * @return 列信息 + */ + public List selectDbTableColumnsByName(String tableName); + + /** + * 查询业务字段列表 + * + * @param tableId 业务字段编号 + * @return 业务字段集合 + */ + public List selectGenTableColumnListByTableId(Long tableId); + + /** + * 新增业务字段 + * + * @param genTableColumn 业务字段信息 + * @return 结果 + */ + public int insertGenTableColumn(GenTableColumn genTableColumn); + + /** + * 修改业务字段 + * + * @param genTableColumn 业务字段信息 + * @return 结果 + */ + public int updateGenTableColumn(GenTableColumn genTableColumn); + + /** + * 删除业务字段 + * + * @param genTableColumns 列数据 + * @return 结果 + */ + public int deleteGenTableColumns(List genTableColumns); + + /** + * 批量删除业务字段 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteGenTableColumnByIds(Long[] ids); +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableMapper.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableMapper.java new file mode 100644 index 0000000..231305d --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableMapper.java @@ -0,0 +1,86 @@ +package com.ruoyi.generator.mapper; + +import java.util.List; +import com.ruoyi.generator.domain.GenTable; +import org.apache.ibatis.annotations.Param; + +/** + * 业务 数据层 + * + * @author ruoyi + */ +public interface GenTableMapper +{ + /** + * 查询业务列表 + * + * @param genTable 业务信息 + * @return 业务集合 + */ + public List selectGenTableList(GenTable genTable); + + /** + * 查询据库列表 + * + * @param genTable 业务信息 + * @return 数据库表集合 + */ + public List selectDbTableList(GenTable genTable); + + /** + * 查询据库列表 + * + * @param tableNames 表名称组 + * @return 数据库表集合 + */ + public List selectDbTableListByNames(String[] tableNames); + + /** + * 查询所有表信息 + * + * @return 表信息集合 + */ + public List selectGenTableAll(); + + /** + * 查询表ID业务信息 + * + * @param id 业务ID + * @return 业务信息 + */ + public GenTable selectGenTableById(Long id); + + /** + * 查询表名称业务信息 + * + * @param tableName 表名称 + * @return 业务信息 + */ + public GenTable selectGenTableByName(String tableName); + + /** + * 新增业务 + * + * @param genTable 业务信息 + * @return 结果 + */ + public int insertGenTable(GenTable genTable); + + /** + * 修改业务 + * + * @param genTable 业务信息 + * @return 结果 + */ + public int updateGenTable(GenTable genTable); + + /** + * 批量删除业务 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteGenTableByIds(Long[] ids); + + List selectGenTableByNameIn(@Param("names") List names); +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableColumnServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableColumnServiceImpl.java new file mode 100644 index 0000000..0679689 --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableColumnServiceImpl.java @@ -0,0 +1,68 @@ +package com.ruoyi.generator.service; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.generator.domain.GenTableColumn; +import com.ruoyi.generator.mapper.GenTableColumnMapper; + +/** + * 业务字段 服务层实现 + * + * @author ruoyi + */ +@Service +public class GenTableColumnServiceImpl implements IGenTableColumnService +{ + @Autowired + private GenTableColumnMapper genTableColumnMapper; + + /** + * 查询业务字段列表 + * + * @param tableId 业务字段编号 + * @return 业务字段集合 + */ + @Override + public List selectGenTableColumnListByTableId(Long tableId) + { + return genTableColumnMapper.selectGenTableColumnListByTableId(tableId); + } + + /** + * 新增业务字段 + * + * @param genTableColumn 业务字段信息 + * @return 结果 + */ + @Override + public int insertGenTableColumn(GenTableColumn genTableColumn) + { + return genTableColumnMapper.insertGenTableColumn(genTableColumn); + } + + /** + * 修改业务字段 + * + * @param genTableColumn 业务字段信息 + * @return 结果 + */ + @Override + public int updateGenTableColumn(GenTableColumn genTableColumn) + { + return genTableColumnMapper.updateGenTableColumn(genTableColumn); + } + + /** + * 删除业务字段对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteGenTableColumnByIds(String ids) + { + return genTableColumnMapper.deleteGenTableColumnByIds(Convert.toLongArray(ids)); + } +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java new file mode 100644 index 0000000..30a7c8c --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java @@ -0,0 +1,575 @@ +package com.ruoyi.generator.service; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.GenConstants; +import com.ruoyi.common.core.text.CharsetKit; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.exception.base.BaseException; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.generator.config.GenConfig; +import com.ruoyi.generator.config.GenPathConfig; +import com.ruoyi.generator.constant.ProjectPathConstant; +import com.ruoyi.generator.domain.GenTable; +import com.ruoyi.generator.domain.GenTableColumn; +import com.ruoyi.generator.mapper.GenTableColumnMapper; +import com.ruoyi.generator.mapper.GenTableMapper; +import com.ruoyi.generator.util.GenUtils; +import com.ruoyi.generator.util.VelocityInitializer; +import com.ruoyi.generator.util.VelocityUtils; +import lombok.Data; +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.Velocity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import javax.annotation.PostConstruct; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.StringWriter; +import java.util.*; +import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +/** + * 业务 服务层实现 + * + * @author ruoyi + */ +@Service +public class GenTableServiceImpl implements IGenTableService { + private static final Logger log = LoggerFactory.getLogger(GenTableServiceImpl.class); + @Autowired + private GenTableMapper genTableMapper; + @Autowired + private GenTableColumnMapper genTableColumnMapper; + @Autowired + private GenContext genContext; + + /** + * 查询业务信息 + * + * @param id 业务ID + * @return 业务信息 + */ + @Override + public GenTable selectGenTableById(Long id) { + GenTable genTable = genTableMapper.selectGenTableById(id); + setTableFromOptions(genTable); + return genTable; + } + + /** + * 查询业务列表 + * + * @param genTable 业务信息 + * @return 业务集合 + */ + @Override + public List selectGenTableList(GenTable genTable) { + return genTableMapper.selectGenTableList(genTable); + } + + /** + * 查询据库列表 + * + * @param genTable 业务信息 + * @return 数据库表集合 + */ + @Override + public List selectDbTableList(GenTable genTable) { + return genTableMapper.selectDbTableList(genTable); + } + + /** + * 查询据库列表 + * + * @param tableNames 表名称组 + * @return 数据库表集合 + */ + @Override + public List selectDbTableListByNames(String[] tableNames) { + return genTableMapper.selectDbTableListByNames(tableNames); + } + + /** + * 查询所有表信息 + * + * @return 表信息集合 + */ + @Override + public List selectGenTableAll() { + return genTableMapper.selectGenTableAll(); + } + + /** + * 修改业务 + * + * @param genTable 业务信息 + * @return 结果 + */ + @Override + @Transactional + public void updateGenTable(GenTable genTable) { + String options = JSON.toJSONString(genTable.getParams()); + genTable.setOptions(options); + int row = genTableMapper.updateGenTable(genTable); + if (row > 0) { + for (GenTableColumn cenTableColumn : genTable.getColumns()) { + genTableColumnMapper.updateGenTableColumn(cenTableColumn); + } + } + } + + /** + * 删除业务对象 + * + * @param tableIds 需要删除的数据ID + * @return 结果 + */ + @Override + @Transactional + public void deleteGenTableByIds(Long[] tableIds) { + genTableMapper.deleteGenTableByIds(tableIds); + genTableColumnMapper.deleteGenTableColumnByIds(tableIds); + } + + /** + * 导入表结构 + * + * @param tableList 导入表列表 + */ + @Override + @Transactional(rollbackFor = {ServiceException.class}) + public void importGenTable(List tableList, Long userId) { + try { + for (GenTable table : tableList) { + String tableName = table.getTableName(); + GenUtils.initTable(table, userId); + int row = genTableMapper.insertGenTable(table); + if (row > 0) { + // 保存列信息 + List genTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName); + for (GenTableColumn column : genTableColumns) { + GenUtils.initColumnField(column, table); + genTableColumnMapper.insertGenTableColumn(column); + } + } + } + } catch (Exception e) { + throw new ServiceException("导入失败:" + e.getMessage()); + } + } + + /** + * 预览代码 + * + * @param tableId 表编号 + * @return 预览数据列表 + */ + @Override + public Map previewCode(Long tableId) { + Map dataMap = new LinkedHashMap<>(); + // 查询表信息 + GenTable table = genTableMapper.selectGenTableById(tableId); + // 设置主子表信息 + setSubTable(table); + // 设置主键列信息 + setPkColumn(table); + VelocityInitializer.initVelocity(); + + VelocityContext context = VelocityUtils.prepareContext(table); + + // 获取模板列表 + List templates = VelocityUtils.getTemplateList(table.getTplCategory()); + for (String template : templates) { + // 渲染模板 + StringWriter sw = new StringWriter(); + Template tpl = Velocity.getTemplate(template, Constants.UTF8); + tpl.merge(context, sw); + dataMap.put(template, sw.toString()); + } + return dataMap; + } + + /** + * 生成代码(下载方式) + * + * @param tableName 表名称 + * @return 数据 + */ + @Override + public byte[] downloadCode(String tableName) { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + ZipOutputStream zip = new ZipOutputStream(outputStream); + generatorCode(tableName, zip); + IOUtils.closeQuietly(zip); + return outputStream.toByteArray(); + } + + /** + * 生成代码(自定义路径) + * + * @param tableName 表名称 + */ + @Override + public void generatorCode(String tableName) { + // 查询表信息 + GenTable table = genTableMapper.selectGenTableByName(tableName); + initNullValue(table); + // 设置主子表信息 + setSubTable(table); + setTableFromOptions(table); + // 设置主键列信息 + setPkColumn(table); + + // 初始化 Class 信息 + genContext.prop2path.put("ClassName", table.getClassName()); + genContext.prop2path.put("className", StrUtil.lowerFirst(table.getClassName())); + genContext.prop2path.put("tableName", table.getTableName()); + genContext.prop2path.put("moduleName", table.getModuleName()); + + // 初始化模板 + VelocityInitializer.initVelocity(); + + // 初始化模板变量 + VelocityContext context = VelocityUtils.prepareContext(table); + context.put("env", genContext.genConfig.getEnv()); + context.put("_fullClass", fillHolder(table, genContext.fullQualifiedClassHolder)); + context.put("_className", fillHolder(table, genContext.className)); + + // 获取模板列表 + List templates = VelocityUtils.getTemplateList(table.getTplCategory()); + for (String template : templates) { + if (template.endsWith(".java.vm")) { + context.put("fullPackage", getFullPackage(template)); + } + // 渲染模板 + StringWriter sw = new StringWriter(); + Template tpl = Velocity.getTemplate(template, Constants.UTF8); + tpl.merge(context, sw); + String path = null; + try { + path = generatePath(template, table); + File file = new File(path); + FileUtils.writeStringToFile(file, sw.toString(), CharsetKit.UTF_8); + log.info("{}", file.getAbsoluteFile()); + } catch (IOException e) { + throw new ServiceException("渲染模板失败,表名:" + table.getTableName() + ", path: " + path); + } + } + } + + private String getFullPackage(String template) { + GenContext context = this.genContext; + Map fileMap = context.genConfig.getFileMap(); + String fileName = template.substring(template.lastIndexOf("/") + 1); + if (!fileMap.containsKey(fileName)) { + throw new BaseException("没有配置 " + fileName + " 的生成路径"); + } + String path = fileMap.get(fileName); + int end = path.lastIndexOf("/"); + int start = path.indexOf("${MAIN_JAVA}"); + if (start == -1) { + start = path.indexOf("${TEST_JAVA}") + 13; + } else { + start += 13; + } + return replaceholder(path.substring(start, end), context.prop2path).replaceAll("/", "."); + } + + private String generatePath(String template, GenTable table) { + GenContext context = this.genContext; + Map fileMap = context.genConfig.getFileMap(); + String fileName = template.substring(template.lastIndexOf("/") + 1); + if (!fileMap.containsKey(fileName)) { + throw new BaseException("没有配置 " + fileName + " 的生成路径"); + } + String path = replaceholder(fileMap.get(fileName), context.prop2path); + int dotIndex = path.lastIndexOf("."); + return path.substring(0, dotIndex).replaceAll("\\.", "/") + + path.substring(dotIndex); + } + + public Map fillHolder(GenTable table, Map holder) { + Map res = new HashMap(); + holder.forEach((key, val) -> { + res.put(key, replaceholder(val, genContext.prop2path)); + }); + return res; + } + + private String replaceholder(String packageName, Map... holder2val) { + int start = packageName.indexOf("${"), end = packageName.indexOf("}", start + 2); + String prop = "", val; + while (start != -1 && end != -1) { + prop = packageName.substring(start + 2, end); + val = null; + for (Map vals : holder2val) { + if (vals.containsKey(prop)) { + val = vals.get(prop); + break; + } + } + packageName = packageName.replace("${" + prop + "}", val); + start = packageName.indexOf("${"); + end = packageName.indexOf("}", start + 2); + } + return packageName; + } + + private void initNullValue(GenTable table) { + if (table.getAudit() == null) { + table.setAudit(0); + } + } + + /** + * 同步数据库 + * + * @param tableName 表名称 + */ + @Override + @Transactional + public void synchDb(String tableName) { + GenTable table = genTableMapper.selectGenTableByName(tableName); + List tableColumns = table.getColumns(); + List tableColumnNames = tableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList()); + + List dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName); + if (StringUtils.isEmpty(dbTableColumns)) { + throw new ServiceException("同步数据失败,原表结构不存在"); + } + List dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList()); + + dbTableColumns.forEach(column -> { + if (!tableColumnNames.contains(column.getColumnName())) { + GenUtils.initColumnField(column, table); + genTableColumnMapper.insertGenTableColumn(column); + } + }); + + List delColumns = tableColumns.stream().filter(column -> !dbTableColumnNames.contains(column.getColumnName())).collect(Collectors.toList()); + if (StringUtils.isNotEmpty(delColumns)) { + genTableColumnMapper.deleteGenTableColumns(delColumns); + } + } + + /** + * 批量生成代码(下载方式) + * + * @param tableNames 表数组 + * @return 数据 + */ + @Override + public byte[] downloadCode(String[] tableNames) { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + ZipOutputStream zip = new ZipOutputStream(outputStream); + for (String tableName : tableNames) { + generatorCode(tableName, zip); + } + IOUtils.closeQuietly(zip); + return outputStream.toByteArray(); + } + + /** + * 查询表信息并生成代码 + */ + private void generatorCode(String tableName, ZipOutputStream zip) { + // 查询表信息 + GenTable table = genTableMapper.selectGenTableByName(tableName); + // 设置主子表信息 + setSubTable(table); + // 设置主键列信息 + setPkColumn(table); + + VelocityInitializer.initVelocity(); + + VelocityContext context = VelocityUtils.prepareContext(table); + + // 获取模板列表 + List templates = VelocityUtils.getTemplateList(table.getTplCategory()); + for (String template : templates) { + // 渲染模板 + StringWriter sw = new StringWriter(); + Template tpl = Velocity.getTemplate(template, Constants.UTF8); + tpl.merge(context, sw); + try { + // 添加到zip + zip.putNextEntry(new ZipEntry(VelocityUtils.getFileName(template, table))); + IOUtils.write(sw.toString(), zip, Constants.UTF8); + IOUtils.closeQuietly(sw); + zip.flush(); + zip.closeEntry(); + } catch (IOException e) { + log.error("渲染模板失败,表名:" + table.getTableName(), e); + } + } + } + + /** + * 修改保存参数校验 + * + * @param genTable 业务信息 + */ + @Override + public void validateEdit(GenTable genTable) { + if (GenConstants.TPL_TREE.equals(genTable.getTplCategory())) { + String options = JSON.toJSONString(genTable.getParams()); + JSONObject paramsObj = JSONObject.parseObject(options); + if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_CODE))) { + throw new ServiceException("树编码字段不能为空"); + } else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_PARENT_CODE))) { + throw new ServiceException("树父编码字段不能为空"); + } else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_NAME))) { + throw new ServiceException("树名称字段不能为空"); + } else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory())) { + if (StringUtils.isEmpty(genTable.getSubTableName())) { + throw new ServiceException("关联子表的表名不能为空"); + } else if (StringUtils.isEmpty(genTable.getSubTableFkName())) { + throw new ServiceException("子表关联的外键名不能为空"); + } + } + } + } + + @Override + public List selectGenTableByName(List tableNames) { + List tables = genTableMapper.selectGenTableByNameIn(tableNames); + List existNames = tables.stream().map(it -> it.getTableName()).collect(Collectors.toList()); + List names1 = tableNames.stream().filter(n -> !existNames.contains(n)).collect(Collectors.toList()); + if (names1.size() > 0) { + tables.addAll(selectDbTableListByNames(names1.toArray(new String[names1.size()]))); + } + return tables; + } + + /** + * 设置主键列信息 + * + * @param table 业务表信息 + */ + public void setPkColumn(GenTable table) { + for (GenTableColumn column : table.getColumns()) { + if (column.isPk()) { + table.setPkColumn(column); + break; + } + } + if (StringUtils.isNull(table.getPkColumn())) { + table.setPkColumn(table.getColumns().get(0)); + } + if (GenConstants.TPL_SUB.equals(table.getTplCategory())) { + for (GenTableColumn column : table.getSubTable().getColumns()) { + if (column.isPk()) { + table.getSubTable().setPkColumn(column); + break; + } + } + if (StringUtils.isNull(table.getSubTable().getPkColumn())) { + table.getSubTable().setPkColumn(table.getSubTable().getColumns().get(0)); + } + } + } + + /** + * 设置主子表信息 + * + * @param table 业务表信息 + */ + public void setSubTable(GenTable table) { + String subTableName = table.getSubTableName(); + if (StringUtils.isNotEmpty(subTableName)) { + table.setSubTable(genTableMapper.selectGenTableByName(subTableName)); + } + } + + /** + * 设置代码生成其他选项值 + * + * @param genTable 设置后的生成对象 + */ + public void setTableFromOptions(GenTable genTable) { + JSONObject paramsObj = JSONObject.parseObject(genTable.getOptions()); + if (StringUtils.isNotNull(paramsObj)) { + String treeCode = paramsObj.getString(GenConstants.TREE_CODE); + String treeParentCode = paramsObj.getString(GenConstants.TREE_PARENT_CODE); + String treeName = paramsObj.getString(GenConstants.TREE_NAME); + String parentMenuId = paramsObj.getString(GenConstants.PARENT_MENU_ID); + String parentMenuName = paramsObj.getString(GenConstants.PARENT_MENU_NAME); + + genTable.setTreeCode(treeCode); + genTable.setTreeParentCode(treeParentCode); + genTable.setTreeName(treeName); + genTable.setParentMenuId(parentMenuId); + genTable.setParentMenuName(parentMenuName); + } + } + + @Data + @Component + class GenContext { + @Autowired + GenPathConfig pathConfig; + @Autowired + GenConfig genConfig; + Map prop2path; + + // 全限定类名,包含换位符 + Map fullQualifiedClassHolder = new HashMap<>(); + + // 类名,包含换位符 + Map className = new HashMap<>(); + + { + prop2path = new HashMap<>(); + // java中的几个固定目录 + prop2path.put(ProjectPathConstant.MAIN_JAVA, ProjectPathConstant.MAIN_JAVA_VALUE); + prop2path.put(ProjectPathConstant.MAIN_RESOURCES, ProjectPathConstant.MAIN_RESOURCES_VALUE); + prop2path.put(ProjectPathConstant.TEST_JAVA, ProjectPathConstant.TEST_JAVA_VALUE); + prop2path.put(ProjectPathConstant.TEST_RESOURCES, ProjectPathConstant.TEST_RESOURCES_VALUE); + } + + @PostConstruct + public void init() { + // 将配置路径,全部注入到 Map 中 + if (!CollectionUtils.isEmpty(genConfig.getPath())) { + prop2path.putAll(genConfig.getPath()); + } + prop2path.put("packageName", genConfig.getPackageName()); + prop2path.put("rootPermission", genConfig.getRootPermission()); + + // 初始化所有 java 全限定 类名 + genConfig.getFileMap().forEach((fileName, path) -> { + int e1 = fileName.indexOf(".java.vm"); + if (e1 == -1) { + return; + } + String entityType = fileName.substring(0, e1); + int end = path.lastIndexOf("."); + int start = path.indexOf("${MAIN_JAVA}"); + if (start == -1) { + start = path.indexOf("${TEST_JAVA}") + 13; + } else { + start += 13; + } + className.put(entityType, path.substring(path.lastIndexOf("/") + 1, end)); + fullQualifiedClassHolder.put(entityType, path.substring(start, end).replaceAll("/", ".")); + }); + GenUtils.setGenConfig(genConfig); + VelocityUtils.setGenConfig(genConfig); + } + } +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableColumnService.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableColumnService.java new file mode 100644 index 0000000..3037f70 --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableColumnService.java @@ -0,0 +1,44 @@ +package com.ruoyi.generator.service; + +import java.util.List; +import com.ruoyi.generator.domain.GenTableColumn; + +/** + * 业务字段 服务层 + * + * @author ruoyi + */ +public interface IGenTableColumnService +{ + /** + * 查询业务字段列表 + * + * @param tableId 业务字段编号 + * @return 业务字段集合 + */ + public List selectGenTableColumnListByTableId(Long tableId); + + /** + * 新增业务字段 + * + * @param genTableColumn 业务字段信息 + * @return 结果 + */ + public int insertGenTableColumn(GenTableColumn genTableColumn); + + /** + * 修改业务字段 + * + * @param genTableColumn 业务字段信息 + * @return 结果 + */ + public int updateGenTableColumn(GenTableColumn genTableColumn); + + /** + * 删除业务字段信息 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteGenTableColumnByIds(String ids); +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java new file mode 100644 index 0000000..ae57f74 --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java @@ -0,0 +1,123 @@ +package com.ruoyi.generator.service; + +import java.util.List; +import java.util.Map; +import com.ruoyi.generator.domain.GenTable; + +/** + * 业务 服务层 + * + * @author ruoyi + */ +public interface IGenTableService +{ + /** + * 查询业务列表 + * + * @param genTable 业务信息 + * @return 业务集合 + */ + public List selectGenTableList(GenTable genTable); + + /** + * 查询据库列表 + * + * @param genTable 业务信息 + * @return 数据库表集合 + */ + public List selectDbTableList(GenTable genTable); + + /** + * 查询据库列表 + * + * @param tableNames 表名称组 + * @return 数据库表集合 + */ + public List selectDbTableListByNames(String[] tableNames); + + /** + * 查询所有表信息 + * + * @return 表信息集合 + */ + public List selectGenTableAll(); + + /** + * 查询业务信息 + * + * @param id 业务ID + * @return 业务信息 + */ + public GenTable selectGenTableById(Long id); + + /** + * 修改业务 + * + * @param genTable 业务信息 + * @return 结果 + */ + public void updateGenTable(GenTable genTable); + + /** + * 删除业务信息 + * + * @param tableIds 需要删除的表数据ID + * @return 结果 + */ + public void deleteGenTableByIds(Long[] tableIds); + + /** + * 导入表结构 + * + * @param tableList 导入表列表 + */ + public void importGenTable(List tableList, Long userId); + + /** + * 预览代码 + * + * @param tableId 表编号 + * @return 预览数据列表 + */ + public Map previewCode(Long tableId); + + /** + * 生成代码(下载方式) + * + * @param tableName 表名称 + * @return 数据 + */ + public byte[] downloadCode(String tableName); + + /** + * 生成代码(自定义路径) + * + * @param tableName 表名称 + * @return 数据 + */ + public void generatorCode(String tableName); + + /** + * 同步数据库 + * + * @param tableName 表名称 + */ + public void synchDb(String tableName); + + /** + * 批量生成代码(下载方式) + * + * @param tableNames 表数组 + * @return 数据 + */ + public byte[] downloadCode(String[] tableNames); + + /** + * 修改保存参数校验 + * + * @param genTable 业务信息 + */ + public void validateEdit(GenTable genTable); + + List selectGenTableByName(List tableNames); +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java new file mode 100644 index 0000000..9f047c5 --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java @@ -0,0 +1,271 @@ +package com.ruoyi.generator.util; + +import cn.hutool.core.util.StrUtil; +import com.ruoyi.common.constant.GenConstants; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.generator.config.GenConfig; +import com.ruoyi.generator.domain.GenTable; +import com.ruoyi.generator.domain.GenTableColumn; +import org.apache.commons.lang3.RegExUtils; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +/** + * 代码生成器 工具类 + * + * @author ruoyi + */ +public class GenUtils { + private static GenConfig genConfig; + public static final Map queryType2Suffix; + static { + queryType2Suffix = new HashMap<>(); + queryType2Suffix.put("BETWEEN", "Range"); + queryType2Suffix.put("NE", "NotEqual"); + queryType2Suffix.put("GT", "GreatThan"); + queryType2Suffix.put("GTE", "GreatThanOrEqual"); + queryType2Suffix.put("LT", "LessThan"); + queryType2Suffix.put("LTE", "LessThanOrEqual"); + queryType2Suffix.put("LIKE", "Like"); + } + public static final Map queryType2Method; + static { + queryType2Method = new HashMap<>(); + queryType2Method.put("EQ", "eq"); + queryType2Method.put("NE", "ne"); + queryType2Method.put("GT", "gt"); + queryType2Method.put("GTE", "ge"); + queryType2Method.put("LT", "lt"); + queryType2Method.put("LTE", "le"); + queryType2Method.put("LIKE", "like"); + } + public static void setGenConfig(GenConfig genConfig) { + GenUtils.genConfig = genConfig; + } + + /** + * 初始化表信息 + */ + public static void initTable(GenTable genTable, Long userId) { + genTable.setClassName(convertClassName(genTable.getTableName())); + genTable.setPackageName(genConfig.getPackageName()); + genTable.setModuleName(getModuleName(genConfig.getPackageName())); + genTable.setBusinessName(getBusinessName(genTable.getTableName())); + genTable.setFunctionName(replaceText(genTable.getTableComment())); + genTable.setFunctionAuthor(genConfig.getAuthor()); + genTable.setCreateBy(userId); + } + + /** + * 初始化列属性字段 + */ + public static void initColumnField(GenTableColumn column, GenTable table) { + String dataType = getDbType(column.getColumnType()); + String columnName = column.getColumnName(); + column.setTableId(table.getTableId()); + column.setCreateBy(table.getCreateBy()); + // 设置java字段名 + column.setJavaField(StringUtils.toCamelCase(columnName)); + // 设置默认类型 + column.setJavaType(GenConstants.TYPE_STRING); + // 注释为空处理 + if (StringUtils.isEmpty(column.getColumnComment())) { + column.setColumnComment(column.getColumnName().toUpperCase()); + } + if (arraysContains(GenConstants.COLUMNTYPE_STR, dataType) || arraysContains(GenConstants.COLUMNTYPE_TEXT, dataType)) { + // 字符串长度超过500设置为文本域 + Integer columnLength = getColumnLength(column.getColumnType()); + String htmlType = columnLength >= 500 || arraysContains(GenConstants.COLUMNTYPE_TEXT, dataType) ? GenConstants.HTML_TEXTAREA : GenConstants.HTML_INPUT; + column.setHtmlType(htmlType); + } else if (StrUtil.equals(dataType, "datetime")) { + column.setJavaType("LocalDateTime"); + column.setHtmlType(GenConstants.HTML_DATETIME); + } else if (StrUtil.equals(dataType, "date")) { + column.setJavaType("LocalDate"); + column.setHtmlType("date"); + } else if (StrUtil.equals(dataType, "time")) { + column.setJavaType("LocalTime"); + column.setHtmlType("time"); + } else if (StrUtil.equals(dataType, "int")) { + column.setJavaType(GenConstants.TYPE_INTEGER); + column.setHtmlType(GenConstants.HTML_INPUT); + } else if (arraysContains(GenConstants.COLUMNTYPE_NUMBER, dataType)) { + column.setHtmlType(GenConstants.HTML_INPUT); + + // 如果是浮点型 统一用BigDecimal + String[] str = StringUtils.split(StringUtils.substringBetween(column.getColumnType(), "(", ")"), ","); + if (str == null) { + if (arraysContains(GenConstants.COLUMNTYPE_INT, dataType)) { + column.setJavaType(GenConstants.TYPE_INTEGER); + } else if (arraysContains(GenConstants.COLUMNTYPE_DECIMAL, dataType)) { + column.setJavaType(GenConstants.TYPE_BIGDECIMAL); + } else { + column.setJavaType(GenConstants.TYPE_LONG); + } + } else if (str.length == 2 && Integer.parseInt(str[1]) > 0) { + column.setJavaType(GenConstants.TYPE_BIGDECIMAL); + } + // 如果是整形 + else if (str.length == 1 && Integer.parseInt(str[0]) <= 10) { + column.setJavaType(GenConstants.TYPE_INTEGER); + } + // 长整形 + else { + column.setJavaType(GenConstants.TYPE_LONG); + } + } + + // 插入字段(默认所有字段都需要插入) + column.setIsInsert(GenConstants.REQUIRE); + + // 编辑字段 + if (!arraysContains(GenConstants.COLUMNNAME_NOT_EDIT, columnName) && !column.isPk()) { + column.setIsEdit(GenConstants.REQUIRE); + } + // 列表字段 + if (!arraysContains(GenConstants.COLUMNNAME_NOT_LIST, columnName) && !column.isPk()) { + column.setIsList(GenConstants.REQUIRE); + } + // 查询字段 + if (!arraysContains(GenConstants.COLUMNNAME_NOT_QUERY, columnName) && !column.isPk()) { + column.setIsQuery(GenConstants.REQUIRE); + } + + // 查询字段类型 + if (StringUtils.endsWithIgnoreCase(columnName, "name")) { + column.setQueryType(GenConstants.QUERY_LIKE); + } + // 状态字段设置单选框 + if (StringUtils.endsWithIgnoreCase(columnName, "status")) { + column.setHtmlType(GenConstants.HTML_RADIO); + } + // 类型&性别字段设置下拉框 + else if (StringUtils.endsWithIgnoreCase(columnName, "type") + || StringUtils.endsWithIgnoreCase(columnName, "sex")) { + column.setHtmlType(GenConstants.HTML_SELECT); + } + // 图片字段设置图片上传控件 + else if (StringUtils.endsWithIgnoreCase(columnName, "image") || StringUtils.endsWithIgnoreCase(columnName, "images") || StringUtils.endsWithIgnoreCase(columnName, "photos")) { + column.setHtmlType(GenConstants.HTML_IMAGE_UPLOAD); + } + // 文件字段设置文件上传控件 + else if (StringUtils.endsWithIgnoreCase(columnName, "file")) { + column.setHtmlType(GenConstants.HTML_FILE_UPLOAD); + } + // 内容字段设置富文本控件 + else if (StringUtils.endsWithIgnoreCase(columnName, "content")) { + column.setHtmlType(GenConstants.HTML_EDITOR); + } + } + + /** + * 校验数组是否包含指定值 + * + * @param arr 数组 + * @param targetValue 值 + * @return 是否包含 + */ + public static boolean arraysContains(String[] arr, String targetValue) { + return Arrays.asList(arr).contains(targetValue); + } + + /** + * 获取模块名 + * + * @param packageName 包名 + * @return 模块名 + */ + public static String getModuleName(String packageName) { + int lastIndex = packageName.lastIndexOf("."); + int nameLength = packageName.length(); + String moduleName = StringUtils.substring(packageName, lastIndex + 1, nameLength); + return moduleName; + } + + /** + * 获取业务名 + * + * @param tableName 表名 + * @return 业务名 + */ + public static String getBusinessName(String tableName) { + return StrUtil.toCamelCase(tableName); + } + + /** + * 表名转换成Java类名 + * + * @param tableName 表名称 + * @return 类名 + */ + public static String convertClassName(String tableName) { + boolean autoRemovePre = genConfig.isAutoRemovePre(); + String tablePrefix = genConfig.getTablePrefix(); + if (autoRemovePre && StringUtils.isNotEmpty(tablePrefix)) { + String[] searchList = StringUtils.split(tablePrefix, ","); + tableName = replaceFirst(tableName, searchList); + } + return StringUtils.convertToCamelCase(tableName); + } + + /** + * 批量替换前缀 + * + * @param replacementm 替换值 + * @param searchList 替换列表 + * @return + */ + public static String replaceFirst(String replacementm, String[] searchList) { + String text = replacementm; + for (String searchString : searchList) { + if (replacementm.startsWith(searchString)) { + text = replacementm.replaceFirst(searchString, ""); + break; + } + } + return text; + } + + /** + * 关键字替换 + * + * @param text 需要被替换的名字 + * @return 替换后的名字 + */ + public static String replaceText(String text) { + return RegExUtils.replaceAll(text, "(?:若依)", ""); + } + + /** + * 获取数据库类型字段 + * + * @param columnType 列类型 + * @return 截取后的列类型 + */ + public static String getDbType(String columnType) { + if (StringUtils.indexOf(columnType, "(") > 0) { + return StringUtils.substringBefore(columnType, "("); + } else if (columnType.toLowerCase().endsWith(" unsigned")) { + return columnType.substring(0, columnType.length() - 9).toLowerCase(); + } else { + return columnType; + } + } + + /** + * 获取字段长度 + * + * @param columnType 列类型 + * @return 截取后的列类型 + */ + public static Integer getColumnLength(String columnType) { + if (StringUtils.indexOf(columnType, "(") > 0) { + String length = StringUtils.substringBetween(columnType, "(", ")"); + return Integer.valueOf(length); + } else { + return 0; + } + } +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java new file mode 100644 index 0000000..2be3fc4 --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java @@ -0,0 +1,35 @@ +package com.ruoyi.generator.util; + +import java.util.Properties; +import org.apache.velocity.app.Velocity; +import com.ruoyi.common.constant.Constants; + +/** + * VelocityEngine工厂 + * + * @author ruoyi + */ +public class VelocityInitializer +{ + /** + * 初始化vm方法 + */ + public static void initVelocity() + { + Properties p = new Properties(); + try + { + // 加载classpath目录下的文件 + p.setProperty("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); + // 定义字符集 + p.setProperty(Velocity.INPUT_ENCODING, Constants.UTF8); + p.setProperty(Velocity.OUTPUT_ENCODING, Constants.UTF8); + // 初始化Velocity引擎,指定配置Properties + Velocity.init(p); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java new file mode 100644 index 0000000..b6fbb84 --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java @@ -0,0 +1,374 @@ +package com.ruoyi.generator.util; + +import com.alibaba.fastjson.JSONObject; +import com.ruoyi.common.constant.GenConstants; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.generator.config.GenConfig; +import com.ruoyi.generator.domain.GenTable; +import com.ruoyi.generator.domain.GenTableColumn; +import org.apache.velocity.VelocityContext; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * 模板处理工具类 + * + * @author ruoyi + */ +public class VelocityUtils { + /** + * 项目空间路径 + */ + private static final String PROJECT_PATH = "main/java"; + + /** + * mybatis空间路径 + */ + private static final String MYBATIS_PATH = "main/resources/mapper"; + + /** + * 默认上级菜单,系统工具 + */ + private static final String DEFAULT_PARENT_MENU_ID = "3"; + private static GenConfig genConfig; + + public static void setGenConfig(GenConfig genConfig) { + VelocityUtils.genConfig = genConfig; + } + + /** + * 设置模板变量信息 + * + * @return 模板列表 + */ + public static VelocityContext prepareContext(GenTable genTable) { + String moduleName = genTable.getModuleName(); + String businessName = genTable.getBusinessName(); + String packageName = genTable.getPackageName(); + String tplCategory = genTable.getTplCategory(); + String functionName = genTable.getFunctionName(); + String className = StringUtils.uncapitalize(genTable.getClassName()); + + VelocityContext velocityContext = new VelocityContext(); + velocityContext.put("tplCategory", genTable.getTplCategory()); + velocityContext.put("tableName", genTable.getTableName()); + velocityContext.put("functionName", StringUtils.isNotEmpty(functionName) ? functionName : "【请填写功能名称】"); + velocityContext.put("ClassName", genTable.getClassName()); + velocityContext.put("className", className); + velocityContext.put("moduleName", genTable.getModuleName()); + velocityContext.put("BusinessName", StringUtils.capitalize(genTable.getBusinessName())); + velocityContext.put("businessName", genTable.getBusinessName()); + velocityContext.put("basePackage", getPackagePrefix(packageName)); + velocityContext.put("packageName", packageName); + velocityContext.put("author", genTable.getFunctionAuthor()); + velocityContext.put("datetime", DateUtils.getDate()); + velocityContext.put("pkColumn", genTable.getPkColumn()); + velocityContext.put("importList", getImportList(genTable)); + velocityContext.put("permissionPrefix", getPermissionPrefix(moduleName, className)); + velocityContext.put("rootPermission", genConfig.getRootPermission()); + velocityContext.put("columns", genTable.getColumns()); + velocityContext.put("queryLength", genTable.getColumns().stream().filter(GenTableColumn::isQuery).count()); + velocityContext.put("table", genTable); + velocityContext.put("dicts", getDicts(genTable)); + setMenuVelocityContext(velocityContext, genTable); + if (GenConstants.TPL_TREE.equals(tplCategory)) { + setTreeVelocityContext(velocityContext, genTable); + } + if (GenConstants.TPL_SUB.equals(tplCategory)) { + setSubVelocityContext(velocityContext, genTable); + } + return velocityContext; + } + + public static void setMenuVelocityContext(VelocityContext context, GenTable genTable) { + String options = genTable.getOptions(); + JSONObject paramsObj = JSONObject.parseObject(options); + String parentMenuId = getParentMenuId(paramsObj); + context.put("parentMenuId", parentMenuId); + } + + public static void setTreeVelocityContext(VelocityContext context, GenTable genTable) { + String options = genTable.getOptions(); + JSONObject paramsObj = JSONObject.parseObject(options); + String treeCode = getTreecode(paramsObj); + String treeParentCode = getTreeParentCode(paramsObj); + String treeName = getTreeName(paramsObj); + + context.put("treeCode", treeCode); + context.put("treeParentCode", treeParentCode); + context.put("treeName", treeName); + context.put("expandColumn", getExpandColumn(genTable)); + if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) { + context.put("tree_parent_code", paramsObj.getString(GenConstants.TREE_PARENT_CODE)); + } + if (paramsObj.containsKey(GenConstants.TREE_NAME)) { + context.put("tree_name", paramsObj.getString(GenConstants.TREE_NAME)); + } + } + + public static void setSubVelocityContext(VelocityContext context, GenTable genTable) { + GenTable subTable = genTable.getSubTable(); + String subTableName = genTable.getSubTableName(); + String subTableFkName = genTable.getSubTableFkName(); + String subClassName = genTable.getSubTable().getClassName(); + String subTableFkClassName = StringUtils.convertToCamelCase(subTableFkName); + + context.put("subTable", subTable); + context.put("subTableName", subTableName); + context.put("subTableFkName", subTableFkName); + context.put("subTableFkClassName", subTableFkClassName); + context.put("subTableFkclassName", StringUtils.uncapitalize(subTableFkClassName)); + context.put("subClassName", subClassName); + context.put("subclassName", StringUtils.uncapitalize(subClassName)); + context.put("subImportList", getImportList(genTable.getSubTable())); + } + + /** + * 获取模板信息 + * + * @return 模板列表 + */ + public static List getTemplateList(String tplCategory) { + List templates = new ArrayList<>(genConfig.templates); + if (GenConstants.TPL_CRUD.equals(tplCategory) && genConfig.crudTemplates != null) { + templates.addAll(genConfig.crudTemplates); + } else if (GenConstants.TPL_TREE.equals(tplCategory) && genConfig.treeTemplates != null) { + templates.addAll(genConfig.treeTemplates); + } else if (GenConstants.TPL_SUB.equals(tplCategory) && genConfig.subTemplates != null) { + templates.addAll(genConfig.subTemplates); + } + return templates.stream().map(t -> { + if (t.startsWith("./")) { + return t.replace("./", genConfig.templateRootPath + "/"); + } + return t; + }).collect(Collectors.toList()); + } + + /** + * 获取文件名 + */ + public static String getFileName(String template, GenTable genTable) { + // 文件名称 + String fileName = ""; + // 包路径 + String packageName = genTable.getPackageName(); + // 模块名 + String moduleName = genTable.getModuleName(); + // 大写类名 + String className = genTable.getClassName(); + // 业务名称 + String businessName = genTable.getBusinessName(); + + String javaPath = PROJECT_PATH + "/" + StringUtils.replace(packageName, ".", "/"); + String mybatisPath = MYBATIS_PATH + "/" + moduleName; + String vuePath = "vue"; + + if (template.contains("domain.java.vm")) { + return StringUtils.format("{}/domain/{}.java", javaPath, className); + } + + if (template.contains("dto.java.vm")) { + return StringUtils.format("{}/pojo/dto/{}DTO.java", javaPath, className); + } + + if (template.contains("query.java.vm")) { + return StringUtils.format("{}/pojo/query/{}Query.java", javaPath, className); + } + + if (template.contains("vo.java.vm")) { + return StringUtils.format("{}/pojo/vo/{}VO.java", javaPath, className); + } + + if (template.contains("convert.java.vm")) { + return StringUtils.format("{}/convert/{}Convert.java", javaPath, className); + } + + if (template.contains("sub-domain.java.vm") && StringUtils.equals(GenConstants.TPL_SUB, genTable.getTplCategory())) { + return StringUtils.format("{}/domain/{}.java", javaPath, genTable.getSubTable().getClassName()); + } + + if (template.contains("mapper.java.vm")) { + return StringUtils.format("{}/mapper/{}Mapper.java", javaPath, className); + } + + if (template.contains("service.java.vm")) { + return StringUtils.format("{}/service/{}Service.java", javaPath, className); + } + + if (template.contains("controller.java.vm")) { + return StringUtils.format("{}/controller/{}Controller.java", javaPath, className); + } + + if (template.contains("mapper.xml.vm")) { + return StringUtils.format("{}/{}Mapper.xml", mybatisPath, className); + } + + if (template.contains("sql.vm")) { + return businessName + "Menu.sql"; + } + + if (template.contains("api.js.vm")) { + return StringUtils.format("{}/api/{}/{}.js", vuePath, moduleName, businessName); + } + + if (template.contains("index.vue.vm")) { + return StringUtils.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); + } + + if (template.contains("index-tree.vue.vm")) { + return StringUtils.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); + } + return fileName; + } + + /** + * 获取包前缀 + * + * @param packageName 包名称 + * @return 包前缀名称 + */ + public static String getPackagePrefix(String packageName) { + int lastIndex = packageName.lastIndexOf("."); + String basePackage = StringUtils.substring(packageName, 0, lastIndex); + return basePackage; + } + + /** + * 根据列类型获取导入包 + * + * @param genTable 业务表对象 + * @return 返回需要导入的包列表 + */ + public static HashSet getImportList(GenTable genTable) { + List columns = genTable.getColumns(); + GenTable subGenTable = genTable.getSubTable(); + HashSet importList = new HashSet(); + if (StringUtils.isNotNull(subGenTable)) { + importList.add("java.util.List"); + } + for (GenTableColumn column : columns) { + if (Objects.equals(genTable.getAudit(), 1) && column.isSuperColumn()) { + continue; + } + if (GenConstants.TYPE_DATE.equals(column.getJavaType())) { + importList.add("java.util.Date"); + } else if (GenConstants.TYPE_DATE_ARR.contains(column.getJavaType())) { + importList.add("java.time." + column.getJavaType()); + } else if (GenConstants.TYPE_BIGDECIMAL.equals(column.getJavaType())) { + importList.add("java.math.BigDecimal"); + } + } + return importList; + } + + /** + * 根据列类型获取字典组 + * + * @param genTable 业务表对象 + * @return 返回字典组 + */ + public static String getDicts(GenTable genTable) { + List columns = genTable.getColumns(); + List dicts = new ArrayList(); + for (GenTableColumn column : columns) { + if (!column.isSuperColumn() && StringUtils.isNotEmpty(column.getDictType()) && StringUtils.equalsAny( + column.getHtmlType(), new String[]{GenConstants.HTML_SELECT, GenConstants.HTML_RADIO})) { + dicts.add("'" + column.getDictType() + "'"); + } + } + return StringUtils.join(dicts, ", "); + } + + /** + * 获取权限前缀 + * + * @param moduleName 模块名称 + * @param businessName 业务名称 + * @return 返回权限前缀 + */ + public static String getPermissionPrefix(String moduleName, String businessName) { + return StringUtils.format("{}:{}", moduleName, businessName); + } + + /** + * 获取上级菜单ID字段 + * + * @param paramsObj 生成其他选项 + * @return 上级菜单ID字段 + */ + public static String getParentMenuId(JSONObject paramsObj) { + if (StringUtils.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.PARENT_MENU_ID) + && StringUtils.isNotEmpty(paramsObj.getString(GenConstants.PARENT_MENU_ID))) { + return paramsObj.getString(GenConstants.PARENT_MENU_ID); + } + return DEFAULT_PARENT_MENU_ID; + } + + /** + * 获取树编码 + * + * @param paramsObj 生成其他选项 + * @return 树编码 + */ + public static String getTreecode(JSONObject paramsObj) { + if (paramsObj.containsKey(GenConstants.TREE_CODE)) { + return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_CODE)); + } + return StringUtils.EMPTY; + } + + /** + * 获取树父编码 + * + * @param paramsObj 生成其他选项 + * @return 树父编码 + */ + public static String getTreeParentCode(JSONObject paramsObj) { + if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) { + return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_PARENT_CODE)); + } + return StringUtils.EMPTY; + } + + /** + * 获取树名称 + * + * @param paramsObj 生成其他选项 + * @return 树名称 + */ + public static String getTreeName(JSONObject paramsObj) { + if (paramsObj.containsKey(GenConstants.TREE_NAME)) { + return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_NAME)); + } + return StringUtils.EMPTY; + } + + /** + * 获取需要在哪一列上面显示展开按钮 + * + * @param genTable 业务表对象 + * @return 展开按钮列序号 + */ + public static int getExpandColumn(GenTable genTable) { + String options = genTable.getOptions(); + JSONObject paramsObj = JSONObject.parseObject(options); + String treeName = paramsObj.getString(GenConstants.TREE_NAME); + int num = 0; + for (GenTableColumn column : genTable.getColumns()) { + if (column.isList()) { + num++; + String columnName = column.getColumnName(); + if (columnName.equals(treeName)) { + break; + } + } + } + return num; + } +} diff --git a/ruoyi-generator/src/main/resources/generator.yml b/ruoyi-generator/src/main/resources/generator.yml new file mode 100644 index 0000000..247b94c --- /dev/null +++ b/ruoyi-generator/src/main/resources/generator.yml @@ -0,0 +1,12 @@ +# 代码生成 +gen: + # 作者 + author: zcc + # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool + packageName: com.cyl.mall + # 自动去除表前缀,默认是false + autoRemovePre: false + # 表前缀(生成类名不会包含表前缀,多个用逗号分隔) + tablePrefix: mall_ + # 一级权限名 + rootPermission: mall diff --git a/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml new file mode 100644 index 0000000..212b6c0 --- /dev/null +++ b/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time from gen_table_column + + + + + + + + insert into gen_table_column ( + table_id, + column_name, + column_comment, + column_type, + java_type, + java_field, + is_pk, + is_increment, + is_required, + is_insert, + is_edit, + is_list, + is_query, + query_type, + html_type, + dict_type, + sort, + create_by, + create_time + )values( + #{tableId}, + #{columnName}, + #{columnComment}, + #{columnType}, + #{javaType}, + #{javaField}, + #{isPk}, + #{isIncrement}, + #{isRequired}, + #{isInsert}, + #{isEdit}, + #{isList}, + #{isQuery}, + #{queryType}, + #{htmlType}, + #{dictType}, + #{sort}, + #{createBy}, + sysdate() + ) + + + + update gen_table_column + + column_comment = #{columnComment}, + java_type = #{javaType}, + java_field = #{javaField}, + is_insert = #{isInsert}, + is_edit = #{isEdit}, + is_list = #{isList}, + is_query = #{isQuery}, + is_required = #{isRequired}, + query_type = #{queryType}, + html_type = #{htmlType}, + dict_type = #{dictType}, + sort = #{sort}, + update_by = #{updateBy}, + update_time = sysdate() + + where column_id = #{columnId} + + + + delete from gen_table_column where table_id in + + #{tableId} + + + + + delete from gen_table_column where column_id in + + #{item.columnId} + + + + diff --git a/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml new file mode 100644 index 0000000..1cf4e7a --- /dev/null +++ b/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select table_id, table_name, table_comment, sub_table_name, sub_table_fk_name, class_name, tpl_category, package_name, module_name, business_name, function_name, function_author, gen_type, gen_path, options, create_by, create_time, update_by, update_time, remark from gen_table + + + + + + + + + + + + + + + + + + + insert into gen_table ( + table_name, + table_comment, + class_name, + tpl_category, + package_name, + module_name, + business_name, + function_name, + function_author, + gen_type, + gen_path, + remark, + create_by, + create_time + )values( + #{tableName}, + #{tableComment}, + #{className}, + #{tplCategory}, + #{packageName}, + #{moduleName}, + #{businessName}, + #{functionName}, + #{functionAuthor}, + #{genType}, + #{genPath}, + #{remark}, + #{createBy}, + sysdate() + ) + + + + update gen_table + + table_name = #{tableName}, + table_comment = #{tableComment}, + sub_table_name = #{subTableName}, + sub_table_fk_name = #{subTableFkName}, + class_name = #{className}, + function_author = #{functionAuthor}, + gen_type = #{genType}, + gen_path = #{genPath}, + tpl_category = #{tplCategory}, + package_name = #{packageName}, + module_name = #{moduleName}, + business_name = #{businessName}, + function_name = #{functionName}, + options = #{options}, + update_by = #{updateBy}, + remark = #{remark}, + update_time = sysdate() + + where table_id = #{tableId} + + + + delete from gen_table where table_id in + + #{tableId} + + + + diff --git a/ruoyi-generator/src/main/resources/vm/java/controller.java.vm b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm new file mode 100644 index 0000000..f8998c8 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/java/controller.java.vm @@ -0,0 +1,106 @@ +package ${packageName}.controller; + +import java.util.List; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import ${packageName}.domain.${ClassName}; +import ${packageName}.service.I${ClassName}Service; +import com.ruoyi.common.utils.poi.ExcelUtil; +#if($table.crud || $table.sub) +import com.ruoyi.common.core.page.TableDataInfo; +#elseif($table.tree) +#end + +/** + * ${functionName}Controller + * + * @author ${author} + * @date ${datetime} + */ +@RestController +@RequestMapping("/${moduleName}/${businessName}") +public class ${ClassName}Controller extends BaseController { + @Autowired + private I${ClassName}Service ${className}Service; + + /** + * 查询${functionName}列表 + */ + @PreAuthorize("@ss.hasPermi('${permissionPrefix}:list')") + @GetMapping("/list") +#if($table.crud || $table.sub) + public TableDataInfo list(${ClassName} ${className}) { + startPage(); + List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); + return getDataTable(list); + } +#elseif($table.tree) + public AjaxResult list(${ClassName} ${className}) { + List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); + return AjaxResult.success(list); + } +#end + + /** + * 导出${functionName}列表 + */ + @PreAuthorize("@ss.hasPermi('${permissionPrefix}:export')") + @Log(title = "${functionName}", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(${ClassName} ${className}) { + List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); + ExcelUtil<${ClassName}> util = new ExcelUtil<${ClassName}>(${ClassName}.class); + return util.exportExcel(list, "${functionName}数据"); + } + + /** + * 获取${functionName}详细信息 + */ + @PreAuthorize("@ss.hasPermi('${permissionPrefix}:query')") + @GetMapping(value = "/{${pkColumn.javaField}}") + public AjaxResult getInfo(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}) { + return AjaxResult.success(${className}Service.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField})); + } + + /** + * 新增${functionName} + */ + @PreAuthorize("@ss.hasPermi('${permissionPrefix}:add')") + @Log(title = "${functionName}", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ${ClassName} ${className}) { + return toAjax(${className}Service.insert${ClassName}(${className})); + } + + /** + * 修改${functionName} + */ + @PreAuthorize("@ss.hasPermi('${permissionPrefix}:edit')") + @Log(title = "${functionName}", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ${ClassName} ${className}) { + return toAjax(${className}Service.update${ClassName}(${className})); + } + + /** + * 删除${functionName} + */ + @PreAuthorize("@ss.hasPermi('${permissionPrefix}:remove')") + @Log(title = "${functionName}", businessType = BusinessType.DELETE) + @DeleteMapping("/{${pkColumn.javaField}s}") + public AjaxResult remove(@PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) { + return toAjax(${className}Service.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s)); + } +} diff --git a/ruoyi-generator/src/main/resources/vm/java/convert.java.vm b/ruoyi-generator/src/main/resources/vm/java/convert.java.vm new file mode 100644 index 0000000..8599f49 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/java/convert.java.vm @@ -0,0 +1,28 @@ +package ${packageName}.convert; + +import org.mapstruct.Mapper; +import ${packageName}.model.entity.${ClassName}; +import ${packageName}.pojo.dto.${ClassName}DTO; +#if($table.sub) +import ${packageName}.convert.${subClassName}Convert; +#end +/** + * ${functionName} DO <=> DTO <=> VO / BO / Query + * + * @author ${author} + */ +@Mapper(componentModel = "spring"#if($table.sub), uses = ${subClassName}Convert.class#end) +public interface ${ClassName}Convert { + + /** + * @param source DO + * @return DTO + */ + ${ClassName}DTO do2dto(${ClassName} source); + + /** + * @param source DTO + * @return DO + */ + ${ClassName} dto2do(${ClassName}DTO source); +} diff --git a/ruoyi-generator/src/main/resources/vm/java/domain.java.vm b/ruoyi-generator/src/main/resources/vm/java/domain.java.vm new file mode 100644 index 0000000..bad116a --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/java/domain.java.vm @@ -0,0 +1,56 @@ +package ${packageName}.model.entity; + +#foreach ($import in $importList) +import ${import}; +#end +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +#if(($table.crud || $table.sub) && $table.audit == 1) +import com.bryx.core.common.base.entity.BaseAudit; +#elseif($table.tree) +import com.ruoyi.common.core.domain.TreeEntity; +#end +import lombok.Data; +/** + * ${functionName}对象 ${tableName} + * + * @author ${author} + */ +#if(($table.crud || $table.sub) && $table.audit == 1) +#set($Entity="BaseAudit") +#elseif($table.tree) +#set($Entity="TreeEntity") +#end +@Data +public class ${ClassName}#if($Entity) extends ${Entity}#end { + private static final long serialVersionUID = 1L; + +#foreach ($column in $columns) +#if(!$table.isSuperColumn($column.javaField)) + /** $column.columnComment */ +#if($column.list) +#set($parentheseIndex=$column.columnComment.indexOf("(")) +#if($parentheseIndex != -1) +#set($comment=$column.columnComment.substring(0, $parentheseIndex)) +#else +#set($comment=$column.columnComment) +#end +#if($parentheseIndex != -1) + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") +#elseif($column.isDate()) + @JsonFormat(pattern = "${column.dateFormat}") + @Excel(name = "${comment}", width = 30, dateFormat = "${column.dateFormat}") +#else + @Excel(name = "${comment}") +#end +#end + private $column.javaType $column.javaField; + +#end +#end +#if($table.sub) + /** $table.subTable.functionName信息 */ + private List<${subClassName}> ${subclassName}List; + +#end +} diff --git a/ruoyi-generator/src/main/resources/vm/java/dto.java.vm b/ruoyi-generator/src/main/resources/vm/java/dto.java.vm new file mode 100644 index 0000000..d504fc3 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/java/dto.java.vm @@ -0,0 +1,25 @@ +package ${packageName}.pojo.dto; + +#foreach ($import in $importList) +import ${import}; +#end +#if( ${table.audit} == 1 ) +import com.bryx.core.common.base.entity.BaseAudit; +#end +import lombok.Data; +/** + * ${functionName} DTO 对象 + * + * @author ${author} + */ +@Data +public class ${ClassName}DTO#if( ${table.audit} == 1 ) extends BaseAudit#end { +#foreach ($column in $columns) +#if(!$table.isSuperColumn($column.javaField)) + private $column.javaType $column.javaField; +#end +#end +#if($table.sub) + private List<${subClassName}DTO> ${subclassName}List; +#end +} diff --git a/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm b/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm new file mode 100644 index 0000000..64cf7ca --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm @@ -0,0 +1,97 @@ +package ${packageName}.mapper; + +import java.util.List; +import ${packageName}.domain.${ClassName}; +#if($table.sub) +import ${packageName}.domain.${subClassName}; +#end + +/** + * ${functionName}Mapper接口 + * + * @author ${author} + */ +public interface ${ClassName}Mapper { + /** + * 查询${functionName} + * + * @param ${pkColumn.javaField} ${functionName}主键 + * @return ${functionName} + */ + ${ClassName} selectBy${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}); + + /** + * 查询${functionName}列表 + * + * @param ${className} ${functionName} + * @return ${functionName}集合 + */ + List<${ClassName}> selectList(${ClassName} ${className}); + + /** + * 新增${functionName} + * + * @param ${className} ${functionName} + * @return 结果 + */ + int insert(${ClassName} ${className}); + + /** + * 修改${functionName} + * + * @param ${className} ${functionName} + * @return 结果 + */ + int update(${ClassName} ${className}); + + /** + * 删除${functionName} + * + * @param ${pkColumn.javaField} ${functionName}主键 + * @return 结果 + */ + int deleteBy${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}); + + /** + * 批量删除${functionName} + * + * @param ${pkColumn.javaField}s 需要删除的数据主键集合 + * @return 结果 + */ + int deleteBy${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); + + /** + * 更新或插入${functionName} + * + * @param ${className} ${functionName} + * @return 结果 + */ + int insertOrUpdate(${ClassName} ${className}); +#if($table.sub) + + /** + * 批量删除${subTable.functionName} + * + * @param ${pkColumn.javaField}s 需要删除的数据主键集合 + * @return 结果 + */ + int delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); + + /** + * 批量新增${subTable.functionName} + * + * @param ${subclassName}List ${subTable.functionName}列表 + * @return 结果 + */ + int batch${subClassName}(List<${subClassName}> ${subclassName}List); + + + /** + * 通过${functionName}主键删除${subTable.functionName}信息 + * + * @param ${pkColumn.javaField} ${functionName}ID + * @return 结果 + */ + int delete${subClassName}By${subTableFkClassName}(${pkColumn.javaType} ${pkColumn.javaField}); +#end +} diff --git a/ruoyi-generator/src/main/resources/vm/java/query.java.vm b/ruoyi-generator/src/main/resources/vm/java/query.java.vm new file mode 100644 index 0000000..b0365ae --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/java/query.java.vm @@ -0,0 +1,38 @@ +package ${packageName}.pojo.query; +import com.ruoyi.common.core.domain.IQuery; +import ${packageName}.domain.${ClassName}; +import lombok.Setter; + +import java.util.HashMap; +import java.util.Map; + +/** + * ${functionName} 查询 对象 + * + * @author ${author} + */ +@Setter +public class ${ClassName}Query extends ${ClassName} implements IQuery { + /** + * 搜索值 + */ + private String searchValue; + + /** + * 请求参数 + */ + private Map params; + + @Override + public String getSearchValue() { + return this.searchValue; + } + + @Override + public Map getParams() { + if (params == null) { + params = new HashMap<>(); + } + return params; + } +} diff --git a/ruoyi-generator/src/main/resources/vm/java/service.java.vm b/ruoyi-generator/src/main/resources/vm/java/service.java.vm new file mode 100644 index 0000000..f5f9b54 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/java/service.java.vm @@ -0,0 +1,59 @@ +package ${packageName}.service; + +import java.util.List; +import ${packageName}.domain.${ClassName}; + +/** + * ${functionName}Service接口 + * + * @author ${author} + */ +public interface I${ClassName}Service { + /** + * 查询${functionName} + * + * @param ${pkColumn.javaField} ${functionName}主键 + * @return ${functionName} + */ + ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}); + + /** + * 查询${functionName}列表 + * + * @param ${className} ${functionName} + * @return ${functionName}集合 + */ + List<${ClassName}> select${ClassName}List(${ClassName} ${className}); + + /** + * 新增${functionName} + * + * @param ${className} ${functionName} + * @return 结果 + */ + int insert${ClassName}(${ClassName} ${className}); + + /** + * 修改${functionName} + * + * @param ${className} ${functionName} + * @return 结果 + */ + int update${ClassName}(${ClassName} ${className}); + + /** + * 批量删除${functionName} + * + * @param ${pkColumn.javaField}s 需要删除的${functionName}主键集合 + * @return 结果 + */ + int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); + + /** + * 删除${functionName}信息 + * + * @param ${pkColumn.javaField} ${functionName}主键 + * @return 结果 + */ + int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}); +} diff --git a/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm b/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm new file mode 100644 index 0000000..cfd6277 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm @@ -0,0 +1,153 @@ +package ${packageName}.service.impl; + +import java.util.List; +#if($table.hasDate()) +#foreach($date in $table.dateImports()) +import $date; +#end +#end +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +#if($table.sub) +import java.util.ArrayList; +import com.ruoyi.common.utils.StringUtils; +import org.springframework.transaction.annotation.Transactional; +import ${packageName}.domain.${subClassName}; +#end +import ${packageName}.mapper.${ClassName}Mapper; +import ${packageName}.domain.${ClassName}; +import ${packageName}.service.I${ClassName}Service; + +/** + * ${functionName}Service业务层处理 + * + * @author ${author} + */ +@Service +public class ${ClassName}ServiceImpl implements I${ClassName}Service { + @Autowired + private ${ClassName}Mapper ${className}Mapper; + + /** + * 查询${functionName} + * + * @param ${pkColumn.javaField} ${functionName}主键 + * @return ${functionName} + */ + @Override + public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) { + return ${className}Mapper.selectBy${pkColumn.capJavaField}(${pkColumn.javaField}); + } + + /** + * 查询${functionName}列表 + * + * @param ${className} ${functionName} + * @return ${functionName} + */ + @Override + public List<${ClassName}> select${ClassName}List(${ClassName} ${className}) { + return ${className}Mapper.selectList(${className}); + } + + /** + * 新增${functionName} + * + * @param ${className} ${functionName} + * @return 结果 + */ +#if($table.sub) + @Transactional +#end + @Override + public int insert${ClassName}(${ClassName} ${className}) { +#foreach ($column in $columns) +#if($column.javaField == 'createTime') + ${className}.setCreateTime(#if($column.javaType == "Date")new Date()#else${column.javaType}.now()#end); +#end +#end +#if($table.sub) + int rows = ${className}Mapper.insert(${className}); + insert${subClassName}(${className}); + return rows; +#else + return ${className}Mapper.insert(${className}); +#end + } + + /** + * 修改${functionName} + * + * @param ${className} ${functionName} + * @return 结果 + */ +#if($table.sub) + @Transactional +#end + @Override + public int update${ClassName}(${ClassName} ${className}) { +#foreach ($column in $columns) +#if($column.javaField == 'updateTime') + ${className}.setUpdateTime(DateUtils.getNowDate()); +#end +#end +#if($table.sub) + ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}()); + insert${subClassName}(${className}); +#end + return ${className}Mapper.update(${className}); + } + + /** + * 批量删除${functionName} + * + * @param ${pkColumn.javaField}s 需要删除的${functionName}主键 + * @return 结果 + */ +#if($table.sub) + @Transactional +#end + @Override + public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s) { +#if($table.sub) + ${className}Mapper.delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaField}s); +#end + return ${className}Mapper.deleteBy${pkColumn.capJavaField}s(${pkColumn.javaField}s); + } + + /** + * 删除${functionName}信息 + * + * @param ${pkColumn.javaField} ${functionName}主键 + * @return 结果 + */ + @Override + public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) { +#if($table.sub) + ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField}); +#end + return ${className}Mapper.deleteBy${pkColumn.capJavaField}(${pkColumn.javaField}); + } +#if($table.sub) + + /** + * 新增${subTable.functionName}信息 + * + * @param ${className} ${functionName}对象 + */ + public void insert${subClassName}(${ClassName} ${className}) { + List<${subClassName}> ${subclassName}List = ${className}.get${subClassName}List(); + ${pkColumn.javaType} ${pkColumn.javaField} = ${className}.get${pkColumn.capJavaField}(); + if (StringUtils.isNotNull(${subclassName}List)) { + List<${subClassName}> list = new ArrayList<${subClassName}>(); + for (${subClassName} ${subclassName} : ${subclassName}List) { + ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField}); + list.add(${subclassName}); + } + if (list.size() > 0) { + ${className}Mapper.batch${subClassName}(list); + } + } + } +#end +} diff --git a/ruoyi-generator/src/main/resources/vm/java/sub-domain.java.vm b/ruoyi-generator/src/main/resources/vm/java/sub-domain.java.vm new file mode 100644 index 0000000..951aeab --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/java/sub-domain.java.vm @@ -0,0 +1,59 @@ +package ${packageName}.domain; + +#foreach ($import in $subImportList) +import ${import}; +#end +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import lombok.Data; +/** + * ${subTable.functionName}对象 ${subTableName} + * + * @author ${author} + * @date ${datetime} + */ +@Data +public class ${subClassName} extends BaseEntity { + private static final long serialVersionUID = 1L; + +#foreach ($column in $subTable.columns) +#if(!$table.isSuperColumn($column.javaField)) + /** $column.columnComment */ +#if($column.list) +#set($parentheseIndex=$column.columnComment.indexOf("(")) +#if($parentheseIndex != -1) +#set($comment=$column.columnComment.substring(0, $parentheseIndex)) +#else +#set($comment=$column.columnComment) +#end +#if($parentheseIndex != -1) + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") +#elseif($column.javaType == 'Date') + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") +#else + @Excel(name = "${comment}") +#end +#end + private $column.javaType $column.javaField; + +#end +#end + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) +#foreach ($column in $subTable.columns) +#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) +#set($AttrName=$column.javaField) +#else +#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) +#end + .append("${column.javaField}", get${AttrName}()) +#end + .toString(); + } +} diff --git a/ruoyi-generator/src/main/resources/vm/java/vo.java.vm b/ruoyi-generator/src/main/resources/vm/java/vo.java.vm new file mode 100644 index 0000000..1ee4490 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/java/vo.java.vm @@ -0,0 +1,28 @@ +package ${packageName}.pojo.vo; + +#foreach ($import in $importList) +import ${import}; +#end +#if(${table.audit} == 1) +import com.bryx.core.common.base.entity.BaseAudit; +#end +#if($table.sub) +import ${packageName}.pojo.dto.${subClassName}DTO; +#end +import lombok.Data; +/** + * ${functionName} 数据视图对象 + * + * @author ${author} + */ +@Data +public class ${ClassName}VO #if(${table.audit} == 1)extends BaseAudit#end { +#foreach ($column in $columns) +#if(!$table.isSuperColumn($column.javaField)) + private $column.javaType $column.javaField; +#end +#end +#if($table.sub) + private List<${subClassName}DTO> ${subclassName}List; +#end +} diff --git a/ruoyi-generator/src/main/resources/vm/js/api.js.vm b/ruoyi-generator/src/main/resources/vm/js/api.js.vm new file mode 100644 index 0000000..296d41a --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/js/api.js.vm @@ -0,0 +1,53 @@ +import request from '@/utils/request' + +// 查询${functionName}列表 +export function list${BusinessName}(query) { + return request({ + url: '/${moduleName}/${businessName}/list', + method: 'get', + params: query + }) +} + +// 查询${functionName}详细 +export function get${BusinessName}(${pkColumn.javaField}) { + return request({ + url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, + method: 'get' + }) +} + +// 新增${functionName} +export function add${BusinessName}(data) { + return request({ + url: '/${moduleName}/${businessName}', + method: 'post', + data: data + }) +} + +// 修改${functionName} +export function update${BusinessName}(data) { + return request({ + url: '/${moduleName}/${businessName}', + method: 'put', + data: data + }) +} + +// 删除${functionName} +export function del${BusinessName}(${pkColumn.javaField}) { + return request({ + url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, + method: 'delete' + }) +} + +// 导出${functionName} +export function export${BusinessName}(query) { + return request({ + url: '/${moduleName}/${businessName}/export', + method: 'get', + params: query + }) +} \ No newline at end of file diff --git a/ruoyi-generator/src/main/resources/vm/sql/sql.vm b/ruoyi-generator/src/main/resources/vm/sql/sql.vm new file mode 100644 index 0000000..3ff8c4f --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/sql/sql.vm @@ -0,0 +1,22 @@ +-- 菜单 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 1, sysdate(), '', null, '${functionName}菜单'); + +-- 按钮父菜单ID +SELECT @parentId := LAST_INSERT_ID(); + +-- 按钮 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('${functionName}查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 1, sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('${functionName}新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 1, sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('${functionName}修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 1, sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('${functionName}删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 1, sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('${functionName}导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 1, sysdate(), '', null, ''); diff --git a/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm new file mode 100644 index 0000000..a7febf1 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm @@ -0,0 +1,476 @@ + + + diff --git a/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm new file mode 100644 index 0000000..7a38d79 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm @@ -0,0 +1,629 @@ + + + diff --git a/ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm b/ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm new file mode 100644 index 0000000..48ba211 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm @@ -0,0 +1,200 @@ + + + + + +#foreach ($column in $columns) + +#end +#if(${table.audit} == 1) + + + + +#end + +#if($table.sub) + + + + + + +#foreach ($column in $subTable.columns) + +#end +#if(${subTable.audit} == 1) + + + + +#end + +#end + + + select#foreach($column in $columns) $column.columnName#if($velocityCount != $columns.size()),#end#end #if(${table.audit} == 1), create_by, create_time, update_by, update_time#end from ${tableName} + + + + + + + + insert into ${tableName} + +#foreach($column in $columns) + $column.columnName, +#end +#if(${table.audit} == 1) + create_by, + create_time, + update_by, + update_time, +#end + + +#foreach($column in $columns) + #{$column.javaField}, +#end +#if(${table.audit} == 1) + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, +#end + + + + + update ${tableName} + +#foreach($column in $columns) +#if($column.columnName != $pkColumn.columnName) + $column.columnName = #{$column.javaField}, +#end +#end +#if(${table.audit} == 1) + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, +#end + + where ${pkColumn.columnName} = #{${pkColumn.javaField}} + + + + delete from ${tableName} where ${pkColumn.columnName} = #{${pkColumn.javaField}} + + + + delete from ${tableName} where ${pkColumn.columnName} in + + #{${pkColumn.javaField}} + + + + insert into ${tableName} + + + $pkColumn.columnName, + + #foreach($column in $columns)#if($column.javaField != $pkColumn.javaField) ${column.columnName},#end#end + + #if(${table.audit} == 1)create_by, create_time, update_by, update_time#end + + + values + + + #{$pkColumn.javaField, jdbcType=$pkColumn.CapColumnType}, + + #foreach($column in $columns)#if($column.javaField != $pkColumn.javaField)#{${column.javaField}, jdbcType=$column.CapColumnType},#end#end + + #if(${table.audit} == 1)#{createBy}, #{createTime}, #{updateBy}, #{updateTime}#end + + + on duplicate key update + + + ${pkColumn.javaField} = #{${pkColumn.javaField},jdbcType=${pkColumn.CapColumnType}}, + +#foreach($column in $columns) +#if($column.javaField != $pkColumn.javaField) + ${column.columnName} = #{${column.javaField}, jdbcType=$column.CapColumnType}, +#end +#end +#if(${table.audit} == 1) + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, +#end + + +#if($table.sub) + + + delete from ${subTableName} where ${subTableFkName} in + + #{${subTableFkclassName}} + + + + + delete from ${subTableName} where ${subTableFkName} = #{${subTableFkclassName}} + + + + insert into ${subTableName}(#foreach($column in $subTable.columns) $column.columnName#if($velocityCount != $subTable.columns.size()),#end#end #if(${table.audit} == 1), create_by, create_time, update_by, update_time#end) values + + (#foreach($column in $subTable.columns)#{item.$column.javaField}#if($velocityCount != $subTable.columns.size()), #end#end #if(${table.audit} == 1), #{createBy}, #{createTime}, #{updateBy}, #{updateTime}#end) + + +#end + diff --git a/ruoyi-generator/src/test/java/com/ruoyi/generator/ApplicationTest.java b/ruoyi-generator/src/test/java/com/ruoyi/generator/ApplicationTest.java new file mode 100644 index 0000000..21ab343 --- /dev/null +++ b/ruoyi-generator/src/test/java/com/ruoyi/generator/ApplicationTest.java @@ -0,0 +1,69 @@ +package com.ruoyi.generator; + +import com.ruoyi.generator.domain.GenTable; +import com.ruoyi.generator.service.IGenTableService; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +@RunWith(SpringRunner.class) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = SpringAppTest.class) +@ActiveProfiles("local") +public class ApplicationTest { + @Autowired + @Qualifier("genTableServiceImpl") + private IGenTableService genTableService; + + @Test + public void test2() { + List tableNames = Arrays.asList( +// "pms_brand", +// "pms_product_category" , +// "pms_product", +// "pms_sku" +// "ums_member", +// "ums_member_address", +// "ums_member_wechat", +// "ums_member_cart" +// "oms_order", +// "oms_order_delivery_history", +// "oms_order_item", +// "oms_order_operate_history", +// "oms_aftersale", +// "oms_aftersale_item" + "aws_system_statistics" + ); + // 查询表信息 + List tableList = genTableService.selectGenTableByName(tableNames); + List notExist = new ArrayList<>(); + try { + tableList.forEach(it -> { + if (it.getTableId() == null) { + it.setAudit(1); + notExist.add(it); + } + }); + if (notExist.size() > 0) { + genTableService.importGenTable(notExist, -1L); + } + for (String tableName : tableNames) { + genTableService.generatorCode(tableName); + } + } finally { + // 删除生成 + if (notExist.size() > 0) { + Long[] ids = notExist.stream().map(GenTable::getTableId).toArray(Long[]::new); + genTableService.deleteGenTableByIds(ids); + } + } + } + +} diff --git a/ruoyi-generator/src/test/java/com/ruoyi/generator/CommonTest.java b/ruoyi-generator/src/test/java/com/ruoyi/generator/CommonTest.java new file mode 100644 index 0000000..7071e78 --- /dev/null +++ b/ruoyi-generator/src/test/java/com/ruoyi/generator/CommonTest.java @@ -0,0 +1,14 @@ +package com.ruoyi.generator; + +import cn.hutool.core.io.FileUtil; +import org.junit.jupiter.api.Test; + +import java.io.File; + +public class CommonTest { + @Test + public void testPath() { + System.out.println(System.getProperty("user.dir")); + System.out.println(FileUtil.getParent(System.getProperty("user.dir"), 1) + File.separator); + } +} diff --git a/ruoyi-generator/src/test/java/com/ruoyi/generator/SingleComponentTest.java b/ruoyi-generator/src/test/java/com/ruoyi/generator/SingleComponentTest.java new file mode 100644 index 0000000..1d73bdc --- /dev/null +++ b/ruoyi-generator/src/test/java/com/ruoyi/generator/SingleComponentTest.java @@ -0,0 +1,50 @@ +package com.ruoyi.generator; + +import com.ruoyi.generator.domain.GenTable; +import com.ruoyi.generator.mapper.GenTableColumnMapper; +import com.ruoyi.generator.mapper.GenTableMapper; +import com.ruoyi.generator.service.GenTableServiceImpl; +import com.ruoyi.generator.service.IGenTableService; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Bean; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +public class SingleComponentTest { + @TestConfiguration + static class EmployeeServiceImplTestContextConfiguration { + @Bean + public IGenTableService employeeService() { + return new GenTableServiceImpl(); + } + } + + @MockBean + private GenTableMapper genTableMapper; + @MockBean + private GenTableColumnMapper genTableColumnMapper; + + @Autowired + private IGenTableService genTableService; + + private String tableName = "sys_dept"; + + @Before + public void setUp() { + GenTable table = new GenTable(); + table.setTableName(tableName); + Mockito.when(genTableMapper.selectGenTableByName(tableName)) + .thenReturn(table); + } + + @Test + public void test1() { + genTableService.generatorCode(tableName); + } +} diff --git a/ruoyi-generator/src/test/java/com/ruoyi/generator/SpringAppTest.java b/ruoyi-generator/src/test/java/com/ruoyi/generator/SpringAppTest.java new file mode 100644 index 0000000..6fee30b --- /dev/null +++ b/ruoyi-generator/src/test/java/com/ruoyi/generator/SpringAppTest.java @@ -0,0 +1,16 @@ +package com.ruoyi.generator; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication( + scanBasePackages = {"com.ruoyi.generator"} +) +@MapperScan("com.ruoyi.generator.mapper") +public class SpringAppTest { + public static void main(String[] args) { + SpringApplication.run(SpringAppTest.class, args); + System.out.println("(♥◠‿◠)ノ゙ 若依启动成功 ლ(´ڡ`ლ)゙"); + } +} diff --git a/ruoyi-generator/src/test/resources/application.yml b/ruoyi-generator/src/test/resources/application.yml new file mode 100644 index 0000000..0fd7560 --- /dev/null +++ b/ruoyi-generator/src/test/resources/application.yml @@ -0,0 +1,102 @@ +spring: + datasource: + # driverClassName: org.h2.Driver + # url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;MODE=MySQL + # schema: classpath*:sql/init.sql + # data: classpath:sql/data.sql + driverClassName: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://rm-wz987gwxg397qojlao.mysql.rds.aliyuncs.com:3638/ry_mall?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&createDatabaseIfNotExist=true&allowPublicKeyRetrieval=true&allowMultiQueries=true + username: mall_cyl + password: asdfpCC_sodpfjoDD_piuPOi + jpa: + properties: + hibernate: + dialect: org.hibernate.dialect.H2Dialect + show-sql: true +mybatis-plus: + # 搜索指定包别名 + typeAliasesPackage: com.ruoyi.**.domain + # 配置mapper的扫描,找到所有的mapper.xml映射文件 + mapperLocations: classpath*:mapper/**/*Mapper.xml + # 加载全局的配置文件 + # configLocation: classpath:mybatis/mybatis-config.xml +logging: + level: + root: info +gen: + # 作者 + author: zcc + # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool + packageName: com.cyl.manager.aws + # 自动去除表前缀,默认是false + autoRemovePre: true + # 表前缀(生成类名不会包含表前缀,多个用逗号分隔) + tablePrefix: aws_ + # 一级权限名 + rootPermission: mall + # 模板根路径 + templateRootPath: vm2 + # 路径 + path: + # 后端根目录 + backPath: D:\workspace\RuoYi-Mall\ + # 后端 service 模块名 + serviceModule: ruoyi-mall + # 后端 api 模块名, 默认与 service 一致 + apiModule: ruoyi-mall + # 前端根目录 + frontPath: D:\workspace\ruoyi-mall-vue\ + # 前端 api 目录 + frontApiPath: src/api/aws + # 前端 view 目录 + frontViewPath: src/views/aws + # sql 目录 + sql: sql + # 环境变量 + env: + # 审计 的 基类(创建者,创建时间,更新者,更新时间) + baseAudit: com.ruoyi.common.core.domain.BaseAudit + # 树 的 基类 + baseTree: com.ruoyi.common.core.domain.TreeEntity + # 对于新增的模板,如果没有默认值,在这里进行配置 + fileMap: + "api.js.vm": "${frontPath}/${frontApiPath}/${className}.js" + "controller.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/controller/${ClassName}Controller.java" + "service.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/service/${ClassName}Service.java" + "mapper.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/mapper/${ClassName}Mapper.java" + "convert.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/convert/${ClassName}Convert.java" + "example.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/pojo/example/${ClassName}Example.java" + "query.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/pojo/query/${ClassName}Query.java" + "vo.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/pojo/vo/${ClassName}VO.java" + "domain.java.vm": "${backPath}/${apiModule}/${MAIN_JAVA}/${packageName}/domain/${ClassName}.java" + "mapper.xml.vm": "${backPath}/${serviceModule}/${MAIN_RESOURCES}/mapper/${moduleName}/${ClassName}Mapper.xml" + "sql.vm": "${backPath}/sql/${moduleName}/${className}.sql" + "h2.sql.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/db/${tableName}-h2.sql" + "add.vue.vm": "${frontPath}/${frontViewPath}/Add${ClassName}.vue" + "index.vue.vm": "${frontPath}/${frontViewPath}/${className}/index.vue" + "index-tree.vue.vm": "${frontPath}/${frontViewPath}/index.vue" + "sub-domain.java.vm": "${frontPath}/${frontViewPath}/Sub${ClassName}.vue" + templates: + - vm2/js/api.js.vm + - vm2/java/controller.java.vm + - vm2/java/service.java.vm + - vm2/java/mapper.java.vm + - vm2/java/convert.java.vm + - vm2/java/query.java.vm + - vm2/java/vo.java.vm + - vm2/java/domain.java.vm + - vm2/xml/mapper.xml.vm + - vm2/sql/sql.vm + testTemplates: + # - vm2/sql/h2.sql.vm + crudTemplates: + - vm2/vue/index.vue.vm + treeTemplates: + # - vm2/vue/index-tree.vue.vm + subTemplates: + # - vm2/vue/index.vue.vm + # - vm2/java/sub-domain.java.vm + type2component: + "String": "a-input(" + "LocalDate": "a-date-picker(" + "LocalDateTime": "a-date-picker(format=\"YYYY-MM-DD HH:mm\"" diff --git a/ruoyi-generator/src/test/resources/generator.properties b/ruoyi-generator/src/test/resources/generator.properties new file mode 100644 index 0000000..753c707 --- /dev/null +++ b/ruoyi-generator/src/test/resources/generator.properties @@ -0,0 +1,5 @@ +jdbc.driverClass=com.mysql.cj.jdbc.Driver +jdbc.connectionURL=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true&allowPublicKeyRetrieval=true +jdbc.userId=love_circle +jdbc.password=Flc2021! +root.path=C:\\workspace\\chengyule\\cdc\\bryx-platform\\bryx-emergency-duty-service diff --git a/ruoyi-generator/src/test/resources/generatorConfig.xml b/ruoyi-generator/src/test/resources/generatorConfig.xml new file mode 100644 index 0000000..7a7a886 --- /dev/null +++ b/ruoyi-generator/src/test/resources/generatorConfig.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
diff --git a/ruoyi-generator/src/test/resources/logback.xml b/ruoyi-generator/src/test/resources/logback.xml new file mode 100644 index 0000000..7cbd86f --- /dev/null +++ b/ruoyi-generator/src/test/resources/logback.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/lc.current.log + + + + ${log.path}/lc.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + + + + ${log.path}/lc-error.log + + + + ${log.path}/lc-error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + + + + + ${log.path}/sys-user.log + + + ${log.path}/sys-user.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-generator/src/test/resources/vm2/java/controller.java.vm b/ruoyi-generator/src/test/resources/vm2/java/controller.java.vm new file mode 100644 index 0000000..af765d0 --- /dev/null +++ b/ruoyi-generator/src/test/resources/vm2/java/controller.java.vm @@ -0,0 +1,93 @@ +package ${fullPackage}; + +import java.util.List; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import ${_fullClass.convert}; +import ${_fullClass.domain}; +import ${_fullClass.query}; +import ${_fullClass.service}; +import ${_fullClass.vo}; +import com.ruoyi.common.utils.poi.ExcelUtil; +/** + * ${functionName}Controller + * + * @author ${author} + * @date ${datetime} + */ +@Api(description ="${functionName}接口列表") +@RestController +@RequestMapping("/${moduleName}/${className}") +public class ${_className.controller} extends BaseController { + @Autowired + private ${_className.service} service; + @Autowired + private ${_className.convert} convert; + + @ApiOperation("查询${functionName}列表") + @PreAuthorize("@ss.hasPermi('${permissionPrefix}:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody ${_className.query} query, Pageable page) { + List<${_className.domain}> list = service.selectList(query, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + @ApiOperation("导出${functionName}列表") + @PreAuthorize("@ss.hasPermi('${permissionPrefix}:export')") + @Log(title = "${functionName}", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(${_className.query} query) { + List<${ClassName}> list = service.selectList(query, null); + ExcelUtil<${_className.vo}> util = new ExcelUtil<>(${_className.vo}.class); + return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "${functionName}数据")); + } + + @ApiOperation("获取${functionName}详细信息") + @PreAuthorize("@ss.hasPermi('${permissionPrefix}:query')") + @GetMapping(value = "/{${pkColumn.javaField}}") + public ResponseEntity<${ClassName}> getInfo(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}) { + return ResponseEntity.ok(service.selectBy${pkColumn.capJavaField}(${pkColumn.javaField})); + } + + @ApiOperation("新增${functionName}") + @PreAuthorize("@ss.hasPermi('${permissionPrefix}:add')") + @Log(title = "${functionName}", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody ${ClassName} ${className}) { + return ResponseEntity.ok(service.insert(${className})); + } + + @ApiOperation("修改${functionName}") + @PreAuthorize("@ss.hasPermi('${permissionPrefix}:edit')") + @Log(title = "${functionName}", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody ${ClassName} ${className}) { + return ResponseEntity.ok(service.update(${className})); + } + + @ApiOperation("删除${functionName}") + @PreAuthorize("@ss.hasPermi('${permissionPrefix}:remove')") + @Log(title = "${functionName}", businessType = BusinessType.DELETE) + @DeleteMapping("/{${pkColumn.javaField}}") + public ResponseEntity remove(@PathVariable ${pkColumn.javaType} ${pkColumn.javaField}) { + return ResponseEntity.ok(service.deleteBy${pkColumn.capJavaField}(${pkColumn.javaField})); + } +} diff --git a/ruoyi-generator/src/test/resources/vm2/java/convert.java.vm b/ruoyi-generator/src/test/resources/vm2/java/convert.java.vm new file mode 100644 index 0000000..0640a34 --- /dev/null +++ b/ruoyi-generator/src/test/resources/vm2/java/convert.java.vm @@ -0,0 +1,16 @@ +package ${fullPackage}; + +import org.mapstruct.Mapper; +import ${_fullClass.domain}; +import ${_fullClass.vo}; +import java.util.List; +/** + * ${functionName} DO <=> DTO <=> VO / BO / Query + * + * @author ${author} + */ +@Mapper(componentModel = "spring"#if($table.sub), uses = ${subClassName}Convert.class#end) +public interface ${ClassName}Convert { + + List<${_className.vo}> dos2vos(List<${_className.domain}> list); +} diff --git a/ruoyi-generator/src/test/resources/vm2/java/domain.java.vm b/ruoyi-generator/src/test/resources/vm2/java/domain.java.vm new file mode 100644 index 0000000..6b8cf3c --- /dev/null +++ b/ruoyi-generator/src/test/resources/vm2/java/domain.java.vm @@ -0,0 +1,55 @@ +package ${fullPackage}; + +#foreach ($import in $importList) +import ${import}; +#end +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +#if(($table.crud || $table.sub) && $table.audit == 1) +import ${env.baseAudit}; +#end +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * ${functionName}对象 ${tableName} + * + * @author ${author} + */ +@ApiModel(description="${functionName}对象") +#if(($table.crud || $table.sub) && $table.audit == 1) +#set($Entity="BaseAudit") +#end +@Data +@TableName("${tableName}") +public class ${ClassName}#if($Entity) extends ${Entity}#end { + private static final long serialVersionUID = 1L; + +#foreach ($column in $columns) +#if(!$table.isSuperColumn($column.javaField)) + @ApiModelProperty("$column.columnComment") +#if($column.list) +#set($parentheseIndex=$column.columnComment.indexOf("(")) +#if($parentheseIndex != -1) +#set($comment=$column.columnComment.substring(0, $parentheseIndex)) +#else +#set($comment=$column.columnComment) +#end +#if($parentheseIndex != -1) + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") +#elseif($column.isDate()) + @Excel(name = "${comment}", width = 30, dateFormat = "${column.dateFormat}") +#else + @Excel(name = "${comment}") +#end +#end + private $column.javaType $column.javaField; + +#end +#end +#if($table.sub) + /** $table.subTable.functionName信息 */ + private List<${subClassName}> ${subclassName}List; + +#end +} diff --git a/ruoyi-generator/src/test/resources/vm2/java/example.java.vm b/ruoyi-generator/src/test/resources/vm2/java/example.java.vm new file mode 100644 index 0000000..14c3938 --- /dev/null +++ b/ruoyi-generator/src/test/resources/vm2/java/example.java.vm @@ -0,0 +1,305 @@ +package ${fullPackage}; + +#foreach ($import in $importList) +import ${import}; +#end +import java.util.ArrayList; +import java.util.Date; +import java.util.Iterator; +import java.util.List; +import java.time.LocalDate; +import java.time.LocalDateTime; + +public class ${ClassName}Example { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public ${ClassName}Example() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + protected void addCriterionForJDBCDate(String condition, Date value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + addCriterion(condition, new java.sql.Date(value.getTime()), property); + } + + protected void addCriterionForJDBCDate(String condition, List values, String property) { + if (values == null || values.size() == 0) { + throw new RuntimeException("Value list for " + property + " cannot be null or empty"); + } + List dateList = new ArrayList<>(); + Iterator iter = values.iterator(); + while (iter.hasNext()) { + dateList.add(new java.sql.Date(iter.next().getTime())); + } + addCriterion(condition, dateList, property); + } + + protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property); + } +#foreach ($column in $columns) + public Criteria and${column.capJavaField}IsNull() { + addCriterion("${column.columnName} is null"); + return (Criteria) this; + } + + public Criteria and${column.capJavaField}IsNotNull() { + addCriterion("${column.columnName} is not null"); + return (Criteria) this; + } + + public Criteria and${column.capJavaField}EqualTo(${column.javaType} value) { + addCriterion("${column.columnName} =", value, "${column.javaField}"); + return (Criteria) this; + } + + public Criteria and${column.capJavaField}NotEqualTo(${column.javaType} value) { + addCriterion("${column.columnName} <>", value, "${column.javaField}"); + return (Criteria) this; + } + + public Criteria and${column.capJavaField}GreaterThan(${column.javaType} value) { + addCriterion("${column.columnName} >", value, "${column.javaField}"); + return (Criteria) this; + } + + public Criteria and${column.capJavaField}GreaterThanOrEqualTo(${column.javaType} value) { + addCriterion("${column.columnName} >=", value, "${column.javaField}"); + return (Criteria) this; + } + + public Criteria and${column.capJavaField}LessThan(${column.javaType} value) { + addCriterion("${column.columnName} <", value, "${column.javaField}"); + return (Criteria) this; + } + + public Criteria and${column.capJavaField}LessThanOrEqualTo(${column.javaType} value) { + addCriterion("${column.columnName} <=", value, "${column.javaField}"); + return (Criteria) this; + } +#if($column.javaType == 'String') + + public Criteria and${column.capJavaField}Like(${column.javaType} value) { + addCriterion("${column.columnName} like", value, "${column.javaField}"); + return (Criteria) this; + } + + public Criteria and${column.capJavaField}NotLike(${column.javaType} value) { + addCriterion("${column.columnName} not like", value, "${column.javaField}"); + return (Criteria) this; + } + +#end + public Criteria and${column.capJavaField}In(List<${column.javaType}> values) { + addCriterion("${column.columnName} in", values, "${column.javaField}"); + return (Criteria) this; + } + + public Criteria and${column.capJavaField}NotIn(List<${column.javaType}> values) { + addCriterion("${column.columnName} not in", values, "${column.javaField}"); + return (Criteria) this; + } + + public Criteria and${column.capJavaField}Between(${column.javaType} value1, ${column.javaType} value2) { + addCriterion("${column.columnName} between", value1, value2, "${column.javaField}"); + return (Criteria) this; + } + + public Criteria and${column.capJavaField}NotBetween(${column.javaType} value1, ${column.javaType} value2) { + addCriterion("${column.columnName} not between", value1, value2, "${column.javaField}"); + return (Criteria) this; + } +#end + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} diff --git a/ruoyi-generator/src/test/resources/vm2/java/mapper.java.vm b/ruoyi-generator/src/test/resources/vm2/java/mapper.java.vm new file mode 100644 index 0000000..ee7771a --- /dev/null +++ b/ruoyi-generator/src/test/resources/vm2/java/mapper.java.vm @@ -0,0 +1,21 @@ +package ${fullPackage}; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import ${_fullClass.domain}; + +/** + * ${functionName}Mapper接口 + * + * @author ${author} + */ +public interface ${ClassName}Mapper extends BaseMapper<${ClassName}> { + /** + * 查询${functionName}列表 + * + * @param ${className} ${functionName} + * @return ${functionName}集合 + */ + List<${ClassName}> selectByEntity(${ClassName} ${className}); +} diff --git a/ruoyi-generator/src/test/resources/vm2/java/query.java.vm b/ruoyi-generator/src/test/resources/vm2/java/query.java.vm new file mode 100644 index 0000000..b28af37 --- /dev/null +++ b/ruoyi-generator/src/test/resources/vm2/java/query.java.vm @@ -0,0 +1,32 @@ +package ${fullPackage}; + +#foreach ($import in $importList) +import ${import}; +#end +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * ${functionName} 查询 对象 + * + * @author ${author} + */ +@ApiModel(description="${functionName} 查询 对象") +@Data +public class ${_className.query} { +#foreach($column in $columns) +#if($column.query) +## 根据查询类型生成 EQ等于、NE不等于、GT大于、LT小于、LIKE模糊、BETWEEN范围 +## 范围查询, 使用数组实现 +#if($column.queryType == 'BETWEEN') + @ApiModelProperty("${column.genLabel()} 范围") + private ${column.javaType}[] ${column.javaField}${column.queryField}; +#else + @ApiModelProperty("${column.genLabel()} 精确匹配") + private ${column.javaType} ${column.javaField}${column.queryField}; +#end + +#end +#end +} diff --git a/ruoyi-generator/src/test/resources/vm2/java/service.java.vm b/ruoyi-generator/src/test/resources/vm2/java/service.java.vm new file mode 100644 index 0000000..a824463 --- /dev/null +++ b/ruoyi-generator/src/test/resources/vm2/java/service.java.vm @@ -0,0 +1,133 @@ +package ${fullPackage}; + +#foreach ($import in $importList) +import ${import}; +#end +import java.util.Arrays; +import java.util.List; +#if($table.hasDate()) +#foreach($date in $table.dateImports()) +import $date; +#end +#end +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import ${_fullClass.mapper}; +import #evaluate(${_fullClass.domain}); +import #evaluate(${_fullClass.query}); + +/** + * ${functionName}Service业务层处理 + * + * + * @author ${author} + */ +@Service +public class ${ClassName}Service { + @Autowired + private ${_className.mapper} ${className}Mapper; + + /** + * 查询${functionName} + * + * @param ${pkColumn.javaField} ${functionName}主键 + * @return ${functionName} + */ + public ${ClassName} selectBy${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) { + return ${className}Mapper.selectBy${pkColumn.capJavaField}(${pkColumn.javaField}); + } + + /** + * 查询${functionName}列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return ${functionName} + */ + public List<${_className.domain}> selectList(${_className.query} query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper<${_className.domain}> qw = new QueryWrapper<>(); +#foreach($column in $columns) +#if($column.query) +## 根据查询类型生成 EQ等于、NE不等于、GT大于、LT小于、LIKE模糊、BETWEEN范围 +## 范围查询, 使用数组实现 +#if($column.queryType == 'BETWEEN') + ${column.javaType}[] ${column.javaField}${column.queryField} = query.get${column.capJavaField}${column.queryField}(); + if (${column.javaField}${column.queryField} != null && ${column.javaField}${column.queryField}.length == 2) { + ${column.javaType} start = ${column.javaField}${column.queryField}[0]; + if (#if($column.javaType == 'String')!StringUtils.isEmpty(start)#{else}start != null#end) { + qw.ge("${column.columnName}", start); + } + ${column.javaType} end = ${column.javaField}Range[0]; + if (#if($column.javaType == 'String')!StringUtils.isEmpty(end) #{else}end != null#end) { + qw.le("${column.columnName}", end); + } + } +#else + ${column.javaType} ${column.javaField}${column.queryField} = query.get${column.capJavaField}${column.queryField}(); + if (#if($column.javaType == 'String')!StringUtils.isEmpty(${column.javaField}${column.queryField})#{else}${column.javaField}${column.queryField} != null#end) { + qw.${column.queryMethod}("${column.columnName}", ${column.javaField}${column.queryField}); + } +#end +#end +#end + return ${className}Mapper.selectList(qw); + } + + /** + * 新增${functionName} + * + * @param ${className} ${functionName} + * @return 结果 + */ +#if($table.sub) + @Transactional +#end + public int insert(${ClassName} ${className}) { +#foreach ($column in $columns) +#if($column.javaField == 'createTime') + ${className}.setCreateTime(#if($column.javaType == "Date")new Date()#else${column.javaType}.now()#end); +#end +#end +#if($table.sub) + int rows = ${className}Mapper.insert(${className}); + insert${subClassName}(${className}); + return rows; +#else + return ${className}Mapper.insert(${className}); +#end + } + + /** + * 修改${functionName} + * + * @param ${className} ${functionName} + * @return 结果 + */ +#if($table.sub) + @Transactional +#end + public int update(${ClassName} ${className}) { +#if($table.sub) + ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}()); + insert${subClassName}(${className}); +#end + return ${className}Mapper.updateById(${className}); + } + + /** + * 删除${functionName}信息 + * + * @param ${pkColumn.javaField} ${functionName}主键 + * @return 结果 + */ + public int deleteBy${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) { + return ${className}Mapper.deleteById(${pkColumn.javaField}); + } +} diff --git a/ruoyi-generator/src/test/resources/vm2/java/serviceImpl.java.vm b/ruoyi-generator/src/test/resources/vm2/java/serviceImpl.java.vm new file mode 100644 index 0000000..f6480c8 --- /dev/null +++ b/ruoyi-generator/src/test/resources/vm2/java/serviceImpl.java.vm @@ -0,0 +1,155 @@ +package ${fullPackage}; + +import java.util.Arrays; +import java.util.List; +#if($table.hasDate()) +#foreach($date in $table.dateImports()) +import $date; +#end +#end +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.apache.commons.lang3.StringUtils; +import ${_fullClass.mapper}; +import ${_fullClass.domain}; +import ${_fullClass.query}; +import ${_fullClass.service}; + +/** + * ${functionName}Service业务层处理 + * + * @author ${author} + */ +@Service +public class ${_className.serviceImpl} implements ${_className.service} { + @Autowired + private ${_className.mapper} ${className}Mapper; + + /** + * 查询${functionName} + * + * @param ${pkColumn.javaField} ${functionName}主键 + * @return ${functionName} + */ + @Override + public ${ClassName} selectBy${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) { + return ${className}Mapper.selectBy${pkColumn.capJavaField}(${pkColumn.javaField}); + } + + /** + * 查询${functionName}列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return ${functionName} + */ + @Override + public List<${_className.domain}> selectList(${_className.query} query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper<${_className.domain}> qw = new QueryWrapper<>(); +#foreach($column in $columns) +#if($column.query) +## 根据查询类型生成 EQ等于、NE不等于、GT大于、LT小于、LIKE模糊、BETWEEN范围 +## 范围查询, 使用数组实现 +#if($column.queryType == 'BETWEEN') + ${column.javaType}[] ${column.javaField}${column.queryField} = query.get${column.capJavaField}${column.queryField}(); + if (${column.javaField}${column.queryField} != null && ${column.javaField}${column.queryField}.length == 2) { + ${column.javaType} start = ${column.javaField}${column.queryField}[0]; + if (#if($column.javaType == 'String')!StringUtils.isEmpty(start)#{else}start != null#end) { + qw.ge("${column.columnName}", start); + } + ${column.javaType} end = ${column.javaField}Range[0]; + if (#if($column.javaType == 'String')!StringUtils.isEmpty(end) #{else}end != null#end) { + qw.le("${column.columnName}", end); + } + } +#else + ${column.javaType} ${column.javaField}${column.queryField} = query.get${column.capJavaField}${column.queryField}(); + if (#if($column.javaType == 'String')!StringUtils.isEmpty(${column.javaField}${column.queryField})#{else}${column.javaField}${column.queryField} != null#end) { + qw.${column.queryMethod}("${column.columnName}", ${column.javaField}${column.queryField}); + } +#end +#end +#end + return ${className}Mapper.selectList(qw); + } + + /** + * 新增${functionName} + * + * @param ${className} ${functionName} + * @return 结果 + */ +#if($table.sub) + @Transactional +#end + @Override + public int insert(${ClassName} ${className}) { +#foreach ($column in $columns) +#if($column.javaField == 'createTime') + ${className}.setCreateTime(#if($column.javaType == "Date")new Date()#else${column.javaType}.now()#end); +#end +#end +#if($table.sub) + int rows = ${className}Mapper.insert(${className}); + insert${subClassName}(${className}); + return rows; +#else + return ${className}Mapper.insert(${className}); +#end + } + + /** + * 修改${functionName} + * + * @param ${className} ${functionName} + * @return 结果 + */ +#if($table.sub) + @Transactional +#end + @Override + public int update(${ClassName} ${className}) { +#if($table.sub) + ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}()); + insert${subClassName}(${className}); +#end + return ${className}Mapper.updateById(${className}); + } + + /** + * 批量删除${functionName} + * + * @param ${pkColumn.javaField}s 需要删除的${functionName}主键 + * @return 结果 + */ +#if($table.sub) + @Transactional +#end + @Override + public int deleteBy${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s) { +#if($table.sub) + ${className}Mapper.delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaField}s); +#end + return ${className}Mapper.deleteBatchIds(Arrays.asList(${pkColumn.javaField}s)); + } + + /** + * 删除${functionName}信息 + * + * @param ${pkColumn.javaField} ${functionName}主键 + * @return 结果 + */ + @Override + public int deleteBy${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) { +#if($table.sub) + ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField}); +#end + return ${className}Mapper.deleteById(${pkColumn.javaField}); + } +} diff --git a/ruoyi-generator/src/test/resources/vm2/java/vo.java.vm b/ruoyi-generator/src/test/resources/vm2/java/vo.java.vm new file mode 100644 index 0000000..5c34821 --- /dev/null +++ b/ruoyi-generator/src/test/resources/vm2/java/vo.java.vm @@ -0,0 +1,47 @@ +package ${fullPackage}; + +#foreach ($import in $importList) +import ${import}; +#end +import com.ruoyi.common.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +#if(${table.audit} == 1) +import ${env.baseAudit}; +#end +#if($table.sub) +import ${packageName}.pojo.dto.${subClassName}DTO; +#end +import lombok.Data; +/** + * ${functionName} 数据视图对象 + * + * @author ${author} + */ +@Data +public class ${ClassName}VO #if(${table.audit} == 1)extends BaseAudit#end { +#foreach ($column in $columns) +#if(!$table.isSuperColumn($column.javaField) and $column.javaField != "delFlag") + /** $column.columnComment */ +#if($column.list) +#set($parentheseIndex=$column.columnComment.indexOf("(")) +#if($parentheseIndex != -1) + #set($comment=$column.columnComment.substring(0, $parentheseIndex)) +#else + #set($comment=$column.columnComment) +#end +#if($parentheseIndex != -1) + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") +#elseif($column.isDate()) + @JsonFormat(pattern = "${column.dateFormat}") + @Excel(name = "${comment}", width = 30, dateFormat = "${column.dateFormat}") +#else + @Excel(name = "${comment}") +#end +#end + private $column.javaType $column.javaField; +#end +#end +#if($table.sub) + private List<${subClassName}DTO> ${subclassName}List; +#end +} diff --git a/ruoyi-generator/src/test/resources/vm2/js/api.js.vm b/ruoyi-generator/src/test/resources/vm2/js/api.js.vm new file mode 100644 index 0000000..5d868f2 --- /dev/null +++ b/ruoyi-generator/src/test/resources/vm2/js/api.js.vm @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询${functionName}列表 +export function list${BusinessName}(query, pageReq) { + return request({ + url: '/${moduleName}/${className}/list', + method: 'post', + data: query, + params: pageReq + }) +} + +// 查询${functionName}详细 +export function get${BusinessName}(${pkColumn.javaField}) { + return request({ + url: '/${moduleName}/${className}/' + ${pkColumn.javaField}, + method: 'get' + }) +} + +// 新增${functionName} +export function add${BusinessName}(data) { + return request({ + url: '/${moduleName}/${className}', + method: 'post', + data: data + }) +} + +// 修改${functionName} +export function update${BusinessName}(data) { + return request({ + url: '/${moduleName}/${className}', + method: 'put', + data: data + }) +} + +// 删除${functionName} +export function del${BusinessName}(${pkColumn.javaField}) { + return request({ + url: '/${moduleName}/${className}/' + ${pkColumn.javaField}, + method: 'delete' + }) +} + +// 导出${functionName} +export function export${BusinessName}(query) { + return request({ + url: '/${moduleName}/${className}/export', + method: 'get', + params: query + }) +} diff --git a/ruoyi-generator/src/test/resources/vm2/sql/sql.vm b/ruoyi-generator/src/test/resources/vm2/sql/sql.vm new file mode 100644 index 0000000..1e10188 --- /dev/null +++ b/ruoyi-generator/src/test/resources/vm2/sql/sql.vm @@ -0,0 +1,22 @@ +-- 菜单 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('${functionName}', '${parentMenuId}', '1', '${className}', '${moduleName}/${className}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 1, sysdate(), '', null, '${functionName}菜单'); + +-- 按钮父菜单ID +SELECT @parentId := LAST_INSERT_ID(); + +-- 按钮 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('${functionName}查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 1, sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('${functionName}新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 1, sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('${functionName}修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 1, sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('${functionName}删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 1, sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('${functionName}导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 1, sysdate(), '', null, ''); diff --git a/ruoyi-generator/src/test/resources/vm2/vue/index-tree.vue.vm b/ruoyi-generator/src/test/resources/vm2/vue/index-tree.vue.vm new file mode 100644 index 0000000..a7febf1 --- /dev/null +++ b/ruoyi-generator/src/test/resources/vm2/vue/index-tree.vue.vm @@ -0,0 +1,476 @@ + + + diff --git a/ruoyi-generator/src/test/resources/vm2/vue/index.vue.vm b/ruoyi-generator/src/test/resources/vm2/vue/index.vue.vm new file mode 100644 index 0000000..fd571ef --- /dev/null +++ b/ruoyi-generator/src/test/resources/vm2/vue/index.vue.vm @@ -0,0 +1,593 @@ + + + diff --git a/ruoyi-generator/src/test/resources/vm2/xml/mapper.xml.vm b/ruoyi-generator/src/test/resources/vm2/xml/mapper.xml.vm new file mode 100644 index 0000000..2803423 --- /dev/null +++ b/ruoyi-generator/src/test/resources/vm2/xml/mapper.xml.vm @@ -0,0 +1,54 @@ + + + + + +#foreach ($column in $columns) + +#end +#if(${table.audit} == 1) + + + + +#end + + + + select#foreach($column in $columns) $column.columnName#if($velocityCount != $columns.size()),#end#end #if(${table.audit} == 1) #end from ${tableName} + + + + diff --git a/ruoyi-mall/.DS_Store b/ruoyi-mall/.DS_Store new file mode 100644 index 0000000..58d2dc9 Binary files /dev/null and b/ruoyi-mall/.DS_Store differ diff --git a/ruoyi-mall/pom.xml b/ruoyi-mall/pom.xml new file mode 100644 index 0000000..355be4a --- /dev/null +++ b/ruoyi-mall/pom.xml @@ -0,0 +1,111 @@ + + + 4.0.0 + + ruoyi + com.ruoyi + 3.7.0 + + ruoyi-mall + + 8 + 8 + + + + com.ruoyi + ruoyi-common + ${ruoyi.version} + + + com.ruoyi + ruoyi-system + ${ruoyi.version} + + + com.github.wechatpay-apiv3 + wechatpay-java + 0.2.9 + + + com.baomidou + mybatis-plus-boot-starter + ${mybatis.plus.version} + + + org.mapstruct + mapstruct + + + org.springframework.boot + spring-boot-starter + test + + + org.springframework.boot + spring-boot-starter-test + test + + + com.h2database + h2 + test + + + org.springframework.boot + spring-boot-test + test + + + junit + junit + test + + + + org.bouncycastle + bcprov-jdk15to18 + 1.79 + + + + + org.springframework + spring-test + test + + + io.springfox + springfox-boot-starter + ${swagger.version} + + + io.swagger + swagger-models + + + org.mapstruct + mapstruct + + + + + com.ruoyi + ruoyi-framework + + + + cn.felord + payment-spring-boot-starter + 1.0.19.RELEASE + + + + + org.springframework.retry + spring-retry + + + + diff --git a/ruoyi-mall/src/.DS_Store b/ruoyi-mall/src/.DS_Store new file mode 100644 index 0000000..8230472 Binary files /dev/null and b/ruoyi-mall/src/.DS_Store differ diff --git a/ruoyi-mall/src/main/.DS_Store b/ruoyi-mall/src/main/.DS_Store new file mode 100644 index 0000000..4a4ed1a Binary files /dev/null and b/ruoyi-mall/src/main/.DS_Store differ diff --git a/ruoyi-mall/src/main/java/.DS_Store b/ruoyi-mall/src/main/java/.DS_Store new file mode 100644 index 0000000..0afdf09 Binary files /dev/null and b/ruoyi-mall/src/main/java/.DS_Store differ diff --git a/ruoyi-mall/src/main/java/com/.DS_Store b/ruoyi-mall/src/main/java/com/.DS_Store new file mode 100644 index 0000000..2ad131f Binary files /dev/null and b/ruoyi-mall/src/main/java/com/.DS_Store differ diff --git a/ruoyi-mall/src/main/java/com/cyl/.DS_Store b/ruoyi-mall/src/main/java/com/cyl/.DS_Store new file mode 100644 index 0000000..abd3534 Binary files /dev/null and b/ruoyi-mall/src/main/java/com/cyl/.DS_Store differ diff --git a/ruoyi-mall/src/main/java/com/cyl/config/AESForWeixinGetPhoneNumber.java b/ruoyi-mall/src/main/java/com/cyl/config/AESForWeixinGetPhoneNumber.java new file mode 100644 index 0000000..0d308a0 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/config/AESForWeixinGetPhoneNumber.java @@ -0,0 +1,80 @@ +package com.cyl.config; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import org.bouncycastle.jce.provider.BouncyCastleProvider; + +import javax.crypto.Cipher; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; +import java.nio.charset.StandardCharsets; +import java.security.AlgorithmParameters; +import java.security.Key; +import java.security.NoSuchAlgorithmException; +import java.security.Security; +import java.security.spec.InvalidParameterSpecException; +import java.util.Base64; + +public class AESForWeixinGetPhoneNumber { + //加密方式 + private static String keyAlgorithm = "AES"; + //避免重复new生成多个BouncyCastleProvider对象,因为GC回收不了,会造成内存溢出 + //只在第一次调用decrypt()方法时才new 对象 + private static boolean initialized = false; + //用于Base64解密 + private Base64.Decoder decoder = Base64.getDecoder(); + + //待解密的数据 + private String originalContent; + //会话密钥sessionKey + private String encryptKey; + //加密算法的初始向量 + private String iv; + + public AESForWeixinGetPhoneNumber(String originalContent, String encryptKey, String iv) { + this.originalContent = originalContent; + this.encryptKey = encryptKey; + this.iv = iv; + } + + /** + * AES解密 + * 填充模式AES/CBC/PKCS7Padding + * 解密模式128 + * + * @return 解密后的信息对象 + */ + public JSONObject decrypt() { + initialize(); + try { + //数据填充方式 + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding","BC"); +// Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding"); + Key sKeySpec = new SecretKeySpec(decoder.decode(this.encryptKey), keyAlgorithm); + // 初始化 + cipher.init(Cipher.DECRYPT_MODE, sKeySpec, generateIV(decoder.decode(this.iv))); + byte[]data = cipher.doFinal(decoder.decode(this.originalContent)); + String datastr = new String(data, StandardCharsets.UTF_8); + return JSON.parseObject(datastr); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /**BouncyCastle作为安全提供,防止我们加密解密时候因为jdk内置的不支持改模式运行报错。**/ + private static void initialize() { + if (initialized) { + return; + } + Security.addProvider(new BouncyCastleProvider()); + initialized = true; + } + + // 生成iv + private static AlgorithmParameters generateIV(byte[] iv) throws NoSuchAlgorithmException, InvalidParameterSpecException { + AlgorithmParameters params = AlgorithmParameters.getInstance(keyAlgorithm); + params.init(new IvParameterSpec(iv)); + return params; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/config/RestTemplateConfig.java b/ruoyi-mall/src/main/java/com/cyl/config/RestTemplateConfig.java new file mode 100644 index 0000000..1788a6d --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/config/RestTemplateConfig.java @@ -0,0 +1,73 @@ +package com.cyl.config; + + +import org.apache.http.client.HttpClient; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.config.Registry; +import org.apache.http.config.RegistryBuilder; +import org.apache.http.conn.socket.ConnectionSocketFactory; +import org.apache.http.conn.socket.PlainConnectionSocketFactory; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.client.ClientHttpRequestFactory; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.web.client.RestTemplate; + +@Configuration +public class RestTemplateConfig { + //从连接池获取连接的超时时间,一般设置为较短; + @Value("${http-pool.connection-request-timeout}") + private int connectionRequestTimeout; + + //连接超时时间 + @Value("${http-pool.connection-timeout}") + private int connectionTimeout; + + //完成连接后,socket通信超时时间 + @Value("${http-pool.socket-timeout}") + private int socketTimeout; + + //单host(可以理解为单域名)最大并发数 + @Value("${http-pool.max-per-route}") + private int maxPerRoute; + + //连接池最大连接数 + @Value("${http-pool.max-total}") + private int maxTotal; + + @Bean + public RestTemplate restTemplate() { + return new RestTemplate(httpRequestFactory()); + } + + @Bean + public ClientHttpRequestFactory httpRequestFactory() { + return new HttpComponentsClientHttpRequestFactory(httpClient()); + } + + @Bean + public HttpClient httpClient() { + Registry registry = RegistryBuilder.create() + .register("http", PlainConnectionSocketFactory.getSocketFactory()) + .register("https", SSLConnectionSocketFactory.getSocketFactory()) + .build(); + PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry); + //设置整个连接池最大连接数 根据自己的场景决定 + connectionManager.setMaxTotal(maxTotal); + //路由是对maxTotal的细分 + connectionManager.setDefaultMaxPerRoute(maxPerRoute); + RequestConfig requestConfig = RequestConfig.custom() + .setSocketTimeout(socketTimeout)//服务器返回数据(response)的时间,超过该时间抛出read timeout + .setConnectTimeout(connectionTimeout)//连接上服务器(握手成功)的时间,超出该时间抛出connect timeout + .setConnectionRequestTimeout(connectionRequestTimeout)//从连接池中获取连接的超时时间,超过该时间未拿到可用连接,会抛出org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool + .build(); + return HttpClientBuilder.create() + .setDefaultRequestConfig(requestConfig) + .setConnectionManager(connectionManager) + .build(); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/config/WechatConfig.java b/ruoyi-mall/src/main/java/com/cyl/config/WechatConfig.java new file mode 100644 index 0000000..8d9c54d --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/config/WechatConfig.java @@ -0,0 +1,19 @@ +package com.cyl.config; + +import com.cyl.wechat.WechatPayConfig; +import com.wechat.pay.java.service.payments.jsapi.JsapiService; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.DependsOn; + +@Configuration +@DependsOn("WechatPayData") +@ConditionalOnProperty(prefix = "wechat", name = "enabled", havingValue = "true") +public class WechatConfig { + + @Bean + public JsapiService jsapiService(){ + return new JsapiService.Builder().config(WechatPayConfig.getInstance()).build(); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/external/ExternalException.java b/ruoyi-mall/src/main/java/com/cyl/external/ExternalException.java new file mode 100644 index 0000000..885a864 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/external/ExternalException.java @@ -0,0 +1,13 @@ +package com.cyl.external; + +import lombok.Data; + +@Data +public class ExternalException extends RuntimeException { + private String code; + + public ExternalException(String code, String message) { + super(message); + this.code = code; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/external/WechatUtil.java b/ruoyi-mall/src/main/java/com/cyl/external/WechatUtil.java new file mode 100644 index 0000000..fc8b09c --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/external/WechatUtil.java @@ -0,0 +1,136 @@ +package com.cyl.external; + +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.cyl.external.resp.AccessTokenResp; +import com.cyl.external.resp.BaseResp; +import com.cyl.external.resp.UserInfoResp; +import com.cyl.wechat.WechatPayData; +import com.ruoyi.common.exception.base.BaseException; +import com.ruoyi.common.utils.http.HttpUtils; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.codec.digest.DigestUtils; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.client.RestTemplate; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + +@Component +@ConfigurationProperties(prefix = "wechat") +@Slf4j +public class WechatUtil { + private static String appId; + private static String secret; + public void setAppId(String appId) { + WechatUtil.appId = appId; + } + public void setSecret(String secret) { + WechatUtil.secret = secret; + } + public static boolean validParam(String signature, String... arr) { + Arrays.sort(arr); + StringBuilder sb = new StringBuilder(); + String[] var2 = arr; + int var3 = arr.length; + + for(int var4 = 0; var4 < var3; ++var4) { + String a = var2[var4]; + sb.append(a); + } + + return signature.equals(DigestUtils.sha1Hex(sb.toString())); + } + private static final String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code"; + private static final String USER_INFO_URL = "https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN"; + public static AccessTokenResp getAccessToken(String code) { + String url = ACCESS_TOKEN_URL.replace("APPID", appId).replace("SECRET", secret).replace("CODE", code); + String res = HttpUtil.get(url); + AccessTokenResp resp = JSON.parseObject(res, AccessTokenResp.class); + validResp(resp); + return resp; + } + + public static UserInfoResp getUserInfo(String accessToken, String openid) { + String url = USER_INFO_URL.replace("ACCESS_TOKEN", accessToken).replace("OPENID", openid); + String res = HttpUtil.get(url); + UserInfoResp resp = JSON.parseObject(res, UserInfoResp.class); + validResp(resp); + return resp; + } + public static void validResp(BaseResp resp) { + if (resp.getErrcode() != null) { + throw new ExternalException(resp.getErrcode() + "", resp.getErrmsg()); + } + } + + public static Object getPhoneNumber(String code, Integer sourceType) + { + //通过appid和secret来获取token + //WXContent.APPID是自定义的全局变量 + //String tokenUrl = String.format("https://api.weixin.qq.com/cgi-bin/getStableAccessToken?grant_type=client_credential&appid=%s&secret=%s", appId, secret); + String tokenUrl = String.format("https://api.weixin.qq.com/cgi-bin/stable_token"); + log.info(tokenUrl.toString()); + + Map paramMap1 = new HashMap<>(); + paramMap1.put("grant_type","client_credential"); + if (new Integer("1").equals(sourceType)) { + paramMap1.put("appid", WechatPayData.staffAppId); + paramMap1.put("secret", WechatPayData.staffSecret); + }else { + paramMap1.put("appid", WechatPayData.miniProgramAppId); + paramMap1.put("secret", WechatPayData.miniProgramSecret); + } + + log.info(paramMap1.toString()); + String result = HttpUtils.sendPost(tokenUrl,JSONObject.toJSONString(paramMap1)); + //.post(tokenUrl, paramMap1); + //String result = HttpUtil.get(tokenUrl); + + log.info(result); + JSONObject token = JSON.parseObject(result); + + //通过token和code来获取用户手机号 + String url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + token.getString("access_token"); + log.info(url); + //封装请求体 + Map paramMap = new HashMap<>(); + paramMap.put("code", code); + + String phoneInfo = HttpUtils.sendPost(url, JSONObject.toJSONString(paramMap)); + //String phoneInfo = HttpUtil.post(url, paramMap); + + //封装请求头 +// HttpHeaders headers = new HttpHeaders(); +// headers.setContentType(MediaType.APPLICATION_JSON); +// +// HttpEntity> httpEntity = new HttpEntity<>(paramMap,headers); +// +// //通过RestTemplate发送请求,获取到用户手机号码 +// RestTemplate restTemplate = new RestTemplate(); +// ResponseEntity response = restTemplate.postForEntity(url, httpEntity, Object.class); + + log.info(phoneInfo); + + + JSONObject respPhoneObj = JSONObject.parseObject(phoneInfo); + JSONObject phoneObj = (JSONObject) respPhoneObj.get("phone_info"); + + //获取手机号 + String phone = phoneObj.getString("phoneNumber"); + + + //返回到前端展示 + return phone; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/external/resp/AccessTokenResp.java b/ruoyi-mall/src/main/java/com/cyl/external/resp/AccessTokenResp.java new file mode 100644 index 0000000..9f8589f --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/external/resp/AccessTokenResp.java @@ -0,0 +1,19 @@ +package com.cyl.external.resp; + +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; + +@Data +public class AccessTokenResp extends BaseResp { + @JSONField(name = "access_token") + private String accessToken; + @JSONField(name = "expires_in") + private Integer expiresIn; + @JSONField(name = "refresh_token") + private String refreshToken; + private String openid; + private String scope; + @JSONField(name = "is_snapshotuser") + private Integer snapshotuser; + private String unionid; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/external/resp/BaseResp.java b/ruoyi-mall/src/main/java/com/cyl/external/resp/BaseResp.java new file mode 100644 index 0000000..751df98 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/external/resp/BaseResp.java @@ -0,0 +1,9 @@ +package com.cyl.external.resp; + +import lombok.Data; + +@Data +public class BaseResp { + private Integer errcode; + private String errmsg; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/external/resp/UserInfoResp.java b/ruoyi-mall/src/main/java/com/cyl/external/resp/UserInfoResp.java new file mode 100644 index 0000000..929e321 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/external/resp/UserInfoResp.java @@ -0,0 +1,14 @@ +package com.cyl.external.resp; + +import lombok.Data; + +@Data +public class UserInfoResp extends BaseResp { + private String openid; + private String nickname; + private Integer sex; + private String province; + private String city; + private String country; + private String headimgurl; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/.DS_Store b/ruoyi-mall/src/main/java/com/cyl/h5/.DS_Store new file mode 100644 index 0000000..e75b544 Binary files /dev/null and b/ruoyi-mall/src/main/java/com/cyl/h5/.DS_Store differ diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/config/SecurityUtil.java b/ruoyi-mall/src/main/java/com/cyl/h5/config/SecurityUtil.java new file mode 100644 index 0000000..aacc66a --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/config/SecurityUtil.java @@ -0,0 +1,16 @@ +package com.cyl.h5.config; + +import com.cyl.manager.ums.domain.Member; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.framework.config.LocalDataUtil; +import org.springframework.stereotype.Service; + +@Service +public class SecurityUtil { + + public static Member getLocalMember() { + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + return member; + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/CategoryController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/CategoryController.java new file mode 100644 index 0000000..36e4a1c --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/CategoryController.java @@ -0,0 +1,29 @@ +package com.cyl.h5.controller; + +import com.cyl.manager.pms.domain.ProductCategory; +import com.cyl.manager.pms.service.ProductCategoryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/no-auth/category") +public class CategoryController { + @Autowired + private ProductCategoryService categoryService; + + @GetMapping("/all-categories") + public ResponseEntity> allCategories() { + return ResponseEntity.ok(categoryService.h5Categories()); + } + + @GetMapping("/category-by-id") + public ResponseEntity> getBrotherAndChild(@RequestParam Long id, @RequestParam(name = "withChild", defaultValue = "false") boolean withChild) { + return ResponseEntity.ok(categoryService.getBrotherAndChild(id, withChild)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5AppointmentController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5AppointmentController.java new file mode 100644 index 0000000..788da4b --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5AppointmentController.java @@ -0,0 +1,95 @@ +package com.cyl.h5.controller; + +import cn.hutool.core.util.ObjectUtil; +import com.cyl.h5.pojo.response.OrderPayResponse; +import com.cyl.h5.pojo.vo.form.AppointmentSubmitForm; +import com.cyl.h5.pojo.vo.form.OrderSubmitForm; +import com.cyl.h5.service.H5MemberAddressService; +import com.cyl.h5.service.H5MemberService; +import com.cyl.h5.service.H5OrderService; +import com.cyl.manager.oms.domain.Order; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.pojo.dto.MemberAddressDTO; +import com.cyl.manager.ums.pojo.vo.MemberAddressVO; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.redis.RedisService; +import com.ruoyi.framework.config.LocalDataUtil; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cglib.beans.BeanCopier; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/h5/appointment") +@Slf4j +public class H5AppointmentController { + @Autowired + private RedisService redisService; + @Autowired + private H5OrderService orderService; + + @Autowired + private H5MemberService memberService; + + @Autowired + private H5MemberAddressService h5MemberAddressService; + + @ApiOperation("创建预约单") + @PostMapping("/add") + public AjaxResult submit(@RequestBody AppointmentSubmitForm form) { + log.info("0 开始创建预约单:" + form); + + //1、查询会员 + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + if(ObjectUtil.isNull(member)){ + return AjaxResult.error("token校验失败"); + } + + //2、新建会员地址 + log.info("2 新建会员地址:" + member); + MemberAddressVO memberAddressVO = h5MemberAddressService.selectById(form.getAddressId()); + if(ObjectUtil.isNull(memberAddressVO)){ + return AjaxResult.error("地址不存在"); + } + Long memberId = member.getId(); + String redisKey = "h5_order_add" + memberId; + String redisValue = memberId + "_" + System.currentTimeMillis(); + try{ + //3、提交订单 + log.info("3 开始提交订单:" + memberAddressVO); + OrderSubmitForm orderSubmitForm = new OrderSubmitForm(); + final BeanCopier beanCopier = BeanCopier.create(AppointmentSubmitForm.class, OrderSubmitForm.class, false); + beanCopier.copy(form, orderSubmitForm, null); + orderSubmitForm.setAddressId(memberAddressVO.getId()); + + redisService.lock(redisKey, redisValue, 60); + Order order = orderService.submit(orderSubmitForm); + + //4、提交服务信息 +// log.info("4 提交服务信息:" + order); +// orderService.submitServiceInfo(order.getId(), form.getService()); +// orderService.submitOrderService(order.getId(), form.getPetOrderServices()); + //TODO 4、创建支付预付单 + log.info("4 创建支付预付单......"); + OrderPayResponse response = orderService.orderCreateAndPay(order, member, form.getOpenId()); + + log.info("5 创建订单完成:" + response); + return AjaxResult.successData(response); + //return ResponseEntity.ok(response); + }catch (Exception e){ + log.error("创建订单方法异常", e); + throw new RuntimeException("服务繁忙,稍后再试"); + }finally { + try { + redisService.unLock(redisKey, redisValue); + } catch (Exception e) { + e.printStackTrace(); + } + } + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5BondController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5BondController.java new file mode 100644 index 0000000..732ca6a --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5BondController.java @@ -0,0 +1,80 @@ +package com.cyl.h5.controller; + +import com.alibaba.fastjson.JSONObject; +import com.cyl.h5.pojo.vo.form.BondSubmitForm; +import com.cyl.h5.service.H5OrderService; +import com.cyl.manager.staff.domain.BondTransaction; +import com.cyl.manager.staff.domain.Staff; +import com.cyl.manager.staff.service.IBondTransactionService; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.redis.RedisService; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.framework.config.LocalDataUtil; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.math.BigDecimal; +import java.util.List; + +@RestController +@RequestMapping("/no-auth/bond") +@Slf4j +public class H5BondController { + @Autowired + private RedisService redisService; + @Autowired + private H5OrderService orderService; + + @Autowired + private IBondTransactionService bondTransactionService; + + @ApiOperation("发起保证金缴纳支付") + @PostMapping("/orderPay") + public AjaxResult orderPay(@RequestBody @Valid BondSubmitForm form) { + log.info("保证金缴纳,提交的数据:{}", JSONObject.toJSONString(form)); + Staff staff = (Staff) LocalDataUtil.getVar(Constants.STAFF_INFO); + Long staffId = staff.getId(); + + //防止用户重复提交 + String redisKey = "h5_oms_bond_order_pay_" + staffId; + String redisValue = staffId + "_" + System.currentTimeMillis(); + try { + redisService.lock(redisKey, redisValue, 60); + BigDecimal amount = new BigDecimal(200); + if (StringUtils.isNotEmpty(form.getTotalPrice())) { + amount = BigDecimal.valueOf(Integer.valueOf(form.getTotalPrice())); + } + return AjaxResult.success(orderService.bondPay(staff, form.getOpenId(), amount)); + } catch (Exception e) { + log.error("保证金缴纳支付方法异常", e); + throw new RuntimeException(e.getMessage()); + } finally { + try { + redisService.unLock(redisKey, redisValue); + } catch (Exception e) { + log.error("", e); + } + } + } + + + /** + * 获取员工保证金明细列表 + */ + @ApiOperation("获取员工保证金明细") + @GetMapping("/getBondPageList") + public ResponseEntity> getBondPageList(Pageable page) { + Staff staff = (Staff) LocalDataUtil.getVar(Constants.STAFF_INFO); + Long staffId = staff.getId(); + List list = bondTransactionService.getStaffBondList(staffId, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page) list).getTotal())); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5CommonController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5CommonController.java new file mode 100644 index 0000000..24eb6e4 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5CommonController.java @@ -0,0 +1,77 @@ +package com.cyl.h5.controller; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.manager.ums.domain.Address; +import com.cyl.manager.ums.mapper.AddressMapper; +import com.cyl.manager.ums.pojo.dto.AddressDTO; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.redis.RedisService; +import com.ruoyi.common.utils.OssUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.*; +import java.util.stream.Collectors; + +@RestController +@RequestMapping("/h5") +public class H5CommonController { + + @Autowired + private OssUtils ossUtils; + @Autowired + private AddressMapper addressMapper; + @Autowired + private RedisService redisService; + + + @GetMapping("/area") + public AjaxResult getAddressList() { + String addresses = redisService.getAddressList(); + if (StringUtils.isNotEmpty(addresses)) { + return AjaxResult.success(JSON.parseArray(addresses, AddressDTO.class)); + } + QueryWrapper
addressQueryWrapper = new QueryWrapper<>(); + addressQueryWrapper.in("level", Arrays.asList(0,1,2)); + List
addressList = addressMapper.selectList(addressQueryWrapper); + Map> cityMap = addressList.stream().filter(it -> it.getLevel() == 1).collect(Collectors.groupingBy(it -> it.getParentCode())); + Map> districtMap = addressList.stream().filter(it -> it.getLevel() == 2).collect(Collectors.groupingBy(it -> it.getParentCode())); + List result = new ArrayList<>(); + addressList.stream().filter(it -> it.getLevel() == 0).forEach(it -> { + AddressDTO dto = new AddressDTO(); + dto.setId(it.getCode()); + dto.setLevel("province"); + dto.setName(it.getName()); + dto.setPid(0L); + //获取城市列表 + List child = new ArrayList<>(); + if (cityMap.containsKey(it.getCode())) { + cityMap.get(it.getCode()).forEach(city -> { + AddressDTO cityDto = new AddressDTO(); + cityDto.setId(city.getCode()); + cityDto.setLevel("city"); + cityDto.setName(city.getName()); + cityDto.setPid(city.getParentCode()); + cityDto.setChildren(districtMap.containsKey(city.getCode()) ? + districtMap.get(city.getCode()).stream().map(district -> { + AddressDTO districtDto = new AddressDTO(); + districtDto.setId(district.getCode()); + districtDto.setLevel("district"); + districtDto.setName(district.getName()); + districtDto.setPid(district.getParentCode()); + return districtDto; + }).collect(Collectors.toList()) : Collections.EMPTY_LIST); + child.add(cityDto); + }); + } + dto.setChildren(child); + result.add(dto); + }); + redisService.setAddressList(JSON.toJSONString(result)); + return AjaxResult.success(result); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5CouponController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5CouponController.java new file mode 100644 index 0000000..b614664 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5CouponController.java @@ -0,0 +1,122 @@ +package com.cyl.h5.controller; + +import com.cyl.h5.config.SecurityUtil; +import com.cyl.h5.pojo.request.H5MemberCouponGetRequest; +import com.cyl.h5.pojo.request.H5MemberCouponRequest; +import com.cyl.h5.pojo.response.WechatMemberCouponResponse; +import com.cyl.h5.service.H5CouponService; +import com.cyl.h5.service.H5MemberCouponService; +import com.cyl.manager.marketing.domain.WechatMemberCoupon; +import com.cyl.manager.marketing.domain.WechatStock; +import com.cyl.manager.marketing.pojo.SendCouponRequest; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.service.MemberService; +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 商家券 + * + * @author daixiande + * @date 2024-05-06 + */ +@Api("商家券") +@RestController +@RequestMapping("/h5/coupon") +@Slf4j +public class H5CouponController extends BaseController +{ + @Autowired + private H5CouponService h5CouponService; + + @Autowired + private H5MemberCouponService h5MemberCouponService; + + @Autowired + private MemberService memberService; + + /** + * 查询商家券列表 + */ + @ApiOperation("查询商家券列表") + @GetMapping("/list") + public AjaxResult list() + { + startPage(); + WechatStock ws = new WechatStock(); + + Member member = null; + try { + member = SecurityUtil.getLocalMember(); + } catch (Exception e) { + e.printStackTrace(); + log.error("【优惠券领取】当前用户未登录"); + } + + List list = h5CouponService.selectWechatStocktForGet(member); + + return AjaxResult.success(list); + } + + /** + * 查询会员券列表 + */ + @ApiOperation("查询会员券列表") + @PostMapping("/listMemberCoupon") + public TableDataInfo listMemberCoupon(@RequestBody H5MemberCouponRequest h5MemberCouponRequest, Pageable page) + { + Member member = SecurityUtil.getLocalMember(); + h5MemberCouponRequest.setMemberId(member.getId()); + PageHelper.startPage(1, 100,"create_time desc"); + + List list = h5MemberCouponService.selectMemberCouponList(h5MemberCouponRequest); + + return getDataTable(list); + } + + /** + * 查询会员券列表 + */ + @ApiOperation("查询会员券列表") + @GetMapping("/listMemberCouponForOrder") + public TableDataInfo listMemberCoupon2() + { + Member member = SecurityUtil.getLocalMember(); + + List list = h5MemberCouponService.selectMemberCouponListForOrder(member.getId()); + + return getDataTable(list); + } + + @ApiOperation("领取优惠券") + @PostMapping("/get") + public AjaxResult get(@RequestBody H5MemberCouponGetRequest h5MemberCouponRequest) + { + Member member = SecurityUtil.getLocalMember(); + + String phone = memberService.getPhoneDecrypted(member.getPhoneEncrypted()); + + SendCouponRequest sendCouponRequest = new SendCouponRequest(); + sendCouponRequest.setPhone(phone); + sendCouponRequest.setStockId(h5MemberCouponRequest.getStockId()); + + int result = h5CouponService.sendCoupon(sendCouponRequest); + + if (result == 1) { + return AjaxResult.success(); + } + + return AjaxResult.error(); + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5CouponForNoAuthController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5CouponForNoAuthController.java new file mode 100644 index 0000000..44751ef --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5CouponForNoAuthController.java @@ -0,0 +1,59 @@ +package com.cyl.h5.controller; + +import com.cyl.h5.service.H5CouponService; +import com.cyl.h5.service.H5MemberCouponService; +import com.cyl.manager.marketing.domain.WechatStock; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.service.MemberService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 商家券 + * + * @author daixiande + * @date 2024-05-06 + */ +@Api("商家券") +@RestController +@RequestMapping("/no-auth/h5/coupon") +@Slf4j +public class H5CouponForNoAuthController extends BaseController +{ + @Autowired + private H5CouponService h5CouponService; + + @Autowired + private H5MemberCouponService h5MemberCouponService; + + @Autowired + private MemberService memberService; + + /** + * 查询商家券列表 + */ + @ApiOperation("查询商家券列表") + @GetMapping("/list") + public AjaxResult list() + { + startPage(); + WechatStock ws = new WechatStock(); + + Member member = null; + + List list = h5CouponService.selectWechatStocktForGet(member); + + + return AjaxResult.success(list); + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberAddressController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberAddressController.java new file mode 100644 index 0000000..86968dc --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberAddressController.java @@ -0,0 +1,82 @@ +package com.cyl.h5.controller; + +import com.cyl.h5.config.SecurityUtil; +import com.cyl.h5.pojo.dto.ProductDTO; +import com.cyl.h5.service.H5MemberAddressService; +import com.cyl.manager.pms.domain.Product; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.domain.MemberAddress; +import com.cyl.manager.ums.domain.Pet; +import com.cyl.manager.ums.pojo.dto.MemberAddressDTO; +import com.cyl.manager.ums.pojo.query.MemberAddressQuery; +import com.cyl.manager.ums.pojo.query.PetQuery; +import com.cyl.manager.ums.pojo.vo.MemberAddressVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; +@Api("会员地址") +@RestController +@RequestMapping("/h5/member/address") +public class H5MemberAddressController { + + @Autowired + private H5MemberAddressService h5MemberAddressService; + + @ApiOperation("会员地址列表") + @PostMapping("/list") + public ResponseEntity> getList(@RequestBody MemberAddressQuery query, Pageable page){ + Member member = SecurityUtil.getLocalMember(); + query.setMemberId(member.getId()); + List list = h5MemberAddressService.selectList(query,page); + List result = new ArrayList<>(); + for (MemberAddress memberAddress : list) { + MemberAddressVO memberAddressVO = new MemberAddressVO(); + BeanUtils.copyProperties(memberAddress, memberAddressVO); + result.add(memberAddressVO); + } + return ResponseEntity.ok(new PageImpl<>(result, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + @ApiOperation("获取会员默认地址") + @GetMapping("/default") + public ResponseEntity getDefault(){ + return ResponseEntity.ok(h5MemberAddressService.getDefault()); + } + + @ApiOperation("创建会员地址") + @PostMapping("/create") + public ResponseEntity create(@RequestBody MemberAddressDTO memberAddressDTO){ + Member member = SecurityUtil.getLocalMember(); + memberAddressDTO.setMemberId(member.getId()); + return ResponseEntity.ok(h5MemberAddressService.insert(memberAddressDTO)); + } + + @ApiOperation("更新会员地址") + @PutMapping("/update") + public ResponseEntity update(@RequestBody MemberAddressDTO memberAddressDTO){ + Member member = SecurityUtil.getLocalMember(); + memberAddressDTO.setMemberId(member.getId()); + return ResponseEntity.ok(h5MemberAddressService.update(memberAddressDTO)); + } + + @ApiOperation("获取会员地址详情") + @GetMapping("/{id}") + public ResponseEntity getInfo(@PathVariable Long id){ + return ResponseEntity.ok(h5MemberAddressService.selectById(id)); + } + + @ApiOperation("删除会员地址") + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(h5MemberAddressService.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberCartController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberCartController.java new file mode 100644 index 0000000..6a83d80 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberCartController.java @@ -0,0 +1,87 @@ +package com.cyl.h5.controller; + +import com.cyl.h5.service.H5MemberCartService; +import com.cyl.manager.ums.convert.MemberCartConvert; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.domain.MemberCart; +import com.cyl.manager.ums.pojo.query.MemberCartQuery; +import com.cyl.manager.ums.pojo.vo.MemberCartVO; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.framework.config.LocalDataUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +@RestController +@RequestMapping("/h5/cart") +public class H5MemberCartController { + @Autowired + private H5MemberCartService memberCartService; + @Autowired + private MemberCartConvert memberCartConvert; + + /** + * 当前用户的购物车商品数量 + * + * @return + */ + @GetMapping("goodscount") + public ResponseEntity goodscount() { + return ResponseEntity.ok(memberCartService.mineCartNum()); + } + /** + * 当前用户的购物车商品id列表 + * + * @return + */ + @GetMapping("cart-ids") + public ResponseEntity> cartIds() { + return ResponseEntity.ok(memberCartService.mineCartIds()); + } + + /** + * 添加购物车 + * + * @return 购物车商品 + */ + @PostMapping("add") + public ResponseEntity add(@RequestBody MemberCart memberCart) { + return ResponseEntity.ok(memberCartService.insert(memberCart)); + } + + /** + * 修改购物车 + * + * @return 是否修改 + */ + @PostMapping("modify") + public ResponseEntity modify(@Valid @RequestBody MemberCart memberCart) { + return ResponseEntity.ok(memberCartService.update(memberCart)); + } + + /** + * 修改购物车 + * + * @return 是否修改 + */ + @DeleteMapping("remove") + public ResponseEntity remove(@RequestBody String ids) { + return ResponseEntity.ok(memberCartService.deleteByIds(ids)); + } + + /** + * 购物车列表 + * + * @return 购物车列表 + */ + @GetMapping("list") + public ResponseEntity> remove() { + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + MemberCartQuery query = new MemberCartQuery(); + query.setMemberId(member.getId()); + return ResponseEntity.ok(memberCartService.selectList(query, null)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberController.java new file mode 100644 index 0000000..b97588c --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberController.java @@ -0,0 +1,100 @@ +package com.cyl.h5.controller; + +import com.alibaba.fastjson.JSON; +import com.cyl.h5.pojo.dto.H5LoginDTO; +import com.cyl.h5.pojo.request.RegisterRequest; +import com.cyl.h5.pojo.response.RegisterResponse; +import com.cyl.h5.pojo.response.ValidatePhoneResponse; +import com.cyl.h5.pojo.response.H5LoginResponse; +import com.cyl.h5.service.H5MemberService; +import com.cyl.manager.staff.service.IStaffService; +import com.cyl.manager.ums.pojo.vo.MemberV2VO; +import com.cyl.manager.ums.pojo.vo.MemberVO; +import com.ruoyi.common.core.domain.model.LoginMember; +import com.ruoyi.framework.web.service.TokenService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.util.Base64Utils; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; + +@RestController +@RequestMapping("/h5") +public class H5MemberController { + + @Autowired + private H5MemberService service; + @Autowired + private TokenService tokenService; + + @Autowired + private IStaffService iStaffservice; + + + @ApiOperation("会员注册") + @PostMapping("/register") + public ResponseEntity register(@RequestBody RegisterRequest request){ + return ResponseEntity.ok(service.register(request)); + } + + @ApiOperation("注册登录验证码校验手机号") + @GetMapping("/validate/{phone}") + public ResponseEntity validate(@PathVariable String phone){ + return ResponseEntity.ok(service.validate(phone)); + } + + @ApiOperation("手机号密码登录") + @PostMapping("/account/login") + public ResponseEntity accountLogin(@RequestBody String data){ + return ResponseEntity.ok(service.accountLogin(data)); + } + + @PostMapping("/wechat/login") + public ResponseEntity wechatLogin(String data) throws Exception { + if (StringUtils.isEmpty(data)) { + return ResponseEntity.ok(null); + } + H5LoginDTO params = JSON.parseObject(new String(Base64Utils.decodeFromString(data)), H5LoginDTO.class); + //登录来源:1 + if (new Integer(1).equals(params.getSourceType())) { + return ResponseEntity.ok(iStaffservice.wechatLogin(params)); + } + return ResponseEntity.ok(service.wechatLogin(params)); + } + + @ApiOperation("sms登录") + @PostMapping("/sms/login") + public ResponseEntity smsLogin(@RequestBody String data){ + return ResponseEntity.ok(service.smsLogin(data)); + } + + @ApiOperation("获取会员信息") + @GetMapping("/member/info") + public ResponseEntity getMemberInfo(){ + return ResponseEntity.ok(service.getMemberInfo()); + } + + @ApiOperation("获取会员信息V2") + @GetMapping("/member/infoV2") + public ResponseEntity getMemberInfoV2() { + return ResponseEntity.ok(service.getMemberInfoV2()); + } + + @ApiOperation("设置会员微信信息") + @PostMapping("/member/setWechatInfo") + public void setWechatInfo(@RequestBody String data){ + service.setWechatInfo(data); + } + + @ApiOperation("新增会员登录记录") + @GetMapping("/record/login") + public void add(HttpServletRequest request) { + LoginMember loginMember = tokenService.getLoginMember(request); + if (loginMember != null){ + service.insert(loginMember.getMemberId()); + } + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberDoorLockController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberDoorLockController.java new file mode 100644 index 0000000..2bc6004 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberDoorLockController.java @@ -0,0 +1,85 @@ +package com.cyl.h5.controller; + +import com.cyl.h5.config.SecurityUtil; +import com.cyl.h5.service.H5MemberDoorLockService; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.domain.MemberDoorLock; +import com.cyl.manager.ums.service.MemberDoorLockService; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.framework.config.LocalDataUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 门锁信息Controller + * + * @author daixiande + * @date 2024-07-07 + */ +@Api("门锁信息") +@RestController +@RequestMapping("/h5/memberDoorLock") +@Slf4j +public class H5MemberDoorLockController extends BaseController { + + @Autowired + private H5MemberDoorLockService memberDoorLockService; + +// /** +// * 获取门锁信息详细信息 +// */ +// @ApiOperation("获取门锁信息详细信息") +// @GetMapping(value = "/{id}") +// public AjaxResult getInfo(@PathVariable("id") Long id) { +// return AjaxResult.success(memberDoorLockService.selectMemberDoorLockById(id)); +// } + + /** + * 获取门锁信息详细信息 + */ + @ApiOperation("获取门锁信息详细信息") + @GetMapping + public AjaxResult getInfo() { + Member member = SecurityUtil.getLocalMember(); + return AjaxResult.success(memberDoorLockService.selectMemberDoorLockByOpenId(member.getId())); + } + + /** + * 新增门锁信息 + */ + @ApiOperation("新增门锁信息") + @PostMapping + public AjaxResult add(@RequestBody MemberDoorLock memberDoorLock) { + log.info("新增门锁信息:{}", memberDoorLock); + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + assert member != null; + memberDoorLock.setMemberId(member.getId()); + return toAjax(memberDoorLockService.insertMemberDoorLock(memberDoorLock)); + } + + /** + * 修改门锁信息 + */ + @ApiOperation("修改门锁信息") + @PutMapping + public AjaxResult edit(@RequestBody MemberDoorLock memberDoorLock) { + log.info("更新门锁信息:{}", memberDoorLock); + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + assert member != null; + memberDoorLock.setMemberId(member.getId()); + return toAjax(memberDoorLockService.updateMemberDoorLock(memberDoorLock)); + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberPointHistoryController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberPointHistoryController.java new file mode 100644 index 0000000..48f9d5a --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberPointHistoryController.java @@ -0,0 +1,74 @@ +package com.cyl.h5.controller; + +import java.util.Collections; +import java.util.List; + +import com.cyl.h5.controller.req.MemberPointHistoryReq; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.domain.MemberPointHistory; +import com.cyl.manager.ums.domain.Pet; +import com.cyl.manager.ums.service.MemberPointHistoryService; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.framework.config.LocalDataUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import com.ruoyi.common.core.controller.BaseController; + +/** + * 积分集点明细Controller + * + * @author daixiande + * @date 2024-07-13 + */ +@Api("积分集点明细") +@RestController +@RequestMapping("/h5/memberPointHistory") +public class H5MemberPointHistoryController extends BaseController { + @Autowired + private MemberPointHistoryService memberPointHistoryService; + + /** + * 查询积分集点明细列表 + */ + @ApiOperation("查询积分集点明细列表") + @GetMapping("/list") + public ResponseEntity> list( @RequestParam("type") String type, Pageable page) throws Exception { + startPage(); + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + if(StringUtils.isEmpty(Collections.singleton(member.getId()))){ + throw new Exception("memberId不能为空"); + } + if(StringUtils.isEmpty(type)){ + throw new Exception("type不能为空"); + } + List list = memberPointHistoryService.selectMemberPointHistoryList(member.getId(),type,page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + + } + + /** + * 获取积分集点明细详细信息 + */ + @ApiOperation("获取积分集点明细详细信息") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Integer id) { + return memberPointHistoryService.selectMemberPointHistoryById(id); + } + + /** + * 新增积分集点明细 + */ + @ApiOperation("新增积分集点明细") + @PostMapping + public ResponseEntity add(@RequestBody MemberPointHistory memberPointHistory) { + return memberPointHistoryService.insertMemberPointHistory(memberPointHistory); + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5OrderController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5OrderController.java new file mode 100644 index 0000000..cdbbd04 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5OrderController.java @@ -0,0 +1,226 @@ +package com.cyl.h5.controller; + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONObject; +import com.cyl.h5.pojo.dto.ApplyRefundDTO; +import com.cyl.h5.pojo.dto.OrderCreateDTO; +import com.cyl.h5.pojo.request.CancelOrderRequest; +import com.cyl.h5.pojo.request.OrderPayRequest; +import com.cyl.h5.pojo.response.OrderPayResponse; +import com.cyl.h5.pojo.vo.AftersaleRefundInfoVO; +import com.cyl.h5.pojo.vo.CountOrderVO; +import com.cyl.h5.pojo.vo.H5OrderVO; +import com.cyl.h5.pojo.vo.OrderCalcVO; +import com.cyl.h5.pojo.vo.form.OrderSubmitForm; +import com.cyl.h5.service.H5OrderService; +import com.cyl.manager.oms.domain.Order; +import com.cyl.manager.ums.domain.Member; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.redis.RedisService; +import com.ruoyi.framework.config.LocalDataUtil; +import io.netty.handler.codec.ProtocolDetectionResult; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; + +@RestController +@RequestMapping("/h5/order") +@Slf4j +public class H5OrderController { + @Autowired + private RedisService redisService; + @Autowired + private H5OrderService service; + + @ApiOperation("下单") + @PostMapping("/add") + public ResponseEntity submit(@RequestBody OrderSubmitForm form) { + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + Long memberId = member.getId(); + String redisKey = "h5_order_add" + memberId; + String redisValue = memberId + "_" + System.currentTimeMillis(); + try{ + redisService.lock(redisKey, redisValue, 60); + return ResponseEntity.ok(service.submit(form)); + }catch (Exception e){ + log.info("创建订单方法异常", e); + throw new RuntimeException("服务繁忙,稍后再试"); + }finally { + try { + redisService.unLock(redisKey, redisValue); + } catch (Exception e) { + e.printStackTrace(); + } + } + } +// @PostMapping("orders") +// public ResponseEntity> queryOrderPage(@RequestBody OrderH5Query query, Pageable pageReq) { +// return ResponseEntity.ok(service.queryOrderPage(query, pageReq)); +// } + + @ApiOperation("下单前校验") + @PostMapping("/addOrderCheck") + public ResponseEntity addOrderCheck(@RequestBody OrderCreateDTO orderCreateDTO){ + return ResponseEntity.ok(service.addOrderCheck(orderCreateDTO)); + } + + @ApiOperation("订单列表") + @GetMapping("/page") + public ResponseEntity> orderPage(Integer status, Pageable pageable){ + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + return ResponseEntity.ok(service.orderPage(status, member.getId(), pageable)); + } + + @ApiOperation("订单列表") + @GetMapping("/listByOpenid") + public ResponseEntity> orderPageByOpenid(Integer status, String openid, Pageable pageable){ + List statusList = new ArrayList<>(); + if (status == -1) { + statusList.add(1); + statusList.add(2); + statusList.add(3); + + } else { + statusList.add(status); + } + return ResponseEntity.ok(service.orderPageByOpenid(statusList, openid, pageable)); + } + + @ApiOperation("订单详情") + @GetMapping("/orderDetail") + public ResponseEntity orderDetail(@RequestParam(required = false) Long orderId){ + if (orderId == null){ + throw new RuntimeException("系统繁忙"); + } + return ResponseEntity.ok(service.orderDetail(orderId)); + } + + @ApiOperation("确认收货") + @GetMapping("/orderComplete") + public ResponseEntity orderComplete(Long orderId) { + log.info("确认收货,订单id:"+orderId); + String redisKey = "h5_oms_order_complete_"+orderId; + String redisValue = orderId+"_"+System.currentTimeMillis(); + try{ + redisService.lock(redisKey,redisValue,60); + return ResponseEntity.ok(service.orderComplete(orderId)); + }catch (Exception e){ + log.error("确认收货异常",e); + throw new RuntimeException(e.getMessage()); + }finally { + try{ + redisService.unLock(redisKey,redisValue); + }catch (Exception e){ + log.error("",e); + } + } + } + + @ApiOperation("订单数量统计") + @GetMapping("/countOrder") + public ResponseEntity orderNumCount(){ + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + Long memberId = member.getId(); + return ResponseEntity.ok(service.orderNumCount(memberId)); + } + + @ApiOperation("取消订单") + @PostMapping("/orderCancel") + public ResponseEntity orderCancel(@RequestBody CancelOrderRequest request){ + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + String redisKey = "h5_oms_order_cancel_"+ request.getIdList().get(0); + String redisValue = request.getIdList().get(0)+"_"+System.currentTimeMillis(); + try{ + redisService.lock(redisKey,redisValue,60); + return ResponseEntity.ok(service.orderBatchCancel(request, member.getId())); + }catch (Exception e){ + log.error("订单取消方法异常",e); + throw new RuntimeException("订单取消失败"); + }finally { + try { + redisService.unLock(redisKey,redisValue); + }catch (Exception e){ + log.error("",e); + } + } + } + + @ApiOperation("订单支付") + @PostMapping("/orderPay") + public ResponseEntity orderPay(@RequestBody OrderPayRequest req){ + log.info("订单支付","提交的数据:"+JSONObject.toJSONString(req)); + String redisKey = "h5_oms_order_pay_"+req.getPayId(); + String redisValue = req.getPayId()+"_"+System.currentTimeMillis(); + try { + redisService.lock(redisKey, redisValue, 60); + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + Long memberId = member.getId(); + req.setMemberId(memberId); + return ResponseEntity.ok(service.orderPay(req)); + }catch (Exception e){ + log.error("支付方法异常", e); + throw new RuntimeException(e.getMessage()); + }finally { + try{ + redisService.unLock(redisKey,redisValue); + }catch (Exception e){ + log.error("",e); + } + } + } + + @ApiOperation("申请售后") + @PostMapping("/applyRefund") + public ResponseEntity applyRefund(@RequestBody ApplyRefundDTO applyRefundDTO){ + String redisKey = "h5_oms_order_applyRefund_" + applyRefundDTO.getOrderId(); + String redisValue = applyRefundDTO.getOrderId() + "_" + System.currentTimeMillis(); + try{ + redisService.lock(redisKey, redisValue, 60); + return ResponseEntity.ok(service.applyRefund(applyRefundDTO)); + }catch (Exception e){ + log.error("申请售后发生异常",e); + throw new RuntimeException(e.getMessage()); + }finally { + try { + redisService.unLock(redisKey, redisValue); + } catch (Exception e) { + log.error("", e); + } + } + } + + @ApiOperation("取消售后") + @GetMapping("/cancelRefund") + public ResponseEntity cancelRefund(Long orderId){ + log.info("【取消售后】订单id:" + orderId); + String redisKey = "h5_oms_order_cancelRefund_" + orderId; + String redisValue = orderId + "_" + System.currentTimeMillis(); + try{ + redisService.lock(redisKey, redisValue, 60); + return ResponseEntity.ok(service.cancelRefund(orderId)); + }catch (Exception e){ + log.error("取消售后发生异常",e); + throw new RuntimeException(e.getMessage()); + }finally { + try { + redisService.unLock(redisKey, redisValue); + } catch (Exception e) { + log.error("", e); + } + } + } + + @ApiOperation("售后订单详情") + @GetMapping("/refundOrderDetail") + public ResponseEntity refundOrderDetail(@RequestParam Long orderId){ + return ResponseEntity.ok(service.refundOrderDetail(orderId)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5OssController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5OssController.java new file mode 100644 index 0000000..c5c1cab --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5OssController.java @@ -0,0 +1,43 @@ +package com.cyl.h5.controller; + +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.OssUtils; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +@RestController +@Api(tags = "OSS对象存储Controller") +@RequestMapping("/h5/oss") +public class H5OssController { + @Autowired + OssUtils ossUtils; + + @PostMapping("upload") + public AjaxResult uploadFile(MultipartFile file) { + //返回上传oss的url + String url = ossUtils.uploadOneFile(file); + AjaxResult ajax = AjaxResult.success(); + ajax.put("fileName", file.getOriginalFilename()); + ajax.put("url", url); + return ajax; + } + + @PostMapping("uploadArrayFile") + public List uploadArrayFile(MultipartFile[] files) { + //返回上传oss的url + return ossUtils.uploadArrayFile(files); + } + + @PostMapping("deleteFile") + public boolean deleteFile(@RequestBody String fileUrl) { + //返回是否删除成功 + return ossUtils.deleteFile(fileUrl); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5PetCareController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5PetCareController.java new file mode 100644 index 0000000..6be24df --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5PetCareController.java @@ -0,0 +1,90 @@ +package com.cyl.h5.controller; + +import com.cyl.h5.service.H5PetCareService; +import com.cyl.manager.ums.domain.PetCare; +import com.cyl.manager.ums.service.PetCareService; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 宠物服务档案Controller + * + * @author daixiande + * @date 2024-05-25 + */ +@Api("宠物服务档案") +@RestController +@RequestMapping("/h5/ums/petCare") +public class H5PetCareController extends BaseController { + @Autowired + private H5PetCareService petCareService; + + /** + * 查询宠物服务档案列表 + */ + @ApiOperation("查询宠物服务档案列表") + @GetMapping("/list") + public TableDataInfo list(PetCare petCare) { + startPage(); + List list = petCareService.selectPetCareList(petCare); + return getDataTable(list); + } + + /** + * 导出宠物服务档案列表 + */ + @ApiOperation("导出宠物服务档案列表") + @GetMapping("/export") + public AjaxResult export(PetCare petCare) { + List list = petCareService.selectPetCareList(petCare); + ExcelUtil util = new ExcelUtil(PetCare.class); + return util.exportExcel(list, "宠物服务档案数据"); + } + + /** + * 获取宠物服务档案详细信息 + */ + @ApiOperation("获取宠物服务档案详细信息") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Integer id) { + return AjaxResult.success(petCareService.selectPetCareByPetId(id)); + } + + /** + * 新增宠物服务档案 + */ + @ApiOperation("新增宠物服务档案") + @PostMapping + public AjaxResult add(@RequestBody PetCare petCare) { + return toAjax(petCareService.insertPetCare(petCare)); + } + + /** + * 修改宠物服务档案 + */ + @ApiOperation("修改宠物服务档案") + @PutMapping + public AjaxResult edit(@RequestBody PetCare petCare) { + return toAjax(petCareService.updatePetCare(petCare)); + } + + /** + * 删除宠物服务档案 + */ + @ApiOperation("删除宠物服务档案") + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Integer[] ids) { + return toAjax(petCareService.deletePetCareByIds(ids)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5PetController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5PetController.java new file mode 100644 index 0000000..a4de8b3 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5PetController.java @@ -0,0 +1,91 @@ +package com.cyl.h5.controller; + +import com.cyl.h5.config.SecurityUtil; +import com.cyl.h5.service.H5PetService; +import com.cyl.manager.ums.domain.Pet; +import com.cyl.manager.ums.pojo.query.PetQuery; +import com.cyl.manager.ums.pojo.vo.PetVO; +import com.cyl.manager.ums.domain.Member; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.framework.config.LocalDataUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 宠物档案Controller + * + * @author daixiande + * @date 2024-05-05 + */ +@Api("宠物档案") +@RestController +@RequestMapping("/h5/ums/pet") +public class H5PetController extends BaseController { + @Autowired + private H5PetService h5PetService; + + /** + * 查询宠物档案列表 + */ + @ApiOperation("查询宠物档案列表") + @PostMapping("/list") + public ResponseEntity> list( Pageable page) { + Member member = SecurityUtil.getLocalMember(); + PetQuery pet = new PetQuery(); + pet.setOwner(String.valueOf(member.getId())); + List list = h5PetService.selectList(pet, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + /** + * 获取宠物档案详细信息 + */ + @ApiOperation("获取宠物档案详细信息") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Integer id) { + return ResponseEntity.ok(h5PetService.selectPetById(id)); + } + /** + * 新增宠物档案 + */ + @ApiOperation("新增宠物档案") + @PostMapping + public ResponseEntity add(@RequestBody PetVO petVO) { + Member member = SecurityUtil.getLocalMember(); + petVO.setOwner(String.valueOf(member.getId())); + return ResponseEntity.ok(h5PetService.insertPet(petVO)); + } + + /** + * 修改宠物档案 + */ + @ApiOperation("修改宠物档案") + @PutMapping + public AjaxResult edit(@RequestBody PetVO petVO) { + Member member = SecurityUtil.getLocalMember(); + petVO.setOwner(String.valueOf(member.getId())); + return toAjax(h5PetService.updatePet(petVO)); + } + + /** + * 删除宠物档案 + */ + @ApiOperation("删除宠物档案") + @DeleteMapping("/{ids}") + public ResponseEntity remove(@PathVariable Integer[] ids) { + return ResponseEntity.ok(h5PetService.deletePetByIds(ids)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5ProductController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5ProductController.java new file mode 100644 index 0000000..7582fa9 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5ProductController.java @@ -0,0 +1,53 @@ +package com.cyl.h5.controller; + +import com.cyl.h5.pojo.dto.ProductDTO; +import com.cyl.h5.pojo.vo.ProductDetail; +import com.cyl.manager.pms.convert.ProductConvert; +import com.cyl.manager.pms.domain.Product; +import com.cyl.manager.pms.pojo.query.ProductQuery; +import com.cyl.manager.pms.service.ProductService; +import com.cyl.manager.pms.service.SkuService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/no-auth/product") +public class H5ProductController { + @Autowired + private ProductService productService; + @Autowired + private ProductConvert productConvert; + + @Autowired + private SkuService skuService; + + @ApiOperation("产品列表PLP") + @PostMapping("/list") + public ResponseEntity> queryGoodByPage(@RequestBody ProductQuery query, Pageable page) { + List pageRes = productService.selectList(query, page); + List productDTOList = productConvert.dos2dtos(pageRes); + + if (query.isNeedSku()) { + productDTOList.forEach(productDTO -> { + productDTO.setSkus(skuService.queryByProductID(productDTO.getId())); + }); + } + + return ResponseEntity.ok(new PageImpl<>(productDTOList, page, ((com.github.pagehelper.Page) pageRes).getTotal())); + } + + + @ApiOperation("产品详情PDP") + @GetMapping("/detail/{id}") + public ResponseEntity queryDetail(@PathVariable Long id) { + ProductDetail detail = productService.queryDetail(id); + return ResponseEntity.ok(detail); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5SysConfigController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5SysConfigController.java new file mode 100644 index 0000000..9205468 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5SysConfigController.java @@ -0,0 +1,39 @@ +package com.cyl.h5.controller; + +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysDictData; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.service.ISysConfigService; +import com.ruoyi.system.service.ISysDictTypeService; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; + +/** + * 数据字典信息 + * + * @author daixiande + */ +@Api("系统配置信息") +@RestController +@RequestMapping("/h5/system/config") +public class H5SysConfigController { + + @Autowired + private ISysConfigService sysConfigService; + + /** + * 根据字典类型查询字典数据信息 + */ + @GetMapping(value = "/{key}") + public AjaxResult dictType(@PathVariable String key) + { + return AjaxResult.success(sysConfigService.selectConfigByKey(key)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5SysDictDataController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5SysDictDataController.java new file mode 100644 index 0000000..f66a5d5 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5SysDictDataController.java @@ -0,0 +1,43 @@ +package com.cyl.h5.controller; + +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysDictData; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.service.ISysDictTypeService; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; + +/** + * 数据字典信息 + * + * @author daixiande + */ +@Api("系统配置信息") +@RestController +@RequestMapping("/h5/system/dict/data") +public class H5SysDictDataController { + + @Autowired + private ISysDictTypeService dictTypeService; + + /** + * 根据字典类型查询字典数据信息 + */ + @GetMapping(value = "/type/{dictType}") + public AjaxResult dictType(@PathVariable String dictType) + { + List data = dictTypeService.selectDictDataByType(dictType); + if (StringUtils.isNull(data)) + { + data = new ArrayList(); + } + return AjaxResult.success(data); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/HomeController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/HomeController.java new file mode 100644 index 0000000..5885cc1 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/HomeController.java @@ -0,0 +1,85 @@ +package com.cyl.h5.controller; + +import com.cyl.h5.pojo.vo.HomeConfigVO; +import com.cyl.manager.pms.service.ProductCategoryService; +import com.cyl.tencent.OrderMessageModel; +import com.ruoyi.common.core.domain.entity.SysDictData; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.service.ISysConfigService; +import com.ruoyi.system.service.ISysDictTypeService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.BlockingQueue; + +@RestController +@RequestMapping("/no-auth/home") +public class HomeController { + @Autowired + private ISysConfigService sysConfigService; + @Autowired + private ProductCategoryService categoryService; + + @Autowired + @Qualifier("taskQueue") + private BlockingQueue taskQueue; + + @Autowired + private ISysDictTypeService dictTypeService; + + /** + * 首页配置 + * + * @return 首页配置 + */ + @ApiOperation("获取首页banner配置") + @GetMapping("/home-cfg") + public ResponseEntity getHomeConfig() { +// try { +// //在需要的地方注入taskQueue队列,往队列里面添加model +// ContentSharingStatisticsModel model = new ContentSharingStatisticsModel (); +// model.setTid(1234L); +// model.setServiceTime("111"); +// model.setMsg("msg"); +// //set需要的数据 +// taskQueue.put(model); +// } catch (InterruptedException e) { +// throw new RuntimeException(e); +// } + + HomeConfigVO res = new HomeConfigVO(); + res.setPublicCity(sysConfigService.selectConfigByKey("order.city.list")); + + List data = dictTypeService.selectDictDataByType("sys_banner"); + if (StringUtils.isNull(data)) + { + data = new ArrayList(); + } + + res.setBannerList(data); + + //res.setBanners(sysConfigService.selectConfigByKey("h5.home.banner")); + //res.setCategoryList(categoryService.queryCategoryWithProductsForH5()); + return ResponseEntity.ok(res); + } + /** + * 首页配置 + * + * @return 首页配置 + */ + @ApiOperation("获取首页banner配置和产品目录") + @GetMapping("/product-count") + public ResponseEntity productCount() { + HomeConfigVO res = new HomeConfigVO(); + res.setBanners(sysConfigService.selectConfigByKey("h5.home.banner")); + res.setCategoryList(categoryService.queryCategoryWithProductsForH5()); + return ResponseEntity.ok(res); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/PayNotifyController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/PayNotifyController.java new file mode 100644 index 0000000..c98404a --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/PayNotifyController.java @@ -0,0 +1,142 @@ +package com.cyl.h5.controller; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import com.cyl.h5.pojo.dto.PayNotifyMessageDTO; +import com.cyl.h5.service.H5OrderService; +import com.cyl.wechat.WechatPayConfig; +import com.wechat.pay.java.core.Config; +import com.wechat.pay.java.core.notification.NotificationConfig; +import com.wechat.pay.java.core.notification.NotificationParser; +import com.wechat.pay.java.core.notification.RequestParam; +import com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction; +import io.swagger.annotations.Api; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import java.io.BufferedReader; +import java.io.IOException; +import java.text.SimpleDateFormat; + +/** + * 订单表Controller + * + * @author sjm + * @date 2023-04-05 + */ +@Api(description ="微信回调接口列表") +@RestController +@RequestMapping("/no-auth/wechat") +public class PayNotifyController { + private static final Logger log = LoggerFactory.getLogger(PayNotifyController.class); + + @Autowired + private H5OrderService h5OrderService; + + private final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); + + /** + * 消费者下单 微信支付回调 + * @param request + * @throws IOException + */ + @PostMapping("/notify") + public void weChatPayNotify(HttpServletRequest request) throws Exception { + log.info("收到了微信支付回调"); + // 从请求头中获取信息 + String timestamp = request.getHeader("Wechatpay-Timestamp"); + String nonce = request.getHeader("Wechatpay-Nonce"); + String signature = request.getHeader("Wechatpay-Signature"); + String singType = request.getHeader("Wechatpay-Signature-Type"); + String wechatPayCertificateSerialNumber = request.getHeader("Wechatpay-Serial"); + // 拿到请求体body + StringBuilder requestBody = new StringBuilder(); + String line; + BufferedReader reader; + reader = request.getReader(); + while (null != (line = reader.readLine())) { + requestBody.append(line); + } + // 构造 RequestParam + RequestParam requestParam = new RequestParam.Builder() + .serialNumber(wechatPayCertificateSerialNumber) + .nonce(nonce) + .signature(signature) + .timestamp(timestamp) + .body(requestBody.toString()) + .build(); + log.info("【requestParam】" + JSONObject.toJSON(requestParam)); + //初始化了 RSAAutoCertificateConfig + Config config = WechatPayConfig.getInstance(); + // 初始化解析器 NotificationParser + NotificationParser parser = new NotificationParser((NotificationConfig) config); + // 以支付通知回调为例,验签、解密并转换成 Transaction + Transaction transaction = parser.parse(requestParam, Transaction.class); + log.info("【transaction】" + JSONObject.toJSON(transaction)); + PayNotifyMessageDTO message = new PayNotifyMessageDTO(); + message.setOutTradeNo(Long.valueOf(transaction.getOutTradeNo())); + message.setMemberId(Long.valueOf(transaction.getAttach())); + message.setTradeStatus(transaction.getTradeState()); + if (StrUtil.isEmpty(transaction.getSuccessTime())){ + throw new RuntimeException("微信支付回调失败"); + } + message.setPayTime(formatter.parse(transaction.getSuccessTime().substring(0, transaction.getSuccessTime().indexOf("+")))); + message.setTradeNo(transaction.getTransactionId()); + h5OrderService.payCallBack(message); + } + + /** + * 伴宠师 保证金缴纳和充值 微信支付回调 + * @param request + * @throws IOException + */ + @PostMapping("/notifyForBCHSH") + public void weChatPayNotifyForBCHSH(HttpServletRequest request) throws Exception { + log.info("伴宠师保证金缴纳和充值 收到了微信支付回调"); + // 从请求头中获取信息 + String timestamp = request.getHeader("Wechatpay-Timestamp"); + String nonce = request.getHeader("Wechatpay-Nonce"); + String signature = request.getHeader("Wechatpay-Signature"); + String singType = request.getHeader("Wechatpay-Signature-Type"); + String wechatPayCertificateSerialNumber = request.getHeader("Wechatpay-Serial"); + // 拿到请求体body + StringBuilder requestBody = new StringBuilder(); + String line; + BufferedReader reader; + reader = request.getReader(); + while (null != (line = reader.readLine())) { + requestBody.append(line); + } + // 构造 RequestParam + RequestParam requestParam = new RequestParam.Builder() + .serialNumber(wechatPayCertificateSerialNumber) + .nonce(nonce) + .signature(signature) + .timestamp(timestamp) + .body(requestBody.toString()) + .build(); + log.info("【requestParam】" + JSONObject.toJSON(requestParam)); + //初始化了 RSAAutoCertificateConfig + Config config = WechatPayConfig.getInstance(); + // 初始化解析器 NotificationParser + NotificationParser parser = new NotificationParser((NotificationConfig) config); + // 以支付通知回调为例,验签、解密并转换成 Transaction + Transaction transaction = parser.parse(requestParam, Transaction.class); + log.info("【transaction】" + JSONObject.toJSON(transaction)); + PayNotifyMessageDTO message = new PayNotifyMessageDTO(); + message.setOutTradeNo(Long.valueOf(transaction.getOutTradeNo())); + message.setMemberId(Long.valueOf(transaction.getAttach())); + message.setTradeStatus(transaction.getTradeState()); + if (StrUtil.isEmpty(transaction.getSuccessTime())){ + throw new RuntimeException("微信支付回调失败"); + } + message.setPayTime(formatter.parse(transaction.getSuccessTime().substring(0, transaction.getSuccessTime().indexOf("+")))); + message.setTradeNo(transaction.getTransactionId()); + h5OrderService.payCallBackForBCHSHI(message); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/UserController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/UserController.java new file mode 100644 index 0000000..061b231 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/UserController.java @@ -0,0 +1,47 @@ +package com.cyl.h5.controller; + +import com.cyl.manager.ums.domain.MemberAddress; +import com.cyl.manager.ums.pojo.query.MemberAddressQuery; +import com.cyl.manager.ums.service.MemberAddressService; +import com.ruoyi.common.utils.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RequestMapping("ucenter") +@RestController +public class UserController { + @Autowired + private MemberAddressService memberAddressService; + + @GetMapping("user-address") + public ResponseEntity> queryPageOfAddress() { + MemberAddressQuery q = new MemberAddressQuery(); + q.setMemberId(SecurityUtils.getUserId()); + return ResponseEntity.ok(memberAddressService.selectList(q, null)); + } + + @PostMapping("add-update-user-address") + public ResponseEntity addOrUpdateAddress(@RequestBody MemberAddress address) { + if (address.getId() != null) { + address.setMemberId(null); + memberAddressService.updateSelective(address); + } else { + address.setMemberId(SecurityUtils.getUserId()); + memberAddressService.insert(address); + } + return ResponseEntity.ok(address); + } + + @DeleteMapping("delete-user-address") + public ResponseEntity deleteUserAddress(@RequestBody List ids) { + return ResponseEntity.ok(memberAddressService.deleteUserIds(ids)); + } + + @GetMapping("detail-user-address") + public ResponseEntity detailUserAddress(@RequestParam("id") Long id) { + return ResponseEntity.ok(memberAddressService.selectByUserAndId(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/WechatController2.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/WechatController2.java new file mode 100644 index 0000000..fa764e1 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/WechatController2.java @@ -0,0 +1,173 @@ +package com.cyl.h5.controller; + +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.cyl.external.WechatUtil; +import com.cyl.h5.pojo.response.H5LoginResponse; +import com.cyl.h5.pojo.vo.form.WechatLoginForm; +import com.cyl.h5.service.H5MemberService; +import com.cyl.manager.staff.domain.Staff; +import com.cyl.manager.staff.service.IStaffService; +import com.cyl.manager.staff.service.IStaffWechatService; +import com.cyl.manager.staff.service.impl.StaffServiceImpl; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.service.MemberWechatService; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.StringUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.util.Base64Utils; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.spring.web.json.Json; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; + +/** + * h5/微信 + */ +@RestController +@RequestMapping("") +@Api("微信公众号认证相关") +@Slf4j +public class WechatController2 { + @Autowired + private MemberWechatService memberWechatService; + + @Autowired + private H5MemberService h5MemberService; + + @Autowired + private IStaffService staffService; + + @Autowired + private IStaffWechatService staffWechatService; + + /** + * 微信公众号服务器认证 + * @return + */ + @ApiOperation("微信公众号服务器认证") + @GetMapping("/no-auth/wechat-server-auth") + public String getHomeConfig(HttpServletRequest request) { + String signature = request.getParameter("signature"); + String nonce = request.getParameter("nonce"); + String timestamp = request.getParameter("timestamp"); + String echostr = request.getParameter("echostr"); + if (WechatUtil.validParam(signature, "BLU9Jo7vo", timestamp, nonce)) { + return echostr; + } + return "err"; + } + /** + * 微信公众号服务器认证 + * @return + */ + @ApiOperation("H5登陆") + @PostMapping("/no-auth/wechat/h5-login") + public ResponseEntity h5Login(@RequestBody WechatLoginForm form) { + String token = memberWechatService.login(form); + return ResponseEntity.ok("{\"data\": \"" + token + "\"}"); + } + + + @ApiOperation("获取SessionId") + @GetMapping("/no-auth/wechat/getSessionId") + public AjaxResult getSessionId(String code) { + JSONObject object = memberWechatService.getSessionId(code); + if (object != null) { + String openId = object.getString("openid"); + String sessionId = object.getString("session_key"); + Map map = new HashMap(); + map.put("openId", openId); + //map.put("sessionId", sessionId); + //return AjaxResult.successData(Base64Utils.encodeToString(JSON.toJSONString(map).getBytes())); + return AjaxResult.successData(JSON.toJSONString(map)); + } + return AjaxResult.success(null); + } + + @ApiOperation("获取OpenId") + @GetMapping("/no-auth/wechat/getOpenId") + public AjaxResult getOpenId(HttpServletRequest request) { + String code = request.getParameter("code"); + String sourceType = request.getParameter("sourceType"); + + if (StringUtils.isNotEmpty(sourceType) && "1".equals(sourceType)) { + //伴宠师app + + JSONObject object = staffWechatService.getSessionId(code); + if (object != null) { + String openId = object.getString("openid"); + String sessionId = object.getString("session_key"); + Map map = new HashMap(); + map.put("openId", openId); + // todo 判断openId 是否注册 + Staff staff = staffWechatService.isRegister(openId); + if(ObjectUtil.isNull(staff)){ + map.put("token", null); + }else{ + H5LoginResponse h5LoginResponse = staffService.getLoginResponse(staff.getId()); + //生成token + map.put("token", h5LoginResponse.getToken()); + } + //map.put("sessionId", sessionId); + //return AjaxResult.successData(Base64Utils.encodeToString(JSON.toJSONString(map).getBytes())); + return AjaxResult.successData(JSON.toJSONString(map)); + } + + }else { + JSONObject object = memberWechatService.getSessionId(code); + if (object != null) { + String openId = object.getString("openid"); + String sessionId = object.getString("session_key"); + Map map = new HashMap(); + map.put("openId", openId); + // todo 判断openId 是否注册 + Member member = memberWechatService.isRegister(openId); + if(ObjectUtil.isNull(member)){ + map.put("token", null); + }else{ + H5LoginResponse h5LoginResponse = h5MemberService.getLoginResponse(member.getId()); + //生成token + map.put("token", h5LoginResponse.getToken()); + } + //map.put("sessionId", sessionId); + //return AjaxResult.successData(Base64Utils.encodeToString(JSON.toJSONString(map).getBytes())); + return AjaxResult.successData(JSON.toJSONString(map)); + } + } + + return AjaxResult.success(null); + } + + @PostMapping("/no-auth/wechat/getPhoneNumber") + public AjaxResult getPhoneNumber(@RequestBody Map data) + { + log.info("=============登录信息:{}===============", JSON.toJSONString(data)); + String code = data.get("code").toString(); + String openId = data.get("openId").toString(); + H5LoginResponse h5LoginResponse = new H5LoginResponse(); + if (data.get("sourceType") != null && "1".equals(data.get("sourceType").toString())) { + //员工登录 + Staff staff = staffService.getPhoneAndRegister(code, openId); + h5LoginResponse = staffService.getLoginResponse(staff.getId()); + }else { + //用户登录 + Member member = memberWechatService.getPhoneAndRegister(code, openId); + h5LoginResponse = h5MemberService.getLoginResponse(member.getId()); + } + + + + Map map = new HashMap(); + map.put("token", h5LoginResponse.getToken()); + + return AjaxResult.successData(map); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/req/MemberPointHistoryReq.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/req/MemberPointHistoryReq.java new file mode 100644 index 0000000..b6758f2 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/req/MemberPointHistoryReq.java @@ -0,0 +1,17 @@ +package com.cyl.h5.controller.req; + +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +@ApiModel(description="积分集点明细对象") +@Data +public class MemberPointHistoryReq { + + @Excel(name = "type") + private String type; + + /** OPEN_ID */ + @Excel(name = "open_id") + private String openId; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/staff/H5DispatchOrderController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/staff/H5DispatchOrderController.java new file mode 100644 index 0000000..2e3dc72 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/staff/H5DispatchOrderController.java @@ -0,0 +1,84 @@ +package com.cyl.h5.controller.staff; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.cyl.manager.staff.domain.DispatchOrder; +import com.cyl.manager.staff.domain.Staff; +import com.cyl.manager.staff.domain.StaffAnswerRecord; +import com.cyl.manager.staff.service.IDispatchOrderService; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.framework.config.LocalDataUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +@Api("派单") +@RestController +@Slf4j +@RequestMapping("/h5/dispatchOrder") +public class H5DispatchOrderController { + + @Autowired + private IDispatchOrderService dispatchOrderService; + + + + /** + * 查询派单信息列表 + */ + @GetMapping("/list") + public AjaxResult list(@ApiParam(value = "查询条件", required = false) DispatchOrder record) + { + //伴宠师Id + Staff staff = (Staff) LocalDataUtil.getVar(Constants.STAFF_INFO); + record.setStaffId(staff.getId()); + + List result = + dispatchOrderService + .list(Wrappers.query(record).lambda().orderByDesc(DispatchOrder::getCreateTime)); + return AjaxResult.successData(result); + } + + + /** + * 查询派单信息列表 + */ + @GetMapping("/getById") + public AjaxResult list(@ApiParam(value = "", required = false) @RequestParam("dispatchOrderId") String dispatchOrderId) + { + return AjaxResult.successData(dispatchOrderService.getById(dispatchOrderId)); + } + + + + /** + * 接单 + * @return + */ + @GetMapping("/acceptDispatch") + @ApiOperation(value = "接单", notes = "接单") + public AjaxResult acceptDispatch(@RequestParam("dispatchOrderId") String dispatchOrderId){ + log.info("接单,请求参数:{}", dispatchOrderId); + return AjaxResult.success(dispatchOrderService.acceptDispatch(dispatchOrderId)); + } + + + /** + * 拒单 + * @return + */ + @GetMapping("/rejectDispatch") + @ApiOperation(value = "接单", notes = "接单") + public AjaxResult rejectDispatch(@RequestParam("dispatchOrderId") String dispatchOrderId){ + log.info("拒单,请求参数:{}", dispatchOrderId); + return AjaxResult.success(dispatchOrderService.rejectDispatch(dispatchOrderId)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/staff/H5PetCompanionController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/staff/H5PetCompanionController.java new file mode 100644 index 0000000..4dc0000 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/staff/H5PetCompanionController.java @@ -0,0 +1,146 @@ +package com.cyl.h5.controller.staff; + +import com.alibaba.fastjson.JSON; +import com.cyl.h5.pojo.request.*; +import com.cyl.manager.staff.domain.vo.StaffVO; +import com.cyl.manager.staff.service.IStaffService; +import com.ruoyi.common.core.domain.AjaxResult; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + + +@Api("员工") +@RestController +@Slf4j +@RequestMapping("/h5/companion/staff") +public class H5PetCompanionController { + + + @Autowired + private IStaffService staffService; + /** + * 加入合伙人 + * @return + */ + @PostMapping("/joinPartner") + public AjaxResult joinPartner(){ + return AjaxResult.success(staffService.joinPartner()); + } + + + /** + * 获取员工信息 + * @return + */ + @GetMapping("/getStaffInfo") + public AjaxResult getStaffInfo() { + return AjaxResult.successData(staffService.getH5StaffInfo()); + } + + + /** + * 保存喂养员认证基本信息,入驻使用 + * @return + */ + @PostMapping("/saveBaseInfo") + @ApiOperation(value = "保存喂养员认证基本信息", notes = "保存喂养员认证基本信息") + public AjaxResult saveBaseInfo(@RequestBody @Validated StaffAuthenticateBaseInfoRequest request){ + log.info("保存伴宠师基本信息,请求参数:{}", JSON.toJSONString(request)); + return AjaxResult.success(staffService.saveBaseInfo(request)); + } + + /** + * 提交基础答题结果 + * @return + */ + @PostMapping("/submitBasicCheckResult") + @ApiOperation(value = "保存基础考核答题结果", notes = "保存基础考核答题结果") + public AjaxResult submitBasicCheckResult(@RequestBody @Validated BasicCheckResultRequest request){ + log.info("保存基础考核答题结果,请求参数:{}", JSON.toJSONString(request)); + return AjaxResult.success(staffService.submitBasicCheckResult(request)); + } + + + @PostMapping("/submitTrainCheckAnswer") + @ApiOperation(value = "保存培训考核答案", notes = "保存培训考核答案") + public AjaxResult submitTrainCheckAnswer(@RequestBody @Validated TrainCheckAnswerRequest request){ + log.info("保存培训考核答案,请求参数:{}", JSON.toJSONString(request)); + return AjaxResult.success(staffService.submitTrainCheckAnswer(request)); + } + + /** + * 获取基础考核题目 + * @return + */ + @GetMapping("/getBasicQuestion") + @ApiOperation(value = "获取基础考核题目", notes = "获取基础考核题目") + public AjaxResult getBasicQuestion(){ + return AjaxResult.success(staffService.getBasicQuestion()); + } + + + /** + * 获取培训考核题目 + * @return + */ + @GetMapping("/getTrainQuestion") + @ApiOperation(value = "获取培训考核题目", notes = "获取培训考核题目") + public AjaxResult getTrainQuestion(){ + return AjaxResult.success(staffService.getTrainQuestion()); + } + + + + + /** + * 根据员工id查询最新培训考核答题记录 + * @return + */ + @GetMapping("/getTrainAnswerRecord") + @ApiOperation(value = "根据员工id查询最新培训考核答题记录", notes = "根据员工id查询最新培训考核答题记录") + public AjaxResult getTrainAnswerRecord(@RequestParam("staffId") Long staffId){ + return AjaxResult.success(staffService.getTrainAnswerRecord(staffId)); + } + + + /** + * 完善服务信息 + * @return + */ + @PostMapping("/completeServiceInfo") + @ApiOperation(value = "完善服务信息", notes = "完善服务信息") + public AjaxResult completeServiceInfo(@RequestBody @Validated StaffServiceInfoRequest request){ + log.info("完善服务信息,请求参数:{}", JSON.toJSONString(request)); + return AjaxResult.success(staffService.completeServiceInfo(request)); + } + + /** + * 修改接单状态 + * @return + */ + @PostMapping("/changeReceiveOrderStatus") + @ApiOperation(value = "修改接单状态", notes = "修改接单状态") + public AjaxResult changeReceiveOrderStatus(@RequestBody @Validated StaffChangeReceiveOrderStatusRequest request){ + log.info("修改接单状态,请求参数:{}", JSON.toJSONString(request)); + return AjaxResult.success(staffService.changeReceiveOrderStatus(request)); + } + + /** + * 点赞 + * @return + */ + @PostMapping("/star") + @ApiOperation(value = "点赞", notes = "点赞") + public AjaxResult star(@RequestBody @Validated StaffStarRequest request){ + log.info("点赞,请求参数:{}", JSON.toJSONString(request)); + return AjaxResult.success(staffService.star(request)); + } + + + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/staff/H5StaffAddressController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/staff/H5StaffAddressController.java new file mode 100644 index 0000000..2137ad5 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/staff/H5StaffAddressController.java @@ -0,0 +1,91 @@ +package com.cyl.h5.controller.staff; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.cyl.h5.config.SecurityUtil; +import com.cyl.h5.pojo.request.StaffAddressRequest; +import com.cyl.h5.service.H5MemberAddressService; +import com.cyl.manager.staff.domain.Staff; +import com.cyl.manager.staff.domain.StaffAnswerRecord; +import com.cyl.manager.staff.service.IStaffService; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.domain.MemberAddress; +import com.cyl.manager.ums.mapper.MemberAddressMapper; +import com.cyl.manager.ums.pojo.dto.MemberAddressDTO; +import com.cyl.manager.ums.pojo.query.MemberAddressQuery; +import com.cyl.manager.ums.pojo.vo.MemberAddressVO; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.framework.config.LocalDataUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.ArrayList; +import java.util.List; + +@Api("伴宠师地址") +@RestController +@RequestMapping("/h5/address/staff") +public class H5StaffAddressController { + + @Autowired + private H5MemberAddressService h5MemberAddressService; + + @Autowired + private MemberAddressMapper memberAddressMapper; + + @Autowired + private IStaffService staffService; + + @ApiOperation("伴宠师地址列表") + @GetMapping("/list") + public AjaxResult getList(@ApiParam(value = "当前页数", required = true, defaultValue = "1") @RequestParam Long currentPage, + @ApiParam(value = "每页数据量", required = true, defaultValue = "10") @RequestParam Long pageSize, + @ApiParam(value = "查询条件", required = false) MemberAddress address){ + Staff staff = (Staff)LocalDataUtil.getVar(Constants.STAFF_INFO); + address.setStaffId(staff.getId()); + IPage page = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(currentPage, pageSize); + IPage result = + memberAddressMapper + .selectPage(page, Wrappers.query(address).lambda().orderByDesc(MemberAddress::getCreateTime)); + return AjaxResult.successData(result); + } + + + @ApiOperation("创建伴宠师地址") + @PostMapping("/create") + public AjaxResult create(@RequestBody MemberAddressDTO memberAddressDTO){ + Staff staff = (Staff)LocalDataUtil.getVar(Constants.STAFF_INFO); + memberAddressDTO.setStaffId(staff.getId()); + return AjaxResult.successData(h5MemberAddressService.insert(memberAddressDTO)); + } + + @ApiOperation("更新伴宠师地址") + @PutMapping("/update") + public AjaxResult update(@RequestBody MemberAddressDTO memberAddressDTO){ + Staff staff = (Staff)LocalDataUtil.getVar(Constants.STAFF_INFO); + memberAddressDTO.setStaffId(staff.getId()); + return AjaxResult.successData(h5MemberAddressService.update(memberAddressDTO)); + } + + @ApiOperation("获取伴宠师地址详情") + @GetMapping("/{id}") + public AjaxResult getInfo(@PathVariable Long id){ + return AjaxResult.successData(h5MemberAddressService.selectById(id)); + } + + @ApiOperation("删除伴宠师地址") + @DeleteMapping("/{id}") + public AjaxResult remove(@PathVariable Long id) { + return AjaxResult.successData(h5MemberAddressService.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/staff/H5StaffController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/staff/H5StaffController.java new file mode 100644 index 0000000..4d92ad3 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/staff/H5StaffController.java @@ -0,0 +1,93 @@ +package com.cyl.h5.controller.staff; + +import com.cyl.h5.pojo.request.StaffListRequest; +import com.cyl.h5.pojo.request.StaffServiceRecordRequest; +import com.cyl.h5.pojo.vo.StaffServiceRecordVO; +import com.cyl.manager.staff.domain.vo.StaffVO; +import com.cyl.manager.staff.domain.Staff; +import com.cyl.manager.staff.service.IStaffService; +import com.cyl.manager.staff.service.IStaffServiceRecordService; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.framework.config.LocalDataUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * 人员信息Controller + * + * @author daixiande + * @date 2023-12-25 + */ +@Api("服务人员信息") +@RestController +@RequestMapping("/h5/staff") +public class H5StaffController extends BaseController { + @Autowired + private IStaffService staffService; + @Autowired + private IStaffServiceRecordService staffServiceRecordService; + + /** + * 查询人员信息列表 + */ + @ApiOperation("查询人员信息列表") + @GetMapping("/list") + public TableDataInfo listForGet(StaffListRequest request) { + startPage(); + List list = staffService.selectStaffListForFont(request); + return getDataTable(list); + } + + /** + * 查询人员信息列表 + */ + @ApiOperation("查询人员信息列表") + @PostMapping("/list") + public TableDataInfo list(@RequestBody StaffListRequest request) { + startPage(); + List list = staffService.selectStaffListByCondition(request); + return getDataTable(list); + } + + /** + * 获取人员信息详细信息 + */ + @ApiOperation("获取人员信息详细信息") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.successData(staffService.selectStaffByIdForFront(id)); + } + + /** + * 服务记录新增和修改接口 + */ + @ApiOperation("服务记录 新增 和 修改") + @PostMapping(value = "/saveOrUpdateServiceRecord") + public ResponseEntity saveOrUpdateServiceRecord(@RequestBody @Valid StaffServiceRecordRequest request) { + Staff staff = (Staff) LocalDataUtil.getVar(Constants.STAFF_INFO); + Long staffId = staff.getId(); + request.setStaffId(staffId); + return ResponseEntity.ok(staffServiceRecordService.saveOrUpdateServiceRecord(request)); + } + + /** + * 获取当前员工服务记录接口 + */ + @ApiOperation("获取某员工服务记录接口") + @GetMapping(value = "/getServiceRecords/{staffId}") + public ResponseEntity> getServiceRecords(@PathVariable("staffId") Long staffId) { + List serviceRecords = staffServiceRecordService.getServiceRecords(staffId); + return ResponseEntity.ok(serviceRecords); + } + + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/ApplyRefundDTO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/ApplyRefundDTO.java new file mode 100644 index 0000000..100fc30 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/ApplyRefundDTO.java @@ -0,0 +1,34 @@ +package com.cyl.h5.pojo.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@ApiModel("申请售后对象") +public class ApplyRefundDTO { + + @ApiModelProperty(value = "订单id", required = true) + private Long orderId; + + @ApiModelProperty(value = "申请售后类型 1:仅退款 2:退货退款", required = true) + private Integer applyRefundType; + + @ApiModelProperty(value = "退款原因", required = true) + private String reason; + + @ApiModelProperty(value = "申请退货数量", required = true) + private Integer quantity; + + @ApiModelProperty(value = "退款金额") + private BigDecimal refundAmount; + + @ApiModelProperty(value = "描述") + private String description; + + @ApiModelProperty("凭证图片以逗号隔开") + private String proofPics; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/CategoryDTO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/CategoryDTO.java new file mode 100644 index 0000000..bd8386b --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/CategoryDTO.java @@ -0,0 +1,14 @@ +package com.cyl.h5.pojo.dto; + +import lombok.Data; + +import java.util.List; + +@Data +public class CategoryDTO { + private Long id; + private Integer sort; + private String name; + private String icon; + private List productList; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/H5LoginDTO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/H5LoginDTO.java new file mode 100644 index 0000000..1235b6f --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/H5LoginDTO.java @@ -0,0 +1,14 @@ +package com.cyl.h5.pojo.dto; + +import lombok.Data; + +@Data +public class H5LoginDTO { + + private String data; + private String key; + private String sessionKey; + private String openId; + /** 登录端 null、0:客端小程序 1:伴宠师小程序*/ + private Integer sourceType; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/LoginDTO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/LoginDTO.java new file mode 100644 index 0000000..9778b48 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/LoginDTO.java @@ -0,0 +1,14 @@ +package com.cyl.h5.pojo.dto; + +import lombok.Data; + +/** + * @Author: czc + * @Description: TODO + * @DateTime: 2023/6/16 14:58 + **/ +@Data +public class LoginDTO { + private String account; + private String password; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/MemberAddressDTO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/MemberAddressDTO.java new file mode 100644 index 0000000..805bec8 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/MemberAddressDTO.java @@ -0,0 +1,22 @@ +package com.cyl.h5.pojo.dto; + +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author Tang, Shuai(shuatang @ deloitte.com.cn) + * @Date 2025/1/14 22:35 + */ +@Data +public class MemberAddressDTO { + + @ApiModelProperty("省份/直辖市") + private String province; + + @ApiModelProperty("城市") + private String city; + + @ApiModelProperty("区") + private String district; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/MicroMallOrderSyncMsg.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/MicroMallOrderSyncMsg.java new file mode 100644 index 0000000..3afd7e2 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/MicroMallOrderSyncMsg.java @@ -0,0 +1,29 @@ +package com.cyl.h5.pojo.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + * @author: Jinxin + * @date: 2023/4/16 10:22 + * @Description: + */ +@Getter +@Setter +public class MicroMallOrderSyncMsg { + @ApiModelProperty( + name = "orderId", + value = "订单id", + required = true, + dataType = "String" + ) + private Long orderId; + @ApiModelProperty( + name = "type", + value = "type 0延时关闭 1新下单 2退款", + required = true, + dataType = "Integer" + ) + private Integer type; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/OrderCreateDTO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/OrderCreateDTO.java new file mode 100644 index 0000000..5b217ce --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/OrderCreateDTO.java @@ -0,0 +1,36 @@ + package com.cyl.h5.pojo.dto; + + import io.swagger.annotations.ApiModel; + import io.swagger.annotations.ApiModelProperty; + import lombok.Data; + + import java.util.List; + + + /** + * 创建订单请求VO + * @author Jinxin + * + */ + @Data + @ApiModel(value = "创建订单请求VO") + public class OrderCreateDTO { + @ApiModelProperty(value = "商品购买明细",required = true) + private List skuList; + + @ApiModelProperty(value = "收货地址id") + private Long receiveAddressId; + + @ApiModelProperty(value = "收货方式 1:快递 2:自提 代理商只有1", required = false) + private Integer deliveryType = 1; + + @ApiModelProperty(value = "支付方式:1-支付宝,2-微信(默认)", required = false, allowableValues = "1,2") +// @NotNull(message = "支付方式不能为空") + private Integer payType; + + @ApiModelProperty(value = "订单备注") + private String note; + + @ApiModelProperty(value = "订单来源 购物车是 cart") + private String from; + } \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/OrderProductListDTO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/OrderProductListDTO.java new file mode 100644 index 0000000..062fc41 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/OrderProductListDTO.java @@ -0,0 +1,45 @@ + package com.cyl.h5.pojo.dto; + + import com.cyl.manager.pms.domain.Product; + import com.cyl.manager.pms.domain.Sku; + import io.swagger.annotations.ApiModel; + import io.swagger.annotations.ApiModelProperty; + import lombok.Data; + + import javax.validation.constraints.Min; + import javax.validation.constraints.NotNull; + import java.math.BigDecimal; + + + /** + * 创建订单请求VO + * @author Jinxin + * + */ + @Data + @ApiModel(value = "创建订单请求VO") + public class OrderProductListDTO { + @ApiModelProperty(value = "商品skuId", required = true) + @NotNull(message = "商品skuId不能为空") + private Long skuId; + + @ApiModelProperty(value = "数量", required = true) + @NotNull(message = "数量不能为空") + @Min(value = 1, message = "数量不能小于1") + private Integer quantity; + + @ApiModelProperty(value = "消费金", hidden = true) + private BigDecimal consumption; + + @ApiModelProperty(value = "运费", hidden = true) + private BigDecimal freightAmount; + + @ApiModelProperty(value = "隐藏 业务过程中的数据", hidden = true) + private Sku sku; + + @ApiModelProperty(value = "隐藏 业务过程中的数据", hidden = true) + private Product product; + + @ApiModelProperty(value = "是否主商品") + private Boolean isMainProduct; + } \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/PayNotifyMessageDTO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/PayNotifyMessageDTO.java new file mode 100644 index 0000000..061d8b9 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/PayNotifyMessageDTO.java @@ -0,0 +1,34 @@ +package com.cyl.h5.pojo.dto; + +import com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction; +import lombok.Data; + +import java.util.Date; + +@Data +public class PayNotifyMessageDTO { + + /**主订单号**/ + private Long outTradeNo; + + /**第三方订单号**/ + private String tradeNo; + + /** + * 交易状态,枚举值: + * SUCCESS:支付成功 + * REFUND:转入退款 + * NOTPAY:未支付 + * CLOSED:已关闭 + * REVOKED:已撤销(仅付款码支付会返回) + * USERPAYING:用户支付中(仅付款码支付会返回) + * PAYERROR:支付失败(仅付款码支付会返回) + */ + private Transaction.TradeStateEnum tradeStatus; + + /**支付时间**/ + private Date payTime; + + /**用户id**/ + private Long memberId; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/PetOrderServiceDTO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/PetOrderServiceDTO.java new file mode 100644 index 0000000..3b745e5 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/PetOrderServiceDTO.java @@ -0,0 +1,31 @@ + +package com.cyl.h5.pojo.dto; + +import com.cyl.manager.pms.domain.Product; +import lombok.Data; + +import java.time.LocalDate; +import java.util.Date; +import java.util.List; + +/** + + * 宠物服务dto + */ +@Data +public class PetOrderServiceDTO { + + private Integer petId; + + private LocalDate serviceDate; // 服务日期 '2024-12-10', + + private Integer feedCount; // 当天喂养次数 1,2,3 参与计算 + + //固定String:MORNING:上午, AFTERNOON:午后, EVENING:晚上 + + private String selectedTimeSlots; // 选择的上门时间段 + + //定制服务 + private List skuList; + +} \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/ProductDTO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/ProductDTO.java new file mode 100644 index 0000000..68ad106 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/ProductDTO.java @@ -0,0 +1,31 @@ +package com.cyl.h5.pojo.dto; + +import com.cyl.manager.pms.domain.Sku; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data +public class ProductDTO { + private Long id; + private String pic; + private String albumPics; + private String detailPic; + private String name; + private BigDecimal price; + + private String unit; + private BigDecimal weight; + + private String description; + private String shortDescription; + + private Long categoryId; + private String productCategoryName; + + private String detailHtml; + private String detailMobileHtml; + + private List skus; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/ServiceInfoDTO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/ServiceInfoDTO.java new file mode 100644 index 0000000..a425b46 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/ServiceInfoDTO.java @@ -0,0 +1,21 @@ +package com.cyl.h5.pojo.dto; + +import lombok.Data; + +import java.util.List; + +@Data +public class ServiceInfoDTO { + + private List pet; + private String serviceFrequency; + private List serviceDate; + private String serviceTimeFirst; + private String serviceTimeSecond; + + @Data + public static class PetParam { + private String type; + private Integer quantity; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/TrainCheckAnswerDTO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/TrainCheckAnswerDTO.java new file mode 100644 index 0000000..2861fee --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/TrainCheckAnswerDTO.java @@ -0,0 +1,24 @@ +package com.cyl.h5.pojo.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class TrainCheckAnswerDTO { + + @ApiModelProperty(value = "题目编号") + private String id; + + @ApiModelProperty(value = "问题") + private String question; + + @ApiModelProperty(value = "答案") + private String answer; + + @ApiModelProperty(value = "排序") + private Integer order; + + @ApiModelProperty(value = "是否通过") + private Boolean passed; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/WechatCouponDTO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/WechatCouponDTO.java new file mode 100644 index 0000000..26460e4 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/dto/WechatCouponDTO.java @@ -0,0 +1,19 @@ +package com.cyl.h5.pojo.dto; + +import com.cyl.manager.marketing.domain.WechatStock; +import com.cyl.wechat.coupon.SendCouponParam; +import lombok.Data; + +import java.util.List; + +@Data +public class WechatCouponDTO { + + private String send_coupon_merchant; + + private String sign; + + private List sendCouponParams; + + private WechatStock wechatStock; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/BasicCheckResultRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/BasicCheckResultRequest.java new file mode 100644 index 0000000..8e1d8f6 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/BasicCheckResultRequest.java @@ -0,0 +1,20 @@ +package com.cyl.h5.pojo.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class BasicCheckResultRequest { + + + @ApiModelProperty(value = "伴宠师id") + @NotNull + private Long staffId; + + @ApiModelProperty(value = "是否通过 false不通过, true通过") + @NotNull + private Boolean passed; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/BindOpenIdRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/BindOpenIdRequest.java new file mode 100644 index 0000000..449c71d --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/BindOpenIdRequest.java @@ -0,0 +1,12 @@ +package com.cyl.h5.pojo.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@ApiModel("绑定openId请求对象") +@Data +public class BindOpenIdRequest { + @ApiModelProperty("wx提供的code") + private String code; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/CancelOrderRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/CancelOrderRequest.java new file mode 100644 index 0000000..79a52c4 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/CancelOrderRequest.java @@ -0,0 +1,14 @@ +package com.cyl.h5.pojo.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel("取消订单请求") +public class CancelOrderRequest { + @ApiModelProperty("要取消的订单id集合") + private List idList; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/H5AccountLoginRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/H5AccountLoginRequest.java new file mode 100644 index 0000000..e4ed87a --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/H5AccountLoginRequest.java @@ -0,0 +1,9 @@ +package com.cyl.h5.pojo.request; + +import lombok.Data; + +@Data +public class H5AccountLoginRequest extends H5LoginRequest{ + /** 密码 */ + private String password; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/H5LoginRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/H5LoginRequest.java new file mode 100644 index 0000000..557b207 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/H5LoginRequest.java @@ -0,0 +1,9 @@ +package com.cyl.h5.pojo.request; + +import lombok.Data; + +@Data +public class H5LoginRequest { + /** 账号即手机号 */ + private String mobile; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/H5MemberCouponGetRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/H5MemberCouponGetRequest.java new file mode 100644 index 0000000..3dafe48 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/H5MemberCouponGetRequest.java @@ -0,0 +1,12 @@ +package com.cyl.h5.pojo.request; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Data +public class H5MemberCouponGetRequest { + /** 优惠券状态 */ + @NotBlank + private Long stockId; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/H5MemberCouponRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/H5MemberCouponRequest.java new file mode 100644 index 0000000..d44f356 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/H5MemberCouponRequest.java @@ -0,0 +1,15 @@ +package com.cyl.h5.pojo.request; + +import lombok.Data; + +@Data +public class H5MemberCouponRequest { + /** memberId */ + private Long memberId; + /** open od */ + private String openId; + /** 手机号 */ + private String phone; + /** 优惠券状态 */ + private String couponState; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/H5SmsLoginRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/H5SmsLoginRequest.java new file mode 100644 index 0000000..3dd0109 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/H5SmsLoginRequest.java @@ -0,0 +1,16 @@ +package com.cyl.h5.pojo.request; + +import com.cyl.wechat.response.WechatUserAuth; +import lombok.Data; + +@Data +public class H5SmsLoginRequest extends H5LoginRequest { + /** 验证码 */ + private String code; + /** uuid */ + private String uuid; + /** 微信授权信息 */ + private WechatUserAuth authInfo; + /** 小程序openid **/ + private String mpOpenId; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/OrderPayRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/OrderPayRequest.java new file mode 100644 index 0000000..71c4248 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/OrderPayRequest.java @@ -0,0 +1,21 @@ +package com.cyl.h5.pojo.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("订单支付请求体") +public class OrderPayRequest { + @ApiModelProperty(value = "支付id", required = true) + private Long payId; + + @ApiModelProperty(value = "支付方式: 1-支付宝 2-微信(默认)", required = true) + private Integer type; + + @ApiModelProperty(value = "用户id", hidden = true) + private Long memberId; + + @ApiModelProperty(value = "微信支付方式 1:公众号 2:小程序") + private Integer wechatType = 1; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/RegisterRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/RegisterRequest.java new file mode 100644 index 0000000..906d034 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/RegisterRequest.java @@ -0,0 +1,30 @@ +package com.cyl.h5.pojo.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Data +public class RegisterRequest { + + @ApiModelProperty("手机号") + @NotBlank + private String mobile; + + @ApiModelProperty("密码") + @NotBlank + private String password; + + @ApiModelProperty("uuid") + @NotBlank + private String uuid; + + @ApiModelProperty("验证码") + @NotBlank + private String code; + + @ApiModelProperty("微信授权code") + private String wechatCode; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffAddressRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffAddressRequest.java new file mode 100644 index 0000000..5b0693e --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffAddressRequest.java @@ -0,0 +1,47 @@ +package com.cyl.h5.pojo.request; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class StaffAddressRequest { + + + @ApiModelProperty("MEMBER_ID 精确匹配") + private Long staffId; + + @ApiModelProperty("收货人名称 精确匹配") + private String nameLike; + + @ApiModelProperty("PHONE 精确匹配") + private String phone; + + @ApiModelProperty("EMERGENCYPHONE 精确匹配") + private String emergencyPhone; + + @ApiModelProperty("微信OPENID") + private String openId; + + @ApiModelProperty("是否为默认 精确匹配") + private Integer defaultStatus; + + @ApiModelProperty("邮政编码 精确匹配") + private String postCode; + + @ApiModelProperty("省份/直辖市 精确匹配") + private String province; + + @ApiModelProperty("城市 精确匹配") + private String city; + + @ApiModelProperty("区 精确匹配") + private String district; + + @ApiModelProperty("详细地址 精确匹配") + private String detailAddress; + + @ApiModelProperty("是否默认 精确匹配") + private Integer isDefault; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffAuthenticateBaseInfoRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffAuthenticateBaseInfoRequest.java new file mode 100644 index 0000000..8488564 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffAuthenticateBaseInfoRequest.java @@ -0,0 +1,43 @@ +package com.cyl.h5.pojo.request; + + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class StaffAuthenticateBaseInfoRequest { + + /** 伴宠师id*/ + @ApiModelProperty(value = "伴宠师id") + @NotNull(message = "伴宠师id不能为空") + private Long Id; + + /** 伴宠师姓名*/ + @ApiModelProperty(value = "伴宠师姓名") + private String name; + + /** 伴宠师性别*/ + @ApiModelProperty(value = "伴宠师性别 1男 2女") + private Integer gender; + + /** 伴宠师年龄*/ + @ApiModelProperty(value = "伴宠师年龄") + private Integer age; + + /** 养宠经验*/ + @ApiModelProperty(value = "养宠经验") + private Integer feedingAge; + + /**个人宠物类型,多个类型逗号分隔(1:猫咪,2狗狗 3异宠) */ + @ApiModelProperty("个人宠物类型,多个类型逗号分隔(1:猫咪,2狗狗 3异宠)") + private String petType; + + /**宠物图片 */ + @ApiModelProperty("个人宠物类型,多个类型逗号分隔(1:猫咪,2狗狗 3异宠)") + private JSONArray petImages; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffChangeReceiveOrderStatusRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffChangeReceiveOrderStatusRequest.java new file mode 100644 index 0000000..8f56665 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffChangeReceiveOrderStatusRequest.java @@ -0,0 +1,22 @@ +package com.cyl.h5.pojo.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class StaffChangeReceiveOrderStatusRequest { + + @ApiModelProperty(value = "地址id") + @NotNull + private Long addressId; + + @ApiModelProperty(value = "员工id") + @NotNull + private Long staffId; + + @ApiModelProperty(value = "状态 0不接单 1接单") + @NotNull + private Integer receiveOrderStatus; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffListRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffListRequest.java new file mode 100644 index 0000000..f8f065e --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffListRequest.java @@ -0,0 +1,28 @@ +package com.cyl.h5.pojo.request; + +import com.cyl.manager.staff.domain.Staff; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +@Data +public class StaffListRequest extends Staff { + + //时间 + @ApiModelProperty(value = "时间") + List timeArray; + //姓名 + @ApiModelProperty(value = "姓名") + String staffName; + //宠物类型 1猫咪,2狗狗 + @ApiModelProperty(value = "宠物类型 1猫咪,2狗狗") + List petTypes; + //经度 + @ApiModelProperty(value = "经度") + String longitude; + //纬度 + @ApiModelProperty(value = "纬度") + String latitude; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffServiceInfoRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffServiceInfoRequest.java new file mode 100644 index 0000000..09186ba --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffServiceInfoRequest.java @@ -0,0 +1,48 @@ +package com.cyl.h5.pojo.request; + + +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class StaffServiceInfoRequest { + + /** 伴宠师id*/ + @ApiModelProperty(value = "伴宠师id") + @NotNull(message = "伴宠师id不能为空") + private Long Id; + + /** 昵称 */ + @ApiModelProperty(value = "昵称") + private String nickName; + + /** 人员简介 */ + @ApiModelProperty(value = "人员简介") + private String shortDescription; + + + @ApiModelProperty("养宠年限") + private Integer feedingAge; + + + @ApiModelProperty("可服务宠物类型 1猫咪 2狗狗 3异宠") + @TableField(typeHandler = FastjsonTypeHandler.class) + private JSONArray servePetType; + + + @ApiModelProperty("基础服务") + private Integer baseService; + + + @ApiModelProperty("增值服务 1陪玩/遛狗 2一天多次(做卫生) 3护理 4提前熟悉") + @TableField(typeHandler = FastjsonTypeHandler.class) + private JSONArray externalService; + + @ApiModelProperty("接收超出订单范围加急派单通知 0不接收,1接收") + private Integer receiveUrgentOrder; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffServiceRecordRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffServiceRecordRequest.java new file mode 100644 index 0000000..39ae4d6 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffServiceRecordRequest.java @@ -0,0 +1,32 @@ +package com.cyl.h5.pojo.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.Date; + +@Data +public class StaffServiceRecordRequest { + + @ApiModelProperty("服务记录id,为空:新增,不为空代表更新") + private Long id; + + @ApiModelProperty("员工id") + private Long staffId; + + @ApiModelProperty("服务类型 0 猫咪喂养 1狗狗喂养 2 异宠喂养") + @NotNull + @NotNull(message = "服务类型不能为空!") + private Integer type; + + @ApiModelProperty("服务时间") + @NotNull(message = "服务时间不能为空!") + private Date serviceTime; + + @ApiModelProperty("服务描述") + private String remark; + + @ApiModelProperty("服务图片,更新的时候 前端需要将之前保留的图片地址放入") + private String urls; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffStarRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffStarRequest.java new file mode 100644 index 0000000..af16d28 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/StaffStarRequest.java @@ -0,0 +1,19 @@ +package com.cyl.h5.pojo.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class StaffStarRequest { + + @ApiModelProperty("员工id") + @NotNull + private Long staffId; + + + @ApiModelProperty("点赞类型 0取消, 1点赞") + @NotNull + private Integer starType; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/TrainCheckAnswerRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/TrainCheckAnswerRequest.java new file mode 100644 index 0000000..9a250ce --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/TrainCheckAnswerRequest.java @@ -0,0 +1,21 @@ +package com.cyl.h5.pojo.request; + +import com.cyl.h5.pojo.dto.TrainCheckAnswerDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class TrainCheckAnswerRequest { + + @ApiModelProperty(value = "用户id") + @NotNull + private Long staffId; + + @ApiModelProperty(value = "答案列表") + @NotEmpty(message = "答案不能为空") + private List answerList; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/H5LoginResponse.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/H5LoginResponse.java new file mode 100644 index 0000000..7273f5d --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/H5LoginResponse.java @@ -0,0 +1,13 @@ +package com.cyl.h5.pojo.response; + +import lombok.Data; + +/** + * @Author: czc + * @Description: TODO + * @DateTime: 2023/6/16 14:54 + **/ +@Data +public class H5LoginResponse { + private String token; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/OrderPayResponse.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/OrderPayResponse.java new file mode 100644 index 0000000..fb44bc2 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/OrderPayResponse.java @@ -0,0 +1,36 @@ +package com.cyl.h5.pojo.response; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author 86199 + */ +@Data +@ApiModel("支付响应") +public class OrderPayResponse { + @ApiModelProperty(value = "支付方式:1-支付宝,2-微信(默认)", dataType = "Integer") + private Integer payType; + + @ApiModelProperty("appId") + private String appId; + + @ApiModelProperty("timeStamp") + private String timeStamp; + + @ApiModelProperty("signType") + private String signType; + + @ApiModelProperty("package") + private String package_; + + @ApiModelProperty("nonceStr") + private String nonceStr; + + @ApiModelProperty("签名") + private String paySign; + + @ApiModelProperty("订单ID") + private Long orderId; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/RegisterResponse.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/RegisterResponse.java new file mode 100644 index 0000000..8d6a854 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/RegisterResponse.java @@ -0,0 +1,9 @@ +package com.cyl.h5.pojo.response; + +import lombok.Data; + +@Data +public class RegisterResponse { + /** token */ + private String token; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/ValidatePhoneResponse.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/ValidatePhoneResponse.java new file mode 100644 index 0000000..523de06 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/ValidatePhoneResponse.java @@ -0,0 +1,11 @@ +package com.cyl.h5.pojo.response; + +import lombok.Data; + +@Data +public class ValidatePhoneResponse { + /** 是否成功 */ + private boolean ifSuccess; + /** 消息 */ + private String message; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/WechatMemberCouponResponse.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/WechatMemberCouponResponse.java new file mode 100644 index 0000000..7739401 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/WechatMemberCouponResponse.java @@ -0,0 +1,118 @@ +package com.cyl.h5.pojo.response; + +import com.cyl.manager.marketing.domain.WechatMemberCoupon; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class WechatMemberCouponResponse { + + /** + * 创建者 + */ + private Long createBy; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + /** + * 更新者 + */ + private Long updateBy; + + /** + * 更新时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + /** 主键 */ + private Integer id; + + /** 券id */ + @Excel(name = "券id") + private String stockId; + + /** 券名称 */ + @Excel(name = "券名称") + private String stockName; + + /** 券类型 */ + @Excel(name = "券类型") + private String stockType; + + /** 券码 */ + @Excel(name = "券码") + private String couponCode; + + /** 可用开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "可用开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime availableStartTime; + + /** 过期时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "过期时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime expireTime; + + /** 发放时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "发放时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime receiveTime; + + /** 发放请求号 */ + @Excel(name = "发放请求号") + private String sendRequestNo; + + /** 核销请求号 */ + @Excel(name = "核销请求号") + private String useRequestNo; + + /** 使用时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "使用时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime useTime; + + /** 商家券状态 + 枚举值: + SENDED:可用 + USED:已核销 + EXPIRED:已过期 + DEACTIVATED:已失效 */ + @Excel(name = "商家券状态 枚举值:SENDED:可用 USED:已核销 EXPIRED:已过期 DEACTIVATED:已失效") + private String couponState; + + /** 小程序openid */ + @Excel(name = "小程序openid") + private String openid; + + /** memberId */ + @Excel(name = "memberId") + private Long memberId; + + /** 手机号 */ + @Excel(name = "手机号") + private String phone; + + /** 折扣类型 */ + @Excel(name = "折扣类型") + private String discountType; + + /** 固定面额满减券-优惠金额 */ + @Excel(name = "固定面额满减券-优惠金额") + private Integer discountAmount; + + /** 消费门槛 */ + @Excel(name = "消费门槛") + private Integer transactionMinimum; + + /** 折扣券-折扣比例 */ + @Excel(name = "折扣券-折扣比例") + private Integer discountPercent; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/AftersaleRefundInfoVO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/AftersaleRefundInfoVO.java new file mode 100644 index 0000000..fb55889 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/AftersaleRefundInfoVO.java @@ -0,0 +1,73 @@ +package com.cyl.h5.pojo.vo; + +import com.cyl.manager.oms.domain.OrderItem; +import com.cyl.manager.oms.pojo.vo.AftersaleItemVO; +import com.cyl.manager.oms.pojo.vo.OrderItemVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 订单售后 数据视图对象 + * + * @author sjm + */ +@Data +public class AftersaleRefundInfoVO extends BaseAudit { + /** ID */ + private Long id; + /** MEMBER_ID */ + @Excel(name = "MEMBER_ID") + private Long memberId; + /** 订单id */ + @Excel(name = "订单id") + private Long orderId; + /** 退款金额 */ + @Excel(name = "退款金额") + private BigDecimal returnAmount; + /** 售后类型:1:退款,2:退货退款 */ + @Excel(name = "售后类型:1:退款,2:退货退款") + private Integer type; + /** 申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝 */ + @Excel(name = "申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝") + private Integer status; + /** 处理时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime handleTime; + /** 退款快递公司 */ + @Excel(name = "退款快递公司") + private String refundWpCode; + /** 退货快递号 */ + @Excel(name = "退货快递号") + private String refundWaybillCode; + /** 退货数量 */ + @Excel(name = "退货数量") + private Integer quantity; + /** 原因 */ + @Excel(name = "原因") + private String reason; + /** 描述 */ + @Excel(name = "描述") + private String description; + /** 凭证图片,以逗号隔开 */ + @Excel(name = "凭证图片,以逗号隔开") + private String proofPics; + /** 处理备注 */ + @Excel(name = "处理备注") + private String handleNote; + /** 处理人员 */ + @Excel(name = "处理人员") + private String handleMan; + + /** + * item + */ + private List aftersaleItemList; + private List orderItemList; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/CountOrderVO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/CountOrderVO.java new file mode 100644 index 0000000..65152f7 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/CountOrderVO.java @@ -0,0 +1,22 @@ +package com.cyl.h5.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("统计订单数量VO") +public class CountOrderVO { + + @ApiModelProperty(value = "待付款订单数量", dataType = "Integer") + private Integer unpaid; + + @ApiModelProperty(value = "待发货订单数量", dataType = "Integer") + private Integer nosend; + + @ApiModelProperty(value = "待收货订单数量", dataType = "Integer") + private Integer noget; + + @ApiModelProperty(value = "售后订单数量", dataType = "Integer") + private Integer aftersale; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/H5OrderVO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/H5OrderVO.java new file mode 100644 index 0000000..d2d6f63 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/H5OrderVO.java @@ -0,0 +1,86 @@ +package com.cyl.h5.pojo.vo; + +import com.cyl.manager.oms.domain.OmsOrderService; +import com.cyl.manager.oms.domain.OrderItem; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class H5OrderVO { + + @ApiModelProperty("订单id") + private Long orderId; + + @ApiModelProperty("支付id") + private Long payId; + + @ApiModelProperty("订单编号") + private String orderSn; + + @ApiModelProperty("会员id") + private Long memberId; + + @ApiModelProperty("订单总金额") + private BigDecimal totalAmount; + + @ApiModelProperty("应付金额") + private BigDecimal payAmount; + + @ApiModelProperty("订单状态 0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭") + private Integer status; + + @ApiModelProperty("售后状态") + private Integer aftersaleStatus; + + @ApiModelProperty("订单Item") + private List orderItemList; + + @ApiModelProperty("订单service") + private List orderServiceList; + + @ApiModelProperty("订单Item") + private OmsOrderService service; + + @ApiModelProperty("订单备注") + private String note; + + @ApiModelProperty("物流单号") + private String deliverySn; + + @ApiModelProperty("下单时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("支付时间") + private LocalDateTime paymentTime; + + @ApiModelProperty("收货人姓名") + private String receiverName; + + @ApiModelProperty("收货人手机号") + private String receiverPhone; + + @ApiModelProperty("省份/直辖市") + private String receiverProvince; + + @ApiModelProperty("城市") + private String receiverCity; + + @ApiModelProperty("区") + private String receiverDistrict; + + @ApiModelProperty("详细地址") + private String receiverDetailAddress; + + @ApiModelProperty("支付倒计时") + private Long timeToPay; + + @ApiModelProperty("员工id") + private Long staffId; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/HomeConfigVO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/HomeConfigVO.java new file mode 100644 index 0000000..6c32264 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/HomeConfigVO.java @@ -0,0 +1,21 @@ +package com.cyl.h5.pojo.vo; + +import com.cyl.h5.pojo.dto.CategoryDTO; +import com.ruoyi.common.core.domain.entity.SysDictData; +import lombok.Data; + +import java.util.List; + +@Data +public class HomeConfigVO { + // 头部广告栏 + private String banners; + // 品类列表 + private List categoryList; + + // banners + private List bannerList; + + // 城市数据 + private String publicCity; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/OrderCalcVO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/OrderCalcVO.java new file mode 100644 index 0000000..31cf021 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/OrderCalcVO.java @@ -0,0 +1,19 @@ +package com.cyl.h5.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@ApiModel("下单前校验返回数据") +public class OrderCalcVO { + @ApiModelProperty("sku数据") + private List skuList; + @ApiModelProperty("商品总金额") + private BigDecimal productTotalAmount; + @ApiModelProperty("订单总金额") + private BigDecimal orderTotalAmount; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/ProductDetail.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/ProductDetail.java new file mode 100644 index 0000000..26314cf --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/ProductDetail.java @@ -0,0 +1,15 @@ +package com.cyl.h5.pojo.vo; + +import com.cyl.manager.pms.domain.Brand; +import com.cyl.manager.pms.domain.Product; +import com.cyl.manager.pms.domain.Sku; +import lombok.Data; + +import java.util.List; + +@Data +public class ProductDetail { + private Product product; + private List skus; + private Brand brand; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/SkuViewDTO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/SkuViewDTO.java new file mode 100644 index 0000000..4466ead --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/SkuViewDTO.java @@ -0,0 +1,32 @@ +package com.cyl.h5.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + + +/** + * sku渲染详情 + * + * @author Jinxin + */ +@Data +@ApiModel(value = "sku渲染详情") +public class SkuViewDTO { + private Long productId; + private Long skuId; + @ApiModelProperty(value = "商品名称") + private String productName; + @ApiModelProperty(value = "销售属性") + private String spData; + @ApiModelProperty(value = "购买数量") + private Integer quantity; + @ApiModelProperty(value = "主图") + private String pic; + @ApiModelProperty(value = "售价") + private BigDecimal price; + @ApiModelProperty(value = "库存数") + private Integer stock; +} \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/StaffAnswerRecordVO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/StaffAnswerRecordVO.java new file mode 100644 index 0000000..747f916 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/StaffAnswerRecordVO.java @@ -0,0 +1,11 @@ +package com.cyl.h5.pojo.vo; + +import com.cyl.manager.staff.domain.StaffAnswerRecord; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +public class StaffAnswerRecordVO extends StaffAnswerRecord { +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/StaffServiceRecordVO.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/StaffServiceRecordVO.java new file mode 100644 index 0000000..d0b3db3 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/StaffServiceRecordVO.java @@ -0,0 +1,50 @@ +package com.cyl.h5.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * 员工服务记录VO + * + * @author jx + * @date 2024-01-06 + */ +@Data +public class StaffServiceRecordVO { + private static final long serialVersionUID = 1L; + + /** + * 员工服务记录 ID + */ + private Long id; + + @ApiModelProperty("员工 ID") + private Long staffId; + + @ApiModelProperty("服务类型 0 猫咪喂养 1狗狗喂养 2 异宠喂养") + private Integer type; + + @ApiModelProperty("服务时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date serviceTime; + + @ApiModelProperty("服务描述") + private String remark; + + @ApiModelProperty("服务图片") + private String urls; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTme; + + @ApiModelProperty("更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "更新时间") + private Date updateTme; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/form/AppointmentSubmitForm.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/form/AppointmentSubmitForm.java new file mode 100644 index 0000000..6a95d1c --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/form/AppointmentSubmitForm.java @@ -0,0 +1,43 @@ +package com.cyl.h5.pojo.vo.form; + +import com.cyl.h5.pojo.dto.OrderProductListDTO; +import com.cyl.h5.pojo.dto.PetOrderServiceDTO; +import com.cyl.h5.pojo.dto.ServiceInfoDTO; +import com.cyl.manager.ums.pojo.dto.MemberAddressDTO; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class AppointmentSubmitForm { + + @NotNull + private String openId; + + private String note; + + @NotNull + private Long addressId; + +// private ServiceInfoDTO service; + + private String totalPrice; + +// @NotEmpty +// private List skuList; + + + /** 是否提前熟悉 */ + private Boolean needPreFamiliarize; + + /** 选中的优惠券 */ + private Integer couponId; + + // 1、选中的宠物、2服务日期3、期望时间 + /** 宠物服务列表 */ + private List petOrderServices; + + //todo 预留字段 1、订单派单方式 2、伴宠师名字(用于展示),3、伴宠师 ID +} \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/form/BondSubmitForm.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/form/BondSubmitForm.java new file mode 100644 index 0000000..68ee2a6 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/form/BondSubmitForm.java @@ -0,0 +1,20 @@ +package com.cyl.h5.pojo.vo.form; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 保证金缴纳FORM + */ +@Data +public class BondSubmitForm { + + @NotNull + private String phone; + @NotNull + private String openId; + + private String totalPrice; + +} \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/form/OrderSubmitForm.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/form/OrderSubmitForm.java new file mode 100644 index 0000000..11da729 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/form/OrderSubmitForm.java @@ -0,0 +1,49 @@ +package com.cyl.h5.pojo.vo.form; + +import com.cyl.h5.pojo.dto.OrderProductListDTO; +import com.cyl.h5.pojo.dto.PetOrderServiceDTO; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class OrderSubmitForm { + @NotNull + private Long addressId; + private String note; + /** 支付方式 0:未支付 1:支付宝 2:微信 默认微信 */ + private Integer payType = 2; + /** 订单来源,购物车则为cart */ + private String from; + /** 订单来源,购物车则为cart */ + private String totalPrice; + + /** 下单方式 */ + private String orderMethod; + + /** 伴宠师ID */ + private Long servicerId; + + @NotEmpty + private List skuList; + @Data + public static class SkuParam { + private Long skuId; + private Integer quantity; + } + + /** 是否提前熟悉 */ + private Boolean needPreFamiliarize; + + /** 选中的优惠券 */ + private Integer couponId; + + // 1、选中的宠物、2服务日期3、期望时间 private List skuList; + /** 宠物服务列表 */ + private List petOrderServices; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/form/WechatLoginForm.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/form/WechatLoginForm.java new file mode 100644 index 0000000..531d01c --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/form/WechatLoginForm.java @@ -0,0 +1,9 @@ +package com.cyl.h5.pojo.vo.form; + +import lombok.Data; + +@Data +public class WechatLoginForm { + private String code; + private String state; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/query/OrderH5Query.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/query/OrderH5Query.java new file mode 100644 index 0000000..e895503 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/query/OrderH5Query.java @@ -0,0 +1,8 @@ +package com.cyl.h5.pojo.vo.query; + +import lombok.Data; + +@Data +public class OrderH5Query { + private Integer tab; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/service/H5CouponService.java b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5CouponService.java new file mode 100644 index 0000000..9c5c54e --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5CouponService.java @@ -0,0 +1,54 @@ +package com.cyl.h5.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.manager.marketing.domain.WechatStock; +import com.cyl.manager.marketing.mapper.WechatStockMapper; +import com.cyl.manager.marketing.pojo.SendCouponRequest; +import com.cyl.manager.marketing.service.IWechatMemberCouponService; +import com.cyl.manager.ums.domain.Member; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.List; + +@Service +@Transactional +public class H5CouponService { + + @Autowired + private WechatStockMapper wechatStockMapper; + + @Autowired + private IWechatMemberCouponService wechatMemberCouponService; + + public List selectWechatStockList(WechatStock wechatStock) { + return wechatStockMapper.selectList2(wechatStock); + } + + /** + * 小程序查询待领取的优惠券列表 + * @param member + * @return + */ + public List selectWechatStocktForGet(Member member) { + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("send_type", "MANUAL"); + qw.ge("available_end_time", LocalDateTime.now()); + + return wechatStockMapper.selectList(qw); + } + + public WechatStock selectWechatStockByName(String name) { + QueryWrapper dd = new QueryWrapper<>(); +// dd.eq("del_flag",0); + dd.eq("stock_name",name); + + return wechatStockMapper.selectOne(dd); + } + + public int sendCoupon(SendCouponRequest sendCouponRequest) { + return wechatMemberCouponService.sendCoupon(sendCouponRequest); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberAddressService.java b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberAddressService.java new file mode 100644 index 0000000..94c1d99 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberAddressService.java @@ -0,0 +1,191 @@ +package com.cyl.h5.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.manager.staff.service.IStaffService; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.domain.MemberAddress; +import com.cyl.manager.ums.domain.Pet; +import com.cyl.manager.ums.mapper.MemberAddressMapper; +import com.cyl.manager.ums.pojo.dto.MemberAddressDTO; +import com.cyl.manager.ums.pojo.query.MemberAddressQuery; +import com.cyl.manager.ums.pojo.vo.MemberAddressVO; +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.utils.AesCryptoUtils; +import com.ruoyi.common.utils.PhoneUtils; +import com.ruoyi.framework.config.LocalDataUtil; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 会员收货地址Service业务层处理 + * + * @author sjm + */ +@Service +@Transactional +public class H5MemberAddressService { + @Autowired + private MemberAddressMapper memberAddressMapper; + + @Value("${aes.key}") + private String aesKey; + + @Autowired + private IStaffService staffService; + + /** + * 查询会员收货地址 + * + * @param id 会员收货地址主键 + * @return 会员收货地址 + */ + + public MemberAddressVO selectById(Long id) { + MemberAddress memberAddress = memberAddressMapper.selectById(id); + MemberAddressVO memberAddressVO = new MemberAddressVO(); + BeanUtils.copyProperties(memberAddress, memberAddressVO); + memberAddressVO.setPhone(AesCryptoUtils.decrypt(aesKey, memberAddress.getPhoneEncrypted())); + return memberAddressVO; + } + + public List selectList() { + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + MemberAddress memberAddress = new MemberAddress(); + memberAddress.setMemberId(member.getId()); + List memberAddressesList = memberAddressMapper.selectByEntity(memberAddress); + return memberAddressesList.stream().map(it -> { + MemberAddressVO vo = new MemberAddressVO(); + BeanUtils.copyProperties(it, vo); + vo.setPhone(AesCryptoUtils.decrypt(aesKey, it.getPhoneEncrypted())); + return vo; + }).collect(Collectors.toList()); + } + + /** + * 新增会员收货地址 + * + * @param memberAddressDTO 会员收货地址 + * @return 结果 + */ + @Transactional + public Long insert(MemberAddressDTO memberAddressDTO) { + + //设置接单信息已填写 + if (memberAddressDTO.getStaffId() != null) { + staffService.serviceInfoSubmitted(memberAddressDTO.getStaffId(), true,false); + } + + //设置其它收获地址非默认 + memberAddressMapper.delelteDefaultAddress(memberAddressDTO.getMemberId()); +// Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + if (memberAddressDTO.getIsDefault() == 1) { + //将别的设置为0 + memberAddressMapper.updateDefault(0,memberAddressDTO.getMemberId()); + } + MemberAddress memberAddress = new MemberAddress(); + BeanUtils.copyProperties(memberAddressDTO, memberAddress); + //memberAddress.setPhoneHidden(PhoneUtils.hidePhone(memberAddressDTO.getPhone())); + memberAddress.setPhoneHidden(memberAddressDTO.getPhone()); + memberAddress.setPhoneEncrypted(AesCryptoUtils.encrypt(aesKey, memberAddressDTO.getPhone())); +// memberAddress.setMemberId(member.getId()); + memberAddress.setCreateTime(LocalDateTime.now()); + if(memberAddressMapper.insert(memberAddress) == 1){ + return memberAddress.getId(); + }else{ + return null; + } + } + + + /** + * 修改会员收货地址 + * + * @param memberAddressDTO 会员收货地址 + * @return 结果 + */ + + @Transactional + public int update(MemberAddressDTO memberAddressDTO) { + //设置其它收获地址非默认 + memberAddressMapper.delelteDefaultAddress(memberAddressDTO.getMemberId()); +// Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + if (memberAddressDTO.getIsDefault() == 1) { + //将别的设置为0 + memberAddressMapper.updateDefault(0,memberAddressDTO.getMemberId()); + } + MemberAddress memberAddress = new MemberAddress(); + BeanUtils.copyProperties(memberAddressDTO, memberAddress); + memberAddress.setPhoneHidden(PhoneUtils.hidePhone(memberAddressDTO.getPhone())); + memberAddress.setPhoneEncrypted(AesCryptoUtils.encrypt(aesKey, memberAddressDTO.getPhone())); + memberAddress.setUpdateTime(LocalDateTime.now()); +// memberAddress.setUpdateBy(member.getId()); + return memberAddressMapper.updateById(memberAddress); + } + + /** + * 批量删除会员收货地址 + * + * @param ids 需要删除的会员收货地址主键 + * @return 结果 + */ + + public int deleteByIds(Long[] ids) { + return memberAddressMapper.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 删除会员收货地址信息 + * + * @param id 会员收货地址主键 + * @return 结果 + */ + + public int deleteById(Long id) { + return memberAddressMapper.deleteById(id); + } + + public MemberAddressVO getDefault() { + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("member_id",member.getId()); + queryWrapper.eq("is_default",1); + List list = memberAddressMapper.selectList(queryWrapper); + if (CollectionUtils.isEmpty(list)){ + return null; + } + MemberAddressVO memberAddressVO = new MemberAddressVO(); + BeanUtils.copyProperties(list.get(0), memberAddressVO); + memberAddressVO.setPhone(AesCryptoUtils.decrypt(aesKey, list.get(0).getPhoneEncrypted())); + return memberAddressVO; + } + + public List selectList(MemberAddressQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper dd = new QueryWrapper<>(); + if(!StringUtils.isEmpty(query.getMemberId())){ + dd.eq("member_id",query.getMemberId()); + } + dd.orderByDesc("is_default"); + return memberAddressMapper.selectList(dd); + } + + public List selectByCondition(com.cyl.h5.pojo.dto.MemberAddressDTO memberAddressDTO) { + + return memberAddressMapper.selectByCondition(memberAddressDTO); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberCartService.java b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberCartService.java new file mode 100644 index 0000000..491d361 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberCartService.java @@ -0,0 +1,222 @@ +package com.cyl.h5.service; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.h5.config.SecurityUtil; +import com.cyl.manager.pms.domain.Sku; +import com.cyl.manager.pms.mapper.ProductMapper; +import com.cyl.manager.pms.mapper.SkuMapper; +import com.cyl.manager.pms.pojo.dto.MemberCartDTO; +import com.cyl.manager.ums.convert.MemberCartConvert; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.domain.MemberCart; +import com.cyl.manager.ums.mapper.MemberCartMapper; +import com.cyl.manager.ums.pojo.query.MemberCartQuery; +import com.cyl.manager.ums.pojo.vo.MemberCartVO; +import com.cyl.manager.ums.pojo.vo.form.UpdateMemberCartForm; +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.exception.base.BaseException; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.SortUtil; +import com.ruoyi.framework.config.LocalDataUtil; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 购物车Service业务层处理 + * + * @author zcc + */ +@Service +public class H5MemberCartService { + @Autowired + private MemberCartMapper memberCartMapper; + @Autowired + private SkuMapper skuMapper; + @Autowired + private ProductMapper productMapper; + @Autowired + private MemberCartConvert memberCartConvert; + + /** + * 查询购物车 + * + * @param id 购物车主键 + * @return 购物车 + */ + public MemberCart selectById(Long id) { + return memberCartMapper.selectById(id); + } + + /** + * 查询购物车列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 购物车 + */ + public List selectList(MemberCartQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize(), SortUtil.sort2string(page.getSort(),"id desc")); + } + QueryWrapper qw = new QueryWrapper<>(); + if (query.getMemberId() != null){ + qw.eq("member_id", query.getMemberId()); + } + List memberCartList = memberCartMapper.selectList(qw); + if (CollectionUtil.isEmpty(memberCartList)){ + return Collections.emptyList(); + } + //查sku + List skuIdList = memberCartList.stream().map(MemberCart::getSkuId).collect(Collectors.toList()); + QueryWrapper skuQw = new QueryWrapper<>(); + skuQw.in("id", skuIdList); + Map skuMap = skuMapper.selectList(skuQw).stream().collect(Collectors.toMap(Sku::getId, it -> it)); + List resList = new ArrayList<>(); + memberCartList.forEach(item -> { + MemberCartVO memberCartVO = new MemberCartVO(); + BeanUtils.copyProperties(item, memberCartVO); + if (!skuMap.containsKey(item.getSkuId())){ + memberCartVO.setStatus(0); + memberCartVO.setSkuIfExist(0); + }else { + Sku sku = skuMap.get(item.getSkuId()); + memberCartVO.setPrice(sku.getPrice()); + memberCartVO.setSkuIfExist(1); + } + resList.add(memberCartVO); + }); + return resList; + } + + /** + * 新增购物车 + * + * @param memberCart 购物车 + * @return 结果 + */ + public int insert(MemberCart memberCart) { + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + memberCart.setMemberId(member.getId()); + //判断cart是否存在 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("member_id",member.getId()); + queryWrapper.eq("sku_id",memberCart.getSkuId()); + queryWrapper.eq("product_id",memberCart.getProductId()); + List memberCarts = memberCartMapper.selectList(queryWrapper); + if (CollectionUtils.isEmpty(memberCarts)) { + memberCart.setStatus(1); + memberCart.setCreateTime(LocalDateTime.now()); + memberCart.setCreateBy(member.getId()); + return memberCartMapper.insert(memberCart); + } + MemberCart dbCart = memberCarts.get(0); + dbCart.setUpdateTime(LocalDateTime.now()); + dbCart.setQuantity(dbCart.getQuantity() + memberCart.getQuantity()); + return memberCartMapper.updateById(dbCart); + } + + /** + * 修改购物车 + * + * @param memberCart 购物车 + * @return 结果 + */ + public int update(MemberCart memberCart) { + MemberCart cart = memberCartMapper.selectById(memberCart.getId()); + if (cart == null){ + return 0; + } + cart.setQuantity(memberCart.getQuantity()); + cart.setUpdateTime(LocalDateTime.now()); + cart.setUpdateBy(SecurityUtil.getLocalMember().getId()); + return memberCartMapper.updateById(cart); + } + public int update(UpdateMemberCartForm form) { + if (form.getNum() == null || form.getId() == null) { + throw new BaseException("参数错误"); + } + Long userId = SecurityUtils.getUserId(); + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(MemberCart::getMemberId, userId); + qw.eq(MemberCart::getId, form.getId()); + if (form.getNum() <= 0) { + return memberCartMapper.delete(qw); + } + MemberCart e = new MemberCart(); + e.setQuantity(form.getNum()); + return memberCartMapper.update(e, qw); + } + + /** + * 删除购物车信息 + * + * @param id 购物车主键 + * @return 结果 + */ + public int deleteById(Long id) { + return memberCartMapper.deleteById(id); + } + + /** + * 删除购物车信息 + * + * @param ids 购物车主键 + * @return 结果 + */ + public int deleteByIds(String ids) { + List idList = Arrays.stream(ids.split(",")).map(it -> Long.parseLong(it)).collect(Collectors.toList()); + return memberCartMapper.deleteBatchIds(idList); + } + + public Integer mineCartNum() { + Long userId = SecurityUtils.getUserId(); + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("member_id", userId); + qw.eq("status", 1); + qw.select("count(quantity) quantity"); + MemberCart c = memberCartMapper.selectOne(qw); + if (c == null) { + return 0; + } + return c.getQuantity(); + } + + public void injectSku(List resList) { + List skuIds = resList.stream().map(MemberCartDTO::getSkuId).distinct().collect(Collectors.toList()); + if (CollUtil.isEmpty(skuIds)) { + return; + } + List skus = skuMapper.selectBatchIds(skuIds); + Map map = new HashMap<>(); + skus.forEach(it -> { + map.put(it.getId(), it); + }); + resList.forEach(it -> { + Sku s = map.get(it.getSkuId()); + if (s == null) { + return; + } + it.setPrice(s.getPrice()); + }); + } + + public List mineCartIds() { + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("member_id", SecurityUtils.getUserId()); + qw.eq("status", 1); + qw.select("id"); + List list = memberCartMapper.selectList(qw); + return list.stream().map(MemberCart::getId).collect(Collectors.toList()); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberCouponService.java b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberCouponService.java new file mode 100644 index 0000000..0f4c8c8 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberCouponService.java @@ -0,0 +1,55 @@ +package com.cyl.h5.service; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.cyl.h5.pojo.request.H5MemberCouponRequest; +import com.cyl.h5.pojo.response.WechatMemberCouponResponse; +import com.cyl.manager.marketing.domain.WechatMemberCoupon; +import com.cyl.manager.marketing.mapper.WechatMemberCouponMapper; +import com.ruoyi.common.utils.DateUtils; +import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.session.SqlSessionFactory; +import org.apache.ibatis.session.SqlSessionFactoryBuilder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.List; + +@Service +@Transactional +@Slf4j +public class H5MemberCouponService { + + @Autowired + private WechatMemberCouponMapper wechatMemberCouponMapper; + + public List selectMemberCouponList(H5MemberCouponRequest h5MemberCouponRequest) { + WechatMemberCoupon wechatMemberCoupon = new WechatMemberCoupon(); + wechatMemberCoupon.setMemberId(h5MemberCouponRequest.getMemberId()); + wechatMemberCoupon.setPhone(h5MemberCouponRequest.getPhone()); + wechatMemberCoupon.setCouponState(wechatMemberCoupon.getCouponState()); + //查询可用状态优惠券 + wechatMemberCoupon.setCouponState("SENDED"); + + return wechatMemberCouponMapper.selectList2(wechatMemberCoupon); + } + + public List selectMemberCouponListForOrder(Long memberId) { + return wechatMemberCouponMapper.selectListForOrder(memberId); + } + + public List selectMemberCouponById(Integer couponId) { + return wechatMemberCouponMapper.selectMemberCouponById(couponId); + } + public void processExpiredCoupon() { + String now = DateUtils.getTime(); + + //String sql = "update wechat_member_coupon set coupon_state = 'EXPIRED' and update_time = '" + now + "' where expire_time < '" + now + "' and coupon_state = 'SENDED'"; + log.info("【优惠券过期处理任务】now:" + now); + int result = wechatMemberCouponMapper.updateCouponState(now); + + + log.info("【优惠券过期处理任务】更新结果:" + result); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberDoorLockService.java b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberDoorLockService.java new file mode 100644 index 0000000..412f8c3 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberDoorLockService.java @@ -0,0 +1,72 @@ +package com.cyl.h5.service; + +import com.cyl.manager.ums.domain.MemberDoorLock; +import com.cyl.manager.ums.mapper.MemberDoorLockMapper; +import com.ruoyi.system.service.ISysDictDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * 门锁信息Service接口 + * + * @author daixiande + */ +@Service +public class H5MemberDoorLockService { + + @Autowired + private MemberDoorLockMapper memberDoorLockMapper; + + @Autowired + private ISysDictDataService sysDictDataService; + + public MemberDoorLock selectMemberDoorLockById(Long id) { + return memberDoorLockMapper.selectById(id); + } + + public List selectMemberDoorLockList(MemberDoorLock memberDoorLock) { + List list = memberDoorLockMapper.selectList(memberDoorLock); + if(CollectionUtils.isEmpty(list)){ + return list; + } + for (MemberDoorLock doorLock : list) { + doorLock.setHouseType(sysDictDataService.selectDictLabel("house_type",doorLock.getHouseType())); + doorLock.setLockType(sysDictDataService.selectDictLabel("lock_type",doorLock.getLockType())); + doorLock.setKeyHandover(sysDictDataService.selectDictLabel("Key_handover",doorLock.getKeyHandover())); + } + return list; + } + + public int insertMemberDoorLock(MemberDoorLock memberDoorLock) { + deleteMemberDoorLockByOpenId(memberDoorLock.getMemberId()); + memberDoorLock.setCreateTime(LocalDateTime.now()); + memberDoorLock.setCreateBy(memberDoorLock.getMemberId()); + return memberDoorLockMapper.insert(memberDoorLock); + } + + private void deleteMemberDoorLockByOpenId(Long memberId) { + memberDoorLockMapper.deleteMemberDoorLockByMemberId(memberId); + } + + public int updateMemberDoorLock(MemberDoorLock memberDoorLock) { + memberDoorLock.setUpdateTime(LocalDateTime.now()); + memberDoorLock.setUpdateBy(memberDoorLock.getMemberId()); + return memberDoorLockMapper.update(memberDoorLock); + } + + public int deleteMemberDoorLockByIds(Long[] ids) { + return memberDoorLockMapper.deleteByIds(ids); + } + + public int deleteMemberDoorLockById(Long id) { + return memberDoorLockMapper.deleteById(id); + } + + public MemberDoorLock selectMemberDoorLockByOpenId(Long memberId) { + return memberDoorLockMapper.selectByMemberId(memberId); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberService.java b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberService.java new file mode 100644 index 0000000..eaa4577 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberService.java @@ -0,0 +1,663 @@ +package com.cyl.h5.service; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.cyl.config.AESForWeixinGetPhoneNumber; +import com.cyl.h5.pojo.dto.H5LoginDTO; +import com.cyl.h5.pojo.request.*; +import com.cyl.h5.pojo.response.RegisterResponse; +import com.cyl.h5.pojo.response.ValidatePhoneResponse; +import com.cyl.h5.pojo.response.H5LoginResponse; +import com.cyl.h5.pojo.vo.H5OrderVO; +import com.cyl.manager.marketing.domain.WechatMemberCoupon; +import com.cyl.manager.marketing.domain.WechatStock; +import com.cyl.manager.marketing.pojo.SendCouponRequest; +import com.cyl.manager.oms.domain.Order; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.domain.MemberLogininfor; +import com.cyl.manager.ums.domain.MemberWechat; +import com.cyl.manager.ums.mapper.MemberLogininforMapper; +import com.cyl.manager.ums.mapper.MemberMapper; +import com.cyl.manager.ums.mapper.MemberWechatMapper; +import com.cyl.manager.ums.pojo.vo.MemberV2VO; +import com.cyl.manager.ums.pojo.vo.MemberVO; +import com.cyl.manager.ums.service.MemberLogininforService; +import com.cyl.manager.ums.service.MemberWechatService; +import com.cyl.wechat.WechatAuthService; +import com.cyl.wechat.response.WechatUserAuth; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.model.LoginMember; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.enums.MemberLevel; +import com.ruoyi.common.utils.*; +import com.ruoyi.common.utils.ip.AddressUtils; +import com.ruoyi.common.utils.ip.IpUtils; +import com.ruoyi.framework.config.LocalDataUtil; +import com.ruoyi.framework.web.service.TokenService; +import com.ruoyi.system.service.ISysConfigService; +import eu.bitwalker.useragentutils.UserAgent; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Base64Utils; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.Year; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.stream.Collectors; + +@Service +@Slf4j +public class H5MemberService { + + @Autowired + private MemberMapper memberMapper; + + @Autowired + private RedisCache redisCache; + + @Autowired + private TokenService tokenService; + + @Value("${aes.key}") + private String aesKey; + + @Autowired + private WechatAuthService wechatAuthService; + + + @Autowired + private ISysConfigService sysConfigService; + + @Autowired + private MemberWechatMapper memberWechatMapper; + + @Autowired + private MemberWechatService memberWechatService; + + @Autowired + private MemberLogininforService memberLogininforService; + + @Autowired + private H5MemberCouponService h5MemberCouponService; + + @Autowired + private MemberLogininforMapper memberLogininforMapper; + + @Autowired + private H5OrderService h5OrderService; + + @Autowired + private H5CouponService h5CouponService; + + private static List levelAmountList = new ArrayList<>(); + + private static Map levelAmountMap = new HashMap<>(); + + /** + * 注册 + * @param request 注册请求体 + * @return 结果 + */ + @Transactional + public RegisterResponse register(RegisterRequest request){ + LocalDateTime optDate = LocalDateTime.now(); + RegisterResponse response = new RegisterResponse(); + //校验验证码 + //TODO 去掉验证码校验 + //this.validateVerifyCode(request.getUuid(), request.getMobile(), request.getCode()); + //创建会员 + Member member = new Member(); + member.setPhoneEncrypted(AesCryptoUtils.encrypt(aesKey, request.getMobile())); + member.setPhoneHidden(PhoneUtils.hidePhone(request.getMobile())); + member.setPassword(SecurityUtils.encryptPassword(request.getPassword())); + member.setNickname("用户" + request.getMobile().substring(7,11)); + member.setStatus(Constants.MEMBER_ACCOUNT_STATUS.NORMAL); + member.setGender(0); + member.setCreateTime(optDate); + int rows = memberMapper.insert(member); + if (rows < 1){ + throw new RuntimeException("注册失败,请重试"); + } + //调用微信授权业务拿到openId等 + WechatUserAuth userToken = wechatAuthService.getUserToken(request.getWechatCode()); + if (userToken == null){ + throw new RuntimeException("授权失败,请重试"); + } + MemberWechat memberWechat = new MemberWechat(); + memberWechat.setMemberId(member.getId()); + memberWechat.setOpenid(userToken.getOpenid()); + memberWechat.setAccessToken(userToken.getAccess_token()); + memberWechat.setExpiresIn(userToken.getExpires_in()); + memberWechat.setRefreshToken(userToken.getRefresh_token()); + memberWechat.setCreateTime(optDate); + memberWechat.setCreateBy(member.getId()); + rows = memberWechatMapper.insert(memberWechat); + if (rows < 1){ + throw new RuntimeException("注册失败,请重试"); + } + //注册成功直接返回token了 + H5LoginResponse loginResponse = getLoginResponse(member.getId()); + response.setToken(loginResponse.getToken()); + return response; + } + + public ValidatePhoneResponse validate(String phone) { + ValidatePhoneResponse response = new ValidatePhoneResponse(); + byte[] decodedBytes = Base64.getDecoder().decode(phone); + phone = new String(decodedBytes); + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("phone_encrypted", AesCryptoUtils.encrypt(aesKey, phone)); + Member member = memberMapper.selectOne(qw); + if (member != null){ + throw new RuntimeException("该手机号已被占用"); + } + response.setIfSuccess(true); + response.setMessage("该手机号可用"); + return response; + } + + /** + * 账号密码登录 + * @param data + * @return + */ + public H5LoginResponse accountLogin(String data) { + if (StringUtils.isEmpty(data)){ + throw new RuntimeException(Constants.LOGIN_INFO.WRONG); + } + // 解码 转 对象 + H5AccountLoginRequest request = JSON.parseObject(new String(Base64Utils.decodeFromString(data)), H5AccountLoginRequest.class); + log.info("account login request:{}", JSONUtil.toJsonStr(request)); + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("phone_encrypted", AesCryptoUtils.encrypt(aesKey, request.getMobile())); + Member member = memberMapper.selectOne(qw); + if (member == null){ + throw new RuntimeException(Constants.LOGIN_INFO.WRONG); + } + validateMemberStatus(member); + //check 密码 + if (!SecurityUtils.matchesPassword(request.getPassword(), member.getPassword())){ + throw new RuntimeException(Constants.LOGIN_INFO.WRONG); + } + return getLoginResponse(member.getId()); + } + + public H5LoginResponse smsLogin(String data){ + LocalDateTime optDate = LocalDateTime.now(); + if (StringUtils.isEmpty(data)){ + throw new RuntimeException(Constants.LOGIN_INFO.WRONG); + } + H5SmsLoginRequest request = JSON.parseObject(new String(Base64Utils.decodeFromString(data)), H5SmsLoginRequest.class); + //校验验证码 + this.validateVerifyCode(request.getUuid(), request.getMobile(), request.getCode()); + //查会员 + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("phone_encrypted", AesCryptoUtils.encrypt(aesKey, request.getMobile())); + Member member = memberMapper.selectOne(qw); + if (member == null){ + //新会员,注册并登录 + member = new Member(); + member.setPhoneEncrypted(AesCryptoUtils.encrypt(aesKey, request.getMobile())); + member.setPhoneHidden(PhoneUtils.hidePhone(request.getMobile())); + member.setNickname("用户" + request.getMobile().substring(7,11)); + member.setStatus(Constants.MEMBER_ACCOUNT_STATUS.NORMAL); + member.setGender(0); + member.setCreateTime(optDate); + int rows = memberMapper.insert(member); + if (rows < 1){ + throw new RuntimeException("注册失败,请重试"); + } + MemberWechat memberWechat = new MemberWechat(); + memberWechat.setMemberId(member.getId()); + if (request.getAuthInfo() != null){ + memberWechat.setOpenid(request.getAuthInfo().getOpenid()); + memberWechat.setAccessToken(request.getAuthInfo().getAccess_token()); + memberWechat.setExpiresIn(request.getAuthInfo().getExpires_in()); + memberWechat.setRefreshToken(request.getAuthInfo().getRefresh_token()); + } + if (StringUtils.isNotEmpty(request.getMpOpenId())){ + memberWechat.setRoutineOpenid(request.getMpOpenId()); + } + memberWechat.setCreateTime(optDate); + memberWechat.setCreateBy(member.getId()); + rows = memberWechatMapper.insert(memberWechat); + if (rows < 1){ + throw new RuntimeException("注册失败,请重试"); + } + }else { + //校验会员状态 + validateMemberStatus(member); + //判断小程序openid是否插入 + if (StringUtils.isNotEmpty(request.getMpOpenId()) || request.getAuthInfo() != null){ + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("member_id",member.getId()); + MemberWechat memberWechat = memberWechatMapper.selectOne(queryWrapper); + Boolean update = false; + if (StringUtils.isNotEmpty(request.getMpOpenId()) && StringUtils.isEmpty(memberWechat.getRoutineOpenid())) { + memberWechat.setRoutineOpenid(request.getMpOpenId()); + update = true; + } + if (request.getAuthInfo() != null && StringUtils.isEmpty(memberWechat.getOpenid())) { + memberWechat.setOpenid(request.getAuthInfo().getOpenid()); + memberWechat.setAccessToken(request.getAuthInfo().getAccess_token()); + memberWechat.setExpiresIn(request.getAuthInfo().getExpires_in()); + memberWechat.setRefreshToken(request.getAuthInfo().getRefresh_token()); + update = true; + } + if (update){ + memberWechatMapper.updateById(memberWechat); + } + } + } + + return getLoginResponse(member.getId()); + } + + /** + * 校验会员状态 + * @param member 会员信息 + */ + private void validateMemberStatus(Member member) { + if (Constants.MEMBER_ACCOUNT_STATUS.FORBIDDEN == member.getStatus()){ + throw new RuntimeException(Constants.LOGIN_INFO.FORBIDDEN); + } + } + + /** + * 校验验证码有效性 + * @param uuid 唯一标识 + * @param phone 手机号 + * @param inputCode 输入的验证码 + */ + private void validateVerifyCode(String uuid, String phone, String inputCode){ + String key = uuid + "_" + phone; + String redisCode = redisCache.getCacheObject(key); + if (redisCode == null){ + throw new RuntimeException(Constants.VERIFY_CODE_INFO.EXPIRED); + }else if (!redisCode.equals(inputCode)){ + throw new RuntimeException(Constants.VERIFY_CODE_INFO.WRONG); + } + //删除缓存 + redisCache.deleteObject(key); + } + + /** + * 封装登录响应 + * @param memberId 登录会员id + * @return 结果 + */ + public H5LoginResponse getLoginResponse(Long memberId){ + LoginMember loginMember = new LoginMember(); + loginMember.setMemberId(memberId); + String token = tokenService.createMemberToken(loginMember); + //record登录 + this.insert(memberId); + H5LoginResponse response = new H5LoginResponse(); + response.setToken(token); + return response; + } + + public MemberVO getMemberInfo() { + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + MemberVO memberVO = new MemberVO(); + BeanUtils.copyProperties(member, memberVO); + memberVO.setPhone(AesCryptoUtils.decrypt(aesKey, member.getPhoneEncrypted())); + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("member_id", member.getId()); + MemberWechat memberWechat = memberWechatMapper.selectOne(qw); + memberVO.setOpenId(memberWechat.getOpenid()); + return memberVO; + } + + public WechatUserAuth getWechatUserAuth(String data) { + BindOpenIdRequest request = JSON.parseObject(new String(Base64Utils.decodeFromString(data)), BindOpenIdRequest.class); + WechatUserAuth userToken = wechatAuthService.getUserToken(request.getCode()); + if (userToken == null){ + log.error("微信授权失败"); + throw new RuntimeException("授权失败,请重试"); + } + return userToken; + } + + public void setWechatInfo(String data) { + WechatUserAuth authInfo = JSON.parseObject(new String(Base64Utils.decodeFromString(data)), WechatUserAuth.class); + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + UpdateWrapper wrapper = new UpdateWrapper<>(); + wrapper.eq("member_id", member.getId()); + wrapper.set("openid", authInfo.getOpenid()); + wrapper.set("access_token", authInfo.getAccess_token()); + wrapper.set("expires_in", authInfo.getExpires_in()); + wrapper.set("refresh_token", authInfo.getRefresh_token()); + wrapper.set("update_time", LocalDateTime.now()); + wrapper.set("update_by", member.getId()); + memberWechatMapper.update(null, wrapper); + } + + /** + * 新增会员登录记录 + * + * @param memberId 会员id + * @return 结果 + */ + public void insert(Long memberId) { + Member member = memberMapper.selectById(memberId); + UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent")); + MemberLogininfor memberLogininfor = new MemberLogininfor(); + memberLogininfor.setMemberId(memberId); + memberLogininfor.setPhone(member.getPhoneHidden()); + memberLogininfor.setOs(userAgent.getOperatingSystem().getName()); + memberLogininfor.setIpaddr(IpUtils.getIpAddr(ServletUtils.getRequest())); + memberLogininfor.setBrowser(userAgent.getBrowser().getName()); + memberLogininfor.setLoginLocation(AddressUtils.getRealAddressByIP(memberLogininfor.getIpaddr())); + memberLogininfor.setLoginTime(LocalDateTime.now()); + memberLogininforMapper.insert(memberLogininfor); + } + + public H5LoginResponse wechatLogin(H5LoginDTO params) throws Exception { + String openId = params.getOpenId(); + String sessionKey = params.getSessionKey(); + //解密手机号 + String mobile = getMobile(sessionKey, params.getKey(), params.getData()); + if(StringUtils.isEmpty(mobile)) { + throw new Exception("登录异常"); + } + Member member = createOrUpdateMember(openId,mobile, null); + return getLoginResponse(member.getId()); + } + + public Member createOrUpdateMember(String openId,String mobile, String wechatId){ + //openid为唯一标识,先查询该微信号是否下过单 + QueryWrapper queryMemberWechatWrapper = new QueryWrapper<>(); + queryMemberWechatWrapper.eq("routine_openid", openId); + MemberWechat memberWechatExist = memberWechatMapper.selectOne(queryMemberWechatWrapper); + Member member = null; + if (memberWechatExist != null) { + member = memberMapper.selectById(memberWechatExist.getMemberId()); + } else { + //查会员 + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("phone_encrypted", AesCryptoUtils.encrypt(aesKey, mobile)); + member = memberMapper.selectOne(qw); + } + + if (member == null){ + //新会员,注册并登录 + member = new Member(); + member.setPhoneEncrypted(AesCryptoUtils.encrypt(aesKey, mobile)); + member.setPhoneHidden(PhoneUtils.hidePhone(mobile)); + member.setNickname("用户" + mobile.substring(7,11)); + member.setStatus(Constants.MEMBER_ACCOUNT_STATUS.NORMAL); + member.setGender(0); + member.setCreateTime(LocalDateTime.now()); + int rows = memberMapper.insert(member); + if (rows < 1){ + throw new RuntimeException("注册失败,请重试"); + } + if (wechatId == null) { + MemberWechat memberWechat = new MemberWechat(); + memberWechat.setMemberId(member.getId()); + memberWechat.setRoutineOpenid(openId); + memberWechat.setWechatId(wechatId); + memberWechat.setCreateTime(LocalDateTime.now()); + memberWechat.setCreateBy(member.getId()); + rows = memberWechatMapper.insert(memberWechat); + if (rows < 1){ + throw new RuntimeException("注册失败,请重试"); + } + } + + //发放注册优惠券 + SendCouponRequest sendCouponRequest = new SendCouponRequest(); + + WechatStock wechatStock = h5CouponService.selectWechatStockByName("新客8.5折优惠"); + + if (wechatStock != null) { + sendCouponRequest.setPhone(mobile); + sendCouponRequest.setStockId(wechatStock.getId()); + h5CouponService.sendCoupon(sendCouponRequest); + } + } else { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("member_id", member.getId()); + MemberWechat memberWechat = memberWechatMapper.selectOne(queryWrapper); + if (StringUtils.isEmpty(memberWechat.getRoutineOpenid())) { + memberWechat.setRoutineOpenid(openId); + memberWechat.setWechatId(wechatId); + memberWechatMapper.updateById(memberWechat); + } + } + return member; + } + + private String getMobile(String sessionKey, String key, String data) { + AESForWeixinGetPhoneNumber aes = new AESForWeixinGetPhoneNumber(data, sessionKey, key); + JSONObject decrypt = aes.decrypt(); + if (decrypt != null) { + return decrypt.getString("phoneNumber"); + } + return null; + } + + public MemberV2VO getMemberInfoV2(){ + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + if(ObjectUtil.isNull(member)){ + return null; + } + MemberV2VO memberV2VO = new MemberV2VO(); + MemberWechat memberWechat = memberWechatService.selectByMemberId(member.getId()); + BeanUtils.copyProperties(member, memberV2VO); + memberV2VO.setPhone(AesCryptoUtils.decrypt(aesKey, member.getPhoneEncrypted())); + memberV2VO.setOpenId(memberWechat.getRoutineOpenid()); + memberV2VO.setLevel(MemberLevel.getName(member.getLevel())); + /** + * 1、个人信息(等级、名字、头像) + * 2、自然年累计消费金额、等级升级规则(放参数表) + * 3、获取积分,集点,卡券数量 + * 4、获取当前订单详情(最新订单) + */ + + //获取卡券数量 通过手机号获取卡券数量 + H5MemberCouponRequest h5MemberCouponRequest = new H5MemberCouponRequest(); + h5MemberCouponRequest.setPhone(memberV2VO.getPhone()); + h5MemberCouponRequest.setOpenId(memberV2VO.getOpenId()); + List list = h5MemberCouponService.selectMemberCouponList(h5MemberCouponRequest); + if(CollectionUtils.isEmpty(list)){ + memberV2VO.setCoupon(BigDecimal.ZERO); + }else{ + memberV2VO.setCoupon(new BigDecimal(list.size())); + } + + //自然年累计消费金额、等级升级规则(放参数表) + //根据memberId查询所有有效订单 + List orderList = h5OrderService.getAllOrderByMemberId(memberV2VO.getId()); + BigDecimal currentYearOrderAmount = BigDecimal.ZERO; + if(!CollectionUtils.isEmpty(orderList)){ + // 获取当前年份 + int currentYear = Year.now().getValue(); + // 过滤出 paymentTime 在今年的订单,并统计 payAmount 之和 + currentYearOrderAmount = orderList.stream() + .filter(order -> order.getPaymentTime() != null && + order.getPaymentTime().getYear() == currentYear) + .map(Order::getPayAmount) // 获取支付金额 + .filter(amount -> amount != null) // 过滤掉 null 值 + .reduce(BigDecimal.ZERO, BigDecimal::add); // 统计金额之和 + } + memberV2VO.setCurrentYearOrderAmount(currentYearOrderAmount); + + // 获取当前订单详情(最新订单) + Optional latestOrder = orderList.stream() + .filter(order -> order.getPaymentTime() != null) // 确保 paymentTime 不为 null + .max(Comparator.comparing(Order::getPaymentTime)); // 按 paymentTime 排序并找出最大值 + Order order = null; + // 检查是否找到订单并打印信息 + if (latestOrder.isPresent()) { + order = latestOrder.get(); + } + if(!ObjectUtil.isEmpty(order)){ + H5OrderVO h5OrderVO = h5OrderService.orderDetail(order.getId()); + memberV2VO.setH5OrderVO(h5OrderVO); + } + computeConsumptionAndPromotion(currentYearOrderAmount,memberV2VO); + + //获取进度条数据 + String rule = sysConfigService.selectConfigByKey("member.level.rule"); + // 将 JSON 字符串转换为 List + if(CollectionUtils.isEmpty(levelAmountList)){ + convertJsonToList(rule); + } + Map result = getProgressData(currentYearOrderAmount); + memberV2VO.setProcess(result.get("progressPercentage")); + memberV2VO.setNextLevel(result.get("nextLevel")); + memberV2VO.setAmountNeeded(result.get("amountNeeded")); + + + // 获取当前日期 + LocalDate today = LocalDate.now(); + // 获取当前年的第一天 + LocalDate firstDayOfCurrentYear = today.withDayOfYear(1); + // 获取下一年的第一天 + LocalDate firstDayOfNextYear = firstDayOfCurrentYear.plusYears(1); + // 定义日期格式 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日"); + String formattedNextYear = firstDayOfNextYear.format(formatter); + memberV2VO.setPromotionDate(formattedNextYear); + return memberV2VO; + } + + private void computeConsumptionAndPromotion(BigDecimal currentYearOrderAmount, MemberV2VO memberV2VO) { + // 获取当前日期 + LocalDate today = LocalDate.now(); + // 获取当前年的第一天 + LocalDate firstDayOfCurrentYear = today.withDayOfYear(1); + // 获取下一年的第一天 + LocalDate firstDayOfNextYear = firstDayOfCurrentYear.plusYears(1); + // 定义日期格式 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日"); + + // 格式化日期 + String formattedCurrentYear = firstDayOfCurrentYear.format(formatter); + String formattedNextYear = firstDayOfNextYear.format(formatter); + + int[] consumptionAndPromotion = evaluateOrderAmount(currentYearOrderAmount); + Integer level = consumptionAndPromotion[0]+1; + int promotionAmount = consumptionAndPromotion[1]; + + String consumption = "累计消费"+currentYearOrderAmount+"元("+formattedCurrentYear+"起至今)"; + String promotion = "到"+formattedNextYear+"前再消费"+promotionAmount+"元即可升级至"+ MemberLevel.getName(level); + memberV2VO.setConsumption(consumption); + memberV2VO.setPromotion(promotion); + } + + public int[] evaluateOrderAmount(BigDecimal amount) { + if(amount == null){ + amount = BigDecimal.ZERO; + } + String rule = sysConfigService.selectConfigByKey("member.level.rule"); + // 将 JSON 字符串转换为 Map + if(CollectionUtils.isEmpty(levelAmountMap)){ + convertJsonToMap(rule); + } + + // 定义规则 + int level = 1; // 默认等级 + BigDecimal targetAmount = levelAmountMap.get(1); // 默认目标金额 + // 根据消费金额判断级别和目标金额 + for (Map.Entry entry : levelAmountMap.entrySet()) { + // 对于第一个级别,直接判断小于 + if (entry.getKey() == 1 && amount.compareTo(entry.getValue()) < 0) { + targetAmount = entry.getValue(); + break; + } + + // 对于其他级别,判断范围 + if (entry.getKey() > 1) { + BigDecimal previousLimit = levelAmountMap.get(entry.getKey() - 1); + if (amount.compareTo(previousLimit) >= 0 && amount.compareTo(entry.getValue()) < 0) { + level = entry.getKey(); + targetAmount = entry.getValue(); + break; + } + } + } + return new int[] {level, targetAmount.intValue()}; + } + + public static void convertJsonToMap(String jsonString) { + // 解析 JSON + JSONArray jsonArray = JSONArray.parseArray(jsonString); + for (Object obj : jsonArray) { + JSONObject jsonObject = (JSONObject) obj; + int level = jsonObject.getInteger("level"); + BigDecimal amount = jsonObject.getBigDecimal("amount"); + levelAmountMap.put(level, amount); + } + } + + public static void convertJsonToList(String jsonString) { + // 解析 JSON + JSONArray jsonArray = JSONArray.parseArray(jsonString); + for (Object obj : jsonArray) { + JSONObject jsonObject = (JSONObject) obj; + BigDecimal amount = jsonObject.getBigDecimal("amount"); + levelAmountList.add(amount); + } + } + + + public static Map getProgressData(BigDecimal amount) { + int currentLevel = 0; + int nextLevel = 1; + BigDecimal amountToNextLevel = BigDecimal.ZERO; + BigDecimal amountNeeded = BigDecimal.ZERO; + double progressPercentage = 0.0; + Map resultMap = new HashMap<>(); + for (int i = 0; i < levelAmountList.size(); i++) { + BigDecimal currentAmount = levelAmountList.get(i); + + if (amount.compareTo(currentAmount) < 0) { + currentLevel = (i > 0) ? i : 1; + nextLevel = i + 1 < levelAmountList.size() ? i + 2 : 1; + amountToNextLevel = currentAmount; + amountNeeded = amountToNextLevel.subtract(amount); + + if (i > 0) { + BigDecimal previousAmount = levelAmountList.get(i - 1); + progressPercentage = amount.subtract(previousAmount) + .divide(amountToNextLevel.subtract(previousAmount), 2, BigDecimal.ROUND_HALF_UP) + .multiply(BigDecimal.valueOf(100)).doubleValue(); + } else { + progressPercentage = amount.divide(currentAmount).doubleValue(); + } + break; + } + + if (i == levelAmountList.size() - 1) { + currentLevel = i; + nextLevel = 1; + amountToNextLevel = BigDecimal.ZERO; + amountNeeded = BigDecimal.ZERO; + progressPercentage = 100; + } + } + resultMap.put("nextLevel",MemberLevel.getName(nextLevel)); + resultMap.put("amountNeeded",String.valueOf(amountNeeded)); + resultMap.put("progressPercentage",String.valueOf(progressPercentage)); + + return resultMap; + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/service/H5OrderService.java b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5OrderService.java new file mode 100644 index 0000000..b94db27 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5OrderService.java @@ -0,0 +1,1514 @@ +package com.cyl.h5.service; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.cyl.h5.pojo.dto.*; +import com.cyl.h5.pojo.request.CancelOrderRequest; +import com.cyl.h5.pojo.request.OrderPayRequest; +import com.cyl.h5.pojo.response.OrderPayResponse; +import com.cyl.h5.pojo.response.WechatMemberCouponResponse; +import com.cyl.h5.pojo.vo.*; +import com.cyl.h5.pojo.vo.form.OrderSubmitForm; +import com.cyl.manager.marketing.domain.WechatMemberCoupon; +import com.cyl.manager.marketing.mapper.WechatMemberCouponMapper; +import com.cyl.manager.marketing.service.IWechatMemberCouponService; +import com.cyl.manager.oms.convert.AftersaleItemConvert; +import com.cyl.manager.oms.convert.OrderItemConvert; +import com.cyl.manager.oms.domain.*; +import com.cyl.manager.oms.mapper.*; +import com.cyl.manager.oms.service.OmsOrderServiceService; +import com.cyl.manager.oms.service.OrderItemService; +import com.cyl.manager.oms.service.OrderOperateHistoryService; +import com.cyl.manager.pms.domain.Product; +import com.cyl.manager.pms.domain.Sku; +import com.cyl.manager.pms.mapper.ProductMapper; +import com.cyl.manager.pms.mapper.SkuMapper; +import com.cyl.manager.staff.domain.BondTransaction; +import com.cyl.manager.staff.domain.Staff; +import com.cyl.manager.staff.service.IBondTransactionService; +import com.cyl.manager.staff.service.IStaffService; +import com.cyl.manager.ums.domain.*; +import com.cyl.manager.ums.mapper.MemberAddressMapper; +import com.cyl.manager.ums.mapper.MemberCartMapper; +import com.cyl.manager.ums.mapper.MemberWechatMapper; +import com.cyl.manager.ums.pojo.vo.PetVO; +import com.cyl.manager.ums.service.PetService; +import com.cyl.tencent.OrderMessageModel; +import com.cyl.wechat.WechatPayData; +import com.cyl.wechat.WechatPayService; +import com.cyl.wechat.WechatPayUtil; +import com.github.pagehelper.PageHelper; +import com.google.gson.Gson; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.redis.RedisService; +import com.ruoyi.common.enums.*; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.IDGenerator; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.framework.config.LocalDataUtil; +import com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@Service +@Slf4j +public class H5OrderService { + + @Autowired + private MemberAddressMapper memberAddressMapper; + + @Autowired + private SkuMapper skuMapper; + + @Autowired + private ProductMapper productMapper; + + @Autowired + private MemberCartMapper memberCartMapper; + + @Autowired + private OrderMapper orderMapper; + + @Autowired + private OmsOrderServiceMapper omsOrderServiceMapper; + + @Autowired + private OrderItemMapper orderItemMapper; + + @Autowired + private OrderOperateHistoryMapper orderOperateHistoryMapper; + + @Autowired + private OrderItemService orderItemService; + + @Autowired + private OrderOperateHistoryService orderOperateHistoryService; + + @Autowired +// @Lazy + private WechatPayService wechatPayService; + + @Autowired + private MemberWechatMapper memberWechatMapper; + + + @Autowired + private IWechatMemberCouponService wechatMemberCouponService; + + @Autowired + private WechatPaymentHistoryMapper wechatPaymentHistoryMapper; + + @Autowired + private RedisService redisService; + + @Autowired + private AftersaleMapper aftersaleMapper; + + @Autowired + private AftersaleItemMapper aftersaleItemMapper; + + @Autowired + private AftersaleItemConvert aftersaleItemConvert; + + @Autowired + private OrderItemConvert orderItemConvert; + + @Autowired + private OmsOrderServiceService omsOrderServiceService; + + @Autowired + @Qualifier("taskQueue") + private BlockingQueue taskQueue; + + @Autowired + private PetService petService; + + @Autowired + private IBondTransactionService bondTransactionService; + + @Autowired + private IStaffService staffService; + + @Autowired + private H5CouponService h5CouponService; + + @Autowired + private WechatMemberCouponMapper wechatMemberCouponMapper; + + @Transactional + public Order submit(OrderSubmitForm form) { + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + + if(member == null){ + throw new RuntimeException("用户信息不存在"); + } + + //只支持快递 + Long addressId = form.getAddressId(); + if (addressId == null){ + throw new RuntimeException("地址不能为空"); + } + MemberAddress memberAddress = memberAddressMapper.selectById(addressId); + if (memberAddress == null){ + throw new RuntimeException("地址不能为空"); + } + + //PetOrderService 宠物服务不能为空 + List petOrderServices = form.getPetOrderServices(); + + if (CollectionUtil.isEmpty(petOrderServices)){ + throw new RuntimeException("宠物服务不能为空"); + } + //校验宠物服务 + for (PetOrderServiceDTO petOrderService : petOrderServices) { + verificationPetOrderService(petOrderService); + } + + BigDecimal orderTotalAmount = calculatePrice(petOrderServices,form,member); + + BigDecimal bigDecimalValue = new BigDecimal(form.getTotalPrice()).setScale(2, RoundingMode.HALF_UP); + log.info("订单提交总价(折扣后):{},member:{}",bigDecimalValue,member.getNickname()); + //判断价格是否匹配 + if(orderTotalAmount.compareTo(bigDecimalValue) != 0){ + throw new RuntimeException("价格不匹配"); + } + + LocalDateTime optTime = LocalDateTime.now(); + + + //生成一个统一的订单号 + Long orderId = IDGenerator.generateId(); + //生产一个payId + Long payId = IDGenerator.generateId(); + //创建订单 + Order order = new Order(); + order.setPayId(payId); + order.setId(orderId); + order.setOrderSn(this.getOrderIdPrefix() + orderId); + order.setMemberId(member.getId()); + order.setMemberUsername(member.getNickname()); + order.setPayType(Constants.PayType.WECHAT); + order.setTotalAmount(orderTotalAmount); + order.setPurchasePrice(orderTotalAmount); + order.setFreightAmount(BigDecimal.ZERO); + order.setPayAmount(orderTotalAmount); + order.setStatus(Constants.OrderStatus.NOTPAID); + order.setAftersaleStatus(1); + order.setReceiverName(memberAddress.getName()); + order.setReceiverPhone(memberAddress.getPhoneHidden()); + order.setReceiverPostCode(memberAddress.getPostCode()); + order.setReceiverProvince(memberAddress.getProvince()); + order.setReceiverCity(memberAddress.getCity()); + order.setReceiverDistrict(memberAddress.getDistrict()); + order.setReceiverProvinceId(memberAddress.getProvinceId()); + order.setReceiverCityId(memberAddress.getCityId()); + order.setReceiverDistrictId(memberAddress.getDistrictId()); + order.setReceiverDetailAddress(memberAddress.getDetailAddress()); + + //设置伴宠师ID和下单方式 + if(form.getServicerId() != null){ + order.setServicerId(form.getServicerId()); + } + if(!StringUtils.isEmpty(form.getOrderMethod())){ + order.setOrderMethod(form.getOrderMethod()); + } + + order.setNote(form.getNote()); + order.setConfirmStatus(0); + order.setDeleteStatus(0); +// order.setPaymentTime(optTime); + //是否提前熟悉 + order.setNeedPreFamiliarize(form.getNeedPreFamiliarize()); + //优惠券 + order.setWechatMemberCouponId(form.getCouponId()); + order.setCreateTime(optTime); + order.setCreateBy(member.getId()); + int rows = orderMapper.insert(order); + if (rows < 1){ + throw new RuntimeException("订单新增失败"); + } + + //保存 orderService 记录、orderItem 记录、orderOperateHistory 记录 + submitOrderService(order.getId(), form); + + //如果存在优惠券,需要执行优惠券核销 + Integer couponId = form.getCouponId(); + if(couponId != null){ + wechatMemberCouponService.use(couponId,order.getId()); + } + + // 保存订单操作记录 + OrderOperateHistory orderOperateHistory = new OrderOperateHistory(); + orderOperateHistory.setOrderId(orderId); + orderOperateHistory.setOrderSn(order.getOrderSn()); + orderOperateHistory.setOperateMan(member.getId() + ""); + orderOperateHistory.setOrderStatus(Constants.OrderStatus.NOTPAID); + orderOperateHistory.setCreateTime(optTime); + orderOperateHistory.setCreateBy(member.getId()); + rows = orderOperateHistoryMapper.insert(orderOperateHistory); + if (rows < 1){ + throw new RuntimeException("保存订单操作记录失败"); + } + + //当前订单id,接入支付后可返回payId + return order; + } + + private BigDecimal calculatePrice(List petOrderServices,OrderSubmitForm form,Member member){ + /** + * 1. 专业喂养价格 - 75元,锚定不变,不随宠物数量、天数变化 + * 专业喂养项目根据OrderProductListDTO的isMainProduct取 skuId + */ + //1.获取专业喂养项目价格 + OrderProductListDTO orderProductListDTO = takeMainProducts(petOrderServices); + BigDecimal majorFeedPrice = BigDecimal.valueOf(75); + if(!ObjectUtil.isNull(orderProductListDTO)){ + Sku sku = skuMapper.selectById(orderProductListDTO.getSkuId()); + majorFeedPrice = sku==null? BigDecimal.valueOf(75):sku.getPrice(); + } + log.info("专业喂养单价:{}",majorFeedPrice); + + //2、先计算专业喂养价格 + BigDecimal majorFeedTotalAmount = BigDecimal.ZERO; + Map> petOrderServiceMap = petOrderServices.stream().collect(Collectors.groupingBy(PetOrderServiceDTO::getServiceDate)); + Map maxFeedCountMap = new HashMap(); + for (Map.Entry> entry : petOrderServiceMap.entrySet()) { + LocalDate serviceDate = entry.getKey(); + List petOrderServiceDTOs = entry.getValue(); + // 找到喂养次数的最大值 + int maxFeedCount = petOrderServiceDTOs.stream() + .mapToInt(PetOrderServiceDTO::getFeedCount) + .max() + .orElse(0); // 如果没有元素,返回 0 + + // 将最大喂养次数放入 maxFeedCountMap 中 + if(maxFeedCount > 0){ + maxFeedCountMap.put(serviceDate, maxFeedCount); + } + } + //存在专业喂养的清空 + if(!CollectionUtils.isEmpty(maxFeedCountMap)){ + BigDecimal majorFeedCount = BigDecimal.valueOf(maxFeedCountMap.size()); + majorFeedTotalAmount = majorFeedTotalAmount.add(majorFeedCount.multiply(majorFeedPrice)); + } + log.info("专业喂养总价:{},member:{}",majorFeedTotalAmount,member.getNickname()); + + /** + * 2. 当日多次服务总价,取当日不同宠物中,最大的服务次数作为价格计算基准(如1天内,狗狗1天2次,猫咪1天3次,此日服务次数选择3次) + * - 1天1次:+0 元 + * - 1天2次:+ 45元 + * - 1天3次:+130 元 + */ + //2、当日多次服务额外费用 + BigDecimal serviceExtraTotalAmount = BigDecimal.ZERO; + if(!CollectionUtils.isEmpty(maxFeedCountMap)){ + for (Map.Entry entry : maxFeedCountMap.entrySet()) { + LocalDate date = entry.getKey(); + Integer count = entry.getValue(); + if(count == 2){ + serviceExtraTotalAmount = serviceExtraTotalAmount.add(BigDecimal.valueOf(45)); + }else if(count > 2){ + serviceExtraTotalAmount = serviceExtraTotalAmount.add(BigDecimal.valueOf(130)); + } + } + } + + log.info("当日多次服务额外费用总价:{},member:{}",serviceExtraTotalAmount,member.getNickname()); + /** + * 额外宠物费用:单日所勾选的宠物超过3只猫或2只小型犬或1只中型犬,超过其中任意一个,会收取标准外的额外费用: + * - 猫:1只/次:10元 + * - 小型犬:1只/天:15元 + * - 中型犬:1只/天:30元 + * - 大型犬:1只/天:40元 (大型犬不参与价格计算,单独计算价格) + */ + //3、额外宠物费用 + BigDecimal extraPetTotalAmount = BigDecimal.ZERO; + BigDecimal bigBodyPetTotalAmount = BigDecimal.ZERO; + Map> petCountMap = new HashMap<>(); + for (PetOrderServiceDTO petOrderService : petOrderServices) { + LocalDate serviceDate = petOrderService.getServiceDate(); + // CAT、SMALL_DOG、MEDIUM_DOG、BIG_DOG + String petType = getPetType(petOrderService.getPetId()); + if(petType.equals("BIG_DOG")){ + bigBodyPetTotalAmount = bigBodyPetTotalAmount.add(BigDecimal.valueOf(40)); + continue; + } + // 统计每天每种类型宠物的数量 + petCountMap.putIfAbsent(serviceDate, new HashMap<>()); + Map petCount = petCountMap.get(serviceDate); + petCount.put(petType, petCount.getOrDefault(petType, 0) + 1); + petCountMap.put(serviceDate,petCount); + } + + for (Map.Entry> entry : petCountMap.entrySet()) { + Map valueMap = entry.getValue(); + BigDecimal extraPetAmount = BigDecimal.ZERO; + for (Map.Entry valueEntry : valueMap.entrySet()) { + String petType = valueEntry.getKey(); + BigDecimal price = BigDecimal.ZERO; + //CAT、SMALL_DOG、MEDIUM_DOG、BIG_DOG + if(ObjectUtil.equals(petType,"CAT")){ + price = BigDecimal.valueOf(10); + }else if(ObjectUtil.equals(petType,"SMALL_DOG")){ + price = BigDecimal.valueOf(15); + }else if(ObjectUtil.equals(petType,"MEDIUM_DOG")){ + price = BigDecimal.valueOf(30); + }else if(ObjectUtil.equals(petType,"BIG_DOG")){ + price = BigDecimal.valueOf(40); + } + extraPetAmount = extraPetAmount.add(price.multiply(BigDecimal.valueOf(valueEntry.getValue()))); + } + if(extraPetAmount.compareTo(BigDecimal.valueOf(30))>0){ + extraPetTotalAmount = extraPetTotalAmount.add(extraPetAmount.subtract(BigDecimal.valueOf(30))); + } + } + log.info("额外宠物费用总价:{},member:{}",extraPetTotalAmount,member.getNickname()); + log.info("大型犬费用总价:{},member:{}",bigBodyPetTotalAmount,member.getNickname()); + + //4,定制服务费用总价 + BigDecimal customizedTotalAmount = BigDecimal.ZERO; + for (PetOrderServiceDTO petOrderService : petOrderServices) { + List skuList = petOrderService.getSkuList(); + // 计算定制服务费用时过滤掉主商品 + List nonMainProducts = skuList.stream() + .filter(orderProduct -> Boolean.FALSE.equals(orderProduct.getIsMainProduct())) + .collect(Collectors.toList()); + for (OrderProductListDTO orderProductListDto : nonMainProducts) { + Sku sku = skuMapper.selectById(orderProductListDto.getSkuId()); + customizedTotalAmount = customizedTotalAmount.add(sku.getPrice().multiply(BigDecimal.valueOf(orderProductListDto.getQuantity()))); + } + } + log.info("定制服务费用总价:{},member:{}",customizedTotalAmount,member.getNickname()); + //5、是否需要提前熟悉 + BigDecimal preFamiliarizeAmount = BigDecimal.ZERO; + if(form.getNeedPreFamiliarize() ){ + preFamiliarizeAmount = BigDecimal.valueOf(40); + } + log.info("是否需要提前熟悉总价:{},member:{}",preFamiliarizeAmount,member.getNickname()); + + //订单总价格 + BigDecimal totalAmount = majorFeedTotalAmount.add(serviceExtraTotalAmount).add(extraPetTotalAmount).add(customizedTotalAmount).add(preFamiliarizeAmount).add(bigBodyPetTotalAmount); + + // 6、是否包含优惠券 + Integer couponId = form.getCouponId(); + if(couponId != null){ + WechatMemberCoupon wechatMemberCoupon = wechatMemberCouponMapper.selectById(couponId); + //校验券的有效性 + verificationCoupon(wechatMemberCoupon,member); + + List list = wechatMemberCouponMapper.selectMemberCouponById(couponId); + if(CollectionUtils.isEmpty(list)){ + throw new RuntimeException("优惠券不存在"); + } + WechatMemberCouponResponse wechatMemberCouponResponse = list.get(0); + if(wechatMemberCouponResponse.getStockType().equals(StockTypeEnum.PNORMAL.getLabel())){ + //折扣前是否满足满减 + if(totalAmount.compareTo(new BigDecimal(wechatMemberCouponResponse.getTransactionMinimum()))>0){ + log.info("满减优惠券 优惠后价格:{},member:{}",wechatMemberCouponResponse.getDiscountAmount(),member.getNickname()); + totalAmount = totalAmount.subtract(new BigDecimal(wechatMemberCouponResponse.getDiscountAmount())); + log.info("满减优惠券 满减优惠后总价:{},member:{}",totalAmount,member.getNickname()); + }else{ + log.info("折扣优惠券 不满足满减条件,订单总价:{},消费门槛金额:{}",totalAmount,wechatMemberCouponResponse.getTransactionMinimum()); + throw new RuntimeException("优惠券不满足满减条件"); + } + }else if (wechatMemberCouponResponse.getStockType().equals(StockTypeEnum.PDISCOUNT.getLabel())){ + //折扣前是否满足折扣 + if(totalAmount.compareTo(new BigDecimal(wechatMemberCouponResponse.getTransactionMinimum()))>0){ + BigDecimal discountFactor = BigDecimal.valueOf((wechatMemberCouponResponse.getDiscountPercent()) / 100.0); + log.info("折扣优惠券 折扣优惠后折扣比例:{},member:{}",discountFactor,member.getNickname()); + totalAmount = totalAmount.multiply(discountFactor).setScale(2, RoundingMode.HALF_UP); + log.info("折扣优惠券 折扣优惠后总价:{},member:{}",totalAmount,member.getNickname()); + }else{ + log.info("折扣优惠券 不满足满减条件,订单总价:{},消费门槛金额:{}",totalAmount,wechatMemberCouponResponse.getTransactionMinimum()); + throw new RuntimeException("优惠券不满足满减条件"); + } + } + } + double discount = MemberDiscountEnum.getDisCount(member.getLevel()); + BigDecimal orderTotalAmount = totalAmount.multiply(BigDecimal.valueOf(discount)).setScale(2, RoundingMode.HALF_UP); + + log.info("费用总价(折扣后):{},member:{}",orderTotalAmount,member.getNickname()); + return orderTotalAmount; + + } + + private OrderProductListDTO takeMainProducts(List petOrderServices) { + for (PetOrderServiceDTO petOrderService : petOrderServices) { + List skuList = petOrderService.getSkuList(); + List orderProductListDTOs = skuList.stream().filter(orderProduct -> Boolean.TRUE.equals(orderProduct.getIsMainProduct())).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(orderProductListDTOs)) { + return orderProductListDTOs.get(0); + } + } + return null; + } + + private void verificationCoupon(WechatMemberCoupon wechatMemberCoupon, Member member) { + if(!ObjectUtil.equals(wechatMemberCoupon.getMemberId(),member.getId())){ + throw new RuntimeException("优惠券校验失败"); + } + if(!wechatMemberCoupon.getCouponState().equals("SENDED")){ + throw new RuntimeException("优惠券不可用"); + } + + } + + private List convertSkuList(List petOrderServices) { + Map skuQuantityMap = new HashMap<>(); + for (PetOrderServiceDTO petOrderService : petOrderServices) { + List skuList = petOrderService.getSkuList(); + if (skuList != null) { + // 遍历 skuList,累加 SKU 数量 + for (OrderProductListDTO orderProduct : skuList) { + Long skuId = orderProduct.getSkuId(); + Integer quantity = orderProduct.getQuantity(); + // 在 map 中累积数量 + skuQuantityMap.put(skuId, skuQuantityMap.getOrDefault(skuId, 0) + quantity); + } + } + } + + Map skuInfoMap = new HashMap<>(); + // 遍历每个 PetOrderServiceDTO + for (PetOrderServiceDTO service : petOrderServices) { + List skuList = service.getSkuList(); + if (skuList != null) { + // 遍历 skuList,累加 SKU 的数量、消费金额和运费 + for (OrderProductListDTO orderProduct : skuList) { + Long skuId = orderProduct.getSkuId(); + Sku sku = orderProduct.getSku(); + Product product = orderProduct.getProduct(); + BigDecimal consumption = orderProduct.getConsumption() != null ? orderProduct.getConsumption() : BigDecimal.ZERO; + BigDecimal freightAmount = orderProduct.getFreightAmount() != null ? orderProduct.getFreightAmount() : BigDecimal.ZERO; + + // 查找或创建新的 MergedProductInfo + OrderProductListDTO mergedInfo = skuInfoMap.getOrDefault(skuId, new OrderProductListDTO()); + + // 更新数量、消费金额和运费金额 + mergedInfo.setConsumption(consumption); + mergedInfo.setSku(sku); + mergedInfo.setSkuId(skuId); + mergedInfo.setProduct(product); + mergedInfo.setFreightAmount(freightAmount); + // 将更新后的信息放回 map + skuInfoMap.put(skuId, mergedInfo); + } + } + } + + List skuList = new ArrayList<>(); + for (OrderProductListDTO value : skuInfoMap.values()) { + Integer quantity = skuQuantityMap.get(value.getSkuId()); + value.setQuantity(quantity); + skuList.add(value); + } + return skuList; + } + + + private String getPetType(Integer petId) { + // 从宠物服务中获取宠物信息 + PetVO petVo = petService.selectPetById(petId); + + // 根据PetVO的petType返回对应的类型 + String petType = petVo.getPetType(); + String bodyType = petVo.getBodyType().substring(0,2); + + // 判断宠物类型并返回相应的字符串 + if ("CAT".equalsIgnoreCase(petType)) { + return "CAT"; // 返回猫 + } else if ("DOG".equalsIgnoreCase(petType)) { + // 判断体型以返回小型犬、中型犬或大型犬 + if ("小型".equalsIgnoreCase(bodyType)) { + return "SMALL_DOG"; + } else if ("中型".equalsIgnoreCase(bodyType)) { + return "MEDIUM_DOG"; + } else if ("大型".equalsIgnoreCase(bodyType)) { + return "BIG_DOG"; + } + } + return "未知类型"; // 返回一个默认的未知类型 + } + + + private void verificationPetOrderService(PetOrderServiceDTO petOrderService) { + if(ObjectUtil.isNull(petOrderService.getPetId())){ + throw new RuntimeException("宠物不能为空"); + } + + if(ObjectUtil.isNull(petOrderService.getServiceDate())){ + throw new RuntimeException("服务日期不能为空"); + } + + if(petOrderService.getFeedCount()!= null && petOrderService.getFeedCount() <= 0){ + throw new RuntimeException("当天喂养次数不能小于0"); + } + +// if(StringUtils.isEmpty(petOrderService.getSelectedTimeSlots())){ +// throw new RuntimeException("上门时间段不能为空"); +// } + + if(CollectionUtils.isEmpty(petOrderService.getSkuList())){ + throw new RuntimeException("专属服务不能为空"); + } + } + + public int submitServiceInfo(Long orderId, ServiceInfoDTO serviceInfoDTO) { + if (orderId == null || serviceInfoDTO == null) { + return 0; + } + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + OmsOrderService omsOrderService = new OmsOrderService(); + omsOrderService.setOrderId(orderId); + omsOrderService.setId(IDGenerator.generateId()); + omsOrderService.setServiceFrequency(serviceInfoDTO.getServiceFrequency()); + if (serviceInfoDTO.getPet() != null) { + Gson gson = new Gson(); + omsOrderService.setPet(gson.toJson(serviceInfoDTO.getPet())); + } + if (serviceInfoDTO.getServiceDate() != null) { + Gson gson = new Gson(); + omsOrderService.setServiceDate(gson.toJson(serviceInfoDTO.getServiceDate())); + } + + omsOrderService.setCreateTime(LocalDateTime.now()); + omsOrderService.setCreateBy(member.getId()); + omsOrderService.setServiceTimeFirst(serviceInfoDTO.getServiceTimeFirst()); + omsOrderService.setServiceTimeSecond(serviceInfoDTO.getServiceTimeSecond()); + + return omsOrderServiceService.insertOmsOrderService(omsOrderService); + } + + public OrderCalcVO addOrderCheck(OrderCreateDTO orderCreateDTO) { + OrderCalcVO res = new OrderCalcVO(); + List skuList = new ArrayList<>(); + List list = orderCreateDTO.getSkuList(); + if (CollectionUtil.isEmpty(list)){ + throw new RuntimeException("商品SKU信息不能为空"); + } + //将购买的sku信息转化为key:skuId value:数量 + Map quantityMap = list.stream(). + collect(Collectors.toMap(OrderProductListDTO::getSkuId, OrderProductListDTO::getQuantity, (v1, v2) -> v2)); + //查询所有sku信息 + Set collect = list.stream().map(OrderProductListDTO::getSkuId).collect(Collectors.toSet()); + Map querySkuMap = skuMapper.selectBatchIds(collect).stream().collect(Collectors.toMap(Sku::getId, it -> it)); + //计算商品总金额、订单总金额 + BigDecimal productTotalAmount = BigDecimal.ZERO; + BigDecimal orderTotalAmount = BigDecimal.ZERO; + for (OrderProductListDTO dto : list){ + if (!querySkuMap.containsKey(dto.getSkuId())){ + throw new RuntimeException("商品SKU不存在"); + } + Sku sku = querySkuMap.get(dto.getSkuId()); + //查product + Product product = productMapper.selectById(sku.getProductId()); + if (product == null){ + throw new RuntimeException("商品不存在"); + } + if (Constants.PublishStatus.UNDERCARRIAGE.equals(product.getPublishStatus())){ + throw new RuntimeException("商品" + product.getName() + "已下架"); + } + if (sku.getStock() < quantityMap.get(sku.getId())) { + throw new RuntimeException("库存不足"); + } + BigDecimal addAmount = sku.getPrice().multiply(BigDecimal.valueOf(dto.getQuantity())); + //由于目前没有运费等数据,暂时订单总金额=商品总金额了 + productTotalAmount = productTotalAmount.add(addAmount); + orderTotalAmount = orderTotalAmount.add(addAmount); + //封装sku信息 + SkuViewDTO skuViewDTO = new SkuViewDTO(); + skuViewDTO.setPic(product.getPic()); + skuViewDTO.setPrice(sku.getPrice()); + skuViewDTO.setProductId(product.getId()); + skuViewDTO.setProductName(product.getName()); + skuViewDTO.setQuantity(quantityMap.get(sku.getId())); + skuViewDTO.setSkuId(sku.getId()); + skuViewDTO.setSpData(sku.getSpData()); + skuList.add(skuViewDTO); + } + res.setSkuList(skuList); + res.setOrderTotalAmount(orderTotalAmount); + res.setProductTotalAmount(productTotalAmount); + return res; + } + + + private String getOrderIdPrefix(){ + LocalDateTime time = LocalDateTime.now(); + return time.format(DateTimeFormatter.ofPattern("yyMMdd")) + "-"; + } + + /** + * h5订单分页查询 + * @param status 订单状态 -1->全部;0->待付款;1->待发货;2->待收货;-2->售后单 + * @param memberId 会员id + * @param pageable 分页 + * @return 结果 + */ + public PageImpl orderPage(Integer status, Long memberId, Pageable pageable) { + // 如果全部且页数为1,看看有无待付款单 + List unpaidOrderList = new ArrayList<>(); + if (Constants.H5OrderStatus.ALL.equals(status) && pageable.getPageNumber() == 0){ + unpaidOrderList = orderMapper.orderPage(Constants.H5OrderStatus.UN_PAY, memberId); + } + if (pageable != null){ + PageHelper.startPage(pageable.getPageNumber() + 1, pageable.getPageSize()); + } + List orderList = orderMapper.orderPage(status, memberId); + long total = ((com.github.pagehelper.Page) orderList).getTotal(); + // 两个list都没数据那肯定返回空了 + if (CollectionUtil.isEmpty(unpaidOrderList) && CollectionUtil.isEmpty(orderList)){ + return new PageImpl<>(Collections.EMPTY_LIST, pageable, total); + } + // 开始组装item了 + // 拿出所有orderId,查item,然后分组 by orderId + List idList = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(unpaidOrderList)){ + idList.addAll(unpaidOrderList.stream().map(H5OrderVO::getOrderId).collect(Collectors.toList())); + } + if (CollectionUtil.isNotEmpty(orderList)){ + idList.addAll(orderList.stream().map(H5OrderVO::getOrderId).collect(Collectors.toList())); + } + QueryWrapper orderItemQw = new QueryWrapper<>(); + orderItemQw.in("order_id", idList); + Map> orderItemMap = + orderItemMapper.selectList(orderItemQw).stream().collect(Collectors.groupingBy(OrderItem::getOrderId)); + orderList.addAll(0, unpaidOrderList); + orderList.forEach(item -> { + item.setOrderItemList(orderItemMap.get(item.getOrderId())); + }); + return new PageImpl<>(orderList, pageable, total); + } + + /** + * h5订单分页查询(参数为openid) + * @param status 订单状态 -1->全部;0->待付款;1->待发货;2->待收货;-2->售后单 + * @param openId 会员Openid + * @return 结果 + */ + public PageImpl orderPageByOpenid(List status, String openId, Pageable pageable) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("routine_openid", openId); + MemberWechat memberWechat = memberWechatMapper.selectOne(queryWrapper); + + if (memberWechat == null) { + return new PageImpl<>(Collections.EMPTY_LIST, pageable, 0); + } + + if (pageable != null){ + PageHelper.startPage(pageable.getPageNumber() + 1, pageable.getPageSize()); + } + + List orderList = orderMapper.orderPage2(status, memberWechat.getMemberId()); + long total = ((com.github.pagehelper.Page) orderList).getTotal(); + // 两个list都没数据那肯定返回空了 + if (CollectionUtil.isEmpty(orderList)){ + return new PageImpl<>(Collections.EMPTY_LIST, pageable, 0); + } + // 开始组装item了 + // 拿出所有orderId,查item,然后分组 by orderId + List idList = new ArrayList<>(); + + if (CollectionUtil.isNotEmpty(orderList)){ + idList.addAll(orderList.stream().map(H5OrderVO::getOrderId).collect(Collectors.toList())); + } + QueryWrapper orderItemQw = new QueryWrapper<>(); + orderItemQw.in("order_id", idList); + Map> orderItemMap = + orderItemMapper.selectList(orderItemQw).stream().collect(Collectors.groupingBy(OrderItem::getOrderId)); + orderList.forEach(item -> { + item.setOrderItemList(orderItemMap.get(item.getOrderId())); + + OmsOrderService orderServiceInfo = omsOrderServiceService.selectByOrderId(item.getOrderId()); + item.setService(orderServiceInfo); + }); + return new PageImpl<>(orderList, pageable, total); + } + + public H5OrderVO orderDetail(Long orderId) { + H5OrderVO order = orderMapper.selectOrderDetail(orderId); + if (order == null){ + throw new RuntimeException("未查询到该订单"); + } + // 组装item + QueryWrapper orderItemQw = new QueryWrapper<>(); + orderItemQw.eq("order_id", orderId); + List orderItemList = orderItemMapper.selectList(orderItemQw); + order.setOrderItemList(orderItemList); + + //组装order_service + OmsOrderService omsOrderService = new OmsOrderService(); + omsOrderService.setOrderId(orderId); + List orderServiceList = omsOrderServiceMapper.selectList(omsOrderService); + order.setOrderServiceList(orderServiceList); + + // 如果未付款,计算倒计时 + if (Constants.OrderStatus.NOTPAID.equals(order.getStatus())){ + // 订单超时时间900s,后面可以配置到字典等 + Integer time = 900; + Date addDate = Date.from(order.getCreateTime().plusSeconds(time).atZone(ZoneId.systemDefault()).toInstant()); + if (addDate.after(new Date())) { + order.setTimeToPay(addDate.getTime()); + } + } + return order; + } + + @Transactional + public String orderComplete(Long orderId) { + LocalDateTime optDate = LocalDateTime.now(); + Order order = orderMapper.selectById(orderId); + OrderItem queryOrderItem = new OrderItem(); + queryOrderItem.setOrderId(orderId); + List orderItemList = orderItemMapper.selectByEntity(queryOrderItem); + if(order == null || CollectionUtil.isEmpty(orderItemList)){ + throw new RuntimeException("未查询到订单信息"); + } + // 只有【待收货】状态才能确认 + if(!order.getStatus().equals(Constants.H5OrderStatus.DELIVERED)){ + throw new RuntimeException("订单状态已改变,请刷新"); + } + //更新订单 + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id", order.getId()); + updateWrapper.set("status", Constants.H5OrderStatus.COMPLETED); + updateWrapper.set("confirm_status", 1); + updateWrapper.set("receive_time", optDate); + int rows = orderMapper.update(null, updateWrapper); + if (rows < 1){ + throw new RuntimeException("更新订单状态失败"); + } + //创建订单操作记录 + OrderOperateHistory optHistory = new OrderOperateHistory(); + optHistory.setOrderId(order.getId()); + optHistory.setOrderSn(order.getOrderSn()); + optHistory.setOperateMan("" + order.getMemberId()); + optHistory.setOrderStatus(Constants.H5OrderStatus.COMPLETED); + optHistory.setCreateTime(optDate); + optHistory.setCreateBy(order.getMemberId()); + optHistory.setUpdateBy(order.getMemberId()); + optHistory.setUpdateTime(optDate); + rows = orderOperateHistoryMapper.insert(optHistory); + if (rows < 1){ + throw new RuntimeException("创建订单操作记录失败"); + } + return order.getOrderSn(); + } + + /** + * 统计待付款、待发货、待收货和售后订单数量 + * @param memberId + * @return + */ + public CountOrderVO orderNumCount(Long memberId) { + return orderMapper.countByStatusAndMemberId(memberId); + } + + @Transactional + public String orderBatchCancel(CancelOrderRequest request, Long userId) { + LocalDateTime optDate = LocalDateTime.now(); + if (CollectionUtil.isEmpty(request.getIdList())){ + throw new RuntimeException("未指定需要取消的订单号"); + } + QueryWrapper orderQw = new QueryWrapper<>(); + orderQw.in("id", request.getIdList()); + List orderList = orderMapper.selectList(orderQw); + if (orderList.size() < request.getIdList().size()){ + throw new RuntimeException("未查询到订单信息"); + } + //查orderItem + QueryWrapper qw = new QueryWrapper<>(); + qw.in("order_id", request.getIdList()); + List orderItem = orderItemMapper.selectList(qw); + if (CollectionUtil.isEmpty(orderItem)) { + throw new RuntimeException("未查询到订单信息"); + } + long count = orderList.stream().filter(it -> !Constants.H5OrderStatus.UN_PAY.equals(it.getStatus())).count(); + if (count > 0){ + throw new RuntimeException("订单状态已更新,请刷新页面"); + } + List addHistoryList = new ArrayList<>(); + orderList.forEach(item -> { + item.setStatus(Constants.H5OrderStatus.CLOSED); + item.setUpdateTime(optDate); + item.setUpdateBy(userId); + OrderOperateHistory history = new OrderOperateHistory(); + history.setOrderId(item.getId()); + history.setOrderSn(item.getOrderSn()); + history.setOperateMan(userId == null ? "后台管理员" : "" + item.getMemberId()); + history.setOrderStatus(Constants.H5OrderStatus.CLOSED); + history.setCreateTime(optDate); + history.setCreateBy(userId); + history.setUpdateBy(userId); + history.setUpdateTime(optDate); + addHistoryList.add(history); + + }); + //取消订单 + int rows = orderMapper.cancelBatch(orderList); + if (rows < 1){ + throw new RuntimeException("更改订单状态失败"); + } + orderItem.stream().collect(Collectors.groupingBy(it->it.getSkuId())).forEach((k,v)->{ + AtomicReference totalCount = new AtomicReference<>(0); + v.forEach(it-> totalCount.updateAndGet(v1 -> v1 + it.getQuantity())); + skuMapper.updateStockById(k, optDate, -1 * totalCount.get()); + }); + + //创建订单操作记录 + boolean flag = orderOperateHistoryService.saveBatch(addHistoryList); + if (!flag){ + throw new RuntimeException("创建订单操作记录失败"); + } + return "取消订单成功"; + } + + /** + * 订单支付 + * @param req 支付请求 + * @return + */ + public OrderPayResponse orderPay(OrderPayRequest req) { + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("pay_id", req.getPayId()); + qw.eq("status", 0); + List orderList = orderMapper.selectList(qw); + if (CollectionUtil.isEmpty(orderList)){ + throw new RuntimeException("没有待支付的订单"); + } + QueryWrapper memberWechatQw = new QueryWrapper<>(); + memberWechatQw.eq("member_id", req.getMemberId()); + MemberWechat memberWechat = memberWechatMapper.selectOne(memberWechatQw); + if (memberWechat == null || StrUtil.isBlank(memberWechat.getOpenid())){ + throw new RuntimeException("获取用户openId失败"); + } + QueryWrapper orderItemQw = new QueryWrapper<>(); + orderItemQw.eq("order_id", orderList.get(0).getId()); + List orderItemList = orderItemMapper.selectList(orderItemQw); + String orderDesc = orderItemList.get(0).getProductName().substring(0, Math.min(40, orderItemList.get(0).getProductName().length())); + //保存微信支付历史 + LocalDateTime optDate = LocalDateTime.now(); + QueryWrapper wxPaymentQw = new QueryWrapper<>(); + wxPaymentQw.eq("order_id", orderList.get(0).getPayId()); + wxPaymentQw.eq("op_type", Constants.PaymentOpType.PAY); + WechatPaymentHistory wechatPaymentHistory = wechatPaymentHistoryMapper.selectOne(wxPaymentQw); + if (wechatPaymentHistory == null){ + wechatPaymentHistory = new WechatPaymentHistory(); + wechatPaymentHistory.setOrderId(orderList.get(0).getPayId()); + wechatPaymentHistory.setMemberId(req.getMemberId()); + wechatPaymentHistory.setOpenid(memberWechat.getOpenid()); + wechatPaymentHistory.setTitle(orderItemList.get(0).getProductName()); + wechatPaymentHistory.setMoney(orderList.get(0).getPayAmount()); + wechatPaymentHistory.setOpType(Constants.PaymentOpType.PAY); + wechatPaymentHistory.setPaymentStatus(0); + wechatPaymentHistory.setCreateBy(req.getMemberId()); + wechatPaymentHistory.setCreateTime(optDate); + wechatPaymentHistory.setUpdateBy(req.getMemberId()); + wechatPaymentHistory.setUpdateTime(optDate); + wechatPaymentHistoryMapper.insert(wechatPaymentHistory); + }else { + wechatPaymentHistory.setMoney(orderList.get(0).getPayAmount()); + wechatPaymentHistoryMapper.updateById(wechatPaymentHistory); + } + //请开启微信支付 wechat.enabled=true + //调用wx的jsapi拿prepayId,返回签名等信息 + String openId = memberWechat.getOpenid(); + String appId = WechatPayData.appId; + if (2 == req.getWechatType()) { + openId = memberWechat.getRoutineOpenid(); + appId = WechatPayData.miniProgramAppId; + } + String prepayId = wechatPayService.jsapiPay( + String.valueOf(req.getPayId()), + orderDesc, + Integer.valueOf(orderList.stream().map(Order::getPayAmount). + reduce(BigDecimal.ZERO, BigDecimal::add).multiply(new BigDecimal(100)).stripTrailingZeros().toPlainString()), + openId, + req.getMemberId(), + appId + ); + OrderPayResponse response = new OrderPayResponse(); + response.setPayType(2); + String nonceStr = WechatPayUtil.generateNonceStr(); + long timeStamp = WechatPayUtil.getCurrentTimestamp(); + prepayId = "prepay_id=" + prepayId; + String signType = "RSA"; + String paySign = null; + String signatureStr = Stream.of(appId, String.valueOf(timeStamp), nonceStr, prepayId) + .collect(Collectors.joining("\n", "", "\n")); + try { + paySign = WechatPayUtil.getSign(signatureStr, WechatPayData.privateKeyPath); + } catch (Exception e) { + throw new RuntimeException("支付失败"); + } + response.setAppId(appId); + response.setTimeStamp(String.valueOf(timeStamp)); + response.setNonceStr(nonceStr); + response.setSignType(signType); + response.setPackage_(prepayId); + response.setPaySign(paySign); + response.setOrderId(orderList.get(0).getId()); + return response; + } + + + public OrderPayResponse orderCreateAndPay(Order order, Member member, String openId) { + log.info("【支付】开始组装支付参数"); + QueryWrapper orderItemQw = new QueryWrapper<>(); + orderItemQw.eq("order_id", order.getId()); + List orderItemList = orderItemMapper.selectList(orderItemQw); + String orderDesc = orderItemList.get(0).getProductName().substring(0, Math.min(40, orderItemList.get(0).getProductName().length())); + //保存微信支付历史 + LocalDateTime optDate = LocalDateTime.now(); + QueryWrapper wxPaymentQw = new QueryWrapper<>(); + wxPaymentQw.eq("order_id", order.getPayId()); + wxPaymentQw.eq("op_type", Constants.PaymentOpType.PAY); + WechatPaymentHistory wechatPaymentHistory = wechatPaymentHistoryMapper.selectOne(wxPaymentQw); + if (wechatPaymentHistory == null){ + wechatPaymentHistory = new WechatPaymentHistory(); + wechatPaymentHistory.setOrderId(order.getPayId()); + wechatPaymentHistory.setMemberId(member.getId()); + wechatPaymentHistory.setOpenid(openId); + wechatPaymentHistory.setTitle(orderItemList.get(0).getProductName()); + wechatPaymentHistory.setMoney(order.getPayAmount()); + wechatPaymentHistory.setOpType(Constants.PaymentOpType.PAY); + wechatPaymentHistory.setPaymentStatus(0); + wechatPaymentHistory.setCreateBy(member.getId()); + wechatPaymentHistory.setCreateTime(optDate); + wechatPaymentHistory.setUpdateBy(member.getId()); + wechatPaymentHistory.setUpdateTime(optDate); + wechatPaymentHistoryMapper.insert(wechatPaymentHistory); + }else { + wechatPaymentHistory.setMoney(order.getPayAmount()); + wechatPaymentHistoryMapper.updateById(wechatPaymentHistory); + } + //请开启微信支付 wechat.enabled=true + //调用wx的jsapi拿prepayId,返回签名等信息 + log.info("【支付】开始调用jsapiPay支付:" + orderDesc); + String appId = WechatPayData.miniProgramAppId; + + //TODO + String payAmount = order.getPayAmount().multiply(new BigDecimal(100)).stripTrailingZeros().toPlainString(); + + payAmount = "1";//支付一分钱 + String prepayId = wechatPayService.jsapiPay( + String.valueOf(order.getPayId()), + orderDesc, + Integer.valueOf(payAmount), + openId, + member.getId(), + appId + ); +// String prepayId = "TODO"; + + log.info("【支付】jsapiPay支付成功,预付单ID:" + prepayId); + OrderPayResponse response = new OrderPayResponse(); + response.setPayType(2); + String nonceStr = WechatPayUtil.generateNonceStr(); + long timeStamp = WechatPayUtil.getCurrentTimestamp(); + prepayId = "prepay_id=" + prepayId; + String signType = "RSA"; + String paySign = null; + String signatureStr = Stream.of(appId, String.valueOf(timeStamp), nonceStr, prepayId) + .collect(Collectors.joining("\n", "", "\n")); + //TODO +// paySign = "TODO"; + try { + paySign = WechatPayUtil.getSign(signatureStr, WechatPayData.privateKeyPath); + } catch (Exception e) { + log.error("获取签名失败,"); + throw new RuntimeException("支付失败"); + } + response.setAppId(appId); + response.setTimeStamp(String.valueOf(timeStamp)); + response.setNonceStr(nonceStr); + response.setSignType(signType); + response.setPackage_(prepayId); + response.setPaySign(paySign); + response.setOrderId(order.getId()); + return response; + } + + + /** + * 支付回调方法 + * @param messageDTO + * @return + */ + @Transactional + public ResponseEntity payCallBack(PayNotifyMessageDTO messageDTO){ + log.info("【订单支付回调】" + JSONObject.toJSON(messageDTO)); + String redisKey = "h5_oms_order_pay_notify_" + messageDTO.getOutTradeNo(); + String redisValue = messageDTO.getOutTradeNo() + "_" + System.currentTimeMillis(); + LocalDateTime optDate = LocalDateTime.now(); + try{ + redisService.lock(redisKey, redisValue, 60); + //先判断回信回调的是否未success + if (!Transaction.TradeStateEnum.SUCCESS.equals(messageDTO.getTradeStatus())){ + log.error("【订单支付回调】订单状态不是支付成功状态" + messageDTO.getTradeStatus()); + throw new RuntimeException(); + } + QueryWrapper paymentWrapper = new QueryWrapper<>(); + paymentWrapper.eq("order_id", messageDTO.getOutTradeNo()); + paymentWrapper.eq("op_type", Constants.PaymentOpType.PAY); + WechatPaymentHistory paymentHistory = wechatPaymentHistoryMapper.selectOne(paymentWrapper); + if (paymentHistory.getPaymentStatus() != Constants.PaymentStatus.INCOMPLETE) { + log.info("【订单支付回调】支付订单不是未支付状态,不再处理" + "orderId" + paymentHistory.getOrderId() + "status" + paymentHistory.getPaymentStatus()); + throw new RuntimeException(); + } + QueryWrapper orderQw = new QueryWrapper<>(); + orderQw.eq("pay_id", messageDTO.getOutTradeNo()); + orderQw.eq("status", OrderStatus.UN_PAY.getType()); + List orderList = orderMapper.selectList(orderQw); + orderList.forEach(order -> { + order.setPaymentTime(messageDTO.getPayTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); + order.setStatus(OrderStatus.NOT_DELIVERED.getType()); + orderMapper.updateById(order); + + OrderOperateHistory optHistory = new OrderOperateHistory(); + optHistory.setOrderId(order.getId()); + optHistory.setOrderSn(order.getOrderSn()); + optHistory.setOperateMan("" + order.getMemberId()); + optHistory.setOrderStatus(OrderStatus.NOT_DELIVERED.getType()); + optHistory.setCreateTime(optDate); + optHistory.setCreateBy(order.getMemberId()); + optHistory.setUpdateBy(order.getMemberId()); + optHistory.setUpdateTime(optDate); + orderOperateHistoryMapper.insert(optHistory); + + //TODO 往腾讯轻联推送消息 + OrderMessageModel rderMessageModel = new OrderMessageModel(); + rderMessageModel.setOrder(order); + taskQueue.add(rderMessageModel); + }); + UpdateWrapper paymentHistoryUpdateWrapper = new UpdateWrapper<>(); + paymentHistoryUpdateWrapper.eq("order_id", messageDTO.getOutTradeNo()).set("payment_id", messageDTO.getTradeNo()) + .set("payment_status", Constants.PaymentStatus.COMPLETE).set("update_time", optDate); + wechatPaymentHistoryMapper.update(null, paymentHistoryUpdateWrapper); + + + }catch (Exception e){ + log.error("订单支付回调异常",e); + throw new RuntimeException("订单支付回调异常"); + }finally { + try{ + redisService.unLock(redisKey, redisValue); + }catch (Exception e){ + log.error("", e); + } + } + return ResponseEntity.ok("订单支付回调成功"); + } + + /** + * 申请售后 + * @param applyRefundDTO + * @return + */ + @Transactional + public String applyRefund(ApplyRefundDTO applyRefundDTO) { + Order order = orderMapper.selectById(applyRefundDTO.getOrderId()); + //是否符合售后条件 + this.checkIfCanApplyRefund(order); + LocalDateTime optDate = LocalDateTime.now(); + Long memberId = order.getMemberId(); + //创建售后单aftersale + Aftersale addAftersale = new Aftersale(); + addAftersale.setId(IDGenerator.generateId()); + addAftersale.setMemberId(order.getMemberId()); + addAftersale.setOrderId(order.getId()); + addAftersale.setReturnAmount(order.getPayAmount()); + addAftersale.setType(applyRefundDTO.getApplyRefundType()); + addAftersale.setStatus(AftersaleStatus.APPLY.getType()); + addAftersale.setReason(applyRefundDTO.getReason()); + addAftersale.setQuantity(applyRefundDTO.getQuantity()); + addAftersale.setReason(applyRefundDTO.getReason()); + addAftersale.setDescription(applyRefundDTO.getDescription()); + addAftersale.setProofPics(applyRefundDTO.getProofPics()); + addAftersale.setCreateTime(optDate); + addAftersale.setCreateBy(memberId); + addAftersale.setUpdateTime(optDate); + addAftersale.setUpdateBy(memberId); + int rows = aftersaleMapper.insert(addAftersale); + if (rows != 1) { + throw new RuntimeException("插入订单售后失败"); + } + //创建aftersale item + QueryWrapper orderItemQw = new QueryWrapper<>(); + orderItemQw.eq("order_id", order.getId()); + List orderItemList = orderItemMapper.selectList(orderItemQw); + List addAftersaleItemList = new ArrayList<>(); + orderItemList.forEach(orderItem -> { + AftersaleItem aftersaleItem = new AftersaleItem(); + aftersaleItem.setMemberId(memberId); + aftersaleItem.setAftersaleId(addAftersale.getId()); + aftersaleItem.setOrderId(orderItem.getOrderId()); + aftersaleItem.setOrderItemId(orderItem.getId()); + aftersaleItem.setReturnAmount(orderItem.getSalePrice().multiply(BigDecimal.valueOf(orderItem.getQuantity()))); + aftersaleItem.setQuantity(orderItem.getQuantity()); + aftersaleItem.setCreateTime(optDate); + aftersaleItem.setCreateBy(memberId); + aftersaleItem.setUpdateTime(optDate); + aftersaleItem.setUpdateBy(memberId); + addAftersaleItemList.add(aftersaleItem); + }); + rows = aftersaleItemMapper.insertBatch(addAftersaleItemList); + if (rows < 1){ + throw new RuntimeException("创建售后订单item失败"); + } + //更新订单 + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id", order.getId()).set("aftersale_status", OrderRefundStatus.APPLY.getType()) + .set("update_time", optDate) + .set("update_by", memberId); + rows = orderMapper.update(null, updateWrapper); + if (rows < 1){ + throw new RuntimeException("修改订单状态失败"); + } + //创建订单操作记录 + OrderOperateHistory optHistory = new OrderOperateHistory(); + optHistory.setOrderId(order.getId()); + optHistory.setOrderSn(order.getOrderSn()); + optHistory.setOperateMan("" + memberId); + optHistory.setOrderStatus(11); + optHistory.setCreateTime(optDate); + optHistory.setCreateBy(memberId); + optHistory.setUpdateBy(memberId); + optHistory.setUpdateTime(optDate); + rows = orderOperateHistoryMapper.insert(optHistory); + if (rows < 1){ + throw new RuntimeException("创建订单操作记录失败"); + } + return "售后申请成功"; + } + + /** + * check是否能售后 可售后的状态为:待发货、待收货、已完成 + * @param order 订单 + */ + private void checkIfCanApplyRefund(Order order){ + if (order == null){ + throw new RuntimeException("为查询到订单信息"); + } + Integer status = order.getStatus(); + boolean flag = OrderStatus.NOT_DELIVERED.getType().equals(status) || OrderStatus.DELIVERED.getType().equals(status) + || OrderStatus.COMPLETE.getType().equals(status); + if (!flag){ + throw new RuntimeException("该订单无法申请售后"); + } + if (OrderStatus.COMPLETE.getType().equals(order.getStatus()) && + DateUtils.betweenDay(LocalDateTime.now(), order.getReceiveTime()) > 7){ + throw new RuntimeException("订单确认收货时间已超过7天,无法申请售后"); + } + if(OrderRefundStatus.APPLY.getType().equals(order.getAftersaleStatus()) + || OrderRefundStatus.WAIT.getType().equals(order.getAftersaleStatus())){ + throw new RuntimeException("售后正在处理中"); + } + } + + /** + * 取消售后 + * @param orderId 订单id + * @return + */ + @Transactional + public String cancelRefund(Long orderId) { + Order order = orderMapper.selectById(orderId); + if (order == null){ + throw new RuntimeException("未查询到该订单"); + } + //查询是否有(待处理和退货中)售后单 + QueryWrapper aftersaleQw = new QueryWrapper<>(); + aftersaleQw.eq("order_id", orderId); + aftersaleQw.in("status", Arrays.asList(AftersaleStatus.APPLY.getType(), AftersaleStatus.WAIT.getType())); + Aftersale aftersale = aftersaleMapper.selectOne(aftersaleQw); + if (aftersale == null){ + throw new RuntimeException("无售后单"); + } + if (OrderRefundStatus.SUCCESS.getType().equals(order.getAftersaleStatus())){ + throw new RuntimeException("已退款成功"); + } + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + LocalDateTime optDate = LocalDateTime.now(); + //更新售后单状态 + UpdateWrapper aftersaleUpdateWrapper = new UpdateWrapper<>(); + aftersaleUpdateWrapper.eq("id", aftersale.getId()); + aftersaleUpdateWrapper.set("status", AftersaleStatus.CANCEL.getType()); + aftersaleUpdateWrapper.set("update_time", optDate); + aftersaleUpdateWrapper.set("update_by", member.getId()); + int rows = aftersaleMapper.update(null, aftersaleUpdateWrapper); + if (rows < 1){ + throw new RuntimeException("更新售后单失败"); + } + //更新订单售后状态 + // 更新订单 + UpdateWrapper updateOrderWrapper = new UpdateWrapper<>(); + updateOrderWrapper.eq("id", orderId) + .set("aftersale_status", OrderRefundStatus.NO_REFUND.getType()).set("update_time", optDate) + .set("update_by", member.getId()); + rows = orderMapper.update(null, updateOrderWrapper); + if (rows != 1) { + throw new RuntimeException("更新订单状态失败"); + } + return "售后取消成功"; + } + + /** + * 售后订单详情 + * @param orderId 订单id + * @return + */ + public AftersaleRefundInfoVO refundOrderDetail(Long orderId) { + QueryWrapper aftersaleQw = new QueryWrapper<>(); + aftersaleQw.eq("order_id", orderId); + aftersaleQw.orderByDesc("create_time"); + aftersaleQw.last("limit 1"); + Aftersale aftersale = aftersaleMapper.selectOne(aftersaleQw); + if (aftersale == null){ + throw new RuntimeException("未查询到售后订单"); + } + //查一下售后订单item + QueryWrapper aftersaleItemQw = new QueryWrapper<>(); + aftersaleItemQw.eq("aftersale_id", aftersale.getId()); + List aftersaleItemList = aftersaleItemMapper.selectList(aftersaleItemQw); + List orderItemIdList = aftersaleItemList.stream().map(AftersaleItem::getOrderItemId).collect(Collectors.toList()); + //再去查orderItem + QueryWrapper orderItemQw = new QueryWrapper<>(); + orderItemQw.in("id", orderItemIdList); + List orderItemList = orderItemMapper.selectList(orderItemQw); + AftersaleRefundInfoVO vo = new AftersaleRefundInfoVO(); + BeanUtils.copyProperties(aftersale, vo); + vo.setAftersaleItemList(aftersaleItemConvert.dos2vos(aftersaleItemList)); + vo.setOrderItemList(orderItemConvert.dos2vos(orderItemList)); + return vo; + } + + /** + * 根据memberId查询所有有效订单 + * @param memberId + * @return + */ + public List getAllOrderByMemberId(Long memberId) { + QueryWrapper orderQw = new QueryWrapper<>(); + orderQw.eq("member_id", memberId); + List statusList = new ArrayList<>(); + statusList.add(OrderStatus.NOT_DELIVERED.getType()); + statusList.add(OrderStatus.DELIVERED.getType()); + statusList.add(OrderStatus.COMPLETE.getType()); + orderQw.in("status", statusList); + orderQw.in("delete_status", 0); + orderQw.orderByAsc("create_time"); + return orderMapper.selectList(orderQw); + } + + //todo 兼容老数据的方式需要跟德哥再讨论下 + public void submitOrderService(Long orderId, OrderSubmitForm form) { + List petOrderServices = form.getPetOrderServices(); + if (orderId == null || CollectionUtils.isEmpty(petOrderServices)) { + return; + } + + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + + for (PetOrderServiceDTO petOrderService : petOrderServices) { + OmsOrderService omsOrderService = new OmsOrderService(); + omsOrderService.setOrderId(orderId); + omsOrderService.setId(IDGenerator.generateId()); + omsOrderService.setPetId(petOrderService.getPetId()); + //服务日期 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + omsOrderService.setServiceDate(petOrderService.getServiceDate().format(formatter)); + //期望上门时间 + omsOrderService.setExpectServiceTime(petOrderService.getSelectedTimeSlots()); + omsOrderService.setCreateTime(LocalDateTime.now()); + assert member != null; + omsOrderService.setCreateBy(member.getId()); + omsOrderServiceService.insertOmsOrderService(omsOrderService); + + List skuList = petOrderService.getSkuList(); + if (CollectionUtils.isEmpty(skuList)) { + continue; + } + //保存 orderItem 新增 orderServiceId 字段 + orderItemService.saveOrderItem(member,omsOrderService, omsOrderService.getCreateTime(), orderId, skuList); + skuList.forEach(item -> { + //减少sku的库存 + skuMapper.updateStockById(item.getSkuId(),LocalDateTime.now(),item.getQuantity()); + }); + + //若来源为购物车,删除购物车 + if (Constants.OrderFrom.CART.equals(form.getFrom())){ + List skuIdList = skuList.stream().map(OrderProductListDTO::getSkuId).collect(Collectors.toList()); + LambdaUpdateWrapper wrapper = Wrappers.lambdaUpdate(); + wrapper.eq(MemberCart::getMemberId, member.getId()); + wrapper.in(MemberCart::getSkuId, skuIdList); + int rows = memberCartMapper.delete(wrapper); + if (rows < 1){ + throw new RuntimeException("删除购物车失败"); + } + } + + } + } + + /** + * 伴宠师小程序 支付保证金接口 + * + * @param staff + * @param openId + * @return + */ + public OrderPayResponse bondPay(Staff staff, String openId, BigDecimal amount) { + log.info("【支付】开始组装支付参数"); + //1、增加保证金缴纳明细 + Long payId = IDGenerator.generateId(); + BondTransaction bondTransaction = new BondTransaction(); + bondTransaction.setAmount(amount); + bondTransaction.setPayId(payId); + bondTransaction.setType(BondTransactionType.PAY.getType()); + bondTransaction.setStaffId(staff.getId()); + bondTransaction.setStatus(BondOrderStatus.UN_PAY.getType()); + bondTransaction.setPayType(Constants.PayType.WECHAT);//默认微信支付 + bondTransactionService.save(bondTransaction); + + //2、保存微信支付历史 + LocalDateTime optDate = LocalDateTime.now(); + WechatPaymentHistory wechatPaymentHistory = new WechatPaymentHistory(); + wechatPaymentHistory.setOrderId(payId); + wechatPaymentHistory.setMemberId(staff.getId()); + wechatPaymentHistory.setOpenid(openId); + wechatPaymentHistory.setTitle("保证金缴纳"); + wechatPaymentHistory.setMoney(amount); + wechatPaymentHistory.setOpType(Constants.PaymentOpType.PAY); + wechatPaymentHistory.setPaymentStatus(0); + wechatPaymentHistory.setCreateBy(staff.getId()); + wechatPaymentHistory.setCreateTime(optDate); + wechatPaymentHistory.setUpdateBy(staff.getId()); + wechatPaymentHistory.setUpdateTime(optDate); + wechatPaymentHistoryMapper.insert(wechatPaymentHistory); + + //请开启微信支付 wechat.enabled=true + //调用wx的jsapi拿prepayId,返回签名等信息 + log.info("【支付】开始调用jsapiPay支付:保证金缴纳"); + //注意:此处为伴宠师小程序ID + String appId = WechatPayData.staffAppId; + + //TODO + String payAmount = amount.multiply(new BigDecimal(100)).stripTrailingZeros().toPlainString(); + payAmount = "1";//支付一分钱 + String prepayId = wechatPayService.jsapiPayForBCHSHI( + String.valueOf(payId), + "保证金缴纳", + Integer.valueOf(payAmount), + openId, + staff.getId(), + appId + ); +// String prepayId = "TODO"; + + log.info("【支付】jsapiPay支付成功,预付单ID:" + prepayId); + OrderPayResponse response = new OrderPayResponse(); + response.setPayType(2); + String nonceStr = WechatPayUtil.generateNonceStr(); + long timeStamp = WechatPayUtil.getCurrentTimestamp(); + prepayId = "prepay_id=" + prepayId; + String signType = "RSA"; + String paySign = null; + String signatureStr = Stream.of(appId, String.valueOf(timeStamp), nonceStr, prepayId) + .collect(Collectors.joining("\n", "", "\n")); + //TODO +// paySign = "TODO"; + try { + paySign = WechatPayUtil.getSign(signatureStr, WechatPayData.privateKeyPath); + } catch (Exception e) { + log.error("获取签名失败,"); + throw new RuntimeException("支付失败"); + } + response.setAppId(appId); + response.setTimeStamp(String.valueOf(timeStamp)); + response.setNonceStr(nonceStr); + response.setSignType(signType); + response.setPackage_(prepayId); + response.setPaySign(paySign); + response.setOrderId(payId); + return response; + } + + /** + * 伴宠师保证金缴纳成功 支付回调方法 + * + * @param messageDTO + * @return + */ + @Transactional(rollbackFor = Exception.class) + public ResponseEntity payCallBackForBCHSHI(PayNotifyMessageDTO messageDTO) { + log.info("【伴宠师保证金缴纳成功支付回调】" + JSONObject.toJSON(messageDTO)); + String redisKey = "h5_oms_bond_order_pay_notify_" + messageDTO.getOutTradeNo(); + String redisValue = messageDTO.getOutTradeNo() + "_" + System.currentTimeMillis(); + LocalDateTime optDate = LocalDateTime.now(); + try { + redisService.lock(redisKey, redisValue, 60); + //先判断回信回调的是否未success + if (!Transaction.TradeStateEnum.SUCCESS.equals(messageDTO.getTradeStatus())) { + log.error("【订单支付回调】订单状态不是支付成功状态" + messageDTO.getTradeStatus()); + throw new RuntimeException(); + } + QueryWrapper paymentWrapper = new QueryWrapper<>(); + paymentWrapper.eq("order_id", messageDTO.getOutTradeNo()); + paymentWrapper.eq("op_type", Constants.PaymentOpType.PAY); + WechatPaymentHistory paymentHistory = wechatPaymentHistoryMapper.selectOne(paymentWrapper); + if (paymentHistory.getPaymentStatus() != Constants.PaymentStatus.INCOMPLETE) { + log.info("【订单支付回调】支付订单不是未支付状态,不再处理" + "orderId" + paymentHistory.getOrderId() + "status" + paymentHistory.getPaymentStatus()); + throw new RuntimeException(); + } + + //更新保证金缴纳明细表状态 + bondTransactionService.updateBondStatusByPayId(messageDTO.getOutTradeNo(), BondOrderStatus.SUCCESS.getType()); + //更新staff表金额 以及 保证金缴纳状态 + staffService.updateStaffBondMoney(paymentHistory.getMemberId(), paymentHistory.getMoney(),1); + + UpdateWrapper paymentHistoryUpdateWrapper = new UpdateWrapper<>(); + paymentHistoryUpdateWrapper.eq("order_id", messageDTO.getOutTradeNo()).set("payment_id", messageDTO.getTradeNo()) + .set("payment_status", Constants.PaymentStatus.COMPLETE).set("update_time", optDate); + wechatPaymentHistoryMapper.update(null, paymentHistoryUpdateWrapper); + + + } catch (Exception e) { + log.error("订单支付回调异常", e); + throw new RuntimeException("订单支付回调异常"); + } finally { + try { + redisService.unLock(redisKey, redisValue); + } catch (Exception e) { + log.error("", e); + } + } + return ResponseEntity.ok("订单支付回调成功"); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/service/H5PetCareService.java b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5PetCareService.java new file mode 100644 index 0000000..b051ceb --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5PetCareService.java @@ -0,0 +1,84 @@ +package com.cyl.h5.service; + +import com.cyl.manager.ums.domain.PetCare; +import com.cyl.manager.ums.mapper.PetCareMapper; +import com.cyl.manager.ums.service.PetCareService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 宠物服务档案Service业务层处理 + * + * @author daixiande + */ +@Service +public class H5PetCareService { + @Autowired + private PetCareMapper petCareMapper; + + /** + * 查询宠物服务档案 + * + * @param id 宠物服务档案主键 + * @return 宠物服务档案 + */ + public PetCare selectPetCareById(Integer id) { + return petCareMapper.selectById(id); + } + + /** + * 查询宠物服务档案列表 + * + * @param petCare 宠物服务档案 + * @return 宠物服务档案 + */ + public List selectPetCareList(PetCare petCare) { + return petCareMapper.selectList(petCare); + } + + /** + * 新增宠物服务档案 + * + * @param petCare 宠物服务档案 + * @return 结果 + */ + public int insertPetCare(PetCare petCare) { + return petCareMapper.insert(petCare); + } + + /** + * 修改宠物服务档案 + * + * @param petCare 宠物服务档案 + * @return 结果 + */ + public int updatePetCare(PetCare petCare) { + return petCareMapper.update(petCare); + } + + /** + * 批量删除宠物服务档案 + * + * @param ids 需要删除的宠物服务档案主键 + * @return 结果 + */ + public int deletePetCareByIds(Integer[] ids) { + return petCareMapper.deleteByIds(ids); + } + + /** + * 删除宠物服务档案信息 + * + * @param id 宠物服务档案主键 + * @return 结果 + */ + public int deletePetCareById(Integer id) { + return petCareMapper.deleteById(id); + } + + public PetCare selectPetCareByPetId(Integer id) { + return petCareMapper.selectPetCareByPetId(id); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/service/H5PetService.java b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5PetService.java new file mode 100644 index 0000000..77ecc74 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5PetService.java @@ -0,0 +1,138 @@ +package com.cyl.h5.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.manager.ums.domain.Pet; +import com.cyl.manager.ums.mapper.PetMapper; +import com.cyl.manager.ums.pojo.query.PetQuery; +import com.cyl.manager.ums.pojo.vo.PetVO; +import com.cyl.manager.ums.convert.PetConvert; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.List; + +@Service +public class H5PetService { + @Autowired + private PetMapper petMapper; + + @Autowired + private PetConvert convert; + /** + * 查询宠物档案 + * + * @param id 宠物档案主键 + * @return 宠物档案 + */ + public PetVO selectPetById(Integer id){ + Pet pet = petMapper.selectById(id); + PetVO petVO = convert.do2vo(pet); + if(!StringUtils.isEmpty(pet.getPersonality())){ + List list = Arrays.asList(pet.getPersonality().split(",")); + petVO.setPersonality(list); + } + if(!StringUtils.isEmpty(pet.getHealthStatus())){ + List list = Arrays.asList(pet.getHealthStatus().split(",")); + petVO.setHealthStatus(list); + } + return petVO; + } + + /** + * 导出宠物档案列表 + * + * @param pet 宠物档案 + * @return 宠物档案集合 + */ + public List selectPetList(Pet pet){ + QueryWrapper dd = new QueryWrapper<>(); + dd.eq("del_flag",0); + if(!StringUtils.isEmpty(pet.getName())){ + dd.eq("name",pet.getName()); + } + if(!StringUtils.isEmpty(pet.getPetType())){ + dd.eq("pet_type",pet.getPetType()); + } + if(!StringUtils.isEmpty(pet.getGender())){ + dd.eq("gender",pet.getGender()); + } + if(!StringUtils.isEmpty(pet.getBirthDate())){ + dd.eq("birth_date",pet.getBirthDate()); + } + if(!StringUtils.isEmpty(pet.getBreed())){ + dd.eq("breed",pet.getBreed()); + } + if(!StringUtils.isEmpty(pet.getBodyType())){ + dd.eq("body_type",pet.getBodyType()); + } + return petMapper.selectList(dd); + } + + /** + * 新增宠物档案 + * + * @param pet 宠物档案 + * @return 结果 + */ + public int insertPet(PetVO petVO){ + Pet pet = convert.vo2do(petVO); + petMapper.insert(pet); + return 1; + } + + /** + * 修改宠物档案 + * + * @param pet 宠物档案 + * @return 结果 + */ + public int updatePet(PetVO petVO){ + Pet pet = convert.vo2do(petVO); + pet.setUpdateTime(LocalDateTime.now()); + return petMapper.updateById(pet); + } + + /** + * 批量删除宠物档案 + * + * @param ids 需要删除的宠物档案主键集合 + * @return 结果 + */ + public int deletePetByIds(Integer[] ids){ + return petMapper.deleteByIds(ids); + } + + /** + * 删除宠物档案信息 + * + * @param id 宠物档案主键 + * @return 结果 + */ + public int deletePetById(Integer id){ + return petMapper.deleteById(id); + } + + /** + * 查询宠物档案列表 + * + * @param query query + * @param page page + * @return 宠物档案集合 + */ + public List selectList(PetQuery query, Pageable page){ + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper dd = new QueryWrapper<>(); + dd.eq("del_flag",0); + if(!StringUtils.isEmpty(query.getOwner())){ + dd.eq("owner",query.getOwner()); + } + return petMapper.selectList(dd); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/job/CouponJob.java b/ruoyi-mall/src/main/java/com/cyl/job/CouponJob.java new file mode 100644 index 0000000..9cfb101 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/job/CouponJob.java @@ -0,0 +1,28 @@ +package com.cyl.job; + +import com.cyl.h5.service.H5MemberCouponService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class CouponJob { + + @Autowired + private H5MemberCouponService h5MemberCouponService; + + + @Async + @Scheduled(cron = "00 0/5 * * * ?") + public void cancelOrder(){ + log.info("【优惠券过期处理任务启动】"); + + h5MemberCouponService.processExpiredCoupon(); + + log.info("【优惠券过期处理任务结束】"); + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/job/OrderCancelJob.java b/ruoyi-mall/src/main/java/com/cyl/job/OrderCancelJob.java new file mode 100644 index 0000000..d1dd378 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/job/OrderCancelJob.java @@ -0,0 +1,52 @@ +package com.cyl.job; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.LocalDateTimeUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.h5.pojo.request.CancelOrderRequest; +import com.cyl.h5.service.H5OrderService; +import com.cyl.manager.oms.domain.Order; +import com.cyl.manager.oms.mapper.OrderMapper; +import com.ruoyi.common.constant.Constants; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.stream.Collectors; + +@Component +@Slf4j +public class OrderCancelJob { + + @Autowired + private H5OrderService h5OrderService; + + @Autowired + private OrderMapper orderMapper; + + @Async + @Scheduled(cron = "00 0/5 * * * ?") + public void cancelOrder(){ + log.info("【取消订单任务开始】"); + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("status", Constants.OrderStatus.NOTPAID); + qw.eq("aftersale_status", 1); + List orderList = orderMapper.selectList(qw); + List idList = orderList.stream() + //.filter(order -> LocalDateTimeUtil.between(order.getCreateTime(), LocalDateTime.now()).toMinutes() >= 31) + .filter(order -> LocalDateTimeUtil.between(order.getCreateTime(), LocalDateTime.now()).toMinutes() >= 2880) + .map(Order::getId) + .collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(idList)) { + CancelOrderRequest request = new CancelOrderRequest(); + request.setIdList(idList); + h5OrderService.orderBatchCancel(request, null); + } + log.info("【取消订单任务结束】"); + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/job/OrderNotifyJob.java b/ruoyi-mall/src/main/java/com/cyl/job/OrderNotifyJob.java new file mode 100644 index 0000000..def4a70 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/job/OrderNotifyJob.java @@ -0,0 +1,118 @@ +package com.cyl.job; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.h5.service.H5OrderService; +import com.cyl.manager.oms.domain.OmsOrderService; +import com.cyl.manager.oms.domain.Order; +import com.cyl.manager.oms.mapper.OmsOrderServiceMapper; +import com.cyl.manager.oms.mapper.OrderMapper; +import com.ruoyi.common.config.properties.SmsProperties; +import com.ruoyi.common.core.sms.AliyunSmsUtils; +import com.ruoyi.common.utils.StringUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + +@Component +@Slf4j +public class OrderNotifyJob { + + @Autowired + private H5OrderService h5OrderService; + + @Autowired + private OrderMapper orderMapper; + + @Autowired + private SmsProperties smsProperties; + + @Autowired + private OmsOrderServiceMapper omsOrderServiceMapper; + /** + * H5订单查询状态 + * -1->全部 0->待付款;1->待发货;2->待收货;3->已完成;4->已关闭;5->无效订单 -2->售后单 + */ + @Async + @Scheduled(cron = "0 0 9 * * ?") + public void cancelOrder(){ + log.info("【订单服务定时提醒任务开始】"); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + LocalDateTime now = LocalDateTime.now(); + String todayStr = sdf.format(now.toLocalDate()); + String tomorrowStr = sdf.format(now.plusDays(1).toLocalDate()); + + + //服务即将开始提醒通知:提前1天的上午9点 + log.info("【订单服务定时提醒任务开始】服务即将开始提醒通知:提前1天的上午9点:" + todayStr + "|" + tomorrowStr); + QueryWrapper qw1 = new QueryWrapper<>(); + qw1.eq("service_date", tomorrowStr); + List orderServiceList = omsOrderServiceMapper.selectList(qw1); + + if (orderServiceList != null) { + orderServiceList.forEach( omsOrderService -> { + log.info("【服务即将开始提醒通知:提前1天的上午9点】" + omsOrderService.getOrderId()); + QueryWrapper qw3 = new QueryWrapper<>(); + qw3.eq("order_id", omsOrderService.getOrderId()); + List orderServiceList2 = omsOrderServiceMapper.selectList(qw3); + + if (orderServiceList2 == null) + return; + + for (OmsOrderService service: orderServiceList2) { + String serviceDate = service.getServiceDate(); + if (StringUtils.isNotEmpty(serviceDate)) { + try { + Date serviceDateDate = sdf.parse(serviceDate); + if (serviceDateDate.before(sdf.parse(tomorrowStr)) ){ + return; + } + } catch (ParseException e) { + log.error("时间解析失败:" + serviceDate); + } + } + } + + if (orderServiceList2.size() == 1) { + Order order = orderMapper.selectById(omsOrderService.getOrderId()); + Integer status = order.getStatus(); + if (status == 1 || status == 2) { + log.info("【服务即将开始提醒通知点】发送提前1天的上午9点短信,手机号" + order.getReceiverPhone() + " | 手机号:" + order.getId()); + AliyunSmsUtils util = new AliyunSmsUtils(smsProperties); + AliyunSmsUtils.sendPoStartServiceSMS(order.getReceiverPhone()); + } + } + }); + } + + //服务开始提醒通知:服务期间每日9点 + log.info("【订单服务定时提醒任务开始】服务开始提醒通知:服务期间每日9点"); + QueryWrapper qw2 = new QueryWrapper<>(); + qw2.eq("service_date", todayStr); + List orderServiceList2 = omsOrderServiceMapper.selectList(qw2); + + if (orderServiceList2 != null) { + orderServiceList2.forEach( omsOrderService -> { + log.info("【服务即将开始提醒通知:提前1天的上午9点】" + omsOrderService.getOrderId()); + Order order = orderMapper.selectById(omsOrderService.getOrderId()); + Integer status = order.getStatus(); + if (status == 1 || status == 2) { + log.info("【服务即将开始提醒通知点】发送提前1天的上午9点短信,手机号" + order.getReceiverPhone() + " | 手机号:" + order.getId()); + AliyunSmsUtils util = new AliyunSmsUtils(smsProperties); + AliyunSmsUtils.sendPoTodayStartServiceSMS(order.getReceiverPhone()); + } + }); + } + + log.info("【订单服务定时提醒任务开始】"); + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/job/StatisticsJob.java b/ruoyi-mall/src/main/java/com/cyl/job/StatisticsJob.java new file mode 100644 index 0000000..06f6cde --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/job/StatisticsJob.java @@ -0,0 +1,37 @@ +package com.cyl.job; + +import com.cyl.manager.aws.domain.SystemStatistics; +import com.cyl.manager.aws.mapper.SystemStatisticsMapper; +import com.cyl.manager.aws.service.SystemStatisticsService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; + + +@Component +@Slf4j +public class StatisticsJob { + + @Autowired + private SystemStatisticsService systemStatisticsService; + + @Autowired + private SystemStatisticsMapper systemStatisticsMapper; + + @Async + @Scheduled(cron = "00 00 3 * * ?") + public void cancelOrder() { + log.info("【统计昨日系统数据任务开始】"); + LocalDateTime startTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN).plusDays(-1); + LocalDateTime endTime = LocalDateTime.of(LocalDate.now(), LocalTime.MAX).plusDays(-1); + SystemStatistics data = systemStatisticsService.stat(startTime, endTime); + systemStatisticsMapper.insert(data); + log.info("【统计昨日系统数据任务结束】"); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/.DS_Store b/ruoyi-mall/src/main/java/com/cyl/manager/.DS_Store new file mode 100644 index 0000000..2013f93 Binary files /dev/null and b/ruoyi-mall/src/main/java/com/cyl/manager/.DS_Store differ diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/aws/controller/SystemStatisticsController.java b/ruoyi-mall/src/main/java/com/cyl/manager/aws/controller/SystemStatisticsController.java new file mode 100644 index 0000000..72f0bb5 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/aws/controller/SystemStatisticsController.java @@ -0,0 +1,93 @@ +package com.cyl.manager.aws.controller; + +import java.util.List; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.manager.aws.convert.SystemStatisticsConvert; +import com.cyl.manager.aws.domain.SystemStatistics; +import com.cyl.manager.aws.pojo.query.SystemStatisticsQuery; +import com.cyl.manager.aws.service.SystemStatisticsService; +import com.cyl.manager.aws.pojo.vo.SystemStatisticsVO; +import com.ruoyi.common.utils.poi.ExcelUtil; +/** + * 系统数据统计Controller + * + * @author zcc + * @date 2023-07-28 + */ +@Api(description ="系统数据统计接口列表") +@RestController +@RequestMapping("/aws/systemStatistics") +public class SystemStatisticsController extends BaseController { + @Autowired + private SystemStatisticsService service; + @Autowired + private SystemStatisticsConvert convert; + + @ApiOperation("查询系统数据统计列表") + @PreAuthorize("@ss.hasPermi('aws:systemStatistics:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody SystemStatisticsQuery query, Pageable page) { + return ResponseEntity.ok(service.selectList(query, page)); + } + + @ApiOperation("导出系统数据统计列表") + @PreAuthorize("@ss.hasPermi('aws:systemStatistics:export')") + @Log(title = "系统数据统计", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(SystemStatisticsQuery query) { +// List list = service.selectList(query, null); +// ExcelUtil util = new ExcelUtil<>(SystemStatisticsVO.class); +// return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "系统数据统计数据")); + return null; + } + + @ApiOperation("获取系统数据统计详细信息") + @PreAuthorize("@ss.hasPermi('aws:systemStatistics:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("新增系统数据统计") + @PreAuthorize("@ss.hasPermi('aws:systemStatistics:add')") + @Log(title = "系统数据统计", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody SystemStatistics systemStatistics) { + return ResponseEntity.ok(service.insert(systemStatistics)); + } + + @ApiOperation("修改系统数据统计") + @PreAuthorize("@ss.hasPermi('aws:systemStatistics:edit')") + @Log(title = "系统数据统计", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody SystemStatistics systemStatistics) { + return ResponseEntity.ok(service.update(systemStatistics)); + } + + @ApiOperation("删除系统数据统计") + @PreAuthorize("@ss.hasPermi('aws:systemStatistics:remove')") + @Log(title = "系统数据统计", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/aws/convert/SystemStatisticsConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/aws/convert/SystemStatisticsConvert.java new file mode 100644 index 0000000..7bb27ec --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/aws/convert/SystemStatisticsConvert.java @@ -0,0 +1,16 @@ +package com.cyl.manager.aws.convert; + +import org.mapstruct.Mapper; +import com.cyl.manager.aws.domain.SystemStatistics; +import com.cyl.manager.aws.pojo.vo.SystemStatisticsVO; +import java.util.List; +/** + * 系统数据统计 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface SystemStatisticsConvert { + + List dos2vos(List list); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/aws/domain/SystemStatistics.java b/ruoyi-mall/src/main/java/com/cyl/manager/aws/domain/SystemStatistics.java new file mode 100644 index 0000000..c0a85df --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/aws/domain/SystemStatistics.java @@ -0,0 +1,68 @@ +package com.cyl.manager.aws.domain; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 系统数据统计对象 aws_system_statistics + * + * @author zcc + */ +@ApiModel(description="系统数据统计对象") +@Data +@TableName("aws_system_statistics") +public class SystemStatistics { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("统计日期") + @Excel(name = "统计日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime date; + + @ApiModelProperty("登录用户数") + @Excel(name = "登录用户数") + private Integer loginMemberCount; + + @ApiModelProperty("注册用户数") + @Excel(name = "注册用户数") + private Integer registerMemberCount; + + @ApiModelProperty("加购用户数") + @Excel(name = "加购用户数") + private Integer addCartMemberCount; + + @ApiModelProperty("下单用户数") + @Excel(name = "下单用户数") + private Integer createOrderMemberCount; + + @ApiModelProperty("成交用户数") + @Excel(name = "成交用户数") + private Integer dealMemberCount; + + @ApiModelProperty("下单数") + @Excel(name = "下单数") + private Integer orderCount; + + @ApiModelProperty("成交数") + @Excel(name = "成交数") + private Integer dealCount; + + @ApiModelProperty("成交金额") + @Excel(name = "成交金额") + private BigDecimal dealAmount; + + @ApiModelProperty("售后数") + @Excel(name = "售后数") + private Integer aftersaleCount; + + @ApiModelProperty("售后金额") + @Excel(name = "售后金额") + private BigDecimal aftersaleAmount; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/aws/mapper/SystemStatisticsMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/aws/mapper/SystemStatisticsMapper.java new file mode 100644 index 0000000..304a86e --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/aws/mapper/SystemStatisticsMapper.java @@ -0,0 +1,21 @@ +package com.cyl.manager.aws.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import com.cyl.manager.aws.domain.SystemStatistics; + +/** + * 系统数据统计Mapper接口 + * + * @author zcc + */ +public interface SystemStatisticsMapper extends BaseMapper { + /** + * 查询系统数据统计列表 + * + * @param systemStatistics 系统数据统计 + * @return 系统数据统计集合 + */ + List selectByEntity(SystemStatistics systemStatistics); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/aws/pojo/query/SystemStatisticsQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/aws/pojo/query/SystemStatisticsQuery.java new file mode 100644 index 0000000..357d8ac --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/aws/pojo/query/SystemStatisticsQuery.java @@ -0,0 +1,57 @@ +package com.cyl.manager.aws.pojo.query; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 系统数据统计 查询 对象 + * + * @author zcc + */ +@ApiModel(description="系统数据统计 查询 对象") +@Data +public class SystemStatisticsQuery { + @ApiModelProperty("统计开始日期") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime beginTime; + + @ApiModelProperty("统计结束日期") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; + + @ApiModelProperty("登录用户数 精确匹配") + private Integer loginMemberCount; + + @ApiModelProperty("注册用户数 精确匹配") + private Integer registerMemberCount; + + @ApiModelProperty("加购用户数 精确匹配") + private Integer addCartMemberCount; + + @ApiModelProperty("下单用户数 精确匹配") + private Integer createOrderMemberCount; + + @ApiModelProperty("成交用户数 精确匹配") + private Integer dealMemberCount; + + @ApiModelProperty("下单数 精确匹配") + private Integer orderCount; + + @ApiModelProperty("成交数 精确匹配") + private Integer dealCount; + + @ApiModelProperty("成交金额 精确匹配") + private BigDecimal dealAmount; + + @ApiModelProperty("售后数 精确匹配") + private Integer aftersaleCount; + + @ApiModelProperty("售后金额 精确匹配") + private BigDecimal aftersaleAmount; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/aws/pojo/vo/SystemStatisticsVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/aws/pojo/vo/SystemStatisticsVO.java new file mode 100644 index 0000000..bb5b2b2 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/aws/pojo/vo/SystemStatisticsVO.java @@ -0,0 +1,51 @@ +package com.cyl.manager.aws.pojo.vo; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import com.ruoyi.common.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +/** + * 系统数据统计 数据视图对象 + * + * @author zcc + */ +@Data +public class SystemStatisticsVO { + /** ID */ + private Long id; + /** 统计日期 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "统计日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime date; + /** 登录用户数 */ + @Excel(name = "登录用户数") + private Integer loginMemberCount; + /** 注册用户数 */ + @Excel(name = "注册用户数") + private Integer registerMemberCount; + /** 加购用户数 */ + @Excel(name = "加购用户数") + private Integer addCartMemberCount; + /** 下单用户数 */ + @Excel(name = "下单用户数") + private Integer createOrderMemberCount; + /** 成交用户数 */ + @Excel(name = "成交用户数") + private Integer dealMemberCount; + /** 下单数 */ + @Excel(name = "下单数") + private Integer orderCount; + /** 成交数 */ + @Excel(name = "成交数") + private Integer dealCount; + /** 成交金额 */ + @Excel(name = "成交金额") + private BigDecimal dealAmount; + /** 售后数 */ + @Excel(name = "售后数") + private Integer aftersaleCount; + /** 售后金额 */ + @Excel(name = "售后金额") + private BigDecimal aftersaleAmount; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/aws/service/SystemStatisticsService.java b/ruoyi-mall/src/main/java/com/cyl/manager/aws/service/SystemStatisticsService.java new file mode 100644 index 0000000..92f6155 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/aws/service/SystemStatisticsService.java @@ -0,0 +1,157 @@ +package com.cyl.manager.aws.service; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.time.LocalDateTime; +import java.util.Map; +import java.util.stream.Collectors; + +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.manager.oms.domain.Aftersale; +import com.cyl.manager.oms.mapper.AftersaleMapper; +import com.cyl.manager.oms.mapper.OrderMapper; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.domain.MemberCart; +import com.cyl.manager.ums.mapper.MemberCartMapper; +import com.cyl.manager.ums.mapper.MemberLogininforMapper; +import com.cyl.manager.ums.mapper.MemberMapper; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import com.cyl.manager.aws.mapper.SystemStatisticsMapper; +import com.cyl.manager.aws.domain.SystemStatistics; +import com.cyl.manager.aws.pojo.query.SystemStatisticsQuery; + +/** + * 系统数据统计Service业务层处理 + * + * @author zcc + */ +@Service +public class SystemStatisticsService { + @Autowired + private SystemStatisticsMapper systemStatisticsMapper; + + @Autowired + private OrderMapper orderMapper; + + @Autowired + private AftersaleMapper aftersaleMapper; + + @Autowired + private MemberLogininforMapper memberLogininforMapper; + + @Autowired + private MemberMapper memberMapper; + + @Autowired + private MemberCartMapper memberCartMapper; + + /** + * 查询系统数据统计 + * + * @param id 系统数据统计主键 + * @return 系统数据统计 + */ + public SystemStatistics selectById(Long id) { + return systemStatisticsMapper.selectById(id); + } + + /** + * 查询系统数据统计列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 系统数据统计 + */ + public PageImpl selectList(SystemStatisticsQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + if (query.getBeginTime() != null && query.getEndTime() != null){ + qw.ge(SystemStatistics::getDate, query.getBeginTime()); + qw.lt(SystemStatistics::getDate, query.getEndTime()); + } + qw.orderByDesc(SystemStatistics::getDate); + List statList = systemStatisticsMapper.selectList(qw); + long total = ((Page)statList).getTotal(); + if ((query.getBeginTime() == null && query.getEndTime() == null) || (query.getEndTime() != null && query.getEndTime().isAfter(LocalDateTime.now()))){ + SystemStatistics stat = this.stat(LocalDateTime.of(LocalDate.now(), LocalTime.MIN), LocalDateTime.of(LocalDate.now(), LocalTime.MAX)); + statList.add(0, stat); + return new PageImpl<>(statList, page, total); + } + return new PageImpl<>(statList, page, total); + } + + /** + * 新增系统数据统计 + * + * @param systemStatistics 系统数据统计 + * @return 结果 + */ + public int insert(SystemStatistics systemStatistics) { + return systemStatisticsMapper.insert(systemStatistics); + } + + /** + * 修改系统数据统计 + * + * @param systemStatistics 系统数据统计 + * @return 结果 + */ + public int update(SystemStatistics systemStatistics) { + return systemStatisticsMapper.updateById(systemStatistics); + } + + /** + * 删除系统数据统计信息 + * + * @param id 系统数据统计主键 + * @return 结果 + */ + public int deleteById(Long id) { + return systemStatisticsMapper.deleteById(id); + } + + public SystemStatistics stat(LocalDateTime startTime, LocalDateTime endTime) { + //统计下单用户数、成交用户数、下单数、成交数、成交金额 + SystemStatistics systemStatistics = orderMapper.statNewAndDeal(startTime, endTime); + //统计成交用户数 + systemStatistics.setDealMemberCount(orderMapper.statDealMember(startTime, endTime)); + //统计售后 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.between(Aftersale::getCreateTime, startTime, endTime); + wrapper.orderByDesc(Aftersale::getCreateTime); + List aftersaleList = aftersaleMapper.selectList(wrapper); + if (CollectionUtil.isEmpty(aftersaleList)) { + systemStatistics.setAftersaleCount(0); + systemStatistics.setAftersaleAmount(BigDecimal.ZERO); + } else { + Map map = aftersaleList.stream().collect(Collectors.toMap(Aftersale::getOrderId, Aftersale::getReturnAmount, (v1, v2) -> v1, LinkedHashMap::new)); + systemStatistics.setAftersaleCount(map.values().size()); + systemStatistics.setAftersaleAmount(map.values().stream().reduce(BigDecimal::add).get()); + } + //统计登录用户数 + systemStatistics.setLoginMemberCount(memberLogininforMapper.statLoginMember(startTime, endTime)); + //统计注册用户 + LambdaQueryWrapper memberWrapper = new LambdaQueryWrapper<>(); + memberWrapper.between(Member::getCreateTime, startTime, endTime); + systemStatistics.setRegisterMemberCount(memberMapper.selectCount(memberWrapper)); + //统计加购数 + systemStatistics.setAddCartMemberCount(memberCartMapper.statAddCount(startTime, endTime)); + systemStatistics.setDate(startTime); + return systemStatistics; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/marketing/controller/WechatMemberCouponController.java b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/controller/WechatMemberCouponController.java new file mode 100644 index 0000000..dde1d04 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/controller/WechatMemberCouponController.java @@ -0,0 +1,108 @@ +package com.cyl.manager.marketing.controller; + +import java.util.List; + +import com.cyl.manager.marketing.domain.WechatMemberCoupon; +import com.cyl.manager.marketing.pojo.SendCouponRequest; +import com.cyl.manager.marketing.service.IWechatMemberCouponService; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 会员券发放记录Controller + * + * @author daixiande + * @date 2024-04-26 + */ +@RestController +@RequestMapping("/mall/wechatMemberCoupon") +public class WechatMemberCouponController extends BaseController { + @Autowired + private IWechatMemberCouponService wechatMemberCouponService; + + /** + * 查询会员券发放记录列表 + */ + @PreAuthorize("@ss.hasPermi('mall:wechatMemberCoupon:list')") + @GetMapping("/list") + public TableDataInfo list(WechatMemberCoupon wechatMemberCoupon) { + startPage(); + List list = wechatMemberCouponService.selectWechatMemberCouponList(wechatMemberCoupon); + return getDataTable(list); + } + + /** + * 导出会员券发放记录列表 + */ + @PreAuthorize("@ss.hasPermi('mall:wechatMemberCoupon:export')") + @Log(title = "会员券发放记录", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(WechatMemberCoupon wechatMemberCoupon) { + List list = wechatMemberCouponService.selectWechatMemberCouponList(wechatMemberCoupon); + ExcelUtil util = new ExcelUtil(WechatMemberCoupon.class); + return util.exportExcel(list, "会员券发放记录数据"); + } + + /** + * 获取会员券发放记录详细信息 + */ + @PreAuthorize("@ss.hasPermi('mall:wechatMemberCoupon:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Integer id) { + return AjaxResult.success(wechatMemberCouponService.selectWechatMemberCouponById(id)); + } + + /** + * 新增会员券发放记录 + */ + @PreAuthorize("@ss.hasPermi('mall:wechatMemberCoupon:add')") + @Log(title = "会员券发放记录", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody WechatMemberCoupon wechatMemberCoupon) { + return toAjax(wechatMemberCouponService.insertWechatMemberCoupon(wechatMemberCoupon)); + } + + /** + * 修改会员券发放记录 + */ + @PreAuthorize("@ss.hasPermi('mall:wechatMemberCoupon:edit')") + @Log(title = "会员券发放记录", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody WechatMemberCoupon wechatMemberCoupon) { + return toAjax(wechatMemberCouponService.updateWechatMemberCoupon(wechatMemberCoupon)); + } + + /** + * 删除会员券发放记录 + */ + @PreAuthorize("@ss.hasPermi('mall:wechatMemberCoupon:remove')") + @Log(title = "会员券发放记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Integer[] ids) { + return toAjax(wechatMemberCouponService.deleteWechatMemberCouponByIds(ids)); + } + + /** + * 发放会员券 + */ + @PreAuthorize("@ss.hasPermi('mall:wechatMemberCoupon:add')") + @Log(title = "发放会员券", businessType = BusinessType.INSERT) + @PostMapping("/send") + public AjaxResult sendCoupon(@RequestBody SendCouponRequest sendCouponRequest) { + return toAjax(wechatMemberCouponService.sendCoupon(sendCouponRequest)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/marketing/controller/WechatStockController.java b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/controller/WechatStockController.java new file mode 100644 index 0000000..9cc2380 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/controller/WechatStockController.java @@ -0,0 +1,97 @@ +package com.cyl.manager.marketing.controller; + +import java.util.List; + +import com.cyl.manager.marketing.domain.WechatStock; +import com.cyl.manager.marketing.service.IWechatStockService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 微信商家券Controller + * + * @author daixiande + * @date 2024-04-26 + */ +@RestController +@RequestMapping("/mall/wechatStock") +public class WechatStockController extends BaseController { + @Autowired + private IWechatStockService wechatStockService; + + /** + * 查询微信商家券列表 + */ + @PreAuthorize("@ss.hasPermi('mall:wechatStock:list')") + @GetMapping("/list") + public TableDataInfo list(WechatStock wechatStock) { + startPage(); + List list = wechatStockService.selectWechatStockList(wechatStock); + return getDataTable(list); + } + + /** + * 导出微信商家券列表 + */ + @PreAuthorize("@ss.hasPermi('mall:wechatStock:export')") + @Log(title = "微信商家券", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(WechatStock wechatStock) { + List list = wechatStockService.selectWechatStockList(wechatStock); + ExcelUtil util = new ExcelUtil(WechatStock.class); + return util.exportExcel(list, "微信商家券数据"); + } + + /** + * 获取微信商家券详细信息 + */ + @PreAuthorize("@ss.hasPermi('mall:wechatStock:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(wechatStockService.selectWechatStockById(id)); + } + + /** + * 新增微信商家券 + */ + @PreAuthorize("@ss.hasPermi('mall:wechatStock:add')") + @Log(title = "微信商家券", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody WechatStock wechatStock) { + return toAjax(wechatStockService.insertWechatStock(wechatStock)); + } + + /** + * 修改微信商家券 + */ + @PreAuthorize("@ss.hasPermi('mall:wechatStock:edit')") + @Log(title = "微信商家券", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody WechatStock wechatStock) { + return toAjax(wechatStockService.updateWechatStock(wechatStock)); + } + + /** + * 删除微信商家券 + */ + @PreAuthorize("@ss.hasPermi('mall:wechatStock:remove')") + @Log(title = "微信商家券", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(wechatStockService.deleteWechatStockByIds(ids)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/marketing/domain/WechatMemberCoupon.java b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/domain/WechatMemberCoupon.java new file mode 100644 index 0000000..cdcde46 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/domain/WechatMemberCoupon.java @@ -0,0 +1,89 @@ +package com.cyl.manager.marketing.domain; + +import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 会员券发放记录对象 wechat_member_coupon + * + * @author daixiande + */ +@Data +public class WechatMemberCoupon extends BaseAudit { + private static final long serialVersionUID = 1L; + + /** 主键 */ + private Integer id; + + /** 券id */ + @Excel(name = "券id") + private String stockId; + + /** 券名称 */ + @Excel(name = "券名称") + private String stockName; + + /** 券类型 */ + @Excel(name = "券类型") + private String stockType; + + /** 券码 */ + @Excel(name = "券码") + private String couponCode; + + /** 可用开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "可用开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime availableStartTime; + + /** 过期时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "过期时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime expireTime; + + /** 发放时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "发放时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime receiveTime; + + /** 发放请求号 */ + @Excel(name = "发放请求号") + private String sendRequestNo; + + /** 核销请求号 */ + @Excel(name = "核销请求号") + private String useRequestNo; + + /** 使用时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "使用时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime useTime; + + /** 商家券状态 + 枚举值: + SENDED:可用 + USED:已核销 + EXPIRED:已过期 + DEACTIVATED:已失效 */ + @Excel(name = "商家券状态 枚举值:SENDED:可用 USED:已核销 EXPIRED:已过期 DEACTIVATED:已失效") + private String couponState; + + /** 小程序openid */ + @Excel(name = "小程序openid") + private String openid; + + /** memberId */ + @Excel(name = "memberId") + private Long memberId; + + /** 手机号 */ + @Excel(name = "手机号") + private String phone; + + /** 折扣类型 */ + @Excel(name = "折扣类型") + private String discountType; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/marketing/domain/WechatStock.java b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/domain/WechatStock.java new file mode 100644 index 0000000..060b2ba --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/domain/WechatStock.java @@ -0,0 +1,110 @@ +package com.cyl.manager.marketing.domain; + +import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 微信商家券对象 wechat_stock + * + * @author daixiande + */ +@Data +public class WechatStock extends BaseAudit { + private static final long serialVersionUID = 1L; + + /** 主键 */ + private Long id; + + /** 商家券批次名称 */ + @Excel(name = "商家券批次名称 ") + private String stockName; + + /** 批次备注 */ + @Excel(name = "批次备注") + private String comment; + + /** 适用商品范围 */ + @Excel(name = "适用商品范围") + private String goodsName; + + /** 批次类型 + NORMAL:固定面额满减券批次 + DISCOUNT:折扣券批次 + EXCHANGE:换购券批次 */ + @Excel(name = "批次类型 NORMAL:固定面额满减券批次 DISCOUNT:折扣券批次 EXCHANGE:换购券批次") + private String stockType; + + /** 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime availableBeginTime; + + /** 结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime availableEndTime; + + /** 领取后N天开始生效 */ + @Excel(name = "领取后N天开始生效") + private Integer availableDayAfterReceive; + + /** 固定面额满减券-优惠金额 */ + @Excel(name = "固定面额满减券-优惠金额") + private Integer discountAmount; + + /** 消费门槛 */ + @Excel(name = "消费门槛") + private Integer transactionMinimum; + + /** 折扣券-折扣比例 */ + @Excel(name = "折扣券-折扣比例") + private Integer discountPercent; + + /** 核销方式 */ + @Excel(name = "核销方式") + private String useMethod; + + /** 商户请求单号 */ + @Excel(name = "商户请求单号") + private String outRequestNo; + + /** 批次最大发放个数 */ + @Excel(name = "批次最大发放个数") + private Integer maxCoupons; + + /** 用户最大可领个数 */ + @Excel(name = "用户最大可领个数") + private Integer maxCouponsPerUser; + + /** 券code模式举值: +WECHATPAY_MODE:系统分配券code。(固定22位纯数字) +MERCHANT_API:商户发放时接口指定券code。 +MERCHANT_UPLOAD:商户上传自定义code,发券时系统随机选取上传的券code。 */ + @Excel(name = "券code模式举值: WECHATPAY_MODE:系统分配券code。", readConverterExp = "固=定22位纯数字") + private String couponCodeMode; + + /** 批次状态批次状态 +UNAUDIT:审核中 +RUNNING:运行中 */ + @Excel(name = "批次状态批次状态 UNAUDIT:审核中 RUNNING:运行中") + private String stockState; + + /** 批次号 */ + @Excel(name = "批次号") + private String stockId; + + /** 发放类型 */ + @Excel(name = "发放类型") + private String sendType; + + /** 折扣类型 */ + @Excel(name = "折扣类型") + private String discountType; + + /** 触发事件 */ + @Excel(name = "触发事件") + private String eventType; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/marketing/mapper/WechatMemberCouponMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/mapper/WechatMemberCouponMapper.java new file mode 100644 index 0000000..bc0d040 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/mapper/WechatMemberCouponMapper.java @@ -0,0 +1,77 @@ +package com.cyl.manager.marketing.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.h5.pojo.response.WechatMemberCouponResponse; +import com.cyl.manager.marketing.domain.WechatMemberCoupon; + +import java.util.List; + +/** + * 会员券发放记录Mapper接口 + * + * @author daixiande + */ +public interface WechatMemberCouponMapper extends BaseMapper { + /** + * 查询会员券发放记录 + * + * @param id 会员券发放记录主键 + * @return 会员券发放记录 + */ + WechatMemberCoupon selectById(Integer id); + + /** + * 查询会员券发放记录列表 + * + * @param wechatMemberCoupon 会员券发放记录 + * @return 会员券发放记录集合 + */ + List selectList2(WechatMemberCoupon wechatMemberCoupon); + + List selectListForOrder(Long id); + + /** + * 新增会员券发放记录 + * + * @param wechatMemberCoupon 会员券发放记录 + * @return 结果 + */ + int insert(WechatMemberCoupon wechatMemberCoupon); + + /** + * 修改会员券发放记录 + * + * @param wechatMemberCoupon 会员券发放记录 + * @return 结果 + */ + int updateWechatMemberCoupon(WechatMemberCoupon wechatMemberCoupon); + + int updateCouponState(String time); + + /** + * 删除会员券发放记录 + * + * @param id 会员券发放记录主键 + * @return 结果 + */ + int deleteById(Integer id); + + /** + * 批量删除会员券发放记录 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteByIds(Integer[] ids); + + /** + * 更新或插入会员券发放记录 + * + * @param wechatMemberCoupon 会员券发放记录 + * @return 结果 + */ + int insertOrUpdate(WechatMemberCoupon wechatMemberCoupon); + + List selectMemberCouponById(Integer couponId); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/marketing/mapper/WechatStockMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/mapper/WechatStockMapper.java new file mode 100644 index 0000000..68580e5 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/mapper/WechatStockMapper.java @@ -0,0 +1,70 @@ +package com.cyl.manager.marketing.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.marketing.domain.WechatStock; + +import java.util.List; + +/** + * 微信商家券Mapper接口 + * + * @author daixiande + */ +public interface WechatStockMapper extends BaseMapper { + /** + * 查询微信商家券 + * + * @param id 微信商家券主键 + * @return 微信商家券 + */ + WechatStock selectById(Long id); + + /** + * 查询微信商家券列表 + * + * @param wechatStock 微信商家券 + * @return 微信商家券集合 + */ + List selectList2(WechatStock wechatStock); + + /** + * 新增微信商家券 + * + * @param wechatStock 微信商家券 + * @return 结果 + */ + int insert(WechatStock wechatStock); + + /** + * 修改微信商家券 + * + * @param wechatStock 微信商家券 + * @return 结果 + */ + int update(WechatStock wechatStock); + + /** + * 删除微信商家券 + * + * @param id 微信商家券主键 + * @return 结果 + */ + int deleteById(Long id); + + /** + * 批量删除微信商家券 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteByIds(Long[] ids); + + /** + * 更新或插入微信商家券 + * + * @param wechatStock 微信商家券 + * @return 结果 + */ + int insertOrUpdate(WechatStock wechatStock); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/marketing/pojo/SendCouponRequest.java b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/pojo/SendCouponRequest.java new file mode 100644 index 0000000..a07c84b --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/pojo/SendCouponRequest.java @@ -0,0 +1,9 @@ +package com.cyl.manager.marketing.pojo; + +import lombok.Data; + +@Data +public class SendCouponRequest { + private Long stockId; + private String phone; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/marketing/pojo/query/WechatMemberCouponQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/pojo/query/WechatMemberCouponQuery.java new file mode 100644 index 0000000..ccfd69f --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/pojo/query/WechatMemberCouponQuery.java @@ -0,0 +1,38 @@ +package com.cyl.manager.marketing.pojo.query; +import com.cyl.manager.marketing.domain.WechatMemberCoupon; +import com.ruoyi.common.core.domain.IQuery; +import lombok.Setter; + +import java.util.HashMap; +import java.util.Map; + +/** + * 会员券发放记录 查询 对象 + * + * @author daixiande + */ +@Setter +public class WechatMemberCouponQuery extends WechatMemberCoupon implements IQuery { + /** + * 搜索值 + */ + private String searchValue; + + /** + * 请求参数 + */ + private Map params; + + @Override + public String getSearchValue() { + return this.searchValue; + } + + @Override + public Map getParams() { + if (params == null) { + params = new HashMap<>(); + } + return params; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/marketing/pojo/query/WechatStockQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/pojo/query/WechatStockQuery.java new file mode 100644 index 0000000..ba9938d --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/pojo/query/WechatStockQuery.java @@ -0,0 +1,38 @@ +package com.cyl.manager.marketing.pojo.query; +import com.cyl.manager.marketing.domain.WechatStock; +import com.ruoyi.common.core.domain.IQuery; +import lombok.Setter; + +import java.util.HashMap; +import java.util.Map; + +/** + * 微信商家券 查询 对象 + * + * @author daixiande + */ +@Setter +public class WechatStockQuery extends WechatStock implements IQuery { + /** + * 搜索值 + */ + private String searchValue; + + /** + * 请求参数 + */ + private Map params; + + @Override + public String getSearchValue() { + return this.searchValue; + } + + @Override + public Map getParams() { + if (params == null) { + params = new HashMap<>(); + } + return params; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/marketing/pojo/vo/WechatMemberCouponVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/pojo/vo/WechatMemberCouponVO.java new file mode 100644 index 0000000..f67cdb0 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/pojo/vo/WechatMemberCouponVO.java @@ -0,0 +1,29 @@ +package com.cyl.manager.marketing.pojo.vo; + +import java.time.LocalDateTime; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 会员券发放记录 数据视图对象 + * + * @author daixiande + */ +@Data +public class WechatMemberCouponVO extends BaseAudit { + private Integer id; + private String stockId; + private String stockName; + private String stockType; + private String couponCode; + private LocalDateTime availableStartTime; + private LocalDateTime expireTime; + private LocalDateTime receiveTime; + private String sendRequestNo; + private String useRequestNo; + private LocalDateTime useTime; + private String couponState; + private String openid; + private String phone; + + private String discountType; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/marketing/pojo/vo/WechatStockVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/pojo/vo/WechatStockVO.java new file mode 100644 index 0000000..6dc1405 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/pojo/vo/WechatStockVO.java @@ -0,0 +1,37 @@ +package com.cyl.manager.marketing.pojo.vo; + +import java.time.LocalDateTime; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 微信商家券 数据视图对象 + * + * @author daixiande + */ +@Data +public class WechatStockVO extends BaseAudit { + private Long id; + private String stockName; + private String comment; + private String goodsName; + private String stockType; + private LocalDateTime availableBeginTime; + private LocalDateTime availableEndTime; + private Integer availableDayAfterReceive; + private Integer discountAmount; + private Integer transactionMinimum; + private Integer discountPercent; + private String useMethod; + private String outRequestNo; + private Integer maxCoupons; + private Integer maxCouponsPerUser; + private String couponCodeMode; + private String stockState; + private String stockId; + + private String sendType; + private String discountType; + private String eventType; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/marketing/service/IWechatMemberCouponService.java b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/service/IWechatMemberCouponService.java new file mode 100644 index 0000000..5ea767a --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/service/IWechatMemberCouponService.java @@ -0,0 +1,68 @@ +package com.cyl.manager.marketing.service; + +import cn.felord.payment.wechat.v3.model.busifavor.BusiFavorReceiveConsumeData; +import com.cyl.manager.marketing.domain.WechatMemberCoupon; +import com.cyl.manager.marketing.pojo.SendCouponRequest; + +import java.util.List; + +/** + * 会员券发放记录Service接口 + * + * @author daixiande + */ +public interface IWechatMemberCouponService { + /** + * 查询会员券发放记录 + * + * @param id 会员券发放记录主键 + * @return 会员券发放记录 + */ + WechatMemberCoupon selectWechatMemberCouponById(Integer id); + + /** + * 查询会员券发放记录列表 + * + * @param wechatMemberCoupon 会员券发放记录 + * @return 会员券发放记录集合 + */ + List selectWechatMemberCouponList(WechatMemberCoupon wechatMemberCoupon); + + /** + * 新增会员券发放记录 + * + * @param wechatMemberCoupon 会员券发放记录 + * @return 结果 + */ + int insertWechatMemberCoupon(WechatMemberCoupon wechatMemberCoupon); + + /** + * 修改会员券发放记录 + * + * @param wechatMemberCoupon 会员券发放记录 + * @return 结果 + */ + int updateWechatMemberCoupon(WechatMemberCoupon wechatMemberCoupon); + + /** + * 批量删除会员券发放记录 + * + * @param ids 需要删除的会员券发放记录主键集合 + * @return 结果 + */ + int deleteWechatMemberCouponByIds(Integer[] ids); + + /** + * 删除会员券发放记录信息 + * + * @param id 会员券发放记录主键 + * @return 结果 + */ + int deleteWechatMemberCouponById(Integer id); + + void send(BusiFavorReceiveConsumeData data); + + int sendCoupon(SendCouponRequest sendCouponRequest); + + boolean use(Integer id, Long orderId); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/marketing/service/IWechatStockService.java b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/service/IWechatStockService.java new file mode 100644 index 0000000..ab5dbae --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/service/IWechatStockService.java @@ -0,0 +1,62 @@ +package com.cyl.manager.marketing.service; + +import com.cyl.manager.marketing.domain.WechatStock; + +import java.util.List; + +/** + * 微信商家券Service接口 + * + * @author daixiande + */ +public interface IWechatStockService { + /** + * 查询微信商家券 + * + * @param id 微信商家券主键 + * @return 微信商家券 + */ + WechatStock selectWechatStockById(Long id); + + WechatStock selectWechatStockByStockId(String stockId); + + /** + * 查询微信商家券列表 + * + * @param wechatStock 微信商家券 + * @return 微信商家券集合 + */ + List selectWechatStockList(WechatStock wechatStock); + + /** + * 新增微信商家券 + * + * @param wechatStock 微信商家券 + * @return 结果 + */ + int insertWechatStock(WechatStock wechatStock); + + /** + * 修改微信商家券 + * + * @param wechatStock 微信商家券 + * @return 结果 + */ + int updateWechatStock(WechatStock wechatStock); + + /** + * 批量删除微信商家券 + * + * @param ids 需要删除的微信商家券主键集合 + * @return 结果 + */ + int deleteWechatStockByIds(Long[] ids); + + /** + * 删除微信商家券信息 + * + * @param id 微信商家券主键 + * @return 结果 + */ + int deleteWechatStockById(Long id); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/marketing/service/impl/WechatMemberCouponServiceImpl.java b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/service/impl/WechatMemberCouponServiceImpl.java new file mode 100644 index 0000000..908a86f --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/service/impl/WechatMemberCouponServiceImpl.java @@ -0,0 +1,258 @@ +package com.cyl.manager.marketing.service.impl; + +import cn.felord.payment.wechat.v3.model.busifavor.BusiFavorReceiveConsumeData; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.cyl.manager.marketing.domain.WechatMemberCoupon; +import com.cyl.manager.marketing.domain.WechatStock; +import com.cyl.manager.marketing.mapper.WechatMemberCouponMapper; +import com.cyl.manager.marketing.pojo.SendCouponRequest; +import com.cyl.manager.marketing.service.IWechatMemberCouponService; +import com.cyl.manager.marketing.service.IWechatStockService; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.domain.MemberWechat; +import com.cyl.manager.ums.pojo.query.MemberQuery; +import com.cyl.manager.ums.service.MemberService; +import com.cyl.manager.ums.service.MemberWechatService; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.uuid.UUID; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.List; + +@Service +@Slf4j +public class WechatMemberCouponServiceImpl implements IWechatMemberCouponService { + + @Autowired + private WechatMemberCouponMapper wechatMemberCouponMapper; + + @Autowired + private MemberService memberService; + + @Autowired + private IWechatStockService wechatStockService; + + @Autowired + private MemberWechatService memberWechatService; + + @Override + public WechatMemberCoupon selectWechatMemberCouponById(Integer id) { + return wechatMemberCouponMapper.selectById(id); + } + + @Override + public List selectWechatMemberCouponList(WechatMemberCoupon wechatMemberCoupon) { + return wechatMemberCouponMapper.selectList2(wechatMemberCoupon); + } + + @Override + public int insertWechatMemberCoupon(WechatMemberCoupon wechatMemberCoupon) { + Long userId = SecurityUtils.getUserId(); + + wechatMemberCoupon.setCreateBy(userId); + wechatMemberCoupon.setCreateTime(LocalDateTime.now()); + wechatMemberCoupon.setUpdateBy(userId); + wechatMemberCoupon.setUpdateTime(LocalDateTime.now()); + + return wechatMemberCouponMapper.insert(wechatMemberCoupon); + } + + @Override + public int updateWechatMemberCoupon(WechatMemberCoupon wechatMemberCoupon) { + Long userId = SecurityUtils.getUserId(); + + wechatMemberCoupon.setUpdateBy(userId); + wechatMemberCoupon.setUpdateTime(LocalDateTime.now()); + return wechatMemberCouponMapper.updateWechatMemberCoupon(wechatMemberCoupon); + } + + @Override + public int deleteWechatMemberCouponByIds(Integer[] ids) { + return wechatMemberCouponMapper.deleteByIds(ids); + } + + @Override + public int deleteWechatMemberCouponById(Integer id) { + return wechatMemberCouponMapper.deleteById(id); + } + + @Override + public void send(BusiFavorReceiveConsumeData data) { + WechatMemberCoupon wechatMemberCoupon = new WechatMemberCoupon(); + + String openId = data.getOpenid(); + String stockId = data.getStockId(); + + MemberWechat memberWechat = memberWechatService.selectByOpenId(openId); + WechatStock wechatStock = wechatStockService.selectWechatStockByStockId(stockId); + + if (memberWechat == null) { + log.error("Open id : " + openId + "不存在,查询不到用户"); + return; + } + + if (wechatStock == null) { + log.error("Stock id : " + stockId + "不存在,查询不到商家券"); + return; + } + + Member member = memberService.selectById(memberWechat.getMemberId()); + + if (member == null) { + log.error("User id : " + memberWechat.getMemberId() + "不存在,查询不到用户"); + return; + } + + wechatMemberCoupon.setCouponCode(data.getCouponCode()); + wechatMemberCoupon.setOpenid(openId); + wechatMemberCoupon.setStockId(stockId); + wechatMemberCoupon.setStockType(wechatStock.getStockType()); + wechatMemberCoupon.setStockName(wechatStock.getStockName()); + + wechatMemberCoupon.setAvailableStartTime(data.getSendTime().toLocalDateTime()); + wechatMemberCoupon.setExpireTime(data.getSendTime().toLocalDateTime().plusDays(wechatStock.getAvailableDayAfterReceive())); + wechatMemberCoupon.setReceiveTime(data.getSendTime().toLocalDateTime()); + + wechatMemberCoupon.setPhone(memberService.getPhoneDecrypted(member.getPhoneEncrypted())); + + wechatMemberCoupon.setCouponState("SENDED"); + + wechatMemberCoupon.setDiscountType(wechatStock.getDiscountType()); + + Long userId = 1L; + wechatMemberCoupon.setCreateBy(userId); + wechatMemberCoupon.setCreateTime(LocalDateTime.now()); + wechatMemberCoupon.setUpdateBy(userId); + wechatMemberCoupon.setUpdateTime(LocalDateTime.now()); + + log.info("【商家券发放】发送成功:" + wechatMemberCoupon); + + wechatMemberCouponMapper.insert(wechatMemberCoupon); + } + + @Override + public int sendCoupon(SendCouponRequest sendCouponRequest) { + MemberQuery memberQuery = new MemberQuery(); + memberQuery.setPhone(sendCouponRequest.getPhone()); + + //1、查询会员信息 + List memberList = memberService.selectList(memberQuery, null); + + if (CollectionUtil.isEmpty(memberList)) { + throw new ServiceException("[发送优惠券]会员手机号不存在:" + sendCouponRequest.getPhone()); + } + + //2、查询会员 + Member member = memberList.get(0); + MemberWechat memberWechat = memberWechatService.selectByMemberId(member.getId()); + + //3、查询优惠券信息 + WechatStock wechatStock = wechatStockService.selectWechatStockById(sendCouponRequest.getStockId()); + + if ( wechatStock == null) { + throw new ServiceException("[发送优惠券]优惠券不存在:" + sendCouponRequest.getStockId()); + } + + if (wechatStock.getAvailableEndTime().isBefore(LocalDateTime.now())) { + throw new ServiceException("[发送优惠券]该优惠券已过期:" + sendCouponRequest.getStockId()); + } + + //3.5 验证该用户是否已经领取该优惠券 + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("member_id", member.getId()); + qw.eq("stock_id", wechatStock.getStockId()); + List wechatMemberCouponList = wechatMemberCouponMapper.selectList(qw); + if (wechatMemberCouponList.size() >= wechatStock.getMaxCouponsPerUser()) { + throw new ServiceException("[发送优惠券]已超过优惠券领取次数,请勿重复领取"); + } + + //4、发送优惠券 + WechatMemberCoupon wechatMemberCoupon = new WechatMemberCoupon(); + Long userId = 1L; + wechatMemberCoupon.setMemberId(member.getId()); + wechatMemberCoupon.setCreateBy(userId); + wechatMemberCoupon.setCreateTime(LocalDateTime.now()); + wechatMemberCoupon.setUpdateBy(userId); + wechatMemberCoupon.setUpdateTime(LocalDateTime.now()); + + wechatMemberCoupon.setCouponCode(UUID.randomUUID().toString()); + wechatMemberCoupon.setOpenid(memberWechat.getRoutineOpenid()); + wechatMemberCoupon.setStockId(wechatStock.getStockId()); + wechatMemberCoupon.setStockType(wechatStock.getStockType()); + wechatMemberCoupon.setStockName(wechatStock.getStockName()); + + wechatMemberCoupon.setAvailableStartTime(LocalDateTime.now()); + wechatMemberCoupon.setExpireTime(LocalDateTime.now().plusDays(wechatStock.getAvailableDayAfterReceive())); + wechatMemberCoupon.setReceiveTime(LocalDateTime.now()); + + wechatMemberCoupon.setPhone(sendCouponRequest.getPhone()); + wechatMemberCoupon.setCouponState("SENDED"); + wechatMemberCoupon.setDiscountType(wechatStock.getDiscountType()); + + log.info("【平台券发放】发送成功:" + wechatMemberCoupon); + //TODO 短信提醒 + + return wechatMemberCouponMapper.insert(wechatMemberCoupon); + } + + /** + * 优惠券核销 + * @param id + * @return + */ + @Override + public boolean use(Integer id, Long orderId) { + WechatMemberCoupon wechatMemberCoupon = wechatMemberCouponMapper.selectById(id); + + LocalDateTime now = LocalDateTime.now(); +// LocalDateTime availableStartTime = wechatMemberCoupon.getAvailableStartTime(); + LocalDateTime expireTime = wechatMemberCoupon.getExpireTime(); + + /** 商家券状态 + 枚举值: + SENDED:可用 + USED:已核销 + EXPIRED:已过期 + DEACTIVATED:已失效 */ + + String couponState = wechatMemberCoupon.getCouponState(); + + if (couponState.equals("USED")) { + throw new ServiceException("优惠券已经被使用"); + } + if (couponState.equals("EXPIRED")) { + throw new ServiceException("优惠券已经过期"); + } + if (couponState.equals("DEACTIVATED")) { + throw new ServiceException("优惠券已经失效"); + } + +// if (availableStartTime.isAfter(now)) { +// throw new ServiceException("优惠券还未生效"); +// } + + if (now.isAfter(expireTime)) { + throw new ServiceException("优惠券已过期"); + } + + LocalDateTime optDate = LocalDateTime.now(); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id", id); + updateWrapper.set("coupon_state", "USED"); + updateWrapper.set("use_time", optDate); + updateWrapper.set("use_request_no", orderId); + updateWrapper.set("update_time", optDate); + int rows = wechatMemberCouponMapper.update(null, updateWrapper); + if (rows < 1){ + throw new RuntimeException("更新优惠券状态失败"); + } + + return true; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/marketing/service/impl/WechatStockServiceImpl.java b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/service/impl/WechatStockServiceImpl.java new file mode 100644 index 0000000..87311ee --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/marketing/service/impl/WechatStockServiceImpl.java @@ -0,0 +1,206 @@ +package com.cyl.manager.marketing.service.impl; + +import cn.felord.payment.wechat.enumeration.BusiFavorUseMethod; +import cn.felord.payment.wechat.enumeration.StockType; +import cn.felord.payment.wechat.v3.WechatApiProvider; +import cn.felord.payment.wechat.v3.WechatMarketingBusiFavorApi; +import cn.felord.payment.wechat.v3.WechatResponseEntity; +import cn.felord.payment.wechat.v3.model.busifavor.*; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.manager.marketing.domain.WechatStock; +import com.cyl.manager.marketing.mapper.WechatStockMapper; +import com.cyl.manager.marketing.service.IWechatStockService; +import com.cyl.manager.ums.domain.MemberWechat; +import com.cyl.wechat.WechatPayData; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.uuid.UUID; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.List; + +@Service +@Slf4j +public class WechatStockServiceImpl implements IWechatStockService { + + @Autowired + WechatApiProvider wechatApiProvider; + + @Autowired + private WechatStockMapper wechatStockMapper; + + @Override + public WechatStock selectWechatStockById(Long id) { + return wechatStockMapper.selectById(id); + } + + @Override + public WechatStock selectWechatStockByStockId(String stockId) { + QueryWrapper qw = new QueryWrapper<>(); + if (stockId != null) { + qw.eq("stock_id", stockId); + return wechatStockMapper.selectOne(qw); + } + + return null; + } + + @Override + public List selectWechatStockList(WechatStock wechatStock) { + return wechatStockMapper.selectList2(wechatStock); + } + + @Override + public int insertWechatStock(WechatStock wechatStock) { + String stockType = wechatStock.getStockType(); + log.info("[创建优惠券]优惠券类型:" + stockType); + + String outRequestId = UUID.randomUUID().toString(); + + Long userId = SecurityUtils.getUserId(); + wechatStock.setStockState("RUNNING"); + wechatStock.setCouponCodeMode("PLATFORM_MODE"); + + wechatStock.setUseMethod("MINI_PROGRAMS"); + wechatStock.setOutRequestNo(outRequestId); + + wechatStock.setCreateBy(userId); + wechatStock.setCreateTime(LocalDateTime.now()); + wechatStock.setUpdateBy(userId); + wechatStock.setUpdateTime(LocalDateTime.now()); + + if (stockType.equals(StockType.DISCOUNT.name()) + || stockType.equals(StockType.NORMAL.name()) + || stockType.equals(StockType.EXCHANGE.name())) { + //发送微信商家券 与微信平台对接 + return sendWechatConpon(wechatStock); + } + + String stockId = UUID.randomUUID().toString(); + wechatStock.setStockId(stockId); + log.info("[创建优惠券]开始创建平台优惠券:" + wechatStock); + + return wechatStockMapper.insert(wechatStock); + } + + private int sendWechatConpon(WechatStock wechatStock) { + log.info("[创建优惠券]开始创建微信商家券:" + wechatStock); + StockType stockType = StockType.valueOf(wechatStock.getStockType()); + + String outRequestId = UUID.randomUUID().toString(); + + BusiFavorCreateParams params = new BusiFavorCreateParams(); + + params.setStockName(wechatStock.getStockName()); + params.setComment(wechatStock.getComment()); + params.setGoodsName(wechatStock.getGoodsName()); + params.setBelongMerchant(WechatPayData.merchantId); + params.setStockType(stockType); + + CouponUseRule couponUseRule = new CouponUseRule(); + couponUseRule.setUseMethod(BusiFavorUseMethod.MINI_PROGRAMS); + + CouponAvailableTime couponAvailableTime = new CouponAvailableTime(); + + couponAvailableTime.setAvailableEndTime( OffsetDateTime.of(wechatStock.getAvailableEndTime(), ZoneOffset.ofHours(0))); + couponAvailableTime.setAvailableBeginTime( OffsetDateTime.of(wechatStock.getAvailableBeginTime(), ZoneOffset.ofHours(0))); + couponAvailableTime.setAvailableDayAfterReceive(wechatStock.getAvailableDayAfterReceive()); + + couponUseRule.setCouponAvailableTime(couponAvailableTime); + + BusiFavorNotifyConfig busiFavorNotifyConfig = new BusiFavorNotifyConfig(); + busiFavorNotifyConfig.setNotifyAppid(WechatPayData.miniProgramAppId); + params.setNotifyConfig(busiFavorNotifyConfig); + + if (stockType == StockType.DISCOUNT) { + DiscountCoupon discountCoupon = new DiscountCoupon(); + discountCoupon.setDiscountPercent(wechatStock.getDiscountPercent()); + discountCoupon.setTransactionMinimum(wechatStock.getTransactionMinimum()); + + couponUseRule.setDiscountCoupon(discountCoupon); + } else if (stockType == StockType.NORMAL) { + FixedNormalCoupon fixedNormalCoupon = new FixedNormalCoupon(); + fixedNormalCoupon.setTransactionMinimum(wechatStock.getTransactionMinimum()); + fixedNormalCoupon.setDiscountAmount(wechatStock.getDiscountAmount()); + + couponUseRule.setFixedNormalCoupon(fixedNormalCoupon); + } else { + log.error("[创建优惠券]暂不支持该类型的券"); + throw new ServiceException("[创建优惠券]暂不支持该类型的券:" + stockType.name()); + } + + couponUseRule.setMiniProgramsAppid(WechatPayData.miniProgramAppId); + couponUseRule.setMiniProgramsPath("/path/index/index"); + + params.setCouponUseRule(couponUseRule); + + StockSendRule stockSendRule = new StockSendRule(); + stockSendRule.setMaxCoupons(wechatStock.getMaxCoupons()); + stockSendRule.setMaxCouponsPerUser(wechatStock.getMaxCouponsPerUser()); + + params.setStockSendRule(stockSendRule); + params.setOutRequestNo(outRequestId); + + params.setCouponCodeMode(BusiFavorCreateParams.CouponCodeMode.WECHATPAY_MODE); + + log.info("【发送微信商户券请求参数】" + JSON.toJSONString(params)); + + WechatMarketingBusiFavorApi wechatMarketingBusiFavorApi = wechatApiProvider.busiFavorApi("miniapp"); + + WechatResponseEntity wechatResponseEntity = wechatMarketingBusiFavorApi.createStock(params); + log.info("【发送微信商户券返回参数】" + JSON.toJSONString(wechatResponseEntity)); + +// { +// "httpStatus": 200, +// "body": { +// "create_time": "2024-04-28T21:37:18+08:00", +// "stock_id": "1262000000000051" +// }, +// "4xxClientError": false, +// "5xxServerError": false, +// "1xxInformational": false, +// "2xxSuccessful": true, +// "3xxRedirection": false +// } + + if (wechatResponseEntity.is2xxSuccessful()) { + ObjectNode body = wechatResponseEntity.getBody(); + String stock_id = body.get("stock_id").toString(); + if (stock_id.contains("\"")) { + stock_id = stock_id.replace("\"",""); + } + + wechatStock.setCouponCodeMode("WECHATPAY_MODE"); + wechatStock.setStockId(stock_id); + + return wechatStockMapper.insert(wechatStock); + } + + throw new ServiceException("创建商户券失败:" + JSON.toJSONString(wechatResponseEntity)); + } + + @Override + public int updateWechatStock(WechatStock wechatStock) { + Long userId = SecurityUtils.getUserId(); + wechatStock.setUpdateBy(userId); + wechatStock.setUpdateTime(LocalDateTime.now()); + return wechatStockMapper.update(wechatStock); + } + + @Override + public int deleteWechatStockByIds(Long[] ids) { + return wechatStockMapper.deleteByIds(ids); + } + + @Override + public int deleteWechatStockById(Long id) { + return wechatStockMapper.deleteById(id); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/AftersaleController.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/AftersaleController.java new file mode 100644 index 0000000..9d714aa --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/AftersaleController.java @@ -0,0 +1,132 @@ +package com.cyl.manager.oms.controller; + +import java.util.List; + +import com.cyl.manager.oms.pojo.request.DealWithAftersaleRequest; +import com.cyl.manager.oms.pojo.request.ManagerAftersaleOrderRequest; +import com.cyl.manager.oms.pojo.vo.ManagerRefundOrderDetailVO; +import com.cyl.manager.oms.pojo.vo.ManagerRefundOrderVO; +import com.cyl.manager.oms.pojo.vo.OrderOperateHistoryVO; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.core.redis.RedisService; +import com.ruoyi.common.utils.SecurityUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.manager.oms.convert.AftersaleConvert; +import com.cyl.manager.oms.domain.Aftersale; +import com.cyl.manager.oms.pojo.query.AftersaleQuery; +import com.cyl.manager.oms.service.AftersaleService; + +/** + * 订单售后Controller + * + * @author zcc + * @date 2022-12-29 + */ +@Api(description ="订单售后接口列表") +@RestController +@RequestMapping("/oms/aftersale") +@Slf4j +public class AftersaleController extends BaseController { + @Autowired + private AftersaleService service; + @Autowired + private AftersaleConvert convert; + @Autowired + private RedisService redisService; + + @ApiOperation("查询订单售后列表") + @PreAuthorize("@ss.hasPermi('oms:aftersale:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody ManagerAftersaleOrderRequest query, Pageable page) { + List list = service.selectList(query, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + @ApiOperation("导出订单售后列表") + @PreAuthorize("@ss.hasPermi('oms:aftersale:export')") + @Log(title = "订单售后", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(AftersaleQuery query) { +// List list = service.selectList(query, null); +// ExcelUtil util = new ExcelUtil<>(AftersaleVO.class); +// return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "订单售后数据")); + return null; + } + + @ApiOperation("获取订单售后详细信息") + @PreAuthorize("@ss.hasPermi('oms:aftersale:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long orderId) { + return ResponseEntity.ok(service.selectById(orderId)); + } + + @ApiOperation("新增订单售后") + @PreAuthorize("@ss.hasPermi('oms:aftersale:add')") + @Log(title = "订单售后", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody Aftersale aftersale) { + return ResponseEntity.ok(service.insert(aftersale)); + } + + @ApiOperation("修改订单售后") + @PreAuthorize("@ss.hasPermi('oms:aftersale:edit')") + @Log(title = "订单售后", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody Aftersale aftersale) { + return ResponseEntity.ok(service.update(aftersale)); + } + + @ApiOperation("删除订单售后") + @PreAuthorize("@ss.hasPermi('oms:aftersale:remove')") + @Log(title = "订单售后", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } + + @ApiOperation("售后订单操作") + @PostMapping("/dealWith") + public ResponseEntity updateStatus(@RequestBody DealWithAftersaleRequest request){ + LoginUser user = SecurityUtils.getLoginUser(); + String redisKey = "manager_oms_order_updateOrderStatus_" + user.getUserId(); + String redisValue = user.getUserId() + "_" + System.currentTimeMillis(); + try { + redisService.lock(redisKey, redisValue, 60); + return ResponseEntity.ok(service.dealWith(request, user)); + } catch (Exception e) { + log.error("售后订单操作发生异常", e); + throw new RuntimeException(e.getMessage()); + } finally { + try { + redisService.unLock(redisKey, redisValue); + } catch (Exception e) { + log.error("", e); + } + } + } + + @ApiOperation("查看日志") + @GetMapping("/log/{orderId}") + public ResponseEntity> log(@PathVariable Long orderId){ + return ResponseEntity.ok(service.log(orderId)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/AftersaleItemController.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/AftersaleItemController.java new file mode 100644 index 0000000..8dcd656 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/AftersaleItemController.java @@ -0,0 +1,93 @@ +package com.cyl.manager.oms.controller; + +import java.util.List; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.manager.oms.convert.AftersaleItemConvert; +import com.cyl.manager.oms.domain.AftersaleItem; +import com.cyl.manager.oms.pojo.query.AftersaleItemQuery; +import com.cyl.manager.oms.service.AftersaleItemService; +import com.cyl.manager.oms.pojo.vo.AftersaleItemVO; +import com.ruoyi.common.utils.poi.ExcelUtil; +/** + * 订单售后Controller + * + * @author zcc + * @date 2022-12-29 + */ +@Api(description ="订单售后接口列表") +@RestController +@RequestMapping("/oms/aftersaleItem") +public class AftersaleItemController extends BaseController { + @Autowired + private AftersaleItemService service; + @Autowired + private AftersaleItemConvert convert; + + @ApiOperation("查询订单售后列表") + @PreAuthorize("@ss.hasPermi('oms:aftersaleItem:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody AftersaleItemQuery query, Pageable page) { + List list = service.selectList(query, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + @ApiOperation("导出订单售后列表") + @PreAuthorize("@ss.hasPermi('oms:aftersaleItem:export')") + @Log(title = "订单售后", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(AftersaleItemQuery query) { + List list = service.selectList(query, null); + ExcelUtil util = new ExcelUtil<>(AftersaleItemVO.class); + return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "订单售后数据")); + } + + @ApiOperation("获取订单售后详细信息") + @PreAuthorize("@ss.hasPermi('oms:aftersaleItem:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("新增订单售后") + @PreAuthorize("@ss.hasPermi('oms:aftersaleItem:add')") + @Log(title = "订单售后", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody AftersaleItem aftersaleItem) { + return ResponseEntity.ok(service.insert(aftersaleItem)); + } + + @ApiOperation("修改订单售后") + @PreAuthorize("@ss.hasPermi('oms:aftersaleItem:edit')") + @Log(title = "订单售后", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody AftersaleItem aftersaleItem) { + return ResponseEntity.ok(service.update(aftersaleItem)); + } + + @ApiOperation("删除订单售后") + @PreAuthorize("@ss.hasPermi('oms:aftersaleItem:remove')") + @Log(title = "订单售后", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OMSOrderServiceController.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OMSOrderServiceController.java new file mode 100644 index 0000000..c15309c --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OMSOrderServiceController.java @@ -0,0 +1,90 @@ +package com.cyl.manager.oms.controller; + +import com.cyl.manager.oms.domain.OmsOrderService; +import com.cyl.manager.oms.service.OmsOrderServiceService; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 预约订单服务详细信息记录表Controller + * + * @author daixiande + * @date 2024-01-04 + */ +@RestController +@RequestMapping("/order/omsOrderService") +public class OMSOrderServiceController extends BaseController { + @Autowired + private OmsOrderServiceService omsOrderServiceService; + + /** + * 查询预约订单服务详细信息记录表列表 + */ + @PreAuthorize("@ss.hasPermi('order:omsOrderService:list')") + @GetMapping("/list") + public TableDataInfo list(OmsOrderService omsOrderService) { + startPage(); + List list = omsOrderServiceService.selectOmsOrderServiceList(omsOrderService); + return getDataTable(list); + } + + /** + * 导出预约订单服务详细信息记录表列表 + */ + @PreAuthorize("@ss.hasPermi('order:omsOrderService:export')") + @Log(title = "预约订单服务详细信息记录表", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(OmsOrderService omsOrderService) { + List list = omsOrderServiceService.selectOmsOrderServiceList(omsOrderService); + ExcelUtil util = new ExcelUtil(OmsOrderService.class); + return util.exportExcel(list, "预约订单服务详细信息记录表数据"); + } + + /** + * 获取预约订单服务详细信息记录表详细信息 + */ + @PreAuthorize("@ss.hasPermi('order:omsOrderService:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(omsOrderServiceService.selectOmsOrderServiceById(id)); + } + + /** + * 新增预约订单服务详细信息记录表 + */ + @PreAuthorize("@ss.hasPermi('order:omsOrderService:add')") + @Log(title = "预约订单服务详细信息记录表", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody OmsOrderService omsOrderService) { + return toAjax(omsOrderServiceService.insertOmsOrderService(omsOrderService)); + } + + /** + * 修改预约订单服务详细信息记录表 + */ + @PreAuthorize("@ss.hasPermi('order:omsOrderService:edit')") + @Log(title = "预约订单服务详细信息记录表", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody OmsOrderService omsOrderService) { + return toAjax(omsOrderServiceService.updateOmsOrderService(omsOrderService)); + } + + /** + * 删除预约订单服务详细信息记录表 + */ + @PreAuthorize("@ss.hasPermi('order:omsOrderService:remove')") + @Log(title = "预约订单服务详细信息记录表", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(omsOrderServiceService.deleteOmsOrderServiceByIds(ids)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OrderController.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OrderController.java new file mode 100644 index 0000000..fc2d12b --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OrderController.java @@ -0,0 +1,188 @@ +package com.cyl.manager.oms.controller; + +import java.util.List; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.cyl.h5.pojo.dto.ApplyRefundDTO; +import com.cyl.manager.oms.pojo.request.CompleteOrderRequest; +import com.cyl.manager.oms.pojo.request.DeliverProductRequest; +import com.cyl.manager.oms.pojo.request.ManagerOrderQueryRequest; +import com.cyl.manager.oms.pojo.vo.*; +import com.ruoyi.common.core.redis.RedisService; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.poi.ExcelUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.manager.oms.convert.OrderConvert; +import com.cyl.manager.oms.domain.Order; +import com.cyl.manager.oms.pojo.query.OrderQuery; +import com.cyl.manager.oms.service.OrderService; + +/** + * 订单表Controller + * + * @author zcc + * @date 2022-12-01 + */ +@Api(description ="订单表接口列表") +@RestController +@RequestMapping("/oms/order") +@Slf4j +public class OrderController extends BaseController { + @Autowired + private OrderService service; + @Autowired + private OrderConvert convert; + @Autowired + private RedisService redisService; + + @ApiOperation("查询订单表列表") + @PreAuthorize("@ss.hasPermi('oms:order:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody ManagerOrderQueryRequest query, Pageable page) { + return ResponseEntity.ok(service.selectList(query, page)); + } + + @ApiOperation("导出订单表列表") + @PreAuthorize("@ss.hasPermi('oms:order:export')") + @Log(title = "订单表", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(ManagerOrderQueryRequest query) { + Pageable page = PageRequest.of(0, 1000); + log.info("【订单导出】提交的数据:"+ JSONObject.toJSONString(query)); + List orderExportVOList = service.selectExportList(query, page); + log.info("【订单导出】查询的数据:"+ JSONArray.toJSONString(orderExportVOList)); + ExcelUtil util = new ExcelUtil<>(OrderExportVO.class); + return ResponseEntity.ok(util.writeExcel(orderExportVOList, "订单表数据")); + } + + @ApiOperation("获取订单表详细信息") + @PreAuthorize("@ss.hasPermi('oms:order:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("新增订单表") + @PreAuthorize("@ss.hasPermi('oms:order:add')") + @Log(title = "订单表", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody Order order) { + return ResponseEntity.ok(service.insert(order)); + } + + @ApiOperation("修改订单表") + @PreAuthorize("@ss.hasPermi('oms:order:edit')") + @Log(title = "订单表", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody Order order) { + return ResponseEntity.ok(service.update(order)); + } + + @ApiOperation("删除订单表") + @PreAuthorize("@ss.hasPermi('oms:order:remove')") + @Log(title = "订单表", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } + + @ApiOperation("添加备注") + @PreAuthorize("@ss.hasPermi('oms:order:note:add')") + @Log(title = "订单表", businessType = BusinessType.UPDATE) + @PostMapping("/merchantNote/add") + public ResponseEntity saveMerchantNote(@RequestBody Order order){ + return ResponseEntity.ok(service.saveMerchantNote(order)); + } + + @ApiOperation("管理后台订单发货") + @PreAuthorize("@ss.hasPermi('oms:order:delivery')") + @PostMapping("/deliverProduct") + public ResponseEntity delivery(@RequestBody DeliverProductRequest request){ + Long userId = SecurityUtils.getUserId(); + String redisKey = "oms_order_deliverProduct" + request.getOrderId(); + String redisValue = request.getOrderId() + "_" + System.currentTimeMillis(); + try{ + redisService.lock(redisKey, redisValue, 60); + return ResponseEntity.ok(service.deliverProduct(request, userId)); + }catch (Exception e){ + log.error("订单发货接口异常"); + throw new RuntimeException("发货失败"); + }finally { + try{ + redisService.unLock(redisKey, redisValue);; + }catch (Exception e){ + log.error("", e); + } + } + } + + @ApiOperation("管理后台订单完成") + @PreAuthorize("@ss.hasPermi('oms:order:delivery')") + @PostMapping("/completeOrder") + public ResponseEntity delivery(@RequestBody CompleteOrderRequest request){ + Long userId = SecurityUtils.getUserId(); + String redisKey = "oms_order_completeOrder" + request.getOrderId(); + String redisValue = request.getOrderId() + "_" + System.currentTimeMillis(); + try{ + redisService.lock(redisKey, redisValue, 60); + return ResponseEntity.ok(service.orderComplete(request.getOrderId(), userId)); + }catch (Exception e){ + log.error("订单完成接口异常", e); + throw new RuntimeException("订单完成失败"); + }finally { + try{ + redisService.unLock(redisKey, redisValue);; + }catch (Exception e){ + log.error("", e); + } + } + } + + @ApiOperation("订单日志") + @GetMapping("/log/{orderId}") + public ResponseEntity> log(@PathVariable Long orderId){ + return ResponseEntity.ok(service.log(orderId)); + } + + @ApiOperation("申请售后") + @PostMapping("/applyRefund") + public ResponseEntity applyRefund(@RequestBody ApplyRefundDTO applyRefundDTO){ + String redisKey = "h5_oms_order_applyRefund_" + applyRefundDTO.getOrderId(); + String redisValue = applyRefundDTO.getOrderId() + "_" + System.currentTimeMillis(); + try{ + redisService.lock(redisKey, redisValue, 60); + return ResponseEntity.ok(service.applyRefund(applyRefundDTO)); + }catch (Exception e){ + log.error("申请售后发生异常",e); + throw new RuntimeException(e.getMessage()); + }finally { + try { + redisService.unLock(redisKey, redisValue); + } catch (Exception e) { + log.error("", e); + } + } + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OrderDeliveryHistoryController.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OrderDeliveryHistoryController.java new file mode 100644 index 0000000..312d08d --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OrderDeliveryHistoryController.java @@ -0,0 +1,93 @@ +package com.cyl.manager.oms.controller; + +import java.util.List; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.manager.oms.convert.OrderDeliveryHistoryConvert; +import com.cyl.manager.oms.domain.OrderDeliveryHistory; +import com.cyl.manager.oms.pojo.query.OrderDeliveryHistoryQuery; +import com.cyl.manager.oms.service.OrderDeliveryHistoryService; +import com.cyl.manager.oms.pojo.vo.OrderDeliveryHistoryVO; +import com.ruoyi.common.utils.poi.ExcelUtil; +/** + * 订单发货记录Controller + * + * @author zcc + * @date 2022-12-01 + */ +@Api(description ="订单发货记录接口列表") +@RestController +@RequestMapping("/oms/orderDeliveryHistory") +public class OrderDeliveryHistoryController extends BaseController { + @Autowired + private OrderDeliveryHistoryService service; + @Autowired + private OrderDeliveryHistoryConvert convert; + + @ApiOperation("查询订单发货记录列表") + @PreAuthorize("@ss.hasPermi('oms:orderDeliveryHistory:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody OrderDeliveryHistoryQuery query, Pageable page) { + List list = service.selectList(query, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + @ApiOperation("导出订单发货记录列表") + @PreAuthorize("@ss.hasPermi('oms:orderDeliveryHistory:export')") + @Log(title = "订单发货记录", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(OrderDeliveryHistoryQuery query) { + List list = service.selectList(query, null); + ExcelUtil util = new ExcelUtil<>(OrderDeliveryHistoryVO.class); + return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "订单发货记录数据")); + } + + @ApiOperation("获取订单发货记录详细信息") + @PreAuthorize("@ss.hasPermi('oms:orderDeliveryHistory:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("新增订单发货记录") + @PreAuthorize("@ss.hasPermi('oms:orderDeliveryHistory:add')") + @Log(title = "订单发货记录", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody OrderDeliveryHistory orderDeliveryHistory) { + return ResponseEntity.ok(service.insert(orderDeliveryHistory)); + } + + @ApiOperation("修改订单发货记录") + @PreAuthorize("@ss.hasPermi('oms:orderDeliveryHistory:edit')") + @Log(title = "订单发货记录", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody OrderDeliveryHistory orderDeliveryHistory) { + return ResponseEntity.ok(service.update(orderDeliveryHistory)); + } + + @ApiOperation("删除订单发货记录") + @PreAuthorize("@ss.hasPermi('oms:orderDeliveryHistory:remove')") + @Log(title = "订单发货记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OrderItemController.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OrderItemController.java new file mode 100644 index 0000000..0943b77 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OrderItemController.java @@ -0,0 +1,93 @@ +package com.cyl.manager.oms.controller; + +import java.util.List; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.manager.oms.convert.OrderItemConvert; +import com.cyl.manager.oms.domain.OrderItem; +import com.cyl.manager.oms.pojo.query.OrderItemQuery; +import com.cyl.manager.oms.service.OrderItemService; +import com.cyl.manager.oms.pojo.vo.OrderItemVO; +import com.ruoyi.common.utils.poi.ExcelUtil; +/** + * 订单中所包含的商品Controller + * + * @author zcc + * @date 2022-12-01 + */ +@Api(description ="订单中所包含的商品接口列表") +@RestController +@RequestMapping("/oms/orderItem") +public class OrderItemController extends BaseController { + @Autowired + private OrderItemService service; + @Autowired + private OrderItemConvert convert; + + @ApiOperation("查询订单中所包含的商品列表") + @PreAuthorize("@ss.hasPermi('oms:orderItem:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody OrderItemQuery query, Pageable page) { + List list = service.selectList(query, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + @ApiOperation("导出订单中所包含的商品列表") + @PreAuthorize("@ss.hasPermi('oms:orderItem:export')") + @Log(title = "订单中所包含的商品", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(OrderItemQuery query) { + List list = service.selectList(query, null); + ExcelUtil util = new ExcelUtil<>(OrderItemVO.class); + return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "订单中所包含的商品数据")); + } + + @ApiOperation("获取订单中所包含的商品详细信息") + @PreAuthorize("@ss.hasPermi('oms:orderItem:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("新增订单中所包含的商品") + @PreAuthorize("@ss.hasPermi('oms:orderItem:add')") + @Log(title = "订单中所包含的商品", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody OrderItem orderItem) { + return ResponseEntity.ok(service.insert(orderItem)); + } + + @ApiOperation("修改订单中所包含的商品") + @PreAuthorize("@ss.hasPermi('oms:orderItem:edit')") + @Log(title = "订单中所包含的商品", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody OrderItem orderItem) { + return ResponseEntity.ok(service.update(orderItem)); + } + + @ApiOperation("删除订单中所包含的商品") + @PreAuthorize("@ss.hasPermi('oms:orderItem:remove')") + @Log(title = "订单中所包含的商品", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OrderOperateHistoryController.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OrderOperateHistoryController.java new file mode 100644 index 0000000..1496cd8 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OrderOperateHistoryController.java @@ -0,0 +1,93 @@ +package com.cyl.manager.oms.controller; + +import java.util.List; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.manager.oms.convert.OrderOperateHistoryConvert; +import com.cyl.manager.oms.domain.OrderOperateHistory; +import com.cyl.manager.oms.pojo.query.OrderOperateHistoryQuery; +import com.cyl.manager.oms.service.OrderOperateHistoryService; +import com.cyl.manager.oms.pojo.vo.OrderOperateHistoryVO; +import com.ruoyi.common.utils.poi.ExcelUtil; +/** + * 订单操作历史记录Controller + * + * @author zcc + * @date 2022-12-01 + */ +@Api(description ="订单操作历史记录接口列表") +@RestController +@RequestMapping("/oms/orderOperateHistory") +public class OrderOperateHistoryController extends BaseController { + @Autowired + private OrderOperateHistoryService service; + @Autowired + private OrderOperateHistoryConvert convert; + + @ApiOperation("查询订单操作历史记录列表") + @PreAuthorize("@ss.hasPermi('oms:orderOperateHistory:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody OrderOperateHistoryQuery query, Pageable page) { + List list = service.selectList(query, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + @ApiOperation("导出订单操作历史记录列表") + @PreAuthorize("@ss.hasPermi('oms:orderOperateHistory:export')") + @Log(title = "订单操作历史记录", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(OrderOperateHistoryQuery query) { + List list = service.selectList(query, null); + ExcelUtil util = new ExcelUtil<>(OrderOperateHistoryVO.class); + return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "订单操作历史记录数据")); + } + + @ApiOperation("获取订单操作历史记录详细信息") + @PreAuthorize("@ss.hasPermi('oms:orderOperateHistory:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("新增订单操作历史记录") + @PreAuthorize("@ss.hasPermi('oms:orderOperateHistory:add')") + @Log(title = "订单操作历史记录", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody OrderOperateHistory orderOperateHistory) { + return ResponseEntity.ok(service.insert(orderOperateHistory)); + } + + @ApiOperation("修改订单操作历史记录") + @PreAuthorize("@ss.hasPermi('oms:orderOperateHistory:edit')") + @Log(title = "订单操作历史记录", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody OrderOperateHistory orderOperateHistory) { + return ResponseEntity.ok(service.update(orderOperateHistory)); + } + + @ApiOperation("删除订单操作历史记录") + @PreAuthorize("@ss.hasPermi('oms:orderOperateHistory:remove')") + @Log(title = "订单操作历史记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/WechatPaymentHistoryController.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/WechatPaymentHistoryController.java new file mode 100644 index 0000000..e1736a2 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/WechatPaymentHistoryController.java @@ -0,0 +1,93 @@ +package com.cyl.manager.oms.controller; + +import java.util.List; + +import com.cyl.manager.oms.domain.WechatPaymentHistory; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.manager.oms.convert.WechatPaymentHistoryConvert; +import com.cyl.manager.oms.pojo.query.WechatPaymentHistoryQuery; +import com.cyl.manager.oms.service.WechatPaymentHistoryService; +import com.cyl.manager.oms.pojo.vo.WechatPaymentHistoryVO; +import com.ruoyi.common.utils.poi.ExcelUtil; +/** + * 微信订单表Controller + * + * @author zcc + * @date 2023-07-12 + */ +@Api(description ="微信订单表接口列表") +@RestController +@RequestMapping("/pms/omsWechatPaymentHistory") +public class WechatPaymentHistoryController extends BaseController { + @Autowired + private WechatPaymentHistoryService service; + @Autowired + private WechatPaymentHistoryConvert convert; + + @ApiOperation("查询微信订单表列表") + @PreAuthorize("@ss.hasPermi('pms:omsWechatPaymentHistory:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody WechatPaymentHistoryQuery query, Pageable page) { + List list = service.selectList(query, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + @ApiOperation("导出微信订单表列表") + @PreAuthorize("@ss.hasPermi('pms:omsWechatPaymentHistory:export')") + @Log(title = "微信订单表", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(WechatPaymentHistoryQuery query) { + List list = service.selectList(query, null); + ExcelUtil util = new ExcelUtil<>(WechatPaymentHistoryVO.class); + return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "微信订单表数据")); + } + + @ApiOperation("获取微信订单表详细信息") + @PreAuthorize("@ss.hasPermi('pms:omsWechatPaymentHistory:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("新增微信订单表") + @PreAuthorize("@ss.hasPermi('pms:omsWechatPaymentHistory:add')") + @Log(title = "微信订单表", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody WechatPaymentHistory wechatPaymentHistory) { + return ResponseEntity.ok(service.insert(wechatPaymentHistory)); + } + + @ApiOperation("修改微信订单表") + @PreAuthorize("@ss.hasPermi('pms:omsWechatPaymentHistory:edit')") + @Log(title = "微信订单表", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody WechatPaymentHistory wechatPaymentHistory) { + return ResponseEntity.ok(service.update(wechatPaymentHistory)); + } + + @ApiOperation("删除微信订单表") + @PreAuthorize("@ss.hasPermi('pms:omsWechatPaymentHistory:remove')") + @Log(title = "微信订单表", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/AftersaleConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/AftersaleConvert.java new file mode 100644 index 0000000..49646d4 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/AftersaleConvert.java @@ -0,0 +1,16 @@ +package com.cyl.manager.oms.convert; + +import org.mapstruct.Mapper; +import com.cyl.manager.oms.domain.Aftersale; +import com.cyl.manager.oms.pojo.vo.AftersaleVO; +import java.util.List; +/** + * 订单售后 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface AftersaleConvert { + + List dos2vos(List list); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/AftersaleItemConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/AftersaleItemConvert.java new file mode 100644 index 0000000..b26772b --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/AftersaleItemConvert.java @@ -0,0 +1,16 @@ +package com.cyl.manager.oms.convert; + +import org.mapstruct.Mapper; +import com.cyl.manager.oms.domain.AftersaleItem; +import com.cyl.manager.oms.pojo.vo.AftersaleItemVO; +import java.util.List; +/** + * 订单售后 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface AftersaleItemConvert { + + List dos2vos(List list); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/OrderConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/OrderConvert.java new file mode 100644 index 0000000..2c81365 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/OrderConvert.java @@ -0,0 +1,24 @@ +package com.cyl.manager.oms.convert; + +import com.cyl.manager.oms.pojo.vo.ManagerOrderVO; +import com.cyl.manager.oms.pojo.vo.OrderExportVO; +import org.mapstruct.Mapper; +import com.cyl.manager.oms.domain.Order; +import com.cyl.manager.oms.pojo.vo.OrderVO; +import java.util.List; +/** + * 订单表 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface OrderConvert { + + List dos2vos(List list); + + List vos2vos(List list); + + OrderVO do2vo(Order order); + + OrderExportVO vo2vo(ManagerOrderVO orderVO); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/OrderDeliveryHistoryConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/OrderDeliveryHistoryConvert.java new file mode 100644 index 0000000..d7aa110 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/OrderDeliveryHistoryConvert.java @@ -0,0 +1,16 @@ +package com.cyl.manager.oms.convert; + +import org.mapstruct.Mapper; +import com.cyl.manager.oms.domain.OrderDeliveryHistory; +import com.cyl.manager.oms.pojo.vo.OrderDeliveryHistoryVO; +import java.util.List; +/** + * 订单发货记录 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface OrderDeliveryHistoryConvert { + + List dos2vos(List list); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/OrderItemConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/OrderItemConvert.java new file mode 100644 index 0000000..9b94875 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/OrderItemConvert.java @@ -0,0 +1,20 @@ +package com.cyl.manager.oms.convert; + +import com.cyl.manager.oms.pojo.vo.ManagerOrderProductExportVO; +import com.cyl.manager.oms.pojo.vo.ManagerOrderProductVO; +import org.mapstruct.Mapper; +import com.cyl.manager.oms.domain.OrderItem; +import com.cyl.manager.oms.pojo.vo.OrderItemVO; +import java.util.List; +/** + * 订单中所包含的商品 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface OrderItemConvert { + + List dos2vos(List list); + + ManagerOrderProductExportVO vo2vo(ManagerOrderProductVO managerOrderProductVO); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/OrderOperateHistoryConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/OrderOperateHistoryConvert.java new file mode 100644 index 0000000..f1ee3a2 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/OrderOperateHistoryConvert.java @@ -0,0 +1,16 @@ +package com.cyl.manager.oms.convert; + +import org.mapstruct.Mapper; +import com.cyl.manager.oms.domain.OrderOperateHistory; +import com.cyl.manager.oms.pojo.vo.OrderOperateHistoryVO; +import java.util.List; +/** + * 订单操作历史记录 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface OrderOperateHistoryConvert { + + List dos2vos(List list); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/WechatPaymentHistoryConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/WechatPaymentHistoryConvert.java new file mode 100644 index 0000000..c4ca162 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/WechatPaymentHistoryConvert.java @@ -0,0 +1,16 @@ +package com.cyl.manager.oms.convert; + +import org.mapstruct.Mapper; +import com.cyl.manager.oms.domain.WechatPaymentHistory; +import com.cyl.manager.oms.pojo.vo.WechatPaymentHistoryVO; +import java.util.List; +/** + * 微信订单表 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface WechatPaymentHistoryConvert { + + List dos2vos(List list); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/Aftersale.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/Aftersale.java new file mode 100644 index 0000000..ff88449 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/Aftersale.java @@ -0,0 +1,77 @@ +package com.cyl.manager.oms.domain; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 订单售后对象 oms_aftersale + * + * @author zcc + */ +@ApiModel(description="订单售后对象") +@Data +@TableName("oms_aftersale") +public class Aftersale extends BaseAudit { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + @ApiModelProperty("MEMBER_ID") + @Excel(name = "MEMBER_ID") + private Long memberId; + + @ApiModelProperty("订单id") + @Excel(name = "订单id") + private Long orderId; + + @ApiModelProperty("退款金额") + @Excel(name = "退款金额") + private BigDecimal returnAmount; + + @ApiModelProperty("售后类型:1:退款,2:退货退款") + @Excel(name = "售后类型:1:退款,2:退货退款") + private Integer type; + + @ApiModelProperty("申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝") + @Excel(name = "申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝") + private Integer status; + + @ApiModelProperty("处理时间") + @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime handleTime; + + @ApiModelProperty("退货数量") + @Excel(name = "退货数量") + private Integer quantity; + + @ApiModelProperty("原因") + @Excel(name = "原因") + private String reason; + + @ApiModelProperty("描述") + @Excel(name = "描述") + private String description; + + @ApiModelProperty("凭证图片,以逗号隔开") + @Excel(name = "凭证图片,以逗号隔开") + private String proofPics; + + @ApiModelProperty("处理备注") + @Excel(name = "处理备注") + private String handleNote; + + @ApiModelProperty("处理人员") + @Excel(name = "处理人员") + private String handleMan; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/AftersaleItem.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/AftersaleItem.java new file mode 100644 index 0000000..cbc9ac5 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/AftersaleItem.java @@ -0,0 +1,48 @@ +package com.cyl.manager.oms.domain; + +import java.math.BigDecimal; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 订单售后对象 oms_aftersale_item + * + * @author zcc + */ +@ApiModel(description="订单售后对象") +@Data +@TableName("oms_aftersale_item") +public class AftersaleItem extends BaseAudit { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("MEMBER_ID") + @Excel(name = "MEMBER_ID") + private Long memberId; + + @ApiModelProperty("售后单id") + @Excel(name = "售后单id") + private Long aftersaleId; + + @ApiModelProperty("订单id") + @Excel(name = "订单id") + private Long orderId; + + @ApiModelProperty("子订单id") + @Excel(name = "子订单id") + private Long orderItemId; + + @ApiModelProperty("退款金额") + @Excel(name = "退款金额") + private BigDecimal returnAmount; + + @ApiModelProperty("退货数量") + @Excel(name = "退货数量") + private Integer quantity; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/OmsOrderService.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/OmsOrderService.java new file mode 100644 index 0000000..18cd7a3 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/OmsOrderService.java @@ -0,0 +1,59 @@ + +package com.cyl.manager.oms.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; + +import java.time.LocalDateTime; +/** + * 预约订单服务详细信息记录表对象 oms_order_service + * + * @author daixiande + */ +@Data +public class OmsOrderService extends BaseAudit { + private static final long serialVersionUID = 1L; + + /** ID */ + private Long id; + + /** 订单id */ + @Excel(name = "订单id") + private Long orderId; + + /** 额外pet信息,json */ + @Excel(name = "额外pet信息,json") + private String pet; + + /** 服务频率 */ + @Excel(name = "服务频率") + private String serviceFrequency; + + /** 服务日期 */ + @Excel(name = "服务日期") + private String serviceDate; + + /** 第一次服务时间 */ + @Excel(name = "第一次服务时间") + private String serviceTimeFirst; + + /** 第二次服务时间 */ + @Excel(name = "第二次服务时间") + private String serviceTimeSecond; + + /** 删除标识 */ + private Integer delFlag; + + + @Excel(name = "宠物 ID") + private Integer petId; + + @Excel(name = "期望服务时间") + private String expectServiceTime; + + @Excel(name = "专业喂养次数") + private Integer feedCount; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/Order.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/Order.java new file mode 100644 index 0000000..e9cabd8 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/Order.java @@ -0,0 +1,168 @@ +package com.cyl.manager.oms.domain; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 订单表对象 oms_order + * + * @author zcc + */ +@ApiModel(description="订单表对象") +@Data +@TableName("oms_order") +public class Order extends BaseAudit { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("订单id") + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + @ApiModelProperty("支付id") + private Long payId; + + @ApiModelProperty("订单编号") + @Excel(name = "订单编号") + private String orderSn; + + @ApiModelProperty("MEMBER_ID") + @Excel(name = "MEMBER_ID") + private Long memberId; + + @ApiModelProperty("用户帐号") + @Excel(name = "用户帐号") + private String memberUsername; + + @ApiModelProperty("订单总金额") + @Excel(name = "订单总金额") + private BigDecimal totalAmount; + + @ApiModelProperty("采购价") + @Excel(name = "采购价") + private BigDecimal purchasePrice; + + @ApiModelProperty("应付金额(实际支付金额)") + @Excel(name = "应付金额", readConverterExp = "实=际支付金额") + private BigDecimal payAmount; + + @ApiModelProperty("运费金额") + @Excel(name = "运费金额") + private BigDecimal freightAmount; + + @ApiModelProperty("支付方式:0->未支付;1->支付宝;2->微信") + @Excel(name = "支付方式:0->未支付;1->支付宝;2->微信") + private Integer payType; + + @ApiModelProperty("订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单") + @Excel(name = "订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单") + private Integer status; + + @ApiModelProperty("退款状态,枚举值:1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功") + @Excel(name = "退款状态,枚举值:1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功") + private Integer aftersaleStatus; + + @ApiModelProperty("物流公司(配送方式)") + @Excel(name = "物流公司(配送方式)") + private String deliveryCompany; + + @ApiModelProperty("物流单号") + @Excel(name = "物流单号") + private String deliverySn; + + @ApiModelProperty("自动确认时间(天)") + @Excel(name = "自动确认时间", readConverterExp = "天=") + private Integer autoConfirmDay; + + @ApiModelProperty("收货人姓名") + @Excel(name = "收货人姓名") + private String receiverName; + + @ApiModelProperty("收货人电话") + @Excel(name = "收货人电话") + private String receiverPhone; + + @ApiModelProperty("收货人邮编") + @Excel(name = "收货人邮编") + private String receiverPostCode; + + @ApiModelProperty("省份/直辖市") + @Excel(name = "省份/直辖市") + private String receiverProvince; + + @ApiModelProperty("城市") + @Excel(name = "城市") + private String receiverCity; + + @ApiModelProperty("区") + @Excel(name = "区") + private String receiverDistrict; + + @ApiModelProperty("省份/直辖市id") + @Excel(name = "省份/直辖市id") + private Long receiverProvinceId; + + @ApiModelProperty("城市id") + @Excel(name = "城市id") + private Long receiverCityId; + + @ApiModelProperty("区id") + @Excel(name = "区id") + private Long receiverDistrictId; + + @ApiModelProperty("详细地址") + @Excel(name = "详细地址") + private String receiverDetailAddress; + + @ApiModelProperty("订单备注") + @Excel(name = "订单备注") + private String note; + + @ApiModelProperty("商家备注") + @Excel(name = "商家备注") + private String merchantNote; + + @ApiModelProperty("确认收货状态:0->未确认;1->已确认") + @Excel(name = "确认收货状态:0->未确认;1->已确认") + private Integer confirmStatus; + + @ApiModelProperty("删除状态:0->未删除;1->已删除") + @Excel(name = "删除状态:0->未删除;1->已删除") + private Integer deleteStatus; + + @ApiModelProperty("支付时间") + @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime paymentTime; + + @ApiModelProperty("发货时间") + @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime deliveryTime; + + @ApiModelProperty("确认收货时间") + @Excel(name = "确认收货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime receiveTime; + + @ApiModelProperty("是否提前熟悉") + @Excel(name = "是否提前熟悉", width = 30) + private Boolean needPreFamiliarize; + + @ApiModelProperty("优惠券") + @Excel(name = "优惠券") + private Integer wechatMemberCouponId; + + @ApiModelProperty("下单方式") + @Excel(name = "下单方式") + private String orderMethod; + + @ApiModelProperty("伴宠师ID") + @Excel(name = "伴宠师ID") + private Long servicerId; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/OrderDeliveryHistory.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/OrderDeliveryHistory.java new file mode 100644 index 0000000..efefcca --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/OrderDeliveryHistory.java @@ -0,0 +1,35 @@ +package com.cyl.manager.oms.domain; + +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 订单发货记录对象 oms_order_delivery_history + * + * @author zcc + */ +@ApiModel(description="订单发货记录对象") +@Data +@TableName("oms_order_delivery_history") +public class OrderDeliveryHistory extends BaseAudit { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("订单id") + @Excel(name = "订单id") + private Long orderId; + + @ApiModelProperty("物流公司(配送方式)") + @Excel(name = "物流公司(配送方式)") + private String deliveryCompany; + + @ApiModelProperty("物流单号") + @Excel(name = "物流单号") + private String deliverySn; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/OrderItem.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/OrderItem.java new file mode 100644 index 0000000..4920b97 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/OrderItem.java @@ -0,0 +1,91 @@ + +package com.cyl.manager.oms.domain; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 订单中所包含的商品对象 oms_order_item + * + * @author zcc + */ +@ApiModel(description="订单中所包含的商品对象") +@Data +@TableName("oms_order_item") +public class OrderItem extends BaseAudit { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + @ApiModelProperty("订单id") + @Excel(name = "订单id") + private Long orderId; + + @ApiModelProperty("orderServiceId") + @Excel(name = "orderServiceId") + private Long orderServiceId; + + + @ApiModelProperty("PRODUCT_ID") + @Excel(name = "PRODUCT_ID") + private Long productId; + + @ApiModelProperty("商品编码") + @Excel(name = "商品编码") + private String outProductId; + + @ApiModelProperty("商品sku id") + @Excel(name = "商品sku id") + private Long skuId; + + @ApiModelProperty("sku编码") + @Excel(name = "sku编码") + private String outSkuId; + + @ApiModelProperty("商品快照id") + @Excel(name = "商品快照id") + private Long productSnapshotId; + + @ApiModelProperty("sku快照id") + @Excel(name = "sku快照id") + private Long skuSnapshotId; + + @ApiModelProperty("展示图片") + @Excel(name = "展示图片") + private String pic; + + @ApiModelProperty("PRODUCT_NAME") + @Excel(name = "PRODUCT_NAME") + private String productName; + + @ApiModelProperty("销售价格") + @Excel(name = "销售价格") + private BigDecimal salePrice; + + @ApiModelProperty("采购价") + @Excel(name = "采购价") + private BigDecimal purchasePrice; + + @ApiModelProperty("购买数量") + @Excel(name = "购买数量") + private Integer quantity; + + @ApiModelProperty("商品分类id") + @Excel(name = "商品分类id") + private Long productCategoryId; + + @ApiModelProperty("商品sku属性:[{\"key\":\"颜色\",\"value\":\"颜色\"},{\"key\":\"容量\",\"value\":\"4G\"}]") + @Excel(name = "商品sku属性:[{\"key\":\"颜色\",\"value\":\"颜色\"},{\"key\":\"容量\",\"value\":\"4G\"}]") + private String spData; + +} + diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/OrderOperateHistory.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/OrderOperateHistory.java new file mode 100644 index 0000000..fe18fc6 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/OrderOperateHistory.java @@ -0,0 +1,43 @@ +package com.cyl.manager.oms.domain; + +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 订单操作历史记录对象 oms_order_operate_history + * + * @author zcc + */ +@ApiModel(description="订单操作历史记录对象") +@Data +@TableName("oms_order_operate_history") +public class OrderOperateHistory extends BaseAudit { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("订单id") + @Excel(name = "订单id") + private Long orderId; + + @ApiModelProperty("订单号") + @Excel(name = "订单号") + private String orderSn; + + @ApiModelProperty("操作人:用户;系统;后台管理员") + @Excel(name = "操作人:用户;系统;后台管理员") + private String operateMan; + + @ApiModelProperty("订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单") + @Excel(name = "订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单") + private Integer orderStatus; + + @ApiModelProperty("备注") + @Excel(name = "备注") + private String note; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/WechatPaymentHistory.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/WechatPaymentHistory.java new file mode 100644 index 0000000..2327111 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/WechatPaymentHistory.java @@ -0,0 +1,72 @@ +package com.cyl.manager.oms.domain; + +import java.math.BigDecimal; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 微信订单表对象 oms_wechat_payment_history + * + * @author zcc + */ +@ApiModel(description="微信订单表对象") +@Data +@TableName("oms_wechat_payment_history") +public class WechatPaymentHistory extends BaseAudit { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("payment_id") + @Excel(name = "payment_id") + private String paymentId; + + @ApiModelProperty("用户 ID") + @Excel(name = "用户 ID") + private Long memberId; + + @ApiModelProperty("OPENID") + @Excel(name = "OPENID") + private String openid; + + @ApiModelProperty("真实姓名,提现需要") + @Excel(name = "真实姓名,提现需要") + private String realName; + + @ApiModelProperty("标题|商品名称") + @Excel(name = "标题|商品名称") + private String title; + + @ApiModelProperty("订单号 支付时是payId 其他为orderId") + @Excel(name = "订单号 支付时是payId 其他为orderId") + private Long orderId; + + @ApiModelProperty("金额,单位分") + @Excel(name = "金额,单位分") + private BigDecimal money; + + @ApiModelProperty("交易类型(1为支付 2为提现 3为退款)") + @Excel(name = "交易类型", readConverterExp = "1=为支付,2=为提现,3=为退款") + private Integer opType; + + @ApiModelProperty("状态(0:未完成交易 1:完成关键交易)") + @Excel(name = "状态", readConverterExp = "0=:未完成交易,1=:完成关键交易") + private Integer paymentStatus; + + @ApiModelProperty("备注") + @Excel(name = "备注") + private String remark; + + @ApiModelProperty("附加数据") + @Excel(name = "附加数据") + private String attach; + + @ApiModelProperty("响应内容") + @Excel(name = "响应内容") + private String responseBody; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/AftersaleItemMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/AftersaleItemMapper.java new file mode 100644 index 0000000..0bd640e --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/AftersaleItemMapper.java @@ -0,0 +1,24 @@ +package com.cyl.manager.oms.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.oms.domain.AftersaleItem; +import org.apache.ibatis.annotations.Param; + +/** + * 订单售后Mapper接口 + * + * @author zcc + */ +public interface AftersaleItemMapper extends BaseMapper { + /** + * 查询订单售后列表 + * + * @param aftersaleItem 订单售后 + * @return 订单售后集合 + */ + List selectByEntity(AftersaleItem aftersaleItem); + + Integer insertBatch(@Param("list") List list); + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/AftersaleMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/AftersaleMapper.java new file mode 100644 index 0000000..540f99b --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/AftersaleMapper.java @@ -0,0 +1,31 @@ +package com.cyl.manager.oms.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.oms.domain.Aftersale; +import com.cyl.manager.oms.domain.AftersaleItem; +import com.cyl.manager.oms.pojo.request.ManagerAftersaleOrderRequest; +import com.cyl.manager.oms.pojo.vo.ManagerRefundOrderVO; +import com.cyl.manager.statistics.pojo.vo.OrderAndAftersaleStatisticsVO; +import org.apache.ibatis.annotations.Param; + +/** + * 订单售后Mapper接口 + * + * @author zcc + */ +public interface AftersaleMapper extends BaseMapper { + /** + * 查询订单售后列表 + * + * @param aftersale 订单售后 + * @return 订单售后集合 + */ + List selectByEntity(Aftersale aftersale); + + List selectManagerRefundOrder(ManagerAftersaleOrderRequest managerAftersaleOrderPageRequest); + + int countByMemberId(Long memberId); + + OrderAndAftersaleStatisticsVO statPendingAndProcessing(); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OmsOrderServiceMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OmsOrderServiceMapper.java new file mode 100644 index 0000000..96b565b --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OmsOrderServiceMapper.java @@ -0,0 +1,69 @@ +package com.cyl.manager.oms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.oms.domain.OmsOrderService; + +import java.util.List; + +/** + * 预约订单服务详细信息记录表Mapper接口 + * + * @author daixiande + */ +public interface OmsOrderServiceMapper extends BaseMapper { + /** + * 查询预约订单服务详细信息记录表 + * + * @param id 预约订单服务详细信息记录表主键 + * @return 预约订单服务详细信息记录表 + */ + OmsOrderService selectById(Long id); + + /** + * 查询预约订单服务详细信息记录表列表 + * + * @param omsOrderService 预约订单服务详细信息记录表 + * @return 预约订单服务详细信息记录表集合 + */ + List selectList(OmsOrderService omsOrderService); + + /** + * 新增预约订单服务详细信息记录表 + * + * @param omsOrderService 预约订单服务详细信息记录表 + * @return 结果 + */ + int insert(OmsOrderService omsOrderService); + + /** + * 修改预约订单服务详细信息记录表 + * + * @param omsOrderService 预约订单服务详细信息记录表 + * @return 结果 + */ + int update(OmsOrderService omsOrderService); + + /** + * 删除预约订单服务详细信息记录表 + * + * @param id 预约订单服务详细信息记录表主键 + * @return 结果 + */ + int deleteById(Long id); + + /** + * 批量删除预约订单服务详细信息记录表 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteByIds(Long[] ids); + + /** + * 更新或插入预约订单服务详细信息记录表 + * + * @param omsOrderService 预约订单服务详细信息记录表 + * @return 结果 + */ + int insertOrUpdate(OmsOrderService omsOrderService); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderDeliveryHistoryMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderDeliveryHistoryMapper.java new file mode 100644 index 0000000..a4003f0 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderDeliveryHistoryMapper.java @@ -0,0 +1,20 @@ +package com.cyl.manager.oms.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.oms.domain.OrderDeliveryHistory; + +/** + * 订单发货记录Mapper接口 + * + * @author zcc + */ +public interface OrderDeliveryHistoryMapper extends BaseMapper { + /** + * 查询订单发货记录列表 + * + * @param orderDeliveryHistory 订单发货记录 + * @return 订单发货记录集合 + */ + List selectByEntity(OrderDeliveryHistory orderDeliveryHistory); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderItemMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderItemMapper.java new file mode 100644 index 0000000..f8ee2c4 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderItemMapper.java @@ -0,0 +1,20 @@ +package com.cyl.manager.oms.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.oms.domain.OrderItem; + +/** + * 订单中所包含的商品Mapper接口 + * + * @author zcc + */ +public interface OrderItemMapper extends BaseMapper { + /** + * 查询订单中所包含的商品列表 + * + * @param orderItem 订单中所包含的商品 + * @return 订单中所包含的商品集合 + */ + List selectByEntity(OrderItem orderItem); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderMapper.java new file mode 100644 index 0000000..1ec6bfd --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderMapper.java @@ -0,0 +1,58 @@ +package com.cyl.manager.oms.mapper; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.h5.pojo.vo.CountOrderVO; +import com.cyl.h5.pojo.vo.H5OrderVO; +import com.cyl.manager.aws.domain.SystemStatistics; +import com.cyl.manager.oms.domain.Order; +import com.cyl.manager.oms.pojo.request.ManagerOrderQueryRequest; +import com.cyl.manager.oms.pojo.vo.ManagerOrderVO; +import com.cyl.manager.statistics.pojo.vo.OrderAndAftersaleStatisticsVO; +import com.cyl.manager.ums.pojo.vo.MemberDataStatisticsVO; +import org.apache.ibatis.annotations.Param; + +/** + * 订单表Mapper接口 + * + * @author zcc + */ +public interface OrderMapper extends BaseMapper { + /** + * 查询订单表列表 + * + * @param order 订单表 + * @return 订单表集合 + */ + List selectByEntity(Order order); + + List selectManagerOrderPage(ManagerOrderQueryRequest request); + + List orderPage(@Param("status") Integer status, @Param("memberId")Long memberId); + + List orderPage2(@Param("status") List status, @Param("memberId")Long memberId); + + H5OrderVO selectOrderDetail(Long orderId); + + CountOrderVO countByStatusAndMemberId(Long memberId); + + Integer cancelBatch(@Param("list") List orderList); + + MemberDataStatisticsVO statOrderCountAndAmount(Long memberId); + + + Integer statWaitDelivered(); + + OrderAndAftersaleStatisticsVO statTodayData(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime); + + SystemStatistics statNewAndDeal(@Param("startTime") LocalDateTime startTime,@Param("endTime") LocalDateTime endTime); + + int statDealMember(@Param("startTime") LocalDateTime startTime,@Param("endTime") LocalDateTime endTime); + + List getAllValidOrder(); + + List getOrdersByMemberId(@Param("memberId") Long memberId, @Param("startDate") Date startDate, @Param("endDate") Date endDate); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderOperateHistoryMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderOperateHistoryMapper.java new file mode 100644 index 0000000..e17ece1 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderOperateHistoryMapper.java @@ -0,0 +1,20 @@ +package com.cyl.manager.oms.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.oms.domain.OrderOperateHistory; + +/** + * 订单操作历史记录Mapper接口 + * + * @author zcc + */ +public interface OrderOperateHistoryMapper extends BaseMapper { + /** + * 查询订单操作历史记录列表 + * + * @param orderOperateHistory 订单操作历史记录 + * @return 订单操作历史记录集合 + */ + List selectByEntity(OrderOperateHistory orderOperateHistory); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/WechatPaymentHistoryMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/WechatPaymentHistoryMapper.java new file mode 100644 index 0000000..a19b030 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/WechatPaymentHistoryMapper.java @@ -0,0 +1,20 @@ +package com.cyl.manager.oms.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.oms.domain.WechatPaymentHistory; + +/** + * 微信订单表Mapper接口 + * + * @author zcc + */ +public interface WechatPaymentHistoryMapper extends BaseMapper { + /** + * 查询微信订单表列表 + * + * @param wechatPaymentHistory 微信订单表 + * @return 微信订单表集合 + */ + List selectByEntity(WechatPaymentHistory wechatPaymentHistory); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/dto/SaveOrderItemDTO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/dto/SaveOrderItemDTO.java new file mode 100644 index 0000000..0d99ae8 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/dto/SaveOrderItemDTO.java @@ -0,0 +1,4 @@ +package com.cyl.manager.oms.pojo.dto; + +public class SaveOrderItemDTO { +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/AftersaleItemQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/AftersaleItemQuery.java new file mode 100644 index 0000000..a1359b9 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/AftersaleItemQuery.java @@ -0,0 +1,31 @@ +package com.cyl.manager.oms.pojo.query; + +import java.math.BigDecimal; +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 订单售后 查询 对象 + * + * @author zcc + */ +@ApiModel(description="订单售后 查询 对象") +@Data +public class AftersaleItemQuery { + @ApiModelProperty("MEMBER_ID 精确匹配") + private Long memberId; + + @ApiModelProperty("订单id 精确匹配") + private Long orderId; + + @ApiModelProperty("子订单id 精确匹配") + private Long orderItemId; + + @ApiModelProperty("退款金额 精确匹配") + private BigDecimal returnAmount; + + @ApiModelProperty("退货数量 精确匹配") + private Integer quantity; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/AftersaleQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/AftersaleQuery.java new file mode 100644 index 0000000..f9c4183 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/AftersaleQuery.java @@ -0,0 +1,53 @@ +package com.cyl.manager.oms.pojo.query; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 订单售后 查询 对象 + * + * @author zcc + */ +@ApiModel(description="订单售后 查询 对象") +@Data +public class AftersaleQuery { + @ApiModelProperty("MEMBER_ID 精确匹配") + private Long memberId; + + @ApiModelProperty("订单id 精确匹配") + private Long orderId; + + @ApiModelProperty("退款金额 精确匹配") + private BigDecimal returnAmount; + + @ApiModelProperty("售后类型:1:退款,2:退货退款 精确匹配") + private Integer type; + + @ApiModelProperty("申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝 精确匹配") + private Integer status; + + @ApiModelProperty("处理时间 精确匹配") + private LocalDateTime handleTime; + + @ApiModelProperty("退货数量 精确匹配") + private Integer quantity; + + @ApiModelProperty("原因 精确匹配") + private String reason; + + @ApiModelProperty("描述 精确匹配") + private String description; + + @ApiModelProperty("凭证图片,以逗号隔开 精确匹配") + private String proofPics; + + @ApiModelProperty("处理备注 精确匹配") + private String handleNote; + + @ApiModelProperty("处理人员 精确匹配") + private String handleMan; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/OrderDeliveryHistoryQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/OrderDeliveryHistoryQuery.java new file mode 100644 index 0000000..94ca109 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/OrderDeliveryHistoryQuery.java @@ -0,0 +1,24 @@ +package com.cyl.manager.oms.pojo.query; + +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 订单发货记录 查询 对象 + * + * @author zcc + */ +@ApiModel(description="订单发货记录 查询 对象") +@Data +public class OrderDeliveryHistoryQuery { + @ApiModelProperty("订单id 精确匹配") + private Long orderId; + + @ApiModelProperty("物流公司 精确匹配") + private String deliveryCompany; + + @ApiModelProperty("物流单号 精确匹配") + private String deliverySn; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/OrderItemQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/OrderItemQuery.java new file mode 100644 index 0000000..52c5dbe --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/OrderItemQuery.java @@ -0,0 +1,58 @@ +package com.cyl.manager.oms.pojo.query; + +import java.math.BigDecimal; +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 订单中所包含的商品 查询 对象 + * + * @author zcc + */ +@ApiModel(description="订单中所包含的商品 查询 对象") +@Data +public class OrderItemQuery { + @ApiModelProperty("订单id 精确匹配") + private Long orderId; + + @ApiModelProperty("PRODUCT_ID 精确匹配") + private Long productId; + + @ApiModelProperty("商品编码 精确匹配") + private String outProductId; + + @ApiModelProperty("商品sku id 精确匹配") + private Long skuId; + + @ApiModelProperty("sku编码 精确匹配") + private String outSkuId; + + @ApiModelProperty("商品快照id 精确匹配") + private Long productSnapshotId; + + @ApiModelProperty("sku快照id 精确匹配") + private Long skuSnapshotId; + + @ApiModelProperty("展示图片 精确匹配") + private String pic; + + @ApiModelProperty("PRODUCT_NAME 精确匹配") + private String productNameLike; + + @ApiModelProperty("销售价格 精确匹配") + private BigDecimal salePrice; + + @ApiModelProperty("采购价 精确匹配") + private BigDecimal purchasePrice; + + @ApiModelProperty("购买数量 精确匹配") + private Integer quantity; + + @ApiModelProperty("商品分类id 精确匹配") + private Long productCategoryId; + + @ApiModelProperty("商品sku属性:[{\"key\":\"颜色\",\"value\":\"颜色\"},{\"key\":\"容量\",\"value\":\"4G\"}] 精确匹配") + private String spData; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/OrderOperateHistoryQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/OrderOperateHistoryQuery.java new file mode 100644 index 0000000..90c9a86 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/OrderOperateHistoryQuery.java @@ -0,0 +1,27 @@ +package com.cyl.manager.oms.pojo.query; + +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 订单操作历史记录 查询 对象 + * + * @author zcc + */ +@ApiModel(description="订单操作历史记录 查询 对象") +@Data +public class OrderOperateHistoryQuery { + @ApiModelProperty("订单号 精确匹配") + private String orderSn; + + @ApiModelProperty("操作人:用户;系统;后台管理员 精确匹配") + private String operateMan; + + @ApiModelProperty("订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 精确匹配") + private Integer orderStatus; + + @ApiModelProperty("备注 精确匹配") + private String note; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/OrderQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/OrderQuery.java new file mode 100644 index 0000000..09d9cbb --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/OrderQuery.java @@ -0,0 +1,106 @@ +package com.cyl.manager.oms.pojo.query; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 订单表 查询 对象 + * + * @author zcc + */ +@ApiModel(description="订单表 查询 对象") +@Data +public class OrderQuery { + @ApiModelProperty("MEMBER_ID 精确匹配") + private Long memberId; + + @ApiModelProperty("用户帐号 精确匹配") + private String memberUsernameLike; + + @ApiModelProperty("订单总金额 精确匹配") + private BigDecimal totalAmount; + + @ApiModelProperty("采购价 精确匹配") + private BigDecimal purchasePrice; + + @ApiModelProperty("应付金额(实际支付金额) 精确匹配") + private BigDecimal payAmount; + + @ApiModelProperty("运费金额 精确匹配") + private BigDecimal freightAmount; + + @ApiModelProperty("支付方式:0->未支付;1->支付宝;2->微信 精确匹配") + private Integer payType; + + @ApiModelProperty("订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 精确匹配") + private Integer status; + + @ApiModelProperty("退款状态,枚举值:1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功 精确匹配") + private Integer aftersaleStatus; + + @ApiModelProperty("物流公司 精确匹配") + private String deliveryCompany; + + @ApiModelProperty("物流单号 精确匹配") + private String deliverySn; + + @ApiModelProperty("自动确认时间(天) 精确匹配") + private Integer autoConfirmDay; + + @ApiModelProperty("收货人姓名 精确匹配") + private String receiverNameLike; + + @ApiModelProperty("收货人电话 精确匹配") + private String receiverPhone; + + @ApiModelProperty("收货人邮编 精确匹配") + private String receiverPostCode; + + @ApiModelProperty("省份/直辖市 精确匹配") + private String receiverProvince; + + @ApiModelProperty("城市 精确匹配") + private String receiverCity; + + @ApiModelProperty("区 精确匹配") + private String receiverDistrict; + + @ApiModelProperty("省份/直辖市id 精确匹配") + private Long receiverProvinceId; + + @ApiModelProperty("城市id 精确匹配") + private Long receiverCityId; + + @ApiModelProperty("区id 精确匹配") + private Long receiverDistrictId; + + @ApiModelProperty("详细地址 精确匹配") + private String receiverDetailAddress; + + @ApiModelProperty("订单备注 精确匹配") + private String note; + + @ApiModelProperty("确认收货状态:0->未确认;1->已确认 精确匹配") + private Integer confirmStatus; + + @ApiModelProperty("删除状态:0->未删除;1->已删除 精确匹配") + private Integer deleteStatus; + + @ApiModelProperty("支付时间 精确匹配") + private LocalDateTime paymentTime; + + @ApiModelProperty("发货时间 精确匹配") + private LocalDateTime deliveryTime; + + @ApiModelProperty("确认收货时间 精确匹配") + private LocalDateTime receiveTime; + + @ApiModelProperty("创建订单开始时间") + private LocalDateTime startTime; + + @ApiModelProperty("创建订单结束时间") + private LocalDateTime endTime; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/OrderServiceQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/OrderServiceQuery.java new file mode 100644 index 0000000..9d61e8e --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/OrderServiceQuery.java @@ -0,0 +1,39 @@ +package com.cyl.manager.oms.pojo.query; + +import com.cyl.manager.oms.service.OrderService; +import com.ruoyi.common.core.domain.IQuery; +import lombok.Setter; + +import java.util.HashMap; +import java.util.Map; + +/** + * 预约订单服务详细信息记录表 查询 对象 + * + * @author daixiande + */ +@Setter +public class OrderServiceQuery extends OrderService implements IQuery { + /** + * 搜索值 + */ + private String searchValue; + + /** + * 请求参数 + */ + private Map params; + + @Override + public String getSearchValue() { + return this.searchValue; + } + + @Override + public Map getParams() { + if (params == null) { + params = new HashMap<>(); + } + return params; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/WechatPaymentHistoryQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/WechatPaymentHistoryQuery.java new file mode 100644 index 0000000..ec63ab8 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/query/WechatPaymentHistoryQuery.java @@ -0,0 +1,49 @@ +package com.cyl.manager.oms.pojo.query; + +import java.math.BigDecimal; +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 微信订单表 查询 对象 + * + * @author zcc + */ +@ApiModel(description="微信订单表 查询 对象") +@Data +public class WechatPaymentHistoryQuery { + @ApiModelProperty("payment_id 精确匹配") + private String paymentId; + + @ApiModelProperty("用户 ID 精确匹配") + private Long memberId; + + @ApiModelProperty("OPENID 精确匹配") + private String openid; + + @ApiModelProperty("真实姓名,提现需要 精确匹配") + private String realNameLike; + + @ApiModelProperty("标题|商品名称 精确匹配") + private String title; + + @ApiModelProperty("订单号 支付时是payId 其他为orderId 精确匹配") + private Long orderId; + + @ApiModelProperty("金额,单位分 精确匹配") + private BigDecimal money; + + @ApiModelProperty("交易类型(1为支付 2为提现 3为退款) 精确匹配") + private Integer opType; + + @ApiModelProperty("状态(0:未完成交易 1:完成关键交易) 精确匹配") + private Integer paymentStatus; + + @ApiModelProperty("附加数据 精确匹配") + private String attach; + + @ApiModelProperty("响应内容 精确匹配") + private String responseBody; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/CompleteOrderRequest.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/CompleteOrderRequest.java new file mode 100644 index 0000000..66a2dcf --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/CompleteOrderRequest.java @@ -0,0 +1,16 @@ +package com.cyl.manager.oms.pojo.request; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; + +@Getter +@Setter +public class CompleteOrderRequest { + @ApiModelProperty("订单id") + @NotBlank(message = "订单id不能为空") + @Excel(name = "订单号") + private Long orderId; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/DealWithAftersaleRequest.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/DealWithAftersaleRequest.java new file mode 100644 index 0000000..cd10737 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/DealWithAftersaleRequest.java @@ -0,0 +1,23 @@ + package com.cyl.manager.oms.pojo.request; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + + + @Data + @ApiModel(value = "商城售后订单处理操作请求体") + public class DealWithAftersaleRequest { + @ApiModelProperty(name = "orderId",value = "订单id",required = true,dataType = "Long") + @NotBlank(message = "订单id不能为空") + private Long orderId; + + @ApiModelProperty(name = "optType",value = "操作类型 1同意 2拒绝 3确认收货",required = true,dataType = "String") + @NotNull(message = "操作类型不能为空") + private Integer optType; + + @ApiModelProperty(name = "remark",value = "拒绝理由 操作类型为2时必填",required = true,dataType = "String") + private String remark; + } \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/DeliverProductRequest.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/DeliverProductRequest.java new file mode 100644 index 0000000..4a9b4a1 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/DeliverProductRequest.java @@ -0,0 +1,27 @@ +package com.cyl.manager.oms.pojo.request; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; + +@Getter +@Setter +public class DeliverProductRequest { + @ApiModelProperty("订单id") + @NotBlank(message = "订单id不能为空") + @Excel(name = "订单号") + private Long orderId; + + @ApiModelProperty("快递名称") + @NotBlank(message = "快递名称不能为空") + @Excel(name = "快递公司") + private String expressName; + + @ApiModelProperty("快递单号") + @NotBlank(message = "快递单号不能为空") + @Excel(name = "运单号") + private String expressSn; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/ManagerAftersaleOrderRequest.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/ManagerAftersaleOrderRequest.java new file mode 100644 index 0000000..387f5a7 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/ManagerAftersaleOrderRequest.java @@ -0,0 +1,42 @@ +package com.cyl.manager.oms.pojo.request; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; +import java.util.Date; + + +@Data +@ApiModel(value = "商城订单请求体") +public class ManagerAftersaleOrderRequest { + + @ApiModelProperty(name = "id", value = "售后单号", required = true, dataType = "Long") + private Long id; + + @ApiModelProperty(name = "orderSn", value = "订单号", required = true, dataType = "String") + private String orderSn; + + @ApiModelProperty(name = "userPhone", value = "用户名称(手机号)", required = true, dataType = "String") + private String userPhone; + + @ApiModelProperty(name = "status", value = "售后申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝;4->用户取消", required = true, dataType = "String") + private Integer status; + + @ApiModelProperty(name = "type", value = "售后类型:1->退款;2->退货退款", required = true, dataType = "String") + private Integer type; + + @ApiModelProperty(name = "startTime", value = "开始时间", required = true, dataType = "Date") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startTime; + + @ApiModelProperty(name = "endTime", value = "结束时间", required = true, dataType = "Date") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/ManagerOrderQueryRequest.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/ManagerOrderQueryRequest.java new file mode 100644 index 0000000..b25a9bf --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/ManagerOrderQueryRequest.java @@ -0,0 +1,58 @@ +package com.cyl.manager.oms.pojo.request; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; +import java.util.Date; + +@Data +@ApiModel("后台订单查询请求体") +public class ManagerOrderQueryRequest { + @ApiModelProperty(name = "orderId", value = "订单id", required = true, dataType = "Long") + private Long orderId; + + @ApiModelProperty(name = "orderSn", value = "订单编号", required = true, dataType = "String") + private String orderSn; + + + @ApiModelProperty(name = "productId", value = "商品id", required = true, dataType = "Long") + private Long productId; + + @ApiModelProperty(name = "productName", value = "商品名称", required = true, dataType = "String") + private String productName; + + @ApiModelProperty(name = "userPhone", value = "用户名称(手机号)", required = true, dataType = "String") + private String userPhone; + + @ApiModelProperty(name = "payType", value = "支付方式 0->未支付;1->支付宝;2->微信", required = true, dataType = "Integer") + private Integer payType; + + @ApiModelProperty(name = "status", value = "订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单", required = true, dataType = "String") + private Integer status; + + @ApiModelProperty("省份/直辖市id 精确匹配") + private Long receiverProvinceId; + + @ApiModelProperty("城市id 精确匹配") + private Long receiverCityId; + + @ApiModelProperty("区id 精确匹配") + private Long receiverDistrictId; + + @ApiModelProperty("区id 精确匹配") + private String receiverDistrict; + + @ApiModelProperty(name = "startTime", value = "开始时间", required = true, dataType = "Date") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startTime; + + @ApiModelProperty(name = "endTime", value = "结束时间", required = true, dataType = "Date") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/AftersaleItemVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/AftersaleItemVO.java new file mode 100644 index 0000000..688214e --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/AftersaleItemVO.java @@ -0,0 +1,34 @@ +package com.cyl.manager.oms.pojo.vo; + +import java.math.BigDecimal; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 订单售后 数据视图对象 + * + * @author zcc + */ +@Data +public class AftersaleItemVO extends BaseAudit { + /** ID */ + private Long id; + /** MEMBER_ID */ + @Excel(name = "MEMBER_ID") + private Long memberId; + /** 售后单id */ + @Excel(name = "售后单id") + private Long aftersaleId; + /** 订单id */ + @Excel(name = "订单id") + private Long orderId; + /** 子订单id */ + @Excel(name = "子订单id") + private Long orderItemId; + /** 退款金额 */ + @Excel(name = "退款金额") + private BigDecimal returnAmount; + /** 退货数量 */ + @Excel(name = "退货数量") + private Integer quantity; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/AftersaleVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/AftersaleVO.java new file mode 100644 index 0000000..7b0d1d7 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/AftersaleVO.java @@ -0,0 +1,55 @@ +package com.cyl.manager.oms.pojo.vo; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import com.ruoyi.common.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 订单售后 数据视图对象 + * + * @author zcc + */ +@Data +public class AftersaleVO extends BaseAudit { + /** ID */ + private Long id; + /** MEMBER_ID */ + @Excel(name = "MEMBER_ID") + private Long memberId; + /** 订单id */ + @Excel(name = "订单id") + private Long orderId; + /** 退款金额 */ + @Excel(name = "退款金额") + private BigDecimal returnAmount; + /** 售后类型:1:退款,2:退货退款 */ + @Excel(name = "售后类型:1:退款,2:退货退款") + private Integer type; + /** 申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝 */ + @Excel(name = "申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝") + private Integer status; + /** 处理时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime handleTime; + /** 退货数量 */ + @Excel(name = "退货数量") + private Integer quantity; + /** 原因 */ + @Excel(name = "原因") + private String reason; + /** 描述 */ + @Excel(name = "描述") + private String description; + /** 凭证图片,以逗号隔开 */ + @Excel(name = "凭证图片,以逗号隔开") + private String proofPics; + /** 处理备注 */ + @Excel(name = "处理备注") + private String handleNote; + /** 处理人员 */ + @Excel(name = "处理人员") + private String handleMan; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerOrderAddressVo.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerOrderAddressVo.java new file mode 100644 index 0000000..b7022dd --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerOrderAddressVo.java @@ -0,0 +1,26 @@ +package com.cyl.manager.oms.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + * @author: Jinxin + * @date: 2022/4/22 14:12 + * @Description: + */ +@Getter +@Setter +@ApiModel("订单收获地址") +public class ManagerOrderAddressVo { + @ApiModelProperty("收货人姓名") + private String name; + @ApiModelProperty("收货人手机号") + private String userPhone; + @ApiModelProperty("收获区域") + private String area; + @ApiModelProperty("详细地址") + private String address; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerOrderDetailVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerOrderDetailVO.java new file mode 100644 index 0000000..76524c8 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerOrderDetailVO.java @@ -0,0 +1,65 @@ +package com.cyl.manager.oms.pojo.vo; + +import com.cyl.manager.marketing.domain.WechatMemberCoupon; +import com.cyl.manager.oms.domain.OmsOrderService; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.annotation.Excels; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +@Data +@ApiModel("后台订单详情对象") +public class ManagerOrderDetailVO { + @ApiModelProperty("订单id") + private Long orderId; + @ApiModelProperty("订单编号") + private String orderSn; + @ApiModelProperty("用户昵称") + private String userName; + @ApiModelProperty("用户手机号") + private String userPhone; + @ApiModelProperty("下单时间") + private LocalDateTime createTime; + @ApiModelProperty("支付方式:0->未支付;1->支付宝;2->微信") + private Integer payType; + @ApiModelProperty("支付时间") + private LocalDateTime payTime; + @ApiModelProperty("订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单") + private Integer orderStatus; + @ApiModelProperty("订单收获地址信息") + private ManagerOrderAddressVo addressInfo; + @ApiModelProperty("订单商品信息") + private List productInfo; + @ApiModelProperty("发货时间") + private LocalDateTime deliveryTime; + @ApiModelProperty("收货时间") + private LocalDateTime receiveTime; + @ApiModelProperty("物流单号") + private String expressNo; + @ApiModelProperty("物流名称") + private String expressName; + @ApiModelProperty("支付金额") + private BigDecimal payAmount; + @ApiModelProperty("订单金额") + private BigDecimal totalAmount; + + @ApiModelProperty(name = "orderService", value = "订单服务信息") + private OmsOrderService orderService; + @ApiModelProperty(name = "orderServiceList", value = "订单服务列表") + private List orderServiceList; + + /** + * add by dxd + */ + @ApiModelProperty("是否提前熟悉") + private Boolean needPreFamiliarize; + @ApiModelProperty("优惠券") + private Integer wechatMemberCouponId; + @ApiModelProperty(name = "wechatMemberCoupon", value = "优惠券信息") + private WechatMemberCoupon wechatMemberCoupon; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerOrderProductExportVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerOrderProductExportVO.java new file mode 100644 index 0000000..91aba10 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerOrderProductExportVO.java @@ -0,0 +1,49 @@ +package com.cyl.manager.oms.pojo.vo; + +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@ApiModel("订单") +public class ManagerOrderProductExportVO { + + @ApiModelProperty("服务日期") + @Excel(name = "服务日期") + private String serviceDate; + + @ApiModelProperty("期望服务时间") + @Excel(name = "期望服务时间") + private String expectServiceTime; + + @ApiModelProperty("宠物 ID") + @Excel(name = "宠物ID") + private Integer petId; + /** 宠物名称 */ + @ApiModelProperty("宠物名称") + @Excel(name = "宠物名称") + private String petName; + @ApiModelProperty("宠物类型") + @Excel(name = "宠物类型") + private String petType; + + @ApiModelProperty("商品id") + @Excel(name = "商品id") + private Long productId; + + @ApiModelProperty("商品名称") + @Excel(name = "商品名称") + private String productName; + + @ApiModelProperty("购买数量") + @Excel(name = "购买数量") + private Integer buyNum; + + @ApiModelProperty("销售价格") + @Excel(name = "销售价格") + private BigDecimal salePrice; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerOrderProductVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerOrderProductVO.java new file mode 100644 index 0000000..59b01ce --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerOrderProductVO.java @@ -0,0 +1,54 @@ +package com.cyl.manager.oms.pojo.vo; + +import com.cyl.manager.ums.domain.Pet; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@ApiModel("订单") +public class ManagerOrderProductVO { + @ApiModelProperty("商品id") + private Long productId; + @ApiModelProperty("商品名称") + private String productName; + @ApiModelProperty("商品规格") + private String spData; + @ApiModelProperty("商品图片") + private String pic; + @ApiModelProperty("购买数量") + private Integer buyNum; + @ApiModelProperty("销售价格") + private BigDecimal salePrice; + + @ApiModelProperty("orderServiceId") + @Excel(name = "orderServiceId") + private Long orderServiceId; + + + /** 服务日期 */ + @ApiModelProperty("服务日期") + private String serviceDate; + @ApiModelProperty("宠物 ID") + private Integer petId; + @ApiModelProperty("期望服务时间") + private String expectServiceTime; + + @ApiModelProperty("宠物类型") + private String petType; + /** 宠物名称 */ + @ApiModelProperty("宠物名称") + private String petName; + + @ApiModelProperty("是否提前熟悉") + @Excel(name = "是否提前熟悉", width = 30) + private Boolean needPreFamiliarize; + + @ApiModelProperty("优惠券") + @Excel(name = "优惠券ID") + private Integer wechatMemberCouponId; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerOrderVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerOrderVO.java new file mode 100644 index 0000000..5f3aeaf --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerOrderVO.java @@ -0,0 +1,109 @@ +package com.cyl.manager.oms.pojo.vo; + +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + +@Data +@ApiModel(value = "管理后台订单VO") +public class ManagerOrderVO { + @ApiModelProperty(name = "id",value = "订单id",required = true,dataType = "Long") + private Long id; + @ApiModelProperty(name = "memberId",value = "会员ID",required = true,dataType = "Long") + private Long memberId; + @ApiModelProperty(name = "orderSn",value = "订单编号",required = true,dataType = "String") + private String orderSn; + @ApiModelProperty(name = "productId",value = "商品id",required = true,dataType = "Long") + private Long productId; + + @ApiModelProperty(name = "productName",value = "商品名称",required = true,dataType = "String") + private String productName; + + @ApiModelProperty(name = "userPhone",value = "用户账号",required = true,dataType = "String") + private String userPhone; + + @ApiModelProperty(name = "nickName",value = "用户昵称",required = true,dataType = "String") + private String nickName; + + @ApiModelProperty(name = "avatar",value = "用户头像",required = true,dataType = "String") + private String avatar; + + @ApiModelProperty(name = "status",value = "订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单",required = true,dataType = "Integer") + private Integer status; + + @ApiModelProperty("退款状态,枚举值:1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功") + private Integer aftersaleStatus; + + @ApiModelProperty(name = "pic",value = "商品图片",required = true,dataType = "String") + private String pic; + + @ApiModelProperty(name = "userName",value = "用户名称",required = true,dataType = "String") + private String userName; + + @ApiModelProperty(name = "buyNum",value = "购买数量",required = true,dataType = "Integer") + private Integer buyNum; + + @ApiModelProperty(name = "totalAmount",value = "订单总金额",required = true,dataType = "BigDecimal") + private BigDecimal totalAmount; + + @ApiModelProperty(name = "payAmount",value = "应付金额",required = true,dataType = "BigDecimal") + private BigDecimal payAmount; + + @ApiModelProperty(name = "createTime",value = "下单时间",required = true,dataType = "Date") + private LocalDateTime createTime; + + @ApiModelProperty(name = "payTime",value = "支付时间",required = true,dataType = "Date") + private LocalDateTime payTime; + + @ApiModelProperty(name = "payType",value = "支付方式 支付方式:0->未支付;1->支付宝;2->微信",required = true,dataType = "Integer") + private Integer payType; + + @ApiModelProperty(name = "receiveTime",value = "确认收货时间",required = true,dataType = "Date") + private Date receiveTime; + + @ApiModelProperty(name = "note",value = "备注",required = true,dataType = "String") + private String note; + + @ApiModelProperty("商家备注") + private String merchantNote; + + @ApiModelProperty(name = "spData",value = "商品sku属性",required = true,dataType = "String") + private String spData; + + @ApiModelProperty(name = "productInfo", value = "订单商品数据") + private List productList; + + @ApiModelProperty(name = "deliveryTime",value = "发货时间",required = true,dataType = "LocalDataTime") + private Date deliveryTime; + + @ApiModelProperty(name = "deliverySn",value = "物流单号",required = true,dataType = "String") + private String deliverySn; + + private String receiverName; + + private String receiverPhone; + + private String receiverProvince; + + private String receiverCity; + + private String receiverDistrict; + + private String receiverDetailAddress; + + private String mark; + + @ApiModelProperty("是否提前熟悉") + @Excel(name = "是否提前熟悉", width = 30) + private Boolean needPreFamiliarize; + + @ApiModelProperty("优惠券") + @Excel(name = "优惠券") + private Integer wechatMemberCouponId; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerRefundOrderDetailVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerRefundOrderDetailVO.java new file mode 100644 index 0000000..eabd0ef --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerRefundOrderDetailVO.java @@ -0,0 +1,54 @@ +package com.cyl.manager.oms.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.Getter; +import lombok.Setter; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + +/** + * @author: Jinxin + * @date: 2022/4/22 14:12 + * @Description: + */ +@Data +@ApiModel("售后订单详情") +public class ManagerRefundOrderDetailVO { + @ApiModelProperty("订单id") + private Long orderId; + @ApiModelProperty("订单号") + private String orderSn; + @ApiModelProperty("用户昵称") + private String nickName; + @ApiModelProperty("用户手机号") + private String phone; + @ApiModelProperty("下单时间") + private LocalDateTime createTime; + @ApiModelProperty("支付方式:0->未支付;1->支付宝;2->微信") + private Integer payType; + @ApiModelProperty("支付时间") + private LocalDateTime payTime; + @ApiModelProperty("订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单") + private Integer status; + @ApiModelProperty("订单收获地址信息") + private OrderAddressVO addressInfo; + @ApiModelProperty("订单商品信息") + private List productList; + @ApiModelProperty("售后信息") + private List refundInfoList; + @ApiModelProperty("退货时间") + private LocalDateTime deliveryTime; + @ApiModelProperty("物流单号") + private String expressNo; + @ApiModelProperty("物流名称") + private String expressName; + @ApiModelProperty("订单总金额") + private BigDecimal totalAmount; + @ApiModelProperty("应付金额(实际支付金额)") + private BigDecimal payAmount; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerRefundOrderVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerRefundOrderVO.java new file mode 100644 index 0000000..c83e9e1 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerRefundOrderVO.java @@ -0,0 +1,80 @@ + package com.cyl.manager.oms.pojo.vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + + + @Data + @ApiModel(value = "售后订单vo") + public class ManagerRefundOrderVO { + @ApiModelProperty(name = "id",value = "售后单id",required = true,dataType = "Long") + private Long id; + + @ApiModelProperty(name = "orderId",value = "订单id",required = true,dataType = "Long") + private Long orderId; + + @ApiModelProperty(name = "orderSn",value = "订单号",required = true,dataType = "String") + private String orderSn; + + @ApiModelProperty(name = "payId",value = "支付ID",required = true,dataType = "Long") + private Long payId; + + @ApiModelProperty(name = "phone",value = "用户手机号",required = true,dataType = "String") + private String phone; + + @ApiModelProperty(name = "nickName",value = "用户昵称",required = true,dataType = "String") + private String nickName; + + @ApiModelProperty(name = "status",value = "订单状态 0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单",required = true,dataType = "Integer") + private Integer status; + + @ApiModelProperty(name = "userName",value = "用户名称",required = true,dataType = "String") + private String userName; + + @ApiModelProperty(name = "payTime",value = "支付时间",required = true,dataType = "String") + private String payTime; + + @ApiModelProperty(name = "payType",value = "支付方式 支付方式:0->未支付;1->支付宝;2->微信",required = true,dataType = "Integer") + private Integer payType; + + @ApiModelProperty(name = "applyRefundTime",value = "申请售后的时间",required = true,dataType = "String") + private String applyRefundTime; + + @ApiModelProperty(name = "refundFinishTime",value = "售后完成的时间",required = true,dataType = "String") + private String refundFinishTime; + + @ApiModelProperty(name = "aftersaleStatus",value = "0->待处理;1->退货中;2->已完成;3->已拒绝; 4->用户取消",required = true,dataType = "String") + private Integer aftersaleStatus; + @ApiModelProperty(name = "note",value = "备注",required = true,dataType = "String") + private String note; + @ApiModelProperty(name = "applyRefundAmount",value = "退款金额",required = true,dataType = "BigDecimal") + private BigDecimal applyReturnAmount; + @ApiModelProperty(name = "refundNum",value = "退款数量",required = true,dataType = "Integer") + private Integer refundNum; + + @ApiModelProperty(name = "applyRefundType",value = "申请退货方式:1-仅退款,2-退货退款",required = true,dataType = "String") + private Integer applyRefundType; + @ApiModelProperty(name = "handleTime",value = "处理时间",required = true,dataType = "LocalDateTime") + private LocalDateTime handleTime; + + @ApiModelProperty(name = "reason",value = "原因",required = true,dataType = "String") + private String reason; + + @ApiModelProperty(name = "description",value = "描述",required = true,dataType = "String") + private String description; + + @ApiModelProperty(name = "proofPics",value = "凭证图片",required = true,dataType = "String") + private String proofPics; + + @ApiModelProperty(name = "productInfo", value = "售后单商品数据") + private List productList; + + @ApiModelProperty(name = "handleMan", value = "处理人员") + private String handleMan; + + private String mark; + } diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OmsOrderServiceVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OmsOrderServiceVO.java new file mode 100644 index 0000000..98e0af0 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OmsOrderServiceVO.java @@ -0,0 +1,21 @@ +package com.cyl.manager.oms.pojo.vo; + +import java.time.LocalDateTime; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 预约订单服务详细信息记录表 数据视图对象 + * + * @author daixiande + */ +@Data +public class OmsOrderServiceVO extends BaseAudit { + private Long id; + private Long orderId; + private String pet; + private String serviceFrequency; + private String serviceDate; + private String serviceTimeFirst; + private LocalDateTime serviceTimeSecond; + private Integer delFlag; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderAddressVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderAddressVO.java new file mode 100644 index 0000000..7967211 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderAddressVO.java @@ -0,0 +1,26 @@ +package com.cyl.manager.oms.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + * @author: Jinxin + * @date: 2022/4/22 14:12 + * @Description: + */ +@Getter +@Setter +@ApiModel("订单收获地址") +public class OrderAddressVO { + @ApiModelProperty("收货人姓名") + private String name; + @ApiModelProperty("收货人手机号") + private String userPhone; + @ApiModelProperty("收获区域") + private String area; + @ApiModelProperty("详细地址") + private String address; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderDeliveryHistoryVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderDeliveryHistoryVO.java new file mode 100644 index 0000000..532d94c --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderDeliveryHistoryVO.java @@ -0,0 +1,24 @@ +package com.cyl.manager.oms.pojo.vo; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 订单发货记录 数据视图对象 + * + * @author zcc + */ +@Data +public class OrderDeliveryHistoryVO extends BaseAudit { + /** ID */ + private Long id; + /** 订单id */ + @Excel(name = "订单id") + private Long orderId; + /** 物流公司(配送方式) */ + @Excel(name = "物流公司(配送方式)") + private String deliveryCompany; + /** 物流单号 */ + @Excel(name = "物流单号") + private String deliverySn; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderExportVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderExportVO.java new file mode 100644 index 0000000..1fc6745 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderExportVO.java @@ -0,0 +1,158 @@ +package com.cyl.manager.oms.pojo.vo; + +import com.cyl.manager.oms.domain.OmsOrderService; +import com.cyl.manager.oms.domain.OrderItem; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.annotation.Excels; +import com.ruoyi.common.core.domain.BaseAudit; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + +/** + * 订单表 数据视图对象 + * + * @author zcc + */ +@Data +public class OrderExportVO extends BaseAudit { + /** 订单id */ + private Long id; + /** 支付id */ + private Long payId; + /** 订单编号 */ + @Excel(name = "订单号") + private String orderSn; + /** MEMBER_ID */ + //@Excel(name = "会员ID") + private Long memberId; + /** 用户帐号 */ + @Excel(name = "用户帐号") + private String nickName; + /** 订单总金额 */ + @Excel(name = "订单总金额") + private BigDecimal totalAmount; + /** 下单时间 */ + @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + /** 支付时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime payTime; + /** 采购价 */ + //@Excel(name = "采购价") + private BigDecimal purchasePrice; + /** 应付金额(实际支付金额) */ + //@Excel(name = "应付金额", readConverterExp = "实=际支付金额") + private BigDecimal payAmount; + /** 运费金额 */ + // @Excel(name = "运费金额") + private BigDecimal freightAmount; + /** 支付方式:0->未支付;1->支付宝;2->微信 */ + //@Excel(name = "支付方式:0->未支付;1->支付宝;2->微信") + private Integer payType; + /** 订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 */ + @Excel(name = "订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单") + private Integer status; + /** 退款状态,枚举值:1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功 */ + //@Excel(name = "退款状态,枚举值:1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功") + private Integer aftersaleStatus; + /** 物流公司(配送方式) */ + //@Excel(name = "物流公司(配送方式)") + private String deliveryCompany; + /** 物流单号 */ + //@Excel(name = "物流单号") + private String deliverySn; + /** 自动确认时间(天) */ + //@Excel(name = "自动确认时间", readConverterExp = "天=") + private Integer autoConfirmDay; + /** 收货人姓名 */ + @Excel(name = "收货人姓名") + private String receiverName; + /** 微信号 */ + @Excel(name = "微信号") + private String wechatId; + /** 收货人电话 */ + @Excel(name = "收货人电话") + private String receiverPhone; + /** 收货人邮编 */ + @Excel(name = "收货人邮编") + private String receiverPostCode; + /** 省份/直辖市 */ + @Excel(name = "省份/直辖市") + private String receiverProvince; + /** 城市 */ + @Excel(name = "城市") + private String receiverCity; + /** 区 */ + @Excel(name = "区") + private String receiverDistrict; + /** 省份/直辖市id */ + //@Excel(name = "省份/直辖市id") + private Long receiverProvinceId; + /** 城市id */ + //@Excel(name = "城市id") + private Long receiverCityId; + /** 区id */ + //@Excel(name = "区id") + private Long receiverDistrictId; + /** 详细地址 */ + @Excel(name = "详细地址") + private String receiverDetailAddress; + /** 订单备注 */ + @Excel(name = "买家订单备注") + private String note; + /** 商家备注 */ + @Excel(name = "平台商家备注") + private String merchantNote; + + /** 确认收货状态:0->未确认;1->已确认 */ + //@Excel(name = "确认收货状态:0->未确认;1->已确认") + private Integer confirmStatus; + /** 删除状态:0->未删除;1->已删除 */ + //@Excel(name = "删除状态:0->未删除;1->已删除") + private Integer deleteStatus; + + /** 发货时间 */ + //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + //@Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime deliveryTime; + /** 确认收货时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + //@Excel(name = "确认收货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime receiveTime; + + @ApiModelProperty("是否提前熟悉") + @Excel(name = "是否提前熟悉", width = 30) + private Boolean needPreFamiliarize; + + @ApiModelProperty("优惠券") + @Excel(name = "优惠券") + private Integer wechatMemberCouponId; + + @ApiModelProperty(name = "productInfo", value = "订单商品数据") + @Excels({ + @Excel(name = "服务日期", targetAttr = "serviceDate", type = Excel.Type.EXPORT), + @Excel(name = "期望服务时间", targetAttr = "expectServiceTime", type = Excel.Type.EXPORT), + @Excel(name = "宠物名称", targetAttr = "petName", type = Excel.Type.EXPORT), + @Excel(name = "宠物类型", targetAttr = "petType", type = Excel.Type.EXPORT), + @Excel(name = "产品名称", targetAttr = "productName", type = Excel.Type.EXPORT), + @Excel(name = "购买数量", targetAttr = "buyNum", type = Excel.Type.EXPORT) + }) + private ManagerOrderProductExportVO orderItem; + +/* @ApiModelProperty(name = "orderService", value = "订单服务信息") + @Excels({ + @Excel(name = "附加Pet信息", targetAttr = "pet", type = Excel.Type.EXPORT), + @Excel(name = "服务频率", targetAttr = "serviceFrequency", type = Excel.Type.EXPORT), + @Excel(name = "服务日期", targetAttr = "serviceDate", type = Excel.Type.EXPORT), + @Excel(name = "第一次服务时间", targetAttr = "serviceTimeFirst", type = Excel.Type.EXPORT), + @Excel(name = "第二次服务时间", targetAttr = "serviceTimeSecond", type = Excel.Type.EXPORT) + }) + private OmsOrderService orderService;*/ +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderItemVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderItemVO.java new file mode 100644 index 0000000..543dd9c --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderItemVO.java @@ -0,0 +1,58 @@ +package com.cyl.manager.oms.pojo.vo; + +import java.math.BigDecimal; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 订单中所包含的商品 数据视图对象 + * + * @author zcc + */ +@Data +public class OrderItemVO extends BaseAudit { + /** ID */ + private Long id; + /** 订单id */ + @Excel(name = "订单id") + private Long orderId; + /** PRODUCT_ID */ + @Excel(name = "PRODUCT_ID") + private Long productId; + /** 商品编码 */ + @Excel(name = "商品编码") + private String outProductId; + /** 商品sku id */ + @Excel(name = "商品sku id") + private Long skuId; + /** sku编码 */ + @Excel(name = "sku编码") + private String outSkuId; + /** 商品快照id */ + @Excel(name = "商品快照id") + private Long productSnapshotId; + /** sku快照id */ + @Excel(name = "sku快照id") + private Long skuSnapshotId; + /** 展示图片 */ + @Excel(name = "展示图片") + private String pic; + /** PRODUCT_NAME */ + @Excel(name = "PRODUCT_NAME") + private String productName; + /** 销售价格 */ + @Excel(name = "销售价格") + private BigDecimal salePrice; + /** 采购价 */ + @Excel(name = "采购价") + private BigDecimal purchasePrice; + /** 购买数量 */ + @Excel(name = "购买数量") + private Integer quantity; + /** 商品分类id */ + @Excel(name = "商品分类id") + private Long productCategoryId; + /** 商品sku属性:[{\"key\":\"颜色\",\"value\":\"颜色\"},{\"key\":\"容量\",\"value\":\"4G\"}] */ + @Excel(name = "商品sku属性:[{\"key\":\"颜色\",\"value\":\"颜色\"},{\"key\":\"容量\",\"value\":\"4G\"}]") + private String spData; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderOperateHistoryVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderOperateHistoryVO.java new file mode 100644 index 0000000..d521f19 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderOperateHistoryVO.java @@ -0,0 +1,30 @@ +package com.cyl.manager.oms.pojo.vo; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 订单操作历史记录 数据视图对象 + * + * @author zcc + */ +@Data +public class OrderOperateHistoryVO extends BaseAudit { + /** ID */ + private Long id; + /** 订单id */ + @Excel(name = "订单id") + private Long orderId; + /** 订单号 */ + @Excel(name = "订单号") + private String orderSn; + /** 操作人:用户;系统;后台管理员 */ + @Excel(name = "操作人:用户;系统;后台管理员") + private String operateMan; + /** 订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 */ + @Excel(name = "订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单") + private Integer orderStatus; + /** 备注 */ + @Excel(name = "备注") + private String note; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderVO.java new file mode 100644 index 0000000..cc67917 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/OrderVO.java @@ -0,0 +1,113 @@ +package com.cyl.manager.oms.pojo.vo; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +import com.cyl.manager.oms.domain.OrderItem; +import com.ruoyi.common.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 订单表 数据视图对象 + * + * @author zcc + */ +@Data +public class OrderVO extends BaseAudit { + /** 订单id */ + private Long id; + /** 支付id */ + private Long payId; + /** 订单编号 */ + private String orderSn; + /** MEMBER_ID */ + @Excel(name = "MEMBER_ID") + private Long memberId; + /** 用户帐号 */ + @Excel(name = "用户帐号") + private String memberUsername; + /** 订单总金额 */ + @Excel(name = "订单总金额") + private BigDecimal totalAmount; + /** 采购价 */ + @Excel(name = "采购价") + private BigDecimal purchasePrice; + /** 应付金额(实际支付金额) */ + @Excel(name = "应付金额", readConverterExp = "实=际支付金额") + private BigDecimal payAmount; + /** 运费金额 */ + @Excel(name = "运费金额") + private BigDecimal freightAmount; + /** 支付方式:0->未支付;1->支付宝;2->微信 */ + @Excel(name = "支付方式:0->未支付;1->支付宝;2->微信") + private Integer payType; + /** 订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 */ + @Excel(name = "订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单") + private Integer status; + /** 退款状态,枚举值:1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功 */ + @Excel(name = "退款状态,枚举值:1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功") + private Integer aftersaleStatus; + /** 物流公司(配送方式) */ + @Excel(name = "物流公司(配送方式)") + private String deliveryCompany; + /** 物流单号 */ + @Excel(name = "物流单号") + private String deliverySn; + /** 自动确认时间(天) */ + @Excel(name = "自动确认时间", readConverterExp = "天=") + private Integer autoConfirmDay; + /** 收货人姓名 */ + @Excel(name = "收货人姓名") + private String receiverName; + /** 收货人电话 */ + @Excel(name = "收货人电话") + private String receiverPhone; + /** 收货人邮编 */ + @Excel(name = "收货人邮编") + private String receiverPostCode; + /** 省份/直辖市 */ + @Excel(name = "省份/直辖市") + private String receiverProvince; + /** 城市 */ + @Excel(name = "城市") + private String receiverCity; + /** 区 */ + @Excel(name = "区") + private String receiverDistrict; + /** 省份/直辖市id */ + @Excel(name = "省份/直辖市id") + private Long receiverProvinceId; + /** 城市id */ + @Excel(name = "城市id") + private Long receiverCityId; + /** 区id */ + @Excel(name = "区id") + private Long receiverDistrictId; + /** 详细地址 */ + @Excel(name = "详细地址") + private String receiverDetailAddress; + /** 订单备注 */ + @Excel(name = "订单备注") + private String note; + /** 确认收货状态:0->未确认;1->已确认 */ + @Excel(name = "确认收货状态:0->未确认;1->已确认") + private Integer confirmStatus; + /** 删除状态:0->未删除;1->已删除 */ + @Excel(name = "删除状态:0->未删除;1->已删除") + private Integer deleteStatus; + /** 支付时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime paymentTime; + /** 发货时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime deliveryTime; + /** 确认收货时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "确认收货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime receiveTime; + private List items; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/RefundInfoVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/RefundInfoVO.java new file mode 100644 index 0000000..51c6dbf --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/RefundInfoVO.java @@ -0,0 +1,47 @@ +package com.cyl.manager.oms.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Date; + +/** + * @author: Jinxin + * @date: 2022/4/22 14:12 + * @Description: + */ +@Getter +@Setter +@ApiModel("售后信息") +public class RefundInfoVO { + @ApiModelProperty("退款单号") + private Long id; + @ApiModelProperty("申请退货方式:1-仅退款,2-退货退款") + private Integer applyRefundType; + @ApiModelProperty("申请售后时间") + private LocalDateTime applyRefundTime; + @ApiModelProperty("售后金额") + private BigDecimal refundAmount; + @ApiModelProperty("申请原因") + private String reason; + @ApiModelProperty("描述") + private String description; + @ApiModelProperty("凭证") + private String proofPics; + @ApiModelProperty("申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝; 4->用户取消") + private Integer refundStatus; + @ApiModelProperty("平台拒绝理由") + private String remark; + @ApiModelProperty("物流单号") + private String expressNo; + @ApiModelProperty("物流名称") + private String expressName; + @ApiModelProperty("最新物流数据") + private String logistics; + @ApiModelProperty("所有物流信息 JSON格式") + private String allLogistics; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/WechatPaymentHistoryVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/WechatPaymentHistoryVO.java new file mode 100644 index 0000000..349faf1 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/WechatPaymentHistoryVO.java @@ -0,0 +1,52 @@ +package com.cyl.manager.oms.pojo.vo; + +import java.math.BigDecimal; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 微信订单表 数据视图对象 + * + * @author zcc + */ +@Data +public class WechatPaymentHistoryVO extends BaseAudit { + /** ID */ + private Long id; + /** payment_id */ + @Excel(name = "payment_id") + private String paymentId; + /** 用户 ID */ + @Excel(name = "用户 ID") + private Long memberId; + /** OPENID */ + @Excel(name = "OPENID") + private String openid; + /** 真实姓名,提现需要 */ + @Excel(name = "真实姓名,提现需要") + private String realName; + /** 标题|商品名称 */ + @Excel(name = "标题|商品名称") + private String title; + /** 订单号 支付时是payId 其他为orderId */ + @Excel(name = "订单号 支付时是payId 其他为orderId") + private Long orderId; + /** 金额,单位分 */ + @Excel(name = "金额,单位分") + private BigDecimal money; + /** 交易类型(1为支付 2为提现 3为退款) */ + @Excel(name = "交易类型", readConverterExp = "1=为支付,2=为提现,3=为退款") + private Integer opType; + /** 状态(0:未完成交易 1:完成关键交易) */ + @Excel(name = "状态", readConverterExp = "0=:未完成交易,1=:完成关键交易") + private Integer paymentStatus; + /** 备注 */ + @Excel(name = "备注") + private String remark; + /** 附加数据 */ + @Excel(name = "附加数据") + private String attach; + /** 响应内容 */ + @Excel(name = "响应内容") + private String responseBody; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/AftersaleItemService.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/AftersaleItemService.java new file mode 100644 index 0000000..641396f --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/AftersaleItemService.java @@ -0,0 +1,101 @@ +package com.cyl.manager.oms.service; + +import java.math.BigDecimal; +import java.util.List; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import com.cyl.manager.oms.mapper.AftersaleItemMapper; +import com.cyl.manager.oms.domain.AftersaleItem; +import com.cyl.manager.oms.pojo.query.AftersaleItemQuery; + +/** + * 订单售后Service业务层处理 + * + * + * @author zcc + */ +@Service +public class AftersaleItemService { + @Autowired + private AftersaleItemMapper aftersaleItemMapper; + + /** + * 查询订单售后 + * + * @param id 订单售后主键 + * @return 订单售后 + */ + public AftersaleItem selectById(Long id) { + return aftersaleItemMapper.selectById(id); + } + + /** + * 查询订单售后列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 订单售后 + */ + public List selectList(AftersaleItemQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper qw = new QueryWrapper<>(); + Long memberId = query.getMemberId(); + if (memberId != null) { + qw.eq("member_id", memberId); + } + Long orderId = query.getOrderId(); + if (orderId != null) { + qw.eq("order_id", orderId); + } + Long orderItemId = query.getOrderItemId(); + if (orderItemId != null) { + qw.eq("order_item_id", orderItemId); + } + BigDecimal returnAmount = query.getReturnAmount(); + if (returnAmount != null) { + qw.eq("return_amount", returnAmount); + } + Integer quantity = query.getQuantity(); + if (quantity != null) { + qw.eq("quantity", quantity); + } + return aftersaleItemMapper.selectList(qw); + } + + /** + * 新增订单售后 + * + * @param aftersaleItem 订单售后 + * @return 结果 + */ + public int insert(AftersaleItem aftersaleItem) { + aftersaleItem.setCreateTime(LocalDateTime.now()); + return aftersaleItemMapper.insert(aftersaleItem); + } + + /** + * 修改订单售后 + * + * @param aftersaleItem 订单售后 + * @return 结果 + */ + public int update(AftersaleItem aftersaleItem) { + return aftersaleItemMapper.updateById(aftersaleItem); + } + + /** + * 删除订单售后信息 + * + * @param id 订单售后主键 + * @return 结果 + */ + public int deleteById(Long id) { + return aftersaleItemMapper.deleteById(id); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/AftersaleService.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/AftersaleService.java new file mode 100644 index 0000000..ee8b223 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/AftersaleService.java @@ -0,0 +1,316 @@ +package com.cyl.manager.oms.service; + +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.cyl.manager.oms.convert.OrderOperateHistoryConvert; +import com.cyl.manager.oms.domain.Order; +import com.cyl.manager.oms.domain.OrderItem; +import com.cyl.manager.oms.domain.OrderOperateHistory; +import com.cyl.manager.oms.mapper.OrderItemMapper; +import com.cyl.manager.oms.mapper.OrderMapper; +import com.cyl.manager.oms.mapper.OrderOperateHistoryMapper; +import com.cyl.manager.oms.pojo.request.DealWithAftersaleRequest; +import com.cyl.manager.oms.pojo.request.ManagerAftersaleOrderRequest; +import com.cyl.manager.oms.pojo.vo.*; +import com.cyl.manager.pms.mapper.SkuMapper; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.mapper.MemberMapper; +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.enums.AftersaleStatus; +import com.ruoyi.common.enums.OrderRefundStatus; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import com.cyl.manager.oms.mapper.AftersaleMapper; +import com.cyl.manager.oms.domain.Aftersale; +import org.springframework.transaction.annotation.Transactional; + +/** + * 订单售后Service业务层处理 + * + * + * @author zcc + */ +@Service +public class AftersaleService { + @Autowired + private AftersaleMapper aftersaleMapper; + + @Autowired + private OrderMapper orderMapper; + + @Autowired + private OrderItemMapper orderItemMapper; + + @Autowired + private OrderOperateHistoryMapper orderOperateHistoryMapper; + + @Autowired + private MemberMapper memberMapper; + + @Autowired + private OrderOperateHistoryConvert historyConvert; + @Autowired + private SkuMapper skuMapper; + + /** + * 查询订单售后 + * + * @param id 订单售后主键 + * @return 订单售后 + */ + public ManagerRefundOrderDetailVO selectById(Long id) { + Order order = orderMapper.selectById(id); + if (order == null){ + throw new RuntimeException("无该订单信息"); + } + ManagerRefundOrderDetailVO result = new ManagerRefundOrderDetailVO(); + //订单基本信息 + result.setOrderId(order.getId()); + result.setOrderSn(order.getOrderSn()); + result.setCreateTime(order.getCreateTime()); + result.setPayType(order.getPayType()); + result.setPayTime(order.getPaymentTime()); + result.setStatus(order.getStatus()); + result.setExpressName(order.getDeliveryCompany()); + result.setDeliveryTime(order.getDeliveryTime()); + result.setExpressNo(order.getDeliverySn()); + result.setTotalAmount(order.getTotalAmount()); + result.setPayAmount(order.getPayAmount()); + //用户信息 + Member member = memberMapper.selectById(order.getMemberId()); + result.setNickName(member.getNickname()); + result.setPhone(member.getPhoneHidden()); + //收货信息 + OrderAddressVO orderAddressVO = new OrderAddressVO(); + orderAddressVO.setAddress(order.getReceiverDetailAddress()); + orderAddressVO.setName(order.getReceiverName()); + orderAddressVO.setUserPhone(order.getReceiverPhone()); + orderAddressVO.setArea(order.getReceiverProvince() + order.getReceiverCity() + order.getReceiverDistrict()); + result.setAddressInfo(orderAddressVO); + //orderItem + QueryWrapper orderItemQw = new QueryWrapper<>(); + orderItemQw.eq("order_id", id); + List orderItemList = orderItemMapper.selectList(orderItemQw); + List productList = new ArrayList<>(); + orderItemList.forEach(orderItem -> { + ManagerOrderProductVO productVO = new ManagerOrderProductVO(); + productVO.setPic(orderItem.getPic()); + productVO.setSpData(orderItem.getSpData()); + productVO.setProductName(orderItem.getProductName()); + productVO.setSalePrice(orderItem.getSalePrice()); + productVO.setBuyNum(orderItem.getQuantity()); + productVO.setProductId(orderItem.getProductId()); + productList.add(productVO); + }); + result.setProductList(productList); + //售后信息 + QueryWrapper aftersaleQw = new QueryWrapper<>(); + aftersaleQw.eq("order_id", order.getId()); + aftersaleQw.orderByDesc("create_time"); + List aftersaleList = aftersaleMapper.selectList(aftersaleQw); + List refundInfoList = new ArrayList<>(); + aftersaleList.forEach(aftersale -> { + RefundInfoVO refundInfo = new RefundInfoVO(); + refundInfo.setId(aftersale.getId()); + refundInfo.setApplyRefundType(aftersale.getType()); + refundInfo.setApplyRefundTime(aftersale.getCreateTime()); + refundInfo.setRefundAmount(aftersale.getReturnAmount()); + refundInfo.setReason(aftersale.getReason()); + refundInfo.setDescription(aftersale.getDescription()); + refundInfo.setProofPics(aftersale.getProofPics()); + refundInfo.setRefundStatus(aftersale.getStatus()); + refundInfo.setRemark(aftersale.getHandleNote()); + refundInfoList.add(refundInfo); + }); + result.setRefundInfoList(refundInfoList); + return result; + } + + /** + * 查询订单售后列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 订单售后 + */ + public List selectList(ManagerAftersaleOrderRequest query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + if (StrUtil.isNotBlank(query.getOrderSn()) && query.getOrderSn().length() > 7){ + query.setOrderSn(query.getOrderSn().substring(7)); + } + List managerRefundOrderVOS = aftersaleMapper.selectManagerRefundOrder(query); + if (CollectionUtil.isEmpty(managerRefundOrderVOS)){ + return managerRefundOrderVOS; + } + Set idSet = managerRefundOrderVOS.stream().map(ManagerRefundOrderVO::getOrderId).collect(Collectors.toSet()); + //查一下orderSn集合 + QueryWrapper orderQw = new QueryWrapper<>(); + orderQw.in("id", idSet); + Map orderMap = orderMapper.selectList(orderQw).stream().collect(Collectors.toMap(Order::getId, it -> it)); + //封装售后单商品数据 + QueryWrapper orderItemQw = new QueryWrapper<>(); + orderItemQw.in("order_id", idSet); + Map> orderItemMap = orderItemMapper.selectList(orderItemQw).stream().collect(Collectors.groupingBy(OrderItem::getOrderId)); + managerRefundOrderVOS.forEach(vo -> { + Order order = orderMap.get(vo.getOrderId()); + vo.setOrderSn(order.getOrderSn()); + List orderItemList = orderItemMap.get(vo.getOrderId()); + List productList = new ArrayList<>(); + orderItemList.forEach(item -> { + ManagerOrderProductVO productVO = new ManagerOrderProductVO(); + productVO.setProductName(item.getProductName()); + productVO.setSalePrice(item.getSalePrice()); + productVO.setPic(item.getPic()); + productVO.setBuyNum(item.getQuantity()); + productVO.setProductId(item.getProductId()); + productVO.setSpData(item.getSpData()); + productList.add(productVO); + }); + vo.setProductList(productList); + }); + return managerRefundOrderVOS; + } + + /** + * 新增订单售后 + * + * @param aftersale 订单售后 + * @return 结果 + */ + public int insert(Aftersale aftersale) { + aftersale.setCreateTime(LocalDateTime.now()); + return aftersaleMapper.insert(aftersale); + } + + /** + * 修改订单售后 + * + * @param aftersale 订单售后 + * @return 结果 + */ + public int update(Aftersale aftersale) { + return aftersaleMapper.updateById(aftersale); + } + + /** + * 删除订单售后信息 + * + * @param id 订单售后主键 + * @return 结果 + */ + public int deleteById(Long id) { + return aftersaleMapper.deleteById(id); + } + + /** + * 售后处理 + * @param request 请求体 + * @param user 操作人 + * @return + */ + @Transactional + public String dealWith(DealWithAftersaleRequest request, LoginUser user) { + Order order = orderMapper.selectById(request.getOrderId()); + if (order == null){ + throw new RuntimeException("无该订单"); + } + //目前售后类型只有退款,没有退货退款 + //所以目前只需要查看是否有待处理的售后单 + QueryWrapper aftersaleQw = new QueryWrapper<>(); + aftersaleQw.eq("status", AftersaleStatus.APPLY.getType()); + aftersaleQw.eq("order_id", request.getOrderId()); + Aftersale aftersale = aftersaleMapper.selectOne(aftersaleQw); + if (aftersale == null){ + throw new RuntimeException("没有售后单"); + } + //售后状态与售后类型是否对应 + boolean ifAgree = Constants.OptType.AGREE.equals(request.getOptType()); + boolean ifRefuse = Constants.OptType.REFUSE.equals(request.getOptType()); + if (ifAgree || ifRefuse){ + if (!AftersaleStatus.APPLY.getType().equals(aftersale.getStatus())){ + throw new RuntimeException("订单状态有误,请刷新后重试"); + } + } + //拒绝则理由必填 + if (ifRefuse && StrUtil.isBlank(request.getRemark())){ + throw new RuntimeException("请填写拒绝理由"); + } + LocalDateTime optDate = LocalDateTime.now(); + //要创建的订单操作记录,status后续判断再设置 + OrderOperateHistory optHistory = new OrderOperateHistory(); + optHistory.setOrderId(order.getId()); + optHistory.setOrderSn(order.getOrderSn()); + optHistory.setOperateMan("后台管理员"); + optHistory.setCreateTime(optDate); + optHistory.setCreateBy(user.getUserId()); + optHistory.setUpdateBy(user.getUserId()); + optHistory.setUpdateTime(optDate); + //封装售后wrapper + UpdateWrapper aftersaleWrapper = new UpdateWrapper<>(); + aftersaleWrapper.eq("order_id", request.getOrderId()); + aftersaleWrapper.eq("status", AftersaleStatus.APPLY.getType()); + aftersaleWrapper.set("handle_man", user.getUser().getNickName()); + aftersaleWrapper.set("update_time", optDate); + aftersaleWrapper.set("handle_time", optDate); + aftersaleWrapper.set("update_by", user.getUserId()); + //封装订单wrapper + UpdateWrapper orderWrapper = new UpdateWrapper<>(); + orderWrapper.eq("id", request.getOrderId()); + orderWrapper.set("update_time", optDate); + orderWrapper.set("update_by", user.getUserId()); + //更新订单、售后单,创建操作记录 + if (ifRefuse){ + aftersaleWrapper.set("status", AftersaleStatus.REJECT.getType()); + aftersaleWrapper.set("handle_note", request.getRemark()); + orderWrapper.set("aftersale_status", OrderRefundStatus.NO_REFUND.getType()); + optHistory.setOrderStatus(14); + }else if (ifAgree){ + //如果是未发货的情况下,直接增加库存 + if (order.getStatus() == 1) { + OrderItem orderItem = orderItemMapper.selectOne(new QueryWrapper().eq("order_id", order.getId())); + skuMapper.updateStockById(orderItem.getSkuId(),LocalDateTime.now(),-1*orderItem.getQuantity()); + //todo 微信直接退款 + aftersaleWrapper.set("status", AftersaleStatus.SUCCESS.getType()); + orderWrapper.set("aftersale_status", OrderRefundStatus.SUCCESS.getType()); + } else { + aftersaleWrapper.set("status", AftersaleStatus.WAIT.getType()); + orderWrapper.set("aftersale_status", OrderRefundStatus.WAIT.getType()); + } + optHistory.setOrderStatus(12); + } + int rows = aftersaleMapper.update(null, aftersaleWrapper); + if (rows < 1){ + throw new RuntimeException("更新售后单失败"); + } + rows = orderMapper.update(null, orderWrapper); + if (rows < 1){ + throw new RuntimeException("更新订单失败"); + } + rows = orderOperateHistoryMapper.insert(optHistory); + if (rows < 1){ + throw new RuntimeException("创建订单操作记录失败"); + } + return "操作成功"; + } + + public List log(Long orderId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(OrderOperateHistory::getOrderId, orderId); + wrapper.in(OrderOperateHistory::getOrderStatus, Arrays.asList(11, 12, 13, 14)); + wrapper.orderByDesc(OrderOperateHistory::getCreateTime); + List historyList = orderOperateHistoryMapper.selectList(wrapper); + return historyConvert.dos2vos(historyList); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OmsOrderServiceService.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OmsOrderServiceService.java new file mode 100644 index 0000000..d9a51f2 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OmsOrderServiceService.java @@ -0,0 +1,108 @@ +package com.cyl.manager.oms.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.manager.oms.domain.OmsOrderService; +import com.cyl.manager.oms.domain.OrderItem; +import com.cyl.manager.oms.mapper.OmsOrderServiceMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; + +/** + * 预约订单服务详细信息记录表Service接口 + * + * @author daixiande + */ +@Service +public class OmsOrderServiceService { + @Autowired + private OmsOrderServiceMapper omsOrderServiceMapper; + + /** + * 查询预约订单服务详细信息记录表 + * + * @param id 预约订单服务详细信息记录表主键 + * @return 预约订单服务详细信息记录表 + */ + public OmsOrderService selectOmsOrderServiceById(Long id){ + return omsOrderServiceMapper.selectById(id); + } + + public OmsOrderService selectByOrderId(Long id) { + OmsOrderService omsOrderService = new OmsOrderService(); + omsOrderService.setOrderId(id); + List orderServiceList = omsOrderServiceMapper.selectList(omsOrderService); + + if (CollectionUtils.isEmpty(orderServiceList)){ + return null; + } + + //TODO fix + return orderServiceList.get(0); + } + + public List selectListByOrderId(Long id) { + OmsOrderService omsOrderService = new OmsOrderService(); + omsOrderService.setOrderId(id); + List orderServiceList = omsOrderServiceMapper.selectList(omsOrderService); + + if (CollectionUtils.isEmpty(orderServiceList)){ + return null; + } + + //TODO fix + return orderServiceList; + } + + /** + * 查询预约订单服务详细信息记录表列表 + * + * @param omsOrderService 预约订单服务详细信息记录表 + * @return 预约订单服务详细信息记录表集合 + */ + public List selectOmsOrderServiceList(OmsOrderService omsOrderService){ + return omsOrderServiceMapper.selectList(omsOrderService); + } + + /** + * 新增预约订单服务详细信息记录表 + * + * @param omsOrderService 预约订单服务详细信息记录表 + * @return 结果 + */ + public int insertOmsOrderService(OmsOrderService omsOrderService){ + return omsOrderServiceMapper.insert(omsOrderService); + } + + /** + * 修改预约订单服务详细信息记录表 + * + * @param omsOrderService 预约订单服务详细信息记录表 + * @return 结果 + */ + public int updateOmsOrderService(OmsOrderService omsOrderService){ + return omsOrderServiceMapper.update(omsOrderService); + } + + /** + * 批量删除预约订单服务详细信息记录表 + * + * @param ids 需要删除的预约订单服务详细信息记录表主键集合 + * @return 结果 + */ + public int deleteOmsOrderServiceByIds(Long[] ids){ + return omsOrderServiceMapper.deleteByIds(ids); + } + + /** + * 删除预约订单服务详细信息记录表信息 + * + * @param id 预约订单服务详细信息记录表主键 + * @return 结果 + */ + public int deleteOmsOrderServiceById(Long id){ + return omsOrderServiceMapper.deleteById(id); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OrderDeliveryHistoryService.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OrderDeliveryHistoryService.java new file mode 100644 index 0000000..28ee548 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OrderDeliveryHistoryService.java @@ -0,0 +1,93 @@ +package com.cyl.manager.oms.service; + +import java.util.List; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import com.cyl.manager.oms.mapper.OrderDeliveryHistoryMapper; +import com.cyl.manager.oms.domain.OrderDeliveryHistory; +import com.cyl.manager.oms.pojo.query.OrderDeliveryHistoryQuery; + +/** + * 订单发货记录Service业务层处理 + * + * + * @author zcc + */ +@Service +public class OrderDeliveryHistoryService { + @Autowired + private OrderDeliveryHistoryMapper orderDeliveryHistoryMapper; + + /** + * 查询订单发货记录 + * + * @param id 订单发货记录主键 + * @return 订单发货记录 + */ + public OrderDeliveryHistory selectById(Long id) { + return orderDeliveryHistoryMapper.selectById(id); + } + + /** + * 查询订单发货记录列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 订单发货记录 + */ + public List selectList(OrderDeliveryHistoryQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper qw = new QueryWrapper<>(); + Long orderId = query.getOrderId(); + if (orderId != null) { + qw.eq("order_id", orderId); + } + String deliveryCompany = query.getDeliveryCompany(); + if (!StringUtils.isEmpty(deliveryCompany)) { + qw.eq("delivery_company", deliveryCompany); + } + String deliverySn = query.getDeliverySn(); + if (!StringUtils.isEmpty(deliverySn)) { + qw.eq("delivery_sn", deliverySn); + } + return orderDeliveryHistoryMapper.selectList(qw); + } + + /** + * 新增订单发货记录 + * + * @param orderDeliveryHistory 订单发货记录 + * @return 结果 + */ + public int insert(OrderDeliveryHistory orderDeliveryHistory) { + orderDeliveryHistory.setCreateTime(LocalDateTime.now()); + return orderDeliveryHistoryMapper.insert(orderDeliveryHistory); + } + + /** + * 修改订单发货记录 + * + * @param orderDeliveryHistory 订单发货记录 + * @return 结果 + */ + public int update(OrderDeliveryHistory orderDeliveryHistory) { + return orderDeliveryHistoryMapper.updateById(orderDeliveryHistory); + } + + /** + * 删除订单发货记录信息 + * + * @param id 订单发货记录主键 + * @return 结果 + */ + public int deleteById(Long id) { + return orderDeliveryHistoryMapper.deleteById(id); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OrderItemService.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OrderItemService.java new file mode 100644 index 0000000..c052a58 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OrderItemService.java @@ -0,0 +1,190 @@ +package com.cyl.manager.oms.service; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.cyl.h5.pojo.dto.OrderProductListDTO; +import com.cyl.manager.oms.domain.OmsOrderService; +import com.cyl.manager.pms.domain.Product; +import com.cyl.manager.pms.domain.Sku; +import com.cyl.manager.pms.pojo.vo.ProductVO; +import com.cyl.manager.pms.service.ProductService; +import com.cyl.manager.pms.service.SkuService; +import com.cyl.manager.ums.domain.Member; +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.utils.IDGenerator; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import com.cyl.manager.oms.mapper.OrderItemMapper; +import com.cyl.manager.oms.domain.OrderItem; +import com.cyl.manager.oms.pojo.query.OrderItemQuery; +import org.springframework.transaction.annotation.Transactional; + +/** + * 订单中所包含的商品Service业务层处理 + * + * + * @author zcc + */ +@Service +public class OrderItemService extends ServiceImpl { + @Autowired + private OrderItemMapper orderItemMapper; + + + @Autowired + private ProductService productService; + + @Autowired + private SkuService skuService; + + + /** + * 查询订单中所包含的商品 + * + * @param id 订单中所包含的商品主键 + * @return 订单中所包含的商品 + */ + public OrderItem selectById(Long id) { + return orderItemMapper.selectById(id); + } + + /** + * 查询订单中所包含的商品列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 订单中所包含的商品 + */ + public List selectList(OrderItemQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper qw = new QueryWrapper<>(); + Long orderId = query.getOrderId(); + if (orderId != null) { + qw.eq("order_id", orderId); + } + Long productId = query.getProductId(); + if (productId != null) { + qw.eq("product_id", productId); + } + String outProductId = query.getOutProductId(); + if (!StringUtils.isEmpty(outProductId)) { + qw.eq("out_product_id", outProductId); + } + Long skuId = query.getSkuId(); + if (skuId != null) { + qw.eq("sku_id", skuId); + } + String outSkuId = query.getOutSkuId(); + if (!StringUtils.isEmpty(outSkuId)) { + qw.eq("out_sku_id", outSkuId); + } + Long productSnapshotId = query.getProductSnapshotId(); + if (productSnapshotId != null) { + qw.eq("product_snapshot_id", productSnapshotId); + } + Long skuSnapshotId = query.getSkuSnapshotId(); + if (skuSnapshotId != null) { + qw.eq("sku_snapshot_id", skuSnapshotId); + } + String pic = query.getPic(); + if (!StringUtils.isEmpty(pic)) { + qw.eq("pic", pic); + } + String productNameLike = query.getProductNameLike(); + if (!StringUtils.isEmpty(productNameLike)) { + qw.like("product_name", productNameLike); + } + BigDecimal salePrice = query.getSalePrice(); + if (salePrice != null) { + qw.eq("sale_price", salePrice); + } + BigDecimal purchasePrice = query.getPurchasePrice(); + if (purchasePrice != null) { + qw.eq("purchase_price", purchasePrice); + } + Integer quantity = query.getQuantity(); + if (quantity != null) { + qw.eq("quantity", quantity); + } + Long productCategoryId = query.getProductCategoryId(); + if (productCategoryId != null) { + qw.eq("product_category_id", productCategoryId); + } + String spData = query.getSpData(); + if (!StringUtils.isEmpty(spData)) { + qw.eq("sp_data", spData); + } + return orderItemMapper.selectList(qw); + } + + /** + * 新增订单中所包含的商品 + * + * @param orderItem 订单中所包含的商品 + * @return 结果 + */ + public int insert(OrderItem orderItem) { + orderItem.setCreateTime(LocalDateTime.now()); + return orderItemMapper.insert(orderItem); + } + + /** + * 修改订单中所包含的商品 + * + * @param orderItem 订单中所包含的商品 + * @return 结果 + */ + public int update(OrderItem orderItem) { + return orderItemMapper.updateById(orderItem); + } + + /** + * 删除订单中所包含的商品信息 + * + * @param id 订单中所包含的商品主键 + * @return 结果 + */ + public int deleteById(Long id) { + return orderItemMapper.deleteById(id); + } + + @Transactional + public void saveOrderItem(Member member, OmsOrderService omsOrderService, LocalDateTime optTime, + Long orderId, List list){ + List addOrderItemList = new ArrayList<>(); + list.forEach(item -> { + Sku sku = skuService.selectById(item.getSkuId()); + ProductVO product = productService.selectById(sku.getProductId()); + + OrderItem orderItem = new OrderItem(); + orderItem.setId(IDGenerator.generateId()); + orderItem.setOrderId(orderId); + orderItem.setOrderServiceId(omsOrderService.getId()); + orderItem.setProductId(product.getId()); + orderItem.setOutProductId(product.getOutProductId()); + orderItem.setSkuId(sku.getId()); + orderItem.setOutSkuId(sku.getOutSkuId()); + orderItem.setPic(sku.getPic()); + orderItem.setProductName(product.getName()); + orderItem.setSalePrice(sku.getPrice()); + orderItem.setQuantity(item.getQuantity()); + orderItem.setProductCategoryId(product.getCategoryId()); + orderItem.setSpData(sku.getSpData()); + orderItem.setCreateBy(member.getId()); + orderItem.setCreateTime(optTime); + addOrderItemList.add(orderItem); + }); + boolean flag = saveBatch(addOrderItemList); + if (!flag){ + throw new RuntimeException("新增订单item失败"); + } + } +} \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OrderOperateHistoryService.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OrderOperateHistoryService.java new file mode 100644 index 0000000..bac0928 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OrderOperateHistoryService.java @@ -0,0 +1,101 @@ +package com.cyl.manager.oms.service; + +import java.util.List; +import java.time.LocalDateTime; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import com.cyl.manager.oms.mapper.OrderOperateHistoryMapper; +import com.cyl.manager.oms.domain.OrderOperateHistory; +import com.cyl.manager.oms.pojo.query.OrderOperateHistoryQuery; + +/** + * 订单操作历史记录Service业务层处理 + * + * + * @author zcc + */ +@Service +public class OrderOperateHistoryService extends ServiceImpl { + @Autowired + private OrderOperateHistoryMapper orderOperateHistoryMapper; + + /** + * 查询订单操作历史记录 + * + * @param id 订单操作历史记录主键 + * @return 订单操作历史记录 + */ + public OrderOperateHistory selectById(Long id) { + return orderOperateHistoryMapper.selectById(id); + } + + /** + * 查询订单操作历史记录列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 订单操作历史记录 + */ + public List selectList(OrderOperateHistoryQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper qw = new QueryWrapper<>(); + String orderSn = query.getOrderSn(); + if (StrUtil.isNotBlank(orderSn)) { + qw.eq("order_sn", orderSn); + } + String operateMan = query.getOperateMan(); + if (!StringUtils.isEmpty(operateMan)) { + qw.eq("operate_man", operateMan); + } + Integer orderStatus = query.getOrderStatus(); + if (orderStatus != null) { + qw.eq("order_status", orderStatus); + } + String note = query.getNote(); + if (!StringUtils.isEmpty(note)) { + qw.eq("note", note); + } + qw.orderByDesc("create_time"); + return orderOperateHistoryMapper.selectList(qw); + } + + /** + * 新增订单操作历史记录 + * + * @param orderOperateHistory 订单操作历史记录 + * @return 结果 + */ + public int insert(OrderOperateHistory orderOperateHistory) { + orderOperateHistory.setCreateTime(LocalDateTime.now()); + return orderOperateHistoryMapper.insert(orderOperateHistory); + } + + /** + * 修改订单操作历史记录 + * + * @param orderOperateHistory 订单操作历史记录 + * @return 结果 + */ + public int update(OrderOperateHistory orderOperateHistory) { + return orderOperateHistoryMapper.updateById(orderOperateHistory); + } + + /** + * 删除订单操作历史记录信息 + * + * @param id 订单操作历史记录主键 + * @return 结果 + */ + public int deleteById(Long id) { + return orderOperateHistoryMapper.deleteById(id); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OrderService.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OrderService.java new file mode 100644 index 0000000..1adcb8b --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OrderService.java @@ -0,0 +1,692 @@ +package com.cyl.manager.oms.service; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.cyl.h5.pojo.dto.ApplyRefundDTO; +import com.cyl.h5.pojo.vo.query.OrderH5Query; +import com.cyl.manager.marketing.domain.WechatMemberCoupon; +import com.cyl.manager.marketing.service.impl.WechatMemberCouponServiceImpl; +import com.cyl.manager.oms.convert.OrderConvert; +import com.cyl.manager.oms.convert.OrderItemConvert; +import com.cyl.manager.oms.convert.OrderOperateHistoryConvert; +import com.cyl.manager.oms.domain.*; +import com.cyl.manager.oms.mapper.*; +import com.cyl.manager.oms.pojo.request.DeliverProductRequest; +import com.cyl.manager.oms.pojo.request.ManagerOrderQueryRequest; +import com.cyl.manager.oms.pojo.vo.*; +import com.cyl.manager.pms.convert.SkuConvert; +import com.cyl.manager.pms.mapper.ProductMapper; +import com.cyl.manager.pms.mapper.SkuMapper; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.domain.MemberWechat; +import com.cyl.manager.ums.domain.Pet; +import com.cyl.manager.ums.mapper.MemberAddressMapper; +import com.cyl.manager.ums.mapper.MemberCartMapper; +import com.cyl.manager.ums.mapper.MemberMapper; +import com.cyl.manager.ums.pojo.vo.PetVO; +import com.cyl.manager.ums.service.MemberWechatService; +import com.cyl.manager.ums.service.PetService; +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.enums.AftersaleStatus; +import com.ruoyi.common.enums.OrderRefundStatus; +import com.ruoyi.common.enums.OrderStatus; +import com.ruoyi.common.utils.AesCryptoUtils; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.IDGenerator; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.poi.ExcelUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * 订单表Service业务层处理 + * + * + * @author zcc + */ +@Service +public class OrderService { + @Autowired + private OrderMapper orderMapper; + @Autowired + private OrderConvert orderConvert; + @Autowired + private OrderItemMapper orderItemMapper; + @Autowired + private MemberAddressMapper memberAddressMapper; + @Autowired + private SkuMapper skuMapper; + @Autowired + private ProductMapper productMapper; + @Autowired + private SkuConvert skuConvert; + @Autowired + private OrderItemService orderItemService; + @Autowired + private OrderOperateHistoryMapper orderOperateHistoryMapper; + @Autowired + private MemberCartMapper memberCartMapper; + @Autowired + private MemberMapper memberMapper; + + @Autowired + private MemberWechatService memberWechatService; + + @Autowired + private OmsOrderServiceService omsOrderServiceService; + + @Autowired + private OrderItemConvert orderItemConvert; + + @Value("${aes.key}") + private String aesKey; + @Autowired + private OrderDeliveryHistoryMapper orderDeliveryHistoryMapper; + @Autowired + private OrderOperateHistoryConvert historyConvert; + + @Autowired + private AftersaleMapper aftersaleMapper; + + @Autowired + private AftersaleItemMapper aftersaleItemMapper; + + @Autowired + WechatMemberCouponServiceImpl wechatMemberCouponService; + + @Autowired + PetService petService; + + /** + * 查询订单表 + * + * @param id 订单表主键 + * @return 订单表 + */ + public ManagerOrderDetailVO selectById(Long id) { + Order order = orderMapper.selectById(id); + if (order == null){ + throw new RuntimeException("查不到订单信息"); + } + ManagerOrderDetailVO managerOrderDetailVO = new ManagerOrderDetailVO(); + //封装订单信息 + managerOrderDetailVO.setOrderId(id); + managerOrderDetailVO.setOrderSn(order.getOrderSn()); + managerOrderDetailVO.setOrderStatus(order.getStatus()); + managerOrderDetailVO.setCreateTime(order.getCreateTime()); + managerOrderDetailVO.setDeliveryTime(order.getDeliveryTime()); + managerOrderDetailVO.setExpressName(order.getDeliveryCompany()); + managerOrderDetailVO.setExpressNo(order.getDeliverySn()); + managerOrderDetailVO.setPayAmount(order.getPayAmount()); + managerOrderDetailVO.setPayTime(order.getPaymentTime()); + managerOrderDetailVO.setPayType(order.getPayType()); + managerOrderDetailVO.setTotalAmount(order.getTotalAmount()); + managerOrderDetailVO.setPayAmount(order.getPayAmount()); + managerOrderDetailVO.setReceiveTime(order.getReceiveTime()); + + managerOrderDetailVO.setNeedPreFamiliarize(order.getNeedPreFamiliarize()); + managerOrderDetailVO.setWechatMemberCouponId(order.getWechatMemberCouponId()); + //封装订单地址信息 + ManagerOrderAddressVo managerOrderAddressVo = new ManagerOrderAddressVo(); + managerOrderAddressVo.setUserPhone(order.getReceiverPhone()); + managerOrderAddressVo.setAddress(order.getReceiverDetailAddress()); + managerOrderAddressVo.setArea( + order.getReceiverCity() + + order.getReceiverDistrict()); + managerOrderAddressVo.setName(order.getReceiverName()); + managerOrderDetailVO.setAddressInfo(managerOrderAddressVo); + //查询会员信息 + Member member = memberMapper.selectById(order.getMemberId()); + managerOrderDetailVO.setUserName(member.getNickname()); + managerOrderDetailVO.setUserPhone(member.getPhoneHidden()); + + //查询服务信息 + List orderServiceInfoList = omsOrderServiceService.selectListByOrderId(id); + managerOrderDetailVO.setOrderService(orderServiceInfoList.get(0)); + managerOrderDetailVO.setOrderServiceList(orderServiceInfoList); + + Map petList = new HashMap<>(); + Map omsOrderServiceList = new HashMap<>(); + + orderServiceInfoList.forEach(item -> { + if (!omsOrderServiceList.containsKey(item.getId())) { + omsOrderServiceList.put(item.getId(), item); + if (item.getPetId() != null) { + if (!petList.containsKey(item.getPetId())) { + PetVO pet = petService.selectPetById(item.getPetId()); + if (pet != null) { + petList.put(pet.getId(), pet); + } + } + } + } + } + ); + + //查询购买商品信息 + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("order_id", order.getId()); + List orderItemList = orderItemMapper.selectList(qw); + List productList = new ArrayList<>(); + orderItemList.forEach(item -> { + ManagerOrderProductVO productVO = new ManagerOrderProductVO(); + productVO.setProductId(item.getProductId()); + productVO.setBuyNum(item.getQuantity()); + productVO.setPic(item.getPic()); + productVO.setProductName(item.getProductName()); + productVO.setSalePrice(item.getSalePrice()); + productVO.setSpData(item.getSpData()); + + OmsOrderService oos = omsOrderServiceList.get(item.getOrderServiceId()); + if (oos != null) { + productVO.setExpectServiceTime(oos.getExpectServiceTime()); + productVO.setServiceDate(oos.getServiceDate()); + productVO.setPetId(oos.getPetId()); + + PetVO p = petList.get(oos.getPetId()); + if (p != null) { + productVO.setPetType(p.getPetType()); + productVO.setPetName(p.getName()); + } + } + productList.add(productVO); + }); + managerOrderDetailVO.setProductInfo(productList); + + + + //优惠券信息 + if (order.getWechatMemberCouponId() != null) { + WechatMemberCoupon wechatMemberCoupon = wechatMemberCouponService.selectWechatMemberCouponById(order.getWechatMemberCouponId()); + managerOrderDetailVO.setWechatMemberCoupon(wechatMemberCoupon); + } + + return managerOrderDetailVO; + } + + /** + * 查询订单表列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 订单表 + */ + public PageImpl selectList(ManagerOrderQueryRequest query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + if (!StringUtils.isEmpty(query.getUserPhone())){ + query.setUserPhone(AesCryptoUtils.encrypt(aesKey, query.getUserPhone())); + } + List managerOrderVOList = orderMapper.selectManagerOrderPage(query); + if (CollectionUtil.isEmpty(managerOrderVOList)){ + return new PageImpl<>(managerOrderVOList, page, 0); + } + long total = ((com.github.pagehelper.Page) managerOrderVOList).getTotal(); + Map orderMap = managerOrderVOList.stream().collect(Collectors.toMap(ManagerOrderVO::getId, it -> it, (v1,v2) -> v2, LinkedHashMap::new)); + //查orderItem + QueryWrapper qw = new QueryWrapper<>(); + qw.in("order_id", orderMap.keySet()); + Map> groupedOrderItemMap = orderItemMapper.selectList(qw) + .stream().collect(Collectors.groupingBy(OrderItem::getOrderId)); + groupedOrderItemMap.keySet().forEach(key -> { + ManagerOrderVO managerOrderVO = orderMap.get(key); + managerOrderVO.setBuyNum(0); + List orderItemList = groupedOrderItemMap.get(key); + List addProductList = new ArrayList<>(); + orderItemList.forEach(item -> { + ManagerOrderProductVO vo = new ManagerOrderProductVO(); + vo.setProductName(item.getProductName()); + vo.setSalePrice(item.getSalePrice()); + vo.setPic(item.getPic()); + vo.setBuyNum(item.getQuantity()); + vo.setProductId(item.getProductId()); + vo.setSpData(item.getSpData()); + + vo.setOrderServiceId(item.getOrderServiceId()); + addProductList.add(vo); + managerOrderVO.setBuyNum(managerOrderVO.getBuyNum() + item.getQuantity()); + }); + managerOrderVO.setProductList(addProductList); + }); + return new PageImpl<>(new ArrayList<>(orderMap.values()), page, total); + } + + /** + * 新增订单表 + * + * @param order 订单表 + * @return 结果 + */ + public int insert(Order order) { + order.setCreateTime(LocalDateTime.now()); + return orderMapper.insert(order); + } + + /** + * 修改订单表 + * + * @param order 订单表 + * @return 结果 + */ + public int update(Order order) { + return orderMapper.updateById(order); + } + + /** + * 删除订单表信息 + * + * @param id 订单表主键 + * @return 结果 + */ + public int deleteById(Long id) { + return orderMapper.deleteById(id); + } + + public Page queryOrderPage(OrderH5Query query, Pageable pageReq) { + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("member_id", SecurityUtils.getUserId()); + IPage page = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(); + page.setCurrent(pageReq.getPageNumber()) + .setSize(pageReq.getPageSize()); + if (CollUtil.isEmpty(pageReq.getSort())) { + pageReq.getSort().forEach(it -> { + qw.orderBy(true, it.getDirection().isAscending(), it.getProperty()); + }); + } + Integer tab = query.getTab(); + if (tab != null) { + qw.eq("delete_status", 0); + if (tab == 1) { + qw.eq("status", 0); + } else if (tab == 2) { + qw.eq("status", 1); + qw.eq("aftersale_status", 1); + } else if (tab == 3) { + qw.eq("status", 2); + qw.eq("confirm_status", 0); + } else if (tab == 4) { + qw.eq("status", 2); + qw.eq("confirm_status", 1); + } + } + orderMapper.selectPage(page, qw); + List orders = page.getRecords(); + long total = page.getPages(); + if (CollUtil.isEmpty(orders)) { + return new PageImpl<>(Collections.emptyList(), pageReq, total); + } + LambdaQueryWrapper qw1 = new LambdaQueryWrapper<>(); + qw1.in(OrderItem::getOrderId, orders.stream().map(Order::getId).collect(Collectors.toList())); + Map> oid2items = orderItemMapper.selectList(qw1) + .stream().collect(Collectors.groupingBy(OrderItem::getOrderId)); + List res = orderConvert.dos2vos(orders); + res.forEach(it -> { + it.setItems(oid2items.get(it.getId())); + }); + return new PageImpl<>(res, pageReq, total); + } + + + public Integer saveMerchantNote(Order order) { + Order orderInDb = orderMapper.selectById(order.getId()); + if (orderInDb == null){ + throw new RuntimeException("订单不存在"); + } + UpdateWrapper qw = new UpdateWrapper<>(); + qw.eq("id", order.getId()); + qw.set("merchant_note", order.getMerchantNote()); + return orderMapper.update(null, qw); + } + + /** + * 管理后台发货 + * 目前发货是这样的:待发货、已发货、已完成都能执行发货,每次都会创建一条新的发货记录且修改订单发货信息 + * @param request 发货请求 + * @param userId 操作人 + * @return 结果 + */ + @Transactional + public String deliverProduct(DeliverProductRequest request, Long userId) { + //查询订单 + Order order = orderMapper.selectById(request.getOrderId()); + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("order_id", request.getOrderId()); + List orderItemList = orderItemMapper.selectList(qw); + if (order == null || CollectionUtil.isEmpty(orderItemList)){ + throw new RuntimeException("未找到该订单信息"); + } + // 是否为待发货、已发货 、已完成 + if (!(Constants.OrderStatus.SEND.equals(order.getStatus()) + || Constants.OrderStatus.GET.equals(order.getStatus()) + || Constants.OrderStatus.CONFIRM.equals(order.getStatus()))){ + throw new RuntimeException("订单状态错误"); + } + Integer orderStatus = + Constants.OrderStatus.SEND.equals(order.getStatus()) ? Constants.OrderStatus.GET : order.getStatus(); + //更新订单 + LocalDateTime optDate = LocalDateTime.now(); + UpdateWrapper orderQw = new UpdateWrapper(); + orderQw.eq("id", order.getId()) + .set("status", orderStatus) + .set("delivery_company", request.getExpressName()) + .set("delivery_sn", request.getExpressSn()) + .set("update_time", optDate) + .set("update_by", userId) + .set("delivery_time", optDate); + int rows = orderMapper.update(null, orderQw); + if (rows < 1){ + throw new RuntimeException("更新订单发货信息失败"); + } + //创建新的发货记录 + this.createDeliveryHistory(request, userId, optDate); + //创建订单操作记录 + this.createOrderOptHistory(order.getId(), order.getOrderSn(), orderStatus, userId, optDate); + return "发货成功"; + } + + @Transactional + public String orderComplete(Long orderId, Long userId) { + LocalDateTime optDate = LocalDateTime.now(); + Order order = orderMapper.selectById(orderId); + OrderItem queryOrderItem = new OrderItem(); + queryOrderItem.setOrderId(orderId); + List orderItemList = orderItemMapper.selectByEntity(queryOrderItem); + if(order == null || CollectionUtil.isEmpty(orderItemList)){ + throw new RuntimeException("未查询到订单信息"); + } + // 只有【待收货】状态才能确认 + if(!order.getStatus().equals(Constants.H5OrderStatus.DELIVERED)){ + throw new RuntimeException("订单状态已改变,请刷新"); + } + //更新订单 + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id", order.getId()); + updateWrapper.set("status", Constants.H5OrderStatus.COMPLETED); + updateWrapper.set("confirm_status", 1); + updateWrapper.set("receive_time", optDate); + int rows = orderMapper.update(null, updateWrapper); + if (rows < 1){ + throw new RuntimeException("更新订单状态失败"); + } + //创建订单操作记录 + OrderOperateHistory optHistory = new OrderOperateHistory(); + optHistory.setOrderId(order.getId()); + optHistory.setOrderSn(order.getOrderSn()); + optHistory.setOperateMan("后台管理员"); + optHistory.setOrderStatus(Constants.H5OrderStatus.COMPLETED); + optHistory.setCreateTime(optDate); + optHistory.setCreateBy(userId); + optHistory.setUpdateBy(userId); + optHistory.setUpdateTime(optDate); + rows = orderOperateHistoryMapper.insert(optHistory); + if (rows < 1){ + throw new RuntimeException("创建订单操作记录失败"); + } + + //TODO 发送短信 订单完成提醒(发给消费者和伴宠师) + + return order.getOrderSn(); + } + + /** + * 创建发货记录 + * @param request 发货请求 + * @param userId 操作人 + * @param optDate 操作时间 + */ + private void createDeliveryHistory(DeliverProductRequest request, Long userId, LocalDateTime optDate){ + OrderDeliveryHistory orderDeliveryHistory = new OrderDeliveryHistory(); + orderDeliveryHistory.setOrderId(request.getOrderId()); + orderDeliveryHistory.setDeliveryCompany(request.getExpressName()); + orderDeliveryHistory.setDeliverySn(request.getExpressSn()); + orderDeliveryHistory.setCreateTime(optDate); + orderDeliveryHistory.setCreateBy(userId); + int rows = orderDeliveryHistoryMapper.insert(orderDeliveryHistory); + if (rows < 1) { + throw new RuntimeException("新增订单发货记录失败"); + } + } + + /** + * 创建订单操作历史 + * @param orderId 订单id + * @param orderStatus 订单状态 + * @param userId 操作人 + * @param optDate 操作时间 + */ + private void createOrderOptHistory(Long orderId, String orderSn, Integer orderStatus, Long userId, LocalDateTime optDate){ + OrderOperateHistory optHistory = new OrderOperateHistory(); + optHistory.setOrderId(orderId); + optHistory.setOrderSn(orderSn); + optHistory.setOperateMan("后台管理员"); + optHistory.setOrderStatus(orderStatus); + optHistory.setCreateTime(optDate); + optHistory.setCreateBy(userId); + optHistory.setUpdateBy(userId); + optHistory.setUpdateTime(optDate); + int rows = orderOperateHistoryMapper.insert(optHistory); + if (rows < 1) { + throw new RuntimeException("新增订单操作记录失败"); + } + } + + /** + * 根据订单id查询订单操作日志 + * @param orderId 订单id + * @return 结果 + */ + public List log(Long orderId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(OrderOperateHistory::getOrderId, orderId); + wrapper.in(OrderOperateHistory::getOrderStatus, Arrays.asList(0, 1, 2, 3, 4)); + wrapper.orderByDesc(OrderOperateHistory::getCreateTime); + List historyList = orderOperateHistoryMapper.selectList(wrapper); + return historyConvert.dos2vos(historyList); + } + + public List selectExportList(ManagerOrderQueryRequest query, Pageable page) { + PageImpl list = this.selectList(query, page); + + List orderList = list.getContent(); + if (CollectionUtil.isEmpty(orderList)) { + return new ArrayList(); + } + + + List orderMVOs = new ArrayList<>(); + orderList.stream().forEach(order -> { + List orderItemList = order.getProductList(); + if (CollectionUtil.isNotEmpty(orderItemList)){ + //OmsOrderService orderServiceInfo = omsOrderServiceService.selectByOrderId(order.getId()); + + //查询所有的服务信息 + List orderServiceInfoList = omsOrderServiceService.selectListByOrderId(order.getId()); + + Map petList = new HashMap<>(); + Map omsOrderServiceList = new HashMap<>(); + + orderServiceInfoList.forEach(item -> { + if (!omsOrderServiceList.containsKey(item.getId())) { + omsOrderServiceList.put(item.getId(), item); + if (item.getPetId() != null) { + if (!petList.containsKey(item.getPetId())) { + PetVO pet = petService.selectPetById(item.getPetId()); + if (pet != null) { + petList.put(pet.getId(), pet); + } + } + } + } + } + ); + + + orderItemList.stream().forEach(orderItem -> { + OrderExportVO orderMVO = orderConvert.vo2vo(order); + + ManagerOrderProductExportVO managerOrderProductExportVO = orderItemConvert.vo2vo(orderItem); + + + OmsOrderService oos = omsOrderServiceList.get(orderItem.getOrderServiceId()); + if (oos != null) { + managerOrderProductExportVO.setExpectServiceTime(oos.getExpectServiceTime()); + managerOrderProductExportVO.setServiceDate(oos.getServiceDate()); + managerOrderProductExportVO.setPetId(oos.getPetId()); + + PetVO p = petList.get(oos.getPetId()); + if (p != null) { + managerOrderProductExportVO.setPetType(p.getPetType()); + managerOrderProductExportVO.setPetName(p.getName()); + } + } + + orderMVO.setOrderItem(managerOrderProductExportVO); + + MemberWechat memberWechat = memberWechatService.selectByMemberId(order.getMemberId()); + orderMVO.setWechatId(memberWechat.getWechatId()); + + orderMVOs.add(orderMVO); + }); + } + }); + + return orderMVOs; + } + + /** + * 申请售后 + * @param applyRefundDTO + * @return + */ + @Transactional + public String applyRefund(ApplyRefundDTO applyRefundDTO) { + Order order = orderMapper.selectById(applyRefundDTO.getOrderId()); + //是否符合售后条件 + this.checkIfCanApplyRefund(order); + LocalDateTime optDate = LocalDateTime.now(); + Long memberId = order.getMemberId(); + + applyRefundDTO.setApplyRefundType(1); + applyRefundDTO.setQuantity(1); +// applyRefundDTO. + + //创建售后单aftersale + Aftersale addAftersale = new Aftersale(); + addAftersale.setId(IDGenerator.generateId()); + addAftersale.setMemberId(order.getMemberId()); + addAftersale.setOrderId(order.getId()); + addAftersale.setReturnAmount(order.getPayAmount()); + addAftersale.setType(applyRefundDTO.getApplyRefundType()); + addAftersale.setStatus(AftersaleStatus.APPLY.getType()); + addAftersale.setReason(applyRefundDTO.getReason()); + addAftersale.setQuantity(applyRefundDTO.getQuantity()); + addAftersale.setReason(applyRefundDTO.getReason()); + addAftersale.setDescription(applyRefundDTO.getDescription()); + addAftersale.setProofPics(applyRefundDTO.getProofPics()); + addAftersale.setCreateTime(optDate); + addAftersale.setCreateBy(memberId); + addAftersale.setUpdateTime(optDate); + addAftersale.setUpdateBy(memberId); + int rows = aftersaleMapper.insert(addAftersale); + if (rows != 1) { + throw new RuntimeException("插入订单售后失败"); + } + //创建aftersale item + QueryWrapper orderItemQw = new QueryWrapper<>(); + orderItemQw.eq("order_id", order.getId()); + List orderItemList = orderItemMapper.selectList(orderItemQw); + List addAftersaleItemList = new ArrayList<>(); + orderItemList.forEach(orderItem -> { + AftersaleItem aftersaleItem = new AftersaleItem(); + aftersaleItem.setMemberId(memberId); + aftersaleItem.setAftersaleId(addAftersale.getId()); + aftersaleItem.setOrderId(orderItem.getOrderId()); + aftersaleItem.setOrderItemId(orderItem.getId()); + aftersaleItem.setReturnAmount(orderItem.getSalePrice().multiply(BigDecimal.valueOf(orderItem.getQuantity()))); + aftersaleItem.setQuantity(orderItem.getQuantity()); + aftersaleItem.setCreateTime(optDate); + aftersaleItem.setCreateBy(memberId); + aftersaleItem.setUpdateTime(optDate); + aftersaleItem.setUpdateBy(memberId); + addAftersaleItemList.add(aftersaleItem); + }); + rows = aftersaleItemMapper.insertBatch(addAftersaleItemList); + if (rows < 1){ + throw new RuntimeException("创建售后订单item失败"); + } + //更新订单 + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id", order.getId()).set("aftersale_status", OrderRefundStatus.APPLY.getType()) + .set("update_time", optDate) + .set("update_by", memberId); + rows = orderMapper.update(null, updateWrapper); + if (rows < 1){ + throw new RuntimeException("修改订单状态失败"); + } + //创建订单操作记录 + OrderOperateHistory optHistory = new OrderOperateHistory(); + optHistory.setOrderId(order.getId()); + optHistory.setOrderSn(order.getOrderSn()); + optHistory.setOperateMan("" + memberId); + optHistory.setOrderStatus(11); + optHistory.setCreateTime(optDate); + optHistory.setCreateBy(memberId); + optHistory.setUpdateBy(memberId); + optHistory.setUpdateTime(optDate); + rows = orderOperateHistoryMapper.insert(optHistory); + if (rows < 1){ + throw new RuntimeException("创建订单操作记录失败"); + } + return "售后申请成功"; + } + + /** + * check是否能售后 可售后的状态为:待发货、待收货、已完成 + * @param order 订单 + */ + private void checkIfCanApplyRefund(Order order){ + if (order == null){ + throw new RuntimeException("为查询到订单信息"); + } + Integer status = order.getStatus(); + boolean flag = OrderStatus.NOT_DELIVERED.getType().equals(status) || OrderStatus.DELIVERED.getType().equals(status) + || OrderStatus.COMPLETE.getType().equals(status); + if (!flag){ + throw new RuntimeException("该订单无法申请售后"); + } + if (OrderStatus.COMPLETE.getType().equals(order.getStatus()) && + DateUtils.betweenDay(LocalDateTime.now(), order.getReceiveTime()) > 7){ + throw new RuntimeException("订单确认收货时间已超过7天,无法申请售后"); + } + if(OrderRefundStatus.APPLY.getType().equals(order.getAftersaleStatus()) + || OrderRefundStatus.WAIT.getType().equals(order.getAftersaleStatus())){ + throw new RuntimeException("售后正在处理中"); + } + } + + public List getAllValidOrder() { + return orderMapper.getAllValidOrder(); + } + + public List getOrdersByMemberId(Long memberId, Date startDate,Date endDate) { + return orderMapper.getOrdersByMemberId(memberId,startDate,endDate); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/WechatPaymentHistoryService.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/WechatPaymentHistoryService.java new file mode 100644 index 0000000..feb50b5 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/WechatPaymentHistoryService.java @@ -0,0 +1,126 @@ +package com.cyl.manager.oms.service; + +import java.math.BigDecimal; +import java.util.List; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.manager.oms.domain.WechatPaymentHistory; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import com.cyl.manager.oms.mapper.WechatPaymentHistoryMapper; +import com.cyl.manager.oms.pojo.query.WechatPaymentHistoryQuery; + +/** + * 微信订单表Service业务层处理 + * + * + * @author zcc + */ +@Service +public class WechatPaymentHistoryService { + @Autowired + private WechatPaymentHistoryMapper wechatPaymentHistoryMapper; + + /** + * 查询微信订单表 + * + * @param id 微信订单表主键 + * @return 微信订单表 + */ + public WechatPaymentHistory selectById(Long id) { + return wechatPaymentHistoryMapper.selectById(id); + } + + /** + * 查询微信订单表列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 微信订单表 + */ + public List selectList(WechatPaymentHistoryQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper qw = new QueryWrapper<>(); + String paymentId = query.getPaymentId(); + if (!StringUtils.isEmpty(paymentId)) { + qw.eq("payment_id", paymentId); + } + Long memberId = query.getMemberId(); + if (memberId != null) { + qw.eq("member_id", memberId); + } + String openid = query.getOpenid(); + if (!StringUtils.isEmpty(openid)) { + qw.eq("openid", openid); + } + String realNameLike = query.getRealNameLike(); + if (!StringUtils.isEmpty(realNameLike)) { + qw.like("real_name", realNameLike); + } + String title = query.getTitle(); + if (!StringUtils.isEmpty(title)) { + qw.eq("title", title); + } + Long orderId = query.getOrderId(); + if (orderId != null) { + qw.eq("order_id", orderId); + } + BigDecimal money = query.getMoney(); + if (money != null) { + qw.eq("money", money); + } + Integer opType = query.getOpType(); + if (opType != null) { + qw.eq("op_type", opType); + } + Integer paymentStatus = query.getPaymentStatus(); + if (paymentStatus != null) { + qw.eq("payment_status", paymentStatus); + } + String attach = query.getAttach(); + if (!StringUtils.isEmpty(attach)) { + qw.eq("attach", attach); + } + String responseBody = query.getResponseBody(); + if (!StringUtils.isEmpty(responseBody)) { + qw.eq("response_body", responseBody); + } + return wechatPaymentHistoryMapper.selectList(qw); + } + + /** + * 新增微信订单表 + * + * @param wechatPaymentHistory 微信订单表 + * @return 结果 + */ + public int insert(WechatPaymentHistory wechatPaymentHistory) { + wechatPaymentHistory.setCreateTime(LocalDateTime.now()); + return wechatPaymentHistoryMapper.insert(wechatPaymentHistory); + } + + /** + * 修改微信订单表 + * + * @param wechatPaymentHistory 微信订单表 + * @return 结果 + */ + public int update(WechatPaymentHistory wechatPaymentHistory) { + return wechatPaymentHistoryMapper.updateById(wechatPaymentHistory); + } + + /** + * 删除微信订单表信息 + * + * @param id 微信订单表主键 + * @return 结果 + */ + public int deleteById(Long id) { + return wechatPaymentHistoryMapper.deleteById(id); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/controller/BrandController.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/controller/BrandController.java new file mode 100644 index 0000000..6a4b07a --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/controller/BrandController.java @@ -0,0 +1,99 @@ +package com.cyl.manager.pms.controller; + +import java.util.List; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.manager.pms.convert.BrandConvert; +import com.cyl.manager.pms.domain.Brand; +import com.cyl.manager.pms.pojo.query.BrandQuery; +import com.cyl.manager.pms.service.BrandService; +import com.cyl.manager.pms.pojo.vo.BrandVO; +import com.ruoyi.common.utils.poi.ExcelUtil; +/** + * 品牌管理Controller + * + * @author zcc + * @date 2022-11-28 + */ +@Api(description ="品牌管理接口列表") +@RestController +@RequestMapping("/pms/brand") +public class BrandController extends BaseController { + @Autowired + private BrandService service; + @Autowired + private BrandConvert convert; + + @ApiOperation("查询品牌管理列表") + @PreAuthorize("@ss.hasPermi('pms:brand:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody BrandQuery query, Pageable page) { + List list = service.selectList(query, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + } + @ApiOperation("所有品牌管理列表") + @PreAuthorize("@ss.hasPermi('pms:brand:list')") + @PostMapping("/all") + public ResponseEntity> all(@RequestBody BrandQuery query) { + return ResponseEntity.ok(service.selectList(query, null)); + } + + @ApiOperation("导出品牌管理列表") + @PreAuthorize("@ss.hasPermi('pms:brand:export')") + @Log(title = "品牌管理", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(BrandQuery query) { + List list = service.selectList(query, null); + ExcelUtil util = new ExcelUtil<>(BrandVO.class); + return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "品牌管理数据")); + } + + @ApiOperation("获取品牌管理详细信息") + @PreAuthorize("@ss.hasPermi('pms:brand:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("新增品牌管理") + @PreAuthorize("@ss.hasPermi('pms:brand:add')") + @Log(title = "品牌管理", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody Brand brand) { + return ResponseEntity.ok(service.insert(brand)); + } + + @ApiOperation("修改品牌管理") + @PreAuthorize("@ss.hasPermi('pms:brand:edit')") + @Log(title = "品牌管理", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody Brand brand) { + return ResponseEntity.ok(service.update(brand)); + } + + @ApiOperation("删除品牌管理") + @PreAuthorize("@ss.hasPermi('pms:brand:remove')") + @Log(title = "品牌管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/controller/ProductCategoryController.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/controller/ProductCategoryController.java new file mode 100644 index 0000000..1459644 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/controller/ProductCategoryController.java @@ -0,0 +1,80 @@ +package com.cyl.manager.pms.controller; + +import java.util.List; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.manager.pms.convert.ProductCategoryConvert; +import com.cyl.manager.pms.domain.ProductCategory; +import com.cyl.manager.pms.pojo.query.ProductCategoryQuery; +import com.cyl.manager.pms.service.ProductCategoryService; +import com.cyl.manager.pms.pojo.vo.ProductCategoryVO; + +/** + * 商品分类Controller + * + * @author zcc + * @date 2022-11-28 + */ +@Api(description ="商品分类接口列表") +@RestController +@RequestMapping("/pms/productCategory") +public class ProductCategoryController extends BaseController { + @Autowired + private ProductCategoryService service; + @Autowired + private ProductCategoryConvert convert; + + @ApiOperation("查询商品分类列表") + @PreAuthorize("@ss.hasPermi('pms:productCategory:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody ProductCategoryQuery query) { + List list = service.selectList(query, null); + return ResponseEntity.ok(list); + } + + @ApiOperation("获取商品分类详细信息") + @PreAuthorize("@ss.hasPermi('pms:productCategory:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("新增商品分类") + @PreAuthorize("@ss.hasPermi('pms:productCategory:add')") + @Log(title = "商品分类", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody ProductCategory productCategory) { + return ResponseEntity.ok(service.insert(productCategory)); + } + + @ApiOperation("修改商品分类") + @PreAuthorize("@ss.hasPermi('pms:productCategory:edit')") + @Log(title = "商品分类", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody ProductCategory productCategory) { + return ResponseEntity.ok(service.update(productCategory)); + } + + @ApiOperation("删除商品分类") + @PreAuthorize("@ss.hasPermi('pms:productCategory:remove')") + @Log(title = "商品分类", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/controller/ProductController.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/controller/ProductController.java new file mode 100644 index 0000000..2d4230d --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/controller/ProductController.java @@ -0,0 +1,93 @@ +package com.cyl.manager.pms.controller; + +import java.util.List; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.manager.pms.convert.ProductConvert; +import com.cyl.manager.pms.domain.Product; +import com.cyl.manager.pms.pojo.query.ProductQuery; +import com.cyl.manager.pms.service.ProductService; +import com.cyl.manager.pms.pojo.vo.ProductVO; +import com.ruoyi.common.utils.poi.ExcelUtil; +/** + * 商品信息Controller + * + * @author zcc + * @date 2022-11-28 + */ +@Api(description ="商品信息接口列表") +@RestController +@RequestMapping("/pms/product") +public class ProductController extends BaseController { + @Autowired + private ProductService service; + @Autowired + private ProductConvert convert; + + @ApiOperation("查询商品信息列表") + @PreAuthorize("@ss.hasPermi('pms:product:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody ProductQuery query, Pageable page) { + List list = service.selectList(query, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + @ApiOperation("导出商品信息列表") + @PreAuthorize("@ss.hasPermi('pms:product:export')") + @Log(title = "商品信息", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(ProductQuery query) { + List list = service.selectList(query, null); + ExcelUtil util = new ExcelUtil<>(ProductVO.class); + return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "商品信息数据")); + } + + @ApiOperation("获取商品信息详细信息") + @PreAuthorize("@ss.hasPermi('pms:product:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("新增商品信息") + @PreAuthorize("@ss.hasPermi('pms:product:add')") + @Log(title = "商品信息", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody ProductVO product) { + return ResponseEntity.ok(service.insert(product)); + } + + @ApiOperation("修改商品信息") + @PreAuthorize("@ss.hasPermi('pms:product:edit')") + @Log(title = "商品信息", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody ProductVO product) { + return ResponseEntity.ok(service.update(product)); + } + + @ApiOperation("删除商品信息") + @PreAuthorize("@ss.hasPermi('pms:product:remove')") + @Log(title = "商品信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/controller/SkuController.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/controller/SkuController.java new file mode 100644 index 0000000..463223f --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/controller/SkuController.java @@ -0,0 +1,93 @@ +package com.cyl.manager.pms.controller; + +import java.util.List; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.manager.pms.convert.SkuConvert; +import com.cyl.manager.pms.domain.Sku; +import com.cyl.manager.pms.pojo.query.SkuQuery; +import com.cyl.manager.pms.service.SkuService; +import com.cyl.manager.pms.pojo.vo.SkuVO; +import com.ruoyi.common.utils.poi.ExcelUtil; +/** + * sku信息Controller + * + * @author zcc + * @date 2022-11-28 + */ +@Api(description ="sku信息接口列表") +@RestController +@RequestMapping("/pms/sku") +public class SkuController extends BaseController { + @Autowired + private SkuService service; + @Autowired + private SkuConvert convert; + + @ApiOperation("查询sku信息列表") + @PreAuthorize("@ss.hasPermi('pms:sku:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody SkuQuery query, Pageable page) { + List list = service.selectList(query, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + @ApiOperation("导出sku信息列表") + @PreAuthorize("@ss.hasPermi('pms:sku:export')") + @Log(title = "sku信息", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(SkuQuery query) { + List list = service.selectList(query, null); + ExcelUtil util = new ExcelUtil<>(SkuVO.class); + return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "sku信息数据")); + } + + @ApiOperation("获取sku信息详细信息") + @PreAuthorize("@ss.hasPermi('pms:sku:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("新增sku信息") + @PreAuthorize("@ss.hasPermi('pms:sku:add')") + @Log(title = "sku信息", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody Sku sku) { + return ResponseEntity.ok(service.insert(sku)); + } + + @ApiOperation("修改sku信息") + @PreAuthorize("@ss.hasPermi('pms:sku:edit')") + @Log(title = "sku信息", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody Sku sku) { + return ResponseEntity.ok(service.update(sku)); + } + + @ApiOperation("删除sku信息") + @PreAuthorize("@ss.hasPermi('pms:sku:remove')") + @Log(title = "sku信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/convert/BrandConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/convert/BrandConvert.java new file mode 100644 index 0000000..7d31c4c --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/convert/BrandConvert.java @@ -0,0 +1,16 @@ +package com.cyl.manager.pms.convert; + +import org.mapstruct.Mapper; +import com.cyl.manager.pms.domain.Brand; +import com.cyl.manager.pms.pojo.vo.BrandVO; +import java.util.List; +/** + * 品牌管理 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface BrandConvert { + + List dos2vos(List list); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/convert/ProductCategoryConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/convert/ProductCategoryConvert.java new file mode 100644 index 0000000..0e04f73 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/convert/ProductCategoryConvert.java @@ -0,0 +1,19 @@ +package com.cyl.manager.pms.convert; + +import com.cyl.h5.pojo.dto.CategoryDTO; +import org.mapstruct.Mapper; +import com.cyl.manager.pms.domain.ProductCategory; +import com.cyl.manager.pms.pojo.vo.ProductCategoryVO; +import java.util.List; +/** + * 商品分类 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface ProductCategoryConvert { + + List dos2vos(List list); + + CategoryDTO do2dto(ProductCategory it); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/convert/ProductConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/convert/ProductConvert.java new file mode 100644 index 0000000..0650167 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/convert/ProductConvert.java @@ -0,0 +1,21 @@ +package com.cyl.manager.pms.convert; + +import com.cyl.h5.pojo.dto.ProductDTO; +import org.mapstruct.Mapper; +import com.cyl.manager.pms.domain.Product; +import com.cyl.manager.pms.pojo.vo.ProductVO; +import java.util.List; +/** + * 商品信息 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface ProductConvert { + + List dos2vos(List list); + Product vo2do(ProductVO productVO); + ProductVO do2vo(Product product); + + List dos2dtos(List products); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/convert/SkuConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/convert/SkuConvert.java new file mode 100644 index 0000000..b2c5104 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/convert/SkuConvert.java @@ -0,0 +1,16 @@ +package com.cyl.manager.pms.convert; + +import org.mapstruct.Mapper; +import com.cyl.manager.pms.domain.Sku; +import com.cyl.manager.pms.pojo.vo.SkuVO; +import java.util.List; +/** + * sku信息 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface SkuConvert { + + List dos2vos(List list); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/Brand.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/Brand.java new file mode 100644 index 0000000..ce7a0dd --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/Brand.java @@ -0,0 +1,39 @@ +package com.cyl.manager.pms.domain; + +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 品牌管理对象 pms_brand + * + * @author zcc + */ +@ApiModel(description="品牌管理对象") +@Data +@TableName("pms_brand") +public class Brand extends BaseAudit { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("NAME") + @Excel(name = "NAME") + private String name; + + @ApiModelProperty("SORT") + @Excel(name = "SORT") + private Integer sort; + + @ApiModelProperty("SHOW_STATUS") + @Excel(name = "SHOW_STATUS") + private Integer showStatus; + + @ApiModelProperty("品牌logo") + @Excel(name = "品牌logo") + private String logo; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/Product.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/Product.java new file mode 100644 index 0000000..1cde9fd --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/Product.java @@ -0,0 +1,100 @@ +package com.cyl.manager.pms.domain; + +import java.math.BigDecimal; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 商品信息对象 pms_product + * + * @author zcc + */ +@ApiModel(description="商品信息对象") +@Data +@TableName("pms_product") +public class Product extends BaseAudit { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("BRAND_ID") + @Excel(name = "BRAND_ID") + private Long brandId; + + @ApiModelProperty("CATEGORY_ID") + @Excel(name = "CATEGORY_ID") + private Long categoryId; + + @ApiModelProperty("商品编码") + @Excel(name = "商品编码") + private String outProductId; + + @ApiModelProperty("NAME") + @Excel(name = "NAME") + private String name; + + @ApiModelProperty("主图") + @Excel(name = "主图") + private String pic; + + @ApiModelProperty("画册图片,连产品图片限制为5张,以逗号分割") + @Excel(name = "画册图片,连产品图片限制为5张,以逗号分割") + private String albumPics; + + @ApiModelProperty("主图") + @Excel(name = "主图") + private String detailPic; + + @ApiModelProperty("上架状态:0->下架;1->上架") + @Excel(name = "上架状态:0->下架;1->上架") + private Integer publishStatus; + + @ApiModelProperty("排序") + @Excel(name = "排序") + private Integer sort; + + @ApiModelProperty("PRICE") + @Excel(name = "PRICE") + private BigDecimal price; + + @ApiModelProperty("单位") + @Excel(name = "单位") + private String unit; + + @ApiModelProperty("商品重量,默认为克") + @Excel(name = "商品重量,默认为克") + private BigDecimal weight; + + @ApiModelProperty("商品简介") + @Excel(name = "商品简介") + private String shortDescription; + + @ApiModelProperty("描述") + @Excel(name = "描述") + private String description; + + @ApiModelProperty("商品销售属性,json格式") + @Excel(name = "商品销售属性,json格式") + private String productAttr; + + @ApiModelProperty("产品详情网页内容") + @Excel(name = "产品详情网页内容") + private String detailHtml; + + @ApiModelProperty("移动端网页详情") + @Excel(name = "移动端网页详情") + private String detailMobileHtml; + + @ApiModelProperty("品牌名称") + @Excel(name = "品牌名称") + private String brandName; + + @ApiModelProperty("商品分类名称") + @Excel(name = "商品分类名称") + private String productCategoryName; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/ProductCategory.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/ProductCategory.java new file mode 100644 index 0000000..2efa4f1 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/ProductCategory.java @@ -0,0 +1,47 @@ +package com.cyl.manager.pms.domain; + +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 商品分类对象 pms_product_category + * + * @author zcc + */ +@ApiModel(description="商品分类对象") +@Data +@TableName("pms_product_category") +public class ProductCategory extends BaseAudit { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("上级分类的编号:0表示一级分类") + @Excel(name = "上级分类的编号:0表示一级分类") + private Long parentId; + + @ApiModelProperty("NAME") + @Excel(name = "NAME") + private String name; + + @ApiModelProperty("分类级别:0->1级;1->2级") + @Excel(name = "分类级别:0->1级;1->2级") + private Integer level; + + @ApiModelProperty("显示状态:0->不显示;1->显示") + @Excel(name = "显示状态:0->不显示;1->显示") + private Integer showStatus; + + @ApiModelProperty("SORT") + @Excel(name = "SORT") + private Integer sort; + + @ApiModelProperty("图标") + @Excel(name = "图标") + private String icon; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/Sku.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/Sku.java new file mode 100644 index 0000000..0c552d5 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/Sku.java @@ -0,0 +1,48 @@ +package com.cyl.manager.pms.domain; + +import java.math.BigDecimal; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * sku信息对象 pms_sku + * + * @author zcc + */ +@ApiModel(description="sku信息对象") +@Data +@TableName("pms_sku") +public class Sku extends BaseAudit { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("PRODUCT_ID") + @Excel(name = "PRODUCT_ID") + private Long productId; + + @ApiModelProperty("sku编码") + @Excel(name = "sku编码") + private String outSkuId; + + @ApiModelProperty("PRICE") + @Excel(name = "PRICE") + private BigDecimal price; + + @ApiModelProperty("展示图片") + @Excel(name = "展示图片") + private String pic; + + @ApiModelProperty("商品销售属性,json格式") + @Excel(name = "商品销售属性,json格式") + private String spData; + + @ApiModelProperty("库存数") + @Excel(name = "库存数") + private Integer stock; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/mapper/BrandMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/mapper/BrandMapper.java new file mode 100644 index 0000000..23fa853 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/mapper/BrandMapper.java @@ -0,0 +1,20 @@ +package com.cyl.manager.pms.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.pms.domain.Brand; + +/** + * 品牌管理Mapper接口 + * + * @author zcc + */ +public interface BrandMapper extends BaseMapper { + /** + * 查询品牌管理列表 + * + * @param brand 品牌管理 + * @return 品牌管理集合 + */ + List selectByEntity(Brand brand); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/mapper/ProductCategoryMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/mapper/ProductCategoryMapper.java new file mode 100644 index 0000000..8a6db5e --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/mapper/ProductCategoryMapper.java @@ -0,0 +1,20 @@ +package com.cyl.manager.pms.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.pms.domain.ProductCategory; + +/** + * 商品分类Mapper接口 + * + * @author zcc + */ +public interface ProductCategoryMapper extends BaseMapper { + /** + * 查询商品分类列表 + * + * @param productCategory 商品分类 + * @return 商品分类集合 + */ + List selectByEntity(ProductCategory productCategory); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/mapper/ProductMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/mapper/ProductMapper.java new file mode 100644 index 0000000..44d9a64 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/mapper/ProductMapper.java @@ -0,0 +1,20 @@ +package com.cyl.manager.pms.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.pms.domain.Product; + +/** + * 商品信息Mapper接口 + * + * @author zcc + */ +public interface ProductMapper extends BaseMapper { + /** + * 查询商品信息列表 + * + * @param product 商品信息 + * @return 商品信息集合 + */ + List selectByEntity(Product product); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/mapper/SkuMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/mapper/SkuMapper.java new file mode 100644 index 0000000..e2cd36c --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/mapper/SkuMapper.java @@ -0,0 +1,24 @@ +package com.cyl.manager.pms.mapper; + +import java.time.LocalDateTime; +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.pms.domain.Sku; +import org.apache.ibatis.annotations.Param; + +/** + * sku信息Mapper接口 + * + * @author zcc + */ +public interface SkuMapper extends BaseMapper { + /** + * 查询sku信息列表 + * + * @param sku sku信息 + * @return sku信息集合 + */ + List selectByEntity(Sku sku); + + int updateStockById(@Param("skuId")Long skuId, @Param("optDate")LocalDateTime optDate, @Param("quantity")Integer quantity); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/dto/MemberCartDTO.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/dto/MemberCartDTO.java new file mode 100644 index 0000000..cdc41e6 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/dto/MemberCartDTO.java @@ -0,0 +1,11 @@ +package com.cyl.manager.pms.pojo.dto; + +import com.cyl.manager.ums.domain.MemberCart; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class MemberCartDTO extends MemberCart { + private BigDecimal price; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/query/BrandQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/query/BrandQuery.java new file mode 100644 index 0000000..052559e --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/query/BrandQuery.java @@ -0,0 +1,27 @@ +package com.cyl.manager.pms.pojo.query; + +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 品牌管理 查询 对象 + * + * @author zcc + */ +@ApiModel(description="品牌管理 查询 对象") +@Data +public class BrandQuery { + @ApiModelProperty("NAME 精确匹配") + private String nameLike; + + @ApiModelProperty("SORT 精确匹配") + private Integer sort; + + @ApiModelProperty("SHOW_STATUS 精确匹配") + private Integer showStatus; + + @ApiModelProperty("品牌logo 精确匹配") + private String logo; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/query/ProductCategoryQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/query/ProductCategoryQuery.java new file mode 100644 index 0000000..df96e2a --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/query/ProductCategoryQuery.java @@ -0,0 +1,33 @@ +package com.cyl.manager.pms.pojo.query; + +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 商品分类 查询 对象 + * + * @author zcc + */ +@ApiModel(description="商品分类 查询 对象") +@Data +public class ProductCategoryQuery { + @ApiModelProperty("上级分类的编号:0表示一级分类 精确匹配") + private Long parentId; + + @ApiModelProperty("NAME 精确匹配") + private String nameLike; + + @ApiModelProperty("分类级别:0->1级;1->2级 精确匹配") + private Integer level; + + @ApiModelProperty("显示状态:0->不显示;1->显示 精确匹配") + private Integer showStatus; + + @ApiModelProperty("SORT 精确匹配") + private Integer sort; + + @ApiModelProperty("图标 精确匹配") + private String icon; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/query/ProductQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/query/ProductQuery.java new file mode 100644 index 0000000..4958b01 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/query/ProductQuery.java @@ -0,0 +1,83 @@ +package com.cyl.manager.pms.pojo.query; + +import java.math.BigDecimal; +import java.util.List; + +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 商品信息 查询 对象 + * + * @author zcc + */ +@ApiModel(description="商品信息 查询 对象") +@Data +public class ProductQuery { + @ApiModelProperty("BRAND_ID 精确匹配") + private Long brandId; + + @ApiModelProperty("CATEGORY_ID 精确匹配") + private Long categoryId; + + @ApiModelProperty("根据CATEGORY_ID 精确匹配") + private List categoryIds; + + @ApiModelProperty("商品编码 精确匹配") + private String outProductId; + + @ApiModelProperty("NAME 精确匹配") + private String nameLike; + + @ApiModelProperty("主图 精确匹配") + private String pic; + + @ApiModelProperty("画册图片,连产品图片限制为5张,以逗号分割 精确匹配") + private String albumPics; + + @ApiModelProperty("详情页主图 精确匹配") + private String detailPic; + + @ApiModelProperty("上架状态:0->下架;1->上架 精确匹配") + private Integer publishStatus; + + @ApiModelProperty("排序 精确匹配") + private Integer sort; + + @ApiModelProperty("PRICE 精确匹配") + private BigDecimal price; + + @ApiModelProperty("单位 精确匹配") + private String unit; + + @ApiModelProperty(name = "商品销售属性,json格式") + private String productAttr; + + @ApiModelProperty("商品重量,默认为克 精确匹配") + private BigDecimal weight; + + @ApiModelProperty("产品详情网页内容 精确匹配") + private String detailHtml; + + @ApiModelProperty("移动端网页详情 精确匹配") + private String detailMobileHtml; + + @ApiModelProperty("品牌名称 精确匹配") + private String brandNameLike; + + @ApiModelProperty("商品分类名称 精确匹配") + private String productCategoryNameLike; + + @ApiModelProperty("排序字段") + private String orderField = "sort"; + + @ApiModelProperty("排序规则") + private String orderSort = "desc"; + + @ApiModelProperty("搜索关键字") + private String search; + + @ApiModelProperty("是否查询SKU") + private boolean needSku = false; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/query/SkuQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/query/SkuQuery.java new file mode 100644 index 0000000..daa66a7 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/query/SkuQuery.java @@ -0,0 +1,31 @@ +package com.cyl.manager.pms.pojo.query; + +import java.math.BigDecimal; +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * sku信息 查询 对象 + * + * @author zcc + */ +@ApiModel(description="sku信息 查询 对象") +@Data +public class SkuQuery { + @ApiModelProperty("PRODUCT_ID 精确匹配") + private Long productId; + + @ApiModelProperty("sku编码 精确匹配") + private String outSkuId; + + @ApiModelProperty("PRICE 精确匹配") + private BigDecimal price; + + @ApiModelProperty("展示图片 精确匹配") + private String pic; + + @ApiModelProperty("商品销售属性,json格式 精确匹配") + private String spData; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/vo/BrandVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/vo/BrandVO.java new file mode 100644 index 0000000..8c725be --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/vo/BrandVO.java @@ -0,0 +1,27 @@ +package com.cyl.manager.pms.pojo.vo; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 品牌管理 数据视图对象 + * + * @author zcc + */ +@Data +public class BrandVO extends BaseAudit { + /** ID */ + private Long id; + /** NAME */ + @Excel(name = "NAME") + private String name; + /** SORT */ + @Excel(name = "SORT") + private Integer sort; + /** SHOW_STATUS */ + @Excel(name = "SHOW_STATUS") + private Integer showStatus; + /** 品牌logo */ + @Excel(name = "品牌logo") + private String logo; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/vo/ProductCategoryVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/vo/ProductCategoryVO.java new file mode 100644 index 0000000..7cabdfa --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/vo/ProductCategoryVO.java @@ -0,0 +1,30 @@ +package com.cyl.manager.pms.pojo.vo; + +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; + +import java.util.List; + +/** + * 商品分类 数据视图对象 + * + * @author zcc + */ +@Data +public class ProductCategoryVO extends BaseAudit { + /** ID */ + private Long id; + /** 上级分类的编号:0表示一级分类 */ + private Long parentId; + /** NAME */ + private String name; + /** 分类级别:0->1级;1->2级 */ + private Integer level; + /** 显示状态:0->不显示;1->显示 */ + private Integer showStatus; + /** SORT */ + private Integer sort; + /** 图标 */ + private String icon; + private List children; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/vo/ProductVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/vo/ProductVO.java new file mode 100644 index 0000000..f20e56e --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/vo/ProductVO.java @@ -0,0 +1,76 @@ +package com.cyl.manager.pms.pojo.vo; + +import java.math.BigDecimal; +import java.util.List; + +import com.cyl.manager.pms.domain.Sku; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 商品信息 数据视图对象 + * + * @author zcc + */ +@Data +public class ProductVO extends BaseAudit { + /** ID */ + private Long id; + /** BRAND_ID */ + @Excel(name = "BRAND_ID") + private Long brandId; + /** CATEGORY_ID */ + @Excel(name = "CATEGORY_ID") + private Long categoryId; + /** 商品编码 */ + @Excel(name = "商品编码") + private String outProductId; + /** NAME */ + @Excel(name = "NAME") + private String name; + /** 主图 */ + @Excel(name = "主图") + private String pic; + /** 画册图片,连产品图片限制为5张,以逗号分割 */ + @Excel(name = "画册图片,连产品图片限制为5张,以逗号分割") + private String albumPics; + /** 详情页主图 */ + @Excel(name = "详情页主图") + private String detailPic; + /** 上架状态:0->下架;1->上架 */ + @Excel(name = "上架状态:0->下架;1->上架") + private Integer publishStatus; + /** 排序 */ + @Excel(name = "排序") + private Integer sort; + /** PRICE */ + @Excel(name = "PRICE") + private BigDecimal price; + /** 单位 */ + @Excel(name = "单位") + private String unit; + /** 商品重量,默认为克 */ + @Excel(name = "商品重量,默认为克") + private BigDecimal weight; + /** 商品简介 */ + @Excel(name = "商品简介") + private String shortDescription; + /** 描述 */ + @Excel(name = "描述") + private String description; + /** 产品详情网页内容 */ + @Excel(name = "产品详情网页内容") + private String detailHtml; + /** 移动端网页详情 */ + @Excel(name = "移动端网页详情") + private String detailMobileHtml; + /** 品牌名称 */ + @Excel(name = "品牌名称") + private String brandName; + /** 商品分类名称 */ + @Excel(name = "商品分类名称") + private String productCategoryName; + @Excel(name = "商品销售属性,json格式") + private String productAttr; + private List skuList; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/vo/SkuVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/vo/SkuVO.java new file mode 100644 index 0000000..86d8a75 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/pojo/vo/SkuVO.java @@ -0,0 +1,33 @@ +package com.cyl.manager.pms.pojo.vo; + +import java.math.BigDecimal; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * sku信息 数据视图对象 + * + * @author zcc + */ +@Data +public class SkuVO extends BaseAudit { + /** ID */ + private Long id; + /** PRODUCT_ID */ + @Excel(name = "PRODUCT_ID") + private Long productId; + /** sku编码 */ + @Excel(name = "sku编码") + private String outSkuId; + /** PRICE */ + @Excel(name = "PRICE") + private BigDecimal price; + /** 展示图片 */ + @Excel(name = "展示图片") + private String pic; + /** 商品销售属性,json格式 */ + @Excel(name = "商品销售属性,json格式") + private String spData; + @Excel(name = "库存数") + private Integer stock; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/service/BrandService.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/service/BrandService.java new file mode 100644 index 0000000..d60217d --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/service/BrandService.java @@ -0,0 +1,98 @@ +package com.cyl.manager.pms.service; + +import java.util.List; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import com.cyl.manager.pms.mapper.BrandMapper; +import com.cyl.manager.pms.domain.Brand; +import com.cyl.manager.pms.pojo.query.BrandQuery; + +/** + * 品牌管理Service业务层处理 + * + * + * @author zcc + */ +@Service +public class BrandService { + @Autowired + private BrandMapper brandMapper; + + /** + * 查询品牌管理 + * + * @param id 品牌管理主键 + * @return 品牌管理 + */ + public Brand selectById(Long id) { + return brandMapper.selectById(id); + } + + /** + * 查询品牌管理列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 品牌管理 + */ + public List selectList(BrandQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper qw = new QueryWrapper<>(); + String nameLike = query.getNameLike(); + if (!StringUtils.isEmpty(nameLike)) { + qw.like("name", nameLike); + } + Integer sort = query.getSort(); + if (sort != null) { + qw.eq("sort", sort); + } + Integer showStatus = query.getShowStatus(); + if (showStatus != null) { + qw.eq("show_status", showStatus); + } + String logo = query.getLogo(); + if (!StringUtils.isEmpty(logo)) { + qw.eq("logo", logo); + } + qw.orderByAsc("sort"); + return brandMapper.selectList(qw); + } + + /** + * 新增品牌管理 + * + * @param brand 品牌管理 + * @return 结果 + */ + public int insert(Brand brand) { + brand.setCreateTime(LocalDateTime.now()); + return brandMapper.insert(brand); + } + + /** + * 修改品牌管理 + * + * @param brand 品牌管理 + * @return 结果 + */ + public int update(Brand brand) { + return brandMapper.updateById(brand); + } + + /** + * 删除品牌管理信息 + * + * @param id 品牌管理主键 + * @return 结果 + */ + public int deleteById(Long id) { + return brandMapper.deleteById(id); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/service/ProductCategoryService.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/service/ProductCategoryService.java new file mode 100644 index 0000000..6a5d6d9 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/service/ProductCategoryService.java @@ -0,0 +1,246 @@ +package com.cyl.manager.pms.service; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.cyl.h5.pojo.dto.CategoryDTO; +import com.cyl.manager.pms.convert.ProductCategoryConvert; +import com.cyl.manager.pms.convert.ProductConvert; +import com.cyl.manager.pms.domain.Product; +import com.cyl.manager.pms.domain.ProductCategory; +import com.cyl.manager.pms.mapper.ProductCategoryMapper; +import com.cyl.manager.pms.mapper.ProductMapper; +import com.cyl.manager.pms.pojo.query.ProductCategoryQuery; +import com.cyl.manager.pms.pojo.vo.ProductCategoryVO; +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.exception.base.BaseException; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 商品分类Service业务层处理 + * + * @author zcc + */ +@Service +public class ProductCategoryService { + @Autowired + private ProductCategoryMapper productCategoryMapper; + @Autowired + private ProductMapper productMapper; + @Autowired + private ProductCategoryConvert convert; + @Autowired + private ProductConvert productConvert; + + /** + * 查询商品分类 + * + * @param id 商品分类主键 + * @return 商品分类 + */ + public ProductCategory selectById(Long id) { + return productCategoryMapper.selectById(id); + } + + /** + * 查询商品分类列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 商品分类 + */ + public List selectList(ProductCategoryQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper qw = new QueryWrapper<>(); + Long parentId = query.getParentId(); + if (parentId != null) { + qw.eq("parent_id", parentId); + } + String nameLike = query.getNameLike(); + if (!StringUtils.isEmpty(nameLike)) { + qw.like("name", nameLike); + } + Integer level = query.getLevel(); + if (level != null) { + qw.eq("level", level); + } + Integer showStatus = query.getShowStatus(); + if (showStatus != null) { + qw.eq("show_status", showStatus); + } + Integer sort = query.getSort(); + if (sort != null) { + qw.eq("sort", sort); + } + String icon = query.getIcon(); + if (!StringUtils.isEmpty(icon)) { + qw.eq("icon", icon); + } + qw.orderByAsc("sort"); + + List productCategories = productCategoryMapper.selectList(qw); + List productCategoryVOS = convert.dos2vos(productCategories); + return formatTree(productCategoryVOS); + + } + + private List formatTree(List nodes) { + List tree = new ArrayList<>(); + List children = new ArrayList<>(); + // 1)先获取到所有根节点 + for (ProductCategoryVO node : nodes) { + if (node.getParentId() == null || node.getParentId() == 0) { + tree.add(node); + } else { + children.add(node); + } + } + // 2)把所有除根结点外的节点作为子节点,然后遍历每一个根节点 + for (ProductCategoryVO node : tree) { + // 3)递归构建此根的子节点 + recur(node, children); + } + return tree; + } + + private void recur(ProductCategoryVO rootNode, List children) { + // 1)遍历剩余子节点,找出当前根的子节点 + for (ProductCategoryVO node : children) { + // 2)如果子节点的父id等于根节点的id,那么就将这个节点加到根节点的children列表中 + if (rootNode.getId() == node.getParentId()) { + if (rootNode.getChildren() == null) { + rootNode.setChildren(new ArrayList<>()); + } + rootNode.getChildren().add(node); + // 3)以当前节点作为根节点进行递归,检查是否还有子节点。 + recur(node, children); + } + } + } + + + /** + * 新增商品分类 + * + * @param productCategory 商品分类 + * @return 结果 + */ + public int insert(ProductCategory productCategory) { + productCategory.setCreateTime(LocalDateTime.now()); + return productCategoryMapper.insert(productCategory); + } + + /** + * 修改商品分类 + * + * @param productCategory 商品分类 + * @return 结果 + */ + public int update(ProductCategory productCategory) { + return productCategoryMapper.updateById(productCategory); + } + + /** + * 删除商品分类信息 + * + * @param id 商品分类主键 + * @return 结果 + */ + public int deleteById(Long id) { + return productCategoryMapper.deleteById(id); + } + + public List queryCategoryWithProductsForH5() { + QueryWrapper qw1 = new QueryWrapper<>(); +// qw1.eq("level", 0); + qw1.eq("show_status", 1); + Page pageReq = new Page<>(); + pageReq.setCurrent(1L) + .setSize(10) + .setOrders(Collections.singletonList(OrderItem.desc("sort"))); + List categories = productCategoryMapper.selectPage(pageReq, qw1).getRecords(); + if (CollUtil.isEmpty(categories)) { + return Collections.emptyList(); + } + ; + return categories.stream().map(it -> { + CategoryDTO dto = convert.do2dto(it); + // 寻找该分类下的所有子类 + List allChildCate = queryAllChildCate(Collections.singletonList(it.getId()), 0); + QueryWrapper qw = new QueryWrapper<>(); + qw.select("id", "pic", "name", "price", "category_id"); + qw.in("category_id", allChildCate); + qw.le("sort", 100); + List categoryId2List = productMapper.selectList(qw); + dto.setProductList(productConvert.dos2dtos(categoryId2List)); + return dto; + }).collect(Collectors.toList()); + } + + private List queryAllChildCate(List categoryIds, int level) { + List res = new ArrayList<>(); + QueryWrapper qw = new QueryWrapper<>(); + qw.select("id"); + List ids = categoryIds; + while (true) { + qw.clear(); + qw.in("parent_id", ids); + qw.eq("level", level + 1); + qw.eq("show_status", 1); + ids = productCategoryMapper.selectList(qw).stream().map(ProductCategory::getId).collect(Collectors.toList()); + if (CollUtil.isEmpty(ids)) { + break; + } + res.addAll(ids); + level++; + } + res.addAll(categoryIds); + return res; + } + + public List h5Categories() { + QueryWrapper qw = new QueryWrapper<>(); + qw.select("id", "parent_id", "name", "level", "sort", "icon"); + qw.eq("show_status", 1); +// qw.le("level", 2); + return productCategoryMapper.selectList(qw); + } + + public List getBrotherAndChild(Long id, boolean withChild) { + ProductCategory category = productCategoryMapper.selectById(id); + if (category == null) { + throw new BaseException("参数错误"); + } + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(ProductCategory::getParentId, category.getParentId()); + qw.eq(ProductCategory::getLevel, category.getLevel()); + qw.eq(ProductCategory::getShowStatus, 1); + qw.select(ProductCategory::getId, ProductCategory::getParentId, ProductCategory::getName, ProductCategory::getLevel, ProductCategory::getSort, ProductCategory::getIcon); + List res = productCategoryMapper.selectList(qw); + if (withChild) { + qw.clear(); + qw.eq(ProductCategory::getParentId, category.getId()); + qw.eq(ProductCategory::getLevel, category.getLevel() + 1); + qw.eq(ProductCategory::getShowStatus, 1); + List childs = productCategoryMapper.selectList(qw); + res.addAll(childs); + } + if (category.getParentId() != null && category.getParentId() != -1) { + res.add(productCategoryMapper.selectById(category.getParentId())); + } + return res; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/service/ProductService.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/service/ProductService.java new file mode 100644 index 0000000..13e1cc5 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/service/ProductService.java @@ -0,0 +1,210 @@ +package com.cyl.manager.pms.service; + +import java.util.*; +import java.time.LocalDateTime; +import java.util.stream.Collectors; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.h5.pojo.vo.ProductDetail; +import com.cyl.manager.pms.convert.ProductConvert; +import com.cyl.manager.pms.domain.Sku; +import com.cyl.manager.pms.mapper.BrandMapper; +import com.cyl.manager.pms.mapper.SkuMapper; +import com.cyl.manager.pms.pojo.vo.ProductVO; +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.utils.SecurityUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import com.cyl.manager.pms.mapper.ProductMapper; +import com.cyl.manager.pms.domain.Product; +import com.cyl.manager.pms.pojo.query.ProductQuery; +import org.springframework.transaction.annotation.Transactional; + +/** + * 商品信息Service业务层处理 + * + * + * @author zcc + */ +@Service +@Slf4j +public class ProductService { + @Autowired + private ProductMapper productMapper; + + @Autowired + private SkuMapper skuMapper; + @Autowired + private BrandMapper brandMapper; + @Autowired + private ProductConvert convert; + + /** + * 查询商品信息 + * + * @param id 商品信息主键 + * @return 商品信息 + */ + public ProductVO selectById(Long id) { + Product product = productMapper.selectById(id); + ProductVO productVO = convert.do2vo(product); + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("product_id", product.getId()); + List skus = skuMapper.selectList(qw); + productVO.setSkuList(skus); + return productVO; + } + + /** + * 查询商品信息列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 商品信息 + */ + public List selectList(ProductQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNoneEmpty(query.getOrderField())){ + if (StringUtils.isNotEmpty(query.getOrderSort()) && "desc".equalsIgnoreCase(query.getOrderSort())) { + qw.orderByDesc(query.getOrderField()); + } else { + qw.orderByAsc(query.getOrderField()); + } + }else { + qw.orderByDesc("publish_status"); + qw.orderByAsc("sort"); + } + Long categoryId = query.getCategoryId(); + if (categoryId != null) { + qw.eq("category_id", categoryId); + } else { + List categoryIds = query.getCategoryIds(); + if (categoryIds != null) { + qw.in("category_id", categoryIds); + } + } + + Integer publishStatus = query.getPublishStatus(); + if (publishStatus != null) { + qw.eq("publish_status", publishStatus); + } + String search = query.getSearch(); + if (StringUtils.isNoneEmpty(search)){ + qw.like("name", "%".concat(query.getSearch().trim()).concat("%")); + } + return productMapper.selectList(qw); + } + + /** + * 新增商品信息 + * + * @param productVO 商品信息 + * @return 结果 + */ + @Transactional + public int insert(ProductVO productVO) { + + Product product = convert.vo2do(productVO); + product.setCreateTime(LocalDateTime.now()); + List skuList = productVO.getSkuList(); + productMapper.insert(product); + if(skuList!=null){ + skuList.forEach(sku -> { + sku.setProductId(product.getId()); + sku.setCreateTime(LocalDateTime.now()); + skuMapper.insert(sku); + }); + } + return 1; + } + + /** + * 修改商品信息 + * + * @param productVO 商品信息 + * @return 结果 + */ + @Transactional + public int update(ProductVO productVO) { + Product dbProduct = productMapper.selectById(productVO.getId()); + List idList = productVO.getSkuList().stream().filter(it -> it.getId() != null).map(it -> it.getId()).collect(Collectors.toList()); + if (dbProduct == null) { + return 0; + } + Long userId = SecurityUtils.getUserId(); + Product product = convert.vo2do(productVO); + List skuList = productVO.getSkuList(); + product.setUpdateBy(userId); + product.setUpdateTime(LocalDateTime.now()); + productMapper.updateById(product); + //查找库中所有的sku + Map map = new HashMap<>(); + map.put("product_id", product.getId()); + Map skuMap = skuMapper.selectByMap(map).stream().collect(Collectors.toMap(it -> it.getId(), it -> it)); + //针对已有的进行编辑 + List updateList = productVO.getSkuList().stream().filter(it -> it.getId() != null).collect(Collectors.toList()); + if (!CollectionUtil.isEmpty(updateList)) { + log.info("共有{}个sku需要修改,{},productId:{}",updateList.size(), JSONUtil.toJsonStr(updateList),productVO.getId()); + updateList.forEach(it->{ + Sku sku = skuMap.get(it.getId()); + sku.setUpdateBy(SecurityUtils.getUserId()); + sku.setUpdateTime(LocalDateTime.now()); + sku.setPrice(it.getPrice()); + sku.setSpData(it.getSpData()); + sku.setPic(it.getPic()); + sku.setOutSkuId(it.getOutSkuId()); + sku.setStock(it.getStock()); + skuMapper.updateById(sku); + }); + } + //针对没有的进行新增 + List addList = productVO.getSkuList().stream().filter(it -> it.getId() == null).collect(Collectors.toList()); + if (!CollectionUtil.isEmpty(addList)) { + log.info("共有{}个sku需要新增,{},productId:{}",addList.size(), JSONUtil.toJsonStr(addList),productVO.getId()); + addList.forEach(sku -> { + sku.setProductId(product.getId()); + sku.setCreateTime(LocalDateTime.now()); + skuMapper.insert(sku); + }); + } + //删除 + List deleteIds = skuMap.keySet().stream().filter(it -> !idList.contains(it)).collect(Collectors.toList()); + if (!CollectionUtil.isEmpty(deleteIds)) { + log.info("共有{}个sku需要删除,{},productId:{}",deleteIds.size(), JSONUtil.toJsonStr(deleteIds),productVO.getId()); + skuMapper.deleteBatchIds(deleteIds); + } + return 1; + } + + /** + * 删除商品信息信息 + * + * @param id 商品信息主键 + * @return 结果 + */ + public int deleteById(Long id) { + return productMapper.deleteById(id); + } + + public ProductDetail queryDetail(Long id) { + ProductDetail res = new ProductDetail(); + Product d = productMapper.selectById(id); + res.setProduct(d); + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(Sku::getProductId, id); + res.setSkus(skuMapper.selectList(qw)); + if (d.getBrandId() != null) { + res.setBrand(brandMapper.selectById(d.getBrandId())); + } + return res; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/pms/service/SkuService.java b/ruoyi-mall/src/main/java/com/cyl/manager/pms/service/SkuService.java new file mode 100644 index 0000000..d37efb8 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/pms/service/SkuService.java @@ -0,0 +1,114 @@ +package com.cyl.manager.pms.service; + +import java.math.BigDecimal; +import java.util.List; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import com.cyl.manager.pms.mapper.SkuMapper; +import com.cyl.manager.pms.domain.Sku; +import com.cyl.manager.pms.pojo.query.SkuQuery; + +/** + * sku信息Service业务层处理 + * + * + * @author zcc + */ +@Service +public class SkuService { + @Autowired + private SkuMapper skuMapper; + + /** + * 查询sku信息 + * + * @param id sku信息主键 + * @return sku信息 + */ + public Sku selectById(Long id) { + return skuMapper.selectById(id); + } + + /** + * 查询sku信息列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return sku信息 + */ + public List selectList(SkuQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper qw = new QueryWrapper<>(); + Long productId = query.getProductId(); + if (productId != null) { + qw.eq("product_id", productId); + } + String outSkuId = query.getOutSkuId(); + if (!StringUtils.isEmpty(outSkuId)) { + qw.eq("out_sku_id", outSkuId); + } + BigDecimal price = query.getPrice(); + if (price != null) { + qw.eq("price", price); + } + String pic = query.getPic(); + if (!StringUtils.isEmpty(pic)) { + qw.eq("pic", pic); + } + String spData = query.getSpData(); + if (!StringUtils.isEmpty(spData)) { + qw.eq("sp_data", spData); + } + return skuMapper.selectList(qw); + } + + /** + * 新增sku信息 + * + * @param sku sku信息 + * @return 结果 + */ + public int insert(Sku sku) { + sku.setCreateTime(LocalDateTime.now()); + return skuMapper.insert(sku); + } + + /** + * 修改sku信息 + * + * @param sku sku信息 + * @return 结果 + */ + public int update(Sku sku) { + return skuMapper.updateById(sku); + } + + /** + * 删除sku信息信息 + * + * @param id sku信息主键 + * @return 结果 + */ + public int deleteById(Long id) { + return skuMapper.deleteById(id); + } + + public List queryByProductID(Long id) { + if (id == null) { + return null; + } + + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(Sku::getProductId, id); + return skuMapper.selectList(qw); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/controller/StaffAnswerRecordController.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/controller/StaffAnswerRecordController.java new file mode 100644 index 0000000..09df1dd --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/controller/StaffAnswerRecordController.java @@ -0,0 +1,60 @@ +package com.cyl.manager.staff.controller; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.cyl.h5.pojo.vo.StaffAnswerRecordVO; +import com.cyl.manager.staff.domain.Staff; +import com.cyl.manager.staff.domain.StaffAnswerRecord; +import com.cyl.manager.staff.domain.dto.StaffAnswerAuditDTO; +import com.cyl.manager.staff.domain.vo.StaffVO; +import com.cyl.manager.staff.service.IStaffAnswerRecordService; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import io.swagger.annotations.ApiParam; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/staff/answer/record") +public class StaffAnswerRecordController { + + @Autowired + private IStaffAnswerRecordService staffAnswerRecordService; + + /** + * 查询答题信息列表 + */ + @GetMapping("/page") + public AjaxResult list(@ApiParam(value = "当前页数", required = true, defaultValue = "1") @RequestParam Long currentPage, + @ApiParam(value = "每页数据量", required = true, defaultValue = "10") @RequestParam Long pageSize, + @ApiParam(value = "查询条件", required = false) StaffAnswerRecord record) + { + IPage page = new Page<>(currentPage, pageSize); + IPage result = + staffAnswerRecordService + .page(page, Wrappers.query(record).lambda().orderByDesc(StaffAnswerRecord::getCreateTime)); + return AjaxResult.successData(result); + } + + /** + * 审核 + */ + @PostMapping("/audit") + public AjaxResult audit(@RequestBody StaffAnswerAuditDTO auditDTO) + { + return AjaxResult.successData(staffAnswerRecordService.audit(auditDTO)); + } + + /** + * 查询单条记录 + */ + @GetMapping("/getById") + public AjaxResult getById( @ApiParam(value = "id", required = true) @RequestParam Long id) { + return AjaxResult.successData(staffAnswerRecordService.getById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/controller/StaffController.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/controller/StaffController.java new file mode 100644 index 0000000..b835c8b --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/controller/StaffController.java @@ -0,0 +1,177 @@ +package com.cyl.manager.staff.controller; + +import java.io.IOException; +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.cyl.manager.staff.domain.BondTransaction; +import com.cyl.manager.staff.domain.dto.StaffBondPageListDTO; +import com.cyl.manager.staff.domain.vo.DeductBondSubmitForm; +import com.cyl.manager.staff.domain.vo.StaffVO; +import com.cyl.manager.staff.domain.Staff; +import com.cyl.manager.staff.service.IBondTransactionService; +import com.cyl.manager.staff.service.IStaffService; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.redis.RedisService; +import com.ruoyi.common.enums.BondOrderStatus; +import com.ruoyi.common.enums.BondTransactionType; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 人员信息Controller + * + * @author ruoyi + * @date 2023-12-26 + */ +@RestController +@RequestMapping("/system/staff") +@Slf4j +public class StaffController extends BaseController { + @Autowired + private IStaffService staffService; + + @Autowired + private IBondTransactionService bondTransactionService; + + @Autowired + private RedisService redisService; + + /** + * 查询人员信息列表 + */ + @PreAuthorize("@ss.hasPermi('system:staff:list')") + @GetMapping("/list") + public TableDataInfo list(Staff staff) { + startPage(); + List list = staffService.selectStaffListForFont(staff); + return getDataTable(list); + } + + /** + * 导出人员信息列表 + */ + @PreAuthorize("@ss.hasPermi('system:staff:export')") + @Log(title = "人员信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, Staff staff) throws IOException { + List list = staffService.selectStaffList(staff); + ExcelUtil util = new ExcelUtil(Staff.class); + util.exportExcel(response, list, "人员信息数据"); + } + + /** + * 获取人员信息详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:staff:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(staffService.selectStaffById(id)); + } + + /** + * 新增人员信息 + */ + @PreAuthorize("@ss.hasPermi('system:staff:add')") + @Log(title = "人员信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody Staff staff) { + return toAjax(staffService.insertStaff(staff)); + } + + /** + * 修改人员信息 + */ + @PreAuthorize("@ss.hasPermi('system:staff:edit')") + @Log(title = "人员信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody Staff staff) { + return toAjax(staffService.updateStaff(staff)); + } + + /** + * 删除人员信息 + */ + @PreAuthorize("@ss.hasPermi('system:staff:remove')") + @Log(title = "人员信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(staffService.deleteStaffByIds(ids)); + } + + + /** + * 保证金扣除 + */ + @PreAuthorize("@ss.hasPermi('system:staff:edit')") + @Log(title = "保证金扣除", businessType = BusinessType.UPDATE) + @PostMapping("/deductBond") + public AjaxResult edit(@RequestBody @Valid DeductBondSubmitForm form) { + log.info("保证金扣除,提交的数据:{}", JSONObject.toJSONString(form)); + + //防止用户重复提交 + String redisKey = "h5_oms_staff_deduct_bond_" + form.getStaffId(); + String redisValue = form.getStaffId() + "_" + System.currentTimeMillis(); + try { + redisService.lock(redisKey, redisValue, 60); + Staff staff = staffService.getById(form.getStaffId()); + //校验参数 + form.validParams(staff, form.getAmount()); + + //更新staff表金额 以及 保证金缴纳状态 + staffService.updateStaffBondMoney(staff.getId(), form.getAmount(), 0); + + //保存保证金交易流水 + BondTransaction bondTransaction = new BondTransaction(); + bondTransaction.setAmount(form.getAmount()); + bondTransaction.setReason(form.getRemark()); + bondTransaction.setType(BondTransactionType.DEDUCT.getType()); + bondTransaction.setStaffId(staff.getId()); + bondTransaction.setStatus(BondOrderStatus.SUCCESS.getType()); + bondTransaction.setPayType(Constants.PayType.MANUAL);//手动扣款 + bondTransactionService.addBondTransaction(bondTransaction); + + return AjaxResult.success("保证金扣除成功"); + } catch (Exception e) { + log.error("保证金扣除异常", e); + throw new RuntimeException(e.getMessage()); + } finally { + try { + redisService.unLock(redisKey, redisValue); + } catch (Exception e) { + log.error("", e); + } + } + } + + + /** + * 后台查询人员保证金信息列表 + */ + @PreAuthorize("@ss.hasPermi('system:staff:list')") + @GetMapping("/getBondPageList") + public AjaxResult getBondPageList(@ApiParam(value = "查询条件", required = false) StaffBondPageListDTO staffBondPageParam) { + startPage(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (staffBondPageParam.getStaffId() != null) { + queryWrapper.eq(BondTransaction::getStatus, staffBondPageParam.getStaffId()); + } + queryWrapper.orderByDesc(BondTransaction::getCreateTme); + List list = bondTransactionService.list(queryWrapper); + return AjaxResult.success(getDataTable(list)); + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/controller/StaffImageController.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/controller/StaffImageController.java new file mode 100644 index 0000000..bf77bd2 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/controller/StaffImageController.java @@ -0,0 +1,107 @@ +package com.cyl.manager.staff.controller; + +import java.io.IOException; +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.cyl.manager.oms.pojo.vo.ManagerOrderDetailVO; +import com.cyl.manager.staff.domain.StaffImage; +import com.cyl.manager.staff.service.IStaffImageService; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 人员信息Controller + * + * @author ruoyi + * @date 2023-12-26 + */ +@RestController +@RequestMapping("/system/image") +public class StaffImageController extends BaseController +{ + @Autowired + private IStaffImageService staffImageService; + + /** + * 查询人员信息列表 + */ + @PreAuthorize("@ss.hasPermi('system:image:list')") + @GetMapping("/list") + public TableDataInfo list(StaffImage staffImage) + { + startPage(); + List list = staffImageService.selectStaffImageList(staffImage); + return getDataTable(list); + } + + /** + * 导出人员信息列表 + */ + @PreAuthorize("@ss.hasPermi('system:image:export')") + @Log(title = "人员信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, StaffImage staffImage) throws IOException { + List list = staffImageService.selectStaffImageList(staffImage); + ExcelUtil util = new ExcelUtil(StaffImage.class); + util.exportExcel(response, list, "人员信息数据"); + } + + /** + * 获取人员信息详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:image:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) + { + return ResponseEntity.ok(staffImageService.selectStaffImageById(id)); + } + + /** + * 新增人员信息 + */ + @PreAuthorize("@ss.hasPermi('system:image:add')") + @Log(title = "人员信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody StaffImage staffImage) + { + return toAjax(staffImageService.insertStaffImage(staffImage)); + } + + /** + * 修改人员信息 + */ + @PreAuthorize("@ss.hasPermi('system:image:edit')") + @Log(title = "人员信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody StaffImage staffImage) + { + return toAjax(staffImageService.updateStaffImage(staffImage)); + } + + /** + * 删除人员信息 + */ + @PreAuthorize("@ss.hasPermi('system:image:remove')") + @Log(title = "人员信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(staffImageService.deleteStaffImageByIds(ids)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/BondTransaction.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/BondTransaction.java new file mode 100644 index 0000000..0f495a2 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/BondTransaction.java @@ -0,0 +1,80 @@ +package com.cyl.manager.staff.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 保证金缴纳明细表 + * + * @author jx + * @date 2024-12-26 + */ +@Data +@TableName(autoResultMap = true) +public class BondTransaction { + private static final long serialVersionUID = 1L; + + /** + * 交易流水 ID + */ + private Long id; + + /** + * 交易类型 + * 0 充值保证金 1扣除保证金 2保证金退款 + */ + @ApiModelProperty("交易类型") + private Integer type; + + @ApiModelProperty("充值/退款id") + private Long payId; + + @Excel(name = "员工ID") + private Long staffId; + + /** + * 金额 + * 支付金额/扣除金额/退款金额 + */ + @Excel(name = "金额") + private BigDecimal amount; + + /** + * 交易方式 + * 1->支付宝;2->微信;3->系统扣款;4->手动扣款 + */ + @Excel(name = "交易方式") + private Integer payType; + + /** + * 交易状态:充值/扣除/退款 + * 0->待交易;1->交易成功;2->交易失败;3->关闭交易;4->无效交易 + */ + @Excel(name = "交易状态") + private Integer status; + + /** + * 事件描述 + */ + @Excel(name = "事件描述") + private String reason; + + /** + * 创建时间 + */ + @Excel(name = "创建时间") + private Date createTme; + + /** + * 更新时间 + */ + @Excel(name = "更新时间") + private Date updateTme; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/DispatchOrder.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/DispatchOrder.java new file mode 100644 index 0000000..9285bd7 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/DispatchOrder.java @@ -0,0 +1,94 @@ +package com.cyl.manager.staff.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; +import com.cyl.h5.pojo.vo.H5OrderVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.BaseAudit; +import com.ruoyi.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + *

+ * 派单信息 + *

+ * + * @author 谷瑶 + * @since 2025-01-04 + */ +@TableName(value = "dispatch_order",autoResultMap = true) +@ApiModel(value = "DispatchOrder对象", description = "派单信息") +@Builder +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DispatchOrder extends BaseAudit { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("派单id") + @TableId(value = "id",type = IdType.ASSIGN_ID) + private String id; + + @ApiModelProperty("订单id") + @TableField("order_id") + private Long orderId; + + @ApiModelProperty("伴宠师id") + @TableField("staff_id") + private Long staffId; + + @ApiModelProperty("派单类型 1系统派单 2个人订单") + @TableField("dispatched_type") + private Integer dispatchedType; + + @ApiModelProperty("派单状态 1待接单,2已接单,3已流失") + @TableField("dispatched_status") + private Integer dispatchedStatus; + + @ApiModelProperty("服务地址") + @TableField("service_address") + private String serviceAddress; + + @ApiModelProperty("服务距离") + @TableField("service_distance") + private Integer serviceDistance; + + @ApiModelProperty("报酬") + @TableField("reward") + private BigDecimal reward; + + @ApiModelProperty("订单实体") + @TableField(value = "order_info", typeHandler = FastjsonTypeHandler.class) + private H5OrderVO orderInfo; + + @ApiModelProperty("删除标识") + @TableField("del_flag") + private Boolean delFlag; + + /** + * 发布时间 + */ + @ApiModelProperty("发布时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("dispatch_time") + private LocalDateTime dispatchTime; + + /** + * 接单时间 + */ + @ApiModelProperty("接单时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("accept_time") + private LocalDateTime acceptTime; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/Staff.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/Staff.java new file mode 100644 index 0000000..4fca5f4 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/Staff.java @@ -0,0 +1,184 @@ +package com.cyl.manager.staff.domain; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.Version; +import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; +import com.ruoyi.common.core.domain.BaseAudit; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +import java.math.BigDecimal; + +/** + * 人员信息对象 staff + * + * @author ruoyi + * @date 2023-12-26 + */ +@Data +@TableName(autoResultMap = true) +public class Staff extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 员工ID */ + private Long id; + + @ApiModelProperty("加密手机号") + private String phoneEncrypted; + + @ApiModelProperty("隐藏前三位后四位的手机号") + private String phoneHidden; + + /** 姓名 */ + @Excel(name = "姓名") + private String name; + + /** 年龄 */ + @Excel(name = "年龄") + private Integer age; + + /** 昵称 */ + @Excel(name = "昵称") + private String nickName; + + /** 姓 */ + @Excel(name = "姓") + private String lastName; + + /** 名 */ + @Excel(name = "名") + private String firstName; + + /** 性别 */ + @Excel(name = "性别") + private Long gender; + + /** 生日 */ + @Excel(name = "生日") + private String birthDay; + + /** 服务类型 */ + @Excel(name = "服务类型") + private Long staffType; + + /** 服务年限 */ + @Excel(name = "服务年限") + private Long serviceAge; + + /** 服务级别 */ + @Excel(name = "服务级别") + private Long serviceLevel; + + /** 服务时间 */ + @Excel(name = "服务时间") + private String serviceTime; + + /** 地址 */ + @Excel(name = "地址") + private String address; + + /** 人员简介 */ + @Excel(name = "人员简介") + private String shortDescription; + + /** 人员介绍 */ + @Excel(name = "人员介绍") + private String description; + + /** 删除标识 */ + private Integer delFlag; + + @ApiModelProperty("是否是合伙人(0否 1是)") + private String isPartner; + + + @ApiModelProperty("是否伴宠师(0否 1是)") + private String isPetCompanion; + + + @ApiModelProperty("电话号码") + private String phone; + + @ApiModelProperty("答题次数") + private Integer answerCount; + + @ApiModelProperty("邀请码") + private String inviteCode; + + @ApiModelProperty("养宠年限") + private Integer feedingAge; + + @ApiModelProperty("个人宠物类型,多个类型逗号分隔(1:猫咪,2狗狗 3异宠)") + private String petType; + + @ApiModelProperty("喂养员认证状态:0:未开始,1:通过基础考核,2:3次考试失败,3:培训考核审核中 4:培训考核审核通过,5:培训考核审核失败") + private Integer authenticateStatus; + + @ApiModelProperty("伴宠师状态 0正常 1已清退") + private Integer status; + + @ApiModelProperty("连续拒单次数") + private Integer continuousRejectCount; + + @ApiModelProperty("宠物图片") + @TableField(typeHandler = FastjsonTypeHandler.class) + private JSONArray petImages; + + + @ApiModelProperty("可服务宠物类型 1猫咪 2狗狗 3异宠") + @TableField(typeHandler = FastjsonTypeHandler.class) + private JSONArray servePetType; + + + @ApiModelProperty("基础服务") + private Integer baseService; + + + @ApiModelProperty("增值服务 1陪玩/遛狗 2一天多次(做卫生) 3护理 4提前熟悉") + @TableField(typeHandler = FastjsonTypeHandler.class) + private JSONArray externalService; + + @ApiModelProperty("接收超出订单范围加急派单通知 0不接收,1接收") + private Integer receiveUrgentOrder; + + @ApiModelProperty("点赞数") + private Integer star; + + @ApiModelProperty("是否完善服务信息(0未完善 1已完善)") + private Integer serviceInfoCommitted; + + + + + @ApiModelProperty("保证金缴纳状态:0:未缴纳,1已缴纳") + private Integer bondStatus; + + @ApiModelProperty("保证金余额") + private BigDecimal bondAmount; + + @ApiModelProperty("被扣除保证金总计") + private BigDecimal deductBondAmount; + + @ApiModelProperty("工具包接收人姓名)") + private String toolReceiveName; + + @ApiModelProperty("工具包接收人电话") + private String toolReceivePhone; + + @ApiModelProperty("工具包接收人地址") + private String toolReceiveAddress; + + @ApiModelProperty("数据库乐观锁字段") + @Version + private Integer lockVersion; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/StaffAnswerRecord.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/StaffAnswerRecord.java new file mode 100644 index 0000000..b84d45d --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/StaffAnswerRecord.java @@ -0,0 +1,67 @@ +package com.cyl.manager.staff.domain; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.time.LocalDateTime; +import java.util.List; + +import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; +import com.ruoyi.common.core.domain.BaseAudit; +import com.ruoyi.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +/** + *

+ * 答题记录表 + *

+ * + * @author 谷瑶 + * @since 2024-12-18 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@TableName(value = "staff_answer_record", autoResultMap = true) +@ApiModel(value = "StaffAnswerRecord对象", description = "答题记录表") +public class StaffAnswerRecord extends BaseAudit { + + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("记录id") + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("员工id") + @TableField("staff_id") + private Long staffId; + + @ApiModelProperty("员工名称") + @TableField("staff_name") + private Long staffName; + + + @ApiModelProperty("答案") + @TableField(value = "answer", typeHandler = FastjsonTypeHandler.class) + private List answer; + + @ApiModelProperty("审核留言") + @TableField("remark") + private String remark; + + @ApiModelProperty("状态 0未审核 1审核中 2审核通过 3审核不通过") + @TableField("status") + private Integer status; + + @ApiModelProperty("删除标识") + @TableField("del_flag") + private Integer delFlag; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/StaffImage.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/StaffImage.java new file mode 100644 index 0000000..2f88191 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/StaffImage.java @@ -0,0 +1,96 @@ +package com.cyl.manager.staff.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 人员信息对象 staff_image + * + * @author ruoyi + * @date 2023-12-26 + */ +public class StaffImage extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 图片ID */ + private Long id; + + /** 人员id */ + @Excel(name = "人员id") + private Long staffId; + + /** 图片地址 */ + @Excel(name = "图片地址") + private String url; + + /** 图片序号 */ + @Excel(name = "图片序号") + private Long orderNumber; + + /** 删除标识 */ + private Integer delFlag; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setStaffId(Long staffId) + { + this.staffId = staffId; + } + + public Long getStaffId() + { + return staffId; + } + public void setUrl(String url) + { + this.url = url; + } + + public String getUrl() + { + return url; + } + public void setOrderNumber(Long orderNumber) + { + this.orderNumber = orderNumber; + } + + public Long getOrderNumber() + { + return orderNumber; + } + public void setDelFlag(Integer delFlag) + { + this.delFlag = delFlag; + } + + public Integer getDelFlag() + { + return delFlag; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("staffId", getStaffId()) + .append("url", getUrl()) + .append("orderNumber", getOrderNumber()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/StaffServiceRecord.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/StaffServiceRecord.java new file mode 100644 index 0000000..930c03d --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/StaffServiceRecord.java @@ -0,0 +1,54 @@ +package com.cyl.manager.staff.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 员工服务记录表 + * + * @author jx + * @date 2024-01-06 + */ +@Data +@TableName(autoResultMap = true) +public class StaffServiceRecord { + private static final long serialVersionUID = 1L; + + /** + * 员工服务记录 ID + */ + private Long id; + + @ApiModelProperty("员工 ID") + private Long staffId; + + @ApiModelProperty("服务类型 0 猫咪喂养 1狗狗喂养 2 异宠喂养") + private Integer type; + + @ApiModelProperty("服务时间") + private Date serviceTime; + + @Excel(name = "服务描述") + private String remark; + + @Excel(name = "服务图片") + private String urls; + + /** + * 创建时间 + */ + @Excel(name = "创建时间") + private Date createTme; + + /** + * 更新时间 + */ + @Excel(name = "更新时间") + private Date updateTme; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/StaffWechat.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/StaffWechat.java new file mode 100644 index 0000000..408f30f --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/StaffWechat.java @@ -0,0 +1,78 @@ +package com.cyl.manager.staff.domain; + +import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import com.ruoyi.common.core.domain.BaseEntity; +import lombok.Data; +/** + * 用户微信信息对象 staff_wachat + * + * @author daixiande + */ +@Data +public class StaffWechat extends BaseAudit { + private static final long serialVersionUID = 1L; + + /** ID */ + private Long id; + + /** MEMBER_ID */ + @Excel(name = "STAFF_ID") + private Long staffId; + + /** 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段 */ + @Excel(name = "只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段") + private String unionid; + + /** 用户的标识,对当前公众号唯一 */ + @Excel(name = "用户的标识,对当前公众号唯一") + private String openid; + + /** 微信号 */ + @Excel(name = "微信号") + private String wechatId; + + /** 小程序唯一身份ID */ + @Excel(name = "小程序唯一身份ID") + private String routineOpenid; + + /** 用户所在的分组ID(兼容旧的用户分组接口) */ + @Excel(name = "用户所在的分组ID", readConverterExp = "兼=容旧的用户分组接口") + private Integer groupid; + + /** 用户被打上的标签ID列表 */ + @Excel(name = "用户被打上的标签ID列表") + private String tagidList; + + /** 用户是否订阅该公众号标识 */ + @Excel(name = "用户是否订阅该公众号标识") + private Integer subscribe; + + /** 关注公众号时间 */ + @Excel(name = "关注公众号时间") + private Integer subscribeTime; + + /** 小程序用户会话密匙 */ + @Excel(name = "小程序用户会话密匙") + private String sessionKey; + + /** token */ + @Excel(name = "token") + private String accessToken; + + /** 过期时间 */ + @Excel(name = "过期时间") + private Integer expiresIn; + + /** 刷新token */ + @Excel(name = "刷新token") + private String refreshToken; + + /** 过期时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "过期时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime expireTime; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/TrainCheckAnswer.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/TrainCheckAnswer.java new file mode 100644 index 0000000..5945626 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/TrainCheckAnswer.java @@ -0,0 +1,25 @@ +package com.cyl.manager.staff.domain; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class TrainCheckAnswer { + + @ApiModelProperty(value = "题目编号") + private String id; + + @ApiModelProperty(value = "问题") + private String question; + + @ApiModelProperty(value = "答案") + private String answer; + + @ApiModelProperty(value = "排序") + private Integer order; + + @ApiModelProperty(value = "是否通过") + private Boolean passed; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/dto/StaffAnswerAuditDTO.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/dto/StaffAnswerAuditDTO.java new file mode 100644 index 0000000..50aad4c --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/dto/StaffAnswerAuditDTO.java @@ -0,0 +1,28 @@ +package com.cyl.manager.staff.domain.dto; + +import com.cyl.h5.pojo.dto.TrainCheckAnswerDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class StaffAnswerAuditDTO { + + @ApiModelProperty(value = "记录id") + @NotNull(message = "id不能为空") + private Long id; + + @ApiModelProperty(value = "留言") + private String remark; + + @ApiModelProperty(value = "审核结果") + @NotEmpty(message = "审核结果不能为空") + private List list; + + @ApiModelProperty(value = "是否通过") + @NotNull(message = "是否通过,true和false") + private Boolean passed; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/dto/StaffBondPageListDTO.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/dto/StaffBondPageListDTO.java new file mode 100644 index 0000000..f279fe7 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/dto/StaffBondPageListDTO.java @@ -0,0 +1,12 @@ +package com.cyl.manager.staff.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class StaffBondPageListDTO { + + @ApiModelProperty(value = "员工id") + private Long staffId; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/vo/DeductBondSubmitForm.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/vo/DeductBondSubmitForm.java new file mode 100644 index 0000000..73c8d35 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/vo/DeductBondSubmitForm.java @@ -0,0 +1,49 @@ +package com.cyl.manager.staff.domain.vo; + +import com.cyl.manager.staff.domain.Staff; +import com.ruoyi.common.exception.ServiceException; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +/** + * 保证金扣除FORM + */ +@Data +public class DeductBondSubmitForm { + + @NotNull + private Long staffId; + + @ApiModelProperty("扣除保证金金额") + @NotNull(message = "扣除金额不能为空") + @Min(value = 1, message = "金额必须大于0") + private BigDecimal amount; + + @NotEmpty(message = "扣除保证金备注不能为空") + @ApiModelProperty("扣除保证金备注") + private String remark; + + /** + * 校验参数 + * @param staff + * @param deductAmount + */ + public void validParams(Staff staff, BigDecimal deductAmount) { + + if (deductAmount != null && deductAmount.compareTo(new BigDecimal(0)) <= 0) { + throw new ServiceException("扣除保证金金额必须大于0!"); + } + + //校验扣除的保证金金额不能大于 员工剩余的保证金额度 + if (staff.getBondAmount() == null || staff.getBondAmount().compareTo(deductAmount) <= 0) { + throw new ServiceException("扣除的保证金金额不能大于员工剩余的保证金额度!"); + } + + } + +} \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/vo/StaffVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/vo/StaffVO.java new file mode 100644 index 0000000..23e3d9e --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/domain/vo/StaffVO.java @@ -0,0 +1,182 @@ +package com.cyl.manager.staff.domain.vo; + +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; +import com.cyl.h5.pojo.vo.StaffServiceRecordVO; +import com.cyl.manager.staff.domain.StaffImage; +import com.cyl.manager.ums.pojo.vo.MemberAddressVO; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 人员信息 + * + * @author daixiande + */ +@Data +public class StaffVO { + /** 员工ID */ + private Long id; + + @ApiModelProperty("加密手机号") + private String phoneEncrypted; + + @ApiModelProperty("隐藏前三位后四位的手机号") + private String phoneHidden; + + /** 姓名 */ + private String name; + + /** 年龄 */ + @Excel(name = "年龄") + private Integer age; + + /** 昵称 */ + private String nickName; + + /** 姓 */ + private String lastName; + + /** 名 */ + private String firstName; + + /** 性别 */ + private Long gender; + + /** 生日 */ + private String birthDay; + + /** 服务类型 */ + private Long staffType; + + /** 服务年限 */ + private Long serviceAge; + + /** 服务级别 */ + private Long serviceLevel; + + /** 服务时间 */ + private String serviceTime; + + /** 地址 */ + private String address; + + /** 人员简介 */ + private String shortDescription; + + /** 人员介绍 */ + private String description; + + + /** 删除标识 */ + private Integer delFlag; + + /** 删除标识 */ + private List staffImages; + + + @ApiModelProperty("是否是合伙人(0否 1是)") + private String isPartner; + + + @ApiModelProperty("是否伴宠师(0否 1是)") + private String isPetCompanion; + + + @ApiModelProperty("电话号码") + private String phone; + + + /** + * 服务酬劳总额 + */ + @ApiModelProperty("服务酬劳") + private BigDecimal totalReward; + + + /** + * 保证金 + */ + @ApiModelProperty("保证金") + private BigDecimal earnestMoney; + + + @ApiModelProperty("答题次数") + private Integer answerCount; + + @ApiModelProperty("邀请码") + private String inviteCode; + + @ApiModelProperty("养宠年限") + private Integer feedingAge; + + @ApiModelProperty("个人宠物类型,多个类型逗号分隔(1:猫咪,2狗狗 3异宠)") + private String petType; + + @ApiModelProperty("喂养员认证状态:0:未开始,1:通过基础考核,2:3次考试失败,3:培训考核审核中 4:培训考核审核通过,5:培训考核审核失败") + private Integer authenticateStatus; + + @ApiModelProperty("伴宠师状态 0正常 1已清退") + private Integer status; + + @ApiModelProperty("连续拒单次数") + private Integer continuousRejectCount; + + @ApiModelProperty("宠物图片") + @TableField(typeHandler = FastjsonTypeHandler.class) + private JSONArray petImages; + + + @ApiModelProperty("可服务宠物类型 1猫咪 2狗狗 3异宠") + @TableField(typeHandler = FastjsonTypeHandler.class) + private JSONArray servePetType; + + + @ApiModelProperty("基础服务") + private Integer baseService; + + + @ApiModelProperty("增值服务 1陪玩/遛狗 2一天多次(做卫生) 3护理 4提前熟悉") + @TableField(typeHandler = FastjsonTypeHandler.class) + private JSONArray externalService; + + @ApiModelProperty("接收超出订单范围加急派单通知 0不接收,1接收") + private Integer receiveUrgentOrder; + + @ApiModelProperty("接单地址列表") + private List receiveOrderAddressList; + + @ApiModelProperty("点赞数") + private Integer star; + + @ApiModelProperty("是否完善服务信息(0未完善 1已完善)") + private Integer serviceInfoCommitted; + + @ApiModelProperty("距离") + private String distance; + + @ApiModelProperty("服务记录条数") + private String serviceCount; + + @ApiModelProperty("服务记录") + List serviceRecords; + + @ApiModelProperty("评价条数)") + private Integer commentNum; + + @ApiModelProperty("服务小结份数)") + private Integer serviceSummaryNum; + + + + + + + + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/BondTransactionMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/BondTransactionMapper.java new file mode 100644 index 0000000..09dea78 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/BondTransactionMapper.java @@ -0,0 +1,18 @@ +package com.cyl.manager.staff.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.staff.domain.BondTransaction; +import com.cyl.manager.staff.domain.Staff; + +import java.util.List; + +/** + * 人员信息Mapper接口 + * + * @author ruoyi + * @date 2023-12-26 + */ +public interface BondTransactionMapper extends BaseMapper +{ + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/DispatchOrderMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/DispatchOrderMapper.java new file mode 100644 index 0000000..278e616 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/DispatchOrderMapper.java @@ -0,0 +1,16 @@ +package com.cyl.manager.staff.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.staff.domain.DispatchOrder; + +/** + *

+ * 派单信息 Mapper 接口 + *

+ * + * @author 谷瑶 + * @since 2025-01-04 + */ +public interface DispatchOrderMapper extends BaseMapper { + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/StaffAnswerRecordMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/StaffAnswerRecordMapper.java new file mode 100644 index 0000000..536440c --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/StaffAnswerRecordMapper.java @@ -0,0 +1,16 @@ +package com.cyl.manager.staff.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.staff.domain.StaffAnswerRecord; + +/** + *

+ * 答题记录表 Mapper 接口 + *

+ * + * @author 谷瑶 + * @since 2024-12-18 + */ +public interface StaffAnswerRecordMapper extends BaseMapper { + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/StaffImageMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/StaffImageMapper.java new file mode 100644 index 0000000..51cc908 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/StaffImageMapper.java @@ -0,0 +1,62 @@ +package com.cyl.manager.staff.mapper; + +import java.util.List; + +import com.cyl.manager.staff.domain.StaffImage; + +/** + * 人员信息Mapper接口 + * + * @author ruoyi + * @date 2023-12-26 + */ +public interface StaffImageMapper +{ + /** + * 查询人员信息 + * + * @param id 人员信息主键 + * @return 人员信息 + */ + public StaffImage selectStaffImageById(Long id); + + /** + * 查询人员信息列表 + * + * @param staffImage 人员信息 + * @return 人员信息集合 + */ + public List selectStaffImageList(StaffImage staffImage); + + /** + * 新增人员信息 + * + * @param staffImage 人员信息 + * @return 结果 + */ + public int insertStaffImage(StaffImage staffImage); + + /** + * 修改人员信息 + * + * @param staffImage 人员信息 + * @return 结果 + */ + public int updateStaffImage(StaffImage staffImage); + + /** + * 删除人员信息 + * + * @param id 人员信息主键 + * @return 结果 + */ + public int deleteStaffImageById(Long id); + + /** + * 批量删除人员信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteStaffImageByIds(Long[] ids); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/StaffMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/StaffMapper.java new file mode 100644 index 0000000..5b142e7 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/StaffMapper.java @@ -0,0 +1,67 @@ +package com.cyl.manager.staff.mapper; + +import java.util.List; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.staff.domain.Staff; +import com.cyl.manager.staff.domain.StaffWechat; +import org.apache.ibatis.annotations.Param; + +/** + * 人员信息Mapper接口 + * + * @author ruoyi + * @date 2023-12-26 + */ +public interface StaffMapper extends BaseMapper +{ + /** + * 查询人员信息 + * + * @param id 人员信息主键 + * @return 人员信息 + */ + public Staff selectStaffById(Long id); + + /** + * 查询人员信息列表 + * + * @param staff 人员信息 + * @return 人员信息集合 + */ + public List selectStaffList(Staff staff); + + /** + * 新增人员信息 + * + * @param staff 人员信息 + * @return 结果 + */ + public int insertStaff(Staff staff); + + /** + * 修改人员信息 + * + * @param staff 人员信息 + * @return 结果 + */ + public int updateStaff(Staff staff); + + /** + * 删除人员信息 + * + * @param id 人员信息主键 + * @return 结果 + */ + public int deleteStaffById(Long id); + + /** + * 批量删除人员信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteStaffByIds(Long[] ids); + + List selectStaffByCondition(@Param("petTypes") List petTypes, @Param("name") String name, @Param("staffIds")List staffIds); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/StaffServiceRecordMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/StaffServiceRecordMapper.java new file mode 100644 index 0000000..371df65 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/StaffServiceRecordMapper.java @@ -0,0 +1,16 @@ +package com.cyl.manager.staff.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.staff.domain.Staff; +import com.cyl.manager.staff.domain.StaffServiceRecord; + +import java.util.List; + +/** + * 服务记录Mapper接口 + * + * @author ruoyi + * @date 2023-12-26 + */ +public interface StaffServiceRecordMapper extends BaseMapper { +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/StaffWechatMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/StaffWechatMapper.java new file mode 100644 index 0000000..85095d9 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/mapper/StaffWechatMapper.java @@ -0,0 +1,69 @@ +package com.cyl.manager.staff.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.staff.domain.StaffWechat; + +import java.util.List; + +/** + * 用户微信信息Mapper接口 + * + * @author daixiande + */ +public interface StaffWechatMapper extends BaseMapper { + /** + * 查询用户微信信息 + * + * @param id 用户微信信息主键 + * @return 用户微信信息 + */ + StaffWechat selectById(Long id); + + /** + * 查询用户微信信息列表 + * + * @param staffWechat 用户微信信息 + * @return 用户微信信息集合 + */ + List selectList(StaffWechat staffWechat); + + /** + * 新增用户微信信息 + * + * @param staffWechat 用户微信信息 + * @return 结果 + */ + int insert(StaffWechat staffWechat); + + /** + * 修改用户微信信息 + * + * @param staffWechat 用户微信信息 + * @return 结果 + */ + int update(StaffWechat staffWechat); + + /** + * 删除用户微信信息 + * + * @param id 用户微信信息主键 + * @return 结果 + */ + int deleteById(Long id); + + /** + * 批量删除用户微信信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteByIds(Long[] ids); + + /** + * 更新或插入用户微信信息 + * + * @param staffWechat 用户微信信息 + * @return 结果 + */ + int insertOrUpdate(StaffWechat staffWechat); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IBondTransactionService.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IBondTransactionService.java new file mode 100644 index 0000000..dd3d832 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IBondTransactionService.java @@ -0,0 +1,22 @@ +package com.cyl.manager.staff.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.cyl.manager.staff.domain.BondTransaction; +import org.springframework.data.domain.Pageable; + +import java.util.List; + +/** + * 保证金缴纳明细Service接口 + * + * @author ruoyi + * @date 2023-12-26 + */ +public interface IBondTransactionService extends IService { + + boolean updateBondStatusByPayId(Long outTradeNo, Integer type); + + boolean addBondTransaction(BondTransaction bondTransaction); + + List getStaffBondList(Long staffId, Pageable page); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IDispatchOrderService.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IDispatchOrderService.java new file mode 100644 index 0000000..55d4d14 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IDispatchOrderService.java @@ -0,0 +1,47 @@ +package com.cyl.manager.staff.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.cyl.manager.staff.domain.DispatchOrder; + +/** + *

+ * 派单信息 服务类 + *

+ * + * @author 谷瑶 + * @since 2025-01-04 + */ +public interface IDispatchOrderService extends IService { + + + /** + * 进行派单 + * @param id + */ + void dispatch(Long id); + + /** + * 接受派单 + * @param dispatchOrderId + * @return + */ + boolean acceptDispatch(String dispatchOrderId); + + /** + * 拒单 + * @param dispatchOrderId + * @return + */ + boolean rejectDispatch(String dispatchOrderId); + + /** + * 订单过期 + */ + void expire(String dispatchOrderId); + + /** + * 30分钟提醒 + * @param dispatchOrderId + */ + void nextAlert(String dispatchOrderId); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IStaffAnswerRecordService.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IStaffAnswerRecordService.java new file mode 100644 index 0000000..56ca509 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IStaffAnswerRecordService.java @@ -0,0 +1,23 @@ +package com.cyl.manager.staff.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.cyl.manager.staff.domain.StaffAnswerRecord; +import com.cyl.manager.staff.domain.dto.StaffAnswerAuditDTO; + +/** + *

+ * 答题记录表 服务类 + *

+ * + * @author 谷瑶 + * @since 2024-12-18 + */ +public interface IStaffAnswerRecordService extends IService { + + /** + * 审核答题 + * @param auditDTO + * @return + */ + boolean audit(StaffAnswerAuditDTO auditDTO); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IStaffImageService.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IStaffImageService.java new file mode 100644 index 0000000..35a48a7 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IStaffImageService.java @@ -0,0 +1,62 @@ +package com.cyl.manager.staff.service; + +import java.util.List; + +import com.cyl.manager.staff.domain.StaffImage; + +/** + * 人员信息Service接口 + * + * @author ruoyi + * @date 2023-12-26 + */ +public interface IStaffImageService +{ + /** + * 查询人员信息 + * + * @param id 人员信息主键 + * @return 人员信息 + */ + public StaffImage selectStaffImageById(Long id); + + /** + * 查询人员信息列表 + * + * @param staffImage 人员信息 + * @return 人员信息集合 + */ + public List selectStaffImageList(StaffImage staffImage); + + /** + * 新增人员信息 + * + * @param staffImage 人员信息 + * @return 结果 + */ + public int insertStaffImage(StaffImage staffImage); + + /** + * 修改人员信息 + * + * @param staffImage 人员信息 + * @return 结果 + */ + public int updateStaffImage(StaffImage staffImage); + + /** + * 批量删除人员信息 + * + * @param ids 需要删除的人员信息主键集合 + * @return 结果 + */ + public int deleteStaffImageByIds(Long[] ids); + + /** + * 删除人员信息信息 + * + * @param id 人员信息主键 + * @return 结果 + */ + public int deleteStaffImageById(Long id); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IStaffService.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IStaffService.java new file mode 100644 index 0000000..d15a604 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IStaffService.java @@ -0,0 +1,215 @@ +package com.cyl.manager.staff.service; + +import java.math.BigDecimal; +import java.util.List; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.extension.service.IService; +import com.cyl.h5.pojo.dto.H5LoginDTO; +import com.cyl.h5.pojo.dto.TrainCheckAnswerDTO; +import com.cyl.h5.pojo.request.*; +import com.cyl.h5.pojo.response.H5LoginResponse; +import com.cyl.h5.pojo.vo.StaffAnswerRecordVO; +import com.cyl.manager.staff.domain.StaffAnswerRecord; +import com.cyl.manager.staff.domain.vo.StaffVO; +import com.cyl.manager.staff.domain.Staff; +import org.springframework.http.ResponseEntity; + +/** + * 人员信息Service接口 + * + * @author ruoyi + * @date 2023-12-26 + */ +public interface IStaffService extends IService +{ + /** + * 查询人员信息 + * + * @param id 人员信息主键 + * @return 人员信息 + */ + public Staff selectStaffById(Long id); + + /** + * 查询人员信息列表 + * + * @param staff 人员信息 + * @return 人员信息集合 + */ + public List selectStaffList(Staff staff); + + /** + * 新增人员信息 + * + * @param staff 人员信息 + * @return 结果 + */ + public int insertStaff(Staff staff); + + /** + * 修改人员信息 + * + * @param staff 人员信息 + * @return 结果 + */ + public int updateStaff(Staff staff); + + /** + * 批量删除人员信息 + * + * @param ids 需要删除的人员信息主键集合 + * @return 结果 + */ + public int deleteStaffByIds(Long[] ids); + + /** + * 删除人员信息信息 + * + * @param id 人员信息主键 + * @return 结果 + */ + public int deleteStaffById(Long id); + + /** + * 查询人员信息 + * + * @param id 人员信息主键 + * @return 人员信息 + */ + public StaffVO selectStaffByIdForFront(Long id); + + /** + * 查询人员信息列表(For小程序) + * + * @param staff 人员信息 + * @return 人员信息集合 + */ + public List selectStaffListForFont(Staff staff); + + /** + * 查询人员信息列表(For下单选择伴宠师) + * + * @param staff 人员信息 + * @return 人员信息集合 + */ + public List selectStaffListByCondition(Staff staff); + + + + + /** + * 微信登录 + * @param params + * @return + */ + H5LoginResponse wechatLogin(H5LoginDTO params); + + //创建或更新员工信息 + Staff createOrUpdateStaff(String openId,String mobile, String wechatId); + + /** + * 获取登录信息 + * @param memberId + * @return + */ + H5LoginResponse getLoginResponse(Long memberId); + + /** + * 登录和注册 + * @param code + * @param openId + * @return + */ + Staff getPhoneAndRegister(String code, String openId); + + /** + * 加入合伙人 + * @return + */ + boolean joinPartner(); + + /** + * 获取我的页面信息 + * @return + */ + StaffVO getH5StaffInfo(); + + /** + * 保存喂养员认证基本信息 + * @param request + * @return + */ + boolean saveBaseInfo(StaffAuthenticateBaseInfoRequest request); + + /** + * 保存基础考核答题结果 + * @param request + * @return + */ + boolean submitBasicCheckResult(BasicCheckResultRequest request); + + + /** + * 获取基础考核题目和答案 + * @return + */ + JSON getBasicQuestion(); + + + /** + * 获取培训考核题目和答案 + * @return + */ + JSON getTrainQuestion(); + + /** + * 获取培训考核题目和答案 + * @param request + * @return + */ + boolean submitTrainCheckAnswer(TrainCheckAnswerRequest request); + + /** + * 根据员工id获取答题记录 + * @return + */ + StaffAnswerRecordVO getTrainAnswerRecord(Long staffId); + + /** + * 更新员工保证金缴纳余额 + * @param staffId + * @param money + * @param type 缴纳类型 0 扣减 1 缴纳 + * @return + */ + boolean updateStaffBondMoney(Long staffId, BigDecimal money,Integer type); + + /** + * 完善宠物服务信息 + * @param request + * @return + */ + boolean completeServiceInfo(StaffServiceInfoRequest request); + + /** + * 修改接单状态 + * @param request + * @return + */ + boolean changeReceiveOrderStatus(StaffChangeReceiveOrderStatusRequest request); + + /** + * 点赞 + * @param request + * @return + */ + boolean star(StaffStarRequest request); + + /** + * 是否完成接单信息填写校验 + * @param validBaseInfo + * @param validAddressInfo + */ + void serviceInfoSubmitted(Long staffId, boolean validBaseInfo, boolean validAddressInfo); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IStaffServiceRecordService.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IStaffServiceRecordService.java new file mode 100644 index 0000000..5bf215d --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IStaffServiceRecordService.java @@ -0,0 +1,42 @@ +package com.cyl.manager.staff.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.cyl.h5.pojo.request.*; +import com.cyl.h5.pojo.vo.StaffServiceRecordVO; +import com.cyl.manager.staff.domain.StaffServiceRecord; + +import java.util.List; + +/** + * 人员工服务记录Service接口 + * + * @author jx + * @date 2025-01-06 + */ +public interface IStaffServiceRecordService extends IService { + + /** + * 服务记录新增或修改 + * + * @param request + * @return + */ + boolean saveOrUpdateServiceRecord(StaffServiceRecordRequest request); + + + /** + * 服务记录查询接口 + * + * @param staffId + * @return + */ + List getServiceRecords(Long staffId); + + /** + * 服务记录详情接口 + * + * @return + */ + StaffServiceRecordVO getServiceRecord(Long staffId); + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IStaffWechatService.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IStaffWechatService.java new file mode 100644 index 0000000..616c4cf --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/IStaffWechatService.java @@ -0,0 +1,16 @@ +package com.cyl.manager.staff.service; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import com.cyl.manager.staff.domain.Staff; +import com.cyl.manager.staff.domain.StaffWechat; +import com.cyl.manager.ums.domain.Member; + +public interface IStaffWechatService extends IService { + + + JSONObject getSessionId(String code); + + + Staff isRegister(String openId); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/BondTransactionServiceImpl.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/BondTransactionServiceImpl.java new file mode 100644 index 0000000..a019793 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/BondTransactionServiceImpl.java @@ -0,0 +1,69 @@ +package com.cyl.manager.staff.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.cyl.manager.staff.domain.*; +import com.cyl.manager.staff.mapper.BondTransactionMapper; +import com.cyl.manager.staff.service.IBondTransactionService; +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.enums.BondOrderStatus; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * 人员信息Service业务层处理 + * + * @author ruoyi + * @date 2023-12-26 + */ +@Service +@Slf4j +public class BondTransactionServiceImpl extends ServiceImpl implements IBondTransactionService { + + /** + * 更新保证金缴纳状态 + * + * @param payId + * @param status + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean updateBondStatusByPayId(Long payId, Integer status) { + BondTransaction bondTransaction = this.list(new QueryWrapper().lambda().eq(BondTransaction::getPayId, payId).eq(BondTransaction::getStatus, BondOrderStatus.UN_PAY.getType())).stream().findFirst().orElse(null); + if (bondTransaction != null) { + BondTransaction updateBond = new BondTransaction(); + updateBond.setId(bondTransaction.getId()); + updateBond.setStatus(status); + return this.updateById(updateBond); + } else { + log.error("bondTransaction未找到,payId={}", payId); + } + return false; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean addBondTransaction(BondTransaction bondTransaction) { + return this.save(bondTransaction); + } + + @Override + public List getStaffBondList(Long staffId, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + LambdaQueryWrapper bondTransactionLambdaQueryWrapper = new LambdaQueryWrapper<>(); + if (staffId != null) { + bondTransactionLambdaQueryWrapper.eq(BondTransaction::getStaffId, bondTransactionLambdaQueryWrapper); + } + bondTransactionLambdaQueryWrapper.orderByDesc(BondTransaction::getCreateTme); + return this.getBaseMapper().selectList(bondTransactionLambdaQueryWrapper); + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/DispatchOrderServiceImpl.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/DispatchOrderServiceImpl.java new file mode 100644 index 0000000..d642e30 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/DispatchOrderServiceImpl.java @@ -0,0 +1,337 @@ +package com.cyl.manager.staff.service.impl; + +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.cyl.h5.pojo.vo.H5OrderVO; +import com.cyl.h5.service.H5OrderService; +import com.cyl.manager.staff.domain.DispatchOrder; +import com.cyl.manager.staff.domain.Staff; +import com.cyl.manager.staff.mapper.DispatchOrderMapper; +import com.cyl.manager.staff.service.IDispatchOrderService; +import com.cyl.manager.staff.service.IStaffService; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.DispatchOrderConstants; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.core.redis.RedisService; +import com.ruoyi.common.core.sms.AliyunSmsUtils; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.framework.config.LocalDataUtil; +import lombok.extern.slf4j.Slf4j; +import net.bytebuddy.implementation.bytecode.Throw; +import org.redisson.Redisson; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +/** + *

+ * 派单信息 服务实现类 + *

+ * + * @author 谷瑶 + * @since 2025-01-04 + */ +@Service +@Slf4j +public class DispatchOrderServiceImpl extends ServiceImpl implements IDispatchOrderService { + + @Autowired + private H5OrderService h5OrderService; + + @Autowired + private IStaffService staffService; + + @Autowired + private ScheduledExecutorService executor; + + @Autowired + private RedisService redisService; + + @Autowired + private RedisCache redisCache; + + + @Autowired + private RedissonClient redisson; + + + @Override + @Transactional(rollbackFor = Throwable.class) + public void dispatch(Long id) { + //获取订单全量信息 + H5OrderVO h5OrderVO = h5OrderService.orderDetail(id); + //获取伴宠师id + Long staffId = h5OrderVO.getStaffId(); + + try{ + //订单库存信息存入redis,供抢单使用 + redisCache.setCacheMapValue(DispatchOrderConstants.DISPATCH_ORDER_COUNT, + h5OrderVO.getOrderId().toString(), + 1); + + if (staffId != null) { + //指定派单 + dispatchWithSpecifiedStaff(staffId, h5OrderVO); + }else { + //系统派单 + dispatchWithoutSpecifiedStaff(h5OrderVO, null); + } + }catch (Exception e) { + log.error("派单失败!订单编号:"+id,e); + throw e; + }finally { + //派单失败,清空库存 + redisCache.setCacheMapValue(DispatchOrderConstants.DISPATCH_ORDER_COUNT, + h5OrderVO.getOrderId().toString(), + 0); + } + + } + + /** + * @param dispatchOrderId + * @return + */ + @Override + @Transactional(rollbackFor = Throwable.class) + public synchronized boolean acceptDispatch(String dispatchOrderId) { + //校验操作人信息 + Staff staff = (Staff)LocalDataUtil.getVar(Constants.STAFF_INFO); + Long staffId = staff.getId(); + DispatchOrder dispatchOrder = this.getById(dispatchOrderId); + if (dispatchOrder.getDispatchedStatus() == 3) { + //订单被抢或者订单超时自动加入了已流失 + throw new ServiceException("抱歉, 订单已流失"); + } + if (dispatchOrder == null || dispatchOrder.getOrderId() == null) { + throw new ServiceException("原始订单获取失败"); + } + if (staffId != dispatchOrder.getStaffId()) { + //操作人无权限 + throw new ServiceException("操作人无权限"); + } + + //开始抢单 + RLock lock = redisson + .getLock(DispatchOrderConstants.DISPATCH_ORDER_ACCEPTED + dispatchOrder.getOrderId()); + if (lock.tryLock()){ + try{ + + //获取该派单库存 + Object cacheMapValue = redisCache.getCacheMapValue(DispatchOrderConstants.DISPATCH_ORDER_COUNT, + dispatchOrder.getOrderId().toString()); + if (cacheMapValue == null || Integer.valueOf(cacheMapValue.toString()) < 0) { + //抢单失败 + throw new ServiceException("抱歉, 订单已流失"); + } + + + //抢单成功 + //修改订单状态为已接单 + dispatchOrder.setDispatchedStatus(2); + //接单时间 + dispatchOrder.setAcceptTime(LocalDateTime.now()); + this.updateById(dispatchOrder); + // TODO: 4/1/25 给管理员发送短信伴宠师已经接单了 + + + //修改原始订单状态为已接单? + + + //重置伴宠师连续拒绝次数 + staff.setContinuousRejectCount(0); + staffService.updateById(staff); + + //设置其它单为已流失 + LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(DispatchOrder.class) + .eq(DispatchOrder::getOrderId, dispatchOrder.getOrderId()) + .ne(DispatchOrder::getId, dispatchOrderId) + .set(DispatchOrder::getDispatchedStatus, 3); + this.update(updateWrapper); + + //扣减库存,需要清空吗?最好是定时任务做清空,此处设置库存为0,保存操作记录 + redisCache.setCacheMapValue(DispatchOrderConstants.DISPATCH_ORDER_COUNT, + dispatchOrder.getOrderId().toString(),0); + }finally { + + //释放 + lock.unlock(); + } + }else { + throw new ServiceException("抢单失败,请重试"); + } + + return true; + } + + + @Override + @Transactional(rollbackFor = Throwable.class) + public boolean rejectDispatch(String dispatchOrderId) { + + //校验操作人信息 + Staff staff = (Staff)LocalDataUtil.getVar(Constants.STAFF_INFO); + Long staffId = staff.getId(); + DispatchOrder dispatchOrder = this.getById(dispatchOrderId); + if (staffId != dispatchOrder.getStaffId()) { + //操作人无权限 + throw new ServiceException("操作人无权限"); + } + //修改订单状态为已流失 + dispatchOrder.setDispatchedStatus(3); + this.updateById(dispatchOrder); + + + //修改伴宠师连续拒绝次数 + Integer rejectCount = staff.getContinuousRejectCount(); + if (rejectCount >= 2) { + //连续拒单3次,清退 + staff.setStatus(2); + }else { + //连续拒单次数加1 + staff.setContinuousRejectCount(++rejectCount); + } + + staffService.updateById(staff); + + return true; + } + + @Override + @Transactional(rollbackFor = Throwable.class) + public void expire(String dispatchOrderId) { + DispatchOrder order = this.getById(dispatchOrderId); + if (order.getDispatchedStatus() == 1) { + //伴宠师未处理,修改为已流失订单,伴宠师拒单次数加1 + order.setDispatchedStatus(3); + //更新订单 + this.updateById(order); + Long tmpStaffId = order.getStaffId(); + Staff tmpStaff = staffService.getById(tmpStaffId); + //更新伴宠师信息 + Integer rejectCount = tmpStaff.getContinuousRejectCount(); + if (rejectCount >= 2) { + //连续拒单3次,清退 + tmpStaff.setStatus(2); + }else { + //连续拒单次数加1 + tmpStaff.setContinuousRejectCount(++rejectCount); + } + //转为系统派单,需要排除当前指定伴宠师id + dispatchWithoutSpecifiedStaff(order.getOrderInfo(),tmpStaffId); + }else { + //伴宠师已处理该订单,无需其它操作。 + } + } + + @Override + public void nextAlert(String dispatchOrderId) { + DispatchOrder order = this.getById(dispatchOrderId); + Staff staff = staffService.getById(order.getStaffId()); + if (order.getDispatchedStatus() == 1) { + //未处理,再次发送短信提醒 + if (StringUtils.isNotEmpty(staff.getPhone())) { + AliyunSmsUtils.sendBcshHasOrderSMS(staff.getPhone()); + } + }else { + //伴宠师已处理该订单,无需其它操作。 + } + } + + + /** + * 指定派单 + * @param staffId + * @param h5OrderVO + */ + private void dispatchWithSpecifiedStaff(Long staffId, H5OrderVO h5OrderVO) { + Staff staff = staffService.getById(staffId); + if (staff == null || staff.getStatus() == 1) { + log.error("未找到伴宠师或伴宠师状态异常,流转至系统派单,staffId:{}",staffId); + dispatchWithoutSpecifiedStaff(h5OrderVO,null); + return; + } + + //组装地址 + String addressStr + = h5OrderVO.getReceiverProvince() + h5OrderVO.getReceiverCity() + h5OrderVO.getReceiverDistrict(); + //计算报酬,支付金额的70% + BigDecimal reward = h5OrderVO.getPayAmount().multiply(new BigDecimal("0.7")); + + //组装派单对象 + DispatchOrder dispatchOrder = DispatchOrder + .builder() + .orderInfo(h5OrderVO) + //待接单 + .dispatchedStatus(1) + //个人订单 + .dispatchedType(2) + //订单编号 + .orderId(h5OrderVO.getOrderId()) + .staffId(staffId) + //地址 + .serviceAddress(addressStr) + //报酬 + .reward(reward) + //派单时间 + .dispatchTime(LocalDateTime.now()) + .build(); + //创建时间 + dispatchOrder.setCreateTime(LocalDateTime.now()); + this.save(dispatchOrder); + + + + + // TODO: 4/1/25 发送短信和小程序推送提醒 + if (StringUtils.isNotEmpty(staff.getPhone())) { + AliyunSmsUtils.sendBcshHasOrderSMS(staff.getPhone()); + } + + String dispatchOrderId = dispatchOrder.getId(); + + //此处应有定时任务检查所有订单过期情况,目前先用scheduler在60分钟后自触发。 + executor.schedule(()->{ + //检查是否已经接单。 + + IDispatchOrderService service = SpringUtils.getBean(IDispatchOrderService.class); + service.nextAlert(dispatchOrderId); + + },30, TimeUnit.MINUTES); + + executor.schedule(()->{ + //检查是否已经接单。 + + IDispatchOrderService service = SpringUtils.getBean(IDispatchOrderService.class); + service.expire(dispatchOrderId); + + },60, TimeUnit.MINUTES); + + + } + + + + /** + * 系统派单 + * @param h5OrderVO + * @param excludeStaffId 需要排除派单的伴宠师id + */ + private void dispatchWithoutSpecifiedStaff(H5OrderVO h5OrderVO,Long excludeStaffId) { + //不给id为excludeStaffId的伴宠师派单,因为这是他拒单或者超时未处理造成的。 + //检查伴宠师是否符合接单条件,添加了字段serviceInfoCommitted,不符合的不派单 + + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/StaffAnswerRecordServiceImpl.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/StaffAnswerRecordServiceImpl.java new file mode 100644 index 0000000..d302705 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/StaffAnswerRecordServiceImpl.java @@ -0,0 +1,50 @@ +package com.cyl.manager.staff.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.cyl.manager.staff.domain.StaffAnswerRecord; +import com.cyl.manager.staff.domain.TrainCheckAnswer; +import com.cyl.manager.staff.domain.dto.StaffAnswerAuditDTO; +import com.cyl.manager.staff.mapper.StaffAnswerRecordMapper; +import com.cyl.manager.staff.service.IStaffAnswerRecordService; +import com.ruoyi.common.exception.ServiceException; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.List; + +/** + *

+ * 答题记录表 服务实现类 + *

+ * + * @author 谷瑶 + * @since 2024-12-18 + */ +@Service +public class StaffAnswerRecordServiceImpl extends ServiceImpl implements IStaffAnswerRecordService { + + @Override + @Transactional(rollbackFor = Throwable.class) + public boolean audit(StaffAnswerAuditDTO auditDTO) { + StaffAnswerRecord record = this.getById(auditDTO.getId()); + if (record == null) { + throw new ServiceException("未找到答题记录!"); + } + List trainCheckAnswers = BeanUtil.copyToList(auditDTO.getList(), TrainCheckAnswer.class); + record.setAnswer(trainCheckAnswers); + record.setRemark(auditDTO.getRemark()); + record.setUpdateTime(LocalDateTime.now()); + if (auditDTO.getPassed()) { + //通过 + record.setStatus(2); + }else { + //未通过 + record.setStatus(3); + } + + + return true; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/StaffImageServiceImpl.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/StaffImageServiceImpl.java new file mode 100644 index 0000000..7b94f76 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/StaffImageServiceImpl.java @@ -0,0 +1,98 @@ +package com.cyl.manager.staff.service.impl; + +import java.time.LocalDateTime; +import java.util.List; + +import com.cyl.manager.staff.domain.StaffImage; +import com.cyl.manager.staff.mapper.StaffImageMapper; +import com.cyl.manager.staff.service.IStaffImageService; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * 人员信息Service业务层处理 + * + * @author ruoyi + * @date 2023-12-26 + */ +@Service +public class StaffImageServiceImpl implements IStaffImageService +{ + @Autowired + private StaffImageMapper staffImageMapper; + + /** + * 查询人员信息 + * + * @param id 人员信息主键 + * @return 人员信息 + */ + @Override + public StaffImage selectStaffImageById(Long id) + { + return staffImageMapper.selectStaffImageById(id); + } + + /** + * 查询人员信息列表 + * + * @param staffImage 人员信息 + * @return 人员信息 + */ + @Override + public List selectStaffImageList(StaffImage staffImage) + { + return staffImageMapper.selectStaffImageList(staffImage); + } + + /** + * 新增人员信息 + * + * @param staffImage 人员信息 + * @return 结果 + */ + @Override + public int insertStaffImage(StaffImage staffImage) + { + staffImage.setCreateTime(LocalDateTime.now()); + return staffImageMapper.insertStaffImage(staffImage); + } + + /** + * 修改人员信息 + * + * @param staffImage 人员信息 + * @return 结果 + */ + @Override + public int updateStaffImage(StaffImage staffImage) + { + staffImage.setUpdateTime(LocalDateTime.now()); + return staffImageMapper.updateStaffImage(staffImage); + } + + /** + * 批量删除人员信息 + * + * @param ids 需要删除的人员信息主键 + * @return 结果 + */ + @Override + public int deleteStaffImageByIds(Long[] ids) + { + return staffImageMapper.deleteStaffImageByIds(ids); + } + + /** + * 删除人员信息信息 + * + * @param id 人员信息主键 + * @return 结果 + */ + @Override + public int deleteStaffImageById(Long id) + { + return staffImageMapper.deleteStaffImageById(id); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/StaffServiceImpl.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/StaffServiceImpl.java new file mode 100644 index 0000000..2c1fee6 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/StaffServiceImpl.java @@ -0,0 +1,663 @@ +package com.cyl.manager.staff.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.lang.UUID; +import cn.hutool.core.lang.generator.UUIDGenerator; +import cn.hutool.core.util.IdUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.cyl.config.AESForWeixinGetPhoneNumber; +import com.cyl.external.WechatUtil; +import com.cyl.h5.pojo.dto.H5LoginDTO; +import com.cyl.h5.pojo.dto.MemberAddressDTO; +import com.cyl.h5.pojo.request.*; +import com.cyl.h5.pojo.response.H5LoginResponse; +import com.cyl.h5.pojo.vo.StaffAnswerRecordVO; +import com.cyl.h5.pojo.vo.StaffServiceRecordVO; +import com.cyl.h5.service.H5MemberAddressService; +import com.cyl.manager.staff.domain.*; +import com.cyl.manager.staff.domain.vo.StaffVO; +import com.cyl.manager.staff.mapper.StaffMapper; +import com.cyl.manager.staff.mapper.StaffWechatMapper; +import com.cyl.manager.staff.service.IStaffAnswerRecordService; +import com.cyl.manager.staff.service.IStaffService; +import com.cyl.manager.staff.service.IStaffServiceRecordService; +import com.cyl.manager.ums.domain.MemberAddress; +import com.cyl.manager.ums.domain.MemberLogininfor; +import com.cyl.manager.ums.mapper.MemberAddressMapper; +import com.cyl.manager.ums.mapper.MemberLogininforMapper; +import com.cyl.manager.ums.pojo.vo.MemberAddressVO; +import com.cyl.manager.ums.service.MemberAddressService; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.model.LoginMember; +import com.ruoyi.common.enums.StaffAuthenticateStatusEnum; +import com.ruoyi.common.enums.StaffBondStatus; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.AesCryptoUtils; +import com.ruoyi.common.utils.PhoneUtils; +import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.bean.BeanUtils; +import com.ruoyi.common.utils.ip.AddressUtils; +import com.ruoyi.common.utils.ip.IpUtils; +import com.ruoyi.framework.config.LocalDataUtil; +import com.ruoyi.framework.web.service.TokenService; +import eu.bitwalker.useragentutils.UserAgent; +import lombok.extern.slf4j.Slf4j; +import net.bytebuddy.implementation.bytecode.Throw; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cglib.beans.BeanCopier; +import org.springframework.retry.RetryException; +import org.springframework.retry.annotation.Backoff; +import org.springframework.retry.annotation.Retryable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.io.InputStream; +import java.math.BigDecimal; +import java.nio.charset.Charset; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * 人员信息Service业务层处理 + * + * @author ruoyi + * @date 2023-12-26 + */ +@Service +@Slf4j +public class StaffServiceImpl extends ServiceImpl implements IStaffService { + @Autowired + private StaffMapper staffMapper; + + @Autowired + private StaffWechatMapper staffWechatMapper; + + @Autowired + private StaffImageServiceImpl staffImageService; + + @Autowired + private IStaffServiceRecordService staffServiceRecordService; + + + @Autowired + private H5MemberAddressService h5MemberAddressService; + + @Autowired + private TokenService tokenService; + + @Value("${aes.key}") + private String aesKey; + + @Autowired + private MemberLogininforMapper memberLogininforMapper; + + @Autowired + private IStaffAnswerRecordService staffAnswerRecordService; + + @Autowired + private MemberAddressMapper memberAddressMapper; + + /** + * 查询人员信息 + * + * @param id 人员信息主键 + * @return 人员信息 + */ + @Override + public Staff selectStaffById(Long id) { + return staffMapper.selectStaffById(id); + } + + /** + * 查询人员信息列表 + * + * @param staff 人员信息 + * @return 人员信息 + */ + @Override + public List selectStaffList(Staff staff) { + return staffMapper.selectStaffList(staff); + } + + /** + * 新增人员信息 + * + * @param staff 人员信息 + * @return 结果 + */ + @Override + public int insertStaff(Staff staff) { + staff.setCreateTime(LocalDateTime.now()); + return staffMapper.insertStaff(staff); + } + + /** + * 修改人员信息 + * + * @param staff 人员信息 + * @return 结果 + */ + @Override + public int updateStaff(Staff staff) { + staff.setUpdateTime(LocalDateTime.now()); + return staffMapper.updateStaff(staff); + } + + /** + * 批量删除人员信息 + * + * @param ids 需要删除的人员信息主键 + * @return 结果 + */ + @Override + public int deleteStaffByIds(Long[] ids) { + return staffMapper.deleteStaffByIds(ids); + } + + /** + * 删除人员信息信息 + * + * @param id 人员信息主键 + * @return 结果 + */ + @Override + public int deleteStaffById(Long id) { + return staffMapper.deleteStaffById(id); + } + + @Override + public StaffVO selectStaffByIdForFront(Long id) { + final BeanCopier beanCopier = BeanCopier.create(Staff.class, StaffVO.class, false); + Staff staff = staffMapper.selectStaffById(id); + StaffVO staffVo = new StaffVO(); + beanCopier.copy(staff, staffVo, null); + StaffImage staffImage = new StaffImage(); + staffImage.setStaffId(id); + List staffImageList = staffImageService.selectStaffImageList(staffImage); + if (staffImageList != null && staffImageList.size() > 0) { + staffVo.setStaffImages(staffImageList); + } + + //获取服务记录 + List serviceRecords = staffServiceRecordService.getServiceRecords(id); + staffVo.setServiceRecords(serviceRecords); + + return staffVo; + } + + @Override + public List selectStaffListForFont(Staff staff) { + final BeanCopier beanCopier = BeanCopier.create(Staff.class, StaffVO.class, false); + List staffList = staffMapper.selectStaffList(staff); + List staffVoList = new ArrayList<>(); + + staffList.forEach(staff2 -> { + StaffVO staffVo = new StaffVO(); + beanCopier.copy(staff2, staffVo, null); + StaffImage staffImage = new StaffImage(); + staffImage.setStaffId(staff2.getId()); + List staffImageList = staffImageService.selectStaffImageList(staffImage); + if (staffImageList != null && staffImageList.size() > 0) { + staffVo.setStaffImages(staffImageList); + } + + staffVoList.add(staffVo); + }); + + return staffVoList; + } + + @Override + public List selectStaffListByCondition(Staff staff) { + StaffListRequest staffListRequest = (StaffListRequest) staff; + + String[] addressArray = parseAddress(staff.getAddress()); + if(addressArray == null){ + throw new RuntimeException("地址格式不正确"); + } + + MemberAddressDTO memberAddressDTO = new MemberAddressDTO(); + memberAddressDTO.setProvince(addressArray[0]); + memberAddressDTO.setCity(addressArray[1]); + memberAddressDTO.setDistrict(addressArray[2]); + List staffIds = h5MemberAddressService.selectByCondition(memberAddressDTO); + + if(CollectionUtils.isEmpty(staffIds)){ + return new ArrayList<>(); + } + + final BeanCopier beanCopier = BeanCopier.create(Staff.class, StaffVO.class, false); + + List staffList = staffMapper.selectStaffByCondition(staffListRequest.getPetTypes(),staffListRequest.getStaffName(),staffIds); + List staffVoList = new ArrayList<>(); + staffList.forEach(staff2 -> { + StaffVO staffVo = new StaffVO(); + beanCopier.copy(staff2, staffVo, null); + StaffImage staffImage = new StaffImage(); + staffImage.setStaffId(staff2.getId()); + List staffImageList = staffImageService.selectStaffImageList(staffImage); + if (staffImageList != null && staffImageList.size() > 0) { + staffVo.setStaffImages(staffImageList); + } + + staffVoList.add(staffVo); + }); + + return staffVoList; + } + + @Override + public H5LoginResponse wechatLogin(H5LoginDTO params) { + String openId = params.getOpenId(); + String sessionKey = params.getSessionKey(); + //解密手机号 + String mobile = getMobile(sessionKey, params.getKey(), params.getData()); + if (StringUtils.isEmpty(mobile)) { + throw new RuntimeException("登录异常"); + } + Staff staff = createOrUpdateStaff(openId, mobile, null); + return getLoginResponse(staff.getId()); + } + + private String getMobile(String sessionKey, String key, String data) { + AESForWeixinGetPhoneNumber aes = new AESForWeixinGetPhoneNumber(data, sessionKey, key); + JSONObject decrypt = aes.decrypt(); + if (decrypt != null) { + return decrypt.getString("phoneNumber"); + } + return null; + } + + @Override + @Transactional(rollbackFor = Throwable.class) + public Staff createOrUpdateStaff(String openId, String mobile, String wechatId) { + //openid为唯一标识,先查询该微信号是否下过单 + LambdaQueryWrapper staffWechatWrapper = Wrappers.lambdaQuery(StaffWechat.class); + staffWechatWrapper.eq(StaffWechat::getRoutineOpenid, openId); + StaffWechat staffWechatExist = staffWechatMapper.selectOne(staffWechatWrapper); + Staff staff = null; + if (staffWechatExist != null) { + staff = staffMapper.selectById(staffWechatExist.getStaffId()); + } else { + //查会员 + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("phone_encrypted", AesCryptoUtils.encrypt(aesKey, mobile)); + staff = staffMapper.selectOne(qw); + } + + if (staff == null) { + //新员工,注册并登录 + staff = new Staff(); + staff.setName("用户" + mobile.substring(7, 11)); + staff.setShortDescription(""); + staff.setPhoneEncrypted(AesCryptoUtils.encrypt(aesKey, mobile)); + staff.setPhone(mobile); + staff.setPhoneHidden(PhoneUtils.hidePhone(mobile)); + staff.setNickName("用户" + mobile.substring(7, 11)); + staff.setGender(0L); + staff.setCreateTime(LocalDateTime.now()); + staff.setInviteCode(UUID.randomUUID().toString(true)); + int rows = staffMapper.insert(staff); + if (rows < 1) { + throw new RuntimeException("注册失败,请重试"); + } + if (wechatId == null) { + StaffWechat staffWechat = new StaffWechat(); + staffWechat.setStaffId(staff.getId()); + staffWechat.setRoutineOpenid(openId); + staffWechat.setWechatId(wechatId); + staffWechat.setCreateTime(LocalDateTime.now()); + staffWechat.setCreateBy(staff.getId()); + rows = staffWechatMapper.insert(staffWechat); + if (rows < 1) { + throw new RuntimeException("注册失败,请重试"); + } + } + } else { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("staff_id", staff.getId()); + StaffWechat staffWechat = staffWechatMapper.selectOne(queryWrapper); + if (StringUtils.isEmpty(staffWechat.getRoutineOpenid())) { + staffWechat.setRoutineOpenid(openId); + staffWechat.setWechatId(wechatId); + staffWechatMapper.updateById(staffWechat); + } + } + return staff; + } + + + @Transactional(rollbackFor = Throwable.class) + public H5LoginResponse getLoginResponse(Long staffId) { + LoginMember loginMember = new LoginMember(); + loginMember.setMemberId(staffId); + loginMember.setSourceType(1); + String token = tokenService.createMemberToken(loginMember); + //record登录 + this.insert(staffId); + H5LoginResponse response = new H5LoginResponse(); + response.setToken(token); + return response; + } + + @Transactional(rollbackFor = Throwable.class) + @Override + public Staff getPhoneAndRegister(String code, String openId) { + String phone = (String) WechatUtil.getPhoneNumber(code, 1); + Staff staff = this.createOrUpdateStaff(openId, phone, null); + return staff; + } + + @Override + public boolean joinPartner() { + Staff staff = (Staff) LocalDataUtil.getVar(Constants.STAFF_INFO); + LambdaUpdateWrapper wrapper + = Wrappers.lambdaUpdate(Staff.class).eq(Staff::getId, staff.getId()).set(Staff::getIsPartner, 1); + if (!this.update(wrapper)) { + throw new ServiceException("加入失败"); + } + return true; + } + + @Override + public StaffVO getH5StaffInfo() { + //获取缓存信息 + Staff staff = (Staff) LocalDataUtil.getVar(Constants.STAFF_INFO); + Long id = staff.getId(); + + StaffVO staffVO = new StaffVO(); + BeanUtils.copyProperties(staff, staffVO); + //服务酬劳信息:从抽成表里边提取 + + //保证金信息 + + //地址信息 + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(MemberAddress.class).eq(MemberAddress::getStaffId, staff.getId()); + List memberAddresses = memberAddressMapper.selectList(wrapper); + List memberAddressVOS = BeanUtil.copyToList(memberAddresses, MemberAddressVO.class); + staffVO.setReceiveOrderAddressList(memberAddressVOS); + + return staffVO; + } + + @Transactional(rollbackFor = Throwable.class) + @Override + public boolean saveBaseInfo(StaffAuthenticateBaseInfoRequest request) { + Staff staff = this.getById(request.getId()); + if (staff == null) { + throw new ServiceException("未找到伴宠师信息,请检查id是否正确"); + } + BeanUtil.copyProperties(request, staff, CopyOptions.create(null, true)); + staff.setUpdateTime(LocalDateTime.now()); + this.updateById(staff); + this.serviceInfoSubmitted(staff.getId(), false,true); + return true; + } + + @Transactional(rollbackFor = Throwable.class) + @Override + public boolean submitBasicCheckResult(BasicCheckResultRequest request) { + //查询答题人信息 + Staff staff = this.getById(request.getStaffId()); + if (staff == null) { + throw new ServiceException("未找到员工信息,请检查staffId参数"); + } + //检查答题次数 + if (staff.getAnswerCount() >= 3) { + throw new ServiceException("答题超过三次!无法通过"); + } + + if (Boolean.TRUE.equals(request.getPassed())) { + //答题通过,修改状态为1,通过基础考核 + staff.setAuthenticateStatus(StaffAuthenticateStatusEnum.BASIC_EXAM_PASSED.getKey()); + } else { + //答题失败,答题次数加一 + Integer answerCount = staff.getAnswerCount(); + staff.setAnswerCount(++answerCount); + } + this.updateById(staff); + return true; + } + + @Override + public JSON getBasicQuestion() { + //读取题目 + InputStream resourceAsStream + = this.getClass().getClassLoader().getResourceAsStream("basicQuestions.txt"); + String jsonStr = IoUtil.read(resourceAsStream, Charset.forName("UTF-8")); + JSON result = JSON.parseArray(jsonStr); + return result; + } + + @Override + public JSON getTrainQuestion() { + InputStream resourceAsStream + = this.getClass().getClassLoader().getResourceAsStream("trainQuestions.txt"); + String jsonStr = IoUtil.read(resourceAsStream, Charset.forName("UTF-8")); + JSON result = JSON.parseArray(jsonStr); + return result; + } + + @Override + public boolean submitTrainCheckAnswer(TrainCheckAnswerRequest request) { + Long staffId = request.getStaffId(); + StaffAnswerRecord record + = StaffAnswerRecord + .builder() + .staffId(staffId) + .answer(BeanUtil.copyToList(request.getAnswerList(), TrainCheckAnswer.class)) + //审核中 + .status(1) + .build(); + record.setCreateTime(LocalDateTime.now()); + //如果有审核中的答题记录,禁止提交 + LambdaQueryWrapper recordLambdaQueryWrapper = + Wrappers.lambdaQuery(StaffAnswerRecord.class) + .eq(StaffAnswerRecord::getStaffId, request.getStaffId()) + .in(StaffAnswerRecord::getStatus, 1, 0); + if (staffAnswerRecordService.count(recordLambdaQueryWrapper) > 0) { + throw new ServiceException("答题审核中,请勿重复提交!"); + } + if (!staffAnswerRecordService.save(record)) { + throw new ServiceException("保存失败!"); + } + return true; + } + + @Override + public StaffAnswerRecordVO getTrainAnswerRecord(Long staffId) { + LambdaQueryWrapper wrapper + = Wrappers + .lambdaQuery(StaffAnswerRecord.class) + .eq(StaffAnswerRecord::getStaffId, staffId) + .orderByDesc(StaffAnswerRecord::getCreateTime) + .last("limit 1"); + StaffAnswerRecord record = staffAnswerRecordService.getOne(wrapper); + if (record == null) { + return null; + } + StaffAnswerRecordVO recordVO = BeanUtil.copyProperties(record, StaffAnswerRecordVO.class); + return recordVO; + } + + @Override + @Transactional(rollbackFor = Exception.class) + @Retryable(value = {RetryException.class}, // 需要重试的异常类型 + maxAttempts = 5, //最大重试次数为 5 + backoff = @Backoff(delay = 1000, multiplier = 1.5, maxDelay = 10000)) + public synchronized boolean updateStaffBondMoney(Long staffId, BigDecimal money, Integer type) { + Staff staff = this.getById(staffId); + if (staff != null) { + if (money != null && money.compareTo(new BigDecimal(0)) >= 0) { + if (staff.getBondAmount() != null) { + if (1 == type) {//缴纳保证金 + staff.setBondAmount(money.add(staff.getBondAmount())); + } else {//扣减保证金 + BigDecimal amount = staff.getBondAmount().subtract(money); + //如果保证金额度扣除后<=0 + if (amount.compareTo(new BigDecimal(0)) <= 0) { + amount = new BigDecimal(0); + } + staff.setBondAmount(amount); + } + } else { + if (1 == type) {//缴纳保证金 + staff.setBondAmount(money); + } + } + Staff updateStaff = new Staff(); + updateStaff.setId(staff.getId()); + updateStaff.setLockVersion(staff.getLockVersion()); + updateStaff.setBondAmount(staff.getBondAmount()); + //如果保证金余额>0 则保证金缴纳状态为已缴纳 + if (staff.getBondAmount().compareTo(new BigDecimal(0)) > 0) { + updateStaff.setBondStatus(StaffBondStatus.PAID.getType()); + } else { + updateStaff.setBondStatus(StaffBondStatus.UN_PAY.getType()); + } + boolean result = this.updateById(updateStaff); + if (!result) { + throw new RetryException("更新保证金失败!"); + } + return result; + } else { + log.error("缴纳或扣除的保证金余额{}非正值", money); + } + } else { + log.error("该员工{}不存在!", staffId); + } + return false; + } + + @Override + public boolean completeServiceInfo(StaffServiceInfoRequest request) { + + //员工信息 + Staff staff = this.getById(request.getId()); + if (staff == null) { + throw new ServiceException("查询员工信息失败,请检查staffId"); + } + + BeanUtil.copyProperties(request, staff, CopyOptions.create(null, true)); + + return this.updateById(staff); + + } + + @Override + public boolean changeReceiveOrderStatus(StaffChangeReceiveOrderStatusRequest request) { + //构建更新条件 + LambdaUpdateWrapper wrapper = Wrappers.lambdaUpdate(MemberAddress.class) + .eq(MemberAddress::getStaffId, request.getStaffId()) + .eq(MemberAddress::getId, request.getAddressId()) + .set(MemberAddress::getReceiveOrderStatus, request.getReceiveOrderStatus()); + int count = memberAddressMapper.update(null, wrapper); + return count >= 1; + } + + @Override + public boolean star(StaffStarRequest request) { + Staff staff = this.getById(request.getStaffId()); + if (staff.getStar() == 0 && request.getStarType() == 0) { + return true; + } + if (request.getStarType() == 0) { + staff.setStar(staff.getStar() - 1); + } else { + staff.setStar(staff.getStar() + 1); + } + LambdaUpdateWrapper wrapper + = Wrappers + .lambdaUpdate(Staff.class) + .eq(Staff::getId, request.getStaffId()) + .set(Staff::getStar, staff.getStar()); + this.update(wrapper); + return true; + } + + @Override + @Transactional(rollbackFor = Throwable.class) + public void serviceInfoSubmitted(Long staffId, boolean validBaseInfo, boolean validAddressInfo) { + if (staffId == null) { + log.error("员工id不能为空"); + return; + } + Staff staff = this.getById(staffId); + if (staff == null) { + log.error("员工id不能为空,staffId:"+staffId); + return; + } + if (validBaseInfo) { + //基本信息校验 + if (staff.getServePetType() == null || staff.getServePetType().size() <= 0) { + log.info("基本信息未填写,不能接单"); + return; + } + + } + if (validAddressInfo) { + //地址信息校验 + LambdaQueryWrapper wrapper + = Wrappers.lambdaQuery(MemberAddress.class).eq(MemberAddress::getStaffId, staffId); + Integer count = memberAddressMapper.selectCount(wrapper); + if (count <=0 ) { + log.info("地址信息未填写,不能接单"); + return; + } + + } + LambdaUpdateWrapper wrapper + = Wrappers.lambdaUpdate(Staff.class).eq(Staff::getId, staffId).set(Staff::getServiceInfoCommitted, 1); + this.update(wrapper); + + } + + + //创建登录日志 + private void insert(Long staffId) { + Staff staff = staffMapper.selectById(staffId); + UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent")); + MemberLogininfor staffLoginInfor = new MemberLogininfor(); + staffLoginInfor.setMemberId(staffId); + staffLoginInfor.setPhone(staff.getPhoneHidden()); + staffLoginInfor.setOs(userAgent.getOperatingSystem().getName()); + staffLoginInfor.setIpaddr(IpUtils.getIpAddr(ServletUtils.getRequest())); + staffLoginInfor.setBrowser(userAgent.getBrowser().getName()); + staffLoginInfor.setLoginLocation(AddressUtils.getRealAddressByIP(staffLoginInfor.getIpaddr())); + staffLoginInfor.setLoginTime(LocalDateTime.now()); + staffLoginInfor.setType(1); + memberLogininforMapper.insert(staffLoginInfor); + } + + public static String[] parseAddress(String address) { + // 定义一个正则表达式,匹配省、市、区 + String regex = "([\\u4E00-\\u9FA5]+(省|自治区|直辖市))?\\s*([\\u4E00-\\u9FA5]+(市|地区|自治州))\\s*([\\u4E00-\\u9FA5]+(区|县))"; + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(address); + + if (matcher.find()) { + String province = matcher.group(1) != null ? matcher.group(1).trim() : matcher.group(3).trim(); // 省(若没有则用市替代) + String city = matcher.group(3) != null ? matcher.group(3).trim() : province; // 市(存在则取市名,否则取省名) + String district = matcher.group(5) != null ? matcher.group(5).trim() : ""; // 区(可选) + + return new String[]{province, city, district}; // 返回省、市、区 + } + + return null ;// 未能解析 + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/StaffServiceRecordServiceImpl.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/StaffServiceRecordServiceImpl.java new file mode 100644 index 0000000..6c95328 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/StaffServiceRecordServiceImpl.java @@ -0,0 +1,58 @@ +package com.cyl.manager.staff.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.cyl.h5.pojo.request.StaffServiceRecordRequest; +import com.cyl.h5.pojo.vo.StaffServiceRecordVO; +import com.cyl.manager.staff.domain.StaffServiceRecord; +import com.cyl.manager.staff.mapper.StaffServiceRecordMapper; +import com.cyl.manager.staff.service.IStaffServiceRecordService; +import com.ruoyi.common.utils.bean.BeanUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * 人员工服务记录Service接口 + * + * @author ruoyi + * @date 2023-12-26 + */ +@Service +@Slf4j +public class StaffServiceRecordServiceImpl extends ServiceImpl implements IStaffServiceRecordService { + + @Override + public boolean saveOrUpdateServiceRecord(StaffServiceRecordRequest request) { + StaffServiceRecord staffServiceRecord = new StaffServiceRecord(); + BeanUtils.copyProperties(request, staffServiceRecord); + return this.saveOrUpdate(staffServiceRecord); + } + + @Override + public List getServiceRecords(Long staffId) { + List result = new ArrayList<>(); + List staffServiceRecords = this.list(new LambdaQueryWrapper().eq(StaffServiceRecord::getStaffId, staffId)); + if (!CollectionUtils.isEmpty(staffServiceRecords)) { + staffServiceRecords.stream().forEach(o -> { + StaffServiceRecordVO staffServiceRecordVO = new StaffServiceRecordVO(); + BeanUtils.copyProperties(o, staffServiceRecordVO); + result.add(staffServiceRecordVO); + }); + + } + return result; + } + + @Override + public StaffServiceRecordVO getServiceRecord(Long staffId) { + StaffServiceRecord staffServiceRecord = this.getOne(new LambdaQueryWrapper().eq(StaffServiceRecord::getStaffId,staffId)); + StaffServiceRecordVO staffServiceRecordVO = new StaffServiceRecordVO(); + BeanUtils.copyProperties(staffServiceRecord,staffServiceRecordVO); + return staffServiceRecordVO; + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/StaffWechatServiceImpl.java b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/StaffWechatServiceImpl.java new file mode 100644 index 0000000..942a7fc --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/staff/service/impl/StaffWechatServiceImpl.java @@ -0,0 +1,74 @@ +package com.cyl.manager.staff.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.cyl.manager.staff.domain.Staff; +import com.cyl.manager.staff.domain.StaffWechat; +import com.cyl.manager.staff.mapper.StaffWechatMapper; +import com.cyl.manager.staff.service.IStaffService; +import com.cyl.manager.staff.service.IStaffWechatService; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.domain.MemberWechat; +import com.cyl.wechat.WechatPayData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import java.sql.Wrapper; + +@Service +@Slf4j +public class StaffWechatServiceImpl extends ServiceImpl implements IStaffWechatService { + @Autowired + private RestTemplate restTemplate; + + @Autowired + private IStaffService staffService; + + private static String LOGIN_URL = "https://api.weixin.qq.com/sns/jscode2session?appid=#{APPID}&secret=#{SECRET}&js_code=#{JSCODE}&grant_type=authorization_code"; + + + public JSONObject getSessionId(String code) { + String url = LOGIN_URL.replace("#{APPID}", WechatPayData.staffAppId) + .replace("#{SECRET}", WechatPayData.staffSecret) + .replace("#{JSCODE}", code); + log.info("获取openid,url:{}", url); + try { + ResponseEntity res = restTemplate.getForEntity(url, String.class); + String body = res.getBody(); + if (com.ruoyi.common.utils.StringUtils.isEmpty(body)) { + throw new Exception("获取openid出错"); + } + return JSONObject.parseObject(body); + } catch (Exception e) { + log.error("获取openid报错", e); + return null; + } + } + + @Override + public Staff isRegister(String openId) { + if (StringUtils.isEmpty(openId)) { + return null; + } + LambdaQueryWrapper wrapper + = Wrappers.lambdaQuery(StaffWechat.class).eq(StaffWechat::getOpenid, openId); + StaffWechat staffWechat = this.getOne(wrapper); + if(ObjectUtil.isNull(staffWechat)){ + return null; + } + + // 2、查询员工是否注册 + Staff staff = staffService.getById(staffWechat.getStaffId()); + if(ObjectUtil.isNull(staff)){ + return null; + } + return staff; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/statistics/controller/IndexStatisticsManagerController.java b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/controller/IndexStatisticsManagerController.java new file mode 100644 index 0000000..16ebd31 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/controller/IndexStatisticsManagerController.java @@ -0,0 +1,65 @@ +package com.cyl.manager.statistics.controller; + + +import com.cyl.manager.statistics.pojo.GoodsStatisticsQueryParam; +import com.cyl.manager.statistics.pojo.OrderStatisticsQueryParam; +import com.cyl.manager.statistics.pojo.vo.MemberAndCartStatisticsVO; +import com.cyl.manager.statistics.pojo.vo.OrderAndAftersaleStatisticsVO; +import com.cyl.manager.statistics.pojo.vo.OrderStatisticsVO; +import com.cyl.manager.statistics.pojo.vo.ProductTopVO; +import com.cyl.manager.statistics.service.IndexStatisticsService; +import com.ruoyi.common.core.domain.AjaxResult; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 管理端,首页统计数据接口 + * + * @author zhangcheng + * @since 2023/05/15 13:53 + */ +@Slf4j +@Api(tags = "管理端,首页统计数据接口") +@RestController +@RequestMapping("/dev/statistics/index") +public class IndexStatisticsManagerController { + + /** + * 首页统计 + */ + @Autowired + private IndexStatisticsService indexStatisticsService; + + @ApiOperation(value = "获取首页查询热卖商品TOP10") + @GetMapping("/goodsStatistics") + public ResponseEntity> goodsStatistics(@Validated GoodsStatisticsQueryParam goodsStatisticsQueryParam) { + + return ResponseEntity.ok(indexStatisticsService.goodsStatistics(goodsStatisticsQueryParam)); + } + + @ApiOperation(value = "订单信息") + @PostMapping("/orderStatistics") + public ResponseEntity> orderStatistics(@RequestBody OrderStatisticsQueryParam param) { + return ResponseEntity.ok(indexStatisticsService.orderStatistics(param)); + } + + @ApiOperation(value = "会员数,加购数") + @GetMapping("/memberAndCart/statistics") + public ResponseEntity statMemberAndCart(){ + return ResponseEntity.ok(indexStatisticsService.statMemberAndCart()); + } + + @ApiOperation(value = "订单与售后单统计") + @GetMapping("/order/aftersale/statistics") + public ResponseEntity orderAndAftersaleStatistics(){ + return ResponseEntity.ok(indexStatisticsService.orderAndAftersaleStatistics()); + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/statistics/mapper/IndexStatisticsMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/mapper/IndexStatisticsMapper.java new file mode 100644 index 0000000..e995b49 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/mapper/IndexStatisticsMapper.java @@ -0,0 +1,17 @@ +package com.cyl.manager.statistics.mapper; + + +import com.cyl.manager.statistics.pojo.GoodsStatisticsQueryParam; +import com.cyl.manager.statistics.pojo.OrderStatisticsQueryParam; +import com.cyl.manager.statistics.pojo.vo.OrderStatisticsVO; +import com.cyl.manager.statistics.pojo.vo.ProductTopVO; + +import java.util.List; + +public interface IndexStatisticsMapper { + List goodsSkuStatistics(GoodsStatisticsQueryParam goodsStatisticsQueryParam); + + List goodsStatistics(GoodsStatisticsQueryParam goodsStatisticsQueryParam); + List orderStatistics(OrderStatisticsQueryParam param); + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/GoodsStatisticsQueryParam.java b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/GoodsStatisticsQueryParam.java new file mode 100644 index 0000000..dfe861c --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/GoodsStatisticsQueryParam.java @@ -0,0 +1,24 @@ +package com.cyl.manager.statistics.pojo; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * 商品统计 + * + * @author zhangcheng + * @since 2023/05/15 13:53 + */ +@Data +public class GoodsStatisticsQueryParam { + @NotNull(message = "统计类型 1:商品规格排行 2:商品排行") + private Integer statType; + @NotNull(message = "参数size不能为空") + private Integer size; + @NotBlank(message = "参数startDate不能为空") + private String startDate; + @NotBlank(message = "参数endDate不能为空") + private String endDate; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/OrderStatisticsQueryParam.java b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/OrderStatisticsQueryParam.java new file mode 100644 index 0000000..97044ce --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/OrderStatisticsQueryParam.java @@ -0,0 +1,14 @@ +package com.cyl.manager.statistics.pojo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@ApiModel("订单统计查询条件对象") +@Data +public class OrderStatisticsQueryParam { + + @ApiModelProperty("查询范围类型 1:近一周 2:近一个月") + private Integer type; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/vo/MemberAndCartStatisticsVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/vo/MemberAndCartStatisticsVO.java new file mode 100644 index 0000000..d89dee7 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/vo/MemberAndCartStatisticsVO.java @@ -0,0 +1,10 @@ +package com.cyl.manager.statistics.pojo.vo; + +import lombok.Data; + +@Data +public class MemberAndCartStatisticsVO { + private Integer memberCount; + private Integer cartCount; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/vo/OrderAndAftersaleStatisticsVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/vo/OrderAndAftersaleStatisticsVO.java new file mode 100644 index 0000000..aee51c8 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/vo/OrderAndAftersaleStatisticsVO.java @@ -0,0 +1,21 @@ +package com.cyl.manager.statistics.pojo.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class OrderAndAftersaleStatisticsVO { + /** 待处理售后 */ + private Integer pendingAftersaleCount; + /** 处理中售后 */ + private Integer processingAftersaleCount; + /** 待发货 */ + private Integer waitDeliveredCount; + /** 已发货 */ + private Integer todayHasDeliveredCount; + /** 订单数 */ + private Integer todayOrderCount; + /** 成交额 */ + private BigDecimal todayTransactionAmount; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/vo/OrderStatisticsVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/vo/OrderStatisticsVO.java new file mode 100644 index 0000000..e46b88d --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/vo/OrderStatisticsVO.java @@ -0,0 +1,16 @@ +package com.cyl.manager.statistics.pojo.vo; + +import lombok.Data; + +@Data +public class OrderStatisticsVO { + + private String date; + //订单笔数 + private Double orderCount; + //订单金额 + private Double orderAmount; + private Double numPaidOrders; + private Double numPendingOrders; + private Double numRefundOrders; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/vo/ProductTopVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/vo/ProductTopVO.java new file mode 100644 index 0000000..3b9acde --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/pojo/vo/ProductTopVO.java @@ -0,0 +1,12 @@ +package com.cyl.manager.statistics.pojo.vo; + +import lombok.Data; + +@Data +public class ProductTopVO { + + private String productName; + private int totalSales; + private String pic; + private String spData; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/statistics/service/IndexStatisticsService.java b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/service/IndexStatisticsService.java new file mode 100644 index 0000000..571abdc --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/statistics/service/IndexStatisticsService.java @@ -0,0 +1,76 @@ +package com.cyl.manager.statistics.service; + +import com.cyl.manager.oms.mapper.AftersaleMapper; +import com.cyl.manager.oms.mapper.OrderMapper; +import com.cyl.manager.oms.service.OrderService; +import com.cyl.manager.statistics.mapper.IndexStatisticsMapper; +import com.cyl.manager.statistics.pojo.GoodsStatisticsQueryParam; +import com.cyl.manager.statistics.pojo.OrderStatisticsQueryParam; +import com.cyl.manager.statistics.pojo.vo.MemberAndCartStatisticsVO; +import com.cyl.manager.statistics.pojo.vo.OrderAndAftersaleStatisticsVO; +import com.cyl.manager.statistics.pojo.vo.OrderStatisticsVO; +import com.cyl.manager.statistics.pojo.vo.ProductTopVO; +import com.cyl.manager.ums.mapper.MemberCartMapper; +import com.cyl.manager.ums.mapper.MemberMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.List; + +/** + * 管理端,首页统计数据Service业务层处理 + * + * @author zhangcheng + * @since 2023/05/15 13:53 + */ +@Service +public class IndexStatisticsService { + @Autowired + private IndexStatisticsMapper indexStatisticsMapper; + @Autowired + private MemberMapper memberMapper; + @Autowired + private MemberCartMapper memberCartMapper; + @Autowired + private AftersaleMapper aftersaleMapper; + @Autowired + private OrderMapper orderMapper; + + + public List goodsStatistics(GoodsStatisticsQueryParam goodsStatisticsQueryParam) { + if (goodsStatisticsQueryParam.getStatType() == 1){ + return indexStatisticsMapper.goodsSkuStatistics(goodsStatisticsQueryParam); + }else { + return indexStatisticsMapper.goodsStatistics(goodsStatisticsQueryParam); + } + } + + public List orderStatistics(OrderStatisticsQueryParam param) { + return indexStatisticsMapper.orderStatistics(param); + } + + public MemberAndCartStatisticsVO statMemberAndCart() { + MemberAndCartStatisticsVO vo = new MemberAndCartStatisticsVO(); + vo.setMemberCount(memberMapper.selectCount(null)); + vo.setCartCount(memberCartMapper.selectCount(null)); + return vo; + } + + public OrderAndAftersaleStatisticsVO orderAndAftersaleStatistics() { + //统计售后 + OrderAndAftersaleStatisticsVO vo = aftersaleMapper.statPendingAndProcessing(); + //统计未发货数 + vo.setWaitDeliveredCount(orderMapper.statWaitDelivered()); + //统计今日订单数,成交金额,发货数 + LocalDateTime startTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN); + LocalDateTime endTime = LocalDateTime.of(LocalDate.now(), LocalTime.MAX); + OrderAndAftersaleStatisticsVO todayData = orderMapper.statTodayData(startTime, endTime); + vo.setTodayOrderCount(todayData.getTodayOrderCount()); + vo.setTodayHasDeliveredCount(todayData.getTodayHasDeliveredCount()); + vo.setTodayTransactionAmount(todayData.getTodayTransactionAmount()); + return vo; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/DataSyncController.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/DataSyncController.java new file mode 100644 index 0000000..bdc61d4 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/DataSyncController.java @@ -0,0 +1,35 @@ +package com.cyl.manager.ums.controller; + +import com.cyl.manager.ums.domain.MemberAddress; +import com.cyl.manager.ums.pojo.query.MemberAddressQuery; +import com.cyl.manager.ums.pojo.vo.MemberAddressVO; +import com.cyl.manager.ums.service.MemberService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/data") +@Slf4j +public class DataSyncController { + @Autowired + private MemberService memberService; + + @ApiOperation("数据同步") + @PostMapping("/sync") + public ResponseEntity sync() { + return ResponseEntity.ok(memberService.sync()); + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberAddressController.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberAddressController.java new file mode 100644 index 0000000..702f0cb --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberAddressController.java @@ -0,0 +1,95 @@ +package com.cyl.manager.ums.controller; + +import java.util.List; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.manager.ums.convert.MemberAddressConvert; +import com.cyl.manager.ums.domain.MemberAddress; +import com.cyl.manager.ums.pojo.query.MemberAddressQuery; +import com.cyl.manager.ums.service.MemberAddressService; +import com.cyl.manager.ums.pojo.vo.MemberAddressVO; + +/** + * 会员收货地址Controller + * + * @author zcc + * @date 2022-11-28 + */ +@Api("会员收货地址") +@RestController +@RequestMapping("/ums/memberAddress") +public class MemberAddressController extends BaseController { + @Autowired + private MemberAddressService service; + @Autowired + private MemberAddressConvert convert; + + @ApiOperation("查询会员收货地址列表") + @PreAuthorize("@ss.hasPermi('ums:memberAddress:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody MemberAddressQuery query, Pageable page) { + List list = service.selectList(query, page); + List resList = convert.dos2vos(list); + return ResponseEntity.ok(new PageImpl<>(resList, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + @ApiOperation("导出会员收货地址列表") + @PreAuthorize("@ss.hasPermi('ums:memberAddress:export')") + @Log(title = "会员收货地址", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(MemberAddressQuery query) { +// List list = service.selectList(query, null); +// ExcelUtil util = new ExcelUtil<>(MemberAddressVO.class); +// return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "会员收货地址数据")); + return null; + } + + @ApiOperation("获取会员收货地址详细信息") + @PreAuthorize("@ss.hasPermi('ums:memberAddress:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("新增会员收货地址") + @PreAuthorize("@ss.hasPermi('ums:memberAddress:add')") + @Log(title = "会员收货地址", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody MemberAddress memberAddress) { + return ResponseEntity.ok(service.insert(memberAddress)); + } + + @ApiOperation("修改会员收货地址") + @PreAuthorize("@ss.hasPermi('ums:memberAddress:edit')") + @Log(title = "会员收货地址", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody MemberAddress memberAddress) { + return ResponseEntity.ok(service.update(memberAddress)); + } + + @ApiOperation("删除会员收货地址") + @PreAuthorize("@ss.hasPermi('ums:memberAddress:remove')") + @Log(title = "会员收货地址", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberCartController.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberCartController.java new file mode 100644 index 0000000..e176fde --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberCartController.java @@ -0,0 +1,93 @@ +package com.cyl.manager.ums.controller; + +import com.cyl.manager.ums.pojo.vo.MemberCartVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.manager.ums.convert.MemberCartConvert; +import com.cyl.manager.ums.domain.MemberCart; +import com.cyl.manager.ums.pojo.query.MemberCartQuery; +import com.cyl.manager.ums.service.MemberCartService; + +import java.util.List; + +/** + * 购物车Controller + * + * @author zcc + * @date 2022-11-29 + */ +@Api(description ="购物车接口列表") +@RestController +@RequestMapping("/ums/memberCart") +public class MemberCartController extends BaseController { + @Autowired + private MemberCartService service; + @Autowired + private MemberCartConvert convert; + + @ApiOperation("查询购物车列表") + @PreAuthorize("@ss.hasPermi('ums:memberCart:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody MemberCartQuery query, Pageable page) { + return ResponseEntity.ok(service.selectList(query, page)); + } + + @ApiOperation("导出购物车列表") + @PreAuthorize("@ss.hasPermi('ums:memberCart:export')") + @Log(title = "购物车", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(MemberCartQuery query) { +// List list = service.selectList(query, null); +// ExcelUtil util = new ExcelUtil<>(MemberCartVO.class); +// return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "购物车数据")); + return null; + } + + @ApiOperation("获取购物车详细信息") + @PreAuthorize("@ss.hasPermi('ums:memberCart:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("新增购物车") + @PreAuthorize("@ss.hasPermi('ums:memberCart:add')") + @Log(title = "购物车", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody MemberCart memberCart) { + return ResponseEntity.ok(service.insert(memberCart)); + } + + @ApiOperation("修改购物车") + @PreAuthorize("@ss.hasPermi('ums:memberCart:edit')") + @Log(title = "购物车", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody MemberCart memberCart) { + return ResponseEntity.ok(service.update(memberCart)); + } + + @ApiOperation("删除购物车") + @PreAuthorize("@ss.hasPermi('ums:memberCart:remove')") + @Log(title = "购物车", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberController.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberController.java new file mode 100644 index 0000000..d8dbe59 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberController.java @@ -0,0 +1,132 @@ +package com.cyl.manager.ums.controller; + +import java.util.ArrayList; +import java.util.List; + +import com.cyl.manager.ums.pojo.dto.ChangeMemberStatusDTO; +import com.cyl.manager.ums.pojo.vo.MemberDataStatisticsVO; +import com.cyl.manager.ums.pojo.vo.MemberExtendVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.manager.ums.convert.MemberConvert; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.pojo.query.MemberQuery; +import com.cyl.manager.ums.service.MemberService; +import com.cyl.manager.ums.pojo.vo.MemberVO; +import com.ruoyi.common.utils.poi.ExcelUtil; +/** + * 会员信息Controller + * + * @author zcc + * @date 2022-11-28 + */ +@Api(description ="会员信息接口列表") +@RestController +@RequestMapping("/ums/member") +public class MemberController extends BaseController { + @Autowired + private MemberService service; + @Autowired + private MemberConvert convert; + + @ApiOperation("查询会员信息列表") + @PreAuthorize("@ss.hasPermi('ums:member:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody MemberQuery query, Pageable page) { + List list = service.selectList(query, page); + + List memberExtendVoList = new ArrayList<>(); + list.forEach(member -> { + MemberExtendVo memberExtendVo = new MemberExtendVo(); + BeanUtils.copyProperties(member, memberExtendVo); + MemberDataStatisticsVO mds = service.viewStatistics(member.getId()); + BeanUtils.copyProperties(mds, memberExtendVo); + + memberExtendVo.setPhoneHidden(service.getPhoneDecrypted(memberExtendVo.getPhoneEncrypted())); + + memberExtendVoList.add(memberExtendVo); + }); + + + return ResponseEntity.ok(new PageImpl<>(memberExtendVoList, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + @ApiOperation("导出会员信息列表") + @PreAuthorize("@ss.hasPermi('ums:member:export')") + @Log(title = "会员信息", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(MemberQuery query) { + List list = service.selectList(query, null); + ExcelUtil util = new ExcelUtil<>(MemberVO.class); + return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "会员信息数据")); + } + + @ApiOperation("获取会员信息详细信息") + @PreAuthorize("@ss.hasPermi('ums:member:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("新增会员信息") + @PreAuthorize("@ss.hasPermi('ums:member:add')") + @Log(title = "会员信息", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody Member member) { + return ResponseEntity.ok(service.insert(member)); + } + + @ApiOperation("修改会员信息") + @PreAuthorize("@ss.hasPermi('ums:member:edit')") + @Log(title = "会员信息", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody Member member) { + return ResponseEntity.ok(service.update(member)); + } + + @ApiOperation("修改会员备注信息") + @PreAuthorize("@ss.hasPermi('ums:member:edit')") + @Log(title = "会员备注信息", businessType = BusinessType.UPDATE) + @PostMapping("/mark/update") + public ResponseEntity editMark(@RequestBody Member member) { + return ResponseEntity.ok(service.updateMark(member)); + } + + @ApiOperation("删除会员信息") + @PreAuthorize("@ss.hasPermi('ums:member:remove')") + @Log(title = "会员信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } + + @ApiOperation(("修改会员账户状态")) + @Log(title = "会员信息", businessType = BusinessType.UPDATE) + @PostMapping("/status/change") + public ResponseEntity changeStatus(@RequestBody ChangeMemberStatusDTO dto){ + return ResponseEntity.ok(service.changeStatus(dto)); + } + + @ApiOperation("会员手机号解密") + @GetMapping("/phone/decrypt/{phoneEncrypted}") + public ResponseEntity getPhoneDecrypted(@PathVariable String phoneEncrypted){ + return ResponseEntity.ok(service.getPhoneDecrypted(phoneEncrypted)); + } + + @ApiOperation("查看会员统计数据") + @GetMapping("/view/statistics/{memberId}") + public ResponseEntity viewStatistics(@PathVariable Long memberId){ + return ResponseEntity.ok(service.viewStatistics(memberId)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberDoorLockController.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberDoorLockController.java new file mode 100644 index 0000000..b8a0ee0 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberDoorLockController.java @@ -0,0 +1,107 @@ +package com.cyl.manager.ums.controller; + +import java.util.List; + +import com.cyl.manager.ums.service.MemberDoorLockService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; +import com.cyl.manager.ums.domain.MemberDoorLock; + +/** + * 门锁信息Controller + * + * @author daixiande + * @date 2024-07-07 + */ +@Api("门锁信息") +@RestController +@RequestMapping("/mall/memberDoorLock") +public class MemberDoorLockController extends BaseController { + + @Autowired + private MemberDoorLockService memberDoorLockService; + + /** + * 查询门锁信息列表 + */ + @ApiOperation("查询门锁信息列表") + @PreAuthorize("@ss.hasPermi('mall:memberDoorLock:list')") + @GetMapping("/list") + public TableDataInfo list(MemberDoorLock memberDoorLock) { + startPage(); + List list = memberDoorLockService.selectMemberDoorLockList(memberDoorLock); + return getDataTable(list); + } + + /** + * 导出门锁信息列表 + */ + @ApiOperation("导出门锁信息列表") + @PreAuthorize("@ss.hasPermi('mall:memberDoorLock:export')") + @Log(title = "门锁信息", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(MemberDoorLock memberDoorLock) { + List list = memberDoorLockService.selectMemberDoorLockList(memberDoorLock); + ExcelUtil util = new ExcelUtil(MemberDoorLock.class); + return util.exportExcel(list, "门锁信息数据"); + } + + /** + * 获取门锁信息详细信息 + */ + @ApiOperation("获取门锁信息详细信息") + @PreAuthorize("@ss.hasPermi('mall:memberDoorLock:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(memberDoorLockService.selectMemberDoorLockById(id)); + } + + /** + * 新增门锁信息 + */ + @ApiOperation("新增门锁信息") + @PreAuthorize("@ss.hasPermi('mall:memberDoorLock:add')") + @Log(title = "门锁信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody MemberDoorLock memberDoorLock) { + return toAjax(memberDoorLockService.insertMemberDoorLock(memberDoorLock)); + } + + /** + * 修改门锁信息 + */ + @ApiOperation("修改门锁信息") + @PreAuthorize("@ss.hasPermi('mall:memberDoorLock:edit')") + @Log(title = "门锁信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody MemberDoorLock memberDoorLock) { + return toAjax(memberDoorLockService.updateMemberDoorLock(memberDoorLock)); + } + + /** + * 删除门锁信息 + */ + @ApiOperation("删除门锁信息") + @PreAuthorize("@ss.hasPermi('mall:memberDoorLock:remove')") + @Log(title = "门锁信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(memberDoorLockService.deleteMemberDoorLockByIds(ids)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberLogininforController.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberLogininforController.java new file mode 100644 index 0000000..d043355 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberLogininforController.java @@ -0,0 +1,97 @@ +package com.cyl.manager.ums.controller; + +import java.util.List; + +import com.cyl.h5.config.SecurityUtil; +import com.cyl.manager.ums.domain.Member; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.model.LoginMember; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.framework.config.LocalDataUtil; +import com.ruoyi.framework.web.service.TokenService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.manager.ums.convert.MemberLogininforConvert; +import com.cyl.manager.ums.domain.MemberLogininfor; +import com.cyl.manager.ums.pojo.query.MemberLogininforQuery; +import com.cyl.manager.ums.service.MemberLogininforService; +import com.cyl.manager.ums.pojo.vo.MemberLogininforVO; +import com.ruoyi.common.utils.poi.ExcelUtil; + +import javax.servlet.http.HttpServletRequest; + +/** + * 会员登录记录Controller + * + * @author zcc + * @date 2023-07-26 + */ +@Api(description ="会员登录记录接口列表") +@RestController +@RequestMapping("/ums/memberLogininfor") +public class MemberLogininforController extends BaseController { + @Autowired + private MemberLogininforService service; + @Autowired + private MemberLogininforConvert convert; + @Autowired + private TokenService tokenService; + + @ApiOperation("查询会员登录记录列表") + @PreAuthorize("@ss.hasPermi('ums:memberLogininfor:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody MemberLogininforQuery query, Pageable page) { + List list = service.selectList(query, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + @ApiOperation("导出会员登录记录列表") + @PreAuthorize("@ss.hasPermi('ums:memberLogininfor:export')") + @Log(title = "会员登录记录", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(MemberLogininforQuery query) { + List list = service.selectList(query, null); + ExcelUtil util = new ExcelUtil<>(MemberLogininforVO.class); + return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "会员登录记录数据")); + } + + @ApiOperation("获取会员登录记录详细信息") + @PreAuthorize("@ss.hasPermi('ums:memberLogininfor:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("修改会员登录记录") + @PreAuthorize("@ss.hasPermi('ums:memberLogininfor:edit')") + @Log(title = "会员登录记录", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody MemberLogininfor memberLogininfor) { + return ResponseEntity.ok(service.update(memberLogininfor)); + } + + @ApiOperation("删除会员登录记录") + @PreAuthorize("@ss.hasPermi('ums:memberLogininfor:remove')") + @Log(title = "会员登录记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberWechatController.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberWechatController.java new file mode 100644 index 0000000..5df331a --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberWechatController.java @@ -0,0 +1,93 @@ +package com.cyl.manager.ums.controller; + +import java.util.List; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Page; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.enums.BusinessType; +import com.cyl.manager.ums.convert.MemberWechatConvert; +import com.cyl.manager.ums.domain.MemberWechat; +import com.cyl.manager.ums.pojo.query.MemberWechatQuery; +import com.cyl.manager.ums.service.MemberWechatService; +import com.cyl.manager.ums.pojo.vo.MemberWechatVO; +import com.ruoyi.common.utils.poi.ExcelUtil; +/** + * 用户微信信息Controller + * + * @author zcc + * @date 2022-11-28 + */ +@Api(description ="用户微信信息接口列表") +@RestController +@RequestMapping("/ums/memberWechat") +public class MemberWechatController extends BaseController { + @Autowired + private MemberWechatService service; + @Autowired + private MemberWechatConvert convert; + + @ApiOperation("查询用户微信信息列表") + @PreAuthorize("@ss.hasPermi('ums:memberWechat:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody MemberWechatQuery query, Pageable page) { + List list = service.selectList(query, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + @ApiOperation("导出用户微信信息列表") + @PreAuthorize("@ss.hasPermi('ums:memberWechat:export')") + @Log(title = "用户微信信息", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public ResponseEntity export(MemberWechatQuery query) { + List list = service.selectList(query, null); + ExcelUtil util = new ExcelUtil<>(MemberWechatVO.class); + return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "用户微信信息数据")); + } + + @ApiOperation("获取用户微信信息详细信息") + @PreAuthorize("@ss.hasPermi('ums:memberWechat:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + return ResponseEntity.ok(service.selectById(id)); + } + + @ApiOperation("新增用户微信信息") + @PreAuthorize("@ss.hasPermi('ums:memberWechat:add')") + @Log(title = "用户微信信息", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody MemberWechat memberWechat) { + return ResponseEntity.ok(service.insert(memberWechat)); + } + + @ApiOperation("修改用户微信信息") + @PreAuthorize("@ss.hasPermi('ums:memberWechat:edit')") + @Log(title = "用户微信信息", businessType = BusinessType.UPDATE) + @PutMapping + public ResponseEntity edit(@RequestBody MemberWechat memberWechat) { + return ResponseEntity.ok(service.update(memberWechat)); + } + + @ApiOperation("删除用户微信信息") + @PreAuthorize("@ss.hasPermi('ums:memberWechat:remove')") + @Log(title = "用户微信信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteById(id)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/PetCareController.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/PetCareController.java new file mode 100644 index 0000000..16d0aa8 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/PetCareController.java @@ -0,0 +1,112 @@ +package com.cyl.manager.ums.controller; + +import java.io.IOException; +import java.util.List; + +import com.cyl.manager.ums.domain.Pet; +import com.cyl.manager.ums.domain.PetCare; +import com.cyl.manager.ums.service.PetCareService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +import javax.servlet.http.HttpServletResponse; + +/** + * 宠物服务档案Controller + * + * @author daixiande + * @date 2024-05-25 + */ +@Api("宠物服务档案") +@RestController +@RequestMapping("/ums/petCare") +public class PetCareController extends BaseController { + @Autowired + private PetCareService petCareService; + + /** + * 查询宠物服务档案列表 + */ + @ApiOperation("查询宠物服务档案列表") + @PreAuthorize("@ss.hasPermi('mall:petCare:list')") + @GetMapping("/list") + public TableDataInfo list(PetCare petCare) { + startPage(); + List list = petCareService.selectPetCareList(petCare); + return getDataTable(list); + } + + /** + * 导出宠物服务档案列表 + */ + @ApiOperation("导出宠物服务档案列表") + @PreAuthorize("@ss.hasPermi('ums:petCare:export')") + @Log(title = "宠物服务档案", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, PetCare petCare) throws IOException { + List list = petCareService.selectPetCareList(petCare); + ExcelUtil util = new ExcelUtil(PetCare.class); + util.exportExcel(response, list, "宠物服务档案数据"); + } + + + + /** + * 获取宠物服务档案详细信息 + */ + @ApiOperation("获取宠物服务档案详细信息") + @PreAuthorize("@ss.hasPermi('mall:petCare:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Integer id) { + return AjaxResult.success(petCareService.selectPetCareById(id)); + } + + /** + * 新增宠物服务档案 + */ + @ApiOperation("新增宠物服务档案") + @PreAuthorize("@ss.hasPermi('mall:petCare:add')") + @Log(title = "宠物服务档案", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody PetCare petCare) { + return toAjax(petCareService.insertPetCare(petCare)); + } + + /** + * 修改宠物服务档案 + */ + @ApiOperation("修改宠物服务档案") + @PreAuthorize("@ss.hasPermi('mall:petCare:edit')") + @Log(title = "宠物服务档案", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody PetCare petCare) { + return toAjax(petCareService.updatePetCare(petCare)); + } + + /** + * 删除宠物服务档案 + */ + @ApiOperation("删除宠物服务档案") + @PreAuthorize("@ss.hasPermi('mall:petCare:remove')") + @Log(title = "宠物服务档案", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Integer[] ids) { + return toAjax(petCareService.deletePetCareByIds(ids)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/PetController.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/PetController.java new file mode 100644 index 0000000..a7b0a9e --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/PetController.java @@ -0,0 +1,115 @@ +package com.cyl.manager.ums.controller; + +import java.io.IOException; +import java.util.List; + +import com.cyl.manager.ums.domain.Pet; +import com.cyl.manager.ums.pojo.query.PetQuery; +import com.cyl.manager.ums.pojo.vo.PetVO; +import com.cyl.manager.ums.service.PetService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; + +import javax.servlet.http.HttpServletResponse; + +/** + * 宠物档案Controller + * + * @author daixiande + * @date 2024-05-05 + */ +@Api("宠物档案") +@RestController +@RequestMapping("/ums/pet") +public class PetController extends BaseController { + @Autowired + private PetService petService; + + /** + * 查询宠物档案列表 + */ + @ApiOperation("查询宠物档案列表") + @PreAuthorize("@ss.hasPermi('ums:pet:list')") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody PetQuery pet, Pageable page) { + List list = petService.selectList(pet, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + + /** + * 导出宠物档案列表 + */ + @ApiOperation("导出宠物档案列表") + @PreAuthorize("@ss.hasPermi('ums:pet:export')") + @Log(title = "宠物档案", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, Pet pet) throws IOException { + List list = petService.selectPetList(pet); + ExcelUtil util = new ExcelUtil(Pet.class); + util.exportExcel(response, list, "宠物档案数据"); + } + + /** + * 获取宠物档案详细信息 + */ + @ApiOperation("获取宠物档案详细信息") + @PreAuthorize("@ss.hasPermi('ums:pet:query')") + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Integer id) { + return ResponseEntity.ok(petService.selectPetById(id)); + } + /** + * 新增宠物档案 + */ + @ApiOperation("新增宠物档案") + @PreAuthorize("@ss.hasPermi('ums:pet:add')") + @Log(title = "宠物档案", businessType = BusinessType.INSERT) + @PostMapping + public ResponseEntity add(@RequestBody PetVO petVO) { + return ResponseEntity.ok(petService.insertPet(petVO)); + } + + + + /** + * 修改宠物档案 + */ + @ApiOperation("修改宠物档案") + @PreAuthorize("@ss.hasPermi('ums:pet:edit')") + @Log(title = "宠物档案", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody PetVO petVO) { + return toAjax(petService.updatePet(petVO)); + } + + /** + * 删除宠物档案 + */ + @ApiOperation("删除宠物档案") + @PreAuthorize("@ss.hasPermi('ums:pet:remove')") + @Log(title = "宠物档案", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public ResponseEntity remove(@PathVariable Integer[] ids) { + return ResponseEntity.ok(petService.deletePetByIds(ids)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberAddressConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberAddressConvert.java new file mode 100644 index 0000000..344215a --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberAddressConvert.java @@ -0,0 +1,16 @@ +package com.cyl.manager.ums.convert; + +import org.mapstruct.Mapper; +import com.cyl.manager.ums.domain.MemberAddress; +import com.cyl.manager.ums.pojo.vo.MemberAddressVO; +import java.util.List; +/** + * 会员收货地址 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface MemberAddressConvert { + + List dos2vos(List list); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberCartConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberCartConvert.java new file mode 100644 index 0000000..cbfc0ae --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberCartConvert.java @@ -0,0 +1,34 @@ +package com.cyl.manager.ums.convert; + +import com.cyl.manager.pms.domain.Product; +import com.cyl.manager.pms.domain.Sku; +import com.cyl.manager.pms.pojo.dto.MemberCartDTO; +import org.mapstruct.BeanMapping; +import org.mapstruct.Mapper; +import com.cyl.manager.ums.domain.MemberCart; +import com.cyl.manager.ums.pojo.vo.MemberCartVO; +import org.mapstruct.Mapping; +import org.mapstruct.MappingTarget; + +import java.util.List; + +/** + * 购物车 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface MemberCartConvert { + + List dos2vos(List list); + + @Mapping(target = "id", ignore = true) + @Mapping(target = "skuId", source = "id") + MemberCart sku2Cart(Sku sku); + + @BeanMapping(ignoreByDefault = true) + @Mapping(source = "name", target = "productName") + void injectProduct(@MappingTarget MemberCart memberCart, Product p); + + List dos2Dtos(List list); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberConvert.java new file mode 100644 index 0000000..9a89d4e --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberConvert.java @@ -0,0 +1,16 @@ +package com.cyl.manager.ums.convert; + +import org.mapstruct.Mapper; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.pojo.vo.MemberVO; +import java.util.List; +/** + * 会员信息 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface MemberConvert { + + List dos2vos(List list); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberDoorLockConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberDoorLockConvert.java new file mode 100644 index 0000000..7215269 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberDoorLockConvert.java @@ -0,0 +1,27 @@ +package com.cyl.manager.ums.convert; + +import com.cyl.manager.ums.domain.MemberDoorLock; +import com.cyl.manager.ums.pojo.dto.MemberDoorLockDTO; +import org.mapstruct.Mapper; +import com.cyl.manager.ums.domain.MemberDoorLock; +import com.cyl.manager.ums.pojo.dto.MemberDoorLockDTO; +/** + * 门锁信息 DO <=> DTO <=> VO / BO / Query + * + * @author daixiande + */ +@Mapper(componentModel = "spring") +public interface MemberDoorLockConvert { + + /** + * @param source DO + * @return DTO + */ + MemberDoorLockDTO do2dto(MemberDoorLock source); + + /** + * @param source DTO + * @return DO + */ + MemberDoorLock dto2do(MemberDoorLockDTO source); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberLogininforConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberLogininforConvert.java new file mode 100644 index 0000000..b395d6f --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberLogininforConvert.java @@ -0,0 +1,16 @@ +package com.cyl.manager.ums.convert; + +import org.mapstruct.Mapper; +import com.cyl.manager.ums.domain.MemberLogininfor; +import com.cyl.manager.ums.pojo.vo.MemberLogininforVO; +import java.util.List; +/** + * 会员登录记录 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface MemberLogininforConvert { + + List dos2vos(List list); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberPointHistoryConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberPointHistoryConvert.java new file mode 100644 index 0000000..8b15255 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberPointHistoryConvert.java @@ -0,0 +1,25 @@ +package com.cyl.manager.ums.convert; + +import com.cyl.manager.ums.domain.MemberPointHistory; +import com.cyl.manager.ums.pojo.dto.MemberPointHistoryDTO; +import org.mapstruct.Mapper; +/** + * 积分集点明细 DO <=> DTO <=> VO / BO / Query + * + * @author daixiande + */ +@Mapper(componentModel = "spring") +public interface MemberPointHistoryConvert { + + /** + * @param source DO + * @return DTO + */ + MemberPointHistoryDTO do2dto(MemberPointHistory source); + + /** + * @param source DTO + * @return DO + */ + MemberPointHistory dto2do(MemberPointHistoryDTO source); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberWechatConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberWechatConvert.java new file mode 100644 index 0000000..a1db14b --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/MemberWechatConvert.java @@ -0,0 +1,19 @@ +package com.cyl.manager.ums.convert; + +import com.cyl.external.resp.AccessTokenResp; +import org.mapstruct.Mapper; +import com.cyl.manager.ums.domain.MemberWechat; +import com.cyl.manager.ums.pojo.vo.MemberWechatVO; +import java.util.List; +/** + * 用户微信信息 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring") +public interface MemberWechatConvert { + + List dos2vos(List list); + + MemberWechat info2do(AccessTokenResp info); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/PetCareConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/PetCareConvert.java new file mode 100644 index 0000000..16dcf8d --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/PetCareConvert.java @@ -0,0 +1,25 @@ +package com.cyl.manager.ums.convert; + +import com.cyl.manager.ums.domain.PetCare; +import com.cyl.manager.ums.pojo.vo.PetCareVO; +import org.mapstruct.Mapper; +/** + * 宠物服务档案 DO <=> DTO <=> VO / BO / Query + * + * @author daixiande + */ +@Mapper(componentModel = "spring") +public interface PetCareConvert { + + /** + * @param source DO + * @return DTO + */ + PetCareVO do2dto(PetCare source); + + /** + * @param source DTO + * @return DO + */ + PetCare dto2do(PetCareVO source); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/PetConvert.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/PetConvert.java new file mode 100644 index 0000000..039bbd0 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/convert/PetConvert.java @@ -0,0 +1,73 @@ +package com.cyl.manager.ums.convert; + +import com.cyl.manager.ums.domain.Pet; +import com.cyl.manager.ums.pojo.vo.PetVO; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 宠物档案 DO <=> DTO <=> VO / BO / Query + * + * @author daixiande + */ +@Mapper(componentModel = "spring") +public interface PetConvert { + + List dos2vos(List list); + + @Mappings({ + @Mapping(target = "healthStatus", expression = "java(getHealthStatus(petVO.getHealthStatus()))"), + @Mapping(target = "personality", expression = "java(getPersonality(petVO.getPersonality()))") + }) + + Pet vo2do(PetVO petVO); + + @Mappings({ + @Mapping(target = "healthStatus", expression = "java(getHealthStatus(pet.getHealthStatus()))"), + @Mapping(target = "personality", expression = "java(getPersonality(pet.getPersonality()))") + }) + PetVO do2vo(Pet pet); + + default String getPersonality(List personality) { + if(CollectionUtils.isEmpty(personality)){ + return null; + }else{ + return personality.stream() + .map(String::valueOf) + .collect(Collectors.joining(",")); + } + } + + default List getPersonality(String personality) { + if(StringUtils.isEmpty(personality)){ + return null; + }else{ + return Arrays.asList(personality.split(",")); + } + } + + default String getHealthStatus(List healthStatus) { + if(CollectionUtils.isEmpty(healthStatus)){ + return null; + }else{ + return healthStatus.stream() + .map(String::valueOf) + .collect(Collectors.joining(",")); + } + } + + default List getHealthStatus(String healthStatus) { + if(StringUtils.isEmpty(healthStatus)){ + return null; + }else{ + return Arrays.asList(healthStatus.split(",")); + } + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/Address.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/Address.java new file mode 100644 index 0000000..3e955b3 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/Address.java @@ -0,0 +1,50 @@ +package com.cyl.manager.ums.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 地址对象 + * + */ +@ApiModel(description="地址对象") +@Data +@TableName("address") +public class Address { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + private Integer id; + + @ApiModelProperty("地区邮编") + @Excel(name = "地区邮编") + private Long code; + + @ApiModelProperty("父地区邮编") + @Excel(name = "父地区邮编") + private Long parentCode; + + @ApiModelProperty("地区名") + @Excel(name = "地区名") + private String name; + + @ApiModelProperty("地区层级") + @Excel(name = "地区层级") + private Integer level; + + @ApiModelProperty("CREATED_AT") + @Excel(name = "CREATED_AT") + private String createdAt; + + @ApiModelProperty("UPDATED_AT") + @Excel(name = "UPDATED_AT") + private String updatedAt; + + @ApiModelProperty("DELETED_AT") + @Excel(name = "DELETED_AT") + private String deletedAt; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/Member.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/Member.java new file mode 100644 index 0000000..40edf18 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/Member.java @@ -0,0 +1,98 @@ +package com.cyl.manager.ums.domain; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 会员信息对象 ums_member + * + * @author zcc + */ +@ApiModel(description="会员信息对象") +@Data +@TableName("ums_member") +public class Member extends BaseAudit { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("昵称") + @Excel(name = "昵称") + private String nickname; + + @ApiModelProperty("密码") + @Excel(name = "密码") + private String password; + + @ApiModelProperty("加密手机号") + private String phoneEncrypted; + + @ApiModelProperty("隐藏前三位后四位的手机号") + private String phoneHidden; + + @ApiModelProperty("用户备注") + @Excel(name = "用户备注") + private String mark; + + @ApiModelProperty("帐号启用状态:0->禁用;1->启用") + @Excel(name = "帐号启用状态:0->禁用;1->启用") + private Integer status; + + @ApiModelProperty("头像") + @Excel(name = "头像") + private String avatar; + + @ApiModelProperty("性别:0->未知;1->男;2->女") + @Excel(name = "性别:0->未知;1->男;2->女") + private Integer gender; + + @ApiModelProperty("用户所在城市") + @Excel(name = "用户所在城市") + private String city; + + @ApiModelProperty("用户所在省份") + @Excel(name = "用户所在省份") + private String province; + + @ApiModelProperty("用户所在国家") + @Excel(name = "用户所在国家") + private String country; + + @ApiModelProperty("公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注") + @Excel(name = "公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注") + private String remark; + + @ApiModelProperty("生日") + @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd") + private LocalDate birthday; + + @ApiModelProperty("推广员id") + @Excel(name = "推广员id") + private Long spreadUid; + + @ApiModelProperty("推广员关联时间") + @Excel(name = "推广员关联时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime spreadTime; + + @ApiModelProperty("等级") + @Excel(name = "等级") + private Integer level; + + @ApiModelProperty("用户剩余积分") + @Excel(name = "用户剩余积分") + private BigDecimal integral; + + @ApiModelProperty("用户集点") + @Excel(name = "用户集点") + private BigDecimal centralPoint; + + + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberAddress.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberAddress.java new file mode 100644 index 0000000..61f3cd8 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberAddress.java @@ -0,0 +1,113 @@ +package com.cyl.manager.ums.domain; + +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 会员收货地址对象 ums_member_address + * + * @author zcc + */ +@ApiModel(description="会员收货地址对象") +@Data +@TableName(value = "ums_member_address", autoResultMap = true) +public class MemberAddress extends BaseAudit { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("MEMBER_ID") + @Excel(name = "MEMBER_ID") + private Long memberId; + + @ApiModelProperty("收货人名称") + @Excel(name = "收货人名称") + private String name; + + @ApiModelProperty("隐藏前三位后四位的手机号") + @Excel(name = "隐藏前三位后四位的手机号") + private String phoneHidden; + + @ApiModelProperty("加密的手机号") + @Excel(name = "加密的手机号") + private String phoneEncrypted; + + @ApiModelProperty("紧急联络电话") + @Excel(name = "紧急联络电话") + private String emergencyPhone; + + @ApiModelProperty("是否为默认") + @Excel(name = "是否为默认") + private Integer defaultStatus; + + @ApiModelProperty("邮政编码") + @Excel(name = "邮政编码") + private String postCode; + + @ApiModelProperty("省份/直辖市") + @Excel(name = "省份/直辖市") + private String province; + + @ApiModelProperty("城市") + @Excel(name = "城市") + private String city; + + @ApiModelProperty("区") + @Excel(name = "区") + private String district; + + @ApiModelProperty("省份/直辖市id") + @Excel(name = "省份/直辖市id") + private Long provinceId; + + @ApiModelProperty("城市id") + @Excel(name = "城市id") + private Long cityId; + + @ApiModelProperty("区id") + @Excel(name = "区id") + private Long districtId; + + @ApiModelProperty("详细地址(街道)") + @Excel(name = "详细地址(街道)") + private String detailAddress; + + @ApiModelProperty("是否默认") + @Excel(name = "是否默认") + private Integer isDefault; + + + + @ApiModelProperty("接单状态 0不接单 1接单") + private Integer receiveOrderStatus; + + + @ApiModelProperty("接单范围") + private Integer receiveOrderRange; + + @ApiModelProperty("不接单日期 字符串数组") + @TableField(typeHandler = FastjsonTypeHandler.class) + private JSONArray noOrderDate; + + @ApiModelProperty("接单时间,多选逗号分隔,周末:1早上,2午后,3晚间") + private String orderDateWeekend; + + @ApiModelProperty("接单时间,多选逗号分隔,周内:1早上,2午后,3晚间") + private String orderDateWeekday; + + @ApiModelProperty("微信OPENID") + @Excel(name = "微信OPENID") + private String openId; + + @ApiModelProperty("STAFF_ID") + @Excel(name = "STAFF_ID") + private Long staffId; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberCart.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberCart.java new file mode 100644 index 0000000..a8a53cd --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberCart.java @@ -0,0 +1,55 @@ +package com.cyl.manager.ums.domain; + +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 购物车对象 ums_member_cart + * + * @author zcc + */ +@ApiModel(description="购物车对象") +@Data +@TableName("ums_member_cart") +public class MemberCart extends BaseAudit { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("购物车表ID") + private Long id; + + @ApiModelProperty("0->失效;1->有效") + @Excel(name = "0->失效;1->有效") + private Integer status; + + @ApiModelProperty("用户ID") + @Excel(name = "用户ID") + private Long memberId; + + @ApiModelProperty("商品ID") + @Excel(name = "商品ID") + private Long productId; + + @ApiModelProperty("展示图片") + @Excel(name = "展示图片") + private String pic; + + @ApiModelProperty("SKU ID") + @Excel(name = "SKU ID") + private Long skuId; + + @ApiModelProperty("PRODUCT_NAME") + @Excel(name = "PRODUCT_NAME") + private String productName; + + @ApiModelProperty("商品属性") + @Excel(name = "商品属性") + private String spData; + + @ApiModelProperty("商品数量") + @Excel(name = "商品数量") + private Integer quantity; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberDoorLock.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberDoorLock.java new file mode 100644 index 0000000..4fb3c77 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberDoorLock.java @@ -0,0 +1,41 @@ +package com.cyl.manager.ums.domain; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 门锁信息对象 ums_member_door_lock + * + * @author daixiande + */ +@Data +public class MemberDoorLock extends BaseAudit { + private static final long serialVersionUID = 1L; + + /** ID */ + private Long id; + + /** 用户ID */ + @Excel(name = "用户ID") + private Long memberId; + /** openId */ + @Excel(name = "openId") + private String openId; + + /** 房屋类型 */ + @Excel(name = "房屋类型") + private String houseType; + + /** 门锁类型 */ + @Excel(name = "门锁类型") + private String lockType; + + /** 如何交接钥匙 */ + @Excel(name = "如何交接钥匙") + private String keyHandover; + + /** 钥匙位置 */ + @Excel(name = "钥匙位置") + private String keyStorageLocation; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberLogininfor.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberLogininfor.java new file mode 100644 index 0000000..9ce1d70 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberLogininfor.java @@ -0,0 +1,55 @@ +package com.cyl.manager.ums.domain; + +import java.time.LocalDateTime; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 会员登录记录对象 ums_member_logininfor + * + * @author zcc + */ +@ApiModel(description="会员登录记录对象") +@Data +@TableName("ums_member_logininfor") +public class MemberLogininfor { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("会员手机号") + @Excel(name = "会员手机号") + private String phone; + + @ApiModelProperty("会员id") + @Excel(name = "会员id") + private Long memberId; + + @ApiModelProperty("登录IP地址") + @Excel(name = "登录IP地址") + private String ipaddr; + + @ApiModelProperty("登录地点") + @Excel(name = "登录地点") + private String loginLocation; + + @ApiModelProperty("浏览器类型") + @Excel(name = "浏览器类型") + private String browser; + + @ApiModelProperty("操作系统") + @Excel(name = "操作系统") + private String os; + + @ApiModelProperty("登陆时间") + @Excel(name = "登陆时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime loginTime; + + @ApiModelProperty("登录类型 1员工 2用户") + @Excel(name = "登录类型 1员工 2用户") + private Integer type; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberPointHistory.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberPointHistory.java new file mode 100644 index 0000000..88fedab --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberPointHistory.java @@ -0,0 +1,66 @@ +package com.cyl.manager.ums.domain; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import lombok.Data; +/** + * 积分集点明细对象 ums_member_point_history + * + * @author daixiande + */ +@ApiModel(description="积分集点明细对象") +@Data +@TableName("ums_member_point_history") +public class MemberPointHistory implements Serializable { + private static final long serialVersionUID = 1L; + + /** ID */ + private Integer id; + + /** MEMBER_ID */ + @Excel(name = "MEMBER_ID") + private Long memberId; + + /** POINT 积分数量(正数表示增加,负数表示减少) */ + @Excel(name = "point") + private BigDecimal point; + + /** TYPE + * 集点:gather、积分:point + * + * */ + @Excel(name = "type") + private String type; + + /** TRANSACTION_ID */ + @Excel(name = "transaction_id") + private Long transactionId; + + /** DESCRIPTION */ + @Excel(name = "description") + private String description; + + /** ACTION 类型(1 表示增加,2 表示减少)*/ + @Excel(name = "action") + private String action; + + /** POINT_AFTER */ + @Excel(name = "point_after") + private BigDecimal pointAfter; + + /** POINT_BEFORE */ + @Excel(name = "point_before") + private BigDecimal pointBefore; + + /** CREATE_AT */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "create_at", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createAt; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberWechat.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberWechat.java new file mode 100644 index 0000000..015f5a0 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/MemberWechat.java @@ -0,0 +1,80 @@ +package com.cyl.manager.ums.domain; + +import java.time.LocalDateTime; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * 用户微信信息对象 ums_member_wechat + * + * @author zcc + */ +@ApiModel(description="用户微信信息对象") +@Data +@TableName("ums_member_wechat") +public class MemberWechat extends BaseAudit { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("MEMBER_ID") + @Excel(name = "MEMBER_ID") + private Long memberId; + + @ApiModelProperty("微信号") + @Excel(name = "微信号") + private String wechatId; + + @ApiModelProperty("只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段") + @Excel(name = "只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段") + private String unionid; + + @ApiModelProperty("用户的标识,对当前公众号唯一") + @Excel(name = "用户的标识,对当前公众号唯一") + private String openid; + + @ApiModelProperty("小程序唯一身份ID") + @Excel(name = "小程序唯一身份ID") + private String routineOpenid; + + @ApiModelProperty("用户所在的分组ID(兼容旧的用户分组接口)") + @Excel(name = "用户所在的分组ID", readConverterExp = "兼=容旧的用户分组接口") + private Integer groupid; + + @ApiModelProperty("用户被打上的标签ID列表") + @Excel(name = "用户被打上的标签ID列表") + private String tagidList; + + @ApiModelProperty("用户是否订阅该公众号标识") + @Excel(name = "用户是否订阅该公众号标识") + private Integer subscribe; + + @ApiModelProperty("关注公众号时间") + @Excel(name = "关注公众号时间") + private Integer subscribeTime; + + @ApiModelProperty("小程序用户会话密匙") + @Excel(name = "小程序用户会话密匙") + private String sessionKey; + + @ApiModelProperty("token") + @Excel(name = "token") + private String accessToken; + + @ApiModelProperty("过期时间") + @Excel(name = "过期时间") + private Integer expiresIn; + + @ApiModelProperty("刷新token") + @Excel(name = "刷新token") + private String refreshToken; + + @ApiModelProperty("过期时间") + @Excel(name = "过期时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime expireTime; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/Pet.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/Pet.java new file mode 100644 index 0000000..49945cb --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/Pet.java @@ -0,0 +1,87 @@ +package com.cyl.manager.ums.domain; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 宠物档案对象 + * + * @author daixiande + */ +@Data +@TableName("ums_pet") +public class Pet extends BaseAudit { + private static final long serialVersionUID = 1L; + + /** 宠物ID */ + private Integer id; + + /** 宠物类型 */ + @Excel(name = "宠物类型") + private String petType; + + /** 宠物名称 */ + @Excel(name = "宠物名称") + private String name; + + /** 宠物性别 */ + @Excel(name = "宠物性别") + private String gender; + + /** 出生年月日 */ + @JsonFormat(pattern = "yyyy-MM") + @Excel(name = "出生年月") + private String birthDate; + + /** 其他备注 */ + @Excel(name = "其他备注") + private String remark; + + /** 照片路径 */ + @Excel(name = "照片路径") + private String photo; + + /** 品种 */ + @Excel(name = "品种") + private String breed; + + /** 体型 */ + @Excel(name = "体型") + private String bodyType; + + /** 性格特征 */ + @Excel(name = "性格特征") + private String personality; + + /** 疫苗情况 */ + @Excel(name = "疫苗情况") + private String vaccineStatus; + + /** 驱虫情况 */ + @Excel(name = "驱虫情况") + private String dewormingStatus; + + /** 狗证情况(只针对狗狗) */ + @Excel(name = "狗证情况", readConverterExp = "只=针对狗狗") + private String doglicenseStatus; + + /** 健康情况 */ + @Excel(name = "健康情况") + private String healthStatus; + + /** 绝育 */ + @Excel(name = "绝育") + private String sterilization; + + /** 宠物主人 */ + @Excel(name = "宠物主人") + private String owner; + + /** 删除标志(0代表存在 2代表删除)*/ + private Integer delFlag = 0; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/PetCare.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/PetCare.java new file mode 100644 index 0000000..3aef1c4 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/domain/PetCare.java @@ -0,0 +1,306 @@ +package com.cyl.manager.ums.domain; + +import java.math.BigDecimal; + +import com.ruoyi.common.annotation.Excel; +import lombok.Data; +/** + * 宠物服务档案对象 ums_pet_care + * + * @author daixiande + */ +@Data +public class PetCare { + private static final long serialVersionUID = 1L; + + /** 主键,自增长的ID */ + private Integer id; + + /** 所属宠物ID */ + @Excel(name = "所属宠物ID") + private Integer petId; + + /** 是否包含干粮 */ + @Excel(name = "是否包含干粮") + private Boolean includeDryFood; + + /** 干粮摆放位置-图片 */ + @Excel(name = "干粮摆放位置-图片") + private String dryFoodLocation; + + /** 干粮喂养重量 */ + @Excel(name = "干粮喂养重量") + private String dryFoodFeedWeight; + + /** 干粮喂养批次_天 */ + @Excel(name = "干粮喂养批次_天") + private Integer dryFoodFeedFrequencyDays; + + /** 干粮喂养批次_次 */ + @Excel(name = "干粮喂养批次_次") + private Integer dryFoodFeedFrequencyTimes; + + /** 干粮备注 */ + @Excel(name = "干粮备注") + private String dryFoodRemarks; + + /** 是否包含湿粮 */ + @Excel(name = "是否包含湿粮") + private Boolean includeWetFood; + + /** 湿粮摆放位置-图片 */ + @Excel(name = "湿粮摆放位置-图片") + private String wetFoodLocation; + + /** 湿粮喂养重量 */ + @Excel(name = "湿粮喂养重量") + private BigDecimal wetFoodFeedWeight; + + /** 湿粮喂养批次_天 */ + @Excel(name = "湿粮喂养批次_天") + private Integer wetFoodFeedFrequencyDays; + + /** 湿粮喂养批次_次 */ + @Excel(name = "湿粮喂养批次_次") + private Integer wetFoodFeedFrequencyTimes; + + /** 湿粮备注 */ + @Excel(name = "湿粮备注") + private String wetFoodRemarks; + + /** 是否包含自制食品 */ + @Excel(name = "是否包含自制食品") + private Boolean includeHomemadeFood; + + /** 自制食品摆放位置-图片 */ + @Excel(name = "自制食品摆放位置-图片") + private String homemadeFoodLocation; + + /** 自制饭制作和喂食说明(备注) */ + @Excel(name = "自制饭制作和喂食说明", readConverterExp = "备=注") + private String homemadeFoodInstructions; + + /** 是否包含生骨肉 */ + @Excel(name = "是否包含生骨肉") + private Boolean includeRawMeat; + + /** 生骨肉摆放位置-图片 */ + @Excel(name = "生骨肉摆放位置-图片") + private String rawMeatLocation; + + /** 生骨肉喂食说明(备注) */ + @Excel(name = "生骨肉喂食说明", readConverterExp = "备=注") + private String rawMeatFeedingInstructions; + + /** 是否包含保健品 */ + @Excel(name = "是否包含保健品") + private Boolean includeHealthSupplements; + + /** 保健品摆放位置-图片 */ + @Excel(name = "保健品摆放位置-图片") + private String healthSupplementsLocation; + + /** 保健品喂食说明(备注) */ + @Excel(name = "保健品喂食说明", readConverterExp = "备=注") + private String healthSupplementsFeedingInstructions; + + /** 是否包含零食 */ + @Excel(name = "是否包含零食") + private Boolean includeSnacks; + + /** 零食摆放位置-图片 */ + @Excel(name = "零食摆放位置-图片") + private String snacksLocation; + + /** 零食喂养方式(备注) */ + @Excel(name = "零食喂养方式", readConverterExp = "备=注") + private String snacksFeedingMethod; + + /** 零食备注 */ + @Excel(name = "其它备注") + private String otherRemark; + + /** 食盆/自动喂食器摆放位置-图片 */ + @Excel(name = "食盆/自动喂食器摆放位置-图片") + private String feedingTrayAutomaticFeederLocation; + + /** 食盆/自动喂食器备注 */ + @Excel(name = "食盆/自动喂食器备注") + private String feedingTrayAutomaticFeederRemarks; + + /** 水碗、饮用水摆放位置-图片 */ + @Excel(name = "水碗、饮用水摆放位置-图片") + private String waterBowlLocation; + + /** 水碗、饮用水备注 */ + @Excel(name = "水碗、饮用水备注") + private String waterBowlRemarks; + + /** 是否有清洁要求 */ + @Excel(name = "是否有清洁要求") + private Boolean cleaningRequirements; + + + /** 是否更换猫砂 */ + @Excel(name = "厕所、猫砂摆放位置-图片") + private Boolean changeLitterBox; + + /** 厕所、猫砂摆放位置-图片 */ + @Excel(name = "厕所、猫砂摆放位置-图片") + private String litterBoxLocation; + + /** 猫砂更换频次_天 */ + @Excel(name = "猫砂更换频次_天") + private Integer litterBoxChangeFrequencyDays; + + /** 猫砂更换频次_次 */ + @Excel(name = "猫砂更换频次_次") + private Integer litterBoxChangeFrequencyTimes; + + /** 厕所、猫砂备注 */ + @Excel(name = "厕所、猫砂备注") + private String litterBoxRemarks; + + /** 尿垫摆放位置-图片 */ + @Excel(name = "尿垫摆放位置-图片") + private String peePadLocation; + + /** 是否更换尿垫 */ + @Excel(name = "是否更换尿垫") + private Boolean changePeePad; + + /** 尿垫砂更换频次_天 */ + @Excel(name = "尿垫更换频次_天") + private Integer peePadFrequencyDays; + + /** 尿垫更换频次_次 */ + @Excel(name = "尿垫更换频次_次") + private Integer peePadFrequencyTimes; + + + /** 尿垫备注 */ + @Excel(name = "尿垫备注") + private String peePadRemarks; + + /** 是否选择附加服务 */ + @Excel(name = "是否选择附加服务") + private Boolean additionalService; + + /** 是否陪玩*/ + @Excel(name = "是否陪玩") + private Boolean playtimeService; + + /** 陪玩用具摆放位置-图片 */ + @Excel(name = "陪玩用具摆放位置-图片") + private String playtimeToolsLocation; + + /** 希望的互动方式和要求(备注) */ + @Excel(name = "希望的互动方式和要求", readConverterExp = "备=注") + private String playtimeRequirements; + + /** 是否选择活动区吸毛 */ + @Excel(name = "是否选择活动区吸毛") + private Boolean furCleaningService; + + /** 吸毛用品摆放位置-图片 */ + @Excel(name = "吸毛用品摆放位置-图片") + private String furCleaningToolsLocation; + + /** 请说明吸毛区和要求(备注) */ + @Excel(name = "请说明吸毛区和要求", readConverterExp = "备=注") + private String furCleaningRequirements; + + /** 是否选择毛发梳理 */ + @Excel(name = "是否选择毛发梳理") + private Boolean groomingService; + + /** 毛发梳理用品摆放位置-图片 */ + @Excel(name = "毛发梳理用品摆放位置-图片") + private String groomingToolsLocation; + + /** 请说明毛发梳理要求(备注) */ + @Excel(name = "请说明毛发梳理要求", readConverterExp = "备=注") + private String groomingRequirements; + + /** 是否选择食具深度清洁 */ + @Excel(name = "是否选择食具深度清洁") + private Boolean deepCleaningService; + + /** 食具深度清洁用品摆放位置-图片 */ + @Excel(name = "食具深度清洁用品摆放位置-图片") + private String deepCleaningToolsLocation; + + /** 食具深度清洁备注 */ + @Excel(name = "食具深度清洁备注") + private String deepCleaningRemarks; + + /** 是否选择喂药上药 */ + @Excel(name = "是否选择喂药上药") + private Boolean administerMedication; + + /** 药品摆放位置-图片 */ + @Excel(name = "药品摆放位置-图片") + private String administerMedicationLocation; + + /** 喂药上药备注 */ + @Excel(name = "喂药上药备注") + private String administerMedicationRemarks; + + /** 附加服务用品摆放位置-图片 */ + @Excel(name = "附加服务用品摆放位置-图片") + private String additionalServicesPlacement; + + /** 服务用品摆放备注 */ + @Excel(name = "服务用品摆放备注") + private String additionalServicesPlacementRemark; + + /** 服务用品摆放备注 */ + @Excel(name = "附加服务备注") + private String additionalServicesRemarks; + + @Excel(name = "遛狗时长") + private Boolean isWalkDogDuration; + + @Excel(name = "狗狗行为") + private Boolean isDogBehavior; + + @Excel(name = "偏好区域") + private Boolean isFavoriteRegion; + + @Excel(name = "偏好路线") + private Boolean isFavoriteRoute; + + @Excel(name = "狗狗雨具位置") + private String dogRainGearLocation; + + @Excel(name = "下雨天遛狗要求") + private String walkDogRainRemark; + + /** 是否遛狗服务 */ + @Excel(name = "是否遛狗服务") + private Boolean walkDog; + + /** 遛狗用品摆放位置 */ + @Excel(name = "遛狗用品摆放位置") + private String walkDogToolsLocation; + + /** 是否雨天遛狗 */ + @Excel(name = "是否雨天遛狗") + private Boolean walkDogRainyDay; + + /** 遛狗时长 */ + @Excel(name = "遛狗时长") + private String walkDogDuration; + + /** 狗狗行为 */ + @Excel(name = "狗狗行为") + private String dogBehavior; + + /** 偏好区域 */ + @Excel(name = "偏好区域") + private String favoriteRegion; + + /** 偏好路线 */ + @Excel(name = "偏好路线") + private String favoriteRoute; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/AddressMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/AddressMapper.java new file mode 100644 index 0000000..6c8de80 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/AddressMapper.java @@ -0,0 +1,22 @@ +package com.cyl.manager.ums.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.ums.domain.Address; + +import java.util.List; + +/** + * 【请填写功能名称】Mapper接口 + * + * @author sjm + */ +public interface AddressMapper extends BaseMapper
{ + /** + * 查询【请填写功能名称】列表 + * + * @param address 【请填写功能名称】 + * @return 【请填写功能名称】集合 + */ + List
selectByEntity(Address address); + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberAddressMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberAddressMapper.java new file mode 100644 index 0000000..797f707 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberAddressMapper.java @@ -0,0 +1,29 @@ +package com.cyl.manager.ums.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.h5.pojo.dto.MemberAddressDTO; +import com.cyl.manager.ums.domain.MemberAddress; + +/** + * 会员收货地址Mapper接口 + * + * @author zcc + */ +public interface MemberAddressMapper extends BaseMapper { + /** + * 查询会员收货地址列表 + * + * @param memberAddress 会员收货地址 + * @return 会员收货地址集合 + */ + List selectByEntity(MemberAddress memberAddress); + + int updateByPrimaryKeySelective(MemberAddress address); + + void updateDefault(int IsDefault, Long memberId); + + void delelteDefaultAddress(Long memberId); + + List selectByCondition(MemberAddressDTO memberAddressDTO); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberCartMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberCartMapper.java new file mode 100644 index 0000000..c2d3901 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberCartMapper.java @@ -0,0 +1,31 @@ +package com.cyl.manager.ums.mapper; + +import java.time.LocalDateTime; +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.ums.domain.MemberCart; +import com.cyl.manager.ums.pojo.query.MemberCartQuery; +import com.cyl.manager.ums.pojo.vo.MemberCartVO; +import org.apache.ibatis.annotations.Param; + +/** + * 购物车Mapper接口 + * + * @author zcc + */ +public interface MemberCartMapper extends BaseMapper { + /** + * 查询购物车列表 + * + * @param memberCart 购物车 + * @return 购物车集合 + */ + List selectByEntity(MemberCart memberCart); + + /** + * + */ + List selectByPage(MemberCartQuery query); + + int statAddCount(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberDoorLockMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberDoorLockMapper.java new file mode 100644 index 0000000..871df20 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberDoorLockMapper.java @@ -0,0 +1,72 @@ +package com.cyl.manager.ums.mapper; + +import com.cyl.manager.ums.domain.MemberDoorLock; + +import java.util.List; + +/** + * 门锁信息Mapper接口 + * + * @author daixiande + */ +public interface MemberDoorLockMapper { + /** + * 查询门锁信息 + * + * @param id 门锁信息主键 + * @return 门锁信息 + */ + MemberDoorLock selectById(Long id); + + /** + * 查询门锁信息列表 + * + * @param memberDoorLock 门锁信息 + * @return 门锁信息集合 + */ + List selectList(MemberDoorLock memberDoorLock); + + /** + * 新增门锁信息 + * + * @param memberDoorLock 门锁信息 + * @return 结果 + */ + int insert(MemberDoorLock memberDoorLock); + + /** + * 修改门锁信息 + * + * @param memberDoorLock 门锁信息 + * @return 结果 + */ + int update(MemberDoorLock memberDoorLock); + + /** + * 删除门锁信息 + * + * @param id 门锁信息主键 + * @return 结果 + */ + int deleteById(Long id); + + /** + * 批量删除门锁信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteByIds(Long[] ids); + + /** + * 更新或插入门锁信息 + * + * @param memberDoorLock 门锁信息 + * @return 结果 + */ + int insertOrUpdate(MemberDoorLock memberDoorLock); + + MemberDoorLock selectByMemberId(Long memberId); + + void deleteMemberDoorLockByMemberId(Long memberId); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberLogininforMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberLogininforMapper.java new file mode 100644 index 0000000..5c14606 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberLogininforMapper.java @@ -0,0 +1,25 @@ +package com.cyl.manager.ums.mapper; + +import java.time.LocalDateTime; +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.aws.domain.SystemStatistics; +import org.apache.ibatis.annotations.Param; +import com.cyl.manager.ums.domain.MemberLogininfor; + +/** + * 会员登录记录Mapper接口 + * + * @author zcc + */ +public interface MemberLogininforMapper extends BaseMapper { + /** + * 查询会员登录记录列表 + * + * @param memberLogininfor 会员登录记录 + * @return 会员登录记录集合 + */ + List selectByEntity(MemberLogininfor memberLogininfor); + + int statLoginMember(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberMapper.java new file mode 100644 index 0000000..97abb8b --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberMapper.java @@ -0,0 +1,20 @@ +package com.cyl.manager.ums.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.ums.domain.Member; + +/** + * 会员信息Mapper接口 + * + * @author zcc + */ +public interface MemberMapper extends BaseMapper { + /** + * 查询会员信息列表 + * + * @param member 会员信息 + * @return 会员信息集合 + */ + List selectByEntity(Member member); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberPointHistoryMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberPointHistoryMapper.java new file mode 100644 index 0000000..689e1d9 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberPointHistoryMapper.java @@ -0,0 +1,69 @@ +package com.cyl.manager.ums.mapper; + +import java.util.List; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.ums.domain.MemberPointHistory; + +/** + * 积分集点明细Mapper接口 + * + * @author daixiande + */ +public interface MemberPointHistoryMapper extends BaseMapper { + /** + * 查询积分集点明细 + * + * @param id 积分集点明细主键 + * @return 积分集点明细 + */ + MemberPointHistory selectById(Integer id); + + /** + * 查询积分集点明细列表 + * + * @param memberPointHistory 积分集点明细 + * @return 积分集点明细集合 + */ + List selectList(MemberPointHistory memberPointHistory); + + /** + * 新增积分集点明细 + * + * @param memberPointHistory 积分集点明细 + * @return 结果 + */ + int insert(MemberPointHistory memberPointHistory); + + /** + * 修改积分集点明细 + * + * @param memberPointHistory 积分集点明细 + * @return 结果 + */ + int update(MemberPointHistory memberPointHistory); + + /** + * 删除积分集点明细 + * + * @param id 积分集点明细主键 + * @return 结果 + */ + int deleteById(Integer id); + + /** + * 批量删除积分集点明细 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteByIds(Integer[] ids); + + /** + * 更新或插入积分集点明细 + * + * @param memberPointHistory 积分集点明细 + * @return 结果 + */ + int insertOrUpdate(MemberPointHistory memberPointHistory); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberWechatMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberWechatMapper.java new file mode 100644 index 0000000..4de45c6 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/MemberWechatMapper.java @@ -0,0 +1,20 @@ +package com.cyl.manager.ums.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.ums.domain.MemberWechat; + +/** + * 用户微信信息Mapper接口 + * + * @author zcc + */ +public interface MemberWechatMapper extends BaseMapper { + /** + * 查询用户微信信息列表 + * + * @param memberWechat 用户微信信息 + * @return 用户微信信息集合 + */ + List selectByEntity(MemberWechat memberWechat); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/PetCareMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/PetCareMapper.java new file mode 100644 index 0000000..58cb990 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/PetCareMapper.java @@ -0,0 +1,71 @@ +package com.cyl.manager.ums.mapper; + + +import com.cyl.manager.ums.domain.PetCare; + +import java.util.List; + +/** + * 宠物服务档案Mapper接口 + * + * @author daixiande + */ +public interface PetCareMapper { + /** + * 查询宠物服务档案 + * + * @param id 宠物服务档案主键 + * @return 宠物服务档案 + */ + PetCare selectById(Integer id); + + /** + * 查询宠物服务档案列表 + * + * @param petCare 宠物服务档案 + * @return 宠物服务档案集合 + */ + List selectList(PetCare petCare); + + /** + * 新增宠物服务档案 + * + * @param petCare 宠物服务档案 + * @return 结果 + */ + int insert(PetCare petCare); + + /** + * 修改宠物服务档案 + * + * @param petCare 宠物服务档案 + * @return 结果 + */ + int update(PetCare petCare); + + /** + * 删除宠物服务档案 + * + * @param id 宠物服务档案主键 + * @return 结果 + */ + int deleteById(Integer id); + + /** + * 批量删除宠物服务档案 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteByIds(Integer[] ids); + + /** + * 更新或插入宠物服务档案 + * + * @param petCare 宠物服务档案 + * @return 结果 + */ + int insertOrUpdate(PetCare petCare); + + PetCare selectPetCareByPetId(Integer id); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/PetMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/PetMapper.java new file mode 100644 index 0000000..87f63b7 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/mapper/PetMapper.java @@ -0,0 +1,59 @@ +package com.cyl.manager.ums.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cyl.manager.ums.domain.Pet; + +/** + * 宠物档案Mapper接口 + * + * @author daixiande + */ +public interface PetMapper extends BaseMapper { + /** + * 查询宠物档案 + * + * @param id 宠物档案主键 + * @return 宠物档案 + */ + Pet selectById(Integer id); + + /** + * 新增宠物档案 + * + * @param pet 宠物档案 + * @return 结果 + */ + int insert(Pet pet); + + /** + * 修改宠物档案 + * + * @param pet 宠物档案 + * @return 结果 + */ + int update(Pet pet); + + /** + * 删除宠物档案 + * + * @param id 宠物档案主键 + * @return 结果 + */ + int deleteById(Integer id); + + /** + * 批量删除宠物档案 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteByIds(Integer[] ids); + + /** + * 更新或插入宠物档案 + * + * @param pet 宠物档案 + * @return 结果 + */ + int insertOrUpdate(Pet pet); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/dto/AddressDTO.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/dto/AddressDTO.java new file mode 100644 index 0000000..97a62dc --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/dto/AddressDTO.java @@ -0,0 +1,19 @@ +package com.cyl.manager.ums.pojo.dto; + +import lombok.Data; + +import java.util.List; + +/** + * 【请填写功能名称】 DTO 对象 + * + * @author sjm + */ +@Data +public class AddressDTO { + private Long id; + private Long pid; + private String name; + private String level; + private List children; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/dto/ChangeMemberStatusDTO.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/dto/ChangeMemberStatusDTO.java new file mode 100644 index 0000000..2fdd1e1 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/dto/ChangeMemberStatusDTO.java @@ -0,0 +1,9 @@ +package com.cyl.manager.ums.pojo.dto; + +import lombok.Data; + +@Data +public class ChangeMemberStatusDTO { + private Long memberId; + private Integer status; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/dto/MemberAddressDTO.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/dto/MemberAddressDTO.java new file mode 100644 index 0000000..eb99fc4 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/dto/MemberAddressDTO.java @@ -0,0 +1,48 @@ +package com.cyl.manager.ums.pojo.dto; + +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; +import com.ruoyi.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class MemberAddressDTO { + private Long id; + private Long memberId; + private String name; + private String phone; + private String emergencyPhone; + private String openId; + private Integer defaultStatus; + private String postCode; + private String province; + private String city; + private String district; + private String detailAddress; + private Integer isDefault; + + + @ApiModelProperty("接单状态 0不接单 1接单") + private Integer receiveOrderStatus; + + + @ApiModelProperty("接单范围") + private Integer receiveOrderRange; + + @ApiModelProperty("不接单日期 字符串数组") + private JSONArray noOrderDate; + + @ApiModelProperty("staffId") + @NotNull + private Long staffId; + + @ApiModelProperty("接单时间,多选逗号分隔,周末:1早上,2午后,3晚间") + private String orderDateWeekend; + + @ApiModelProperty("接单时间,多选逗号分隔,周内:1早上,2午后,3晚间") + private String orderDateWeekday; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/dto/MemberDoorLockDTO.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/dto/MemberDoorLockDTO.java new file mode 100644 index 0000000..d08f0c5 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/dto/MemberDoorLockDTO.java @@ -0,0 +1,4 @@ +package com.cyl.manager.ums.pojo.dto; + +public class MemberDoorLockDTO { +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/dto/MemberPointHistoryDTO.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/dto/MemberPointHistoryDTO.java new file mode 100644 index 0000000..b9092bf --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/dto/MemberPointHistoryDTO.java @@ -0,0 +1,4 @@ +package com.cyl.manager.ums.pojo.dto; + +public class MemberPointHistoryDTO { +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberAddressQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberAddressQuery.java new file mode 100644 index 0000000..9208dac --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberAddressQuery.java @@ -0,0 +1,52 @@ +package com.cyl.manager.ums.pojo.query; + +import com.ruoyi.common.annotation.Excel; +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 会员收货地址 查询 对象 + * + * @author zcc + */ +@ApiModel(description="会员收货地址 查询 对象") +@Data +public class MemberAddressQuery { + @ApiModelProperty("MEMBER_ID 精确匹配") + private Long memberId; + + @ApiModelProperty("收货人名称 精确匹配") + private String nameLike; + + @ApiModelProperty("PHONE 精确匹配") + private String phone; + + @ApiModelProperty("EMERGENCYPHONE 精确匹配") + private String emergencyPhone; + + @ApiModelProperty("微信OPENID") + private String openId; + + @ApiModelProperty("是否为默认 精确匹配") + private Integer defaultStatus; + + @ApiModelProperty("邮政编码 精确匹配") + private String postCode; + + @ApiModelProperty("省份/直辖市 精确匹配") + private String province; + + @ApiModelProperty("城市 精确匹配") + private String city; + + @ApiModelProperty("区 精确匹配") + private String district; + + @ApiModelProperty("详细地址 精确匹配") + private String detailAddress; + + @ApiModelProperty("是否默认 精确匹配") + private Integer isDefault; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberCartQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberCartQuery.java new file mode 100644 index 0000000..65d1832 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberCartQuery.java @@ -0,0 +1,42 @@ +package com.cyl.manager.ums.pojo.query; + +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 购物车 查询 对象 + * + * @author zcc + */ +@ApiModel(description="购物车 查询 对象") +@Data +public class MemberCartQuery { + @ApiModelProperty("0->失效;1->有效 精确匹配") + private Integer status; + + @ApiModelProperty("用户ID 精确匹配") + private Long memberId; + + @ApiModelProperty("商品ID 精确匹配") + private Long productId; + + @ApiModelProperty("展示图片 精确匹配") + private String pic; + + @ApiModelProperty("SKU ID 精确匹配") + private Long skuId; + + @ApiModelProperty("商品名称 精确匹配") + private String productName; + + @ApiModelProperty("商品属性 精确匹配") + private String spData; + + @ApiModelProperty("商品数量 精确匹配") + private Integer quantity; + + @ApiModelProperty("用户手机号") + private String phone; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberDoorLockQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberDoorLockQuery.java new file mode 100644 index 0000000..7907144 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberDoorLockQuery.java @@ -0,0 +1,38 @@ +package com.cyl.manager.ums.pojo.query; +import com.ruoyi.common.core.domain.IQuery; +import com.cyl.manager.ums.domain.MemberDoorLock; +import lombok.Setter; + +import java.util.HashMap; +import java.util.Map; + +/** + * 门锁信息 查询 对象 + * + * @author daixiande + */ +@Setter +public class MemberDoorLockQuery extends MemberDoorLock implements IQuery { + /** + * 搜索值 + */ + private String searchValue; + + /** + * 请求参数 + */ + private Map params; + + @Override + public String getSearchValue() { + return this.searchValue; + } + + @Override + public Map getParams() { + if (params == null) { + params = new HashMap<>(); + } + return params; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberLogininforQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberLogininforQuery.java new file mode 100644 index 0000000..9578cab --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberLogininforQuery.java @@ -0,0 +1,41 @@ +package com.cyl.manager.ums.pojo.query; + +import java.time.LocalDateTime; +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 会员登录记录 查询 对象 + * + * @author zcc + */ +@ApiModel(description="会员登录记录 查询 对象") +@Data +public class MemberLogininforQuery { + @ApiModelProperty("会员手机号 精确匹配") + private String phone; + + @ApiModelProperty("会员id 精确匹配") + private Long memberId; + + @ApiModelProperty("登录IP地址 精确匹配") + private String ipaddr; + + @ApiModelProperty("登录地点 精确匹配") + private String loginLocation; + + @ApiModelProperty("浏览器类型 精确匹配") + private String browser; + + @ApiModelProperty("操作系统 精确匹配") + private String os; + + @ApiModelProperty("登陆时间 精确匹配") + private LocalDateTime loginTime; + + private String beginTime; + + private String endTime; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberPointHistoryQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberPointHistoryQuery.java new file mode 100644 index 0000000..c62fc61 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberPointHistoryQuery.java @@ -0,0 +1,38 @@ +package com.cyl.manager.ums.pojo.query; +import com.cyl.manager.ums.domain.MemberPointHistory; +import com.ruoyi.common.core.domain.IQuery; +import lombok.Setter; + +import java.util.HashMap; +import java.util.Map; + +/** + * 积分集点明细 查询 对象 + * + * @author daixiande + */ +@Setter +public class MemberPointHistoryQuery extends MemberPointHistory implements IQuery { + /** + * 搜索值 + */ + private String searchValue; + + /** + * 请求参数 + */ + private Map params; + + @Override + public String getSearchValue() { + return this.searchValue; + } + + @Override + public Map getParams() { + if (params == null) { + params = new HashMap<>(); + } + return params; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberQuery.java new file mode 100644 index 0000000..0efbd81 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberQuery.java @@ -0,0 +1,74 @@ +package com.cyl.manager.ums.pojo.query; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; + +import com.ruoyi.common.annotation.Excel; +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 会员信息 查询 对象 + * + * @author zcc + */ +@ApiModel(description="会员信息 查询 对象") +@Data +public class MemberQuery { + @ApiModelProperty("昵称 精确匹配") + private String nickname; + + @ApiModelProperty("密码 精确匹配") + private String password; + + @ApiModelProperty("手机号码 精确匹配") + private String phone; + + @ApiModelProperty("有无备注 1:有备注 0:无备注") + private Integer hasMark; + + @ApiModelProperty("用户备注 精确匹配") + private String mark; + + @ApiModelProperty("帐号启用状态:0->禁用;1->启用 精确匹配") + private Integer status; + + @ApiModelProperty("头像 精确匹配") + private String avatar; + + @ApiModelProperty("性别:0->未知;1->男;2->女 精确匹配") + private Integer gender; + + @ApiModelProperty("用户所在城市 精确匹配") + private String city; + + @ApiModelProperty("用户所在省份 精确匹配") + private String province; + + @ApiModelProperty("用户所在国家 精确匹配") + private String country; + + @ApiModelProperty("生日 精确匹配") + private LocalDate birthday; + + @ApiModelProperty("推广员id 精确匹配") + private Long spreadUid; + + @ApiModelProperty("推广员关联时间 精确匹配") + private LocalDateTime spreadTime; + + @ApiModelProperty("等级 精确匹配") + private Integer level; + + @ApiModelProperty("用户剩余积分 精确匹配") + private BigDecimal integral; + + @ApiModelProperty("用户集点") + private BigDecimal centralPoint; + + private String beginTime; + + private String endTime; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberWechatQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberWechatQuery.java new file mode 100644 index 0000000..66d1c51 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/MemberWechatQuery.java @@ -0,0 +1,55 @@ +package com.cyl.manager.ums.pojo.query; + +import java.time.LocalDateTime; +import lombok.Data; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 用户微信信息 查询 对象 + * + * @author zcc + */ +@ApiModel(description="用户微信信息 查询 对象") +@Data +public class MemberWechatQuery { + @ApiModelProperty("MEMBER_ID 精确匹配") + private Long memberId; + + @ApiModelProperty("只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段 精确匹配") + private String unionid; + + @ApiModelProperty("用户的标识,对当前公众号唯一 精确匹配") + private String openid; + + @ApiModelProperty("小程序唯一身份ID 精确匹配") + private String routineOpenid; + + @ApiModelProperty("用户所在的分组ID(兼容旧的用户分组接口) 精确匹配") + private Integer groupid; + + @ApiModelProperty("用户被打上的标签ID列表 精确匹配") + private String tagidList; + + @ApiModelProperty("用户是否订阅该公众号标识 精确匹配") + private Integer subscribe; + + @ApiModelProperty("关注公众号时间 精确匹配") + private Integer subscribeTime; + + @ApiModelProperty("小程序用户会话密匙 精确匹配") + private String sessionKey; + + @ApiModelProperty("token 精确匹配") + private String accessToken; + + @ApiModelProperty("过期时间 精确匹配") + private Integer expiresIn; + + @ApiModelProperty("刷新token 精确匹配") + private String refreshToken; + + @ApiModelProperty("过期时间 精确匹配") + private LocalDateTime expireTime; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/PetCareQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/PetCareQuery.java new file mode 100644 index 0000000..0fc1ce4 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/PetCareQuery.java @@ -0,0 +1,38 @@ +package com.cyl.manager.ums.pojo.query; +import com.cyl.manager.ums.domain.PetCare; +import com.ruoyi.common.core.domain.IQuery; +import lombok.Setter; + +import java.util.HashMap; +import java.util.Map; + +/** + * 宠物服务档案 查询 对象 + * + * @author daixiande + */ +@Setter +public class PetCareQuery extends PetCare implements IQuery { + /** + * 搜索值 + */ + private String searchValue; + + /** + * 请求参数 + */ + private Map params; + + @Override + public String getSearchValue() { + return this.searchValue; + } + + @Override + public Map getParams() { + if (params == null) { + params = new HashMap<>(); + } + return params; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/PetQuery.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/PetQuery.java new file mode 100644 index 0000000..23c8509 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/query/PetQuery.java @@ -0,0 +1,38 @@ +package com.cyl.manager.ums.pojo.query; +import com.cyl.manager.ums.domain.Pet; +import com.ruoyi.common.core.domain.IQuery; +import lombok.Setter; + +import java.util.HashMap; +import java.util.Map; + +/** + * 宠物档案 查询 对象 + * + * @author daixiande + */ +@Setter +public class PetQuery extends Pet implements IQuery { + /** + * 搜索值 + */ + private String searchValue; + + /** + * 请求参数 + */ + private Map params; + + @Override + public String getSearchValue() { + return this.searchValue; + } + + @Override + public Map getParams() { + if (params == null) { + params = new HashMap<>(); + } + return params; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberAddressVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberAddressVO.java new file mode 100644 index 0000000..ce15304 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberAddressVO.java @@ -0,0 +1,81 @@ +package com.cyl.manager.ums.pojo.vo; + +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +/** + * 会员收货地址 数据视图对象 + * + * @author zcc + */ +@Data +public class MemberAddressVO extends BaseAudit { + /** ID */ + private Long id; + /** MEMBER_ID */ + @Excel(name = "MEMBER_ID") + private Long memberId; + /** 收货人名称 */ + @Excel(name = "收货人名称") + private String name; + /** PHONE */ + @Excel(name = "PHONE") + private String phone; + @Excel(name = "隐藏前三位后四位的手机号") + private String phoneHidden; + + @Excel(name = "紧急联络电话") + private String emergencyPhone; + + @ApiModelProperty("微信OPENID") + @Excel(name = "微信OPENID") + private String openId; + + /** 是否为默认 */ + @Excel(name = "是否为默认") + private Integer defaultStatus; + /** 邮政编码 */ + @Excel(name = "邮政编码") + private String postCode; + /** 省份/直辖市 */ + @Excel(name = "省份/直辖市") + private String province; + /** 城市 */ + @Excel(name = "城市") + private String city; + /** 区 */ + @Excel(name = "区") + private String district; + /** 详细地址(街道) */ + @Excel(name = "详细地址(街道)") + private String detailAddress; + /** 是否默认 */ + @Excel(name = "是否默认") + private Integer isDefault; + + + @ApiModelProperty("接单状态 0不接单 1接单") + private Integer receiveOrderStatus; + + + @ApiModelProperty("接单范围") + private Integer receiveOrderRange; + + @ApiModelProperty("不接单日期 字符串数组") + @TableField(typeHandler = FastjsonTypeHandler.class) + private JSONArray noOrderDate; + + @ApiModelProperty("接单时间,多选逗号分隔,周末:1早上,2午后,3晚间") + private String orderDateWeekend; + + @ApiModelProperty("接单时间,多选逗号分隔,周内:1早上,2午后,3晚间") + private String orderDateWeekday; + + @ApiModelProperty("STAFF_ID") + @Excel(name = "STAFF_ID") + private Long staffId; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberCartVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberCartVO.java new file mode 100644 index 0000000..4870dbb --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberCartVO.java @@ -0,0 +1,53 @@ +package com.cyl.manager.ums.pojo.vo; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 购物车 数据视图对象 + * + * @author zcc + */ +@Data +public class MemberCartVO extends BaseAudit { + /** 购物车表ID */ + private Long id; + /** 0->失效;1->有效 */ + @Excel(name = "0->失效;1->有效") + private Integer status; + /** 用户ID */ + @Excel(name = "用户ID") + private Long memberId; + private String nickname; + private String mark; + /** 商品ID */ + @Excel(name = "商品ID") + private Long productId; + /** 展示图片 */ + @Excel(name = "展示图片") + private String pic; + /** SKU ID */ + @Excel(name = "SKU ID") + private Long skuId; + /** PRODUCT_NAME */ + @Excel(name = "PRODUCT_NAME") + private String productName; + /** 商品属性 */ + @Excel(name = "商品属性") + private String spData; + /** 商品数量 */ + @Excel(name = "商品数量") + private Integer quantity; + /** 加入时间 */ + private LocalDateTime createTime; + /** sku价格 */ + private BigDecimal price; + /** sku是否存在 */ + private Integer skuIfExist; + /** 隐藏四位的手机号 */ + private String phoneHidden; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberDataStatisticsVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberDataStatisticsVO.java new file mode 100644 index 0000000..29664dd --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberDataStatisticsVO.java @@ -0,0 +1,20 @@ +package com.cyl.manager.ums.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@ApiModel("会员下单数据统计对象") +public class MemberDataStatisticsVO { + @ApiModelProperty("购物车数") + private Integer cartCount; + @ApiModelProperty("订单数") + private Integer orderCount; + @ApiModelProperty("下单金额") + private BigDecimal orderAmount; + @ApiModelProperty("售后数") + private Integer aftersaleCount; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberDoorLockVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberDoorLockVO.java new file mode 100644 index 0000000..51b02ac --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberDoorLockVO.java @@ -0,0 +1,18 @@ +package com.cyl.manager.ums.pojo.vo; + +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 门锁信息 数据视图对象 + * + * @author daixiande + */ +@Data +public class MemberDoorLockVO extends BaseAudit { + private Long id; + private Long memberId; + private String houseType; + private String lockType; + private String keyHandover; + private String keyStorageLocation; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberExtendVo.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberExtendVo.java new file mode 100644 index 0000000..fcbc774 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberExtendVo.java @@ -0,0 +1,94 @@ +package com.cyl.manager.ums.pojo.vo; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; + +@Data +public class MemberExtendVo extends BaseAudit { + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("昵称") + @Excel(name = "昵称") + private String nickname; + + @ApiModelProperty("密码") + @Excel(name = "密码") + private String password; + + @ApiModelProperty("加密手机号") + private String phoneEncrypted; + + @ApiModelProperty("隐藏前三位后四位的手机号") + private String phoneHidden; + + @ApiModelProperty("用户备注") + @Excel(name = "用户备注") + private String mark; + + @ApiModelProperty("帐号启用状态:0->禁用;1->启用") + @Excel(name = "帐号启用状态:0->禁用;1->启用") + private Integer status; + + @ApiModelProperty("头像") + @Excel(name = "头像") + private String avatar; + + @ApiModelProperty("性别:0->未知;1->男;2->女") + @Excel(name = "性别:0->未知;1->男;2->女") + private Integer gender; + + @ApiModelProperty("用户所在城市") + @Excel(name = "用户所在城市") + private String city; + + @ApiModelProperty("用户所在省份") + @Excel(name = "用户所在省份") + private String province; + + @ApiModelProperty("用户所在国家") + @Excel(name = "用户所在国家") + private String country; + + @ApiModelProperty("公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注") + @Excel(name = "公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注") + private String remark; + + @ApiModelProperty("生日") + @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd") + private LocalDate birthday; + + @ApiModelProperty("推广员id") + @Excel(name = "推广员id") + private Long spreadUid; + + @ApiModelProperty("推广员关联时间") + @Excel(name = "推广员关联时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime spreadTime; + + @ApiModelProperty("等级") + @Excel(name = "等级") + private Integer level; + + @ApiModelProperty("用户剩余积分") + @Excel(name = "用户剩余积分") + private BigDecimal integral; + + @ApiModelProperty("用户集点") + private BigDecimal centralPoint; + + @ApiModelProperty("购物车数") + private Integer cartCount; + @ApiModelProperty("订单数") + private Integer orderCount; + @ApiModelProperty("下单金额") + private BigDecimal orderAmount; + @ApiModelProperty("售后数") + private Integer aftersaleCount; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberLogininforVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberLogininforVO.java new file mode 100644 index 0000000..f04df78 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberLogininforVO.java @@ -0,0 +1,38 @@ +package com.cyl.manager.ums.pojo.vo; + +import java.time.LocalDateTime; +import com.ruoyi.common.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +/** + * 会员登录记录 数据视图对象 + * + * @author zcc + */ +@Data +public class MemberLogininforVO { + /** ID */ + private Long id; + /** 会员手机号 */ + @Excel(name = "会员手机号") + private String phone; + /** 会员id */ + @Excel(name = "会员id") + private Long memberId; + /** 登录IP地址 */ + @Excel(name = "登录IP地址") + private String ipaddr; + /** 登录地点 */ + @Excel(name = "登录地点") + private String loginLocation; + /** 浏览器类型 */ + @Excel(name = "浏览器类型") + private String browser; + /** 操作系统 */ + @Excel(name = "操作系统") + private String os; + /** 登陆时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "登陆时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime loginTime; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberPointHistoryVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberPointHistoryVO.java new file mode 100644 index 0000000..c29a08a --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberPointHistoryVO.java @@ -0,0 +1,25 @@ +package com.cyl.manager.ums.pojo.vo; + +import java.time.LocalDateTime; + +import com.ruoyi.common.annotation.Excel; +import lombok.Data; +/** + * 积分集点明细 数据视图对象 + * + * @author daixiande + */ +@Data +public class MemberPointHistoryVO { + private Integer id; + private String userId; + private Integer point; + private String type; + private Integer transactionId; + private String description; + private String action; + private Integer pointAfter; + private Integer pointBefore; + private LocalDateTime createAt; + private String openId; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberV2VO.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberV2VO.java new file mode 100644 index 0000000..789ceae --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberV2VO.java @@ -0,0 +1,113 @@ +package com.cyl.manager.ums.pojo.vo; + +import com.cyl.h5.pojo.vo.H5OrderVO; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 会员信息 数据视图对象 + * + * @author zcc + */ +@Data +public class MemberV2VO extends BaseAudit { + /** ID */ + private Long id; + /** 昵称 */ + @Excel(name = "昵称") + private String nickname; + /** 手机号 */ + private String phone; + /** 隐藏前三位后四位的手机号 */ + private String phoneHidden; + /** 用户备注 */ + @Excel(name = "用户备注") + private String mark; + /** 帐号启用状态:0->禁用;1->启用 */ + @Excel(name = "帐号启用状态:0->禁用;1->启用") + private Integer status; + /** 头像 */ + @Excel(name = "头像") + private String avatar; + /** 性别:0->未知;1->男;2->女 */ + @Excel(name = "性别:0->未知;1->男;2->女") + private Integer gender; + /** 用户所在城市 */ + @Excel(name = "用户所在城市") + private String city; + /** 用户所在省份 */ + @Excel(name = "用户所在省份") + private String province; + /** 用户所在国家 */ + @Excel(name = "用户所在国家") + private String country; + /** 公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注 */ + @Excel(name = "公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注") + private String remark; + /** 生日 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd") + private LocalDate birthday; + /** 推广员id */ + @Excel(name = "推广员id") + private Long spreadUid; + /** 推广员关联时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "推广员关联时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime spreadTime; + /** 等级 */ + @Excel(name = "等级") + private String level; + /** 用户剩余积分 */ + @Excel(name = "用户剩余积分") + private BigDecimal integral; + + @ApiModelProperty("用户集点") + private BigDecimal centralPoint; + + @ApiModelProperty("卡券数量") + private BigDecimal coupon; + + @ApiModelProperty("当年累计消费金额") + private BigDecimal currentYearOrderAmount; + + @ApiModelProperty("H5OrderVO") + private H5OrderVO h5OrderVO; + + /** openId */ + @Excel(name = "openId") + private String openId; + + @Excel(name = "示例:累计消费888元(2024年01月01日起至今)") + @ApiModelProperty("示例:累计消费888元(2024年01月01日起至今)") + private String consumption; + + @Excel(name = "示例:到2025年01月01日前再消费1200元即可升级至银卡") + @ApiModelProperty("示例:到2025年01月01日前再消费1200元即可升级至银卡") + private String promotion; + + /** process */ + @Excel(name = "process") + private String process; + + /** promotionDate */ + @Excel(name = "promotionDate") + private String promotionDate; + + /** nextLevel */ + @Excel(name = "nextLevel") + private String nextLevel; + + /** amountNeeded */ + @Excel(name = "amountNeeded") + private String amountNeeded; + + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberVO.java new file mode 100644 index 0000000..7b3f5ff --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberVO.java @@ -0,0 +1,74 @@ +package com.cyl.manager.ums.pojo.vo; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import com.ruoyi.common.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.BaseAudit; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +/** + * 会员信息 数据视图对象 + * + * @author zcc + */ +@Data +public class MemberVO extends BaseAudit { + /** ID */ + private Long id; + /** 昵称 */ + @Excel(name = "昵称") + private String nickname; + /** 手机号 */ + private String phone; + /** 隐藏前三位后四位的手机号 */ + private String phoneHidden; + /** 用户备注 */ + @Excel(name = "用户备注") + private String mark; + /** 帐号启用状态:0->禁用;1->启用 */ + @Excel(name = "帐号启用状态:0->禁用;1->启用") + private Integer status; + /** 头像 */ + @Excel(name = "头像") + private String avatar; + /** 性别:0->未知;1->男;2->女 */ + @Excel(name = "性别:0->未知;1->男;2->女") + private Integer gender; + /** 用户所在城市 */ + @Excel(name = "用户所在城市") + private String city; + /** 用户所在省份 */ + @Excel(name = "用户所在省份") + private String province; + /** 用户所在国家 */ + @Excel(name = "用户所在国家") + private String country; + /** 公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注 */ + @Excel(name = "公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注") + private String remark; + /** 生日 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd") + private LocalDate birthday; + /** 推广员id */ + @Excel(name = "推广员id") + private Long spreadUid; + /** 推广员关联时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "推广员关联时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime spreadTime; + /** 等级 */ + @Excel(name = "等级") + private Integer level; + /** 用户剩余积分 */ + @Excel(name = "用户剩余积分") + private BigDecimal integral; + + @ApiModelProperty("用户集点") + private BigDecimal centralPoint; + /** openId */ + @Excel(name = "openId") + private String openId; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberWechatVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberWechatVO.java new file mode 100644 index 0000000..45a721b --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/MemberWechatVO.java @@ -0,0 +1,60 @@ +package com.cyl.manager.ums.pojo.vo; + +import java.time.LocalDateTime; +import com.ruoyi.common.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 用户微信信息 数据视图对象 + * + * @author zcc + */ +@Data +public class MemberWechatVO extends BaseAudit { + /** ID */ + private Long id; + /** MEMBER_ID */ + @Excel(name = "MEMBER_ID") + private Long memberId; + /** 微信号 */ + @Excel(name = "微信号") + private String wechatId; + /** 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段 */ + @Excel(name = "只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段") + private String unionid; + /** 用户的标识,对当前公众号唯一 */ + @Excel(name = "用户的标识,对当前公众号唯一") + private String openid; + /** 小程序唯一身份ID */ + @Excel(name = "小程序唯一身份ID") + private String routineOpenid; + /** 用户所在的分组ID(兼容旧的用户分组接口) */ + @Excel(name = "用户所在的分组ID", readConverterExp = "兼=容旧的用户分组接口") + private Integer groupid; + /** 用户被打上的标签ID列表 */ + @Excel(name = "用户被打上的标签ID列表") + private String tagidList; + /** 用户是否订阅该公众号标识 */ + @Excel(name = "用户是否订阅该公众号标识") + private Integer subscribe; + /** 关注公众号时间 */ + @Excel(name = "关注公众号时间") + private Integer subscribeTime; + /** 小程序用户会话密匙 */ + @Excel(name = "小程序用户会话密匙") + private String sessionKey; + /** token */ + @Excel(name = "token") + private String accessToken; + /** 过期时间 */ + @Excel(name = "过期时间") + private Integer expiresIn; + /** 刷新token */ + @Excel(name = "刷新token") + private String refreshToken; + /** 过期时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "过期时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime expireTime; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/PetCareVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/PetCareVO.java new file mode 100644 index 0000000..b20aa8f --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/PetCareVO.java @@ -0,0 +1,134 @@ +package com.cyl.manager.ums.pojo.vo; + +import java.math.BigDecimal; + +import com.ruoyi.common.annotation.Excel; +import lombok.Data; +/** + * 宠物服务档案 数据视图对象 + * + * @author daixiande + */ +@Data +public class PetCareVO { + private Integer id; + private Integer petId; + private Boolean includeDryFood; + private String dryFoodLocation; + private String dryFoodFeedWeight; + private Integer dryFoodFeedFrequencyDays; + private Integer dryFoodFeedFrequencyTimes; + private String dryFoodRemarks; + private Boolean includeWetFood; + private String wetFoodLocation; + private BigDecimal wetFoodFeedWeight; + private Integer wetFoodFeedFrequencyDays; + private Integer wetFoodFeedFrequencyTimes; + private String wetFoodRemarks; + private Boolean includeHomemadeFood; + private String homemadeFoodLocation; + private String homemadeFoodInstructions; + private Boolean includeRawMeat; + private String rawMeatLocation; + private String rawMeatFeedingInstructions; + private Boolean includeHealthSupplements; + private String healthSupplementsLocation; + private String healthSupplementsFeedingInstructions; + private Boolean includeSnacks; + private String snacksLocation; + private String snacksFeedingMethod; + private String otherRemark; + private String feedingTrayAutomaticFeederLocation; + private String feedingTrayAutomaticFeederRemarks; + private String waterBowlLocation; + private String waterBowlRemarks; + private Boolean cleaningRequirements; + private String litterBoxLocation; + private Integer litterBoxChangeFrequencyDays; + private Integer litterBoxChangeFrequencyTimes; + private String litterBoxRemarks; + private String peePadLocation; + private Boolean changePeePad; + private String peePadRemarks; + private Boolean additionalService; + /** 是否陪玩*/ + @Excel(name = "是否陪玩") + private Boolean playtimeService; + private String playtimeToolsLocation; + private String playtimeRequirements; + private Boolean furCleaningService; + private String furCleaningToolsLocation; + private String furCleaningRequirements; + private Boolean groomingService; + private String groomingToolsLocation; + private String groomingRequirements; + private Boolean deepCleaningService; + private Boolean administerMedication; + private String deepCleaningRemarks; + private String deepCleaningToolsLocation; + private String administerMedicationLocation; + private String administerMedicationRemarks; + private String additionalServicesPlacement; + private String additionalServicesPlacementRemark; + private String additionalServicesRemarks; + + /** 是否更换猫砂 */ + @Excel(name = "厕所、猫砂摆放位置-图片") + private Boolean changeLitterBox; + + /** 尿垫砂更换频次_天 */ + @Excel(name = "尿垫更换频次_天") + private Integer peePadFrequencyDays; + + /** 尿垫更换频次_次 */ + @Excel(name = "尿垫更换频次_次") + private Integer peePadFrequencyTimes; + + @Excel(name = "遛狗时长") + private Boolean isWalkDogDuration; + + @Excel(name = "狗狗行为") + private Boolean isDogBehavior; + + @Excel(name = "偏好区域") + private Boolean isFavoriteRegion; + + @Excel(name = "偏好路线") + private Boolean isFavoriteRoute; + + @Excel(name = "狗狗雨具位置") + private String dogRainGearLocation; + + @Excel(name = "下雨天遛狗要求") + private String walkDogRainRemark; + + /** 是否遛狗服务 */ + @Excel(name = "是否遛狗服务") + private Boolean walkDog; + + /** 遛狗用品摆放位置 */ + @Excel(name = "遛狗用品摆放位置") + private String walkDogToolsLocation; + + /** 是否雨天遛狗 */ + @Excel(name = "是否雨天遛狗") + private Boolean walkDogRainyDay; + + /** 遛狗时长 */ + @Excel(name = "遛狗时长") + private String walkDogDuration; + + /** 狗狗行为 */ + @Excel(name = "狗狗行为") + private String dogBehavior; + + /** 偏好区域 */ + @Excel(name = "偏好区域") + private String favoriteRegion; + + /** 偏好路线 */ + @Excel(name = "偏好路线") + private String favoriteRoute; + + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/PetVO.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/PetVO.java new file mode 100644 index 0000000..b152d13 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/PetVO.java @@ -0,0 +1,32 @@ +package com.cyl.manager.ums.pojo.vo; + +import java.math.BigDecimal; +import java.util.List; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseAudit; +import lombok.Data; +/** + * 宠物档案 数据视图对象 + * + * @author daixiande + */ +@Data +public class PetVO extends BaseAudit { + private Integer id; + private String name; + private String petType; + private String gender; + private String birthDate; + private String remark; + private String photo; + private String breed; + private String bodyType; + private List personality; + private String vaccineStatus; + private String sterilization; + private String dewormingStatus; + private String doglicenseStatus; + private List healthStatus; + private String owner; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/form/AddMemberCartForm.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/form/AddMemberCartForm.java new file mode 100644 index 0000000..bc89550 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/form/AddMemberCartForm.java @@ -0,0 +1,23 @@ +package com.cyl.manager.ums.pojo.vo.form; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class AddMemberCartForm { + /** + * 规格id + */ + @NotNull(message = "规格必填!") + private Long skuId; + /** + * 数量 + */ + private Integer buyNum; + private Long productId; + private String pic; + private String productName; + private String spData; + private Integer quantity; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/form/UpdateMemberCartForm.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/form/UpdateMemberCartForm.java new file mode 100644 index 0000000..52c3d2a --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/pojo/vo/form/UpdateMemberCartForm.java @@ -0,0 +1,18 @@ +package com.cyl.manager.ums.pojo.vo.form; + +import lombok.Data; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; + +@Data +public class UpdateMemberCartForm { + @NotNull(message = "id 不能为空") + private Long id; + + @NotNull(message = "数量必填") + @Min(value = 0, message = "数量不小于0") + @Max(value = Integer.MAX_VALUE, message = "数量不大于" + Integer.MAX_VALUE) + private Integer num; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberAddressService.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberAddressService.java new file mode 100644 index 0000000..2a9cbf0 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberAddressService.java @@ -0,0 +1,141 @@ +package com.cyl.manager.ums.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.manager.ums.convert.MemberAddressConvert; +import com.cyl.manager.ums.domain.MemberAddress; +import com.cyl.manager.ums.mapper.MemberAddressMapper; +import com.cyl.manager.ums.pojo.query.MemberAddressQuery; +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.utils.AesCryptoUtils; +import com.ruoyi.common.utils.SecurityUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * 会员收货地址Service业务层处理 + * + * @author zcc + */ +@Service +public class MemberAddressService { + @Autowired + private MemberAddressMapper memberAddressMapper; + @Autowired + private MemberAddressConvert memberAddressConvert; + @Value("${aes.key}") + private String aesKey; + + /** + * 查询会员收货地址 + * + * @param id 会员收货地址主键 + * @return 会员收货地址 + */ + public MemberAddress selectById(Long id) { + return memberAddressMapper.selectById(id); + } + + /** + * 查询会员收货地址列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 会员收货地址 + */ + public List selectList(MemberAddressQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper qw = new QueryWrapper<>(); + String nameLike = query.getNameLike(); + if (!StringUtils.isEmpty(nameLike)) { + qw.like("name", nameLike); + } + String phone = query.getPhone(); + if (!StringUtils.isEmpty(phone)) { + qw.eq("phone_encrypted", AesCryptoUtils.encrypt(aesKey, phone)); + } + String emergencyPhone = query.getEmergencyPhone(); + if (!StringUtils.isEmpty(emergencyPhone)) { + qw.eq("emergency_phone", emergencyPhone); + } + + String postCode = query.getPostCode(); + if (!StringUtils.isEmpty(postCode)) { + qw.eq("post_code", postCode); + } + String province = query.getProvince(); + if (!StringUtils.isEmpty(province)) { + qw.eq("province", province); + } + String city = query.getCity(); + if (!StringUtils.isEmpty(city)) { + qw.eq("city", city); + } + String district = query.getDistrict(); + if (!StringUtils.isEmpty(district)) { + qw.eq("district", district); + } + String detailAddress = query.getDetailAddress(); + if (!StringUtils.isEmpty(detailAddress)) { + qw.like("detail_address", detailAddress); + } + return memberAddressMapper.selectList(qw); + } + + /** + * 新增会员收货地址 + * + * @param memberAddress 会员收货地址 + * @return 结果 + */ + public int insert(MemberAddress memberAddress) { + memberAddress.setCreateTime(LocalDateTime.now()); + return memberAddressMapper.insert(memberAddress); + } + + /** + * 修改会员收货地址 + * + * @param memberAddress 会员收货地址 + * @return 结果 + */ + public int update(MemberAddress memberAddress) { + return memberAddressMapper.updateById(memberAddress); + } + + /** + * 删除会员收货地址信息 + * + * @param id 会员收货地址主键 + * @return 结果 + */ + public int deleteById(Long id) { + return memberAddressMapper.deleteById(id); + } + + public Integer deleteUserIds(List ids) { + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(MemberAddress::getMemberId, SecurityUtils.getUserId()); + qw.in(MemberAddress::getId, ids); + return memberAddressMapper.delete(qw); + } + + public MemberAddress selectByUserAndId(Long id) { + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(MemberAddress::getMemberId, SecurityUtils.getUserId()); + qw.eq(MemberAddress::getId, id); + return memberAddressMapper.selectOne(qw); + } + + public int updateSelective(MemberAddress address) { + return memberAddressMapper.updateByPrimaryKeySelective(address); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberCartService.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberCartService.java new file mode 100644 index 0000000..8b1b533 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberCartService.java @@ -0,0 +1,200 @@ +package com.cyl.manager.ums.service; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.h5.config.SecurityUtil; +import com.cyl.manager.pms.domain.Sku; +import com.cyl.manager.pms.mapper.ProductMapper; +import com.cyl.manager.pms.mapper.SkuMapper; +import com.cyl.manager.pms.pojo.dto.MemberCartDTO; +import com.cyl.manager.ums.convert.MemberCartConvert; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.domain.MemberCart; +import com.cyl.manager.ums.mapper.MemberCartMapper; +import com.cyl.manager.ums.mapper.MemberMapper; +import com.cyl.manager.ums.pojo.query.MemberCartQuery; +import com.cyl.manager.ums.pojo.vo.MemberCartVO; +import com.cyl.manager.ums.pojo.vo.form.UpdateMemberCartForm; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.exception.base.BaseException; +import com.ruoyi.common.utils.AesCryptoUtils; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.SortUtil; +import com.ruoyi.framework.config.LocalDataUtil; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 购物车Service业务层处理 + * + * @author zcc + */ +@Service +public class MemberCartService { + @Autowired + private MemberCartMapper memberCartMapper; + @Autowired + private SkuMapper skuMapper; + @Autowired + private MemberMapper memberMapper; + @Autowired + private ProductMapper productMapper; + @Autowired + private MemberCartConvert memberCartConvert; + @Value("${aes.key}") + private String aesKey; + + /** + * 查询购物车 + * + * @param id 购物车主键 + * @return 购物车 + */ + public MemberCart selectById(Long id) { + return memberCartMapper.selectById(id); + } + + /** + * 查询购物车列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 购物车 + */ + public PageImpl selectList(MemberCartQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize(), SortUtil.sort2string(page.getSort(),"id desc")); + } + if (!StrUtil.isEmpty(query.getPhone())){ + query.setPhone(AesCryptoUtils.encrypt(aesKey, query.getPhone())); + } + List memberCartList = memberCartMapper.selectByPage(query); + long total = ((com.github.pagehelper.Page)memberCartList).getTotal(); + if (CollectionUtil.isEmpty(memberCartList)){ + return new PageImpl<>(Collections.EMPTY_LIST, page, total); + } + //查sku + List skuIdList = memberCartList.stream().map(MemberCartVO::getSkuId).collect(Collectors.toList()); + QueryWrapper skuQw = new QueryWrapper<>(); + skuQw.in("id", skuIdList); + Map skuMap = skuMapper.selectList(skuQw).stream().collect(Collectors.toMap(Sku::getId, it -> it)); + memberCartList.forEach(item -> { + if (!skuMap.containsKey(item.getSkuId())){ + item.setStatus(0); + item.setSkuIfExist(0); + }else { + Sku sku = skuMap.get(item.getSkuId()); + item.setPrice(sku.getPrice()); + item.setSkuIfExist(1); + } + }); + return new PageImpl<>(memberCartList, page, total); + } + + /** + * 新增购物车 + * + * @param memberCart 购物车 + * @return 结果 + */ + public int insert(MemberCart memberCart) { + Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); + memberCart.setMemberId(member.getId()); + //判断cart是否存在 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("member_id",member.getId()); + queryWrapper.eq("sku_id",memberCart.getSkuId()); + queryWrapper.eq("product_id",memberCart.getProductId()); + List memberCarts = memberCartMapper.selectList(queryWrapper); + if (CollectionUtils.isEmpty(memberCarts)) { + memberCart.setStatus(1); + memberCart.setCreateTime(LocalDateTime.now()); + memberCart.setCreateBy(member.getId()); + return memberCartMapper.insert(memberCart); + } + MemberCart dbCart = memberCarts.get(0); + dbCart.setUpdateTime(LocalDateTime.now()); + dbCart.setQuantity(dbCart.getQuantity() + memberCart.getQuantity()); + return memberCartMapper.updateById(dbCart); + } + + /** + * 修改购物车 + * + * @param memberCart 购物车 + * @return 结果 + */ + public int update(MemberCart memberCart) { + MemberCart cart = memberCartMapper.selectById(memberCart.getId()); + if (cart == null){ + return 0; + } + cart.setQuantity(memberCart.getQuantity()); + cart.setUpdateTime(LocalDateTime.now()); + cart.setUpdateBy(SecurityUtil.getLocalMember().getId()); + return memberCartMapper.updateById(cart); + } + public int update(UpdateMemberCartForm form) { + if (form.getNum() == null || form.getId() == null) { + throw new BaseException("参数错误"); + } + Long userId = SecurityUtils.getUserId(); + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(MemberCart::getMemberId, userId); + qw.eq(MemberCart::getId, form.getId()); + if (form.getNum() <= 0) { + return memberCartMapper.delete(qw); + } + MemberCart e = new MemberCart(); + e.setQuantity(form.getNum()); + return memberCartMapper.update(e, qw); + } + + /** + * 删除购物车信息 + * + * @param id 购物车主键 + * @return 结果 + */ + public int deleteById(Long id) { + return memberCartMapper.deleteById(id); + } + + /** + * 删除购物车信息 + * + * @param ids 购物车主键 + * @return 结果 + */ + public int deleteByIds(String ids) { + List idList = Arrays.stream(ids.split(",")).map(it -> Long.parseLong(it)).collect(Collectors.toList()); + return memberCartMapper.deleteBatchIds(idList); + } + + public Integer mineCartNum() { + Long userId = SecurityUtils.getUserId(); + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("member_id", userId); + qw.eq("status", 1); + qw.select("count(quantity) quantity"); + MemberCart c = memberCartMapper.selectOne(qw); + if (c == null) { + return 0; + } + return c.getQuantity(); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberDoorLockService.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberDoorLockService.java new file mode 100644 index 0000000..edc4e2c --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberDoorLockService.java @@ -0,0 +1,59 @@ +package com.cyl.manager.ums.service; + +import java.util.List; +import com.cyl.manager.ums.domain.MemberDoorLock; + +/** + * 门锁信息Service接口 + * + * @author daixiande + */ +public interface MemberDoorLockService { + /** + * 查询门锁信息 + * + * @param id 门锁信息主键 + * @return 门锁信息 + */ + MemberDoorLock selectMemberDoorLockById(Long id); + + /** + * 查询门锁信息列表 + * + * @param memberDoorLock 门锁信息 + * @return 门锁信息集合 + */ + List selectMemberDoorLockList(MemberDoorLock memberDoorLock); + + /** + * 新增门锁信息 + * + * @param memberDoorLock 门锁信息 + * @return 结果 + */ + int insertMemberDoorLock(MemberDoorLock memberDoorLock); + + /** + * 修改门锁信息 + * + * @param memberDoorLock 门锁信息 + * @return 结果 + */ + int updateMemberDoorLock(MemberDoorLock memberDoorLock); + + /** + * 批量删除门锁信息 + * + * @param ids 需要删除的门锁信息主键集合 + * @return 结果 + */ + int deleteMemberDoorLockByIds(Long[] ids); + + /** + * 删除门锁信息信息 + * + * @param id 门锁信息主键 + * @return 结果 + */ + int deleteMemberDoorLockById(Long id); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberLogininforService.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberLogininforService.java new file mode 100644 index 0000000..aa6174e --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberLogininforService.java @@ -0,0 +1,121 @@ +package com.cyl.manager.ums.service; + +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.List; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.mapper.MemberMapper; +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.core.domain.model.LoginMember; +import com.ruoyi.common.utils.AesCryptoUtils; +import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.ip.AddressUtils; +import com.ruoyi.common.utils.ip.IpUtils; +import eu.bitwalker.useragentutils.UserAgent; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.domain.Pageable; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import com.cyl.manager.ums.mapper.MemberLogininforMapper; +import com.cyl.manager.ums.domain.MemberLogininfor; +import com.cyl.manager.ums.pojo.query.MemberLogininforQuery; + +/** + * 会员登录记录Service业务层处理 + * + * + * @author zcc + */ +@Service +public class MemberLogininforService { + @Autowired + private MemberLogininforMapper memberLogininforMapper; + + @Autowired + private MemberMapper memberMapper; + + @Value("${aes.key}") + private String aesKey; + + /** + * 查询会员登录记录 + * + * @param id 会员登录记录主键 + * @return 会员登录记录 + */ + public MemberLogininfor selectById(Long id) { + return memberLogininforMapper.selectById(id); + } + + /** + * 查询会员登录记录列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 会员登录记录 + */ + public List selectList(MemberLogininforQuery query, Pageable page) { + QueryWrapper qw = new QueryWrapper<>(); + String phone = query.getPhone(); + if (!StringUtils.isEmpty(phone)) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Member::getPhoneEncrypted, AesCryptoUtils.encrypt(aesKey, phone)); + Member member = memberMapper.selectOne(wrapper); + if (member != null){ + qw.eq("phone", member.getPhoneEncrypted()); + }else { + qw.eq("phone", "-1"); + } + } + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + String ipaddr = query.getIpaddr(); + if (!StringUtils.isEmpty(ipaddr)) { + qw.eq("ipaddr", ipaddr); + } + String loginLocation = query.getLoginLocation(); + if (!StringUtils.isEmpty(loginLocation)) { + qw.eq("login_location", loginLocation); + } + String browser = query.getBrowser(); + if (!StringUtils.isEmpty(browser)) { + qw.eq("browser", browser); + } + String os = query.getOs(); + if (!StringUtils.isEmpty(os)) { + qw.eq("os", os); + } + if (query.getBeginTime() != null && query.getEndTime() != null) { + qw.ge("login_time", query.getBeginTime()); + qw.lt("login_time", query.getEndTime()); + } + qw.orderByDesc("login_time"); + return memberLogininforMapper.selectList(qw); + } + + /** + * 修改会员登录记录 + * + * @param memberLogininfor 会员登录记录 + * @return 结果 + */ + public int update(MemberLogininfor memberLogininfor) { + return memberLogininforMapper.updateById(memberLogininfor); + } + + /** + * 删除会员登录记录信息 + * + * @param id 会员登录记录主键 + * @return 结果 + */ + public int deleteById(Long id) { + return memberLogininforMapper.deleteById(id); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberPointHistoryService.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberPointHistoryService.java new file mode 100644 index 0000000..a3c65b2 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberPointHistoryService.java @@ -0,0 +1,42 @@ +package com.cyl.manager.ums.service; + +import com.cyl.h5.controller.req.MemberPointHistoryReq; +import com.cyl.manager.ums.domain.MemberPointHistory; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; + +import java.util.List; + +/** + * 积分集点明细Service接口 + * + * @author daixiande + */ +public interface MemberPointHistoryService { + /** + * 查询积分集点明细 + * + * @param id 积分集点明细主键 + * @return 积分集点明细 + */ + ResponseEntity selectMemberPointHistoryById(Integer id); + + + /** + * 查询积分集点明细列表 + * @param openId + * @param type + * @param page + * @return + */ + List selectMemberPointHistoryList(Long memberId,String type, Pageable page); + + /** + * 新增积分集点明细 + * + * @param memberPointHistory 积分集点明细 + * @return 结果 + */ + ResponseEntity insertMemberPointHistory(MemberPointHistory memberPointHistory); + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberService.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberService.java new file mode 100644 index 0000000..389f3a5 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberService.java @@ -0,0 +1,278 @@ +package com.cyl.manager.ums.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.cyl.h5.service.H5MemberService; +import com.cyl.manager.oms.domain.Order; +import com.cyl.manager.oms.mapper.AftersaleMapper; +import com.cyl.manager.oms.mapper.OrderMapper; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.domain.MemberCart; +import com.cyl.manager.ums.domain.MemberPointHistory; +import com.cyl.manager.ums.mapper.MemberCartMapper; +import com.cyl.manager.ums.mapper.MemberMapper; +import com.cyl.manager.ums.pojo.dto.ChangeMemberStatusDTO; +import com.cyl.manager.ums.pojo.query.MemberQuery; +import com.cyl.manager.ums.pojo.vo.MemberDataStatisticsVO; +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.utils.AesCryptoUtils; +import com.ruoyi.common.utils.SortUtil; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import com.cyl.manager.oms.service.OrderService; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.lang.annotation.Target; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 会员信息Service业务层处理 + * + * + * @author zcc + */ +@Service +public class MemberService { + private static final Logger log = LoggerFactory.getLogger(MemberService.class); + @Autowired + private MemberMapper memberMapper; + @Value("${aes.key}") + private String aesKey; + + @Autowired + private MemberCartMapper memberCartMapper; + + @Autowired + private OrderMapper orderMapper; + + @Autowired + private AftersaleMapper aftersaleMapper; + + @Autowired + private OrderService orderService; + + @Autowired + private H5MemberService h5MemberService; + + + @Autowired + private MemberPointHistoryService memberPointHistoryService; + + + /** + * 查询会员信息 + * + * @param id 会员信息主键 + * @return 会员信息 + */ + public Member selectById(Long id) { + return memberMapper.selectById(id); + } + + /** + * 查询会员信息列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 会员信息 + */ + public List selectList(MemberQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize(), SortUtil.sort2string(page.getSort(),"id desc")); + } + QueryWrapper qw = new QueryWrapper<>(); + String nicknameLike = query.getNickname(); + if (!StringUtils.isEmpty(nicknameLike)) { + qw.like("nickname", nicknameLike); + } + String phone = query.getPhone(); + if (!StringUtils.isEmpty(phone)) { + qw.eq("phone_encrypted", AesCryptoUtils.encrypt(aesKey, phone)); + } + if (!StringUtils.isEmpty(query.getBeginTime()) && !StringUtils.isEmpty(query.getEndTime())){ + qw.ge("create_time", query.getBeginTime()); + qw.lt("create_time", query.getEndTime()); + } + if (query.getHasMark() != null) { + switch (query.getHasMark()) { + case 0: + qw.isNull("mark").or().eq("mark",""); + break; + case 1: + qw.isNotNull("mark").ne("mark",""); + break; + default: + break; + } + } + if (query.getStatus() != null){ + qw.eq("status", query.getStatus()); + } + return memberMapper.selectList(qw); + } + + /** + * 新增会员信息 + * + * @param member 会员信息 + * @return 结果 + */ + public int insert(Member member) { + member.setCreateTime(LocalDateTime.now()); + return memberMapper.insert(member); + } + + /** + * 修改会员信息 + * + * @param member 会员信息 + * @return 结果 + */ + public int update(Member member) { + return memberMapper.updateById(member); + } + + public int updateMark(Member member) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.set("mark",member.getMark()) + .set("update_time",LocalDateTime.now()) + .eq("id",member.getId()); + return memberMapper.update(null,updateWrapper); + } + + /** + * 删除会员信息信息 + * + * @param id 会员信息主键 + * @return 结果 + */ + public int deleteById(Long id) { + return memberMapper.deleteById(id); + } + + public Integer changeStatus(ChangeMemberStatusDTO dto) { + UpdateWrapper wrapper = new UpdateWrapper<>(); + wrapper.eq("id", dto.getMemberId()); + wrapper.set("status", dto.getStatus()); + return memberMapper.update(null, wrapper); + } + + public String getPhoneDecrypted(String phoneEncrypted) { + return AesCryptoUtils.decrypt(aesKey, phoneEncrypted); + } + + public MemberDataStatisticsVO viewStatistics(Long memberId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(MemberCart::getMemberId, memberId); + int cartCount = memberCartMapper.selectCount(wrapper); + MemberDataStatisticsVO vo = orderMapper.statOrderCountAndAmount(memberId); + vo.setCartCount(cartCount); + vo.setAftersaleCount(aftersaleMapper.countByMemberId(memberId)); + return vo; + } + + @Transactional + public String sync() { + //查询所有有效订单 订单状态: 1->待发货;2->已发货;3->已完成 + log.info("查询所有有效订单 订单状态: 1->待发货;2->已发货;3->已完成"); + List orders = orderService.getAllValidOrder(); + if(CollectionUtils.isEmpty(orders)){ + log.info("查询所有有效订单完成,数量:0"); + return "未查询到订单数据"; + } + log.info("查询所有有效订单完成,数量:{}", orders.size()); + //根据memberId订单分组 + Map> map = orders.stream() + .collect(Collectors.groupingBy(Order::getMemberId)); + //根据订单生成对应的积分明细,集点明细 + for (Map.Entry> entry : map.entrySet()) { + Long memberId = entry.getKey(); + List orderList = entry.getValue(); + Member member = memberMapper.selectById(memberId); + //订单总金额 + BigDecimal totalAmount = orderList.stream() + .map(Order::getPayAmount) // 获取每个订单的 amount + .reduce(BigDecimal.ZERO, BigDecimal::add); // 累加 + int[] levels = h5MemberService.evaluateOrderAmount(totalAmount); + int level = levels[0]; + BigDecimal coefficient = BigDecimal.ZERO; + if (level == 1) { + coefficient = BigDecimal.valueOf(1.1); + } else if ( level == 2) { + coefficient = BigDecimal.valueOf(1.1); + } else if ( level == 3) { + coefficient = BigDecimal.valueOf(1.3); + } else if ( level == 4) { + coefficient = BigDecimal.valueOf(1.5); + } else { + coefficient = BigDecimal.valueOf(1.1); + } + member.setLevel(level); + member.setCentralPoint(BigDecimal.valueOf(orderList.size())); + member.setIntegral(totalAmount.multiply(coefficient)); + memberMapper.updateById(member); + log.info("更新member信息:{}", member); + BigDecimal pointCount = BigDecimal.ZERO; + BigDecimal gatherCount = BigDecimal.ZERO; + for (Order order : orderList) { + MemberPointHistory point = getPointEntity(order,pointCount,coefficient); + memberPointHistoryService.insertMemberPointHistory(point); + // 更新 pointCount + pointCount = pointCount.add(order.getPayAmount().multiply(coefficient)); + log.info("新增积分明细:{}", point); + MemberPointHistory gather = getGatherEntity(order,gatherCount); + memberPointHistoryService.insertMemberPointHistory(gather); + // 更新 gatherCount + gatherCount = gatherCount.add(BigDecimal.ONE); + log.info("新增集点明细:{}", gather); + } + } + return "同步完成"; + } + + private MemberPointHistory getGatherEntity(Order order, BigDecimal gatherCount) { + MemberPointHistory memberPointHistory = new MemberPointHistory(); + memberPointHistory.setMemberId(order.getMemberId()); + memberPointHistory.setPoint(BigDecimal.ONE); + memberPointHistory.setType("gather"); + memberPointHistory.setTransactionId(order.getId()); + memberPointHistory.setDescription("数据手工同步"); + memberPointHistory.setAction("added"); + memberPointHistory.setPointBefore(gatherCount); + gatherCount = gatherCount.add(BigDecimal.valueOf(1)); + memberPointHistory.setPointAfter(gatherCount); + memberPointHistory.setCreateAt(order.getCreateTime()); + return memberPointHistory; + } + + private MemberPointHistory getPointEntity(Order order,BigDecimal pointCount,BigDecimal coefficient) { + MemberPointHistory memberPointHistory = new MemberPointHistory(); + memberPointHistory.setMemberId(order.getMemberId()); + BigDecimal result = order.getPayAmount().multiply(coefficient); + memberPointHistory.setPoint(result); + memberPointHistory.setType("point"); + memberPointHistory.setTransactionId(order.getId()); + memberPointHistory.setDescription("数据手工同步"); + memberPointHistory.setAction("added"); + if(pointCount.compareTo(BigDecimal.ZERO) == 0){ + memberPointHistory.setPointBefore(BigDecimal.ZERO); + }else{ + memberPointHistory.setPointBefore(pointCount); + } + pointCount = pointCount.add(order.getPayAmount().multiply(coefficient)); + memberPointHistory.setPointAfter(pointCount); + memberPointHistory.setCreateAt(order.getCreateTime()); + return memberPointHistory; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberWechatService.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberWechatService.java new file mode 100644 index 0000000..5605906 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/MemberWechatService.java @@ -0,0 +1,296 @@ +package com.cyl.manager.ums.service; + +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.List; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.config.WechatConfig; +import com.cyl.external.WechatUtil; +import com.cyl.external.resp.AccessTokenResp; +import com.cyl.external.resp.UserInfoResp; +import com.cyl.h5.pojo.vo.form.WechatLoginForm; +import com.cyl.h5.service.H5MemberService; +import com.cyl.manager.ums.convert.MemberWechatConvert; +import com.cyl.manager.ums.domain.Member; +import com.cyl.wechat.WechatPayData; +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.ExtraUserBody; +import com.ruoyi.framework.web.service.SysLoginService; +import com.ruoyi.system.mapper.SysUserMapper; +import com.ruoyi.system.service.ISysUserService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.apache.commons.lang3.StringUtils; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import com.cyl.manager.ums.mapper.MemberWechatMapper; +import com.cyl.manager.ums.domain.MemberWechat; +import com.cyl.manager.ums.pojo.query.MemberWechatQuery; +import org.springframework.web.client.RestTemplate; + +/** + * 用户微信信息Service业务层处理 + * + * + * @author zcc + */ +@Slf4j +@Service +public class MemberWechatService { + @Autowired + private MemberWechatMapper memberWechatMapper; + @Autowired + private MemberWechatConvert memberWechatConvert; + @Autowired + private SysUserMapper sysUserMapper; + @Autowired + private ISysUserService userService; + @Autowired + private SysLoginService loginService; + + @Autowired + private MemberService memberService; + + @Autowired + private H5MemberService h5MemberService; + + @Autowired + private RestTemplate restTemplate; + private static String LOGIN_URL = "https://api.weixin.qq.com/sns/jscode2session?appid=#{APPID}&secret=#{SECRET}&js_code=#{JSCODE}&grant_type=authorization_code"; + + private static String TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=#{APPID}&secret=#{SECRET}"; + + + /** + * 查询用户微信信息 + * + * @param id 用户微信信息主键 + * @return 用户微信信息 + */ + public MemberWechat selectById(Long id) { + return memberWechatMapper.selectById(id); + } + + public MemberWechat selectByMemberId(Long memberId) { + QueryWrapper qw = new QueryWrapper<>(); + if (memberId != null) { + qw.eq("member_id", memberId); + return memberWechatMapper.selectOne(qw); + } + return null; + } + + public MemberWechat selectByOpenId(String openId) { + QueryWrapper qw = new QueryWrapper<>(); + if (openId != null) { + qw.eq("routine_openid", openId); + return memberWechatMapper.selectOne(qw); + } + return null; + } + + /** + * 查询用户微信信息列表 + * + * @param query 查询条件 + * @param page 分页条件 + * @return 用户微信信息 + */ + public List selectList(MemberWechatQuery query, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper qw = new QueryWrapper<>(); + Long memberId = query.getMemberId(); + if (memberId != null) { + qw.eq("member_id", memberId); + } + String unionid = query.getUnionid(); + if (!StringUtils.isEmpty(unionid)) { + qw.eq("unionid", unionid); + } + String openid = query.getOpenid(); + if (!StringUtils.isEmpty(openid)) { + qw.eq("openid", openid); + } + String routineOpenid = query.getRoutineOpenid(); + if (!StringUtils.isEmpty(routineOpenid)) { + qw.eq("routine_openid", routineOpenid); + } + Integer groupid = query.getGroupid(); + if (groupid != null) { + qw.eq("groupid", groupid); + } + String tagidList = query.getTagidList(); + if (!StringUtils.isEmpty(tagidList)) { + qw.eq("tagid_list", tagidList); + } + Integer subscribe = query.getSubscribe(); + if (subscribe != null) { + qw.eq("subscribe", subscribe); + } + Integer subscribeTime = query.getSubscribeTime(); + if (subscribeTime != null) { + qw.eq("subscribe_time", subscribeTime); + } + String sessionKey = query.getSessionKey(); + if (!StringUtils.isEmpty(sessionKey)) { + qw.eq("session_key", sessionKey); + } + String accessToken = query.getAccessToken(); + if (!StringUtils.isEmpty(accessToken)) { + qw.eq("access_token", accessToken); + } + Integer expiresIn = query.getExpiresIn(); + if (expiresIn != null) { + qw.eq("expires_in", expiresIn); + } + String refreshToken = query.getRefreshToken(); + if (!StringUtils.isEmpty(refreshToken)) { + qw.eq("refresh_token", refreshToken); + } + LocalDateTime expireTime = query.getExpireTime(); + if (expireTime != null) { + qw.eq("expire_time", expireTime); + } + return memberWechatMapper.selectList(qw); + } + + /** + * 新增用户微信信息 + * + * @param memberWechat 用户微信信息 + * @return 结果 + */ + public int insert(MemberWechat memberWechat) { + memberWechat.setCreateTime(LocalDateTime.now()); + return memberWechatMapper.insert(memberWechat); + } + + /** + * 修改用户微信信息 + * + * @param memberWechat 用户微信信息 + * @return 结果 + */ + public int update(MemberWechat memberWechat) { + return memberWechatMapper.updateById(memberWechat); + } + + /** + * 删除用户微信信息信息 + * + * @param id 用户微信信息主键 + * @return 结果 + */ + public int deleteById(Long id) { + return memberWechatMapper.deleteById(id); + } + + public String login(WechatLoginForm form) { + // 1. code -> token + AccessTokenResp tokenResp = WechatUtil.getAccessToken(form.getCode()); + // 2. token -> user_info + UserInfoResp info = null; + try { + info = WechatUtil.getUserInfo(tokenResp.getAccessToken(), tokenResp.getOpenid()); + } catch (Exception e) { + log.error("form: {}", form.getCode(), e); + } + // 3. 查找用户是否存在, 若没有则创建 + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(MemberWechat::getOpenid, tokenResp.getOpenid()); + MemberWechat m = memberWechatMapper.selectOne(qw); + SysUser u; + if (m != null) { + SysUser update = new SysUser(); + if (info != null) { + if (StrUtil.isNotEmpty(info.getNickname())) { + update.setNickName(info.getNickname()); + } + if (info.getSex() != null) { + update.setSex(info.getSex() + ""); + } + if (StrUtil.isNotEmpty(info.getHeadimgurl())) { + update.setAvatar(info.getHeadimgurl()); + } + update.setUserId(m.getMemberId()); + sysUserMapper.updateUser(update); + } + u = sysUserMapper.selectUserById(m.getMemberId()); + } else { + ExtraUserBody body = ExtraUserBody.builder() + .nickname(info == null ? "" : info.getNickname()) + .avatar(info == null ? "" : info.getHeadimgurl()) + .login(RandomUtil.randomNumbers(9)) + .sex(info == null ? null : info.getSex()) + .build(); + u = loginService.initVipUser(body); + MemberWechat w = memberWechatConvert.info2do(tokenResp); + w.setMemberId(u.getUserId()); + w.setExpireTime(LocalDateTime.now().plus(tokenResp.getExpiresIn(), ChronoUnit.SECONDS)); + memberWechatMapper.insert(w); + } + // 4. 生成token + return loginService.createToken(u); + } + + public JSONObject getSessionId(String code) { + String url = LOGIN_URL.replace("#{APPID}", WechatPayData.miniProgramAppId) + .replace("#{SECRET}", WechatPayData.miniProgramSecret) + .replace("#{JSCODE}", code); + log.info("获取openid,url:{}", url); + try { + ResponseEntity res = restTemplate.getForEntity(url, String.class); + String body = res.getBody(); + if (com.ruoyi.common.utils.StringUtils.isEmpty(body)) { + throw new Exception("获取openid出错"); + } + return JSONObject.parseObject(body); + } catch (Exception e) { + log.error("获取openid报错", e); + return null; + } + } + + /** + * 判断openId是否注册 + * @param openId + * @return + */ + public Member isRegister(String openId) { + if (StringUtils.isEmpty(openId)) { + return null; + } + // todo 1、通过openId查询 ums_member_wechat 表拿到 memberId + MemberWechat memberWechat = selectByOpenId(openId); + if(ObjectUtil.isNull(memberWechat)){ + return null; + } + + // 2、memberId 查询 ums_member 查询到记录,则已注册 + Member member = memberService.selectById(memberWechat.getMemberId()); + if(ObjectUtil.isNull(member)){ + return null; + } + return member; + + } + + public Member getPhoneAndRegister(String code, String openId) { + String phone = (String) WechatUtil.getPhoneNumber(code, null); + + log.info("1 新建会员。。。。。。"); + Member member = h5MemberService.createOrUpdateMember(openId, phone, null); + + return member; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/PetCareService.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/PetCareService.java new file mode 100644 index 0000000..eddcccd --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/PetCareService.java @@ -0,0 +1,60 @@ +package com.cyl.manager.ums.service; + +import com.cyl.manager.ums.domain.PetCare; + +import java.util.List; + +/** + * 宠物服务档案Service接口 + * + * @author daixiande + */ +public interface PetCareService { + /** + * 查询宠物服务档案 + * + * @param id 宠物服务档案主键 + * @return 宠物服务档案 + */ + PetCare selectPetCareById(Integer id); + + /** + * 查询宠物服务档案列表 + * + * @param petCare 宠物服务档案 + * @return 宠物服务档案集合 + */ + List selectPetCareList(PetCare petCare); + + /** + * 新增宠物服务档案 + * + * @param petCare 宠物服务档案 + * @return 结果 + */ + int insertPetCare(PetCare petCare); + + /** + * 修改宠物服务档案 + * + * @param petCare 宠物服务档案 + * @return 结果 + */ + int updatePetCare(PetCare petCare); + + /** + * 批量删除宠物服务档案 + * + * @param ids 需要删除的宠物服务档案主键集合 + * @return 结果 + */ + int deletePetCareByIds(Integer[] ids); + + /** + * 删除宠物服务档案信息 + * + * @param id 宠物服务档案主键 + * @return 结果 + */ + int deletePetCareById(Integer id); +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/PetService.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/PetService.java new file mode 100644 index 0000000..c763bd2 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/PetService.java @@ -0,0 +1,141 @@ +package com.cyl.manager.ums.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.manager.ums.domain.Pet; +import com.cyl.manager.ums.mapper.PetMapper; +import com.cyl.manager.ums.pojo.query.PetQuery; +import com.cyl.manager.ums.pojo.vo.PetVO; +import com.cyl.manager.ums.convert.PetConvert; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * 宠物档案Service接口 + * + * @author daixiande + */ +@Service +public class PetService { + + @Autowired + private PetMapper petMapper; + + @Autowired + private PetConvert convert; + /** + * 查询宠物档案 + * + * @param id 宠物档案主键 + * @return 宠物档案 + */ + public PetVO selectPetById(Integer id){ + Pet pet = petMapper.selectById(id); + PetVO petVO = convert.do2vo(pet); + return petVO; + } + + /** + * 导出宠物档案列表 + * + * @param pet 宠物档案 + * @return 宠物档案集合 + */ + public List selectPetList(Pet pet){ + QueryWrapper dd = new QueryWrapper<>(); + dd.eq("del_flag",0); + if(!StringUtils.isEmpty(pet.getName())){ + dd.eq("name",pet.getName()); + } + if(!StringUtils.isEmpty(pet.getPetType())){ + dd.eq("pet_type",pet.getPetType()); + } + if(!StringUtils.isEmpty(pet.getGender())){ + dd.eq("gender",pet.getGender()); + } + if(!StringUtils.isEmpty(pet.getBirthDate())){ + dd.eq("birth_date",pet.getBirthDate()); + } + if(!StringUtils.isEmpty(pet.getBreed())){ + dd.eq("breed",pet.getBreed()); + } + if(!StringUtils.isEmpty(pet.getBodyType())){ + dd.eq("body_type",pet.getBodyType()); + } + return petMapper.selectList(dd); + } + + /** + * 新增宠物档案 + * + * @param petVO 宠物档案 + * @return 结果 + */ + public int insertPet(PetVO petVO){ + Pet pet = convert.vo2do(petVO); + petMapper.insert(pet); + return 1; + } + + /** + * 修改宠物档案 + * + * @param petVO 宠物档案 + * @return 结果 + */ + public int updatePet(PetVO petVO){ + Pet pet = convert.vo2do(petVO); + pet.setUpdateTime(LocalDateTime.now()); + return petMapper.updateById(pet); + } + + /** + * 批量删除宠物档案 + * + * @param ids 需要删除的宠物档案主键集合 + * @return 结果 + */ + public int deletePetByIds(Integer[] ids){ + return petMapper.deleteByIds(ids); + } + + /** + * 查询宠物档案列表 + * + * @param query query + * @param page page + * @return 宠物档案集合 + */ + public List selectList(PetQuery query, Pageable page){ + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper dd = new QueryWrapper<>(); + dd.eq("del_flag",0); + if(!StringUtils.isEmpty(query.getName())){ + dd.eq("name",query.getName()); + } + if(!StringUtils.isEmpty(query.getPetType())){ + dd.eq("pet_type",query.getPetType()); + } + if(!StringUtils.isEmpty(query.getGender())){ + dd.eq("gender",query.getGender()); + } + if(!StringUtils.isEmpty(query.getBirthDate())){ + dd.eq("birth_date",query.getBirthDate()); + } + if(!StringUtils.isEmpty(query.getBreed())){ + dd.eq("breed",query.getBreed()); + } + if(!StringUtils.isEmpty(query.getBodyType())){ + dd.eq("body_type",query.getBodyType()); + } + return petMapper.selectList(dd); + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/impl/MemberDoorLockServiceImpl.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/impl/MemberDoorLockServiceImpl.java new file mode 100644 index 0000000..70ac58c --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/impl/MemberDoorLockServiceImpl.java @@ -0,0 +1,65 @@ +package com.cyl.manager.ums.service.impl; + +import com.cyl.manager.ums.domain.MemberDoorLock; +import com.cyl.manager.ums.mapper.MemberDoorLockMapper; +import com.cyl.manager.ums.service.MemberDoorLockService; +import com.ruoyi.system.service.ISysDictDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; + +/** + * 门锁信息Service接口 + * + * @author daixiande + */ +@Service +public class MemberDoorLockServiceImpl implements MemberDoorLockService { + + @Autowired + private MemberDoorLockMapper memberDoorLockMapper; + + @Autowired + private ISysDictDataService sysDictDataService; + + @Override + public MemberDoorLock selectMemberDoorLockById(Long id) { + return memberDoorLockMapper.selectById(id); + } + + @Override + public List selectMemberDoorLockList(MemberDoorLock memberDoorLock) { + List list = memberDoorLockMapper.selectList(memberDoorLock); + if(CollectionUtils.isEmpty(list)){ + return list; + } + for (MemberDoorLock doorLock : list) { + doorLock.setHouseType(sysDictDataService.selectDictLabel("house_type",doorLock.getHouseType())); + doorLock.setLockType(sysDictDataService.selectDictLabel("lock_type",doorLock.getLockType())); + doorLock.setKeyHandover(sysDictDataService.selectDictLabel("Key_handover",doorLock.getKeyHandover())); + } + return list; + } + + @Override + public int insertMemberDoorLock(MemberDoorLock memberDoorLock) { + return memberDoorLockMapper.insert(memberDoorLock); + } + + @Override + public int updateMemberDoorLock(MemberDoorLock memberDoorLock) { + return memberDoorLockMapper.update(memberDoorLock); + } + + @Override + public int deleteMemberDoorLockByIds(Long[] ids) { + return memberDoorLockMapper.deleteByIds(ids); + } + + @Override + public int deleteMemberDoorLockById(Long id) { + return memberDoorLockMapper.deleteById(id); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/impl/MemberPointHistoryServiceImpl.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/impl/MemberPointHistoryServiceImpl.java new file mode 100644 index 0000000..db2fff1 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/impl/MemberPointHistoryServiceImpl.java @@ -0,0 +1,53 @@ +package com.cyl.manager.ums.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.h5.controller.req.MemberPointHistoryReq; +import com.cyl.manager.ums.domain.MemberPointHistory; +import com.cyl.manager.ums.domain.Pet; +import com.cyl.manager.ums.mapper.MemberPointHistoryMapper; +import com.cyl.manager.ums.pojo.query.PetQuery; +import com.cyl.manager.ums.service.MemberPointHistoryService; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.List; + +@Service +public class MemberPointHistoryServiceImpl implements MemberPointHistoryService { + + @Autowired + private MemberPointHistoryMapper memberPointHistoryMapper; + + @Override + public ResponseEntity selectMemberPointHistoryById(Integer id) { + return null; + } + + @Override + public List selectMemberPointHistoryList(Long member,String type, Pageable page ) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + QueryWrapper dd = new QueryWrapper<>(); + if(!StringUtils.isEmpty(member)){ + dd.eq("member_id",member); + } + if(!StringUtils.isEmpty(type)){ + dd.eq("type",type); + } + dd.orderByDesc("create_at"); + return memberPointHistoryMapper.selectList(dd); + } + + @Override + public ResponseEntity insertMemberPointHistory(MemberPointHistory memberPointHistory) { + // Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); +// memberPointHistory.setUserId(member.getId()); + return ResponseEntity.ok(memberPointHistoryMapper.insert(memberPointHistory)); + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/impl/PetCareServiceImpl.java b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/impl/PetCareServiceImpl.java new file mode 100644 index 0000000..acff335 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/ums/service/impl/PetCareServiceImpl.java @@ -0,0 +1,86 @@ +package com.cyl.manager.ums.service.impl; + +import java.util.List; + +import com.cyl.manager.ums.domain.PetCare; +import com.cyl.manager.ums.mapper.PetCareMapper; +import com.cyl.manager.ums.service.PetCareService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * 宠物服务档案Service业务层处理 + * + * @author daixiande + */ +@Service +public class PetCareServiceImpl implements PetCareService { + @Autowired + private PetCareMapper petCareMapper; + + /** + * 查询宠物服务档案 + * + * @param id 宠物服务档案主键 + * @return 宠物服务档案 + */ + @Override + public PetCare selectPetCareById(Integer id) { + return petCareMapper.selectById(id); + } + + /** + * 查询宠物服务档案列表 + * + * @param petCare 宠物服务档案 + * @return 宠物服务档案 + */ + @Override + public List selectPetCareList(PetCare petCare) { + return petCareMapper.selectList(petCare); + } + + /** + * 新增宠物服务档案 + * + * @param petCare 宠物服务档案 + * @return 结果 + */ + @Override + public int insertPetCare(PetCare petCare) { + return petCareMapper.insert(petCare); + } + + /** + * 修改宠物服务档案 + * + * @param petCare 宠物服务档案 + * @return 结果 + */ + @Override + public int updatePetCare(PetCare petCare) { + return petCareMapper.update(petCare); + } + + /** + * 批量删除宠物服务档案 + * + * @param ids 需要删除的宠物服务档案主键 + * @return 结果 + */ + @Override + public int deletePetCareByIds(Integer[] ids) { + return petCareMapper.deleteByIds(ids); + } + + /** + * 删除宠物服务档案信息 + * + * @param id 宠物服务档案主键 + * @return 结果 + */ + @Override + public int deletePetCareById(Integer id) { + return petCareMapper.deleteById(id); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/sms/controller/SmsController.java b/ruoyi-mall/src/main/java/com/cyl/sms/controller/SmsController.java new file mode 100644 index 0000000..6434b89 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/sms/controller/SmsController.java @@ -0,0 +1,42 @@ +package com.cyl.sms.controller; + +import com.cyl.sms.service.SmsService; +import com.ruoyi.common.config.properties.SmsProperties; +import com.ruoyi.common.core.domain.model.SmsResult; +import com.ruoyi.common.core.sms.AliyunSmsUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + + + +@RestController +@RequestMapping("/no-auth/sms") +public class SmsController { + + @Autowired + private SmsService smsService; + @Autowired + private SmsProperties smsProperties; + + /** + * 阿里云短信服务 + */ + @GetMapping("/sendAliyun/{phones}") + public ResponseEntity sendAliyun(@PathVariable String phones){ + return smsService.sendAliyun(phones); + } + + @GetMapping("/sendBcshHasOrderSMS/{phones}") + public ResponseEntity sendBcshHasOrderSMS(@PathVariable String phones){ + AliyunSmsUtils util = new AliyunSmsUtils(smsProperties); + return ResponseEntity.ok(util.sendBcshHasOrderSMS(phones)); + } + + @GetMapping("/sendOrderSuccessSMS/{phones}") + public ResponseEntity sendOrderSuccessSMS(@PathVariable String phones){ + AliyunSmsUtils util = new AliyunSmsUtils(smsProperties); + return ResponseEntity.ok(util.sendOrderSuccessSMS(phones, "2024-12-20", "2024-12-25")); + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/sms/service/SmsService.java b/ruoyi-mall/src/main/java/com/cyl/sms/service/SmsService.java new file mode 100644 index 0000000..c24e1c3 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/sms/service/SmsService.java @@ -0,0 +1,64 @@ +package com.cyl.sms.service; + +import com.ruoyi.common.config.properties.SmsProperties; +import com.ruoyi.common.core.domain.model.SmsResult; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.core.sms.AliyunSmsTemplate; +import com.ruoyi.common.core.sms.SmsTemplate; +import com.ruoyi.common.utils.SmsUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import java.util.Base64; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +@Service +@Slf4j +public class SmsService { + + @Autowired + private RedisCache redisCache; + + @Autowired + private SmsProperties smsProperties; + + private final String templateId = "SMS_301225389"; + + public ResponseEntity sendAliyun(String phones){ + if (!smsProperties.getEnabled()){ + return ResponseEntity.ok( + SmsResult.builder() + .isSuccess(false) + .message("当前系统没有开启短信服务") + .build() + ); + + } + byte[] decodedBytes = Base64.getDecoder().decode(phones); + phones = new String(decodedBytes); + String code = SmsUtils.createRandom(true, 4); + Map map = new HashMap<>(); + map.put("code", code); + SmsTemplate smsTemplate = new AliyunSmsTemplate(smsProperties); + SmsResult send = smsTemplate.send(phones, templateId, map); + // 验证码存redis,当前只用于注册和登录,手机号只有一个 + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + send.setUuid(uuid); + try{ + redisCache.setCacheObject(uuid + "_" + phones, code, 5, TimeUnit.MINUTES); + }catch (Exception e){ + return ResponseEntity.ok( + SmsResult.builder() + .isSuccess(false) + .message("服务繁忙,请稍后再试") + .build() + ); + } + return ResponseEntity.ok(send); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/tencent/AbstractQueueModel.java b/ruoyi-mall/src/main/java/com/cyl/tencent/AbstractQueueModel.java new file mode 100644 index 0000000..cadc724 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/tencent/AbstractQueueModel.java @@ -0,0 +1,16 @@ +package com.cyl.tencent; + +import java.util.Map; + +public abstract class AbstractQueueModel { + + private Map mdcContextMap; + + public Map getMdcContextMap() { + return mdcContextMap; + } + + public void setMdcContextMap(Map mdcContextMap) { + this.mdcContextMap = mdcContextMap; + } +} \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/tencent/OrderMessageModel.java b/ruoyi-mall/src/main/java/com/cyl/tencent/OrderMessageModel.java new file mode 100644 index 0000000..d2b29f3 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/tencent/OrderMessageModel.java @@ -0,0 +1,13 @@ +package com.cyl.tencent; + +import com.cyl.manager.oms.domain.Order; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class OrderMessageModel extends AbstractQueueModel implements Serializable { + + private Order Order; + +} \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/tencent/QueueConfig.java b/ruoyi-mall/src/main/java/com/cyl/tencent/QueueConfig.java new file mode 100644 index 0000000..a8dd0b5 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/tencent/QueueConfig.java @@ -0,0 +1,16 @@ +package com.cyl.tencent; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; + +@Configuration +public class QueueConfig { + + @Bean("taskQueue") + public BlockingQueue taskQueue() { + return new LinkedBlockingQueue<>(); + } +} \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/tencent/QueueConsumer.java b/ruoyi-mall/src/main/java/com/cyl/tencent/QueueConsumer.java new file mode 100644 index 0000000..35f83f8 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/tencent/QueueConsumer.java @@ -0,0 +1,10 @@ +package com.cyl.tencent; + +public interface QueueConsumer { + + int threadSize = 2; + + void start(); + + void stop(); +} \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/tencent/QueueConsumerAware.java b/ruoyi-mall/src/main/java/com/cyl/tencent/QueueConsumerAware.java new file mode 100644 index 0000000..90784a0 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/tencent/QueueConsumerAware.java @@ -0,0 +1,36 @@ +package com.cyl.tencent; + +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.MapUtils; +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; +import javax.annotation.PreDestroy; +import java.util.Map; + +@Slf4j +@Component +public class QueueConsumerAware implements ApplicationContextAware { + + private static Map queueConsumerMap; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + queueConsumerMap = applicationContext.getBeansOfType(QueueConsumer.class); + for (Map.Entry entry : queueConsumerMap.entrySet()) { + log.info("启动消费者:" + entry.getKey()); + entry.getValue().start(); + } + } + + @PreDestroy + public void destroy() { + if (!MapUtils.isEmpty(queueConsumerMap)) { + for (Map.Entry entry : queueConsumerMap.entrySet()) { + log.info("销毁消费者:" + entry.getKey()); + entry.getValue().stop(); + } + } + } +} \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/tencent/TaskConsumer.java b/ruoyi-mall/src/main/java/com/cyl/tencent/TaskConsumer.java new file mode 100644 index 0000000..c09a34b --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/tencent/TaskConsumer.java @@ -0,0 +1,257 @@ +package com.cyl.tencent; + +import com.cyl.h5.service.H5MemberService; +import com.cyl.h5.service.H5OrderService; +import com.cyl.manager.oms.domain.OmsOrderService; +import com.cyl.manager.oms.domain.Order; +import com.cyl.manager.oms.service.OmsOrderServiceService; +import com.cyl.manager.oms.service.OrderService; +import com.cyl.manager.staff.service.IDispatchOrderService; +import com.cyl.manager.ums.domain.Member; +import com.cyl.manager.ums.domain.MemberPointHistory; +import com.cyl.manager.ums.mapper.MemberMapper; +import com.cyl.manager.ums.service.MemberPointHistoryService; +import com.cyl.manager.ums.service.MemberService; +import com.ruoyi.common.config.properties.SmsProperties; +import com.ruoyi.common.core.sms.AliyunSmsUtils; +import com.ruoyi.common.utils.StringUtils; +import com.wechat.pay.java.core.util.GsonUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.Date; +import java.util.List; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.atomic.AtomicReference; + + +@Slf4j +@Component +public class TaskConsumer implements QueueConsumer { + + + @Autowired + @Qualifier("taskQueue") + private BlockingQueue taskQueue; + + @Autowired + private MemberPointHistoryService memberPointHistoryService; + + @Autowired + private H5MemberService h5MemberService; + + @Autowired + private MemberService memberService; + + @Autowired + private OrderService orderService; + + @Autowired + private OmsOrderServiceService omsOrderServiceService; + + @Autowired + private MemberMapper memberMapper; + + @Autowired + private SmsProperties smsProperties; + + @Autowired + private H5OrderService h5OrderService; + + @Autowired + private IDispatchOrderService dispatchedOrdersService; + + int threadSize = 2; + private boolean run; + private TaskThread[] taskThreads; + + + + private class TaskThread extends Thread { + + @Override + public void run() { + while (run) { + try { + OrderMessageModel model = taskQueue.take(); + log.info("消费者消息:" + model); + //处理任务逻辑 + log.info("推送订单信息:" + GsonUtil.toJson(model.getOrder())); + //处理积分,集点,等级 + pointHandler(model.getOrder()); + + //进行派单操作 + // dispatchedOrdersService.dispatch(model.getOrder().getId()); + //TODO 等待订单逻辑完成 + smsHandler(model.getOrder()); + } catch (Exception e) { + log.error("task消费异常:{}", e); + } + } + } + } + + private void smsHandler(Order order) { + try { + Member member = memberService.selectById(order.getMemberId()); + String phone = memberService.getPhoneDecrypted(member.getPhoneEncrypted()); + + //TODO 查询订单的开始日期和结束日期 + List omsOrderServiceList = omsOrderServiceService.selectListByOrderId(order.getId()); + + AtomicReference startDate = new AtomicReference<>(); + AtomicReference endDate = new AtomicReference<>(); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + omsOrderServiceList.forEach(item -> { + String serviceDate = item.getServiceDate(); + if (StringUtils.isNotEmpty(serviceDate)) { + try { + Date serviceDateDate = sdf.parse(serviceDate); + + if (StringUtils.isEmpty(startDate.get())) { + startDate.set(serviceDate); + } else { + if (serviceDateDate.before(sdf.parse(startDate.get()))) { + startDate.set(serviceDate); + } + } + + if (StringUtils.isEmpty(endDate.get())) { + endDate.set(serviceDate); + } else { + if (serviceDateDate.after(sdf.parse(endDate.get()))) { + endDate.set(serviceDate); + } + } + } catch (ParseException e) { + log.error("时间解析失败:" + serviceDate); + } + } + }); + + if (StringUtils.isEmpty(endDate.get()) || StringUtils.isEmpty(startDate.get())) { + return; + } + + AliyunSmsUtils util = new AliyunSmsUtils(smsProperties); + AliyunSmsUtils.sendOrderSuccessSMS(phone, startDate.get(), endDate.get()); + } catch (Exception e) { + e.printStackTrace(); + log.error("【支付回调任务处理】发送短信失败:" + e.getMessage()); + } + } + + private void pointHandler(Order order) { + BigDecimal amount = order.getPayAmount(); + Member member = memberService.selectById(order.getMemberId()); + Integer level = member.getLevel(); + BigDecimal coefficient = BigDecimal.ZERO; + if (level == 1) { + coefficient = BigDecimal.valueOf(1.1); + } else if ( level == 2) { + coefficient = BigDecimal.valueOf(1.1); + } else if ( level == 3) { + coefficient = BigDecimal.valueOf(1.3); + } else if ( level == 4) { + coefficient = BigDecimal.valueOf(1.5); + } else { + coefficient = BigDecimal.valueOf(1.1); + } + //处理积分 + MemberPointHistory point = getPointEntity(member,order,coefficient); + memberPointHistoryService.insertMemberPointHistory(point); + log.info("新增积分明细:{}", point); + + //处理集点 + MemberPointHistory gather = getGatherEntity(order,member.getCentralPoint()); + memberPointHistoryService.insertMemberPointHistory(gather); + log.info("新增集点明细:{}", gather); + + //处理等级 + //有效订单开始时间为当前时间往前推一年的第一天 + // 获取当前日期 + LocalDate currentDate = LocalDate.now(); + // 获取往前推一年的日期 + LocalDate oneYearAgo = currentDate.minusYears(1); + // 获取往前推一年后的第一天(1月1日) + LocalDate firstDayOfYear = oneYearAgo.withDayOfYear(1); + // 将LocalDate转换为LocalDateTime,设置时间为00:00:00 + LocalDateTime startOfDay = firstDayOfYear.atStartOfDay(); + + // 如果需要转换为Date类型 + Date startDate = Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant()); + List orders = orderService.getOrdersByMemberId(order.getMemberId(),startDate,new Date()); + //订单总金额 + BigDecimal totalAmount = orders.stream() + .map(Order::getPayAmount) // 获取每个订单的 amount + .reduce(BigDecimal.ZERO, BigDecimal::add); // 累加 + int[] levels = h5MemberService.evaluateOrderAmount(totalAmount); + int memberLevel = levels[0]; + member.setLevel(memberLevel); + member.setCentralPoint(BigDecimal.valueOf(orders.size())); + member.setIntegral(totalAmount.multiply(coefficient)); + memberMapper.updateById(member); + log.info("更新member信息:{}", member); + } + + private MemberPointHistory getGatherEntity(Order order, BigDecimal centralPoint) { + MemberPointHistory memberPointHistory = new MemberPointHistory(); + memberPointHistory.setMemberId(order.getMemberId()); + memberPointHistory.setPoint(BigDecimal.ONE); + memberPointHistory.setType("gather"); + memberPointHistory.setTransactionId(order.getId()); + memberPointHistory.setDescription("数据手工同步"); + memberPointHistory.setAction("added"); + memberPointHistory.setPointBefore(centralPoint); + centralPoint = centralPoint.add(BigDecimal.valueOf(1)); + memberPointHistory.setPointAfter(centralPoint); + memberPointHistory.setCreateAt(order.getCreateTime()); + return memberPointHistory; + } + + private MemberPointHistory getPointEntity(Member member,Order order, BigDecimal coefficient) { + MemberPointHistory memberPointHistory = new MemberPointHistory(); + memberPointHistory.setMemberId(order.getMemberId()); + BigDecimal result = order.getPayAmount().multiply(coefficient); + memberPointHistory.setPoint(result); + memberPointHistory.setType("point"); + memberPointHistory.setTransactionId(order.getId()); + memberPointHistory.setDescription("订单生成"); + memberPointHistory.setAction("added"); + memberPointHistory.setPointBefore(member.getIntegral()); + BigDecimal pointAfter = member.getIntegral().add(order.getPayAmount().multiply(coefficient)); + memberPointHistory.setPointAfter(pointAfter); + memberPointHistory.setCreateAt(order.getCreateTime()); + return memberPointHistory; + } + + @Override + public void start() { + run = true; + taskThreads = new TaskThread[threadSize]; + for (int i = 0; i < threadSize; i++) { + taskThreads [i] = new TaskThread(); + taskThreads [i].start(); + } + } + + @Override + public void stop() { + run = false; + if (taskThreads != null) { + for (TaskThread thread : taskThreads ) { + thread.interrupt(); + } + } + } +} \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/tencent/TencentIpaasUtil.java b/ruoyi-mall/src/main/java/com/cyl/tencent/TencentIpaasUtil.java new file mode 100644 index 0000000..8074fa5 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/tencent/TencentIpaasUtil.java @@ -0,0 +1,116 @@ +package com.cyl.tencent; + +import com.cyl.manager.oms.domain.Order; +import com.ruoyi.common.utils.http.HttpUtils; +import com.wechat.pay.java.core.util.GsonUtil; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.net.ConnectException; +import java.net.SocketTimeoutException; +import java.net.URL; +import java.net.URLConnection; + +public class TencentIpaasUtil { + public static String url = "https://3124764-1300957566.ipaas.sandbox.myqcloud.com/orderPay"; + public static String order = "{\n" + + " \"phone\": \"18637610959\",\n" + + " \"wechatId\": \"Wechatid123\",\n" + + " \"openId\": \"o44bE68_2A0BSmbM8mIcOXu8ROOc\",\n" + + " \"note\": \"this is a test\",\n" + + " \"totalPrice\": \"120\",\n" + + " \"address\": {\n" + + " \"province\": \"上海市\",\n" + + " \"city\": \"上海市\",\n" + + " \"district\": \"黄浦区\",\n" + + " \"detailAddress\": \"123\"\n" + + " },\n" + + " \"skuList\":[\n" + + " {\n" + + " \"skuId\": \"403\",\n" + + " \"quantity\": 1\n" + + " },{\n" + + " \"skuId\": \"404\",\n" + + " \"quantity\": 3\n" + + " }\n" + + " ],\n" + + " \"service\":{\n" + + " \"serviceFrequency\": \"once_a_day\",\n" + + " \"serviceDate\": [\"2024-01-01\",\"2024-01-01\"],\n" + + " \"serviceTimeFirst\":\"10:00\",\n" + + " \"serviceTimeSecond\":\"16:00\",\n" + + " \"pet\": [\n" + + " {\n" + + " \"type\": \"large_dog\",\n" + + " \"quantity\": 2\n" + + " }\n" + + " ]\n" + + " }\n" + + "}"; + + public static String notify(Order orderVO) { + String result = HttpUtils.sendPost(url, GsonUtil.toJson(orderVO)); + return result; + } + + + public static void main(String[] args) { + String result = sendPost(url, order); + System.out.println(result); + } + + public static String sendPost(String url, String param) + { + PrintWriter out = null; + BufferedReader in = null; + StringBuilder result = new StringBuilder(); + try + { + String urlNameString = url; + System.out.println("sendPost - {}" + urlNameString); + URL realUrl = new URL(urlNameString); + URLConnection conn = realUrl.openConnection(); + conn.setRequestProperty("accept", "*/*"); + conn.setRequestProperty("connection", "Keep-Alive"); + conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + conn.setRequestProperty("Accept-Charset", "utf-8"); + conn.setRequestProperty("Content-Type", "application/json"); + conn.setDoOutput(true); + conn.setDoInput(true); + out = new PrintWriter(conn.getOutputStream()); + out.print(param); + out.flush(); + in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8")); + String line; + while ((line = in.readLine()) != null) + { + result.append(line); + } + } + catch (Exception e) + { + e.printStackTrace(); + } + finally + { + try + { + if (out != null) + { + out.close(); + } + if (in != null) + { + in.close(); + } + } + catch (IOException ex) + { + ex.printStackTrace(); + } + } + return result.toString(); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/wechat/WechatAuthService.java b/ruoyi-mall/src/main/java/com/cyl/wechat/WechatAuthService.java new file mode 100644 index 0000000..1b9de51 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/wechat/WechatAuthService.java @@ -0,0 +1,44 @@ +package com.cyl.wechat; + +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSON; +import com.cyl.wechat.response.WechatUserAuth; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import java.util.HashMap; +import java.util.Map; + +@Service +@Slf4j +public class WechatAuthService { + + @Autowired + private RestTemplate restTemplate; + + public WechatUserAuth getUserToken(String code) { + Map params = new HashMap<>(); + params.put("APPID", WechatPayData.appId); + params.put("SECRET", WechatPayData.secret); + params.put("CODE", code); + ResponseEntity responseEntity = restTemplate.getForEntity( + "https://api.weixin.qq.com/sns/oauth2/access_token?appid={APPID}&secret={SECRET}&code={CODE}&grant_type=authorization_code", + String.class, params); + String body = responseEntity.getBody(); + try { + WechatUserAuth object = JSON.parseObject(body, WechatUserAuth.class); + if (object == null) { + log.error("获取user wechat accesstoken失败"); + return null; + } + log.info("get user wechat accesstoken:{}",JSONUtil.toJsonStr(object)); + return object; + } catch (Exception e) { + log.info("get user wechat accesstoken error",e); + } + return null; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/wechat/WechatController.java b/ruoyi-mall/src/main/java/com/cyl/wechat/WechatController.java new file mode 100644 index 0000000..c9cc3e5 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/wechat/WechatController.java @@ -0,0 +1,48 @@ +package com.cyl.wechat; + +import com.cyl.h5.service.H5MemberService; +import com.cyl.wechat.response.JssdkConfigResponse; +import com.cyl.wechat.response.WechatUserAuth; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@RestController +@RequestMapping("/no-auth/wechat") +public class WechatController { + + @Autowired + private H5MemberService service; + + @GetMapping("/jssdk") + public ResponseEntity getJssdkConfig(){ + String appId = WechatPayData.appId; + String nonceStr = WechatPayUtil.generateNonceStr(); + long timeStamp = WechatPayUtil.getCurrentTimestamp(); + String signature = Stream.of(appId, String.valueOf(timeStamp), nonceStr) + .collect(Collectors.joining("\n", "", "\n")); + JssdkConfigResponse response = new JssdkConfigResponse(); + response.setAppId(appId); + List jsApiList = new ArrayList<>(); + jsApiList.add("chooseWXPay"); + jsApiList.add("updateAppMessageShareData"); + jsApiList.add("updateTimelineShareData"); + response.setJsApiList(jsApiList); + response.setNonceStr(nonceStr); + response.setTimeStamp(String.valueOf(timeStamp)); + response.setSignature(signature); + return ResponseEntity.ok(response); + } + + @ApiOperation("获取微信用户授权信息") + @PostMapping("/getWechatUserAuth") + public ResponseEntity getWechatUserAuth(@RequestBody String data){ + return ResponseEntity.ok(service.getWechatUserAuth(data)); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/wechat/WechatPayConfig.java b/ruoyi-mall/src/main/java/com/cyl/wechat/WechatPayConfig.java new file mode 100644 index 0000000..9bf8aef --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/wechat/WechatPayConfig.java @@ -0,0 +1,27 @@ +package com.cyl.wechat; + +import com.wechat.pay.java.core.Config; +import com.wechat.pay.java.core.RSAAutoCertificateConfig; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.core.io.support.ResourcePatternResolver; + +public class WechatPayConfig { + + private static Config wechatPayConfig; + + private WechatPayConfig(){} + + public static Config getInstance() { + + + if (wechatPayConfig == null) { + wechatPayConfig = new RSAAutoCertificateConfig.Builder() + .merchantId(WechatPayData.merchantId) + .privateKeyFromPath(WechatPayData.privateKeyPath) + .merchantSerialNumber(WechatPayData.merchantSerialNumber) + .apiV3Key(WechatPayData.apiV3key) + .build(); + } + return wechatPayConfig; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/wechat/WechatPayData.java b/ruoyi-mall/src/main/java/com/cyl/wechat/WechatPayData.java new file mode 100644 index 0000000..98e5380 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/wechat/WechatPayData.java @@ -0,0 +1,87 @@ +package com.cyl.wechat; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@ConfigurationProperties(prefix = "wechat") +@Component("WechatPayData") +public class WechatPayData { + + /** 商户号 */ + public static String appId; + public static String secret; + public static String merchantId; + /** 商户API私钥路径 */ + public static String privateKeyPath; + /** 商户证书序列号 */ + public static String merchantSerialNumber; + /** 商户APIV3密钥 */ + public static String apiV3key; + + /** 商户APIV2密钥 */ + public static String apiV2key; + + public static String notifyUrl; + public static String notifyUrlForBCHSH; + + public static String miniProgramAppId; + public static String miniProgramSecret; + + public static String staffAppId; + + public static String staffSecret; + + public void setAppId(String appId) { + WechatPayData.appId = appId; + } + + public void setSecret(String secret) { + WechatPayData.secret = secret; + } + + public void setMerchantId(String merchantId) { + WechatPayData.merchantId = merchantId; + } + + public void setPrivateKeyPath(String privateKeyPath) { + WechatPayData.privateKeyPath = privateKeyPath; + } + + public void setMerchantSerialNumber(String merchantSerialNumber) { + WechatPayData.merchantSerialNumber = merchantSerialNumber; + } + + public void setApiV3key(String apiV3key) { + WechatPayData.apiV3key = apiV3key; + } + + public void setNotifyUrl(String notifyUrl) { + WechatPayData.notifyUrl = notifyUrl; + } + + public void setMiniProgramAppId(String miniProgramAppId) { + WechatPayData.miniProgramAppId = miniProgramAppId; + } + + public void setMiniProgramSecret(String miniProgramSecret) { + WechatPayData.miniProgramSecret = miniProgramSecret; + } + + public void setApiV2key(String apiV2key) { + WechatPayData.apiV2key = apiV2key; + } + + public void setStaffAppId(String staffAppId) { + WechatPayData.staffAppId = staffAppId; + } + + public void setStaffSecret(String staffSecret) { + WechatPayData.staffSecret = staffSecret; + } + + public static void setNotifyUrlForBCHSH(String notifyUrlForBCHSH) { + WechatPayData.notifyUrlForBCHSH = notifyUrlForBCHSH; + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/wechat/WechatPayService.java b/ruoyi-mall/src/main/java/com/cyl/wechat/WechatPayService.java new file mode 100644 index 0000000..3452e06 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/wechat/WechatPayService.java @@ -0,0 +1,79 @@ +package com.cyl.wechat; + +import com.wechat.pay.java.service.payments.jsapi.JsapiService; +import com.wechat.pay.java.service.payments.jsapi.model.Amount; +import com.wechat.pay.java.service.payments.jsapi.model.Payer; +import com.wechat.pay.java.service.payments.jsapi.model.PrepayRequest; +import com.wechat.pay.java.service.payments.jsapi.model.PrepayResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.stereotype.Service; + + +@Service +@Slf4j +@ConditionalOnProperty(prefix = "wechat", name = "enabled", havingValue = "true") +public class WechatPayService { + + @Autowired + private JsapiService service; + + /** + * jsapi下单 + * @param orderNo 订单号 + * @param desc 订单描述 + * @param totalAmount 总金额,单位:分 + * @param openId 用户openid + * @return prepay_id + */ + public String jsapiPay(String orderNo,String desc,Integer totalAmount,String openId, Long memberId,String appId){ + PrepayRequest prepayRequest = new PrepayRequest(); + prepayRequest.setAppid(appId); + prepayRequest.setMchid(WechatPayData.merchantId); + prepayRequest.setDescription(desc); + prepayRequest.setOutTradeNo(orderNo); + prepayRequest.setAttach(String.valueOf(memberId)); + prepayRequest.setNotifyUrl(WechatPayData.notifyUrl); + Amount amount = new Amount(); + amount.setTotal(totalAmount); + prepayRequest.setAmount(amount); + Payer payer = new Payer(); + payer.setOpenid(openId); + prepayRequest.setPayer(payer); + log.info("【支付】开始调用jsapiPay支付请求参数:", prepayRequest); + PrepayResponse response = service.prepay(prepayRequest); + log.info("【支付】开始调用jsapiPay支付请求结果:", response); + return response.getPrepayId(); + } + + /** + * jsapi 保证金缴纳 + * @param orderNo 订单号 + * @param desc 订单描述 + * @param totalAmount 总金额,单位:分 + * @param openId 用户openid + * @return prepay_id + */ + public String jsapiPayForBCHSHI(String orderNo,String desc,Integer totalAmount,String openId, Long memberId,String appId){ + PrepayRequest prepayRequest = new PrepayRequest(); + prepayRequest.setAppid(appId); + prepayRequest.setMchid(WechatPayData.merchantId); + prepayRequest.setDescription(desc); + prepayRequest.setOutTradeNo(orderNo); + prepayRequest.setAttach(String.valueOf(memberId)); + + prepayRequest.setNotifyUrl(WechatPayData.notifyUrlForBCHSH); + Amount amount = new Amount(); + amount.setTotal(totalAmount); + prepayRequest.setAmount(amount); + Payer payer = new Payer(); + payer.setOpenid(openId); + prepayRequest.setPayer(payer); + log.info("【支付】开始调用jsapiPay支付请求参数:", prepayRequest); + PrepayResponse response = service.prepay(prepayRequest); + log.info("【支付】开始调用jsapiPay支付请求结果:", response); + return response.getPrepayId(); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/wechat/WechatPayUtil.java b/ruoyi-mall/src/main/java/com/cyl/wechat/WechatPayUtil.java new file mode 100644 index 0000000..ab019c9 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/wechat/WechatPayUtil.java @@ -0,0 +1,79 @@ +package com.cyl.wechat; + + + +import cn.hutool.crypto.PemUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.io.ClassPathResource; +import org.springframework.util.Base64Utils; + +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.URISyntaxException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.security.*; +import java.util.*; + + +public class WechatPayUtil { + + private static final String SYMBOLS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + + private static final Random RANDOM = new SecureRandom(); + + + public static String getSign(String signatureStr,String privateKey) throws InvalidKeyException, NoSuchAlgorithmException, SignatureException, IOException, URISyntaxException { + //replace 根据实际情况,不一定都需要 + String replace = privateKey.replace("\\n", "\n"); + InputStream certStream = Files.newInputStream(Paths.get(privateKey)); + PrivateKey merchantPrivateKey = PemUtil.readPemPrivateKey(certStream); + Signature sign = Signature.getInstance("SHA256withRSA"); + sign.initSign(merchantPrivateKey); + sign.update(signatureStr.getBytes(StandardCharsets.UTF_8)); + return Base64Utils.encodeToString(sign.sign()); + } + + /** + * 获取随机字符串 Nonce Str + * + * @return String 随机字符串 + */ + public static String generateNonceStr() { + char[] nonceChars = new char[32]; + for (int index = 0; index < nonceChars.length; ++index) { + nonceChars[index] = SYMBOLS.charAt(RANDOM.nextInt(SYMBOLS.length())); + } + return new String(nonceChars); + } + + + /** + * 日志 + * @return + */ + public static Logger getLogger() { + Logger logger = LoggerFactory.getLogger("wxpay java sdk"); + return logger; + } + + /** + * 获取当前时间戳,单位秒 + * @return + */ + public static long getCurrentTimestamp() { + return System.currentTimeMillis()/1000; + } + + /** + * 获取当前时间戳,单位毫秒 + * @return + */ + public static long getCurrentTimestampMs() { + return System.currentTimeMillis(); + } + +} \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/wechat/coupon/CouponUtil.java b/ruoyi-mall/src/main/java/com/cyl/wechat/coupon/CouponUtil.java new file mode 100644 index 0000000..0561672 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/wechat/coupon/CouponUtil.java @@ -0,0 +1,76 @@ +package com.cyl.wechat.coupon; + +import lombok.extern.slf4j.Slf4j; + +import javax.crypto.Mac; +import javax.crypto.spec.SecretKeySpec; +import java.util.*; + +@Slf4j +public class CouponUtil { + /** + * 微信商户号(注意是商户号,不是子商户号) + */ + //public static String WECHAT_MCHID; + + /** + * 微信api密钥V2 + */ + //public static String WECHAT_APIV2KEY; + + public static String getSginForWeixinCoupon(SendCouponParam sendCouponParam, String WECHAT_MCHID, String WECHAT_APIV2KEY) throws Exception { + Map params = new HashMap(); + params.put("out_request_no0",sendCouponParam.getOut_request_no()); + params.put("send_coupon_merchant",WECHAT_MCHID); + params.put("stock_id0",sendCouponParam.getStock_id()); + + String key = WECHAT_APIV2KEY; //这里是微信V2api密钥 + String string = createSign(params); + String stringSignTemp = string + "key=" + key; + Mac sha256_HMAC = Mac.getInstance("HmacSHA256"); + SecretKeySpec secret_key = new SecretKeySpec(key.getBytes(), "HmacSHA256"); + sha256_HMAC.init(secret_key); + // utf-8 : 解决中文加密不一致问题,必须指定编码格式 + String sgin = byteArrayToHexString(sha256_HMAC.doFinal(stringSignTemp.getBytes("utf-8"))).toUpperCase(); + log.info("【获取微信签名】得到签名sign:" + sgin); + // 返回签名 + return sgin; + } + + public static String createSign(Map params){ + List> infoIds = new ArrayList>(params.entrySet()); + // 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序) + Collections.sort(infoIds, new Comparator>() { + @Override + public int compare(Map.Entry o1, Map.Entry o2) { + return (o1.getKey()).toString().compareTo(o2.getKey()); + } + }); + // 构造签名键值对的格式 + StringBuilder sb = new StringBuilder(); + for (Map.Entry item : infoIds) { + if (item.getKey() != null || item.getKey() != "") { + String key = item.getKey(); + String val = item.getValue(); + if (!(val == "" || val == null)) { + sb.append(key + "=" + val + "&"); + } + } + } + log.info("【获取微信签名】得到拼接串:" + sb.toString()); + return sb.toString(); + } + + private static String byteArrayToHexString(byte[] b) { + StringBuilder hs = new StringBuilder(); + String stmp; + for (int n = 0; b!=null && n < b.length; n++) { + stmp = Integer.toHexString(b[n] & 0XFF); + if (stmp.length() == 1) { + hs.append('0'); + } + hs.append(stmp); + } + return hs.toString().toLowerCase(); + } +} diff --git a/ruoyi-mall/src/main/java/com/cyl/wechat/coupon/PayConfig.java b/ruoyi-mall/src/main/java/com/cyl/wechat/coupon/PayConfig.java new file mode 100644 index 0000000..7b3ae3e --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/wechat/coupon/PayConfig.java @@ -0,0 +1,9 @@ +package com.cyl.wechat.coupon; + +import cn.felord.payment.autoconfigure.EnableMobilePay; +import org.springframework.context.annotation.Configuration; + +@EnableMobilePay +@Configuration +public class PayConfig { +} \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/wechat/coupon/SendCouponParam.java b/ruoyi-mall/src/main/java/com/cyl/wechat/coupon/SendCouponParam.java new file mode 100644 index 0000000..08328f3 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/wechat/coupon/SendCouponParam.java @@ -0,0 +1,20 @@ +package com.cyl.wechat.coupon; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class SendCouponParam { + + @ApiModelProperty("微信卡券id即商家券批次号stock_id") + private String stock_id; + + @ApiModelProperty("微信商家券发券凭证") + private String out_request_no; + + @ApiModelProperty("卡券核销码即券code coupon_code") + private String coupon_code; + + @ApiModelProperty("自定义领取时间即customize_send_time") + private String customize_send_time; +} \ No newline at end of file diff --git a/ruoyi-mall/src/main/java/com/cyl/wechat/coupon/WechatCouponController.java b/ruoyi-mall/src/main/java/com/cyl/wechat/coupon/WechatCouponController.java new file mode 100644 index 0000000..ecce65e --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/wechat/coupon/WechatCouponController.java @@ -0,0 +1,149 @@ +package com.cyl.wechat.coupon; + +import cn.felord.payment.wechat.v3.WechatApiProvider; +import cn.felord.payment.wechat.v3.WechatMarketingBusiFavorApi; +import cn.felord.payment.wechat.v3.WechatResponseEntity; +import cn.felord.payment.wechat.v3.model.busifavor.BusiFavorCreateParams; +import cn.felord.payment.wechat.v3.model.ResponseSignVerifyParams; +import cn.felord.payment.wechat.v3.model.busifavor.*; +import com.cyl.manager.marketing.service.IWechatMemberCouponService; +import com.cyl.wechat.WechatPayData; +import com.fasterxml.jackson.databind.node.ObjectNode; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.util.Map; +import java.util.stream.Collectors; + +@RestController +@RequestMapping("/no-auth/wechat/coupon") +@Slf4j +public class WechatCouponController { + + @Autowired + WechatApiProvider wechatApiProvider; + + @Autowired + private IWechatMemberCouponService wechatMemberCouponService; + + @PostMapping("/createStock") + public ResponseEntity createStock(@RequestBody BusiFavorCreateParams params){ + WechatMarketingBusiFavorApi wechatMarketingBusiFavorApi = wechatApiProvider.busiFavorApi("miniapp"); + + WechatResponseEntity wechatResponseEntity = wechatMarketingBusiFavorApi.createStock(params); + + return ResponseEntity.ok(wechatResponseEntity); + } + + @GetMapping("/queryStock/{stockId}") + public ResponseEntity queryStockDetail(@PathVariable String stockId){ + WechatMarketingBusiFavorApi wechatMarketingBusiFavorApi = wechatApiProvider.busiFavorApi("miniapp"); + + WechatResponseEntity wechatResponseEntity = wechatMarketingBusiFavorApi.queryStockDetail(stockId); + + return ResponseEntity.ok(wechatResponseEntity); + } + + @PostMapping("/updateStock") + public ResponseEntity updateStock(@RequestBody BusiFavorUpdateParams params){ + WechatMarketingBusiFavorApi wechatMarketingBusiFavorApi = wechatApiProvider.busiFavorApi("miniapp"); + + WechatResponseEntity wechatResponseEntity = wechatMarketingBusiFavorApi.updateStock(params); + + return ResponseEntity.ok(wechatResponseEntity); + } + + @PostMapping("/queryUserCoupon") + public ResponseEntity queryUserCoupon(@RequestBody UserBusiCouponQueryParams params){ + WechatMarketingBusiFavorApi wechatMarketingBusiFavorApi = wechatApiProvider.busiFavorApi("miniapp"); + + WechatResponseEntity wechatResponseEntity = wechatMarketingBusiFavorApi.queryUserCoupon(params); + + return ResponseEntity.ok(wechatResponseEntity); + } + + @PostMapping("/queryUserStocks") + public ResponseEntity queryUserCoupon(@RequestBody UserBusiFavorQueryParams params){ + WechatMarketingBusiFavorApi wechatMarketingBusiFavorApi = wechatApiProvider.busiFavorApi("miniapp"); + + WechatResponseEntity wechatResponseEntity = wechatMarketingBusiFavorApi.queryUserStocks(params); + + return ResponseEntity.ok(wechatResponseEntity); + } + + @PostMapping("/use") + public ResponseEntity use(@RequestBody BusiFavorUseParams params){ + WechatMarketingBusiFavorApi wechatMarketingBusiFavorApi = wechatApiProvider.busiFavorApi("miniapp"); + + WechatResponseEntity wechatResponseEntity = wechatMarketingBusiFavorApi.use(params); + + return ResponseEntity.ok(wechatResponseEntity); + } + + @PostMapping("/refund") + public ResponseEntity refund(@RequestBody BusiFavorRefundParams params){ + WechatMarketingBusiFavorApi wechatMarketingBusiFavorApi = wechatApiProvider.busiFavorApi("miniapp"); + + WechatResponseEntity wechatResponseEntity = wechatMarketingBusiFavorApi.refund(params); + + return ResponseEntity.ok(wechatResponseEntity); + } + + @PostMapping("/deactivate") + public ResponseEntity deactivate(@RequestBody BusiFavorDeactivateParams params){ + WechatMarketingBusiFavorApi wechatMarketingBusiFavorApi = wechatApiProvider.busiFavorApi("miniapp"); + + WechatResponseEntity wechatResponseEntity = wechatMarketingBusiFavorApi.deactivate(params); + + return ResponseEntity.ok(wechatResponseEntity); + } + + @PostMapping("/setCallbacks") + public ResponseEntity setCallbacks(@RequestBody BusiFavorCallbackSettingParams params){ + WechatMarketingBusiFavorApi wechatMarketingBusiFavorApi = wechatApiProvider.busiFavorApi("miniapp"); + + params.setMchid(WechatPayData.merchantId); + + WechatResponseEntity wechatResponseEntity = wechatMarketingBusiFavorApi.setCallbacks(params); + + return ResponseEntity.ok(wechatResponseEntity); + } + + @GetMapping("/getCallbacks") + public ResponseEntity getCallbacks(){ + WechatMarketingBusiFavorApi wechatMarketingBusiFavorApi = wechatApiProvider.busiFavorApi("miniapp"); + + WechatResponseEntity wechatResponseEntity = wechatMarketingBusiFavorApi.getCallbacks(WechatPayData.merchantId); + + return ResponseEntity.ok(wechatResponseEntity); + } + + @PostMapping("/callback") + public Map callback(@RequestHeader("Wechatpay-Serial") String wechatpaySerial, + @RequestHeader("Wechatpay-Signature") String wechatpaySignature, + @RequestHeader("Wechatpay-Timestamp") String wechatpayTimestamp, + @RequestHeader("Wechatpay-Nonce") String wechatpayNonce, + HttpServletRequest request) throws IOException { + String body = request.getReader().lines().collect(Collectors.joining()); + log.info("【微信商家券回调】接收到数据:" + body); + + ResponseSignVerifyParams params = new ResponseSignVerifyParams(); + params.setWechatpayNonce(wechatpayNonce); + params.setBody(body); + params.setWechatpaySerial(wechatpaySerial); + params.setWechatpayTimestamp(wechatpayTimestamp); + params.setWechatpaySignature(wechatpaySignature); + log.info("【微信商家券回调】接收到组装的数据:" + params); + + return wechatApiProvider.callback("miniapp").busiFavorReceiveCallback(params, data -> { + log.info("【微信商家券回调】接收到回调数据:" + data); + + wechatMemberCouponService.send(data); + }); + } + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/wechat/response/JssdkConfigResponse.java b/ruoyi-mall/src/main/java/com/cyl/wechat/response/JssdkConfigResponse.java new file mode 100644 index 0000000..aed9f66 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/wechat/response/JssdkConfigResponse.java @@ -0,0 +1,20 @@ +package com.cyl.wechat.response; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class JssdkConfigResponse { + @ApiModelProperty("appId") + private String appId; + @ApiModelProperty("timeStamp") + private String timeStamp; + @ApiModelProperty("nonceStr") + private String nonceStr; + @ApiModelProperty("signature") + private String signature; + @ApiModelProperty("jsApiList") + private List jsApiList; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/wechat/response/WeChatAmount.java b/ruoyi-mall/src/main/java/com/cyl/wechat/response/WeChatAmount.java new file mode 100644 index 0000000..ff92763 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/wechat/response/WeChatAmount.java @@ -0,0 +1,23 @@ +package com.cyl.wechat.response; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + * @author: Jinxin + * @date: 2023/4/18 23:04 + * @Description: + */ +@Getter +@Setter +public class WeChatAmount { + @ApiModelProperty("CNY:人民币,境内商户号仅支持人民币。") + private String currency; + @ApiModelProperty("用户支付币种") + private String payer_currency; + @ApiModelProperty("用户支付金额,单位为分。(指使用优惠券的情况下,这里等于总金额-优惠券金额)") + private Long payer_total; + @ApiModelProperty("订单总金额,单位为分") + private Long total; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/wechat/response/WeChatPayNotify.java b/ruoyi-mall/src/main/java/com/cyl/wechat/response/WeChatPayNotify.java new file mode 100644 index 0000000..df01ea0 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/wechat/response/WeChatPayNotify.java @@ -0,0 +1,39 @@ +package com.cyl.wechat.response; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + * @author: Jinxin + * @date: 2023/4/18 23:03 + * @Description: + */ +@Getter +@Setter +public class WeChatPayNotify { + + @ApiModelProperty("微信支付系统生成的订单号") + private String transaction_id; + @ApiModelProperty("商户号") + private String mchid; + @ApiModelProperty("订单金额信息") + private WeChatAmount amount; + @ApiModelProperty("商户订单号") + private String out_trade_no; + @ApiModelProperty("交易类型") + private String trade_type; + @ApiModelProperty("交易状态") + private String trade_state; + @ApiModelProperty("交易状态描述") + private String trade_state_desc; + @ApiModelProperty("付款银行") + private String bank_type; + @ApiModelProperty("附加数据") + private String attach; + @ApiModelProperty("支付完成时间") + private String success_time; + @ApiModelProperty("支付者信息") + private WeChatPayer payer; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/wechat/response/WeChatPayer.java b/ruoyi-mall/src/main/java/com/cyl/wechat/response/WeChatPayer.java new file mode 100644 index 0000000..56f1fbb --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/wechat/response/WeChatPayer.java @@ -0,0 +1,17 @@ +package com.cyl.wechat.response; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + * @author: Jinxin + * @date: 2023/4/18 23:03 + * @Description: + */ +@Getter +@Setter +public class WeChatPayer { + @ApiModelProperty("用户标识") + private String openid; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/wechat/response/WechatUserAuth.java b/ruoyi-mall/src/main/java/com/cyl/wechat/response/WechatUserAuth.java new file mode 100644 index 0000000..b659482 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/wechat/response/WechatUserAuth.java @@ -0,0 +1,13 @@ +package com.cyl.wechat.response; + +import lombok.Data; + +@Data +public class WechatUserAuth { + + private String access_token; + private Integer expires_in; + private String refresh_token; + private String openid; + private String scope; +} \ No newline at end of file diff --git a/ruoyi-mall/src/main/resources/.DS_Store b/ruoyi-mall/src/main/resources/.DS_Store new file mode 100644 index 0000000..3e8053b Binary files /dev/null and b/ruoyi-mall/src/main/resources/.DS_Store differ diff --git a/ruoyi-mall/src/main/resources/application.properties b/ruoyi-mall/src/main/resources/application.properties new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ruoyi-mall/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/ruoyi-mall/src/main/resources/basicQuestions.txt b/ruoyi-mall/src/main/resources/basicQuestions.txt new file mode 100644 index 0000000..c00956c --- /dev/null +++ b/ruoyi-mall/src/main/resources/basicQuestions.txt @@ -0,0 +1,862 @@ +[ + { + "id": 1, + "questionStem": "年龄", + "options": + [ + { + "value": "A", + "content": "小于22岁", + "order": 1 + }, + { + "value": "B", + "content": "22~40之间", + "order": 2 + }, + { + "value": "C", + "content": "大于40岁", + "order": 3 + }, + { + "value": "D", + "content": "不愿告知", + "order": 4 + } + ], + "answerNumber": + [ + "B" + ], + "type": "0", + "order": 1 + }, + { + "id": 2, + "questionStem": "目前为止,您是否猫猫和狗狗都养过?", + "options": + [ + { + "value": "A", + "content": "是", + "order": 1 + }, + { + "value": "B", + "content": "否", + "order": 2 + } + ], + "answerNumber": + [ + "A" + ], + "type": "0", + "order": 2 + }, + { + "id": 3, + "questionStem": "目前为止,您是否仍在养猫/狗?", + "options": + [ + { + "value": "A", + "content": "是", + "order": 1 + }, + { + "value": "B", + "content": "否", + "order": 2 + } + ], + "answerNumber": + [ + "A" + ], + "type": "0", + "order": 3 + }, + { + "id": 4, + "questionStem": "目前为止,您养宠年限累计在?", + "options": + [ + { + "value": "A", + "content": "1年及1年以下", + "order": 1 + }, + { + "value": "B", + "content": "1~3年之间", + "order": 2 + }, + { + "value": "C", + "content": "3年以上", + "order": 3 + } + ], + "answerNumber": + [ + "B", + "C" + ], + "type": "2", + "order": 4 + }, + { + "id": 5, + "questionStem": "猫咪每天在地上走路,时不时还会打滚,身上是很不干净的,最好每个星期洗次澡", + "options": + [ + { + "value": "A", + "content": "对", + "order": 1 + }, + { + "value": "B", + "content": "错", + "order": 2 + } + ], + "answerNumber": + [ + "B" + ], + "type": "0", + "order": 5 + }, + { + "id": 6, + "questionStem": "当狗狗出现乱拉乱尿或者捣乱拆家等反应时,您会如何处理?", + "options": + [ + { + "value": "A", + "content": "暴力制止,根据情况是否严重来判断下手轻重,让狗狗知道这样做是会受到惩罚", + "order": 1 + }, + { + "value": "B", + "content": "奖罚分明,制止后耐心引导,直到狗狗做出正确的行为,并立马给出奖励", + "order": 2 + }, + { + "value": "C", + "content": "狗狗也不是故意的,也不会造成什么很大影响,默默打扫好就算了吧", + "order": 3 + } + ], + "answerNumber": + [ + "B" + ], + "type": "0", + "order": 6 + }, + { + "id": 7, + "questionStem": "狗狗和猫咪一样是肉食性动物,最好可以纯肉喂养", + "options": + [ + { + "value": "A", + "content": "对", + "order": 1 + }, + { + "value": "B", + "content": "错", + "order": 2 + } + ], + "answerNumber": + [ + "B" + ], + "type": "0", + "order": 7 + }, + { + "id": 8, + "questionStem": "狗狗或者猫猫的胡须太长了会影响美观,不过也不可以随意修剪,因为他们对周围环境的感知需要胡须的帮助", + "options": + [ + { + "value": "A", + "content": "对", + "order": 1 + }, + { + "value": "B", + "content": "错", + "order": 2 + } + ], + "answerNumber": + [ + "A" + ], + "type": "0", + "order": 8 + }, + { + "id": 9, + "questionStem": "陌生人抚摸猫咪哪些部位可以更快的和猫咪亲近", + "options": + [ + { + "value": "A", + "content": "下巴", + "order": 1 + }, + { + "value": "B", + "content": "尾巴根部", + "order": 2 + }, + { + "value": "C", + "content": "肚皮", + "order": 3 + } + ], + "answerNumber": + [ + "A" + ], + "type": "0", + "order": 9 + }, + { + "id": 10, + "questionStem": "想给猫咪换一款猫粮,需要将原来的猫粮全部倒掉,把粮碗里全部换为新的猫粮,避免营养失衡", + "options": + [ + { + "value": "A", + "content": "对", + "order": 1 + }, + { + "value": "B", + "content": "错", + "order": 2 + } + ], + "answerNumber": + [ + "B" + ], + "type": "0", + "order": 10 + }, + { + "id": 11, + "questionStem": "以下三个选项中,哪个比较适合给猫咪饮用", + "options": + [ + { + "value": "A", + "content": "0乳糖羊奶", + "order": 1 + }, + { + "value": "B", + "content": "牛奶", + "order": 2 + }, + { + "value": "C", + "content": "舒化奶", + "order": 3 + } + ], + "answerNumber": + [ + "A" + ], + "type": "0", + "order": 11 + }, + { + "id": 12, + "questionStem": "夏天狗狗一直吐舌头说明太热了,但是也不能通过剃毛裸露皮肤来帮助散热,因为狗狗的皮肤并没有汗腺,没有毛发反而会导致毛囊受损", + "options": + [ + { + "value": "A", + "content": "对", + "order": 1 + }, + { + "value": "B", + "content": "错", + "order": 2 + } + ], + "answerNumber": + [ + "A" + ], + "type": "0", + "order": 12 + }, + { + "id": 13, + "questionStem": "狗狗在吃完饭后,需要通过运动帮助消化,这时候带出去遛狗是最好的选择", + "options": + [ + { + "value": "A", + "content": "对", + "order": 1 + }, + { + "value": "B", + "content": "错", + "order": 2 + } + ], + "answerNumber": + [ + "B" + ], + "type": "0", + "order": 13 + }, + { + "id": 14, + "questionStem": "成年犬遛狗频率一般在多久一次", + "options": + [ + { + "value": "A", + "content": "每天一次", + "order": 1 + }, + { + "value": "B", + "content": "每周一次", + "order": 2 + }, + { + "value": "C", + "content": "每月一次", + "order": 3 + }, + { + "value": "D", + "content": "一般不遛", + "order": 4 + } + ], + "answerNumber": + [ + "A" + ], + "type": "0", + "order": 14 + }, + { + "id": 15, + "questionStem": "对猫咪/狗狗来说,以下几种水源中,哪种饮用更健康,危害更小", + "options": + [ + { + "value": "A", + "content": "凉白开或纯净水", + "order": 1 + }, + { + "value": "B", + "content": "矿泉水或自来水", + "order": 2 + }, + { + "value": "C", + "content": "以上都可以", + "order": 3 + } + ], + "answerNumber": + [ + "A" + ], + "type": "0", + "order": 15 + }, + { + "id": 16, + "questionStem": "狗狗在完成首次驱虫后,半年内需要打哪些疫苗", + "options": + [ + { + "value": "A", + "content": "犬n联*3,狂犬疫苗*3", + "order": 1 + }, + { + "value": "B", + "content": "犬n联*1,狂犬疫苗*1", + "order": 2 + }, + { + "value": "C", + "content": "犬n联*3,狂犬疫苗*1", + "order": 3 + }, + { + "value": "D", + "content": "犬n联*1,狂犬疫苗*3", + "order": 4 + } + ], + "answerNumber": + [ + "C" + ], + "type": "0", + "order": 16 + }, + { + "id": 17, + "questionStem": "遛狗时遇到其他狗狗靠近,应该如何处理", + "options": + [ + { + "value": "A", + "content": "立马抱起自己的狗狗,避免两条狗狗接触打架产生纠纷", + "order": 1 + }, + { + "value": "B", + "content": "鼓励狗狗社交,抓紧遛狗绳,如果情况不对再进行人为干预", + "order": 2 + } + ], + "answerNumber": + [ + "B" + ], + "type": "0", + "order": 17 + }, + { + "id": 18, + "questionStem": "请问猫咪正常接种猫三联疫苗后,不可以预防以下哪种疾病", + "options": + [ + { + "value": "A", + "content": "猫传腹", + "order": 1 + }, + { + "value": "B", + "content": "猫瘟", + "order": 2 + }, + { + "value": "C", + "content": "猫鼻支", + "order": 3 + } + ], + "answerNumber": + [ + "A" + ], + "type": "0", + "order": 18 + }, + { + "id": 19, + "questionStem": "如果接触陌生猫咪的过程中,猫咪出现了应激反应,应该如何处理", + "options": + [ + { + "value": "A", + "content": "猫咪都是没有攻击性的,应该继续靠近并抚摸上手,让ta知道我没有恶意", + "order": 1 + }, + { + "value": "B", + "content": "如果猫咪的应激反应一直存在的话,就放弃我的小小私心,远离猫咪,还ta一片清净", + "order": 2 + }, + { + "value": "C", + "content": "不能强制靠近,应该先堵住ta的去路,然后慢慢靠近,循序渐进地和ta接触", + "order": 3 + } + ], + "answerNumber": + [ + "B" + ], + "type": "0", + "order": 19 + }, + { + "id": 20, + "questionStem": "以下哪种反应不属于猫咪应激反应", + "options": + [ + { + "value": "A", + "content": "耳朵像飞机一样向后舒展,背部拱起,尾巴炸毛并向下耷拉", + "order": 1 + }, + { + "value": "B", + "content": "躲在角落,无视呼唤,长时间不进食,不睡觉,不排泄", + "order": 2 + }, + { + "value": "C", + "content": "看到在动的物体,眼睛瞪得遛圆,身体低趴,扭动屁股", + "order": 3 + } + ], + "answerNumber": + [ + "C" + ], + "type": "0", + "order": 20 + }, + { + "id": 21, + "questionStem": "大型犬无论是白天晚上,在外遛狗都是一定要栓绳的,小型犬晚上在人很少的地方遛狗时候,可以视情况不栓绳", + "options": + [ + { + "value": "A", + "content": "对", + "order": 1 + }, + { + "value": "B", + "content": "错", + "order": 2 + } + ], + "answerNumber": + [ + "B" + ], + "type": "0", + "order": 21 + }, + { + "id": 22, + "questionStem": "猫咪如果做错事,以下哪种教育方式更妥当", + "options": + [ + { + "value": "A", + "content": "得看情况,严重得话得打一顿,不严重的话没事", + "order": 1 + }, + { + "value": "B", + "content": "立即大声呵斥或适当冷落猫咪,让猫咪意识到不对", + "order": 2 + }, + { + "value": "C", + "content": "给猫咪进行绝食,让猫咪意识到问题的严重性", + "order": 3 + } + ], + "answerNumber": + [ + "B" + ], + "type": "0", + "order": 22 + }, + { + "id": 23, + "questionStem": "相比于静置在碗中的水,猫咪更喜欢喝流动的水", + "options": + [ + { + "value": "A", + "content": "对", + "order": 1 + }, + { + "value": "B", + "content": "错", + "order": 2 + } + ], + "answerNumber": + [ + "A" + ], + "type": "0", + "order": 23 + }, + { + "id": 24, + "questionStem": "狗狗的肠胃相对猫咪抵抗力更强,可以吃巧克力,牛奶等无害食品", + "options": + [ + { + "value": "A", + "content": "对", + "order": 1 + }, + { + "value": "B", + "content": "错", + "order": 2 + } + ], + "answerNumber": + [ + "B" + ], + "type": "0", + "order": 24 + }, + { + "id": 25, + "questionStem": "请问进入陌生人家中喂养猫/狗时,以下哪种做法是正确的", + "options": + [ + { + "value": "A", + "content": "轻轻开门,时刻注意底部,并随时准备用脚挡住;离开时观察室内宠物位置及动向,确认无误后轻轻开门,小心关门。", + "order": 1 + }, + { + "value": "B", + "content": "进出时迅速开门并迅速关门,不给窜出去的机会", + "order": 2 + } + ], + "answerNumber": + [ + "A" + ], + "type": "0", + "order": 25 + }, + { + "id": 26, + "questionStem": "猫咪在陌生或嘈杂的环境中容易应激,所以在室内养猫就好,并不需要带出去遛猫(不考虑经过训练的场景)", + "options": + [ + { + "value": "A", + "content": "对", + "order": 1 + }, + { + "value": "B", + "content": "错", + "order": 2 + } + ], + "answerNumber": + [ + "A" + ], + "type": "0", + "order": 26 + }, + { + "id": 27, + "questionStem": "家养猫/狗的驱虫频率是", + "options": + [ + { + "value": "A", + "content": "体内驱虫:半年一次;体外驱虫:三个月一次", + "order": 1 + }, + { + "value": "B", + "content": "体内驱虫:三个月一次;体外驱虫:一个月一次", + "order": 2 + }, + { + "value": "C", + "content": "体内驱虫:一个月一次;体外驱虫:不需要", + "order": 3 + } + ], + "answerNumber": + [ + "B" + ], + "type": "0", + "order": 27 + }, + { + "id": 28, + "questionStem": "猫咪见到陌生人回不熟悉,十分热情得去rua 它会有助于提升感情", + "options": + [ + { + "value": "A", + "content": "对", + "order": 1 + }, + { + "value": "B", + "content": "错", + "order": 2 + } + ], + "answerNumber": + [ + "B" + ], + "type": "0", + "order": 28 + }, + { + "id": 29, + "questionStem": "狗狗不喜欢被抚摸以下哪个部位", + "options": + [ + { + "value": "A", + "content": "脖子", + "order": 1 + }, + { + "value": "B", + "content": "尾巴", + "order": 2 + }, + { + "value": "C", + "content": "背部", + "order": 3 + } + ], + "answerNumber": + [ + "B" + ], + "type": "0", + "order": 29 + }, + { + "id": 30, + "questionStem": "以下哪个选项是正确的遛狗打开方式", + "options": + [ + { + "value": "A", + "content": "人为遛狗,按照狗狗的节奏走走停停,享受遛狗的过程,让狗狗充分嗅闻和探索", + "order": 1 + }, + { + "value": "B", + "content": "人为遛狗,遛狗过程可以一直跑步,自己锻炼的同时让狗狗也充分运动", + "order": 2 + }, + { + "value": "C", + "content": "让狗狗追逐交通工具,释放精力", + "order": 3 + } + ], + "answerNumber": + [ + "A" + ], + "type": "0", + "order": 30 + }, + { + "id": 31, + "questionStem": "猫咪吐毛球,以下哪个处理方法是错误的", + "options": + [ + { + "value": "A", + "content": "定期梳毛,帮助猫咪整理毛发,减少吞毛的可能", + "order": 1 + }, + { + "value": "B", + "content": "给猫咪加一些猫草化毛辅助膏,帮助猫咪消化毛球", + "order": 2 + }, + { + "value": "C", + "content": "给猫咪大量进食,刺激肚子中剩余的毛球尽快排出", + "order": 3 + } + ], + "answerNumber": + [ + "C" + ], + "type": "0", + "order": 31 + }, + { + "id": 32, + "questionStem": "狗狗是需要外出遛狗的,即使幼犬疫苗没有打完,也应该每天带出们遛一遛", + "options": + [ + { + "value": "A", + "content": "对", + "order": 1 + }, + { + "value": "B", + "content": "错", + "order": 2 + } + ], + "answerNumber": + [ + "A" + ], + "type": "0", + "order": 32 + },, + { + "id": 33, + "questionStem": "狗狗护食应该怎么纠正", + "options": + [ + { + "value": "A", + "content": "如果狗狗只是低吼不上人的话,是正常的,不用理会", + "order": 1 + }, + { + "value": "B", + "content": "狗狗因为护食而伤人应该直接暴力解决。让ta知道害怕", + "order": 2 + }, + { + "value": "C", + "content": "用拿碗喂饭、等待ta不凶继续喂等等方法循序渐进地让ta知道主人不会和ta抢", + "order": 3 + } + ], + "answerNumber": + [ + "C" + ], + "type": "0", + "order": 33 + } +] \ No newline at end of file diff --git a/ruoyi-mall/src/main/resources/developer_guide.txt b/ruoyi-mall/src/main/resources/developer_guide.txt new file mode 100644 index 0000000..9d3f543 --- /dev/null +++ b/ruoyi-mall/src/main/resources/developer_guide.txt @@ -0,0 +1,7 @@ +商家券状态 + +枚举值: +SENDED:可用 +USED:已核销 +EXPIRED:已过期 +DEACTIVATED:已失效 \ No newline at end of file diff --git a/ruoyi-mall/src/main/resources/mapper/.DS_Store b/ruoyi-mall/src/main/resources/mapper/.DS_Store new file mode 100644 index 0000000..6175730 Binary files /dev/null and b/ruoyi-mall/src/main/resources/mapper/.DS_Store differ diff --git a/ruoyi-mall/src/main/resources/mapper/aws/SystemStatisticsMapper.xml b/ruoyi-mall/src/main/resources/mapper/aws/SystemStatisticsMapper.xml new file mode 100644 index 0000000..06618bd --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/aws/SystemStatisticsMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + select id, date, login_member_count, register_member_count, add_cart_member_count, create_order_member_count, deal_member_count, order_count, deal_count, deal_amount, aftersale_count, aftersale_amount from aws_system_statistics + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/marketing/WechatMemberCouponMapper.xml b/ruoyi-mall/src/main/resources/mapper/marketing/WechatMemberCouponMapper.xml new file mode 100644 index 0000000..79920dd --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/marketing/WechatMemberCouponMapper.xml @@ -0,0 +1,307 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select member_id, id, stock_id, stock_name, stock_type, coupon_code, available_start_time, expire_time, receive_time, send_request_no, use_request_no, use_time, coupon_state, openid, phone, create_by, create_time, update_time, update_by, discount_type from wechat_member_coupon + + + + + + + + + + + insert into wechat_member_coupon + + id, + stock_id, + stock_name, + stock_type, + coupon_code, + available_start_time, + expire_time, + receive_time, + send_request_no, + use_request_no, + use_time, + coupon_state, + openid, + phone, + create_by, + create_time, + update_time, + update_by, + + member_id, + + discount_type, + + + #{id}, + #{stockId}, + #{stockName}, + #{stockType}, + #{couponCode}, + #{availableStartTime}, + #{expireTime}, + #{receiveTime}, + #{sendRequestNo}, + #{useRequestNo}, + #{useTime}, + #{couponState}, + #{openid}, + #{phone}, + #{createBy}, + #{createTime}, + #{updateTime}, + #{updateBy}, + + #{memberId}, + + #{discountType}, + + + + + update wechat_member_coupon + + stock_id = #{stockId}, + stock_name = #{stockName}, + stock_type = #{stockType}, + coupon_code = #{couponCode}, + available_start_time = #{availableStartTime}, + expire_time = #{expireTime}, + receive_time = #{receiveTime}, + send_request_no = #{sendRequestNo}, + use_request_no = #{useRequestNo}, + use_time = #{useTime}, + coupon_state = #{couponState}, + openid = #{openid}, + phone = #{phone}, + create_by = #{createBy}, + create_time = #{createTime}, + update_time = #{updateTime}, + update_by = #{updateBy}, + + member_id = #{memberId}, + + discount_type = #{discountType}, + + where id = #{id} + + + + delete from wechat_member_coupon where id = #{id} + + + + update wechat_member_coupon set coupon_state = "EXPIRED", update_time = #{time} where expire_time < #{time} and coupon_state = "SENDED" + + + + delete from wechat_member_coupon where id in + + #{id} + + + + insert into wechat_member_coupon + + + id, + + member_id, stock_id, stock_name, stock_type, coupon_code, available_start_time, expire_time, receive_time, send_request_no, use_request_no, use_time, coupon_state, openid, phone, create_by, create_time, update_time, update_by, discount_type + + values + + + #{id, jdbcType=INTEGER}, + + #{stockId, jdbcType=VARCHAR}, + #{stockName, jdbcType=VARCHAR}, + #{stockType, jdbcType=VARCHAR}, + #{couponCode, jdbcType=VARCHAR}, + #{availableStartTime, jdbcType=DATE}, + #{expireTime, jdbcType=DATE}, + #{receiveTime, jdbcType=DATE}, + #{sendRequestNo, jdbcType=VARCHAR}, + #{useRequestNo, jdbcType=VARCHAR}, + #{useTime, jdbcType=DATE}, + #{couponState, jdbcType=VARCHAR}, + #{openid, jdbcType=VARCHAR}, + #{phone, jdbcType=VARCHAR}, + #{createBy, jdbcType=BIGINT}, + #{createTime, jdbcType=DATE}, + #{updateTime, jdbcType=DATE}, + #{updateBy, jdbcType=BIGINT}, + #{memberId, jdbcType=BIGINT}, + #{discountType, jdbcType=VARCHAR} + + on duplicate key update + + + id = #{id,jdbcType=INTEGER}, + + stock_id = #{stockId, jdbcType=VARCHAR}, + stock_name = #{stockName, jdbcType=VARCHAR}, + stock_type = #{stockType, jdbcType=VARCHAR}, + coupon_code = #{couponCode, jdbcType=VARCHAR}, + available_start_time = #{availableStartTime, jdbcType=DATE}, + expire_time = #{expireTime, jdbcType=DATE}, + receive_time = #{receiveTime, jdbcType=DATE}, + send_request_no = #{sendRequestNo, jdbcType=VARCHAR}, + use_request_no = #{useRequestNo, jdbcType=VARCHAR}, + use_time = #{useTime, jdbcType=DATE}, + coupon_state = #{couponState, jdbcType=VARCHAR}, + openid = #{openid, jdbcType=VARCHAR}, + phone = #{phone, jdbcType=VARCHAR}, + create_by = #{createBy, jdbcType=BIGINT}, + create_time = #{createTime, jdbcType=DATE}, + update_time = #{updateTime, jdbcType=DATE}, + update_by = #{updateBy, jdbcType=BIGINT}, + member_id = #{memberId, jdbcType=BIGINT}, + discount_type = #{discountType, jdbcType=VARCHAR} + + + diff --git a/ruoyi-mall/src/main/resources/mapper/marketing/WechatStockMapper.xml b/ruoyi-mall/src/main/resources/mapper/marketing/WechatStockMapper.xml new file mode 100644 index 0000000..d1f9d41 --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/marketing/WechatStockMapper.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, stock_name, comment, goods_name, stock_type, available_begin_time, available_end_time, available_day_after_receive, discount_amount, transaction_minimum, discount_percent, use_method, out_request_no, max_coupons, max_coupons_per_user, coupon_code_mode, stock_state, stock_id, create_by, create_time, update_by, update_time, send_type, discount_type, event_type from wechat_stock + + + + + + + + insert into wechat_stock + + id, + stock_name, + comment, + goods_name, + stock_type, + available_begin_time, + available_end_time, + available_day_after_receive, + discount_amount, + transaction_minimum, + discount_percent, + use_method, + out_request_no, + max_coupons, + max_coupons_per_user, + coupon_code_mode, + stock_state, + stock_id, + create_by, + create_time, + update_by, + update_time, + + send_type, + discount_type, + event_type, + + + #{id}, + #{stockName}, + #{comment}, + #{goodsName}, + #{stockType}, + #{availableBeginTime}, + #{availableEndTime}, + #{availableDayAfterReceive}, + #{discountAmount}, + #{transactionMinimum}, + #{discountPercent}, + #{useMethod}, + #{outRequestNo}, + #{maxCoupons}, + #{maxCouponsPerUser}, + #{couponCodeMode}, + #{stockState}, + #{stockId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + #{sendType}, + #{discountType}, + #{eventType}, + + + + + update wechat_stock + + stock_name = #{stockName}, + comment = #{comment}, + goods_name = #{goodsName}, + stock_type = #{stockType}, + available_begin_time = #{availableBeginTime}, + available_end_time = #{availableEndTime}, + available_day_after_receive = #{availableDayAfterReceive}, + discount_amount = #{discountAmount}, + transaction_minimum = #{transactionMinimum}, + discount_percent = #{discountPercent}, + use_method = #{useMethod}, + out_request_no = #{outRequestNo}, + max_coupons = #{maxCoupons}, + max_coupons_per_user = #{maxCouponsPerUser}, + coupon_code_mode = #{couponCodeMode}, + stock_state = #{stockState}, + stock_id = #{stockId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + send_type = #{sendType}, + discount_type = #{discountType}, + event_type = #{eventType}, + + where id = #{id} + + + + delete from wechat_stock where id = #{id} + + + + delete from wechat_stock where id in + + #{id} + + + + insert into wechat_stock + + + id, + + stock_name, comment, goods_name, stock_type, available_begin_time, available_end_time, available_day_after_receive, discount_amount, transaction_minimum, discount_percent, use_method, out_request_no, max_coupons, max_coupons_per_user, coupon_code_mode, stock_state, stock_id, create_by, create_time, update_by, update_time, send_type, discount_type, event_type + + values + + + #{id, jdbcType=BIGINT}, + + #{stockName, jdbcType=VARCHAR}, + #{comment, jdbcType=VARCHAR}, + #{goodsName, jdbcType=VARCHAR}, + #{stockType, jdbcType=VARCHAR}, + #{availableBeginTime, jdbcType=DATE}, + #{availableEndTime, jdbcType=DATE}, + #{availableDayAfterReceive, jdbcType=INTEGER}, + #{discountAmount, jdbcType=INTEGER}, + #{transactionMinimum, jdbcType=INTEGER}, + #{discountPercent, jdbcType=INTEGER}, + #{useMethod, jdbcType=VARCHAR}, + #{outRequestNo, jdbcType=VARCHAR}, + #{maxCoupons, jdbcType=INTEGER}, + #{maxCouponsPerUser, jdbcType=INTEGER}, + #{couponCodeMode, jdbcType=VARCHAR}, + #{stockState, jdbcType=VARCHAR}, + #{stockId, jdbcType=VARCHAR}, + #{createBy, jdbcType=BIGINT}, + #{createTime, jdbcType=DATE}, + #{updateBy, jdbcType=BIGINT}, + #{updateTime, jdbcType=DATE}, + #{sendType, jdbcType=VARCHAR}, + #{discountType, jdbcType=VARCHAR}, + #{eventType, jdbcType=VARCHAR} + + on duplicate key update + + + id = #{id,jdbcType=BIGINT}, + + stock_name = #{stockName, jdbcType=VARCHAR}, + comment = #{comment, jdbcType=VARCHAR}, + goods_name = #{goodsName, jdbcType=VARCHAR}, + stock_type = #{stockType, jdbcType=VARCHAR}, + available_begin_time = #{availableBeginTime, jdbcType=DATE}, + available_end_time = #{availableEndTime, jdbcType=DATE}, + available_day_after_receive = #{availableDayAfterReceive, jdbcType=INTEGER}, + discount_amount = #{discountAmount, jdbcType=INTEGER}, + transaction_minimum = #{transactionMinimum, jdbcType=INTEGER}, + discount_percent = #{discountPercent, jdbcType=INTEGER}, + use_method = #{useMethod, jdbcType=VARCHAR}, + out_request_no = #{outRequestNo, jdbcType=VARCHAR}, + max_coupons = #{maxCoupons, jdbcType=INTEGER}, + max_coupons_per_user = #{maxCouponsPerUser, jdbcType=INTEGER}, + coupon_code_mode = #{couponCodeMode, jdbcType=VARCHAR}, + stock_state = #{stockState, jdbcType=VARCHAR}, + stock_id = #{stockId, jdbcType=VARCHAR}, + create_by = #{createBy, jdbcType=BIGINT}, + create_time = #{createTime, jdbcType=DATE}, + update_by = #{updateBy, jdbcType=BIGINT}, + update_time = #{updateTime, jdbcType=DATE}, + discount_type = #{discountType, jdbcType=VARCHAR}, + send_type = #{sendType, jdbcType=VARCHAR}, + event_type = #{eventType, jdbcType=VARCHAR} + + + diff --git a/ruoyi-mall/src/main/resources/mapper/oms/AftersaleItemMapper.xml b/ruoyi-mall/src/main/resources/mapper/oms/AftersaleItemMapper.xml new file mode 100644 index 0000000..4c69df6 --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/oms/AftersaleItemMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + select id, member_id, order_id, order_item_id, return_amount, quantity, create_by, create_time, update_by, update_time from oms_aftersale_item + + + + insert into oms_aftersale_item + (member_id,order_id,aftersale_id,order_item_id,return_amount,quantity,create_by,create_time,update_by,update_time) + values + + + #{item.memberId,jdbcType=BIGINT}, + #{item.orderId,jdbcType=BIGINT}, + #{item.aftersaleId,jdbcType=BIGINT}, + #{item.orderItemId,jdbcType=BIGINT}, + #{item.returnAmount,jdbcType=DECIMAL}, + #{item.quantity,jdbcType=BIGINT}, + #{item.createBy,jdbcType=BIGINT}, + #{item.createTime,jdbcType=DATE}, + #{item.updateBy,jdbcType=BIGINT}, + #{item.updateTime,jdbcType=DATE} + + + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/oms/AftersaleMapper.xml b/ruoyi-mall/src/main/resources/mapper/oms/AftersaleMapper.xml new file mode 100644 index 0000000..28f57f0 --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/oms/AftersaleMapper.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + select id, member_id, order_id, return_amount, type, status, handle_time, quantity, reason, description, proof_pics, handle_note, handle_man, create_by, create_time, update_by, update_time from oms_aftersale + + + + + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/oms/OrderDeliveryHistoryMapper.xml b/ruoyi-mall/src/main/resources/mapper/oms/OrderDeliveryHistoryMapper.xml new file mode 100644 index 0000000..8f1e267 --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/oms/OrderDeliveryHistoryMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + select id, order_id, delivery_company, delivery_sn, create_by, create_time, update_by, update_time from oms_order_delivery_history + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/oms/OrderItemMapper.xml b/ruoyi-mall/src/main/resources/mapper/oms/OrderItemMapper.xml new file mode 100644 index 0000000..e69e5cb --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/oms/OrderItemMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, order_id, product_id, out_product_id, sku_id, out_sku_id, product_snapshot_id, sku_snapshot_id, pic, product_name, sale_price, purchase_price, quantity, product_category_id, sp_data, create_by, create_time, update_by, update_time, order_service_id from oms_order_item + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml b/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml new file mode 100644 index 0000000..13119cc --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml @@ -0,0 +1,316 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, member_id, member_username, total_amount, purchase_price, pay_amount, freight_amount, pay_type, status, aftersale_status, delivery_company, delivery_sn, auto_confirm_day, receiver_name, receiver_phone, receiver_post_code, receiver_province, receiver_city, receiver_district, receiver_province_id, receiver_city_id, receiver_district_id, receiver_detail_address, note, confirm_status, delete_status, payment_time, delivery_time, receive_time, create_by, create_time, update_by, update_time, need_pre_familiarize, wechat_member_coupon_id,servicer_id,order_method from oms_order + + + + update oms_order set status=#{item.status}, update_by=#{item.updateBy}, update_time=#{item.updateTime} where id=#{item.id} + + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/oms/OrderOperateHistoryMapper.xml b/ruoyi-mall/src/main/resources/mapper/oms/OrderOperateHistoryMapper.xml new file mode 100644 index 0000000..e1878c5 --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/oms/OrderOperateHistoryMapper.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + select id, order_id, operate_man, order_status, note, create_by, create_time, update_by, update_time from oms_order_operate_history + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/oms/OrderServiceMapper.xml b/ruoyi-mall/src/main/resources/mapper/oms/OrderServiceMapper.xml new file mode 100644 index 0000000..5445061 --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/oms/OrderServiceMapper.xml @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + select id, order_id, pet, service_frequency, service_date, service_time_first, service_time_second, create_by, create_time, update_by, update_time, del_flag , create_by, create_time, update_by, update_time, feed_count, pet_id, expect_service_time from oms_order_service + + + + + + + + insert into oms_order_service + + id, + order_id, + pet, + service_frequency, + service_date, + service_time_first, + service_time_second, + create_by, + create_time, + update_by, + update_time, + del_flag, + pet_id, + expect_service_time, + feed_count, + + + #{id}, + #{orderId}, + #{pet}, + #{serviceFrequency}, + #{serviceDate}, + #{serviceTimeFirst}, + #{serviceTimeSecond}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{delFlag}, + #{petId}, + #{expectServiceTime}, + #{feedCount}, + + + + + update oms_order_service + + order_id = #{orderId}, + pet = #{pet}, + service_frequency = #{serviceFrequency}, + service_date = #{serviceDate}, + service_time_first = #{serviceTimeFirst}, + service_time_second = #{serviceTimeSecond}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + del_flag = #{delFlag}, + pet_id = #{petId}, + expect_service_time = #{expectServiceTime}, + feed_count = #{feedCount}, + + where id = #{id} + + + + delete from oms_order_service where id = #{id} + + + + delete from oms_order_service where id in + + #{id} + + + + insert into oms_order_service + + + id, + + order_id, pet, service_frequency, service_date, service_time_first, service_time_second, create_by, create_time, update_by, update_time, del_flag,pet_id,expect_service_time,feed_count + + values + + + #{id, jdbcType=BIGINT}, + + #{orderId, jdbcType=BIGINT},#{pet, jdbcType=VARCHAR},#{serviceFrequency, jdbcType=VARCHAR},#{serviceDate, jdbcType=VARCHAR},#{serviceTimeFirst, jdbcType=VARCHAR},#{serviceTimeSecond, jdbcType=DATE},#{createBy, jdbcType=BIGINT},#{createTime, jdbcType=DATE},#{updateBy, jdbcType=BIGINT},#{updateTime, jdbcType=DATE},#{delFlag, jdbcType=TINYINT},#{petId, jdbcType=BIGINT},#{expectServiceTime, jdbcType=VARCHAR},#{feedCount, jdbcType=INTEGER} + + on duplicate key update + + + id = #{id,jdbcType=BIGINT}, + + order_id = #{orderId, jdbcType=BIGINT}, + pet = #{pet, jdbcType=VARCHAR}, + service_frequency = #{serviceFrequency, jdbcType=VARCHAR}, + service_date = #{serviceDate, jdbcType=VARCHAR}, + service_time_first = #{serviceTimeFirst, jdbcType=VARCHAR}, + service_time_second = #{serviceTimeSecond, jdbcType=DATE}, + create_by = #{createBy, jdbcType=BIGINT}, + create_time = #{createTime, jdbcType=DATE}, + update_by = #{updateBy, jdbcType=BIGINT}, + update_time = #{updateTime, jdbcType=DATE}, + del_flag = #{delFlag, jdbcType=TINYINT}, + pet_id = #{petId, jdbcType=BIGINT}, + expect_service_time = #{expectServiceTime, jdbcType=VARCHAR}, + feed_count = #{feedCount, jdbcType=INTEGER}, + + + diff --git a/ruoyi-mall/src/main/resources/mapper/oms/WechatPaymentHistoryMapper.xml b/ruoyi-mall/src/main/resources/mapper/oms/WechatPaymentHistoryMapper.xml new file mode 100644 index 0000000..2e5495b --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/oms/WechatPaymentHistoryMapper.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + select id, payment_id, member_id, openid, real_name, title, order_id, money, op_type, payment_status, remark, attach, response_body, create_by, create_time, update_by, update_time from oms_wechat_payment_history + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/pms/BrandMapper.xml b/ruoyi-mall/src/main/resources/mapper/pms/BrandMapper.xml new file mode 100644 index 0000000..64097cd --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/pms/BrandMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + select id, name, sort, show_status, logo, create_by, create_time, update_by, update_time from pms_brand + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/pms/ProductCategoryMapper.xml b/ruoyi-mall/src/main/resources/mapper/pms/ProductCategoryMapper.xml new file mode 100644 index 0000000..d7ea4d7 --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/pms/ProductCategoryMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + select id, parent_id, name, level, show_status, sort, icon, create_by, create_time, update_by, update_time from pms_product_category + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/pms/ProductMapper.xml b/ruoyi-mall/src/main/resources/mapper/pms/ProductMapper.xml new file mode 100644 index 0000000..c2220c8 --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/pms/ProductMapper.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, brand_id, category_id, out_product_id, name, pic, album_pics, detail_pic, publish_status, sort, price, unit, weight, detail_html, detail_mobile_html, brand_name, product_category_name, create_by, create_time, update_by, update_time from pms_product + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/pms/SkuMapper.xml b/ruoyi-mall/src/main/resources/mapper/pms/SkuMapper.xml new file mode 100644 index 0000000..6a5c973 --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/pms/SkuMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + select id, product_id, out_sku_id, price, pic, sp_data, create_by, create_time, update_by, update_time from pms_sku + + + update + pms_sku + set + stock = stock - #{quantity}, + update_time = #{optDate} + where id = #{skuId} + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/staff/DispatchOrderMapper.xml b/ruoyi-mall/src/main/resources/mapper/staff/DispatchOrderMapper.xml new file mode 100644 index 0000000..3c39557 --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/staff/DispatchOrderMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/staff/StaffAnswerRecordMapper.xml b/ruoyi-mall/src/main/resources/mapper/staff/StaffAnswerRecordMapper.xml new file mode 100644 index 0000000..d5b0f7b --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/staff/StaffAnswerRecordMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/staff/StaffImageMapper.xml b/ruoyi-mall/src/main/resources/mapper/staff/StaffImageMapper.xml new file mode 100644 index 0000000..45dc7eb --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/staff/StaffImageMapper.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + select id, staff_id, url, order_number, del_flag, create_by, create_time, update_by, update_time from staff_image + + + + + + + + insert into staff_image + + staff_id, + url, + order_number, + del_flag, + create_by, + create_time, + update_by, + update_time, + + + #{staffId}, + #{url}, + #{orderNumber}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update staff_image + + staff_id = #{staffId}, + url = #{url}, + order_number = #{orderNumber}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from staff_image where id = #{id} + + + + delete from staff_image where id in + + #{id} + + + \ No newline at end of file diff --git a/ruoyi-mall/src/main/resources/mapper/staff/StaffMapper.xml b/ruoyi-mall/src/main/resources/mapper/staff/StaffMapper.xml new file mode 100644 index 0000000..d9ab29a --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/staff/StaffMapper.xml @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, name, nick_name, last_name, first_name, gender, birth_day, staff_type, service_age, service_level, service_time, address, short_description, description, del_flag, create_by, create_time, update_by, update_time from staff + + + + + + + + + insert into staff + + name, + nick_name, + last_name, + first_name, + gender, + birth_day, + staff_type, + service_age, + service_level, + service_time, + address, + short_description, + description, + del_flag, + create_by, + create_time, + update_by, + update_time, + + + #{name}, + #{nickName}, + #{lastName}, + #{firstName}, + #{gender}, + #{birthDay}, + #{staffType}, + #{serviceAge}, + #{serviceLevel}, + #{serviceTime}, + #{address}, + #{shortDescription}, + #{description}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update staff + + name = #{name}, + nick_name = #{nickName}, + last_name = #{lastName}, + first_name = #{firstName}, + gender = #{gender}, + birth_day = #{birthDay}, + staff_type = #{staffType}, + service_age = #{serviceAge}, + service_level = #{serviceLevel}, + service_time = #{serviceTime}, + address = #{address}, + short_description = #{shortDescription}, + description = #{description}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from staff where id = #{id} + + + + delete from staff where id in + + #{id} + + + \ No newline at end of file diff --git a/ruoyi-mall/src/main/resources/mapper/staff/StaffWachatMapper.xml b/ruoyi-mall/src/main/resources/mapper/staff/StaffWachatMapper.xml new file mode 100644 index 0000000..c41ac32 --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/staff/StaffWachatMapper.xml @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, member_id, unionid, openid, wechat_id, routine_openid, groupid, tagid_list, subscribe, subscribe_time, session_key, access_token, expires_in, refresh_token, expire_time, create_by, create_time, update_by, update_time , create_by, create_time, update_by, update_time from staff_wachat + + + + + + + + insert into staff_wachat + + id, + member_id, + unionid, + openid, + wechat_id, + routine_openid, + groupid, + tagid_list, + subscribe, + subscribe_time, + session_key, + access_token, + expires_in, + refresh_token, + expire_time, + create_by, + create_time, + update_by, + update_time, + create_by, + create_time, + update_by, + update_time, + + + #{id}, + #{memberId}, + #{unionid}, + #{openid}, + #{wechatId}, + #{routineOpenid}, + #{groupid}, + #{tagidList}, + #{subscribe}, + #{subscribeTime}, + #{sessionKey}, + #{accessToken}, + #{expiresIn}, + #{refreshToken}, + #{expireTime}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update staff_wachat + + member_id = #{memberId}, + unionid = #{unionid}, + openid = #{openid}, + wechat_id = #{wechatId}, + routine_openid = #{routineOpenid}, + groupid = #{groupid}, + tagid_list = #{tagidList}, + subscribe = #{subscribe}, + subscribe_time = #{subscribeTime}, + session_key = #{sessionKey}, + access_token = #{accessToken}, + expires_in = #{expiresIn}, + refresh_token = #{refreshToken}, + expire_time = #{expireTime}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from staff_wachat where id = #{id} + + + + delete from staff_wachat where id in + + #{id} + + + + insert into staff_wachat + + + id, + + member_id, unionid, openid, wechat_id, routine_openid, groupid, tagid_list, subscribe, subscribe_time, session_key, access_token, expires_in, refresh_token, expire_time, create_by, create_time, update_by, update_time, + create_by, create_time, update_by, update_time + + values + + + #{id, jdbcType=BIGINT}, + + #{memberId, jdbcType=BIGINT},#{unionid, jdbcType=VARCHAR},#{openid, jdbcType=VARCHAR},#{wechatId, jdbcType=VARCHAR},#{routineOpenid, jdbcType=VARCHAR},#{groupid, jdbcType=SMALLINT},#{tagidList, jdbcType=VARCHAR},#{subscribe, jdbcType=TINYINT},#{subscribeTime, jdbcType=INTEGER},#{sessionKey, jdbcType=VARCHAR},#{accessToken, jdbcType=VARCHAR},#{expiresIn, jdbcType=INTEGER},#{refreshToken, jdbcType=VARCHAR},#{expireTime, jdbcType=DATE},#{createBy, jdbcType=BIGINT},#{createTime, jdbcType=DATE},#{updateBy, jdbcType=BIGINT},#{updateTime, jdbcType=DATE}, + #{createBy}, #{createTime}, #{updateBy}, #{updateTime} + + on duplicate key update + + + id = #{id,jdbcType=BIGINT}, + + member_id = #{memberId, jdbcType=BIGINT}, + unionid = #{unionid, jdbcType=VARCHAR}, + openid = #{openid, jdbcType=VARCHAR}, + wechat_id = #{wechatId, jdbcType=VARCHAR}, + routine_openid = #{routineOpenid, jdbcType=VARCHAR}, + groupid = #{groupid, jdbcType=SMALLINT}, + tagid_list = #{tagidList, jdbcType=VARCHAR}, + subscribe = #{subscribe, jdbcType=TINYINT}, + subscribe_time = #{subscribeTime, jdbcType=INTEGER}, + session_key = #{sessionKey, jdbcType=VARCHAR}, + access_token = #{accessToken, jdbcType=VARCHAR}, + expires_in = #{expiresIn, jdbcType=INTEGER}, + refresh_token = #{refreshToken, jdbcType=VARCHAR}, + expire_time = #{expireTime, jdbcType=DATE}, + create_by = #{createBy, jdbcType=BIGINT}, + create_time = #{createTime, jdbcType=DATE}, + update_by = #{updateBy, jdbcType=BIGINT}, + update_time = #{updateTime, jdbcType=DATE}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + + diff --git a/ruoyi-mall/src/main/resources/mapper/statistics/IndexStatisticsMapper.xml b/ruoyi-mall/src/main/resources/mapper/statistics/IndexStatisticsMapper.xml new file mode 100644 index 0000000..0acf28b --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/statistics/IndexStatisticsMapper.xml @@ -0,0 +1,104 @@ + + + + + SELECT + curdate( ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 1 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 2 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 3 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 4 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 5 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 6 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 7 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 8 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 9 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 10 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 11 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 12 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 13 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 14 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 15 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 16 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 17 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 18 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 19 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 20 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 21 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 22 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 23 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 24 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 25 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 26 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 27 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 28 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 29 DAY ) AS date + + + SELECT + curdate( ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 1 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 2 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 3 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 4 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 5 DAY ) AS date UNION ALL + SELECT date_sub( curdate( ), INTERVAL 6 DAY ) AS date + + + + + + + + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/ums/AddressMapper.xml b/ruoyi-mall/src/main/resources/mapper/ums/AddressMapper.xml new file mode 100644 index 0000000..e19506e --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/ums/AddressMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + select id, code, parent_code, name, level, created_at, updated_at, deleted_at from address + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/ums/DoorLockMapper.xml b/ruoyi-mall/src/main/resources/mapper/ums/DoorLockMapper.xml new file mode 100644 index 0000000..9003cd4 --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/ums/DoorLockMapper.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + select id, member_id, open_id,house_type, lock_type, key_handover, key_storage_location, create_by, create_time, update_by, update_time from ums_member_door_lock + + + + + + + + insert into ums_member_door_lock + + member_id, + open_id, + house_type, + lock_type, + key_handover, + key_storage_location, + create_by, + create_time, + update_by, + update_time, + + + + #{memberId}, + #{openId}, + #{houseType}, + #{lockType}, + #{keyHandover}, + #{keyStorageLocation}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + + update ums_member_door_lock + + house_type = #{houseType}, + lock_type = #{lockType}, + key_handover = #{keyHandover}, + key_storage_location = #{keyStorageLocation}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where member_id = #{memberId} + + + + delete from ums_member_door_lock where id = #{id} + + + + delete from ums_member_door_lock where id in + + #{id} + + + + insert into ums_member_door_lock + + + id, + + member_id, open_id,house_type, lock_type, key_handover, key_storage_location, create_by, create_time, update_by, update_time + + values + + + #{id, jdbcType=BIGINT}, + + #{memberId, jdbcType=BIGINT},#{openId, jdbcType=VARCHAR},#{houseType, jdbcType=VARCHAR},#{lockType, jdbcType=VARCHAR},#{keyHandover, jdbcType=VARCHAR},#{keyStorageLocation, jdbcType=VARCHAR},#{createBy, jdbcType=BIGINT},#{createTime, jdbcType=DATE},#{updateBy, jdbcType=BIGINT},#{updateTime, jdbcType=DATE} + + on duplicate key update + + + id = #{id,jdbcType=BIGINT}, + + member_id = #{memberId, jdbcType=BIGINT}, + open_id = #{openId, jdbcType=VARCHAR}, + house_type = #{houseType, jdbcType=VARCHAR}, + lock_type = #{lockType, jdbcType=VARCHAR}, + key_handover = #{keyHandover, jdbcType=VARCHAR}, + key_storage_location = #{keyStorageLocation, jdbcType=VARCHAR}, + create_by = #{createBy, jdbcType=BIGINT}, + create_time = #{createTime, jdbcType=DATE}, + update_by = #{updateBy, jdbcType=BIGINT}, + update_time = #{updateTime, jdbcType=DATE} + + + + + + + delete from ums_member_door_lock where member_id = #{memberId} + + diff --git a/ruoyi-mall/src/main/resources/mapper/ums/MemberAddressMapper.xml b/ruoyi-mall/src/main/resources/mapper/ums/MemberAddressMapper.xml new file mode 100644 index 0000000..e73084e --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/ums/MemberAddressMapper.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, member_id, name, phone_hidden,phone_encrypted,emergency_phone, default_status, post_code, province, city, district, detail_address, is_default, create_by, create_time, update_by, update_time from ums_member_address + + + + + + + update ums_member_address + + + member_id = #{memberId, jdbcType=BIGINT}, + + + name = #{name, jdbcType=VARCHAR}, + + + phone = #{phone, jdbcType=VARCHAR}, + + + phone = #{emergency_phone, jdbcType=VARCHAR}, + + + + phone = #{open_id, jdbcType=VARCHAR}, + + + + default_status = #{defaultStatus, jdbcType=BIGINT}, + + + post_code = #{postCode, jdbcType=VARCHAR}, + + + province = #{province, jdbcType=VARCHAR}, + + + city = #{city, jdbcType=VARCHAR}, + + + district = #{district, jdbcType=VARCHAR}, + + + detail_address = #{detailAddress, jdbcType=VARCHAR}, + + + is_default = #{isDefault, jdbcType=BIGINT}, + + + where id = #{id, jdbcType=BIGINT} + + + update ums_member_address + set is_default = #{param1} + where member_id = #{param2} + + + + update ums_member_address + set is_default = 0 + + where member_id = #{memberId} + + diff --git a/ruoyi-mall/src/main/resources/mapper/ums/MemberCartMapper.xml b/ruoyi-mall/src/main/resources/mapper/ums/MemberCartMapper.xml new file mode 100644 index 0000000..0e3bbfb --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/ums/MemberCartMapper.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + select id, status, member_id, product_id, pic, sku_id, product_name, sp_data, quantity, create_by, create_time, update_by, update_time from ums_member_cart + + + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/ums/MemberLogininforMapper.xml b/ruoyi-mall/src/main/resources/mapper/ums/MemberLogininforMapper.xml new file mode 100644 index 0000000..b16e51e --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/ums/MemberLogininforMapper.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + select id, phone, member_id, ipaddr, login_location, browser, os, login_time from ums_member_logininfor + + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/ums/MemberMapper.xml b/ruoyi-mall/src/main/resources/mapper/ums/MemberMapper.xml new file mode 100644 index 0000000..3c995cc --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/ums/MemberMapper.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, nickname, password, phone, mark, status, avatar, gender, city, province, country, remark, birthday, spread_uid, spread_time, level, integral,central_point, create_by, create_time, update_by, update_time from ums_member + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/ums/MemberWechatMapper.xml b/ruoyi-mall/src/main/resources/mapper/ums/MemberWechatMapper.xml new file mode 100644 index 0000000..20e9b39 --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/ums/MemberWechatMapper.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, member_id, unionid, openid, routine_openid, groupid, tagid_list, subscribe, subscribe_time, session_key, access_token, expires_in, refresh_token, expire_time, create_by, create_time, update_by, update_time from ums_member_wechat + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/ums/PetCareMapper.xml b/ruoyi-mall/src/main/resources/mapper/ums/PetCareMapper.xml new file mode 100644 index 0000000..3a3288e --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/ums/PetCareMapper.xml @@ -0,0 +1,533 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, pet_id, include_dry_food, dry_food_location, dry_food_feed_weight, dry_food_feed_frequency_days, dry_food_feed_frequency_times, dry_food_remarks, include_wet_food, wet_food_location, wet_food_feed_weight, wet_food_feed_frequency_days, wet_food_feed_frequency_times, wet_food_remarks, include_homemade_food, homemade_food_location, homemade_food_instructions, include_raw_meat, raw_meat_location, raw_meat_feeding_instructions, include_health_supplements, health_supplements_location, health_supplements_feeding_instructions, include_snacks, snacks_location, snacks_feeding_method, other_remark, feeding_tray_automatic_feeder_location, feeding_tray_automatic_feeder_remarks, water_bowl_location, water_bowl_remarks, cleaning_requirements, litter_box_location, litter_box_adding_weight, litter_box_change_frequency_days, litter_box_change_frequency_times, litter_box_remarks, pee_pad_location, change_pee_pad, pee_pad_remarks, additional_service, playtime_service, playtime_tools_location, playtime_requirements, fur_cleaning_service, fur_cleaning_tools_location, fur_cleaning_requirements, grooming_service, grooming_tools_location, grooming_requirements, deep_cleaning_service, administer_medication, deep_cleaning_remarks,deep_cleaning_tools_location,administer_medication_location,administer_medication_remarks, additional_services_placement, additional_services_placement_remark, additional_services_remarks,walk_dog,walk_dog_tools_location,walk_dog_rainy_day,walk_dog_duration,dog_behavior,favorite_region,favorite_route,change_litter_box,pee_pad_frequency_days,pee_pad_frequency_times,is_walk_dog_duration,is_dog_behavior,is_favorite_region,is_favorite_route,dog_rain_gear_location,walk_dog_rain_remark from ums_pet_care + + + + + + + + + + insert into ums_pet_care + + id, + pet_id, + include_dry_food, + dry_food_location, + dry_food_feed_weight, + dry_food_feed_frequency_days, + dry_food_feed_frequency_times, + dry_food_remarks, + include_wet_food, + wet_food_location, + wet_food_feed_weight, + wet_food_feed_frequency_days, + wet_food_feed_frequency_times, + wet_food_remarks, + include_homemade_food, + homemade_food_location, + homemade_food_instructions, + include_raw_meat, + raw_meat_location, + raw_meat_feeding_instructions, + include_health_supplements, + health_supplements_location, + health_supplements_feeding_instructions, + include_snacks, + snacks_location, + snacks_feeding_method, + other_remark, + feeding_tray_automatic_feeder_location, + feeding_tray_automatic_feeder_remarks, + water_bowl_location, + water_bowl_remarks, + cleaning_requirements, + litter_box_location, + litter_box_change_frequency_days, + litter_box_change_frequency_times, + litter_box_remarks, + pee_pad_location, + change_pee_pad, + pee_pad_remarks, + additional_service, + playtime_service, + playtime_tools_location, + playtime_requirements, + fur_cleaning_service, + fur_cleaning_tools_location, + fur_cleaning_requirements, + grooming_service, + grooming_tools_location, + grooming_requirements, + deep_cleaning_service, + administer_medication, + deep_cleaning_tools_location, + administer_medication_location, + administer_medication_remarks, + deep_cleaning_remarks, + additional_services_placement, + additional_services_placement_remark, + additional_services_remarks, + walk_dog, + walk_dog_tools_location, + walk_dog_rainy_day, + walk_dog_duration, + dog_behavior, + favorite_region, + favorite_route, + + change_litter_box , + pee_pad_frequency_days, + pee_pad_frequency_times, + is_walk_dog_duration, + is_dog_behavior , + is_favorite_region , + is_favorite_route , + dog_rain_gear_location, + walk_dog_rain_remark , + + + #{id}, + #{petId}, + #{includeDryFood}, + #{dryFoodLocation}, + #{dryFoodFeedWeight}, + #{dryFoodFeedFrequencyDays}, + #{dryFoodFeedFrequencyTimes}, + #{dryFoodRemarks}, + #{includeWetFood}, + #{wetFoodLocation}, + #{wetFoodFeedWeight}, + #{wetFoodFeedFrequencyDays}, + #{wetFoodFeedFrequencyTimes}, + #{wetFoodRemarks}, + #{includeHomemadeFood}, + #{homemadeFoodLocation}, + #{homemadeFoodInstructions}, + #{includeRawMeat}, + #{rawMeatLocation}, + #{rawMeatFeedingInstructions}, + #{includeHealthSupplements}, + #{healthSupplementsLocation}, + #{healthSupplementsFeedingInstructions}, + #{includeSnacks}, + #{snacksLocation}, + #{snacksFeedingMethod}, + #{otherRemark}, + #{feedingTrayAutomaticFeederLocation}, + #{feedingTrayAutomaticFeederRemarks}, + #{waterBowlLocation}, + #{waterBowlRemarks}, + #{cleaningRequirements}, + #{litterBoxLocation}, + #{litterBoxChangeFrequencyDays}, + #{litterBoxChangeFrequencyTimes}, + #{litterBoxRemarks}, + #{peePadLocation}, + #{changePeePad}, + #{peePadRemarks}, + #{additionalService}, + #{playtimeService}, + #{playtimeToolsLocation}, + #{playtimeRequirements}, + #{furCleaningService}, + #{furCleaningToolsLocation}, + #{furCleaningRequirements}, + #{groomingService}, + #{groomingToolsLocation}, + #{groomingRequirements}, + #{deepCleaningService}, + #{administerMedication}, + #{deepCleaningToolsLocation}, + #{administerMedicationLocation}, + #{administerMedicationRemarks}, + #{deepCleaningRemarks}, + #{additionalServicesPlacement}, + #{additionalServicesPlacementRemark}, + #{additionalServicesRemarks}, + #{walkDog}, + #{walkDogToolsLocation}, + #{walkDogRainyDay}, + #{walkDogDuration}, + #{dogBehavior}, + #{favoriteRegion}, + #{favoriteRoute}, + + #{changeLitterBox} , + #{peePadFrequencyDays}, + #{peePadFrequencyTimes}, + #{isWalkDogDuration}, + #{isDogBehavior} , + #{isFavoriteRegion} , + #{isFavoriteRoute} , + #{dogRainGearLocation}, + #{walkDogRainRemark} , + + + + + update ums_pet_care + + pet_id = #{petId}, + include_dry_food = #{includeDryFood}, + dry_food_location = #{dryFoodLocation}, + dry_food_feed_weight = #{dryFoodFeedWeight}, + dry_food_feed_frequency_days = #{dryFoodFeedFrequencyDays}, + dry_food_feed_frequency_times = #{dryFoodFeedFrequencyTimes}, + dry_food_remarks = #{dryFoodRemarks}, + include_wet_food = #{includeWetFood}, + wet_food_location = #{wetFoodLocation}, + wet_food_feed_weight = #{wetFoodFeedWeight}, + wet_food_feed_frequency_days = #{wetFoodFeedFrequencyDays}, + wet_food_feed_frequency_times = #{wetFoodFeedFrequencyTimes}, + wet_food_remarks = #{wetFoodRemarks}, + include_homemade_food = #{includeHomemadeFood}, + homemade_food_location = #{homemadeFoodLocation}, + homemade_food_instructions = #{homemadeFoodInstructions}, + include_raw_meat = #{includeRawMeat}, + raw_meat_location = #{rawMeatLocation}, + raw_meat_feeding_instructions = #{rawMeatFeedingInstructions}, + include_health_supplements = #{includeHealthSupplements}, + health_supplements_location = #{healthSupplementsLocation}, + health_supplements_feeding_instructions = #{healthSupplementsFeedingInstructions}, + include_snacks = #{includeSnacks}, + snacks_location = #{snacksLocation}, + snacks_feeding_method = #{snacksFeedingMethod}, + other_remark = #{otherRemark}, + feeding_tray_automatic_feeder_location = #{feedingTrayAutomaticFeederLocation}, + feeding_tray_automatic_feeder_remarks = #{feedingTrayAutomaticFeederRemarks}, + water_bowl_location = #{waterBowlLocation}, + water_bowl_remarks = #{waterBowlRemarks}, + cleaning_requirements = #{cleaningRequirements}, + litter_box_location = #{litterBoxLocation}, + litter_box_change_frequency_days = #{litterBoxChangeFrequencyDays}, + litter_box_change_frequency_times = #{litterBoxChangeFrequencyTimes}, + litter_box_remarks = #{litterBoxRemarks}, + pee_pad_location = #{peePadLocation}, + change_pee_pad = #{changePeePad}, + pee_pad_remarks = #{peePadRemarks}, + additional_service = #{additionalService}, + playtime_service = #{playtimeService}, + playtime_tools_location = #{playtimeToolsLocation}, + playtime_requirements = #{playtimeRequirements}, + fur_cleaning_service = #{furCleaningService}, + fur_cleaning_tools_location = #{furCleaningToolsLocation}, + fur_cleaning_requirements = #{furCleaningRequirements}, + grooming_service = #{groomingService}, + grooming_tools_location = #{groomingToolsLocation}, + grooming_requirements = #{groomingRequirements}, + deep_cleaning_service = #{deepCleaningService}, + deep_cleaning_tools_location = #{deepCleaningToolsLocation}, + administer_medication_location = #{administerMedicationLocation}, + administer_medication_remarks = #{administerMedicationRemarks}, + administer_medication = #{administerMedication}, + deep_cleaning_remarks = #{deepCleaningRemarks}, + additional_services_placement = #{additionalServicesPlacement}, + additional_services_placement_remark = #{additionalServicesPlacementRemark}, + additional_services_remarks = #{additionalServicesRemarks}, + walk_dog = #{walkDog}, + walk_dog_tools_location = #{walkDogToolsLocation}, + walk_dog_rainy_day = #{walkDogRainyDay}, + walk_dog_duration = #{walkDogDuration}, + dog_behavior = #{dogBehavior}, + favorite_region = #{favoriteRegion}, + favorite_route = #{favoriteRoute}, + + change_litter_box = #{changeLitterBox} , + pee_pad_frequency_days = #{peePadFrequencyDays}, + pee_pad_frequency_times = #{peePadFrequencyTimes}, + is_walk_dog_duration = #{isWalkDogDuration}, + is_dog_behavior = #{isDogBehavior} , + is_favorite_region = #{isFavoriteRegion} , + is_favorite_route = #{isFavoriteRoute} , + dog_rain_gear_location = #{dogRainGearLocation}, + walk_dog_rain_remark = #{walkDogRainRemark} , + + where id = #{id} + + + + delete from ums_pet_care where id = #{id} + + + + delete from ums_pet_care where id in + + #{id} + + + + insert into ums_pet_care + + + id, + + pet_id, include_dry_food, dry_food_location, dry_food_feed_weight, dry_food_feed_frequency_days, dry_food_feed_frequency_times, dry_food_remarks, include_wet_food, wet_food_location, wet_food_feed_weight, wet_food_feed_frequency_days, wet_food_feed_frequency_times, wet_food_remarks, include_homemade_food, homemade_food_location, homemade_food_instructions, include_raw_meat, raw_meat_location, raw_meat_feeding_instructions, include_health_supplements, health_supplements_location, health_supplements_feeding_instructions, include_snacks, snacks_location, snacks_feeding_method, other_remark, feeding_tray_automatic_feeder_location, feeding_tray_automatic_feeder_remarks, water_bowl_location, water_bowl_remarks, cleaning_requirements, litter_box_location, litter_box_adding_weight, litter_box_change_frequency_days, litter_box_change_frequency_times, litter_box_remarks, pee_pad_location, change_pee_pad, pee_pad_remarks, additional_service, playtime_service, playtime_tools_location, playtime_requirements, fur_cleaning_service, fur_cleaning_tools_location, fur_cleaning_requirements, grooming_service, grooming_tools_location, grooming_requirements, deep_cleaning_service, administer_medication,deep_cleaning_tools_location,administer_medication_location,administer_medication_remarks, deep_cleaning_remarks, additional_services_placement, additional_services_placement_remark, additional_services_remarks,walk_dog,walk_dog_tools_location,walk_dog_rainy_day,walk_dog_duration,dog_behavior,favorite_region,favorite_route,change_litter_box,pee_pad_frequency_days,pee_pad_frequency_times,is_walk_dog_duration,is_dog_behavior,is_favorite_region,is_favorite_route,dog_rain_gear_location,walk_dog_rain_remark + + + values + + + #{id, jdbcType=INTEGER}, + + #{petId, jdbcType=INTEGER},#{includeDryFood, jdbcType=TINYINT},#{dryFoodLocation, jdbcType=VARCHAR},#{dryFoodFeedWeight, jdbcType=VARCHAR},#{dryFoodFeedFrequencyDays, jdbcType=INTEGER},#{dryFoodFeedFrequencyTimes, jdbcType=INTEGER},#{dryFoodRemarks, jdbcType=VARCHAR},#{includeWetFood, jdbcType=TINYINT},#{wetFoodLocation, jdbcType=VARCHAR},#{wetFoodFeedWeight, jdbcType=DECIMAL},#{wetFoodFeedFrequencyDays, jdbcType=INTEGER},#{wetFoodFeedFrequencyTimes, jdbcType=INTEGER},#{wetFoodRemarks, jdbcType=VARCHAR},#{includeHomemadeFood, jdbcType=TINYINT},#{homemadeFoodLocation, jdbcType=VARCHAR},#{homemadeFoodInstructions, jdbcType=VARCHAR},#{includeRawMeat, jdbcType=TINYINT},#{rawMeatLocation, jdbcType=VARCHAR},#{rawMeatFeedingInstructions, jdbcType=VARCHAR},#{includeHealthSupplements, jdbcType=TINYINT},#{healthSupplementsLocation, jdbcType=VARCHAR},#{healthSupplementsFeedingInstructions, jdbcType=VARCHAR},#{includeSnacks, jdbcType=TINYINT},#{snacksLocation, jdbcType=VARCHAR},#{snacksFeedingMethod, jdbcType=VARCHAR},#{otherRemark, jdbcType=VARCHAR},#{feedingTrayAutomaticFeederLocation, jdbcType=VARCHAR},#{feedingTrayAutomaticFeederRemarks, jdbcType=VARCHAR},#{waterBowlLocation, jdbcType=VARCHAR},#{waterBowlRemarks, jdbcType=VARCHAR},#{cleaningRequirements, jdbcType=TINYINT},#{litterBoxLocation, jdbcType=VARCHAR},#{litterBoxChangeFrequencyDays, jdbcType=INTEGER},#{litterBoxChangeFrequencyTimes, jdbcType=INTEGER},#{litterBoxRemarks, jdbcType=VARCHAR},#{peePadLocation, jdbcType=VARCHAR},#{changePeePad, jdbcType=TINYINT},#{peePadRemarks, jdbcType=VARCHAR},#{additionalService, jdbcType=TINYINT},#{playtimeService, jdbcType=TINYINT},#{playtimeToolsLocation, jdbcType=VARCHAR},#{playtimeRequirements, jdbcType=VARCHAR},#{furCleaningService, jdbcType=TINYINT},#{furCleaningToolsLocation, jdbcType=VARCHAR},#{furCleaningRequirements, jdbcType=VARCHAR},#{groomingService, jdbcType=TINYINT},#{groomingToolsLocation, jdbcType=VARCHAR},#{groomingRequirements, jdbcType=VARCHAR},#{deepCleaningService, jdbcType=TINYINT},#{administerMedication, jdbcType=TINYINT},#{deepCleaningToolsLocation, jdbcType=VARCHAR},#{administerMedicationLocation, jdbcType=VARCHAR},#{administerMedicationRemarks, jdbcType=VARCHAR}, #{deepCleaningRemarks, jdbcType=VARCHAR},#{additionalServicesPlacement, jdbcType=VARCHAR},#{additionalServicesPlacementRemark, jdbcType=VARCHAR},#{additionalServicesRemarks, jdbcType=VARCHAR},#{walkDog, jdbcType=VARCHAR},#{walkDogToolsLocation, jdbcType=VARCHAR},#{walkDogRainyDay, jdbcType=VARCHAR},#{walkDogDuration, jdbcType=VARCHAR},#{dogBehavior, jdbcType=VARCHAR},#{favoriteRegion, jdbcType=VARCHAR},#{favoriteRoute, jdbcType=VARCHAR},#{changeLitterBox, jdbcType=TINYINT},#{peePadFrequencyDays, jdbcType=INTEGER},#{peePadFrequencyTimes, jdbcType=INTEGER},#{isWalkDogDuration, jdbcType=TINYINT},#{isDogBehavior, jdbcType=TINYINT},#{isFavoriteRegion, jdbcType=TINYINT},#{isFavoriteRoute, jdbcType=TINYINT},#{dogRainGearLocation, jdbcType=VARCHAR},#{walkDogRainRemark, jdbcType=VARCHAR}, + + + on duplicate key update + + + id = #{id,jdbcType=INTEGER}, + + pet_id = #{petId, jdbcType=INTEGER}, + include_dry_food = #{includeDryFood, jdbcType=TINYINT}, + dry_food_location = #{dryFoodLocation, jdbcType=VARCHAR}, + dry_food_feed_weight = #{dryFoodFeedWeight, jdbcType=VARCHAR}, + dry_food_feed_frequency_days = #{dryFoodFeedFrequencyDays, jdbcType=INTEGER}, + dry_food_feed_frequency_times = #{dryFoodFeedFrequencyTimes, jdbcType=INTEGER}, + dry_food_remarks = #{dryFoodRemarks, jdbcType=VARCHAR}, + include_wet_food = #{includeWetFood, jdbcType=TINYINT}, + wet_food_location = #{wetFoodLocation, jdbcType=VARCHAR}, + wet_food_feed_weight = #{wetFoodFeedWeight, jdbcType=DECIMAL}, + wet_food_feed_frequency_days = #{wetFoodFeedFrequencyDays, jdbcType=INTEGER}, + wet_food_feed_frequency_times = #{wetFoodFeedFrequencyTimes, jdbcType=INTEGER}, + wet_food_remarks = #{wetFoodRemarks, jdbcType=VARCHAR}, + include_homemade_food = #{includeHomemadeFood, jdbcType=TINYINT}, + homemade_food_location = #{homemadeFoodLocation, jdbcType=VARCHAR}, + homemade_food_instructions = #{homemadeFoodInstructions, jdbcType=VARCHAR}, + include_raw_meat = #{includeRawMeat, jdbcType=TINYINT}, + raw_meat_location = #{rawMeatLocation, jdbcType=VARCHAR}, + raw_meat_feeding_instructions = #{rawMeatFeedingInstructions, jdbcType=VARCHAR}, + include_health_supplements = #{includeHealthSupplements, jdbcType=TINYINT}, + health_supplements_location = #{healthSupplementsLocation, jdbcType=VARCHAR}, + health_supplements_feeding_instructions = #{healthSupplementsFeedingInstructions, jdbcType=VARCHAR}, + include_snacks = #{includeSnacks, jdbcType=TINYINT}, + snacks_location = #{snacksLocation, jdbcType=VARCHAR}, + snacks_feeding_method = #{snacksFeedingMethod, jdbcType=VARCHAR}, + other_remark = #{otherRemark, jdbcType=VARCHAR}, + feeding_tray_automatic_feeder_location = #{feedingTrayAutomaticFeederLocation, jdbcType=VARCHAR}, + feeding_tray_automatic_feeder_remarks = #{feedingTrayAutomaticFeederRemarks, jdbcType=VARCHAR}, + water_bowl_location = #{waterBowlLocation, jdbcType=VARCHAR}, + water_bowl_remarks = #{waterBowlRemarks, jdbcType=VARCHAR}, + cleaning_requirements = #{cleaningRequirements, jdbcType=TINYINT}, + litter_box_location = #{litterBoxLocation, jdbcType=VARCHAR}, + litter_box_change_frequency_days = #{litterBoxChangeFrequencyDays, jdbcType=INTEGER}, + litter_box_change_frequency_times = #{litterBoxChangeFrequencyTimes, jdbcType=INTEGER}, + litter_box_remarks = #{litterBoxRemarks, jdbcType=VARCHAR}, + pee_pad_location = #{peePadLocation, jdbcType=VARCHAR}, + change_pee_pad = #{changePeePad, jdbcType=TINYINT}, + pee_pad_remarks = #{peePadRemarks, jdbcType=VARCHAR}, + additional_service = #{additionalService, jdbcType=TINYINT}, + playtime_service = #{playtimeService, jdbcType=TINYINT}, + playtime_tools_location = #{playtimeToolsLocation, jdbcType=VARCHAR}, + playtime_requirements = #{playtimeRequirements, jdbcType=VARCHAR}, + fur_cleaning_service = #{furCleaningService, jdbcType=TINYINT}, + fur_cleaning_tools_location = #{furCleaningToolsLocation, jdbcType=VARCHAR}, + fur_cleaning_requirements = #{furCleaningRequirements, jdbcType=VARCHAR}, + grooming_service = #{groomingService, jdbcType=TINYINT}, + grooming_tools_location = #{groomingToolsLocation, jdbcType=VARCHAR}, + grooming_requirements = #{groomingRequirements, jdbcType=VARCHAR}, + deep_cleaning_service = #{deepCleaningService, jdbcType=TINYINT}, + administer_medication = #{administerMedication, jdbcType=TINYINT}, + deep_cleaning_tools_location = #{deepCleaningToolsLocation, jdbcType=VARCHAR}, + administer_medication_location = #{administerMedicationLocation, jdbcType=VARCHAR}, + administer_medication_remarks = #{administerMedicationRemarks, jdbcType=VARCHAR}, + deep_cleaning_remarks = #{deepCleaningRemarks, jdbcType=VARCHAR}, + additional_services_placement = #{additionalServicesPlacement, jdbcType=VARCHAR}, + additional_services_placement_remark = #{additionalServicesPlacementRemark, jdbcType=VARCHAR}, + additional_services_remarks = #{additionalServicesRemarks, jdbcType=VARCHAR}, + walk_dog = #{walkDog, jdbcType=VARCHAR}, + walk_dog_tools_location = #{walkDogToolsLocation, jdbcType=VARCHAR}, + walk_dog_rainy_day = #{walkDogRainyDay, jdbcType=VARCHAR}, + walk_dog_duration = #{walkDogDuration, jdbcType=VARCHAR}, + dog_behavior = #{dogBehavior, jdbcType=VARCHAR}, + favorite_region = #{favoriteRegion, jdbcType=VARCHAR}, + favorite_route = #{favoriteRoute, jdbcType=VARCHAR}, + + change_litter_box = #{changeLitterBox, jdbcType=TINYINT}, + pee_pad_frequency_days = #{peePadFrequencyDays, jdbcType=INTEGER}, + pee_pad_frequency_times = #{peePadFrequencyTimes, jdbcType=INTEGER}, + is_walk_dog_duration = #{isWalkDogDuration, jdbcType=TINYINT}, + is_dog_behavior = #{isDogBehavior, jdbcType=TINYINT}, + is_favorite_region = #{isFavoriteRegion, jdbcType=TINYINT}, + is_favorite_route = #{isFavoriteRoute, jdbcType=TINYINT}, + dog_rain_gear_location = #{dogRainGearLocation, jdbcType=VARCHAR}, + walk_dog_rain_remark = #{walkDogRainRemark, jdbcType=VARCHAR}, + + + + + + + + + diff --git a/ruoyi-mall/src/main/resources/mapper/ums/PetMapper.xml b/ruoyi-mall/src/main/resources/mapper/ums/PetMapper.xml new file mode 100644 index 0000000..84001db --- /dev/null +++ b/ruoyi-mall/src/main/resources/mapper/ums/PetMapper.xml @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, pet_type,name, gender, birth_date, remark, photo, breed, body_type, personality, vaccine_status, deworming_status, dogLicense_status, health_status, owner,del_flag, create_by, create_time, update_by, update_time , create_by, create_time, update_by, update_time from ums_pet + + + + + + insert into ums_pet + + id, + pet_type, + name, + gender, + birth_date, + remark, + photo, + breed, + body_type, + personality, + vaccine_status, + sterilization, + deworming_status, + dogLicense_status, + health_status, + owner, + del_flag, + create_by, + create_time, + update_by, + update_time, + + + #{id}, + #{petType}, + #{name}, + #{gender}, + #{birthDate}, + #{remark}, + #{photo}, + #{breed}, + #{bodyType}, + #{personality}, + #{vaccineStatus}, + #{sterilization}, + #{dewormingStatus}, + #{doglicenseStatus}, + #{healthStatus}, + #{owner}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update ums_pet + + pet_type = #{petType}, + name = #{name}, + gender = #{gender}, + birth_date = #{birthDate}, + remark = #{remark}, + photo = #{photo}, + breed = #{breed}, + body_type = #{bodyType}, + personality = #{personality}, + vaccine_status = #{vaccineStatus}, + sterilization = #{sterilization}, + deworming_status = #{dewormingStatus}, + dogLicense_status = #{doglicenseStatus}, + health_status = #{healthStatus}, + owner = #{owner}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from ums_pet where id = #{id} + + + + update ums_pet set del_flag = 2 where id in + + #{id} + + + + insert into ums_pet + + + id, + + pet_type,name, gender, birth_date, remark, photo, breed, body_type, personality, vaccine_status,sterilization deworming_status, dogLicense_status, health_status, owner, del_flag,create_by, create_time, update_by, update_time, + create_by, create_time, update_by, update_time + + values + + + #{id, jdbcType=INTEGER}, + + #{petType, jdbcType=VARCHAR}, #{name, jdbcType=VARCHAR},#{gender, jdbcType=VARCHAR},#{birthDate, jdbcType=VARCHAR},#{remark, jdbcType=VARCHAR},#{photo, jdbcType=VARCHAR},#{breed, jdbcType=VARCHAR},#{bodyType, jdbcType=VARCHAR},#{personality, jdbcType=VARCHAR},#{vaccineStatus, jdbcType=VARCHAR},#{sterilization, jdbcType=VARCHAR},#{dewormingStatus, jdbcType=VARCHAR},#{doglicenseStatus, jdbcType=VARCHAR},#{healthStatus, jdbcType=VARCHAR},#{owner, jdbcType=VARCHAR},#{delFlag, jdbcType=VARCHAR},#{createBy, jdbcType=BIGINT},#{createTime, jdbcType=DATE},#{updateBy, jdbcType=BIGINT},#{updateTime, jdbcType=DATE} + + + on duplicate key update + + + id = #{id,jdbcType=INTEGER}, + + pet_type = #{petType, jdbcType=VARCHAR}, + name = #{name, jdbcType=VARCHAR}, + gender = #{gender, jdbcType=VARCHAR}, + birth_date = #{birthDate, jdbcType=VARCHAR}, + remark = #{remark, jdbcType=VARCHAR}, + photo = #{photo, jdbcType=VARCHAR}, + breed = #{breed, jdbcType=VARCHAR}, + body_type = #{bodyType, jdbcType=VARCHAR}, + personality = #{personality, jdbcType=VARCHAR}, + vaccine_status = #{vaccineStatus, jdbcType=VARCHAR}, + sterilization = #{sterilization, jdbcType=VARCHAR}, + deworming_status = #{dewormingStatus, jdbcType=VARCHAR}, + dogLicense_status = #{doglicenseStatus, jdbcType=VARCHAR}, + health_status = #{healthStatus, jdbcType=VARCHAR}, + owner = #{owner, jdbcType=VARCHAR}, + del_flag = #{delFlag, jdbcType=VARCHAR}, + create_by = #{createBy, jdbcType=BIGINT}, + create_time = #{createTime, jdbcType=DATE}, + update_by = #{updateBy, jdbcType=BIGINT}, + update_time = #{updateTime, jdbcType=DATE} + + + diff --git a/ruoyi-mall/src/main/resources/trainQuestions.txt b/ruoyi-mall/src/main/resources/trainQuestions.txt new file mode 100644 index 0000000..71dfbef --- /dev/null +++ b/ruoyi-mall/src/main/resources/trainQuestions.txt @@ -0,0 +1,98 @@ +[ + { + "id":"1", + "question": "如果您收到一笔上门喂猫的订单,备注猫咪怕生,请问您会如何进行服务?请详细描述您的全部服务流程", + "type":0, + "order": 1 + }, + { + "id":"2", + "question": "如果您收到一笔上门喂猫的订单,备注猫咪活泼,请问您会如何进行服务?请详细描述和上一题服务过程的不同之处。", + "type":0, + "order": 2 + }, + { + "id":"3", + "question": "如果您收到一笔上门遛狗的订单,备注狗狗怕生,请问您会如何进行服务?请详细描述全部服务流程", + "type":0, + "order": 3 + }, + { + "id":"4", + "question": "如果您收到一笔上门遛狗的订单,备注狗狗性格活泼,请问您会如何进行服务?请详细描述和上一题服务过程的不同之处。", + "type":0, + "order": 4 + }, + { + "id":"5", + "question": "请问您进入陌生人家中,为了最大程度避免意外发生,关于进家门、出家门等动作您会如何处理?", + "type":0, + "order": 5 + }, + { + "id":"6", + "question": "请问您在陌生人家里时,为了最大程度避免意外发生,您在【进门后】,【服务中】,【结束时】,分别会如何处理家中窗户?可以考虑以下情形作答:1 - 主人要求不需要通风;2 - 主人未要求,家中未封窗;3 - 主人未要求,家中封窗;", + "type":0, + "order": 6 + }, + { + "id":"7", + "question": "请问您会做哪些措施避免以下情况发生:1 - 自身携带病毒;2 - 服务过程发生隐私、财产类纠纷;3 - 由于自身疏忽导致宠物丢失(请注意是避免发生,而不是发生后如何处理)", + "type":0, + "order": 7 + }, + { + "id":"8", + "question": "如果不小心发生了类似于上一题描述中的事件,请问您会如何处理?", + "type":0, + "order": 8 + }, + { + "id":"9", + "question": "平台很排斥伴宠师接单后,因为个人原因要求取消的跑单行为。我们认为:伴宠师在接单前有充分的自由选择是否接单的权利,确认接单后就应该按时服务;可以理解有可能有个人原因无法上门,但那就需要负起责任承担违约影响;- 请问您是否接受?- 您个人认为您接单后违约取消的可能性有多大?- 如果实在需要违约,请问您会如何处理?", + "type":0, + "order": 9 + }, + { + "id":"10", + "question": "您认证伴宠师的主要目的是什么?请描述您对这项工作的认知以及期望。", + "type":0, + "order": 10 + }, + { + "id":"11", + "question": "请简单描述您养了多少只宠物,分别养了多久,以及您养宠以来的心路历程", + "type":0, + "order": 11 + }, + { + "id":"12", + "question": "请问您一天会花费多少时间陪伴您的毛孩子?一个月会花费多少资金成本给您的毛孩子?", + "type":0, + "order": 12 + }, + { + "id":"13", + "question": "是否知悉伴宠师上门服务过程中,需要全程录像,且愿意遵守", + "type":0, + "order": 13 + }, + { + "id":"14", + "question": "请上传您的微信支付分截图", + "type":1, + "order": 14 + }, + { + "id":"15", + "question": "请上传您的支付宝芝麻信用分截图", + "type":1, + "order": 15 + }, + { + "id":"1", + "question": "请上传您和您家爱宠的合照", + "type":1, + "order": 1 + } +] \ No newline at end of file diff --git a/ruoyi-mall/src/test/java/com/example/ruoyimall/RuoyiMallApplicationTests.java b/ruoyi-mall/src/test/java/com/example/ruoyimall/RuoyiMallApplicationTests.java new file mode 100644 index 0000000..5c1e9e3 --- /dev/null +++ b/ruoyi-mall/src/test/java/com/example/ruoyimall/RuoyiMallApplicationTests.java @@ -0,0 +1,13 @@ +package com.example.ruoyimall; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class RuoyiMallApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/ruoyi-quartz/.DS_Store b/ruoyi-quartz/.DS_Store new file mode 100644 index 0000000..d704d48 Binary files /dev/null and b/ruoyi-quartz/.DS_Store differ diff --git a/ruoyi-quartz/pom.xml b/ruoyi-quartz/pom.xml new file mode 100644 index 0000000..ccb6922 --- /dev/null +++ b/ruoyi-quartz/pom.xml @@ -0,0 +1,40 @@ + + + + ruoyi + com.ruoyi + 3.7.0 + + 4.0.0 + + ruoyi-quartz + + + quartz定时任务 + + + + + + + org.quartz-scheduler + quartz + + + com.mchange + c3p0 + + + + + + + com.ruoyi + ruoyi-common + + + + + \ No newline at end of file diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/config/ScheduleConfig.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/config/ScheduleConfig.java new file mode 100644 index 0000000..7fbea22 --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/config/ScheduleConfig.java @@ -0,0 +1,60 @@ +package com.ruoyi.quartz.config; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Conditional; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.quartz.SchedulerFactoryBean; +import javax.sql.DataSource; +import java.util.Properties; + +/** + * 定时任务配置 + * + * @author ruoyi + */ +@Configuration +@ConditionalOnProperty(prefix = "scheduling", name = "enabled", havingValue = "true") +public class ScheduleConfig +{ + @Bean + public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource) + { + SchedulerFactoryBean factory = new SchedulerFactoryBean(); + factory.setDataSource(dataSource); + + // quartz参数 + Properties prop = new Properties(); + prop.put("org.quartz.scheduler.instanceName", "RuoyiScheduler"); + prop.put("org.quartz.scheduler.instanceId", "AUTO"); + // 线程池配置 + prop.put("org.quartz.threadPool.class", "org.quartz.simpl.SimpleThreadPool"); + prop.put("org.quartz.threadPool.threadCount", "20"); + prop.put("org.quartz.threadPool.threadPriority", "5"); + // JobStore配置 + prop.put("org.quartz.jobStore.class", "org.quartz.impl.jdbcjobstore.JobStoreTX"); + // 集群配置 + prop.put("org.quartz.jobStore.isClustered", "true"); + prop.put("org.quartz.jobStore.clusterCheckinInterval", "15000"); + prop.put("org.quartz.jobStore.maxMisfiresToHandleAtATime", "1"); + prop.put("org.quartz.jobStore.txIsolationLevelSerializable", "true"); + + // sqlserver 启用 + // prop.put("org.quartz.jobStore.selectWithLockSQL", "SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?"); + prop.put("org.quartz.jobStore.misfireThreshold", "12000"); + prop.put("org.quartz.jobStore.tablePrefix", "QRTZ_"); + factory.setQuartzProperties(prop); + + factory.setSchedulerName("RuoyiScheduler"); + // 延时启动 + factory.setStartupDelay(1); + factory.setApplicationContextSchedulerContextKey("applicationContextKey"); + // 可选,QuartzScheduler + // 启动时更新己存在的Job,这样就不用每次修改targetObject后删除qrtz_job_details表对应记录了 + factory.setOverwriteExistingJobs(true); + // 设置自动启动,默认为true + factory.setAutoStartup(true); + + return factory; + } +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java new file mode 100644 index 0000000..6a2f975 --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java @@ -0,0 +1,167 @@ +package com.ruoyi.quartz.controller; + +import java.util.List; +import org.quartz.SchedulerException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.exception.job.TaskException; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.quartz.domain.SysJob; +import com.ruoyi.quartz.service.ISysJobService; +import com.ruoyi.quartz.util.CronUtils; + +/** + * 调度任务信息操作处理 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/monitor/job") +public class SysJobController extends BaseController +{ + @Autowired + private ISysJobService jobService; + + /** + * 查询定时任务列表 + */ + @PreAuthorize("@ss.hasPermi('monitor:job:list')") + @GetMapping("/list") + public TableDataInfo list(SysJob sysJob) + { + startPage(); + List list = jobService.selectJobList(sysJob); + return getDataTable(list); + } + + /** + * 导出定时任务列表 + */ + @PreAuthorize("@ss.hasPermi('monitor:job:export')") + @Log(title = "定时任务", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(SysJob sysJob) + { + List list = jobService.selectJobList(sysJob); + ExcelUtil util = new ExcelUtil(SysJob.class); + return util.exportExcel(list, "定时任务"); + } + + /** + * 获取定时任务详细信息 + */ + @PreAuthorize("@ss.hasPermi('monitor:job:query')") + @GetMapping(value = "/{jobId}") + public AjaxResult getInfo(@PathVariable("jobId") Long jobId) + { + return AjaxResult.success(jobService.selectJobById(jobId)); + } + + /** + * 新增定时任务 + */ + @PreAuthorize("@ss.hasPermi('monitor:job:add')") + @Log(title = "定时任务", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SysJob job) throws SchedulerException, TaskException + { + if (!CronUtils.isValid(job.getCronExpression())) + { + return error("新增任务'" + job.getJobName() + "'失败,Cron表达式不正确"); + } + else if (StringUtils.containsIgnoreCase(job.getInvokeTarget(), Constants.LOOKUP_RMI)) + { + return error("新增任务'" + job.getJobName() + "'失败,目标字符串不允许'rmi://'调用"); + } + else if (StringUtils.containsIgnoreCase(job.getInvokeTarget(), Constants.LOOKUP_LDAP)) + { + return error("新增任务'" + job.getJobName() + "'失败,目标字符串不允许'ldap://'调用"); + } + else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), new String[] { Constants.HTTP, Constants.HTTPS })) + { + return error("新增任务'" + job.getJobName() + "'失败,目标字符串不允许'http(s)//'调用"); + } + job.setCreateBy(getUserId()); + return toAjax(jobService.insertJob(job)); + } + + /** + * 修改定时任务 + */ + @PreAuthorize("@ss.hasPermi('monitor:job:edit')") + @Log(title = "定时任务", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SysJob job) throws SchedulerException, TaskException + { + if (!CronUtils.isValid(job.getCronExpression())) + { + return error("修改任务'" + job.getJobName() + "'失败,Cron表达式不正确"); + } + else if (StringUtils.containsIgnoreCase(job.getInvokeTarget(), Constants.LOOKUP_RMI)) + { + return error("修改任务'" + job.getJobName() + "'失败,目标字符串不允许'rmi://'调用"); + } + else if (StringUtils.containsIgnoreCase(job.getInvokeTarget(), Constants.LOOKUP_LDAP)) + { + return error("修改任务'" + job.getJobName() + "'失败,目标字符串不允许'ldap://'调用"); + } + else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), new String[] { Constants.HTTP, Constants.HTTPS })) + { + return error("修改任务'" + job.getJobName() + "'失败,目标字符串不允许'http(s)//'调用"); + } + job.setUpdateBy(getUserId()); + return toAjax(jobService.updateJob(job)); + } + + /** + * 定时任务状态修改 + */ + @PreAuthorize("@ss.hasPermi('monitor:job:changeStatus')") + @Log(title = "定时任务", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public AjaxResult changeStatus(@RequestBody SysJob job) throws SchedulerException + { + SysJob newJob = jobService.selectJobById(job.getJobId()); + newJob.setStatus(job.getStatus()); + return toAjax(jobService.changeStatus(newJob)); + } + + /** + * 定时任务立即执行一次 + */ + @PreAuthorize("@ss.hasPermi('monitor:job:changeStatus')") + @Log(title = "定时任务", businessType = BusinessType.UPDATE) + @PutMapping("/run") + public AjaxResult run(@RequestBody SysJob job) throws SchedulerException + { + jobService.run(job); + return AjaxResult.success(); + } + + /** + * 删除定时任务 + */ + @PreAuthorize("@ss.hasPermi('monitor:job:remove')") + @Log(title = "定时任务", businessType = BusinessType.DELETE) + @DeleteMapping("/{jobIds}") + public AjaxResult remove(@PathVariable Long[] jobIds) throws SchedulerException, TaskException + { + jobService.deleteJobByIds(jobIds); + return AjaxResult.success(); + } +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobLogController.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobLogController.java new file mode 100644 index 0000000..b1f8204 --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobLogController.java @@ -0,0 +1,90 @@ +package com.ruoyi.quartz.controller; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.quartz.domain.SysJobLog; +import com.ruoyi.quartz.service.ISysJobLogService; + +/** + * 调度日志操作处理 + * + * @author ruoyi + */ +@RestController +@RequestMapping("/monitor/jobLog") +public class SysJobLogController extends BaseController +{ + @Autowired + private ISysJobLogService jobLogService; + + /** + * 查询定时任务调度日志列表 + */ + @PreAuthorize("@ss.hasPermi('monitor:job:list')") + @GetMapping("/list") + public TableDataInfo list(SysJobLog sysJobLog) + { + startPage(); + List list = jobLogService.selectJobLogList(sysJobLog); + return getDataTable(list); + } + + /** + * 导出定时任务调度日志列表 + */ + @PreAuthorize("@ss.hasPermi('monitor:job:export')") + @Log(title = "任务调度日志", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(SysJobLog sysJobLog) + { + List list = jobLogService.selectJobLogList(sysJobLog); + ExcelUtil util = new ExcelUtil(SysJobLog.class); + return util.exportExcel(list, "调度日志"); + } + + /** + * 根据调度编号获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('monitor:job:query')") + @GetMapping(value = "/{configId}") + public AjaxResult getInfo(@PathVariable Long jobLogId) + { + return AjaxResult.success(jobLogService.selectJobLogById(jobLogId)); + } + + + /** + * 删除定时任务调度日志 + */ + @PreAuthorize("@ss.hasPermi('monitor:job:remove')") + @Log(title = "定时任务调度日志", businessType = BusinessType.DELETE) + @DeleteMapping("/{jobLogIds}") + public AjaxResult remove(@PathVariable Long[] jobLogIds) + { + return toAjax(jobLogService.deleteJobLogByIds(jobLogIds)); + } + + /** + * 清空定时任务调度日志 + */ + @PreAuthorize("@ss.hasPermi('monitor:job:remove')") + @Log(title = "调度日志", businessType = BusinessType.CLEAN) + @DeleteMapping("/clean") + public AjaxResult clean() + { + jobLogService.cleanJobLog(); + return AjaxResult.success(); + } +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java new file mode 100644 index 0000000..1f49695 --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java @@ -0,0 +1,171 @@ +package com.ruoyi.quartz.domain; + +import java.util.Date; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.annotation.Excel.ColumnType; +import com.ruoyi.common.constant.ScheduleConstants; +import com.ruoyi.common.core.domain.BaseEntity; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.quartz.util.CronUtils; + +/** + * 定时任务调度表 sys_job + * + * @author ruoyi + */ +public class SysJob extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 任务ID */ + @Excel(name = "任务序号", cellType = ColumnType.NUMERIC) + private Long jobId; + + /** 任务名称 */ + @Excel(name = "任务名称") + private String jobName; + + /** 任务组名 */ + @Excel(name = "任务组名") + private String jobGroup; + + /** 调用目标字符串 */ + @Excel(name = "调用目标字符串") + private String invokeTarget; + + /** cron执行表达式 */ + @Excel(name = "执行表达式 ") + private String cronExpression; + + /** cron计划策略 */ + @Excel(name = "计划策略 ", readConverterExp = "0=默认,1=立即触发执行,2=触发一次执行,3=不触发立即执行") + private String misfirePolicy = ScheduleConstants.MISFIRE_DEFAULT; + + /** 是否并发执行(0允许 1禁止) */ + @Excel(name = "并发执行", readConverterExp = "0=允许,1=禁止") + private String concurrent; + + /** 任务状态(0正常 1暂停) */ + @Excel(name = "任务状态", readConverterExp = "0=正常,1=暂停") + private String status; + + public Long getJobId() + { + return jobId; + } + + public void setJobId(Long jobId) + { + this.jobId = jobId; + } + + @NotBlank(message = "任务名称不能为空") + @Size(min = 0, max = 64, message = "任务名称不能超过64个字符") + public String getJobName() + { + return jobName; + } + + public void setJobName(String jobName) + { + this.jobName = jobName; + } + + public String getJobGroup() + { + return jobGroup; + } + + public void setJobGroup(String jobGroup) + { + this.jobGroup = jobGroup; + } + + @NotBlank(message = "调用目标字符串不能为空") + @Size(min = 0, max = 500, message = "调用目标字符串长度不能超过500个字符") + public String getInvokeTarget() + { + return invokeTarget; + } + + public void setInvokeTarget(String invokeTarget) + { + this.invokeTarget = invokeTarget; + } + + @NotBlank(message = "Cron执行表达式不能为空") + @Size(min = 0, max = 255, message = "Cron执行表达式不能超过255个字符") + public String getCronExpression() + { + return cronExpression; + } + + public void setCronExpression(String cronExpression) + { + this.cronExpression = cronExpression; + } + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + public Date getNextValidTime() + { + if (StringUtils.isNotEmpty(cronExpression)) + { + return CronUtils.getNextExecution(cronExpression); + } + return null; + } + + public String getMisfirePolicy() + { + return misfirePolicy; + } + + public void setMisfirePolicy(String misfirePolicy) + { + this.misfirePolicy = misfirePolicy; + } + + public String getConcurrent() + { + return concurrent; + } + + public void setConcurrent(String concurrent) + { + this.concurrent = concurrent; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("jobId", getJobId()) + .append("jobName", getJobName()) + .append("jobGroup", getJobGroup()) + .append("cronExpression", getCronExpression()) + .append("nextValidTime", getNextValidTime()) + .append("misfirePolicy", getMisfirePolicy()) + .append("concurrent", getConcurrent()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJobLog.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJobLog.java new file mode 100644 index 0000000..121c035 --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJobLog.java @@ -0,0 +1,155 @@ +package com.ruoyi.quartz.domain; + +import java.util.Date; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 定时任务调度日志表 sys_job_log + * + * @author ruoyi + */ +public class SysJobLog extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** ID */ + @Excel(name = "日志序号") + private Long jobLogId; + + /** 任务名称 */ + @Excel(name = "任务名称") + private String jobName; + + /** 任务组名 */ + @Excel(name = "任务组名") + private String jobGroup; + + /** 调用目标字符串 */ + @Excel(name = "调用目标字符串") + private String invokeTarget; + + /** 日志信息 */ + @Excel(name = "日志信息") + private String jobMessage; + + /** 执行状态(0正常 1失败) */ + @Excel(name = "执行状态", readConverterExp = "0=正常,1=失败") + private String status; + + /** 异常信息 */ + @Excel(name = "异常信息") + private String exceptionInfo; + + /** 开始时间 */ + private Date startTime; + + /** 停止时间 */ + private Date stopTime; + + public Long getJobLogId() + { + return jobLogId; + } + + public void setJobLogId(Long jobLogId) + { + this.jobLogId = jobLogId; + } + + public String getJobName() + { + return jobName; + } + + public void setJobName(String jobName) + { + this.jobName = jobName; + } + + public String getJobGroup() + { + return jobGroup; + } + + public void setJobGroup(String jobGroup) + { + this.jobGroup = jobGroup; + } + + public String getInvokeTarget() + { + return invokeTarget; + } + + public void setInvokeTarget(String invokeTarget) + { + this.invokeTarget = invokeTarget; + } + + public String getJobMessage() + { + return jobMessage; + } + + public void setJobMessage(String jobMessage) + { + this.jobMessage = jobMessage; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getExceptionInfo() + { + return exceptionInfo; + } + + public void setExceptionInfo(String exceptionInfo) + { + this.exceptionInfo = exceptionInfo; + } + + public Date getStartTime() + { + return startTime; + } + + public void setStartTime(Date startTime) + { + this.startTime = startTime; + } + + public Date getStopTime() + { + return stopTime; + } + + public void setStopTime(Date stopTime) + { + this.stopTime = stopTime; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("jobLogId", getJobLogId()) + .append("jobName", getJobName()) + .append("jobGroup", getJobGroup()) + .append("jobMessage", getJobMessage()) + .append("status", getStatus()) + .append("exceptionInfo", getExceptionInfo()) + .append("startTime", getStartTime()) + .append("stopTime", getStopTime()) + .toString(); + } +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobLogMapper.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobLogMapper.java new file mode 100644 index 0000000..727d916 --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobLogMapper.java @@ -0,0 +1,64 @@ +package com.ruoyi.quartz.mapper; + +import java.util.List; +import com.ruoyi.quartz.domain.SysJobLog; + +/** + * 调度任务日志信息 数据层 + * + * @author ruoyi + */ +public interface SysJobLogMapper +{ + /** + * 获取quartz调度器日志的计划任务 + * + * @param jobLog 调度日志信息 + * @return 调度任务日志集合 + */ + public List selectJobLogList(SysJobLog jobLog); + + /** + * 查询所有调度任务日志 + * + * @return 调度任务日志列表 + */ + public List selectJobLogAll(); + + /** + * 通过调度任务日志ID查询调度信息 + * + * @param jobLogId 调度任务日志ID + * @return 调度任务日志对象信息 + */ + public SysJobLog selectJobLogById(Long jobLogId); + + /** + * 新增任务日志 + * + * @param jobLog 调度日志信息 + * @return 结果 + */ + public int insertJobLog(SysJobLog jobLog); + + /** + * 批量删除调度日志信息 + * + * @param logIds 需要删除的数据ID + * @return 结果 + */ + public int deleteJobLogByIds(Long[] logIds); + + /** + * 删除任务日志 + * + * @param jobId 调度日志ID + * @return 结果 + */ + public int deleteJobLogById(Long jobId); + + /** + * 清空任务日志 + */ + public void cleanJobLog(); +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobMapper.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobMapper.java new file mode 100644 index 0000000..20f45db --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobMapper.java @@ -0,0 +1,67 @@ +package com.ruoyi.quartz.mapper; + +import java.util.List; +import com.ruoyi.quartz.domain.SysJob; + +/** + * 调度任务信息 数据层 + * + * @author ruoyi + */ +public interface SysJobMapper +{ + /** + * 查询调度任务日志集合 + * + * @param job 调度信息 + * @return 操作日志集合 + */ + public List selectJobList(SysJob job); + + /** + * 查询所有调度任务 + * + * @return 调度任务列表 + */ + public List selectJobAll(); + + /** + * 通过调度ID查询调度任务信息 + * + * @param jobId 调度ID + * @return 角色对象信息 + */ + public SysJob selectJobById(Long jobId); + + /** + * 通过调度ID删除调度任务信息 + * + * @param jobId 调度ID + * @return 结果 + */ + public int deleteJobById(Long jobId); + + /** + * 批量删除调度任务信息 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteJobByIds(Long[] ids); + + /** + * 修改调度任务信息 + * + * @param job 调度任务信息 + * @return 结果 + */ + public int updateJob(SysJob job); + + /** + * 新增调度任务信息 + * + * @param job 调度任务信息 + * @return 结果 + */ + public int insertJob(SysJob job); +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobLogService.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobLogService.java new file mode 100644 index 0000000..8546792 --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobLogService.java @@ -0,0 +1,56 @@ +package com.ruoyi.quartz.service; + +import java.util.List; +import com.ruoyi.quartz.domain.SysJobLog; + +/** + * 定时任务调度日志信息信息 服务层 + * + * @author ruoyi + */ +public interface ISysJobLogService +{ + /** + * 获取quartz调度器日志的计划任务 + * + * @param jobLog 调度日志信息 + * @return 调度任务日志集合 + */ + public List selectJobLogList(SysJobLog jobLog); + + /** + * 通过调度任务日志ID查询调度信息 + * + * @param jobLogId 调度任务日志ID + * @return 调度任务日志对象信息 + */ + public SysJobLog selectJobLogById(Long jobLogId); + + /** + * 新增任务日志 + * + * @param jobLog 调度日志信息 + */ + public void addJobLog(SysJobLog jobLog); + + /** + * 批量删除调度日志信息 + * + * @param logIds 需要删除的日志ID + * @return 结果 + */ + public int deleteJobLogByIds(Long[] logIds); + + /** + * 删除任务日志 + * + * @param jobId 调度日志ID + * @return 结果 + */ + public int deleteJobLogById(Long jobId); + + /** + * 清空任务日志 + */ + public void cleanJobLog(); +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobService.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobService.java new file mode 100644 index 0000000..6d62661 --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobService.java @@ -0,0 +1,102 @@ +package com.ruoyi.quartz.service; + +import java.util.List; +import org.quartz.SchedulerException; +import com.ruoyi.common.exception.job.TaskException; +import com.ruoyi.quartz.domain.SysJob; + +/** + * 定时任务调度信息信息 服务层 + * + * @author ruoyi + */ +public interface ISysJobService +{ + /** + * 获取quartz调度器的计划任务 + * + * @param job 调度信息 + * @return 调度任务集合 + */ + public List selectJobList(SysJob job); + + /** + * 通过调度任务ID查询调度信息 + * + * @param jobId 调度任务ID + * @return 调度任务对象信息 + */ + public SysJob selectJobById(Long jobId); + + /** + * 暂停任务 + * + * @param job 调度信息 + * @return 结果 + */ + public int pauseJob(SysJob job) throws SchedulerException; + + /** + * 恢复任务 + * + * @param job 调度信息 + * @return 结果 + */ + public int resumeJob(SysJob job) throws SchedulerException; + + /** + * 删除任务后,所对应的trigger也将被删除 + * + * @param job 调度信息 + * @return 结果 + */ + public int deleteJob(SysJob job) throws SchedulerException; + + /** + * 批量删除调度信息 + * + * @param jobIds 需要删除的任务ID + * @return 结果 + */ + public void deleteJobByIds(Long[] jobIds) throws SchedulerException; + + /** + * 任务调度状态修改 + * + * @param job 调度信息 + * @return 结果 + */ + public int changeStatus(SysJob job) throws SchedulerException; + + /** + * 立即运行任务 + * + * @param job 调度信息 + * @return 结果 + */ + public void run(SysJob job) throws SchedulerException; + + /** + * 新增任务 + * + * @param job 调度信息 + * @return 结果 + */ + public int insertJob(SysJob job) throws SchedulerException, TaskException; + + /** + * 更新任务 + * + * @param job 调度信息 + * @return 结果 + */ + public int updateJob(SysJob job) throws SchedulerException, TaskException; + + /** + * 校验cron表达式是否有效 + * + * @param cronExpression 表达式 + * @return 结果 + */ + public boolean checkCronExpressionIsValid(String cronExpression); +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobLogServiceImpl.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobLogServiceImpl.java new file mode 100644 index 0000000..812eed7 --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobLogServiceImpl.java @@ -0,0 +1,87 @@ +package com.ruoyi.quartz.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.quartz.domain.SysJobLog; +import com.ruoyi.quartz.mapper.SysJobLogMapper; +import com.ruoyi.quartz.service.ISysJobLogService; + +/** + * 定时任务调度日志信息 服务层 + * + * @author ruoyi + */ +@Service +public class SysJobLogServiceImpl implements ISysJobLogService +{ + @Autowired + private SysJobLogMapper jobLogMapper; + + /** + * 获取quartz调度器日志的计划任务 + * + * @param jobLog 调度日志信息 + * @return 调度任务日志集合 + */ + @Override + public List selectJobLogList(SysJobLog jobLog) + { + return jobLogMapper.selectJobLogList(jobLog); + } + + /** + * 通过调度任务日志ID查询调度信息 + * + * @param jobLogId 调度任务日志ID + * @return 调度任务日志对象信息 + */ + @Override + public SysJobLog selectJobLogById(Long jobLogId) + { + return jobLogMapper.selectJobLogById(jobLogId); + } + + /** + * 新增任务日志 + * + * @param jobLog 调度日志信息 + */ + @Override + public void addJobLog(SysJobLog jobLog) + { + jobLogMapper.insertJobLog(jobLog); + } + + /** + * 批量删除调度日志信息 + * + * @param logIds 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteJobLogByIds(Long[] logIds) + { + return jobLogMapper.deleteJobLogByIds(logIds); + } + + /** + * 删除任务日志 + * + * @param jobId 调度日志ID + */ + @Override + public int deleteJobLogById(Long jobId) + { + return jobLogMapper.deleteJobLogById(jobId); + } + + /** + * 清空任务日志 + */ + @Override + public void cleanJobLog() + { + jobLogMapper.cleanJobLog(); + } +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java new file mode 100644 index 0000000..0d9a53d --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java @@ -0,0 +1,254 @@ +package com.ruoyi.quartz.service.impl; + +import java.util.List; +import javax.annotation.PostConstruct; +import org.quartz.JobDataMap; +import org.quartz.JobKey; +import org.quartz.Scheduler; +import org.quartz.SchedulerException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.ruoyi.common.constant.ScheduleConstants; +import com.ruoyi.common.exception.job.TaskException; +import com.ruoyi.quartz.domain.SysJob; +import com.ruoyi.quartz.mapper.SysJobMapper; +import com.ruoyi.quartz.service.ISysJobService; +import com.ruoyi.quartz.util.CronUtils; +import com.ruoyi.quartz.util.ScheduleUtils; + +/** + * 定时任务调度信息 服务层 + * + * @author ruoyi + */ +@Service +public class SysJobServiceImpl implements ISysJobService +{ + @Autowired + private Scheduler scheduler; + + @Autowired + private SysJobMapper jobMapper; + + /** + * 项目启动时,初始化定时器 主要是防止手动修改数据库导致未同步到定时任务处理(注:不能手动修改数据库ID和任务组名,否则会导致脏数据) + */ + @PostConstruct + public void init() throws SchedulerException, TaskException + { + scheduler.clear(); + List jobList = jobMapper.selectJobAll(); + for (SysJob job : jobList) + { + ScheduleUtils.createScheduleJob(scheduler, job); + } + } + + /** + * 获取quartz调度器的计划任务列表 + * + * @param job 调度信息 + * @return + */ + @Override + public List selectJobList(SysJob job) + { + return jobMapper.selectJobList(job); + } + + /** + * 通过调度任务ID查询调度信息 + * + * @param jobId 调度任务ID + * @return 调度任务对象信息 + */ + @Override + public SysJob selectJobById(Long jobId) + { + return jobMapper.selectJobById(jobId); + } + + /** + * 暂停任务 + * + * @param job 调度信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int pauseJob(SysJob job) throws SchedulerException + { + Long jobId = job.getJobId(); + String jobGroup = job.getJobGroup(); + job.setStatus(ScheduleConstants.Status.PAUSE.getValue()); + int rows = jobMapper.updateJob(job); + if (rows > 0) + { + scheduler.pauseJob(ScheduleUtils.getJobKey(jobId, jobGroup)); + } + return rows; + } + + /** + * 恢复任务 + * + * @param job 调度信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int resumeJob(SysJob job) throws SchedulerException + { + Long jobId = job.getJobId(); + String jobGroup = job.getJobGroup(); + job.setStatus(ScheduleConstants.Status.NORMAL.getValue()); + int rows = jobMapper.updateJob(job); + if (rows > 0) + { + scheduler.resumeJob(ScheduleUtils.getJobKey(jobId, jobGroup)); + } + return rows; + } + + /** + * 删除任务后,所对应的trigger也将被删除 + * + * @param job 调度信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int deleteJob(SysJob job) throws SchedulerException + { + Long jobId = job.getJobId(); + String jobGroup = job.getJobGroup(); + int rows = jobMapper.deleteJobById(jobId); + if (rows > 0) + { + scheduler.deleteJob(ScheduleUtils.getJobKey(jobId, jobGroup)); + } + return rows; + } + + /** + * 批量删除调度信息 + * + * @param jobIds 需要删除的任务ID + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteJobByIds(Long[] jobIds) throws SchedulerException + { + for (Long jobId : jobIds) + { + SysJob job = jobMapper.selectJobById(jobId); + deleteJob(job); + } + } + + /** + * 任务调度状态修改 + * + * @param job 调度信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int changeStatus(SysJob job) throws SchedulerException + { + int rows = 0; + String status = job.getStatus(); + if (ScheduleConstants.Status.NORMAL.getValue().equals(status)) + { + rows = resumeJob(job); + } + else if (ScheduleConstants.Status.PAUSE.getValue().equals(status)) + { + rows = pauseJob(job); + } + return rows; + } + + /** + * 立即运行任务 + * + * @param job 调度信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void run(SysJob job) throws SchedulerException + { + Long jobId = job.getJobId(); + String jobGroup = job.getJobGroup(); + SysJob properties = selectJobById(job.getJobId()); + // 参数 + JobDataMap dataMap = new JobDataMap(); + dataMap.put(ScheduleConstants.TASK_PROPERTIES, properties); + scheduler.triggerJob(ScheduleUtils.getJobKey(jobId, jobGroup), dataMap); + } + + /** + * 新增任务 + * + * @param job 调度信息 调度信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int insertJob(SysJob job) throws SchedulerException, TaskException + { + job.setStatus(ScheduleConstants.Status.PAUSE.getValue()); + int rows = jobMapper.insertJob(job); + if (rows > 0) + { + ScheduleUtils.createScheduleJob(scheduler, job); + } + return rows; + } + + /** + * 更新任务的时间表达式 + * + * @param job 调度信息 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int updateJob(SysJob job) throws SchedulerException, TaskException + { + SysJob properties = selectJobById(job.getJobId()); + int rows = jobMapper.updateJob(job); + if (rows > 0) + { + updateSchedulerJob(job, properties.getJobGroup()); + } + return rows; + } + + /** + * 更新任务 + * + * @param job 任务对象 + * @param jobGroup 任务组名 + */ + public void updateSchedulerJob(SysJob job, String jobGroup) throws SchedulerException, TaskException + { + Long jobId = job.getJobId(); + // 判断是否存在 + JobKey jobKey = ScheduleUtils.getJobKey(jobId, jobGroup); + if (scheduler.checkExists(jobKey)) + { + // 防止创建时存在数据问题 先移除,然后在执行创建操作 + scheduler.deleteJob(jobKey); + } + ScheduleUtils.createScheduleJob(scheduler, job); + } + + /** + * 校验cron表达式是否有效 + * + * @param cronExpression 表达式 + * @return 结果 + */ + @Override + public boolean checkCronExpressionIsValid(String cronExpression) + { + return CronUtils.isValid(cronExpression); + } +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java new file mode 100644 index 0000000..853243b --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java @@ -0,0 +1,28 @@ +package com.ruoyi.quartz.task; + +import org.springframework.stereotype.Component; +import com.ruoyi.common.utils.StringUtils; + +/** + * 定时任务调度测试 + * + * @author ruoyi + */ +@Component("ryTask") +public class RyTask +{ + public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) + { + System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i)); + } + + public void ryParams(String params) + { + System.out.println("执行有参方法:" + params); + } + + public void ryNoParams() + { + System.out.println("执行无参方法"); + } +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/AbstractQuartzJob.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/AbstractQuartzJob.java new file mode 100644 index 0000000..731a5eb --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/AbstractQuartzJob.java @@ -0,0 +1,107 @@ +package com.ruoyi.quartz.util; + +import java.util.Date; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.ScheduleConstants; +import com.ruoyi.common.utils.ExceptionUtil; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.bean.BeanUtils; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.quartz.domain.SysJob; +import com.ruoyi.quartz.domain.SysJobLog; +import com.ruoyi.quartz.service.ISysJobLogService; + +/** + * 抽象quartz调用 + * + * @author ruoyi + */ +public abstract class AbstractQuartzJob implements Job +{ + private static final Logger log = LoggerFactory.getLogger(AbstractQuartzJob.class); + + /** + * 线程本地变量 + */ + private static ThreadLocal threadLocal = new ThreadLocal<>(); + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException + { + SysJob sysJob = new SysJob(); + BeanUtils.copyBeanProp(sysJob, context.getMergedJobDataMap().get(ScheduleConstants.TASK_PROPERTIES)); + try + { + before(context, sysJob); + if (sysJob != null) + { + doExecute(context, sysJob); + } + after(context, sysJob, null); + } + catch (Exception e) + { + log.error("任务执行异常 - :", e); + after(context, sysJob, e); + } + } + + /** + * 执行前 + * + * @param context 工作执行上下文对象 + * @param sysJob 系统计划任务 + */ + protected void before(JobExecutionContext context, SysJob sysJob) + { + threadLocal.set(new Date()); + } + + /** + * 执行后 + * + * @param context 工作执行上下文对象 + * @param sysJob 系统计划任务 + */ + protected void after(JobExecutionContext context, SysJob sysJob, Exception e) + { + Date startTime = threadLocal.get(); + threadLocal.remove(); + + final SysJobLog sysJobLog = new SysJobLog(); + sysJobLog.setJobName(sysJob.getJobName()); + sysJobLog.setJobGroup(sysJob.getJobGroup()); + sysJobLog.setInvokeTarget(sysJob.getInvokeTarget()); + sysJobLog.setStartTime(startTime); + sysJobLog.setStopTime(new Date()); + long runMs = sysJobLog.getStopTime().getTime() - sysJobLog.getStartTime().getTime(); + sysJobLog.setJobMessage(sysJobLog.getJobName() + " 总共耗时:" + runMs + "毫秒"); + if (e != null) + { + sysJobLog.setStatus(Constants.FAIL); + String errorMsg = StringUtils.substring(ExceptionUtil.getExceptionMessage(e), 0, 2000); + sysJobLog.setExceptionInfo(errorMsg); + } + else + { + sysJobLog.setStatus(Constants.SUCCESS); + } + + // 写入数据库当中 + SpringUtils.getBean(ISysJobLogService.class).addJobLog(sysJobLog); + } + + /** + * 执行方法,由子类重载 + * + * @param context 工作执行上下文对象 + * @param sysJob 系统计划任务 + * @throws Exception 执行过程中的异常 + */ + protected abstract void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception; +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/CronUtils.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/CronUtils.java new file mode 100644 index 0000000..dd53839 --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/CronUtils.java @@ -0,0 +1,63 @@ +package com.ruoyi.quartz.util; + +import java.text.ParseException; +import java.util.Date; +import org.quartz.CronExpression; + +/** + * cron表达式工具类 + * + * @author ruoyi + * + */ +public class CronUtils +{ + /** + * 返回一个布尔值代表一个给定的Cron表达式的有效性 + * + * @param cronExpression Cron表达式 + * @return boolean 表达式是否有效 + */ + public static boolean isValid(String cronExpression) + { + return CronExpression.isValidExpression(cronExpression); + } + + /** + * 返回一个字符串值,表示该消息无效Cron表达式给出有效性 + * + * @param cronExpression Cron表达式 + * @return String 无效时返回表达式错误描述,如果有效返回null + */ + public static String getInvalidMessage(String cronExpression) + { + try + { + new CronExpression(cronExpression); + return null; + } + catch (ParseException pe) + { + return pe.getMessage(); + } + } + + /** + * 返回下一个执行时间根据给定的Cron表达式 + * + * @param cronExpression Cron表达式 + * @return Date 下次Cron表达式执行时间 + */ + public static Date getNextExecution(String cronExpression) + { + try + { + CronExpression cron = new CronExpression(cronExpression); + return cron.getNextValidTimeAfter(new Date(System.currentTimeMillis())); + } + catch (ParseException e) + { + throw new IllegalArgumentException(e.getMessage()); + } + } +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/JobInvokeUtil.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/JobInvokeUtil.java new file mode 100644 index 0000000..40a19bd --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/JobInvokeUtil.java @@ -0,0 +1,182 @@ +package com.ruoyi.quartz.util; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.LinkedList; +import java.util.List; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.quartz.domain.SysJob; + +/** + * 任务执行工具 + * + * @author ruoyi + */ +public class JobInvokeUtil +{ + /** + * 执行方法 + * + * @param sysJob 系统任务 + */ + public static void invokeMethod(SysJob sysJob) throws Exception + { + String invokeTarget = sysJob.getInvokeTarget(); + String beanName = getBeanName(invokeTarget); + String methodName = getMethodName(invokeTarget); + List methodParams = getMethodParams(invokeTarget); + + if (!isValidClassName(beanName)) + { + Object bean = SpringUtils.getBean(beanName); + invokeMethod(bean, methodName, methodParams); + } + else + { + Object bean = Class.forName(beanName).newInstance(); + invokeMethod(bean, methodName, methodParams); + } + } + + /** + * 调用任务方法 + * + * @param bean 目标对象 + * @param methodName 方法名称 + * @param methodParams 方法参数 + */ + private static void invokeMethod(Object bean, String methodName, List methodParams) + throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, + InvocationTargetException + { + if (StringUtils.isNotNull(methodParams) && methodParams.size() > 0) + { + Method method = bean.getClass().getDeclaredMethod(methodName, getMethodParamsType(methodParams)); + method.invoke(bean, getMethodParamsValue(methodParams)); + } + else + { + Method method = bean.getClass().getDeclaredMethod(methodName); + method.invoke(bean); + } + } + + /** + * 校验是否为为class包名 + * + * @param str 名称 + * @return true是 false否 + */ + public static boolean isValidClassName(String invokeTarget) + { + return StringUtils.countMatches(invokeTarget, ".") > 1; + } + + /** + * 获取bean名称 + * + * @param invokeTarget 目标字符串 + * @return bean名称 + */ + public static String getBeanName(String invokeTarget) + { + String beanName = StringUtils.substringBefore(invokeTarget, "("); + return StringUtils.substringBeforeLast(beanName, "."); + } + + /** + * 获取bean方法 + * + * @param invokeTarget 目标字符串 + * @return method方法 + */ + public static String getMethodName(String invokeTarget) + { + String methodName = StringUtils.substringBefore(invokeTarget, "("); + return StringUtils.substringAfterLast(methodName, "."); + } + + /** + * 获取method方法参数相关列表 + * + * @param invokeTarget 目标字符串 + * @return method方法相关参数列表 + */ + public static List getMethodParams(String invokeTarget) + { + String methodStr = StringUtils.substringBetween(invokeTarget, "(", ")"); + if (StringUtils.isEmpty(methodStr)) + { + return null; + } + String[] methodParams = methodStr.split(","); + List classs = new LinkedList<>(); + for (int i = 0; i < methodParams.length; i++) + { + String str = StringUtils.trimToEmpty(methodParams[i]); + // String字符串类型,包含' + if (StringUtils.contains(str, "'")) + { + classs.add(new Object[] { StringUtils.replace(str, "'", ""), String.class }); + } + // boolean布尔类型,等于true或者false + else if (StringUtils.equals(str, "true") || StringUtils.equalsIgnoreCase(str, "false")) + { + classs.add(new Object[] { Boolean.valueOf(str), Boolean.class }); + } + // long长整形,包含L + else if (StringUtils.containsIgnoreCase(str, "L")) + { + classs.add(new Object[] { Long.valueOf(StringUtils.replaceIgnoreCase(str, "L", "")), Long.class }); + } + // double浮点类型,包含D + else if (StringUtils.containsIgnoreCase(str, "D")) + { + classs.add(new Object[] { Double.valueOf(StringUtils.replaceIgnoreCase(str, "D", "")), Double.class }); + } + // 其他类型归类为整形 + else + { + classs.add(new Object[] { Integer.valueOf(str), Integer.class }); + } + } + return classs; + } + + /** + * 获取参数类型 + * + * @param methodParams 参数相关列表 + * @return 参数类型列表 + */ + public static Class[] getMethodParamsType(List methodParams) + { + Class[] classs = new Class[methodParams.size()]; + int index = 0; + for (Object[] os : methodParams) + { + classs[index] = (Class) os[1]; + index++; + } + return classs; + } + + /** + * 获取参数值 + * + * @param methodParams 参数相关列表 + * @return 参数值列表 + */ + public static Object[] getMethodParamsValue(List methodParams) + { + Object[] classs = new Object[methodParams.size()]; + int index = 0; + for (Object[] os : methodParams) + { + classs[index] = (Object) os[0]; + index++; + } + return classs; + } +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/QuartzDisallowConcurrentExecution.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/QuartzDisallowConcurrentExecution.java new file mode 100644 index 0000000..5e13558 --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/QuartzDisallowConcurrentExecution.java @@ -0,0 +1,21 @@ +package com.ruoyi.quartz.util; + +import org.quartz.DisallowConcurrentExecution; +import org.quartz.JobExecutionContext; +import com.ruoyi.quartz.domain.SysJob; + +/** + * 定时任务处理(禁止并发执行) + * + * @author ruoyi + * + */ +@DisallowConcurrentExecution +public class QuartzDisallowConcurrentExecution extends AbstractQuartzJob +{ + @Override + protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception + { + JobInvokeUtil.invokeMethod(sysJob); + } +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/QuartzJobExecution.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/QuartzJobExecution.java new file mode 100644 index 0000000..e975326 --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/QuartzJobExecution.java @@ -0,0 +1,19 @@ +package com.ruoyi.quartz.util; + +import org.quartz.JobExecutionContext; +import com.ruoyi.quartz.domain.SysJob; + +/** + * 定时任务处理(允许并发执行) + * + * @author ruoyi + * + */ +public class QuartzJobExecution extends AbstractQuartzJob +{ + @Override + protected void doExecute(JobExecutionContext context, SysJob sysJob) throws Exception + { + JobInvokeUtil.invokeMethod(sysJob); + } +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java new file mode 100644 index 0000000..7f4213f --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java @@ -0,0 +1,113 @@ +package com.ruoyi.quartz.util; + +import org.quartz.CronScheduleBuilder; +import org.quartz.CronTrigger; +import org.quartz.Job; +import org.quartz.JobBuilder; +import org.quartz.JobDetail; +import org.quartz.JobKey; +import org.quartz.Scheduler; +import org.quartz.SchedulerException; +import org.quartz.TriggerBuilder; +import org.quartz.TriggerKey; +import com.ruoyi.common.constant.ScheduleConstants; +import com.ruoyi.common.exception.job.TaskException; +import com.ruoyi.common.exception.job.TaskException.Code; +import com.ruoyi.quartz.domain.SysJob; + +/** + * 定时任务工具类 + * + * @author ruoyi + * + */ +public class ScheduleUtils +{ + /** + * 得到quartz任务类 + * + * @param sysJob 执行计划 + * @return 具体执行任务类 + */ + private static Class getQuartzJobClass(SysJob sysJob) + { + boolean isConcurrent = "0".equals(sysJob.getConcurrent()); + return isConcurrent ? QuartzJobExecution.class : QuartzDisallowConcurrentExecution.class; + } + + /** + * 构建任务触发对象 + */ + public static TriggerKey getTriggerKey(Long jobId, String jobGroup) + { + return TriggerKey.triggerKey(ScheduleConstants.TASK_CLASS_NAME + jobId, jobGroup); + } + + /** + * 构建任务键对象 + */ + public static JobKey getJobKey(Long jobId, String jobGroup) + { + return JobKey.jobKey(ScheduleConstants.TASK_CLASS_NAME + jobId, jobGroup); + } + + /** + * 创建定时任务 + */ + public static void createScheduleJob(Scheduler scheduler, SysJob job) throws SchedulerException, TaskException + { + Class jobClass = getQuartzJobClass(job); + // 构建job信息 + Long jobId = job.getJobId(); + String jobGroup = job.getJobGroup(); + JobDetail jobDetail = JobBuilder.newJob(jobClass).withIdentity(getJobKey(jobId, jobGroup)).build(); + + // 表达式调度构建器 + CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(job.getCronExpression()); + cronScheduleBuilder = handleCronScheduleMisfirePolicy(job, cronScheduleBuilder); + + // 按新的cronExpression表达式构建一个新的trigger + CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(getTriggerKey(jobId, jobGroup)) + .withSchedule(cronScheduleBuilder).build(); + + // 放入参数,运行时的方法可以获取 + jobDetail.getJobDataMap().put(ScheduleConstants.TASK_PROPERTIES, job); + + // 判断是否存在 + if (scheduler.checkExists(getJobKey(jobId, jobGroup))) + { + // 防止创建时存在数据问题 先移除,然后在执行创建操作 + scheduler.deleteJob(getJobKey(jobId, jobGroup)); + } + + scheduler.scheduleJob(jobDetail, trigger); + + // 暂停任务 + if (job.getStatus().equals(ScheduleConstants.Status.PAUSE.getValue())) + { + scheduler.pauseJob(ScheduleUtils.getJobKey(jobId, jobGroup)); + } + } + + /** + * 设置定时任务策略 + */ + public static CronScheduleBuilder handleCronScheduleMisfirePolicy(SysJob job, CronScheduleBuilder cb) + throws TaskException + { + switch (job.getMisfirePolicy()) + { + case ScheduleConstants.MISFIRE_DEFAULT: + return cb; + case ScheduleConstants.MISFIRE_IGNORE_MISFIRES: + return cb.withMisfireHandlingInstructionIgnoreMisfires(); + case ScheduleConstants.MISFIRE_FIRE_AND_PROCEED: + return cb.withMisfireHandlingInstructionFireAndProceed(); + case ScheduleConstants.MISFIRE_DO_NOTHING: + return cb.withMisfireHandlingInstructionDoNothing(); + default: + throw new TaskException("The task misfire policy '" + job.getMisfirePolicy() + + "' cannot be used in cron schedule tasks", Code.CONFIG_ERROR); + } + } +} diff --git a/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml b/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml new file mode 100644 index 0000000..e608e42 --- /dev/null +++ b/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + select job_log_id, job_name, job_group, invoke_target, job_message, status, exception_info, create_time + from sys_job_log + + + + + + + + + + delete from sys_job_log where job_log_id = #{jobLogId} + + + + delete from sys_job_log where job_log_id in + + #{jobLogId} + + + + + truncate table sys_job_log + + + + insert into sys_job_log( + job_log_id, + job_name, + job_group, + invoke_target, + job_message, + status, + exception_info, + create_time + )values( + #{jobLogId}, + #{jobName}, + #{jobGroup}, + #{invokeTarget}, + #{jobMessage}, + #{status}, + #{exceptionInfo}, + sysdate() + ) + + + \ No newline at end of file diff --git a/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml b/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml new file mode 100644 index 0000000..6ef0432 --- /dev/null +++ b/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + select job_id, job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark + from sys_job + + + + + + + + + + delete from sys_job where job_id = #{jobId} + + + + delete from sys_job where job_id in + + #{jobId} + + + + + update sys_job + + job_name = #{jobName}, + job_group = #{jobGroup}, + invoke_target = #{invokeTarget}, + cron_expression = #{cronExpression}, + misfire_policy = #{misfirePolicy}, + concurrent = #{concurrent}, + status = #{status}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = sysdate() + + where job_id = #{jobId} + + + + insert into sys_job( + job_id, + job_name, + job_group, + invoke_target, + cron_expression, + misfire_policy, + concurrent, + status, + remark, + create_by, + create_time + )values( + #{jobId}, + #{jobName}, + #{jobGroup}, + #{invokeTarget}, + #{cronExpression}, + #{misfirePolicy}, + #{concurrent}, + #{status}, + #{remark}, + #{createBy}, + sysdate() + ) + + + diff --git a/ruoyi-system/.DS_Store b/ruoyi-system/.DS_Store new file mode 100644 index 0000000..e37e6ef Binary files /dev/null and b/ruoyi-system/.DS_Store differ diff --git a/ruoyi-system/pom.xml b/ruoyi-system/pom.xml new file mode 100644 index 0000000..c16cc4a --- /dev/null +++ b/ruoyi-system/pom.xml @@ -0,0 +1,28 @@ + + + + ruoyi + com.ruoyi + 3.7.0 + + 4.0.0 + + ruoyi-system + + + system系统模块 + + + + + + + com.ruoyi + ruoyi-common + + + + + \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java new file mode 100644 index 0000000..11e7ea6 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java @@ -0,0 +1,111 @@ +package com.ruoyi.system.domain; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.annotation.Excel.ColumnType; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 参数配置表 sys_config + * + * @author ruoyi + */ +public class SysConfig extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 参数主键 */ + @Excel(name = "参数主键", cellType = ColumnType.NUMERIC) + private Long configId; + + /** 参数名称 */ + @Excel(name = "参数名称") + private String configName; + + /** 参数键名 */ + @Excel(name = "参数键名") + private String configKey; + + /** 参数键值 */ + @Excel(name = "参数键值") + private String configValue; + + /** 系统内置(Y是 N否) */ + @Excel(name = "系统内置", readConverterExp = "Y=是,N=否") + private String configType; + + public Long getConfigId() + { + return configId; + } + + public void setConfigId(Long configId) + { + this.configId = configId; + } + + @NotBlank(message = "参数名称不能为空") + @Size(min = 0, max = 100, message = "参数名称不能超过100个字符") + public String getConfigName() + { + return configName; + } + + public void setConfigName(String configName) + { + this.configName = configName; + } + + @NotBlank(message = "参数键名长度不能为空") + @Size(min = 0, max = 100, message = "参数键名长度不能超过100个字符") + public String getConfigKey() + { + return configKey; + } + + public void setConfigKey(String configKey) + { + this.configKey = configKey; + } + + @NotBlank(message = "参数键值不能为空") + @Size(min = 0, max = 2000, message = "参数键值长度不能超过500个字符") + public String getConfigValue() + { + return configValue; + } + + public void setConfigValue(String configValue) + { + this.configValue = configValue; + } + + public String getConfigType() + { + return configType; + } + + public void setConfigType(String configType) + { + this.configType = configType; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("configId", getConfigId()) + .append("configName", getConfigName()) + .append("configKey", getConfigKey()) + .append("configValue", getConfigValue()) + .append("configType", getConfigType()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java new file mode 100644 index 0000000..e615575 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java @@ -0,0 +1,145 @@ +package com.ruoyi.system.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.annotation.Excel.ColumnType; +import com.ruoyi.common.core.domain.BaseEntity; + +import java.time.LocalDateTime; + +/** + * 系统访问记录表 sys_logininfor + * + * @author ruoyi + */ +public class SysLogininfor extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** ID */ + @Excel(name = "序号", cellType = ColumnType.NUMERIC) + private Long infoId; + + /** 用户账号 */ + @Excel(name = "用户账号") + private String userName; + + /** 登录状态 0成功 1失败 */ + @Excel(name = "登录状态", readConverterExp = "0=成功,1=失败") + private String status; + + /** 登录IP地址 */ + @Excel(name = "登录地址") + private String ipaddr; + + /** 登录地点 */ + @Excel(name = "登录地点") + private String loginLocation; + + /** 浏览器类型 */ + @Excel(name = "浏览器") + private String browser; + + /** 操作系统 */ + @Excel(name = "操作系统") + private String os; + + /** 提示消息 */ + @Excel(name = "提示消息") + private String msg; + + /** 访问时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime loginTime; + + public Long getInfoId() + { + return infoId; + } + + public void setInfoId(Long infoId) + { + this.infoId = infoId; + } + + public String getUserName() + { + return userName; + } + + public void setUserName(String userName) + { + this.userName = userName; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getIpaddr() + { + return ipaddr; + } + + public void setIpaddr(String ipaddr) + { + this.ipaddr = ipaddr; + } + + public String getLoginLocation() + { + return loginLocation; + } + + public void setLoginLocation(String loginLocation) + { + this.loginLocation = loginLocation; + } + + public String getBrowser() + { + return browser; + } + + public void setBrowser(String browser) + { + this.browser = browser; + } + + public String getOs() + { + return os; + } + + public void setOs(String os) + { + this.os = os; + } + + public String getMsg() + { + return msg; + } + + public void setMsg(String msg) + { + this.msg = msg; + } + + public LocalDateTime getLoginTime() + { + return loginTime; + } + + public void setLoginTime(LocalDateTime loginTime) + { + this.loginTime = loginTime; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java new file mode 100644 index 0000000..b43abea --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java @@ -0,0 +1,100 @@ +package com.ruoyi.system.domain; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 通知公告表 sys_notice + * + * @author ruoyi + */ +public class SysNotice extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 公告ID */ + private Long noticeId; + + /** 公告标题 */ + private String noticeTitle; + + /** 公告类型(1通知 2公告) */ + private String noticeType; + + /** 公告内容 */ + private String noticeContent; + + /** 公告状态(0正常 1关闭) */ + private String status; + + public Long getNoticeId() + { + return noticeId; + } + + public void setNoticeId(Long noticeId) + { + this.noticeId = noticeId; + } + + public void setNoticeTitle(String noticeTitle) + { + this.noticeTitle = noticeTitle; + } + + @NotBlank(message = "公告标题不能为空") + @Size(min = 0, max = 50, message = "公告标题不能超过50个字符") + public String getNoticeTitle() + { + return noticeTitle; + } + + public void setNoticeType(String noticeType) + { + this.noticeType = noticeType; + } + + public String getNoticeType() + { + return noticeType; + } + + public void setNoticeContent(String noticeContent) + { + this.noticeContent = noticeContent; + } + + public String getNoticeContent() + { + return noticeContent; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("noticeId", getNoticeId()) + .append("noticeTitle", getNoticeTitle()) + .append("noticeType", getNoticeType()) + .append("noticeContent", getNoticeContent()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java new file mode 100644 index 0000000..175ee03 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java @@ -0,0 +1,255 @@ +package com.ruoyi.system.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.annotation.Excel.ColumnType; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 操作日志记录表 oper_log + * + * @author ruoyi + */ +public class SysOperLog extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 日志主键 */ + @Excel(name = "操作序号", cellType = ColumnType.NUMERIC) + private Long operId; + + /** 操作模块 */ + @Excel(name = "操作模块") + private String title; + + /** 业务类型(0其它 1新增 2修改 3删除) */ + @Excel(name = "业务类型", readConverterExp = "0=其它,1=新增,2=修改,3=删除,4=授权,5=导出,6=导入,7=强退,8=生成代码,9=清空数据") + private Integer businessType; + + /** 业务类型数组 */ + private Integer[] businessTypes; + + /** 请求方法 */ + @Excel(name = "请求方法") + private String method; + + /** 请求方式 */ + @Excel(name = "请求方式") + private String requestMethod; + + /** 操作类别(0其它 1后台用户 2手机端用户) */ + @Excel(name = "操作类别", readConverterExp = "0=其它,1=后台用户,2=手机端用户") + private Integer operatorType; + + /** 操作人员 */ + @Excel(name = "操作人员") + private String operName; + + /** 部门名称 */ + @Excel(name = "部门名称") + private String deptName; + + /** 请求url */ + @Excel(name = "请求地址") + private String operUrl; + + /** 操作地址 */ + @Excel(name = "操作地址") + private String operIp; + + /** 操作地点 */ + @Excel(name = "操作地点") + private String operLocation; + + /** 请求参数 */ + @Excel(name = "请求参数") + private String operParam; + + /** 返回参数 */ + @Excel(name = "返回参数") + private String jsonResult; + + /** 操作状态(0正常 1异常) */ + @Excel(name = "状态", readConverterExp = "0=正常,1=异常") + private Integer status; + + /** 错误消息 */ + @Excel(name = "错误消息") + private String errorMsg; + + /** 操作时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date operTime; + + public Long getOperId() + { + return operId; + } + + public void setOperId(Long operId) + { + this.operId = operId; + } + + public String getTitle() + { + return title; + } + + public void setTitle(String title) + { + this.title = title; + } + + public Integer getBusinessType() + { + return businessType; + } + + public void setBusinessType(Integer businessType) + { + this.businessType = businessType; + } + + public Integer[] getBusinessTypes() + { + return businessTypes; + } + + public void setBusinessTypes(Integer[] businessTypes) + { + this.businessTypes = businessTypes; + } + + public String getMethod() + { + return method; + } + + public void setMethod(String method) + { + this.method = method; + } + + public String getRequestMethod() + { + return requestMethod; + } + + public void setRequestMethod(String requestMethod) + { + this.requestMethod = requestMethod; + } + + public Integer getOperatorType() + { + return operatorType; + } + + public void setOperatorType(Integer operatorType) + { + this.operatorType = operatorType; + } + + public String getOperName() + { + return operName; + } + + public void setOperName(String operName) + { + this.operName = operName; + } + + public String getDeptName() + { + return deptName; + } + + public void setDeptName(String deptName) + { + this.deptName = deptName; + } + + public String getOperUrl() + { + return operUrl; + } + + public void setOperUrl(String operUrl) + { + this.operUrl = operUrl; + } + + public String getOperIp() + { + return operIp; + } + + public void setOperIp(String operIp) + { + this.operIp = operIp; + } + + public String getOperLocation() + { + return operLocation; + } + + public void setOperLocation(String operLocation) + { + this.operLocation = operLocation; + } + + public String getOperParam() + { + return operParam; + } + + public void setOperParam(String operParam) + { + this.operParam = operParam; + } + + public String getJsonResult() + { + return jsonResult; + } + + public void setJsonResult(String jsonResult) + { + this.jsonResult = jsonResult; + } + + public Integer getStatus() + { + return status; + } + + public void setStatus(Integer status) + { + this.status = status; + } + + public String getErrorMsg() + { + return errorMsg; + } + + public void setErrorMsg(String errorMsg) + { + this.errorMsg = errorMsg; + } + + public Date getOperTime() + { + return operTime; + } + + public void setOperTime(Date operTime) + { + this.operTime = operTime; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java new file mode 100644 index 0000000..1f1fcf4 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java @@ -0,0 +1,123 @@ +package com.ruoyi.system.domain; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.annotation.Excel.ColumnType; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 岗位表 sys_post + * + * @author ruoyi + */ +public class SysPost extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 岗位序号 */ + @Excel(name = "岗位序号", cellType = ColumnType.NUMERIC) + private Long postId; + + /** 岗位编码 */ + @Excel(name = "岗位编码") + private String postCode; + + /** 岗位名称 */ + @Excel(name = "岗位名称") + private String postName; + + /** 岗位排序 */ + @Excel(name = "岗位排序") + private String postSort; + + /** 状态(0正常 1停用) */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + /** 用户是否存在此岗位标识 默认不存在 */ + private boolean flag = false; + + public Long getPostId() + { + return postId; + } + + public void setPostId(Long postId) + { + this.postId = postId; + } + + @NotBlank(message = "岗位编码不能为空") + @Size(min = 0, max = 64, message = "岗位编码长度不能超过64个字符") + public String getPostCode() + { + return postCode; + } + + public void setPostCode(String postCode) + { + this.postCode = postCode; + } + + @NotBlank(message = "岗位名称不能为空") + @Size(min = 0, max = 50, message = "岗位名称长度不能超过50个字符") + public String getPostName() + { + return postName; + } + + public void setPostName(String postName) + { + this.postName = postName; + } + + @NotBlank(message = "显示顺序不能为空") + public String getPostSort() + { + return postSort; + } + + public void setPostSort(String postSort) + { + this.postSort = postSort; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } + + public boolean isFlag() + { + return flag; + } + + public void setFlag(boolean flag) + { + this.flag = flag; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("postId", getPostId()) + .append("postCode", getPostCode()) + .append("postName", getPostName()) + .append("postSort", getPostSort()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java new file mode 100644 index 0000000..47b21bf --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java @@ -0,0 +1,46 @@ +package com.ruoyi.system.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 角色和部门关联 sys_role_dept + * + * @author ruoyi + */ +public class SysRoleDept +{ + /** 角色ID */ + private Long roleId; + + /** 部门ID */ + private Long deptId; + + public Long getRoleId() + { + return roleId; + } + + public void setRoleId(Long roleId) + { + this.roleId = roleId; + } + + public Long getDeptId() + { + return deptId; + } + + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("roleId", getRoleId()) + .append("deptId", getDeptId()) + .toString(); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java new file mode 100644 index 0000000..de10a74 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java @@ -0,0 +1,46 @@ +package com.ruoyi.system.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 角色和菜单关联 sys_role_menu + * + * @author ruoyi + */ +public class SysRoleMenu +{ + /** 角色ID */ + private Long roleId; + + /** 菜单ID */ + private Long menuId; + + public Long getRoleId() + { + return roleId; + } + + public void setRoleId(Long roleId) + { + this.roleId = roleId; + } + + public Long getMenuId() + { + return menuId; + } + + public void setMenuId(Long menuId) + { + this.menuId = menuId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("roleId", getRoleId()) + .append("menuId", getMenuId()) + .toString(); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java new file mode 100644 index 0000000..2bbd318 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java @@ -0,0 +1,113 @@ +package com.ruoyi.system.domain; + +/** + * 当前在线会话 + * + * @author ruoyi + */ +public class SysUserOnline +{ + /** 会话编号 */ + private String tokenId; + + /** 部门名称 */ + private String deptName; + + /** 用户名称 */ + private String userName; + + /** 登录IP地址 */ + private String ipaddr; + + /** 登录地址 */ + private String loginLocation; + + /** 浏览器类型 */ + private String browser; + + /** 操作系统 */ + private String os; + + /** 登录时间 */ + private Long loginTime; + + public String getTokenId() + { + return tokenId; + } + + public void setTokenId(String tokenId) + { + this.tokenId = tokenId; + } + + public String getDeptName() + { + return deptName; + } + + public void setDeptName(String deptName) + { + this.deptName = deptName; + } + + public String getUserName() + { + return userName; + } + + public void setUserName(String userName) + { + this.userName = userName; + } + + public String getIpaddr() + { + return ipaddr; + } + + public void setIpaddr(String ipaddr) + { + this.ipaddr = ipaddr; + } + + public String getLoginLocation() + { + return loginLocation; + } + + public void setLoginLocation(String loginLocation) + { + this.loginLocation = loginLocation; + } + + public String getBrowser() + { + return browser; + } + + public void setBrowser(String browser) + { + this.browser = browser; + } + + public String getOs() + { + return os; + } + + public void setOs(String os) + { + this.os = os; + } + + public Long getLoginTime() + { + return loginTime; + } + + public void setLoginTime(Long loginTime) + { + this.loginTime = loginTime; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java new file mode 100644 index 0000000..6e8c416 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java @@ -0,0 +1,46 @@ +package com.ruoyi.system.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 用户和岗位关联 sys_user_post + * + * @author ruoyi + */ +public class SysUserPost +{ + /** 用户ID */ + private Long userId; + + /** 岗位ID */ + private Long postId; + + public Long getUserId() + { + return userId; + } + + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getPostId() + { + return postId; + } + + public void setPostId(Long postId) + { + this.postId = postId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("userId", getUserId()) + .append("postId", getPostId()) + .toString(); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java new file mode 100644 index 0000000..4d15810 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java @@ -0,0 +1,46 @@ +package com.ruoyi.system.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 用户和角色关联 sys_user_role + * + * @author ruoyi + */ +public class SysUserRole +{ + /** 用户ID */ + private Long userId; + + /** 角色ID */ + private Long roleId; + + public Long getUserId() + { + return userId; + } + + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getRoleId() + { + return roleId; + } + + public void setRoleId(Long roleId) + { + this.roleId = roleId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("userId", getUserId()) + .append("roleId", getRoleId()) + .toString(); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java new file mode 100644 index 0000000..a5d5fdc --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java @@ -0,0 +1,106 @@ +package com.ruoyi.system.domain.vo; + +import com.ruoyi.common.utils.StringUtils; + +/** + * 路由显示信息 + * + * @author ruoyi + */ +public class MetaVo +{ + /** + * 设置该路由在侧边栏和面包屑中展示的名字 + */ + private String title; + + /** + * 设置该路由的图标,对应路径src/assets/icons/svg + */ + private String icon; + + /** + * 设置为true,则不会被 缓存 + */ + private boolean noCache; + + /** + * 内链地址(http(s)://开头) + */ + private String link; + + public MetaVo() + { + } + + public MetaVo(String title, String icon) + { + this.title = title; + this.icon = icon; + } + + public MetaVo(String title, String icon, boolean noCache) + { + this.title = title; + this.icon = icon; + this.noCache = noCache; + } + + public MetaVo(String title, String icon, String link) + { + this.title = title; + this.icon = icon; + this.link = link; + } + + public MetaVo(String title, String icon, boolean noCache, String link) + { + this.title = title; + this.icon = icon; + this.noCache = noCache; + if (StringUtils.ishttp(link)) + { + this.link = link; + } + } + + public boolean isNoCache() + { + return noCache; + } + + public void setNoCache(boolean noCache) + { + this.noCache = noCache; + } + + public String getTitle() + { + return title; + } + + public void setTitle(String title) + { + this.title = title; + } + + public String getIcon() + { + return icon; + } + + public void setIcon(String icon) + { + this.icon = icon; + } + + public String getLink() + { + return link; + } + + public void setLink(String link) + { + this.link = link; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java new file mode 100644 index 0000000..afff8c9 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java @@ -0,0 +1,148 @@ +package com.ruoyi.system.domain.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import java.util.List; + +/** + * 路由配置信息 + * + * @author ruoyi + */ +@JsonInclude(JsonInclude.Include.NON_EMPTY) +public class RouterVo +{ + /** + * 路由名字 + */ + private String name; + + /** + * 路由地址 + */ + private String path; + + /** + * 是否隐藏路由,当设置 true 的时候该路由不会再侧边栏出现 + */ + private boolean hidden; + + /** + * 重定向地址,当设置 noRedirect 的时候该路由在面包屑导航中不可被点击 + */ + private String redirect; + + /** + * 组件地址 + */ + private String component; + + /** + * 路由参数:如 {"id": 1, "name": "ry"} + */ + private String query; + + /** + * 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面 + */ + private Boolean alwaysShow; + + /** + * 其他元素 + */ + private MetaVo meta; + + /** + * 子路由 + */ + private List children; + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + public String getPath() + { + return path; + } + + public void setPath(String path) + { + this.path = path; + } + + public boolean getHidden() + { + return hidden; + } + + public void setHidden(boolean hidden) + { + this.hidden = hidden; + } + + public String getRedirect() + { + return redirect; + } + + public void setRedirect(String redirect) + { + this.redirect = redirect; + } + + public String getComponent() + { + return component; + } + + public void setComponent(String component) + { + this.component = component; + } + + public String getQuery() + { + return query; + } + + public void setQuery(String query) + { + this.query = query; + } + + public Boolean getAlwaysShow() + { + return alwaysShow; + } + + public void setAlwaysShow(Boolean alwaysShow) + { + this.alwaysShow = alwaysShow; + } + + public MetaVo getMeta() + { + return meta; + } + + public void setMeta(MetaVo meta) + { + this.meta = meta; + } + + public List getChildren() + { + return children; + } + + public void setChildren(List children) + { + this.children = children; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java new file mode 100644 index 0000000..0ed0c0a --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java @@ -0,0 +1,68 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import com.ruoyi.system.domain.SysConfig; + +/** + * 参数配置 数据层 + * + * @author ruoyi + */ +public interface SysConfigMapper +{ + /** + * 查询参数配置信息 + * + * @param config 参数配置信息 + * @return 参数配置信息 + */ + public SysConfig selectConfig(SysConfig config); + + /** + * 查询参数配置列表 + * + * @param config 参数配置信息 + * @return 参数配置集合 + */ + public List selectConfigList(SysConfig config); + + /** + * 根据键名查询参数配置信息 + * + * @param configKey 参数键名 + * @return 参数配置信息 + */ + public SysConfig checkConfigKeyUnique(String configKey); + + /** + * 新增参数配置 + * + * @param config 参数配置信息 + * @return 结果 + */ + public int insertConfig(SysConfig config); + + /** + * 修改参数配置 + * + * @param config 参数配置信息 + * @return 结果 + */ + public int updateConfig(SysConfig config); + + /** + * 删除参数配置 + * + * @param configId 参数ID + * @return 结果 + */ + public int deleteConfigById(Long configId); + + /** + * 批量删除参数信息 + * + * @param configIds 需要删除的参数ID + * @return 结果 + */ + public int deleteConfigByIds(Long[] configIds); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java new file mode 100644 index 0000000..415599c --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java @@ -0,0 +1,118 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import org.apache.ibatis.annotations.Param; +import com.ruoyi.common.core.domain.entity.SysDept; + +/** + * 部门管理 数据层 + * + * @author ruoyi + */ +public interface SysDeptMapper +{ + /** + * 查询部门管理数据 + * + * @param dept 部门信息 + * @return 部门信息集合 + */ + public List selectDeptList(SysDept dept); + + /** + * 根据角色ID查询部门树信息 + * + * @param roleId 角色ID + * @param deptCheckStrictly 部门树选择项是否关联显示 + * @return 选中部门列表 + */ + public List selectDeptListByRoleId(@Param("roleId") Long roleId, @Param("deptCheckStrictly") boolean deptCheckStrictly); + + /** + * 根据部门ID查询信息 + * + * @param deptId 部门ID + * @return 部门信息 + */ + public SysDept selectDeptById(Long deptId); + + /** + * 根据ID查询所有子部门 + * + * @param deptId 部门ID + * @return 部门列表 + */ + public List selectChildrenDeptById(Long deptId); + + /** + * 根据ID查询所有子部门(正常状态) + * + * @param deptId 部门ID + * @return 子部门数 + */ + public int selectNormalChildrenDeptById(Long deptId); + + /** + * 是否存在子节点 + * + * @param deptId 部门ID + * @return 结果 + */ + public int hasChildByDeptId(Long deptId); + + /** + * 查询部门是否存在用户 + * + * @param deptId 部门ID + * @return 结果 + */ + public int checkDeptExistUser(Long deptId); + + /** + * 校验部门名称是否唯一 + * + * @param deptName 部门名称 + * @param parentId 父部门ID + * @return 结果 + */ + public SysDept checkDeptNameUnique(@Param("deptName") String deptName, @Param("parentId") Long parentId); + + /** + * 新增部门信息 + * + * @param dept 部门信息 + * @return 结果 + */ + public int insertDept(SysDept dept); + + /** + * 修改部门信息 + * + * @param dept 部门信息 + * @return 结果 + */ + public int updateDept(SysDept dept); + + /** + * 修改所在部门正常状态 + * + * @param deptIds 部门ID组 + */ + public void updateDeptStatusNormal(Long[] deptIds); + + /** + * 修改子元素关系 + * + * @param depts 子元素 + * @return 结果 + */ + public int updateDeptChildren(@Param("depts") List depts); + + /** + * 删除部门管理信息 + * + * @param deptId 部门ID + * @return 结果 + */ + public int deleteDeptById(Long deptId); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java new file mode 100644 index 0000000..a341f1e --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java @@ -0,0 +1,95 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import org.apache.ibatis.annotations.Param; +import com.ruoyi.common.core.domain.entity.SysDictData; + +/** + * 字典表 数据层 + * + * @author ruoyi + */ +public interface SysDictDataMapper +{ + /** + * 根据条件分页查询字典数据 + * + * @param dictData 字典数据信息 + * @return 字典数据集合信息 + */ + public List selectDictDataList(SysDictData dictData); + + /** + * 根据字典类型查询字典数据 + * + * @param dictType 字典类型 + * @return 字典数据集合信息 + */ + public List selectDictDataByType(String dictType); + + /** + * 根据字典类型和字典键值查询字典数据信息 + * + * @param dictType 字典类型 + * @param dictValue 字典键值 + * @return 字典标签 + */ + public String selectDictLabel(@Param("dictType") String dictType, @Param("dictValue") String dictValue); + + /** + * 根据字典数据ID查询信息 + * + * @param dictCode 字典数据ID + * @return 字典数据 + */ + public SysDictData selectDictDataById(Long dictCode); + + /** + * 查询字典数据 + * + * @param dictType 字典类型 + * @return 字典数据 + */ + public int countDictDataByType(String dictType); + + /** + * 通过字典ID删除字典数据信息 + * + * @param dictCode 字典数据ID + * @return 结果 + */ + public int deleteDictDataById(Long dictCode); + + /** + * 批量删除字典数据信息 + * + * @param dictCodes 需要删除的字典数据ID + * @return 结果 + */ + public int deleteDictDataByIds(Long[] dictCodes); + + /** + * 新增字典数据信息 + * + * @param dictData 字典数据信息 + * @return 结果 + */ + public int insertDictData(SysDictData dictData); + + /** + * 修改字典数据信息 + * + * @param dictData 字典数据信息 + * @return 结果 + */ + public int updateDictData(SysDictData dictData); + + /** + * 同步修改字典类型 + * + * @param oldDictType 旧字典类型 + * @param newDictType 新旧字典类型 + * @return 结果 + */ + public int updateDictDataType(@Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java new file mode 100644 index 0000000..17545cd --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java @@ -0,0 +1,85 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import org.apache.ibatis.annotations.Mapper; +import com.ruoyi.common.core.domain.entity.SysDictType; + +/** + * 字典表 数据层 + * + * @author ruoyi + */ +@Mapper +public interface SysDictTypeMapper +{ + /** + * 根据条件分页查询字典类型 + * + * @param dictType 字典类型信息 + * @return 字典类型集合信息 + */ + public List selectDictTypeList(SysDictType dictType); + + /** + * 根据所有字典类型 + * + * @return 字典类型集合信息 + */ + public List selectDictTypeAll(); + + /** + * 根据字典类型ID查询信息 + * + * @param dictId 字典类型ID + * @return 字典类型 + */ + public SysDictType selectDictTypeById(Long dictId); + + /** + * 根据字典类型查询信息 + * + * @param dictType 字典类型 + * @return 字典类型 + */ + public SysDictType selectDictTypeByType(String dictType); + + /** + * 通过字典ID删除字典信息 + * + * @param dictId 字典ID + * @return 结果 + */ + public int deleteDictTypeById(Long dictId); + + /** + * 批量删除字典类型信息 + * + * @param dictIds 需要删除的字典ID + * @return 结果 + */ + public int deleteDictTypeByIds(Long[] dictIds); + + /** + * 新增字典类型信息 + * + * @param dictType 字典类型信息 + * @return 结果 + */ + public int insertDictType(SysDictType dictType); + + /** + * 修改字典类型信息 + * + * @param dictType 字典类型信息 + * @return 结果 + */ + public int updateDictType(SysDictType dictType); + + /** + * 校验字典类型称是否唯一 + * + * @param dictType 字典类型 + * @return 结果 + */ + public SysDictType checkDictTypeUnique(String dictType); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysLogininforMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysLogininforMapper.java new file mode 100644 index 0000000..629866f --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysLogininforMapper.java @@ -0,0 +1,42 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import com.ruoyi.system.domain.SysLogininfor; + +/** + * 系统访问日志情况信息 数据层 + * + * @author ruoyi + */ +public interface SysLogininforMapper +{ + /** + * 新增系统登录日志 + * + * @param logininfor 访问日志对象 + */ + public void insertLogininfor(SysLogininfor logininfor); + + /** + * 查询系统登录日志集合 + * + * @param logininfor 访问日志对象 + * @return 登录记录集合 + */ + public List selectLogininforList(SysLogininfor logininfor); + + /** + * 批量删除系统登录日志 + * + * @param infoIds 需要删除的登录日志ID + * @return 结果 + */ + public int deleteLogininforByIds(Long[] infoIds); + + /** + * 清空系统登录日志 + * + * @return 结果 + */ + public int cleanLogininfor(); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java new file mode 100644 index 0000000..1c2e853 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java @@ -0,0 +1,117 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import org.apache.ibatis.annotations.Param; +import com.ruoyi.common.core.domain.entity.SysMenu; + +/** + * 菜单表 数据层 + * + * @author ruoyi + */ +public interface SysMenuMapper +{ + /** + * 查询系统菜单列表 + * + * @param menu 菜单信息 + * @return 菜单列表 + */ + public List selectMenuList(SysMenu menu); + + /** + * 根据用户所有权限 + * + * @return 权限列表 + */ + public List selectMenuPerms(); + + /** + * 根据用户查询系统菜单列表 + * + * @param menu 菜单信息 + * @return 菜单列表 + */ + public List selectMenuListByUserId(SysMenu menu); + + /** + * 根据用户ID查询权限 + * + * @param userId 用户ID + * @return 权限列表 + */ + public List selectMenuPermsByUserId(Long userId); + + /** + * 根据用户ID查询菜单 + * + * @return 菜单列表 + */ + public List selectMenuTreeAll(); + + /** + * 根据用户ID查询菜单 + * + * @param userId 用户ID + * @return 菜单列表 + */ + public List selectMenuTreeByUserId(Long userId); + + /** + * 根据角色ID查询菜单树信息 + * + * @param roleId 角色ID + * @param menuCheckStrictly 菜单树选择项是否关联显示 + * @return 选中菜单列表 + */ + public List selectMenuListByRoleId(@Param("roleId") Long roleId, @Param("menuCheckStrictly") boolean menuCheckStrictly); + + /** + * 根据菜单ID查询信息 + * + * @param menuId 菜单ID + * @return 菜单信息 + */ + public SysMenu selectMenuById(Long menuId); + + /** + * 是否存在菜单子节点 + * + * @param menuId 菜单ID + * @return 结果 + */ + public int hasChildByMenuId(Long menuId); + + /** + * 新增菜单信息 + * + * @param menu 菜单信息 + * @return 结果 + */ + public int insertMenu(SysMenu menu); + + /** + * 修改菜单信息 + * + * @param menu 菜单信息 + * @return 结果 + */ + public int updateMenu(SysMenu menu); + + /** + * 删除菜单管理信息 + * + * @param menuId 菜单ID + * @return 结果 + */ + public int deleteMenuById(Long menuId); + + /** + * 校验菜单名称是否唯一 + * + * @param menuName 菜单名称 + * @param parentId 父菜单ID + * @return 结果 + */ + public SysMenu checkMenuNameUnique(@Param("menuName") String menuName, @Param("parentId") Long parentId); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeMapper.java new file mode 100644 index 0000000..c34f0a2 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeMapper.java @@ -0,0 +1,60 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import com.ruoyi.system.domain.SysNotice; + +/** + * 通知公告表 数据层 + * + * @author ruoyi + */ +public interface SysNoticeMapper +{ + /** + * 查询公告信息 + * + * @param noticeId 公告ID + * @return 公告信息 + */ + public SysNotice selectNoticeById(Long noticeId); + + /** + * 查询公告列表 + * + * @param notice 公告信息 + * @return 公告集合 + */ + public List selectNoticeList(SysNotice notice); + + /** + * 新增公告 + * + * @param notice 公告信息 + * @return 结果 + */ + public int insertNotice(SysNotice notice); + + /** + * 修改公告 + * + * @param notice 公告信息 + * @return 结果 + */ + public int updateNotice(SysNotice notice); + + /** + * 批量删除公告 + * + * @param noticeId 公告ID + * @return 结果 + */ + public int deleteNoticeById(Long noticeId); + + /** + * 批量删除公告信息 + * + * @param noticeIds 需要删除的公告ID + * @return 结果 + */ + public int deleteNoticeByIds(Long[] noticeIds); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java new file mode 100644 index 0000000..2ae6457 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java @@ -0,0 +1,48 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import com.ruoyi.system.domain.SysOperLog; + +/** + * 操作日志 数据层 + * + * @author ruoyi + */ +public interface SysOperLogMapper +{ + /** + * 新增操作日志 + * + * @param operLog 操作日志对象 + */ + public void insertOperlog(SysOperLog operLog); + + /** + * 查询系统操作日志集合 + * + * @param operLog 操作日志对象 + * @return 操作日志集合 + */ + public List selectOperLogList(SysOperLog operLog); + + /** + * 批量删除系统操作日志 + * + * @param operIds 需要删除的操作日志ID + * @return 结果 + */ + public int deleteOperLogByIds(Long[] operIds); + + /** + * 查询操作日志详细 + * + * @param operId 操作ID + * @return 操作日志对象 + */ + public SysOperLog selectOperLogById(Long operId); + + /** + * 清空操作日志 + */ + public void cleanOperLog(); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysPostMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysPostMapper.java new file mode 100644 index 0000000..b428747 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysPostMapper.java @@ -0,0 +1,99 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import com.ruoyi.system.domain.SysPost; + +/** + * 岗位信息 数据层 + * + * @author ruoyi + */ +public interface SysPostMapper +{ + /** + * 查询岗位数据集合 + * + * @param post 岗位信息 + * @return 岗位数据集合 + */ + public List selectPostList(SysPost post); + + /** + * 查询所有岗位 + * + * @return 岗位列表 + */ + public List selectPostAll(); + + /** + * 通过岗位ID查询岗位信息 + * + * @param postId 岗位ID + * @return 角色对象信息 + */ + public SysPost selectPostById(Long postId); + + /** + * 根据用户ID获取岗位选择框列表 + * + * @param userId 用户ID + * @return 选中岗位ID列表 + */ + public List selectPostListByUserId(Long userId); + + /** + * 查询用户所属岗位组 + * + * @param userName 用户名 + * @return 结果 + */ + public List selectPostsByUserName(String userName); + + /** + * 删除岗位信息 + * + * @param postId 岗位ID + * @return 结果 + */ + public int deletePostById(Long postId); + + /** + * 批量删除岗位信息 + * + * @param postIds 需要删除的岗位ID + * @return 结果 + */ + public int deletePostByIds(Long[] postIds); + + /** + * 修改岗位信息 + * + * @param post 岗位信息 + * @return 结果 + */ + public int updatePost(SysPost post); + + /** + * 新增岗位信息 + * + * @param post 岗位信息 + * @return 结果 + */ + public int insertPost(SysPost post); + + /** + * 校验岗位名称 + * + * @param postName 岗位名称 + * @return 结果 + */ + public SysPost checkPostNameUnique(String postName); + + /** + * 校验岗位编码 + * + * @param postCode 岗位编码 + * @return 结果 + */ + public SysPost checkPostCodeUnique(String postCode); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleDeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleDeptMapper.java new file mode 100644 index 0000000..f9d3a2f --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleDeptMapper.java @@ -0,0 +1,44 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import com.ruoyi.system.domain.SysRoleDept; + +/** + * 角色与部门关联表 数据层 + * + * @author ruoyi + */ +public interface SysRoleDeptMapper +{ + /** + * 通过角色ID删除角色和部门关联 + * + * @param roleId 角色ID + * @return 结果 + */ + public int deleteRoleDeptByRoleId(Long roleId); + + /** + * 批量删除角色部门关联信息 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteRoleDept(Long[] ids); + + /** + * 查询部门使用数量 + * + * @param deptId 部门ID + * @return 结果 + */ + public int selectCountRoleDeptByDeptId(Long deptId); + + /** + * 批量新增角色部门信息 + * + * @param roleDeptList 角色部门列表 + * @return 结果 + */ + public int batchRoleDept(List roleDeptList); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java new file mode 100644 index 0000000..11647ab --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java @@ -0,0 +1,111 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import com.ruoyi.common.core.domain.entity.SysRole; +import org.apache.ibatis.annotations.Select; + +/** + * 角色表 数据层 + * + * @author ruoyi + */ +public interface SysRoleMapper +{ + /** + * 根据条件分页查询角色数据 + * + * @param role 角色信息 + * @return 角色数据集合信息 + */ + public List selectRoleList(SysRole role); + + /** + * 根据用户ID查询角色 + * + * @param userId 用户ID + * @return 角色列表 + */ + public List selectRolePermissionByUserId(Long userId); + + /** + * 查询所有角色 + * + * @return 角色列表 + */ + public List selectRoleAll(); + + /** + * 根据用户ID获取角色选择框列表 + * + * @param userId 用户ID + * @return 选中角色ID列表 + */ + public List selectRoleListByUserId(Long userId); + + /** + * 通过角色ID查询角色 + * + * @param roleId 角色ID + * @return 角色对象信息 + */ + public SysRole selectRoleById(Long roleId); + + /** + * 根据用户ID查询角色 + * + * @param userName 用户名 + * @return 角色列表 + */ + public List selectRolesByUserName(String userName); + + /** + * 校验角色名称是否唯一 + * + * @param roleName 角色名称 + * @return 角色信息 + */ + public SysRole checkRoleNameUnique(String roleName); + + /** + * 校验角色权限是否唯一 + * + * @param roleKey 角色权限 + * @return 角色信息 + */ + public SysRole checkRoleKeyUnique(String roleKey); + + /** + * 修改角色信息 + * + * @param role 角色信息 + * @return 结果 + */ + public int updateRole(SysRole role); + + /** + * 新增角色信息 + * + * @param role 角色信息 + * @return 结果 + */ + public int insertRole(SysRole role); + + /** + * 通过角色ID删除角色 + * + * @param roleId 角色ID + * @return 结果 + */ + public int deleteRoleById(Long roleId); + + /** + * 批量删除角色信息 + * + * @param roleIds 需要删除的角色ID + * @return 结果 + */ + public int deleteRoleByIds(Long[] roleIds); + + @Select("SELECT * FROM sys_role where role_key = #{roleKey}") + SysRole selectRoleByKey(String roleKey); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java new file mode 100644 index 0000000..6602bee --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java @@ -0,0 +1,44 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import com.ruoyi.system.domain.SysRoleMenu; + +/** + * 角色与菜单关联表 数据层 + * + * @author ruoyi + */ +public interface SysRoleMenuMapper +{ + /** + * 查询菜单使用数量 + * + * @param menuId 菜单ID + * @return 结果 + */ + public int checkMenuExistRole(Long menuId); + + /** + * 通过角色ID删除角色和菜单关联 + * + * @param roleId 角色ID + * @return 结果 + */ + public int deleteRoleMenuByRoleId(Long roleId); + + /** + * 批量删除角色菜单关联信息 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteRoleMenu(Long[] ids); + + /** + * 批量新增角色菜单信息 + * + * @param roleMenuList 角色菜单列表 + * @return 结果 + */ + public int batchRoleMenu(List roleMenuList); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java new file mode 100644 index 0000000..76195b0 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java @@ -0,0 +1,131 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import org.apache.ibatis.annotations.Param; +import com.ruoyi.common.core.domain.entity.SysUser; +import org.apache.ibatis.annotations.Select; + +/** + * 用户表 数据层 + * + * @author ruoyi + */ +public interface SysUserMapper +{ + /** + * 根据条件分页查询用户列表 + * + * @param sysUser 用户信息 + * @return 用户信息集合信息 + */ + public List selectUserList(SysUser sysUser); + + /** + * 根据条件分页查询未已配用户角色列表 + * + * @param user 用户信息 + * @return 用户信息集合信息 + */ + public List selectAllocatedList(SysUser user); + + /** + * 根据条件分页查询未分配用户角色列表 + * + * @param user 用户信息 + * @return 用户信息集合信息 + */ + public List selectUnallocatedList(SysUser user); + + /** + * 通过用户名查询用户 + * + * @param userName 用户名 + * @return 用户对象信息 + */ + public SysUser selectUserByUserName(String userName); + + /** + * 通过用户ID查询用户 + * + * @param userId 用户ID + * @return 用户对象信息 + */ + public SysUser selectUserById(Long userId); + + /** + * 新增用户信息 + * + * @param user 用户信息 + * @return 结果 + */ + public int insertUser(SysUser user); + + /** + * 修改用户信息 + * + * @param user 用户信息 + * @return 结果 + */ + public int updateUser(SysUser user); + + /** + * 修改用户头像 + * + * @param userName 用户名 + * @param avatar 头像地址 + * @return 结果 + */ + public int updateUserAvatar(@Param("userName") String userName, @Param("avatar") String avatar); + + /** + * 重置用户密码 + * + * @param userName 用户名 + * @param password 密码 + * @return 结果 + */ + public int resetUserPwd(@Param("userName") String userName, @Param("password") String password); + + /** + * 通过用户ID删除用户 + * + * @param userId 用户ID + * @return 结果 + */ + public int deleteUserById(Long userId); + + /** + * 批量删除用户信息 + * + * @param userIds 需要删除的用户ID + * @return 结果 + */ + public int deleteUserByIds(Long[] userIds); + + /** + * 校验用户名称是否唯一 + * + * @param userName 用户名称 + * @return 结果 + */ + public int checkUserNameUnique(String userName); + + /** + * 校验手机号码是否唯一 + * + * @param phonenumber 手机号码 + * @return 结果 + */ + public SysUser checkPhoneUnique(String phonenumber); + + /** + * 校验email是否唯一 + * + * @param email 用户邮箱 + * @return 结果 + */ + public SysUser checkEmailUnique(String email); + + @Select("SELECT * from sys_user WHERE (phonenumber = #{phone} or user_name = #{phone}) limit 1") + SysUser selectUserByPhone(@Param("phone") String phone); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserPostMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserPostMapper.java new file mode 100644 index 0000000..e08991d --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserPostMapper.java @@ -0,0 +1,44 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import com.ruoyi.system.domain.SysUserPost; + +/** + * 用户与岗位关联表 数据层 + * + * @author ruoyi + */ +public interface SysUserPostMapper +{ + /** + * 通过用户ID删除用户和岗位关联 + * + * @param userId 用户ID + * @return 结果 + */ + public int deleteUserPostByUserId(Long userId); + + /** + * 通过岗位ID查询岗位使用数量 + * + * @param postId 岗位ID + * @return 结果 + */ + public int countUserPostById(Long postId); + + /** + * 批量删除用户和岗位关联 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteUserPost(Long[] ids); + + /** + * 批量新增用户岗位信息 + * + * @param userPostList 用户角色列表 + * @return 结果 + */ + public int batchUserPost(List userPostList); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java new file mode 100644 index 0000000..d1fa12a --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java @@ -0,0 +1,67 @@ +package com.ruoyi.system.mapper; + +import com.ruoyi.system.domain.SysUserRole; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * 用户与角色关联表 数据层 + * + * @author ruoyi + */ +public interface SysUserRoleMapper +{ + /** + * 通过用户ID删除用户和角色关联 + * + * @param userId 用户ID + * @return 结果 + */ + public int deleteUserRoleByUserId(Long userId); + + /** + * 批量删除用户和角色关联 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteUserRole(Long[] ids); + + /** + * 通过角色ID查询角色使用数量 + * + * @param roleId 角色ID + * @return 结果 + */ + public int countUserRoleByRoleId(Long roleId); + + /** + * 批量新增用户角色信息 + * + * @param userRoleList 用户角色列表 + * @return 结果 + */ + public int batchUserRole(List userRoleList); + + /** + * 删除用户和角色关联信息 + * + * @param userRole 用户和角色关联信息 + * @return 结果 + */ + public int deleteUserRoleInfo(SysUserRole userRole); + + /** + * 批量取消授权用户角色 + * + * @param roleId 角色ID + * @param userIds 需要删除的用户数据ID + * @return 结果 + */ + public int deleteUserRoleInfos(@Param("roleId") Long roleId, @Param("userIds") Long[] userIds); + + @Select("SELECT count(0) FROM sys_user_role WHERE user_id = #{userId} AND role_id = #{roleId}") + int countRoleAndUserId(@Param("roleId") Long roleId, @Param("userId") Long userId); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java new file mode 100644 index 0000000..f867e63 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java @@ -0,0 +1,90 @@ +package com.ruoyi.system.service; + +import java.util.List; +import com.ruoyi.system.domain.SysConfig; + +/** + * 参数配置 服务层 + * + * @author ruoyi + */ +public interface ISysConfigService +{ + /** + * 查询参数配置信息 + * + * @param configId 参数配置ID + * @return 参数配置信息 + */ + public SysConfig selectConfigById(Long configId); + + /** + * 根据键名查询参数配置信息 + * + * @param configKey 参数键名 + * @return 参数键值 + */ + public String selectConfigByKey(String configKey); + + /** + * 获取验证码开关 + * + * @return true开启,false关闭 + */ + public boolean selectCaptchaOnOff(); + + /** + * 查询参数配置列表 + * + * @param config 参数配置信息 + * @return 参数配置集合 + */ + public List selectConfigList(SysConfig config); + + /** + * 新增参数配置 + * + * @param config 参数配置信息 + * @return 结果 + */ + public int insertConfig(SysConfig config); + + /** + * 修改参数配置 + * + * @param config 参数配置信息 + * @return 结果 + */ + public int updateConfig(SysConfig config); + + /** + * 批量删除参数信息 + * + * @param configIds 需要删除的参数ID + * @return 结果 + */ + public void deleteConfigByIds(Long[] configIds); + + /** + * 加载参数缓存数据 + */ + public void loadingConfigCache(); + + /** + * 清空参数缓存数据 + */ + public void clearConfigCache(); + + /** + * 重置参数缓存数据 + */ + public void resetConfigCache(); + + /** + * 校验参数键名是否唯一 + * + * @param config 参数信息 + * @return 结果 + */ + public String checkConfigKeyUnique(SysConfig config); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java new file mode 100644 index 0000000..1bdd472 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java @@ -0,0 +1,116 @@ +package com.ruoyi.system.service; + +import java.util.List; +import com.ruoyi.common.core.domain.TreeSelect; +import com.ruoyi.common.core.domain.entity.SysDept; + +/** + * 部门管理 服务层 + * + * @author ruoyi + */ +public interface ISysDeptService +{ + /** + * 查询部门管理数据 + * + * @param dept 部门信息 + * @return 部门信息集合 + */ + public List selectDeptList(SysDept dept); + + /** + * 构建前端所需要树结构 + * + * @param depts 部门列表 + * @return 树结构列表 + */ + public List buildDeptTree(List depts); + + /** + * 构建前端所需要下拉树结构 + * + * @param depts 部门列表 + * @return 下拉树结构列表 + */ + public List buildDeptTreeSelect(List depts); + + /** + * 根据角色ID查询部门树信息 + * + * @param roleId 角色ID + * @return 选中部门列表 + */ + public List selectDeptListByRoleId(Long roleId); + + /** + * 根据部门ID查询信息 + * + * @param deptId 部门ID + * @return 部门信息 + */ + public SysDept selectDeptById(Long deptId); + + /** + * 根据ID查询所有子部门(正常状态) + * + * @param deptId 部门ID + * @return 子部门数 + */ + public int selectNormalChildrenDeptById(Long deptId); + + /** + * 是否存在部门子节点 + * + * @param deptId 部门ID + * @return 结果 + */ + public boolean hasChildByDeptId(Long deptId); + + /** + * 查询部门是否存在用户 + * + * @param deptId 部门ID + * @return 结果 true 存在 false 不存在 + */ + public boolean checkDeptExistUser(Long deptId); + + /** + * 校验部门名称是否唯一 + * + * @param dept 部门信息 + * @return 结果 + */ + public String checkDeptNameUnique(SysDept dept); + + /** + * 校验部门是否有数据权限 + * + * @param deptId 部门id + */ + public void checkDeptDataScope(Long deptId); + + /** + * 新增保存部门信息 + * + * @param dept 部门信息 + * @return 结果 + */ + public int insertDept(SysDept dept); + + /** + * 修改保存部门信息 + * + * @param dept 部门信息 + * @return 结果 + */ + public int updateDept(SysDept dept); + + /** + * 删除部门管理信息 + * + * @param deptId 部门ID + * @return 结果 + */ + public int deleteDeptById(Long deptId); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java new file mode 100644 index 0000000..b4993e1 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java @@ -0,0 +1,61 @@ +package com.ruoyi.system.service; + +import java.util.List; +import com.ruoyi.common.core.domain.entity.SysDictData; + +/** + * 字典 业务层 + * + * @author ruoyi + */ +public interface ISysDictDataService +{ + /** + * 根据条件分页查询字典数据 + * + * @param dictData 字典数据信息 + * @return 字典数据集合信息 + */ + public List selectDictDataList(SysDictData dictData); + + /** + * 根据字典类型和字典键值查询字典数据信息 + * + * @param dictType 字典类型 + * @param dictValue 字典键值 + * @return 字典标签 + */ + public String selectDictLabel(String dictType, String dictValue); + + /** + * 根据字典数据ID查询信息 + * + * @param dictCode 字典数据ID + * @return 字典数据 + */ + public SysDictData selectDictDataById(Long dictCode); + + /** + * 批量删除字典数据信息 + * + * @param dictCodes 需要删除的字典数据ID + * @return 结果 + */ + public void deleteDictDataByIds(Long[] dictCodes); + + /** + * 新增保存字典数据信息 + * + * @param dictData 字典数据信息 + * @return 结果 + */ + public int insertDictData(SysDictData dictData); + + /** + * 修改保存字典数据信息 + * + * @param dictData 字典数据信息 + * @return 结果 + */ + public int updateDictData(SysDictData dictData); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java new file mode 100644 index 0000000..72d9af5 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java @@ -0,0 +1,99 @@ +package com.ruoyi.system.service; + +import java.util.List; +import com.ruoyi.common.core.domain.entity.SysDictData; +import com.ruoyi.common.core.domain.entity.SysDictType; + +/** + * 字典 业务层 + * + * @author ruoyi + */ +public interface ISysDictTypeService +{ + /** + * 根据条件分页查询字典类型 + * + * @param dictType 字典类型信息 + * @return 字典类型集合信息 + */ + public List selectDictTypeList(SysDictType dictType); + + /** + * 根据所有字典类型 + * + * @return 字典类型集合信息 + */ + public List selectDictTypeAll(); + + /** + * 根据字典类型查询字典数据 + * + * @param dictType 字典类型 + * @return 字典数据集合信息 + */ + public List selectDictDataByType(String dictType); + + /** + * 根据字典类型ID查询信息 + * + * @param dictId 字典类型ID + * @return 字典类型 + */ + public SysDictType selectDictTypeById(Long dictId); + + /** + * 根据字典类型查询信息 + * + * @param dictType 字典类型 + * @return 字典类型 + */ + public SysDictType selectDictTypeByType(String dictType); + + /** + * 批量删除字典信息 + * + * @param dictIds 需要删除的字典ID + * @return 结果 + */ + public void deleteDictTypeByIds(Long[] dictIds); + + /** + * 加载字典缓存数据 + */ + public void loadingDictCache(); + + /** + * 清空字典缓存数据 + */ + public void clearDictCache(); + + /** + * 重置字典缓存数据 + */ + public void resetDictCache(); + + /** + * 新增保存字典类型信息 + * + * @param dictType 字典类型信息 + * @return 结果 + */ + public int insertDictType(SysDictType dictType); + + /** + * 修改保存字典类型信息 + * + * @param dictType 字典类型信息 + * @return 结果 + */ + public int updateDictType(SysDictType dictType); + + /** + * 校验字典类型称是否唯一 + * + * @param dictType 字典类型 + * @return 结果 + */ + public String checkDictTypeUnique(SysDictType dictType); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysLogininforService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysLogininforService.java new file mode 100644 index 0000000..96c4d54 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysLogininforService.java @@ -0,0 +1,40 @@ +package com.ruoyi.system.service; + +import java.util.List; +import com.ruoyi.system.domain.SysLogininfor; + +/** + * 系统访问日志情况信息 服务层 + * + * @author ruoyi + */ +public interface ISysLogininforService +{ + /** + * 新增系统登录日志 + * + * @param logininfor 访问日志对象 + */ + public void insertLogininfor(SysLogininfor logininfor); + + /** + * 查询系统登录日志集合 + * + * @param logininfor 访问日志对象 + * @return 登录记录集合 + */ + public List selectLogininforList(SysLogininfor logininfor); + + /** + * 批量删除系统登录日志 + * + * @param infoIds 需要删除的登录日志ID + * @return + */ + public int deleteLogininforByIds(Long[] infoIds); + + /** + * 清空系统登录日志 + */ + public void cleanLogininfor(); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java new file mode 100644 index 0000000..f64bee1 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java @@ -0,0 +1,136 @@ +package com.ruoyi.system.service; + +import java.util.List; +import java.util.Set; +import com.ruoyi.common.core.domain.TreeSelect; +import com.ruoyi.common.core.domain.entity.SysMenu; +import com.ruoyi.system.domain.vo.RouterVo; + +/** + * 菜单 业务层 + * + * @author ruoyi + */ +public interface ISysMenuService +{ + /** + * 根据用户查询系统菜单列表 + * + * @param userId 用户ID + * @return 菜单列表 + */ + public List selectMenuList(Long userId); + + /** + * 根据用户查询系统菜单列表 + * + * @param menu 菜单信息 + * @param userId 用户ID + * @return 菜单列表 + */ + public List selectMenuList(SysMenu menu, Long userId); + + /** + * 根据用户ID查询权限 + * + * @param userId 用户ID + * @return 权限列表 + */ + public Set selectMenuPermsByUserId(Long userId); + + /** + * 根据用户ID查询菜单树信息 + * + * @param userId 用户ID + * @return 菜单列表 + */ + public List selectMenuTreeByUserId(Long userId); + + /** + * 根据角色ID查询菜单树信息 + * + * @param roleId 角色ID + * @return 选中菜单列表 + */ + public List selectMenuListByRoleId(Long roleId); + + /** + * 构建前端路由所需要的菜单 + * + * @param menus 菜单列表 + * @return 路由列表 + */ + public List buildMenus(List menus); + + /** + * 构建前端所需要树结构 + * + * @param menus 菜单列表 + * @return 树结构列表 + */ + public List buildMenuTree(List menus); + + /** + * 构建前端所需要下拉树结构 + * + * @param menus 菜单列表 + * @return 下拉树结构列表 + */ + public List buildMenuTreeSelect(List menus); + + /** + * 根据菜单ID查询信息 + * + * @param menuId 菜单ID + * @return 菜单信息 + */ + public SysMenu selectMenuById(Long menuId); + + /** + * 是否存在菜单子节点 + * + * @param menuId 菜单ID + * @return 结果 true 存在 false 不存在 + */ + public boolean hasChildByMenuId(Long menuId); + + /** + * 查询菜单是否存在角色 + * + * @param menuId 菜单ID + * @return 结果 true 存在 false 不存在 + */ + public boolean checkMenuExistRole(Long menuId); + + /** + * 新增保存菜单信息 + * + * @param menu 菜单信息 + * @return 结果 + */ + public int insertMenu(SysMenu menu); + + /** + * 修改保存菜单信息 + * + * @param menu 菜单信息 + * @return 结果 + */ + public int updateMenu(SysMenu menu); + + /** + * 删除菜单管理信息 + * + * @param menuId 菜单ID + * @return 结果 + */ + public int deleteMenuById(Long menuId); + + /** + * 校验菜单名称是否唯一 + * + * @param menu 菜单信息 + * @return 结果 + */ + public String checkMenuNameUnique(SysMenu menu); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java new file mode 100644 index 0000000..47ce1b7 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java @@ -0,0 +1,60 @@ +package com.ruoyi.system.service; + +import java.util.List; +import com.ruoyi.system.domain.SysNotice; + +/** + * 公告 服务层 + * + * @author ruoyi + */ +public interface ISysNoticeService +{ + /** + * 查询公告信息 + * + * @param noticeId 公告ID + * @return 公告信息 + */ + public SysNotice selectNoticeById(Long noticeId); + + /** + * 查询公告列表 + * + * @param notice 公告信息 + * @return 公告集合 + */ + public List selectNoticeList(SysNotice notice); + + /** + * 新增公告 + * + * @param notice 公告信息 + * @return 结果 + */ + public int insertNotice(SysNotice notice); + + /** + * 修改公告 + * + * @param notice 公告信息 + * @return 结果 + */ + public int updateNotice(SysNotice notice); + + /** + * 删除公告信息 + * + * @param noticeId 公告ID + * @return 结果 + */ + public int deleteNoticeById(Long noticeId); + + /** + * 批量删除公告信息 + * + * @param noticeIds 需要删除的公告ID + * @return 结果 + */ + public int deleteNoticeByIds(Long[] noticeIds); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java new file mode 100644 index 0000000..4fd8e5a --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java @@ -0,0 +1,48 @@ +package com.ruoyi.system.service; + +import java.util.List; +import com.ruoyi.system.domain.SysOperLog; + +/** + * 操作日志 服务层 + * + * @author ruoyi + */ +public interface ISysOperLogService +{ + /** + * 新增操作日志 + * + * @param operLog 操作日志对象 + */ + public void insertOperlog(SysOperLog operLog); + + /** + * 查询系统操作日志集合 + * + * @param operLog 操作日志对象 + * @return 操作日志集合 + */ + public List selectOperLogList(SysOperLog operLog); + + /** + * 批量删除系统操作日志 + * + * @param operIds 需要删除的操作日志ID + * @return 结果 + */ + public int deleteOperLogByIds(Long[] operIds); + + /** + * 查询操作日志详细 + * + * @param operId 操作ID + * @return 操作日志对象 + */ + public SysOperLog selectOperLogById(Long operId); + + /** + * 清空操作日志 + */ + public void cleanOperLog(); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java new file mode 100644 index 0000000..aab216d --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java @@ -0,0 +1,100 @@ +package com.ruoyi.system.service; + +import java.util.List; +import com.ruoyi.system.domain.SysPost; + +/** + * 岗位信息 服务层 + * + * @author ruoyi + */ +public interface ISysPostService +{ + /** + * 查询岗位信息集合 + * + * @param post 岗位信息 + * @return 岗位列表 + */ + public List selectPostList(SysPost post); + + /** + * 查询所有岗位 + * + * @return 岗位列表 + */ + public List selectPostAll(); + + /** + * 通过岗位ID查询岗位信息 + * + * @param postId 岗位ID + * @return 角色对象信息 + */ + public SysPost selectPostById(Long postId); + + /** + * 根据用户ID获取岗位选择框列表 + * + * @param userId 用户ID + * @return 选中岗位ID列表 + */ + public List selectPostListByUserId(Long userId); + + /** + * 校验岗位名称 + * + * @param post 岗位信息 + * @return 结果 + */ + public String checkPostNameUnique(SysPost post); + + /** + * 校验岗位编码 + * + * @param post 岗位信息 + * @return 结果 + */ + public String checkPostCodeUnique(SysPost post); + + /** + * 通过岗位ID查询岗位使用数量 + * + * @param postId 岗位ID + * @return 结果 + */ + public int countUserPostById(Long postId); + + /** + * 删除岗位信息 + * + * @param postId 岗位ID + * @return 结果 + */ + public int deletePostById(Long postId); + + /** + * 批量删除岗位信息 + * + * @param postIds 需要删除的岗位ID + * @return 结果 + * @throws Exception 异常 + */ + public int deletePostByIds(Long[] postIds); + + /** + * 新增保存岗位信息 + * + * @param post 岗位信息 + * @return 结果 + */ + public int insertPost(SysPost post); + + /** + * 修改保存岗位信息 + * + * @param post 岗位信息 + * @return 结果 + */ + public int updatePost(SysPost post); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java new file mode 100644 index 0000000..ac090c7 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java @@ -0,0 +1,180 @@ +package com.ruoyi.system.service; + +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.system.domain.SysUserRole; + +import java.util.List; +import java.util.Set; + +/** + * 角色业务层 + * + * @author ruoyi + */ +public interface ISysRoleService +{ + /** + * 根据条件分页查询角色数据 + * + * @param role 角色信息 + * @return 角色数据集合信息 + */ + public List selectRoleList(SysRole role); + + /** + * 根据用户ID查询角色列表 + * + * @param userId 用户ID + * @return 角色列表 + */ + public List selectRolesByUserId(Long userId); + + /** + * 根据用户ID查询角色权限 + * + * @param userId 用户ID + * @return 权限列表 + */ + public Set selectRolePermissionByUserId(Long userId); + + /** + * 查询所有角色 + * + * @return 角色列表 + */ + public List selectRoleAll(); + + /** + * 根据用户ID获取角色选择框列表 + * + * @param userId 用户ID + * @return 选中角色ID列表 + */ + public List selectRoleListByUserId(Long userId); + + /** + * 通过角色ID查询角色 + * + * @param roleId 角色ID + * @return 角色对象信息 + */ + public SysRole selectRoleById(Long roleId); + + /** + * 校验角色名称是否唯一 + * + * @param role 角色信息 + * @return 结果 + */ + public String checkRoleNameUnique(SysRole role); + + /** + * 校验角色权限是否唯一 + * + * @param role 角色信息 + * @return 结果 + */ + public String checkRoleKeyUnique(SysRole role); + + /** + * 校验角色是否允许操作 + * + * @param role 角色信息 + */ + public void checkRoleAllowed(SysRole role); + + /** + * 校验角色是否有数据权限 + * + * @param roleId 角色id + */ + public void checkRoleDataScope(Long roleId); + + /** + * 通过角色ID查询角色使用数量 + * + * @param roleId 角色ID + * @return 结果 + */ + public int countUserRoleByRoleId(Long roleId); + + /** + * 新增保存角色信息 + * + * @param role 角色信息 + * @return 结果 + */ + public int insertRole(SysRole role); + + /** + * 修改保存角色信息 + * + * @param role 角色信息 + * @return 结果 + */ + public int updateRole(SysRole role); + + /** + * 修改角色状态 + * + * @param role 角色信息 + * @return 结果 + */ + public int updateRoleStatus(SysRole role); + + /** + * 修改数据权限信息 + * + * @param role 角色信息 + * @return 结果 + */ + public int authDataScope(SysRole role); + + /** + * 通过角色ID删除角色 + * + * @param roleId 角色ID + * @return 结果 + */ + public int deleteRoleById(Long roleId); + + /** + * 批量删除角色信息 + * + * @param roleIds 需要删除的角色ID + * @return 结果 + */ + public int deleteRoleByIds(Long[] roleIds); + + /** + * 取消授权用户角色 + * + * @param userRole 用户和角色关联信息 + * @return 结果 + */ + public int deleteAuthUser(SysUserRole userRole); + + /** + * 批量取消授权用户角色 + * + * @param roleId 角色ID + * @param userIds 需要取消授权的用户数据ID + * @return 结果 + */ + public int deleteAuthUsers(Long roleId, Long[] userIds); + + /** + * 批量选择授权用户角色 + * + * @param roleId 角色ID + * @param userIds 需要删除的用户数据ID + * @return 结果 + */ + public int insertAuthUsers(Long roleId, Long[] userIds); + + SysRole selectRoleByKey(String vip); + + int allocateRole2User(String role, Long userId); + + boolean hasRole(String roleKey, Long userId); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserOnlineService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserOnlineService.java new file mode 100644 index 0000000..8eb5448 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserOnlineService.java @@ -0,0 +1,48 @@ +package com.ruoyi.system.service; + +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.system.domain.SysUserOnline; + +/** + * 在线用户 服务层 + * + * @author ruoyi + */ +public interface ISysUserOnlineService +{ + /** + * 通过登录地址查询信息 + * + * @param ipaddr 登录地址 + * @param user 用户信息 + * @return 在线用户信息 + */ + public SysUserOnline selectOnlineByIpaddr(String ipaddr, LoginUser user); + + /** + * 通过用户名称查询信息 + * + * @param userName 用户名称 + * @param user 用户信息 + * @return 在线用户信息 + */ + public SysUserOnline selectOnlineByUserName(String userName, LoginUser user); + + /** + * 通过登录地址/用户名称查询信息 + * + * @param ipaddr 登录地址 + * @param userName 用户名称 + * @param user 用户信息 + * @return 在线用户信息 + */ + public SysUserOnline selectOnlineByInfo(String ipaddr, String userName, LoginUser user); + + /** + * 设置在线用户信息 + * + * @param user 用户信息 + * @return 在线用户 + */ + public SysUserOnline loginUserToUserOnline(LoginUser user); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java new file mode 100644 index 0000000..d8da330 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java @@ -0,0 +1,208 @@ +package com.ruoyi.system.service; + +import java.util.List; +import com.ruoyi.common.core.domain.entity.SysUser; + +/** + * 用户 业务层 + * + * @author ruoyi + */ +public interface ISysUserService +{ + /** + * 根据条件分页查询用户列表 + * + * @param user 用户信息 + * @return 用户信息集合信息 + */ + public List selectUserList(SysUser user); + + /** + * 根据条件分页查询已分配用户角色列表 + * + * @param user 用户信息 + * @return 用户信息集合信息 + */ + public List selectAllocatedList(SysUser user); + + /** + * 根据条件分页查询未分配用户角色列表 + * + * @param user 用户信息 + * @return 用户信息集合信息 + */ + public List selectUnallocatedList(SysUser user); + + /** + * 通过用户名查询用户 + * + * @param userName 用户名 + * @return 用户对象信息 + */ + public SysUser selectUserByUserName(String userName); + + /** + * 通过用户ID查询用户 + * + * @param userId 用户ID + * @return 用户对象信息 + */ + public SysUser selectUserById(Long userId); + + /** + * 根据用户ID查询用户所属角色组 + * + * @param userName 用户名 + * @return 结果 + */ + public String selectUserRoleGroup(String userName); + + /** + * 根据用户ID查询用户所属岗位组 + * + * @param userName 用户名 + * @return 结果 + */ + public String selectUserPostGroup(String userName); + + /** + * 校验用户名称是否唯一 + * + * @param userName 用户名称 + * @return 结果 + */ + public String checkUserNameUnique(String userName); + + /** + * 校验手机号码是否唯一 + * + * @param user 用户信息 + * @return 结果 + */ + public String checkPhoneUnique(SysUser user); + + /** + * 校验email是否唯一 + * + * @param user 用户信息 + * @return 结果 + */ + public String checkEmailUnique(SysUser user); + + /** + * 校验用户是否允许操作 + * + * @param user 用户信息 + */ + public void checkUserAllowed(SysUser user); + + /** + * 校验用户是否有数据权限 + * + * @param userId 用户id + */ + public void checkUserDataScope(Long userId); + + /** + * 新增用户信息 + * + * @param user 用户信息 + * @return 结果 + */ + public int insertUser(SysUser user); + + /** + * 注册用户信息 + * + * @param user 用户信息 + * @return 结果 + */ + public boolean registerUser(SysUser user); + + /** + * 修改用户信息 + * + * @param user 用户信息 + * @return 结果 + */ + public int updateUser(SysUser user); + + /** + * 用户授权角色 + * + * @param userId 用户ID + * @param roleIds 角色组 + */ + public void insertUserAuth(Long userId, Long[] roleIds); + + /** + * 修改用户状态 + * + * @param user 用户信息 + * @return 结果 + */ + public int updateUserStatus(SysUser user); + + /** + * 修改用户基本信息 + * + * @param user 用户信息 + * @return 结果 + */ + public int updateUserProfile(SysUser user); + + /** + * 修改用户头像 + * + * @param userName 用户名 + * @param avatar 头像地址 + * @return 结果 + */ + public boolean updateUserAvatar(String userName, String avatar); + + /** + * 重置用户密码 + * + * @param user 用户信息 + * @return 结果 + */ + public int resetPwd(SysUser user); + + /** + * 重置用户密码 + * + * @param userName 用户名 + * @param password 密码 + * @return 结果 + */ + public int resetUserPwd(String userName, String password); + + /** + * 通过用户ID删除用户 + * + * @param userId 用户ID + * @return 结果 + */ + public int deleteUserById(Long userId); + + /** + * 批量删除用户信息 + * + * @param userIds 需要删除的用户ID + * @return 结果 + */ + public int deleteUserByIds(Long[] userIds); + + /** + * 导入用户数据 + * + * @param userList 用户数据列表 + * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 + * @param userId 操作用户 + * @return 结果 + */ + public String importUser(List userList, Boolean isUpdateSupport, Long userId); + + SysUser selectUserByPhoneOrUserName(String phone); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/PhoneCodeService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/PhoneCodeService.java new file mode 100644 index 0000000..461a6be --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/PhoneCodeService.java @@ -0,0 +1,65 @@ +package com.ruoyi.system.service; + +import cn.hutool.core.util.StrUtil; +import com.ruoyi.common.exception.GlobalException; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +@Service +@Slf4j +public class PhoneCodeService { + public boolean obtainCode(String uuid, String phone) { + if (StrUtil.isEmpty(uuid)) { + throw new GlobalException("uuid 为空"); + } + if (StrUtil.isEmpty(phone)) { + throw new GlobalException("手机号码为空"); + } + if (!phone.matches("^1\\d{10}$")) { + throw new GlobalException("手机号码错误"); + } + String code = createRandom(true, 6); + sendCode(uuid, phone, code); + log.debug("uuid: {}, phone: {}, code: {}" , uuid, phone, code); + return true; + } + + public static String createRandom(boolean numberFlag, int length) { + String retStr = ""; + String strTable = numberFlag ? "1234567890" : "1234567890abcdefghijkmnpqrstuvwxyz"; + int len = strTable.length(); + boolean bDone = true; + do { + retStr = ""; + int count = 0; + for (int i = 0; i < length; i++) { + double dblR = Math.random() * len; + int intR = (int) Math.floor(dblR); + char c = strTable.charAt(intR); + if (('0' <= c) && (c <= '9')) { + count++; + } + retStr += strTable.charAt(intR); + } + if (count >= 2) { + bDone = false; + } + } while (bDone); + return retStr; + } + + private Map codeCache = new HashMap<>(); + + public void sendCode(String uuid, String phone, String code) { + codeCache.put(uuid + "_" + phone, code); + } + + public boolean validCode(String uuid, String phone, String code) { + return Objects.equals(code, codeCache.get(uuid + "_" + phone)); + } + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java new file mode 100644 index 0000000..6f5e5e4 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java @@ -0,0 +1,227 @@ +package com.ruoyi.system.service.impl; + +import com.ruoyi.common.annotation.DataSource; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.enums.DataSourceType; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.domain.SysConfig; +import com.ruoyi.system.mapper.SysConfigMapper; +import com.ruoyi.system.service.ISysConfigService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import javax.annotation.PostConstruct; +import java.util.Collection; +import java.util.List; + +/** + * 参数配置 服务层实现 + * + * @author ruoyi + */ +@Service +public class SysConfigServiceImpl implements ISysConfigService +{ + @Autowired + private SysConfigMapper configMapper; + + @Autowired + private RedisCache redisCache; + + /** + * 项目启动时,初始化参数到缓存 + */ + @PostConstruct + public void init() + { + loadingConfigCache(); + } + + /** + * 查询参数配置信息 + * + * @param configId 参数配置ID + * @return 参数配置信息 + */ + @Override + @DataSource(DataSourceType.MASTER) + public SysConfig selectConfigById(Long configId) + { + SysConfig config = new SysConfig(); + config.setConfigId(configId); + return configMapper.selectConfig(config); + } + + /** + * 根据键名查询参数配置信息 + * + * @param configKey 参数key + * @return 参数键值 + */ + @Override + public String selectConfigByKey(String configKey) + { + String configValue = Convert.toStr(redisCache.getCacheObject(getCacheKey(configKey))); + if (StringUtils.isNotEmpty(configValue)) + { + return configValue; + } + SysConfig config = new SysConfig(); + config.setConfigKey(configKey); + SysConfig retConfig = configMapper.selectConfig(config); + if (StringUtils.isNotNull(retConfig)) + { + redisCache.setCacheObject(getCacheKey(configKey), retConfig.getConfigValue()); + return retConfig.getConfigValue(); + } + return StringUtils.EMPTY; + } + + /** + * 获取验证码开关 + * + * @return true开启,false关闭 + */ + @Override + public boolean selectCaptchaOnOff() + { + String captchaOnOff = selectConfigByKey("sys.account.captchaOnOff"); + if (StringUtils.isEmpty(captchaOnOff)) + { + return true; + } + return Convert.toBool(captchaOnOff); + } + + /** + * 查询参数配置列表 + * + * @param config 参数配置信息 + * @return 参数配置集合 + */ + @Override + public List selectConfigList(SysConfig config) + { + return configMapper.selectConfigList(config); + } + + /** + * 新增参数配置 + * + * @param config 参数配置信息 + * @return 结果 + */ + @Override + public int insertConfig(SysConfig config) + { + int row = configMapper.insertConfig(config); + if (row > 0) + { + redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); + } + return row; + } + + /** + * 修改参数配置 + * + * @param config 参数配置信息 + * @return 结果 + */ + @Override + public int updateConfig(SysConfig config) + { + int row = configMapper.updateConfig(config); + if (row > 0) + { + redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); + } + return row; + } + + /** + * 批量删除参数信息 + * + * @param configIds 需要删除的参数ID + * @return 结果 + */ + @Override + public void deleteConfigByIds(Long[] configIds) + { + for (Long configId : configIds) + { + SysConfig config = selectConfigById(configId); + if (StringUtils.equals(UserConstants.YES, config.getConfigType())) + { + throw new ServiceException(String.format("内置参数【%1$s】不能删除 ", config.getConfigKey())); + } + configMapper.deleteConfigById(configId); + redisCache.deleteObject(getCacheKey(config.getConfigKey())); + } + } + + /** + * 加载参数缓存数据 + */ + @Override + public void loadingConfigCache() + { + List configsList = configMapper.selectConfigList(new SysConfig()); + for (SysConfig config : configsList) + { + redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue()); + } + } + + /** + * 清空参数缓存数据 + */ + @Override + public void clearConfigCache() + { + Collection keys = redisCache.keys(Constants.SYS_CONFIG_KEY + "*"); + redisCache.deleteObject(keys); + } + + /** + * 重置参数缓存数据 + */ + @Override + public void resetConfigCache() + { + clearConfigCache(); + loadingConfigCache(); + } + + /** + * 校验参数键名是否唯一 + * + * @param config 参数配置信息 + * @return 结果 + */ + @Override + public String checkConfigKeyUnique(SysConfig config) + { + Long configId = StringUtils.isNull(config.getConfigId()) ? -1L : config.getConfigId(); + SysConfig info = configMapper.checkConfigKeyUnique(config.getConfigKey()); + if (StringUtils.isNotNull(info) && info.getConfigId().longValue() != configId.longValue()) + { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + + /** + * 设置cache key + * + * @param configKey 参数键 + * @return 缓存键key + */ + private String getCacheKey(String configKey) + { + return Constants.SYS_CONFIG_KEY + configKey; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java new file mode 100644 index 0000000..46f75a3 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -0,0 +1,330 @@ +package com.ruoyi.system.service.impl; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.stream.Collectors; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.common.annotation.DataScope; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.domain.TreeSelect; +import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.system.mapper.SysDeptMapper; +import com.ruoyi.system.mapper.SysRoleMapper; +import com.ruoyi.system.service.ISysDeptService; + +/** + * 部门管理 服务实现 + * + * @author ruoyi + */ +@Service +public class SysDeptServiceImpl implements ISysDeptService +{ + @Autowired + private SysDeptMapper deptMapper; + + @Autowired + private SysRoleMapper roleMapper; + + /** + * 查询部门管理数据 + * + * @param dept 部门信息 + * @return 部门信息集合 + */ + @Override + @DataScope(deptAlias = "d") + public List selectDeptList(SysDept dept) + { + return deptMapper.selectDeptList(dept); + } + + /** + * 构建前端所需要树结构 + * + * @param depts 部门列表 + * @return 树结构列表 + */ + @Override + public List buildDeptTree(List depts) + { + List returnList = new ArrayList(); + List tempList = new ArrayList(); + for (SysDept dept : depts) + { + tempList.add(dept.getDeptId()); + } + for (Iterator iterator = depts.iterator(); iterator.hasNext();) + { + SysDept dept = (SysDept) iterator.next(); + // 如果是顶级节点, 遍历该父节点的所有子节点 + if (!tempList.contains(dept.getParentId())) + { + recursionFn(depts, dept); + returnList.add(dept); + } + } + if (returnList.isEmpty()) + { + returnList = depts; + } + return returnList; + } + + /** + * 构建前端所需要下拉树结构 + * + * @param depts 部门列表 + * @return 下拉树结构列表 + */ + @Override + public List buildDeptTreeSelect(List depts) + { + List deptTrees = buildDeptTree(depts); + return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + /** + * 根据角色ID查询部门树信息 + * + * @param roleId 角色ID + * @return 选中部门列表 + */ + @Override + public List selectDeptListByRoleId(Long roleId) + { + SysRole role = roleMapper.selectRoleById(roleId); + return deptMapper.selectDeptListByRoleId(roleId, role.isDeptCheckStrictly()); + } + + /** + * 根据部门ID查询信息 + * + * @param deptId 部门ID + * @return 部门信息 + */ + @Override + public SysDept selectDeptById(Long deptId) + { + return deptMapper.selectDeptById(deptId); + } + + /** + * 根据ID查询所有子部门(正常状态) + * + * @param deptId 部门ID + * @return 子部门数 + */ + @Override + public int selectNormalChildrenDeptById(Long deptId) + { + return deptMapper.selectNormalChildrenDeptById(deptId); + } + + /** + * 是否存在子节点 + * + * @param deptId 部门ID + * @return 结果 + */ + @Override + public boolean hasChildByDeptId(Long deptId) + { + int result = deptMapper.hasChildByDeptId(deptId); + return result > 0 ? true : false; + } + + /** + * 查询部门是否存在用户 + * + * @param deptId 部门ID + * @return 结果 true 存在 false 不存在 + */ + @Override + public boolean checkDeptExistUser(Long deptId) + { + int result = deptMapper.checkDeptExistUser(deptId); + return result > 0 ? true : false; + } + + /** + * 校验部门名称是否唯一 + * + * @param dept 部门信息 + * @return 结果 + */ + @Override + public String checkDeptNameUnique(SysDept dept) + { + Long deptId = StringUtils.isNull(dept.getDeptId()) ? -1L : dept.getDeptId(); + SysDept info = deptMapper.checkDeptNameUnique(dept.getDeptName(), dept.getParentId()); + if (StringUtils.isNotNull(info) && info.getDeptId().longValue() != deptId.longValue()) + { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + + /** + * 校验部门是否有数据权限 + * + * @param deptId 部门id + */ + @Override + public void checkDeptDataScope(Long deptId) + { + if (!SysUser.isAdmin(SecurityUtils.getUserId())) + { + SysDept dept = new SysDept(); + dept.setDeptId(deptId); + List depts = SpringUtils.getAopProxy(this).selectDeptList(dept); + if (StringUtils.isEmpty(depts)) + { + throw new ServiceException("没有权限访问部门数据!"); + } + } + } + + /** + * 新增保存部门信息 + * + * @param dept 部门信息 + * @return 结果 + */ + @Override + public int insertDept(SysDept dept) + { + SysDept info = deptMapper.selectDeptById(dept.getParentId()); + // 如果父节点不为正常状态,则不允许新增子节点 + if (!UserConstants.DEPT_NORMAL.equals(info.getStatus())) + { + throw new ServiceException("部门停用,不允许新增"); + } + dept.setAncestors(info.getAncestors() + "," + dept.getParentId()); + return deptMapper.insertDept(dept); + } + + /** + * 修改保存部门信息 + * + * @param dept 部门信息 + * @return 结果 + */ + @Override + public int updateDept(SysDept dept) + { + SysDept newParentDept = deptMapper.selectDeptById(dept.getParentId()); + SysDept oldDept = deptMapper.selectDeptById(dept.getDeptId()); + if (StringUtils.isNotNull(newParentDept) && StringUtils.isNotNull(oldDept)) + { + String newAncestors = newParentDept.getAncestors() + "," + newParentDept.getDeptId(); + String oldAncestors = oldDept.getAncestors(); + dept.setAncestors(newAncestors); + updateDeptChildren(dept.getDeptId(), newAncestors, oldAncestors); + } + int result = deptMapper.updateDept(dept); + if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors()) + && !StringUtils.equals("0", dept.getAncestors())) + { + // 如果该部门是启用状态,则启用该部门的所有上级部门 + updateParentDeptStatusNormal(dept); + } + return result; + } + + /** + * 修改该部门的父级部门状态 + * + * @param dept 当前部门 + */ + private void updateParentDeptStatusNormal(SysDept dept) + { + String ancestors = dept.getAncestors(); + Long[] deptIds = Convert.toLongArray(ancestors); + deptMapper.updateDeptStatusNormal(deptIds); + } + + /** + * 修改子元素关系 + * + * @param deptId 被修改的部门ID + * @param newAncestors 新的父ID集合 + * @param oldAncestors 旧的父ID集合 + */ + public void updateDeptChildren(Long deptId, String newAncestors, String oldAncestors) + { + List children = deptMapper.selectChildrenDeptById(deptId); + for (SysDept child : children) + { + child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors)); + } + if (children.size() > 0) + { + deptMapper.updateDeptChildren(children); + } + } + + /** + * 删除部门管理信息 + * + * @param deptId 部门ID + * @return 结果 + */ + @Override + public int deleteDeptById(Long deptId) + { + return deptMapper.deleteDeptById(deptId); + } + + /** + * 递归列表 + */ + private void recursionFn(List list, SysDept t) + { + // 得到子节点列表 + List childList = getChildList(list, t); + t.setChildren(childList); + for (SysDept tChild : childList) + { + if (hasChild(list, tChild)) + { + recursionFn(list, tChild); + } + } + } + + /** + * 得到子节点列表 + */ + private List getChildList(List list, SysDept t) + { + List tlist = new ArrayList(); + Iterator it = list.iterator(); + while (it.hasNext()) + { + SysDept n = (SysDept) it.next(); + if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getDeptId().longValue()) + { + tlist.add(n); + } + } + return tlist; + } + + /** + * 判断是否有子节点 + */ + private boolean hasChild(List list, SysDept t) + { + return getChildList(list, t).size() > 0 ? true : false; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java new file mode 100644 index 0000000..f6a1938 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java @@ -0,0 +1,112 @@ +package com.ruoyi.system.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.common.core.domain.entity.SysDictData; +import com.ruoyi.common.utils.DictUtils; +import com.ruoyi.system.mapper.SysDictDataMapper; +import com.ruoyi.system.service.ISysDictDataService; + +/** + * 字典 业务层处理 + * + * @author ruoyi + */ +@Service +public class SysDictDataServiceImpl implements ISysDictDataService +{ + @Autowired + private SysDictDataMapper dictDataMapper; + + /** + * 根据条件分页查询字典数据 + * + * @param dictData 字典数据信息 + * @return 字典数据集合信息 + */ + @Override + public List selectDictDataList(SysDictData dictData) + { + return dictDataMapper.selectDictDataList(dictData); + } + + /** + * 根据字典类型和字典键值查询字典数据信息 + * + * @param dictType 字典类型 + * @param dictValue 字典键值 + * @return 字典标签 + */ + @Override + public String selectDictLabel(String dictType, String dictValue) + { + return dictDataMapper.selectDictLabel(dictType, dictValue); + } + + /** + * 根据字典数据ID查询信息 + * + * @param dictCode 字典数据ID + * @return 字典数据 + */ + @Override + public SysDictData selectDictDataById(Long dictCode) + { + return dictDataMapper.selectDictDataById(dictCode); + } + + /** + * 批量删除字典数据信息 + * + * @param dictCodes 需要删除的字典数据ID + * @return 结果 + */ + @Override + public void deleteDictDataByIds(Long[] dictCodes) + { + for (Long dictCode : dictCodes) + { + SysDictData data = selectDictDataById(dictCode); + dictDataMapper.deleteDictDataById(dictCode); + List dictDatas = dictDataMapper.selectDictDataByType(data.getDictType()); + DictUtils.setDictCache(data.getDictType(), dictDatas); + } + } + + /** + * 新增保存字典数据信息 + * + * @param data 字典数据信息 + * @return 结果 + */ + @Override + public int insertDictData(SysDictData data) + { + int row = dictDataMapper.insertDictData(data); + if (row > 0) + { + List dictDatas = dictDataMapper.selectDictDataByType(data.getDictType()); + DictUtils.setDictCache(data.getDictType(), dictDatas); + } + return row; + } + + /** + * 修改保存字典数据信息 + * + * @param data 字典数据信息 + * @return 结果 + */ + @Override + public int updateDictData(SysDictData data) + { + int row = dictDataMapper.updateDictData(data); + if (row > 0) + { + List dictDatas = dictDataMapper.selectDictDataByType(data.getDictType()); + DictUtils.setDictCache(data.getDictType(), dictDatas); + } + return row; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java new file mode 100644 index 0000000..8e75c4f --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java @@ -0,0 +1,220 @@ +package com.ruoyi.system.service.impl; + +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.domain.entity.SysDictData; +import com.ruoyi.common.core.domain.entity.SysDictType; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.DictUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.mapper.SysDictDataMapper; +import com.ruoyi.system.mapper.SysDictTypeMapper; +import com.ruoyi.system.service.ISysDictTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.PostConstruct; +import java.util.List; + +/** + * 字典 业务层处理 + * + * @author ruoyi + */ +@Service +public class SysDictTypeServiceImpl implements ISysDictTypeService +{ + @Autowired + private SysDictTypeMapper dictTypeMapper; + + @Autowired + private SysDictDataMapper dictDataMapper; + + /** + * 项目启动时,初始化字典到缓存 + */ + @PostConstruct + public void init() + { + loadingDictCache(); + } + + /** + * 根据条件分页查询字典类型 + * + * @param dictType 字典类型信息 + * @return 字典类型集合信息 + */ + @Override + public List selectDictTypeList(SysDictType dictType) + { + return dictTypeMapper.selectDictTypeList(dictType); + } + + /** + * 根据所有字典类型 + * + * @return 字典类型集合信息 + */ + @Override + public List selectDictTypeAll() + { + return dictTypeMapper.selectDictTypeAll(); + } + + /** + * 根据字典类型查询字典数据 + * + * @param dictType 字典类型 + * @return 字典数据集合信息 + */ + @Override + public List selectDictDataByType(String dictType) + { + List dictDatas = DictUtils.getDictCache(dictType); + if (StringUtils.isNotEmpty(dictDatas)) + { + return dictDatas; + } + dictDatas = dictDataMapper.selectDictDataByType(dictType); + if (StringUtils.isNotEmpty(dictDatas)) + { + DictUtils.setDictCache(dictType, dictDatas); + return dictDatas; + } + return null; + } + + /** + * 根据字典类型ID查询信息 + * + * @param dictId 字典类型ID + * @return 字典类型 + */ + @Override + public SysDictType selectDictTypeById(Long dictId) + { + return dictTypeMapper.selectDictTypeById(dictId); + } + + /** + * 根据字典类型查询信息 + * + * @param dictType 字典类型 + * @return 字典类型 + */ + @Override + public SysDictType selectDictTypeByType(String dictType) + { + return dictTypeMapper.selectDictTypeByType(dictType); + } + + /** + * 批量删除字典类型信息 + * + * @param dictIds 需要删除的字典ID + * @return 结果 + */ + @Override + public void deleteDictTypeByIds(Long[] dictIds) + { + for (Long dictId : dictIds) + { + SysDictType dictType = selectDictTypeById(dictId); + if (dictDataMapper.countDictDataByType(dictType.getDictType()) > 0) + { + throw new ServiceException(String.format("%1$s已分配,不能删除", dictType.getDictName())); + } + dictTypeMapper.deleteDictTypeById(dictId); + DictUtils.removeDictCache(dictType.getDictType()); + } + } + + /** + * 加载字典缓存数据 + */ + @Override + public void loadingDictCache() + { + List dictTypeList = dictTypeMapper.selectDictTypeAll(); + for (SysDictType dictType : dictTypeList) + { + List dictDatas = dictDataMapper.selectDictDataByType(dictType.getDictType()); + DictUtils.setDictCache(dictType.getDictType(), dictDatas); + } + } + + /** + * 清空字典缓存数据 + */ + @Override + public void clearDictCache() + { + DictUtils.clearDictCache(); + } + + /** + * 重置字典缓存数据 + */ + @Override + public void resetDictCache() + { + clearDictCache(); + loadingDictCache(); + } + + /** + * 新增保存字典类型信息 + * + * @param dict 字典类型信息 + * @return 结果 + */ + @Override + public int insertDictType(SysDictType dict) + { + int row = dictTypeMapper.insertDictType(dict); + if (row > 0) + { + DictUtils.setDictCache(dict.getDictType(), null); + } + return row; + } + + /** + * 修改保存字典类型信息 + * + * @param dict 字典类型信息 + * @return 结果 + */ + @Override + @Transactional + public int updateDictType(SysDictType dict) + { + SysDictType oldDict = dictTypeMapper.selectDictTypeById(dict.getDictId()); + dictDataMapper.updateDictDataType(oldDict.getDictType(), dict.getDictType()); + int row = dictTypeMapper.updateDictType(dict); + if (row > 0) + { + List dictDatas = dictDataMapper.selectDictDataByType(dict.getDictType()); + DictUtils.setDictCache(dict.getDictType(), dictDatas); + } + return row; + } + + /** + * 校验字典类型称是否唯一 + * + * @param dict 字典类型 + * @return 结果 + */ + @Override + public String checkDictTypeUnique(SysDictType dict) + { + Long dictId = StringUtils.isNull(dict.getDictId()) ? -1L : dict.getDictId(); + SysDictType dictType = dictTypeMapper.checkDictTypeUnique(dict.getDictType()); + if (StringUtils.isNotNull(dictType) && dictType.getDictId().longValue() != dictId.longValue()) + { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java new file mode 100644 index 0000000..a3b5257 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java @@ -0,0 +1,65 @@ +package com.ruoyi.system.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.system.domain.SysLogininfor; +import com.ruoyi.system.mapper.SysLogininforMapper; +import com.ruoyi.system.service.ISysLogininforService; + +/** + * 系统访问日志情况信息 服务层处理 + * + * @author ruoyi + */ +@Service +public class SysLogininforServiceImpl implements ISysLogininforService +{ + + @Autowired + private SysLogininforMapper logininforMapper; + + /** + * 新增系统登录日志 + * + * @param logininfor 访问日志对象 + */ + @Override + public void insertLogininfor(SysLogininfor logininfor) + { + logininforMapper.insertLogininfor(logininfor); + } + + /** + * 查询系统登录日志集合 + * + * @param logininfor 访问日志对象 + * @return 登录记录集合 + */ + @Override + public List selectLogininforList(SysLogininfor logininfor) + { + return logininforMapper.selectLogininforList(logininfor); + } + + /** + * 批量删除系统登录日志 + * + * @param infoIds 需要删除的登录日志ID + * @return + */ + @Override + public int deleteLogininforByIds(Long[] infoIds) + { + return logininforMapper.deleteLogininforByIds(infoIds); + } + + /** + * 清空系统登录日志 + */ + @Override + public void cleanLogininfor() + { + logininforMapper.cleanLogininfor(); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java new file mode 100644 index 0000000..f450caa --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -0,0 +1,502 @@ +package com.ruoyi.system.service.impl; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.domain.TreeSelect; +import com.ruoyi.common.core.domain.entity.SysMenu; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.domain.vo.MetaVo; +import com.ruoyi.system.domain.vo.RouterVo; +import com.ruoyi.system.mapper.SysMenuMapper; +import com.ruoyi.system.mapper.SysRoleMapper; +import com.ruoyi.system.mapper.SysRoleMenuMapper; +import com.ruoyi.system.service.ISysMenuService; + +/** + * 菜单 业务层处理 + * + * @author ruoyi + */ +@Service +public class SysMenuServiceImpl implements ISysMenuService +{ + public static final String PREMISSION_STRING = "perms[\"{0}\"]"; + + @Autowired + private SysMenuMapper menuMapper; + + @Autowired + private SysRoleMapper roleMapper; + + @Autowired + private SysRoleMenuMapper roleMenuMapper; + + /** + * 根据用户查询系统菜单列表 + * + * @param userId 用户ID + * @return 菜单列表 + */ + @Override + public List selectMenuList(Long userId) + { + return selectMenuList(new SysMenu(), userId); + } + + /** + * 查询系统菜单列表 + * + * @param menu 菜单信息 + * @return 菜单列表 + */ + @Override + public List selectMenuList(SysMenu menu, Long userId) + { + List menuList = null; + // 管理员显示所有菜单信息 + if (SysUser.isAdmin(userId)) + { + menuList = menuMapper.selectMenuList(menu); + } + else + { + menu.getParams().put("userId", userId); + menuList = menuMapper.selectMenuListByUserId(menu); + } + return menuList; + } + + /** + * 根据用户ID查询权限 + * + * @param userId 用户ID + * @return 权限列表 + */ + @Override + public Set selectMenuPermsByUserId(Long userId) + { + List perms = menuMapper.selectMenuPermsByUserId(userId); + Set permsSet = new HashSet<>(); + for (String perm : perms) + { + if (StringUtils.isNotEmpty(perm)) + { + permsSet.addAll(Arrays.asList(perm.trim().split(","))); + } + } + return permsSet; + } + + /** + * 根据用户ID查询菜单 + * + * @param userId 用户名称 + * @return 菜单列表 + */ + @Override + public List selectMenuTreeByUserId(Long userId) + { + List menus = null; + if (SecurityUtils.isAdmin(userId)) + { + menus = menuMapper.selectMenuTreeAll(); + } + else + { + menus = menuMapper.selectMenuTreeByUserId(userId); + } + return getChildPerms(menus, 0); + } + + /** + * 根据角色ID查询菜单树信息 + * + * @param roleId 角色ID + * @return 选中菜单列表 + */ + @Override + public List selectMenuListByRoleId(Long roleId) + { + SysRole role = roleMapper.selectRoleById(roleId); + return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly()); + } + + /** + * 构建前端路由所需要的菜单 + * + * @param menus 菜单列表 + * @return 路由列表 + */ + @Override + public List buildMenus(List menus) + { + List routers = new LinkedList(); + for (SysMenu menu : menus) + { + RouterVo router = new RouterVo(); + router.setHidden("1".equals(menu.getVisible())); + router.setName(getRouteName(menu)); + router.setPath(getRouterPath(menu)); + router.setComponent(getComponent(menu)); + router.setQuery(menu.getQuery()); + router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); + List cMenus = menu.getChildren(); + if (!cMenus.isEmpty() && cMenus.size() > 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType())) + { + router.setAlwaysShow(true); + router.setRedirect("noRedirect"); + router.setChildren(buildMenus(cMenus)); + } + else if (isMenuFrame(menu)) + { + router.setMeta(null); + List childrenList = new ArrayList(); + RouterVo children = new RouterVo(); + children.setPath(menu.getPath()); + children.setComponent(menu.getComponent()); + children.setName(StringUtils.capitalize(menu.getPath())); + children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); + childrenList.add(children); + router.setChildren(childrenList); + } + else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) + { + router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon())); + router.setPath("/inner"); + List childrenList = new ArrayList(); + RouterVo children = new RouterVo(); + String routerPath = StringUtils.replaceEach(menu.getPath(), new String[] { Constants.HTTP, Constants.HTTPS }, new String[] { "", "" }); + children.setPath(routerPath); + children.setComponent(UserConstants.INNER_LINK); + children.setName(StringUtils.capitalize(routerPath)); + children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), menu.getPath())); + childrenList.add(children); + router.setChildren(childrenList); + } + routers.add(router); + } + return routers; + } + + /** + * 构建前端所需要树结构 + * + * @param menus 菜单列表 + * @return 树结构列表 + */ + @Override + public List buildMenuTree(List menus) + { + List returnList = new ArrayList(); + List tempList = new ArrayList(); + for (SysMenu dept : menus) + { + tempList.add(dept.getMenuId()); + } + for (Iterator iterator = menus.iterator(); iterator.hasNext();) + { + SysMenu menu = (SysMenu) iterator.next(); + // 如果是顶级节点, 遍历该父节点的所有子节点 + if (!tempList.contains(menu.getParentId())) + { + recursionFn(menus, menu); + returnList.add(menu); + } + } + if (returnList.isEmpty()) + { + returnList = menus; + } + return returnList; + } + + /** + * 构建前端所需要下拉树结构 + * + * @param menus 菜单列表 + * @return 下拉树结构列表 + */ + @Override + public List buildMenuTreeSelect(List menus) + { + List menuTrees = buildMenuTree(menus); + return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + /** + * 根据菜单ID查询信息 + * + * @param menuId 菜单ID + * @return 菜单信息 + */ + @Override + public SysMenu selectMenuById(Long menuId) + { + return menuMapper.selectMenuById(menuId); + } + + /** + * 是否存在菜单子节点 + * + * @param menuId 菜单ID + * @return 结果 + */ + @Override + public boolean hasChildByMenuId(Long menuId) + { + int result = menuMapper.hasChildByMenuId(menuId); + return result > 0 ? true : false; + } + + /** + * 查询菜单使用数量 + * + * @param menuId 菜单ID + * @return 结果 + */ + @Override + public boolean checkMenuExistRole(Long menuId) + { + int result = roleMenuMapper.checkMenuExistRole(menuId); + return result > 0 ? true : false; + } + + /** + * 新增保存菜单信息 + * + * @param menu 菜单信息 + * @return 结果 + */ + @Override + public int insertMenu(SysMenu menu) + { + return menuMapper.insertMenu(menu); + } + + /** + * 修改保存菜单信息 + * + * @param menu 菜单信息 + * @return 结果 + */ + @Override + public int updateMenu(SysMenu menu) + { + return menuMapper.updateMenu(menu); + } + + /** + * 删除菜单管理信息 + * + * @param menuId 菜单ID + * @return 结果 + */ + @Override + public int deleteMenuById(Long menuId) + { + return menuMapper.deleteMenuById(menuId); + } + + /** + * 校验菜单名称是否唯一 + * + * @param menu 菜单信息 + * @return 结果 + */ + @Override + public String checkMenuNameUnique(SysMenu menu) + { + Long menuId = StringUtils.isNull(menu.getMenuId()) ? -1L : menu.getMenuId(); + SysMenu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId()); + if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue()) + { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + + /** + * 获取路由名称 + * + * @param menu 菜单信息 + * @return 路由名称 + */ + public String getRouteName(SysMenu menu) + { + String routerName = StringUtils.capitalize(menu.getPath()); + // 非外链并且是一级目录(类型为目录) + if (isMenuFrame(menu)) + { + routerName = StringUtils.EMPTY; + } + return routerName; + } + + /** + * 获取路由地址 + * + * @param menu 菜单信息 + * @return 路由地址 + */ + public String getRouterPath(SysMenu menu) + { + String routerPath = menu.getPath(); + // 内链打开外网方式 + if (menu.getParentId().intValue() != 0 && isInnerLink(menu)) + { + routerPath = StringUtils.replaceEach(routerPath, new String[] { Constants.HTTP, Constants.HTTPS }, new String[] { "", "" }); + } + // 非外链并且是一级目录(类型为目录) + if (0 == menu.getParentId().intValue() && UserConstants.TYPE_DIR.equals(menu.getMenuType()) + && UserConstants.NO_FRAME.equals(menu.getIsFrame())) + { + routerPath = "/" + menu.getPath(); + } + // 非外链并且是一级目录(类型为菜单) + else if (isMenuFrame(menu)) + { + routerPath = "/"; + } + return routerPath; + } + + /** + * 获取组件信息 + * + * @param menu 菜单信息 + * @return 组件信息 + */ + public String getComponent(SysMenu menu) + { + String component = UserConstants.LAYOUT; + if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu)) + { + component = menu.getComponent(); + } + else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId().intValue() != 0 && isInnerLink(menu)) + { + component = UserConstants.INNER_LINK; + } + else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu)) + { + component = UserConstants.PARENT_VIEW; + } + return component; + } + + /** + * 是否为菜单内部跳转 + * + * @param menu 菜单信息 + * @return 结果 + */ + public boolean isMenuFrame(SysMenu menu) + { + return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType()) + && menu.getIsFrame().equals(UserConstants.NO_FRAME); + } + + /** + * 是否为内链组件 + * + * @param menu 菜单信息 + * @return 结果 + */ + public boolean isInnerLink(SysMenu menu) + { + return menu.getIsFrame().equals(UserConstants.NO_FRAME) && StringUtils.ishttp(menu.getPath()); + } + + /** + * 是否为parent_view组件 + * + * @param menu 菜单信息 + * @return 结果 + */ + public boolean isParentView(SysMenu menu) + { + return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType()); + } + + /** + * 根据父节点的ID获取所有子节点 + * + * @param list 分类表 + * @param parentId 传入的父节点ID + * @return String + */ + public List getChildPerms(List list, int parentId) + { + List returnList = new ArrayList(); + for (Iterator iterator = list.iterator(); iterator.hasNext();) + { + SysMenu t = (SysMenu) iterator.next(); + // 一、根据传入的某个父节点ID,遍历该父节点的所有子节点 + if (t.getParentId() == parentId) + { + recursionFn(list, t); + returnList.add(t); + } + } + return returnList; + } + + /** + * 递归列表 + * + * @param list + * @param t + */ + private void recursionFn(List list, SysMenu t) + { + // 得到子节点列表 + List childList = getChildList(list, t); + t.setChildren(childList); + for (SysMenu tChild : childList) + { + if (hasChild(list, tChild)) + { + recursionFn(list, tChild); + } + } + } + + /** + * 得到子节点列表 + */ + private List getChildList(List list, SysMenu t) + { + List tlist = new ArrayList(); + Iterator it = list.iterator(); + while (it.hasNext()) + { + SysMenu n = (SysMenu) it.next(); + if (n.getParentId().longValue() == t.getMenuId().longValue()) + { + tlist.add(n); + } + } + return tlist; + } + + /** + * 判断是否有子节点 + */ + private boolean hasChild(List list, SysMenu t) + { + return getChildList(list, t).size() > 0 ? true : false; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java new file mode 100644 index 0000000..765438b --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java @@ -0,0 +1,92 @@ +package com.ruoyi.system.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.system.domain.SysNotice; +import com.ruoyi.system.mapper.SysNoticeMapper; +import com.ruoyi.system.service.ISysNoticeService; + +/** + * 公告 服务层实现 + * + * @author ruoyi + */ +@Service +public class SysNoticeServiceImpl implements ISysNoticeService +{ + @Autowired + private SysNoticeMapper noticeMapper; + + /** + * 查询公告信息 + * + * @param noticeId 公告ID + * @return 公告信息 + */ + @Override + public SysNotice selectNoticeById(Long noticeId) + { + return noticeMapper.selectNoticeById(noticeId); + } + + /** + * 查询公告列表 + * + * @param notice 公告信息 + * @return 公告集合 + */ + @Override + public List selectNoticeList(SysNotice notice) + { + return noticeMapper.selectNoticeList(notice); + } + + /** + * 新增公告 + * + * @param notice 公告信息 + * @return 结果 + */ + @Override + public int insertNotice(SysNotice notice) + { + return noticeMapper.insertNotice(notice); + } + + /** + * 修改公告 + * + * @param notice 公告信息 + * @return 结果 + */ + @Override + public int updateNotice(SysNotice notice) + { + return noticeMapper.updateNotice(notice); + } + + /** + * 删除公告对象 + * + * @param noticeId 公告ID + * @return 结果 + */ + @Override + public int deleteNoticeById(Long noticeId) + { + return noticeMapper.deleteNoticeById(noticeId); + } + + /** + * 批量删除公告信息 + * + * @param noticeIds 需要删除的公告ID + * @return 结果 + */ + @Override + public int deleteNoticeByIds(Long[] noticeIds) + { + return noticeMapper.deleteNoticeByIds(noticeIds); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java new file mode 100644 index 0000000..5489815 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java @@ -0,0 +1,76 @@ +package com.ruoyi.system.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.system.domain.SysOperLog; +import com.ruoyi.system.mapper.SysOperLogMapper; +import com.ruoyi.system.service.ISysOperLogService; + +/** + * 操作日志 服务层处理 + * + * @author ruoyi + */ +@Service +public class SysOperLogServiceImpl implements ISysOperLogService +{ + @Autowired + private SysOperLogMapper operLogMapper; + + /** + * 新增操作日志 + * + * @param operLog 操作日志对象 + */ + @Override + public void insertOperlog(SysOperLog operLog) + { + operLogMapper.insertOperlog(operLog); + } + + /** + * 查询系统操作日志集合 + * + * @param operLog 操作日志对象 + * @return 操作日志集合 + */ + @Override + public List selectOperLogList(SysOperLog operLog) + { + return operLogMapper.selectOperLogList(operLog); + } + + /** + * 批量删除系统操作日志 + * + * @param operIds 需要删除的操作日志ID + * @return 结果 + */ + @Override + public int deleteOperLogByIds(Long[] operIds) + { + return operLogMapper.deleteOperLogByIds(operIds); + } + + /** + * 查询操作日志详细 + * + * @param operId 操作ID + * @return 操作日志对象 + */ + @Override + public SysOperLog selectOperLogById(Long operId) + { + return operLogMapper.selectOperLogById(operId); + } + + /** + * 清空操作日志 + */ + @Override + public void cleanOperLog() + { + operLogMapper.cleanOperLog(); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java new file mode 100644 index 0000000..46805ef --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java @@ -0,0 +1,179 @@ +package com.ruoyi.system.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.domain.SysPost; +import com.ruoyi.system.mapper.SysPostMapper; +import com.ruoyi.system.mapper.SysUserPostMapper; +import com.ruoyi.system.service.ISysPostService; + +/** + * 岗位信息 服务层处理 + * + * @author ruoyi + */ +@Service +public class SysPostServiceImpl implements ISysPostService +{ + @Autowired + private SysPostMapper postMapper; + + @Autowired + private SysUserPostMapper userPostMapper; + + /** + * 查询岗位信息集合 + * + * @param post 岗位信息 + * @return 岗位信息集合 + */ + @Override + public List selectPostList(SysPost post) + { + return postMapper.selectPostList(post); + } + + /** + * 查询所有岗位 + * + * @return 岗位列表 + */ + @Override + public List selectPostAll() + { + return postMapper.selectPostAll(); + } + + /** + * 通过岗位ID查询岗位信息 + * + * @param postId 岗位ID + * @return 角色对象信息 + */ + @Override + public SysPost selectPostById(Long postId) + { + return postMapper.selectPostById(postId); + } + + /** + * 根据用户ID获取岗位选择框列表 + * + * @param userId 用户ID + * @return 选中岗位ID列表 + */ + @Override + public List selectPostListByUserId(Long userId) + { + return postMapper.selectPostListByUserId(userId); + } + + /** + * 校验岗位名称是否唯一 + * + * @param post 岗位信息 + * @return 结果 + */ + @Override + public String checkPostNameUnique(SysPost post) + { + Long postId = StringUtils.isNull(post.getPostId()) ? -1L : post.getPostId(); + SysPost info = postMapper.checkPostNameUnique(post.getPostName()); + if (StringUtils.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) + { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + + /** + * 校验岗位编码是否唯一 + * + * @param post 岗位信息 + * @return 结果 + */ + @Override + public String checkPostCodeUnique(SysPost post) + { + Long postId = StringUtils.isNull(post.getPostId()) ? -1L : post.getPostId(); + SysPost info = postMapper.checkPostCodeUnique(post.getPostCode()); + if (StringUtils.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) + { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + + /** + * 通过岗位ID查询岗位使用数量 + * + * @param postId 岗位ID + * @return 结果 + */ + @Override + public int countUserPostById(Long postId) + { + return userPostMapper.countUserPostById(postId); + } + + /** + * 删除岗位信息 + * + * @param postId 岗位ID + * @return 结果 + */ + @Override + public int deletePostById(Long postId) + { + return postMapper.deletePostById(postId); + } + + /** + * 批量删除岗位信息 + * + * @param postIds 需要删除的岗位ID + * @return 结果 + * @throws Exception 异常 + */ + @Override + public int deletePostByIds(Long[] postIds) + { + for (Long postId : postIds) + { + SysPost post = selectPostById(postId); + if (countUserPostById(postId) > 0) + { + throw new ServiceException(String.format("%1$s已分配,不能删除", post.getPostName())); + } + } + return postMapper.deletePostByIds(postIds); + } + + /** + * 新增保存岗位信息 + * + * @param post 岗位信息 + * @return 结果 + */ + @Override + public int insertPost(SysPost post) + { + return postMapper.insertPost(post); + } + + /** + * 修改保存岗位信息 + * + * @param post 岗位信息 + * @return 结果 + */ + @Override + public int updatePost(SysPost post) + { + return postMapper.updatePost(post); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java new file mode 100644 index 0000000..352a5cc --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java @@ -0,0 +1,440 @@ +package com.ruoyi.system.service.impl; + +import com.ruoyi.common.annotation.DataScope; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.system.domain.SysRoleDept; +import com.ruoyi.system.domain.SysRoleMenu; +import com.ruoyi.system.domain.SysUserRole; +import com.ruoyi.system.mapper.SysRoleDeptMapper; +import com.ruoyi.system.mapper.SysRoleMapper; +import com.ruoyi.system.mapper.SysRoleMenuMapper; +import com.ruoyi.system.mapper.SysUserRoleMapper; +import com.ruoyi.system.service.ISysRoleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +/** + * 角色 业务层处理 + * + * @author ruoyi + */ +@Service +public class SysRoleServiceImpl implements ISysRoleService +{ + @Autowired + private SysRoleMapper roleMapper; + + @Autowired + private SysRoleMenuMapper roleMenuMapper; + + @Autowired + private SysUserRoleMapper userRoleMapper; + + @Autowired + private SysRoleDeptMapper roleDeptMapper; + + /** + * 根据条件分页查询角色数据 + * + * @param role 角色信息 + * @return 角色数据集合信息 + */ + @Override + @DataScope(deptAlias = "d") + public List selectRoleList(SysRole role) + { + return roleMapper.selectRoleList(role); + } + + /** + * 根据用户ID查询角色 + * + * @param userId 用户ID + * @return 角色列表 + */ + @Override + public List selectRolesByUserId(Long userId) + { + List userRoles = roleMapper.selectRolePermissionByUserId(userId); + List roles = selectRoleAll(); + for (SysRole role : roles) + { + for (SysRole userRole : userRoles) + { + if (role.getRoleId().longValue() == userRole.getRoleId().longValue()) + { + role.setFlag(true); + break; + } + } + } + return roles; + } + + /** + * 根据用户ID查询权限 + * + * @param userId 用户ID + * @return 权限列表 + */ + @Override + public Set selectRolePermissionByUserId(Long userId) + { + List perms = roleMapper.selectRolePermissionByUserId(userId); + Set permsSet = new HashSet<>(); + for (SysRole perm : perms) + { + if (StringUtils.isNotNull(perm)) + { + permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(","))); + } + } + return permsSet; + } + + /** + * 查询所有角色 + * + * @return 角色列表 + */ + @Override + public List selectRoleAll() + { + return SpringUtils.getAopProxy(this).selectRoleList(new SysRole()); + } + + /** + * 根据用户ID获取角色选择框列表 + * + * @param userId 用户ID + * @return 选中角色ID列表 + */ + @Override + public List selectRoleListByUserId(Long userId) + { + return roleMapper.selectRoleListByUserId(userId); + } + + /** + * 通过角色ID查询角色 + * + * @param roleId 角色ID + * @return 角色对象信息 + */ + @Override + public SysRole selectRoleById(Long roleId) + { + return roleMapper.selectRoleById(roleId); + } + + /** + * 校验角色名称是否唯一 + * + * @param role 角色信息 + * @return 结果 + */ + @Override + public String checkRoleNameUnique(SysRole role) + { + Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); + SysRole info = roleMapper.checkRoleNameUnique(role.getRoleName()); + if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) + { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + + /** + * 校验角色权限是否唯一 + * + * @param role 角色信息 + * @return 结果 + */ + @Override + public String checkRoleKeyUnique(SysRole role) + { + Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); + SysRole info = roleMapper.checkRoleKeyUnique(role.getRoleKey()); + if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) + { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + + /** + * 校验角色是否允许操作 + * + * @param role 角色信息 + */ + @Override + public void checkRoleAllowed(SysRole role) + { + if (StringUtils.isNotNull(role.getRoleId()) && role.isAdmin()) + { + throw new ServiceException("不允许操作超级管理员角色"); + } + } + + /** + * 校验角色是否有数据权限 + * + * @param roleId 角色id + */ + @Override + public void checkRoleDataScope(Long roleId) + { + if (!SysUser.isAdmin(SecurityUtils.getUserId())) + { + SysRole role = new SysRole(); + role.setRoleId(roleId); + List roles = SpringUtils.getAopProxy(this).selectRoleList(role); + if (StringUtils.isEmpty(roles)) + { + throw new ServiceException("没有权限访问角色数据!"); + } + } + } + + /** + * 通过角色ID查询角色使用数量 + * + * @param roleId 角色ID + * @return 结果 + */ + @Override + public int countUserRoleByRoleId(Long roleId) + { + return userRoleMapper.countUserRoleByRoleId(roleId); + } + + /** + * 新增保存角色信息 + * + * @param role 角色信息 + * @return 结果 + */ + @Override + @Transactional + public int insertRole(SysRole role) + { + // 新增角色信息 + roleMapper.insertRole(role); + return insertRoleMenu(role); + } + + /** + * 修改保存角色信息 + * + * @param role 角色信息 + * @return 结果 + */ + @Override + @Transactional + public int updateRole(SysRole role) + { + // 修改角色信息 + roleMapper.updateRole(role); + // 删除角色与菜单关联 + roleMenuMapper.deleteRoleMenuByRoleId(role.getRoleId()); + return insertRoleMenu(role); + } + + /** + * 修改角色状态 + * + * @param role 角色信息 + * @return 结果 + */ + @Override + public int updateRoleStatus(SysRole role) + { + return roleMapper.updateRole(role); + } + + /** + * 修改数据权限信息 + * + * @param role 角色信息 + * @return 结果 + */ + @Override + @Transactional + public int authDataScope(SysRole role) + { + // 修改角色信息 + roleMapper.updateRole(role); + // 删除角色与部门关联 + roleDeptMapper.deleteRoleDeptByRoleId(role.getRoleId()); + // 新增角色和部门信息(数据权限) + return insertRoleDept(role); + } + + /** + * 新增角色菜单信息 + * + * @param role 角色对象 + */ + public int insertRoleMenu(SysRole role) + { + int rows = 1; + // 新增用户与角色管理 + List list = new ArrayList(); + for (Long menuId : role.getMenuIds()) + { + SysRoleMenu rm = new SysRoleMenu(); + rm.setRoleId(role.getRoleId()); + rm.setMenuId(menuId); + list.add(rm); + } + if (list.size() > 0) + { + rows = roleMenuMapper.batchRoleMenu(list); + } + return rows; + } + + /** + * 新增角色部门信息(数据权限) + * + * @param role 角色对象 + */ + public int insertRoleDept(SysRole role) + { + int rows = 1; + // 新增角色与部门(数据权限)管理 + List list = new ArrayList(); + for (Long deptId : role.getDeptIds()) + { + SysRoleDept rd = new SysRoleDept(); + rd.setRoleId(role.getRoleId()); + rd.setDeptId(deptId); + list.add(rd); + } + if (list.size() > 0) + { + rows = roleDeptMapper.batchRoleDept(list); + } + return rows; + } + + /** + * 通过角色ID删除角色 + * + * @param roleId 角色ID + * @return 结果 + */ + @Override + @Transactional + public int deleteRoleById(Long roleId) + { + // 删除角色与菜单关联 + roleMenuMapper.deleteRoleMenuByRoleId(roleId); + // 删除角色与部门关联 + roleDeptMapper.deleteRoleDeptByRoleId(roleId); + return roleMapper.deleteRoleById(roleId); + } + + /** + * 批量删除角色信息 + * + * @param roleIds 需要删除的角色ID + * @return 结果 + */ + @Override + @Transactional + public int deleteRoleByIds(Long[] roleIds) + { + for (Long roleId : roleIds) + { + checkRoleAllowed(new SysRole(roleId)); + SysRole role = selectRoleById(roleId); + if (countUserRoleByRoleId(roleId) > 0) + { + throw new ServiceException(String.format("%1$s已分配,不能删除", role.getRoleName())); + } + } + // 删除角色与菜单关联 + roleMenuMapper.deleteRoleMenu(roleIds); + // 删除角色与部门关联 + roleDeptMapper.deleteRoleDept(roleIds); + return roleMapper.deleteRoleByIds(roleIds); + } + + /** + * 取消授权用户角色 + * + * @param userRole 用户和角色关联信息 + * @return 结果 + */ + @Override + public int deleteAuthUser(SysUserRole userRole) + { + return userRoleMapper.deleteUserRoleInfo(userRole); + } + + /** + * 批量取消授权用户角色 + * + * @param roleId 角色ID + * @param userIds 需要取消授权的用户数据ID + * @return 结果 + */ + @Override + public int deleteAuthUsers(Long roleId, Long[] userIds) + { + return userRoleMapper.deleteUserRoleInfos(roleId, userIds); + } + + /** + * 批量选择授权用户角色 + * + * @param roleId 角色ID + * @param userIds 需要删除的用户数据ID + * @return 结果 + */ + @Override + public int insertAuthUsers(Long roleId, Long[] userIds) + { + // 新增用户与角色管理 + List list = new ArrayList(); + for (Long userId : userIds) + { + SysUserRole ur = new SysUserRole(); + ur.setUserId(userId); + ur.setRoleId(roleId); + list.add(ur); + } + return userRoleMapper.batchUserRole(list); + } + + @Override + public SysRole selectRoleByKey(String roleKey) { + return roleMapper.selectRoleByKey(roleKey); + } + + @Override + public int allocateRole2User(String role, Long userId) { + SysRole role1 = selectRoleByKey(role); + SysUserRole ur = new SysUserRole(); + ur.setUserId(userId); + ur.setRoleId(role1.getRoleId()); + return userRoleMapper.batchUserRole(Arrays.asList(ur)); + } + + @Override + public boolean hasRole(String roleKey, Long userId) { + SysRole role = selectRoleByKey(roleKey); + return userRoleMapper.countRoleAndUserId(role.getRoleId(), userId) > 0; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java new file mode 100644 index 0000000..f80a877 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.system.service.impl; + +import org.springframework.stereotype.Service; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.domain.SysUserOnline; +import com.ruoyi.system.service.ISysUserOnlineService; + +/** + * 在线用户 服务层处理 + * + * @author ruoyi + */ +@Service +public class SysUserOnlineServiceImpl implements ISysUserOnlineService +{ + /** + * 通过登录地址查询信息 + * + * @param ipaddr 登录地址 + * @param user 用户信息 + * @return 在线用户信息 + */ + @Override + public SysUserOnline selectOnlineByIpaddr(String ipaddr, LoginUser user) + { + if (StringUtils.equals(ipaddr, user.getIpaddr())) + { + return loginUserToUserOnline(user); + } + return null; + } + + /** + * 通过用户名称查询信息 + * + * @param userName 用户名称 + * @param user 用户信息 + * @return 在线用户信息 + */ + @Override + public SysUserOnline selectOnlineByUserName(String userName, LoginUser user) + { + if (StringUtils.equals(userName, user.getUsername())) + { + return loginUserToUserOnline(user); + } + return null; + } + + /** + * 通过登录地址/用户名称查询信息 + * + * @param ipaddr 登录地址 + * @param userName 用户名称 + * @param user 用户信息 + * @return 在线用户信息 + */ + @Override + public SysUserOnline selectOnlineByInfo(String ipaddr, String userName, LoginUser user) + { + if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername())) + { + return loginUserToUserOnline(user); + } + return null; + } + + /** + * 设置在线用户信息 + * + * @param user 用户信息 + * @return 在线用户 + */ + @Override + public SysUserOnline loginUserToUserOnline(LoginUser user) + { + if (StringUtils.isNull(user) || StringUtils.isNull(user.getUser())) + { + return null; + } + SysUserOnline sysUserOnline = new SysUserOnline(); + sysUserOnline.setTokenId(user.getToken()); + sysUserOnline.setUserName(user.getUsername()); + sysUserOnline.setIpaddr(user.getIpaddr()); + sysUserOnline.setLoginLocation(user.getLoginLocation()); + sysUserOnline.setBrowser(user.getBrowser()); + sysUserOnline.setOs(user.getOs()); + sysUserOnline.setLoginTime(user.getLoginTime()); + if (StringUtils.isNotNull(user.getUser().getDept())) + { + sysUserOnline.setDeptName(user.getUser().getDept().getDeptName()); + } + return sysUserOnline; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java new file mode 100644 index 0000000..a3a0055 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -0,0 +1,567 @@ +package com.ruoyi.system.service.impl; + +import java.util.ArrayList; +import java.util.List; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.ruoyi.common.annotation.DataScope; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.system.domain.SysPost; +import com.ruoyi.system.domain.SysUserPost; +import com.ruoyi.system.domain.SysUserRole; +import com.ruoyi.system.mapper.SysPostMapper; +import com.ruoyi.system.mapper.SysRoleMapper; +import com.ruoyi.system.mapper.SysUserMapper; +import com.ruoyi.system.mapper.SysUserPostMapper; +import com.ruoyi.system.mapper.SysUserRoleMapper; +import com.ruoyi.system.service.ISysConfigService; +import com.ruoyi.system.service.ISysUserService; + +/** + * 用户 业务层处理 + * + * @author ruoyi + */ +@Service +public class SysUserServiceImpl implements ISysUserService +{ + private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); + + @Autowired + private SysUserMapper userMapper; + + @Autowired + private SysRoleMapper roleMapper; + + @Autowired + private SysPostMapper postMapper; + + @Autowired + private SysUserRoleMapper userRoleMapper; + + @Autowired + private SysUserPostMapper userPostMapper; + + @Autowired + private ISysConfigService configService; + + /** + * 根据条件分页查询用户列表 + * + * @param user 用户信息 + * @return 用户信息集合信息 + */ + @Override + @DataScope(deptAlias = "d", userAlias = "u") + public List selectUserList(SysUser user) + { + return userMapper.selectUserList(user); + } + + /** + * 根据条件分页查询已分配用户角色列表 + * + * @param user 用户信息 + * @return 用户信息集合信息 + */ + @Override + @DataScope(deptAlias = "d", userAlias = "u") + public List selectAllocatedList(SysUser user) + { + return userMapper.selectAllocatedList(user); + } + + /** + * 根据条件分页查询未分配用户角色列表 + * + * @param user 用户信息 + * @return 用户信息集合信息 + */ + @Override + @DataScope(deptAlias = "d", userAlias = "u") + public List selectUnallocatedList(SysUser user) + { + return userMapper.selectUnallocatedList(user); + } + + /** + * 通过用户名查询用户 + * + * @param userName 用户名 + * @return 用户对象信息 + */ + @Override + public SysUser selectUserByUserName(String userName) + { + return userMapper.selectUserByUserName(userName); + } + + /** + * 通过用户ID查询用户 + * + * @param userId 用户ID + * @return 用户对象信息 + */ + @Override + public SysUser selectUserById(Long userId) + { + return userMapper.selectUserById(userId); + } + + /** + * 查询用户所属角色组 + * + * @param userName 用户名 + * @return 结果 + */ + @Override + public String selectUserRoleGroup(String userName) + { + List list = roleMapper.selectRolesByUserName(userName); + StringBuffer idsStr = new StringBuffer(); + for (SysRole role : list) + { + idsStr.append(role.getRoleName()).append(","); + } + if (StringUtils.isNotEmpty(idsStr.toString())) + { + return idsStr.substring(0, idsStr.length() - 1); + } + return idsStr.toString(); + } + + /** + * 查询用户所属岗位组 + * + * @param userName 用户名 + * @return 结果 + */ + @Override + public String selectUserPostGroup(String userName) + { + List list = postMapper.selectPostsByUserName(userName); + StringBuffer idsStr = new StringBuffer(); + for (SysPost post : list) + { + idsStr.append(post.getPostName()).append(","); + } + if (StringUtils.isNotEmpty(idsStr.toString())) + { + return idsStr.substring(0, idsStr.length() - 1); + } + return idsStr.toString(); + } + + /** + * 校验用户名称是否唯一 + * + * @param userName 用户名称 + * @return 结果 + */ + @Override + public String checkUserNameUnique(String userName) + { + int count = userMapper.checkUserNameUnique(userName); + if (count > 0) + { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + + /** + * 校验用户名称是否唯一 + * + * @param user 用户信息 + * @return + */ + @Override + public String checkPhoneUnique(SysUser user) + { + Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); + SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber()); + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) + { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + + /** + * 校验email是否唯一 + * + * @param user 用户信息 + * @return + */ + @Override + public String checkEmailUnique(SysUser user) + { + Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); + SysUser info = userMapper.checkEmailUnique(user.getEmail()); + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) + { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + + /** + * 校验用户是否允许操作 + * + * @param user 用户信息 + */ + @Override + public void checkUserAllowed(SysUser user) + { + if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) + { + throw new ServiceException("不允许操作超级管理员用户"); + } + } + + /** + * 校验用户是否有数据权限 + * + * @param userId 用户id + */ + @Override + public void checkUserDataScope(Long userId) + { + if (!SysUser.isAdmin(SecurityUtils.getUserId())) + { + SysUser user = new SysUser(); + user.setUserId(userId); + List users = SpringUtils.getAopProxy(this).selectUserList(user); + if (StringUtils.isEmpty(users)) + { + throw new ServiceException("没有权限访问用户数据!"); + } + } + } + + /** + * 新增保存用户信息 + * + * @param user 用户信息 + * @return 结果 + */ + @Override + @Transactional + public int insertUser(SysUser user) + { + // 新增用户信息 + int rows = userMapper.insertUser(user); + // 新增用户岗位关联 + insertUserPost(user); + // 新增用户与角色管理 + insertUserRole(user); + return rows; + } + + /** + * 注册用户信息 + * + * @param user 用户信息 + * @return 结果 + */ + @Override + public boolean registerUser(SysUser user) + { + return userMapper.insertUser(user) > 0; + } + + /** + * 修改保存用户信息 + * + * @param user 用户信息 + * @return 结果 + */ + @Override + @Transactional + public int updateUser(SysUser user) + { + Long userId = user.getUserId(); + // 删除用户与角色关联 + userRoleMapper.deleteUserRoleByUserId(userId); + // 新增用户与角色管理 + insertUserRole(user); + // 删除用户与岗位关联 + userPostMapper.deleteUserPostByUserId(userId); + // 新增用户与岗位管理 + insertUserPost(user); + return userMapper.updateUser(user); + } + + /** + * 用户授权角色 + * + * @param userId 用户ID + * @param roleIds 角色组 + */ + @Override + @Transactional + public void insertUserAuth(Long userId, Long[] roleIds) + { + userRoleMapper.deleteUserRoleByUserId(userId); + insertUserRole(userId, roleIds); + } + + /** + * 修改用户状态 + * + * @param user 用户信息 + * @return 结果 + */ + @Override + public int updateUserStatus(SysUser user) + { + return userMapper.updateUser(user); + } + + /** + * 修改用户基本信息 + * + * @param user 用户信息 + * @return 结果 + */ + @Override + public int updateUserProfile(SysUser user) + { + return userMapper.updateUser(user); + } + + /** + * 修改用户头像 + * + * @param userName 用户名 + * @param avatar 头像地址 + * @return 结果 + */ + @Override + public boolean updateUserAvatar(String userName, String avatar) + { + return userMapper.updateUserAvatar(userName, avatar) > 0; + } + + /** + * 重置用户密码 + * + * @param user 用户信息 + * @return 结果 + */ + @Override + public int resetPwd(SysUser user) + { + return userMapper.updateUser(user); + } + + /** + * 重置用户密码 + * + * @param userName 用户名 + * @param password 密码 + * @return 结果 + */ + @Override + public int resetUserPwd(String userName, String password) + { + return userMapper.resetUserPwd(userName, password); + } + + /** + * 新增用户角色信息 + * + * @param user 用户对象 + */ + public void insertUserRole(SysUser user) + { + Long[] roles = user.getRoleIds(); + if (StringUtils.isNotNull(roles)) + { + // 新增用户与角色管理 + List list = new ArrayList(); + for (Long roleId : roles) + { + SysUserRole ur = new SysUserRole(); + ur.setUserId(user.getUserId()); + ur.setRoleId(roleId); + list.add(ur); + } + if (list.size() > 0) + { + userRoleMapper.batchUserRole(list); + } + } + } + + /** + * 新增用户岗位信息 + * + * @param user 用户对象 + */ + public void insertUserPost(SysUser user) + { + Long[] posts = user.getPostIds(); + if (StringUtils.isNotNull(posts)) + { + // 新增用户与岗位管理 + List list = new ArrayList(); + for (Long postId : posts) + { + SysUserPost up = new SysUserPost(); + up.setUserId(user.getUserId()); + up.setPostId(postId); + list.add(up); + } + if (list.size() > 0) + { + userPostMapper.batchUserPost(list); + } + } + } + + /** + * 新增用户角色信息 + * + * @param userId 用户ID + * @param roleIds 角色组 + */ + public void insertUserRole(Long userId, Long[] roleIds) + { + if (StringUtils.isNotNull(roleIds)) + { + // 新增用户与角色管理 + List list = new ArrayList(); + for (Long roleId : roleIds) + { + SysUserRole ur = new SysUserRole(); + ur.setUserId(userId); + ur.setRoleId(roleId); + list.add(ur); + } + if (list.size() > 0) + { + userRoleMapper.batchUserRole(list); + } + } + } + + /** + * 通过用户ID删除用户 + * + * @param userId 用户ID + * @return 结果 + */ + @Override + @Transactional + public int deleteUserById(Long userId) + { + // 删除用户与角色关联 + userRoleMapper.deleteUserRoleByUserId(userId); + // 删除用户与岗位表 + userPostMapper.deleteUserPostByUserId(userId); + return userMapper.deleteUserById(userId); + } + + /** + * 批量删除用户信息 + * + * @param userIds 需要删除的用户ID + * @return 结果 + */ + @Override + @Transactional + public int deleteUserByIds(Long[] userIds) + { + for (Long userId : userIds) + { + checkUserAllowed(new SysUser(userId)); + } + // 删除用户与角色关联 + userRoleMapper.deleteUserRole(userIds); + // 删除用户与岗位关联 + userPostMapper.deleteUserPost(userIds); + return userMapper.deleteUserByIds(userIds); + } + + /** + * 导入用户数据 + * + * @param userList 用户数据列表 + * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 + * @param userId 操作用户 + * @return 结果 + */ + @Override + public String importUser(List userList, Boolean isUpdateSupport, Long userId) + { + if (StringUtils.isNull(userList) || userList.size() == 0) + { + throw new ServiceException("导入用户数据不能为空!"); + } + int successNum = 0; + int failureNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + String password = configService.selectConfigByKey("sys.user.initPassword"); + for (SysUser user : userList) + { + try + { + // 验证是否存在这个用户 + SysUser u = userMapper.selectUserByUserName(user.getUserName()); + if (StringUtils.isNull(u)) + { + user.setPassword(SecurityUtils.encryptPassword(password)); + user.setCreateBy(userId); + this.insertUser(user); + successNum++; + successMsg.append("
" + successNum + "、账号 " + user.getUserName() + " 导入成功"); + } + else if (isUpdateSupport) + { + user.setUpdateBy(userId); + this.updateUser(user); + successNum++; + successMsg.append("
" + successNum + "、账号 " + user.getUserName() + " 更新成功"); + } + else + { + failureNum++; + failureMsg.append("
" + failureNum + "、账号 " + user.getUserName() + " 已存在"); + } + } + catch (Exception e) + { + failureNum++; + String msg = "
" + failureNum + "、账号 " + user.getUserName() + " 导入失败:"; + failureMsg.append(msg + e.getMessage()); + log.error(msg, e); + } + } + if (failureNum > 0) + { + failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); + throw new ServiceException(failureMsg.toString()); + } + else + { + successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); + } + return successMsg.toString(); + } + + @Override + public SysUser selectUserByPhoneOrUserName(String phone) { + return userMapper.selectUserByPhone(phone); + } +} diff --git a/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml new file mode 100644 index 0000000..a58a82d --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + select config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark + from sys_config + + + + + + + and config_id = #{configId} + + + and config_key = #{configKey} + + + + + + + + + + + + insert into sys_config ( + config_name, + config_key, + config_value, + config_type, + create_by, + remark, + create_time + )values( + #{configName}, + #{configKey}, + #{configValue}, + #{configType}, + #{createBy}, + #{remark}, + sysdate() + ) + + + + update sys_config + + config_name = #{configName}, + config_key = #{configKey}, + config_value = #{configValue}, + config_type = #{configType}, + update_by = #{updateBy}, + remark = #{remark}, + update_time = sysdate() + + where config_id = #{configId} + + + + delete from sys_config where config_id = #{configId} + + + + delete from sys_config where config_id in + + #{configId} + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml new file mode 100644 index 0000000..a6a9e81 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time + from sys_dept d + + + + + + + + + + + + + + + + + + + + insert into sys_dept( + dept_id, + parent_id, + dept_name, + ancestors, + order_num, + leader, + phone, + email, + status, + create_by, + create_time + )values( + #{deptId}, + #{parentId}, + #{deptName}, + #{ancestors}, + #{orderNum}, + #{leader}, + #{phone}, + #{email}, + #{status}, + #{createBy}, + sysdate() + ) + + + + update sys_dept + + parent_id = #{parentId}, + dept_name = #{deptName}, + ancestors = #{ancestors}, + order_num = #{orderNum}, + leader = #{leader}, + phone = #{phone}, + email = #{email}, + status = #{status}, + update_by = #{updateBy}, + update_time = sysdate() + + where dept_id = #{deptId} + + + + update sys_dept set ancestors = + + when #{item.deptId} then #{item.ancestors} + + where dept_id in + + #{item.deptId} + + + + + update sys_dept set status = '0' where dept_id in + + #{deptId} + + + + + update sys_dept set del_flag = '2' where dept_id = #{deptId} + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml new file mode 100644 index 0000000..9ec6034 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + select dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark + from sys_dict_data + + + + + + + + + + + + + + delete from sys_dict_data where dict_code = #{dictCode} + + + + delete from sys_dict_data where dict_code in + + #{dictCode} + + + + + update sys_dict_data + + dict_sort = #{dictSort}, + dict_label = #{dictLabel}, + dict_value = #{dictValue}, + dict_type = #{dictType}, + css_class = #{cssClass}, + list_class = #{listClass}, + is_default = #{isDefault}, + status = #{status}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = sysdate() + + where dict_code = #{dictCode} + + + + update sys_dict_data set dict_type = #{newDictType} where dict_type = #{oldDictType} + + + + insert into sys_dict_data( + dict_sort, + dict_label, + dict_value, + dict_type, + css_class, + list_class, + is_default, + status, + remark, + create_by, + create_time + )values( + #{dictSort}, + #{dictLabel}, + #{dictValue}, + #{dictType}, + #{cssClass}, + #{listClass}, + #{isDefault}, + #{status}, + #{remark}, + #{createBy}, + sysdate() + ) + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml new file mode 100644 index 0000000..0898cb7 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + select dict_id, dict_name, dict_type, status, create_by, create_time, remark + from sys_dict_type + + + + + + + + + + + + + + delete from sys_dict_type where dict_id = #{dictId} + + + + delete from sys_dict_type where dict_id in + + #{dictId} + + + + + update sys_dict_type + + dict_name = #{dictName}, + dict_type = #{dictType}, + status = #{status}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = sysdate() + + where dict_id = #{dictId} + + + + insert into sys_dict_type( + dict_name, + dict_type, + status, + remark, + create_by, + create_time + )values( + #{dictName}, + #{dictType}, + #{status}, + #{remark}, + #{createBy}, + sysdate() + ) + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml new file mode 100644 index 0000000..b8178fa --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + insert into sys_logininfor (user_name, status, ipaddr, login_location, browser, os, msg, login_time) + values (#{userName}, #{status}, #{ipaddr}, #{loginLocation}, #{browser}, #{os}, #{msg}, sysdate()) + + + + + + delete from sys_logininfor where info_id in + + #{infoId} + + + + + truncate table sys_logininfor + + + \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml new file mode 100644 index 0000000..e34d32a --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select menu_id, menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time + from sys_menu + + + + + + + + + + + + + + + + + + + + + + + + update sys_menu + + menu_name = #{menuName}, + parent_id = #{parentId}, + order_num = #{orderNum}, + path = #{path}, + component = #{component}, + query = #{query}, + is_frame = #{isFrame}, + is_cache = #{isCache}, + menu_type = #{menuType}, + visible = #{visible}, + status = #{status}, + perms = #{perms}, + icon = #{icon}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = sysdate() + + where menu_id = #{menuId} + + + + insert into sys_menu( + menu_id, + parent_id, + menu_name, + order_num, + path, + component, + query, + is_frame, + is_cache, + menu_type, + visible, + status, + perms, + icon, + remark, + create_by, + create_time + )values( + #{menuId}, + #{parentId}, + #{menuName}, + #{orderNum}, + #{path}, + #{component}, + #{query}, + #{isFrame}, + #{isCache}, + #{menuType}, + #{visible}, + #{status}, + #{perms}, + #{icon}, + #{remark}, + #{createBy}, + sysdate() + ) + + + + delete from sys_menu where menu_id = #{menuId} + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml new file mode 100644 index 0000000..955f2e9 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + select notice_id, notice_title, notice_type, cast(notice_content as char) as notice_content, status, create_by, create_time, update_by, update_time, remark + from sys_notice + + + + + + + + insert into sys_notice ( + notice_title, + notice_type, + notice_content, + status, + remark, + create_by, + create_time + )values( + #{noticeTitle}, + #{noticeType}, + #{noticeContent}, + #{status}, + #{remark}, + #{createBy}, + sysdate() + ) + + + + update sys_notice + + notice_title = #{noticeTitle}, + notice_type = #{noticeType}, + notice_content = #{noticeContent}, + status = #{status}, + update_by = #{updateBy}, + update_time = sysdate() + + where notice_id = #{noticeId} + + + + delete from sys_notice where notice_id = #{noticeId} + + + + delete from sys_notice where notice_id in + + #{noticeId} + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml new file mode 100644 index 0000000..f017ef8 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + select oper_id, title, business_type, method, request_method, operator_type, oper_name, dept_name, oper_url, oper_ip, oper_location, oper_param, json_result, status, error_msg, oper_time + from sys_oper_log + + + + insert into sys_oper_log(title, business_type, method, request_method, operator_type, oper_name, dept_name, oper_url, oper_ip, oper_location, oper_param, json_result, status, error_msg, oper_time) + values (#{title}, #{businessType}, #{method}, #{requestMethod}, #{operatorType}, #{operName}, #{deptName}, #{operUrl}, #{operIp}, #{operLocation}, #{operParam}, #{jsonResult}, #{status}, #{errorMsg}, sysdate()) + + + + + + delete from sys_oper_log where oper_id in + + #{operId} + + + + + + + truncate table sys_oper_log + + + \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml new file mode 100644 index 0000000..dd89e8d --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + select post_id, post_code, post_name, post_sort, status, create_by, create_time, remark + from sys_post + + + + + + + + + + + + + + + + + + update sys_post + + post_code = #{postCode}, + post_name = #{postName}, + post_sort = #{postSort}, + status = #{status}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = sysdate() + + where post_id = #{postId} + + + + insert into sys_post( + post_id, + post_code, + post_name, + post_sort, + status, + remark, + create_by, + create_time + )values( + #{postId}, + #{postCode}, + #{postName}, + #{postSort}, + #{status}, + #{remark}, + #{createBy}, + sysdate() + ) + + + + delete from sys_post where post_id = #{postId} + + + + delete from sys_post where post_id in + + #{postId} + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml new file mode 100644 index 0000000..7c4139b --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + delete from sys_role_dept where role_id=#{roleId} + + + + + + delete from sys_role_dept where role_id in + + #{roleId} + + + + + insert into sys_role_dept(role_id, dept_id) values + + (#{item.roleId},#{item.deptId}) + + + + \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml new file mode 100644 index 0000000..7d4941a --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly, + r.status, r.del_flag, r.create_time, r.remark + from sys_role r + left join sys_user_role ur on ur.role_id = r.role_id + left join sys_user u on u.user_id = ur.user_id + left join sys_dept d on u.dept_id = d.dept_id + + + + + + + + + + + + + + + + + + + + insert into sys_role( + role_id, + role_name, + role_key, + role_sort, + data_scope, + menu_check_strictly, + dept_check_strictly, + status, + remark, + create_by, + create_time + )values( + #{roleId}, + #{roleName}, + #{roleKey}, + #{roleSort}, + #{dataScope}, + #{menuCheckStrictly}, + #{deptCheckStrictly}, + #{status}, + #{remark}, + #{createBy}, + sysdate() + ) + + + + update sys_role + + role_name = #{roleName}, + role_key = #{roleKey}, + role_sort = #{roleSort}, + data_scope = #{dataScope}, + menu_check_strictly = #{menuCheckStrictly}, + dept_check_strictly = #{deptCheckStrictly}, + status = #{status}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = sysdate() + + where role_id = #{roleId} + + + + update sys_role set del_flag = '2' where role_id = #{roleId} + + + + update sys_role set del_flag = '2' where role_id in + + #{roleId} + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml new file mode 100644 index 0000000..cb60a85 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + delete from sys_role_menu where role_id=#{roleId} + + + + delete from sys_role_menu where role_id in + + #{roleId} + + + + + insert into sys_role_menu(role_id, menu_id) values + + (#{item.roleId},#{item.menuId}) + + + + \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml new file mode 100644 index 0000000..aa12490 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, + d.dept_id, d.parent_id, d.dept_name, d.order_num, d.leader, d.status as dept_status, + r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status + from sys_user u + left join sys_dept d on u.dept_id = d.dept_id + left join sys_user_role ur on u.user_id = ur.user_id + left join sys_role r on r.role_id = ur.role_id + + + + + + + + + + + + + + + + + + + + insert into sys_user( + user_id, + dept_id, + user_name, + nick_name, + email, + avatar, + phonenumber, + sex, + password, + status, + create_by, + remark, + create_time + )values( + #{userId}, + #{deptId}, + #{userName}, + #{nickName}, + #{email}, + #{avatar}, + #{phonenumber}, + #{sex}, + #{password}, + #{status}, + #{createBy}, + #{remark}, + sysdate() + ) + + + + update sys_user + + dept_id = #{deptId}, + user_name = #{userName}, + nick_name = #{nickName}, + email = #{email}, + phonenumber = #{phonenumber}, + sex = #{sex}, + avatar = #{avatar}, + password = #{password}, + status = #{status}, + login_ip = #{loginIp}, + login_date = #{loginDate}, + update_by = #{updateBy}, + remark = #{remark}, + update_time = sysdate() + + where user_id = #{userId} + + + + update sys_user set status = #{status} where user_id = #{userId} + + + + update sys_user set avatar = #{avatar} where user_name = #{userName} + + + + update sys_user set password = #{password} where user_name = #{userName} + + + + update sys_user set del_flag = '2' where user_id = #{userId} + + + + update sys_user set del_flag = '2' where user_id in + + #{userId} + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml new file mode 100644 index 0000000..2b90bc4 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + delete from sys_user_post where user_id=#{userId} + + + + + + delete from sys_user_post where user_id in + + #{userId} + + + + + insert into sys_user_post(user_id, post_id) values + + (#{item.userId},#{item.postId}) + + + + \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml new file mode 100644 index 0000000..dd72689 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + delete from sys_user_role where user_id=#{userId} + + + + + + delete from sys_user_role where user_id in + + #{userId} + + + + + insert into sys_user_role(user_id, role_id) values + + (#{item.userId},#{item.roleId}) + + + + + delete from sys_user_role where user_id=#{userId} and role_id=#{roleId} + + + + delete from sys_user_role where role_id=#{roleId} and user_id in + + #{userId} + + + \ No newline at end of file diff --git a/ry.bat b/ry.bat new file mode 100644 index 0000000..a6ba5a5 --- /dev/null +++ b/ry.bat @@ -0,0 +1,67 @@ +@echo off + +rem jarƽĿ¼ +set AppName=ruoyi-admin.jar + +rem JVM +set JVM_OPTS="-Dname=%AppName% -Duser.timezone=Asia/Shanghai -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC" + + +ECHO. + ECHO. [1] %AppName% + ECHO. [2] ر%AppName% + ECHO. [3] %AppName% + ECHO. [4] ״̬ %AppName% + ECHO. [5] +ECHO. + +ECHO.ѡĿ: +set /p ID= + IF "%id%"=="1" GOTO start + IF "%id%"=="2" GOTO stop + IF "%id%"=="3" GOTO restart + IF "%id%"=="4" GOTO status + IF "%id%"=="5" EXIT +PAUSE +:start + for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do ( + set pid=%%a + set image_name=%%b + ) + if defined pid ( + echo %%is running + PAUSE + ) + +start javaw -jar %JAVA_OPTS% ruoyi-admin.jar + +echo starting +echo Start %AppName% success... +goto:eof + +rem stopͨjpspid +:stop + for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do ( + set pid=%%a + set image_name=%%b + ) + if not defined pid (echo process %AppName% does not exists) else ( + echo prepare to kill %image_name% + echo start kill %pid% ... + rem ݽIDkill + taskkill /f /pid %pid% + ) +goto:eof +:restart + call :stop + call :start +goto:eof +:status + for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do ( + set pid=%%a + set image_name=%%b + ) + if not defined pid (echo process %AppName% is dead ) else ( + echo %image_name% is running + ) +goto:eof \ No newline at end of file diff --git a/ry.sh b/ry.sh new file mode 100644 index 0000000..7c4f503 --- /dev/null +++ b/ry.sh @@ -0,0 +1,90 @@ +#!/bin/sh +# author ruoyi +# ./ry.sh start 启动 +# ./ry.sh stop 停止 +# ./ry.sh restart 重启 +# ./ry.sh status 状态 +AppName=ruoyi-admin.jar + +# JVM参数 +JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC" +APP_HOME=`pwd` +LOG_PATH=$APP_HOME/logs/$AppName.log + +if [ "$1" = "" ]; +then + echo -e "\033[0;31m 未输入操作名 \033[0m \033[0;34m {start|stop|restart|status} \033[0m" + exit 1 +fi + +if [ "$AppName" = "" ]; +then + echo -e "\033[0;31m 未输入应用名 \033[0m" + exit 1 +fi + +function start() +{ + PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'` + + if [ x"$PID" != x"" ]; then + echo "$AppName is running..." + else + nohup java -jar $JVM_OPTS target/$AppName > /dev/null 2>&1 & + echo "Start $AppName success..." + fi +} + +function stop() +{ + echo "Stop $AppName" + + PID="" + query(){ + PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'` + } + + query + if [ x"$PID" != x"" ]; then + kill -TERM $PID + echo "$AppName (pid:$PID) exiting..." + while [ x"$PID" != x"" ] + do + sleep 1 + query + done + echo "$AppName exited." + else + echo "$AppName already stopped." + fi +} + +function restart() +{ + stop + sleep 2 + start +} + +function status() +{ + PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l` + if [ $PID != 0 ];then + echo "$AppName is running..." + else + echo "$AppName is not running..." + fi +} + +case $1 in + start) + start;; + stop) + stop;; + restart) + restart;; + status) + status;; + *) + +esac diff --git a/sql/imageMenu.sql b/sql/imageMenu.sql new file mode 100644 index 0000000..d2df8e5 --- /dev/null +++ b/sql/imageMenu.sql @@ -0,0 +1,22 @@ +-- 菜单 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('人员信息', '3', '1', 'image', 'system/image/index', 1, 0, 'C', '0', '0', 'system:image:list', '#', 'admin', sysdate(), '', null, '人员信息菜单'); + +-- 按钮父菜单ID +SELECT @parentId := LAST_INSERT_ID(); + +-- 按钮 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('人员信息查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', 'system:image:query', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('人员信息新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', 'system:image:add', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('人员信息修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', 'system:image:edit', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('人员信息删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', 'system:image:remove', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('人员信息导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', 'system:image:export', '#', 'admin', sysdate(), '', null, ''); \ No newline at end of file diff --git a/sql/staffMenu.sql b/sql/staffMenu.sql new file mode 100644 index 0000000..599a042 --- /dev/null +++ b/sql/staffMenu.sql @@ -0,0 +1,22 @@ +-- 菜单 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('人员信息', '3', '1', 'staff', 'system/staff/index', 1, 0, 'C', '0', '0', 'system:staff:list', '#', 'admin', sysdate(), '', null, '人员信息菜单'); + +-- 按钮父菜单ID +SELECT @parentId := LAST_INSERT_ID(); + +-- 按钮 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('人员信息查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', 'system:staff:query', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('人员信息新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', 'system:staff:add', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('人员信息修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', 'system:staff:edit', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('人员信息删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', 'system:staff:remove', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('人员信息导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', 'system:staff:export', '#', 'admin', sysdate(), '', null, ''); \ No newline at end of file diff --git a/sql/update.sql b/sql/update.sql new file mode 100644 index 0000000..e69de29 diff --git a/sql/wechatMemberCouponMenu.sql b/sql/wechatMemberCouponMenu.sql new file mode 100644 index 0000000..55f1cb1 --- /dev/null +++ b/sql/wechatMemberCouponMenu.sql @@ -0,0 +1,22 @@ +-- 菜单 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('会员券', '3', '1', 'wechatMemberCoupon', 'marketing/wechatMemberCoupon/index', 1, 0, 'C', '0', '0', 'mall:wechatMemberCoupon:list', '#', 1, sysdate(), 1, null, '会员券菜单'); + +-- 按钮父菜单ID +SELECT @parentId := LAST_INSERT_ID(); + +-- 按钮 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('会员券查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', 'mall:wechatMemberCoupon:query', '#', 1, sysdate(), 1, null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('会员券新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', 'mall:wechatMemberCoupon:add', '#', 1, sysdate(), 1, null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('会员券修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', 'mall:wechatMemberCoupon:edit', '#', 1, sysdate(), 1, null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('会员券删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', 'mall:wechatMemberCoupon:remove', '#', 1, sysdate(), 1, null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('会员券导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', 'mall:wechatMemberCoupon:export', '#', 1, sysdate(), 1, null, ''); diff --git a/sql/wechatStockMenu.sql b/sql/wechatStockMenu.sql new file mode 100644 index 0000000..b14a563 --- /dev/null +++ b/sql/wechatStockMenu.sql @@ -0,0 +1,22 @@ +-- 菜单 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('券管理', '3', '1', 'wechatStock', 'marketing/wechatStock/index', 1, 0, 'C', '0', '0', 'mall:wechatStock:list', '#', 1, sysdate(), 1, null, '微信商家券菜单'); + +-- 按钮父菜单ID +SELECT @parentId := LAST_INSERT_ID(); + +-- 按钮 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('券查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', 'mall:wechatStock:query', '#', 1, sysdate(), 1, null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('券新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', 'mall:wechatStock:add', '#', 1, sysdate(), 1, null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('券修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', 'mall:wechatStock:edit', '#', 1, sysdate(), 1, null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('券删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', 'mall:wechatStock:remove', '#', 1, sysdate(), 1, null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('券导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', 'mall:wechatStock:export', '#', 1, sysdate(), 1, null, ''); diff --git a/sql/数据和结构.sql b/sql/数据和结构.sql new file mode 100644 index 0000000..c077a52 --- /dev/null +++ b/sql/数据和结构.sql @@ -0,0 +1,17920 @@ +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for address +-- ---------------------------- +DROP TABLE IF EXISTS `address`; +CREATE TABLE `address` ( + `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, + `code` bigint(20) NOT NULL COMMENT '地区邮编', + `parent_code` bigint(20) NOT NULL COMMENT '父地区邮编', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '地区名', + `level` tinyint(4) NOT NULL COMMENT '地区层级', + `created_at` timestamp(0) NULL DEFAULT NULL, + `updated_at` timestamp(0) NULL DEFAULT NULL, + `deleted_at` timestamp(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `address_code_parent_code_unique`(`code`, `parent_code`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 56925 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of address +-- ---------------------------- +INSERT INTO `address` VALUES (2, 34, 0, '安徽省', 0, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (3, 340800, 34, '安庆市', 1, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (4, 340803, 340800, '大观区', 2, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (5, 340803010, 340803, '十里铺乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (6, 340803011, 340803, '山口乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (7, 340803001, 340803, '德宽路街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (8, 340803009, 340803, '海口镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (9, 340803002, 340803, '玉琳路街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (10, 340803012, 340803, '皖河农场', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (11, 340803006, 340803, '石化路街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (12, 340803007, 340803, '花亭路街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (13, 340803004, 340803, '菱湖街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (14, 340803005, 340803, '集贤路街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (15, 340803003, 340803, '龙山路街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (16, 340822, 340800, '怀宁县', 2, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (17, 340822105, 340822, '三桥镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (18, 340822108, 340822, '公岭镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (19, 340822203, 340822, '凉亭乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (20, 340822106, 340822, '小市镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (21, 340822114, 340822, '平山镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (22, 340822102, 340822, '月山镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (23, 340822113, 340822, '江镇镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (24, 340822112, 340822, '洪铺镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (25, 340822201, 340822, '清河乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (26, 340822101, 340822, '石牌镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (27, 340822204, 340822, '石镜乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (28, 340822202, 340822, '秀山乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (29, 340822103, 340822, '腊树镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (30, 340822111, 340822, '茶岭镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (31, 340822110, 340822, '金拱镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (32, 340822200, 340822, '雷埠乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (33, 340822109, 340822, '马庙镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (34, 340822100, 340822, '高河镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (35, 340822107, 340822, '黄墩镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (36, 340822104, 340822, '黄龙镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (37, 340824, 340800, '潜山市', 2, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (38, 340882203, 340824, '五庙乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (39, 340882103, 340824, '余井镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (40, 340882202, 340824, '塔畈乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (41, 340882110, 340824, '天柱山镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (42, 340882106, 340824, '官庄镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (43, 340882100, 340824, '梅城镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (44, 340882105, 340824, '槎水镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (45, 340882107, 340824, '水吼镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (46, 340882200, 340824, '油坝乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (47, 340882102, 340824, '源潭镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (48, 340882101, 340824, '王河镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (49, 340882201, 340824, '痘姆乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (50, 340882108, 340824, '黄柏镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (51, 340882104, 340824, '黄泥镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (52, 340882109, 340824, '黄铺镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (53, 340882204, 340824, '龙潭乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (54, 340826, 340800, '宿松县', 2, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (55, 340826104, 340826, '下仓镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (56, 340826111, 340826, '九姑乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (57, 340826105, 340826, '二郎镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (58, 340826121, 340826, '五里乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (59, 340826114, 340826, '佐坝乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (60, 340826107, 340826, '凉亭镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (61, 340826115, 340826, '北浴乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (62, 340826112, 340826, '千岭乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (63, 340826122, 340826, '华阳河农场总场', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (64, 340826101, 340826, '复兴镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (65, 340826100, 340826, '孚玉镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (66, 340826118, 340826, '柳坪乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (67, 340826102, 340826, '汇口镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (68, 340826120, 340826, '河塌乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (69, 340826113, 340826, '洲头乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (70, 340826106, 340826, '破凉镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (71, 340826110, 340826, '程岭乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (72, 340826103, 340826, '许岭镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (73, 340826119, 340826, '趾凤乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (74, 340826108, 340826, '长铺镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (75, 340826116, 340826, '陈汉乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (76, 340826117, 340826, '隘口乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (77, 340826109, 340826, '高岭乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (78, 340825, 340800, '太湖县', 2, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (79, 340825204, 340825, '刘畈乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (80, 340825108, 340825, '北中镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (81, 340825201, 340825, '城西乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (82, 340825200, 340825, '大石乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (83, 340825105, 340825, '天华镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (84, 340825400, 340825, '太湖经济开发区', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (85, 340825104, 340825, '寺前镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (86, 340825103, 340825, '小池镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (87, 340825107, 340825, '弥陀镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (88, 340825101, 340825, '徐桥镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (89, 340825102, 340825, '新仓镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (90, 340825100, 340825, '晋熙镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (91, 340825202, 340825, '江塘乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (92, 340825203, 340825, '汤泉乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (93, 340825106, 340825, '牛镇镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (94, 340825109, 340825, '百里镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (95, 340828, 340800, '岳西县', 2, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (96, 340828208, 340828, '中关镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (97, 340828110, 340828, '主簿镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (98, 340828109, 340828, '五河镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (99, 340828111, 340828, '冶溪镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (100, 340828205, 340828, '包家乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (101, 340828206, 340828, '古坊乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (102, 340828201, 340828, '和平乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (103, 340828107, 340828, '响肠镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (104, 340828100, 340828, '天堂镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (105, 340828104, 340828, '头陀镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (106, 340828210, 340828, '姚河乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (107, 340828202, 340828, '巍岭乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (108, 340828101, 340828, '店前镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (109, 340828102, 340828, '来榜镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (110, 340828200, 340828, '毛尖山乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (111, 340828108, 340828, '河图镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (112, 340828106, 340828, '温泉镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (113, 340828207, 340828, '田头乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (114, 340828105, 340828, '白帽镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (115, 340828209, 340828, '石关乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (116, 340828203, 340828, '莲云乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (117, 340828103, 340828, '菖蒲镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (118, 340828204, 340828, '青天乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (119, 340828112, 340828, '黄尾镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (120, 340881, 340800, '桐城市', 2, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (121, 340881100, 340881, '双港镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (122, 340881112, 340881, '吕亭镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (123, 340881101, 340881, '唐湾镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (124, 340881117, 340881, '大关镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (125, 340881104, 340881, '嬉子湖镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (126, 340881107, 340881, '孔城镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (127, 340881002, 340881, '文昌街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (128, 340881105, 340881, '新渡镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (129, 340881401, 340881, '桐城双新经济开发区', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (130, 340881400, 340881, '桐城经济开发区', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (131, 340881108, 340881, '范岗镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (132, 340881106, 340881, '金神镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (133, 340881109, 340881, '青草镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (134, 340881102, 340881, '鲟鱼镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (135, 340881118, 340881, '黄甲镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (136, 340881005, 340881, '龙眠街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (137, 340881006, 340881, '龙腾街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (138, 340827, 340800, '望江县', 2, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (139, 340827201, 340827, '凉泉乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (140, 340827100, 340827, '华阳镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (141, 340827107, 340827, '太慈镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (142, 340827101, 340827, '杨湾镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (143, 340827102, 340827, '漳湖镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (144, 340827103, 340827, '赛口镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (145, 340827106, 340827, '长岭镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (146, 340827200, 340827, '雷池乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (147, 340827104, 340827, '高士镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (148, 340827105, 340827, '鸦滩镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (149, 340802, 340800, '迎江区', 2, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (150, 340802004, 340802, '人民路街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (151, 340802003, 340802, '华中路街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (152, 340802005, 340802, '孝肃路街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (153, 340802001, 340802, '宜城路街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (154, 340802006, 340802, '建设路街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (155, 340802002, 340802, '新河路街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (156, 340802202, 340802, '新洲乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (157, 340802203, 340802, '滨江街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (158, 340802100, 340802, '老峰镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (159, 340802201, 340802, '长风乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (160, 340802200, 340802, '龙狮桥乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (161, 340811, 340800, '宜秀区', 2, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (162, 340811201, 340811, '五横乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (163, 340811002, 340811, '大桥街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (164, 340811101, 340811, '大龙山镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (165, 340811100, 340811, '杨桥镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (166, 340811200, 340811, '白泽湖乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (167, 340811102, 340811, '罗岭镇', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (168, 340811001, 340811, '菱北街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (169, 340300, 34, '蚌埠市', 1, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (170, 340303, 340300, '蚌山区', 2, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (171, 340303001, 340303, '天桥街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (172, 340303005, 340303, '宏业村街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (173, 340303009, 340303, '淮河社区行政事务管理中心', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (174, 340303008, 340303, '湖滨社区行政事务管理中心', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (175, 340303200, 340303, '燕山乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (176, 340303003, 340303, '纬二路街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (177, 340303400, 340303, '胜利街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (178, 340303201, 340303, '雪华乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (179, 340303002, 340303, '青年街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (180, 340303004, 340303, '黄庄街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (181, 340303006, 340303, '龙湖新村街道', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (182, 340323, 340300, '固镇县', 2, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (183, 340323202, 340323, '仲兴乡', 3, '2022-03-28 15:27:14', '2022-03-28 15:27:14', NULL); +INSERT INTO `address` VALUES (184, 340323105, 340323, '任桥镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (185, 340323104, 340323, '刘集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (186, 340323400, 340323, '固镇经济开发区', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (187, 340323100, 340323, '城关镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (188, 340323102, 340323, '新马桥镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (189, 340323201, 340323, '杨庙乡', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (190, 340323106, 340323, '湖沟镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (191, 340323107, 340323, '濠城镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (192, 340323101, 340323, '王庄镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (193, 340323200, 340323, '石湖乡', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (194, 340323103, 340323, '连城镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (195, 340311, 340300, '淮上区', 2, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (196, 340311101, 340311, '吴小街镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (197, 340311100, 340311, '小蚌埠镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (198, 340311102, 340311, '曹老集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (199, 340311104, 340311, '梅桥镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (200, 340311103, 340311, '沫河口镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (201, 340311001, 340311, '淮滨街道', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (202, 340311400, 340311, '蚌埠工业园', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (203, 340321, 340300, '怀远县', 2, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (204, 340321108, 340321, '万福镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (205, 340321206, 340321, '兰桥乡', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (206, 340321106, 340321, '双桥集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (207, 340321204, 340321, '古城镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (208, 340321109, 340321, '唐集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (209, 340321104, 340321, '常坟镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (210, 340321205, 340321, '徐圩乡', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (211, 340321100, 340321, '榴城镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (212, 340321103, 340321, '河溜镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (213, 340321200, 340321, '淝南镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (214, 340321201, 340321, '淝河镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (215, 340321208, 340321, '白莲坡镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (216, 340321207, 340321, '荆山镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (217, 340321202, 340321, '褚集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (218, 340321203, 340321, '陈集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (219, 340321107, 340321, '魏庄镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (220, 340321101, 340321, '鲍集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (221, 340321400, 340321, '龙亢农场', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (222, 340321102, 340321, '龙亢镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (223, 340302, 340300, '龙子湖区', 2, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (224, 340302004, 340302, '东升街道', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (225, 340302001, 340302, '东风街道', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (226, 340302002, 340302, '延安街道', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (227, 340302006, 340302, '曹山街道', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (228, 340302200, 340302, '李楼乡', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (229, 340302003, 340302, '治淮街道', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (230, 340302005, 340302, '解放街道', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (231, 340302100, 340302, '长淮卫镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (232, 340322, 340300, '五河县', 2, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (233, 340322106, 340322, '东刘集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (234, 340322200, 340322, '临北回族乡', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (235, 340322104, 340322, '双忠庙镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (236, 340322100, 340322, '城关镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (237, 340322108, 340322, '大新镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (238, 340322107, 340322, '头铺镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (239, 340322105, 340322, '小圩镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (240, 340322103, 340322, '小溪镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (241, 340322101, 340322, '新集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (242, 340322110, 340322, '朱顶镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (243, 340322109, 340322, '武桥镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (244, 340322201, 340322, '沱湖乡', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (245, 340322111, 340322, '浍南镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (246, 340322112, 340322, '申集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (247, 340304, 340300, '禹会区', 2, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (248, 340304102, 340304, '禹会虚镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (249, 340304100, 340304, '秦集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (250, 340304200, 340304, '长青乡', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (251, 340304101, 340304, '马城镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (252, 340304400, 340304, '高新技术开发区', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (253, 341600, 34, '亳州市', 1, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (254, 341621, 341600, '涡阳县', 2, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (255, 341621115, 341621, '临湖镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (256, 341621116, 341621, '丹城镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (257, 341621113, 341621, '义门镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (258, 341621122, 341621, '公吉寺镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (259, 341621400, 341621, '单集林场', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (260, 341621004, 341621, '城关街道', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (261, 341621001, 341621, '天静宫街道', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (262, 341621119, 341621, '店集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (263, 341621114, 341621, '新兴镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (264, 341621003, 341621, '星园街道', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (265, 341621109, 341621, '曹市镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (266, 341621123, 341621, '标里镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (267, 341621105, 341621, '楚店镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (268, 341621104, 341621, '涡南镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (269, 341621121, 341621, '牌坊镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (270, 341621111, 341621, '石弓镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (271, 341621118, 341621, '花沟镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (272, 341621103, 341621, '西阳镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (273, 341621120, 341621, '陈大镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (274, 341621110, 341621, '青疃镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (275, 341621117, 341621, '马店集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (276, 341621106, 341621, '高公镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (277, 341621108, 341621, '高炉镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (278, 341621112, 341621, '龙山镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (279, 341623, 341600, '利辛县', 2, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (280, 341623117, 341623, '中疃镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (281, 341623100, 341623, '城关镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (282, 341623202, 341623, '城北镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (283, 341623113, 341623, '大李集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (284, 341623204, 341623, '孙庙乡', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (285, 341623106, 341623, '孙集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (286, 341623115, 341623, '展沟镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (287, 341623108, 341623, '巩店镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (288, 341623102, 341623, '张村镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (289, 341623205, 341623, '新张集乡', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (290, 341623104, 341623, '旧城镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (291, 341623118, 341623, '望疃镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (292, 341623111, 341623, '永兴镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (293, 341623107, 341623, '汝集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (294, 341623103, 341623, '江集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (295, 341623109, 341623, '王人镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (296, 341623110, 341623, '王市镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (297, 341623116, 341623, '程家集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (298, 341623203, 341623, '纪王场乡', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (299, 341623114, 341623, '胡集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (300, 341623105, 341623, '西潘楼镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (301, 341623101, 341623, '阚疃镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (302, 341623112, 341623, '马店孜镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (303, 341622, 341600, '蒙城县', 2, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (304, 341622110, 341622, '三义镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (305, 341622107, 341622, '乐土镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (306, 341622112, 341622, '双涧镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (307, 341622103, 341622, '坛城镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (308, 341622100, 341622, '城关镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (309, 341622111, 341622, '小涧镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (310, 341622115, 341622, '小辛集乡', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (311, 341622102, 341622, '岳坊镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (312, 341622119, 341622, '庄周街道', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (313, 341622105, 341622, '板桥集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (314, 341622108, 341622, '楚村镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (315, 341622116, 341622, '漆园街道', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (316, 341622114, 341622, '王集乡', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (317, 341622121, 341622, '白杨林场', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (318, 341622106, 341622, '立仓镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (319, 341622109, 341622, '篱笆镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (320, 341622120, 341622, '范集工业园区', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (321, 341622104, 341622, '许疃镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (322, 341622101, 341622, '马集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (323, 341602, 341600, '谯城区', 2, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (324, 341602106, 341602, '五马镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (325, 341602400, 341602, '亳州市经济技术开发区', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (326, 341602109, 341602, '十九里镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (327, 341602107, 341602, '十八里镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (328, 341602114, 341602, '十河镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (329, 341602102, 341602, '华佗镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (330, 341602115, 341602, '双沟镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (331, 341602100, 341602, '古井镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (332, 341602117, 341602, '古城镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (333, 341602113, 341602, '城父镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (334, 341602112, 341602, '大杨镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (335, 341602401, 341602, '安徽亳州工业园区', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (336, 341602200, 341602, '张店乡', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (337, 341602003, 341602, '汤陵街道', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (338, 341602110, 341602, '沙土镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (339, 341602116, 341602, '淝河镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (340, 341602104, 341602, '牛集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (341, 341602119, 341602, '立德镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (342, 341602101, 341602, '芦庙镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (343, 341602001, 341602, '花戏楼街道', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (344, 341602002, 341602, '薛阁街道', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (345, 341602111, 341602, '观堂镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (346, 341602108, 341602, '谯东镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (347, 341602201, 341602, '赵桥乡', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (348, 341602105, 341602, '颜集镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (349, 341602103, 341602, '魏岗镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (350, 341602118, 341602, '龙扬镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (351, 341700, 34, '池州市', 1, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (352, 341721, 341700, '东至县', 2, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (353, 341721101, 341721, '东流镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (354, 341721102, 341721, '大渡口镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (355, 341721108, 341721, '官港镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (356, 341721100, 341721, '尧渡镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (357, 341721104, 341721, '张溪镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (358, 341721109, 341721, '昭潭镇', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (359, 341721201, 341721, '木塔乡', 3, '2022-03-28 15:27:15', '2022-03-28 15:27:15', NULL); +INSERT INTO `address` VALUES (360, 341721111, 341721, '泥溪镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (361, 341721105, 341721, '洋湖镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (362, 341721103, 341721, '胜利镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (363, 341721200, 341721, '花园乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (364, 341721106, 341721, '葛公镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (365, 341721202, 341721, '青山乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (366, 341721107, 341721, '香隅镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (367, 341721110, 341721, '龙泉镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (368, 341702, 341700, '贵池区', 2, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (369, 341702020, 341702, '乌沙镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (370, 341702018, 341702, '唐田镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (371, 341702005, 341702, '墩上街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (372, 341702009, 341702, '杏花村街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (373, 341702017, 341702, '梅村镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (374, 341702016, 341702, '梅街镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (375, 341702006, 341702, '梅龙街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (376, 341702015, 341702, '棠溪镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (377, 341702012, 341702, '殷汇镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (378, 341702004, 341702, '江口街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (379, 341702023, 341702, '池州火车站站前区', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (380, 341702022, 341702, '池州经济技术开发区', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (381, 341702001, 341702, '池阳街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (382, 341702014, 341702, '涓桥镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (383, 341702011, 341702, '清溪街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (384, 341702010, 341702, '清风街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (385, 341702019, 341702, '牌楼镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (386, 341702013, 341702, '牛头山镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (387, 341702007, 341702, '秋江街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (388, 341702002, 341702, '秋浦街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (389, 341702003, 341702, '里山街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (390, 341702008, 341702, '马衙街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (391, 341723, 341700, '青阳县', 2, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (392, 341723105, 341723, '丁桥镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (393, 341723200, 341723, '乔木乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (394, 341723203, 341723, '九华乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (395, 341723108, 341723, '九华镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (396, 341723102, 341723, '庙前镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (397, 341723104, 341723, '新河镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (398, 341723101, 341723, '木镇镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (399, 341723106, 341723, '朱备镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (400, 341723202, 341723, '杜村乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (401, 341723107, 341723, '杨田镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (402, 341723100, 341723, '蓉城镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (403, 341723201, 341723, '酉华镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (404, 341723103, 341723, '陵阳镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (405, 341722, 341700, '石台县', 2, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (406, 341722103, 341722, '丁香镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (407, 341722101, 341722, '七都镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (408, 341722100, 341722, '仁里镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (409, 341722102, 341722, '仙寓镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (410, 341722200, 341722, '大演乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (411, 341722104, 341722, '小河镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (412, 341722105, 341722, '横渡镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (413, 341722201, 341722, '矶滩乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (414, 341100, 34, '滁州市', 1, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (415, 341125, 341100, '定远县', 2, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (416, 341125202, 341125, '七里塘乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (417, 341125111, 341125, '三和集镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (418, 341125218, 341125, '严桥乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (419, 341125203, 341125, '二龙回族乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (420, 341125110, 341125, '仓镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (421, 341125103, 341125, '吴圩镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (422, 341125116, 341125, '大桥镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (423, 341125100, 341125, '定城镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (424, 341125105, 341125, '张桥镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (425, 341125219, 341125, '拂晓乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (426, 341125104, 341125, '朱湾镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (427, 341125114, 341125, '桑涧镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (428, 341125102, 341125, '永康镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (429, 341125107, 341125, '池河镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (430, 341125101, 341125, '炉桥镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (431, 341125109, 341125, '界牌集镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (432, 341125213, 341125, '能仁乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (433, 341125207, 341125, '范岗乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (434, 341125211, 341125, '蒋集镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (435, 341125106, 341125, '藕塘镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (436, 341125112, 341125, '西卅店镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (437, 341125108, 341125, '连江镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (438, 341126, 341100, '凤阳县', 2, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (439, 341126101, 341126, '临淮关镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (440, 341126105, 341126, '刘府镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (441, 341126106, 341126, '大庙镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (442, 341126112, 341126, '大溪河镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (443, 341126116, 341126, '官塘镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (444, 341126114, 341126, '小溪河镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (445, 341126100, 341126, '府城镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (446, 341126109, 341126, '总铺镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (447, 341126111, 341126, '板桥镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (448, 341126117, 341126, '枣巷镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (449, 341126103, 341126, '武店镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (450, 341126107, 341126, '殷涧镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (451, 341126110, 341126, '红心镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (452, 341126104, 341126, '西泉镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (453, 341126207, 341126, '黄湾乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (454, 341122, 341100, '来安县', 2, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (455, 341122200, 341122, '三城镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (456, 341122101, 341122, '半塔镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (457, 341122105, 341122, '大英镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (458, 341122206, 341122, '张山镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (459, 341122100, 341122, '新安镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (460, 341122107, 341122, '施官镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (461, 341122205, 341122, '杨郢乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (462, 341122102, 341122, '水口镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (463, 341122104, 341122, '汊河镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (464, 341122202, 341122, '独山镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (465, 341122108, 341122, '舜山镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (466, 341122106, 341122, '雷官镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (467, 341102, 341100, '琅琊区', 2, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (468, 341102403, 341102, '三官街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (469, 341102004, 341102, '丰山街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (470, 341102008, 341102, '凤凰街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (471, 341102007, 341102, '扬子街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (472, 341102006, 341102, '清流街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (473, 341102400, 341102, '滁州琅琊经济开发区', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (474, 341102401, 341102, '滁州经济技术开发区', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (475, 341102402, 341102, '滁阳街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (476, 341102001, 341102, '琅琊街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (477, 341102009, 341102, '紫薇街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (478, 341102100, 341102, '西涧街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (479, 341102002, 341102, '遵阳街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (480, 341182, 341100, '明光市', 2, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (481, 341182102, 341182, '三界镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (482, 341182111, 341182, '古沛镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (483, 341182110, 341182, '女山湖镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (484, 341182101, 341182, '张八岭镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (485, 341182006, 341182, '明东街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (486, 341182003, 341182, '明光街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (487, 341182007, 341182, '明南街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (488, 341182005, 341182, '明西街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (489, 341182113, 341182, '柳巷镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (490, 341182109, 341182, '桥头镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (491, 341182211, 341182, '泊岗乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (492, 341182105, 341182, '涧溪镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (493, 341182112, 341182, '潘村镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (494, 341182106, 341182, '石坝镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (495, 341182103, 341182, '管店镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (496, 341182104, 341182, '自来桥镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (497, 341182108, 341182, '苏巷镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (498, 341103, 341100, '南谯区', 2, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (499, 341103100, 341103, '乌衣镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (500, 341103105, 341103, '大柳镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (501, 341103002, 341103, '大王街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (502, 341103206, 341103, '施集镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (503, 341103101, 341103, '沙河镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (504, 341103104, 341103, '珠龙镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (505, 341103102, 341103, '章广镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (506, 341103106, 341103, '腰铺镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (507, 341103103, 341103, '黄泥岗镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (508, 341103003, 341103, '龙蟠街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (509, 341124, 341100, '全椒县', 2, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (510, 341124103, 341124, '二郎口镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (511, 341124109, 341124, '六镇镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (512, 341124110, 341124, '十字镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (513, 341124101, 341124, '古河镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (514, 341124102, 341124, '大墅镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (515, 341124104, 341124, '武岗镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (516, 341124106, 341124, '石沛镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (517, 341124100, 341124, '襄河镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (518, 341124108, 341124, '西王镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (519, 341124105, 341124, '马厂镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (520, 341181, 341100, '天长市', 2, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (521, 341181117, 341181, '万寿镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (522, 341181108, 341181, '仁和集镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (523, 341181109, 341181, '冶山镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (524, 341181001, 341181, '千秋街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (525, 341181103, 341181, '大通镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (526, 341181501, 341181, '广陵街道', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (527, 341181111, 341181, '张铺镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (528, 341181116, 341181, '新街镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (529, 341181104, 341181, '杨村镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (530, 341181003, 341181, '永丰镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (531, 341181101, 341181, '汊涧镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (532, 341181105, 341181, '石梁镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (533, 341181102, 341181, '秦栏镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (534, 341181110, 341181, '郑集镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (535, 341181106, 341181, '金集镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (536, 341181100, 341181, '铜城镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (537, 341200, 34, '阜阳市', 1, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (538, 341225, 341200, '阜南县', 2, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (539, 341225103, 341225, '中岗镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (540, 341225207, 341225, '于集乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (541, 341225122, 341225, '会龙镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (542, 341225205, 341225, '公桥乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (543, 341225116, 341225, '地城镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (544, 341225114, 341225, '张寨镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (545, 341225105, 341225, '新村镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (546, 341225102, 341225, '方集镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (547, 341225120, 341225, '曹集镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (548, 341225107, 341225, '朱寨镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (549, 341225121, 341225, '柳沟镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (550, 341225104, 341225, '柴集镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (551, 341225204, 341225, '段郢乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (552, 341225117, 341225, '洪河桥镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (553, 341225113, 341225, '焦陂镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (554, 341225119, 341225, '王化镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (555, 341225115, 341225, '王堰镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (556, 341225118, 341225, '王家坝镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (557, 341225200, 341225, '王店孜乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (558, 341225110, 341225, '田集镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (559, 341225208, 341225, '老观乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (560, 341225111, 341225, '苗集镇', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (561, 341225201, 341225, '许堂乡', 3, '2022-03-28 15:27:16', '2022-03-28 15:27:16', NULL); +INSERT INTO `address` VALUES (562, 341225109, 341225, '赵集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (563, 341225209, 341225, '郜台乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (564, 341225101, 341225, '鹿城镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (565, 341225112, 341225, '黄岗镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (566, 341225206, 341225, '龙王乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (567, 341282, 341200, '界首市', 2, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (568, 341282001, 341282, '东城街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (569, 341282110, 341282, '代桥镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (570, 341282202, 341282, '任寨乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (571, 341282100, 341282, '光武镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (572, 341282104, 341282, '大黄镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (573, 341282103, 341282, '新马集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (574, 341282101, 341282, '泉阳镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (575, 341282107, 341282, '王集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (576, 341282105, 341282, '田营镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (577, 341282108, 341282, '砖集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (578, 341282111, 341282, '舒庄镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (579, 341282102, 341282, '芦村镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (580, 341282002, 341282, '西城街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (581, 341282200, 341282, '邴集乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (582, 341282106, 341282, '陶庙镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (583, 341282201, 341282, '靳寨乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (584, 341282109, 341282, '顾集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (585, 341282003, 341282, '颍南街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (586, 341221, 341200, '临泉县', 2, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (587, 341221122, 341221, '关庙镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (588, 341221109, 341221, '单桥镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (589, 341221108, 341221, '吕寨镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (590, 341221203, 341221, '土陂乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (591, 341221402, 341221, '城东街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (592, 341221100, 341221, '城关街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (593, 341221401, 341221, '城南街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (594, 341221118, 341221, '姜寨镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (595, 341221111, 341221, '宋集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (596, 341221119, 341221, '庙岔镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (597, 341221112, 341221, '张新镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (598, 341221101, 341221, '杨桥镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (599, 341221107, 341221, '滑集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (600, 341221117, 341221, '瓦店镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (601, 341221207, 341221, '田桥街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (602, 341221121, 341221, '白庙镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (603, 341221106, 341221, '老集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (604, 341221113, 341221, '艾亭镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (605, 341221105, 341221, '谭棚镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (606, 341221116, 341221, '迎仙镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (607, 341221403, 341221, '邢塘街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (608, 341221110, 341221, '长官镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (609, 341221114, 341221, '陈集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (610, 341221206, 341221, '陶老乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (611, 341221115, 341221, '韦寨镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (612, 341221201, 341221, '高塘镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (613, 341221102, 341221, '鲖城镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (614, 341221120, 341221, '黄岭镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (615, 341222, 341200, '太和县', 2, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (616, 341222113, 341222, '三堂镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (617, 341222110, 341222, '三塔镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (618, 341222204, 341222, '二郎镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (619, 341222120, 341222, '五星镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (620, 341222105, 341222, '倪邱镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (621, 341222109, 341222, '关集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (622, 341222104, 341222, '原墙镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (623, 341222125, 341222, '双庙镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (624, 341222111, 341222, '双浮镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (625, 341222117, 341222, '坟台镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (626, 341222100, 341222, '城关镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (627, 341222123, 341222, '大庙集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (628, 341222107, 341222, '大新镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (629, 341222400, 341222, '太和经济开发区', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (630, 341222116, 341222, '宫集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (631, 341222101, 341222, '旧县镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (632, 341222106, 341222, '李兴镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (633, 341222122, 341222, '桑营镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (634, 341222118, 341222, '洪山镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (635, 341222119, 341222, '清浅镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (636, 341222103, 341222, '皮条孙镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (637, 341222102, 341222, '税镇镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (638, 341222108, 341222, '肖口镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (639, 341222126, 341222, '胡总镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (640, 341222114, 341222, '苗老集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (641, 341222112, 341222, '蔡庙镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (642, 341222115, 341222, '赵庙镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (643, 341222201, 341222, '赵集乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (644, 341222202, 341222, '郭庙乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (645, 341222124, 341222, '阮桥镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (646, 341222127, 341222, '马集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (647, 341222121, 341222, '高庙镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (648, 341203, 341200, '颍东区', 2, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (649, 341203200, 341203, '冉庙乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (650, 341203100, 341203, '口孜镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (651, 341203003, 341203, '向阳街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (652, 341203101, 341203, '插花镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (653, 341203107, 341203, '新乌江镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (654, 341203002, 341203, '新华街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (655, 341203106, 341203, '杨楼孜镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (656, 341203103, 341203, '枣庄镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (657, 341203105, 341203, '正午镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (658, 341203001, 341203, '河东街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (659, 341203104, 341203, '老庙镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (660, 341203102, 341203, '袁寨镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (661, 341204, 341200, '颍泉区', 2, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (662, 341204001, 341204, '中市街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (663, 341204100, 341204, '伍明镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (664, 341204002, 341204, '周棚街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (665, 341204101, 341204, '宁老庄镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (666, 341204103, 341204, '行流镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (667, 341204102, 341204, '闻集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (668, 341226, 341200, '颍上县', 2, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (669, 341226202, 341226, '五十铺乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (670, 341226116, 341226, '八里河镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (671, 341226108, 341226, '六十铺镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (672, 341226204, 341226, '关屯乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (673, 341226207, 341226, '刘集乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (674, 341226120, 341226, '十八里铺镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (675, 341226110, 341226, '半岗镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (676, 341226103, 341226, '南照镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (677, 341226122, 341226, '古城镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (678, 341226205, 341226, '垂岗乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (679, 341226112, 341226, '夏桥镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (680, 341226201, 341226, '建颍乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (681, 341226101, 341226, '慎城镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (682, 341226107, 341226, '新集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (683, 341226104, 341226, '杨湖镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (684, 341226105, 341226, '江口镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (685, 341226113, 341226, '江店孜镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (686, 341226106, 341226, '润河镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (687, 341226111, 341226, '王岗镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (688, 341226203, 341226, '盛堂乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (689, 341226119, 341226, '红星镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (690, 341226109, 341226, '耿棚镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (691, 341226118, 341226, '西三十铺镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (692, 341226102, 341226, '谢桥镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (693, 341226206, 341226, '赛涧回族乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (694, 341226117, 341226, '迪沟镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (695, 341226114, 341226, '陈桥镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (696, 341226121, 341226, '鲁口镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (697, 341226208, 341226, '黄坝乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (698, 341226115, 341226, '黄桥镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (699, 341202, 341200, '颍州区', 2, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (700, 341202105, 341202, '三十里铺镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (701, 341202102, 341202, '三合镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (702, 341202107, 341202, '三塔集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (703, 341202104, 341202, '九龙镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (704, 341202002, 341202, '文峰街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (705, 341202003, 341202, '清河街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (706, 341202100, 341202, '王店镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (707, 341202101, 341202, '程集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (708, 341202106, 341202, '袁集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (709, 341202005, 341202, '西湖景区街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (710, 341202103, 341202, '西湖镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (711, 341202004, 341202, '颍西街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (712, 341202200, 341202, '马寨乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (713, 341202001, 341202, '鼓楼街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (714, 340100, 34, '合肥市', 1, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (715, 340111, 340100, '包河区', 2, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (716, 340111011, 340111, '万年埠街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (717, 340111006, 340111, '义城街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (718, 340111001, 340111, '包公街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (719, 340111009, 340111, '大圩镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (720, 340111004, 340111, '常青街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (721, 340111003, 340111, '望湖街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (722, 340111008, 340111, '淝河镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (723, 340111007, 340111, '烟墩街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (724, 340111002, 340111, '芜湖路街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (725, 340111005, 340111, '骆岗街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (726, 340121, 340100, '长丰县', 2, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (727, 340121106, 340121, '下塘镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (728, 340121201, 340121, '义井乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (729, 340121105, 340121, '双墩镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (730, 340121103, 340121, '吴山镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (731, 340121104, 340121, '岗集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (732, 340121206, 340121, '左店乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (733, 340121101, 340121, '庄墓镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (734, 340121107, 340121, '朱巷镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (735, 340121205, 340121, '杜集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (736, 340121102, 340121, '杨庙镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (737, 340121100, 340121, '水湖镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (738, 340121200, 340121, '罗塘乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (739, 340121204, 340121, '造甲乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (740, 340121203, 340121, '陶楼镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (741, 340181, 340100, '巢湖市', 2, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (742, 340181109, 340181, '中垾镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (743, 340181006, 340181, '中庙街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (744, 340181002, 340181, '亚父街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (745, 340181004, 340181, '凤凰山街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (746, 340181005, 340181, '半汤街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (747, 340181001, 340181, '卧牛山街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (748, 340181103, 340181, '坝镇镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (749, 340181106, 340181, '夏阁镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (750, 340181003, 340181, '天河街道', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (751, 340181200, 340181, '庙岗乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (752, 340181104, 340181, '散兵镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (753, 340181100, 340181, '柘皋镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (754, 340181110, 340181, '栏杆集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (755, 340181102, 340181, '槐林镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (756, 340181101, 340181, '烔炀镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (757, 340181105, 340181, '苏湾镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (758, 340181108, 340181, '银屏镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (759, 340181107, 340181, '黄麓镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (760, 340122, 340100, '肥东县', 2, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (761, 340122200, 340122, '众兴乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (762, 340122108, 340122, '元疃镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (763, 340122107, 340122, '八斗镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (764, 340122110, 340122, '包公镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (765, 340122106, 340122, '古城镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (766, 340122204, 340122, '响导乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (767, 340122100, 340122, '店埠镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (768, 340122201, 340122, '张集乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (769, 340122102, 340122, '撮镇镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (770, 340122205, 340122, '杨店乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (771, 340122103, 340122, '桥头集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (772, 340122101, 340122, '梁园镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (773, 340122206, 340122, '牌坊回族满族乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (774, 340122109, 340122, '白龙镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (775, 340122105, 340122, '石塘镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (776, 340122104, 340122, '长临河镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (777, 340122111, 340122, '陈集镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (778, 340122202, 340122, '马湖乡', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (779, 340123, 340100, '肥西县', 2, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (780, 340123101, 340123, '三河镇', 3, '2022-03-28 15:27:17', '2022-03-28 15:27:17', NULL); +INSERT INTO `address` VALUES (781, 340123100, 340123, '上派镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (782, 340123203, 340123, '严店乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (783, 340123109, 340123, '丰乐镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (784, 340123103, 340123, '官亭镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (785, 340123105, 340123, '山南镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (786, 340123202, 340123, '柿树岗乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (787, 340123400, 340123, '桃花工业区', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (788, 340123108, 340123, '桃花镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (789, 340123401, 340123, '紫蓬山管委会', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (790, 340123107, 340123, '紫蓬镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (791, 340123106, 340123, '花岗镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (792, 340123201, 340123, '铭传乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (793, 340123200, 340123, '高店乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (794, 340124, 340100, '庐江县', 2, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (795, 340124102, 340124, '万山镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (796, 340124115, 340124, '乐桥镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (797, 340124101, 340124, '冶父山镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (798, 340124107, 340124, '同大镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (799, 340124117, 340124, '庐城镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (800, 340124116, 340124, '柯坦镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (801, 340124103, 340124, '汤池镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (802, 340124114, 340124, '泥河镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (803, 340124108, 340124, '白山镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (804, 340124110, 340124, '白湖镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (805, 340124109, 340124, '盛桥镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (806, 340124106, 340124, '石头镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (807, 340124112, 340124, '矾山镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (808, 340124113, 340124, '罗河镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (809, 340124104, 340124, '郭河镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (810, 340124105, 340124, '金牛镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (811, 340124111, 340124, '龙桥镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (812, 340103, 340100, '庐阳区', 2, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (813, 340103200, 340103, '三十岗乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (814, 340103012, 340103, '三孝口街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (815, 340103009, 340103, '亳州路街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (816, 340103010, 340103, '双岗街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (817, 340103013, 340103, '四里河街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (818, 340103100, 340103, '大杨镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (819, 340103400, 340103, '庐阳工业区', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (820, 340103001, 340103, '杏林街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (821, 340103011, 340103, '杏花村街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (822, 340103003, 340103, '海棠街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (823, 340103002, 340103, '逍遥津街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (824, 340104, 340100, '蜀山区', 2, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (825, 340104002, 340104, '三里庵街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (826, 340104006, 340104, '五里墩街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (827, 340104101, 340104, '井岗镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (828, 340104004, 340104, '南七街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (829, 340104100, 340104, '南岗镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (830, 340104401, 340104, '合肥高新技术产业开发区', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (831, 340104102, 340104, '小庙镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (832, 340104003, 340104, '琥珀街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (833, 340104001, 340104, '稻香村街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (834, 340104008, 340104, '笔架山街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (835, 340104007, 340104, '荷叶地街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (836, 340104099, 340104, '蜀山区城区', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (837, 340104005, 340104, '西园街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (838, 340104407, 340104, '高刘街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (839, 340102, 340100, '瑶海区', 2, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (840, 340102013, 340102, '七里塘街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (841, 340102006, 340102, '七里站街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (842, 340102101, 340102, '三十头街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (843, 340102004, 340102, '三里街街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (844, 340102008, 340102, '和平路街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (845, 340102010, 340102, '城东街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (846, 340102100, 340102, '大兴镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (847, 340102012, 340102, '方庙街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (848, 340102001, 340102, '明光路街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (849, 340102402, 340102, '瑶海工业园区', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (850, 340102200, 340102, '磨店街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (851, 340102007, 340102, '红光街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (852, 340102003, 340102, '胜利路街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (853, 340102005, 340102, '铜陵路街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (854, 340102011, 340102, '长淮街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (855, 340102401, 340102, '龙岗综合经济开发区', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (856, 340600, 34, '淮北市', 1, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (857, 340602, 340600, '杜集区', 2, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (858, 340602100, 340602, '朔里镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (859, 340602102, 340602, '段园镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (860, 340602101, 340602, '石台镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (861, 340602002, 340602, '矿山集街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (862, 340602001, 340602, '高岳街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (863, 340604, 340600, '烈山区', 2, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (864, 340604001, 340604, '临海童街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (865, 340604005, 340604, '任楼街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (866, 340604102, 340604, '古饶镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (867, 340604101, 340604, '宋疃镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (868, 340604002, 340604, '杨庄街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (869, 340604100, 340604, '烈山镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (870, 340604004, 340604, '百善街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (871, 340621, 340600, '濉溪县', 2, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (872, 340621104, 340621, '临涣镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (873, 340621103, 340621, '五沟镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (874, 340621102, 340621, '刘桥镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (875, 340621107, 340621, '南坪镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (876, 340621105, 340621, '双堆集镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (877, 340621110, 340621, '四铺镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (878, 340621109, 340621, '孙疃镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (879, 340621100, 340621, '濉溪镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (880, 340621108, 340621, '百善镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (881, 340621106, 340621, '铁佛镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (882, 340621101, 340621, '韩村镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (883, 340603, 340600, '相山区', 2, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (884, 340603004, 340603, '三堤口街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (885, 340603005, 340603, '东山街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (886, 340603002, 340603, '东街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (887, 340603008, 340603, '任圩街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (888, 340603009, 340603, '南黎街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (889, 340603010, 340603, '曲阳街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (890, 340603100, 340603, '渠沟镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (891, 340603001, 340603, '相南街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (892, 340603003, 340603, '西街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (893, 340400, 34, '淮南市', 1, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (894, 340405, 340400, '八公山区', 2, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (895, 340405100, 340405, '八公山镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (896, 340405002, 340405, '土坝孜街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (897, 340405400, 340405, '妙山林场', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (898, 340405101, 340405, '山王镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (899, 340405001, 340405, '新庄孜街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (900, 340405003, 340405, '毕家岗街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (901, 340402, 340400, '大通区', 2, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (902, 340402100, 340402, '上窑镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (903, 340402102, 340402, '九龙岗镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (904, 340402001, 340402, '大通街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (905, 340402200, 340402, '孔店乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (906, 340402101, 340402, '洛河镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (907, 340421, 340400, '凤台县', 2, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (908, 340421208, 340421, '丁集镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (909, 340421209, 340421, '关店乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (910, 340421111, 340421, '凤凰镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (911, 340421202, 340421, '刘集乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (912, 340421204, 340421, '古店乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (913, 340421100, 340421, '城关镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (914, 340421108, 340421, '夏集镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (915, 340421210, 340421, '大兴镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (916, 340421207, 340421, '尚塘镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (917, 340421104, 340421, '岳张集镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (918, 340421101, 340421, '新集镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (919, 340421103, 340421, '朱马店镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (920, 340421201, 340421, '李冲回族乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (921, 340421109, 340421, '杨村镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (922, 340421107, 340421, '桂集镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (923, 340421106, 340421, '毛集镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (924, 340421110, 340421, '焦岗湖镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (925, 340421205, 340421, '钱庙乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (926, 340421105, 340421, '顾桥镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (927, 340406, 340400, '潘集区', 2, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (928, 340406202, 340406, '古沟回族乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (929, 340406106, 340406, '夹沟镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (930, 340406101, 340406, '平圩镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (931, 340406107, 340406, '架河镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (932, 340406102, 340406, '泥河镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (933, 340406103, 340406, '潘集镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (934, 340406001, 340406, '田集街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (935, 340406105, 340406, '祁集镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (936, 340406104, 340406, '芦集镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (937, 340406108, 340406, '贺疃镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (938, 340406100, 340406, '高皇镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (939, 340422, 340400, '寿县', 2, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (940, 340422114, 340422, '三觉镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (941, 340422103, 340422, '丰庄镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (942, 340422112, 340422, '众兴镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (943, 340422109, 340422, '保义镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (944, 340422200, 340422, '八公山乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (945, 340422116, 340422, '刘岗镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (946, 340422117, 340422, '双庙集镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (947, 340422101, 340422, '双桥镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (948, 340422108, 340422, '堰口镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (949, 340422120, 340422, '大顺镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (950, 340422107, 340422, '安丰塘镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (951, 340422111, 340422, '安丰镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (952, 340422100, 340422, '寿春镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (953, 340422400, 340422, '寿西湖农场', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (954, 340422118, 340422, '小甸镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (955, 340422201, 340422, '张李乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (956, 340422106, 340422, '板桥镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (957, 340422401, 340422, '正阳关农场', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (958, 340422104, 340422, '正阳关镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (959, 340422102, 340422, '涧沟镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (960, 340422115, 340422, '炎刘镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (961, 340422119, 340422, '瓦埠镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (962, 340422121, 340422, '窑口镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (963, 340422113, 340422, '茶庵镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (964, 340422105, 340422, '迎河镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (965, 340422203, 340422, '陶店回族乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (966, 340422110, 340422, '隐贤镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (967, 340403, 340400, '田家庵区', 2, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (968, 340403200, 340403, '三和镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (969, 340403006, 340403, '公园街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (970, 340403201, 340403, '史院乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (971, 340403003, 340403, '国庆街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (972, 340403101, 340403, '安成镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (973, 340403002, 340403, '新淮街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (974, 340403102, 340403, '曹庵镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (975, 340403005, 340403, '朝阳街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (976, 340403009, 340403, '泉山街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (977, 340403007, 340403, '洞山街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (978, 340403004, 340403, '淮滨街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (979, 340403001, 340403, '田东街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (980, 340403100, 340403, '舜耕镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (981, 340403008, 340403, '龙泉街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (982, 340404, 340400, '谢家集区', 2, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (983, 340404102, 340404, '唐山镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (984, 340404200, 340404, '孙庙乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (985, 340404201, 340404, '孤堆回族乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (986, 340404005, 340404, '平山街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (987, 340404100, 340404, '望峰岗镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (988, 340404101, 340404, '李郢孜镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (989, 340404103, 340404, '杨公镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (990, 340404003, 340404, '立新街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (991, 340404002, 340404, '蔡家岗街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (992, 340404004, 340404, '谢三村街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (993, 340404001, 340404, '谢家集街道', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (994, 341000, 34, '黄山市', 1, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (995, 341023, 341000, '黟县', 2, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (996, 341023101, 341023, '宏村镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (997, 341023202, 341023, '宏潭乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (998, 341023200, 341023, '柯村镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (999, 341023203, 341023, '洪星乡', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (1000, 341023102, 341023, '渔亭镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (1001, 341023100, 341023, '碧阳镇', 3, '2022-03-28 15:27:18', '2022-03-28 15:27:18', NULL); +INSERT INTO `address` VALUES (1002, 341023201, 341023, '美溪乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1003, 341023103, 341023, '西递镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1004, 341003, 341000, '黄山区', 2, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1005, 341003107, 341003, '三口镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1006, 341003108, 341003, '乌石镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1007, 341003101, 341003, '仙源镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1008, 341003104, 341003, '太平湖镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1009, 341003201, 341003, '新丰乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1010, 341003200, 341003, '新华乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1011, 341003203, 341003, '新明乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1012, 341003202, 341003, '永丰乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1013, 341003102, 341003, '汤口镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1014, 341003105, 341003, '焦村镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1015, 341003100, 341003, '甘棠镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1016, 341003106, 341003, '耿城镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1017, 341003103, 341003, '谭家桥镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1018, 341003099, 341003, '黄山区城区', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1019, 341003204, 341003, '龙门乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1020, 341004, 341000, '徽州区', 2, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1021, 341004103, 341004, '呈坎镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1022, 341004202, 341004, '富溪乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1023, 341004100, 341004, '岩寺镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1024, 341004001, 341004, '徽州街道', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1025, 341004201, 341004, '杨村乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1026, 341004200, 341004, '洽舍乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1027, 341004102, 341004, '潜口镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1028, 341004101, 341004, '西溪南镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1029, 341024, 341000, '祁门县', 2, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1030, 341024107, 341024, '凫峰镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1031, 341024104, 341024, '历口镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1032, 341024208, 341024, '古溪乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1033, 341024203, 341024, '塔坊乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1034, 341024200, 341024, '大坦乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1035, 341024106, 341024, '安凌镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1036, 341024101, 341024, '小路口镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1037, 341024103, 341024, '平里镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1038, 341024209, 341024, '新安镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1039, 341024202, 341024, '柏溪乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1040, 341024207, 341024, '渚口乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1041, 341024205, 341024, '溶口乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1042, 341024100, 341024, '祁山镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1043, 341024204, 341024, '祁红乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1044, 341024210, 341024, '箬坑乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1045, 341024206, 341024, '芦溪乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1046, 341024102, 341024, '金字牌镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1047, 341024105, 341024, '闪里镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1048, 341021, 341000, '歙县', 2, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1049, 341021214, 341021, '三阳镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1050, 341021211, 341021, '上丰乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1051, 341021102, 341021, '北岸镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1052, 341021209, 341021, '坑口乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1053, 341021103, 341021, '富堨镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1054, 341021201, 341021, '小川乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1055, 341021110, 341021, '岔口镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1056, 341021100, 341021, '徽城镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1057, 341021202, 341021, '新溪口乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1058, 341021212, 341021, '昌溪乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1059, 341021108, 341021, '杞梓里镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1060, 341021105, 341021, '桂林镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1061, 341021208, 341021, '森村乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1062, 341021213, 341021, '武阳乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1063, 341021101, 341021, '深渡镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1064, 341021107, 341021, '溪头镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1065, 341021205, 341021, '狮石乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1066, 341021112, 341021, '王村镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1067, 341021206, 341021, '璜田乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1068, 341021204, 341021, '石门乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1069, 341021203, 341021, '绍濂乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1070, 341021111, 341021, '街口镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1071, 341021106, 341021, '许村镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1072, 341021104, 341021, '郑村镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1073, 341021200, 341021, '金川乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1074, 341021207, 341021, '长陔乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1075, 341021210, 341021, '雄村镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1076, 341021109, 341021, '霞坑镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1077, 341002, 341000, '屯溪区', 2, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1078, 341002104, 341002, '奕棋镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1079, 341002100, 341002, '屯光镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1080, 341002103, 341002, '新潭镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1081, 341002001, 341002, '昱东街道', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1082, 341002002, 341002, '昱中街道', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1083, 341002003, 341002, '昱西街道', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1084, 341002004, 341002, '老街街道', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1085, 341002101, 341002, '阳湖镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1086, 341002102, 341002, '黎阳镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1087, 341022, 341000, '休宁县', 2, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1088, 341022102, 341022, '万安镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1089, 341022104, 341022, '东临溪镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1090, 341022103, 341022, '五城镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1091, 341022109, 341022, '商山镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1092, 341022201, 341022, '山斗乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1093, 341022202, 341022, '岭南乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1094, 341022204, 341022, '板桥乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1095, 341022208, 341022, '榆村乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1096, 341022108, 341022, '汪村镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1097, 341022107, 341022, '流口镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1098, 341022100, 341022, '海阳镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1099, 341022203, 341022, '渭桥乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1100, 341022207, 341022, '源芳乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1101, 341022106, 341022, '溪口镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1102, 341022211, 341022, '璜尖乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1103, 341022209, 341022, '白际乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1104, 341022105, 341022, '蓝田镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1105, 341022205, 341022, '陈霞乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1106, 341022206, 341022, '鹤城乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1107, 341022101, 341022, '齐云山镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1108, 341022210, 341022, '龙田乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1109, 341500, 34, '六安市', 1, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1110, 341522, 341500, '霍邱县', 2, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1111, 341522206, 341522, '三流乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1112, 341522102, 341522, '临水镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1113, 341522203, 341522, '临淮岗乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1114, 341522112, 341522, '乌龙镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1115, 341522117, 341522, '众兴集镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1116, 341522116, 341522, '冯井镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1117, 341522210, 341522, '冯瓴乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1118, 341522120, 341522, '周集镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1119, 341522100, 341522, '城关镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1120, 341522204, 341522, '城西湖乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1121, 341522118, 341522, '夏店镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1122, 341522106, 341522, '孟集镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1123, 341522205, 341522, '宋店乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1124, 341522115, 341522, '岔路镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1125, 341522200, 341522, '彭塔乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1126, 341522108, 341522, '户胡镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1127, 341522103, 341522, '新店镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1128, 341522119, 341522, '曹庙镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1129, 341522101, 341522, '河口镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1130, 341522121, 341522, '潘集镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1131, 341522201, 341522, '王截流乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1132, 341522208, 341522, '白莲乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1133, 341522104, 341522, '石店镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1134, 341522107, 341522, '花园镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1135, 341522122, 341522, '范桥镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1136, 341522207, 341522, '邵岗乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1137, 341522109, 341522, '长集镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1138, 341522501, 341522, '霍邱经济开发区', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1139, 341522105, 341522, '马店镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1140, 341522113, 341522, '高塘镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1141, 341522114, 341522, '龙潭镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1142, 341525, 341500, '霍山县', 2, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1143, 341525111, 341525, '上土市镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1144, 341525102, 341525, '下符桥镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1145, 341525104, 341525, '与儿街镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1146, 341525201, 341525, '东西溪乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1147, 341525103, 341525, '但家庙镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1148, 341525101, 341525, '佛子岭镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1149, 341525200, 341525, '单龙寺镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1150, 341525109, 341525, '大化坪镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1151, 341525202, 341525, '太平畈乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1152, 341525203, 341525, '太阳乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1153, 341525110, 341525, '漫水河镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1154, 341525108, 341525, '磨子潭镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1155, 341525107, 341525, '落儿岭镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1156, 341525100, 341525, '衡山镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1157, 341525106, 341525, '诸佛庵镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1158, 341525400, 341525, '霍山经济开发区', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1159, 341525105, 341525, '黑石渡镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1160, 341502, 341500, '金安区', 2, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1161, 341502109, 341502, '三十铺镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1162, 341502003, 341502, '三里桥街道', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1163, 341502002, 341502, '东市街道', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1164, 341502102, 341502, '东桥镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1165, 341502105, 341502, '东河口镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1166, 341502001, 341502, '中市街道', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1167, 341502203, 341502, '中店乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1168, 341502205, 341502, '先生店乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1169, 341502400, 341502, '六安经济技术开发区', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1170, 341502106, 341502, '双河镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1171, 341502200, 341502, '城北乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1172, 341502108, 341502, '孙岗镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1173, 341502103, 341502, '张店镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1174, 341502107, 341502, '施桥镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1175, 341502004, 341502, '望城街道', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1176, 341502100, 341502, '木厂镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1177, 341502110, 341502, '椿树镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1178, 341502204, 341502, '横塘岗乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1179, 341502104, 341502, '毛坦厂镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1180, 341502202, 341502, '淠东乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1181, 341502005, 341502, '清水河街道', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1182, 341502201, 341502, '翁墩乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1183, 341502101, 341502, '马头镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1184, 341524, 341500, '金寨县', 2, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1185, 341524207, 341524, '全军乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1186, 341524206, 341524, '关庙乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1187, 341524109, 341524, '南溪镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1188, 341524108, 341524, '双河镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1189, 341524104, 341524, '古碑镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1190, 341524105, 341524, '吴家店镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1191, 341524103, 341524, '天堂寨镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1192, 341524205, 341524, '张冲乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1193, 341524106, 341524, '斑竹园镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1194, 341524208, 341524, '果子园乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1195, 341524203, 341524, '桃岭乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1196, 341524100, 341524, '梅山镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1197, 341524210, 341524, '槐树湾乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1198, 341524107, 341524, '汤家汇镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1199, 341524202, 341524, '沙河乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1200, 341524211, 341524, '油坊店乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1201, 341524102, 341524, '燕子河镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1202, 341524111, 341524, '白塔畈镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1203, 341524201, 341524, '花石乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1204, 341524400, 341524, '金寨经济开发区', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1205, 341524200, 341524, '铁冲乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1206, 341524204, 341524, '长岭乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1207, 341524101, 341524, '青山镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1208, 341524110, 341524, '麻埠镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1209, 341523, 341500, '舒城县', 2, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1210, 341523103, 341523, '万佛湖镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1211, 341523111, 341523, '五显镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1212, 341523104, 341523, '千人桥镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1213, 341523108, 341523, '南港镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1214, 341523100, 341523, '城关镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1215, 341523112, 341523, '山七镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1216, 341523109, 341523, '干汊河镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1217, 341523205, 341523, '庐镇乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1218, 341523110, 341523, '张母桥镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1219, 341523200, 341523, '春秋乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1220, 341523101, 341523, '晓天镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1221, 341523106, 341523, '杭埠镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1222, 341523201, 341523, '柏林乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1223, 341523102, 341523, '桃溪镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1224, 341523202, 341523, '棠树乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1225, 341523114, 341523, '汤池镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1226, 341523113, 341523, '河棚镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1227, 341523105, 341523, '百神庙镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1228, 341523400, 341523, '舒城经济开发区', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1229, 341523107, 341523, '舒茶镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1230, 341523203, 341523, '阙店乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1231, 341523204, 341523, '高峰乡', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1232, 341504, 341500, '叶集区', 2, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1233, 341504211, 341504, '三元镇', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1234, 341504401, 341504, '史河街道', 3, '2022-03-28 15:27:19', '2022-03-28 15:27:19', NULL); +INSERT INTO `address` VALUES (1235, 341504111, 341504, '姚李镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1236, 341504212, 341504, '孙岗乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1237, 341504402, 341504, '平岗街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1238, 341504110, 341504, '洪集镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1239, 341503, 341500, '裕安区', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1240, 341503107, 341503, '丁集镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1241, 341503110, 341503, '分路口镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1242, 341503200, 341503, '单王乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1243, 341503108, 341503, '固镇镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1244, 341503106, 341503, '城南镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1245, 341503003, 341503, '小华山街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1246, 341503204, 341503, '平桥乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1247, 341503109, 341503, '徐集镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1248, 341503102, 341503, '新安镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1249, 341503111, 341503, '江家店镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1250, 341503104, 341503, '独山镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1251, 341503206, 341503, '狮子岗乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1252, 341503105, 341503, '石婆店镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1253, 341503202, 341503, '石板冲乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1254, 341503205, 341503, '罗集乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1255, 341503100, 341503, '苏埠镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1256, 341503400, 341503, '裕安经济开发区', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1257, 341503002, 341503, '西市街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1258, 341503203, 341503, '西河口乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1259, 341503201, 341503, '青山乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1260, 341503101, 341503, '韩摆渡镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1261, 341503103, 341503, '顺河镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1262, 341503001, 341503, '鼓楼街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1263, 340500, 34, '马鞍山市', 1, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1264, 340506, 340500, '博望区', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1265, 340506101, 340506, '丹阳镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1266, 340506100, 340506, '博望镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1267, 340506102, 340506, '新市镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1268, 340521, 340500, '当涂县', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1269, 340521102, 340521, '乌溪镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1270, 340521104, 340521, '塘南镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1271, 340521200, 340521, '大陇镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1272, 340521106, 340521, '太白镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1273, 340521100, 340521, '姑孰镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1274, 340521110, 340521, '年陡镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1275, 340521400, 340521, '当涂经济开发区', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1276, 340521105, 340521, '护河镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1277, 340521202, 340521, '江心乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1278, 340521111, 340521, '湖阳镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1279, 340521103, 340521, '石桥镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1280, 340521101, 340521, '黄池镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1281, 340522, 340500, '含山县', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1282, 340522106, 340522, '仙踪镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1283, 340522107, 340522, '昭关镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1284, 340522104, 340522, '林头镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1285, 340522105, 340522, '清溪镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1286, 340522100, 340522, '环峰镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1287, 340522101, 340522, '运漕镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1288, 340522102, 340522, '铜闸镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1289, 340522103, 340522, '陶厂镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1290, 340523, 340500, '和县', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1291, 340523106, 340523, '乌江镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1292, 340523103, 340523, '功桥镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1293, 340523100, 340523, '历阳镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1294, 340523107, 340523, '善厚镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1295, 340523102, 340523, '姥桥镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1296, 340523101, 340523, '白桥镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1297, 340523108, 340523, '石杨镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1298, 340523104, 340523, '西埠镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1299, 340523105, 340523, '香泉镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1300, 340503, 340500, '花山区', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1301, 340503009, 340503, '塘西街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1302, 340503010, 340503, '慈湖街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1303, 340503011, 340503, '慈湖高新技术产业区', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1304, 340503004, 340503, '桃源路街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1305, 340503008, 340503, '江东街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1306, 340503001, 340503, '沙塘路街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1307, 340503003, 340503, '湖东路街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1308, 340503014, 340503, '濮塘镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1309, 340503013, 340503, '花山经济开发区', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1310, 340503002, 340503, '解放路街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1311, 340503012, 340503, '金家庄工业园', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1312, 340503007, 340503, '金家庄街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1313, 340503005, 340503, '霍里街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1314, 340504, 340500, '雨山区', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1315, 340504200, 340504, '佳山乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1316, 340504100, 340504, '向山镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1317, 340504003, 340504, '安民街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1318, 340504001, 340504, '平湖街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1319, 340504004, 340504, '采石街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1320, 340504101, 340504, '银塘镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1321, 340504401, 340504, '雨山经济开发区', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1322, 340504002, 340504, '雨山街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1323, 341300, 34, '宿州市', 1, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1324, 341321, 341300, '砀山县', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1325, 341321109, 341321, '关帝庙镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1326, 341321105, 341321, '周寨镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1327, 341321103, 341321, '唐寨镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1328, 341321107, 341321, '官庄坝镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1329, 341321108, 341321, '曹庄镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1330, 341321110, 341321, '朱楼镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1331, 341321102, 341321, '李庄镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1332, 341321106, 341321, '玄庙镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1333, 341321100, 341321, '砀城镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1334, 341321112, 341321, '程庄镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1335, 341321113, 341321, '良梨镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1336, 341321104, 341321, '葛集镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1337, 341321202, 341321, '赵屯镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1338, 341323, 341300, '灵璧县', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1339, 341323108, 341323, '下楼镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1340, 341323112, 341323, '冯庙镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1341, 341323200, 341323, '向阳乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1342, 341323203, 341323, '大庙乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1343, 341323202, 341323, '大路乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1344, 341323103, 341323, '娄庄镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1345, 341323105, 341323, '尹集镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1346, 341323109, 341323, '朝阳镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1347, 341323201, 341323, '朱集乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1348, 341323104, 341323, '杨疃镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1349, 341323106, 341323, '浍沟镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1350, 341323110, 341323, '渔沟镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1351, 341323107, 341323, '游集镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1352, 341323100, 341323, '灵城镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1353, 341323204, 341323, '禅堂镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1354, 341323205, 341323, '虞姬乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1355, 341323101, 341323, '韦集镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1356, 341323111, 341323, '高楼镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1357, 341323102, 341323, '黄湾镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1358, 341324, 341300, '泗县', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1359, 341324102, 341324, '丁湖镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1360, 341324108, 341324, '刘圩镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1361, 341324101, 341324, '墩集镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1362, 341324106, 341324, '大庄镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1363, 341324201, 341324, '大杨乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1364, 341324200, 341324, '大路口乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1365, 341324111, 341324, '屏山镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1366, 341324107, 341324, '山头镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1367, 341324100, 341324, '泗城镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1368, 341324202, 341324, '瓦坊乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1369, 341324110, 341324, '草庙镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1370, 341324103, 341324, '草沟镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1371, 341324104, 341324, '长沟镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1372, 341324105, 341324, '黄圩镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1373, 341324109, 341324, '黑塔镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1374, 341322, 341300, '萧县', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1375, 341322110, 341322, '丁里镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1376, 341322105, 341322, '刘套镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1377, 341322200, 341322, '圣泉镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1378, 341322107, 341322, '大屯镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1379, 341322203, 341322, '孙圩子乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1380, 341322117, 341322, '官桥镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1381, 341322201, 341322, '庄里乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1382, 341322114, 341322, '张庄寨镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1383, 341322104, 341322, '新庄镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1384, 341322109, 341322, '杜楼镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1385, 341322102, 341322, '杨楼镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1386, 341322115, 341322, '永堌镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1387, 341322111, 341322, '王寨镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1388, 341322116, 341322, '白土镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1389, 341322204, 341322, '石林乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1390, 341322112, 341322, '祖楼镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1391, 341322108, 341322, '赵庄镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1392, 341322202, 341322, '酒店乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1393, 341322103, 341322, '闫集镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1394, 341322113, 341322, '青龙镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1395, 341322106, 341322, '马井镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1396, 341322101, 341322, '黄口镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1397, 341322100, 341322, '龙城镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1398, 341302, 341300, '埇桥区', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1399, 341302010, 341302, '三八街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1400, 341302005, 341302, '三里湾街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1401, 341302004, 341302, '东关街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1402, 341302008, 341302, '北关街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1403, 341302006, 341302, '南关街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1404, 341302001, 341302, '埇桥街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1405, 341302011, 341302, '城东街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1406, 341302024, 341302, '大店镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1407, 341302025, 341302, '大泽乡镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1408, 341302028, 341302, '大营镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1409, 341302019, 341302, '夹沟镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1410, 341302030, 341302, '支河乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1411, 341302021, 341302, '时村镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1412, 341302018, 341302, '曹村镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1413, 341302016, 341302, '朱仙庄镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1414, 341302029, 341302, '杨庄乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1415, 341302020, 341302, '栏杆镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1416, 341302026, 341302, '桃园镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1417, 341302032, 341302, '桃沟乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1418, 341302022, 341302, '永安镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1419, 341302036, 341302, '永镇乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1420, 341302009, 341302, '汴河街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1421, 341302002, 341302, '沱河街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1422, 341302023, 341302, '灰古镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1423, 341302013, 341302, '符离镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1424, 341302015, 341302, '芦岭镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1425, 341302035, 341302, '苗庵乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1426, 341302034, 341302, '蒿沟乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1427, 341302027, 341302, '蕲县镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1428, 341302017, 341302, '褚兰镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1429, 341302037, 341302, '西二铺乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1430, 341302007, 341302, '西关街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1431, 341302031, 341302, '解集乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1432, 341302003, 341302, '道东街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1433, 341302014, 341302, '金海街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1434, 341302033, 341302, '顺河乡', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1435, 340200, 34, '芜湖市', 1, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1436, 340222, 340200, '繁昌区', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1437, 340222102, 340222, '孙村镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1438, 340222105, 340222, '峨山镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1439, 340222103, 340222, '平铺镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1440, 340222104, 340222, '新港镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1441, 340222100, 340222, '繁阳镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1442, 340222101, 340222, '荻港镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1443, 340202, 340200, '镜湖区', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1444, 340202407, 340202, '大砻坊街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1445, 340202406, 340202, '天门山街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1446, 340202404, 340202, '弋矶山街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1447, 340202400, 340202, '张家山街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1448, 340202100, 340202, '方村街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1449, 340202405, 340202, '汀棠街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1450, 340202402, 340202, '范罗山街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1451, 340202009, 340202, '荆山街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1452, 340202403, 340202, '赭山街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1453, 340202401, 340202, '赭麓街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1454, 340207, 340200, '鸠江区', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1455, 340207009, 340207, '万春街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1456, 340207101, 340207, '二坝镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1457, 340207002, 340207, '四褐山街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1458, 340207006, 340207, '官陡街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1459, 340207102, 340207, '汤沟镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1460, 340207100, 340207, '沈巷镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1461, 340207007, 340207, '清水街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1462, 340207005, 340207, '湾里街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1463, 340207400, 340207, '芜湖经济技术开发区', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1464, 340207003, 340207, '裕溪口街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1465, 340207010, 340207, '龙山街道', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1466, 340223, 340200, '南陵县', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1467, 340223106, 340223, '三里镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1468, 340223105, 340223, '何湾镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1469, 340223101, 340223, '家发镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1470, 340223107, 340223, '工山镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1471, 340223104, 340223, '弋江镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1472, 340223100, 340223, '烟墩镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1473, 340223102, 340223, '籍山镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1474, 340223103, 340223, '许镇镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1475, 340221, 340200, '湾沚区', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1476, 340221101, 340221, '六郎镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1477, 340221100, 340221, '湾沚镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1478, 340221104, 340221, '红杨镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1479, 340221105, 340221, '花桥镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1480, 340221102, 340221, '陶辛镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1481, 340225, 340200, '无为市', 2, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1482, 340281106, 340225, '严桥镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1483, 340281110, 340225, '刘渡镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1484, 340281201, 340225, '十里墩镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1485, 340281111, 340225, '姚沟镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1486, 340281107, 340225, '开城镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1487, 340281100, 340225, '无城镇', 3, '2022-03-28 15:27:20', '2022-03-28 15:27:20', NULL); +INSERT INTO `address` VALUES (1488, 340281202, 340225, '昆山镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1489, 340281116, 340225, '泉塘镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1490, 340281112, 340225, '泥汊镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1491, 340281203, 340225, '洪巷镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1492, 340281109, 340225, '牛埠镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1493, 340281113, 340225, '白茆镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1494, 340281105, 340225, '石涧镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1495, 340281115, 340225, '福渡镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1496, 340281117, 340225, '红庙镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1497, 340281108, 340225, '蜀山镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1498, 340281101, 340225, '襄安镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1499, 340281118, 340225, '赫店镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1500, 340281104, 340225, '陡沟镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1501, 340281114, 340225, '高沟镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1502, 340281200, 340225, '鹤毛镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1503, 340203, 340200, '弋江区', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1504, 340203403, 340203, '三山街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1505, 340203002, 340203, '中南街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1506, 340203401, 340203, '保定街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1507, 340203001, 340203, '南瑞街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1508, 340203404, 340203, '峨桥镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1509, 340203007, 340203, '澛港街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1510, 340203005, 340203, '火龙街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1511, 340203006, 340203, '白马街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1512, 340203008, 340203, '马塘街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1513, 340203405, 340203, '高安街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1514, 340203402, 340203, '龙湖街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1515, 340700, 34, '铜陵市', 1, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1516, 340711, 340700, '郊区', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1517, 340711009, 340711, '周潭镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1518, 340711004, 340711, '大通镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1519, 340711002, 340711, '安庆矿区办事处', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1520, 340711007, 340711, '普济圩农场', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1521, 340711001, 340711, '桥南办事处', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1522, 340711005, 340711, '灰河乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1523, 340711011, 340711, '老洲镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1524, 340711003, 340711, '铜山镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1525, 340711010, 340711, '陈瑶湖镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1526, 340705, 340700, '铜官区', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1527, 340705005, 340705, '东郊办事处', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1528, 340705007, 340705, '西湖镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1529, 340705008, 340705, '铜官山区虚镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1530, 340705009, 340705, '铜陵经济开发区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1531, 340706, 340700, '义安区', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1532, 340706201, 340706, '东联镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1533, 340706100, 340706, '五松镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1534, 340706103, 340706, '天门镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1535, 340706200, 340706, '老洲乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1536, 340706203, 340706, '胥坝乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1537, 340706202, 340706, '西联镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1538, 340706102, 340706, '钟鸣镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1539, 340706101, 340706, '顺安镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1540, 340722, 340700, '枞阳县', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1541, 340722110, 340722, '义津镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1542, 340722113, 340722, '会宫镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1543, 340722201, 340722, '凤仪乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1544, 340722112, 340722, '官埠桥镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1545, 340722100, 340722, '枞阳镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1546, 340722106, 340722, '横埠镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1547, 340722102, 340722, '汤沟镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1548, 340722111, 340722, '浮山镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1549, 340722206, 340722, '白柳镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1550, 340722205, 340722, '白梅乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1551, 340722101, 340722, '藕山镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1552, 340722204, 340722, '金社镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1553, 340722108, 340722, '钱桥镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1554, 340722203, 340722, '钱铺镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1555, 340722200, 340722, '铁铜乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1556, 340722202, 340722, '长沙乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1557, 340722208, 340722, '雨坛镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1558, 340722107, 340722, '项铺镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1559, 340722109, 340722, '麒麟镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1560, 341800, 34, '宣城市', 1, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1561, 341822, 341800, '广德市', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1562, 341882201, 341822, '东亭乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1563, 341882200, 341822, '卢村乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1564, 341882203, 341822, '四合乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1565, 341882104, 341822, '新杭镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1566, 341882202, 341822, '杨滩镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1567, 341882101, 341822, '柏垫镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1568, 341882100, 341822, '桃州镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1569, 341882102, 341822, '誓节镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1570, 341882103, 341822, '邱村镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1571, 341823, 341800, '泾县', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1572, 341823108, 341823, '丁家桥镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1573, 341823106, 341823, '云岭镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1574, 341823201, 341823, '昌桥乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1575, 341823103, 341823, '桃花潭镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1576, 341823102, 341823, '榔桥镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1577, 341823200, 341823, '汀溪乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1578, 341823100, 341823, '泾川镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1579, 341823104, 341823, '琴溪镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1580, 341823101, 341823, '茂林镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1581, 341823105, 341823, '蔡村镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1582, 341823107, 341823, '黄村镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1583, 341825, 341800, '旌德县', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1584, 341825102, 341825, '三溪镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1585, 341825202, 341825, '云乐镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1586, 341825105, 341825, '俞村镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1587, 341825203, 341825, '兴隆镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1588, 341825204, 341825, '孙村镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1589, 341825103, 341825, '庙首镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1590, 341825100, 341825, '旌阳镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1591, 341825200, 341825, '版书镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1592, 341825104, 341825, '白地镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1593, 341825101, 341825, '蔡家桥镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1594, 341824, 341800, '绩溪县', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1595, 341824103, 341824, '上庄镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1596, 341824101, 341824, '临溪镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1597, 341824105, 341824, '伏岭镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1598, 341824100, 341824, '华阳镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1599, 341824202, 341824, '家朋乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1600, 341824104, 341824, '扬溪镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1601, 341824201, 341824, '板桥头乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1602, 341824107, 341824, '瀛洲镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1603, 341824203, 341824, '荆州乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1604, 341824106, 341824, '金沙镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1605, 341824102, 341824, '长安镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1606, 341821, 341800, '郎溪县', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1607, 341821200, 341821, '凌笪乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1608, 341821101, 341821, '十字镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1609, 341821202, 341821, '姚村镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1610, 341821100, 341821, '建平镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1611, 341821102, 341821, '新发镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1612, 341821105, 341821, '梅渚镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1613, 341821107, 341821, '毕桥镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1614, 341821103, 341821, '涛城镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1615, 341821108, 341821, '飞鲤镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1616, 341881, 341800, '宁国市', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1617, 341881202, 341881, '万家乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1618, 341881102, 341881, '中溪镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1619, 341881200, 341881, '云梯畲族乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1620, 341881104, 341881, '仙霞镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1621, 341881002, 341881, '南山街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1622, 341881201, 341881, '南极乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1623, 341881006, 341881, '天湖街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1624, 341881103, 341881, '宁墩镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1625, 341881204, 341881, '方塘乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1626, 341881101, 341881, '梅林镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1627, 341881004, 341881, '汪溪街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1628, 341881003, 341881, '河沥溪街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1629, 341881100, 341881, '港口镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1630, 341881106, 341881, '甲路镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1631, 341881005, 341881, '竹峰街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1632, 341881107, 341881, '胡乐镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1633, 341881001, 341881, '西津街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1634, 341881108, 341881, '霞西镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1635, 341881205, 341881, '青龙乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1636, 341802, 341800, '宣州区', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1637, 341802026, 341802, '五星乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1638, 341802025, 341802, '养贤乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1639, 341802007, 341802, '双桥街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1640, 341802013, 341802, '古泉镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1641, 341802018, 341802, '向阳街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1642, 341802022, 341802, '周王镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1643, 341802017, 341802, '孙埠镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1644, 341802015, 341802, '寒亭镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1645, 341802005, 341802, '敬亭山街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1646, 341802016, 341802, '文昌镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1647, 341802021, 341802, '新田镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1648, 341802024, 341802, '朱桥乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1649, 341802019, 341802, '杨柳镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1650, 341802020, 341802, '水东镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1651, 341802009, 341802, '水阳镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1652, 341802012, 341802, '沈村镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1653, 341802014, 341802, '洪林镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1654, 341802004, 341802, '济川街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1655, 341802023, 341802, '溪口镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1656, 341802002, 341802, '澄江街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1657, 341802011, 341802, '狸桥镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1658, 341802001, 341802, '西林街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1659, 341802010, 341802, '金坝街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1660, 341802006, 341802, '飞彩街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1661, 341802003, 341802, '鳌峰街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1662, 341802027, 341802, '黄渡乡', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1663, 82, 0, '澳门特别行政区', 0, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1664, 820200, 82, '氹仔', 1, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1665, 820201, 820200, '嘉模堂区', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1666, 820100, 82, '澳门半岛', 1, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1667, 820102, 820100, '圣安多尼堂区', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1668, 820103, 820100, '大堂区', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1669, 820104, 820100, '望德堂区', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1670, 820101, 820100, '花地玛堂区', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1671, 820105, 820100, '风顺堂区', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1672, 820300, 82, '路环岛', 1, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1673, 820301, 820300, '圣方济各堂区', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1674, 820400, 82, '非堂区', 1, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1675, 820401, 820400, '路氹城', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1676, 11, 0, '北京市', 0, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1677, 110000, 11, '北京市', 1, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1678, 110114, 110000, '昌平区', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1679, 110114007, 110114, '东小口地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1680, 110114116, 110114, '兴寿镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1681, 110114115, 110114, '北七家镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1682, 110114119, 110114, '十三陵镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1683, 110114002, 110114, '南口地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1684, 110114111, 110114, '南邵镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1685, 110114013, 110114, '史各庄街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1686, 110114011, 110114, '回龙观街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1687, 110114001, 110114, '城北街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1688, 110114005, 110114, '城南街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1689, 110114009, 110114, '天通苑北街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1690, 110114008, 110114, '天通苑南街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1691, 110114110, 110114, '小汤山镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1692, 110114112, 110114, '崔村镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1693, 110114120, 110114, '延寿镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1694, 110114004, 110114, '沙河地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1695, 110114118, 110114, '流村镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1696, 110114113, 110114, '百善镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1697, 110114104, 110114, '阳坊镇', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1698, 110114010, 110114, '霍营街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1699, 110114003, 110114, '马池口地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1700, 110114012, 110114, '龙泽园街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1701, 110105, 110000, '朝阳区', 2, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1702, 110105004, 110105, '三里屯街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1703, 110105034, 110105, '三间房地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1704, 110105039, 110105, '东坝地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1705, 110105043, 110105, '东湖街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1706, 110105030, 110105, '东风地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1707, 110105009, 110105, '亚运村街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1708, 110105015, 110105, '八里庄街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1709, 110105014, 110105, '六里屯街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1710, 110105017, 110105, '劲松街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1711, 110105028, 110105, '十八里店地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1712, 110105021, 110105, '南磨房地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1713, 110105016, 110105, '双井街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1714, 110105003, 110105, '呼家楼街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1715, 110105007, 110105, '和平街街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1716, 110105013, 110105, '团结湖街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1717, 110105019, 110105, '垡头街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1718, 110105025, 110105, '大屯街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1719, 110105024, 110105, '太阳宫地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1720, 110105031, 110105, '奥运村街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1721, 110105037, 110105, '孙河地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1722, 110105008, 110105, '安贞街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1723, 110105023, 110105, '将台地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1724, 110105010, 110105, '小关街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1725, 110105027, 110105, '小红门地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1726, 110105038, 110105, '崔各庄地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1727, 110105005, 110105, '左家庄街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1728, 110105033, 110105, '常营地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1729, 110105029, 110105, '平房地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1730, 110105001, 110105, '建外街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1731, 110105026, 110105, '望京街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1732, 110105002, 110105, '朝外街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1733, 110105032, 110105, '来广营地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1734, 110105018, 110105, '潘家园街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1735, 110105042, 110105, '王四营地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1736, 110105035, 110105, '管庄地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1737, 110105041, 110105, '豆各庄地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1738, 110105011, 110105, '酒仙桥街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1739, 110105036, 110105, '金盏地区', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1740, 110105400, 110105, '首都机场街道', 3, '2022-03-28 15:27:21', '2022-03-28 15:27:21', NULL); +INSERT INTO `address` VALUES (1741, 110105006, 110105, '香河园街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1742, 110105022, 110105, '高碑店地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1743, 110105012, 110105, '麦子店街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1744, 110105040, 110105, '黑庄户地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1745, 110115, 110000, '大兴区', 2, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1746, 110115004, 110115, '亦庄地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1747, 110115001, 110115, '兴丰街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1748, 110115109, 110115, '北臧村镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1749, 110115013, 110115, '博兴街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1750, 110115010, 110115, '天宫院街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1751, 110115105, 110115, '安定镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1752, 110115108, 110115, '庞各庄镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1753, 110115006, 110115, '旧宫地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1754, 110115002, 110115, '林校路街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1755, 110115107, 110115, '榆垡镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1756, 110115003, 110115, '清源街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1757, 110115008, 110115, '瀛海地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1758, 110115106, 110115, '礼贤镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1759, 110115012, 110115, '荣华街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1760, 110115007, 110115, '西红门地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1761, 110115009, 110115, '观音寺街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1762, 110115104, 110115, '采育镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1763, 110115111, 110115, '长子营镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1764, 110115103, 110115, '青云店镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1765, 110115011, 110115, '高米店街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1766, 110115110, 110115, '魏善庄镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1767, 110115005, 110115, '黄村地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1768, 110101, 110000, '东城区', 2, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1769, 110101001, 110101, '东华门街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1770, 110101006, 110101, '东四街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1771, 110101009, 110101, '东直门街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1772, 110101013, 110101, '东花市街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1773, 110101003, 110101, '交道口街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1774, 110101015, 110101, '体育馆路街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1775, 110101011, 110101, '前门街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1776, 110101005, 110101, '北新桥街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1777, 110101010, 110101, '和平里街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1778, 110101016, 110101, '天坛街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1779, 110101004, 110101, '安定门街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1780, 110101012, 110101, '崇文门外街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1781, 110101008, 110101, '建国门街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1782, 110101002, 110101, '景山街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1783, 110101007, 110101, '朝阳门街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1784, 110101017, 110101, '永定门外街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1785, 110101014, 110101, '龙潭街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1786, 110111, 110000, '房山区', 2, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1787, 110111005, 110111, '东风街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1788, 110111210, 110111, '佛子庄乡', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1789, 110111111, 110111, '十渡镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1790, 110111209, 110111, '南窖乡', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1791, 110111212, 110111, '史家营乡', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1792, 110111004, 110111, '向阳街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1793, 110111009, 110111, '周口店地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1794, 110111001, 110111, '城关街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1795, 110111211, 110111, '大安山乡', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1796, 110111109, 110111, '大石窝镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1797, 110111110, 110111, '张坊镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1798, 110111011, 110111, '拱辰街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1799, 110111002, 110111, '新镇街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1800, 110111007, 110111, '星城街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1801, 110111107, 110111, '河北镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1802, 110111010, 110111, '琉璃河地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1803, 110111104, 110111, '石楼镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1804, 110111103, 110111, '窦店镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1805, 110111008, 110111, '良乡地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1806, 110111213, 110111, '蒲洼乡', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1807, 110111012, 110111, '西潞街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1808, 110111006, 110111, '迎风街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1809, 110111108, 110111, '长沟镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1810, 110111105, 110111, '长阳镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1811, 110111101, 110111, '阎村镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1812, 110111208, 110111, '霞云岭乡', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1813, 110111112, 110111, '青龙湖镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1814, 110111115, 110111, '韩村河镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1815, 110106, 110000, '丰台区', 2, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1816, 110106007, 110106, '东铁匠营街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1817, 110106006, 110106, '东高地街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1818, 110106009, 110106, '丰台街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1819, 110106012, 110106, '云岗街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1820, 110106005, 110106, '南苑街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1821, 110106008, 110106, '六里桥街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1822, 110106001, 110106, '右安门街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1823, 110106016, 110106, '和义街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1824, 110106004, 110106, '大红门街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1825, 110106002, 110106, '太平桥街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1826, 110106014, 110106, '宛平城地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1827, 110106010, 110106, '新村街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1828, 110106013, 110106, '方庄地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1829, 110106101, 110106, '王佐镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1830, 110106003, 110106, '西罗园街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1831, 110106011, 110106, '长辛店街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1832, 110106100, 110106, '北宫镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1833, 110106015, 110106, '马家堡街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1834, 110118, 110000, '密云区', 2, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1835, 110118109, 110118, '不老屯镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1836, 110118113, 110118, '东邵渠镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1837, 110118110, 110118, '冯家峪镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1838, 110118114, 110118, '北庄镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1839, 110118103, 110118, '十里堡镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1840, 110118111, 110118, '古北口镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1841, 110118112, 110118, '大城子镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1842, 110118107, 110118, '太师屯镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1843, 110118100, 110118, '密云镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1844, 110118105, 110118, '巨各庄镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1845, 110118115, 110118, '新城子镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1846, 110118002, 110118, '果园街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1847, 110118003, 110118, '檀营地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1848, 110118104, 110118, '河南寨镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1849, 110118101, 110118, '溪翁庄镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1850, 110118116, 110118, '石城镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1851, 110118106, 110118, '穆家峪镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1852, 110118102, 110118, '西田各庄镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1853, 110118108, 110118, '高岭镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1854, 110118001, 110118, '鼓楼街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1855, 110108, 110000, '海淀区', 2, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1856, 110108001, 110108, '万寿路街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1857, 110108023, 110108, '万柳地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1858, 110108022, 110108, '上地街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1859, 110108300, 110108, '上庄地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1860, 110108024, 110108, '东升地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1861, 110108011, 110108, '中关村街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1862, 110108005, 110108, '八里庄街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1863, 110108007, 110108, '北下关街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1864, 110108008, 110108, '北太平庄街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1865, 110108027, 110108, '四季青地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1866, 110108010, 110108, '学院路街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1867, 110108025, 110108, '曙光街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1868, 110108002, 110108, '永定路街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1869, 110108012, 110108, '海淀街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1870, 110108014, 110108, '清华园街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1871, 110108017, 110108, '清河街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1872, 110108026, 110108, '温泉地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1873, 110108015, 110108, '燕园街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1874, 110108004, 110108, '甘家口街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1875, 110108021, 110108, '田村路街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1876, 110108006, 110108, '紫竹院街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1877, 110108003, 110108, '羊坊店街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1878, 110108018, 110108, '花园路街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1879, 110108029, 110108, '苏家坨地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1880, 110108019, 110108, '西三旗街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1881, 110108028, 110108, '西北旺地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1882, 110108013, 110108, '青龙桥街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1883, 110108016, 110108, '香山街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1884, 110108020, 110108, '马连洼街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1885, 110116, 110000, '怀柔区', 2, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1886, 110116109, 110116, '九渡河镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1887, 110116102, 110116, '北房镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1888, 110116213, 110116, '喇叭沟门满族乡', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1889, 110116111, 110116, '宝山镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1890, 110116005, 110116, '庙城镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1891, 110116106, 110116, '怀北镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1892, 110116003, 110116, '怀柔地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1893, 110116103, 110116, '杨宋镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1894, 110116105, 110116, '桥梓镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1895, 110116107, 110116, '汤河口镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1896, 110116001, 110116, '泉河街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1897, 110116108, 110116, '渤海镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1898, 110116110, 110116, '琉璃庙镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1899, 110116211, 110116, '长哨营满族乡', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1900, 110116004, 110116, '雁栖地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1901, 110116002, 110116, '龙山街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1902, 110109, 110000, '门头沟区', 2, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1903, 110109003, 110109, '东辛房街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1904, 110109104, 110109, '军庄镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1905, 110109002, 110109, '城子街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1906, 110109004, 110109, '大台街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1907, 110109001, 110109, '大峪街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1908, 110109108, 110109, '妙峰山镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1909, 110109106, 110109, '斋堂镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1910, 110109006, 110109, '永定地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1911, 110109107, 110109, '清水镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1912, 110109101, 110109, '潭柘寺镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1913, 110109005, 110109, '王平地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1914, 110109105, 110109, '雁翅镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1915, 110109109, 110109, '龙泉镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1916, 110117, 110000, '平谷区', 2, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1917, 110117101, 110117, '东高村镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1918, 110117002, 110117, '兴谷街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1919, 110117112, 110117, '刘家店镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1920, 110117104, 110117, '南独乐河镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1921, 110117106, 110117, '夏各庄镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1922, 110117111, 110117, '大兴庄镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1923, 110117105, 110117, '大华山镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1924, 110117102, 110117, '山东庄镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1925, 110117004, 110117, '峪口地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1926, 110117003, 110117, '渔阳地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1927, 110117001, 110117, '滨河街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1928, 110117214, 110117, '熊儿寨乡', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1929, 110117110, 110117, '王辛庄镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1930, 110117006, 110117, '金海湖地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1931, 110117114, 110117, '镇罗营镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1932, 110117005, 110117, '马坊地区', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1933, 110117108, 110117, '马昌营镇', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1934, 110117213, 110117, '黄松峪乡', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1935, 110107, 110000, '石景山区', 2, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1936, 110107010, 110107, '五里坨街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1937, 110107001, 110107, '八宝山街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1938, 110107003, 110107, '八角街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1939, 110107004, 110107, '古城街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1940, 110107009, 110107, '广宁街道', 3, '2022-03-28 15:27:22', '2022-03-28 15:27:22', NULL); +INSERT INTO `address` VALUES (1941, 110107002, 110107, '老山街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1942, 110107005, 110107, '苹果园街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1943, 110107006, 110107, '金顶街街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1944, 110107011, 110107, '鲁谷街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1945, 110113, 110000, '顺义区', 2, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1946, 110113003, 110113, '仁和地区', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1947, 110113002, 110113, '光明街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1948, 110113108, 110113, '北务镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1949, 110113113, 110113, '北小营镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1950, 110113115, 110113, '北石槽镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1951, 110113106, 110113, '南彩镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1952, 110113008, 110113, '南法信地区', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1953, 110113012, 110113, '双丰街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1954, 110113004, 110113, '后沙峪地区', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1955, 110113109, 110113, '大孙各庄镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1956, 110113005, 110113, '天竺地区', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1957, 110113110, 110113, '张镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1958, 110113013, 110113, '旺泉街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1959, 110113112, 110113, '木林镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1960, 110113104, 110113, '李桥镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1961, 110113105, 110113, '李遂镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1962, 110113006, 110113, '杨镇地区', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1963, 110113007, 110113, '牛栏山地区', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1964, 110113010, 110113, '石园街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1965, 110113011, 110113, '空港街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1966, 110113001, 110113, '胜利街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1967, 110113116, 110113, '赵全营镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1968, 110113009, 110113, '马坡镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1969, 110113101, 110113, '高丽营镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1970, 110113111, 110113, '龙湾屯镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1971, 110112, 110000, '通州区', 2, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1972, 110112001, 110112, '中仓街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1973, 110112406, 110112, '临河里街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1974, 110112405, 110112, '九棵树街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1975, 110112209, 110112, '于家务回族乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1976, 110112003, 110112, '北苑街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1977, 110112114, 110112, '台湖镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1978, 110112104, 110112, '宋庄镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1979, 110112105, 110112, '张家湾镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1980, 110112404, 110112, '文景街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1981, 110112002, 110112, '新华街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1982, 110112407, 110112, '杨庄街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1983, 110112006, 110112, '梨园地区', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1984, 110112117, 110112, '永乐店镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1985, 110112005, 110112, '永顺地区', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1986, 110112106, 110112, '漷县镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1987, 110112119, 110112, '潞城镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1988, 110112408, 110112, '潞邑街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1989, 110112004, 110112, '玉桥街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1990, 110112110, 110112, '西集镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1991, 110112109, 110112, '马驹桥镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1992, 110102, 110000, '西城区', 2, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1993, 110102012, 110102, '什刹海街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1994, 110102013, 110102, '大栅栏街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1995, 110102014, 110102, '天桥街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1996, 110102009, 110102, '展览路街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1997, 110102017, 110102, '广安门内街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1998, 110102020, 110102, '广安门外街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (1999, 110102010, 110102, '德胜街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2000, 110102003, 110102, '新街口街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2001, 110102007, 110102, '月坛街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2002, 110102015, 110102, '椿树街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2003, 110102018, 110102, '牛街街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2004, 110102019, 110102, '白纸坊街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2005, 110102001, 110102, '西长安街街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2006, 110102011, 110102, '金融街街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2007, 110102016, 110102, '陶然亭街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2008, 110119, 110000, '延庆区', 2, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2009, 110119110, 110119, '井庄镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2010, 110119003, 110119, '儒林街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2011, 110119102, 110119, '八达岭镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2012, 110119201, 110119, '刘斌堡乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2013, 110119107, 110119, '千家店镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2014, 110119106, 110119, '四海镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2015, 110119200, 110119, '大庄科乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2016, 110119109, 110119, '大榆树镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2017, 110119101, 110119, '康庄镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2018, 110119100, 110119, '延庆镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2019, 110119105, 110119, '张山营镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2020, 110119104, 110119, '旧县镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2021, 110119103, 110119, '永宁镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2022, 110119108, 110119, '沈家营镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2023, 110119203, 110119, '珍珠泉乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2024, 110119001, 110119, '百泉街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2025, 110119002, 110119, '香水园街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2026, 110119202, 110119, '香营乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2027, 50, 0, '重庆市', 0, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2028, 500000, 50, '重庆市', 1, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2029, 500109, 500000, '北碚区', 2, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2030, 500109113, 500109, '三圣镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2031, 500109004, 500109, '东阳街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2032, 500109003, 500109, '北温泉街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2033, 500109112, 500109, '复兴街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2034, 500109105, 500109, '天府镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2035, 500109001, 500109, '天生街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2036, 500109108, 500109, '施家梁镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2037, 500109002, 500109, '朝阳街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2038, 500109111, 500109, '柳荫镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2039, 500109101, 500109, '歇马街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2040, 500109109, 500109, '水土街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2041, 500109102, 500109, '澄江镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2042, 500109104, 500109, '童家溪镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2043, 500109103, 500109, '蔡家岗街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2044, 500109116, 500109, '金刀峡镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2045, 500109110, 500109, '静观镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2046, 500109005, 500109, '龙凤桥街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2047, 500120, 500000, '璧山区', 2, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2048, 500120006, 500120, '丁家街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2049, 500120009, 500120, '七塘镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2050, 500120015, 500120, '三合镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2051, 500120016, 500120, '健龙镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2052, 500120004, 500120, '八塘镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2053, 500120012, 500120, '大兴镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2054, 500120005, 500120, '大路街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2055, 500120014, 500120, '广普镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2056, 500120008, 500120, '来凤街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2057, 500120013, 500120, '正兴镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2058, 500120010, 500120, '河边镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2059, 500120001, 500120, '璧城街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2060, 500120007, 500120, '璧泉街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2061, 500120011, 500120, '福禄镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2062, 500120002, 500120, '青杠街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2063, 500115, 500000, '长寿区', 2, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2064, 500115019, 500115, '万顺镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2065, 500115013, 500115, '云台镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2066, 500115008, 500115, '云集镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2067, 500115007, 500115, '但渡镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2068, 500115017, 500115, '八颗街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2069, 500115001, 500115, '凤城街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2070, 500115010, 500115, '双龙镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2071, 500115016, 500115, '新市街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2072, 500115002, 500115, '晏家街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2073, 500115004, 500115, '江南街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2074, 500115018, 500115, '洪湖镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2075, 500115014, 500115, '海棠镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2076, 500115005, 500115, '渡舟街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2077, 500115012, 500115, '石堰镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2078, 500115020, 500115, '菩提街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2079, 500115015, 500115, '葛兰镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2080, 500115006, 500115, '邻封镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2081, 500115009, 500115, '长寿湖镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2082, 500115011, 500115, '龙河镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2083, 500229, 500000, '城口县', 2, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2084, 500229223, 500229, '东安镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2085, 500229106, 500229, '修齐镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2086, 500229202, 500229, '北屏乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2087, 500229220, 500229, '厚坪乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2088, 500229210, 500229, '双河乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2089, 500229214, 500229, '周溪乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2090, 500229213, 500229, '咸宜乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2091, 500229103, 500229, '坪坝镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2092, 500229002, 500229, '复兴街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2093, 500229219, 500229, '岚天乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2094, 500229205, 500229, '左岚乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2095, 500229102, 500229, '巴山镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2096, 500229104, 500229, '庙坝镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2097, 500229216, 500229, '明中乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2098, 500229105, 500229, '明通镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2099, 500229221, 500229, '河鱼乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2100, 500229217, 500229, '治平乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2101, 500229208, 500229, '沿河乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2102, 500229001, 500229, '葛城街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2103, 500229211, 500229, '蓼子乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2104, 500229204, 500229, '高楠乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2105, 500229108, 500229, '高燕镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2106, 500229107, 500229, '高观镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2107, 500229212, 500229, '鸡鸣乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2108, 500229201, 500229, '龙田乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2109, 500104, 500000, '大渡口区', 2, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2110, 500104003, 500104, '九宫庙街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2111, 500104101, 500104, '八桥镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2112, 500104102, 500104, '建胜镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2113, 500104001, 500104, '新山村街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2114, 500104005, 500104, '春晖路街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2115, 500104004, 500104, '茄子溪街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2116, 500104002, 500104, '跃进村街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2117, 500104103, 500104, '跳磴镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2118, 500111, 500000, '大足区', 2, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2119, 500111016, 500111, '万古镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2120, 500111009, 500111, '三驱镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2121, 500111008, 500111, '中敖镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2122, 500111027, 500111, '双路街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2123, 500111025, 500111, '古龙镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2124, 500111014, 500111, '回龙镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2125, 500111017, 500111, '国梁镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2126, 500111024, 500111, '季家镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2127, 500111010, 500111, '宝兴镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2128, 500111007, 500111, '宝顶镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2129, 500111013, 500111, '拾万镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2130, 500111006, 500111, '智凤街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2131, 500111002, 500111, '棠香街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2132, 500111011, 500111, '玉龙镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2133, 500111019, 500111, '珠溪镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2134, 500111012, 500111, '石马镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2135, 500111028, 500111, '通桥街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2136, 500111021, 500111, '邮亭镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2137, 500111015, 500111, '金山镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2138, 500111022, 500111, '铁山镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2139, 500111018, 500111, '雍溪镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2140, 500111023, 500111, '高升镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2141, 500111026, 500111, '高坪镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2142, 500111001, 500111, '龙岗街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2143, 500111004, 500111, '龙水镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2144, 500111005, 500111, '龙滩子街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2145, 500111020, 500111, '龙石镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2146, 500231, 500000, '垫江县', 2, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2147, 500231119, 500231, '三溪镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2148, 500231108, 500231, '五洞镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2149, 500231116, 500231, '包家镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2150, 500231103, 500231, '周嘉镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2151, 500231112, 500231, '坪山镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2152, 500231204, 500231, '大石乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2153, 500231110, 500231, '太平镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2154, 500231101, 500231, '新民镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2155, 500231104, 500231, '普顺镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2156, 500231114, 500231, '曹回镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2157, 500231115, 500231, '杠家镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2158, 500231100, 500231, '桂溪街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2159, 500231206, 500231, '桂阳街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2160, 500231105, 500231, '永安镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2161, 500231118, 500231, '永平镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2162, 500231102, 500231, '沙坪镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2163, 500231202, 500231, '沙河乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2164, 500231109, 500231, '澄溪镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2165, 500231117, 500231, '白家镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2166, 500231113, 500231, '砚台镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2167, 500231120, 500231, '裴兴镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2168, 500231201, 500231, '长龙镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2169, 500231106, 500231, '高安镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2170, 500231107, 500231, '高峰镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2171, 500231111, 500231, '鹤游镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2172, 500231205, 500231, '黄沙镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2173, 500230, 500000, '丰都县', 2, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2174, 500230103, 500230, '三元镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2175, 500230001, 500230, '三合街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2176, 500230210, 500230, '三建乡', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2177, 500230120, 500230, '仁沙镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2178, 500230125, 500230, '仙女湖镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2179, 500230121, 500230, '保合镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2180, 500230110, 500230, '兴义镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2181, 500230119, 500230, '兴龙镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2182, 500230115, 500230, '包鸾镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2183, 500230107, 500230, '十直镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2184, 500230118, 500230, '南天湖镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2185, 500230111, 500230, '双路镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2186, 500230124, 500230, '双龙镇', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2187, 500230002, 500230, '名山街道', 3, '2022-03-28 15:27:23', '2022-03-28 15:27:23', NULL); +INSERT INTO `address` VALUES (2188, 500230206, 500230, '太平坝乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2189, 500230123, 500230, '暨龙镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2190, 500230106, 500230, '树人镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2191, 500230209, 500230, '栗子乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2192, 500230114, 500230, '武平镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2193, 500230112, 500230, '江池镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2194, 500230116, 500230, '湛普镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2195, 500230102, 500230, '社坛镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2196, 500230105, 500230, '董家镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2197, 500230101, 500230, '虎威镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2198, 500230104, 500230, '许明寺镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2199, 500230207, 500230, '都督乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2200, 500230202, 500230, '青龙乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2201, 500230109, 500230, '高家镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2202, 500230122, 500230, '龙孔镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2203, 500230113, 500230, '龙河镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2204, 500236, 500000, '奉节县', 2, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2205, 500236278, 500236, '云雾土家族乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2206, 500236133, 500236, '五马镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2207, 500236123, 500236, '公平镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2208, 500236128, 500236, '兴隆镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2209, 500236275, 500236, '冯坪乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2210, 500236127, 500236, '吐祥镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2211, 500236279, 500236, '夔州街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2212, 500236001, 500236, '夔门街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2213, 500236121, 500236, '大树镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2214, 500236272, 500236, '太和土家族乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2215, 500236132, 500236, '安坪镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2216, 500236265, 500236, '岩湾乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2217, 500236266, 500236, '平安乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2218, 500236120, 500236, '康乐镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2219, 500236270, 500236, '康坪乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2220, 500236130, 500236, '新民镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2221, 500236124, 500236, '朱衣镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2222, 500236131, 500236, '永乐镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2223, 500236003, 500236, '永安街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2224, 500236119, 500236, '汾河镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2225, 500236125, 500236, '甲高镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2226, 500236117, 500236, '白帝镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2227, 500236269, 500236, '石岗乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2228, 500236122, 500236, '竹园镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2229, 500236267, 500236, '红土乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2230, 500236126, 500236, '羊市镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2231, 500236118, 500236, '草堂镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2232, 500236276, 500236, '长安土家族乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2233, 500236134, 500236, '青莲镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2234, 500236129, 500236, '青龙镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2235, 500236002, 500236, '鱼复街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2236, 500236274, 500236, '鹤峰乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2237, 500236277, 500236, '龙桥土家族乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2238, 500102, 500000, '涪陵区', 2, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2239, 500102036, 500102, '义和镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2240, 500102028, 500102, '南沱镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2241, 500102040, 500102, '同乐乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2242, 500102042, 500102, '增福乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2243, 500102038, 500102, '大木乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2244, 500102041, 500102, '大顺乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2245, 500102018, 500102, '崇义街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2246, 500102017, 500102, '敦仁街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2247, 500102034, 500102, '新妙镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2248, 500102023, 500102, '李渡街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2249, 500102039, 500102, '武陵山乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2250, 500102021, 500102, '江东街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2251, 500102020, 500102, '江北街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2252, 500102027, 500102, '清溪镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2253, 500102029, 500102, '焦石镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2254, 500102026, 500102, '珍溪镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2255, 500102025, 500102, '白涛街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2256, 500102024, 500102, '百胜镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2257, 500102035, 500102, '石沱镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2258, 500102037, 500102, '罗云乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2259, 500102019, 500102, '荔枝街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2260, 500102033, 500102, '蔺市镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2261, 500102031, 500102, '青羊镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2262, 500102030, 500102, '马武镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2263, 500102044, 500102, '马鞍街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2264, 500102022, 500102, '龙桥街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2265, 500102032, 500102, '龙潭镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2266, 500117, 500000, '合川区', 2, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2267, 500117014, 500117, '三庙镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2268, 500117024, 500117, '三汇镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2269, 500117015, 500117, '二郎镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2270, 500117008, 500117, '云门街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2271, 500117003, 500117, '南津街街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2272, 500117019, 500117, '双凤镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2273, 500117031, 500117, '双槐镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2274, 500117013, 500117, '古楼镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2275, 500117001, 500117, '合阳城街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2276, 500117022, 500117, '土场镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2277, 500117009, 500117, '大石街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2278, 500117029, 500117, '太和镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2279, 500117010, 500117, '官渡镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2280, 500117023, 500117, '小沔镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2281, 500117005, 500117, '沙鱼镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2282, 500117011, 500117, '涞滩镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2283, 500117021, 500117, '清平镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2284, 500117030, 500117, '渭沱镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2285, 500117028, 500117, '燕窝镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2286, 500117020, 500117, '狮滩镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2287, 500117006, 500117, '盐井街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2288, 500117012, 500117, '肖家镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2289, 500117007, 500117, '草街街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2290, 500117002, 500117, '钓鱼城街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2291, 500117026, 500117, '钱塘镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2292, 500117018, 500117, '铜溪镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2293, 500117017, 500117, '隆兴镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2294, 500117025, 500117, '香龙镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2295, 500117016, 500117, '龙凤镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2296, 500117027, 500117, '龙市镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2297, 500105, 500000, '江北区', 2, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2298, 500105102, 500105, '五宝镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2299, 500105007, 500105, '五里店街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2300, 500105001, 500105, '华新街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2301, 500105101, 500105, '复盛镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2302, 500105004, 500105, '大石坝街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2303, 500105005, 500105, '寸滩街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2304, 500105002, 500105, '江北城街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2305, 500105003, 500105, '石马河街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2306, 500105006, 500105, '观音桥街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2307, 500105008, 500105, '郭家沱街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2308, 500105009, 500105, '铁山坪街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2309, 500105100, 500105, '鱼嘴镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2310, 500116, 500000, '江津区', 2, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2311, 500116113, 500116, '中山镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2312, 500116116, 500116, '先锋镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2313, 500116001, 500116, '几江街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2314, 500116004, 500116, '双福街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2315, 500116102, 500116, '吴滩镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2316, 500116114, 500116, '嘉平镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2317, 500116123, 500116, '四面山镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2318, 500116126, 500116, '圣泉街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2319, 500116107, 500116, '塘河镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2320, 500116119, 500116, '夏坝镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2321, 500116122, 500116, '广兴镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2322, 500116002, 500116, '德感街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2323, 500116111, 500116, '慈云镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2324, 500116124, 500116, '支坪镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2325, 500116104, 500116, '朱杨镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2326, 500116110, 500116, '李市镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2327, 500116121, 500116, '杜市镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2328, 500116115, 500116, '柏林镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2329, 500116106, 500116, '永兴镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2330, 500116101, 500116, '油溪镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2331, 500116117, 500116, '珞璜镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2332, 500116108, 500116, '白沙镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2333, 500116105, 500116, '石蟆镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2334, 500116103, 500116, '石门镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2335, 500116112, 500116, '蔡家镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2336, 500116120, 500116, '西湖镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2337, 500116118, 500116, '贾嗣镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2338, 500116005, 500116, '鼎山街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2339, 500116109, 500116, '龙华镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2340, 500154, 500000, '开州区', 2, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2341, 500154041, 500154, '三汇口乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2342, 500154024, 500154, '中和镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2343, 500154003, 500154, '丰乐街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2344, 500154022, 500154, '临江镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2345, 500154019, 500154, '义和镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2346, 500154028, 500154, '九龙山镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2347, 500154008, 500154, '云枫街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2348, 500154038, 500154, '五通乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2349, 500154036, 500154, '关面乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2350, 500154026, 500154, '南门镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2351, 500154012, 500154, '南雅镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2352, 500154017, 500154, '厚坝镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2353, 500154013, 500154, '和谦镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2354, 500154030, 500154, '大德镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2355, 500154020, 500154, '大进镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2356, 500154032, 500154, '天和镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2357, 500154025, 500154, '岳溪镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2358, 500154033, 500154, '巫山镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2359, 500154023, 500154, '敦好镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2360, 500154007, 500154, '文峰街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2361, 500154014, 500154, '正安街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2362, 500154001, 500154, '汉丰街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2363, 500154027, 500154, '河堰镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2364, 500154016, 500154, '渠口镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2365, 500154010, 500154, '温泉镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2366, 500154037, 500154, '满月镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2367, 500154031, 500154, '白桥镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2368, 500154004, 500154, '白鹤街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2369, 500154015, 500154, '竹溪镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2370, 500154040, 500154, '紫水乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2371, 500154034, 500154, '谭家镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2372, 500154006, 500154, '赵家街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2373, 500154009, 500154, '郭家镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2374, 500154029, 500154, '金峰镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2375, 500154011, 500154, '铁桥镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2376, 500154002, 500154, '镇东街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2377, 500154021, 500154, '长沙镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2378, 500154035, 500154, '雪宝山镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2379, 500154018, 500154, '高桥镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2380, 500154039, 500154, '麻柳乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2381, 500228, 500000, '梁平区', 2, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2382, 500155117, 500228, '七星镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2383, 500155103, 500228, '云龙镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2384, 500155101, 500228, '仁贤街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2385, 500155001, 500228, '双桂街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2386, 500155120, 500228, '合兴街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2387, 500155113, 500228, '和林镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2388, 500155114, 500228, '回龙镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2389, 500155203, 500228, '复平镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2390, 500155123, 500228, '大观镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2391, 500155200, 500228, '安胜镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2392, 500155104, 500228, '屏锦镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2393, 500155119, 500228, '文化镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2394, 500155107, 500228, '新盛镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2395, 500155111, 500228, '明达镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2396, 500155206, 500228, '星桥镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2397, 500155207, 500228, '曲水镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2398, 500155122, 500228, '柏家镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2399, 500155002, 500228, '梁山街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2400, 500155121, 500228, '石安镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2401, 500155115, 500228, '碧山镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2402, 500155102, 500228, '礼让镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2403, 500155108, 500228, '福禄镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2404, 500155124, 500228, '竹山镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2405, 500155205, 500228, '紫照镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2406, 500155110, 500228, '聚奎镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2407, 500155112, 500228, '荫平镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2408, 500155116, 500228, '虎城镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2409, 500155125, 500228, '蟠龙镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2410, 500155106, 500228, '袁驿镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2411, 500155109, 500228, '金带街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2412, 500155201, 500228, '铁门乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2413, 500155202, 500228, '龙胜乡', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2414, 500155118, 500228, '龙门镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2415, 500113, 500000, '巴南区', 2, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2416, 500113006, 500113, '一品街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2417, 500113114, 500113, '东温泉镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2418, 500113112, 500113, '丰盛镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2419, 500113113, 500113, '二圣镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2420, 500113007, 500113, '南彭街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2421, 500113004, 500113, '南泉街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2422, 500113110, 500113, '双河口镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2423, 500113108, 500113, '圣灯山镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2424, 500113116, 500113, '天星寺镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2425, 500113115, 500113, '姜家镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2426, 500113107, 500113, '安澜镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2427, 500113008, 500113, '惠民街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2428, 500113117, 500113, '接龙镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2429, 500113109, 500113, '木洞镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2430, 500113002, 500113, '李家沱街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2431, 500113103, 500113, '界石镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2432, 500113118, 500113, '石滩镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2433, 500113119, 500113, '石龙镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2434, 500113005, 500113, '花溪街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2435, 500113120, 500113, '莲花街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2436, 500113001, 500113, '鱼洞街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2437, 500113111, 500113, '麻柳嘴镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2438, 500113009, 500113, '龙洲湾街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2439, 500108, 500000, '南岸区', 2, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2440, 500108003, 500108, '南坪街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2441, 500108101, 500108, '南坪镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2442, 500108007, 500108, '南山街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2443, 500108008, 500108, '天文街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2444, 500108105, 500108, '峡口镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2445, 500108108, 500108, '广阳镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2446, 500108006, 500108, '弹子石街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2447, 500108004, 500108, '海棠溪街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2448, 500108102, 500108, '涂山镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2449, 500108002, 500108, '花园路街道', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2450, 500108107, 500108, '迎龙镇', 3, '2022-03-28 15:27:24', '2022-03-28 15:27:24', NULL); +INSERT INTO `address` VALUES (2451, 500108001, 500108, '铜元局街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2452, 500108106, 500108, '长生桥镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2453, 500108103, 500108, '鸡冠石镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2454, 500108005, 500108, '龙门浩街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2455, 500119, 500000, '南川区', 2, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2456, 500119100, 500119, '三泉镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2457, 500119001, 500119, '东城街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2458, 500119207, 500119, '中桥乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2459, 500119204, 500119, '乾丰镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2460, 500119105, 500119, '兴隆镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2461, 500119214, 500119, '冷水关镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2462, 500119002, 500119, '南城街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2463, 500119101, 500119, '南平镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2464, 500119211, 500119, '古花镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2465, 500119113, 500119, '合溪镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2466, 500119112, 500119, '大有镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2467, 500119104, 500119, '大观镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2468, 500119106, 500119, '太平场镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2469, 500119111, 500119, '头渡镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2470, 500119115, 500119, '山王坪镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2471, 500119212, 500119, '峰岩乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2472, 500119210, 500119, '庆元镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2473, 500119209, 500119, '德隆镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2474, 500119201, 500119, '木凉镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2475, 500119208, 500119, '楠竹山镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2476, 500119213, 500119, '民主镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2477, 500119108, 500119, '水江镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2478, 500119202, 500119, '河图镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2479, 500119107, 500119, '白沙镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2480, 500119109, 500119, '石墙镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2481, 500119215, 500119, '石溪镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2482, 500119200, 500119, '石莲镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2483, 500119102, 500119, '神童镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2484, 500119216, 500119, '福寿镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2485, 500119003, 500119, '西城街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2486, 500119110, 500119, '金山镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2487, 500119205, 500119, '骑龙镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2488, 500119103, 500119, '鸣玉镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2489, 500119114, 500119, '黎香湖镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2490, 500243, 500000, '彭水苗族土家族自治县', 2, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2491, 500243013, 500243, '万足镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2492, 500243022, 500243, '三义乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2493, 500243028, 500243, '乔梓乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2494, 500243004, 500243, '保家镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2495, 500243034, 500243, '双龙乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2496, 500243033, 500243, '善感乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2497, 500243031, 500243, '大同镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2498, 500243036, 500243, '大垭乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2499, 500243021, 500243, '太原镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2500, 500243017, 500243, '岩东乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2501, 500243019, 500243, '平安镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2502, 500243014, 500243, '新田镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2503, 500243010, 500243, '普子镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2504, 500243038, 500243, '朗溪乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2505, 500243032, 500243, '桐楼乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2506, 500243007, 500243, '桑柘镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2507, 500243029, 500243, '梅子垭镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2508, 500243020, 500243, '棣棠乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2509, 500243002, 500243, '汉葭街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2510, 500243037, 500243, '润溪乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2511, 500243024, 500243, '石柳乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2512, 500243035, 500243, '石盘乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2513, 500243003, 500243, '绍庆街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2514, 500243023, 500243, '联合乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2515, 500243027, 500243, '芦塘乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2516, 500243030, 500243, '诸佛乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2517, 500243026, 500243, '走马乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2518, 500243012, 500243, '连湖镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2519, 500243005, 500243, '郁山镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2520, 500243016, 500243, '长生镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2521, 500243001, 500243, '靛水街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2522, 500243015, 500243, '鞍子镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2523, 500243006, 500243, '高谷镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2524, 500243008, 500243, '鹿角镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2525, 500243018, 500243, '鹿鸣乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2526, 500243009, 500243, '黄家镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2527, 500243039, 500243, '龙塘乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2528, 500243011, 500243, '龙射镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2529, 500243025, 500243, '龙溪镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2530, 500114, 500000, '黔江区', 2, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2531, 500114200, 500114, '中塘镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2532, 500114209, 500114, '五里乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2533, 500114006, 500114, '冯家街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2534, 500114001, 500114, '城东街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2535, 500114002, 500114, '城南街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2536, 500114003, 500114, '城西街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2537, 500114205, 500114, '太极乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2538, 500114102, 500114, '小南海镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2539, 500114211, 500114, '新华乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2540, 500114204, 500114, '杉岭乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2541, 500114005, 500114, '正阳街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2542, 500114210, 500114, '水市乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2543, 500114206, 500114, '水田乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2544, 500114202, 500114, '沙坝镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2545, 500114112, 500114, '濯水镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2546, 500114207, 500114, '白土乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2547, 500114203, 500114, '白石镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2548, 500114106, 500114, '石会镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2549, 500114113, 500114, '石家镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2550, 500114004, 500114, '舟白街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2551, 500114201, 500114, '蓬东乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2552, 500114104, 500114, '邻鄂镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2553, 500114208, 500114, '金洞乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2554, 500114110, 500114, '金溪镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2555, 500114105, 500114, '阿蓬江镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2556, 500114111, 500114, '马喇镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2557, 500114114, 500114, '鹅池镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2558, 500114108, 500114, '黄溪镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2559, 500114109, 500114, '黎水镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2560, 500114107, 500114, '黑溪镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2561, 500110, 500000, '綦江区', 2, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2562, 500110112, 500110, '丁山镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2563, 500110119, 500110, '万东镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2564, 500110004, 500110, '万盛街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2565, 500110003, 500110, '三江街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2566, 500110108, 500110, '三角镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2567, 500110123, 500110, '丛林镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2568, 500110005, 500110, '东林街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2569, 500110103, 500110, '东溪镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2570, 500110117, 500110, '中峰镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2571, 500110122, 500110, '关坝镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2572, 500110120, 500110, '南桐镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2573, 500110001, 500110, '古南街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2574, 500110113, 500110, '安稳镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2575, 500110105, 500110, '打通镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2576, 500110114, 500110, '扶欢镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2577, 500110002, 500110, '文龙街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2578, 500110116, 500110, '新盛街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2579, 500110118, 500110, '横山镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2580, 500110115, 500110, '永城镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2581, 500110107, 500110, '永新镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2582, 500110106, 500110, '石壕镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2583, 500110124, 500110, '石林镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2584, 500110102, 500110, '石角镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2585, 500110111, 500110, '篆塘镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2586, 500110104, 500110, '赶水镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2587, 500110401, 500110, '通惠街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2588, 500110110, 500110, '郭扶镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2589, 500110125, 500110, '金桥镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2590, 500110109, 500110, '隆盛镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2591, 500110121, 500110, '青年镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2592, 500110126, 500110, '黑山镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2593, 500153, 500000, '荣昌区', 2, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2594, 500153104, 500153, '万灵镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2595, 500153107, 500153, '仁义镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2596, 500153005, 500153, '双河街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2597, 500153109, 500153, '古昌镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2598, 500153110, 500153, '吴家镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2599, 500153006, 500153, '安富街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2600, 500153004, 500153, '峰高街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2601, 500153003, 500153, '广顺街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2602, 500153001, 500153, '昌元街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2603, 500153007, 500153, '昌州街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2604, 500153108, 500153, '河包镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2605, 500153117, 500153, '清升镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2606, 500153106, 500153, '清江镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2607, 500153113, 500153, '清流镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2608, 500153114, 500153, '盘龙镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2609, 500153103, 500153, '直升镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2610, 500153118, 500153, '荣隆镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2611, 500153111, 500153, '观胜镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2612, 500153115, 500153, '远觉镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2613, 500153112, 500153, '铜鼓镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2614, 500153119, 500153, '龙集镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2615, 500106, 500000, '沙坪坝区', 2, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2616, 500106112, 500106, '中梁镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2617, 500106403, 500106, '丰文街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2618, 500106008, 500106, '井口街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2619, 500106105, 500106, '凤凰镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2620, 500106007, 500106, '双碑街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2621, 500106106, 500106, '回龙坝镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2622, 500106111, 500106, '土主镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2623, 500106013, 500106, '土湾街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2624, 500106012, 500106, '天星桥街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2625, 500106001, 500106, '小龙坎街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2626, 500106010, 500106, '山洞街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2627, 500106011, 500106, '新桥街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2628, 500106108, 500106, '曾家镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2629, 500106009, 500106, '歌乐山街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2630, 500106002, 500106, '沙坪坝街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2631, 500106003, 500106, '渝碚路街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2632, 500106006, 500106, '石井坡街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2633, 500106004, 500106, '磁器口街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2634, 500106005, 500106, '童家桥街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2635, 500106018, 500106, '联芳街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2636, 500106016, 500106, '虎溪街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2637, 500106017, 500106, '西永街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2638, 500106101, 500106, '覃家岗街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2639, 500106015, 500106, '陈家桥街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2640, 500106104, 500106, '青木关镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2641, 500106404, 500106, '香炉山街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2642, 500240, 500000, '石柱土家族自治县', 2, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2643, 500240220, 500240, '万安街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2644, 500240114, 500240, '万朝镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2645, 500240204, 500240, '三星乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2646, 500240113, 500240, '三河镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2647, 500240207, 500240, '三益乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2648, 500240102, 500240, '下路街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2649, 500240213, 500240, '中益乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2650, 500240104, 500240, '临溪镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2651, 500240205, 500240, '六塘乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2652, 500240115, 500240, '冷水镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2653, 500240100, 500240, '南宾街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2654, 500240112, 500240, '大歇镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2655, 500240103, 500240, '悦崃镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2656, 500240217, 500240, '新乐乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2657, 500240212, 500240, '枫木镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2658, 500240116, 500240, '桥头镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2659, 500240107, 500240, '沙子镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2660, 500240209, 500240, '河嘴乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2661, 500240109, 500240, '沿溪镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2662, 500240214, 500240, '洗新乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2663, 500240108, 500240, '王场镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2664, 500240208, 500240, '王家乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2665, 500240210, 500240, '石家乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2666, 500240101, 500240, '西沱镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2667, 500240219, 500240, '金竹乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2668, 500240218, 500240, '金铃乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2669, 500240106, 500240, '马武镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2670, 500240111, 500240, '鱼池镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2671, 500240105, 500240, '黄水镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2672, 500240215, 500240, '黄鹤乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2673, 500240203, 500240, '黎场乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2674, 500240110, 500240, '龙沙镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2675, 500240216, 500240, '龙潭乡', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2676, 500151, 500000, '铜梁区', 2, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2677, 500151002, 500151, '东城街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2678, 500151103, 500151, '二坪镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2679, 500151129, 500151, '侣俸镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2680, 500151117, 500151, '华兴镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2681, 500151003, 500151, '南城街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2682, 500151131, 500151, '双山镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2683, 500151116, 500151, '围龙镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2684, 500151101, 500151, '土桥镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2685, 500151115, 500151, '大庙镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2686, 500151124, 500151, '太平镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2687, 500151105, 500151, '安居镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2688, 500151121, 500151, '安溪镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2689, 500151130, 500151, '小林镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2690, 500151127, 500151, '少云镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2691, 500151001, 500151, '巴川街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2692, 500151107, 500151, '平滩镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2693, 500151132, 500151, '庆隆镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2694, 500151004, 500151, '旧县街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2695, 500151104, 500151, '水口镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2696, 500151120, 500151, '永嘉镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2697, 500151106, 500151, '白羊镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2698, 500151110, 500151, '石鱼镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2699, 500151111, 500151, '福果镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2700, 500151113, 500151, '维新镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2701, 500151128, 500151, '蒲吕街道', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2702, 500151126, 500151, '虎峰镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2703, 500151122, 500151, '西河镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2704, 500151114, 500151, '高楼镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2705, 500152, 500000, '潼南区', 2, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2706, 500152101, 500152, '上和镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2707, 500152121, 500152, '五桂镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2708, 500152123, 500152, '别口镇', 3, '2022-03-28 15:27:25', '2022-03-28 15:27:25', NULL); +INSERT INTO `address` VALUES (2709, 500152120, 500152, '卧佛镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2710, 500152110, 500152, '双江镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2711, 500152103, 500152, '古溪镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2712, 500152115, 500152, '塘坝镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2713, 500152125, 500152, '大佛街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2714, 500152117, 500152, '太安镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2715, 500152104, 500152, '宝龙镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2716, 500152124, 500152, '寿桥镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2717, 500152119, 500152, '小渡镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2718, 500152114, 500152, '崇龛镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2719, 500152116, 500152, '新胜镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2720, 500152113, 500152, '柏梓镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2721, 500152001, 500152, '桂林街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2722, 500152002, 500152, '梓潼街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2723, 500152107, 500152, '玉溪镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2724, 500152122, 500152, '田家镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2725, 500152108, 500152, '米心镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2726, 500152109, 500152, '群力镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2727, 500152112, 500152, '花岩镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2728, 500152102, 500152, '龙形镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2729, 500101, 500000, '万州区', 2, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2730, 500101245, 500101, '九池乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2731, 500101025, 500101, '五桥街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2732, 500101145, 500101, '余家镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2733, 500101144, 500101, '分水镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2734, 500101019, 500101, '双河口街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2735, 500101146, 500101, '后山镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2736, 500101021, 500101, '周家坝街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2737, 500101136, 500101, '响水镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2738, 500101238, 500101, '地宝土家族乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2739, 500101110, 500101, '大周镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2740, 500101140, 500101, '天城镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2741, 500101156, 500101, '太安镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2742, 500101017, 500101, '太白街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2743, 500101154, 500101, '太龙镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2744, 500101132, 500101, '孙家镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2745, 500101109, 500101, '小周镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2746, 500101147, 500101, '弹子镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2747, 500101239, 500101, '恒合土家族乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2748, 500101123, 500101, '新乡镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2749, 500101149, 500101, '新田镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2750, 500101237, 500101, '普子乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2751, 500101143, 500101, '李河镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2752, 500101201, 500101, '柱山乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2753, 500101234, 500101, '梨树乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2754, 500101137, 500101, '武陵镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2755, 500101022, 500101, '沙河街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2756, 500101225, 500101, '溪口乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2757, 500101138, 500101, '瀼渡镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2758, 500101141, 500101, '熊家镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2759, 500101227, 500101, '燕山乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2760, 500101018, 500101, '牌楼街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2761, 500101139, 500101, '甘宁镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2762, 500101157, 500101, '白土镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2763, 500101150, 500101, '白羊镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2764, 500101024, 500101, '百安坝街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2765, 500101153, 500101, '罗田镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2766, 500101247, 500101, '茨竹乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2767, 500101152, 500101, '走马镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2768, 500101158, 500101, '郭村镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2769, 500101023, 500101, '钟鼓楼街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2770, 500101212, 500101, '铁峰乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2771, 500101226, 500101, '长坪乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2772, 500101148, 500101, '长岭镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2773, 500101155, 500101, '长滩镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2774, 500101026, 500101, '陈家坝街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2775, 500101134, 500101, '高峰镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2776, 500101142, 500101, '高梁镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2777, 500101001, 500101, '高笋塘街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2778, 500101244, 500101, '黄柏乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2779, 500101135, 500101, '龙沙镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2780, 500101020, 500101, '龙都街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2781, 500101151, 500101, '龙驹镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2782, 500232, 500000, '武隆区', 2, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2783, 500156108, 500232, '仙女山街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2784, 500156215, 500232, '凤山街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2785, 500156200, 500232, '凤来镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2786, 500156204, 500232, '双河镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2787, 500156210, 500232, '后坪苗族土家族乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2788, 500156111, 500232, '和顺镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2789, 500156208, 500232, '土地乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2790, 500156214, 500232, '大洞河乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2791, 500156106, 500232, '平桥镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2792, 500156202, 500232, '庙垭乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2793, 500156212, 500232, '接龙乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2794, 500156207, 500232, '文复苗族土家族乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2795, 500156109, 500232, '桐梓镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2796, 500156105, 500232, '江口镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2797, 500156206, 500232, '沧沟乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2798, 500156211, 500232, '浩口苗族仡佬族乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2799, 500156101, 500232, '火炉镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2800, 500156209, 500232, '白云乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2801, 500156102, 500232, '白马镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2802, 500156203, 500232, '石桥苗族土家族乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2803, 500156107, 500232, '羊角街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2804, 500156100, 500232, '芙蓉街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2805, 500156213, 500232, '赵家乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2806, 500156104, 500232, '长坝镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2807, 500156103, 500232, '鸭江镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2808, 500156205, 500232, '黄莺乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2809, 500237, 500000, '巫山县', 2, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2810, 500237225, 500237, '三溪乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2811, 500237207, 500237, '两坪乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2812, 500237105, 500237, '双龙镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2813, 500237227, 500237, '培石乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2814, 500237102, 500237, '大昌镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2815, 500237211, 500237, '大溪乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2816, 500237109, 500237, '官渡镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2817, 500237106, 500237, '官阳镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2818, 500237100, 500237, '巫峡镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2819, 500237216, 500237, '平河乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2820, 500237101, 500237, '庙宇镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2821, 500237210, 500237, '建平乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2822, 500237219, 500237, '当阳乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2823, 500237108, 500237, '抱龙镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2824, 500237208, 500237, '曲尺乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2825, 500237103, 500237, '福田镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2826, 500237222, 500237, '竹贤乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2827, 500237229, 500237, '笃坪乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2828, 500237200, 500237, '红椿乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2829, 500237231, 500237, '邓家乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2830, 500237214, 500237, '金坪乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2831, 500237110, 500237, '铜鼓镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2832, 500237107, 500237, '骡坪镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2833, 500237001, 500237, '高唐街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2834, 500237104, 500237, '龙溪镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2835, 500237002, 500237, '龙门街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2836, 500238, 500000, '巫溪县', 2, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2837, 500238103, 500238, '上磺镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2838, 500238109, 500238, '下堡镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2839, 500238242, 500238, '中梁乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2840, 500238227, 500238, '乌龙乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2841, 500238239, 500238, '兰英乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2842, 500238101, 500238, '凤凰镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2843, 500238240, 500238, '双阳乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2844, 500238104, 500238, '古路镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2845, 500238245, 500238, '土城镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2846, 500238100, 500238, '城厢镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2847, 500238111, 500238, '塘坊镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2848, 500238207, 500238, '大河乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2849, 500238243, 500238, '天元乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2850, 500238208, 500238, '天星乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2851, 500238102, 500238, '宁厂镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2852, 500238001, 500238, '宁河街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2853, 500238108, 500238, '尖山镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2854, 500238110, 500238, '峰灵镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2855, 500238106, 500238, '徐家镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2856, 500238105, 500238, '文峰镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2857, 500238112, 500238, '朝阳镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2858, 500238002, 500238, '柏杨街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2859, 500238113, 500238, '田坝镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2860, 500238107, 500238, '白鹿镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2861, 500238400, 500238, '红池坝经济开发区', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2862, 500238234, 500238, '红池坝镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2863, 500238204, 500238, '胜利乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2864, 500238237, 500238, '花台乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2865, 500238205, 500238, '菱角镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2866, 500238212, 500238, '蒲莲镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2867, 500238114, 500238, '通城镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2868, 500238210, 500238, '长桂乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2869, 500238226, 500238, '鱼鳞乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2870, 500241, 500000, '秀山土家族苗族自治县', 2, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2871, 500241002, 500241, '中和街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2872, 500241214, 500241, '中平乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2873, 500241001, 500241, '乌杨街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2874, 500241113, 500241, '兰桥镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2875, 500241208, 500241, '大溪乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2876, 500241116, 500241, '妙泉镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2877, 500241201, 500241, '孝溪乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2878, 500241117, 500241, '宋农镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2879, 500241105, 500241, '官庄街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2880, 500241215, 500241, '岑溪乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2881, 500241108, 500241, '峨溶镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2882, 500241003, 500241, '平凯街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2883, 500241112, 500241, '梅江镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2884, 500241109, 500241, '洪安镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2885, 500241207, 500241, '海洋乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2886, 500241211, 500241, '涌洞乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2887, 500241102, 500241, '清溪场镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2888, 500241115, 500241, '溪口镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2889, 500241104, 500241, '溶溪镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2890, 500241107, 500241, '石堤镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2891, 500241111, 500241, '石耶镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2892, 500241114, 500241, '膏田镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2893, 500241118, 500241, '里仁镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2894, 500241119, 500241, '钟灵镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2895, 500241103, 500241, '隘口镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2896, 500241110, 500241, '雅江镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2897, 500241106, 500241, '龙池镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2898, 500107, 500000, '九龙坡区', 2, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2899, 500107006, 500107, '中梁山街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2900, 500107100, 500107, '九龙街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2901, 500107008, 500107, '二郎街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2902, 500107102, 500107, '华岩镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2903, 500107103, 500107, '含谷镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2904, 500107108, 500107, '巴福镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2905, 500107001, 500107, '杨家坪街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2906, 500107007, 500107, '渝州路街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2907, 500107105, 500107, '白市驿镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2908, 500107004, 500107, '石坪桥街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2909, 500107107, 500107, '石板镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2910, 500107005, 500107, '石桥铺街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2911, 500107110, 500107, '西彭镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2912, 500107003, 500107, '谢家湾街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2913, 500107106, 500107, '走马镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2914, 500107104, 500107, '金凤镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2915, 500107111, 500107, '铜罐驿镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2916, 500107109, 500107, '陶家镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2917, 500107002, 500107, '黄桷坪街道', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2918, 500242, 500000, '酉阳土家族苗族自治县', 2, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2919, 500242107, 500242, '丁市镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2920, 500242213, 500242, '万木镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2921, 500242214, 500242, '两罾乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2922, 500242206, 500242, '五福镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2923, 500242205, 500242, '偏柏乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2924, 500242105, 500242, '兴隆镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2925, 500242217, 500242, '南腰界镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2926, 500242223, 500242, '双泉乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2927, 500242204, 500242, '可大乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2928, 500242210, 500242, '后坪乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2929, 500242104, 500242, '大溪镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2930, 500242211, 500242, '天馆乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2931, 500242216, 500242, '官清乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2932, 500242212, 500242, '宜居乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2933, 500242113, 500242, '小河镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2934, 500242221, 500242, '庙溪乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2935, 500242207, 500242, '木叶乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2936, 500242109, 500242, '李溪镇', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2937, 500242215, 500242, '板桥乡', 3, '2022-03-28 15:27:26', '2022-03-28 15:27:26', NULL); +INSERT INTO `address` VALUES (2938, 500242114, 500242, '板溪镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2939, 500242100, 500242, '桃花源街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2940, 500242224, 500242, '楠木乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2941, 500242208, 500242, '毛坝乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2942, 500242110, 500242, '泔溪镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2943, 500242222, 500242, '浪坪乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2944, 500242200, 500242, '涂市镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2945, 500242220, 500242, '清泉乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2946, 500242219, 500242, '腴地乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2947, 500242209, 500242, '花田乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2948, 500242112, 500242, '苍岭镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2949, 500242218, 500242, '车田乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2950, 500242111, 500242, '酉水河镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2951, 500242103, 500242, '酉酬镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2952, 500242225, 500242, '钟多街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2953, 500242202, 500242, '铜鼓镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2954, 500242102, 500242, '麻旺镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2955, 500242106, 500242, '黑水镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2956, 500242101, 500242, '龙潭镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2957, 500242108, 500242, '龚滩镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2958, 500112, 500000, '渝北区', 2, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2959, 500112018, 500112, '两路街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2960, 500112007, 500112, '人和街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2961, 500112031, 500112, '仙桃街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2962, 500112029, 500112, '兴隆镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2963, 500112004, 500112, '双凤桥街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2964, 500112002, 500112, '双龙湖街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2965, 500112023, 500112, '古路镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2966, 500112003, 500112, '回兴街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2967, 500112027, 500112, '大湾镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2968, 500112021, 500112, '大盛镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2969, 500112012, 500112, '大竹林街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2970, 500112008, 500112, '天宫殿街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2971, 500112016, 500112, '康美街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2972, 500112013, 500112, '悦来街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2973, 500112030, 500112, '木耳镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2974, 500112022, 500112, '洛碛镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2975, 500112024, 500112, '玉峰山镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2976, 500112019, 500112, '王家街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2977, 500112020, 500112, '石船镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2978, 500112014, 500112, '礼嘉街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2979, 500112026, 500112, '统景镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2980, 500112006, 500112, '翠云街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2981, 500112028, 500112, '茨竹镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2982, 500112015, 500112, '金山街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2983, 500112005, 500112, '鸳鸯街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2984, 500112025, 500112, '龙兴镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2985, 500112011, 500112, '龙塔街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2986, 500112010, 500112, '龙山街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2987, 500112009, 500112, '龙溪街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2988, 500235, 500000, '云阳县', 2, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2989, 500235042, 500235, '上坝乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2990, 500235007, 500235, '云安镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2991, 500235004, 500235, '云阳镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2992, 500235006, 500235, '人和街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2993, 500235031, 500235, '养鹿镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2994, 500235012, 500235, '农坝镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2995, 500235018, 500235, '凤鸣镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2996, 500235020, 500235, '南溪镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2997, 500235021, 500235, '双土镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2998, 500235002, 500235, '双江街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (2999, 500235027, 500235, '双龙镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3000, 500235033, 500235, '后叶镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3001, 500235032, 500235, '堰坪镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3002, 500235035, 500235, '外郎乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3003, 500235041, 500235, '大阳镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3004, 500235019, 500235, '宝坪镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3005, 500235015, 500235, '巴阳镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3006, 500235025, 500235, '平安镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3007, 500235009, 500235, '故陵镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3008, 500235037, 500235, '新津乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3009, 500235038, 500235, '普安乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3010, 500235026, 500235, '栖霞镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3011, 500235022, 500235, '桑坪镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3012, 500235030, 500235, '水口镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3013, 500235023, 500235, '江口镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3014, 500235016, 500235, '沙市镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3015, 500235029, 500235, '泥溪镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3016, 500235039, 500235, '洞鹿乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3017, 500235043, 500235, '清水土家族自治乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3018, 500235013, 500235, '渠马镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3019, 500235005, 500235, '盘龙街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3020, 500235040, 500235, '石门乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3021, 500235010, 500235, '红狮镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3022, 500235036, 500235, '耀灵镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3023, 500235028, 500235, '蔈草镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3024, 500235011, 500235, '路阳镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3025, 500235001, 500235, '青龙街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3026, 500235024, 500235, '高阳镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3027, 500235017, 500235, '鱼泉镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3028, 500235014, 500235, '黄石镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3029, 500235034, 500235, '龙洞镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3030, 500235008, 500235, '龙角镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3031, 500103, 500000, '渝中区', 2, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3032, 500103001, 500103, '七星岗街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3033, 500103004, 500103, '上清寺街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3034, 500103003, 500103, '两路口街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3035, 500103011, 500103, '化龙桥街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3036, 500103006, 500103, '南纪门街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3037, 500103010, 500103, '大坪街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3038, 500103009, 500103, '大溪沟街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3039, 500103008, 500103, '朝天门街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3040, 500103012, 500103, '石油路街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3041, 500103005, 500103, '菜园坝街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3042, 500103002, 500103, '解放碑街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3043, 500233, 500000, '忠县', 2, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3044, 500233119, 500233, '三汇镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3045, 500233105, 500233, '东溪镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3046, 500233103, 500233, '乌杨街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3047, 500233102, 500233, '任家镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3048, 500233210, 500233, '兴峰乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3049, 500233115, 500233, '双桂镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3050, 500233201, 500233, '善广乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3051, 500233106, 500233, '复兴镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3052, 500233110, 500233, '官坝镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3053, 500233001, 500233, '忠州街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3054, 500233116, 500233, '拔山镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3055, 500233101, 500233, '新生街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3056, 500233114, 500233, '新立镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3057, 500233118, 500233, '永丰镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3058, 500233108, 500233, '汝溪镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3059, 500233104, 500233, '洋渡镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3060, 500233206, 500233, '涂井乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3061, 500233002, 500233, '白公街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3062, 500233120, 500233, '白石镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3063, 500233203, 500233, '石子乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3064, 500233107, 500233, '石宝镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3065, 500233111, 500233, '石黄镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3066, 500233204, 500233, '磨子土家族乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3067, 500233117, 500233, '花桥镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3068, 500233109, 500233, '野鹤镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3069, 500233208, 500233, '金声乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3070, 500233113, 500233, '金鸡镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3071, 500233112, 500233, '马灌镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3072, 500233122, 500233, '黄金镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3073, 500118, 500000, '永川区', 2, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3074, 500118022, 500118, '三教镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3075, 500118001, 500118, '中山路街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3076, 500118011, 500118, '临江镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3077, 500118016, 500118, '五间镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3078, 500118014, 500118, '仙龙镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3079, 500118012, 500118, '何埂镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3080, 500118003, 500118, '南大街街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3081, 500118008, 500118, '卫星湖街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3082, 500118019, 500118, '双石镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3083, 500118015, 500118, '吉安镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3084, 500118007, 500118, '大安街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3085, 500118018, 500118, '宝峰镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3086, 500118024, 500118, '朱沱镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3087, 500118017, 500118, '来苏镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3088, 500118013, 500118, '松溉镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3089, 500118023, 500118, '板桥镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3090, 500118021, 500118, '永荣镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3091, 500118020, 500118, '红炉镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3092, 500118002, 500118, '胜利路街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3093, 500118004, 500118, '茶山竹海街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3094, 500118010, 500118, '金龙镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3095, 500118009, 500118, '陈食街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3096, 500118006, 500118, '青峰镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3097, 35, 0, '福建省', 0, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3098, 350100, 35, '福州市', 1, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3099, 350104, 350100, '仓山区', 2, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3100, 350104005, 350104, '三叉街街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3101, 350104006, 350104, '上渡街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3102, 350104007, 350104, '下渡街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3103, 350104002, 350104, '东升街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3104, 350104004, 350104, '临江街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3105, 350104001, 350104, '仓前街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3106, 350104100, 350104, '仓山镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3107, 350104101, 350104, '城门镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3108, 350104003, 350104, '对湖街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3109, 350104103, 350104, '建新镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3110, 350104102, 350104, '盖山镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3111, 350104104, 350104, '螺洲镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3112, 350104008, 350104, '金山街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3113, 350182, 350100, '长乐区', 2, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3114, 350112106, 350182, '古槐镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3115, 350112001, 350182, '吴航街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3116, 350112112, 350182, '文岭镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3117, 350112107, 350182, '文武砂镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3118, 350112104, 350182, '松下镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3119, 350112113, 350182, '梅花镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3120, 350112105, 350182, '江田镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3121, 350112110, 350182, '湖南镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3122, 350112004, 350182, '漳港街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3123, 350112114, 350182, '潭头镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3124, 350112201, 350182, '猴屿乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3125, 350112103, 350182, '玉田镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3126, 350112200, 350182, '罗联乡', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3127, 350112002, 350182, '航城街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3128, 350112003, 350182, '营前街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3129, 350112111, 350182, '金峰镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3130, 350112102, 350182, '首占镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3131, 350112108, 350182, '鹤上镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3132, 350181, 350100, '福清市', 2, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3133, 350181119, 350181, '一都镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3134, 350181111, 350181, '三山镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3135, 350181114, 350181, '上迳镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3136, 350181117, 350181, '东张镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3137, 350181112, 350181, '东瀚镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3138, 350181105, 350181, '南岭镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3139, 350181104, 350181, '城头镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3140, 350181005, 350181, '宏路街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3141, 350181115, 350181, '新厝镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3142, 350181107, 350181, '江镜镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3143, 350181116, 350181, '江阴镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3144, 350181110, 350181, '沙埔镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3145, 350181103, 350181, '海口镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3146, 350181113, 350181, '渔溪镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3147, 350181108, 350181, '港头镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3148, 350181002, 350181, '玉屏街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3149, 350181006, 350181, '石竹街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3150, 350181118, 350181, '镜洋镇', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3151, 350181008, 350181, '阳下街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3152, 350181007, 350181, '音西街道', 3, '2022-03-28 15:27:27', '2022-03-28 15:27:27', NULL); +INSERT INTO `address` VALUES (3153, 350181109, 350181, '高山镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3154, 350181003, 350181, '龙山街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3155, 350181004, 350181, '龙江街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3156, 350181106, 350181, '龙田镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3157, 350102, 350100, '鼓楼区', 2, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3158, 350102004, 350102, '东街街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3159, 350102009, 350102, '五凤街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3160, 350102007, 350102, '华大街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3161, 350102005, 350102, '南街街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3162, 350102006, 350102, '安泰街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3163, 350102008, 350102, '水部街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3164, 350102100, 350102, '洪山镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3165, 350102003, 350102, '温泉街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3166, 350102001, 350102, '鼓东街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3167, 350102002, 350102, '鼓西街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3168, 350111, 350100, '晋安区', 2, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3169, 350111103, 350111, '宦溪镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3170, 350111201, 350111, '寿山乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3171, 350111102, 350111, '岳峰镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3172, 350111101, 350111, '新店镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3173, 350111202, 350111, '日溪乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3174, 350111002, 350111, '王庄街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3175, 350111001, 350111, '茶园街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3176, 350111003, 350111, '象园街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3177, 350111100, 350111, '鼓山镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3178, 350122, 350100, '连江县', 2, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3179, 350122204, 350122, '下宫镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3180, 350122102, 350122, '东岱镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3181, 350122105, 350122, '东湖镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3182, 350122106, 350122, '丹阳镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3183, 350122100, 350122, '凤城镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3184, 350122115, 350122, '坑园镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3185, 350122203, 350122, '安凯乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3186, 350122110, 350122, '官坂镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3187, 350122205, 350122, '小沧畲族乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3188, 350122101, 350122, '敖江镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3189, 350122104, 350122, '晓澳镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3190, 350122201, 350122, '江南镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3191, 350122114, 350122, '浦口镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3192, 350122200, 350122, '潘渡镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3193, 350122103, 350122, '琯头镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3194, 350122111, 350122, '筱埕镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3195, 350122113, 350122, '苔菉镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3196, 350122202, 350122, '蓼沿乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3197, 350122108, 350122, '透堡镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3198, 350122107, 350122, '长龙镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3199, 350122206, 350122, '马祖乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3200, 350122109, 350122, '马鼻镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3201, 350122112, 350122, '黄岐镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3202, 350123, 350100, '罗源县', 2, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3203, 350123103, 350123, '中房镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3204, 350123100, 350123, '凤山镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3205, 350123101, 350123, '松山镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3206, 350123201, 350123, '洪洋乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3207, 350123200, 350123, '白塔乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3208, 350123204, 350123, '碧里乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3209, 350123202, 350123, '西兰乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3210, 350123102, 350123, '起步镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3211, 350123105, 350123, '鉴江镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3212, 350123203, 350123, '霍口畲族乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3213, 350123104, 350123, '飞竹镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3214, 350105, 350100, '马尾区', 2, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3215, 350105101, 350105, '亭江镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3216, 350105102, 350105, '琅岐镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3217, 350105001, 350105, '罗星街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3218, 350105100, 350105, '马尾镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3219, 350121, 350100, '闽侯县', 2, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3220, 350121107, 350121, '上街镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3221, 350121102, 350121, '南屿镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3222, 350121106, 350121, '南通镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3223, 350121203, 350121, '大湖乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3224, 350121206, 350121, '小箬乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3225, 350121103, 350121, '尚干镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3226, 350121204, 350121, '廷坪乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3227, 350121202, 350121, '洋里乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3228, 350121001, 350121, '甘蔗街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3229, 350121101, 350121, '白沙镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3230, 350121104, 350121, '祥谦镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3231, 350121200, 350121, '竹岐乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3232, 350121108, 350121, '荆溪镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3233, 350121105, 350121, '青口镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3234, 350121201, 350121, '鸿尾乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3235, 350124, 350100, '闽清县', 2, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3236, 350124204, 350124, '三溪乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3237, 350124201, 350124, '上莲乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3238, 350124206, 350124, '下祝乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3239, 350124110, 350124, '东桥镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3240, 350124200, 350124, '云龙乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3241, 350124106, 350124, '坂东镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3242, 350124107, 350124, '塔庄镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3243, 350124205, 350124, '桔林乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3244, 350124100, 350124, '梅城镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3245, 350124101, 350124, '梅溪镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3246, 350124105, 350124, '池园镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3247, 350124104, 350124, '白中镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3248, 350124102, 350124, '白樟镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3249, 350124108, 350124, '省璜镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3250, 350124103, 350124, '金沙镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3251, 350124109, 350124, '雄江镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3252, 350128, 350100, '平潭县', 2, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3253, 350128205, 350128, '东庠乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3254, 350128204, 350128, '中楼乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3255, 350128104, 350128, '北厝镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3256, 350128207, 350128, '南海乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3257, 350128202, 350128, '大练乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3258, 350128201, 350128, '屿头乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3259, 350128206, 350128, '岚城乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3260, 350128105, 350128, '苏平镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3261, 350128106, 350128, '金井镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3262, 350128102, 350128, '君山镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3263, 350128100, 350128, '海坛街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3264, 350128103, 350128, '澳前镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3265, 350128200, 350128, '白青乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3266, 350128203, 350128, '芦洋乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3267, 350128101, 350128, '苏澳镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3268, 350103, 350100, '台江区', 2, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3269, 350103005, 350103, '上海街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3270, 350103003, 350103, '义洲街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3271, 350103002, 350103, '后洲街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3272, 350103012, 350103, '宁化街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3273, 350103004, 350103, '新港街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3274, 350103010, 350103, '洋中街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3275, 350103001, 350103, '瀛洲街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3276, 350103007, 350103, '苍霞街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3277, 350103013, 350103, '茶亭街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3278, 350103011, 350103, '鳌峰街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3279, 350125, 350100, '永泰县', 2, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3280, 350125206, 350125, '东洋乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3281, 350125211, 350125, '丹云乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3282, 350125107, 350125, '同安镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3283, 350125104, 350125, '城峰镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3284, 350125200, 350125, '塘前乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3285, 350125108, 350125, '大洋镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3286, 350125201, 350125, '富泉乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3287, 350125202, 350125, '岭路乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3288, 350125101, 350125, '嵩口镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3289, 350125102, 350125, '梧桐镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3290, 350125100, 350125, '樟城镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3291, 350125204, 350125, '洑口乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3292, 350125105, 350125, '清凉镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3293, 350125210, 350125, '白云乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3294, 350125205, 350125, '盖洋乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3295, 350125208, 350125, '盘谷乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3296, 350125209, 350125, '红星乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3297, 350125103, 350125, '葛岭镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3298, 350125203, 350125, '赤锡乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3299, 350125106, 350125, '长庆镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3300, 350125207, 350125, '霞拔乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3301, 350800, 35, '龙岩市', 1, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3302, 350821, 350800, '长汀县', 2, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3303, 350821111, 350821, '三洲镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3304, 350821107, 350821, '南山镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3305, 350821102, 350821, '古城镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3306, 350821109, 350821, '四都镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3307, 350821101, 350821, '大同镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3308, 350821204, 350821, '宣成乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3309, 350821202, 350821, '庵杰乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3310, 350821103, 350821, '新桥镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3311, 350821100, 350821, '汀州镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3312, 350821106, 350821, '河田镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3313, 350821110, 350821, '涂坊镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3314, 350821108, 350821, '濯田镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3315, 350821105, 350821, '童坊镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3316, 350821112, 350821, '策武镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3317, 350821205, 350821, '红山乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3318, 350821206, 350821, '羊牯乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3319, 350821201, 350821, '铁长乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3320, 350821104, 350821, '馆前镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3321, 350825, 350800, '连城县', 2, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3322, 350825101, 350825, '北团镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3323, 350825203, 350825, '四堡镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3324, 350825201, 350825, '塘前乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3325, 350825102, 350825, '姑田镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3326, 350825210, 350825, '宣和乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3327, 350825106, 350825, '庙前镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3328, 350825200, 350825, '揭乐乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3329, 350825107, 350825, '文亨镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3330, 350825105, 350825, '新泉镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3331, 350825208, 350825, '曲溪乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3332, 350825103, 350825, '朋口镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3333, 350825205, 350825, '林坊镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3334, 350825204, 350825, '罗坊乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3335, 350825104, 350825, '莒溪镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3336, 350825100, 350825, '莲峰镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3337, 350825209, 350825, '赖源乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3338, 350825202, 350825, '隔川乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3339, 350823, 350800, '上杭县', 2, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3340, 350823201, 350823, '下都镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3341, 350823102, 350823, '中都镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3342, 350823101, 350823, '临城镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3343, 350823100, 350823, '临江镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3344, 350823108, 350823, '南阳镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3345, 350823106, 350823, '古田镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3346, 350823113, 350823, '太拔镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3347, 350823211, 350823, '官庄畲族乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3348, 350823202, 350823, '庐丰畲族乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3349, 350823107, 350823, '才溪镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3350, 350823110, 350823, '旧县镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3351, 350823208, 350823, '步云乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3352, 350823206, 350823, '泮境乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3353, 350823112, 350823, '湖洋镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3354, 350823111, 350823, '溪口镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3355, 350823212, 350823, '珊瑚乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3356, 350823105, 350823, '白砂镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3357, 350823104, 350823, '稔田镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3358, 350823205, 350823, '茶地镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3359, 350823103, 350823, '蓝溪镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3360, 350823109, 350823, '蛟洋镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3361, 350823114, 350823, '通贤镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3362, 350824, 350800, '武平县', 2, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3363, 350824110, 350824, '万安镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3364, 350824204, 350824, '下坝乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3365, 350824108, 350824, '东留镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3366, 350824104, 350824, '中堡镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3367, 350824101, 350824, '中山镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3368, 350824205, 350824, '中赤镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3369, 350824103, 350824, '十方镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3370, 350824106, 350824, '城厢镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3371, 350824210, 350824, '大禾镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3372, 350824102, 350824, '岩前镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3373, 350824100, 350824, '平川街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3374, 350824105, 350824, '桃溪镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3375, 350824107, 350824, '武东镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3376, 350824203, 350824, '民主乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3377, 350824109, 350824, '永平镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3378, 350824209, 350824, '湘店镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3379, 350824206, 350824, '象洞乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3380, 350802, 350800, '新罗区', 2, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3381, 350802104, 350802, '万安镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3382, 350802001, 350802, '东城街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3383, 350802006, 350802, '东肖街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3384, 350802004, 350802, '中城街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3385, 350802010, 350802, '北城街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3386, 350802002, 350802, '南城街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3387, 350802105, 350802, '大池镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3388, 350802106, 350802, '小池镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3389, 350802201, 350802, '岩山乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3390, 350802005, 350802, '曹溪街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3391, 350802112, 350802, '江山镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3392, 350802103, 350802, '白沙镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3393, 350802100, 350802, '红坊镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3394, 350802202, 350802, '苏坂乡', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3395, 350802003, 350802, '西城街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3396, 350802007, 350802, '西陂街道', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3397, 350802101, 350802, '适中镇', 3, '2022-03-28 15:27:28', '2022-03-28 15:27:28', NULL); +INSERT INTO `address` VALUES (3398, 350802009, 350802, '铁山街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3399, 350802102, 350802, '雁石镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3400, 350802008, 350802, '龙门街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3401, 350803, 350800, '永定区', 2, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3402, 350803102, 350803, '下洋镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3403, 350803203, 350803, '仙师镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3404, 350803001, 350803, '凤城街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3405, 350803207, 350803, '古竹乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3406, 350803209, 350803, '合溪乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3407, 350803101, 350803, '坎市镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3408, 350803200, 350803, '城郊镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3409, 350803107, 350803, '培丰镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3410, 350803208, 350803, '堂堡镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3411, 350803211, 350803, '大溪乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3412, 350803206, 350803, '岐岭镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3413, 350803109, 350803, '峰市镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3414, 350803105, 350803, '抚市镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3415, 350803204, 350803, '洪山乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3416, 350803106, 350803, '湖坑镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3417, 350803205, 350803, '湖山乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3418, 350803103, 350803, '湖雷镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3419, 350803110, 350803, '虎岗镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3420, 350803201, 350803, '西溪乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3421, 350803202, 350803, '金砂乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3422, 350803212, 350803, '陈东乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3423, 350803213, 350803, '高头乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3424, 350803104, 350803, '高陂镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3425, 350803108, 350803, '龙潭镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3426, 350881, 350800, '漳平市', 2, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3427, 350881202, 350881, '南洋镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3428, 350881101, 350881, '双洋镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3429, 350881204, 350881, '吾祠乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3430, 350881104, 350881, '和平镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3431, 350881203, 350881, '官田乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3432, 350881105, 350881, '拱桥镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3433, 350881100, 350881, '新桥镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3434, 350881002, 350881, '桂林街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3435, 350881102, 350881, '永福镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3436, 350881103, 350881, '溪南镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3437, 350881205, 350881, '灵地乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3438, 350881200, 350881, '芦芝镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3439, 350881001, 350881, '菁城街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3440, 350881201, 350881, '西园镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3441, 350881106, 350881, '象湖镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3442, 350881107, 350881, '赤水镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3443, 350700, 35, '南平市', 1, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3444, 350723, 350700, '光泽县', 2, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3445, 350723203, 350723, '华桥乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3446, 350723204, 350723, '司前乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3447, 350723101, 350723, '寨里镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3448, 350723201, 350723, '崇仁乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3449, 350723202, 350723, '李坊乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3450, 350723100, 350723, '杭川镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3451, 350723102, 350723, '止马镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3452, 350723200, 350723, '鸾凤乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3453, 350783, 350700, '建瓯市', 2, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3454, 350783108, 350783, '东峰镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3455, 350783107, 350783, '东游镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3456, 350783103, 350783, '南雅镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3457, 350783101, 350783, '吉阳镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3458, 350783109, 350783, '小松镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3459, 350783105, 350783, '小桥镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3460, 350783202, 350783, '川石乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3461, 350783001, 350783, '建安街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3462, 350783100, 350783, '徐墩镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3463, 350783102, 350783, '房道镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3464, 350783201, 350783, '水源乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3465, 350783106, 350783, '玉山镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3466, 350783003, 350783, '瓯宁街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3467, 350783004, 350783, '芝山街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3468, 350783104, 350783, '迪口镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3469, 350783002, 350783, '通济街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3470, 350783200, 350783, '顺阳乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3471, 350783203, 350783, '龙村乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3472, 350703, 350700, '建阳区', 2, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3473, 350703201, 350703, '书坊乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3474, 350703202, 350703, '回龙乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3475, 350703102, 350703, '将口镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3476, 350703109, 350703, '小湖镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3477, 350703200, 350703, '崇雒乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3478, 350703103, 350703, '徐市镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3479, 350703107, 350703, '水吉镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3480, 350703108, 350703, '漳墩镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3481, 350703001, 350703, '潭城街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3482, 350703002, 350703, '童游街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3483, 350703104, 350703, '莒口镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3484, 350703105, 350703, '麻沙镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3485, 350703106, 350703, '黄坑镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3486, 350722, 350700, '浦城县', 2, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3487, 350722200, 350722, '万安乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3488, 350722103, 350722, '临江镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3489, 350722109, 350722, '九牧镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3490, 350722104, 350722, '仙阳镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3491, 350722001, 350722, '南浦街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3492, 350722201, 350722, '古楼乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3493, 350722207, 350722, '官路乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3494, 350722101, 350722, '富岭镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3495, 350722202, 350722, '山下乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3496, 350722107, 350722, '忠信镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3497, 350722203, 350722, '枫溪乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3498, 350722105, 350722, '水北街镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3499, 350722106, 350722, '永兴镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3500, 350722002, 350722, '河滨街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3501, 350722204, 350722, '濠村乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3502, 350722206, 350722, '盘亭乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3503, 350722102, 350722, '石陂镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3504, 350722205, 350722, '管厝乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3505, 350722108, 350722, '莲塘镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3506, 350781, 350700, '邵武市', 2, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3507, 350781102, 350781, '下沙镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3508, 350781103, 350781, '卫闽镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3509, 350781111, 350781, '吴家塘镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3510, 350781108, 350781, '和平镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3511, 350781100, 350781, '城郊镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3512, 350781107, 350781, '大埠岗镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3513, 350781110, 350781, '大竹镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3514, 350781201, 350781, '张厝乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3515, 350781105, 350781, '拿口镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3516, 350781001, 350781, '昭阳街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3517, 350781004, 350781, '晒口街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3518, 350781200, 350781, '桂林乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3519, 350781003, 350781, '水北街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3520, 350781101, 350781, '水北镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3521, 350781104, 350781, '沿山镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3522, 350781106, 350781, '洪墩镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3523, 350781109, 350781, '肖家坊镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3524, 350781002, 350781, '通泰街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3525, 350781202, 350781, '金坑乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3526, 350721, 350700, '顺昌县', 2, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3527, 350721106, 350721, '仁寿镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3528, 350721102, 350721, '元坑镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3529, 350721001, 350721, '双溪街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3530, 350721103, 350721, '埔上镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3531, 350721104, 350721, '大历镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3532, 350721105, 350721, '大干镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3533, 350721202, 350721, '岚下乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3534, 350721100, 350721, '建西镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3535, 350721101, 350721, '洋口镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3536, 350721200, 350721, '洋墩乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3537, 350721107, 350721, '郑坊镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3538, 350721203, 350721, '高阳乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3539, 350724, 350700, '松溪县', 2, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3540, 350724202, 350724, '旧县乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3541, 350724001, 350724, '松源街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3542, 350724200, 350724, '河东乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3543, 350724102, 350724, '渭田镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3544, 350724203, 350724, '溪东乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3545, 350724205, 350724, '祖墩乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3546, 350724204, 350724, '花桥乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3547, 350724201, 350724, '茶平乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3548, 350724101, 350724, '郑墩镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3549, 350782, 350700, '武夷山市', 2, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3550, 350782200, 350782, '上梅乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3551, 350782102, 350782, '五夫镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3552, 350782101, 350782, '兴田镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3553, 350782201, 350782, '吴屯乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3554, 350782202, 350782, '岚谷乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3555, 350782001, 350782, '崇安街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3556, 350782002, 350782, '新丰街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3557, 350782100, 350782, '星村镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3558, 350782003, 350782, '武夷街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3559, 350782203, 350782, '洋庄乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3560, 350702, 350700, '延平区', 2, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3561, 350702105, 350702, '南山镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3562, 350702004, 350702, '四鹤街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3563, 350702109, 350702, '塔前镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3564, 350702102, 350702, '夏道镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3565, 350702106, 350702, '大横镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3566, 350702108, 350702, '太平镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3567, 350702104, 350702, '峡阳镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3568, 350702200, 350702, '巨口乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3569, 350702100, 350702, '来舟镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3570, 350702001, 350702, '梅山街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3571, 350702101, 350702, '樟湖镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3572, 350702006, 350702, '水东街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3573, 350702005, 350702, '水南街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3574, 350702111, 350702, '洋后镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3575, 350702112, 350702, '炉下镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3576, 350702107, 350702, '王台镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3577, 350702003, 350702, '紫云街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3578, 350702110, 350702, '茫荡镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3579, 350702103, 350702, '西芹镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3580, 350702202, 350702, '赤门乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3581, 350702002, 350702, '黄墩街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3582, 350725, 350700, '政和县', 2, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3583, 350725101, 350725, '东平镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3584, 350725201, 350725, '外屯乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3585, 350725204, 350725, '岭腰乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3586, 350725200, 350725, '星溪乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3587, 350725202, 350725, '杨源乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3588, 350725203, 350725, '澄源乡', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3589, 350725001, 350725, '熊山街道', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3590, 350725102, 350725, '石屯镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3591, 350725103, 350725, '铁山镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3592, 350725104, 350725, '镇前镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3593, 350900, 35, '宁德市', 1, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3594, 350981, 350900, '福安市', 2, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3595, 350981102, 350981, '上白石镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3596, 350981108, 350981, '下白石镇', 3, '2022-03-28 15:27:29', '2022-03-28 15:27:29', NULL); +INSERT INTO `address` VALUES (3597, 350981201, 350981, '坂中畲族乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3598, 350981002, 350981, '城北街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3599, 350981004, 350981, '城南街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3600, 350981112, 350981, '城阳镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3601, 350981204, 350981, '康厝畲族乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3602, 350981105, 350981, '晓阳镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3603, 350981206, 350981, '松罗乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3604, 350981111, 350981, '湾坞镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3605, 350981109, 350981, '溪尾镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3606, 350981110, 350981, '溪柄镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3607, 350981106, 350981, '溪潭镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3608, 350981103, 350981, '潭头镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3609, 350981107, 350981, '甘棠镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3610, 350981104, 350981, '社口镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3611, 350981203, 350981, '穆云畲族乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3612, 350981101, 350981, '穆阳镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3613, 350981005, 350981, '罗江街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3614, 350981202, 350981, '范坑乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3615, 350981100, 350981, '赛岐镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3616, 350981003, 350981, '阳头街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3617, 350982, 350900, '福鼎市', 2, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3618, 350982202, 350982, '佳阳乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3619, 350982101, 350982, '前岐镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3620, 350982201, 350982, '叠石乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3621, 350982104, 350982, '太姥山镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3622, 350982003, 350982, '山前街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3623, 350982109, 350982, '嵛山镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3624, 350982103, 350982, '店下镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3625, 350982002, 350982, '桐城街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3626, 350982001, 350982, '桐山街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3627, 350982102, 350982, '沙埕镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3628, 350982107, 350982, '点头镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3629, 350982106, 350982, '白琳镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3630, 350982200, 350982, '硖门畲族乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3631, 350982105, 350982, '磻溪镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3632, 350982108, 350982, '管阳镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3633, 350982100, 350982, '贯岭镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3634, 350922, 350900, '古田县', 2, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3635, 350922204, 350922, '凤埔乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3636, 350922106, 350922, '凤都镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3637, 350922205, 350922, '卓洋乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3638, 350922201, 350922, '吉巷乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3639, 350922001, 350922, '城东街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3640, 350922002, 350922, '城西街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3641, 350922102, 350922, '大桥镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3642, 350922108, 350922, '大甲镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3643, 350922101, 350922, '平湖镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3644, 350922105, 350922, '杉洋镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3645, 350922107, 350922, '水口镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3646, 350922203, 350922, '泮洋乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3647, 350922104, 350922, '鹤塘镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3648, 350922103, 350922, '黄田镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3649, 350902, 350900, '蕉城区', 2, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3650, 350902102, 350902, '七都镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3651, 350902109, 350902, '三都镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3652, 350902500, 350902, '东侨经济开发区', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3653, 350902104, 350902, '九都镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3654, 350902103, 350902, '八都镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3655, 350902100, 350902, '城南镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3656, 350902107, 350902, '洋中镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3657, 350902201, 350902, '洪口乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3658, 350902101, 350902, '漳湾镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3659, 350902202, 350902, '石后乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3660, 350902002, 350902, '蕉北街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3661, 350902001, 350902, '蕉南街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3662, 350902203, 350902, '虎贝镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3663, 350902106, 350902, '赤溪镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3664, 350902200, 350902, '金涵畲族乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3665, 350902105, 350902, '霍童镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3666, 350902108, 350902, '飞鸾镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3667, 350923, 350900, '屏南县', 2, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3668, 350923102, 350923, '代溪镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3669, 350923101, 350923, '双溪镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3670, 350923100, 350923, '古峰镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3671, 350923205, 350923, '寿山乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3672, 350923200, 350923, '屏城乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3673, 350923206, 350923, '岭下乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3674, 350923201, 350923, '棠口镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3675, 350923203, 350923, '熙岭乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3676, 350923202, 350923, '甘棠乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3677, 350923204, 350923, '路下乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3678, 350923103, 350923, '长桥镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3679, 350924, 350900, '寿宁县', 2, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3680, 350924209, 350924, '下党乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3681, 350924208, 350924, '凤阳镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3682, 350924102, 350924, '南阳镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3683, 350924201, 350924, '坑底乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3684, 350924200, 350924, '大安乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3685, 350924207, 350924, '平溪乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3686, 350924206, 350924, '托溪乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3687, 350924101, 350924, '斜滩镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3688, 350924103, 350924, '武曲镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3689, 350924202, 350924, '清源镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3690, 350924104, 350924, '犀溪镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3691, 350924203, 350924, '竹管垅乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3692, 350924205, 350924, '芹洋乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3693, 350924100, 350924, '鳌阳镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3694, 350921, 350900, '霞浦县', 2, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3695, 350921106, 350921, '三沙镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3696, 350921105, 350921, '下浒镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3697, 350921204, 350921, '北壁乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3698, 350921202, 350921, '崇儒畲族乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3699, 350921001, 350921, '松城街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3700, 350921206, 350921, '松山街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3701, 350921002, 350921, '松港街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3702, 350921203, 350921, '柏洋乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3703, 350921201, 350921, '水门畲族乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3704, 350921104, 350921, '沙江镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3705, 350921205, 350921, '海岛乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3706, 350921103, 350921, '溪南镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3707, 350921102, 350921, '牙城镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3708, 350921200, 350921, '盐田畲族乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3709, 350921101, 350921, '长春镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3710, 350926, 350900, '柘荣县', 2, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3711, 350926202, 350926, '东源乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3712, 350926201, 350926, '乍洋乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3713, 350926100, 350926, '双城镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3714, 350926200, 350926, '城郊乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3715, 350926204, 350926, '宅中乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3716, 350926101, 350926, '富溪镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3717, 350926205, 350926, '楮坪乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3718, 350926206, 350926, '英山乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3719, 350926203, 350926, '黄柏乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3720, 350925, 350900, '周宁县', 2, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3721, 350925103, 350925, '七步镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3722, 350925101, 350925, '咸村镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3723, 350925104, 350925, '李墩镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3724, 350925200, 350925, '泗桥乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3725, 350925102, 350925, '浦源镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3726, 350925100, 350925, '狮城镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3727, 350925202, 350925, '玛坑乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3728, 350925201, 350925, '礼门乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3729, 350925105, 350925, '纯池镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3730, 350300, 35, '莆田市', 1, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3731, 350302, 350300, '城厢区', 2, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3732, 350302103, 350302, '东海镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3733, 350302002, 350302, '凤凰山街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3734, 350302101, 350302, '华亭镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3735, 350302100, 350302, '常太镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3736, 350302102, 350302, '灵川镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3737, 350302003, 350302, '霞林街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3738, 350302001, 350302, '龙桥街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3739, 350303, 350300, '涵江区', 2, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3740, 350303100, 350303, '三江口镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3741, 350303102, 350303, '国欢镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3742, 350303200, 350303, '大洋乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3743, 350303107, 350303, '庄边镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3744, 350303108, 350303, '新县镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3745, 350303103, 350303, '梧塘镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3746, 350303104, 350303, '江口镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3747, 350303001, 350303, '涵东街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3748, 350303002, 350303, '涵西街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3749, 350303101, 350303, '白塘镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3750, 350303106, 350303, '白沙镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3751, 350303105, 350303, '萩芦镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3752, 350304, 350300, '荔城区', 2, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3753, 350304103, 350304, '北高镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3754, 350304002, 350304, '拱辰街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3755, 350304102, 350304, '新度镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3756, 350304100, 350304, '西天尾镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3757, 350304001, 350304, '镇海街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3758, 350304101, 350304, '黄石镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3759, 350322, 350300, '仙游县', 2, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3760, 350322203, 350322, '书峰乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3761, 350322107, 350322, '园庄镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3762, 350322108, 350322, '大济镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3763, 350322103, 350322, '度尾镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3764, 350322100, 350322, '枫亭镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3765, 350322101, 350322, '榜头镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3766, 350322111, 350322, '游洋镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3767, 350322106, 350322, '盖尾镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3768, 350322201, 350322, '石苍乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3769, 350322202, 350322, '社硎乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3770, 350322204, 350322, '菜溪乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3771, 350322200, 350322, '西苑乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3772, 350322105, 350322, '赖店镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3773, 350322102, 350322, '郊尾镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3774, 350322110, 350322, '钟山镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3775, 350322104, 350322, '鲤南镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3776, 350322001, 350322, '鲤城街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3777, 350322109, 350322, '龙华镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3778, 350305, 350300, '秀屿区', 2, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3779, 350305103, 350305, '东埔镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3780, 350305104, 350305, '东峤镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3781, 350305101, 350305, '东庄镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3782, 350305107, 350305, '南日镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3783, 350305105, 350305, '埭头镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3784, 350305109, 350305, '山亭镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3785, 350305106, 350305, '平海镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3786, 350305102, 350305, '忠门镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3787, 350305200, 350305, '月塘镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3788, 350305108, 350305, '湄洲镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3789, 350305100, 350305, '笏石镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3790, 350500, 35, '泉州市', 1, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3791, 350524, 350500, '安溪县', 2, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3792, 350524100, 350524, '凤城镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3793, 350524104, 350524, '剑斗镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3794, 350524200, 350524, '参内镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3795, 350524105, 350524, '城厢镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3796, 350524204, 350524, '大坪乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3797, 350524103, 350524, '官桥镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3798, 350524203, 350524, '尚卿乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3799, 350524110, 350524, '感德镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3800, 350524209, 350524, '桃舟乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3801, 350524202, 350524, '湖上乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3802, 350524102, 350524, '湖头镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3803, 350524201, 350524, '白濑乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3804, 350524208, 350524, '祥华乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3805, 350524210, 350524, '福田乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3806, 350524109, 350524, '芦田镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3807, 350524207, 350524, '蓝田乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3808, 350524101, 350524, '蓬莱镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3809, 350524108, 350524, '虎邱镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3810, 350524112, 350524, '西坪镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3811, 350524106, 350524, '金谷镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3812, 350524206, 350524, '长卿镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3813, 350524111, 350524, '魁斗镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3814, 350524205, 350524, '龙涓乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3815, 350524107, 350524, '龙门镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3816, 350526, 350500, '德化县', 2, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3817, 350526102, 350526, '三班镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3818, 350526108, 350526, '上涌镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3819, 350526105, 350526, '南埕镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3820, 350526206, 350526, '国宝乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3821, 350526208, 350526, '大铭乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3822, 350526209, 350526, '春美乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3823, 350526200, 350526, '杨梅乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3824, 350526204, 350526, '桂阳乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3825, 350526106, 350526, '水口镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3826, 350526202, 350526, '汤头乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3827, 350526100, 350526, '浔中镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3828, 350526110, 350526, '盖德镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3829, 350526207, 350526, '美湖乡', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3830, 350526109, 350526, '葛坑镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3831, 350526107, 350526, '赤水镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3832, 350526104, 350526, '雷峰镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3833, 350526101, 350526, '龙浔镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3834, 350526103, 350526, '龙门滩镇', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3835, 350503, 350500, '丰泽区', 2, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3836, 350503007, 350503, '东海街道', 3, '2022-03-28 15:27:30', '2022-03-28 15:27:30', NULL); +INSERT INTO `address` VALUES (3837, 350503001, 350503, '东湖街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3838, 350503002, 350503, '丰泽街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3839, 350503008, 350503, '北峰街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3840, 350503005, 350503, '华大街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3841, 350503006, 350503, '城东街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3842, 350503003, 350503, '泉秀街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3843, 350503004, 350503, '清源街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3844, 350521, 350500, '惠安县', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3845, 350521105, 350521, '东园镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3846, 350521110, 350521, '东岭镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3847, 350521111, 350521, '东桥镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3848, 350521112, 350521, '净峰镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3849, 350521113, 350521, '小岞镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3850, 350521108, 350521, '山霞镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3851, 350521107, 350521, '崇武镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3852, 350521106, 350521, '张坂镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3853, 350521104, 350521, '洛阳镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3854, 350521109, 350521, '涂寨镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3855, 350521200, 350521, '百崎回族乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3856, 350521103, 350521, '紫山镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3857, 350521100, 350521, '螺城镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3858, 350521101, 350521, '螺阳镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3859, 350521114, 350521, '辋川镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3860, 350521102, 350521, '黄塘镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3861, 350582, 350500, '晋江市', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3862, 350582104, 350582, '东石镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3863, 350582109, 350582, '内坑镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3864, 350582101, 350582, '安海镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3865, 350582005, 350582, '新塘街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3866, 350582002, 350582, '梅岭街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3867, 350582111, 350582, '永和镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3868, 350582107, 350582, '池店镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3869, 350582105, 350582, '深沪镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3870, 350582006, 350582, '灵源街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3871, 350582102, 350582, '磁灶镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3872, 350582113, 350582, '紫帽镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3873, 350582004, 350582, '罗山街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3874, 350582112, 350582, '英林镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3875, 350582003, 350582, '西园街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3876, 350582114, 350582, '西滨镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3877, 350582106, 350582, '金井镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3878, 350582103, 350582, '陈埭镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3879, 350582001, 350582, '青阳街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3880, 350582110, 350582, '龙湖镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3881, 350527, 350500, '金门县', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3882, 350527001, 350527, '烈屿乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3883, 350527002, 350527, '金城镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3884, 350527003, 350527, '金宁乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3885, 350527004, 350527, '金沙镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3886, 350527005, 350527, '金湖镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3887, 350502, 350500, '鲤城区', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3888, 350502002, 350502, '临江街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3889, 350502008, 350502, '常泰街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3890, 350502004, 350502, '开元街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3891, 350502006, 350502, '江南街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3892, 350502005, 350502, '浮桥街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3893, 350502001, 350502, '海滨街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3894, 350502007, 350502, '金龙街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3895, 350502003, 350502, '鲤中街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3896, 350504, 350500, '洛江区', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3897, 350504001, 350504, '万安街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3898, 350504002, 350504, '双阳街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3899, 350504102, 350504, '河市镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3900, 350504100, 350504, '罗溪镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3901, 350504200, 350504, '虹山乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3902, 350504101, 350504, '马甲镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3903, 350583, 350500, '南安市', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3904, 350583102, 350583, '东田镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3905, 350583116, 350583, '丰州镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3906, 350583110, 350583, '乐峰镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3907, 350583109, 350583, '九都镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3908, 350583101, 350583, '仑苍镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3909, 350583201, 350583, '向阳乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3910, 350583118, 350583, '官桥镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3911, 350583115, 350583, '康美镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3912, 350583002, 350583, '柳城街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3913, 350583112, 350583, '梅山镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3914, 350583119, 350583, '水头镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3915, 350583114, 350583, '洪梅镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3916, 350583113, 350583, '洪濑镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3917, 350583001, 350583, '溪美街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3918, 350583100, 350583, '省新镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3919, 350583200, 350583, '眉山乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3920, 350583120, 350583, '石井镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3921, 350583108, 350583, '码头镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3922, 350583111, 350583, '罗东镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3923, 350583003, 350583, '美林街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3924, 350583104, 350583, '翔云镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3925, 350583103, 350583, '英都镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3926, 350583107, 350583, '蓬华镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3927, 350583106, 350583, '诗山镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3928, 350583105, 350583, '金淘镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3929, 350583117, 350583, '霞美镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3930, 350505, 350500, '泉港区', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3931, 350505105, 350505, '前黄镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3932, 350505100, 350505, '南埔镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3933, 350505102, 350505, '后龙镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3934, 350505001, 350505, '山腰街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3935, 350505103, 350505, '峰尾镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3936, 350505106, 350505, '涂岭镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3937, 350505101, 350505, '界山镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3938, 350581, 350500, '石狮市', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3939, 350581002, 350581, '凤里街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3940, 350581101, 350581, '宝盖镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3941, 350581106, 350581, '永宁镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3942, 350581001, 350581, '湖滨街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3943, 350581100, 350581, '灵秀镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3944, 350581103, 350581, '祥芝镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3945, 350581102, 350581, '蚶江镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3946, 350581105, 350581, '锦尚镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3947, 350581104, 350581, '鸿山镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3948, 350525, 350500, '永春县', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3949, 350525102, 350525, '一都镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3950, 350525103, 350525, '下洋镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3951, 350525114, 350525, '东关镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3952, 350525109, 350525, '东平镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3953, 350525101, 350525, '五里街镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3954, 350525202, 350525, '介福乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3955, 350525117, 350525, '仙夹镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3956, 350525106, 350525, '吾峰镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3957, 350525201, 350525, '呈祥乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3958, 350525111, 350525, '坑仔口镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3959, 350525204, 350525, '外山乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3960, 350525108, 350525, '岵山镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3961, 350525115, 350525, '桂洋镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3962, 350525100, 350525, '桃城镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3963, 350525200, 350525, '横口乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3964, 350525110, 350525, '湖洋镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3965, 350525112, 350525, '玉斗镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3966, 350525107, 350525, '石鼓镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3967, 350525116, 350525, '苏坑镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3968, 350525104, 350525, '蓬壶镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3969, 350525105, 350525, '达埔镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3970, 350525113, 350525, '锦斗镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3971, 350400, 35, '三明市', 1, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3972, 350425, 350400, '大田县', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3973, 350425102, 350425, '上京镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3974, 350425209, 350425, '前坪乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3975, 350425200, 350425, '华兴镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3976, 350425202, 350425, '吴山镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3977, 350425100, 350425, '均溪镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3978, 350425105, 350425, '太华镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3979, 350425107, 350425, '奇韬镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3980, 350425201, 350425, '屏山乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3981, 350425103, 350425, '广平镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3982, 350425106, 350425, '建设镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3983, 350425206, 350425, '文江镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3984, 350425104, 350425, '桃源镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3985, 350425207, 350425, '梅山镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3986, 350425204, 350425, '武陵乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3987, 350425203, 350425, '济阳乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3988, 350425208, 350425, '湖美乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3989, 350425101, 350425, '石牌镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3990, 350425205, 350425, '谢洋乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3991, 350428, 350400, '将乐县', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3992, 350428203, 350428, '万全乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3993, 350428101, 350428, '万安镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3994, 350428206, 350428, '余坊乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3995, 350428200, 350428, '光明镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3996, 350428202, 350428, '南口镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3997, 350428100, 350428, '古镛镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3998, 350428205, 350428, '大源乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (3999, 350428204, 350428, '安仁乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4000, 350428105, 350428, '水南镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4001, 350428201, 350428, '漠源乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4002, 350428103, 350428, '白莲镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4003, 350428102, 350428, '高唐镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4004, 350428104, 350428, '黄潭镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4005, 350430, 350400, '建宁县', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4006, 350430201, 350430, '伊家乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4007, 350430103, 350430, '均口镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4008, 350430204, 350430, '客坊乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4009, 350430102, 350430, '溪口镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4010, 350430203, 350430, '溪源乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4011, 350430104, 350430, '濉溪镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4012, 350430101, 350430, '里心镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4013, 350430202, 350430, '黄坊乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4014, 350430205, 350430, '黄埠乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4015, 350402, 350400, '梅列区', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4016, 350402001, 350402, '列东街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4017, 350402002, 350402, '列西街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4018, 350402003, 350402, '徐碧街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4019, 350402101, 350402, '洋溪镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4020, 350402100, 350402, '陈大镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4021, 350421, 350400, '明溪县', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4022, 350421200, 350421, '城关乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4023, 350421204, 350421, '夏坊乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4024, 350421202, 350421, '夏阳乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4025, 350421203, 350421, '枫溪乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4026, 350421201, 350421, '沙溪乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4027, 350421103, 350421, '瀚仙镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4028, 350421101, 350421, '盖洋镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4029, 350421102, 350421, '胡坊镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4030, 350421100, 350421, '雪峰镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4031, 350424, 350400, '宁化县', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4032, 350424208, 350424, '中沙乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4033, 350424201, 350424, '城南镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4034, 350424200, 350424, '城郊镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4035, 350424205, 350424, '安乐镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4036, 350424105, 350424, '安远镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4037, 350424204, 350424, '方田乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4038, 350424104, 350424, '曹坊镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4039, 350424210, 350424, '水茜镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4040, 350424209, 350424, '河龙乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4041, 350424207, 350424, '治平畲族乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4042, 350424101, 350424, '泉上镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4043, 350424202, 350424, '济村乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4044, 350424203, 350424, '淮土镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4045, 350424102, 350424, '湖村镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4046, 350424103, 350424, '石壁镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4047, 350424100, 350424, '翠江镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4048, 350423, 350400, '清流县', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4049, 350423206, 350423, '余朋乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4050, 350423102, 350423, '嵩口镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4051, 350423101, 350423, '嵩溪镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4052, 350423208, 350423, '李家乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4053, 350423202, 350423, '林畲镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4054, 350423204, 350423, '沙芜乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4055, 350423201, 350423, '温郊乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4056, 350423103, 350423, '灵地镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4057, 350423203, 350423, '田源乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4058, 350423205, 350423, '赖坊镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4059, 350423209, 350423, '里田乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4060, 350423104, 350423, '长校镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4061, 350423100, 350423, '龙津镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4062, 350403, 350400, '三元区', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4063, 350403201, 350403, '中村乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4064, 350403001, 350403, '城关街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4065, 350403003, 350403, '富兴堡街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4066, 350403101, 350403, '岩前镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4067, 350403002, 350403, '白沙街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4068, 350403004, 350403, '荆西街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4069, 350403100, 350403, '莘口镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4070, 350427, 350400, '沙县区', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4071, 350427001, 350427, '凤岗街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4072, 350427203, 350427, '南阳乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4073, 350427201, 350427, '南霞乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4074, 350427102, 350427, '夏茂镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4075, 350427107, 350427, '大洛镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4076, 350427106, 350427, '富口镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4077, 350427205, 350427, '湖源乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4078, 350427002, 350427, '虬江街道', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4079, 350427204, 350427, '郑湖乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4080, 350427101, 350427, '青州镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4081, 350427105, 350427, '高桥镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4082, 350427104, 350427, '高砂镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4083, 350429, 350400, '泰宁县', 2, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4084, 350429201, 350429, '上青乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4085, 350429204, 350429, '下渠镇', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4086, 350429202, 350429, '大田乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4087, 350429208, 350429, '大龙乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4088, 350429205, 350429, '开善乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4089, 350429200, 350429, '新桥乡', 3, '2022-03-28 15:27:31', '2022-03-28 15:27:31', NULL); +INSERT INTO `address` VALUES (4090, 350429101, 350429, '朱口镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4091, 350429100, 350429, '杉城镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4092, 350429203, 350429, '梅口乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4093, 350481, 350400, '永安市', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4094, 350481202, 350481, '上坪乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4095, 350481104, 350481, '大湖镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4096, 350481102, 350481, '安砂镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4097, 350481103, 350481, '小陶镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4098, 350481105, 350481, '曹远镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4099, 350481107, 350481, '槐南镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4100, 350481106, 350481, '洪田镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4101, 350481001, 350481, '燕东街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4102, 350481004, 350481, '燕北街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4103, 350481003, 350481, '燕南街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4104, 350481002, 350481, '燕西街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4105, 350481203, 350481, '罗坊乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4106, 350481100, 350481, '西洋镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4107, 350481101, 350481, '贡川镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4108, 350481204, 350481, '青水乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4109, 350426, 350400, '尤溪县', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4110, 350426203, 350426, '中仙乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4111, 350426206, 350426, '八字桥乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4112, 350426204, 350426, '台溪乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4113, 350426108, 350426, '坂面镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4114, 350426100, 350426, '城关镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4115, 350426107, 350426, '尤溪口镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4116, 350426104, 350426, '新阳镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4117, 350426101, 350426, '梅仙镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4118, 350426201, 350426, '汤川乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4119, 350426103, 350426, '洋中镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4120, 350426202, 350426, '溪尾乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4121, 350426105, 350426, '管前镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4122, 350426200, 350426, '联合镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4123, 350426106, 350426, '西城镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4124, 350426102, 350426, '西滨镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4125, 350200, 35, '厦门市', 1, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4126, 350205, 350200, '海沧区', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4127, 350205103, 350205, '东孚街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4128, 350205401, 350205, '厦门市第一农场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4129, 350205404, 350205, '嵩屿街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4130, 350205002, 350205, '新阳街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4131, 350205402, 350205, '海沧农场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4132, 350205001, 350205, '海沧街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4133, 350206, 350200, '湖里区', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4134, 350206002, 350206, '殿前街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4135, 350206004, 350206, '江头街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4136, 350206001, 350206, '湖里街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4137, 350206003, 350206, '禾山街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4138, 350206005, 350206, '金山街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4139, 350211, 350200, '集美区', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4140, 350211002, 350211, '侨英街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4141, 350211103, 350211, '后溪镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4142, 350211404, 350211, '坂头防护林场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4143, 350211003, 350211, '杏林街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4144, 350211004, 350211, '杏滨街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4145, 350211102, 350211, '灌口镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4146, 350211001, 350211, '集美街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4147, 350203, 350200, '思明区', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4148, 350203003, 350203, '中华街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4149, 350203001, 350203, '厦港街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4150, 350203011, 350203, '嘉莲街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4151, 350203007, 350203, '开元街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4152, 350203008, 350203, '梧村街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4153, 350203005, 350203, '滨海街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4154, 350203009, 350203, '筼筜街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4155, 350203010, 350203, '莲前街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4156, 350203006, 350203, '鹭江街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4157, 350203012, 350203, '鼓浪屿街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4158, 350212, 350200, '同安区', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4159, 350212110, 350212, '五显镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4160, 350212401, 350212, '凤南农场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4161, 350212001, 350212, '大同街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4162, 350212106, 350212, '新民镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4163, 350212109, 350212, '汀溪镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4164, 350212107, 350212, '洪塘镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4165, 350212402, 350212, '白沙仑农场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4166, 350212002, 350212, '祥平街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4167, 350212105, 350212, '莲花镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4168, 350212108, 350212, '西柯镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4169, 350213, 350200, '翔安区', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4170, 350213111, 350213, '内厝镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4171, 350213001, 350213, '大嶝街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4172, 350213404, 350213, '大帽山农场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4173, 350213103, 350213, '新圩镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4174, 350213104, 350213, '新店街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4175, 350213112, 350213, '马巷街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4176, 350600, 35, '漳州市', 1, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4177, 350625, 350600, '长泰区', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4178, 350625400, 350625, '国营古农农场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4179, 350625200, 350625, '坂里乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4180, 350625101, 350625, '岩溪镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4181, 350625103, 350625, '枋洋镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4182, 350625502, 350625, '林墩工业区', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4183, 350625100, 350625, '武安镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4184, 350625500, 350625, '福建长泰经济开发区', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4185, 350625102, 350625, '陈巷镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4186, 350625501, 350625, '马洋溪生态旅游区', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4187, 350626, 350600, '东山县', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4188, 350626105, 350626, '前楼镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4189, 350626102, 350626, '康美镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4190, 350626103, 350626, '杏陈镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4191, 350626101, 350626, '樟塘镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4192, 350626100, 350626, '西埔镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4193, 350626106, 350626, '铜陵镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4194, 350626104, 350626, '陈城镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4195, 350629, 350600, '华安县', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4196, 350629101, 350629, '丰山镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4197, 350629105, 350629, '仙都镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4198, 350629100, 350629, '华丰镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4199, 350629103, 350629, '新圩镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4200, 350629102, 350629, '沙建镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4201, 350629203, 350629, '湖林乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4202, 350629201, 350629, '马坑乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4203, 350629104, 350629, '高安镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4204, 350629200, 350629, '高车乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4205, 350681, 350600, '龙海区', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4206, 350681111, 350681, '东园镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4207, 350681200, 350681, '东泗乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4208, 350681107, 350681, '九湖镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4209, 350681401, 350681, '九龙岭林场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4210, 350681400, 350681, '双第华侨农场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4211, 350681109, 350681, '榜山镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4212, 350681104, 350681, '浮宫镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4213, 350681101, 350681, '海澄镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4214, 350681106, 350681, '港尾镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4215, 350681103, 350681, '白水镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4216, 350681112, 350681, '石码镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4217, 350681105, 350681, '程溪镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4218, 350681110, 350681, '紫泥镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4219, 350681102, 350681, '角美镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4220, 350681201, 350681, '隆教畲族乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4221, 350681108, 350681, '颜厝镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4222, 350603, 350600, '龙文区', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4223, 350603502, 350603, '景山街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4224, 350603102, 350603, '朝阳街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4225, 350603101, 350603, '步文街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4226, 350603501, 350603, '碧湖街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4227, 350603100, 350603, '蓝田街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4228, 350603103, 350603, '郭坑镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4229, 350627, 350600, '南靖县', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4230, 350627101, 350627, '丰田镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4231, 350627108, 350627, '书洋镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4232, 350627110, 350627, '南坑镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4233, 350627105, 350627, '和溪镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4234, 350627400, 350627, '大房农场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4235, 350627106, 350627, '奎洋镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4236, 350627100, 350627, '山城镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4237, 350627107, 350627, '梅林镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4238, 350627109, 350627, '船场镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4239, 350627104, 350627, '金山镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4240, 350627102, 350627, '靖城镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4241, 350627103, 350627, '龙山镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4242, 350628, 350600, '平和县', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4243, 350628108, 350628, '九峰镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4244, 350628200, 350628, '五寨乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4245, 350628103, 350628, '南胜镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4246, 350628201, 350628, '国强乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4247, 350628104, 350628, '坂仔镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4248, 350628106, 350628, '大溪镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4249, 350628105, 350628, '安厚镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4250, 350628100, 350628, '小溪镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4251, 350628101, 350628, '山格镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4252, 350628202, 350628, '崎岭乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4253, 350628102, 350628, '文峰镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4254, 350628204, 350628, '秀峰乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4255, 350628109, 350628, '芦溪镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4256, 350628203, 350628, '长乐乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4257, 350628107, 350628, '霞寨镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4258, 350602, 350600, '芗城区', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4259, 350602001, 350602, '东铺头街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4260, 350602005, 350602, '南坑街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4261, 350602014, 350602, '后房农场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4262, 350602012, 350602, '天宝林场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4263, 350602009, 350602, '天宝镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4264, 350602004, 350602, '巷口街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4265, 350602003, 350602, '新桥街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4266, 350602008, 350602, '浦南镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4267, 350602011, 350602, '石亭镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4268, 350602010, 350602, '芝山镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4269, 350602002, 350602, '西桥街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4270, 350602006, 350602, '通北街道', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4271, 350622, 350600, '云霄县', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4272, 350622200, 350622, '下河乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4273, 350622102, 350622, '东厦镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4274, 350622501, 350622, '云陵工业开发区', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4275, 350622100, 350622, '云陵镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4276, 350622104, 350622, '列屿镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4277, 350622202, 350622, '和平乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4278, 350622500, 350622, '常山华侨经济开发区', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4279, 350622105, 350622, '火田镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4280, 350622103, 350622, '莆美镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4281, 350622101, 350622, '陈岱镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4282, 350622201, 350622, '马铺乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4283, 350623, 350600, '漳浦县', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4284, 350623408, 350623, '下蔡林场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4285, 350623406, 350623, '中西林场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4286, 350623102, 350623, '佛昙镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4287, 350623113, 350623, '六鳌镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4288, 350623110, 350623, '前亭镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4289, 350623405, 350623, '南山华侨茶果场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4290, 350623200, 350623, '南浦乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4291, 350623115, 350623, '古雷镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4292, 350623116, 350623, '大南坂镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4293, 350623106, 350623, '官浔镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4294, 350623101, 350623, '旧镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4295, 350623104, 350623, '杜浔镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4296, 350623114, 350623, '沙西镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4297, 350623112, 350623, '深土镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4298, 350623202, 350623, '湖西畲族乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4299, 350623401, 350623, '漳浦万安农场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4300, 350623404, 350623, '漳浦白竹湖农场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4301, 350623403, 350623, '漳浦长桥农场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4302, 350623108, 350623, '盘陀镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4303, 350623402, 350623, '石古农场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4304, 350623107, 350623, '石榴镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4305, 350623100, 350623, '绥安镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4306, 350623203, 350623, '赤土乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4307, 350623201, 350623, '赤岭畲族乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4308, 350623103, 350623, '赤湖镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4309, 350623109, 350623, '长桥镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4310, 350623105, 350623, '霞美镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4311, 350623111, 350623, '马坪镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4312, 350624, 350600, '诏安县', 2, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4313, 350624100, 350624, '南诏镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4314, 350624101, 350624, '四都镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4315, 350624401, 350624, '国营西山农场', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4316, 350624105, 350624, '太平镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4317, 350624107, 350624, '官陂镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4318, 350624203, 350624, '建设乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4319, 350624103, 350624, '桥东镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4320, 350624102, 350624, '梅岭镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4321, 350624205, 350624, '梅洲乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4322, 350624104, 350624, '深桥镇', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4323, 350624202, 350624, '白洋乡', 3, '2022-03-28 15:27:32', '2022-03-28 15:27:32', NULL); +INSERT INTO `address` VALUES (4324, 350624108, 350624, '秀篆镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4325, 350624204, 350624, '红星乡', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4326, 350624201, 350624, '西潭镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4327, 350624500, 350624, '诏安工业园区', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4328, 350624200, 350624, '金星乡', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4329, 350624106, 350624, '霞葛镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4330, 44, 0, '广东省', 0, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4331, 445100, 44, '潮州市', 1, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4332, 445103, 445100, '潮安区', 2, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4333, 445103400, 445103, '万峰林场', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4334, 445103109, 445103, '东凤镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4335, 445103117, 445103, '凤凰镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4336, 445103103, 445103, '凤塘镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4337, 445103100, 445103, '古巷镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4338, 445103110, 445103, '庵埠镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4339, 445103115, 445103, '归湖镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4340, 445103108, 445103, '彩塘镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4341, 445103116, 445103, '文祠镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4342, 445103401, 445103, '枫溪镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4343, 445103114, 445103, '江东镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4344, 445103107, 445103, '沙溪镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4345, 445103104, 445103, '浮洋镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4346, 445103101, 445103, '登塘镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4347, 445103120, 445103, '赤凤镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4348, 445103106, 445103, '金石镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4349, 445103105, 445103, '龙湖镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4350, 445122, 445100, '饶平县', 2, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4351, 445122107, 445122, '三饶镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4352, 445122102, 445122, '上饶镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4353, 445122113, 445122, '东山镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4354, 445122121, 445122, '大埕镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4355, 445122106, 445122, '建饶镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4356, 445122120, 445122, '所城镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4357, 445122104, 445122, '新丰镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4358, 445122114, 445122, '新圩镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4359, 445122108, 445122, '新塘镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4360, 445122122, 445122, '柘林镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4361, 445122116, 445122, '樟溪镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4362, 445122109, 445122, '汤溪镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4363, 445122123, 445122, '汫洲镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4364, 445122112, 445122, '浮山镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4365, 445122110, 445122, '浮滨镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4366, 445122124, 445122, '海山镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4367, 445122119, 445122, '联饶镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4368, 445122117, 445122, '钱东镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4369, 445122400, 445122, '韩江林场', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4370, 445122103, 445122, '饶洋镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4371, 445122118, 445122, '高堂镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4372, 445122100, 445122, '黄冈镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4373, 445102, 445100, '湘桥区', 2, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4374, 445102009, 445102, '凤新街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4375, 445102005, 445102, '南春街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4376, 445102008, 445102, '城西街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4377, 445102004, 445102, '太平街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4378, 445102101, 445102, '官塘镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4379, 445102100, 445102, '意溪镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4380, 445102007, 445102, '桥东街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4381, 445102001, 445102, '湘桥街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4382, 445102102, 445102, '磷溪镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4383, 445102006, 445102, '西新街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4384, 445102002, 445102, '西湖街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4385, 445102003, 445102, '金山街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4386, 445102103, 445102, '铁铺镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4387, 441900, 441900, '东莞市', 2, '2022-03-28 15:27:33', '2022-03-29 10:35:47', NULL); +INSERT INTO `address` VALUES (4388, 441900005, 441900, '万江街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4389, 441900109, 441900, '东坑镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4390, 441900003, 441900, '东城街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4391, 441900128, 441900, '中堂镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4392, 441900105, 441900, '企石镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4393, 441900117, 441900, '凤岗镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4394, 441900004, 441900, '南城街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4395, 441900122, 441900, '厚街镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4396, 441900116, 441900, '塘厦镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4397, 441900118, 441900, '大岭山镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4398, 441900113, 441900, '大朗镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4399, 441900111, 441900, '寮步镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4400, 441900110, 441900, '常平镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4401, 441900127, 441900, '望牛墩镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4402, 441900107, 441900, '桥头镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4403, 441900112, 441900, '樟木头镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4404, 441900106, 441900, '横沥镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4405, 441900123, 441900, '沙田镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4406, 441900125, 441900, '洪梅镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4407, 441900115, 441900, '清溪镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4408, 441900104, 441900, '石排镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4409, 441900101, 441900, '石碣镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4410, 441900102, 441900, '石龙镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4411, 441900103, 441900, '茶山镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4412, 441900006, 441900, '莞城街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4413, 441900121, 441900, '虎门镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4414, 441900108, 441900, '谢岗镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4415, 441900124, 441900, '道滘镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4416, 441900119, 441900, '长安镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4417, 441900129, 441900, '高埗镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4418, 441900126, 441900, '麻涌镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4419, 441900114, 441900, '黄江镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4420, 440600, 44, '佛山市', 1, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4421, 440604, 440600, '禅城区', 2, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4422, 440604100, 440604, '南庄镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4423, 440604011, 440604, '张槎街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4424, 440604010, 440604, '石湾镇街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4425, 440604012, 440604, '祖庙街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4426, 440606, 440600, '顺德区', 2, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4427, 440606103, 440606, '乐从镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4428, 440606003, 440606, '伦教街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4429, 440606004, 440606, '勒流街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4430, 440606102, 440606, '北滘镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4431, 440606106, 440606, '均安镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4432, 440606005, 440606, '大良街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4433, 440606006, 440606, '容桂街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4434, 440606105, 440606, '杏坛镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4435, 440606101, 440606, '陈村镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4436, 440606104, 440606, '龙江镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4437, 440608, 440600, '高明区', 2, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4438, 440608107, 440608, '明城镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4439, 440608108, 440608, '更合镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4440, 440608106, 440608, '杨和镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4441, 440608004, 440608, '荷城街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4442, 440605, 440600, '南海区', 2, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4443, 440605123, 440605, '丹灶镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4444, 440605121, 440605, '九江镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4445, 440605125, 440605, '大沥镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4446, 440605011, 440605, '桂城街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4447, 440605124, 440605, '狮山镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4448, 440605122, 440605, '西樵镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4449, 440605126, 440605, '里水镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4450, 440607, 440600, '三水区', 2, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4451, 440607103, 440607, '乐平镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4452, 440607004, 440607, '云东海街道', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4453, 440607106, 440607, '南山镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4454, 440607101, 440607, '大塘镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4455, 440607104, 440607, '白坭镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4456, 440607105, 440607, '芦苞镇', 3, '2022-03-28 15:27:33', '2022-03-28 15:27:33', NULL); +INSERT INTO `address` VALUES (4457, 440607001, 440607, '西南街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4458, 440100, 44, '广州市', 1, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4459, 440111, 440100, '白云区', 2, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4460, 440111002, 440111, '三元里街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4461, 440111016, 440111, '云城街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4462, 440111010, 440111, '京溪街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4463, 440111103, 440111, '人和镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4464, 440111009, 440111, '同和街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4465, 440111005, 440111, '同德街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4466, 440111012, 440111, '嘉禾街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4467, 440111013, 440111, '均禾街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4468, 440111115, 440111, '大源街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4469, 440111107, 440111, '太和镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4470, 440111008, 440111, '新市街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4471, 440111004, 440111, '景泰街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4472, 440111003, 440111, '松洲街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4473, 440111007, 440111, '棠景街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4474, 440111011, 440111, '永平街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4475, 440111113, 440111, '江高镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4476, 440111018, 440111, '白云湖街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4477, 440111014, 440111, '石井街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4478, 440111019, 440111, '石门街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4479, 440111015, 440111, '金沙街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4480, 440111108, 440111, '钟落潭镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4481, 440111017, 440111, '鹤龙街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4482, 440111006, 440111, '黄石街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4483, 440111114, 440111, '龙归街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4484, 440105, 440100, '海珠区', 2, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4485, 440105012, 440105, '凤阳街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4486, 440105017, 440105, '华洲街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4487, 440105008, 440105, '南华西街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4488, 440105016, 440105, '南洲街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4489, 440105011, 440105, '南石头街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4490, 440105018, 440105, '官洲街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4491, 440105002, 440105, '新港街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4492, 440105003, 440105, '昌岗街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4493, 440105004, 440105, '江南中街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4494, 440105014, 440105, '江海街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4495, 440105010, 440105, '沙园街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4496, 440105007, 440105, '海幢街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4497, 440105005, 440105, '滨江街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4498, 440105015, 440105, '琶洲街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4499, 440105013, 440105, '瑞宝街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4500, 440105006, 440105, '素社街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4501, 440105001, 440105, '赤岗街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4502, 440105009, 440105, '龙凤街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4503, 440114, 440100, '花都区', 2, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4504, 440114001, 440114, '新华街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4505, 440114005, 440114, '新雅街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4506, 440114103, 440114, '梯面镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4507, 440114107, 440114, '炭步镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4508, 440114109, 440114, '狮岭镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4509, 440114003, 440114, '秀全街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4510, 440114105, 440114, '花东镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4511, 440114004, 440114, '花城街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4512, 440114104, 440114, '花山镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4513, 440114108, 440114, '赤坭镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4514, 440112, 440100, '黄埔区', 2, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4515, 440112103, 440112, '九佛街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4516, 440112003, 440112, '云埔街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4517, 440112011, 440112, '南岗街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4518, 440112001, 440112, '夏港街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4519, 440112009, 440112, '大沙街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4520, 440112010, 440112, '文冲街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4521, 440112104, 440112, '新龙镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4522, 440112005, 440112, '永和街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4523, 440112013, 440112, '穗东街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4524, 440112007, 440112, '红山街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4525, 440112004, 440112, '联和街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4526, 440112002, 440112, '萝岗街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4527, 440112102, 440112, '长岭街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4528, 440112014, 440112, '长洲街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4529, 440112008, 440112, '鱼珠街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4530, 440112006, 440112, '黄埔街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4531, 440112101, 440112, '龙湖街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4532, 440117, 440100, '从化区', 2, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4533, 440117107, 440117, '吕田镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4534, 440117003, 440117, '城郊街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4535, 440117111, 440117, '太平镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4536, 440117002, 440117, '江埔街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4537, 440117103, 440117, '温泉镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4538, 440117104, 440117, '良口镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4539, 440117001, 440117, '街口街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4540, 440117113, 440117, '鳌头镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4541, 440103, 440100, '荔湾区', 2, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4542, 440103021, 440103, '东沙街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4543, 440103019, 440103, '东漖街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4544, 440103022, 440103, '中南街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4545, 440103015, 440103, '冲口街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4546, 440103003, 440103, '华林街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4547, 440103010, 440103, '南源街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4548, 440103004, 440103, '多宝街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4549, 440103002, 440103, '岭南街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4550, 440103009, 440103, '彩虹街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4551, 440103005, 440103, '昌华街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4552, 440103013, 440103, '桥中街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4553, 440103001, 440103, '沙面街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4554, 440103020, 440103, '海龙街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4555, 440103014, 440103, '白鹤洞街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4556, 440103017, 440103, '石围塘街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4557, 440103012, 440103, '站前街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4558, 440103016, 440103, '花地街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4559, 440103018, 440103, '茶滘街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4560, 440103011, 440103, '西村街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4561, 440103006, 440103, '逢源街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4562, 440103008, 440103, '金花街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4563, 440103007, 440103, '龙津街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4564, 440115, 440100, '南沙区', 2, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4565, 440115100, 440115, '万顷沙镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4566, 440115104, 440115, '东涌镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4567, 440115001, 440115, '南沙街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4568, 440115103, 440115, '大岗镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4569, 440115105, 440115, '榄核镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4570, 440115101, 440115, '横沥镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4571, 440115002, 440115, '珠江街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4572, 440115102, 440115, '黄阁镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4573, 440115003, 440115, '龙穴街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4574, 440113, 440100, '番禺区', 2, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4575, 440113009, 440113, '东环街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4576, 440113104, 440113, '化龙镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4577, 440113102, 440113, '南村镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4578, 440113012, 440113, '大石街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4579, 440113006, 440113, '大龙街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4580, 440113011, 440113, '小谷围街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4581, 440113007, 440113, '市桥街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4582, 440113103, 440113, '新造镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4583, 440113010, 440113, '桥南街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4584, 440113008, 440113, '沙头街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4585, 440113121, 440113, '沙湾镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4586, 440113013, 440113, '洛浦街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4587, 440113014, 440113, '石壁街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4588, 440113105, 440113, '石楼镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4589, 440113120, 440113, '石碁镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4590, 440113003, 440113, '钟村街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4591, 440106, 440100, '天河区', 2, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4592, 440106001, 440106, '五山街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4593, 440106015, 440106, '元岗街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4594, 440106010, 440106, '兴华街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4595, 440106014, 440106, '冼村街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4596, 440106019, 440106, '凤凰街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4597, 440106020, 440106, '前进街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4598, 440106002, 440106, '员村街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4599, 440106012, 440106, '天园街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4600, 440106008, 440106, '天河南街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4601, 440106022, 440106, '新塘街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4602, 440106009, 440106, '林和街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4603, 440106011, 440106, '棠下街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4604, 440106007, 440106, '沙东街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4605, 440106004, 440106, '沙河街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4606, 440106013, 440106, '猎德街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4607, 440106021, 440106, '珠吉街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4608, 440106006, 440106, '石牌街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4609, 440106003, 440106, '车陂街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4610, 440106017, 440106, '长兴街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4611, 440106016, 440106, '黄村街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4612, 440106018, 440106, '龙洞街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4613, 440104, 440100, '越秀区', 2, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4614, 440104011, 440104, '东山街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4615, 440104010, 440104, '人民街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4616, 440104007, 440104, '光塔街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4617, 440104004, 440104, '六榕街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4618, 440104012, 440104, '农林街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4619, 440104003, 440104, '北京街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4620, 440104015, 440104, '华乐街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4621, 440104019, 440104, '大东街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4622, 440104017, 440104, '大塘街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4623, 440104016, 440104, '建设街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4624, 440104013, 440104, '梅花村街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4625, 440104001, 440104, '洪桥街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4626, 440104005, 440104, '流花街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4627, 440104018, 440104, '珠光街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4628, 440104021, 440104, '登峰街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4629, 440104020, 440104, '白云街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4630, 440104022, 440104, '矿泉街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4631, 440104014, 440104, '黄花岗街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4632, 440118, 440100, '增城区', 2, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4633, 440118103, 440118, '中新镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4634, 440118107, 440118, '仙村镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4635, 440118002, 440118, '增江街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4636, 440118109, 440118, '宁西街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4637, 440118106, 440118, '小楼镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4638, 440118101, 440118, '新塘镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4639, 440118003, 440118, '朱村街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4640, 440118104, 440118, '正果镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4641, 440118004, 440118, '永宁街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4642, 440118105, 440118, '派潭镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4643, 440118102, 440118, '石滩镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4644, 440118001, 440118, '荔城街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4645, 440118108, 440118, '荔湖街道', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4646, 441600, 44, '河源市', 1, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4647, 441625, 441600, '东源县', 2, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4648, 441625105, 441625, '上莞镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4649, 441625108, 441625, '义合镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4650, 441625100, 441625, '仙塘镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4651, 441625122, 441625, '半江镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4652, 441625116, 441625, '双江镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4653, 441625111, 441625, '叶潭镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4654, 441625113, 441625, '康禾镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4655, 441625121, 441625, '新回龙镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4656, 441625115, 441625, '新港镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4657, 441625106, 441625, '曾田镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4658, 441625107, 441625, '柳城镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4659, 441625117, 441625, '涧头镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4660, 441625200, 441625, '漳溪乡', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4661, 441625101, 441625, '灯塔镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4662, 441625103, 441625, '船塘镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4663, 441625109, 441625, '蓝口镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4664, 441625114, 441625, '锡场镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4665, 441625104, 441625, '顺天镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4666, 441625102, 441625, '骆湖镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4667, 441625112, 441625, '黄村镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4668, 441625110, 441625, '黄田镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4669, 441624, 441600, '和平县', 2, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4670, 441624104, 441624, '上陵镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4671, 441624103, 441624, '下车镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4672, 441624114, 441624, '东水镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4673, 441624105, 441624, '优胜镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4674, 441624110, 441624, '公白镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4675, 441624107, 441624, '古寨镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4676, 441624109, 441624, '合水镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4677, 441624101, 441624, '大坝镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4678, 441624108, 441624, '彭寨镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4679, 441624116, 441624, '林寨镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4680, 441624112, 441624, '浰源镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4681, 441624113, 441624, '热水镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4682, 441624115, 441624, '礼士镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4683, 441624106, 441624, '贝墩镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4684, 441624102, 441624, '长塘镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4685, 441624100, 441624, '阳明镇', 3, '2022-03-28 15:27:34', '2022-03-28 15:27:34', NULL); +INSERT INTO `address` VALUES (4686, 441624111, 441624, '青州镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4687, 441623, 441600, '连平县', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4688, 441623114, 441623, '三角镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4689, 441623101, 441623, '上坪镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4690, 441623100, 441623, '元善镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4691, 441623102, 441623, '内莞镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4692, 441623113, 441623, '大湖镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4693, 441623110, 441623, '忠信镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4694, 441623109, 441623, '油溪镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4695, 441623105, 441623, '溪山镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4696, 441623108, 441623, '田源镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4697, 441623115, 441623, '绣缎镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4698, 441623104, 441623, '陂头镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4699, 441623107, 441623, '隆街镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4700, 441623111, 441623, '高莞镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4701, 441622, 441600, '龙川县', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4702, 441622127, 441622, '上坪镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4703, 441622110, 441622, '丰稔镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4704, 441622102, 441622, '义都镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4705, 441622103, 441622, '佗城镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4706, 441622111, 441622, '四都镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4707, 441622119, 441622, '回龙镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4708, 441622123, 441622, '岩镇镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4709, 441622120, 441622, '新田镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4710, 441622115, 441622, '田心镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4711, 441622109, 441622, '登云镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4712, 441622106, 441622, '紫市镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4713, 441622126, 441622, '细坳镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4714, 441622100, 441622, '老隆镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4715, 441622125, 441622, '贝岭镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4716, 441622118, 441622, '赤光镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4717, 441622121, 441622, '车田镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4718, 441622107, 441622, '通衢镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4719, 441622112, 441622, '铁场镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4720, 441622104, 441622, '鹤市镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4721, 441622124, 441622, '麻布岗镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4722, 441622105, 441622, '黄布镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4723, 441622117, 441622, '黄石镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4724, 441622116, 441622, '黎咀镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4725, 441622114, 441622, '龙母镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4726, 441602, 441600, '源城区', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4727, 441602001, 441602, '上城街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4728, 441602003, 441602, '东埔街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4729, 441602101, 441602, '埔前镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4730, 441602002, 441602, '新江街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4731, 441602100, 441602, '源南镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4732, 441602004, 441602, '源西街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4733, 441602005, 441602, '高埔岗街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4734, 441621, 441600, '紫金县', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4735, 441621104, 441621, '上义镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4736, 441621119, 441621, '中坝镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4737, 441621109, 441621, '临江镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4738, 441621107, 441621, '义容镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4739, 441621103, 441621, '九和镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4740, 441621106, 441621, '凤安镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4741, 441621115, 441621, '南岭镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4742, 441621108, 441621, '古竹镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4743, 441621118, 441621, '好义镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4744, 441621112, 441621, '敬梓镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4745, 441621110, 441621, '柏埔镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4746, 441621114, 441621, '水墩镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4747, 441621117, 441621, '瓦溪镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4748, 441621100, 441621, '紫城镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4749, 441621116, 441621, '苏区镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4750, 441621105, 441621, '蓝塘镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4751, 441621111, 441621, '黄塘镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4752, 441621102, 441621, '龙窝镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4753, 441300, 44, '惠州市', 1, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4754, 441322, 441300, '博罗县', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4755, 441322104, 441322, '公庄镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4756, 441322119, 441322, '园洲镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4757, 441322122, 441322, '杨侨镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4758, 441322105, 441322, '杨村镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4759, 441322106, 441322, '柏塘镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4760, 441322123, 441322, '横河镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4761, 441322108, 441322, '泰美镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4762, 441322113, 441322, '湖镇镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4763, 441322100, 441322, '石坝镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4764, 441322121, 441322, '石湾镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4765, 441322116, 441322, '福田镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4766, 441322110, 441322, '罗阳街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4767, 441322103, 441322, '观音阁镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4768, 441322115, 441322, '长宁镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4769, 441322102, 441322, '麻陂镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4770, 441322117, 441322, '龙华镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4771, 441322118, 441322, '龙溪街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4772, 441302, 441300, '惠城区', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4773, 441302103, 441302, '三栋镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4774, 441302010, 441302, '小金口街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4775, 441302450, 441302, '惠州市林场', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4776, 441302007, 441302, '惠环街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4777, 441302001, 441302, '桥东街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4778, 441302002, 441302, '桥西街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4779, 441302110, 441302, '横沥镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4780, 441302009, 441302, '水口街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4781, 441302100, 441302, '汝湖镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4782, 441302004, 441302, '江北街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4783, 441302003, 441302, '江南街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4784, 441302107, 441302, '沥林镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4785, 441302006, 441302, '河南岸街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4786, 441302114, 441302, '潼侨镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4787, 441302106, 441302, '潼湖镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4788, 441302112, 441302, '芦洲镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4789, 441302008, 441302, '陈江街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4790, 441302109, 441302, '马安镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4791, 441302005, 441302, '龙丰街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4792, 441323, 441300, '惠东县', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4793, 441323109, 441323, '吉隆镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4794, 441323113, 441323, '多祝镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4795, 441323101, 441323, '大岭街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4796, 441323115, 441323, '安墩镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4797, 441323120, 441323, '宝口镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4798, 441323400, 441323, '巺寮滨海旅游渡假区', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4799, 441323001, 441323, '平山街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4800, 441323106, 441323, '平海镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4801, 441323103, 441323, '梁化镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4802, 441323121, 441323, '白盆珠镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4803, 441323102, 441323, '白花镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4804, 441323104, 441323, '稔山镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4805, 441323105, 441323, '铁涌镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4806, 441323118, 441323, '高潭镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4807, 441323110, 441323, '黄埠镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4808, 441303, 441300, '惠阳区', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4809, 441303110, 441303, '平潭镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4810, 441303570, 441303, '惠阳经济开发区', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4811, 441303103, 441303, '新圩镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4812, 441303108, 441303, '永湖镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4813, 441303101, 441303, '沙田镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4814, 441303001, 441303, '淡水街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4815, 441303006, 441303, '澳头街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4816, 441303002, 441303, '秋长街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4817, 441303109, 441303, '良井镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4818, 441303008, 441303, '西区街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4819, 441303104, 441303, '镇隆镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4820, 441303007, 441303, '霞涌街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4821, 441324, 441300, '龙门县', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4822, 441324117, 441324, '地派镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4823, 441324106, 441324, '平陵街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4824, 441324101, 441324, '永汉镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4825, 441324200, 441324, '蓝田瑶族乡', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4826, 441324100, 441324, '麻榨镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4827, 441324118, 441324, '龙华镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4828, 441324001, 441324, '龙城街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4829, 441324119, 441324, '龙江镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4830, 441324116, 441324, '龙潭镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4831, 441324115, 441324, '龙田镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4832, 440700, 44, '江门市', 1, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4833, 440785, 440700, '恩平市', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4834, 440785109, 440785, '东成镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4835, 440785105, 440785, '君堂镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4836, 440785101, 440785, '圣堂镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4837, 440785108, 440785, '大槐镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4838, 440785106, 440785, '大田镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4839, 440785001, 440785, '恩城街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4840, 440785100, 440785, '横陂镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4841, 440785103, 440785, '沙湖镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4842, 440785104, 440785, '牛江镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4843, 440785102, 440785, '良西镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4844, 440785107, 440785, '那吉镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4845, 440784, 440700, '鹤山市', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4846, 440784106, 440784, '共和镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4847, 440784112, 440784, '双合镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4848, 440784103, 440784, '古劳镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4849, 440784107, 440784, '址山镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4850, 440784108, 440784, '宅梧镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4851, 440784104, 440784, '桃源镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4852, 440784001, 440784, '沙坪街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4853, 440784102, 440784, '雅瑶镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4854, 440784105, 440784, '鹤城镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4855, 440784101, 440784, '龙口镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4856, 440704, 440700, '江海区', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4857, 440704004, 440704, '外海街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4858, 440704001, 440704, '江南街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4859, 440704005, 440704, '礼乐街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4860, 440783, 440700, '开平市', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4861, 440783001, 440783, '三埠街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4862, 440783108, 440783, '塘口镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4863, 440783106, 440783, '大沙镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4864, 440783115, 440783, '月山镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4865, 440783117, 440783, '水口镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4866, 440783103, 440783, '沙塘镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4867, 440783110, 440783, '百合镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4868, 440783104, 440783, '苍城镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4869, 440783111, 440783, '蚬冈镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4870, 440783109, 440783, '赤坎镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4871, 440783116, 440783, '赤水镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4872, 440783112, 440783, '金鸡镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4873, 440783002, 440783, '长沙街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4874, 440783107, 440783, '马冈镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4875, 440783105, 440783, '龙胜镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4876, 440703, 440700, '蓬江区', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4877, 440703001, 440703, '仓后街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4878, 440703004, 440703, '北街街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4879, 440703003, 440703, '堤东街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4880, 440703103, 440703, '杜阮镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4881, 440703101, 440703, '棠下镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4882, 440703005, 440703, '潮连街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4883, 440703006, 440703, '环市街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4884, 440703002, 440703, '白沙街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4885, 440703102, 440703, '荷塘镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4886, 440781, 440700, '台山市', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4887, 440781104, 440781, '三合镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4888, 440781105, 440781, '冲蒌镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4889, 440781114, 440781, '北陡镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4890, 440781001, 440781, '台城街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4891, 440781102, 440781, '四九镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4892, 440781100, 440781, '大江镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4893, 440781115, 440781, '川岛镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4894, 440781110, 440781, '广海镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4895, 440781106, 440781, '斗山镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4896, 440781101, 440781, '水步镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4897, 440781112, 440781, '汶村镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4898, 440781111, 440781, '海宴镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4899, 440781113, 440781, '深井镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4900, 440781103, 440781, '白沙镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4901, 440781109, 440781, '端芬镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4902, 440781108, 440781, '赤溪镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4903, 440781107, 440781, '都斛镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4904, 440705, 440700, '新会区', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4905, 440705108, 440705, '三江镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4906, 440705001, 440705, '会城街道', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4907, 440705104, 440705, '双水镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4908, 440705107, 440705, '古井镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4909, 440705102, 440705, '司前镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4910, 440705101, 440705, '大泽镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4911, 440705110, 440705, '大鳌镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4912, 440705105, 440705, '崖门镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4913, 440705106, 440705, '沙堆镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4914, 440705109, 440705, '睦洲镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4915, 440705103, 440705, '罗坑镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4916, 445200, 44, '揭阳市', 1, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4917, 445224, 445200, '惠来县', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4918, 445224401, 445224, '东埔农场', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4919, 445224113, 445224, '东港镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4920, 445224108, 445224, '东陇镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4921, 445224103, 445224, '仙庵镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4922, 445224106, 445224, '前詹镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4923, 445224102, 445224, '华湖镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4924, 445224105, 445224, '周田镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4925, 445224109, 445224, '岐石镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4926, 445224100, 445224, '惠城镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4927, 445224111, 445224, '溪西镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4928, 445224107, 445224, '神泉镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4929, 445224114, 445224, '葵潭镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4930, 445224110, 445224, '隆江镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4931, 445224104, 445224, '靖海镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4932, 445224112, 445224, '鳌江镇', 3, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4933, 445203, 445200, '揭东区', 2, '2022-03-28 15:27:35', '2022-03-28 15:27:35', NULL); +INSERT INTO `address` VALUES (4934, 445203102, 445203, '云路镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4935, 445203115, 445203, '埔田镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4936, 445203113, 445203, '新亨镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4937, 445203001, 445203, '曲溪街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4938, 445203108, 445203, '月城镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4939, 445203111, 445203, '桂岭镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4940, 445203114, 445203, '玉湖镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4941, 445203103, 445203, '玉滘镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4942, 445203109, 445203, '白塔镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4943, 445203002, 445203, '磐东街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4944, 445203112, 445203, '锡场镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4945, 445203107, 445203, '霖磐镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4946, 445203110, 445203, '龙尾镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4947, 445222, 445200, '揭西县', 2, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4948, 445222116, 445222, '上砂镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4949, 445222108, 445222, '东园镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4950, 445222115, 445222, '五云镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4951, 445222104, 445222, '五经富镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4952, 445222105, 445222, '京溪园镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4953, 445222109, 445222, '凤江镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4954, 445222103, 445222, '南山镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4955, 445222114, 445222, '坪上镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4956, 445222107, 445222, '塔头镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4957, 445222112, 445222, '大溪镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4958, 445222110, 445222, '棉湖镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4959, 445222001, 445222, '河婆街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4960, 445222106, 445222, '灰寨镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4961, 445222201, 445222, '良田乡', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4962, 445222111, 445222, '金和镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4963, 445222113, 445222, '钱坑镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4964, 445222102, 445222, '龙潭镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4965, 445281, 445200, '普宁市', 2, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4966, 445281111, 445281, '下架山镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4967, 445281114, 445281, '云落镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4968, 445281110, 445281, '军埠镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4969, 445281108, 445281, '南径镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4970, 445281105, 445281, '南溪镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4971, 445281109, 445281, '占陇镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4972, 445281007, 445281, '大南山街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4973, 445281103, 445281, '大坝镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4974, 445281115, 445281, '大坪镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4975, 445281106, 445281, '广太镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4976, 445281404, 445281, '普侨区', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4977, 445281121, 445281, '梅塘镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4978, 445281117, 445281, '梅林镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4979, 445281005, 445281, '池尾街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4980, 445281104, 445281, '洪阳镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4981, 445281001, 445281, '流沙东街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4982, 445281004, 445281, '流沙北街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4983, 445281002, 445281, '流沙南街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4984, 445281003, 445281, '流沙西街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4985, 445281006, 445281, '燎原街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4986, 445281116, 445281, '船埔镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4987, 445281102, 445281, '赤岗镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4988, 445281119, 445281, '里湖镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4989, 445281113, 445281, '高埔镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4990, 445281200, 445281, '鲘溪乡', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4991, 445281107, 445281, '麒麟镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4992, 445202, 445200, '榕城区', 2, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4993, 445202009, 445202, '东兴街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4994, 445202010, 445202, '东升街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4995, 445202011, 445202, '东阳街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4996, 445202003, 445202, '中山街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4997, 445202007, 445202, '仙桥街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4998, 445202102, 445202, '地都镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (4999, 445202002, 445202, '新兴街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5000, 445202008, 445202, '梅云街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5001, 445202006, 445202, '榕东街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5002, 445202001, 445202, '榕华街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5003, 445202101, 445202, '渔湖镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5004, 445202104, 445202, '登岗镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5005, 445202103, 445202, '砲台镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5006, 445202004, 445202, '西马街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5007, 440900, 44, '茂名市', 1, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5008, 440904, 440900, '电白区', 2, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5009, 440904131, 440904, '七迳镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5010, 440904001, 440904, '南海街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5011, 440904125, 440904, '博贺镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5012, 440904132, 440904, '坡心镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5013, 440904130, 440904, '小良镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5014, 440904101, 440904, '岭门镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5015, 440904107, 440904, '旦场镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5016, 440904119, 440904, '望夫镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5017, 440904126, 440904, '林头镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5018, 440904104, 440904, '树仔镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5019, 440904123, 440904, '水东街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5020, 440904117, 440904, '沙琅镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5021, 440904129, 440904, '沙院镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5022, 440904127, 440904, '电城镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5023, 440904455, 440904, '电海街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5024, 440904120, 440904, '罗坑镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5025, 440904116, 440904, '观珠镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5026, 440904121, 440904, '那霍镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5027, 440904128, 440904, '陈村街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5028, 440904115, 440904, '霞洞镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5029, 440904100, 440904, '马踏镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5030, 440904002, 440904, '高地街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5031, 440904106, 440904, '麻岗镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5032, 440904118, 440904, '黄岭镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5033, 440981, 440900, '高州市', 2, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5034, 440981128, 440981, '东岸镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5035, 440981102, 440981, '云潭镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5036, 440981103, 440981, '分界镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5037, 440981110, 440981, '南塘镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5038, 440981123, 440981, '古丁镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5039, 440981115, 440981, '大井镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5040, 440981119, 440981, '大坡镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5041, 440981008, 440981, '宝光街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5042, 440981003, 440981, '山美街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5043, 440981120, 440981, '平山镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5044, 440981101, 440981, '新垌镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5045, 440981124, 440981, '曹江镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5046, 440981104, 440981, '根子镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5047, 440981109, 440981, '沙田镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5048, 440981105, 440981, '泗水镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5049, 440981121, 440981, '深镇镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5050, 440981007, 440981, '潘州街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5051, 440981116, 440981, '潭头镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5052, 440981002, 440981, '石仔岭街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5053, 440981112, 440981, '石板镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5054, 440981127, 440981, '石鼓镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5055, 440981126, 440981, '荷塘镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5056, 440981111, 440981, '荷花镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5057, 440981100, 440981, '谢鸡镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5058, 440981006, 440981, '金山街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5059, 440981107, 440981, '镇江镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5060, 440981129, 440981, '长坡镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5061, 440981122, 440981, '马贵镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5062, 440982, 440900, '化州市', 2, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5063, 440982003, 440982, '下郭街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5064, 440982002, 440982, '东山街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5065, 440982120, 440982, '中垌镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5066, 440982106, 440982, '丽岗镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5067, 440982004, 440982, '南盛街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5068, 440982112, 440982, '合江镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5069, 440982101, 440982, '同庆镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5070, 440982108, 440982, '官桥镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5071, 440982115, 440982, '宝圩镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5072, 440982116, 440982, '平定镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5073, 440982114, 440982, '播扬镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5074, 440982117, 440982, '文楼镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5075, 440982107, 440982, '新安镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5076, 440982102, 440982, '杨梅镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5077, 440982110, 440982, '林尘镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5078, 440982118, 440982, '江湖镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5079, 440982001, 440982, '河西街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5080, 440982005, 440982, '石湾街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5081, 440982104, 440982, '笪桥镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5082, 440982103, 440982, '良光镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5083, 440982113, 440982, '那务镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5084, 440982100, 440982, '长岐镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5085, 440902, 440900, '茂南区', 2, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5086, 440902101, 440902, '公馆镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5087, 440902006, 440902, '官渡街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5088, 440902107, 440902, '山阁镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5089, 440902005, 440902, '新华街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5090, 440902102, 440902, '新坡镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5091, 440902003, 440902, '河东街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5092, 440902002, 440902, '河西街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5093, 440902007, 440902, '站前街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5094, 440902001, 440902, '红旗街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5095, 440902133, 440902, '羊角镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5096, 440902400, 440902, '茂南开发区', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5097, 440902105, 440902, '袂花镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5098, 440902100, 440902, '金塘镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5099, 440902103, 440902, '镇盛镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5100, 440902004, 440902, '露天矿街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5101, 440902106, 440902, '高山镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5102, 440902104, 440902, '鳌头镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5103, 440983, 440900, '信宜市', 2, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5104, 440983105, 440983, '丁堡镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5105, 440983001, 440983, '东镇街道', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5106, 440983125, 440983, '北界镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5107, 440983119, 440983, '合水镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5108, 440983117, 440983, '大成镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5109, 440983121, 440983, '平塘镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5110, 440983113, 440983, '怀乡镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5111, 440983122, 440983, '思贺镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5112, 440983120, 440983, '新宝镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5113, 440983124, 440983, '朱砂镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5114, 440983102, 440983, '水口镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5115, 440983106, 440983, '池洞镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5116, 440983115, 440983, '洪冠镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5117, 440983116, 440983, '白石镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5118, 440983114, 440983, '茶山镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5119, 440983112, 440983, '贵子镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5120, 440983123, 440983, '金垌镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5121, 440983118, 440983, '钱排镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5122, 440983101, 440983, '镇隆镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5123, 441400, 44, '梅州市', 1, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5124, 441422, 441400, '大埔县', 2, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5125, 441422105, 441422, '三河镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5126, 441422112, 441422, '光德镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5127, 441422117, 441422, '大东镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5128, 441422121, 441422, '大麻镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5129, 441422122, 441422, '枫朗镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5130, 441422113, 441422, '桃源镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5131, 441422109, 441422, '洲瑞镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5132, 441422100, 441422, '湖寮镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5133, 441422116, 441422, '百侯镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5134, 441422123, 441422, '茶阳镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5135, 441422125, 441422, '西河镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5136, 441422108, 441422, '银江镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5137, 441422103, 441422, '青溪镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5138, 441422124, 441422, '高陂镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5139, 441423, 441400, '丰顺县', 2, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5140, 441423125, 441423, '丰良镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5141, 441423124, 441423, '八乡山镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5142, 441423103, 441423, '北斗镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5143, 441423106, 441423, '埔寨镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5144, 441423129, 441423, '大龙华镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5145, 441423122, 441423, '小胜镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5146, 441423110, 441423, '建桥镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5147, 441423105, 441423, '汤南镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5148, 441423127, 441423, '汤坑镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5149, 441423104, 441423, '汤西镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5150, 441423112, 441423, '潘田镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5151, 441423126, 441423, '潭江镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5152, 441423128, 441423, '留隍镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5153, 441423123, 441423, '砂田镇', 3, '2022-03-28 15:27:36', '2022-03-28 15:27:36', NULL); +INSERT INTO `address` VALUES (5154, 441423114, 441423, '黄金镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5155, 441423111, 441423, '龙岗镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5156, 441427, 441400, '蕉岭县', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5157, 441427103, 441427, '三圳镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5158, 441427114, 441427, '南礤镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5159, 441427107, 441427, '广福镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5160, 441427106, 441427, '文福镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5161, 441427112, 441427, '新铺镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5162, 441427113, 441427, '蓝坊镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5163, 441427115, 441427, '蕉城镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5164, 441427116, 441427, '长潭镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5165, 441402, 441400, '梅江区', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5166, 441402102, 441402, '三角镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5167, 441402105, 441402, '城北镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5168, 441402004, 441402, '江南街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5169, 441402007, 441402, '西郊街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5170, 441402106, 441402, '西阳镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5171, 441402006, 441402, '金山街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5172, 441402103, 441402, '长沙镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5173, 441403, 441400, '梅县区', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5174, 441403113, 441403, '丙村镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5175, 441403131, 441403, '南口镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5176, 441403101, 441403, '城东镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5177, 441403104, 441403, '大坪镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5178, 441403133, 441403, '扶大镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5179, 441403001, 441403, '新城办事处', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5180, 441403130, 441403, '松口镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5181, 441403116, 441403, '松源镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5182, 441403118, 441403, '桃尧镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5183, 441403110, 441403, '梅南镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5184, 441403500, 441403, '梅西水库', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5185, 441403103, 441403, '梅西镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5186, 441403109, 441403, '水车镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5187, 441403126, 441403, '畲江镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5188, 441403115, 441403, '白渡镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5189, 441403105, 441403, '石坑镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5190, 441403102, 441403, '石扇镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5191, 441403127, 441403, '程江镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5192, 441403117, 441403, '隆文镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5193, 441403129, 441403, '雁洋镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5194, 441426, 441400, '平远县', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5195, 441426109, 441426, '上举镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5196, 441426117, 441426, '东石镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5197, 441426108, 441426, '中行镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5198, 441426118, 441426, '仁居镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5199, 441426104, 441426, '八尺镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5200, 441426119, 441426, '大柘镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5201, 441426105, 441426, '差干镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5202, 441426107, 441426, '河头镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5203, 441426110, 441426, '泗水镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5204, 441426115, 441426, '热柘镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5205, 441426101, 441426, '石正镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5206, 441426114, 441426, '长田镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5207, 441424, 441400, '五华县', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5208, 441424130, 441424, '华城镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5209, 441424126, 441424, '华阳镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5210, 441424118, 441424, '双华镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5211, 441424131, 441424, '周江镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5212, 441424139, 441424, '安流镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5213, 441424136, 441424, '岐岭镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5214, 441424125, 441424, '梅林镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5215, 441424140, 441424, '棉洋镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5216, 441424138, 441424, '横陂镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5217, 441424134, 441424, '水寨镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5218, 441424135, 441424, '河东镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5219, 441424108, 441424, '潭下镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5220, 441424103, 441424, '转水镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5221, 441424117, 441424, '郭田镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5222, 441424137, 441424, '长布镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5223, 441424141, 441424, '龙村镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5224, 441481, 441400, '兴宁市', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5225, 441481001, 441481, '兴田街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5226, 441481137, 441481, '刁坊镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5227, 441481135, 441481, '叶塘镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5228, 441481133, 441481, '合水镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5229, 441481130, 441481, '坭陂镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5230, 441481134, 441481, '大坪镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5231, 441481128, 441481, '宁中镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5232, 441481003, 441481, '宁新街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5233, 441481129, 441481, '径南镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5234, 441481111, 441481, '新圩镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5235, 441481136, 441481, '新陂镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5236, 441481131, 441481, '水口镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5237, 441481107, 441481, '永和镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5238, 441481124, 441481, '石马镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5239, 441481002, 441481, '福兴街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5240, 441481116, 441481, '罗岗镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5241, 441481115, 441481, '罗浮镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5242, 441481117, 441481, '黄槐镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5243, 441481132, 441481, '黄陂镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5244, 441481123, 441481, '龙田镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5245, 441800, 44, '清远市', 1, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5246, 441821, 441800, '佛冈县', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5247, 441821101, 441821, '水头镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5248, 441821102, 441821, '汤塘镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5249, 441821100, 441821, '石角镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5250, 441821107, 441821, '迳头镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5251, 441821104, 441821, '高岗镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5252, 441821103, 441821, '龙山镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5253, 441826, 441800, '连南瑶族自治县', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5254, 441826105, 441826, '三排镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5255, 441826100, 441826, '三江镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5256, 441826108, 441826, '大坪镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5257, 441826101, 441826, '大麦山镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5258, 441826102, 441826, '寨岗镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5259, 441826106, 441826, '涡水镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5260, 441826109, 441826, '香坪镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5261, 441825, 441800, '连山壮族瑶族自治县', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5262, 441825111, 441825, '上帅镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5263, 441825104, 441825, '吉田镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5264, 441825105, 441825, '太保镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5265, 441825109, 441825, '小三江镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5266, 441825100, 441825, '永和镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5267, 441825108, 441825, '福堂镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5268, 441825106, 441825, '禾洞镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5269, 441882, 441800, '连州市', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5270, 441882201, 441882, '三水瑶族乡', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5271, 441882107, 441882, '东陂镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5272, 441882106, 441882, '丰阳镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5273, 441882109, 441882, '九陂镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5274, 441882105, 441882, '保安镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5275, 441882102, 441882, '大路边镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5276, 441882101, 441882, '星子镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5277, 441882200, 441882, '瑶安瑶族乡', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5278, 441882104, 441882, '西岸镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5279, 441882118, 441882, '西江镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5280, 441882100, 441882, '连州镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5281, 441882103, 441882, '龙坪镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5282, 441802, 441800, '清城区', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5283, 441802007, 441802, '东城街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5284, 441802006, 441802, '凤城街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5285, 441802009, 441802, '横荷街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5286, 441802008, 441802, '洲心街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5287, 441802103, 441802, '源潭镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5288, 441802106, 441802, '石角镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5289, 441802107, 441802, '飞来峡镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5290, 441802105, 441802, '龙塘镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5291, 441803, 441800, '清新区', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5292, 441803106, 441803, '三坑镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5293, 441803102, 441803, '太和镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5294, 441803104, 441803, '太平镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5295, 441803105, 441803, '山塘镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5296, 441803117, 441803, '浸潭镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5297, 441803118, 441803, '石潭镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5298, 441803113, 441803, '禾云镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5299, 441803112, 441803, '龙颈镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5300, 441823, 441800, '阳山县', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5301, 441823105, 441823, '七拱镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5302, 441823110, 441823, '大崀镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5303, 441823107, 441823, '太平镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5304, 441823111, 441823, '小江镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5305, 441823113, 441823, '岭背镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5306, 441823104, 441823, '杜步镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5307, 441823108, 441823, '杨梅镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5308, 441823101, 441823, '江英镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5309, 441823201, 441823, '秤架瑶族乡', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5310, 441823119, 441823, '阳城镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5311, 441823100, 441823, '青莲镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5312, 441823115, 441823, '黄坌镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5313, 441823116, 441823, '黎埠镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5314, 441881, 441800, '英德市', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5315, 441881120, 441881, '下太镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5316, 441881137, 441881, '东华镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5317, 441881111, 441881, '九龙镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5318, 441881126, 441881, '大洞镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5319, 441881114, 441881, '大湾镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5320, 441881109, 441881, '大站镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5321, 441881102, 441881, '望埠镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5322, 441881105, 441881, '桥头镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5323, 441881125, 441881, '横石塘镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5324, 441881103, 441881, '横石水镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5325, 441881131, 441881, '水边镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5326, 441881101, 441881, '沙口镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5327, 441881124, 441881, '波罗镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5328, 441881112, 441881, '浛洸镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5329, 441881108, 441881, '白沙镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5330, 441881115, 441881, '石灰铺镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5331, 441881116, 441881, '石牯塘镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5332, 441881001, 441881, '英城街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5333, 441881136, 441881, '英红镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5334, 441881110, 441881, '西牛镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5335, 441881129, 441881, '连江口镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5336, 441881106, 441881, '青塘镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5337, 441881138, 441881, '黄花镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5338, 441881130, 441881, '黎溪镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5339, 440500, 44, '汕头市', 1, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5340, 440514, 440500, '潮南区', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5341, 440514106, 440514, '两英镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5342, 440514101, 440514, '井都镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5343, 440514107, 440514, '仙城镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5344, 440514104, 440514, '司马浦镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5345, 440514001, 440514, '峡山街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5346, 440514103, 440514, '成田镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5347, 440514109, 440514, '红场镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5348, 440514108, 440514, '胪岗镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5349, 440514112, 440514, '陇田镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5350, 440514105, 440514, '陈店镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5351, 440514110, 440514, '雷岭镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5352, 440513, 440500, '潮阳区', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5353, 440513104, 440513, '关埠镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5354, 440513102, 440513, '和平镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5355, 440513003, 440513, '城南街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5356, 440513001, 440513, '文光街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5357, 440513002, 440513, '棉北街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5358, 440513101, 440513, '河溪镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5359, 440513100, 440513, '海门镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5360, 440513103, 440513, '西胪镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5361, 440513106, 440513, '谷饶镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5362, 440513107, 440513, '贵屿镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5363, 440513004, 440513, '金浦街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5364, 440513110, 440513, '金灶镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5365, 440513108, 440513, '铜盂镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5366, 440515, 440500, '澄海区', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5367, 440515100, 440515, '上华镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5368, 440515105, 440515, '东里镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5369, 440515001, 440515, '凤翔街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5370, 440515002, 440515, '广益街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5371, 440515104, 440515, '溪南镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5372, 440515003, 440515, '澄华街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5373, 440515106, 440515, '盐鸿镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5374, 440515103, 440515, '莲上镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5375, 440515102, 440515, '莲下镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5376, 440515107, 440515, '莲华镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5377, 440515101, 440515, '隆都镇', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5378, 440512, 440500, '濠江区', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5379, 440512004, 440512, '广澳街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5380, 440512006, 440512, '河浦街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5381, 440512005, 440512, '滨海街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5382, 440512007, 440512, '玉新街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5383, 440512003, 440512, '礐石街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5384, 440512001, 440512, '达濠街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5385, 440512002, 440512, '马滘街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5386, 440511, 440500, '金平区', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5387, 440511004, 440511, '东方街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5388, 440511007, 440511, '光华街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5389, 440511005, 440511, '大华街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5390, 440511011, 440511, '小公园街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5391, 440511013, 440511, '岐山街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5392, 440511009, 440511, '广厦街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5393, 440511017, 440511, '月浦街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5394, 440511001, 440511, '石炮台街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5395, 440511003, 440511, '金东街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5396, 440511002, 440511, '金砂街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5397, 440511016, 440511, '鮀江街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5398, 440511015, 440511, '鮀莲街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5399, 440507, 440500, '龙湖区', 2, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5400, 440507100, 440507, '外砂街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5401, 440507004, 440507, '新津街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5402, 440507104, 440507, '新海街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5403, 440507101, 440507, '新溪街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5404, 440507003, 440507, '珠池街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5405, 440507001, 440507, '金霞街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5406, 440507005, 440507, '鸥汀街道', 3, '2022-03-28 15:27:37', '2022-03-28 15:27:37', NULL); +INSERT INTO `address` VALUES (5407, 440507102, 440507, '龙华街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5408, 440507008, 440507, '龙祥街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5409, 440507103, 440507, '龙腾街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5410, 440523, 440500, '南澳县', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5411, 440523101, 440523, '云澳镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5412, 440523100, 440523, '后宅镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5413, 440523102, 440523, '深澳镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5414, 441500, 44, '汕尾市', 1, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5415, 441502, 441500, '城区', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5416, 441502005, 441502, '东洲街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5417, 441502102, 441502, '东涌镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5418, 441502003, 441502, '凤山街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5419, 441502103, 441502, '捷胜镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5420, 441502001, 441502, '新港街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5421, 441502004, 441502, '田墘街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5422, 441502100, 441502, '红草镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5423, 441502006, 441502, '遮浪街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5424, 441502002, 441502, '香洲街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5425, 441502007, 441502, '马宫街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5426, 441521, 441500, '海丰县', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5427, 441521118, 441521, '公平镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5428, 441521110, 441521, '可塘镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5429, 441521120, 441521, '城东镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5430, 441521109, 441521, '大湖镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5431, 441521102, 441521, '小漠街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5432, 441521113, 441521, '平东镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5433, 441521101, 441521, '梅陇镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5434, 441521115, 441521, '海城镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5435, 441521106, 441521, '联安镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5436, 441521108, 441521, '赤坑镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5437, 441521117, 441521, '赤石街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5438, 441521119, 441521, '附城镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5439, 441521107, 441521, '陶河镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5440, 441521105, 441521, '鲘门街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5441, 441521116, 441521, '鹅埠街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5442, 441521112, 441521, '黄羌镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5443, 441581, 441500, '陆丰市', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5444, 441581117, 441581, '上英镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5445, 441581114, 441581, '东海镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5446, 441581109, 441581, '八万镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5447, 441581106, 441581, '内湖镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5448, 441581107, 441581, '南塘镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5449, 441581105, 441581, '博美镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5450, 441581110, 441581, '城东镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5451, 441581104, 441581, '大安镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5452, 441581118, 441581, '桥冲镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5453, 441581116, 441581, '河东镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5454, 441581111, 441581, '河西镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5455, 441581103, 441581, '湖东镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5456, 441581113, 441581, '潭西镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5457, 441581115, 441581, '甲东镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5458, 441581101, 441581, '甲子镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5459, 441581119, 441581, '甲西镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5460, 441581102, 441581, '碣石镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5461, 441581120, 441581, '西南镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5462, 441581112, 441581, '金厢镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5463, 441581108, 441581, '陂洋镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5464, 441523, 441500, '陆河县', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5465, 441523104, 441523, '上护镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5466, 441523106, 441523, '东坑镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5467, 441523107, 441523, '南万镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5468, 441523103, 441523, '新田镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5469, 441523101, 441523, '水唇镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5470, 441523102, 441523, '河口镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5471, 441523100, 441523, '河田镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5472, 441523105, 441523, '螺溪镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5473, 440200, 44, '韶关市', 1, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5474, 440281, 440200, '乐昌市', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5475, 440281107, 440281, '三溪镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5476, 440281112, 440281, '两江镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5477, 440281001, 440281, '乐城街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5478, 440281103, 440281, '九峰镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5479, 440281114, 440281, '云岩镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5480, 440281111, 440281, '五山镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5481, 440281102, 440281, '北乡镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5482, 440281108, 440281, '坪石镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5483, 440281117, 440281, '大源镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5484, 440281118, 440281, '庆云镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5485, 440281104, 440281, '廊田镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5486, 440281106, 440281, '梅花镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5487, 440281113, 440281, '沙坪镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5488, 440281119, 440281, '白石镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5489, 440281115, 440281, '秀水镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5490, 440281105, 440281, '长来镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5491, 440281110, 440281, '黄圃镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5492, 440282, 440200, '南雄市', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5493, 440282115, 440282, '主田镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5494, 440282100, 440282, '乌迳镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5495, 440282118, 440282, '全安镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5496, 440282109, 440282, '南亩镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5497, 440282116, 440282, '古市镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5498, 440282104, 440282, '坪田镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5499, 440282122, 440282, '帽子峰镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5500, 440282110, 440282, '水口镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5501, 440282111, 440282, '江头镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5502, 440282107, 440282, '油山镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5503, 440282112, 440282, '湖口镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5504, 440282121, 440282, '澜河镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5505, 440282113, 440282, '珠玑镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5506, 440282103, 440282, '界址镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5507, 440282120, 440282, '百顺镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5508, 440282106, 440282, '邓坊镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5509, 440282001, 440282, '雄州街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5510, 440282105, 440282, '黄坑镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5511, 440205, 440200, '曲江区', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5512, 440205106, 440205, '乌石镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5513, 440205101, 440205, '大塘镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5514, 440205103, 440205, '小坑镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5515, 440205001, 440205, '松山街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5516, 440205102, 440205, '枫湾镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5517, 440205107, 440205, '樟市镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5518, 440205104, 440205, '沙溪镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5519, 440205108, 440205, '白土镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5520, 440205109, 440205, '罗坑镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5521, 440205100, 440205, '马坝镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5522, 440224, 440200, '仁化县', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5523, 440224001, 440224, '丹霞街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5524, 440224110, 440224, '周田镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5525, 440224105, 440224, '城口镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5526, 440224109, 440224, '大桥镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5527, 440224103, 440224, '扶溪镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5528, 440224107, 440224, '石塘镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5529, 440224106, 440224, '红山镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5530, 440224108, 440224, '董塘镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5531, 440224104, 440224, '长江镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5532, 440224102, 440224, '闻韶镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5533, 440224111, 440224, '黄坑镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5534, 440232, 440200, '乳源瑶族自治县', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5535, 440232103, 440232, '一六镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5536, 440232111, 440232, '东坪镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5537, 440232100, 440232, '乳城镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5538, 440232108, 440232, '大布镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5539, 440232109, 440232, '大桥镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5540, 440232113, 440232, '必背镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5541, 440232104, 440232, '桂头镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5542, 440232106, 440232, '洛阳镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5543, 440232112, 440232, '游溪镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5544, 440222, 440200, '始兴县', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5545, 440222105, 440222, '司前镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5546, 440222107, 440222, '城南镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5547, 440222100, 440222, '太平镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5548, 440222108, 440222, '沈所镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5549, 440222204, 440222, '深渡水乡', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5550, 440222102, 440222, '澄江镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5551, 440222104, 440222, '罗坝镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5552, 440222106, 440222, '隘子镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5553, 440222103, 440222, '顿岗镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5554, 440222101, 440222, '马市镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5555, 440229, 440200, '翁源县', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5556, 440229111, 440229, '周陂镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5557, 440229104, 440229, '坝仔镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5558, 440229109, 440229, '官渡镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5559, 440229114, 440229, '新江镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5560, 440229106, 440229, '江尾镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5561, 440229113, 440229, '翁城镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5562, 440229450, 440229, '铁龙镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5563, 440229100, 440229, '龙仙镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5564, 440203, 440200, '武江区', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5565, 440203002, 440203, '惠民街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5566, 440203001, 440203, '新华街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5567, 440203103, 440203, '江湾镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5568, 440203101, 440203, '西河镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5569, 440203100, 440203, '西联镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5570, 440203104, 440203, '重阳镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5571, 440203102, 440203, '龙归镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5572, 440233, 440200, '新丰县', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5573, 440233001, 440233, '丰城街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5574, 440233105, 440233, '廻龙镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5575, 440233102, 440233, '梅坑镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5576, 440233103, 440233, '沙田镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5577, 440233104, 440233, '遥田镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5578, 440233101, 440233, '马头镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5579, 440233100, 440233, '黄礤镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5580, 440204, 440200, '浈江区', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5581, 440204001, 440204, '东河街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5582, 440204007, 440204, '乐园镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5583, 440204008, 440204, '十里亭镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5584, 440204005, 440204, '新韶镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5585, 440204006, 440204, '曲仁街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5586, 440204009, 440204, '犁市镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5587, 440204011, 440204, '田螺冲街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5588, 440204010, 440204, '花坪镇', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5589, 440204002, 440204, '车站街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5590, 440204003, 440204, '风采街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5591, 440300, 44, '深圳市', 1, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5592, 440306, 440300, '宝安区', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5593, 440306017, 440306, '新安街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5594, 440306023, 440306, '新桥街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5595, 440306024, 440306, '松岗街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5596, 440306022, 440306, '沙井街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5597, 440306025, 440306, '燕罗街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5598, 440306026, 440306, '石岩街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5599, 440306020, 440306, '福永街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5600, 440306021, 440306, '福海街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5601, 440306019, 440306, '航城街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5602, 440306018, 440306, '西乡街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5603, 440304, 440300, '福田区', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5604, 440304009, 440304, '华富街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5605, 440304011, 440304, '华强北街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5606, 440304001, 440304, '南园街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5607, 440304002, 440304, '园岭街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5608, 440304007, 440304, '梅林街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5609, 440304005, 440304, '沙头街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5610, 440304010, 440304, '福保街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5611, 440304004, 440304, '福田街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5612, 440304008, 440304, '莲花街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5613, 440304006, 440304, '香蜜湖街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5614, 440311, 440300, '光明区', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5615, 440311001, 440311, '光明街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5616, 440311002, 440311, '公明街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5617, 440311004, 440311, '凤凰街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5618, 440311003, 440311, '新湖街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5619, 440311005, 440311, '玉塘街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5620, 440311006, 440311, '马田街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5621, 440307, 440300, '龙岗区', 2, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5622, 440307012, 440307, '南湾街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5623, 440307011, 440307, '南澳街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5624, 440307018, 440307, '吉华街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5625, 440307020, 440307, '园山街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5626, 440307013, 440307, '坂田街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5627, 440307006, 440307, '坪地街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5628, 440307010, 440307, '大鹏街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5629, 440307019, 440307, '宝龙街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5630, 440307014, 440307, '布吉街道', 3, '2022-03-28 15:27:38', '2022-03-28 15:27:38', NULL); +INSERT INTO `address` VALUES (5631, 440307003, 440307, '平湖街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5632, 440307017, 440307, '横岗街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5633, 440307009, 440307, '葵涌街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5634, 440307015, 440307, '龙城街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5635, 440307016, 440307, '龙岗街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5636, 440309, 440300, '龙华区', 2, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5637, 440309004, 440309, '大浪街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5638, 440309002, 440309, '民治街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5639, 440309005, 440309, '福城街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5640, 440309001, 440309, '观湖街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5641, 440309006, 440309, '观澜街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5642, 440309003, 440309, '龙华街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5643, 440303, 440300, '罗湖区', 2, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5644, 440303009, 440303, '东晓街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5645, 440303007, 440303, '东湖街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5646, 440303003, 440303, '东门街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5647, 440303005, 440303, '南湖街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5648, 440303001, 440303, '桂园街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5649, 440303010, 440303, '清水河街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5650, 440303006, 440303, '笋岗街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5651, 440303004, 440303, '翠竹街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5652, 440303008, 440303, '莲塘街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5653, 440303002, 440303, '黄贝街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5654, 440305, 440300, '南山区', 2, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5655, 440305001, 440305, '南头街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5656, 440305002, 440305, '南山街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5657, 440305006, 440305, '招商街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5658, 440305008, 440305, '桃源街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5659, 440305003, 440305, '沙河街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5660, 440305007, 440305, '粤海街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5661, 440305005, 440305, '蛇口街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5662, 440305009, 440305, '西丽街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5663, 440310, 440300, '坪山区', 2, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5664, 440310005, 440310, '坑梓街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5665, 440310001, 440310, '坪山街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5666, 440310004, 440310, '石井街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5667, 440310003, 440310, '碧岭街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5668, 440310002, 440310, '马峦街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5669, 440310006, 440310, '龙田街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5670, 440308, 440300, '盐田区', 2, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5671, 440308001, 440308, '梅沙街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5672, 440308003, 440308, '沙头角街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5673, 440308004, 440308, '海山街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5674, 440308002, 440308, '盐田街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5675, 441700, 44, '阳江市', 1, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5676, 441702, 441700, '江城区', 2, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5677, 441702004, 441702, '中洲街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5678, 441702001, 441702, '南恩街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5679, 441702106, 441702, '双捷镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5680, 441702006, 441702, '城东街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5681, 441702003, 441702, '城北街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5682, 441702002, 441702, '城南街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5683, 441702009, 441702, '城西街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5684, 441702102, 441702, '埠场镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5685, 441702008, 441702, '岗列街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5686, 441702103, 441702, '平冈镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5687, 441702104, 441702, '海陵镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5688, 441702011, 441702, '白沙街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5689, 441702105, 441702, '闸坡镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5690, 441781, 441700, '阳春市', 2, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5691, 441781114, 441781, '三甲镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5692, 441781117, 441781, '八甲镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5693, 441781116, 441781, '双滘镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5694, 441781106, 441781, '合水镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5695, 441781108, 441781, '圭岗镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5696, 441781111, 441781, '岗美镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5697, 441781001, 441781, '春城街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5698, 441781105, 441781, '春湾镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5699, 441781102, 441781, '松柏镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5700, 441781109, 441781, '永宁镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5701, 441781112, 441781, '河口镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5702, 441781101, 441781, '河朗镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5703, 441781411, 441781, '河西街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5704, 441781113, 441781, '潭水镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5705, 441781103, 441781, '石望镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5706, 441781107, 441781, '陂面镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5707, 441781110, 441781, '马水镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5708, 441704, 441700, '阳东区', 2, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5709, 441704100, 441704, '东城镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5710, 441704103, 441704, '东平镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5711, 441704101, 441704, '北惯镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5712, 441704107, 441704, '合山镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5713, 441704108, 441704, '塘坪镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5714, 441704109, 441704, '大八镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5715, 441704105, 441704, '大沟镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5716, 441704106, 441704, '新洲镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5717, 441704110, 441704, '红丰镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5718, 441704102, 441704, '那龙镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5719, 441704104, 441704, '雅韶镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5720, 441721, 441700, '阳西县', 2, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5721, 441721103, 441721, '上洋镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5722, 441721106, 441721, '儒洞镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5723, 441721102, 441721, '塘口镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5724, 441721107, 441721, '新圩镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5725, 441721105, 441721, '沙扒镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5726, 441721104, 441721, '溪头镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5727, 441721101, 441721, '程村镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5728, 441721100, 441721, '织篢镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5729, 445300, 44, '云浮市', 1, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5730, 445381, 445300, '罗定市', 2, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5731, 445381102, 445381, '分界镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5732, 445381118, 445381, '加益镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5733, 445381110, 445381, '华石镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5734, 445381004, 445381, '双东街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5735, 445381109, 445381, '围底镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5736, 445381101, 445381, '太平镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5737, 445381111, 445381, '榃滨镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5738, 445381116, 445381, '泗纶镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5739, 445381106, 445381, '满塘镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5740, 445381114, 445381, '生江镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5741, 445381002, 445381, '素龙街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5742, 445381001, 445381, '罗城街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5743, 445381104, 445381, '罗平镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5744, 445381100, 445381, '罗镜镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5745, 445381105, 445381, '船步镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5746, 445381107, 445381, '苹塘镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5747, 445381115, 445381, '连州镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5748, 445381108, 445381, '金鸡镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5749, 445381003, 445381, '附城街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5750, 445381113, 445381, '黎少镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5751, 445381119, 445381, '龙湾镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5752, 445321, 445300, '新兴县', 2, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5753, 445321105, 445321, '东成镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5754, 445321109, 445321, '六祖镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5755, 445321110, 445321, '大江镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5756, 445321112, 445321, '天堂镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5757, 445321107, 445321, '太平镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5758, 445321100, 445321, '新城镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5759, 445321103, 445321, '水台镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5760, 445321113, 445321, '河头镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5761, 445321104, 445321, '稔村镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5762, 445321114, 445321, '簕竹镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5763, 445321101, 445321, '车岗镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5764, 445321108, 445321, '里洞镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5765, 445303, 445300, '云安区', 2, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5766, 445303100, 445303, '六都镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5767, 445303104, 445303, '富林镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5768, 445303102, 445303, '白石镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5769, 445303109, 445303, '石城镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5770, 445303110, 445303, '都杨镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5771, 445303103, 445303, '镇安镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5772, 445303101, 445303, '高村镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5773, 445322, 445300, '郁南县', 2, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5774, 445322114, 445322, '东坝镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5775, 445322110, 445322, '千官镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5776, 445322117, 445322, '南江口镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5777, 445322116, 445322, '历洞镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5778, 445322108, 445322, '大方镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5779, 445322111, 445322, '大湾镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5780, 445322113, 445322, '宋桂镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5781, 445322106, 445322, '宝珠镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5782, 445322101, 445322, '平台镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5783, 445322105, 445322, '建城镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5784, 445322102, 445322, '桂圩镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5785, 445322112, 445322, '河口镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5786, 445322115, 445322, '连滩镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5787, 445322104, 445322, '通门镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5788, 445322100, 445322, '都城镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5789, 445302, 445300, '云城区', 2, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5790, 445302001, 445302, '云城街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5791, 445302104, 445302, '前锋镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5792, 445302105, 445302, '南盛镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5793, 445302004, 445302, '安塘街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5794, 445302103, 445302, '思劳镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5795, 445302003, 445302, '河口街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5796, 445302102, 445302, '腰古镇', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5797, 445302002, 445302, '高峰街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5798, 440800, 44, '湛江市', 1, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5799, 440802, 440800, '赤坎区', 2, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5800, 440802001, 440802, '中华街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5801, 440802004, 440802, '中山街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5802, 440802008, 440802, '北桥街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5803, 440802007, 440802, '南桥街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5804, 440802002, 440802, '寸金街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5805, 440802003, 440802, '民主街道', 3, '2022-03-28 15:27:39', '2022-03-28 15:27:39', NULL); +INSERT INTO `address` VALUES (5806, 440802005, 440802, '沙湾街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5807, 440802006, 440802, '调顺街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5808, 440882, 440800, '雷州市', 2, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5809, 440882110, 440882, '东里镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5810, 440882115, 440882, '乌石镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5811, 440882105, 440882, '企水镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5812, 440882114, 440882, '北和镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5813, 440882108, 440882, '南兴镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5814, 440882104, 440882, '唐家镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5815, 440882102, 440882, '客路镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5816, 440882003, 440882, '新城街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5817, 440882103, 440882, '杨家镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5818, 440882107, 440882, '松竹镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5819, 440882101, 440882, '沈塘镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5820, 440882100, 440882, '白沙镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5821, 440882106, 440882, '纪家镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5822, 440882113, 440882, '英利镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5823, 440882002, 440882, '西湖街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5824, 440882116, 440882, '覃斗镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5825, 440882111, 440882, '调风镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5826, 440882117, 440882, '附城镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5827, 440882001, 440882, '雷城街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5828, 440882109, 440882, '雷高镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5829, 440882112, 440882, '龙门镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5830, 440881, 440800, '廉江市', 2, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5831, 440881103, 440881, '吉水镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5832, 440881118, 440881, '和寮镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5833, 440881003, 440881, '城北街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5834, 440881002, 440881, '城南街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5835, 440881117, 440881, '塘蓬镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5836, 440881108, 440881, '安铺镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5837, 440881102, 440881, '新民镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5838, 440881107, 440881, '横山镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5839, 440881104, 440881, '河唇镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5840, 440881101, 440881, '石城镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5841, 440881113, 440881, '石岭镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5842, 440881105, 440881, '石角镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5843, 440881115, 440881, '石颈镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5844, 440881001, 440881, '罗州街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5845, 440881106, 440881, '良垌镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5846, 440881109, 440881, '营仔镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5847, 440881111, 440881, '车板镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5848, 440881116, 440881, '长山镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5849, 440881114, 440881, '雅塘镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5850, 440881110, 440881, '青平镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5851, 440881112, 440881, '高桥镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5852, 440811, 440800, '麻章区', 2, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5853, 440811170, 440811, '东山镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5854, 440811171, 440811, '东简镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5855, 440811101, 440811, '太平镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5856, 440811172, 440811, '民安镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5857, 440811102, 440811, '湖光镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5858, 440811173, 440811, '硇洲镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5859, 440811100, 440811, '麻章镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5860, 440804, 440800, '坡头区', 2, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5861, 440804102, 440804, '乾塘镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5862, 440804100, 440804, '南三镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5863, 440804001, 440804, '南调街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5864, 440804101, 440804, '坡头镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5865, 440804104, 440804, '官渡镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5866, 440804002, 440804, '麻斜街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5867, 440804103, 440804, '龙头镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5868, 440823, 440800, '遂溪县', 2, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5869, 440823108, 440823, '乌塘镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5870, 440823104, 440823, '乐民镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5871, 440823111, 440823, '北坡镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5872, 440823107, 440823, '城月镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5873, 440823110, 440823, '岭北镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5874, 440823109, 440823, '建新镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5875, 440823106, 440823, '杨柑镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5876, 440823105, 440823, '江洪镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5877, 440823114, 440823, '河头镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5878, 440823102, 440823, '洋青镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5879, 440823112, 440823, '港门镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5880, 440823103, 440823, '界炮镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5881, 440823113, 440823, '草潭镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5882, 440823100, 440823, '遂城镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5883, 440823101, 440823, '黄略镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5884, 440883, 440800, '吴川市', 2, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5885, 440883111, 440883, '兰石镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5886, 440883004, 440883, '博铺街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5887, 440883106, 440883, '吴阳镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5888, 440883002, 440883, '塘尾街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5889, 440883107, 440883, '塘缀镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5890, 440883003, 440883, '大山江街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5891, 440883104, 440883, '振文镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5892, 440883001, 440883, '梅菉街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5893, 440883105, 440883, '樟铺镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5894, 440883100, 440883, '浅水镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5895, 440883005, 440883, '海滨街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5896, 440883103, 440883, '王村港镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5897, 440883102, 440883, '覃巴镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5898, 440883101, 440883, '长岐镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5899, 440883109, 440883, '黄坡镇', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5900, 440803, 440800, '霞山区', 2, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5901, 440803010, 440803, '东新街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5902, 440803071, 440803, '乐华街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5903, 440803004, 440803, '友谊街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5904, 440803003, 440803, '工农街道', 3, '2022-03-28 15:27:40', '2022-03-28 15:27:40', NULL); +INSERT INTO `address` VALUES (5905, 440803009, 440803, '建设街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5906, 440803005, 440803, '新兴街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5907, 440803011, 440803, '新园街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5908, 440803070, 440803, '泉庄街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5909, 440803012, 440803, '海头街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5910, 440803006, 440803, '海滨街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5911, 440803002, 440803, '爱国街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5912, 440803001, 440803, '解放街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5913, 440825, 440800, '徐闻县', 2, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5914, 440825107, 440825, '下桥镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5915, 440825109, 440825, '下洋镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5916, 440825105, 440825, '前山镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5917, 440825113, 440825, '南山镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5918, 440825111, 440825, '和安镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5919, 440825201, 440825, '城北乡', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5920, 440825001, 440825, '徐城街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5921, 440825112, 440825, '新寮镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5922, 440825104, 440825, '曲界镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5923, 440825103, 440825, '海安镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5924, 440825106, 440825, '西连镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5925, 440825204, 440825, '角尾乡', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5926, 440825102, 440825, '迈陈镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5927, 440825110, 440825, '锦和镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5928, 440825108, 440825, '龙塘镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5929, 441200, 44, '肇庆市', 1, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5930, 441226, 441200, '德庆县', 2, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5931, 441226114, 441226, '九市镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5932, 441226112, 441226, '凤村镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5933, 441226102, 441226, '回龙镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5934, 441226103, 441226, '官圩镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5935, 441226001, 441226, '德城街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5936, 441226113, 441226, '悦城镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5937, 441226111, 441226, '播植镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5938, 441226101, 441226, '新圩镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5939, 441226110, 441226, '武垄镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5940, 441226109, 441226, '永丰镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5941, 441226107, 441226, '莫村镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5942, 441226105, 441226, '马圩镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5943, 441226106, 441226, '高良镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5944, 441203, 441200, '鼎湖区', 2, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5945, 441203103, 441203, '凤凰镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5946, 441203001, 441203, '坑口街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5947, 441203003, 441203, '广利街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5948, 441203002, 441203, '桂城街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5949, 441203101, 441203, '永安镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5950, 441203102, 441203, '沙浦镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5951, 441203104, 441203, '莲花镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5952, 441202, 441200, '端州区', 2, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5953, 441202001, 441202, '城东街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5954, 441202003, 441202, '城西街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5955, 441202101, 441202, '睦岗街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5956, 441202100, 441202, '黄岗街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5957, 441225, 441200, '封开县', 2, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5958, 441225111, 441225, '南丰镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5959, 441225103, 441225, '大洲镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5960, 441225112, 441225, '大玉口镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5961, 441225110, 441225, '平凤镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5962, 441225107, 441225, '杏花镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5963, 441225100, 441225, '江口街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5964, 441225101, 441225, '江川镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5965, 441225105, 441225, '河儿口镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5966, 441225104, 441225, '渔涝镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5967, 441225102, 441225, '白垢镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5968, 441225108, 441225, '罗董镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5969, 441225106, 441225, '莲都镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5970, 441225113, 441225, '都平镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5971, 441225114, 441225, '金装镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5972, 441225115, 441225, '长安镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5973, 441225109, 441225, '长岗镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5974, 441204, 441200, '高要区', 2, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5975, 441204101, 441204, '乐城镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5976, 441204001, 441204, '南岸街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5977, 441204112, 441204, '回龙镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5978, 441204106, 441204, '大湾镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5979, 441204105, 441204, '小湘镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5980, 441204107, 441204, '新桥镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5981, 441204102, 441204, '水南镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5982, 441204100, 441204, '河台镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5983, 441204110, 441204, '活道镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5984, 441204113, 441204, '白土镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5985, 441204108, 441204, '白诸镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5986, 441204103, 441204, '禄步镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5987, 441204109, 441204, '莲塘镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5988, 441204116, 441204, '蚬岗镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5989, 441204111, 441204, '蛟塘镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5990, 441204115, 441204, '金利镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5991, 441204114, 441204, '金渡镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5992, 441223, 441200, '广宁县', 2, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5993, 441223111, 441223, '五和镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5994, 441223106, 441223, '北市镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5995, 441223109, 441223, '南街街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5996, 441223115, 441223, '古水镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5997, 441223107, 441223, '坑口镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5998, 441223110, 441223, '宾亨镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (5999, 441223100, 441223, '排沙镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6000, 441223113, 441223, '木格镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6001, 441223112, 441223, '横山镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6002, 441223103, 441223, '江屯镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6003, 441223116, 441223, '洲仔镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6004, 441223102, 441223, '潭布镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6005, 441223114, 441223, '石咀镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6006, 441223105, 441223, '螺岗镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6007, 441223108, 441223, '赤坑镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6008, 441224, 441200, '怀集县', 2, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6009, 441224200, 441224, '下帅壮族瑶族乡', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6010, 441224116, 441224, '中洲镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6011, 441224110, 441224, '冷坑镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6012, 441224105, 441224, '凤岗镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6013, 441224102, 441224, '坳仔镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6014, 441224108, 441224, '大岗镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6015, 441224109, 441224, '岗坪镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6016, 441224101, 441224, '幸福街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6017, 441224100, 441224, '怀城街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6018, 441224115, 441224, '桥头镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6019, 441224107, 441224, '梁村镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6020, 441224113, 441224, '永固镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6021, 441224103, 441224, '汶朗镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6022, 441224106, 441224, '洽水镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6023, 441224104, 441224, '甘洒镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6024, 441224112, 441224, '蓝钟镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6025, 441224114, 441224, '诗洞镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6026, 441224118, 441224, '连麦镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6027, 441224111, 441224, '马宁镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6028, 441284, 441200, '四会市', 2, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6029, 441284113, 441284, '下茆镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6030, 441284002, 441284, '东城街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6031, 441284101, 441284, '地豆镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6032, 441284001, 441284, '城中街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6033, 441284105, 441284, '大沙镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6034, 441284102, 441284, '威整镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6035, 441284110, 441284, '江谷镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6036, 441284107, 441284, '石狗镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6037, 441284103, 441284, '罗源镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6038, 441284450, 441284, '肇庆高新技术产业开发区', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6039, 441284003, 441284, '贞山街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6040, 441284104, 441284, '迳口镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6041, 441284108, 441284, '黄田镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6042, 441284100, 441284, '龙甫镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6043, 442000, 442000, '中山市', 2, '2022-03-28 15:27:41', '2022-03-29 10:35:51', NULL); +INSERT INTO `address` VALUES (6044, 442000114, 442000, '三乡镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6045, 442000109, 442000, '三角镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6046, 442000103, 442000, '东凤镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6047, 442000002, 442000, '东区街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6048, 442000104, 442000, '东升镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6049, 442000006, 442000, '五桂山街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6050, 442000005, 442000, '南区街道', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6051, 442000111, 442000, '南头镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6052, 442000113, 442000, '南朗镇', 3, '2022-03-28 15:27:41', '2022-03-28 15:27:41', NULL); +INSERT INTO `address` VALUES (6053, 442000105, 442000, '古镇镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6054, 442000107, 442000, '坦洲镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6055, 442000116, 442000, '大涌镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6056, 442000100, 442000, '小榄镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6057, 442000115, 442000, '板芙镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6058, 442000110, 442000, '横栏镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6059, 442000102, 442000, '民众镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6060, 442000106, 442000, '沙溪镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6061, 442000108, 442000, '港口镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6062, 442000003, 442000, '火炬开发区街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6063, 442000001, 442000, '石岐区街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6064, 442000117, 442000, '神湾镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6065, 442000004, 442000, '西区街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6066, 442000112, 442000, '阜沙镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6067, 442000101, 442000, '黄圃镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6068, 440400, 44, '珠海市', 1, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6069, 440403, 440400, '斗门区', 2, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6070, 440403105, 440403, '乾务镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6071, 440403107, 440403, '井岸镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6072, 440403103, 440403, '斗门镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6073, 440403106, 440403, '白蕉镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6074, 440403001, 440403, '白藤街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6075, 440403100, 440403, '莲洲镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6076, 440404, 440400, '金湾区', 2, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6077, 440404100, 440404, '三灶镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6078, 440404101, 440404, '南水镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6079, 440404104, 440404, '平沙镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6080, 440404103, 440404, '红旗镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6081, 440402, 440400, '香洲区', 2, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6082, 440402106, 440402, '万山镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6083, 440402003, 440402, '前山街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6084, 440402102, 440402, '南屏镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6085, 440402004, 440402, '吉大街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6086, 440402100, 440402, '唐家湾镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6087, 440402107, 440402, '担杆镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6088, 440402005, 440402, '拱北街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6089, 440402105, 440402, '桂山镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6090, 440402002, 440402, '梅华街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6091, 440402104, 440402, '横琴镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6092, 440402008, 440402, '湾仔街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6093, 440402007, 440402, '狮山街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6094, 440402001, 440402, '翠香街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6095, 440402006, 440402, '香湾街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6096, 62, 0, '甘肃省', 0, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6097, 620400, 62, '白银市', 1, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6098, 620402, 620400, '白银区', 2, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6099, 620402001, 620402, '人民路街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6100, 620402002, 620402, '公园路街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6101, 620402003, 620402, '四龙路街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6102, 620402101, 620402, '四龙镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6103, 620402004, 620402, '工农路街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6104, 620402201, 620402, '强湾乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6105, 620402202, 620402, '武川乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6106, 620402100, 620402, '水川镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6107, 620402102, 620402, '王岘镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6108, 620402005, 620402, '纺织路街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6109, 620422, 620400, '会宁县', 2, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6110, 620422200, 620422, '丁家沟镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6111, 620422201, 620422, '中川镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6112, 620422100, 620422, '会师镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6113, 620422203, 620422, '侯家川镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6114, 620422204, 620422, '党家岘乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6115, 620422213, 620422, '八里湾乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6116, 620422223, 620422, '刘家寨子镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6117, 620422218, 620422, '四房吴镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6118, 620422221, 620422, '土门岘镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6119, 620422225, 620422, '土高山乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6120, 620422217, 620422, '大沟镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6121, 620422104, 620422, '太平店镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6122, 620422103, 620422, '头寨子镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6123, 620422214, 620422, '平头川镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6124, 620422222, 620422, '新塬镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6125, 620422227, 620422, '新庄镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6126, 620422202, 620422, '新添堡回族乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6127, 620422205, 620422, '杨崖集镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6128, 620422211, 620422, '柴家门镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6129, 620422220, 620422, '汉家岔镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6130, 620422102, 620422, '河畔镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6131, 620422105, 620422, '甘沟驿镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6132, 620422226, 620422, '白草塬镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6133, 620422209, 620422, '翟家所镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6134, 620422207, 620422, '老君坡镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6135, 620422224, 620422, '草滩镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6136, 620422101, 620422, '郭城驿镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6137, 620422215, 620422, '韩家集镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6138, 620421, 620400, '靖远县', 2, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6139, 620421203, 620421, '三滩镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6140, 620421213, 620421, '东升镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6141, 620421102, 620421, '东湾镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6142, 620421103, 620421, '乌兰镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6143, 620421212, 620421, '五合镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6144, 620421206, 620421, '兴隆乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6145, 620421209, 620421, '刘川镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6146, 620421101, 620421, '北湾镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6147, 620421214, 620421, '北滩镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6148, 620421207, 620421, '双龙镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6149, 620421205, 620421, '大芦镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6150, 620421200, 620421, '平堡镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6151, 620421215, 620421, '永新乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6152, 620421208, 620421, '石门乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6153, 620421202, 620421, '糜滩镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6154, 620421216, 620421, '若笠乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6155, 620421211, 620421, '靖安乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6156, 620421210, 620421, '高湾镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6157, 620403, 620400, '平川区', 2, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6158, 620403104, 620403, '共和镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6159, 620403003, 620403, '兴平路街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6160, 620403205, 620403, '复兴乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6161, 620403201, 620403, '宝积镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6162, 620403103, 620403, '水泉镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6163, 620403100, 620403, '王家山镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6164, 620403002, 620403, '电力路街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6165, 620403204, 620403, '种田乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6166, 620403004, 620403, '红会路街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6167, 620403001, 620403, '长征街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6168, 620403203, 620403, '黄峤镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6169, 620423, 620400, '景泰县', 2, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6170, 620423100, 620423, '一条山镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6171, 620423102, 620423, '上沙沃镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6172, 620423200, 620423, '中泉乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6173, 620423205, 620423, '五佛乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6174, 620423103, 620423, '喜泉镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6175, 620423203, 620423, '寺滩乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6176, 620423201, 620423, '正路乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6177, 620423207, 620423, '漫水滩乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6178, 620423105, 620423, '红水镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6179, 620423101, 620423, '芦阳镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6180, 620423104, 620423, '草窝滩镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6181, 621100, 62, '定西市', 1, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6182, 621102, 621100, '安定区', 2, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6183, 621102001, 621102, '中华路街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6184, 621102102, 621102, '内官营镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6185, 621102101, 621102, '凤翔镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6186, 621102109, 621102, '团结镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6187, 621102107, 621102, '宁远镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6188, 621102103, 621102, '巉口镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6189, 621102208, 621102, '新集乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6190, 621102108, 621102, '李家堡镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6191, 621102214, 621102, '杏园乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6192, 621102002, 621102, '永定路街道', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6193, 621102204, 621102, '白碌乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6194, 621102207, 621102, '石峡湾乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6195, 621102211, 621102, '石泉乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6196, 621102104, 621102, '称钩驿镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6197, 621102111, 621102, '符家川镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6198, 621102112, 621102, '葛家岔镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6199, 621102106, 621102, '西巩驿镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6200, 621102209, 621102, '青岚山乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6201, 621102110, 621102, '香泉镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6202, 621102210, 621102, '高峰乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6203, 621102105, 621102, '鲁家沟镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6204, 621124, 621100, '临洮县', 2, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6205, 621124201, 621124, '上营乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6206, 621124105, 621124, '中铺镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6207, 621124101, 621124, '八里铺镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6208, 621124111, 621124, '南屏镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6209, 621124104, 621124, '太石镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6210, 621124106, 621124, '峡口镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6211, 621124202, 621124, '康家集乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6212, 621124102, 621124, '新添镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6213, 621124100, 621124, '洮阳镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6214, 621124204, 621124, '漫洼乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6215, 621124109, 621124, '玉井镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6216, 621124108, 621124, '窑店镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6217, 621124203, 621124, '站滩乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6218, 621124200, 621124, '红旗乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6219, 621124110, 621124, '衙下集镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6220, 621124103, 621124, '辛店镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6221, 621124205, 621124, '连儿湾乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6222, 621124107, 621124, '龙门镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6223, 621122, 621100, '陇西县', 2, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6224, 621122106, 621122, '云田镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6225, 621122204, 621122, '双泉镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6226, 621122202, 621122, '和平乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6227, 621122201, 621122, '宏伟乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6228, 621122100, 621122, '巩昌镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6229, 621122205, 621122, '德兴乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6230, 621122101, 621122, '文峰镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6231, 621122207, 621122, '权家湾镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6232, 621122203, 621122, '柯寨镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6233, 621122206, 621122, '永吉乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6234, 621122200, 621122, '渭阳乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6235, 621122107, 621122, '碧岩镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6236, 621122104, 621122, '福星镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6237, 621122103, 621122, '菜子镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6238, 621122105, 621122, '通安驿镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6239, 621122102, 621122, '首阳镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6240, 621122108, 621122, '马河镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6241, 621126, 621100, '岷县', 2, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6242, 621126108, 621126, '中寨镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6243, 621126106, 621126, '十里镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6244, 621126202, 621126, '寺沟镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6245, 621126100, 621126, '岷阳镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6246, 621126103, 621126, '梅川镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6247, 621126200, 621126, '清水镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6248, 621126207, 621126, '申都乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6249, 621126205, 621126, '禾驮镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6250, 621126204, 621126, '秦许乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6251, 621126206, 621126, '维新镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6252, 621126107, 621126, '茶埠镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6253, 621126101, 621126, '蒲麻镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6254, 621126102, 621126, '西寨镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6255, 621126104, 621126, '西江镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6256, 621126208, 621126, '锁龙乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6257, 621126105, 621126, '闾井镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6258, 621126201, 621126, '马坞镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6259, 621126203, 621126, '麻子川镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6260, 621121, 621100, '通渭县', 2, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6261, 621121105, 621121, '义岗镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6262, 621121210, 621121, '什川镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6263, 621121216, 621121, '北城铺镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6264, 621121214, 621121, '华家岭镇', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6265, 621121215, 621121, '寺子乡', 3, '2022-03-28 15:27:42', '2022-03-28 15:27:42', NULL); +INSERT INTO `address` VALUES (6266, 621121104, 621121, '常家河镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6267, 621121100, 621121, '平襄镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6268, 621121203, 621121, '新景乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6269, 621121207, 621121, '李店乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6270, 621121103, 621121, '榜罗镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6271, 621121204, 621121, '碧玉镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6272, 621121212, 621121, '第三铺乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6273, 621121206, 621121, '襄南镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6274, 621121201, 621121, '陇山镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6275, 621121202, 621121, '陇川镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6276, 621121200, 621121, '陇阳镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6277, 621121101, 621121, '马营镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6278, 621121102, 621121, '鸡川镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6279, 621123, 621100, '渭源县', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6280, 621123208, 621123, '上湾镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6281, 621123103, 621123, '五竹镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6282, 621123102, 621123, '会川镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6283, 621123105, 621123, '北寨镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6284, 621123203, 621123, '大安乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6285, 621123209, 621123, '峡城乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6286, 621123206, 621123, '庆坪镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6287, 621123106, 621123, '新寨镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6288, 621123100, 621123, '清源镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6289, 621123210, 621123, '田家河乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6290, 621123207, 621123, '祁家庙镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6291, 621123204, 621123, '秦祁乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6292, 621123101, 621123, '莲峰镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6293, 621123104, 621123, '路园镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6294, 621123200, 621123, '锹峪镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6295, 621123107, 621123, '麻家集镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6296, 621125, 621100, '漳县', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6297, 621125101, 621125, '三岔镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6298, 621125209, 621125, '东泉乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6299, 621125205, 621125, '四族镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6300, 621125203, 621125, '大草滩镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6301, 621125102, 621125, '新寺镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6302, 621125208, 621125, '武当乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6303, 621125100, 621125, '武阳镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6304, 621125202, 621125, '殪虎桥镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6305, 621125201, 621125, '盐井镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6306, 621125206, 621125, '石川镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6307, 621125207, 621125, '贵清山镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6308, 621125103, 621125, '金钟镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6309, 621125204, 621125, '马泉乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6310, 623000, 62, '甘南藏族自治州', 1, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6311, 623024, 623000, '迭部县', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6312, 623024201, 623024, '卡坝乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6313, 623024206, 623024, '多儿乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6314, 623024203, 623024, '尼傲乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6315, 623024204, 623024, '旺藏镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6316, 623024207, 623024, '桑坝乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6317, 623024209, 623024, '洛大镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6318, 623024100, 623024, '电尕镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6319, 623024200, 623024, '益哇镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6320, 623024208, 623024, '腊子口镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6321, 623024202, 623024, '达拉乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6322, 623024205, 623024, '阿夏乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6323, 623001, 623000, '合作市', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6324, 623001002, 623001, '伊合昂街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6325, 623001202, 623001, '佐盖多玛乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6326, 623001203, 623001, '佐盖曼玛镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6327, 623001204, 623001, '勒秀镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6328, 623001200, 623001, '卡加曼乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6329, 623001201, 623001, '卡加道乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6330, 623001003, 623001, '坚木克尔街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6331, 623001001, 623001, '当周街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6332, 623001004, 623001, '通钦街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6333, 623001205, 623001, '那吾镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6334, 623021, 623000, '临潭县', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6335, 623021208, 623021, '三岔乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6336, 623021212, 623021, '八角镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6337, 623021102, 623021, '冶力关镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6338, 623021202, 623021, '卓洛回族乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6339, 623021201, 623021, '古战回族镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6340, 623021100, 623021, '城关镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6341, 623021206, 623021, '店子镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6342, 623021101, 623021, '新城镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6343, 623021200, 623021, '术布乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6344, 623021207, 623021, '洮滨镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6345, 623021205, 623021, '流顺镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6346, 623021209, 623021, '王旗镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6347, 623021210, 623021, '石门乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6348, 623021204, 623021, '羊永镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6349, 623021211, 623021, '羊沙镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6350, 623021203, 623021, '长川乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6351, 623026, 623000, '碌曲县', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6352, 623026401, 623026, '双岔林场', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6353, 623026203, 623026, '双岔镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6354, 623026200, 623026, '尕海镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6355, 623026202, 623026, '拉仁关乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6356, 623026400, 623026, '李恰如种畜场', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6357, 623026101, 623026, '玛艾镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6358, 623026201, 623026, '西仓镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6359, 623026100, 623026, '郎木寺镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6360, 623026204, 623026, '阿拉乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6361, 623025, 623000, '玛曲县', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6362, 623025100, 623025, '尼玛镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6363, 623025206, 623025, '曼日玛镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6364, 623025203, 623025, '木西合乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6365, 623025201, 623025, '欧拉秀玛乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6366, 623025200, 623025, '欧拉镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6367, 623025400, 623025, '河曲马场', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6368, 623025205, 623025, '采日玛镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6369, 623025202, 623025, '阿万仓镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6370, 623025204, 623025, '齐哈玛镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6371, 623027, 623000, '夏河县', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6372, 623027207, 623027, '博拉镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6373, 623027208, 623027, '吉仓乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6374, 623027205, 623027, '唐尕昂乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6375, 623027206, 623027, '扎油乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6376, 623027100, 623027, '拉卜楞镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6377, 623027204, 623027, '曲奥乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6378, 623027200, 623027, '桑科镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6379, 623027101, 623027, '王格尔塘镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6380, 623027201, 623027, '甘加镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6381, 623027209, 623027, '科才镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6382, 623027202, 623027, '达麦乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6383, 623027102, 623027, '阿木去乎镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6384, 623027203, 623027, '麻当镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6385, 623023, 623000, '舟曲县', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6386, 623023208, 623023, '东山镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6387, 623023211, 623023, '八楞乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6388, 623023209, 623023, '南峪乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6389, 623023216, 623023, '博峪镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6390, 623023206, 623023, '坪定镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6391, 623023100, 623023, '城关镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6392, 623023202, 623023, '大峪镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6393, 623023101, 623023, '大川镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6394, 623023102, 623023, '峰迭镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6395, 623023201, 623023, '巴藏镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6396, 623023204, 623023, '憨班镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6397, 623023214, 623023, '拱坝镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6398, 623023213, 623023, '插岗乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6399, 623023215, 623023, '曲告纳镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6400, 623023200, 623023, '曲瓦乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6401, 623023210, 623023, '果耶镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6402, 623023212, 623023, '武坪镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6403, 623023207, 623023, '江盘镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6404, 623023203, 623023, '立节镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6405, 623022, 623000, '卓尼县', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6406, 623022202, 623022, '刀告乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6407, 623022209, 623022, '勺哇土族乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6408, 623022201, 623022, '喀尔钦镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6409, 623022204, 623022, '完冒镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6410, 623022203, 623022, '尼巴镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6411, 623022208, 623022, '康多乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6412, 623022207, 623022, '恰盖乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6413, 623022102, 623022, '扎古录镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6414, 623022101, 623022, '木耳镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6415, 623022100, 623022, '柳林镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6416, 623022210, 623022, '洮砚镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6417, 623022206, 623022, '申藏镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6418, 623022200, 623022, '纳浪镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6419, 623022211, 623022, '藏巴哇镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6420, 623022205, 623022, '阿子滩镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6421, 620200, 620200, '嘉峪关市', 2, '2022-03-28 15:27:43', '2022-04-02 12:11:43', NULL); +INSERT INTO `address` VALUES (6422, 620201010, 620200, '峪泉镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6423, 620201011, 620200, '文殊镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6424, 620201009, 620200, '新城镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6425, 620201002, 620200, '钢城街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6426, 620201007, 620200, '雄关街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6427, 620300, 62, '金昌市', 1, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6428, 620302, 620300, '金川区', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6429, 620302003, 620302, '北京路街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6430, 620302101, 620302, '双湾镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6431, 620302100, 620302, '宁远堡镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6432, 620302006, 620302, '广州路街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6433, 620302005, 620302, '新华路街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6434, 620302002, 620302, '桂林路街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6435, 620302001, 620302, '滨河路街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6436, 620302004, 620302, '金川路街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6437, 620321, 620300, '永昌县', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6438, 620321104, 620321, '东寨镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6439, 620321202, 620321, '六坝镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6440, 620321203, 620321, '南坝乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6441, 620321100, 620321, '城关镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6442, 620321102, 620321, '新城子镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6443, 620321103, 620321, '朱王堡镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6444, 620321105, 620321, '水源镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6445, 620321101, 620321, '河西堡镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6446, 620321201, 620321, '焦家庄镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6447, 620321200, 620321, '红山窑镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6448, 620900, 62, '酒泉市', 1, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6449, 620924, 620900, '阿克塞哈萨克族自治县', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6450, 620924100, 620924, '红柳湾镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6451, 620924200, 620924, '阿克旗乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6452, 620924203, 620924, '阿勒腾乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6453, 620982, 620900, '敦煌市', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6454, 620982100, 620982, '七里镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6455, 620982106, 620982, '月牙泉镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6456, 620982101, 620982, '沙州镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6457, 620982102, 620982, '肃州镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6458, 620982103, 620982, '莫高镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6459, 620982104, 620982, '转渠口镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6460, 620982201, 620982, '郭家堡镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6461, 620982105, 620982, '阳关镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6462, 620982204, 620982, '黄渠镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6463, 620922, 620900, '瓜州县', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6464, 620922212, 620922, '七墩回族东乡族乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6465, 620922102, 620922, '三道沟镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6466, 620922103, 620922, '南岔镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6467, 620922213, 620922, '双塔镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6468, 620922400, 620922, '国营小宛农场', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6469, 620922201, 620922, '布隆吉乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6470, 620922214, 620922, '广至藏族乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6471, 620922101, 620922, '柳园镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6472, 620922216, 620922, '梁湖乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6473, 620922215, 620922, '沙河回族乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6474, 620922200, 620922, '河东镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6475, 620922100, 620922, '渊泉镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6476, 620922204, 620922, '瓜州镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6477, 620922209, 620922, '腰站子东乡族镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6478, 620922203, 620922, '西湖镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6479, 620922104, 620922, '锁阳城镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6480, 620921, 620900, '金塔县', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6481, 620921201, 620921, '三合乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6482, 620921103, 620921, '东坝镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6483, 620921100, 620921, '中东镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6484, 620921204, 620921, '古城乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6485, 620921203, 620921, '大庄子镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6486, 620921209, 620921, '羊井子湾乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6487, 620921104, 620921, '航天镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6488, 620921205, 620921, '西坝镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6489, 620921102, 620921, '金塔镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6490, 620921101, 620921, '鼎新镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6491, 620923, 620900, '肃北蒙古族自治县', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6492, 620923100, 620923, '党城湾镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6493, 620923203, 620923, '盐池湾乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6494, 620923202, 620923, '石包城乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6495, 620923101, 620923, '马鬃山镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6496, 620902, 620900, '肃州区', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6497, 620902105, 620902, '三墩镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6498, 620902104, 620902, '上坝镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6499, 620902205, 620902, '下河清镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6500, 620902001, 620902, '东北街街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6501, 620902002, 620902, '东南街街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6502, 620902209, 620902, '东洞镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6503, 620902211, 620902, '丰乐镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6504, 620902003, 620902, '工业园街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6505, 620902102, 620902, '总寨镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6506, 620902004, 620902, '新城街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6507, 620902202, 620902, '果园镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6508, 620902201, 620902, '泉湖镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6509, 620902101, 620902, '清水镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6510, 620902402, 620902, '玉门油田生活基地街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6511, 620902005, 620902, '西北街街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6512, 620902006, 620902, '西南街街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6513, 620902200, 620902, '西峰镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6514, 620902100, 620902, '西洞镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6515, 620902103, 620902, '金佛寺镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6516, 620902208, 620902, '铧尖镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6517, 620902106, 620902, '银达镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6518, 620902207, 620902, '黄泥堡乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6519, 620981, 620900, '玉门市', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6520, 620981007, 620981, '下西号镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6521, 620981001, 620981, '东镇街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6522, 620981015, 620981, '六墩镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6523, 620981016, 620981, '国营饮马农场', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6524, 620981017, 620981, '国营黄花农场', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6525, 620981012, 620981, '小金湾乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6526, 620981002, 620981, '新市区街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6527, 620981010, 620981, '昌马镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6528, 620981009, 620981, '柳河镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6529, 620981013, 620981, '柳湖镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6530, 620981011, 620981, '清泉乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6531, 620981014, 620981, '独山子乡', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6532, 620981004, 620981, '玉门镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6533, 620981006, 620981, '花海镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6534, 620981005, 620981, '赤金镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6535, 620981008, 620981, '黄闸湾镇', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6536, 620100, 62, '兰州市', 1, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6537, 620105, 620100, '安宁区', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6538, 620105007, 620105, '刘家堡街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6539, 620105004, 620105, '十里店街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6540, 620105001, 620105, '培黎街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6541, 620105005, 620105, '孔家崖街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6542, 620105008, 620105, '安宁堡街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6543, 620105003, 620105, '沙井驿街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6544, 620105002, 620105, '西路街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6545, 620105006, 620105, '银滩路街道', 3, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6546, 620102, 620100, '城关区', 2, '2022-03-28 15:27:43', '2022-03-28 15:27:43', NULL); +INSERT INTO `address` VALUES (6547, 620102015, 620102, '东岗街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6548, 620102017, 620102, '东岗西路街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6549, 620102004, 620102, '临夏路街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6550, 620102006, 620102, '五泉街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6551, 620102010, 620102, '伏龙坪街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6552, 620102022, 620102, '嘉峪关路街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6553, 620102016, 620102, '团结新村街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6554, 620102009, 620102, '广武门街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6555, 620102002, 620102, '张掖路街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6556, 620102014, 620102, '拱星墩街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6557, 620102020, 620102, '渭源路街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6558, 620102013, 620102, '火车站街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6559, 620102023, 620102, '焦家湾街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6560, 620102007, 620102, '白银路街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6561, 620102008, 620102, '皋兰路街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6562, 620102021, 620102, '盐场路街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6563, 620102012, 620102, '草场街街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6564, 620102001, 620102, '酒泉路街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6565, 620102018, 620102, '铁路东村街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6566, 620102019, 620102, '铁路西村街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6567, 620102005, 620102, '雁北街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6568, 620102003, 620102, '雁南街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6569, 620102402, 620102, '雁园街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6570, 620102024, 620102, '青白石街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6571, 620102011, 620102, '靖远路街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6572, 620102400, 620102, '高新区', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6573, 620122, 620100, '皋兰县', 2, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6574, 620122104, 620122, '九合镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6575, 620122103, 620122, '什川镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6576, 620122102, 620122, '忠和镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6577, 620122105, 620122, '水阜镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6578, 620122100, 620122, '石洞镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6579, 620122200, 620122, '黑石镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6580, 620111, 620100, '红古区', 2, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6581, 620111002, 620111, '下窑街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6582, 620111103, 620111, '平安镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6583, 620111101, 620111, '海石湾镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6584, 620111003, 620111, '矿区街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6585, 620111001, 620111, '窑街街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6586, 620111200, 620111, '红古镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6587, 620111102, 620111, '花庄镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6588, 620171, 620100, '兰州新区', 2, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6589, 620171107, 620171, '中川镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6590, 620171108, 620171, '秦川镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6591, 620171101, 620171, '西岔镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6592, 620103, 620100, '七里河区', 2, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6593, 620103101, 620103, '八里镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6594, 620103008, 620103, '土门墩街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6595, 620103003, 620103, '建兰路街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6596, 620103102, 620103, '彭家坪镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6597, 620103004, 620103, '敦煌路街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6598, 620103006, 620103, '晏家坪街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6599, 620103009, 620103, '秀川街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6600, 620103001, 620103, '西园街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6601, 620103103, 620103, '西果园镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6602, 620103002, 620103, '西湖街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6603, 620103005, 620103, '西站街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6604, 620103100, 620103, '阿干镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6605, 620103200, 620103, '魏岭乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6606, 620103201, 620103, '黄峪镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6607, 620103007, 620103, '龚家湾街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6608, 620104, 620100, '西固区', 2, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6609, 620104101, 620104, '东川镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6610, 620104006, 620104, '临洮街街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6611, 620104002, 620104, '先锋路街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6612, 620104005, 620104, '四季青街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6613, 620104100, 620104, '新城镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6614, 620104203, 620104, '柳泉镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6615, 620104201, 620104, '河口镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6616, 620104003, 620104, '福利路街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6617, 620104004, 620104, '西固城街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6618, 620104007, 620104, '西柳沟街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6619, 620104200, 620104, '达川镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6620, 620104204, 620104, '金沟乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6621, 620104001, 620104, '陈坪街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6622, 620121, 620100, '永登县', 2, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6623, 620121204, 620121, '七山乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6624, 620121112, 620121, '上川镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6625, 620121102, 620121, '中堡镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6626, 620121201, 620121, '坪城乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6627, 620121100, 620121, '城关镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6628, 620121109, 620121, '大同镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6629, 620121200, 620121, '柳树镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6630, 620121111, 620121, '树屏镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6631, 620121103, 620121, '武胜驿镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6632, 620121202, 620121, '民乐乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6633, 620121104, 620121, '河桥镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6634, 620121101, 620121, '红城镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6635, 620121106, 620121, '苦水镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6636, 620121105, 620121, '连城镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6637, 620121203, 620121, '通远镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6638, 620121110, 620121, '龙泉寺镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6639, 620123, 620100, '榆中县', 2, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6640, 620123201, 620123, '三角城乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6641, 620123213, 620123, '上花岔乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6642, 620123210, 620123, '中连川乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6643, 620123104, 620123, '和平镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6644, 620123214, 620123, '哈岘乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6645, 620123212, 620123, '园子岔乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6646, 620123100, 620123, '城关镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6647, 620123101, 620123, '夏官营镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6648, 620123107, 620123, '定远镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6649, 620123202, 620123, '小康营乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6650, 620123206, 620123, '新营镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6651, 620123200, 620123, '来紫堡乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6652, 620123207, 620123, '清水驿乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6653, 620123105, 620123, '甘草店镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6654, 620123211, 620123, '贡井镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6655, 620123203, 620123, '连搭镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6656, 620123103, 620123, '金崖镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6657, 620123204, 620123, '银山乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6658, 620123106, 620123, '青城镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6659, 620123209, 620123, '韦营乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6660, 620123205, 620123, '马坡乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6661, 620123102, 620123, '高崖镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6662, 620123208, 620123, '龙泉乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6663, 622900, 62, '临夏回族自治州', 1, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6664, 622926, 622900, '东乡族自治县', 2, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6665, 622926202, 622926, '东塬乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6666, 622926209, 622926, '五家乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6667, 622926206, 622926, '关卜乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6668, 622926220, 622926, '北岭乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6669, 622926104, 622926, '唐汪镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6670, 622926204, 622926, '坪庄乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6671, 622926219, 622926, '大树乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6672, 622926200, 622926, '春台乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6673, 622926210, 622926, '果园镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6674, 622926201, 622926, '柳树乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6675, 622926213, 622926, '汪集镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6676, 622926102, 622926, '河滩镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6677, 622926212, 622926, '沿岭乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6678, 622926205, 622926, '百和乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6679, 622926222, 622926, '考勒乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6680, 622926223, 622926, '董岭乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6681, 622926208, 622926, '赵家乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6682, 622926215, 622926, '车家湾乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6683, 622926101, 622926, '达板镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6684, 622926103, 622926, '那勒寺镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6685, 622926100, 622926, '锁南镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6686, 622926214, 622926, '风山乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6687, 622926216, 622926, '高山乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6688, 622926221, 622926, '龙泉镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6689, 622924, 622900, '广河县', 2, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6690, 622924101, 622924, '三甲集镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6691, 622924104, 622924, '买家巷镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6692, 622924100, 622924, '城关镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6693, 622924203, 622924, '官坊乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6694, 622924103, 622924, '庄窠集镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6695, 622924202, 622924, '水泉乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6696, 622924102, 622924, '祁家集镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6697, 622924204, 622924, '阿力麻土东乡族乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6698, 622924105, 622924, '齐家镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6699, 622925, 622900, '和政县', 2, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6700, 622925102, 622925, '三十里铺镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6701, 622925101, 622925, '三合镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6702, 622925104, 622925, '买家集镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6703, 622925203, 622925, '卜家庄乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6704, 622925100, 622925, '城关镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6705, 622925205, 622925, '新庄乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6706, 622925204, 622925, '新营镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6707, 622925105, 622925, '松鸣镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6708, 622925200, 622925, '梁家寺乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6709, 622925202, 622925, '罗家集镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6710, 622925207, 622925, '达浪乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6711, 622925201, 622925, '陈家集镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6712, 622925103, 622925, '马家堡镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6713, 622927, 622900, '积石山保安族东乡族撒拉族自治县', 2, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6714, 622927209, 622927, '中咀岭乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6715, 622927203, 622927, '关家川乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6716, 622927200, 622927, '刘集乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6717, 622927100, 622927, '吹麻滩镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6718, 622927101, 622927, '大河家镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6719, 622927205, 622927, '安集镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6720, 622927206, 622927, '寨子沟乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6721, 622927210, 622927, '小关乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6722, 622927102, 622927, '居集镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6723, 622927208, 622927, '徐扈家乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6724, 622927202, 622927, '柳沟乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6725, 622927213, 622927, '癿藏镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6726, 622927201, 622927, '石塬镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6727, 622927204, 622927, '胡林家乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6728, 622927207, 622927, '郭干乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6729, 622927212, 622927, '银川镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6730, 622927211, 622927, '铺川乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6731, 622922, 622900, '康乐县', 2, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6732, 622922208, 622922, '上湾乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6733, 622922212, 622922, '五户乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6734, 622922207, 622922, '八丹乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6735, 622922205, 622922, '八松乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6736, 622922200, 622922, '康丰乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6737, 622922103, 622922, '景古镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6738, 622922202, 622922, '流川乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6739, 622922203, 622922, '白王乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6740, 622922102, 622922, '胭脂镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6741, 622922101, 622922, '苏集镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6742, 622922211, 622922, '草滩乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6743, 622922104, 622922, '莲麓镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6744, 622922201, 622922, '虎关乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6745, 622922100, 622922, '附城镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6746, 622922206, 622922, '鸣鹿乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6747, 622901, 622900, '临夏市', 2, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6748, 622901003, 622901, '东关街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6749, 622901005, 622901, '八坊街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6750, 622901102, 622901, '南龙镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6751, 622901002, 622901, '城北街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6752, 622901001, 622901, '城南街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6753, 622901100, 622901, '城郊镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6754, 622901103, 622901, '折桥镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6755, 622901101, 622901, '枹罕镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6756, 622901006, 622901, '红园街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6757, 622901004, 622901, '西关街道', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6758, 622921, 622900, '临夏县', 2, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6759, 622921210, 622921, '井沟乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6760, 622921215, 622921, '先锋乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6761, 622921205, 622921, '刁祁镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6762, 622921211, 622921, '北塬镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6763, 622921218, 622921, '南塬乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6764, 622921101, 622921, '土桥镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6765, 622921213, 622921, '坡头乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6766, 622921217, 622921, '安家坡乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6767, 622921105, 622921, '尹集镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6768, 622921201, 622921, '掌子沟乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6769, 622921104, 622921, '新集镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6770, 622921214, 622921, '桥寺乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6771, 622921209, 622921, '榆林乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6772, 622921224, 622921, '民主乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6773, 622921216, 622921, '河西乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6774, 622921204, 622921, '漠泥沟乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6775, 622921208, 622921, '漫路乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6776, 622921220, 622921, '红台乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6777, 622921103, 622921, '莲花镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6778, 622921200, 622921, '营滩乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6779, 622921223, 622921, '路盘乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6780, 622921100, 622921, '韩集镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6781, 622921102, 622921, '马集镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6782, 622921202, 622921, '麻尼寺沟乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6783, 622921222, 622921, '黄泥湾镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6784, 622923, 622900, '永靖县', 2, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6785, 622923104, 622923, '三塬镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6786, 622923202, 622923, '三条岘乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6787, 622923200, 622923, '关山乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6788, 622923100, 622923, '刘家峡镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6789, 622923203, 622923, '坪沟乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6790, 622923102, 622923, '太极镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6791, 622923207, 622923, '小岭乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6792, 622923105, 622923, '岘塬镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6793, 622923107, 622923, '川城镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6794, 622923201, 622923, '徐顶乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6795, 622923206, 622923, '新寺乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6796, 622923208, 622923, '杨塔乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6797, 622923108, 622923, '王台镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6798, 622923101, 622923, '盐锅峡镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6799, 622923109, 622923, '红泉镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6800, 622923103, 622923, '西河镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6801, 622923106, 622923, '陈井镇', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6802, 621200, 62, '陇南市', 1, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6803, 621221, 621200, '成县', 2, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6804, 621221206, 621221, '二郎乡', 3, '2022-03-28 15:27:44', '2022-03-28 15:27:44', NULL); +INSERT INTO `address` VALUES (6805, 621221100, 621221, '城关镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6806, 621221203, 621221, '宋坪乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6807, 621221103, 621221, '小川镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6808, 621221107, 621221, '店村镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6809, 621221105, 621221, '抛沙镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6810, 621221110, 621221, '沙坝镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6811, 621221108, 621221, '王磨镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6812, 621221210, 621221, '索池镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6813, 621221102, 621221, '红川镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6814, 621221104, 621221, '纸坊镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6815, 621221209, 621221, '苏元镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6816, 621221213, 621221, '镡河乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6817, 621221109, 621221, '陈院镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6818, 621221112, 621221, '鸡峰镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6819, 621221101, 621221, '黄渚镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6820, 621221111, 621221, '黄陈镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6821, 621223, 621200, '宕昌县', 2, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6822, 621223225, 621223, '两河口镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6823, 621223215, 621223, '临江铺镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6824, 621223209, 621223, '何家堡乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6825, 621223205, 621223, '八力镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6826, 621223219, 621223, '兴化乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6827, 621223204, 621223, '南河镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6828, 621223103, 621223, '南阳镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6829, 621223101, 621223, '哈达铺镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6830, 621223100, 621223, '城关镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6831, 621223216, 621223, '好梯乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6832, 621223104, 621223, '官亭镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6833, 621223212, 621223, '将台乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6834, 621223207, 621223, '庞家乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6835, 621223214, 621223, '新城子藏族乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6836, 621223223, 621223, '新寨乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6837, 621223206, 621223, '木耳乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6838, 621223105, 621223, '沙湾镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6839, 621223224, 621223, '狮子乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6840, 621223102, 621223, '理川镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6841, 621223220, 621223, '甘江头乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6842, 621223218, 621223, '竹院乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6843, 621223211, 621223, '贾河乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6844, 621223213, 621223, '车拉乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6845, 621223200, 621223, '阿坞镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6846, 621223217, 621223, '韩院乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6847, 621227, 621200, '徽县', 2, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6848, 621227101, 621227, '伏家镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6849, 621227105, 621227, '嘉陵镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6850, 621227100, 621227, '城关镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6851, 621227210, 621227, '大河店镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6852, 621227104, 621227, '柳林镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6853, 621227203, 621227, '栗川镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6854, 621227208, 621227, '榆树乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6855, 621227202, 621227, '水阳镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6856, 621227106, 621227, '永宁镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6857, 621227102, 621227, '江洛镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6858, 621227103, 621227, '泥阳镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6859, 621227211, 621227, '虞关乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6860, 621227201, 621227, '银杏树镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6861, 621227206, 621227, '高桥镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6862, 621227205, 621227, '麻沿河镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6863, 621224, 621200, '康县', 2, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6864, 621224218, 621224, '三河坝镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6865, 621224104, 621224, '两河镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6866, 621224106, 621224, '云台镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6867, 621224210, 621224, '周家坝镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6868, 621224100, 621224, '城关镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6869, 621224203, 621224, '大南峪镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6870, 621224102, 621224, '大堡镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6871, 621224214, 621224, '太石乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6872, 621224202, 621224, '寺台镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6873, 621224103, 621224, '岸门口镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6874, 621224101, 621224, '平洛镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6875, 621224209, 621224, '店子乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6876, 621224200, 621224, '望关镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6877, 621224206, 621224, '王坝镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6878, 621224212, 621224, '白杨镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6879, 621224207, 621224, '碾坝镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6880, 621224208, 621224, '豆坝镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6881, 621224204, 621224, '迷坝乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6882, 621224215, 621224, '铜钱镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6883, 621224105, 621224, '长坝镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6884, 621224107, 621224, '阳坝镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6885, 621226, 621200, '礼县', 2, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6886, 621226232, 621226, '三峪乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6887, 621226215, 621226, '上坪乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6888, 621226221, 621226, '中坝镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6889, 621226209, 621226, '固城镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6890, 621226100, 621226, '城关镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6891, 621226200, 621226, '宽川镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6892, 621226210, 621226, '崖城镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6893, 621226227, 621226, '桥头镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6894, 621226201, 621226, '永兴镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6895, 621226208, 621226, '永坪镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6896, 621226218, 621226, '江口镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6897, 621226224, 621226, '沙金乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6898, 621226214, 621226, '洮坪镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6899, 621226212, 621226, '湫山镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6900, 621226233, 621226, '滩坪镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6901, 621226230, 621226, '王坝镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6902, 621226222, 621226, '白关镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6903, 621226103, 621226, '白河镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6904, 621226101, 621226, '盐官镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6905, 621226102, 621226, '石桥镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6906, 621226202, 621226, '祁山镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6907, 621226204, 621226, '红河镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6908, 621226211, 621226, '罗坝镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6909, 621226231, 621226, '肖良乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6910, 621226228, 621226, '草坪乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6911, 621226229, 621226, '雷坝镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6912, 621226219, 621226, '雷王乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6913, 621226203, 621226, '马河乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6914, 621226220, 621226, '龙林镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6915, 621228, 621200, '两当县', 2, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6916, 621228209, 621228, '云屏镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6917, 621228204, 621228, '兴化乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6918, 621228100, 621228, '城关镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6919, 621228201, 621228, '左家乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6920, 621228207, 621228, '张家乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6921, 621228202, 621228, '显龙镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6922, 621228200, 621228, '杨店镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6923, 621228210, 621228, '泰山乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6924, 621228101, 621228, '站儿巷镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6925, 621228102, 621228, '西坡镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6926, 621228212, 621228, '金洞乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6927, 621228203, 621228, '鱼池乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6928, 621222, 621200, '文县', 2, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6929, 621222103, 621222, '中寨镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6930, 621222210, 621222, '中庙镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6931, 621222213, 621222, '临江乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6932, 621222203, 621222, '丹堡镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6933, 621222205, 621222, '刘家坪乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6934, 621222211, 621222, '口头坝乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6935, 621222100, 621222, '城关镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6936, 621222218, 621222, '堡子坝镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6937, 621222216, 621222, '天池镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6938, 621222212, 621222, '尖山乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6939, 621222102, 621222, '尚德镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6940, 621222217, 621222, '桥头乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6941, 621222214, 621222, '梨坪镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6942, 621222206, 621222, '玉垒乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6943, 621222219, 621222, '石坊镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6944, 621222220, 621222, '石鸡坝镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6945, 621222101, 621222, '碧口镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6946, 621222215, 621222, '舍书乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6947, 621222207, 621222, '范坝镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6948, 621222200, 621222, '铁楼藏族乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6949, 621202, 621200, '武都区', 2, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6950, 621202230, 621202, '三仓镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6951, 621202108, 621202, '三河镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6952, 621202102, 621202, '东江镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6953, 621202103, 621202, '两水镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6954, 621202231, 621202, '五库镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6955, 621202235, 621202, '五马镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6956, 621202213, 621202, '佛崖镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6957, 621202201, 621202, '坪牙藏族乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6958, 621202100, 621202, '城关镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6959, 621202200, 621202, '城郊乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6960, 621202114, 621202, '外纳镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6961, 621202101, 621202, '安化镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6962, 621202233, 621202, '月照乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6963, 621202229, 621202, '枫相乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6964, 621202113, 621202, '柏林镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6965, 621202220, 621202, '桔柑镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6966, 621202207, 621202, '汉林镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6967, 621202104, 621202, '汉王镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6968, 621202211, 621202, '池坝乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6969, 621202105, 621202, '洛塘镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6970, 621202225, 621202, '玉皇乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6971, 621202111, 621202, '琵琶镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6972, 621202109, 621202, '甘泉镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6973, 621202204, 621202, '石门镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6974, 621202221, 621202, '磨坝藏族乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6975, 621202203, 621202, '蒲池乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6976, 621202237, 621202, '裕河镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6977, 621202106, 621202, '角弓镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6978, 621202226, 621202, '郭河乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6979, 621202217, 621202, '隆兴镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6980, 621202112, 621202, '马营镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6981, 621202107, 621202, '马街镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6982, 621202110, 621202, '鱼龙镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6983, 621202215, 621202, '黄坪镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6984, 621202219, 621202, '龙凤乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6985, 621202218, 621202, '龙坝乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6986, 621225, 621200, '西和县', 2, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6987, 621225102, 621225, '何坝镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6988, 621225220, 621225, '六巷乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6989, 621225205, 621225, '兴隆镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6990, 621225211, 621225, '十里镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6991, 621225204, 621225, '卢河镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6992, 621225216, 621225, '大桥镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6993, 621225218, 621225, '太石河乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6994, 621225103, 621225, '姜席镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6995, 621225208, 621225, '晒经乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6996, 621225100, 621225, '汉源镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6997, 621225105, 621225, '洛峪镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6998, 621225201, 621225, '石堡镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (6999, 621225104, 621225, '石峡镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7000, 621225206, 621225, '稍峪镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7001, 621225203, 621225, '苏合镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7002, 621225217, 621225, '蒿林乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7003, 621225202, 621225, '西峪镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7004, 621225221, 621225, '西高山镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7005, 621225101, 621225, '长道镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7006, 621225207, 621225, '马元镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7007, 620800, 62, '平凉市', 1, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7008, 620823, 620800, '崇信县', 2, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7009, 620823401, 620823, '五举农场', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7010, 620823400, 620823, '新窑街道', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7011, 620823101, 620823, '新窑镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7012, 620823203, 620823, '木林乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7013, 620823200, 620823, '柏树镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7014, 620823402, 620823, '铜城工业园区', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7015, 620823002, 620823, '锦屏街道', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7016, 620823102, 620823, '锦屏镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7017, 620823201, 620823, '黄寨镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7018, 620823202, 620823, '黄花乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7019, 620824, 620800, '华亭市', 2, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7020, 620881200, 620824, '上关镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7021, 620881001, 620824, '东华街道', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7022, 620881100, 620824, '东华镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7023, 620881101, 620824, '安口镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7024, 620881202, 620824, '山寨乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7025, 620881203, 620824, '河西镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7026, 620881204, 620824, '砚峡乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7027, 620881201, 620824, '神峪乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7028, 620881104, 620824, '策底镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7029, 620881102, 620824, '西华镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7030, 620881103, 620824, '马峡镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7031, 620821, 620800, '泾川县', 2, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7032, 620821206, 620821, '丰台镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7033, 620821207, 620821, '党原镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7034, 620821100, 620821, '城关镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7035, 620821205, 620821, '太平镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7036, 620821500, 620821, '张老寺农场', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7037, 620821200, 620821, '汭丰镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7038, 620821202, 620821, '泾明乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7039, 620821400, 620821, '温泉经济开发区', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7040, 620821101, 620821, '玉都镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7041, 620821104, 620821, '王村镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7042, 620821105, 620821, '窑店镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7043, 620821203, 620821, '红河乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7044, 620821201, 620821, '罗汉洞乡', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7045, 620821103, 620821, '荔堡镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7046, 620821001, 620821, '街道办事处', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7047, 620821204, 620821, '飞云镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7048, 620821102, 620821, '高平镇', 3, '2022-03-28 15:27:45', '2022-03-28 15:27:45', NULL); +INSERT INTO `address` VALUES (7049, 620826, 620800, '静宁县', 2, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7050, 620826216, 620826, '三合乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7051, 620826207, 620826, '仁大镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7052, 620826206, 620826, '余湾乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7053, 620826103, 620826, '八里镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7054, 620826217, 620826, '原安镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7055, 620826204, 620826, '双岘镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7056, 620826203, 620826, '古城镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7057, 620826201, 620826, '司桥乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7058, 620826213, 620826, '四河镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7059, 620826100, 620826, '城关镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7060, 620826001, 620826, '城区街道', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7061, 620826200, 620826, '城川镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7062, 620826101, 620826, '威戎镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7063, 620826211, 620826, '新店乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7064, 620826202, 620826, '曹务镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7065, 620826104, 620826, '李店镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7066, 620826210, 620826, '治平镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7067, 620826209, 620826, '深沟乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7068, 620826218, 620826, '灵芝乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7069, 620826212, 620826, '甘沟镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7070, 620826102, 620826, '界石铺镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7071, 620826214, 620826, '红寺镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7072, 620826215, 620826, '细巷镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7073, 620826208, 620826, '贾河乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7074, 620826205, 620826, '雷大镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7075, 620802, 620800, '崆峒区', 2, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7076, 620802210, 620802, '上杨乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7077, 620802001, 620802, '东关街道', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7078, 620802002, 620802, '中街街道', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7079, 620802100, 620802, '四十里铺镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7080, 620802209, 620802, '大寨乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7081, 620802206, 620802, '大秦乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7082, 620802200, 620802, '安国镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7083, 620802208, 620802, '寨河乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7084, 620802212, 620802, '峡门乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7085, 620802101, 620802, '崆峒镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7086, 620802201, 620802, '柳湖镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7087, 620802499, 620802, '甘肃平凉工业园区', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7088, 620802207, 620802, '白庙乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7089, 620802102, 620802, '白水镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7090, 620802203, 620802, '索罗乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7091, 620802202, 620802, '花所镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7092, 620802103, 620802, '草峰镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7093, 620802003, 620802, '西郊街道', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7094, 620802205, 620802, '西阳乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7095, 620802204, 620802, '香莲乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7096, 620802211, 620802, '麻武乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7097, 620822, 620800, '灵台县', 2, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7098, 620822400, 620822, '万宝川农场', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7099, 620822203, 620822, '上良镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7100, 620822100, 620822, '中台镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7101, 620822103, 620822, '什字镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7102, 620822001, 620822, '城区街道', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7103, 620822201, 620822, '新开乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7104, 620822206, 620822, '星火乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7105, 620822104, 620822, '朝那镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7106, 620822204, 620822, '梁原乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7107, 620822102, 620822, '独店镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7108, 620822207, 620822, '百里镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7109, 620822208, 620822, '蒲窝镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7110, 620822202, 620822, '西屯镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7111, 620822101, 620822, '邵寨镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7112, 620822205, 620822, '龙门乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7113, 620825, 620800, '庄浪县', 2, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7114, 620825103, 620825, '万泉镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7115, 620825217, 620825, '南坪镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7116, 620825101, 620825, '南湖镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7117, 620825205, 620825, '卧龙镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7118, 620825207, 620825, '大庄镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7119, 620825200, 620825, '岳堡镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7120, 620825102, 620825, '朱店镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7121, 620825201, 620825, '杨河乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7122, 620825203, 620825, '柳梁镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7123, 620825001, 620825, '水洛街道', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7124, 620825100, 620825, '水洛镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7125, 620825214, 620825, '永宁镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7126, 620825219, 620825, '盘安镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7127, 620825211, 620825, '良邑镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7128, 620825202, 620825, '赵墩乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7129, 620825213, 620825, '通化镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7130, 620825215, 620825, '郑河乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7131, 620825208, 620825, '阳川镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7132, 620825104, 620825, '韩店镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7133, 621000, 62, '庆阳市', 1, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7134, 621024, 621000, '合水县', 2, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7135, 621024206, 621024, '何家畔乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7136, 621024200, 621024, '吉岘镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7137, 621024203, 621024, '固城镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7138, 621024102, 621024, '太白镇', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7139, 621024204, 621024, '太莪乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7140, 621024205, 621024, '店子乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7141, 621024207, 621024, '板桥乡', 3, '2022-03-28 15:27:46', '2022-03-28 15:27:46', NULL); +INSERT INTO `address` VALUES (7142, 621024202, 621024, '段家集乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7143, 621024101, 621024, '老城镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7144, 621024201, 621024, '肖咀镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7145, 621024208, 621024, '蒿咀铺乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7146, 621024100, 621024, '西华池镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7147, 621023, 621000, '华池县', 2, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7148, 621023202, 621023, '上里塬乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7149, 621023206, 621023, '乔川乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7150, 621023207, 621023, '乔河乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7151, 621023201, 621023, '五蛟乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7152, 621023102, 621023, '元城镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7153, 621023103, 621023, '南梁镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7154, 621023200, 621023, '城壕乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7155, 621023208, 621023, '山庄乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7156, 621023205, 621023, '怀安乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7157, 621023100, 621023, '悦乐镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7158, 621023210, 621023, '林镇乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7159, 621023101, 621023, '柔远镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7160, 621023203, 621023, '王咀子乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7161, 621023204, 621023, '白马乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7162, 621023211, 621023, '紫坊畔乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7163, 621022, 621000, '环县', 2, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7164, 621022108, 621022, '八珠乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7165, 621022113, 621022, '南湫乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7166, 621022106, 621022, '合道镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7167, 621022120, 621022, '四合原旅游开发办公室', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7168, 621022104, 621022, '天池乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7169, 621022116, 621022, '小南沟乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7170, 621022112, 621022, '山城乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7171, 621022101, 621022, '曲子镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7172, 621022103, 621022, '木钵镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7173, 621022107, 621022, '樊家川镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7174, 621022118, 621022, '毛井镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7175, 621022109, 621022, '洪德乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7176, 621022105, 621022, '演武乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7177, 621022100, 621022, '环城镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7178, 621022102, 621022, '甜水镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7179, 621022111, 621022, '秦团庄乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7180, 621022114, 621022, '罗山川乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7181, 621022110, 621022, '耿湾乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7182, 621022119, 621022, '芦家湾乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7183, 621022115, 621022, '虎洞镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7184, 621022117, 621022, '车道镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7185, 621021, 621000, '庆城县', 2, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7186, 621021101, 621021, '卅铺镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7187, 621021207, 621021, '南庄乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7188, 621021204, 621021, '土桥乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7189, 621021203, 621021, '太白梁乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7190, 621021103, 621021, '庆城镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7191, 621021202, 621021, '桐川镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7192, 621021104, 621021, '玄马镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7193, 621021201, 621021, '白马铺镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7194, 621021208, 621021, '翟家河乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7195, 621021205, 621021, '蔡口集乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7196, 621021209, 621021, '蔡家庙乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7197, 621021200, 621021, '赤城镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7198, 621021102, 621021, '马岭镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7199, 621021100, 621021, '驿马镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7200, 621021206, 621021, '高楼镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7201, 621002, 621000, '西峰区', 2, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7202, 621002203, 621002, '什社乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7203, 621002001, 621002, '北街办事处', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7204, 621002002, 621002, '南街办事处', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7205, 621002200, 621002, '后官寨镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7206, 621002201, 621002, '彭原镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7207, 621002204, 621002, '显胜乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7208, 621002202, 621002, '温泉镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7209, 621002100, 621002, '肖金镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7210, 621002101, 621002, '董志镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7211, 621002003, 621002, '西街办事处', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7212, 621026, 621000, '宁县', 2, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7213, 621026202, 621026, '中村镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7214, 621026208, 621026, '九岘乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7215, 621026205, 621026, '南义乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7216, 621026104, 621026, '和盛镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7217, 621026203, 621026, '太昌镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7218, 621026101, 621026, '平子镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7219, 621026100, 621026, '新宁镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7220, 621026106, 621026, '新庄镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7221, 621026102, 621026, '早胜镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7222, 621026209, 621026, '春荣镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7223, 621026105, 621026, '湘乐镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7224, 621026108, 621026, '焦村镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7225, 621026206, 621026, '瓦斜乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7226, 621026107, 621026, '盘克镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7227, 621026200, 621026, '米桥镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7228, 621026201, 621026, '良平镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7229, 621026207, 621026, '金村乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7230, 621026103, 621026, '长庆桥镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7231, 621025, 621000, '正宁县', 2, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7232, 621025205, 621025, '三嘉乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7233, 621025204, 621025, '五顷塬乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7234, 621025202, 621025, '周家乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7235, 621025102, 621025, '宫河镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7236, 621025100, 621025, '山河镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7237, 621025101, 621025, '榆林子镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7238, 621025103, 621025, '永和镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7239, 621025201, 621025, '永正乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7240, 621025203, 621025, '湫头乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7241, 621025200, 621025, '西坡镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7242, 621027, 621000, '镇原县', 2, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7243, 621027103, 621027, '三岔镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7244, 621027202, 621027, '上肖镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7245, 621027210, 621027, '中原乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7246, 621027200, 621027, '临泾镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7247, 621027201, 621027, '南川乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7248, 621027100, 621027, '城关镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7249, 621027106, 621027, '太平镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7250, 621027102, 621027, '孟坝镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7251, 621027101, 621027, '屯字镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7252, 621027104, 621027, '平泉镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7253, 621027207, 621027, '庙渠镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7254, 621027105, 621027, '开边镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7255, 621027211, 621027, '新城镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7256, 621027203, 621027, '新集镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7257, 621027204, 621027, '方山乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7258, 621027208, 621027, '武沟乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7259, 621027205, 621027, '殷家城乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7260, 621027209, 621027, '郭原乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7261, 621027206, 621027, '马渠镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7262, 620500, 62, '天水市', 1, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7263, 620523, 620500, '甘谷县', 2, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7264, 620523204, 620523, '八里湾镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7265, 620523104, 620523, '六峰镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7266, 620523214, 620523, '古坡镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7267, 620523100, 620523, '大像山镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7268, 620523206, 620523, '大庄镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7269, 620523208, 620523, '大石镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7270, 620523103, 620523, '安远镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7271, 620523102, 620523, '新兴镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7272, 620523213, 620523, '武家河镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7273, 620523215, 620523, '白家湾乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7274, 620523101, 620523, '磐安镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7275, 620523209, 620523, '礼辛镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7276, 620523205, 620523, '西坪镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7277, 620523211, 620523, '谢家湾乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7278, 620523203, 620523, '金山乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7279, 620503, 620500, '麦积区', 2, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7280, 620503205, 620503, '三岔镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7281, 620503104, 620503, '东岔镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7282, 620503106, 620503, '中滩镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7283, 620503201, 620503, '五龙镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7284, 620503109, 620503, '伯阳镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7285, 620503108, 620503, '元龙镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7286, 620503203, 620503, '党川镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7287, 620503204, 620503, '利桥镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7288, 620503002, 620503, '北道埠街道', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7289, 620503107, 620503, '新阳镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7290, 620503003, 620503, '桥南街道', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7291, 620503103, 620503, '渭南镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7292, 620503202, 620503, '琥珀镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7293, 620503102, 620503, '甘泉镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7294, 620503111, 620503, '石佛镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7295, 620503100, 620503, '社棠镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7296, 620503105, 620503, '花牛镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7297, 620503001, 620503, '道北街道', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7298, 620503101, 620503, '马跑泉镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7299, 620503110, 620503, '麦积镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7300, 620522, 620500, '秦安县', 2, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7301, 620522202, 620522, '中山镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7302, 620522209, 620522, '云山镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7303, 620522201, 620522, '五营镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7304, 620522211, 620522, '兴丰镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7305, 620522100, 620522, '兴国镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7306, 620522200, 620522, '刘坪镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7307, 620522207, 620522, '千户镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7308, 620522203, 620522, '叶堡镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7309, 620522204, 620522, '安伏镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7310, 620522210, 620522, '王尹镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7311, 620522208, 620522, '王窑镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7312, 620522206, 620522, '王铺镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7313, 620522101, 620522, '莲花镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7314, 620522102, 620522, '西川镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7315, 620522104, 620522, '郭嘉镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7316, 620522103, 620522, '陇城镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7317, 620522205, 620522, '魏店镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7318, 620521, 620500, '清水县', 2, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7319, 620521207, 620521, '丰望乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7320, 620521204, 620521, '土门镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7321, 620521105, 620521, '山门镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7322, 620521211, 620521, '新城乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7323, 620521201, 620521, '松树镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7324, 620521100, 620521, '永清镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7325, 620521202, 620521, '王河镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7326, 620521200, 620521, '白沙镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7327, 620521102, 620521, '白驼镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7328, 620521104, 620521, '秦亭镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7329, 620521101, 620521, '红堡镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7330, 620521208, 620521, '草川铺镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7331, 620521206, 620521, '贾川乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7332, 620521203, 620521, '远门镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7333, 620521205, 620521, '郭川镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7334, 620521103, 620521, '金集镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7335, 620521209, 620521, '陇东镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7336, 620521210, 620521, '黄门镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7337, 620502, 620500, '秦州区', 2, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7338, 620502002, 620502, '七里墩街道', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7339, 620502003, 620502, '东关街道', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7340, 620502004, 620502, '中城街道', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7341, 620502200, 620502, '中梁镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7342, 620502106, 620502, '关子镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7343, 620502204, 620502, '华歧镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7344, 620502001, 620502, '大城街道', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7345, 620502205, 620502, '大门镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7346, 620502007, 620502, '天水郡街道', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7347, 620502108, 620502, '天水镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7348, 620502101, 620502, '太京镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7349, 620502109, 620502, '娘娘坝镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7350, 620502107, 620502, '平南镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7351, 620502202, 620502, '杨家寺镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7352, 620502104, 620502, '汪川镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7353, 620502105, 620502, '牡丹镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7354, 620502100, 620502, '玉泉镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7355, 620502103, 620502, '皂郊镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7356, 620502006, 620502, '石马坪街道', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7357, 620502201, 620502, '秦岭镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7358, 620502102, 620502, '藉口镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7359, 620502005, 620502, '西关街道', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7360, 620502203, 620502, '齐寿镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7361, 620524, 620500, '武山县', 2, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7362, 620524202, 620524, '咀头乡', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7363, 620524104, 620524, '四门镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7364, 620524100, 620524, '城关镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7365, 620524200, 620524, '山丹镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7366, 620524205, 620524, '杨河镇', 3, '2022-03-28 15:27:47', '2022-03-28 15:27:47', NULL); +INSERT INTO `address` VALUES (7367, 620524203, 620524, '桦林镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7368, 620524201, 620524, '榆盘镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7369, 620524206, 620524, '沿安乡', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7370, 620524101, 620524, '洛门镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7371, 620524207, 620524, '温泉镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7372, 620524103, 620524, '滩歌镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7373, 620524105, 620524, '马力镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7374, 620524204, 620524, '高楼镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7375, 620524102, 620524, '鸳鸯镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7376, 620524208, 620524, '龙台镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7377, 620525, 620500, '张家川回族自治县', 2, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7378, 620525201, 620525, '刘堡镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7379, 620525206, 620525, '大阳镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7380, 620525207, 620525, '川王镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7381, 620525213, 620525, '平安乡', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7382, 620525100, 620525, '张家川镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7383, 620525202, 620525, '张棉乡', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7384, 620525102, 620525, '恭门镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7385, 620525204, 620525, '木河乡', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7386, 620525210, 620525, '梁山镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7387, 620525203, 620525, '胡川镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7388, 620525209, 620525, '连五乡', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7389, 620525214, 620525, '闫家乡', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7390, 620525208, 620525, '马关镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7391, 620525215, 620525, '马鹿镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7392, 620525101, 620525, '龙山镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7393, 620600, 62, '武威市', 1, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7394, 620622, 620600, '古浪县', 2, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7395, 620622208, 620622, '十八里堡乡', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7396, 620622209, 620622, '古丰镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7397, 620622100, 620622, '古浪镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7398, 620622102, 620622, '土门镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7399, 620622103, 620622, '大靖镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7400, 620622106, 620622, '定宁镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7401, 620622206, 620622, '干城乡', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7402, 620622205, 620622, '新堡乡', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7403, 620622207, 620622, '横梁乡', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7404, 620622203, 620622, '民权镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7405, 620622200, 620622, '永丰滩镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7406, 620622101, 620622, '泗水镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7407, 620622105, 620622, '海子滩镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7408, 620622204, 620622, '直滩镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7409, 620622104, 620622, '裴家营镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7410, 620622202, 620622, '西靖镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7411, 620622107, 620622, '黄羊川镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7412, 620622201, 620622, '黄花滩镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7413, 620622108, 620622, '黑松驿镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7414, 620602, 620600, '凉州区', 2, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7415, 620602208, 620602, '下双镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7416, 620602003, 620602, '东关街街道', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7417, 620602001, 620602, '东大街街道', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7418, 620602110, 620602, '中坝镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7419, 620602105, 620602, '丰乐镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7420, 620602400, 620602, '九墩滩指挥部', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7421, 620602209, 620602, '九墩镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7422, 620602200, 620602, '五和镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7423, 620602104, 620602, '双城镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7424, 620602114, 620602, '发放镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7425, 620602112, 620602, '古城镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7426, 620602213, 620602, '吴家井镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7427, 620602108, 620602, '和平镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7428, 620602116, 620602, '四坝镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7429, 620602006, 620602, '地质新村街街道', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7430, 620602203, 620602, '大柳镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7431, 620602215, 620602, '康宁镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7432, 620602113, 620602, '张义镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7433, 620602210, 620602, '怀安镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7434, 620602214, 620602, '新华镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7435, 620602202, 620602, '松树镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7436, 620602206, 620602, '柏树镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7437, 620602101, 620602, '武南镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7438, 620602111, 620602, '永丰镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7439, 620602103, 620602, '永昌镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7440, 620602217, 620602, '河东镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7441, 620602117, 620602, '洪祥镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7442, 620602212, 620602, '清水镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7443, 620602102, 620602, '清源镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7444, 620602005, 620602, '火车站街道', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7445, 620602109, 620602, '羊下坝镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7446, 620602007, 620602, '荣华街街道', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7447, 620602004, 620602, '西关街街道', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7448, 620602002, 620602, '西大街街道', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7449, 620602115, 620602, '西营镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7450, 620602118, 620602, '谢河镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7451, 620602207, 620602, '金塔镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7452, 620602211, 620602, '金山镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7453, 620602205, 620602, '金沙镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7454, 620602216, 620602, '金河镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7455, 620602107, 620602, '金羊镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7456, 620602204, 620602, '长城镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7457, 620602201, 620602, '韩佐镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7458, 620602106, 620602, '高坝镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7459, 620602008, 620602, '黄羊河街道', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7460, 620602100, 620602, '黄羊镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7461, 620621, 620600, '民勤县', 2, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7462, 620621100, 620621, '三雷镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7463, 620621101, 620621, '东坝镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7464, 620621104, 620621, '东湖镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7465, 620621211, 620621, '南湖镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7466, 620621208, 620621, '双茨科镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7467, 620621204, 620621, '大坝镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7468, 620621207, 620621, '大滩镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7469, 620621206, 620621, '夹河镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7470, 620621210, 620621, '收成镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7471, 620621200, 620621, '昌宁镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7472, 620621102, 620621, '泉山镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7473, 620621209, 620621, '红沙梁镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7474, 620621105, 620621, '红砂岗镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7475, 620621205, 620621, '苏武镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7476, 620621201, 620621, '蔡旗镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7477, 620621203, 620621, '薛百镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7478, 620621103, 620621, '西渠镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7479, 620621202, 620621, '重兴镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7480, 620623, 620600, '天祝藏族自治县', 2, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7481, 620623201, 620623, '东坪乡', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7482, 620623203, 620623, '东大滩乡', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7483, 620623100, 620623, '华藏寺镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7484, 620623104, 620623, '哈溪镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7485, 620623207, 620623, '大红沟镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7486, 620623108, 620623, '天堂镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7487, 620623102, 620623, '安远镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7488, 620623101, 620623, '打柴沟镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7489, 620623204, 620623, '抓喜秀龙镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7490, 620623210, 620623, '旦马乡', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7491, 620623206, 620623, '朵什镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7492, 620623107, 620623, '松山镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7493, 620623208, 620623, '毛藏乡', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7494, 620623103, 620623, '炭山岭镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7495, 620623106, 620623, '石门镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7496, 620623209, 620623, '祁连镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7497, 620623205, 620623, '西大滩镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7498, 620623105, 620623, '赛什斯镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7499, 620623202, 620623, '赛拉隆乡', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7500, 620700, 62, '张掖市', 1, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7501, 620702, 620700, '甘州区', 2, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7502, 620702109, 620702, '三闸镇', 3, '2022-03-28 15:27:48', '2022-03-28 15:27:48', NULL); +INSERT INTO `address` VALUES (7503, 620702101, 620702, '上秦镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7504, 620702001, 620702, '东街街道', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7505, 620702104, 620702, '乌江镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7506, 620702107, 620702, '党寨镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7507, 620702004, 620702, '北街街道', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7508, 620702002, 620702, '南街街道', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7509, 620702102, 620702, '大满镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7510, 620702203, 620702, '安阳乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7511, 620702110, 620702, '小满镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7512, 620702211, 620702, '平山湖蒙古族乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7513, 620702402, 620702, '张掖工业园区', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7514, 620702106, 620702, '新墩镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7515, 620702210, 620702, '明永镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7516, 620702100, 620702, '梁家墩镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7517, 620702103, 620702, '沙井镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7518, 620702005, 620702, '火车站街道', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7519, 620702105, 620702, '甘浚镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7520, 620702400, 620702, '甘肃农垦张掖农场', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7521, 620702108, 620702, '碱滩镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7522, 620702204, 620702, '花寨乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7523, 620702003, 620702, '西街街道', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7524, 620702205, 620702, '长安镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7525, 620702207, 620702, '靖安乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7526, 620702202, 620702, '龙渠乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7527, 620724, 620700, '高台县', 2, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7528, 620724102, 620724, '南华镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7529, 620724105, 620724, '合黎镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7530, 620724100, 620724, '城关镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7531, 620724101, 620724, '宣化镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7532, 620724104, 620724, '巷道镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7533, 620724103, 620724, '新坝镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7534, 620724202, 620724, '罗城镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7535, 620724106, 620724, '骆驼城镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7536, 620724201, 620724, '黑泉镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7537, 620723, 620700, '临泽县', 2, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7538, 620723401, 620723, '五泉林场', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7539, 620723107, 620723, '倪家营镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7540, 620723400, 620723, '国营临泽农场', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7541, 620723104, 620723, '平川镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7542, 620723102, 620723, '新华镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7543, 620723105, 620723, '板桥镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7544, 620723101, 620723, '沙河镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7545, 620723103, 620723, '蓼泉镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7546, 620723106, 620723, '鸭暖镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7547, 620722, 620700, '民乐县', 2, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7548, 620722106, 620722, '三堡镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7549, 620722204, 620722, '丰乐镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7550, 620722102, 620722, '六坝镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7551, 620722200, 620722, '南丰镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7552, 620722104, 620722, '南古镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7553, 620722103, 620722, '新天镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7554, 620722201, 620722, '民联镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7555, 620722105, 620722, '永固镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7556, 620722101, 620722, '洪水镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7557, 620722203, 620722, '顺化镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7558, 620725, 620700, '山丹县', 2, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7559, 620725201, 620725, '东乐乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7560, 620725102, 620725, '位奇镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7561, 620725205, 620725, '大马营乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7562, 620725204, 620725, '李桥乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7563, 620725101, 620725, '清泉镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7564, 620725203, 620725, '老军乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7565, 620725202, 620725, '陈户乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7566, 620725103, 620725, '霍城镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7567, 620721, 620700, '肃南裕固族自治县', 2, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7568, 620721203, 620721, '大河乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7569, 620721201, 620721, '康乐镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7570, 620721401, 620721, '张掖宝瓶河牧场', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7571, 620721204, 620721, '明花乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7572, 620721202, 620721, '白银蒙古族乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7573, 620721101, 620721, '皇城镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7574, 620721205, 620721, '祁丰藏族乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7575, 620721100, 620721, '红湾寺镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7576, 620721200, 620721, '马蹄藏族乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7577, 45, 0, '广西壮族自治区', 0, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7578, 451000, 45, '百色市', 1, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7579, 451024, 451000, '德保县', 2, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7580, 451024207, 451024, '东凌镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7581, 451024100, 451024, '城关镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7582, 451024206, 451024, '巴头乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7583, 451024103, 451024, '敬德镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7584, 451024204, 451024, '燕峒乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7585, 451024203, 451024, '荣华乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7586, 451024101, 451024, '足荣镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7587, 451024202, 451024, '那甲镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7588, 451024200, 451024, '都安乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7589, 451024102, 451024, '隆桑镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7590, 451024104, 451024, '马隘镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7591, 451024205, 451024, '龙光乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7592, 451081, 451000, '靖西市', 2, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7593, 451081101, 451081, '化峒镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7594, 451081206, 451081, '南坡乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7595, 451081200, 451081, '同德乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7596, 451081207, 451081, '吞盘乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7597, 451081203, 451081, '地州镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7598, 451081201, 451081, '壬庄乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7599, 451081202, 451081, '安宁乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7600, 451081103, 451081, '安德镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7601, 451081106, 451081, '岳圩镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7602, 451081211, 451081, '新甲乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7603, 451081100, 451081, '新靖镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7604, 451081209, 451081, '果乐乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7605, 451081212, 451081, '武平镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7606, 451081105, 451081, '渠洋镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7607, 451081102, 451081, '湖润镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7608, 451081204, 451081, '禄峒镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7609, 451081215, 451081, '魁圩乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7610, 451081104, 451081, '龙临镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7611, 451081107, 451081, '龙邦镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7612, 451028, 451000, '乐业县', 2, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7613, 451028100, 451028, '同乐镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7614, 451028204, 451028, '幼平乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7615, 451028102, 451028, '新化镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7616, 451028101, 451028, '甘田镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7617, 451028103, 451028, '花坪镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7618, 451028201, 451028, '逻沙乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7619, 451028203, 451028, '逻西乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7620, 451028205, 451028, '雅长乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7621, 451027, 451000, '凌云县', 2, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7622, 451027200, 451027, '下甲镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7623, 451027201, 451027, '伶站瑶族乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7624, 451027102, 451027, '加尤镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7625, 451027202, 451027, '朝里瑶族乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7626, 451027203, 451027, '沙里瑶族乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7627, 451027100, 451027, '泗城镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7628, 451027205, 451027, '玉洪瑶族乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7629, 451027101, 451027, '逻楼镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7630, 451031, 451000, '隆林各族自治县', 2, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7631, 451031215, 451031, '介廷乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7632, 451031211, 451031, '克长乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7633, 451031102, 451031, '天生桥镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7634, 451031213, 451031, '岩茶乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7635, 451031103, 451031, '平班镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7636, 451031104, 451031, '德峨镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7637, 451031100, 451031, '新州镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7638, 451031101, 451031, '桠杈镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7639, 451031200, 451031, '沙梨乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7640, 451031208, 451031, '猪场乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7641, 451031203, 451031, '者保乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7642, 451031204, 451031, '者浪乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7643, 451031210, 451031, '蛇场乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7644, 451031206, 451031, '金钟山乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7645, 451031201, 451031, '隆或镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7646, 451031205, 451031, '革步乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7647, 451026, 451000, '那坡县', 2, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7648, 451026200, 451026, '坡荷乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7649, 451026100, 451026, '城厢镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7650, 451026101, 451026, '平孟镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7651, 451026203, 451026, '德隆乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7652, 451026205, 451026, '百南乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7653, 451026204, 451026, '百合乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7654, 451026207, 451026, '百省乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7655, 451026208, 451026, '百都乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7656, 451026201, 451026, '龙合镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7657, 451023, 451000, '平果市', 2, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7658, 451082108, 451023, '凤梧镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7659, 451082203, 451023, '同老乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7660, 451082105, 451023, '四塘镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7661, 451082104, 451023, '坡造镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7662, 451082103, 451023, '太平镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7663, 451082101, 451023, '新安镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7664, 451082106, 451023, '旧城镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7665, 451082102, 451023, '果化镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7666, 451082107, 451023, '榜圩镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7667, 451082200, 451023, '海城乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7668, 451082100, 451023, '马头镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7669, 451082202, 451023, '黎明乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7670, 451022, 451000, '田东县', 2, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7671, 451022109, 451022, '义圩镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7672, 451022201, 451022, '作登瑶族乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7673, 451022106, 451022, '印茶镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7674, 451022100, 451022, '平马镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7675, 451022105, 451022, '思林镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7676, 451022108, 451022, '朔良镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7677, 451022103, 451022, '林逢镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7678, 451022107, 451022, '江城镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7679, 451022101, 451022, '祥周镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7680, 451022110, 451022, '那拔镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7681, 451029, 451000, '田林县', 2, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7682, 451029100, 451029, '乐里镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7683, 451029204, 451029, '八桂瑶族乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7684, 451029205, 451029, '八渡瑶族乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7685, 451029103, 451029, '六隆镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7686, 451029201, 451029, '利周瑶族乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7687, 451029102, 451029, '定安镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7688, 451029202, 451029, '平塘乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7689, 451029101, 451029, '旧州镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7690, 451029203, 451029, '浪平镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7691, 451029200, 451029, '潞城瑶族乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7692, 451029208, 451029, '百乐乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7693, 451029209, 451029, '者苗乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7694, 451029206, 451029, '那比乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7695, 451029207, 451029, '高龙乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7696, 451021, 451000, '田阳区', 2, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7697, 451003107, 451021, '五村镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7698, 451003102, 451021, '坡洪镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7699, 451003106, 451021, '头塘镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7700, 451003204, 451021, '巴别乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7701, 451003202, 451021, '洞靖镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7702, 451003105, 451021, '玉凤镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7703, 451003100, 451021, '田州镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7704, 451003104, 451021, '百育镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7705, 451003101, 451021, '那坡镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7706, 451003103, 451021, '那满镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7707, 451030, 451000, '西林县', 2, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7708, 451030100, 451030, '八达镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7709, 451030101, 451030, '古障镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7710, 451030203, 451030, '普合苗族乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7711, 451030204, 451030, '西平乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7712, 451030208, 451030, '足别瑶族苗族乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7713, 451030206, 451030, '那佐苗族乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7714, 451030102, 451030, '那劳镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7715, 451030200, 451030, '马蚌镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7716, 451002, 451000, '右江区', 2, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7717, 451002102, 451002, '四塘镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7718, 451002203, 451002, '大楞乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7719, 451002104, 451002, '永乐镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7720, 451002202, 451002, '汪甸瑶族乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7721, 451002204, 451002, '泮水乡', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7722, 451002001, 451002, '百城街道', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7723, 451002101, 451002, '阳圩镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7724, 451002103, 451002, '龙川镇', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7725, 451002002, 451002, '龙景街道', 3, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7726, 450500, 45, '北海市', 1, '2022-03-28 15:27:49', '2022-03-28 15:27:49', NULL); +INSERT INTO `address` VALUES (7727, 450502, 450500, '海城区', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7728, 450502002, 450502, '东街街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7729, 450502001, 450502, '中街街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7730, 450502005, 450502, '地角街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7731, 450502004, 450502, '海角街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7732, 450502100, 450502, '涠洲镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7733, 450502003, 450502, '西街街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7734, 450502007, 450502, '驿马街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7735, 450502006, 450502, '高德街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7736, 450521, 450500, '合浦县', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7737, 450521104, 450521, '乌家镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7738, 450521101, 450521, '党江镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7739, 450521106, 450521, '公馆镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7740, 450521108, 450521, '山口镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7741, 450521112, 450521, '常乐镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7742, 450521100, 450521, '廉州镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7743, 450521201, 450521, '星岛湖镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7744, 450521200, 450521, '曲樟乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7745, 450521103, 450521, '沙岗镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7746, 450521109, 450521, '沙田镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7747, 450521107, 450521, '白沙镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7748, 450521111, 450521, '石康镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7749, 450521110, 450521, '石湾镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7750, 450521102, 450521, '西场镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7751, 450521105, 450521, '闸口镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7752, 450512, 450500, '铁山港区', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7753, 450512102, 450512, '兴港镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7754, 450512100, 450512, '南康镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7755, 450512101, 450512, '营盘镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7756, 450503, 450500, '银海区', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7757, 450503103, 450503, '侨港镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7758, 450503102, 450503, '平阳镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7759, 450503100, 450503, '福成镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7760, 450503101, 450503, '银滩镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7761, 451400, 45, '崇左市', 1, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7762, 451424, 451400, '大新县', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7763, 451424104, 451424, '下雷镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7764, 451424200, 451424, '五山乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7765, 451424101, 451424, '全茗镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7766, 451424208, 451424, '堪圩乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7767, 451424207, 451424, '宝圩乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7768, 451424205, 451424, '恩城乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7769, 451424202, 451424, '昌明乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7770, 451424100, 451424, '桃城镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7771, 451424206, 451424, '榄圩乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7772, 451424103, 451424, '硕龙镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7773, 451424203, 451424, '福隆乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7774, 451424204, 451424, '那岭乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7775, 451424102, 451424, '雷平镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7776, 451424201, 451424, '龙门乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7777, 451421, 451400, '扶绥县', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7778, 451421104, 451421, '东门镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7779, 451421106, 451421, '中东镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7780, 451421105, 451421, '山圩镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7781, 451421202, 451421, '岜盆乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7782, 451421107, 451421, '岽罗镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7783, 451421100, 451421, '新宁镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7784, 451421203, 451421, '昌平乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7785, 451421103, 451421, '柳桥镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7786, 451421102, 451421, '渠旧镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7787, 451421101, 451421, '渠黎镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7788, 451421201, 451421, '龙头乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7789, 451402, 451400, '江州区', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7790, 451402002, 451402, '太平街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7791, 451402104, 451402, '左州镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7792, 451402101, 451402, '新和镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7793, 451402202, 451402, '板利乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7794, 451402003, 451402, '江南街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7795, 451402103, 451402, '江州镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7796, 451402102, 451402, '濑湍镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7797, 451402004, 451402, '石景林街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7798, 451402201, 451402, '罗白乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7799, 451402105, 451402, '那隆镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7800, 451402106, 451402, '驮卢镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7801, 451423, 451400, '龙州县', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7802, 451423207, 451423, '上金乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7803, 451423202, 451423, '上降乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7804, 451423204, 451423, '上龙乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7805, 451423101, 451423, '下冻镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7806, 451423201, 451423, '八角乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7807, 451423104, 451423, '响水镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7808, 451423203, 451423, '彬桥乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7809, 451423205, 451423, '武德乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7810, 451423102, 451423, '水口镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7811, 451423206, 451423, '逐卜乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7812, 451423103, 451423, '金龙镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7813, 451423100, 451423, '龙州镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7814, 451422, 451400, '宁明县', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7815, 451422204, 451422, '东安乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7816, 451422201, 451422, '亭亮镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7817, 451422206, 451422, '北江乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7818, 451422100, 451422, '城中镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7819, 451422202, 451422, '寨安乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7820, 451422203, 451422, '峙浪乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7821, 451422102, 451422, '明江镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7822, 451422205, 451422, '板棍乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7823, 451422207, 451422, '桐棉乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7824, 451422103, 451422, '海渊镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7825, 451422101, 451422, '爱店镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7826, 451422208, 451422, '那堪乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7827, 451422209, 451422, '那楠乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7828, 451481, 451400, '凭祥市', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7829, 451481102, 451481, '上石镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7830, 451481100, 451481, '凭祥镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7831, 451481101, 451481, '友谊镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7832, 451481103, 451481, '夏石镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7833, 451425, 451400, '天等县', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7834, 451425206, 451425, '上映乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7835, 451425104, 451425, '东平镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7836, 451425103, 451425, '向都镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7837, 451425100, 451425, '天等镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7838, 451425201, 451425, '宁干乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7839, 451425208, 451425, '小山乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7840, 451425207, 451425, '把荷乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7841, 451425203, 451425, '福新镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7842, 451425102, 451425, '进结镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7843, 451425205, 451425, '进远乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7844, 451425200, 451425, '都康乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7845, 451425202, 451425, '驮堪乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7846, 451425101, 451425, '龙茗镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7847, 450600, 45, '防城港市', 1, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7848, 450681, 450600, '东兴市', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7849, 450681100, 450681, '东兴镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7850, 450681101, 450681, '江平镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7851, 450681102, 450681, '马路镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7852, 450603, 450600, '防城区', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7853, 450603102, 450603, '华石镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7854, 450603101, 450603, '大菉镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7855, 450603105, 450603, '峒中镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7856, 450603202, 450603, '扶隆镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7857, 450603458, 450603, '文昌街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7858, 450603457, 450603, '水营街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7859, 450603204, 450603, '江山镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7860, 450603203, 450603, '滩营乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7861, 450603456, 450603, '珠河街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7862, 450603201, 450603, '茅岭乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7863, 450603103, 450603, '那梭镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7864, 450603104, 450603, '那良镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7865, 450602, 450600, '港口区', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7866, 450602100, 450602, '企沙镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7867, 450602101, 450602, '光坡镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7868, 450602102, 450602, '沙潭江街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7869, 450602001, 450602, '渔洲坪街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7870, 450602103, 450602, '王府街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7871, 450602002, 450602, '白沙万街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7872, 450621, 450600, '上思县', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7873, 450621206, 450621, '公正乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7874, 450621202, 450621, '华兰乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7875, 450621203, 450621, '南屏瑶族乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7876, 450621201, 450621, '叫安乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7877, 450621101, 450621, '在妙镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7878, 450621207, 450621, '平福乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7879, 450621100, 450621, '思阳镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7880, 450621205, 450621, '那琴乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7881, 450800, 45, '贵港市', 1, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7882, 450802, 450800, '港北区', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7883, 450802201, 450802, '中里乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7884, 450802101, 450802, '大圩镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7885, 450802200, 450802, '奇石乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7886, 450802102, 450802, '庆丰镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7887, 450802202, 450802, '根竹镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7888, 450802203, 450802, '武乐镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7889, 450802100, 450802, '港城街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7890, 450802001, 450802, '贵城街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7891, 450803, 450800, '港南区', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7892, 450803104, 450803, '东津镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7893, 450803105, 450803, '八塘街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7894, 450803200, 450803, '新塘镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7895, 450803101, 450803, '木格镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7896, 450803102, 450803, '木梓镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7897, 450803100, 450803, '桥圩镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7898, 450803400, 450803, '江南街道', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7899, 450803103, 450803, '湛江镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7900, 450803201, 450803, '瓦塘镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7901, 450881, 450800, '桂平市', 2, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7902, 450881109, 450881, '下湾镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7903, 450881111, 450881, '中沙镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7904, 450881119, 450881, '南木镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7905, 450881204, 450881, '厚禄乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7906, 450881206, 450881, '垌心乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7907, 450881113, 450881, '大洋镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7908, 450881114, 450881, '大湾镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7909, 450881202, 450881, '寻旺乡', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7910, 450881101, 450881, '木乐镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7911, 450881102, 450881, '木圭镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7912, 450881110, 450881, '木根镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7913, 450881120, 450881, '江口镇', 3, '2022-03-28 15:27:50', '2022-03-28 15:27:50', NULL); +INSERT INTO `address` VALUES (7914, 450881104, 450881, '油麻镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7915, 450881115, 450881, '白沙镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7916, 450881103, 450881, '石咀镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7917, 450881116, 450881, '石龙镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7918, 450881105, 450881, '社坡镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7919, 450881108, 450881, '社步镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7920, 450881122, 450881, '紫荆镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7921, 450881203, 450881, '罗播乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7922, 450881106, 450881, '罗秀镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7923, 450881117, 450881, '蒙圩镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7924, 450881100, 450881, '西山镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7925, 450881121, 450881, '金田镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7926, 450881200, 450881, '马皮乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7927, 450881107, 450881, '麻垌镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7928, 450821, 450800, '平南县', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7929, 450821110, 450821, '上渡街道', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7930, 450821202, 450821, '东华镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7931, 450821113, 450821, '丹竹镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7932, 450821103, 450821, '六陈镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7933, 450821117, 450821, '同和镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7934, 450821205, 450821, '国安瑶族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7935, 450821107, 450821, '大坡镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7936, 450821105, 450821, '大安镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7937, 450821104, 450821, '大新镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7938, 450821108, 450821, '大洲镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7939, 450821116, 450821, '大鹏镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7940, 450821112, 450821, '安怀镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7941, 450821114, 450821, '官成镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7942, 450821102, 450821, '寺面镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7943, 450821100, 450821, '平南街道', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7944, 450821101, 450821, '平山镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7945, 450821115, 450821, '思旺镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7946, 450821204, 450821, '思界乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7947, 450821106, 450821, '武林镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7948, 450821109, 450821, '镇隆镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7949, 450821206, 450821, '马练瑶族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7950, 450804, 450800, '覃塘区', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7951, 450804102, 450804, '三里镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7952, 450804101, 450804, '东龙镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7953, 450804105, 450804, '五里镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7954, 450804204, 450804, '大岭乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7955, 450804200, 450804, '山北乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7956, 450804201, 450804, '樟木镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7957, 450804104, 450804, '石卡镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7958, 450804203, 450804, '蒙公镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7959, 450804100, 450804, '覃塘街道', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7960, 450804103, 450804, '黄练镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7961, 450300, 45, '桂林市', 1, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7962, 450303, 450300, '叠彩区', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7963, 450303002, 450303, '北门街道', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7964, 450303001, 450303, '叠彩街道', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7965, 450303200, 450303, '大河乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7966, 450332, 450300, '恭城瑶族自治县', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7967, 450332201, 450332, '三江乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7968, 450332202, 450332, '嘉会镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7969, 450332200, 450332, '平安镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7970, 450332100, 450332, '恭城镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7971, 450332101, 450332, '栗木镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7972, 450332102, 450332, '莲花镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7973, 450332203, 450332, '西岭镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7974, 450332204, 450332, '观音乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7975, 450332205, 450332, '龙虎乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7976, 450327, 450300, '灌阳县', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7977, 450327102, 450327, '文市镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7978, 450327204, 450327, '新圩镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7979, 450327103, 450327, '新街镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7980, 450327205, 450327, '水车镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7981, 450327200, 450327, '洞井瑶族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7982, 450327100, 450327, '灌阳镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7983, 450327202, 450327, '西山瑶族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7984, 450327201, 450327, '观音阁乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7985, 450327101, 450327, '黄关镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7986, 450323, 450300, '灵川县', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7987, 450323103, 450323, '三街镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7988, 450323105, 450323, '九屋镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7989, 450323205, 450323, '公平乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7990, 450323204, 450323, '兰田瑶族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7991, 450323101, 450323, '大圩镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7992, 450323201, 450323, '大境瑶族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7993, 450323102, 450323, '定江镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7994, 450323202, 450323, '海洋乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7995, 450323104, 450323, '潭下镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7996, 450323200, 450323, '潮田乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7997, 450323100, 450323, '灵川镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7998, 450323106, 450323, '灵田镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (7999, 450312, 450300, '临桂区', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8000, 450312103, 450312, '两江镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8001, 450312203, 450312, '中庸镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8002, 450312100, 450312, '临桂镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8003, 450312104, 450312, '五通镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8004, 450312102, 450312, '会仙镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8005, 450312101, 450312, '六塘镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8006, 450312200, 450312, '南边山镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8007, 450312105, 450312, '四塘镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8008, 450312204, 450312, '宛田瑶族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8009, 450312202, 450312, '茶洞镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8010, 450312205, 450312, '黄沙瑶族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8011, 450331, 450300, '荔浦市', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8012, 450381101, 450331, '东昌镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8013, 450381105, 450331, '修仁镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8014, 450381108, 450331, '双江镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8015, 450381106, 450331, '大塘镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8016, 450381102, 450331, '新坪镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8017, 450381103, 450331, '杜莫镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8018, 450381107, 450331, '花篢镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8019, 450381201, 450331, '茶城乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8020, 450381100, 450331, '荔城镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8021, 450381202, 450331, '蒲芦瑶族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8022, 450381104, 450331, '青山镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8023, 450381109, 450331, '马岭镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8024, 450381200, 450331, '龙怀乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8025, 450328, 450300, '龙胜各族自治县', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8026, 450328102, 450328, '三门镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8027, 450328206, 450328, '乐江镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8028, 450328204, 450328, '伟江乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8029, 450328103, 450328, '平等镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8030, 450328202, 450328, '江底乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8031, 450328201, 450328, '泗水乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8032, 450328101, 450328, '瓢里镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8033, 450328203, 450328, '马堤乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8034, 450328100, 450328, '龙胜镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8035, 450328104, 450328, '龙脊镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8036, 450330, 450300, '平乐县', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8037, 450330101, 450330, '二塘镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8038, 450330103, 450330, '同安镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8039, 450330203, 450330, '大发瑶族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8040, 450330100, 450330, '平乐镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8041, 450330104, 450330, '张家镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8042, 450330202, 450330, '桥亭乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8043, 450330102, 450330, '沙子镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8044, 450330105, 450330, '源头镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8045, 450330200, 450330, '阳安乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8046, 450330201, 450330, '青龙乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8047, 450305, 450300, '七星区', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8048, 450305001, 450305, '七星区街道', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8049, 450305002, 450305, '东江街道', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8050, 450305200, 450305, '朝阳乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8051, 450305004, 450305, '漓东街道', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8052, 450305003, 450305, '穿山街道', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8053, 450324, 450300, '全州县', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8054, 450324208, 450324, '东山瑶族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8055, 450324112, 450324, '两河镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8056, 450324100, 450324, '全州镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8057, 450324110, 450324, '凤凰镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8058, 450324109, 450324, '咸水镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8059, 450324104, 450324, '大西江镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8060, 450324111, 450324, '安和镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8061, 450324102, 450324, '庙头镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8062, 450324106, 450324, '才湾镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8063, 450324103, 450324, '文桥镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8064, 450324201, 450324, '枧塘镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8065, 450324200, 450324, '永岁镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8066, 450324207, 450324, '白宝镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8067, 450324108, 450324, '石塘镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8068, 450324107, 450324, '绍水镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8069, 450324204, 450324, '蕉江瑶族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8070, 450324101, 450324, '黄沙河镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8071, 450324105, 450324, '龙水镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8072, 450304, 450300, '象山区', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8073, 450304200, 450304, '二塘乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8074, 450304001, 450304, '南门街道', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8075, 450304003, 450304, '平山街道', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8076, 450304002, 450304, '象山街道', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8077, 450325, 450300, '兴安县', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8078, 450325104, 450325, '严关镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8079, 450325100, 450325, '兴安镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8080, 450325203, 450325, '华江瑶族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8081, 450325202, 450325, '崔家乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8082, 450325101, 450325, '湘漓镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8083, 450325105, 450325, '溶江镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8084, 450325200, 450325, '漠川乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8085, 450325102, 450325, '界首镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8086, 450325201, 450325, '白石乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8087, 450325103, 450325, '高尚镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8088, 450302, 450300, '秀峰区', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8089, 450302002, 450302, '丽君街道', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8090, 450302003, 450302, '甲山街道', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8091, 450302001, 450302, '秀峰街道', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8092, 450321, 450300, '阳朔县', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8093, 450321103, 450321, '兴坪镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8094, 450321201, 450321, '普益乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8095, 450321202, 450321, '杨堤乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8096, 450321101, 450321, '白沙镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8097, 450321102, 450321, '福利镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8098, 450321104, 450321, '葡萄镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8099, 450321200, 450321, '金宝乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8100, 450321100, 450321, '阳朔镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8101, 450321105, 450321, '高田镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8102, 450311, 450300, '雁山区', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8103, 450311200, 450311, '大埠乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8104, 450311101, 450311, '柘木镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8105, 450311201, 450311, '草坪回族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8106, 450311001, 450311, '雁山街道', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8107, 450311100, 450311, '雁山镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8108, 450326, 450300, '永福县', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8109, 450326203, 450326, '三皇镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8110, 450326201, 450326, '堡里镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8111, 450326202, 450326, '广福乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8112, 450326204, 450326, '永安乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8113, 450326100, 450326, '永福镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8114, 450326102, 450326, '百寿镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8115, 450326101, 450326, '罗锦镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8116, 450326103, 450326, '苏桥镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8117, 450326205, 450326, '龙江乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8118, 450329, 450300, '资源县', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8119, 450329204, 450329, '两水苗族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8120, 450329101, 450329, '中峰镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8121, 450329102, 450329, '梅溪镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8122, 450329205, 450329, '河口瑶族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8123, 450329202, 450329, '瓜里乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8124, 450329100, 450329, '资源镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8125, 450329203, 450329, '车田苗族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8126, 451200, 45, '河池市', 1, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8127, 451227, 451200, '巴马瑶族自治县', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8128, 451227207, 451227, '东山乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8129, 451227208, 451227, '凤凰乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8130, 451227100, 451227, '巴马镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8131, 451227203, 451227, '所略乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8132, 451227200, 451227, '燕洞镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8133, 451227201, 451227, '甲篆乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8134, 451227209, 451227, '百林乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8135, 451227205, 451227, '西山乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8136, 451227210, 451227, '那桃乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8137, 451227202, 451227, '那社乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8138, 451229, 451200, '大化瑶族自治县', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8139, 451229211, 451229, '七百弄乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8140, 451229207, 451229, '乙圩乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8141, 451229214, 451229, '六也乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8142, 451229200, 451229, '共和乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8143, 451229208, 451229, '北景乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8144, 451229204, 451229, '古文乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8145, 451229203, 451229, '古河乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8146, 451229100, 451229, '大化镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8147, 451229102, 451229, '岩滩镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8148, 451229210, 451229, '板升乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8149, 451229205, 451229, '江南乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8150, 451229202, 451229, '百马乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8151, 451229206, 451229, '羌圩乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8152, 451229201, 451229, '贡川乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8153, 451229101, 451229, '都阳镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8154, 451229213, 451229, '雅龙乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8155, 451224, 451200, '东兰县', 2, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8156, 451224205, 451224, '三弄瑶族乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8157, 451224103, 451224, '三石镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8158, 451224100, 451224, '东兰镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8159, 451224201, 451224, '兰木乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8160, 451224208, 451224, '切学乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8161, 451224206, 451224, '大同乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8162, 451224203, 451224, '巴畴乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8163, 451224104, 451224, '武篆镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8164, 451224200, 451224, '泗孟乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8165, 451224207, 451224, '花香乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8166, 451224204, 451224, '金谷乡', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8167, 451224102, 451224, '长乐镇', 3, '2022-03-28 15:27:51', '2022-03-28 15:27:51', NULL); +INSERT INTO `address` VALUES (8168, 451224105, 451224, '长江镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8169, 451224101, 451224, '隘洞镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8170, 451228, 451200, '都安瑶族自治县', 2, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8171, 451228212, 451228, '三只羊乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8172, 451228105, 451228, '下坳镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8173, 451228204, 451228, '东庙乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8174, 451228219, 451228, '九渡乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8175, 451228209, 451228, '保安乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8176, 451228217, 451228, '加贵乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8177, 451228103, 451228, '地苏镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8178, 451228107, 451228, '大兴镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8179, 451228100, 451228, '安阳镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8180, 451228218, 451228, '拉仁镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8181, 451228104, 451228, '拉烈镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8182, 451228210, 451228, '板岭乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8183, 451228211, 451228, '永安镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8184, 451228106, 451228, '澄江镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8185, 451228102, 451228, '百旺镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8186, 451228214, 451228, '菁盛乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8187, 451228208, 451228, '隆福乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8188, 451228101, 451228, '高岭镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8189, 451228213, 451228, '龙湾乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8190, 451223, 451200, '凤山县', 2, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8191, 451223200, 451223, '三门海镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8192, 451223207, 451223, '中亭乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8193, 451223203, 451223, '乔音乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8194, 451223100, 451223, '凤城镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8195, 451223208, 451223, '平乐瑶族乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8196, 451223209, 451223, '江洲瑶族乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8197, 451223201, 451223, '砦牙乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8198, 451223205, 451223, '金牙瑶族乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8199, 451223101, 451223, '长洲镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8200, 451226, 451200, '环江毛南族自治县', 2, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8201, 451226202, 451226, '下南乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8202, 451226105, 451226, '东兴镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8203, 451226204, 451226, '大安乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8204, 451226200, 451226, '大才乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8205, 451226103, 451226, '川山镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8206, 451226100, 451226, '思恩镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8207, 451226104, 451226, '明伦镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8208, 451226101, 451226, '水源镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8209, 451226102, 451226, '洛阳镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8210, 451226205, 451226, '长美乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8211, 451226207, 451226, '驯乐苗族乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8212, 451226206, 451226, '龙岩乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8213, 451202, 451200, '金城江区', 2, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8214, 451202101, 451202, '东江镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8215, 451202106, 451202, '九圩镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8216, 451202107, 451202, '五圩镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8217, 451202203, 451202, '侧岭乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8218, 451202204, 451202, '保平乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8219, 451202102, 451202, '六圩镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8220, 451202103, 451202, '六甲镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8221, 451202105, 451202, '拔贡镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8222, 451202104, 451202, '河池镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8223, 451202200, 451202, '白土乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8224, 451202001, 451202, '金城江街道', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8225, 451202205, 451202, '长老乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8226, 451225, 451200, '罗城仫佬族自治县', 2, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8227, 451225100, 451225, '东门镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8228, 451225202, 451225, '乔善乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8229, 451225204, 451225, '兼爱乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8230, 451225105, 451225, '四把镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8231, 451225106, 451225, '天河镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8232, 451225200, 451225, '宝坛乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8233, 451225103, 451225, '小长安镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8234, 451225107, 451225, '怀群镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8235, 451225203, 451225, '纳翁乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8236, 451225102, 451225, '黄金镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8237, 451225101, 451225, '龙岸镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8238, 451221, 451200, '南丹县', 2, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8239, 451221202, 451221, '中堡苗族乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8240, 451221203, 451221, '八圩瑶族乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8241, 451221104, 451221, '六寨镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8242, 451221106, 451221, '吾隘镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8243, 451221100, 451221, '城关镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8244, 451221101, 451221, '大厂镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8245, 451221105, 451221, '月里镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8246, 451221200, 451221, '罗富镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8247, 451221103, 451221, '芒场镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8248, 451221102, 451221, '车河镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8249, 451221204, 451221, '里湖瑶族乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8250, 451222, 451200, '天峨县', 2, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8251, 451222208, 451222, '三堡乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8252, 451222206, 451222, '下老乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8253, 451222201, 451222, '八腊瑶族乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8254, 451222100, 451222, '六排镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8255, 451222101, 451222, '向阳镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8256, 451222207, 451222, '坡结乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8257, 451222200, 451222, '岜暮乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8258, 451222204, 451222, '更新乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8259, 451222203, 451222, '纳直乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8260, 451281, 451200, '宜州区', 2, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8261, 451203101, 451281, '三岔镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8262, 451203108, 451281, '刘三姐镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8263, 451203106, 451281, '北山镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8264, 451203208, 451281, '北牙瑶族乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8265, 451203210, 451281, '同德乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8266, 451203211, 451281, '安马乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8267, 451203203, 451281, '屏南乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8268, 451203100, 451281, '庆远镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8269, 451203104, 451281, '德胜镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8270, 451203103, 451281, '怀远镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8271, 451203107, 451281, '洛东镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8272, 451203102, 451281, '洛西镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8273, 451203105, 451281, '石别镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8274, 451203200, 451281, '祥贝乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8275, 451203207, 451281, '福龙瑶族乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8276, 451203213, 451281, '龙头乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8277, 451100, 45, '贺州市', 1, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8278, 451102, 451100, '八步区', 2, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8279, 451102014, 451102, '仁义镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8280, 451102012, 451102, '信都镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8281, 451102001, 451102, '八步街道', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8282, 451102008, 451102, '南乡镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8283, 451102003, 451102, '城东街道', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8284, 451102007, 451102, '大宁镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8285, 451102010, 451102, '开山镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8286, 451102009, 451102, '桂岭镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8287, 451102005, 451102, '步头镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8288, 451102002, 451102, '江南街道', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8289, 451102013, 451102, '灵峰镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8290, 451102006, 451102, '莲塘镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8291, 451102004, 451102, '贺街镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8292, 451102011, 451102, '里松镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8293, 451102015, 451102, '铺门镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8294, 451102016, 451102, '黄洞瑶族乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8295, 451123, 451100, '富川瑶族自治县', 2, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8296, 451123103, 451123, '古城镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8297, 451123107, 451123, '城北镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8298, 451123100, 451123, '富阳镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8299, 451123200, 451123, '新华乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8300, 451123108, 451123, '朝东镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8301, 451123203, 451123, '柳家乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8302, 451123101, 451123, '白沙镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8303, 451123201, 451123, '石家乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8304, 451123104, 451123, '福利镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8305, 451123102, 451123, '莲山镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8306, 451123106, 451123, '葛坡镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8307, 451123105, 451123, '麦岭镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8308, 451103, 451100, '平桂区', 2, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8309, 451103102, 451103, '公会镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8310, 451103200, 451103, '大平瑶族乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8311, 451103105, 451103, '望高镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8312, 451103103, 451103, '水口镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8313, 451103104, 451103, '沙田镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8314, 451103106, 451103, '羊头镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8315, 451103001, 451103, '西湾街道', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8316, 451103101, 451103, '鹅塘镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8317, 451103100, 451103, '黄田镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8318, 451121, 451100, '昭平县', 2, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8319, 451121107, 451121, '五将镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8320, 451121201, 451121, '仙回瑶族乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8321, 451121206, 451121, '凤凰乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8322, 451121104, 451121, '北陀镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8323, 451121103, 451121, '富罗镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8324, 451121101, 451121, '文竹镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8325, 451121100, 451121, '昭平镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8326, 451121208, 451121, '木格乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8327, 451121205, 451121, '樟木林镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8328, 451121202, 451121, '走马镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8329, 451121105, 451121, '马江镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8330, 451121102, 451121, '黄姚镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8331, 451122, 451100, '钟山县', 2, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8332, 451122201, 451122, '两安瑶族乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8333, 451122109, 451122, '公安镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8334, 451122106, 451122, '凤翔镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8335, 451122108, 451122, '同古镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8336, 451122104, 451122, '回龙镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8337, 451122111, 451122, '清塘镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8338, 451122112, 451122, '燕塘镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8339, 451122107, 451122, '珊瑚镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8340, 451122105, 451122, '石龙镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8341, 451122113, 451122, '红花镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8342, 451122200, 451122, '花山瑶族乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8343, 451122100, 451122, '钟山镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8344, 451300, 45, '来宾市', 1, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8345, 451381, 451300, '合山市', 2, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8346, 451381200, 451381, '北泗镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8347, 451381100, 451381, '岭南镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8348, 451381201, 451381, '河里镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8349, 451324, 451300, '金秀瑶族自治县', 2, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8350, 451324207, 451324, '三江乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8351, 451324200, 451324, '三角乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8352, 451324205, 451324, '六巷乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8353, 451324204, 451324, '大樟乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8354, 451324102, 451324, '头排镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8355, 451324201, 451324, '忠良乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8356, 451324101, 451324, '桐木镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8357, 451324202, 451324, '罗香乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8358, 451324100, 451324, '金秀镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8359, 451324203, 451324, '长垌乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8360, 451323, 451300, '武宣县', 2, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8361, 451323104, 451323, '三里镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8362, 451323103, 451323, '东乡镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8363, 451323105, 451323, '二塘镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8364, 451323202, 451323, '思灵镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8365, 451323101, 451323, '桐岭镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8366, 451323100, 451323, '武宣镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8367, 451323201, 451323, '禄新镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8368, 451323102, 451323, '通挽镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8369, 451323204, 451323, '金鸡乡', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8370, 451323106, 451323, '黄茆镇', 3, '2022-03-28 15:27:52', '2022-03-28 15:27:52', NULL); +INSERT INTO `address` VALUES (8371, 451322, 451300, '象州县', 2, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8372, 451322104, 451322, '中平镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8373, 451322106, 451322, '大乐镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8374, 451322201, 451322, '妙皇乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8375, 451322103, 451322, '寺村镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8376, 451322203, 451322, '水晶乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8377, 451322202, 451322, '百丈乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8378, 451322101, 451322, '石龙镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8379, 451322105, 451322, '罗秀镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8380, 451322100, 451322, '象州镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8381, 451322102, 451322, '运江镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8382, 451322107, 451322, '马坪镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8383, 451321, 451300, '忻城县', 2, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8384, 451321207, 451321, '北更乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8385, 451321104, 451321, '古蓬镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8386, 451321100, 451321, '城关镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8387, 451321101, 451321, '大塘镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8388, 451321203, 451321, '安东乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8389, 451321102, 451321, '思练镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8390, 451321205, 451321, '新圩乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8391, 451321204, 451321, '果遂镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8392, 451321202, 451321, '欧洞乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8393, 451321103, 451321, '红渡镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8394, 451321206, 451321, '遂意乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8395, 451321201, 451321, '马泗乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8396, 451302, 451300, '兴宾区', 2, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8397, 451302206, 451302, '七洞乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8398, 451302201, 451302, '三五镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8399, 451302202, 451302, '五山镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8400, 451302004, 451302, '八一街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8401, 451302101, 451302, '凤凰镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8402, 451302213, 451302, '南泗乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8403, 451302001, 451302, '城东街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8404, 451302002, 451302, '城北街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8405, 451302209, 451302, '城厢镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8406, 451302107, 451302, '大湾镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8407, 451302211, 451302, '寺山镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8408, 451302103, 451302, '小平阳镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8409, 451302106, 451302, '平阳镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8410, 451302204, 451302, '桥巩乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8411, 451302216, 451302, '正龙乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8412, 451302003, 451302, '河西街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8413, 451302212, 451302, '石牙镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8414, 451302105, 451302, '石陵镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8415, 451302205, 451302, '良塘镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8416, 451302102, 451302, '良江镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8417, 451302108, 451302, '蒙村镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8418, 451302104, 451302, '迁江镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8419, 451302203, 451302, '陶邓镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8420, 451302214, 451302, '高安乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8421, 450200, 45, '柳州市', 1, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8422, 450202, 450200, '城中区', 2, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8423, 450202003, 450202, '中南街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8424, 450202002, 450202, '公园街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8425, 450202001, 450202, '城中街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8426, 450202006, 450202, '河东街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8427, 450202004, 450202, '沿江街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8428, 450202005, 450202, '潭中街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8429, 450202007, 450202, '静兰街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8430, 450205, 450200, '柳北区', 2, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8431, 450205101, 450205, '沙塘镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8432, 450205007, 450205, '白露街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8433, 450205100, 450205, '石碑坪镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8434, 450205003, 450205, '胜利街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8435, 450205001, 450205, '解放街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8436, 450205005, 450205, '钢城街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8437, 450205006, 450205, '锦绣街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8438, 450205102, 450205, '长塘镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8439, 450205004, 450205, '雀儿山街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8440, 450205002, 450205, '雅儒街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8441, 450222, 450200, '柳城县', 2, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8442, 450222104, 450222, '东泉镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8443, 450222106, 450222, '六塘镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8444, 450222107, 450222, '冲脉镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8445, 450222105, 450222, '凤山镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8446, 450222200, 450222, '古砦仫佬族乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8447, 450222100, 450222, '大埔镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8448, 450222102, 450222, '太平镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8449, 450222108, 450222, '寨隆镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8450, 450222103, 450222, '沙埔镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8451, 450222202, 450222, '社冲乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8452, 450222201, 450222, '马山镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8453, 450222101, 450222, '龙头镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8454, 450221, 450200, '柳江区', 2, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8455, 450206106, 450221, '三都镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8456, 450206110, 450221, '土博镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8457, 450206103, 450221, '成团镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8458, 450206100, 450221, '拉堡镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8459, 450206102, 450221, '百朋镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8460, 450206109, 450221, '穿山镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8461, 450206108, 450221, '进德镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8462, 450206107, 450221, '里高镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8463, 450204, 450200, '柳南区', 2, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8464, 450204008, 450204, '南环街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8465, 450204002, 450204, '南站街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8466, 450204100, 450204, '太阳村镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8467, 450204004, 450204, '柳南街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8468, 450204005, 450204, '柳石街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8469, 450204001, 450204, '河西街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8470, 450204102, 450204, '洛满镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8471, 450204101, 450204, '流山镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8472, 450204007, 450204, '潭西街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8473, 450204006, 450204, '银山街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8474, 450204003, 450204, '鹅山街道', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8475, 450223, 450200, '鹿寨县', 2, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8476, 450223102, 450223, '中渡镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8477, 450223204, 450223, '四排镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8478, 450223103, 450223, '寨沙镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8479, 450223202, 450223, '导江乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8480, 450223104, 450223, '平山镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8481, 450223203, 450223, '拉沟乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8482, 450223201, 450223, '江口乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8483, 450223100, 450223, '鹿寨镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8484, 450223200, 450223, '黄冕镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8485, 450224, 450200, '融安县', 2, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8486, 450224202, 450224, '东起乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8487, 450224201, 450224, '大坡乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8488, 450224104, 450224, '大将镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8489, 450224105, 450224, '大良镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8490, 450224103, 450224, '板榄镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8491, 450224204, 450224, '桥板乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8492, 450224203, 450224, '沙子乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8493, 450224102, 450224, '泗顶镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8494, 450224101, 450224, '浮石镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8495, 450224205, 450224, '潭头乡', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8496, 450224100, 450224, '长安镇', 3, '2022-03-28 15:27:53', '2022-03-28 15:27:53', NULL); +INSERT INTO `address` VALUES (8497, 450224200, 450224, '雅瑶乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8498, 450225, 450200, '融水苗族自治县', 2, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8499, 450225102, 450225, '三防镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8500, 450225206, 450225, '同练瑶族乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8501, 450225101, 450225, '和睦镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8502, 450225201, 450225, '四荣乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8503, 450225215, 450225, '大年乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8504, 450225210, 450225, '大浪镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8505, 450225203, 450225, '安太乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8506, 450225209, 450225, '安陲乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8507, 450225103, 450225, '怀宝镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8508, 450225213, 450225, '拱洞乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8509, 450225208, 450225, '杆洞乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8510, 450225200, 450225, '永乐镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8511, 450225205, 450225, '汪洞乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8512, 450225204, 450225, '洞头镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8513, 450225207, 450225, '滚贝侗族乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8514, 450225211, 450225, '白云乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8515, 450225212, 450225, '红水乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8516, 450225214, 450225, '良寨乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8517, 450225100, 450225, '融水镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8518, 450225202, 450225, '香粉乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8519, 450226, 450200, '三江侗族自治县', 2, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8520, 450226102, 450226, '丹洲镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8521, 450226201, 450226, '八江镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8522, 450226100, 450226, '古宜镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8523, 450226203, 450226, '同乐苗族乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8524, 450226210, 450226, '和平乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8525, 450226205, 450226, '富禄苗族乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8526, 450226101, 450226, '斗江镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8527, 450226202, 450226, '林溪镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8528, 450226204, 450226, '梅林乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8529, 450226206, 450226, '洋溪乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8530, 450226200, 450226, '独峒镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8531, 450226211, 450226, '程村乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8532, 450226208, 450226, '老堡乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8533, 450226207, 450226, '良口乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8534, 450226209, 450226, '高基瑶族乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8535, 450203, 450200, '鱼峰区', 2, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8536, 450203004, 450203, '五里亭街道', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8537, 450203001, 450203, '天马街道', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8538, 450203011, 450203, '洛埠镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8539, 450203013, 450203, '白沙镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8540, 450203006, 450203, '白莲街道', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8541, 450203003, 450203, '箭盘山街道', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8542, 450203005, 450203, '荣军街道', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8543, 450203012, 450203, '里雍镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8544, 450203008, 450203, '阳和街道', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8545, 450203010, 450203, '雒容镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8546, 450203002, 450203, '驾鹤街道', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8547, 450203007, 450203, '麒麟街道', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8548, 450100, 45, '南宁市', 1, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8549, 450126, 450100, '宾阳县', 2, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8550, 450126109, 450126, '中华镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8551, 450126110, 450126, '古辣镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8552, 450126113, 450126, '和吉镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8553, 450126107, 450126, '大桥镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8554, 450126100, 450126, '宾州镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8555, 450126103, 450126, '思陇镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8556, 450126105, 450126, '新圩镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8557, 450126104, 450126, '新桥镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8558, 450126108, 450126, '武陵镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8559, 450126114, 450126, '洋桥镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8560, 450126112, 450126, '王灵镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8561, 450126102, 450126, '甘棠镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8562, 450126106, 450126, '邹圩镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8563, 450126115, 450126, '陈平镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8564, 450126111, 450126, '露圩镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8565, 450126101, 450126, '黎塘镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8566, 450127, 450100, '横州市', 2, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8567, 450127114, 450127, '云表镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8568, 450127108, 450127, '六景镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8569, 450127103, 450127, '南乡镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8570, 450127107, 450127, '峦城镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8571, 450127203, 450127, '平朗镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8572, 450127106, 450127, '平马镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8573, 450127104, 450127, '新福镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8574, 450127113, 450127, '校椅镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8575, 450127100, 450127, '横州镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8576, 450127101, 450127, '百合镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8577, 450127110, 450127, '石塘镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8578, 450127105, 450127, '莲塘镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8579, 450127102, 450127, '那阳镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8580, 450127204, 450127, '镇龙乡', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8581, 450127112, 450127, '陶圩镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8582, 450127200, 450127, '马山镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8583, 450127115, 450127, '马岭镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8584, 450105, 450100, '江南区', 2, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8585, 450105102, 450105, '吴圩镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8586, 450105104, 450105, '延安镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8587, 450105002, 450105, '江南街道', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8588, 450105105, 450105, '江西镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8589, 450105003, 450105, '沙井街道', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8590, 450105001, 450105, '福建园街道', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8591, 450105103, 450105, '苏圩镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8592, 450105004, 450105, '那洪街道', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8593, 450105005, 450105, '金凯街道', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8594, 450108, 450100, '良庆区', 2, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8595, 450108104, 450108, '南晓镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8596, 450108103, 450108, '大塘镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8597, 450108001, 450108, '大沙田街道', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8598, 450108002, 450108, '玉洞街道', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8599, 450108100, 450108, '良庆镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8600, 450108102, 450108, '那陈镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8601, 450108101, 450108, '那马镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8602, 450123, 450100, '隆安县', 2, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8603, 450123105, 450123, '丁当镇', 3, '2022-03-28 15:27:54', '2022-03-28 15:27:54', NULL); +INSERT INTO `address` VALUES (8604, 450123104, 450123, '乔建镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8605, 450123101, 450123, '南圩镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8606, 450123201, 450123, '古潭乡', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8607, 450123100, 450123, '城厢镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8608, 450123205, 450123, '屏山乡', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8609, 450123204, 450123, '布泉乡', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8610, 450123103, 450123, '那桐镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8611, 450123203, 450123, '都结乡', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8612, 450123102, 450123, '雁江镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8613, 450124, 450100, '马山县', 2, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8614, 450124200, 450124, '乔利乡', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8615, 450124201, 450124, '加方乡', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8616, 450124202, 450124, '古寨瑶族乡', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8617, 450124103, 450124, '古零镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8618, 450124105, 450124, '周鹿镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8619, 450124102, 450124, '林圩镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8620, 450124106, 450124, '永州镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8621, 450124100, 450124, '白山镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8622, 450124101, 450124, '百龙滩镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8623, 450124203, 450124, '里当瑶族乡', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8624, 450124104, 450124, '金钗镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8625, 450103, 450100, '青秀区', 2, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8626, 450103002, 450103, '中山街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8627, 450103102, 450103, '伶俐镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8628, 450103100, 450103, '刘圩镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8629, 450103004, 450103, '南湖街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8630, 450103101, 450103, '南阳镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8631, 450103003, 450103, '建政街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8632, 450103001, 450103, '新竹街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8633, 450103005, 450103, '津头街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8634, 450103103, 450103, '长塘镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8635, 450125, 450100, '上林县', 2, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8636, 450125104, 450125, '三里镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8637, 450125105, 450125, '乔贤镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8638, 450125203, 450125, '塘红乡', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8639, 450125100, 450125, '大丰镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8640, 450125102, 450125, '巷贤镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8641, 450125101, 450125, '明亮镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8642, 450125202, 450125, '木山乡', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8643, 450125200, 450125, '澄泰乡', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8644, 450125103, 450125, '白圩镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8645, 450125106, 450125, '西燕镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8646, 450125205, 450125, '镇圩瑶族乡', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8647, 450110, 450100, '武鸣区', 2, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8648, 450110452, 450110, '东风农场', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8649, 450110109, 450110, '两江镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8650, 450110106, 450110, '仙湖镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8651, 450110451, 450110, '南宁华侨投资区', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8652, 450110103, 450110, '双桥镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8653, 450110100, 450110, '城厢镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8654, 450110102, 450110, '太平镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8655, 450110104, 450110, '宁武镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8656, 450110107, 450110, '府城镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8657, 450110111, 450110, '灵马镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8658, 450110112, 450110, '甘圩镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8659, 450110110, 450110, '罗波镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8660, 450110105, 450110, '锣圩镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8661, 450110108, 450110, '陆斡镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8662, 450110113, 450110, '马头镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8663, 450102, 450100, '兴宁区', 2, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8664, 450102100, 450102, '三塘镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8665, 450102101, 450102, '五塘镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8666, 450102102, 450102, '昆仑镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8667, 450102002, 450102, '朝阳街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8668, 450102001, 450102, '民生街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8669, 450107, 450100, '西乡塘区', 2, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8670, 450107007, 450107, '上尧街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8671, 450107002, 450107, '北湖街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8672, 450107005, 450107, '华强街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8673, 450107101, 450107, '双定镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8674, 450107105, 450107, '坛洛镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8675, 450107004, 450107, '安吉街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8676, 450107008, 450107, '安宁街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8677, 450107010, 450107, '心圩街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8678, 450107006, 450107, '新阳街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8679, 450107009, 450107, '石埠街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8680, 450107001, 450107, '衡阳街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8681, 450107003, 450107, '西乡塘街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8682, 450107100, 450107, '金陵镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8683, 450109, 450100, '邕宁区', 2, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8684, 450109202, 450109, '中和镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8685, 450109102, 450109, '新江镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8686, 450109103, 450109, '百济镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8687, 450109100, 450109, '蒲庙镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8688, 450109101, 450109, '那楼镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8689, 450700, 45, '钦州市', 1, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8690, 450721, 450700, '灵山县', 2, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8691, 450721110, 450721, '三隆镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8692, 450721102, 450721, '丰塘镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8693, 450721117, 450721, '伯劳镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8694, 450721105, 450721, '佛子镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8695, 450721113, 450721, '太平镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8696, 450721106, 450721, '平南镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8697, 450721103, 450721, '平山镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8698, 450721116, 450721, '文利镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8699, 450721101, 450721, '新圩镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8700, 450721112, 450721, '旧州镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8701, 450721108, 450721, '檀圩镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8702, 450721115, 450721, '武利镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8703, 450721114, 450721, '沙坪镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8704, 450721100, 450721, '灵城街道', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8705, 450721107, 450721, '烟墩镇', 3, '2022-03-28 15:27:55', '2022-03-28 15:27:55', NULL); +INSERT INTO `address` VALUES (8706, 450721104, 450721, '石塘镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8707, 450721109, 450721, '那隆镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8708, 450721111, 450721, '陆屋镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8709, 450722, 450700, '浦北县', 2, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8710, 450722108, 450722, '三合镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8711, 450722112, 450722, '乐民镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8712, 450722113, 450722, '六硍镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8713, 450722107, 450722, '北通镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8714, 450722105, 450722, '大成镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8715, 450722103, 450722, '安石镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8716, 450722115, 450722, '官垌镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8717, 450722111, 450722, '寨圩镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8718, 450722100, 450722, '小江街道', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8719, 450722114, 450722, '平睦镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8720, 450722104, 450722, '张黄镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8721, 450722116, 450722, '江城街道', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8722, 450722101, 450722, '泉水镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8723, 450722106, 450722, '白石水镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8724, 450722102, 450722, '石埇镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8725, 450722110, 450722, '福旺镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8726, 450722109, 450722, '龙门镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8727, 450703, 450700, '钦北区', 2, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8728, 450703100, 450703, '大垌镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8729, 450703109, 450703, '大寺镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8730, 450703108, 450703, '大直镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8731, 450703003, 450703, '子材街道', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8732, 450703103, 450703, '小董镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8733, 450703101, 450703, '平吉镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8734, 450703107, 450703, '新棠镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8735, 450703104, 450703, '板城镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8736, 450703110, 450703, '贵台镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8737, 450703105, 450703, '那蒙镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8738, 450703106, 450703, '长滩镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8739, 450703001, 450703, '长田街道', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8740, 450703102, 450703, '青塘镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8741, 450703002, 450703, '鸿亭街道', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8742, 450702, 450700, '钦南区', 2, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8743, 450702108, 450702, '东场镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8744, 450702107, 450702, '久隆镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8745, 450702004, 450702, '南珠街道', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8746, 450702001, 450702, '向阳街道', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8747, 450702104, 450702, '大番坡镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8748, 450702103, 450702, '尖山街道', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8749, 450702101, 450702, '康熙岭镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8750, 450702003, 450702, '文峰街道', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8751, 450702002, 450702, '水东街道', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8752, 450702100, 450702, '沙埠镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8753, 450702106, 450702, '犀牛脚镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8754, 450702109, 450702, '那丽镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8755, 450702110, 450702, '那彭镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8756, 450702111, 450702, '那思镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8757, 450702102, 450702, '黄屋屯镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8758, 450702105, 450702, '龙门港镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8759, 450400, 45, '梧州市', 1, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8760, 450421, 450400, '苍梧县', 2, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8761, 450421108, 450421, '京南镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8762, 450421112, 450421, '六堡镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8763, 450421105, 450421, '岭脚镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8764, 450421117, 450421, '旺甫镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8765, 450421114, 450421, '木双镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8766, 450421113, 450421, '梨埠镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8767, 450421116, 450421, '沙头镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8768, 450421109, 450421, '狮寨镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8769, 450421115, 450421, '石桥镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8770, 450481, 450400, '岑溪市', 2, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8771, 450481114, 450481, '三堡镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8772, 450481103, 450481, '南渡镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8773, 450481108, 450481, '大业镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8774, 450481106, 450481, '大隆镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8775, 450481113, 450481, '安平镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8776, 450481100, 450481, '岑城镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8777, 450481111, 450481, '归义镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8778, 450481107, 450481, '梨木镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8779, 450481105, 450481, '水汶镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8780, 450481115, 450481, '波塘镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8781, 450481109, 450481, '筋竹镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8782, 450481112, 450481, '糯垌镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8783, 450481110, 450481, '诚谏镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8784, 450481102, 450481, '马路镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8785, 450405, 450400, '长洲区', 2, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8786, 450405102, 450405, '倒水镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8787, 450405002, 450405, '兴龙街道', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8788, 450405001, 450405, '大塘街道', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8789, 450405101, 450405, '长洲镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8790, 450406, 450400, '龙圩区', 2, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8791, 450406101, 450406, '大坡镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8792, 450406102, 450406, '广平镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8793, 450406103, 450406, '新地镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8794, 450406100, 450406, '龙圩镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8795, 450423, 450400, '蒙山县', 2, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8796, 450423202, 450423, '夏宜瑶族乡', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8797, 450423103, 450423, '文圩镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8798, 450423102, 450423, '新圩镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8799, 450423200, 450423, '汉豪乡', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8800, 450423100, 450423, '蒙山镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8801, 450423101, 450423, '西河镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8802, 450423201, 450423, '长坪瑶族乡', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8803, 450423105, 450423, '陈塘镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8804, 450423104, 450423, '黄村镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8805, 450422, 450400, '藤县', 2, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8806, 450422115, 450422, '东荣镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8807, 450422114, 450422, '古龙镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8808, 450422105, 450422, '同心镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8809, 450422112, 450422, '和平镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8810, 450422104, 450422, '埌南镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8811, 450422103, 450422, '塘步镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8812, 450422116, 450422, '大黎镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8813, 450422110, 450422, '天平镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8814, 450422113, 450422, '太平镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8815, 450422201, 450422, '宁康乡', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8816, 450422109, 450422, '岭景镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8817, 450422200, 450422, '平福乡', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8818, 450422107, 450422, '新庆镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8819, 450422111, 450422, '濛江镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8820, 450422100, 450422, '藤州镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8821, 450422108, 450422, '象棋镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8822, 450422106, 450422, '金鸡镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8823, 450403, 450400, '万秀区', 2, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8824, 450403007, 450403, '东兴街道', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8825, 450403009, 450403, '城东镇', 3, '2022-03-28 15:27:56', '2022-03-28 15:27:56', NULL); +INSERT INTO `address` VALUES (8826, 450403004, 450403, '城北街道', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8827, 450403002, 450403, '城南街道', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8828, 450403011, 450403, '夏郢镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8829, 450403008, 450403, '富民街道', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8830, 450403006, 450403, '角嘴街道', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8831, 450403010, 450403, '龙湖镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8832, 450900, 45, '玉林市', 1, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8833, 450981, 450900, '北流市', 2, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8834, 450981119, 450981, '六靖镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8835, 450981112, 450981, '六麻镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8836, 450981100, 450981, '北流镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8837, 450981003, 450981, '城北街道', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8838, 450981002, 450981, '城南街道', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8839, 450981108, 450981, '塘岸镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8840, 450981117, 450981, '大伦镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8841, 450981111, 450981, '大坡外镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8842, 450981107, 450981, '大里镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8843, 450981103, 450981, '山围镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8844, 450981115, 450981, '平政镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8845, 450981118, 450981, '扶新镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8846, 450981113, 450981, '新丰镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8847, 450981106, 450981, '新圩镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8848, 450981101, 450981, '新荣镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8849, 450981104, 450981, '民乐镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8850, 450981102, 450981, '民安镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8851, 450981114, 450981, '沙垌镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8852, 450981109, 450981, '清水口镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8853, 450981121, 450981, '清湾镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8854, 450981116, 450981, '白马镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8855, 450981120, 450981, '石窝镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8856, 450981105, 450981, '西埌镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8857, 450981001, 450981, '陵城街道', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8858, 450981110, 450981, '隆盛镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8859, 450923, 450900, '博白县', 2, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8860, 450923109, 450923, '三滩镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8861, 450923114, 450923, '东平镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8862, 450923111, 450923, '亚山镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8863, 450923118, 450923, '凤山镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8864, 450923100, 450923, '博白镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8865, 450923102, 450923, '双凤镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8866, 450923125, 450923, '双旺镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8867, 450923128, 450923, '大坝镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8868, 450923123, 450923, '大垌镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8869, 450923119, 450923, '宁潭镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8870, 450923130, 450923, '径口镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8871, 450923120, 450923, '文地镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8872, 450923117, 450923, '新田镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8873, 450923112, 450923, '旺茂镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8874, 450923126, 450923, '松旺镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8875, 450923106, 450923, '水鸣镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8876, 450923129, 450923, '永安镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8877, 450923108, 450923, '江宁镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8878, 450923115, 450923, '沙河镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8879, 450923124, 450923, '沙陂镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8880, 450923201, 450923, '浪平乡', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8881, 450923121, 450923, '英桥镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8882, 450923116, 450923, '菱角镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8883, 450923122, 450923, '那卜镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8884, 450923107, 450923, '那林镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8885, 450923105, 450923, '顿谷镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8886, 450923110, 450923, '黄凌镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8887, 450923127, 450923, '龙潭镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8888, 450903, 450900, '福绵区', 2, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8889, 450903102, 450903, '成均镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8890, 450903103, 450903, '新桥镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8891, 450903101, 450903, '樟木镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8892, 450903104, 450903, '沙田镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8893, 450903105, 450903, '石和镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8894, 450903100, 450903, '福绵镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8895, 450922, 450900, '陆川县', 2, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8896, 450922108, 450922, '乌石镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8897, 450922111, 450922, '古城镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8898, 450922107, 450922, '大桥镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8899, 450922105, 450922, '平乐镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8900, 450922113, 450922, '横山镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8901, 450922106, 450922, '沙坡镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8902, 450922112, 450922, '沙湖镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8903, 450922110, 450922, '清湖镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8904, 450922101, 450922, '温泉镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8905, 450922114, 450922, '滩面镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8906, 450922104, 450922, '珊罗镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8907, 450922102, 450922, '米场镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8908, 450922109, 450922, '良田镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8909, 450922103, 450922, '马坡镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8910, 450921, 450900, '容县', 2, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8911, 450921104, 450921, '六王镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8912, 450921114, 450921, '十里镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8913, 450921107, 450921, '县底镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8914, 450921100, 450921, '容州镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8915, 450921115, 450921, '容西镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8916, 450921106, 450921, '杨村镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8917, 450921102, 450921, '杨梅镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8918, 450921109, 450921, '松山镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8919, 450921113, 450921, '浪水镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8920, 450921103, 450921, '灵山镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8921, 450921111, 450921, '石头镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8922, 450921112, 450921, '石寨镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8923, 450921110, 450921, '罗江镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8924, 450921108, 450921, '自良镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8925, 450921105, 450921, '黎村镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8926, 450924, 450900, '兴业县', 2, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8927, 450924107, 450924, '北市镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8928, 450924111, 450924, '卖酒镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8929, 450924103, 450924, '城隍镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8930, 450924101, 450924, '大平山镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8931, 450924110, 450924, '小平山镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8932, 450924104, 450924, '山心镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8933, 450924105, 450924, '沙塘镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8934, 450924112, 450924, '洛阳镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8935, 450924100, 450924, '石南镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8936, 450924102, 450924, '葵阳镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8937, 450924106, 450924, '蒲塘镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8938, 450924109, 450924, '高峰镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8939, 450924108, 450924, '龙安镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8940, 450902, 450900, '玉州区', 2, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8941, 450902106, 450902, '仁东镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8942, 450902113, 450902, '仁厚镇', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8943, 450902002, 450902, '南江街道', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8944, 450902005, 450902, '名山街道', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8945, 450902004, 450902, '城北街道', 3, '2022-03-28 15:27:57', '2022-03-28 15:27:57', NULL); +INSERT INTO `address` VALUES (8946, 450902003, 450902, '城西街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8947, 450902100, 450902, '大塘镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8948, 450902001, 450902, '玉城街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8949, 450902105, 450902, '茂林镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8950, 52, 0, '贵州省', 0, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8951, 520400, 52, '安顺市', 1, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8952, 520424, 520400, '关岭布依族苗族自治县', 2, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8953, 520424104, 520424, '上关镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8954, 520424001, 520424, '关索街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8955, 520424105, 520424, '坡贡镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8956, 520424103, 520424, '岗乌镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8957, 520424106, 520424, '断桥镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8958, 520424109, 520424, '新铺镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8959, 520424202, 520424, '普利乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8960, 520424102, 520424, '永宁镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8961, 520424108, 520424, '沙营镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8962, 520424107, 520424, '白水镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8963, 520424101, 520424, '花江镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8964, 520424002, 520424, '顶云街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8965, 520424203, 520424, '龙潭街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8966, 520403, 520400, '平坝区', 2, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8967, 520403106, 520403, '乐平镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8968, 520403202, 520403, '十字回族苗族乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8969, 520403104, 520403, '夏云镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8970, 520403103, 520403, '天龙镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8971, 520403001, 520403, '安平街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8972, 520403101, 520403, '白云镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8973, 520403203, 520403, '羊昌布依族苗族乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8974, 520403105, 520403, '马场镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8975, 520403102, 520403, '高峰镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8976, 520403002, 520403, '鼓楼街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8977, 520403107, 520403, '齐伯镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8978, 520422, 520400, '普定县', 2, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8979, 520422102, 520422, '化处镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8980, 520422202, 520422, '坪上苗族彝族布依族乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8981, 520422206, 520422, '定南街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8982, 520422205, 520422, '猫洞苗族仡佬族乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8983, 520422204, 520422, '猴场苗族仡佬族乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8984, 520422209, 520422, '玉秀街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8985, 520422104, 520422, '白岩镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8986, 520422207, 520422, '穿洞街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8987, 520422203, 520422, '补郎苗族乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8988, 520422103, 520422, '马场镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8989, 520422101, 520422, '马官镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8990, 520422201, 520422, '鸡场坡镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8991, 520422208, 520422, '黄桶街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8992, 520402, 520400, '西秀区', 2, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8993, 520402106, 520402, '七眼桥镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8994, 520402005, 520402, '东关街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8995, 520402204, 520402, '东屯乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8996, 520402002, 520402, '东街街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8997, 520402206, 520402, '刘官乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8998, 520402004, 520402, '北街街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (8999, 520402006, 520402, '华西街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9000, 520402001, 520402, '南街街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9001, 520402104, 520402, '双堡镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9002, 520402105, 520402, '大西桥镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9003, 520402102, 520402, '宁谷镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9004, 520402100, 520402, '宋旗镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9005, 520402201, 520402, '岩腊苗族布依族乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9006, 520402101, 520402, '幺铺镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9007, 520402200, 520402, '新场乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9008, 520402207, 520402, '新安街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9009, 520402109, 520402, '旧州镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9010, 520402203, 520402, '杨武布依族苗族乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9011, 520402107, 520402, '蔡官镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9012, 520402007, 520402, '西航街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9013, 520402003, 520402, '西街街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9014, 520402108, 520402, '轿子山镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9015, 520402202, 520402, '鸡场布依族苗族乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9016, 520402205, 520402, '黄腊布依族苗族乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9017, 520402103, 520402, '龙宫镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9018, 520423, 520400, '镇宁布依族苗族自治县', 2, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9019, 520423101, 520423, '丁旗街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9020, 520423106, 520423, '六马镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9021, 520423202, 520423, '募役镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9022, 520423104, 520423, '双龙山街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9023, 520423214, 520423, '宁西街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9024, 520423201, 520423, '扁担山镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9025, 520423207, 520423, '本寨镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9026, 520423103, 520423, '江龙镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9027, 520423204, 520423, '沙子乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9028, 520423212, 520423, '环翠街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9029, 520423213, 520423, '白马湖街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9030, 520423210, 520423, '简嘎乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9031, 520423107, 520423, '良田镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9032, 520423206, 520423, '革利乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9033, 520423105, 520423, '马厂镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9034, 520423102, 520423, '黄果树镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9035, 520425, 520400, '紫云苗族布依族自治县', 2, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9036, 520425208, 520425, '云岭街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9037, 520425206, 520425, '五峰街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9038, 520425203, 520425, '四大寨乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9039, 520425204, 520425, '坝羊镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9040, 520425202, 520425, '大营镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9041, 520425201, 520425, '宗地镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9042, 520425207, 520425, '松山街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9043, 520425104, 520425, '板当镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9044, 520425101, 520425, '格凸河镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9045, 520425205, 520425, '火花镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9046, 520425103, 520425, '猫营镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9047, 520425102, 520425, '猴场镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9048, 520425200, 520425, '白石岩乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9049, 520600, 52, '铜仁市', 1, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9050, 520602, 520600, '碧江区', 2, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9051, 520602102, 520602, '云场坪镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9052, 520602204, 520602, '六龙山乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9053, 520602202, 520602, '和平乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9054, 520602101, 520602, '坝黄镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9055, 520602100, 520602, '川硐街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9056, 520602200, 520602, '桐木坪乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9057, 520602206, 520602, '正光街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9058, 520602008, 520602, '河西街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9059, 520602201, 520602, '滑石乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9060, 520602103, 520602, '漾头镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9061, 520602010, 520602, '灯塔街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9062, 520602007, 520602, '环北街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9063, 520602203, 520602, '瓦屋乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9064, 520602205, 520602, '铜兴街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9065, 520602006, 520602, '锦江街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9066, 520625, 520600, '印江土家族苗族自治县', 2, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9067, 520625003, 520625, '中兴街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9068, 520625014, 520625, '刀坝镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9069, 520625008, 520625, '合水镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9070, 520625006, 520625, '天堂镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9071, 520625001, 520625, '峨岭街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9072, 520625012, 520625, '新寨镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9073, 520625009, 520625, '朗溪镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9074, 520625007, 520625, '木黄镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9075, 520625015, 520625, '杉树镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9076, 520625016, 520625, '杨柳镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9077, 520625004, 520625, '板溪镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9078, 520625005, 520625, '沙子坡镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9079, 520625011, 520625, '洋溪镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9080, 520625013, 520625, '紫薇镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9081, 520625010, 520625, '缠溪镇', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9082, 520625017, 520625, '罗场乡', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9083, 520625002, 520625, '龙津街道', 3, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9084, 520627, 520600, '沿河土家族自治县', 2, '2022-03-28 15:27:58', '2022-03-28 15:27:58', NULL); +INSERT INTO `address` VALUES (9085, 520627113, 520627, '中寨镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9086, 520627117, 520627, '中界镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9087, 520627211, 520627, '后坪乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9088, 520627001, 520627, '和平街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9089, 520627002, 520627, '团结街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9090, 520627106, 520627, '土地坳镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9091, 520627118, 520627, '塘坝镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9092, 520627103, 520627, '夹石镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9093, 520627105, 520627, '官舟镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9094, 520627108, 520627, '客田镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9095, 520627107, 520627, '思渠镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9096, 520627115, 520627, '新景镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9097, 520627203, 520627, '晓景乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9098, 520627116, 520627, '板场镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9099, 520627003, 520627, '沙子街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9100, 520627112, 520627, '泉坝镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9101, 520627109, 520627, '洪渡镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9102, 520627104, 520627, '淇滩镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9103, 520627111, 520627, '甘溪镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9104, 520627212, 520627, '祐溪街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9105, 520627102, 520627, '谯家镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9106, 520627114, 520627, '黄土镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9107, 520627110, 520627, '黑水镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9108, 520621, 520600, '江口县', 2, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9109, 520621001, 520621, '凯德街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9110, 520621002, 520621, '双江街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9111, 520621005, 520621, '坝盘镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9112, 520621004, 520621, '太平镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9113, 520621010, 520621, '官和侗族土家族苗族乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9114, 520621009, 520621, '德旺土家族苗族乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9115, 520621008, 520621, '怒溪镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9116, 520621006, 520621, '桃映镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9117, 520621007, 520621, '民和镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9118, 520621003, 520621, '闵孝镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9119, 520628, 520600, '松桃苗族自治县', 2, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9120, 520628201, 520628, '世昌街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9121, 520628107, 520628, '乌罗镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9122, 520628200, 520628, '九江街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9123, 520628208, 520628, '冷水溪镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9124, 520628001, 520628, '大兴街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9125, 520628103, 520628, '大坪场镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9126, 520628206, 520628, '大路镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9127, 520628204, 520628, '太平营街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9128, 520628207, 520628, '妙隘乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9129, 520628106, 520628, '孟溪镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9130, 520628105, 520628, '寨英镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9131, 520628205, 520628, '平头镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9132, 520628104, 520628, '普觉镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9133, 520628212, 520628, '木树镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9134, 520628202, 520628, '正大镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9135, 520628211, 520628, '永安乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9136, 520628214, 520628, '沙坝河乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9137, 520628112, 520628, '牛郎镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9138, 520628210, 520628, '瓦溪乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9139, 520628108, 520628, '甘龙镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9140, 520628102, 520628, '盘信镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9141, 520628101, 520628, '盘石镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9142, 520628209, 520628, '石梁乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9143, 520628100, 520628, '蓼皋街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9144, 520628110, 520628, '迓驾镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9145, 520628109, 520628, '长兴堡镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9146, 520628203, 520628, '长坪乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9147, 520628213, 520628, '黄板镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9148, 520626, 520600, '德江县', 2, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9149, 520626012, 520626, '共和镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9150, 520626008, 520626, '合兴镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9151, 520626014, 520626, '堰塘乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9152, 520626007, 520626, '复兴镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9153, 520626022, 520626, '安化街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9154, 520626013, 520626, '平原镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9155, 520626005, 520626, '枫香溪镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9156, 520626019, 520626, '桶井乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9157, 520626018, 520626, '楠杆乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9158, 520626017, 520626, '沙溪乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9159, 520626011, 520626, '泉口镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9160, 520626004, 520626, '潮砥镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9161, 520626003, 520626, '煎茶镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9162, 520626002, 520626, '玉水街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9163, 520626006, 520626, '稳坪镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9164, 520626020, 520626, '荆角乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9165, 520626016, 520626, '钱家乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9166, 520626021, 520626, '长丰乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9167, 520626009, 520626, '长堡镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9168, 520626001, 520626, '青龙街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9169, 520626010, 520626, '高山镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9170, 520626015, 520626, '龙泉乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9171, 520623, 520600, '石阡县', 2, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9172, 520623106, 520623, '中坝街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9173, 520623105, 520623, '五德镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9174, 520623201, 520623, '国荣乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9175, 520623208, 520623, '坪地场乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9176, 520623210, 520623, '坪山乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9177, 520623204, 520623, '大沙坝乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9178, 520623101, 520623, '本庄镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9179, 520623205, 520623, '枫香乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9180, 520623100, 520623, '汤山街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9181, 520623200, 520623, '河坝镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9182, 520623001, 520623, '泉都街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9183, 520623209, 520623, '甘溪乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9184, 520623102, 520623, '白沙镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9185, 520623207, 520623, '石固乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9186, 520623202, 520623, '聚凤乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9187, 520623104, 520623, '花桥镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9188, 520623206, 520623, '青阳乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9189, 520623203, 520623, '龙井乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9190, 520623103, 520623, '龙塘镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9191, 520624, 520600, '思南县', 2, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9192, 520624210, 520624, '三道水乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9193, 520624202, 520624, '东华乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9194, 520624115, 520624, '亭子坝镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9195, 520624001, 520624, '关中坝街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9196, 520624212, 520624, '兴隆乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9197, 520624111, 520624, '凉水井镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9198, 520624002, 520624, '双塘街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9199, 520624106, 520624, '合朋溪镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9200, 520624101, 520624, '塘头镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9201, 520624103, 520624, '大坝场镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9202, 520624113, 520624, '大河坝镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9203, 520624211, 520624, '天桥乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9204, 520624108, 520624, '孙家坝镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9205, 520624204, 520624, '宽坪乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9206, 520624107, 520624, '张家寨镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9207, 520624100, 520624, '思唐街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9208, 520624201, 520624, '思林乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9209, 520624104, 520624, '文家店镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9210, 520624213, 520624, '杨家坳乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9211, 520624116, 520624, '板桥镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9212, 520624206, 520624, '枫芸乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9213, 520624110, 520624, '瓮溪镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9214, 520624203, 520624, '胡家湾乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9215, 520624102, 520624, '许家坝镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9216, 520624112, 520624, '邵家桥镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9217, 520624117, 520624, '长坝镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9218, 520624109, 520624, '青杠坡镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9219, 520624114, 520624, '香坝镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9220, 520624105, 520624, '鹦鹉溪镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9221, 520603, 520600, '万山区', 2, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9222, 520603004, 520603, '万山镇', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9223, 520603008, 520603, '下溪侗族乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9224, 520603011, 520603, '丹都街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9225, 520603003, 520603, '仁山街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9226, 520603010, 520603, '大坪侗族土家族苗族乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9227, 520603007, 520603, '敖寨侗族乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9228, 520603002, 520603, '茶店街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9229, 520603001, 520603, '谢桥街道', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9230, 520603005, 520603, '高楼坪侗族乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9231, 520603009, 520603, '鱼塘乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9232, 520603006, 520603, '黄道侗族乡', 3, '2022-03-28 15:27:59', '2022-03-28 15:27:59', NULL); +INSERT INTO `address` VALUES (9233, 520622, 520600, '玉屏侗族自治县', 2, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9234, 520622007, 520622, '亚鱼乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9235, 520622003, 520622, '大龙街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9236, 520622001, 520622, '平溪街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9237, 520622006, 520622, '新店镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9238, 520622004, 520622, '朱家场镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9239, 520622005, 520622, '田坪镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9240, 520622002, 520622, '皂角坪街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9241, 520622008, 520622, '麻音塘街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9242, 520500, 52, '毕节市', 1, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9243, 520521, 520500, '大方县', 2, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9244, 520521224, 520521, '三元彝族苗族白族乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9245, 520521200, 520521, '东关乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9246, 520521226, 520521, '九驿街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9247, 520521214, 520521, '八堡彝族苗族乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9248, 520521106, 520521, '六龙镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9249, 520521215, 520521, '兴隆乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9250, 520521211, 520521, '凤山乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9251, 520521101, 520521, '双山镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9252, 520521202, 520521, '响水乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9253, 520521217, 520521, '大山苗族彝族乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9254, 520521220, 520521, '大水乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9255, 520521212, 520521, '安乐彝族仡佬族乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9256, 520521110, 520521, '对江镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9257, 520521208, 520521, '小屯乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9258, 520521227, 520521, '归化街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9259, 520521001, 520521, '慕俄格古城街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9260, 520521203, 520521, '文阁乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9261, 520521225, 520521, '星宿苗族彝族仡佬族乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9262, 520521222, 520521, '普底乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9263, 520521216, 520521, '果瓦乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9264, 520521213, 520521, '核桃乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9265, 520521221, 520521, '沙厂乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9266, 520521206, 520521, '牛场乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9267, 520521102, 520521, '猫场镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9268, 520521209, 520521, '理化乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9269, 520521108, 520521, '瓢井镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9270, 520521223, 520521, '百纳乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9271, 520521201, 520521, '竹园乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9272, 520521003, 520521, '红旗街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9273, 520521204, 520521, '绿塘乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9274, 520521104, 520521, '羊场镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9275, 520521107, 520521, '达溪镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9276, 520521109, 520521, '长石镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9277, 520521218, 520521, '雨冲乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9278, 520521002, 520521, '顺德街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9279, 520521103, 520521, '马场镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9280, 520521228, 520521, '鹏程街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9281, 520521219, 520521, '黄泥乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9282, 520521105, 520521, '黄泥塘镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9283, 520521205, 520521, '鼎新乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9284, 520527, 520500, '赫章县', 2, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9285, 520527223, 520527, '七家湾街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9286, 520527104, 520527, '六曲河镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9287, 520527202, 520527, '兴发乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9288, 520527207, 520527, '双坪乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9289, 520527100, 520527, '双河街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9290, 520527216, 520527, '古基镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9291, 520527219, 520527, '古达乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9292, 520527210, 520527, '可乐乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9293, 520527217, 520527, '哲庄镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9294, 520527102, 520527, '妈姑镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9295, 520527220, 520527, '威奢乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9296, 520527213, 520527, '安乐溪乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9297, 520527218, 520527, '平山镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9298, 520527212, 520527, '德卓镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9299, 520527214, 520527, '朱明镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9300, 520527203, 520527, '松林坡乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9301, 520527201, 520527, '水塘堡乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9302, 520527221, 520527, '汉阳街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9303, 520527211, 520527, '河镇乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9304, 520527205, 520527, '珠市乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9305, 520527101, 520527, '白果街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9306, 520527215, 520527, '结构乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9307, 520527206, 520527, '罗州镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9308, 520527103, 520527, '财神镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9309, 520527209, 520527, '辅处乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9310, 520527200, 520527, '达依乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9311, 520527105, 520527, '野马川镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9312, 520527222, 520527, '金银山街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9313, 520527208, 520527, '铁匠乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9314, 520527204, 520527, '雉街乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9315, 520523, 520500, '金沙县', 2, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9316, 520523002, 520523, '五龙街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9317, 520523017, 520523, '化觉镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9318, 520523021, 520523, '后山镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9319, 520523024, 520523, '大田彝族苗族布依族乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9320, 520523015, 520523, '太平彝族苗族乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9321, 520523006, 520523, '安底镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9322, 520523022, 520523, '安洛苗族彝族满族乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9323, 520523009, 520523, '岚头镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9324, 520523003, 520523, '岩孔街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9325, 520523011, 520523, '平坝镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9326, 520523023, 520523, '新化苗族彝族满族乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9327, 520523019, 520523, '木孔镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9328, 520523005, 520523, '柳塘镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9329, 520523014, 520523, '桂花乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9330, 520523026, 520523, '民兴街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9331, 520523007, 520523, '沙土镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9332, 520523010, 520523, '清池镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9333, 520523012, 520523, '源村镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9334, 520523013, 520523, '石场苗族彝族乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9335, 520523008, 520523, '禹谟镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9336, 520523018, 520523, '茶园镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9337, 520523004, 520523, '西洛街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9338, 520523020, 520523, '长坝镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9339, 520523025, 520523, '马路彝族苗族乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9340, 520523016, 520523, '高坪镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9341, 520523001, 520523, '鼓场街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9342, 520525, 520500, '纳雍县', 2, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9343, 520525008, 520525, '乐治镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9344, 520525028, 520525, '利园街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9345, 520525011, 520525, '勺窝镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9346, 520525016, 520525, '化作乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9347, 520525013, 520525, '厍东关乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9348, 520525021, 520525, '姑开乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9349, 520525027, 520525, '宣慰街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9350, 520525015, 520525, '寨乐镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9351, 520525003, 520525, '居仁街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9352, 520525025, 520525, '左鸠戛乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9353, 520525010, 520525, '张家湾镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9354, 520525002, 520525, '文昌街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9355, 520525012, 520525, '新房乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9356, 520525024, 520525, '昆寨乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9357, 520525020, 520525, '曙光镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9358, 520525019, 520525, '水东镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9359, 520525018, 520525, '沙包镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9360, 520525026, 520525, '猪场乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9361, 520525017, 520525, '玉龙坝镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9362, 520525029, 520525, '珙桐街道', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9363, 520525009, 520525, '百兴镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9364, 520525006, 520525, '维新镇', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9365, 520525022, 520525, '羊场乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9366, 520525014, 520525, '董地乡', 3, '2022-03-28 15:28:00', '2022-03-28 15:28:00', NULL); +INSERT INTO `address` VALUES (9367, 520525023, 520525, '锅圈岩乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9368, 520525005, 520525, '阳长镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9369, 520525001, 520525, '雍熙街道', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9370, 520525004, 520525, '骔岭镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9371, 520525007, 520525, '龙场镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9372, 520522, 520500, '黔西县', 2, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9373, 520522010, 520522, '中坪镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9374, 520522027, 520522, '中建乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9375, 520522020, 520522, '五里乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9376, 520522030, 520522, '仁和乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9377, 520522017, 520522, '协和镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9378, 520522007, 520522, '大关镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9379, 520522024, 520522, '太来乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9380, 520522028, 520522, '定新乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9381, 520522003, 520522, '文峰街道', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9382, 520522022, 520522, '新仁乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9383, 520522004, 520522, '杜鹃办事处', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9384, 520522012, 520522, '林泉镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9385, 520522002, 520522, '水西办事处', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9386, 520522025, 520522, '永燊乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9387, 520522014, 520522, '洪水镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9388, 520522015, 520522, '甘棠镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9389, 520522009, 520522, '素朴镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9390, 520522031, 520522, '红林乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9391, 520522021, 520522, '绿化乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9392, 520522026, 520522, '花溪乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9393, 520522001, 520522, '莲城街道', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9394, 520522019, 520522, '观音洞镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9395, 520522008, 520522, '谷里镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9396, 520522011, 520522, '重新镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9397, 520522013, 520522, '金兰镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9398, 520522029, 520522, '金坡乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9399, 520522005, 520522, '金碧镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9400, 520522018, 520522, '钟山镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9401, 520522023, 520522, '铁石乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9402, 520522016, 520522, '锦星镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9403, 520522032, 520522, '锦绣街道', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9404, 520522006, 520522, '雨朵镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9405, 520502, 520500, '七星关区', 2, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9406, 520502005, 520502, '三板桥街道', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9407, 520502029, 520502, '亮岩镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9408, 520502023, 520502, '何官屯镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9409, 520502031, 520502, '八寨镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9410, 520502039, 520502, '千溪乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9411, 520502043, 520502, '团结乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9412, 520502045, 520502, '大屯彝族乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9413, 520502009, 520502, '大新桥街道', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9414, 520502042, 520502, '大河乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9415, 520502025, 520502, '大银镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9416, 520502024, 520502, '对坡镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9417, 520502036, 520502, '小吉场镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9418, 520502034, 520502, '小坝镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9419, 520502035, 520502, '层台镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9420, 520502014, 520502, '岔河镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9421, 520502010, 520502, '市东街道', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9422, 520502001, 520502, '市西街道', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9423, 520502007, 520502, '德溪街道', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9424, 520502018, 520502, '撒拉溪镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9425, 520502020, 520502, '放珠镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9426, 520502037, 520502, '普宜镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9427, 520502015, 520502, '朱昌镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9428, 520502019, 520502, '杨家湾镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9429, 520502026, 520502, '林口镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9430, 520502047, 520502, '柏杨林街道', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9431, 520502013, 520502, '梨树镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9432, 520502022, 520502, '水箐镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9433, 520502004, 520502, '洪山街道', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9434, 520502033, 520502, '海子街镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9435, 520502028, 520502, '清水铺镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9436, 520502030, 520502, '燕子口镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9437, 520502027, 520502, '生机镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9438, 520502046, 520502, '田坎乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9439, 520502032, 520502, '田坝桥镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9440, 520502016, 520502, '田坝镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9441, 520502003, 520502, '碧海街道', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9442, 520502006, 520502, '碧阳街道', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9443, 520502008, 520502, '观音桥街道', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9444, 520502041, 520502, '野角乡', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9445, 520502017, 520502, '长春堡镇', 3, '2022-03-28 15:28:01', '2022-03-28 15:28:01', NULL); +INSERT INTO `address` VALUES (9446, 520502040, 520502, '阴底乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9447, 520502044, 520502, '阿市苗族彝族乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9448, 520502021, 520502, '青场镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9449, 520502012, 520502, '鸭池镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9450, 520502002, 520502, '麻园街道', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9451, 520502038, 520502, '龙场营镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9452, 520526, 520500, '威宁彝族回族苗族自治县', 2, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9453, 520526116, 520526, '东风镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9454, 520526110, 520526, '中水镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9455, 520526117, 520526, '二塘镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9456, 520526211, 520526, '云贵乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9457, 520526219, 520526, '五里岗街道', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9458, 520526212, 520526, '兔街镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9459, 520526220, 520526, '六桥街道', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9460, 520526213, 520526, '双龙乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9461, 520526205, 520526, '哈喇河镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9462, 520526106, 520526, '哲觉镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9463, 520526215, 520526, '大街乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9464, 520526114, 520526, '小海镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9465, 520526202, 520526, '岔河镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9466, 520526101, 520526, '幺站镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9467, 520526207, 520526, '斗古镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9468, 520526201, 520526, '新发布依族乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9469, 520526214, 520526, '板底乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9470, 520526204, 520526, '海拉镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9471, 520526218, 520526, '海边街道', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9472, 520526103, 520526, '炉山镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9473, 520526108, 520526, '牛棚镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9474, 520526118, 520526, '猴场镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9475, 520526208, 520526, '玉龙镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9476, 520526115, 520526, '盐仓镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9477, 520526210, 520526, '石门乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9478, 520526206, 520526, '秀水乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9479, 520526113, 520526, '羊街镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9480, 520526100, 520526, '草海镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9481, 520526107, 520526, '观风海镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9482, 520526109, 520526, '迤那镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9483, 520526200, 520526, '金斗镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9484, 520526102, 520526, '金钟镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9485, 520526221, 520526, '陕桥街道', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9486, 520526217, 520526, '雄山街道', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9487, 520526112, 520526, '雪山镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9488, 520526203, 520526, '麻乍乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9489, 520526209, 520526, '黑土河镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9490, 520526105, 520526, '黑石头镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9491, 520526104, 520526, '龙场镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9492, 520526111, 520526, '龙街镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9493, 520524, 520500, '织金县', 2, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9494, 520524012, 520524, '三塘镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9495, 520524004, 520524, '三甲街道', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9496, 520524026, 520524, '上坪寨乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9497, 520524023, 520524, '中寨镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9498, 520524011, 520524, '以那镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9499, 520524001, 520524, '八步街道', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9500, 520524009, 520524, '化起镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9501, 520524003, 520524, '双堰街道', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9502, 520524021, 520524, '后寨乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9503, 520524017, 520524, '大平苗族彝族乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9504, 520524018, 520524, '官寨苗族乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9505, 520524024, 520524, '实兴乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9506, 520524030, 520524, '少普镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9507, 520524033, 520524, '惠民街道', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9508, 520524005, 520524, '文腾街道', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9509, 520524028, 520524, '板桥镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9510, 520524006, 520524, '桂果镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9511, 520524031, 520524, '熊家场镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9512, 520524007, 520524, '牛场镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9513, 520524008, 520524, '猫场镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9514, 520524014, 520524, '珠藏镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9515, 520524029, 520524, '白泥镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9516, 520524027, 520524, '纳雍乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9517, 520524015, 520524, '绮陌街道', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9518, 520524016, 520524, '自强乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9519, 520524019, 520524, '茶店乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9520, 520524002, 520524, '金凤街道', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9521, 520524020, 520524, '金龙乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9522, 520524013, 520524, '阿弓镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9523, 520524025, 520524, '马场镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9524, 520524022, 520524, '鸡场乡', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9525, 520524032, 520524, '黑土镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9526, 520524010, 520524, '龙场镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9527, 520100, 52, '贵阳市', 1, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9528, 520113, 520100, '白云区', 2, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9529, 520113113, 520113, '云城街道', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9530, 520113108, 520113, '大山洞街道', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9531, 520113101, 520113, '沙文镇', 3, '2022-03-28 15:28:02', '2022-03-28 15:28:02', NULL); +INSERT INTO `address` VALUES (9532, 520113111, 520113, '泉湖街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9533, 520113104, 520113, '牛场布依族乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9534, 520113099, 520113, '白云区城区', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9535, 520113102, 520113, '艳山红镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9536, 520113103, 520113, '都拉布依族乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9537, 520113100, 520113, '麦架镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9538, 520113112, 520113, '龚家寨街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9539, 520115, 520100, '观山湖区', 2, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9540, 520115404, 520115, '世纪城街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9541, 520115402, 520115, '云潭街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9542, 520115400, 520115, '宾阳街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9543, 520115100, 520115, '朱昌镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9544, 520115200, 520115, '百花湖镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9545, 520115403, 520115, '观山街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9546, 520115407, 520115, '金华园街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9547, 520115101, 520115, '金华镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9548, 520115401, 520115, '金阳街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9549, 520115406, 520115, '长岭街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9550, 520111, 520100, '花溪区', 2, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9551, 520111107, 520111, '久安乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9552, 520111104, 520111, '党武街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9553, 520111105, 520111, '孟关苗族布依族乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9554, 520111128, 520111, '小孟街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9555, 520111114, 520111, '平桥街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9556, 520111116, 520111, '清溪街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9557, 520111106, 520111, '湖潮苗族布依族乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9558, 520111117, 520111, '溪北街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9559, 520111102, 520111, '燕楼镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9560, 520111101, 520111, '石板镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9561, 520111118, 520111, '贵筑街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9562, 520111131, 520111, '金筑街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9563, 520111130, 520111, '阳光街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9564, 520111100, 520111, '青岩镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9565, 520111110, 520111, '马铃布依族苗族乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9566, 520111108, 520111, '高坡苗族乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9567, 520111103, 520111, '麦坪镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9568, 520111111, 520111, '黄河路街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9569, 520111109, 520111, '黔陶布依族苗族乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9570, 520121, 520100, '开阳县', 2, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9571, 520121405, 520121, '云开街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9572, 520121103, 520121, '冯三镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9573, 520121207, 520121, '南江乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9574, 520121200, 520121, '南龙乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9575, 520121101, 520121, '双流镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9576, 520121202, 520121, '宅吉乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9577, 520121104, 520121, '楠木渡镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9578, 520121209, 520121, '毛云乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9579, 520121106, 520121, '永温镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9580, 520121403, 520121, '硒城街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9581, 520121206, 520121, '禾丰乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9582, 520121205, 520121, '米坪乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9583, 520121404, 520121, '紫兴街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9584, 520121107, 520121, '花梨镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9585, 520121102, 520121, '金中镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9586, 520121208, 520121, '高寨乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9587, 520121105, 520121, '龙岗镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9588, 520121204, 520121, '龙水乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9589, 520102, 520100, '南明区', 2, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9590, 520102402, 520102, '中华南路街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9591, 520102415, 520102, '中曹司街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9592, 520102416, 520102, '二戈街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9593, 520102201, 520102, '云关乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9594, 520102411, 520102, '兴关路街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9595, 520102200, 520102, '后巢乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9596, 520102412, 520102, '太慈桥街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9597, 520102203, 520102, '小碧布依族苗族乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9598, 520102400, 520102, '新华路街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9599, 520102405, 520102, '望城街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9600, 520102406, 520102, '水口寺街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9601, 520102202, 520102, '永乐乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9602, 520102407, 520102, '沙冲路街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9603, 520102410, 520102, '河滨街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9604, 520102414, 520102, '油榨街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9605, 520102413, 520102, '湘雅街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9606, 520102404, 520102, '西湖路街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9607, 520102417, 520102, '遵义路街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9608, 520102401, 520102, '龙洞堡街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9609, 520181, 520100, '清镇市', 2, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9610, 520181102, 520181, '卫城镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9611, 520181402, 520181, '巢凤街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9612, 520181103, 520181, '新店镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9613, 520181202, 520181, '暗流镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9614, 520181204, 520181, '流长苗族乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9615, 520181406, 520181, '滨湖街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9616, 520181205, 520181, '犁倭镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9617, 520181203, 520181, '王庄布依族苗族乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9618, 520181101, 520181, '站街镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9619, 520181100, 520181, '红枫湖镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9620, 520181405, 520181, '青龙山街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9621, 520181201, 520181, '麦格苗族布依族乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9622, 520112, 520100, '乌当区', 2, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9623, 520112106, 520112, '下坝镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9624, 520112101, 520112, '东风镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9625, 520112108, 520112, '偏坡布依族乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9626, 520112116, 520112, '新光路街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9627, 520112114, 520112, '新创路街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9628, 520112104, 520112, '新场镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9629, 520112107, 520112, '新堡布依族乡', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9630, 520112102, 520112, '水田镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9631, 520112105, 520112, '百宜镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9632, 520112103, 520112, '羊昌镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9633, 520112109, 520112, '观溪路街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9634, 520112113, 520112, '高新路街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9635, 520112115, 520112, '龙广路街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9636, 520122, 520100, '息烽县', 2, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9637, 520122102, 520122, '九庄镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9638, 520122104, 520122, '养龙司镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9639, 520122103, 520122, '小寨坝镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9640, 520122401, 520122, '永阳街道', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9641, 520122100, 520122, '永靖镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9642, 520122205, 520122, '流长镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9643, 520122101, 520122, '温泉镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9644, 520122105, 520122, '石硐镇', 3, '2022-03-28 15:28:03', '2022-03-28 15:28:03', NULL); +INSERT INTO `address` VALUES (9645, 520122106, 520122, '西山镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9646, 520122200, 520122, '青山苗族乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9647, 520122204, 520122, '鹿窝镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9648, 520123, 520100, '修文县', 2, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9649, 520123102, 520123, '久长街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9650, 520123105, 520123, '六屯镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9651, 520123103, 520123, '六广镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9652, 520123104, 520123, '六桶镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9653, 520123204, 520123, '大石布依族乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9654, 520123202, 520123, '小箐镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9655, 520123403, 520123, '扎佐街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9656, 520123404, 520123, '景阳街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9657, 520123106, 520123, '洒坪镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9658, 520123200, 520123, '谷堡镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9659, 520123402, 520123, '阳明洞街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9660, 520123401, 520123, '龙场街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9661, 520103, 520100, '云岩区', 2, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9662, 520103102, 520103, '三桥路街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9663, 520103132, 520103, '八鸽岩街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9664, 520103126, 520103, '大营路街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9665, 520103118, 520103, '头桥街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9666, 520103133, 520103, '威清门街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9667, 520103108, 520103, '市西河街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9668, 520103128, 520103, '文昌阁街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9669, 520103134, 520103, '杨惠街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9670, 520103131, 520103, '毓秀路街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9671, 520103125, 520103, '渔安街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9672, 520103129, 520103, '盐务街街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9673, 520103123, 520103, '茶园路街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9674, 520103124, 520103, '金关街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9675, 520103122, 520103, '马王街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9676, 520103105, 520103, '黔灵东路街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9677, 520103100, 520103, '黔灵镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9678, 520200, 52, '六盘水市', 1, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9679, 520203, 520200, '六枝特区', 2, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9680, 520203205, 520203, '中寨苗族彝族布依族乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9681, 520203002, 520203, '九龙街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9682, 520203105, 520203, '关寨镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9683, 520203003, 520203, '塔山街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9684, 520203104, 520203, '大用镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9685, 520203102, 520203, '岩脚镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9686, 520203107, 520203, '新华镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9687, 520203204, 520203, '新场乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9688, 520203109, 520203, '新窑镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9689, 520203213, 520203, '月亮河彝族布依族苗族乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9690, 520203103, 520203, '木岗镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9691, 520203212, 520203, '梭戛苗族彝族回族乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9692, 520203106, 520203, '牂牁镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9693, 520203203, 520203, '牛场苗族彝族乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9694, 520203201, 520203, '落别布依族彝族乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9695, 520203101, 520203, '郎岱镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9696, 520203001, 520203, '银壶街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9697, 520203108, 520203, '龙河镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9698, 520222, 520200, '盘州市', 2, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9699, 520281001, 520222, '两河街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9700, 520281103, 520222, '丹霞镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9701, 520281209, 520222, '乌蒙镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9702, 520281002, 520222, '亦资街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9703, 520281214, 520222, '保基苗族彝族乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9704, 520281106, 520222, '保田镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9705, 520281119, 520222, '刘官街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9706, 520281101, 520222, '双凤镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9707, 520281111, 520222, '响水镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9708, 520281208, 520222, '坪地彝族乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9709, 520281105, 520222, '大山镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9710, 520281122, 520222, '新民镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9711, 520281212, 520222, '旧营白族彝族苗族乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9712, 520281211, 520222, '普古彝族苗族乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9713, 520281202, 520222, '普田回族乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9714, 520281117, 520222, '柏果镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9715, 520281104, 520222, '民主镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9716, 520281210, 520222, '淤泥彝族乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9717, 520281116, 520222, '盘关镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9718, 520281109, 520222, '石桥镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9719, 520281121, 520222, '竹海镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9720, 520281100, 520222, '红果街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9721, 520281213, 520222, '羊场布依族白族苗族乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9722, 520281003, 520222, '翰林街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9723, 520281112, 520222, '胜境街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9724, 520281215, 520222, '英武镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9725, 520281206, 520222, '鸡场坪镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9726, 520221, 520200, '水城区', 2, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9727, 520221235, 520221, '以朵街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9728, 520221108, 520221, '勺米镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9729, 520221105, 520221, '化乐镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9730, 520221232, 520221, '双水街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9731, 520221111, 520221, '发耳镇', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9732, 520221214, 520221, '坪寨乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9733, 520221231, 520221, '尖山街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9734, 520221234, 520221, '新桥街道', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9735, 520221223, 520221, '新街乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9736, 520221222, 520221, '杨梅乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9737, 520221225, 520221, '果布戛彝族苗族布依族乡', 3, '2022-03-28 15:28:04', '2022-03-28 15:28:04', NULL); +INSERT INTO `address` VALUES (9738, 520221102, 520221, '比德镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9739, 520221233, 520221, '海坪街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9740, 520221230, 520221, '猴场乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9741, 520221109, 520221, '玉舍镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9742, 520221236, 520221, '石龙街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9743, 520221226, 520221, '米箩镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9744, 520221237, 520221, '红桥街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9745, 520221238, 520221, '老鹰山街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9746, 520221221, 520221, '花戛苗族布依族彝族乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9747, 520221219, 520221, '营盘乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9748, 520221200, 520221, '董地街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9749, 520221106, 520221, '蟠龙镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9750, 520221110, 520221, '都格镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9751, 520221224, 520221, '野钟乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9752, 520221107, 520221, '阿戛镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9753, 520221201, 520221, '陡箐镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9754, 520221220, 520221, '顺场乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9755, 520221112, 520221, '鸡场镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9756, 520221218, 520221, '龙场乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9757, 520201, 520200, '钟山区', 2, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9758, 520201206, 520201, '保华镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9759, 520201003, 520201, '凤凰街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9760, 520201204, 520201, '南开乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9761, 520201201, 520201, '双戛街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9762, 520201101, 520201, '大河镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9763, 520201103, 520201, '大湾镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9764, 520201004, 520201, '德坞街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9765, 520201200, 520201, '月照街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9766, 520201205, 520201, '木果镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9767, 520201007, 520201, '杨柳街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9768, 520201102, 520201, '汪家寨镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9769, 520201006, 520201, '红岩街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9770, 520201002, 520201, '荷城街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9771, 520201005, 520201, '荷泉街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9772, 520201202, 520201, '金盆乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9773, 520201203, 520201, '青林乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9774, 520201001, 520201, '黄土坡街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9775, 522600, 52, '黔东南苗族侗族自治州', 1, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9776, 522626, 522600, '岑巩县', 2, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9777, 522626105, 522626, '凯本镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9778, 522626104, 522626, '大有镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9779, 522626202, 522626, '天星乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9780, 522626102, 522626, '天马镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9781, 522626206, 522626, '客楼乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9782, 522626205, 522626, '平庄乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9783, 522626100, 522626, '思旸镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9784, 522626101, 522626, '水尾镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9785, 522626106, 522626, '注溪镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9786, 522626207, 522626, '潕水街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9787, 522626203, 522626, '羊桥乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9788, 522626103, 522626, '龙田镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9789, 522633, 522600, '从江县', 2, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9790, 522633103, 522633, '下江镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9791, 522633100, 522633, '丙妹镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9792, 522633213, 522633, '丙梅街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9793, 522633210, 522633, '东朗镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9794, 522633106, 522633, '停洞镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9795, 522633204, 522633, '刚边乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9796, 522633212, 522633, '加勉乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9797, 522633205, 522633, '加榜乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9798, 522633211, 522633, '加鸠镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9799, 522633104, 522633, '宰便镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9800, 522633203, 522633, '庆云镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9801, 522633107, 522633, '往洞镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9802, 522633207, 522633, '斗里镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9803, 522633102, 522633, '洛香镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9804, 522633206, 522633, '秀塘乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9805, 522633208, 522633, '翠里乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9806, 522633105, 522633, '西山镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9807, 522633201, 522633, '谷坪乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9808, 522633101, 522633, '贯洞镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9809, 522633200, 522633, '高增乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9810, 522636, 522600, '丹寨县', 2, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9811, 522636101, 522636, '兴仁镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9812, 522636203, 522636, '南皋乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9813, 522636103, 522636, '扬武镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9814, 522636102, 522636, '排调镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9815, 522636204, 522636, '金泉街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9816, 522636202, 522636, '雅灰乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9817, 522636100, 522636, '龙泉镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9818, 522622, 522600, '黄平县', 2, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9819, 522622203, 522622, '一碗水乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9820, 522622107, 522622, '上塘镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9821, 522622104, 522622, '平溪镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9822, 522622100, 522622, '新州镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9823, 522622101, 522622, '旧州镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9824, 522622108, 522622, '浪洞镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9825, 522622204, 522622, '纸房乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9826, 522622206, 522622, '翁坪乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9827, 522622103, 522622, '谷陇镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9828, 522622105, 522622, '重兴镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9829, 522622102, 522622, '重安镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9830, 522622106, 522622, '野洞河镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9831, 522629, 522600, '剑河县', 2, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9832, 522629200, 522629, '久仰镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9833, 522629207, 522629, '仰阿莎街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9834, 522629102, 522629, '南加镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9835, 522629202, 522629, '南哨镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9836, 522629203, 522629, '南寨镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9837, 522629103, 522629, '南明镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9838, 522629106, 522629, '太拥镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9839, 522629101, 522629, '岑松镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9840, 522629205, 522629, '敏洞乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9841, 522629100, 522629, '柳川镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9842, 522629105, 522629, '磻溪镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9843, 522629206, 522629, '观么镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9844, 522629104, 522629, '革东镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9845, 522628, 522600, '锦屏县', 2, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9846, 522628100, 522628, '三江镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9847, 522628204, 522628, '偶里乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9848, 522628103, 522628, '启蒙镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9849, 522628205, 522628, '固本乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9850, 522628200, 522628, '大同乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9851, 522628106, 522628, '平略镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9852, 522628104, 522628, '平秋镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9853, 522628207, 522628, '彦洞乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9854, 522628102, 522628, '敦寨镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9855, 522628201, 522628, '新化乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9856, 522628206, 522628, '河口乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9857, 522628101, 522628, '茅坪镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9858, 522628203, 522628, '钟灵乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9859, 522628105, 522628, '铜鼓镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9860, 522628202, 522628, '隆里乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9861, 522601, 522600, '凯里市', 2, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9862, 522601014, 522601, '万潮镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9863, 522601008, 522601, '三棵树镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9864, 522601016, 522601, '下司镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9865, 522601018, 522601, '凯棠镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9866, 522601001, 522601, '城西街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9867, 522601002, 522601, '大十字街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9868, 522601019, 522601, '大风洞镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9869, 522601006, 522601, '开怀街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9870, 522601011, 522601, '旁海镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9871, 522601004, 522601, '洗马河街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9872, 522601012, 522601, '湾水镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9873, 522601005, 522601, '湾溪街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9874, 522601013, 522601, '炉山镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9875, 522601021, 522601, '白午街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9876, 522601020, 522601, '白果井街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9877, 522601017, 522601, '碧波镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9878, 522601010, 522601, '舟溪镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9879, 522601003, 522601, '西门街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9880, 522601009, 522601, '鸭塘街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9881, 522601015, 522601, '龙场镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9882, 522634, 522600, '雷山县', 2, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9883, 522634100, 522634, '丹江镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9884, 522634104, 522634, '大塘镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9885, 522634204, 522634, '方祥乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9886, 522634200, 522634, '望丰乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9887, 522634102, 522634, '永乐镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9888, 522634101, 522634, '西江镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9889, 522634203, 522634, '达地水族乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9890, 522634103, 522634, '郎德镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9891, 522631, 522600, '黎平县', 2, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9892, 522631102, 522631, '中潮镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9893, 522631105, 522631, '九潮镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9894, 522631110, 522631, '双江镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9895, 522631206, 522631, '口江乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9896, 522631210, 522631, '地坪镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9897, 522631205, 522631, '坝寨乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9898, 522631212, 522631, '大稼乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9899, 522631103, 522631, '孟彦镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9900, 522631109, 522631, '尚重镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9901, 522631106, 522631, '岩洞镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9902, 522631213, 522631, '平寨乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9903, 522631100, 522631, '德凤街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9904, 522631214, 522631, '德化乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9905, 522631211, 522631, '德顺乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9906, 522631104, 522631, '敖市镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9907, 522631107, 522631, '水口镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9908, 522631202, 522631, '永从镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9909, 522631108, 522631, '洪州镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9910, 522631203, 522631, '罗里乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9911, 522631111, 522631, '肇兴镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9912, 522631204, 522631, '茅贡镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9913, 522631201, 522631, '雷洞乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9914, 522631200, 522631, '顺化乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9915, 522631101, 522631, '高屯街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9916, 522631215, 522631, '龙形街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9917, 522631112, 522631, '龙额镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9918, 522635, 522600, '麻江县', 2, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9919, 522635203, 522635, '坝芒布依族乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9920, 522635103, 522635, '宣威镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9921, 522635100, 522635, '杏山街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9922, 522635101, 522635, '谷硐镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9923, 522635106, 522635, '贤昌镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9924, 522635204, 522635, '金竹街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9925, 522635105, 522635, '龙山镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9926, 522632, 522600, '榕江县', 2, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9927, 522632204, 522632, '三江乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9928, 522632213, 522632, '两汪乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9929, 522632104, 522632, '乐里镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9930, 522632205, 522632, '仁里乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9931, 522632207, 522632, '八开镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9932, 522632209, 522632, '兴华乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9933, 522632100, 522632, '古州镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9934, 522632206, 522632, '塔石乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9935, 522632208, 522632, '定威乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9936, 522632102, 522632, '寨蒿镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9937, 522632202, 522632, '崇义乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9938, 522632103, 522632, '平永镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9939, 522632203, 522632, '平江镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9940, 522632212, 522632, '平阳乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9941, 522632101, 522632, '忠诚镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9942, 522632105, 522632, '朗洞镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9943, 522632201, 522632, '栽麻镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9944, 522632211, 522632, '水尾乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9945, 522632210, 522632, '计划乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9946, 522624, 522600, '三穗县', 2, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9947, 522624100, 522624, '八弓镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9948, 522624101, 522624, '台烈镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9949, 522624204, 522624, '文笔街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9950, 522624103, 522624, '桐林镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9951, 522624202, 522624, '款场乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9952, 522624205, 522624, '武笔街道', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9953, 522624200, 522624, '滚马乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9954, 522624102, 522624, '瓦寨镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9955, 522624203, 522624, '良上镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9956, 522624201, 522624, '长吉镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9957, 522624104, 522624, '雪洞镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9958, 522623, 522600, '施秉县', 2, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9959, 522623102, 522623, '双井镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9960, 522623100, 522623, '城关镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9961, 522623101, 522623, '杨柳塘镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9962, 522623103, 522623, '牛大场镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9963, 522623201, 522623, '甘溪乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9964, 522623200, 522623, '白垛乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9965, 522623202, 522623, '马号镇', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9966, 522623203, 522623, '马溪乡', 3, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9967, 522630, 522600, '台江县', 2, '2022-03-28 15:28:05', '2022-03-28 15:28:05', NULL); +INSERT INTO `address` VALUES (9968, 522630200, 522630, '南宫镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9969, 522630100, 522630, '台拱街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9970, 522630202, 522630, '台盘乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9971, 522630201, 522630, '排羊乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9972, 522630205, 522630, '方召镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9973, 522630101, 522630, '施洞镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9974, 522630204, 522630, '老屯乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9975, 522630210, 522630, '萃文街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9976, 522630203, 522630, '革一镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9977, 522627, 522600, '天柱县', 2, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9978, 522627100, 522627, '凤城街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9979, 522627203, 522627, '地湖乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9980, 522627108, 522627, '坌处镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9981, 522627102, 522627, '坪地镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9982, 522627205, 522627, '江东镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9983, 522627202, 522627, '注溪乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9984, 522627201, 522627, '渡马镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9985, 522627104, 522627, '瓮洞镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9986, 522627109, 522627, '白市镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9987, 522627106, 522627, '石洞镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9988, 522627200, 522627, '社学街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9989, 522627204, 522627, '竹林镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9990, 522627206, 522627, '联山街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9991, 522627103, 522627, '蓝田镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9992, 522627107, 522627, '远口镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9993, 522627101, 522627, '邦洞街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9994, 522627105, 522627, '高酿镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9995, 522625, 522600, '镇远县', 2, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9996, 522625204, 522625, '大地乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9997, 522625205, 522625, '尚寨乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9998, 522625203, 522625, '报京乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (9999, 522625106, 522625, '江古镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10000, 522625201, 522625, '涌溪乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10001, 522625104, 522625, '羊场镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10002, 522625103, 522625, '羊坪镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10003, 522625100, 522625, '舞阳镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10004, 522625101, 522625, '蕉溪镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10005, 522625105, 522625, '都坪镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10006, 522625107, 522625, '金堡镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10007, 522625102, 522625, '青溪镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10008, 522700, 52, '黔南布依族苗族自治州', 1, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10009, 522729, 522700, '长顺县', 2, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10010, 522729206, 522729, '中坝乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10011, 522729208, 522729, '交麻乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10012, 522729104, 522729, '代化镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10013, 522729201, 522729, '凯佐乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10014, 522729102, 522729, '威远镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10015, 522729101, 522729, '广顺镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10016, 522729202, 522729, '摆塘乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10017, 522729103, 522729, '摆所镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10018, 522729209, 522729, '敦操乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10019, 522729204, 522729, '新寨乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10020, 522729105, 522729, '白云山镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10021, 522729207, 522729, '睦化乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10022, 522729203, 522729, '种获乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10023, 522729205, 522729, '营盘乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10024, 522729001, 522729, '长寨街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10025, 522729200, 522729, '马路乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10026, 522729106, 522729, '鼓扬镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10027, 522726, 522700, '独山县', 2, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10028, 522726104, 522726, '上司镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10029, 522726105, 522726, '下司镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10030, 522726103, 522726, '基长镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10031, 522726101, 522726, '影山镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10032, 522726108, 522726, '玉水镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10033, 522726100, 522726, '百泉镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10034, 522726102, 522726, '麻万镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10035, 522726107, 522726, '麻尾镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10036, 522701, 522700, '都匀市', 2, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10037, 522701104, 522701, '匀东镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10038, 522701106, 522701, '墨冲镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10039, 522701004, 522701, '小围寨街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10040, 522701107, 522701, '平浪镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10041, 522701006, 522701, '广惠街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10042, 522701201, 522701, '归兰水族乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10043, 522701002, 522701, '文峰街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10044, 522701207, 522701, '毛尖镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10045, 522701005, 522701, '沙包堡街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10046, 522701210, 522701, '绿茵湖街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10047, 522702, 522700, '福泉市', 2, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10048, 522702203, 522702, '仙桥乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10049, 522702200, 522702, '兴隆乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10050, 522702102, 522702, '凤山镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10051, 522702104, 522702, '地松镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10052, 522702100, 522702, '城厢镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10053, 522702202, 522702, '岔河乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10054, 522702106, 522702, '牛场镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10055, 522702201, 522702, '藜山乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10056, 522702205, 522702, '谷汪乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10057, 522702107, 522702, '道坪镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10058, 522702001, 522702, '金山办事处', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10059, 522702103, 522702, '陆坪镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10060, 522702002, 522702, '马场坪办事处', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10061, 522702108, 522702, '高坪镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10062, 522702204, 522702, '高石乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10063, 522702101, 522702, '黄丝镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10064, 522702105, 522702, '龙昌镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10065, 522723, 522700, '贵定县', 2, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10066, 522723107, 522723, '云雾镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10067, 522723205, 522723, '宝山街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10068, 522723101, 522723, '德新镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10069, 522723102, 522723, '新巴镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10070, 522723106, 522723, '昌明镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10071, 522723104, 522723, '沿山镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10072, 522723103, 522723, '盘江镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10073, 522723206, 522723, '金南街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10074, 522731, 522700, '惠水县', 2, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10075, 522731102, 522731, '好花红镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10076, 522731204, 522731, '岗度镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10077, 522731103, 522731, '摆金镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10078, 522731105, 522731, '断杉镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10079, 522731209, 522731, '明田街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10080, 522731100, 522731, '涟江街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10081, 522731101, 522731, '濛江街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10082, 522731107, 522731, '王佑镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10083, 522731208, 522731, '羡塘镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10084, 522731106, 522731, '芦山镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10085, 522731104, 522731, '雅水镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10086, 522722, 522700, '荔波县', 2, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10087, 522722105, 522722, '佳荣镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10088, 522722107, 522722, '小七孔镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10089, 522722101, 522722, '朝阳镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10090, 522722001, 522722, '玉屏街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10091, 522722203, 522722, '瑶山瑶族乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10092, 522722104, 522722, '甲良镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10093, 522722102, 522722, '茂兰镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10094, 522722205, 522722, '黎明关水族乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10095, 522730, 522700, '龙里县', 2, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10096, 522730208, 522730, '冠山街道', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10097, 522730105, 522730, '洗马镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10098, 522730104, 522730, '湾滩河镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10099, 522730103, 522730, '谷脚镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10100, 522730206, 522730, '醒狮镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10101, 522730100, 522730, '龙山镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10102, 522728, 522700, '罗甸县', 2, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10103, 522728201, 522728, '云干乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10104, 522728205, 522728, '交砚乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10105, 522728202, 522728, '八总乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10106, 522728212, 522728, '凤亭乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10107, 522728213, 522728, '大亭乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10108, 522728211, 522728, '平岩乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10109, 522728207, 522728, '木引镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10110, 522728200, 522728, '板庚乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10111, 522728203, 522728, '栗木乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10112, 522728217, 522728, '沟亭乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10113, 522728103, 522728, '沫阳镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10114, 522728214, 522728, '班仁乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10115, 522728106, 522728, '红水河镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10116, 522728208, 522728, '纳坪乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10117, 522728218, 522728, '罗妥乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10118, 522728105, 522728, '罗悃镇', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10119, 522728216, 522728, '罗暮乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10120, 522728204, 522728, '罗沙乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10121, 522728215, 522728, '罗苏乡', 3, '2022-03-28 15:28:06', '2022-03-28 15:28:06', NULL); +INSERT INTO `address` VALUES (10122, 522728104, 522728, '茂井镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10123, 522728209, 522728, '董当乡', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10124, 522728210, 522728, '董架乡', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10125, 522728206, 522728, '董王乡', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10126, 522728101, 522728, '边阳镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10127, 522728102, 522728, '逢亭镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10128, 522728100, 522728, '龙坪镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10129, 522727, 522700, '平塘县', 2, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10130, 522727104, 522727, '克度镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10131, 522727201, 522727, '卡蒲毛南族乡', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10132, 522727105, 522727, '塘边镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10133, 522727103, 522727, '大塘镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10134, 522727210, 522727, '平舟镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10135, 522727109, 522727, '掌布镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10136, 522727101, 522727, '牙舟镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10137, 522727106, 522727, '甲茶镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10138, 522727107, 522727, '者密镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10139, 522727102, 522727, '通州镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10140, 522727211, 522727, '金盆街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10141, 522732, 522700, '三都水族自治县', 2, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10142, 522732100, 522732, '三合街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10143, 522732106, 522732, '中和镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10144, 522732109, 522732, '九阡镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10145, 522732107, 522732, '周覃镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10146, 522732101, 522732, '大河镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10147, 522732104, 522732, '普安镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10148, 522732105, 522732, '都江镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10149, 522725, 522700, '瓮安县', 2, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10150, 522725103, 522725, '中坪镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10151, 522725108, 522725, '天文镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10152, 522725205, 522725, '岚关乡', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10153, 522725101, 522725, '平定营镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10154, 522725104, 522725, '建中镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10155, 522725105, 522725, '永和镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10156, 522725109, 522725, '江界河镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10157, 522725102, 522725, '猴场镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10158, 522725107, 522725, '玉山镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10159, 522725106, 522725, '珠藏镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10160, 522725001, 522725, '瓮水街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10161, 522725110, 522725, '银盏镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10162, 522725002, 522725, '雍阳街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10163, 522300, 52, '黔西南布依族苗族自治州', 1, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10164, 522328, 522300, '安龙县', 2, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10165, 522328103, 522328, '万峰湖镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10166, 522328203, 522328, '五福街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10167, 522328202, 522328, '平乐乡', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10168, 522328102, 522328, '德卧镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10169, 522328002, 522328, '招堤街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10170, 522328110, 522328, '新桥镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10171, 522328204, 522328, '春潭街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10172, 522328106, 522328, '普坪镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10173, 522328104, 522328, '木咱镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10174, 522328001, 522328, '栖凤街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10175, 522328105, 522328, '洒雨镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10176, 522328112, 522328, '海子镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10177, 522328111, 522328, '笃山镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10178, 522328003, 522328, '钱相街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10179, 522328107, 522328, '龙山镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10180, 522328101, 522328, '龙广镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10181, 522327, 522300, '册亨县', 2, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10182, 522327103, 522327, '丫他镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10183, 522327108, 522327, '八渡镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10184, 522327102, 522327, '冗渡镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10185, 522327106, 522327, '双江镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10186, 522327101, 522327, '坡妹镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10187, 522327107, 522327, '岩架镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10188, 522327104, 522327, '巧马镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10189, 522327203, 522327, '弼佑镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10190, 522327204, 522327, '百口乡', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10191, 522327105, 522327, '秧坝镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10192, 522327205, 522327, '纳福街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10193, 522327100, 522327, '者楼街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10194, 522327206, 522327, '高洛街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10195, 522323, 522300, '普安县', 2, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10196, 522323203, 522323, '九峰街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10197, 522323102, 522323, '兴中镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10198, 522323002, 522323, '南湖街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10199, 522323105, 522323, '地瓜镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10200, 522323108, 522323, '新店镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10201, 522323107, 522323, '楼下镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10202, 522323103, 522323, '江西坡镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10203, 522323200, 522323, '白沙乡', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10204, 522323001, 522323, '盘水街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10205, 522323109, 522323, '罗汉镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10206, 522323202, 522323, '茶源街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10207, 522323106, 522323, '青山镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10208, 522323201, 522323, '高棉乡', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10209, 522323101, 522323, '龙吟镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10210, 522324, 522300, '晴隆县', 2, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10211, 522324206, 522324, '三宝彝族乡', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10212, 522324207, 522324, '东观街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10213, 522324106, 522324, '中营镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10214, 522324107, 522324, '光照镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10215, 522324103, 522324, '大厂镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10216, 522324205, 522324, '安谷乡', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10217, 522324101, 522324, '沙子镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10218, 522324102, 522324, '碧痕镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10219, 522324204, 522324, '紫马乡', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10220, 522324105, 522324, '花贡镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10221, 522324208, 522324, '茶马镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10222, 522324100, 522324, '莲城街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10223, 522324200, 522324, '长流乡', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10224, 522324104, 522324, '鸡场镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10225, 522326, 522300, '望谟县', 2, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10226, 522326101, 522326, '乐元镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10227, 522326103, 522326, '乐旺镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10228, 522326110, 522326, '大观镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10229, 522326001, 522326, '平洞街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10230, 522326102, 522326, '打易镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10231, 522326003, 522326, '新屯街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10232, 522326113, 522326, '昂武镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10233, 522326104, 522326, '桑郎镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10234, 522326206, 522326, '油迈乡', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10235, 522326002, 522326, '王母街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10236, 522326107, 522326, '石屯镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10237, 522326109, 522326, '蔗香镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10238, 522326112, 522326, '边饶镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10239, 522326108, 522326, '郊纳镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10240, 522326111, 522326, '麻山镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10241, 522322, 522300, '兴仁市', 2, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10242, 522302107, 522322, '下山镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10243, 522302001, 522322, '东湖街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10244, 522302106, 522322, '回龙镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10245, 522302004, 522322, '城北街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10246, 522302002, 522322, '城南街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10247, 522302109, 522322, '大山镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10248, 522302101, 522322, '屯脚镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10249, 522302102, 522322, '巴铃镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10250, 522302108, 522322, '新龙场镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10251, 522302110, 522322, '波阳镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10252, 522302105, 522322, '潘家庄镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10253, 522302103, 522322, '百德镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10254, 522302003, 522322, '真武山街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10255, 522302104, 522322, '雨樟镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10256, 522302111, 522322, '马马崖镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10257, 522302205, 522322, '鲁础营乡', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10258, 522301, 522300, '兴义市', 2, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10259, 522301025, 522301, '七舍镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10260, 522301022, 522301, '万屯镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10261, 522301008, 522301, '万峰林街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10262, 522301014, 522301, '三江口镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10263, 522301005, 522301, '下五屯街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10264, 522301006, 522301, '丰都街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10265, 522301015, 522301, '乌沙镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10266, 522301024, 522301, '仓更镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10267, 522301003, 522301, '兴泰街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10268, 522301026, 522301, '则戎镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10269, 522301011, 522301, '南盘江镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10270, 522301004, 522301, '坪东街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10271, 522301018, 522301, '威舍镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10272, 522301012, 522301, '捧乍镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10273, 522301009, 522301, '敬南镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10274, 522301007, 522301, '木贾街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10275, 522301032, 522301, '木陇街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10276, 522301002, 522301, '桔山街道', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10277, 522301027, 522301, '沧江乡', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10278, 522301010, 522301, '泥凼镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10279, 522301028, 522301, '洛万乡', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10280, 522301019, 522301, '清水河镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10281, 522301029, 522301, '猪场坪镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10282, 522301016, 522301, '白碗窑镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10283, 522301021, 522301, '郑屯镇', 3, '2022-03-28 15:28:07', '2022-03-28 15:28:07', NULL); +INSERT INTO `address` VALUES (10284, 522301030, 522301, '雄武乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10285, 522301020, 522301, '顶效街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10286, 522301017, 522301, '马岭街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10287, 522301023, 522301, '鲁屯镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10288, 522301013, 522301, '鲁布格镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10289, 522301001, 522301, '黄草街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10290, 522325, 522300, '贞丰县', 2, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10291, 522325208, 522325, '丰茂街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10292, 522325103, 522325, '北盘江镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10293, 522325209, 522325, '双峰街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10294, 522325202, 522325, '小屯乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10295, 522325204, 522325, '平街乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10296, 522325201, 522325, '挽澜乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10297, 522325207, 522325, '永丰街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10298, 522325206, 522325, '沙坪乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10299, 522325100, 522325, '珉谷街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10300, 522325104, 522325, '白层镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10301, 522325102, 522325, '者相镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10302, 522325200, 522325, '连环乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10303, 522325203, 522325, '长田乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10304, 522325205, 522325, '鲁容乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10305, 522325105, 522325, '鲁贡镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10306, 522325210, 522325, '龙兴街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10307, 522325101, 522325, '龙场镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10308, 520300, 52, '遵义市', 1, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10309, 520304, 520300, '播州区', 2, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10310, 520304104, 520304, '三合镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10311, 520304102, 520304, '三岔镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10312, 520304105, 520304, '乌江镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10313, 520304120, 520304, '乐山镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10314, 520304100, 520304, '南白街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10315, 520304112, 520304, '团溪镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10316, 520304115, 520304, '尚嵇镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10317, 520304200, 520304, '平正乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10318, 520304204, 520304, '影山湖街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10319, 520304203, 520304, '播南街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10320, 520304117, 520304, '新民镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10321, 520304121, 520304, '枫香镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10322, 520304205, 520304, '桂花桥街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10323, 520304122, 520304, '泮水镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10324, 520304201, 520304, '洪关乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10325, 520304119, 520304, '石板镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10326, 520304103, 520304, '苟江镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10327, 520304116, 520304, '茅栗镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10328, 520304114, 520304, '西坪镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10329, 520304113, 520304, '铁厂镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10330, 520304123, 520304, '马蹄镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10331, 520304118, 520304, '鸭溪镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10332, 520304101, 520304, '龙坑街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10333, 520304110, 520304, '龙坪镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10334, 520381, 520300, '赤水市', 2, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10335, 520381201, 520381, '丙安镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10336, 520381200, 520381, '两河口镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10337, 520381105, 520381, '元厚镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10338, 520381101, 520381, '复兴镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10339, 520381102, 520381, '大同镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10340, 520381100, 520381, '天台镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10341, 520381106, 520381, '官渡镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10342, 520381202, 520381, '宝源乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10343, 520381001, 520381, '市中街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10344, 520381002, 520381, '文华街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10345, 520381103, 520381, '旺隆镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10346, 520381204, 520381, '白云乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10347, 520381203, 520381, '石堡乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10348, 520381104, 520381, '葫市镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10349, 520381003, 520381, '金华街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10350, 520381107, 520381, '长期镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10351, 520381108, 520381, '长沙镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10352, 520327, 520300, '凤冈县', 2, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10353, 520327200, 520327, '何坝街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10354, 520327107, 520327, '土溪镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10355, 520327201, 520327, '天桥乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10356, 520327204, 520327, '新建乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10357, 520327104, 520327, '永和镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10358, 520327108, 520327, '永安镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10359, 520327202, 520327, '王寨乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10360, 520327102, 520327, '琊川镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10361, 520327106, 520327, '绥阳镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10362, 520327105, 520327, '花坪镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10363, 520327103, 520327, '蜂岩镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10364, 520327101, 520327, '进化镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10365, 520327100, 520327, '龙泉街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10366, 520302, 520300, '红花岗区', 2, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10367, 520302002, 520302, '万里路街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10368, 520302018, 520302, '三渡镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10369, 520302003, 520302, '中华路街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10370, 520302007, 520302, '中山路街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10371, 520302008, 520302, '北京路街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10372, 520302012, 520302, '南关街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10373, 520302024, 520302, '喇叭镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10374, 520302011, 520302, '巷口镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10375, 520302005, 520302, '延安路街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10376, 520302013, 520302, '忠庄街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10377, 520302022, 520302, '新中街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10378, 520302020, 520302, '新舟镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10379, 520302019, 520302, '新蒲街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10380, 520302023, 520302, '永乐镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10381, 520302014, 520302, '海龙镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10382, 520302015, 520302, '深溪镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10383, 520302021, 520302, '礼仪街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10384, 520302001, 520302, '老城街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10385, 520302006, 520302, '舟水桥街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10386, 520302017, 520302, '虾子镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10387, 520302004, 520302, '迎红街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10388, 520302016, 520302, '金鼎山镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10389, 520302010, 520302, '长征街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10390, 520303, 520300, '汇川区', 2, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10391, 520303001, 520303, '上海路街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10392, 520303102, 520303, '团泽镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10393, 520303003, 520303, '大连路街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10394, 520303127, 520303, '山盆镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10395, 520303125, 520303, '松林镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10396, 520303104, 520303, '板桥镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10397, 520303126, 520303, '毛石镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10398, 520303124, 520303, '沙湾镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10399, 520303105, 520303, '泗渡镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10400, 520303002, 520303, '洗马路街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10401, 520303128, 520303, '芝麻镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10402, 520303101, 520303, '董公寺街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10403, 520303103, 520303, '高坪街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10404, 520303100, 520303, '高桥街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10405, 520328, 520300, '湄潭县', 2, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10406, 520328108, 520328, '兴隆镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10407, 520328102, 520328, '复兴镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10408, 520328205, 520328, '天城镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10409, 520328204, 520328, '抄乐镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10410, 520328110, 520328, '新南镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10411, 520328101, 520328, '永兴镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10412, 520328201, 520328, '洗马镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10413, 520328001, 520328, '湄江街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10414, 520328109, 520328, '石莲镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10415, 520328107, 520328, '茅坪镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10416, 520328200, 520328, '西河镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10417, 520328103, 520328, '马山镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10418, 520328106, 520328, '高台镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10419, 520328104, 520328, '鱼泉街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10420, 520328105, 520328, '黄家坝街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10421, 520382, 520300, '仁怀市', 2, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10422, 520382109, 520382, '三合镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10423, 520382002, 520382, '中枢街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10424, 520382106, 520382, '九仓镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10425, 520382104, 520382, '五马镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10426, 520382110, 520382, '合马镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10427, 520382201, 520382, '后山苗族布依族乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10428, 520382107, 520382, '喜头镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10429, 520382101, 520382, '坛厂街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10430, 520382108, 520382, '大坝镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10431, 520382202, 520382, '学孔镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10432, 520382204, 520382, '火石岗镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10433, 520382001, 520382, '盐津街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10434, 520382205, 520382, '美酒河镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10435, 520382003, 520382, '苍龙街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10436, 520382111, 520382, '茅台镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10437, 520382105, 520382, '茅坝镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10438, 520382102, 520382, '长岗镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10439, 520382203, 520382, '高大坪镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10440, 520382103, 520382, '鲁班街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10441, 520382200, 520382, '龙井镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10442, 520323, 520300, '绥阳县', 2, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10443, 520323202, 520323, '坪乐镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10444, 520323200, 520323, '大路槽乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10445, 520323110, 520323, '太白镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10446, 520323107, 520323, '宽阔镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10447, 520323201, 520323, '小关乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10448, 520323102, 520323, '旺草镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10449, 520323106, 520323, '枧坝镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10450, 520323100, 520323, '洋川街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10451, 520323111, 520323, '温泉镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10452, 520323105, 520323, '茅垭镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10453, 520323103, 520323, '蒲场镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10454, 520323101, 520323, '郑场镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10455, 520323109, 520323, '青杠塘镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10456, 520323104, 520323, '风华镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10457, 520323108, 520323, '黄杨镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10458, 520322, 520300, '桐梓县', 2, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10459, 520322109, 520322, '九坝镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10460, 520322113, 520322, '坡渡镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10461, 520322111, 520322, '夜郎镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10462, 520322110, 520322, '大河镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10463, 520322100, 520322, '娄山关街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10464, 520322106, 520322, '官仓镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10465, 520322202, 520322, '容光镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10466, 520322203, 520322, '小水乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10467, 520322117, 520322, '尧龙山镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10468, 520322102, 520322, '新站镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10469, 520322112, 520322, '木瓜镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10470, 520322103, 520322, '松坎镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10471, 520322101, 520322, '楚米镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10472, 520322105, 520322, '水坝塘镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10473, 520322208, 520322, '海校街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10474, 520322114, 520322, '燎原镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10475, 520322115, 520322, '狮溪镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10476, 520322108, 520322, '羊磴镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10477, 520322206, 520322, '芭蕉镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10478, 520322107, 520322, '花秋镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10479, 520322116, 520322, '茅石镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10480, 520322201, 520322, '风水镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10481, 520322207, 520322, '马鬃苗族乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10482, 520322104, 520322, '高桥镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10483, 520322205, 520322, '黄莲乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10484, 520326, 520300, '务川仡佬族苗族自治县', 2, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10485, 520326101, 520326, '丰乐镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10486, 520326205, 520326, '丹砂街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10487, 520326201, 520326, '分水镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10488, 520326109, 520326, '大坪街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10489, 520326108, 520326, '柏村镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10490, 520326200, 520326, '泥高镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10491, 520326106, 520326, '浞水镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10492, 520326103, 520326, '涪洋镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10493, 520326204, 520326, '石朝乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10494, 520326105, 520326, '砚山镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10495, 520326203, 520326, '红丝乡', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10496, 520326107, 520326, '茅天镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10497, 520326202, 520326, '蕉坝镇', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10498, 520326100, 520326, '都濡街道', 3, '2022-03-28 15:28:08', '2022-03-28 15:28:08', NULL); +INSERT INTO `address` VALUES (10499, 520326104, 520326, '镇南镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10500, 520326102, 520326, '黄都镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10501, 520330, 520300, '习水县', 2, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10502, 520330203, 520330, '三岔河乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10503, 520330100, 520330, '东皇镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10504, 520330105, 520330, '习酒镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10505, 520330201, 520330, '二郎乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10506, 520330202, 520330, '二里乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10507, 520330111, 520330, '仙源镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10508, 520330205, 520330, '双龙乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10509, 520330102, 520330, '同民镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10510, 520330106, 520330, '回龙镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10511, 520330101, 520330, '土城镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10512, 520330207, 520330, '坭坝乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10513, 520330204, 520330, '大坡乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10514, 520330112, 520330, '官店镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10515, 520330113, 520330, '寨坝镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10516, 520330206, 520330, '桃林乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10517, 520330107, 520330, '桑木镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10518, 520330200, 520330, '民化乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10519, 520330108, 520330, '永安镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10520, 520330110, 520330, '温水镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10521, 520330208, 520330, '程寨乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10522, 520330109, 520330, '良村镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10523, 520330103, 520330, '醒民镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10524, 520330104, 520330, '隆兴镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10525, 520329, 520300, '余庆县', 2, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10526, 520329108, 520329, '关兴镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10527, 520329104, 520329, '大乌江镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10528, 520329201, 520329, '子营街道', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10529, 520329105, 520329, '敖溪镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10530, 520329107, 520329, '松烟镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10531, 520329103, 520329, '构皮滩镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10532, 520329100, 520329, '白泥镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10533, 520329200, 520329, '花山苗族乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10534, 520329106, 520329, '龙家镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10535, 520329102, 520329, '龙溪镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10536, 520325, 520300, '道真仡佬族苗族自治县', 2, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10537, 520325107, 520325, '三桥镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10538, 520325101, 520325, '三江镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10539, 520325200, 520325, '上坝土家族乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10540, 520325108, 520325, '大矸镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10541, 520325204, 520325, '尹珍街道', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10542, 520325109, 520325, '平模镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10543, 520325104, 520325, '忠信镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10544, 520325103, 520325, '旧城镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10545, 520325202, 520325, '桃源乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10546, 520325201, 520325, '棕坪乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10547, 520325203, 520325, '河口镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10548, 520325105, 520325, '洛龙镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10549, 520325100, 520325, '玉溪镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10550, 520325106, 520325, '阳溪镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10551, 520325102, 520325, '隆兴镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10552, 520324, 520300, '正安县', 2, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10553, 520324110, 520324, '中观镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10554, 520324201, 520324, '乐俭镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10555, 520324100, 520324, '凤仪街道', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10556, 520324102, 520324, '和溪镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10557, 520324104, 520324, '土坪镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10558, 520324103, 520324, '安场镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10559, 520324109, 520324, '小雅镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10560, 520324203, 520324, '市坪乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10561, 520324108, 520324, '庙塘镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10562, 520324107, 520324, '新州镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10563, 520324205, 520324, '杨兴镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10564, 520324106, 520324, '格林镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10565, 520324206, 520324, '桴焉镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10566, 520324105, 520324, '流渡镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10567, 520324207, 520324, '班竹乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10568, 520324101, 520324, '瑞溪镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10569, 520324200, 520324, '碧峰镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10570, 520324204, 520324, '芙蓉江镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10571, 520324202, 520324, '谢坝仡佬族苗族乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10572, 13, 0, '河北省', 0, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10573, 130600, 13, '保定市', 1, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10574, 130683, 130600, '安国市', 2, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10575, 130683101, 130683, '伍仁桥镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10576, 130683204, 130683, '北段村乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10577, 130683201, 130683, '南娄底乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10578, 130683104, 130683, '大五女镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10579, 130683200, 130683, '明官店乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10580, 130683102, 130683, '石佛镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10581, 130683100, 130683, '祁州路街道', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10582, 130683001, 130683, '药都街道', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10583, 130683105, 130683, '西佛落镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10584, 130683202, 130683, '西城镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10585, 130683103, 130683, '郑章镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10586, 130632, 130600, '安新县', 2, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10587, 130632102, 130632, '三台镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10588, 130632106, 130632, '刘李庄镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10589, 130632105, 130632, '同口镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10590, 130632200, 130632, '圈头乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10591, 130632101, 130632, '大王镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10592, 130632107, 130632, '安州镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10593, 130632100, 130632, '安新镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10594, 130632201, 130632, '寨里乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10595, 130632103, 130632, '端村镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10596, 130632108, 130632, '老河头镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10597, 130632202, 130632, '芦庄乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10598, 130632104, 130632, '赵北口镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10599, 130637, 130600, '博野县', 2, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10600, 130637200, 130637, '东墟乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10601, 130637201, 130637, '北杨镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10602, 130637203, 130637, '南小王镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10603, 130637100, 130637, '博野镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10604, 130637202, 130637, '城东镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10605, 130637101, 130637, '小店镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10606, 130637102, 130637, '程委镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10607, 130626, 130600, '定兴县', 2, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10608, 130626200, 130626, '东落堡乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10609, 130626208, 130626, '北南蔡乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10610, 130626103, 130626, '北河镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10611, 130626207, 130626, '北田乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10612, 130626101, 130626, '固城镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10613, 130626104, 130626, '天宫寺镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10614, 130626203, 130626, '姚村镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10615, 130626100, 130626, '定兴镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10616, 130626211, 130626, '小朱庄镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10617, 130626202, 130626, '张家庄乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10618, 130626209, 130626, '李郁庄乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10619, 130626206, 130626, '杨村乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10620, 130626205, 130626, '柳卓乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10621, 130626204, 130626, '肖村乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10622, 130626102, 130626, '贤寓镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10623, 130626201, 130626, '高里乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10624, 130682, 130600, '定州市', 2, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10625, 130682106, 130682, '东亭镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10626, 130682108, 130682, '东旺镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10627, 130682203, 130682, '东留春乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10628, 130682002, 130682, '北城区街道', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10629, 130682001, 130682, '南城区街道', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10630, 130682105, 130682, '叮咛店镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10631, 130682204, 130682, '号头庄回族乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10632, 130682202, 130682, '周村镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10633, 130682107, 130682, '大辛庄镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10634, 130682206, 130682, '大鹿庄乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10635, 130682112, 130682, '子位镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10636, 130682102, 130682, '庞村镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10637, 130682113, 130682, '开元镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10638, 130682115, 130682, '息冢镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10639, 130682104, 130682, '明月店镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10640, 130682111, 130682, '李亲顾镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10641, 130682205, 130682, '杨家庄乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10642, 130682101, 130682, '清风店镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10643, 130682100, 130682, '留早镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10644, 130682103, 130682, '砖路镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10645, 130682208, 130682, '西城乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10646, 130682003, 130682, '西城区街道', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10647, 130682110, 130682, '邢邑镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10648, 130682114, 130682, '长安路街道', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10649, 130682109, 130682, '高蓬镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10650, 130624, 130600, '阜平县', 2, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10651, 130624208, 130624, '北果园乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10652, 130624202, 130624, '台峪乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10653, 130624204, 130624, '史家寨乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10654, 130624206, 130624, '吴王口乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10655, 130624103, 130624, '城南庄镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10656, 130624207, 130624, '夏庄乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10657, 130624203, 130624, '大台乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10658, 130624104, 130624, '天生桥镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10659, 130624102, 130624, '平阳镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10660, 130624201, 130624, '王林口乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10661, 130624205, 130624, '砂窝乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10662, 130624100, 130624, '阜平镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10663, 130624101, 130624, '龙泉关镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10664, 130684, 130600, '高碑店市', 2, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10665, 130684003, 130684, '东盛街道', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10666, 130684105, 130684, '东马营镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10667, 130684005, 130684, '兴华路街道', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10668, 130684002, 130684, '军城街道', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10669, 130684004, 130684, '北城街道', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10670, 130684001, 130684, '和平街道', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10671, 130684202, 130684, '张六庄镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10672, 130684101, 130684, '新城镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10673, 130684100, 130684, '方官镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10674, 130684201, 130684, '梁家营镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10675, 130684102, 130684, '泗庄镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10676, 130684103, 130684, '白沟镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10677, 130684200, 130684, '肖官营镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10678, 130684204, 130684, '辛桥镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10679, 130684104, 130684, '辛立庄镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10680, 130628, 130600, '高阳县', 2, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10681, 130628203, 130628, '小王果庄镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10682, 130628101, 130628, '庞口镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10683, 130628205, 130628, '庞家佐乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10684, 130628201, 130628, '晋庄乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10685, 130628202, 130628, '蒲口乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10686, 130628102, 130628, '西演镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10687, 130628103, 130628, '邢家南镇', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10688, 130628100, 130628, '锦华街道', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10689, 130628204, 130628, '龙化乡', 3, '2022-03-28 15:28:09', '2022-03-28 15:28:09', NULL); +INSERT INTO `address` VALUES (10690, 130602, 130600, '竞秀区', 2, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10691, 130602003, 130602, '东风街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10692, 130602400, 130602, '保定国家高新区', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10693, 130602001, 130602, '先锋街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10694, 130602203, 130602, '南奇乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10695, 130602205, 130602, '大马坊乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10696, 130602201, 130602, '富昌乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10697, 130602004, 130602, '建设南路街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10698, 130602002, 130602, '新市场街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10699, 130602204, 130602, '江城乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10700, 130602202, 130602, '韩村乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10701, 130602005, 130602, '韩村北路街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10702, 130602200, 130602, '颉庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10703, 130623, 130600, '涞水县', 2, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10704, 130623106, 130623, '三坡镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10705, 130623202, 130623, '东文山乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10706, 130623102, 130623, '义安镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10707, 130623105, 130623, '九龙镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10708, 130623205, 130623, '其中口乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10709, 130623203, 130623, '娄村镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10710, 130623204, 130623, '宋各庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10711, 130623200, 130623, '明义镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10712, 130623101, 130623, '永阳镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10713, 130623100, 130623, '涞水镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10714, 130623201, 130623, '王村镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10715, 130623103, 130623, '石亭镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10716, 130623207, 130623, '胡家庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10717, 130623104, 130623, '赵各庄镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10718, 130623206, 130623, '龙门乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10719, 130630, 130600, '涞源县', 2, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10720, 130630206, 130630, '上庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10721, 130630207, 130630, '东团堡乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10722, 130630209, 130630, '乌龙沟乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10723, 130630203, 130630, '北石佛乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10724, 130630201, 130630, '南屯乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10725, 130630202, 130630, '南马庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10726, 130630208, 130630, '塔崖驿乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10727, 130630105, 130630, '杨家庄镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10728, 130630103, 130630, '水堡镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10729, 130630100, 130630, '涞源镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10730, 130630210, 130630, '烟煤洞乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10731, 130630104, 130630, '王安镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10732, 130630205, 130630, '留家庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10733, 130630106, 130630, '白石山镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10734, 130630102, 130630, '走马驿镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10735, 130630204, 130630, '金家井乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10736, 130630101, 130630, '银坊镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10737, 130635, 130600, '蠡县', 2, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10738, 130635105, 130635, '万安镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10739, 130635202, 130635, '北埝乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10740, 130635104, 130635, '北郭丹镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10741, 130635107, 130635, '南庄镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10742, 130635204, 130635, '大曲堤乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10743, 130635102, 130635, '大百尺镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10744, 130635200, 130635, '小陈乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10745, 130635201, 130635, '林堡乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10746, 130635106, 130635, '桑园镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10747, 130635101, 130635, '留史镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10748, 130635100, 130635, '蠡吾镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10749, 130635103, 130635, '辛兴镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10750, 130635203, 130635, '鲍墟镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10751, 130606, 130600, '莲池区', 2, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10752, 130606005, 130606, '东关街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10753, 130606013, 130606, '东金庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10754, 130606004, 130606, '中华路街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10755, 130606002, 130606, '五四路街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10756, 130606018, 130606, '五尧乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10757, 130606011, 130606, '南关街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10758, 130606016, 130606, '南大园乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10759, 130606001, 130606, '和平里街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10760, 130606015, 130606, '杨庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10761, 130606010, 130606, '永华路街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10762, 130606017, 130606, '焦庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10763, 130606014, 130606, '百楼镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10764, 130606008, 130606, '红星路街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10765, 130606007, 130606, '联盟街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10766, 130606009, 130606, '裕华街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10767, 130606003, 130606, '西关街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10768, 130606012, 130606, '韩庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10769, 130607, 130600, '满城区', 2, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10770, 130607201, 130607, '于家庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10771, 130607207, 130607, '刘家台乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10772, 130607103, 130607, '南韩村镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10773, 130607206, 130607, '坨南乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10774, 130607101, 130607, '大册营镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10775, 130607001, 130607, '惠阳街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10776, 130607104, 130607, '方顺桥镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10777, 130607100, 130607, '满城镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10778, 130607204, 130607, '白龙乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10779, 130607205, 130607, '石井乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10780, 130607102, 130607, '神星镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10781, 130607203, 130607, '要庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10782, 130607202, 130607, '贤台乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10783, 130608, 130600, '清苑区', 2, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10784, 130608205, 130608, '东闾乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10785, 130608206, 130608, '何桥乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10786, 130608101, 130608, '冉庄镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10787, 130608201, 130608, '北店乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10788, 130608204, 130608, '北王力乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10789, 130608106, 130608, '大庄镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10790, 130608207, 130608, '孙村乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10791, 130608105, 130608, '张登镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10792, 130608209, 130608, '望亭镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10793, 130608203, 130608, '李庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10794, 130608100, 130608, '清苑镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10795, 130608104, 130608, '温仁镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10796, 130608200, 130608, '白团乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10797, 130608202, 130608, '石桥乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10798, 130608107, 130608, '臧村镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10799, 130608208, 130608, '闫庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10800, 130608102, 130608, '阳城镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10801, 130608103, 130608, '魏村镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10802, 130634, 130600, '曲阳县', 2, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10803, 130634201, 130634, '下河乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10804, 130634205, 130634, '东旺乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10805, 130634208, 130634, '产德乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10806, 130634210, 130634, '党城乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10807, 130634213, 130634, '北台乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10808, 130634203, 130634, '孝墓镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10809, 130634202, 130634, '庄窠乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10810, 130634100, 130634, '恒州镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10811, 130634104, 130634, '文德镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10812, 130634206, 130634, '晓林镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10813, 130634101, 130634, '灵山镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10814, 130634102, 130634, '燕赵镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10815, 130634103, 130634, '羊平镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10816, 130634212, 130634, '范家庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10817, 130634200, 130634, '路庄子乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10818, 130634207, 130634, '邸村镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10819, 130634211, 130634, '郎家庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10820, 130634209, 130634, '齐村镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10821, 130629, 130600, '容城县', 2, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10822, 130629200, 130629, '八于乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10823, 130629102, 130629, '南张镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10824, 130629103, 130629, '大河镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10825, 130629100, 130629, '容城镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10826, 130629101, 130629, '小里镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10827, 130629203, 130629, '平王乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10828, 130629104, 130629, '晾马台镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10829, 130629201, 130629, '贾光乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10830, 130636, 130600, '顺平县', 2, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10831, 130636204, 130636, '台鱼乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10832, 130636205, 130636, '大悲乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10833, 130636203, 130636, '安阳乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10834, 130636202, 130636, '河口乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10835, 130636201, 130636, '白云乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10836, 130636104, 130636, '神南镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10837, 130636102, 130636, '腰山镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10838, 130636103, 130636, '蒲上镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10839, 130636100, 130636, '蒲阳镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10840, 130636101, 130636, '高于铺镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10841, 130627, 130600, '唐县', 2, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10842, 130627100, 130627, '仁厚镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10843, 130627212, 130627, '倒马关乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10844, 130627105, 130627, '军城镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10845, 130627203, 130627, '北店头乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10846, 130627103, 130627, '北罗镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10847, 130627202, 130627, '南店头乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10848, 130627206, 130627, '大洋乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10849, 130627106, 130627, '川里镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10850, 130627101, 130627, '王京镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10851, 130627104, 130627, '白合镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10852, 130627210, 130627, '石门乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10853, 130627204, 130627, '罗庄镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10854, 130627209, 130627, '羊角乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10855, 130627207, 130627, '迷城乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10856, 130627201, 130627, '都亭乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10857, 130627200, 130627, '长古城乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10858, 130627205, 130627, '雹水乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10859, 130627102, 130627, '高昌镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10860, 130627211, 130627, '黄石口乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10861, 130627208, 130627, '齐家佐乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10862, 130631, 130600, '望都县', 2, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10863, 130631205, 130631, '中韩庄镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10864, 130631101, 130631, '固店镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10865, 130631200, 130631, '寺庄镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10866, 130631100, 130631, '望都镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10867, 130631102, 130631, '贾村镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10868, 130631201, 130631, '赵庄镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10869, 130631204, 130631, '高岭乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10870, 130631202, 130631, '黑堡乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10871, 130638, 130600, '雄县', 2, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10872, 130638200, 130638, '北沙口乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10873, 130638203, 130638, '双堂乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10874, 130638102, 130638, '大营镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10875, 130638204, 130638, '张岗乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10876, 130638101, 130638, '昝岗镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10877, 130638104, 130638, '朱各庄镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10878, 130638105, 130638, '米家务镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10879, 130638100, 130638, '雄州镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10880, 130638103, 130638, '龙湾镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10881, 130609, 130600, '徐水区', 2, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10882, 130609200, 130609, '东史端镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10883, 130609205, 130609, '东釜山乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10884, 130609206, 130609, '义联庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10885, 130609102, 130609, '大因镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10886, 130609105, 130609, '大王店镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10887, 130609100, 130609, '安肃镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10888, 130609101, 130609, '崔庄镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10889, 130609203, 130609, '户木乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10890, 130609202, 130609, '正村镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10891, 130609106, 130609, '漕河镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10892, 130609204, 130609, '瀑河乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10893, 130609201, 130609, '留村镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10894, 130609103, 130609, '遂城镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10895, 130609104, 130609, '高林村镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10896, 130633, 130600, '易县', 2, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10897, 130633211, 130633, '七峪乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10898, 130633207, 130633, '凌云册乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10899, 130633218, 130633, '南城司乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10900, 130633213, 130633, '坡仓乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10901, 130633104, 130633, '塘湖镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10902, 130633205, 130633, '大龙华乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10903, 130633206, 130633, '安格庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10904, 130633212, 130633, '富岗乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10905, 130633209, 130633, '尉都乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10906, 130633100, 130633, '易州镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10907, 130633200, 130633, '桥头乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10908, 130633215, 130633, '桥家河乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10909, 130633101, 130633, '梁格庄镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10910, 130633202, 130633, '流井乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10911, 130633214, 130633, '牛岗乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10912, 130633210, 130633, '独乐乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10913, 130633105, 130633, '狼牙山镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10914, 130633216, 130633, '甘河净乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10915, 130633201, 130633, '白马乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10916, 130633107, 130633, '紫荆关镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10917, 130633106, 130633, '良岗镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10918, 130633217, 130633, '蔡家峪乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10919, 130633103, 130633, '裴山镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10920, 130633208, 130633, '西山北乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10921, 130633102, 130633, '西陵镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10922, 130633108, 130633, '高村镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10923, 130633204, 130633, '高陌乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10924, 130681, 130600, '涿州市', 2, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10925, 130681104, 130681, '东仙坡镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10926, 130681102, 130681, '东城坊镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10927, 130681202, 130681, '义和庄镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10928, 130681206, 130681, '刁窝镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10929, 130681001, 130681, '双塔街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10930, 130681204, 130681, '孙家庄乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10931, 130681100, 130681, '松林店镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10932, 130681203, 130681, '林家屯镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10933, 130681002, 130681, '桃园街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10934, 130681400, 130681, '涿州经济开发区', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10935, 130681003, 130681, '清凉寺街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10936, 130681105, 130681, '百尺竿镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10937, 130681101, 130681, '码头镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10938, 130681205, 130681, '豆庄镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10939, 130681103, 130681, '高官庄镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10940, 130900, 13, '沧州市', 1, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10941, 130981, 130900, '泊头市', 2, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10942, 130981017, 130981, '中国泊头开发区', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10943, 130981007, 130981, '交河镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10944, 130981015, 130981, '四营乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10945, 130981011, 130981, '富镇镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10946, 130981009, 130981, '寺门村镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10947, 130981012, 130981, '文庙镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10948, 130981002, 130981, '河东街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10949, 130981005, 130981, '泊镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10950, 130981013, 130981, '洼里王镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10951, 130981006, 130981, '王武庄镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10952, 130981014, 130981, '营子镇', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10953, 130981016, 130981, '西辛店乡', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10954, 130981001, 130981, '解放街道', 3, '2022-03-28 15:28:10', '2022-03-28 15:28:10', NULL); +INSERT INTO `address` VALUES (10955, 130981010, 130981, '郝村镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10956, 130981003, 130981, '鼓楼街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10957, 130981008, 130981, '齐桥镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10958, 130921, 130900, '沧县', 2, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10959, 130921209, 130921, '仵龙堂乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10960, 130921101, 130921, '兴济镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10961, 130921208, 130921, '刘家庙乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10962, 130921210, 130921, '大官厅乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10963, 130921213, 130921, '大褚村回族乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10964, 130921205, 130921, '姚官屯乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10965, 130921103, 130921, '崔尔庄镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10966, 130921202, 130921, '张官屯乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10967, 130921201, 130921, '捷地回族乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10968, 130921100, 130921, '旧州镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10969, 130921203, 130921, '李天木回族乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10970, 130921206, 130921, '杜林回族乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10971, 130921102, 130921, '杜生镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10972, 130921207, 130921, '汪家铺乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10973, 130921214, 130921, '纸房头乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10974, 130921200, 130921, '薛官屯乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10975, 130921204, 130921, '风化店乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10976, 130921211, 130921, '高川乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10977, 130921212, 130921, '黄递铺乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10978, 130923, 130900, '东光县', 2, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10979, 130923100, 130923, '东光镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10980, 130923201, 130923, '于桥乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10981, 130923105, 130923, '南霞口镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10982, 130923106, 130923, '大单镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10983, 130923102, 130923, '找王镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10984, 130923104, 130923, '灯明寺镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10985, 130923103, 130923, '秦村镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10986, 130923101, 130923, '连镇镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10987, 130923107, 130923, '龙王李镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10988, 130924, 130900, '海兴县', 2, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10989, 130924202, 130924, '小山乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10990, 130924203, 130924, '张会亭乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10991, 130924100, 130924, '苏基镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10992, 130924103, 130924, '赵毛陶镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10993, 130924101, 130924, '辛集镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10994, 130924401, 130924, '青锋农场', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10995, 130924201, 130924, '香坊乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10996, 130924102, 130924, '高湾镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10997, 130984, 130900, '河间市', 2, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10998, 130984202, 130984, '兴村镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (10999, 130984205, 130984, '北石槽乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11000, 130984103, 130984, '卧佛堂镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11001, 130984211, 130984, '尊祖庄镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11002, 130984200, 130984, '故仙乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11003, 130984209, 130984, '时村乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11004, 130984102, 130984, '景和镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11005, 130984104, 130984, '束城镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11006, 130984213, 130984, '果子洼回族乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11007, 130984106, 130984, '沙河桥镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11008, 130984203, 130984, '沙洼乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11009, 130984100, 130984, '瀛州镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11010, 130984105, 130984, '留古寺镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11011, 130984101, 130984, '米各庄镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11012, 130984210, 130984, '行别营乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11013, 130984204, 130984, '西九吉乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11014, 130984207, 130984, '诗经村镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11015, 130984201, 130984, '黎民居乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11016, 130984212, 130984, '龙华店乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11017, 130983, 130900, '黄骅市', 2, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11018, 130983400, 130983, '南大港管理区', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11019, 130983101, 130983, '南排河镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11020, 130983102, 130983, '吕桥镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11021, 130983401, 130983, '国营中捷农场', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11022, 130983204, 130983, '官庄乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11023, 130983104, 130983, '常郭镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11024, 130983206, 130983, '新村回族乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11025, 130983103, 130983, '旧城镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11026, 130983203, 130983, '滕庄子镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11027, 130983207, 130983, '羊三木回族乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11028, 130983200, 130983, '羊二庄回族乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11029, 130983001, 130983, '骅东街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11030, 130983002, 130983, '骅中街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11031, 130983003, 130983, '骅西街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11032, 130983100, 130983, '黄骅镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11033, 130983205, 130983, '齐家务镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11034, 130930, 130900, '孟村回族自治县', 2, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11035, 130930100, 130930, '孟村镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11036, 130930200, 130930, '宋庄子乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11037, 130930101, 130930, '新县镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11038, 130930201, 130930, '牛进庄乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11039, 130930102, 130930, '辛店镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11040, 130930103, 130930, '高寨镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11041, 130927, 130900, '南皮县', 2, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11042, 130927105, 130927, '乌马营镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11043, 130927101, 130927, '冯家口镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11044, 130927201, 130927, '刘八里乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11045, 130927100, 130927, '南皮镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11046, 130927200, 130927, '大浪淀乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11047, 130927102, 130927, '寨子镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11048, 130927202, 130927, '潞灌乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11049, 130927104, 130927, '王寺镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11050, 130927103, 130927, '鲍官屯镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11051, 130922, 130900, '青县', 2, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11052, 130922200, 130922, '上伍乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11053, 130922102, 130922, '新兴镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11054, 130922201, 130922, '曹寺乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11055, 130922104, 130922, '木门店镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11056, 130922103, 130922, '流河镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11057, 130922100, 130922, '清州镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11058, 130922202, 130922, '盘古镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11059, 130922101, 130922, '金牛镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11060, 130922203, 130922, '陈嘴乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11061, 130922400, 130922, '青县农场', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11062, 130922105, 130922, '马厂镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11063, 130982, 130900, '任丘市', 2, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11064, 130982206, 130982, '七间房乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11065, 130982004, 130982, '中华路街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11066, 130982208, 130982, '于村乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11067, 130982100, 130982, '出岸镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11068, 130982503, 130982, '创业路街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11069, 130982207, 130982, '北汉乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11070, 130982205, 130982, '北辛庄镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11071, 130982102, 130982, '吕公堡镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11072, 130982500, 130982, '开发区管理委员会', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11073, 130982001, 130982, '新华路街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11074, 130982106, 130982, '梁召镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11075, 130982003, 130982, '永丰路街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11076, 130982504, 130982, '油建路街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11077, 130982502, 130982, '渤海路街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11078, 130982101, 130982, '石门桥镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11079, 130982105, 130982, '苟各庄镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11080, 130982002, 130982, '西环路街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11081, 130982203, 130982, '议论堡镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11082, 130982107, 130982, '辛中驿镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11083, 130982104, 130982, '鄚州镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11084, 130982103, 130982, '长丰镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11085, 130982204, 130982, '青塔乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11086, 130982108, 130982, '麻家坞镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11087, 130926, 130900, '肃宁县', 2, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11088, 130926104, 130926, '万里镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11089, 130926204, 130926, '付家佐镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11090, 130926103, 130926, '尚村镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11091, 130926105, 130926, '师素镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11092, 130926101, 130926, '梁村镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11093, 130926203, 130926, '河北留善寺镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11094, 130926102, 130926, '窝北镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11095, 130926100, 130926, '肃宁镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11096, 130926205, 130926, '邵庄乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11097, 130928, 130900, '吴桥县', 2, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11098, 130928201, 130928, '东宋门乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11099, 130928102, 130928, '于集镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11100, 130928204, 130928, '何庄乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11101, 130928104, 130928, '安陵镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11102, 130928200, 130928, '曹洼乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11103, 130928202, 130928, '杨家寺乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11104, 130928100, 130928, '桑园镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11105, 130928103, 130928, '梁集镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11106, 130928203, 130928, '沟店铺乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11107, 130928101, 130928, '铁城镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11108, 130929, 130900, '献县', 2, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11109, 130929210, 130929, '临河乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11110, 130929100, 130929, '乐寿镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11111, 130929212, 130929, '十五级乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11112, 130929214, 130929, '南河头乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11113, 130929206, 130929, '商林乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11114, 130929213, 130929, '垒头乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11115, 130929211, 130929, '小平王乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11116, 130929209, 130929, '张村乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11117, 130929216, 130929, '本斋回族乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11118, 130929207, 130929, '段村镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11119, 130929103, 130929, '河城街镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11120, 130929101, 130929, '淮镇镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11121, 130929215, 130929, '西城乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11122, 130929102, 130929, '郭庄镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11123, 130929105, 130929, '陈庄镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11124, 130929201, 130929, '陌南镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11125, 130929104, 130929, '韩村镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11126, 130929205, 130929, '高官镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11127, 130902, 130900, '新华区', 2, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11128, 130902004, 130902, '东环中街街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11129, 130902003, 130902, '南大街街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11130, 130902200, 130902, '小赵庄乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11131, 130902001, 130902, '建设北街街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11132, 130902400, 130902, '沧州经济技术开发区', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11133, 130902002, 130902, '车站街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11134, 130902005, 130902, '道东街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11135, 130925, 130900, '盐山县', 2, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11136, 130925104, 130925, '千童镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11137, 130925105, 130925, '圣佛镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11138, 130925203, 130925, '孟店乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11139, 130925205, 130925, '小庄乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11140, 130925201, 130925, '小营乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11141, 130925204, 130925, '常庄乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11142, 130925102, 130925, '庆云镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11143, 130925101, 130925, '望树镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11144, 130925202, 130925, '杨集乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11145, 130925100, 130925, '盐山镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11146, 130925200, 130925, '边务乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11147, 130925103, 130925, '韩集镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11148, 130903, 130900, '运河区', 2, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11149, 130903006, 130903, '公园街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11150, 130903003, 130903, '南湖街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11151, 130903002, 130903, '南环中路街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11152, 130903200, 130903, '南陈屯乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11153, 130903100, 130903, '小王庄镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11154, 130903004, 130903, '市场街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11155, 130903001, 130903, '水月寺街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11156, 130903005, 130903, '西环中街街道', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11157, 130800, 13, '承德市', 1, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11158, 130821, 130800, '承德县', 2, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11159, 130821215, 130821, '三家镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11160, 130821104, 130821, '三沟镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11161, 130821107, 130821, '上板城镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11162, 130821207, 130821, '上谷镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11163, 130821100, 130821, '下板城镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11164, 130821200, 130821, '东小白旗乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11165, 130821214, 130821, '两家满族乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11166, 130821210, 130821, '五道河乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11167, 130821216, 130821, '仓子乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11168, 130821206, 130821, '八家乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11169, 130821103, 130821, '六沟镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11170, 130821202, 130821, '刘杖子乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11171, 130821205, 130821, '大营子乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11172, 130821105, 130821, '头沟镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11173, 130821204, 130821, '孟家院乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11174, 130821211, 130821, '岔沟乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11175, 130821212, 130821, '岗子满族乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11176, 130821203, 130821, '新杖子镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11177, 130821208, 130821, '满杖子乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11178, 130821102, 130821, '甲山镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11179, 130821209, 130821, '石灰窑镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11180, 130821213, 130821, '磴上镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11181, 130821201, 130821, '鞍匠镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11182, 130821106, 130821, '高寺台镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11183, 130826, 130800, '丰宁满族自治县', 2, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11184, 130826200, 130826, '万胜永乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11185, 130826207, 130826, '五道营乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11186, 130826105, 130826, '凤山镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11187, 130826212, 130826, '北头营乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11188, 130826208, 130826, '南关蒙古族乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11189, 130826201, 130826, '四岔口乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11190, 130826103, 130826, '土城镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11191, 130826203, 130826, '外沟门乡', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11192, 130826101, 130826, '大滩镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11193, 130826100, 130826, '大阁镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11194, 130826108, 130826, '天桥镇', 3, '2022-03-28 15:28:11', '2022-03-28 15:28:11', NULL); +INSERT INTO `address` VALUES (11195, 130826206, 130826, '小坝子乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11196, 130826216, 130826, '杨木栅子乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11197, 130826215, 130826, '汤河乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11198, 130826106, 130826, '波罗诺镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11199, 130826211, 130826, '王营乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11200, 130826214, 130826, '石人沟乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11201, 130826205, 130826, '窟窿山乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11202, 130826213, 130826, '胡麻营镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11203, 130826202, 130826, '苏家店乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11204, 130826204, 130826, '草原乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11205, 130826210, 130826, '西官营乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11206, 130826209, 130826, '选将营乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11207, 130826102, 130826, '鱼儿山镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11208, 130826104, 130826, '黄旗镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11209, 130826107, 130826, '黑山嘴镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11210, 130827, 130800, '宽城满族自治县', 2, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11211, 130827208, 130827, '东黄花川乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11212, 130827107, 130827, '亮甲台镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11213, 130827200, 130827, '化皮溜子镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11214, 130827201, 130827, '塌山乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11215, 130827211, 130827, '大字沟乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11216, 130827212, 130827, '大石柱子乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11217, 130827203, 130827, '孟子岭乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11218, 130827100, 130827, '宽城镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11219, 130827102, 130827, '峪耳崖镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11220, 130827206, 130827, '松岭镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11221, 130827103, 130827, '板城镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11222, 130827105, 130827, '桲罗台镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11223, 130827104, 130827, '汤道河镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11224, 130827204, 130827, '独石沟乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11225, 130827106, 130827, '碾子峪镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11226, 130827210, 130827, '苇子沟乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11227, 130827207, 130827, '铧尖乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11228, 130827101, 130827, '龙须门镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11229, 130825, 130800, '隆化县', 2, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11230, 130825103, 130825, '七家镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11231, 130825102, 130825, '中关镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11232, 130825205, 130825, '偏坡营满族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11233, 130825207, 130825, '八达营蒙古族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11234, 130825106, 130825, '唐三营镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11235, 130825208, 130825, '太平庄满族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11236, 130825203, 130825, '尹家营满族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11237, 130825206, 130825, '山湾乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11238, 130825204, 130825, '庙子沟蒙古族满族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11239, 130825105, 130825, '张三营镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11240, 130825209, 130825, '旧屯满族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11241, 130825108, 130825, '步古沟镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11242, 130825104, 130825, '汤头沟镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11243, 130825214, 130825, '湾沟门乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11244, 130825211, 130825, '白虎沟满族蒙古族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11245, 130825212, 130825, '碱房乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11246, 130825201, 130825, '章吉营乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11247, 130825202, 130825, '茅荆坝乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11248, 130825200, 130825, '荒地乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11249, 130825107, 130825, '蓝旗镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11250, 130825210, 130825, '西阿超满族蒙古族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11251, 130825109, 130825, '郭家屯镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11252, 130825100, 130825, '隆化镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11253, 130825213, 130825, '韩家店乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11254, 130825101, 130825, '韩麻营镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11255, 130824, 130800, '滦平县', 2, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11256, 130824212, 130824, '两间房乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11257, 130824001, 130824, '中兴路街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11258, 130824208, 130824, '五道营子满族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11259, 130824210, 130824, '付家店满族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11260, 130824204, 130824, '付营子镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11261, 130824214, 130824, '大屯镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11262, 130824201, 130824, '安纯沟门满族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11263, 130824205, 130824, '小营满族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11264, 130824105, 130824, '巴克什营镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11265, 130824200, 130824, '平坊满族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11266, 130824106, 130824, '张百湾镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11267, 130824213, 130824, '涝洼乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11268, 130824100, 130824, '滦平镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11269, 130824211, 130824, '火斗山镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11270, 130824102, 130824, '红旗镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11271, 130824104, 130824, '虎什哈镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11272, 130824206, 130824, '西沟满族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11273, 130824207, 130824, '邓厂满族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11274, 130824103, 130824, '金沟屯镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11275, 130824101, 130824, '长山峪镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11276, 130824209, 130824, '马营子满族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11277, 130823, 130800, '平泉市', 2, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11278, 130881203, 130823, '七家岱满族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11279, 130881104, 130823, '七沟镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11280, 130881106, 130823, '党坝镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11281, 130881109, 130823, '北五十家子镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11282, 130881108, 130823, '南五十家子镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11283, 130881107, 130823, '卧龙镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11284, 130881207, 130823, '台头山镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11285, 130881105, 130823, '小寺沟镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11286, 130881204, 130823, '平北镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11287, 130881100, 130823, '平泉镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11288, 130881103, 130823, '杨树岭镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11289, 130881209, 130823, '松树台镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11290, 130881202, 130823, '柳溪满族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11291, 130881110, 130823, '桲椤树镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11292, 130881102, 130823, '榆树林子镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11293, 130881200, 130823, '王土房乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11294, 130881206, 130823, '茅兰沟满族蒙古族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11295, 130881210, 130823, '道虎沟乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11296, 130881101, 130823, '黄土梁子镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11297, 130803, 130800, '双滦区', 2, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11298, 130803103, 130803, '偏桥子镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11299, 130803001, 130803, '元宝山街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11300, 130803100, 130803, '双塔山镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11301, 130803102, 130803, '大庙镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11302, 130803101, 130803, '滦河镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11303, 130803201, 130803, '西地镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11304, 130803002, 130803, '钢城街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11305, 130803200, 130803, '陈栅子乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11306, 130802, 130800, '双桥区', 2, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11307, 130802004, 130802, '中华路街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11308, 130802104, 130802, '冯营子镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11309, 130802108, 130802, '双峰寺镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11310, 130802103, 130802, '大石庙镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11311, 130802002, 130802, '头道牌楼街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11312, 130802005, 130802, '新华路街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11313, 130802007, 130802, '桥东街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11314, 130802100, 130802, '水泉沟镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11315, 130802003, 130802, '潘家沟街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11316, 130802102, 130802, '牛圈子沟镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11317, 130802101, 130802, '狮子沟镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11318, 130802006, 130802, '石洞子沟街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11319, 130802001, 130802, '西大街街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11320, 130828, 130800, '围场满族蒙古族自治县', 2, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11321, 130828218, 130828, '三义永乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11322, 130828220, 130828, '下伙房乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11323, 130828102, 130828, '克勒沟镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11324, 130828205, 130828, '兰旗卡伦乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11325, 130828104, 130828, '半截塔镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11326, 130828228, 130828, '南山嘴乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11327, 130828213, 130828, '哈里哈乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11328, 130828101, 130828, '四合永镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11329, 130828204, 130828, '四道沟乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11330, 130828100, 130828, '围场镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11331, 130828223, 130828, '城子镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11332, 130828402, 130828, '塞罕坝机械林场', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11333, 130828212, 130828, '大唤起乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11334, 130828227, 130828, '大头山乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11335, 130828219, 130828, '姜家店乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11336, 130828216, 130828, '宝元栈乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11337, 130828217, 130828, '山湾子乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11338, 130828208, 130828, '广发永乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11339, 130828215, 130828, '张家湾乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11340, 130828401, 130828, '御道口牧场', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11341, 130828225, 130828, '御道口镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11342, 130828207, 130828, '新地乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11343, 130828214, 130828, '新拨镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11344, 130828105, 130828, '朝阳地镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11345, 130828106, 130828, '朝阳湾镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11346, 130828211, 130828, '杨家湾乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11347, 130828103, 130828, '棋盘山镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11348, 130828221, 130828, '燕格柏乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11349, 130828222, 130828, '牌楼乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11350, 130828226, 130828, '石桌子乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11351, 130828224, 130828, '老窝铺乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11352, 130828209, 130828, '育太和乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11353, 130828202, 130828, '腰站镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11354, 130828229, 130828, '西龙头乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11355, 130828200, 130828, '道坝子乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11356, 130828210, 130828, '郭家湾乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11357, 130828206, 130828, '银窝沟乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11358, 130828203, 130828, '黄土坎乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11359, 130828201, 130828, '龙头山镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11360, 130822, 130800, '兴隆县', 2, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11361, 130822209, 130822, '三道河镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11362, 130822204, 130822, '上石洞乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11363, 130822202, 130822, '八卦岭满族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11364, 130822104, 130822, '六道河镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11365, 130822100, 130822, '兴隆镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11366, 130822106, 130822, '北营房镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11367, 130822101, 130822, '半壁山镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11368, 130822200, 130822, '南天门满族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11369, 130822207, 130822, '大杖子镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11370, 130822212, 130822, '大水泉镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11371, 130822108, 130822, '孤山子镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11372, 130822211, 130822, '安子岭乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11373, 130822105, 130822, '平安堡镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11374, 130822102, 130822, '挂兰峪镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11375, 130822206, 130822, '李家营镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11376, 130822107, 130822, '蓝旗营镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11377, 130822208, 130822, '蘑菇峪镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11378, 130822203, 130822, '陡子峪乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11379, 130822205, 130822, '雾灵山镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11380, 130822103, 130822, '青松岭镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11381, 130804, 130800, '鹰手营子矿区', 2, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11382, 130804101, 130804, '北马圈子镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11383, 130804102, 130804, '寿王坟镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11384, 130804103, 130804, '汪家庄镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11385, 130804001, 130804, '铁北路街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11386, 130804100, 130804, '鹰手营子镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11387, 130400, 13, '邯郸市', 1, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11388, 130424, 130400, '成安县', 2, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11389, 130424203, 130424, '北乡义镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11390, 130424101, 130424, '商城镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11391, 130424100, 130424, '成安镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11392, 130424103, 130424, '李家疃镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11393, 130424201, 130424, '柏寺营乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11394, 130424102, 130424, '漳河店镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11395, 130424200, 130424, '辛义乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11396, 130424202, 130424, '道东堡乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11397, 130424204, 130424, '长巷乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11398, 130427, 130400, '磁县', 2, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11399, 130427209, 130427, '北贾璧乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11400, 130427104, 130427, '岳城镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11401, 130427204, 130427, '时村营乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11402, 130427107, 130427, '白土镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11403, 130427100, 130427, '磁州镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11404, 130427201, 130427, '西固义乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11405, 130427105, 130427, '观台镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11406, 130427103, 130427, '讲武城镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11407, 130427200, 130427, '路村营乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11408, 130427208, 130427, '都党乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11409, 130427207, 130427, '陶泉乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11410, 130427108, 130427, '黄沙镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11411, 130403, 130400, '丛台区', 2, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11412, 130403018, 130403, '三陵乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11413, 130403005, 130403, '丛台东街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11414, 130403001, 130403, '丛台西街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11415, 130403008, 130403, '中华街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11416, 130403009, 130403, '人民路街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11417, 130403004, 130403, '光明桥街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11418, 130403017, 130403, '兼庄乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11419, 130403016, 130403, '南吕固乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11420, 130403014, 130403, '南沿村镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11421, 130403007, 130403, '和平街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11422, 130403006, 130403, '四季青街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11423, 130403020, 130403, '姚寨乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11424, 130403019, 130403, '小西堡乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11425, 130403012, 130403, '尚璧镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11426, 130403010, 130403, '柳林桥街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11427, 130403003, 130403, '联纺东街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11428, 130403002, 130403, '联纺西街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11429, 130403015, 130403, '苏曹乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11430, 130403013, 130403, '黄粱梦镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11431, 130425, 130400, '大名县', 2, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11432, 130425102, 130425, '万堤镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11433, 130425210, 130425, '北峰乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11434, 130425209, 130425, '埝头乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11435, 130425100, 130425, '大名镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11436, 130425204, 130425, '大街镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11437, 130425207, 130425, '孙甘店镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11438, 130425211, 130425, '张集乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11439, 130425205, 130425, '旧治乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11440, 130425104, 130425, '束馆镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11441, 130425101, 130425, '杨桥镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11442, 130425200, 130425, '沙圪塔镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11443, 130425201, 130425, '王村乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11444, 130425212, 130425, '红庙乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11445, 130425213, 130425, '营镇回族乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11446, 130425208, 130425, '西付集乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11447, 130425206, 130425, '西未庄乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11448, 130425105, 130425, '金滩镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11449, 130425202, 130425, '铺上镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11450, 130425203, 130425, '黄金堤乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11451, 130425103, 130425, '龙王庙镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11452, 130428, 130400, '肥乡区', 2, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11453, 130407205, 130428, '东漳堡镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11454, 130407203, 130428, '元固乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11455, 130407200, 130428, '大寺上镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11456, 130407101, 130428, '天台山镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11457, 130407204, 130428, '屯庄营乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11458, 130407206, 130428, '旧店乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11459, 130407202, 130428, '毛演堡乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11460, 130407100, 130428, '肥乡镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11461, 130407102, 130428, '辛安镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11462, 130406, 130400, '峰峰矿区', 2, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11463, 130406100, 130406, '临水镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11464, 130406105, 130406, '义井镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11465, 130406104, 130406, '和村镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11466, 130406108, 130406, '大峪镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11467, 130406103, 130406, '大社镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11468, 130406101, 130406, '峰峰镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11469, 130406106, 130406, '彭城镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11470, 130406102, 130406, '新坡镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11471, 130406107, 130406, '界城镇', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11472, 130404, 130400, '复兴区', 2, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11473, 130404006, 130404, '二六七二街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11474, 130404004, 130404, '化林路街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11475, 130404202, 130404, '南城乡', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11476, 130404005, 130404, '庞村街道', 3, '2022-03-28 15:28:12', '2022-03-28 15:28:12', NULL); +INSERT INTO `address` VALUES (11477, 130404204, 130404, '康庄乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11478, 130404200, 130404, '彭家寨乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11479, 130404104, 130404, '户村镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11480, 130404101, 130404, '林坛镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11481, 130404002, 130404, '百家街道', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11482, 130404007, 130404, '石化街道', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11483, 130404001, 130404, '胜利桥街道', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11484, 130404003, 130404, '铁路大院街道', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11485, 130432, 130400, '广平县', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11486, 130432204, 130432, '东张孟镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11487, 130432201, 130432, '十里铺镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11488, 130432203, 130432, '南阳堡镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11489, 130432202, 130432, '南韩镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11490, 130432101, 130432, '平固店镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11491, 130432100, 130432, '广平镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11492, 130432200, 130432, '胜营镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11493, 130433, 130400, '馆陶县', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11494, 130433202, 130433, '南徐村乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11495, 130433200, 130433, '寿山寺乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11496, 130433101, 130433, '房寨镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11497, 130433102, 130433, '柴堡镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11498, 130433201, 130433, '王桥乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11499, 130433203, 130433, '路桥乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11500, 130433100, 130433, '馆陶镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11501, 130433103, 130433, '魏僧寨镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11502, 130402, 130400, '邯山区', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11503, 130402202, 130402, '代召乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11504, 130402003, 130402, '光明路街道', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11505, 130402104, 130402, '光禄镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11506, 130402008, 130402, '农林路街道', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11507, 130402101, 130402, '北张庄镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11508, 130402201, 130402, '南堡乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11509, 130402206, 130402, '台城乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11510, 130402102, 130402, '河沙镇镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11511, 130402007, 130402, '浴新南街道', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11512, 130402006, 130402, '渚河路街道', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11513, 130402004, 130402, '滏东街道', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11514, 130402001, 130402, '火磨街道', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11515, 130402011, 130402, '盛和路街道', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11516, 130402005, 130402, '罗城头街道', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11517, 130402204, 130402, '花官营乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11518, 130402009, 130402, '贸东街道', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11519, 130402010, 130402, '贸西街道', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11520, 130402203, 130402, '辛庄营乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11521, 130402002, 130402, '陵园路街道', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11522, 130402100, 130402, '马头镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11523, 130402200, 130402, '马庄乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11524, 130402103, 130402, '高臾镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11525, 130431, 130400, '鸡泽县', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11526, 130431102, 130431, '双塔镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11527, 130431201, 130431, '吴官营乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11528, 130431101, 130431, '小寨镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11529, 130431203, 130431, '曹庄乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11530, 130431200, 130431, '浮图店乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11531, 130431202, 130431, '风正乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11532, 130431100, 130431, '鸡泽镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11533, 130423, 130400, '临漳县', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11534, 130423100, 130423, '临漳镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11535, 130423206, 130423, '习文乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11536, 130423101, 130423, '南东坊镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11537, 130423102, 130423, '孙陶集镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11538, 130423201, 130423, '张村乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11539, 130423204, 130423, '杜村乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11540, 130423208, 130423, '柏鹤集乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11541, 130423103, 130423, '柳园镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11542, 130423200, 130423, '狄邱乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11543, 130423207, 130423, '砖寨营乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11544, 130423104, 130423, '称勾集镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11545, 130423205, 130423, '章里集镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11546, 130423202, 130423, '西羊羔乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11547, 130423203, 130423, '邺城镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11548, 130430, 130400, '邱县', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11549, 130430201, 130430, '南辛店乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11550, 130430203, 130430, '古城营镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11551, 130430100, 130430, '新马头镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11552, 130430200, 130430, '梁二庄镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11553, 130430101, 130430, '邱城镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11554, 130430204, 130430, '陈村回族乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11555, 130430202, 130430, '香城固镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11556, 130435, 130400, '曲周县', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11557, 130435204, 130435, '依庄乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11558, 130435102, 130435, '侯村镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11559, 130435201, 130435, '南里岳乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11560, 130435203, 130435, '大河道乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11561, 130435101, 130435, '安寨镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11562, 130435100, 130435, '曲周镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11563, 130435200, 130435, '槐桥乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11564, 130435103, 130435, '河南疃镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11565, 130435202, 130435, '白寨乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11566, 130435104, 130435, '第四疃镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11567, 130426, 130400, '涉县', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11568, 130426104, 130426, '井店镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11569, 130426108, 130426, '偏城镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11570, 130426202, 130426, '偏店乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11571, 130426205, 130426, '关防乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11572, 130426206, 130426, '合漳乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11573, 130426106, 130426, '固新镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11574, 130426001, 130426, '平安街道', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11575, 130426105, 130426, '更乐镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11576, 130426204, 130426, '木井乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11577, 130426101, 130426, '河南店镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11578, 130426100, 130426, '涉城镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11579, 130426200, 130426, '神头乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11580, 130426102, 130426, '索堡镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11581, 130426103, 130426, '西戌镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11582, 130426107, 130426, '西达镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11583, 130426201, 130426, '辽城乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11584, 130426207, 130426, '鹿头乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11585, 130426203, 130426, '龙虎乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11586, 130434, 130400, '魏县', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11587, 130434200, 130434, '东代固乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11588, 130434204, 130434, '仕望集乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11589, 130434205, 130434, '前大磨乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11590, 130434212, 130434, '北台头乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11591, 130434102, 130434, '北皋镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11592, 130434207, 130434, '南双庙镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11593, 130434103, 130434, '双井镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11594, 130434106, 130434, '回隆镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11595, 130434208, 130434, '大辛庄乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11596, 130434209, 130434, '大马村乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11597, 130434107, 130434, '张二庄镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11598, 130434101, 130434, '德政镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11599, 130434201, 130434, '棘针寨镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11600, 130434202, 130434, '沙口集乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11601, 130434213, 130434, '泊口乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11602, 130434104, 130434, '牙里镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11603, 130434105, 130434, '车往镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11604, 130434210, 130434, '边马乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11605, 130434203, 130434, '野湖拐乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11606, 130434206, 130434, '院堡乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11607, 130434100, 130434, '魏城镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11608, 130481, 130400, '武安市', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11609, 130481200, 130481, '上团城乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11610, 130481104, 130481, '伯延镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11611, 130481112, 130481, '冶陶镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11612, 130481202, 130481, '北安乐乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11613, 130481201, 130481, '北安庄乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11614, 130481102, 130481, '午汲镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11615, 130481106, 130481, '大同镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11616, 130481101, 130481, '康二城镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11617, 130481111, 130481, '徘徊镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11618, 130481100, 130481, '武安镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11619, 130481205, 130481, '活水乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11620, 130481105, 130481, '淑村镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11621, 130481206, 130481, '石洞乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11622, 130481108, 130481, '矿山镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11623, 130481103, 130481, '磁山镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11624, 130481207, 130481, '管陶乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11625, 130481203, 130481, '西土山乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11626, 130481204, 130481, '西寺庄乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11627, 130481109, 130481, '贺进镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11628, 130481107, 130481, '邑城镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11629, 130481110, 130481, '阳邑镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11630, 130481208, 130481, '马家庄乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11631, 130429, 130400, '永年区', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11632, 130408209, 130429, '东杨庄镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11633, 130408100, 130429, '临洺关镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11634, 130408203, 130429, '刘汉乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11635, 130408202, 130429, '刘营乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11636, 130408101, 130429, '大北汪镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11637, 130408208, 130429, '小龙马乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11638, 130408103, 130429, '广府镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11639, 130408102, 130429, '张西堡镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11640, 130408206, 130429, '曲陌乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11641, 130408204, 130429, '正西乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11642, 130408105, 130429, '永合会镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11643, 130408201, 130429, '界河店乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11644, 130408211, 130429, '西河庄乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11645, 130408200, 130429, '西苏镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11646, 130408213, 130429, '西阳城乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11647, 130408205, 130429, '讲武镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11648, 130408207, 130429, '辛庄堡乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11649, 131100, 13, '衡水市', 1, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11650, 131125, 131100, '安平县', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11651, 131125204, 131125, '东黄城镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11652, 131125102, 131125, '南王庄镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11653, 131125200, 131125, '大何庄乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11654, 131125203, 131125, '大子文镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11655, 131125100, 131125, '安平镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11656, 131125201, 131125, '程油子乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11657, 131125202, 131125, '西两洼乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11658, 131125101, 131125, '马店镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11659, 131128, 131100, '阜城县', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11660, 131128101, 131128, '古城镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11661, 131128203, 131128, '大白乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11662, 131128104, 131128, '崔庙镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11663, 131128201, 131128, '建桥乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11664, 131128200, 131128, '漫河镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11665, 131128204, 131128, '王集乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11666, 131128102, 131128, '码头镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11667, 131128202, 131128, '蒋坊乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11668, 131128100, 131128, '阜城镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11669, 131128103, 131128, '霞口镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11670, 131126, 131100, '故城县', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11671, 131126203, 131126, '三朗镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11672, 131126106, 131126, '军屯镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11673, 131126101, 131126, '夏庄镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11674, 131126107, 131126, '建国镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11675, 131126202, 131126, '房庄镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11676, 131126103, 131126, '故城镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11677, 131126104, 131126, '武官寨镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11678, 131126108, 131126, '西半屯镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11679, 131126200, 131126, '辛庄乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11680, 131126100, 131126, '郑口镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11681, 131126201, 131126, '里老乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11682, 131126102, 131126, '青罕镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11683, 131126105, 131126, '饶阳店镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11684, 131127, 131100, '景县', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11685, 131127200, 131127, '刘集乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11686, 131127108, 131127, '北留智镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11687, 131127204, 131127, '后留名府乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11688, 131127105, 131127, '安陵镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11689, 131127102, 131127, '广川镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11690, 131127100, 131127, '景州镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11691, 131127106, 131127, '杜桥镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11692, 131127202, 131127, '梁集镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11693, 131127104, 131127, '洚河流镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11694, 131127203, 131127, '温城乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11695, 131127103, 131127, '王瞳镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11696, 131127107, 131127, '王谦寺镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11697, 131127109, 131127, '留智庙镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11698, 131127201, 131127, '连镇乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11699, 131127205, 131127, '青兰乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11700, 131127101, 131127, '龙华镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11701, 131103, 131100, '冀州区', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11702, 131103100, 131103, '冀州镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11703, 131103202, 131103, '北漳淮乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11704, 131103103, 131103, '南午村镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11705, 131103104, 131103, '周村镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11706, 131103102, 131103, '官道李镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11707, 131103203, 131103, '小寨乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11708, 131103201, 131103, '徐家庄乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11709, 131103105, 131103, '码头李镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11710, 131103106, 131103, '西王镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11711, 131103200, 131103, '门家庄乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11712, 131103101, 131103, '魏家屯镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11713, 131124, 131100, '饶阳县', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11714, 131124102, 131124, '五公镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11715, 131124103, 131124, '大官亭镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11716, 131124101, 131124, '大尹村镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11717, 131124200, 131124, '王同岳镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11718, 131124202, 131124, '留楚乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11719, 131124203, 131124, '里满乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11720, 131124100, 131124, '饶阳镇', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11721, 131182, 131100, '深州市', 2, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11722, 131182202, 131182, '东安庄乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11723, 131182206, 131182, '乔屯乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11724, 131182200, 131182, '兵曹乡', 3, '2022-03-28 15:28:13', '2022-03-28 15:28:13', NULL); +INSERT INTO `address` VALUES (11725, 131182106, 131182, '前磨头镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11726, 131182203, 131182, '北溪村乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11727, 131182100, 131182, '唐奉镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11728, 131182204, 131182, '大冯营乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11729, 131182105, 131182, '大堤镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11730, 131182109, 131182, '大屯镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11731, 131182207, 131182, '太古庄乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11732, 131182108, 131182, '护驾迟镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11733, 131182103, 131182, '榆科镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11734, 131182101, 131182, '深州镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11735, 131182107, 131182, '王家井镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11736, 131182201, 131182, '穆村乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11737, 131182102, 131182, '辰时镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11738, 131182104, 131182, '魏桥镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11739, 131102, 131100, '桃城区', 2, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11740, 131102004, 131102, '中华大街街道', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11741, 131102200, 131102, '何家庄乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11742, 131102201, 131102, '大麻森乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11743, 131102203, 131102, '彭杜村乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11744, 131102002, 131102, '河东街道', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11745, 131102001, 131102, '河西街道', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11746, 131102401, 131102, '衡水湖自然保护区管理处', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11747, 131102400, 131102, '衡水高新技术产业开发区', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11748, 131102101, 131102, '赵圈镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11749, 131102003, 131102, '路北街道', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11750, 131102102, 131102, '邓庄镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11751, 131102100, 131102, '郑家河沿镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11752, 131123, 131100, '武强县', 2, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11753, 131123202, 131123, '东孙庄镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11754, 131123201, 131123, '北代乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11755, 131123102, 131123, '周窝镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11756, 131123100, 131123, '武强镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11757, 131123101, 131123, '街关镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11758, 131123200, 131123, '豆村乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11759, 131122, 131100, '武邑县', 2, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11760, 131122201, 131122, '圈头乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11761, 131122202, 131122, '大紫塔乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11762, 131122102, 131122, '审坡镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11763, 131122100, 131122, '武邑镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11764, 131122101, 131122, '清凉店镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11765, 131122105, 131122, '肖桥头镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11766, 131122103, 131122, '赵桥镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11767, 131122104, 131122, '韩庄镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11768, 131122200, 131122, '龙店镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11769, 131121, 131100, '枣强县', 2, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11770, 131121203, 131121, '唐林镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11771, 131121103, 131121, '嘉会镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11772, 131121102, 131121, '大营镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11773, 131121200, 131121, '张秀屯镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11774, 131121101, 131121, '恩察镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11775, 131121201, 131121, '新屯镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11776, 131121100, 131121, '枣强镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11777, 131121202, 131121, '王均乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11778, 131121204, 131121, '王常乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11779, 131121105, 131121, '肖张镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11780, 131121104, 131121, '马屯镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11781, 131000, 13, '廊坊市', 1, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11782, 131002, 131000, '安次区', 2, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11783, 131002103, 131002, '东沽港镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11784, 131002201, 131002, '仇庄乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11785, 131002002, 131002, '光明西道街道', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11786, 131002203, 131002, '北史家务乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11787, 131002200, 131002, '杨税务乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11788, 131002003, 131002, '永华道街道', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11789, 131002101, 131002, '码头镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11790, 131002100, 131002, '落垡镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11791, 131002102, 131002, '葛渔城镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11792, 131002202, 131002, '调河头乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11793, 131002001, 131002, '银河南路街道', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11794, 131081, 131000, '霸州市', 2, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11795, 131081202, 131081, '东杨庄乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11796, 131081204, 131081, '东段乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11797, 131081102, 131081, '信安镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11798, 131081101, 131081, '南孟镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11799, 131081103, 131081, '堂二里镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11800, 131081200, 131081, '岔河集乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11801, 131081201, 131081, '康仙庄镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11802, 131081106, 131081, '扬芬港镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11803, 131081104, 131081, '煎茶铺镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11804, 131081203, 131081, '王庄子镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11805, 131081105, 131081, '胜芳镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11806, 131081100, 131081, '霸州镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11807, 131028, 131000, '大厂回族自治县', 2, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11808, 131028101, 131028, '夏垫镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11809, 131028100, 131028, '大厂镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11810, 131028102, 131028, '祁各庄镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11811, 131028201, 131028, '邵府乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11812, 131028202, 131028, '陈府乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11813, 131025, 131000, '大城县', 2, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11814, 131025200, 131025, '北魏镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11815, 131025103, 131025, '南赵扶镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11816, 131025102, 131025, '大尚屯镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11817, 131025100, 131025, '平舒镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11818, 131025107, 131025, '广安镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11819, 131025400, 131025, '摩配园区管委会', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11820, 131025101, 131025, '旺村镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11821, 131025105, 131025, '权村镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11822, 131025104, 131025, '留各庄镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11823, 131025202, 131025, '臧屯镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11824, 131025106, 131025, '里坦镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11825, 131022, 131000, '固安县', 2, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11826, 131022200, 131022, '东湾乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11827, 131022100, 131022, '固安镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11828, 131022101, 131022, '宫村镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11829, 131022201, 131022, '彭村乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11830, 131022102, 131022, '柳泉镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11831, 131022202, 131022, '渠沟乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11832, 131022103, 131022, '牛驼镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11833, 131022203, 131022, '礼让店乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11834, 131022104, 131022, '马庄镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11835, 131003, 131000, '广阳区', 2, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11836, 131003101, 131003, '万庄镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11837, 131003102, 131003, '九州镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11838, 131003200, 131003, '北旺乡', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11839, 131003100, 131003, '南尖塔镇', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11840, 131003450, 131003, '廊坊经济技术开发区', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11841, 131003500, 131003, '新世纪步行街管理委员会', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11842, 131003004, 131003, '新开路街道', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11843, 131003005, 131003, '新源道街道', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11844, 131003002, 131003, '爱民东道街道', 3, '2022-03-28 15:28:14', '2022-03-28 15:28:14', NULL); +INSERT INTO `address` VALUES (11845, 131003003, 131003, '解放道街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11846, 131003001, 131003, '银河北路街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11847, 131082, 131000, '三河市', 2, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11848, 131082104, 131082, '新集镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11849, 131082101, 131082, '李旗庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11850, 131082102, 131082, '杨庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11851, 131082105, 131082, '段甲岭镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11852, 131082002, 131082, '泃阳西大街街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11853, 131082100, 131082, '泃阳镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11854, 131082109, 131082, '燕郊镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11855, 131082103, 131082, '皇庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11856, 131082107, 131082, '高楼镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11857, 131082106, 131082, '黄土庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11858, 131082001, 131082, '鼎盛东大街街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11859, 131082108, 131082, '齐心庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11860, 131026, 131000, '文安县', 2, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11861, 131026108, 131026, '兴隆宫镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11862, 131026106, 131026, '史各庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11863, 131026200, 131026, '大围河回族满族乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11864, 131026103, 131026, '大柳河镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11865, 131026109, 131026, '大留镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11866, 131026110, 131026, '孙氏镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11867, 131026104, 131026, '左各庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11868, 131026111, 131026, '德归镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11869, 131026100, 131026, '文安镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11870, 131026101, 131026, '新镇镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11871, 131026105, 131026, '滩里镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11872, 131026102, 131026, '苏桥镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11873, 131026107, 131026, '赵各庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11874, 131024, 131000, '香河县', 2, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11875, 131024106, 131024, '五百户镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11876, 131024105, 131024, '刘宋镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11877, 131024103, 131024, '安头屯镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11878, 131024104, 131024, '安平镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11879, 131024100, 131024, '淑阳镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11880, 131024102, 131024, '渠口镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11881, 131024101, 131024, '蒋辛屯镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11882, 131024107, 131024, '钱旺镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11883, 131024201, 131024, '钳屯乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11884, 131024501, 131024, '香河现代产业园', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11885, 131023, 131000, '永清县', 2, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11886, 131023204, 131023, '三圣口乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11887, 131023203, 131023, '刘街乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11888, 131023103, 131023, '别古庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11889, 131023102, 131023, '后奕镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11890, 131023001, 131023, '城区街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11891, 131023201, 131023, '曹家务乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11892, 131023100, 131023, '永清镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11893, 131023200, 131023, '管家务回族乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11894, 131023104, 131023, '里澜城镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11895, 131023101, 131023, '韩村镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11896, 131023202, 131023, '龙虎庄乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11897, 130300, 13, '秦皇岛市', 1, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11898, 130304, 130300, '北戴河区', 2, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11899, 130304002, 130304, '东山街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11900, 130304101, 130304, '戴河镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11901, 130304100, 130304, '海滨镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11902, 130304103, 130304, '牛头崖镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11903, 130304001, 130304, '西山街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11904, 130322, 130300, '昌黎县', 2, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11905, 130322206, 130322, '两山乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11906, 130322107, 130322, '刘台庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11907, 130322207, 130322, '十里铺乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11908, 130322201, 130322, '团林乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11909, 130322105, 130322, '大蒲河镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11910, 130322102, 130322, '安山镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11911, 130322106, 130322, '新集镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11912, 130322100, 130322, '昌黎镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11913, 130322109, 130322, '朱各庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11914, 130322104, 130322, '泥井镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11915, 130322108, 130322, '茹荷镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11916, 130322110, 130322, '荒佃庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11917, 130322202, 130322, '葛条港乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11918, 130322101, 130322, '靖安镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11919, 130322203, 130322, '马坨店乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11920, 130322103, 130322, '龙家店镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11921, 130306, 130300, '抚宁区', 2, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11922, 130306002, 130306, '南戴河街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11923, 130306006, 130306, '台营镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11924, 130306007, 130306, '大新寨镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11925, 130306003, 130306, '抚宁镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11926, 130306005, 130306, '榆关镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11927, 130306009, 130306, '深河乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11928, 130306004, 130306, '留守营镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11929, 130306008, 130306, '茶棚乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11930, 130306001, 130306, '骊城街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11931, 130302, 130300, '海港区', 2, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11932, 130302015, 130302, '东港镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11933, 130302009, 130302, '东环路街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11934, 130302019, 130302, '北港镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11935, 130302003, 130302, '北环路街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11936, 130302004, 130302, '建设大街街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11937, 130302001, 130302, '文化路街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11938, 130302022, 130302, '杜庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11939, 130302005, 130302, '河东街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11940, 130302016, 130302, '海港镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11941, 130302002, 130302, '海滨路街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11942, 130302018, 130302, '海阳镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11943, 130302008, 130302, '港城大街街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11944, 130302007, 130302, '燕山大街街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11945, 130302011, 130302, '珠江道街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11946, 130302010, 130302, '白塔岭街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11947, 130302020, 130302, '石门寨镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11948, 130302013, 130302, '腾飞路街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11949, 130302006, 130302, '西港路街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11950, 130302017, 130302, '西港镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11951, 130302021, 130302, '驻操营镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11952, 130302012, 130302, '黄河道街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11953, 130324, 130300, '卢龙县', 2, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11954, 130324200, 130324, '下寨乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11955, 130324201, 130324, '刘家营乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11956, 130324104, 130324, '刘田各庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11957, 130324100, 130324, '卢龙镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11958, 130324203, 130324, '印庄乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11959, 130324103, 130324, '双望镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11960, 130324106, 130324, '木井镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11961, 130324400, 130324, '河北卢龙经济开发区', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11962, 130324101, 130324, '潘庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11963, 130324102, 130324, '燕河营镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11964, 130324105, 130324, '石门镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11965, 130324204, 130324, '蛤泊镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11966, 130324202, 130324, '陈官屯镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11967, 130321, 130300, '青龙满族自治县', 2, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11968, 130321214, 130321, '七道河乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11969, 130321217, 130321, '三拨子乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11970, 130321202, 130321, '三星口乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11971, 130321106, 130321, '八道河镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11972, 130321218, 130321, '凉水河乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11973, 130321200, 130321, '凤凰山乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11974, 130321103, 130321, '双山子镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11975, 130321110, 130321, '土门子镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11976, 130321108, 130321, '大巫岚镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11977, 130321206, 130321, '大石岭乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11978, 130321109, 130321, '娄杖子镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11979, 130321211, 130321, '安子岭乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11980, 130321208, 130321, '官场乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11981, 130321203, 130321, '干沟乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11982, 130321210, 130321, '平方子乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11983, 130321102, 130321, '木头凳镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11984, 130321212, 130321, '朱丈子乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11985, 130321101, 130321, '祖山镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11986, 130321105, 130321, '肖营子镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11987, 130321209, 130321, '茨榆山乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11988, 130321213, 130321, '草碾乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11989, 130321107, 130321, '隔河头镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11990, 130321100, 130321, '青龙镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11991, 130321104, 130321, '马圈子镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11992, 130321201, 130321, '龙王庙乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11993, 130303, 130300, '山海关区', 2, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11994, 130303001, 130303, '南关街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11995, 130303002, 130303, '古城街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11996, 130303102, 130303, '孟姜镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11997, 130303200, 130303, '渤海乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11998, 130303101, 130303, '石河镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (11999, 130303100, 130303, '第一关镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12000, 130303005, 130303, '船厂路街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12001, 130303003, 130303, '西关街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12002, 130303004, 130303, '路南街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12003, 130100, 13, '石家庄市', 1, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12004, 130102, 130100, '长安区', 2, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12005, 130102011, 130102, '中山东路街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12006, 130102015, 130102, '南村镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12007, 130102003, 130102, '广安街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12008, 130102001, 130102, '建北街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12009, 130102013, 130102, '建安街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12010, 130102017, 130102, '桃园镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12011, 130102006, 130102, '河东街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12012, 130102004, 130102, '育才街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12013, 130102014, 130102, '胜北街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12014, 130102010, 130102, '西兆通镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12015, 130102008, 130102, '谈固街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12016, 130102005, 130102, '跃进街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12017, 130102007, 130102, '长丰街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12018, 130102012, 130102, '阜康街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12019, 130102002, 130102, '青园街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12020, 130102016, 130102, '高营镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12021, 130109, 130100, '藁城区', 2, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12022, 130109106, 130109, '丘头镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12023, 130109200, 130109, '九门回族乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12024, 130109101, 130109, '兴安镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12025, 130109109, 130109, '南孟镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12026, 130109103, 130109, '南营镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12027, 130109107, 130109, '南董镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12028, 130109110, 130109, '增村镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12029, 130109105, 130109, '岗上镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12030, 130109111, 130109, '常安镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12031, 130109100, 130109, '廉州镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12032, 130109108, 130109, '张家庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12033, 130109104, 130109, '梅花镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12034, 130109112, 130109, '西关镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12035, 130109102, 130109, '贾市庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12036, 130127, 130100, '高邑县', 2, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12037, 130127202, 130127, '万城镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12038, 130127201, 130127, '中韩乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12039, 130127101, 130127, '大营镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12040, 130127102, 130127, '富村镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12041, 130127100, 130127, '高邑镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12042, 130107, 130100, '井陉矿区', 2, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12043, 130107101, 130107, '凤山镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12044, 130107002, 130107, '四微街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12045, 130107200, 130107, '横涧乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12046, 130107001, 130107, '矿市街道', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12047, 130107100, 130107, '贾庄镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12048, 130121, 130100, '井陉县', 2, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12049, 130121101, 130121, '上安镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12050, 130121203, 130121, '孙庄乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12051, 130121202, 130121, '于家乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12052, 130121201, 130121, '北正乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12053, 130121104, 130121, '南峪镇', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12054, 130121206, 130121, '南王庄乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12055, 130121204, 130121, '南陉乡', 3, '2022-03-28 15:28:15', '2022-03-28 15:28:15', NULL); +INSERT INTO `address` VALUES (12056, 130121107, 130121, '南障城镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12057, 130121200, 130121, '吴家窑乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12058, 130121102, 130121, '天长镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12059, 130121105, 130121, '威州镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12060, 130121106, 130121, '小作镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12061, 130121100, 130121, '微水镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12062, 130121109, 130121, '测鱼镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12063, 130121103, 130121, '秀林镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12064, 130121108, 130121, '苍岩山镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12065, 130121205, 130121, '辛庄乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12066, 130183, 130100, '晋州市', 2, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12067, 130183104, 130183, '东卓宿镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12068, 130183108, 130183, '东里庄镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12069, 130183201, 130183, '周家庄乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12070, 130183106, 130183, '小樵镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12071, 130183101, 130183, '总十庄镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12072, 130183100, 130183, '晋州镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12073, 130183103, 130183, '桃园镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12074, 130183107, 130183, '槐树镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12075, 130183102, 130183, '营里镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12076, 130183105, 130183, '马于镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12077, 130126, 130100, '灵寿县', 2, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12078, 130126200, 130126, '三圣院乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12079, 130126201, 130126, '北洼乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12080, 130126204, 130126, '南寨乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12081, 130126205, 130126, '南燕川乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12082, 130126208, 130126, '南营乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12083, 130126102, 130126, '塔上镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12084, 130126207, 130126, '寨头乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12085, 130126105, 130126, '岔头镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12086, 130126104, 130126, '慈峪镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12087, 130126100, 130126, '灵寿镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12088, 130126202, 130126, '牛城乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12089, 130126203, 130126, '狗台乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12090, 130126206, 130126, '谭庄乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12091, 130126103, 130126, '陈庄镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12092, 130126101, 130126, '青同镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12093, 130111, 130100, '栾城区', 2, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12094, 130111103, 130111, '冶河镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12095, 130111200, 130111, '南高乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12096, 130111201, 130111, '柳林屯乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12097, 130111100, 130111, '栾城镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12098, 130111105, 130111, '楼底镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12099, 130111104, 130111, '窦妪镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12100, 130111202, 130111, '西营乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12101, 130111101, 130111, '郄马镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12102, 130110, 130100, '鹿泉区', 2, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12103, 130110202, 130110, '上寨乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12104, 130110103, 130110, '上庄镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12105, 130110107, 130110, '大河镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12106, 130110105, 130110, '宜安镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12107, 130110102, 130110, '寺家庄镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12108, 130110108, 130110, '山尹村镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12109, 130110104, 130110, '李村镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12110, 130110201, 130110, '白鹿泉乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12111, 130110200, 130110, '石井乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12112, 130110100, 130110, '获鹿镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12113, 130110101, 130110, '铜冶镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12114, 130110500, 130110, '鹿泉经济开发区', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12115, 130110106, 130110, '黄壁庄镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12116, 130131, 130100, '平山县', 2, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12117, 130131201, 130131, '三汲乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12118, 130131111, 130131, '下口镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12119, 130131106, 130131, '下槐镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12120, 130131101, 130131, '东回舍镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12121, 130131203, 130131, '东王坡乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12122, 130131202, 130131, '两河乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12123, 130131207, 130131, '北冶乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12124, 130131103, 130131, '南甸镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12125, 130131105, 130131, '古月镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12126, 130131212, 130131, '合河口乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12127, 130131200, 130131, '大吾乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12128, 130131107, 130131, '孟家庄镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12129, 130131205, 130131, '寨北乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12130, 130131108, 130131, '小觉镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12131, 130131104, 130131, '岗南镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12132, 130131100, 130131, '平山镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12133, 130131210, 130131, '杨家桥乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12134, 130131102, 130131, '温塘镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12135, 130131204, 130131, '苏家庄乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12136, 130131211, 130131, '营里乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12137, 130131109, 130131, '蛟潭庄镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12138, 130131110, 130131, '西柏坡镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12139, 130131209, 130131, '观音堂乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12140, 130104, 130100, '桥西区', 2, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12141, 130104016, 130104, '东华街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12142, 130104001, 130104, '东里街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12143, 130104017, 130104, '东风路街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12144, 130104002, 130104, '中山街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12145, 130104018, 130104, '休门街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12146, 130104003, 130104, '南长街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12147, 130104005, 130104, '友谊街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12148, 130104015, 130104, '彭后街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12149, 130104010, 130104, '振头街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12150, 130104007, 130104, '新石街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12151, 130104014, 130104, '汇通街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12152, 130104011, 130104, '留营街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12153, 130104006, 130104, '红旗街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12154, 130104004, 130104, '维明街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12155, 130104008, 130104, '苑东街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12156, 130104009, 130104, '西里街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12157, 130104012, 130104, '长兴街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12158, 130128, 130100, '深泽县', 2, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12159, 130128203, 130128, '桥头乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12160, 130128100, 130128, '深泽镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12161, 130128201, 130128, '留村乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12162, 130128200, 130128, '白庄乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12163, 130128102, 130128, '赵八镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12164, 130128101, 130128, '铁杆镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12165, 130130, 130100, '无极县', 2, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12166, 130130101, 130130, '七汲镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12167, 130130202, 130130, '东侯坊乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12168, 130130103, 130130, '北苏镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12169, 130130204, 130130, '南流乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12170, 130130105, 130130, '大陈镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12171, 130130102, 130130, '张段固镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12172, 130130100, 130130, '无极镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12173, 130130201, 130130, '郝庄乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12174, 130130104, 130130, '郭庄镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12175, 130130203, 130130, '里城道乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12176, 130130200, 130130, '高头回族乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12177, 130125, 130100, '行唐县', 2, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12178, 130125206, 130125, '上方乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12179, 130125102, 130125, '上碑镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12180, 130125209, 130125, '上闫庄乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12181, 130125210, 130125, '九口子乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12182, 130125208, 130125, '北河乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12183, 130125101, 130125, '南桥镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12184, 130125103, 130125, '口头镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12185, 130125202, 130125, '只里乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12186, 130125205, 130125, '城寨乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12187, 130125201, 130125, '安香乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12188, 130125203, 130125, '市同乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12189, 130125200, 130125, '独羊岗乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12190, 130125207, 130125, '玉亭乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12191, 130125204, 130125, '翟营乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12192, 130125100, 130125, '龙州镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12193, 130105, 130100, '新华区', 2, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12194, 130105005, 130105, '东焦街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12195, 130105012, 130105, '北苑街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12196, 130105007, 130105, '合作路街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12197, 130105100, 130105, '大郭街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12198, 130105011, 130105, '天苑街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12199, 130105004, 130105, '宁安街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12200, 130105003, 130105, '新华路街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12201, 130105202, 130105, '杜北街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12202, 130105009, 130105, '石岗街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12203, 130105008, 130105, '联盟街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12204, 130105201, 130105, '西三庄街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12205, 130105006, 130105, '西苑街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12206, 130105203, 130105, '赵佗路街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12207, 130105101, 130105, '赵陵铺路街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12208, 130105001, 130105, '革新街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12209, 130181, 130100, '辛集市', 2, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12210, 130181205, 130181, '中里厢乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12211, 130181103, 130181, '位伯镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12212, 130181201, 130181, '前营乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12213, 130181106, 130181, '南智邱镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12214, 130181203, 130181, '和睦井乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12215, 130181200, 130181, '天宫营乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12216, 130181206, 130181, '小辛庄乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12217, 130181102, 130181, '张古庄镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12218, 130181104, 130181, '新垒头镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12219, 130181105, 130181, '新城镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12220, 130181101, 130181, '旧城镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12221, 130181107, 130181, '王口镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12222, 130181204, 130181, '田家庄乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12223, 130181500, 130181, '辛集经济开发区', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12224, 130181100, 130181, '辛集镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12225, 130181202, 130181, '马庄乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12226, 130184, 130100, '新乐市', 2, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12227, 130184107, 130184, '东王镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12228, 130184101, 130184, '化皮镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12229, 130184200, 130184, '协神乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12230, 130184104, 130184, '大岳镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12231, 130184202, 130184, '彭家庄回族乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12232, 130184102, 130184, '承安镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12233, 130184201, 130184, '木村乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12234, 130184105, 130184, '杜固镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12235, 130184103, 130184, '正莫镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12236, 130184106, 130184, '邯邰镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12237, 130184001, 130184, '长寿街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12238, 130184108, 130184, '马头铺镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12239, 130132, 130100, '元氏县', 2, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12240, 130132201, 130132, '东张乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12241, 130132207, 130132, '前仙乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12242, 130132206, 130132, '北正乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12243, 130132203, 130132, '北褚镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12244, 130132102, 130132, '南佐镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12245, 130132104, 130132, '南因镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12246, 130132001, 130132, '城区街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12247, 130132105, 130132, '姬村镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12248, 130132103, 130132, '宋曹镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12249, 130132100, 130132, '槐阳镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12250, 130132101, 130132, '殷村镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12251, 130132204, 130132, '苏村乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12252, 130132205, 130132, '苏阳乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12253, 130132202, 130132, '赵同乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12254, 130132200, 130132, '马村镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12255, 130132208, 130132, '黑水河乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12256, 130108, 130100, '裕华区', 2, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12257, 130108003, 130108, '东苑街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12258, 130108011, 130108, '太行街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12259, 130108100, 130108, '宋营镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12260, 130108013, 130108, '建华南街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12261, 130108004, 130108, '建通街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12262, 130108101, 130108, '方村镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12263, 130108005, 130108, '槐底街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12264, 130108007, 130108, '裕东街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12265, 130108001, 130108, '裕兴街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12266, 130108006, 130108, '裕华路街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12267, 130108002, 130108, '裕强街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12268, 130108012, 130108, '裕翔街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12269, 130108010, 130108, '长江街道', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12270, 130129, 130100, '赞皇县', 2, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12271, 130129202, 130129, '南清河乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12272, 130129201, 130129, '南邢郭镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12273, 130129204, 130129, '土门乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12274, 130129206, 130129, '嶂石岩镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12275, 130129208, 130129, '张楞乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12276, 130129203, 130129, '西阳泽乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12277, 130129200, 130129, '西龙门乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12278, 130129207, 130129, '许亭乡', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12279, 130129100, 130129, '赞皇镇', 3, '2022-03-28 15:28:16', '2022-03-28 15:28:16', NULL); +INSERT INTO `address` VALUES (12280, 130129101, 130129, '院头镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12281, 130129205, 130129, '黄北坪乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12282, 130133, 130100, '赵县', 2, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12283, 130133200, 130133, '前大章乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12284, 130133102, 130133, '北王里镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12285, 130133105, 130133, '南柏舍镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12286, 130133103, 130133, '新寨店镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12287, 130133106, 130133, '沙河店镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12288, 130133203, 130133, '王西章乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12289, 130133101, 130133, '范庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12290, 130133201, 130133, '谢庄乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12291, 130133100, 130133, '赵州镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12292, 130133104, 130133, '韩村镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12293, 130133202, 130133, '高村乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12294, 130123, 130100, '正定县', 2, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12295, 130123003, 130123, '三里屯街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12296, 130123203, 130123, '南岗镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12297, 130123201, 130123, '南楼乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12298, 130123200, 130123, '南牛乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12299, 130123102, 130123, '新城铺镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12300, 130123103, 130123, '新安镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12301, 130123204, 130123, '曲阳桥镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12302, 130123100, 130123, '正定镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12303, 130123202, 130123, '西平乐乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12304, 130123002, 130123, '诸福屯街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12305, 130200, 13, '唐山市', 1, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12306, 130209, 130200, '曹妃甸区', 2, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12307, 130209401, 130209, '一农场', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12308, 130209407, 130209, '七农场', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12309, 130209403, 130209, '三农场', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12310, 130209452, 130209, '中山路街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12311, 130209409, 130209, '九农场', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12312, 130209405, 130209, '五农场', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12313, 130209408, 130209, '八农场', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12314, 130209412, 130209, '八里滩养殖场', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12315, 130209411, 130209, '十一农场', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12316, 130209410, 130209, '十农场', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12317, 130209413, 130209, '十里海养殖场', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12318, 130209450, 130209, '南堡经济开发区', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12319, 130209415, 130209, '唐山湾生态城', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12320, 130209100, 130209, '唐海镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12321, 130209404, 130209, '四农场', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12322, 130209451, 130209, '垦丰街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12323, 130209414, 130209, '曹妃甸工业区', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12324, 130209113, 130209, '柳赞镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12325, 130209101, 130209, '滨海镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12326, 130209406, 130209, '第六农场', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12327, 130207, 130200, '丰南区', 2, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12328, 130207116, 130207, '东田庄乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12329, 130207113, 130207, '丰南镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12330, 130207115, 130207, '南孙庄乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12331, 130207108, 130207, '唐坊镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12332, 130207106, 130207, '大新庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12333, 130207114, 130207, '大齐各庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12334, 130207103, 130207, '小集镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12335, 130207117, 130207, '尖字沽乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12336, 130207109, 130207, '岔河镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12337, 130207111, 130207, '柳树酄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12338, 130207110, 130207, '王兰庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12339, 130207105, 130207, '西葛镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12340, 130207107, 130207, '钱营镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12341, 130207104, 130207, '黄各庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12342, 130207112, 130207, '黑沿子镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12343, 130208, 130200, '丰润区', 2, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12344, 130208116, 130208, '七树庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12345, 130208100, 130208, '丰润镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12346, 130208111, 130208, '丰登坞镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12347, 130208102, 130208, '任各庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12348, 130208208, 130208, '刘家营乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12349, 130208001, 130208, '太平路街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12350, 130208202, 130208, '姜家营乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12351, 130208110, 130208, '小张各庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12352, 130208103, 130208, '左家坞镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12353, 130208119, 130208, '常庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12354, 130208109, 130208, '新军屯镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12355, 130208112, 130208, '李钊庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12356, 130208117, 130208, '杨官林镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12357, 130208205, 130208, '欢喜庄乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12358, 130208115, 130208, '沙流河镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12359, 130208104, 130208, '泉河头镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12360, 130208003, 130208, '浭阳街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12361, 130208106, 130208, '火石营镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12362, 130208002, 130208, '燕山路街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12363, 130208105, 130208, '王官营镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12364, 130208113, 130208, '白官屯镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12365, 130208114, 130208, '石各庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12366, 130208118, 130208, '银城铺镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12367, 130204, 130200, '古冶区', 2, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12368, 130204202, 130204, '习家套乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12369, 130204007, 130204, '京华街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12370, 130204101, 130204, '卑家店镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12371, 130204003, 130204, '古冶街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12372, 130204002, 130204, '唐家庄街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12373, 130204203, 130204, '大庄坨乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12374, 130204001, 130204, '林西街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12375, 130204201, 130204, '王辇庄乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12376, 130204100, 130204, '范各庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12377, 130204004, 130204, '赵各庄街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12378, 130205, 130200, '开平区', 2, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12379, 130205010, 130205, '双桥镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12380, 130205002, 130205, '开平街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12381, 130205008, 130205, '开平镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12382, 130205009, 130205, '栗园镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12383, 130205011, 130205, '洼里镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12384, 130205003, 130205, '税务庄街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12385, 130205005, 130205, '荆各庄街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12386, 130205007, 130205, '越河镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12387, 130205012, 130205, '郑庄子镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12388, 130205004, 130205, '陡电街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12389, 130205001, 130205, '马家沟街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12390, 130225, 130200, '乐亭县', 2, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12391, 130225110, 130225, '中堡镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12392, 130225100, 130225, '乐亭镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12393, 130225001, 130225, '乐安街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12394, 130225203, 130225, '古河乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12395, 130225202, 130225, '大相各庄乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12396, 130225108, 130225, '姜各庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12397, 130225201, 130225, '庞各庄乡', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12398, 130225106, 130225, '新寨镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12399, 130225109, 130225, '毛庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12400, 130225107, 130225, '汀流河镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12401, 130225101, 130225, '汤家河镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12402, 130225103, 130225, '王滩镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12403, 130225102, 130225, '胡家坨镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12404, 130225450, 130225, '长芦大清河盐场', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12405, 130225104, 130225, '阎各庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12406, 130225105, 130225, '马头营镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12407, 130224, 130200, '滦南县', 2, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12408, 130224116, 130224, '东黄坨镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12409, 130224100, 130224, '倴城镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12410, 130224114, 130224, '南堡镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12411, 130224118, 130224, '友谊路街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12412, 130224106, 130224, '司各庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12413, 130224104, 130224, '坨里镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12414, 130224105, 130224, '姚王庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12415, 130224107, 130224, '安各庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12416, 130224101, 130224, '宋道口镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12417, 130224108, 130224, '扒齿港镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12418, 130224115, 130224, '方各庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12419, 130224111, 130224, '柏各庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12420, 130224109, 130224, '程庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12421, 130224103, 130224, '胡各庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12422, 130224102, 130224, '长凝镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12423, 130224110, 130224, '青坨营镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12424, 130224117, 130224, '马城镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12425, 130223, 130200, '滦州市', 2, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12426, 130284005, 130223, '东安各庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12427, 130284013, 130223, '九百户镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12428, 130284001, 130223, '古城街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12429, 130284011, 130223, '古马镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12430, 130284004, 130223, '响堂街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12431, 130284012, 130223, '小马庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12432, 130284009, 130223, '杨柳庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12433, 130284008, 130223, '榛子镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12434, 130284010, 130223, '油榨镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12435, 130284003, 130223, '滦城路街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12436, 130284002, 130223, '滦河街道', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12437, 130284014, 130223, '王店子镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12438, 130284007, 130223, '茨榆坨镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12439, 130284006, 130223, '雷庄镇', 3, '2022-03-28 15:28:17', '2022-03-28 15:28:17', NULL); +INSERT INTO `address` VALUES (12440, 130203, 130200, '路北区', 2, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12441, 130203004, 130203, '东新村街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12442, 130203001, 130203, '乔屯街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12443, 130203010, 130203, '光明街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12444, 130203450, 130203, '唐山高新技术产业园区', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12445, 130203009, 130203, '大里街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12446, 130203002, 130203, '文化路街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12447, 130203006, 130203, '机场路街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12448, 130203200, 130203, '果园乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12449, 130203007, 130203, '河北路街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12450, 130203005, 130203, '缸窑街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12451, 130203011, 130203, '翔云道街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12452, 130203003, 130203, '钓鱼台街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12453, 130203107, 130203, '韩城镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12454, 130203008, 130203, '龙东街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12455, 130202, 130200, '路南区', 2, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12456, 130202002, 130202, '友谊街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12457, 130202200, 130202, '女织寨乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12458, 130202001, 130202, '学院南路街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12459, 130202005, 130202, '小山街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12460, 130202003, 130202, '广场街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12461, 130202008, 130202, '惠民道街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12462, 130202006, 130202, '文北街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12463, 130202009, 130202, '梁家屯路街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12464, 130202004, 130202, '永红桥街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12465, 130202101, 130202, '汉丰镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12466, 130202102, 130202, '稻地镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12467, 130202450, 130202, '芦台开发区新华路街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12468, 130202100, 130202, '芦台开发区海北镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12469, 130202007, 130202, '钱家营矿区街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12470, 130283, 130200, '迁安市', 2, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12471, 130283202, 130283, '上射雁庄乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12472, 130283204, 130283, '五重安乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12473, 130283100, 130283, '兴安街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12474, 130283101, 130283, '夏官营镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12475, 130283205, 130283, '大五里乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12476, 130283106, 130283, '大崔庄镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12477, 130283206, 130283, '太平庄乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12478, 130283103, 130283, '建昌营镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12479, 130283201, 130283, '彭店子乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12480, 130283200, 130283, '扣庄乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12481, 130283111, 130283, '木厂口镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12482, 130283102, 130283, '杨各庄镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12483, 130283107, 130283, '杨店子街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12484, 130283208, 130283, '永顺街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12485, 130283110, 130283, '沙河驿镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12486, 130283207, 130283, '滨河街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12487, 130283108, 130283, '蔡园镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12488, 130283104, 130283, '赵店子镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12489, 130283105, 130283, '野鸡坨镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12490, 130283203, 130283, '闫家店乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12491, 130283109, 130283, '马兰庄镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12492, 130227, 130200, '迁西县', 2, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12493, 130227107, 130227, '三屯营镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12494, 130227201, 130227, '上营乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12495, 130227105, 130227, '东荒峪镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12496, 130227206, 130227, '东莲花院乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12497, 130227100, 130227, '兴城镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12498, 130227103, 130227, '太平寨镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12499, 130227205, 130227, '尹庄乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12500, 130227207, 130227, '新庄子乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12501, 130227106, 130227, '新集镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12502, 130227204, 130227, '旧城乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12503, 130227001, 130227, '栗乡街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12504, 130227202, 130227, '汉儿庄乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12505, 130227102, 130227, '洒河桥镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12506, 130227203, 130227, '渔户寨乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12507, 130227108, 130227, '滦阳镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12508, 130227200, 130227, '白庙子乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12509, 130227104, 130227, '罗家屯镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12510, 130227101, 130227, '金厂峪镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12511, 130229, 130200, '玉田县', 2, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12512, 130229101, 130229, '亮甲店镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12513, 130229113, 130229, '唐自头镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12514, 130229112, 130229, '大安镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12515, 130229111, 130229, '孤树镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12516, 130229110, 130229, '彩亭桥镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12517, 130229106, 130229, '散水头镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12518, 130229001, 130229, '无终街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12519, 130229202, 130229, '杨家套镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12520, 130229109, 130229, '杨家板桥镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12521, 130229107, 130229, '林南仓镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12522, 130229201, 130229, '林头屯乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12523, 130229108, 130229, '林西镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12524, 130229203, 130229, '潮洛窝乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12525, 130229100, 130229, '玉田镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12526, 130229104, 130229, '石臼窝镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12527, 130229103, 130229, '窝洛沽镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12528, 130229105, 130229, '虹桥镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12529, 130229200, 130229, '郭家屯镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12530, 130229205, 130229, '郭家桥乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12531, 130229204, 130229, '陈家铺乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12532, 130229102, 130229, '鸦鸿桥镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12533, 130281, 130200, '遵化市', 2, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12534, 130281104, 130281, '东新庄镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12535, 130281108, 130281, '东旧寨镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12536, 130281205, 130281, '东陵满族乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12537, 130281210, 130281, '侯家寨乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12538, 130281106, 130281, '党峪镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12539, 130281202, 130281, '兴旺寨乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12540, 130281206, 130281, '刘备寨乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12541, 130281001, 130281, '华明路街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12542, 130281207, 130281, '团瓢庄乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12543, 130281107, 130281, '地北头镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12544, 130281101, 130281, '堡子店镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12545, 130281208, 130281, '娘娘庄乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12546, 130281211, 130281, '小厂乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12547, 130281201, 130281, '崔家庄乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12548, 130281103, 130281, '平安城镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12549, 130281111, 130281, '建明镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12550, 130281002, 130281, '文化路街道', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12551, 130281105, 130281, '新店子镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12552, 130281204, 130281, '汤泉满族乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12553, 130281112, 130281, '石门镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12554, 130281110, 130281, '苏家洼镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12555, 130281209, 130281, '西三里乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12556, 130281203, 130281, '西下营满族乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12557, 130281200, 130281, '西留村乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12558, 130281100, 130281, '遵化镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12559, 130281109, 130281, '铁厂镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12560, 130281102, 130281, '马兰峪镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12561, 130500, 13, '邢台市', 1, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12562, 130524, 130500, '柏乡县', 2, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12563, 130524203, 130524, '内步乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12564, 130524101, 130524, '固城店镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12565, 130524100, 130524, '柏乡镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12566, 130524200, 130524, '王家庄乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12567, 130524102, 130524, '西汪镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12568, 130524202, 130524, '龙华镇', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12569, 130531, 130500, '广宗县', 2, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12570, 130531204, 130531, '东召乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12571, 130531202, 130531, '件只乡', 3, '2022-03-28 15:28:18', '2022-03-28 15:28:18', NULL); +INSERT INTO `address` VALUES (12572, 130531206, 130531, '冯家寨镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12573, 130531205, 130531, '北塘疃乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12574, 130531201, 130531, '大平台乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12575, 130531100, 130531, '广宗镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12576, 130531203, 130531, '核桃园镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12577, 130531200, 130531, '葫芦乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12578, 130529, 130500, '巨鹿县', 2, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12579, 130529200, 130529, '堤村乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12580, 130529103, 130529, '官亭镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12581, 130529105, 130529, '小吕寨镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12582, 130529100, 130529, '巨鹿镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12583, 130529201, 130529, '张王疃乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12584, 130529101, 130529, '王虎寨镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12585, 130529203, 130529, '苏家营镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12586, 130529102, 130529, '西郭城镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12587, 130529202, 130529, '观寨镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12588, 130529104, 130529, '阎疃镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12589, 130522, 130500, '临城县', 2, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12590, 130522101, 130522, '东镇镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12591, 130522100, 130522, '临城镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12592, 130522203, 130522, '石城乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12593, 130522102, 130522, '西竖镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12594, 130522205, 130522, '赵庄乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12595, 130522103, 130522, '郝庄镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12596, 130522201, 130522, '鸭鸽营乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12597, 130522200, 130522, '黑城乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12598, 130535, 130500, '临西县', 2, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12599, 130535102, 130535, '下堡寺镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12600, 130535200, 130535, '东枣园乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12601, 130535100, 130535, '临西镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12602, 130535202, 130535, '吕寨镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12603, 130535204, 130535, '大刘庄乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12604, 130535103, 130535, '尖冢镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12605, 130535203, 130535, '摇鞍镇乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12606, 130535101, 130535, '河西镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12607, 130535104, 130535, '老官寨镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12608, 130525, 130500, '隆尧县', 2, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12609, 130525201, 130525, '东良镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12610, 130525200, 130525, '北楼乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12611, 130525204, 130525, '千户营乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12612, 130525202, 130525, '双碑乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12613, 130525105, 130525, '固城镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12614, 130525205, 130525, '大张庄乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12615, 130525102, 130525, '尹村镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12616, 130525103, 130525, '山口镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12617, 130525203, 130525, '牛家桥乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12618, 130525104, 130525, '莲子镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12619, 130525100, 130525, '隆尧镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12620, 130525101, 130525, '魏家庄镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12621, 130581, 130500, '南宫市', 2, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12622, 130581001, 130581, '凤岗街道', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12623, 130581003, 130581, '北胡街道', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12624, 130581201, 130581, '南便乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12625, 130581002, 130581, '南杜街道', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12626, 130581102, 130581, '垂杨镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12627, 130581202, 130581, '大屯乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12628, 130581200, 130581, '大村乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12629, 130581101, 130581, '大高村镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12630, 130581103, 130581, '明化镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12631, 130581104, 130581, '段芦头镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12632, 130581203, 130581, '王道寨乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12633, 130581105, 130581, '紫冢镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12634, 130581100, 130581, '苏村镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12635, 130581204, 130581, '薛吴村乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12636, 130581004, 130581, '西丁街道', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12637, 130527, 130500, '南和区', 2, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12638, 130506200, 130527, '三召乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12639, 130506204, 130527, '三思乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12640, 130506203, 130527, '史召乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12641, 130506100, 130527, '和阳镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12642, 130506202, 130527, '河郭乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12643, 130506101, 130527, '贾宋镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12644, 130506102, 130527, '郝桥镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12645, 130506201, 130527, '闫里乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12646, 130523, 130500, '内丘县', 2, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12647, 130523200, 130523, '五郭店乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12648, 130523205, 130523, '侯家庄乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12649, 130523100, 130523, '内丘镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12650, 130523203, 130523, '南赛乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12651, 130523101, 130523, '大孟村镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12652, 130523103, 130523, '官庄镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12653, 130523104, 130523, '柳林镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12654, 130523204, 130523, '獐么乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12655, 130523102, 130523, '金店镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12656, 130528, 130500, '宁晋县', 2, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12657, 130528104, 130528, '东汪镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12658, 130528200, 130528, '侯口乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12659, 130528100, 130528, '凤凰镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12660, 130528102, 130528, '北河庄镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12661, 130528205, 130528, '北鱼乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12662, 130528203, 130528, '唐邱镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12663, 130528106, 130528, '四芝兰镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12664, 130528207, 130528, '大曹庄乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12665, 130528107, 130528, '大陆村镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12666, 130528401, 130528, '宁北街道', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12667, 130528206, 130528, '徐家河乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12668, 130528109, 130528, '换马店镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12669, 130528101, 130528, '河渠镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12670, 130528202, 130528, '纪昌庄乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12671, 130528103, 130528, '耿庄桥镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12672, 130528108, 130528, '苏家庄镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12673, 130528105, 130528, '贾家口镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12674, 130532, 130500, '平乡县', 2, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12675, 130532100, 130532, '丰州镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12676, 130532203, 130532, '寻召乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12677, 130532101, 130532, '平乡镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12678, 130532102, 130532, '河古庙镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12679, 130532201, 130532, '油召乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12680, 130532202, 130532, '田付村乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12681, 130532200, 130532, '节固乡', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12682, 130534, 130500, '清河县', 2, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12683, 130534105, 130534, '坝营镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12684, 130534102, 130534, '油坊镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12685, 130534104, 130534, '王官庄镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12686, 130534100, 130534, '葛仙庄镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12687, 130534103, 130534, '谢炉镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12688, 130534101, 130534, '连庄镇', 3, '2022-03-28 15:28:19', '2022-03-28 15:28:19', NULL); +INSERT INTO `address` VALUES (12689, 130526, 130500, '任泽区', 2, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12690, 130505100, 130526, '任城镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12691, 130505202, 130526, '大屯乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12692, 130505103, 130526, '天口镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12693, 130505201, 130526, '永福庄乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12694, 130505200, 130526, '西固城乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12695, 130505102, 130526, '辛店镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12696, 130505101, 130526, '邢家湾镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12697, 130505204, 130526, '骆庄乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12698, 130582, 130500, '沙河市', 2, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12699, 130582201, 130582, '册井乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12700, 130582202, 130582, '刘石岗乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12701, 130582103, 130582, '十里亭镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12702, 130582005, 130582, '周庄街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12703, 130582101, 130582, '新城镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12704, 130582203, 130582, '柴关乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12705, 130582002, 130582, '桥东街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12706, 130582003, 130582, '桥西街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12707, 130582100, 130582, '沙河城镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12708, 130582200, 130582, '留村乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12709, 130582102, 130582, '白塔镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12710, 130582104, 130582, '綦村镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12711, 130582204, 130582, '蝉房乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12712, 130582001, 130582, '褡裢街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12713, 130582400, 130582, '赞善街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12714, 130533, 130500, '威县', 2, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12715, 130533104, 130533, '七级镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12716, 130533103, 130533, '侯贯镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12717, 130533203, 130533, '固献乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12718, 130533207, 130533, '常屯乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12719, 130533208, 130533, '常庄乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12720, 130533206, 130533, '张营乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12721, 130533200, 130533, '方家营镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12722, 130533202, 130533, '枣园乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12723, 130533101, 130533, '梨元屯镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12724, 130533100, 130533, '洺州镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12725, 130533102, 130533, '章台镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12726, 130533201, 130533, '第什营镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12727, 130533105, 130533, '贺营镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12728, 130533204, 130533, '贺钊镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12729, 130533210, 130533, '赵村镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12730, 130533209, 130533, '高公庄乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12731, 130502, 130500, '襄都区', 2, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12732, 130502011, 130502, '东汪镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12733, 130502007, 130502, '东郭村镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12734, 130502003, 130502, '北大街街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12735, 130502001, 130502, '南长街街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12736, 130502008, 130502, '大梁庄乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12737, 130502013, 130502, '晏家屯镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12738, 130502010, 130502, '泉东街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12739, 130502014, 130502, '王快镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12740, 130502012, 130502, '祝村镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12741, 130502004, 130502, '西大街街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12742, 130502005, 130502, '西门里街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12743, 130502002, 130502, '豫让桥街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12744, 130503, 130500, '信都区', 2, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12745, 130503002, 130503, '中兴路街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12746, 130503006, 130503, '中华大街街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12747, 130503405, 130503, '会宁镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12748, 130503416, 130503, '冀家村乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12749, 130503413, 130503, '北小庄乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12750, 130503100, 130503, '南大郭镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12751, 130503402, 130503, '南石门镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12752, 130503007, 130503, '团结路街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12753, 130503414, 130503, '城计头乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12754, 130503411, 130503, '太子井乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12755, 130503410, 130503, '宋家庄镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12756, 130503408, 130503, '将军墓镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12757, 130503004, 130503, '张宽街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12758, 130503101, 130503, '李村镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12759, 130503008, 130503, '泉西街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12760, 130503409, 130503, '浆水镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12761, 130503415, 130503, '白岸乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12762, 130503404, 130503, '皇寺镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12763, 130503005, 130503, '章村街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12764, 130503403, 130503, '羊范镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12765, 130503406, 130503, '西黄村镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12766, 130503407, 130503, '路罗镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12767, 130503003, 130503, '达活泉街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12768, 130503001, 130503, '钢铁路街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12769, 130503412, 130503, '龙泉寺乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12770, 130530, 130500, '新河县', 2, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12771, 130530203, 130530, '仁让里乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12772, 130530101, 130530, '寻寨镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12773, 130530100, 130530, '新河镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12774, 130530200, 130530, '白神首乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12775, 130530201, 130530, '荆家庄乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12776, 130530202, 130530, '西流乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12777, 130700, 13, '张家口市', 1, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12778, 130732, 130700, '赤城县', 2, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12779, 130732205, 130732, '三道川乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12780, 130732206, 130732, '东万口乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12781, 130732108, 130732, '东卯镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12782, 130732204, 130732, '云州乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12783, 130732107, 130732, '后城镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12784, 130732201, 130732, '大海陀乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12785, 130732208, 130732, '样田乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12786, 130732200, 130732, '炮梁乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12787, 130732104, 130732, '独石口镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12788, 130732101, 130732, '田家窑镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12789, 130732105, 130732, '白草镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12790, 130732207, 130732, '茨营子乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12791, 130732100, 130732, '赤城镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12792, 130732202, 130732, '镇宁堡乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12793, 130732103, 130732, '雕鹗镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12794, 130732203, 130732, '马营乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12795, 130732102, 130732, '龙关镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12796, 130732106, 130732, '龙门所镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12797, 130709, 130700, '崇礼区', 2, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12798, 130709200, 130709, '四台嘴乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12799, 130709206, 130709, '清三营乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12800, 130709205, 130709, '狮子沟乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12801, 130709207, 130709, '白旗乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12802, 130709204, 130709, '石嘴子乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12803, 130709202, 130709, '石窑子乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12804, 130709201, 130709, '红旗营乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12805, 130709001, 130709, '西湾子街道', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12806, 130709100, 130709, '西湾子镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12807, 130709203, 130709, '驿马图乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12808, 130709101, 130709, '高家营镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12809, 130724, 130700, '沽源县', 2, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12810, 130724206, 130724, '丰源店乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12811, 130724103, 130724, '九连城镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12812, 130724202, 130724, '二道渠乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12813, 130724203, 130724, '大二号回族乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12814, 130724101, 130724, '小厂镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12815, 130724201, 130724, '小河子乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12816, 130724100, 130724, '平定堡镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12817, 130724209, 130724, '白土窑乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12818, 130724208, 130724, '莲花滩乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12819, 130724207, 130724, '西辛营乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12820, 130724205, 130724, '长梁乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12821, 130724204, 130724, '闪电河乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12822, 130724200, 130724, '高山堡乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12823, 130724102, 130724, '黄盖淖镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12824, 130728, 130700, '怀安县', 2, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12825, 130728204, 130728, '太平庄乡', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12826, 130728102, 130728, '头百户镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12827, 130728101, 130728, '左卫镇', 3, '2022-03-28 15:28:20', '2022-03-28 15:28:20', NULL); +INSERT INTO `address` VALUES (12828, 130728103, 130728, '怀安城镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12829, 130728100, 130728, '柴沟堡镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12830, 130728200, 130728, '渡口堡乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12831, 130728205, 130728, '王虎屯乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12832, 130728206, 130728, '第三堡乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12833, 130728201, 130728, '第六屯乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12834, 130728203, 130728, '西沙城乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12835, 130728202, 130728, '西湾堡乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12836, 130730, 130700, '怀来县', 2, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12837, 130730205, 130730, '东八里乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12838, 130730103, 130730, '东花园镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12839, 130730101, 130730, '北辛堡镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12840, 130730107, 130730, '土木镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12841, 130730108, 130730, '大黄庄镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12842, 130730106, 130730, '存瑞镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12843, 130730208, 130730, '孙庄子乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12844, 130730104, 130730, '官厅镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12845, 130730110, 130730, '小南辛堡镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12846, 130730102, 130730, '新保安镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12847, 130730105, 130730, '桑园镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12848, 130730100, 130730, '沙城镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12849, 130730200, 130730, '狼山乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12850, 130730210, 130730, '王家楼回族乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12851, 130730207, 130730, '瑞云观乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12852, 130730109, 130730, '西八里镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12853, 130730203, 130730, '鸡鸣驿乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12854, 130723, 130700, '康保县', 2, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12855, 130723201, 130723, '丹清河乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12856, 130723203, 130723, '二号卜乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12857, 130723202, 130723, '哈咇嘎乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12858, 130723102, 130723, '土城子镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12859, 130723206, 130723, '处长地乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12860, 130723106, 130723, '屯垦镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12861, 130723400, 130723, '康保牧场', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12862, 130723100, 130723, '康保镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12863, 130723101, 130723, '张纪镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12864, 130723205, 130723, '忠义乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12865, 130723104, 130723, '李家地镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12866, 130723207, 130723, '满德堂乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12867, 130723105, 130723, '照阳河镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12868, 130723204, 130723, '芦家营乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12869, 130723103, 130723, '邓油坊镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12870, 130723200, 130723, '闫油坊乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12871, 130702, 130700, '桥东区', 2, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12872, 130702203, 130702, '东望山乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12873, 130702003, 130702, '五一路街道', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12874, 130702006, 130702, '南站街道', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12875, 130702105, 130702, '大仓盖镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12876, 130702101, 130702, '姚家庄镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12877, 130702005, 130702, '工业路街道', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12878, 130702001, 130702, '红旗楼街道', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12879, 130702100, 130702, '老鸦庄镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12880, 130702002, 130702, '胜利北路街道', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12881, 130702004, 130702, '花园街街道', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12882, 130702007, 130702, '马路东街道', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12883, 130703, 130700, '桥西区', 2, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12884, 130703100, 130703, '东窑子镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12885, 130703006, 130703, '南营坊街道', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12886, 130703005, 130703, '堡子里街道', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12887, 130703002, 130703, '大境门街道', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12888, 130703104, 130703, '姚家房镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12889, 130703007, 130703, '工人新村街道', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12890, 130703001, 130703, '新华街街道', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12891, 130703003, 130703, '明德北街街道', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12892, 130703004, 130703, '明德南街街道', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12893, 130703101, 130703, '沈家屯镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12894, 130703103, 130703, '沙岭子镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12895, 130725, 130700, '尚义县', 2, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12896, 130725205, 130725, '七甲乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12897, 130725105, 130725, '三工地镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12898, 130725208, 130725, '下马圈乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12899, 130725102, 130725, '八道沟镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12900, 130725100, 130725, '南壕堑镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12901, 130725201, 130725, '大苏计乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12902, 130725200, 130725, '大营盘乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12903, 130725101, 130725, '大青沟镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12904, 130725206, 130725, '套里庄乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12905, 130725104, 130725, '小蒜沟镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12906, 130725106, 130725, '满井镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12907, 130725207, 130725, '甲石河乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12908, 130725202, 130725, '石井乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12909, 130725103, 130725, '红土梁镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12910, 130708, 130700, '万全区', 2, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12911, 130708101, 130708, '万全镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12912, 130708201, 130708, '北新屯乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12913, 130708206, 130708, '北沙城乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12914, 130708100, 130708, '孔家庄镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12915, 130708205, 130708, '安家堡乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12916, 130708202, 130708, '宣平堡乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12917, 130708204, 130708, '旧堡乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12918, 130708102, 130708, '洗马林镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12919, 130708200, 130708, '膳房堡乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12920, 130708103, 130708, '郭磊庄镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12921, 130708203, 130708, '高庙堡乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12922, 130726, 130700, '蔚县', 2, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12923, 130726200, 130726, '下宫村乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12924, 130726101, 130726, '代王城镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12925, 130726107, 130726, '北水泉镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12926, 130726207, 130726, '南岭庄乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12927, 130726202, 130726, '南杨庄乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12928, 130726106, 130726, '南留庄镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12929, 130726103, 130726, '吉家庄镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12930, 130726110, 130726, '宋家庄镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12931, 130726204, 130726, '常宁乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12932, 130726105, 130726, '暖泉镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12933, 130726206, 130726, '杨庄窠乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12934, 130726203, 130726, '柏树乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12935, 130726108, 130726, '桃花镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12936, 130726205, 130726, '涌泉庄乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12937, 130726104, 130726, '白乐镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12938, 130726210, 130726, '白草村乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12939, 130726211, 130726, '草沟堡乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12940, 130726100, 130726, '蔚州镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12941, 130726102, 130726, '西合营镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12942, 130726109, 130726, '阳眷镇', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12943, 130726208, 130726, '陈家洼乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12944, 130726209, 130726, '黄梅乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12945, 130706, 130700, '下花园区', 2, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12946, 130706001, 130706, '城镇街道', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12947, 130706202, 130706, '定方水乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12948, 130706203, 130706, '段家堡乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12949, 130706002, 130706, '煤矿街道', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12950, 130706200, 130706, '花园乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12951, 130706201, 130706, '辛庄子乡', 3, '2022-03-28 15:28:21', '2022-03-28 15:28:21', NULL); +INSERT INTO `address` VALUES (12952, 130705, 130700, '宣化区', 2, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12953, 130705021, 130705, '侯家庙乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12954, 130705003, 130705, '南关街道', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12955, 130705004, 130705, '南大街街道', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12956, 130705019, 130705, '塔儿村乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12957, 130705005, 130705, '大北街街道', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12958, 130705001, 130705, '天泰寺街道', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12959, 130705012, 130705, '崞村镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12960, 130705006, 130705, '工业街街道', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12961, 130705009, 130705, '庞家堡镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12962, 130705007, 130705, '建国街街道', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12963, 130705018, 130705, '春光乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12964, 130705022, 130705, '李家堡乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12965, 130705020, 130705, '江家屯镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12966, 130705017, 130705, '河子西乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12967, 130705010, 130705, '洋河南镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12968, 130705011, 130705, '深井镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12969, 130705016, 130705, '王家湾乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12970, 130705002, 130705, '皇城街道', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12971, 130705013, 130705, '贾家营镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12972, 130705015, 130705, '赵川镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12973, 130705014, 130705, '顾家营镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12974, 130727, 130700, '阳原县', 2, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12975, 130727203, 130727, '三马坊乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12976, 130727104, 130727, '东井集镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12977, 130727101, 130727, '东城镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12978, 130727201, 130727, '东堡乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12979, 130727202, 130727, '井儿沟乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12980, 130727102, 130727, '化稍营镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12981, 130727205, 130727, '大田洼乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12982, 130727103, 130727, '揣骨疃镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12983, 130727208, 130727, '浮图讲乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12984, 130727100, 130727, '西城镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12985, 130727200, 130727, '要家庄乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12986, 130727206, 130727, '辛堡乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12987, 130727207, 130727, '马圈堡乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12988, 130727204, 130727, '高墙乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12989, 130722, 130700, '张北县', 2, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12990, 130722213, 130722, '三号乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12991, 130722207, 130722, '两面井乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12992, 130722102, 130722, '二台镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12993, 130722203, 130722, '二泉井乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12994, 130722101, 130722, '公会镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12995, 130722204, 130722, '单晶河乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12996, 130722200, 130722, '台路沟乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12997, 130722103, 130722, '大囫囵镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12998, 130722205, 130722, '大河镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (12999, 130722208, 130722, '大西湾乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13000, 130722215, 130722, '宇宙营乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13001, 130722500, 130722, '察北', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13002, 130722104, 130722, '小二台镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13003, 130722100, 130722, '张北镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13004, 130722212, 130722, '战海乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13005, 130722105, 130722, '沙沟镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13006, 130722201, 130722, '油篓沟镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13007, 130722206, 130722, '海流图乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13008, 130722210, 130722, '白庙滩乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13009, 130722209, 130722, '郝家营乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13010, 130722202, 130722, '馒头营乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13011, 130731, 130700, '涿鹿县', 2, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13012, 130731108, 130731, '东小庄镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13013, 130731103, 130731, '五堡镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13014, 130731104, 130731, '保岱镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13015, 130731205, 130731, '卧佛寺乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13016, 130731106, 130731, '大堡镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13017, 130731111, 130731, '大河南镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13018, 130731101, 130731, '张家堡镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13019, 130731201, 130731, '栾庄乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13020, 130731102, 130731, '武家沟镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13021, 130731107, 130731, '河东镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13022, 130731100, 130731, '涿鹿镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13023, 130731109, 130731, '温泉屯镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13024, 130731105, 130731, '矾山镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13025, 130731112, 130731, '蟒石口镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13026, 130731206, 130731, '谢家堡乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13027, 130731110, 130731, '辉耀镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13028, 130731204, 130731, '黑山寺乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13029, 42, 0, '湖北省', 0, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13030, 422800, 42, '恩施土家族苗族自治州', 1, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13031, 422823, 422800, '巴东县', 2, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13032, 422823101, 422823, '东瀼口镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13033, 422823100, 422823, '信陵镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13034, 422823106, 422823, '大支坪镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13035, 422823103, 422823, '官渡口镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13036, 422823109, 422823, '水布垭镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13037, 422823102, 422823, '沿渡河镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13038, 422823108, 422823, '清太坪镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13039, 422823200, 422823, '溪丘湾乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13040, 422823105, 422823, '绿葱坡镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13041, 422823104, 422823, '茶店子镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13042, 422823107, 422823, '野三关镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13043, 422823201, 422823, '金果坪乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13044, 422801, 422800, '恩施市', 2, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13045, 422801200, 422801, '三岔镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13046, 422801003, 422801, '六角亭街道', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13047, 422801205, 422801, '太阳河乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13048, 422801001, 422801, '小渡船街道', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13049, 422801206, 422801, '屯堡乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13050, 422801102, 422801, '崔家坝镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13051, 422801201, 422801, '新塘乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13052, 422801100, 422801, '板桥镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13053, 422801400, 422801, '沐抚办事处', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13054, 422801203, 422801, '沙地乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13055, 422801103, 422801, '白杨坪镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13056, 422801207, 422801, '白果乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13057, 422801209, 422801, '盛家坝镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13058, 422801202, 422801, '红土乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13059, 422801002, 422801, '舞阳坝街道', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13060, 422801208, 422801, '芭蕉侗族乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13061, 422801101, 422801, '龙凤镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13062, 422828, 422800, '鹤峰县', 2, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13063, 422828204, 422828, '下坪乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13064, 422828205, 422828, '中营乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13065, 422828201, 422828, '五里乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13066, 422828206, 422828, '太平乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13067, 422828100, 422828, '容美镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13068, 422828102, 422828, '燕子镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13069, 422828101, 422828, '走马镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13070, 422828203, 422828, '邬阳乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13071, 422828200, 422828, '铁炉白族乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13072, 422822, 422800, '建始县', 2, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13073, 422822203, 422822, '三里乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13074, 422822100, 422822, '业州镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13075, 422822104, 422822, '官店镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13076, 422822103, 422822, '景阳镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13077, 422822101, 422822, '红岩寺镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13078, 422822105, 422822, '花坪镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13079, 422822201, 422822, '茅田乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13080, 422822200, 422822, '长梁镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13081, 422822102, 422822, '高坪镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13082, 422822204, 422822, '龙坪乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13083, 422827, 422800, '来凤县', 2, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13084, 422827203, 422827, '三胡乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13085, 422827102, 422827, '大河镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13086, 422827104, 422827, '旧司镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13087, 422827201, 422827, '漫水乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13088, 422827101, 422827, '百福司镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13089, 422827103, 422827, '绿水镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13090, 422827100, 422827, '翔凤镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13091, 422827105, 422827, '革勒车镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13092, 422802, 422800, '利川市', 2, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13093, 422802002, 422802, '东城街道', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13094, 422802203, 422802, '元堡乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13095, 422802205, 422802, '凉雾乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13096, 422802200, 422802, '南坪乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13097, 422802102, 422802, '团堡镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13098, 422802105, 422802, '建南镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13099, 422802104, 422802, '忠路镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13100, 422802202, 422802, '文斗镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13101, 422802103, 422802, '柏杨坝镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13102, 422802106, 422802, '毛坝镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13103, 422802101, 422802, '汪营镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13104, 422802201, 422802, '沙溪乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13105, 422802100, 422802, '谋道镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13106, 422802001, 422802, '都亭街道', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13107, 422826, 422800, '咸丰县', 2, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13108, 422826201, 422826, '唐崖镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13109, 422826103, 422826, '坪坝营镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13110, 422826400, 422826, '大路坝区', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13111, 422826203, 422826, '小村乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13112, 422826101, 422826, '忠堡镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13113, 422826200, 422826, '曲江镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13114, 422826102, 422826, '朝阳寺镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13115, 422826202, 422826, '活龙坪乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13116, 422826104, 422826, '清坪镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13117, 422826100, 422826, '高乐山镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13118, 422826204, 422826, '黄金洞乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13119, 422825, 422800, '宣恩县', 2, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13120, 422825203, 422825, '万寨乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13121, 422825202, 422825, '晓关侗族乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13122, 422825205, 422825, '李家河镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13123, 422825102, 422825, '椒园镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13124, 422825201, 422825, '椿木营乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13125, 422825101, 422825, '沙道沟镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13126, 422825100, 422825, '珠山镇', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13127, 422825200, 422825, '长潭河侗族乡', 3, '2022-03-28 15:28:22', '2022-03-28 15:28:22', NULL); +INSERT INTO `address` VALUES (13128, 422825204, 422825, '高罗镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13129, 420700, 42, '鄂州市', 1, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13130, 420704, 420700, '鄂城区', 2, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13131, 420704002, 420704, '凤凰街道', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13132, 420704001, 420704, '古楼街道', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13133, 420704101, 420704, '新庙镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13134, 420704100, 420704, '杜山镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13135, 420704103, 420704, '杨叶镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13136, 420704105, 420704, '汀祖镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13137, 420704200, 420704, '沙窝乡', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13138, 420704107, 420704, '泽林镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13139, 420704106, 420704, '燕矶镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13140, 420704104, 420704, '碧石渡镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13141, 420704102, 420704, '花湖镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13142, 420704004, 420704, '西山街道', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13143, 420704400, 420704, '鄂州经济开发区', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13144, 420704108, 420704, '长港镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13145, 420703, 420700, '华容区', 2, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13146, 420703200, 420703, '临江乡', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13147, 420703100, 420703, '华容镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13148, 420703101, 420703, '庙岭镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13149, 420703102, 420703, '段店镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13150, 420703103, 420703, '葛店镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13151, 420703201, 420703, '蒲团乡', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13152, 420702, 420700, '梁子湖区', 2, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13153, 420702101, 420702, '东沟镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13154, 420702100, 420702, '太和镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13155, 420702104, 420702, '梁子镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13156, 420702102, 420702, '沼山镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13157, 420702103, 420702, '涂家垴镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13158, 421100, 42, '黄冈市', 1, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13159, 421122, 421100, '红安县', 2, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13160, 421122101, 421122, '七里坪镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13161, 421122104, 421122, '上新集镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13162, 421122103, 421122, '二程镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13163, 421122107, 421122, '八里湾镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13164, 421122102, 421122, '华家河镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13165, 421122100, 421122, '城关镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13166, 421122501, 421122, '天台山旅游开发管理处', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13167, 421122108, 421122, '太平桥镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13168, 421122200, 421122, '杏花乡', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13169, 421122109, 421122, '永佳河镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13170, 421122400, 421122, '火连畈茶场', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13171, 421122106, 421122, '觅儿寺镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13172, 421122105, 421122, '高桥镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13173, 421127, 421100, '黄梅县', 2, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13174, 421127103, 421127, '下新镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13175, 421127106, 421127, '五祖镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13176, 421127105, 421127, '停前镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13177, 421127111, 421127, '分路镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13178, 421127203, 421127, '刘佐乡', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13179, 421127104, 421127, '大河镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13180, 421127102, 421127, '孔垅镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13181, 421127101, 421127, '小池镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13182, 421127109, 421127, '新开镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13183, 421127200, 421127, '杉木乡', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13184, 421127201, 421127, '柳林乡', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13185, 421127404, 421127, '沙湖街道', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13186, 421127107, 421127, '濯港镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13187, 421127110, 421127, '独山镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13188, 421127202, 421127, '苦竹乡', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13189, 421127108, 421127, '蔡山镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13190, 421127100, 421127, '黄梅镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13191, 421127403, 421127, '龙感湖工业园区', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13192, 421127405, 421127, '龙感湖管理处', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13193, 421102, 421100, '黄州区', 2, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13194, 421102002, 421102, '东湖街道', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13195, 421102004, 421102, '南湖街道', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13196, 421102100, 421102, '堵城镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13197, 421102003, 421102, '禹王街道', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13198, 421102001, 421102, '赤壁街道', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13199, 421102101, 421102, '路口镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13200, 421102102, 421102, '陈策楼镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13201, 421102200, 421102, '陶店乡', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13202, 421102470, 421102, '黄冈经济开发区', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13203, 421123, 421100, '罗田县', 2, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13204, 421123106, 421123, '三里畈镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13205, 421123103, 421123, '九资河镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13206, 421123100, 421123, '凤山镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13207, 421123107, 421123, '匡河镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13208, 421123108, 421123, '大崎镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13209, 421123102, 421123, '大河岸镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13210, 421123501, 421123, '天堂寨林场', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13211, 421123203, 421123, '平湖乡', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13212, 421123105, 421123, '河铺镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13213, 421123109, 421123, '白庙河镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13214, 421123200, 421123, '白莲河乡', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13215, 421123104, 421123, '胜利镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13216, 421123502, 421123, '薄刀峰林场', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13217, 421123101, 421123, '骆驼坳镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13218, 421181, 421100, '麻城市', 2, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13219, 421181109, 421181, '三河口镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13220, 421181100, 421181, '中馆驿镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13221, 421181112, 421181, '乘马岗镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13222, 421181500, 421181, '五脑山林场', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13223, 421181003, 421181, '南湖街道', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13224, 421181104, 421181, '夫子河镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13225, 421181101, 421181, '宋埠镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13226, 421181107, 421181, '张家畈镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13227, 421181108, 421181, '木子店镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13228, 421181102, 421181, '歧亭镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13229, 421181471, 421181, '湖北麻城经济开发区', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13230, 421181103, 421181, '白果镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13231, 421181106, 421181, '盐田河镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13232, 421181111, 421181, '福田河镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13233, 421181200, 421181, '铁门岗乡', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13234, 421181105, 421181, '阎家河镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13235, 421181113, 421181, '顺河镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13236, 421181110, 421181, '黄土岗镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13237, 421181002, 421181, '鼓楼街道', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13238, 421181001, 421181, '龙池街道', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13239, 421181114, 421181, '龟山镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13240, 421181472, 421181, '龟山风景区管理处', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13241, 421126, 421100, '蕲春县', 2, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13242, 421126400, 421126, '八里湖农场', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13243, 421126107, 421126, '刘河镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13244, 421126200, 421126, '向桥乡', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13245, 421126112, 421126, '大同镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13246, 421126110, 421126, '张榜镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13247, 421126105, 421126, '彭思镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13248, 421126106, 421126, '株林镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13249, 421126104, 421126, '横车镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13250, 421126111, 421126, '檀林镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13251, 421126100, 421126, '漕河镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13252, 421126108, 421126, '狮子镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13253, 421126103, 421126, '管窑镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13254, 421126102, 421126, '蕲州镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13255, 421126101, 421126, '赤东镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13256, 421126109, 421126, '青石镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13257, 421121, 421100, '团风县', 2, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13258, 421121105, 421121, '上巴河镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13259, 421121107, 421121, '但店镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13260, 421121103, 421121, '回龙山镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13261, 421121100, 421121, '团风镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13262, 421121106, 421121, '总路咀镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13263, 421121101, 421121, '方高坪镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13264, 421121201, 421121, '杜皮乡', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13265, 421121102, 421121, '淋山河镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13266, 421121200, 421121, '贾庙乡', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13267, 421121104, 421121, '马曹庙镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13268, 421182, 421100, '武穴市', 2, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13269, 421182003, 421182, '万丈湖街道', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13270, 421182007, 421182, '余川镇', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13271, 421182002, 421182, '刊江街道', 3, '2022-03-28 15:28:23', '2022-03-28 15:28:23', NULL); +INSERT INTO `address` VALUES (13272, 421182011, 421182, '四望镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13273, 421182012, 421182, '大法寺镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13274, 421182010, 421182, '大金镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13275, 421182005, 421182, '梅川镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13276, 421182001, 421182, '武穴街道', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13277, 421182006, 421182, '田镇街道', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13278, 421182009, 421182, '石佛寺镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13279, 421182008, 421182, '花桥镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13280, 421182013, 421182, '龙坪镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13281, 421125, 421100, '浠水县', 2, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13282, 421125109, 421125, '丁司垱镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13283, 421125401, 421125, '三角山林场', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13284, 421125111, 421125, '兰溪镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13285, 421125105, 421125, '关口镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13286, 421125104, 421125, '团陂镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13287, 421125101, 421125, '巴河镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13288, 421125110, 421125, '散花镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13289, 421125103, 421125, '汪岗镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13290, 421125108, 421125, '洗马镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13291, 421125100, 421125, '清泉镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13292, 421125107, 421125, '白莲镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13293, 421125102, 421125, '竹瓦镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13294, 421125400, 421125, '策湖养殖场', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13295, 421125402, 421125, '经济开发区镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13296, 421125200, 421125, '绿杨乡', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13297, 421125106, 421125, '蔡河镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13298, 421124, 421100, '英山县', 2, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13299, 421124101, 421124, '南河镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13300, 421124401, 421124, '吴家山林场', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13301, 421124201, 421124, '孔家坊乡', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13302, 421124200, 421124, '方家咀乡', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13303, 421124107, 421124, '杨柳湾镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13304, 421124400, 421124, '桃花冲林场', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13305, 421124100, 421124, '温泉镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13306, 421124104, 421124, '石头咀镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13307, 421124102, 421124, '红山镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13308, 421124403, 421124, '英山县经济开发区', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13309, 421124105, 421124, '草盘地镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13310, 421124103, 421124, '金家铺镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13311, 421124202, 421124, '陶家河乡', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13312, 421124106, 421124, '雷家店镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13313, 420200, 42, '黄石市', 1, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13314, 420281, 420200, '大冶市', 2, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13315, 420281001, 420281, '东岳路街道', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13316, 420281003, 420281, '东风路街道', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13317, 420281013, 420281, '保安镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13318, 420281008, 420281, '刘仁八镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13319, 420281006, 420281, '大箕铺镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13320, 420281007, 420281, '殷祖镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13321, 420281015, 420281, '汪仁镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13322, 420281010, 420281, '灵乡镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13323, 420281004, 420281, '罗家桥街道', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13324, 420281016, 420281, '茗山乡', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13325, 420281014, 420281, '还地桥镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13326, 420281012, 420281, '金山店镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13327, 420281005, 420281, '金山街道', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13328, 420281002, 420281, '金湖街道', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13329, 420281009, 420281, '金牛镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13330, 420281011, 420281, '陈贵镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13331, 420202, 420200, '黄石港区', 2, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13332, 420202005, 420202, '花湖街道', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13333, 420205, 420200, '铁山区', 2, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13334, 420205400, 420205, '区直辖村模拟镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13335, 420204, 420200, '下陆区', 2, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13336, 420204401, 420204, '东方山街道', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13337, 420204004, 420204, '团城山街道', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13338, 420204402, 420204, '社区事务管理委员会', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13339, 420204400, 420204, '长乐山工业园', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13340, 420203, 420200, '西塞山区', 2, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13341, 420203099, 420203, '章山街道', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13342, 420203102, 420203, '西塞山工业园区管委会', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13343, 420222, 420200, '阳新县', 2, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13344, 420222010, 420222, '三溪镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13345, 420222001, 420222, '兴国镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13346, 420222006, 420222, '大王镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13347, 420222005, 420222, '太子镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13348, 420222002, 420222, '富池镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13349, 420222014, 420222, '排市镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13350, 420222015, 420222, '木港镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13351, 420222016, 420222, '枫林镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13352, 420222013, 420222, '洋港镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13353, 420222009, 420222, '浮屠镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13354, 420222451, 420222, '率洲农场', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13355, 420222011, 420222, '王英镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13356, 420222008, 420222, '白沙镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13357, 420222455, 420222, '金海开发区', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13358, 420222007, 420222, '陶港镇', 3, '2022-03-28 15:28:24', '2022-03-28 15:28:24', NULL); +INSERT INTO `address` VALUES (13359, 420222004, 420222, '韦源口镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13360, 420222003, 420222, '黄颡口镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13361, 420222012, 420222, '龙港镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13362, 420800, 42, '荆门市', 1, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13363, 420802, 420800, '东宝区', 2, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13364, 420802400, 420802, '东宝工业园', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13365, 420802200, 420802, '仙居乡', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13366, 420802101, 420802, '子陵铺镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13367, 420802105, 420802, '栗溪镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13368, 420802002, 420802, '泉口街道', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13369, 420802102, 420802, '漳河镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13370, 420802100, 420802, '牌楼镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13371, 420802103, 420802, '石桥驿镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13372, 420802104, 420802, '马河镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13373, 420802001, 420802, '龙泉街道', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13374, 420804, 420800, '掇刀区', 2, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13375, 420804003, 420804, '兴隆街道', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13376, 420804004, 420804, '双喜街道', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13377, 420804100, 420804, '团林铺镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13378, 420804001, 420804, '掇刀石街道', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13379, 420804002, 420804, '白庙街道', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13380, 420804101, 420804, '麻城镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13381, 420821, 420800, '京山市', 2, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13382, 420882106, 420821, '三阳镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13383, 420882453, 420821, '何集街道', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13384, 420882105, 420821, '坪坝镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13385, 420882450, 420821, '太子山', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13386, 420882109, 420821, '孙桥镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13387, 420882104, 420821, '宋河镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13388, 420882100, 420821, '新市街道', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13389, 420882455, 420821, '易家岭街道', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13390, 420882102, 420821, '曹武镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13391, 420882108, 420821, '杨集镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13392, 420882101, 420821, '永兴街道', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13393, 420882111, 420821, '永隆镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13394, 420882449, 420821, '温泉街道', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13395, 420882110, 420821, '石龙镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13396, 420882107, 420821, '绿林镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13397, 420882103, 420821, '罗店镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13398, 420882113, 420821, '钱场镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13399, 420882452, 420821, '长滩街道', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13400, 420882112, 420821, '雁门口镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13401, 420822, 420800, '沙洋县', 2, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13402, 420822101, 420822, '五里铺镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13403, 420822112, 420822, '十里铺镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13404, 420822103, 420822, '后港镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13405, 420822109, 420822, '官垱镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13406, 420822105, 420822, '拾回桥镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13407, 420822104, 420822, '曾集镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13408, 420822110, 420822, '李市镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13409, 420822111, 420822, '毛李镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13410, 420822106, 420822, '沈集镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13411, 420822100, 420822, '沙洋镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13412, 420822102, 420822, '纪山镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13413, 420822108, 420822, '马良镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13414, 420822107, 420822, '高阳镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13415, 420881, 420800, '钟祥市', 2, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13416, 420881112, 420881, '东桥镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13417, 420881102, 420881, '丰乐镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13418, 420881115, 420881, '九里乡', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13419, 420881107, 420881, '冷水镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13420, 420881104, 420881, '双河镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13421, 420881113, 420881, '客店镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13422, 420881114, 420881, '张集镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13423, 420881106, 420881, '文集镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13424, 420881109, 420881, '旧口镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13425, 420881110, 420881, '柴湖镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13426, 420881100, 420881, '洋梓镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13427, 420881108, 420881, '石牌镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13428, 420881105, 420881, '磷矿镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13429, 420881103, 420881, '胡集镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13430, 420881001, 420881, '郢中街道', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13431, 420881101, 420881, '长寿镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13432, 420881111, 420881, '长滩镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13433, 421000, 42, '荆州市', 1, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13434, 421022, 421000, '公安县', 2, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13435, 421022109, 421022, '南平镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13436, 421022101, 421022, '埠河镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13437, 421022102, 421022, '夹竹园镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13438, 421022108, 421022, '孟家溪镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13439, 421022112, 421022, '斑竹垱镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13440, 421022100, 421022, '斗湖堤镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13441, 421022104, 421022, '杨家厂镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13442, 421022113, 421022, '毛家港镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13443, 421022111, 421022, '狮子口镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13444, 421022200, 421022, '甘家厂乡', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13445, 421022110, 421022, '章庄铺镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13446, 421022201, 421022, '章田寺乡', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13447, 421022106, 421022, '藕池镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13448, 421022103, 421022, '闸口镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13449, 421022105, 421022, '麻豪口镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13450, 421022107, 421022, '黄山头镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13451, 421083, 421000, '洪湖市', 2, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13452, 421083111, 421083, '万全镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13453, 421083101, 421083, '乌林镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13454, 421083402, 421083, '大同湖管理区', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13455, 421083401, 421083, '大沙湖管理区', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13456, 421083400, 421083, '小港管理区', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13457, 421083105, 421083, '峰口镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13458, 421083107, 421083, '府场镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13459, 421083108, 421083, '戴家场镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13460, 421083001, 421083, '新堤街道', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13461, 421083104, 421083, '新滩镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13462, 421083106, 421083, '曹市镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13463, 421083112, 421083, '汊河镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13464, 421083110, 421083, '沙口镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13465, 421083002, 421083, '滨湖街道', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13466, 421083103, 421083, '燕窝镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13467, 421083109, 421083, '瞿家湾镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13468, 421083200, 421083, '老湾回族乡', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13469, 421083100, 421083, '螺山镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13470, 421083113, 421083, '黄家口镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13471, 421083102, 421083, '龙口镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13472, 421024, 421000, '江陵县', 2, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13473, 421024500, 421024, '三湖管理区', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13474, 421024105, 421024, '普济镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13475, 421024104, 421024, '沙岗镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13476, 421024101, 421024, '滩桥镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13477, 421024102, 421024, '熊河镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13478, 421024103, 421024, '白马寺镇', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13479, 421024201, 421024, '秦市乡', 3, '2022-03-28 15:28:25', '2022-03-28 15:28:25', NULL); +INSERT INTO `address` VALUES (13480, 421024100, 421024, '资市镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13481, 421024106, 421024, '郝穴镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13482, 421024200, 421024, '马家寨乡', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13483, 421023, 421000, '监利市', 2, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13484, 421023116, 421023, '三洲镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13485, 421023111, 421023, '上车湾镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13486, 421023108, 421023, '分盐镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13487, 421023104, 421023, '周老嘴镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13488, 421023100, 421023, '容城镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13489, 421023113, 421023, '尺八镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13490, 421023102, 421023, '新沟镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13491, 421023101, 421023, '朱河镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13492, 421023202, 421023, '柘木乡', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13493, 421023117, 421023, '桥市镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13494, 421023201, 421023, '棋盘乡', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13495, 421023109, 421023, '毛市镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13496, 421023106, 421023, '汪桥镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13497, 421023112, 421023, '汴河镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13498, 421023114, 421023, '白螺镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13499, 421023110, 421023, '福田寺镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13500, 421023107, 421023, '程集镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13501, 421023200, 421023, '红城乡', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13502, 421023115, 421023, '网市镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13503, 421023105, 421023, '黄歇口镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13504, 421023103, 421023, '龚场镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13505, 421003, 421000, '荆州区', 2, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13506, 421003002, 421003, '东城街道', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13507, 421003103, 421003, '八岭山镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13508, 421003003, 421003, '城南街道', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13509, 421003450, 421003, '太湖港管理区', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13510, 421003101, 421003, '川店镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13511, 421003105, 421003, '弥市镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13512, 421003104, 421003, '李埠镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13513, 421003100, 421003, '纪南镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13514, 421003001, 421003, '西城街道', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13515, 421003106, 421003, '郢城镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13516, 421003102, 421003, '马山镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13517, 421002, 421000, '沙市区', 2, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13518, 421002001, 421002, '中山路街道', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13519, 421002103, 421002, '关沮镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13520, 421002101, 421002, '岑河镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13521, 421002002, 421002, '崇文街街道', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13522, 421002005, 421002, '朝阳路街道', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13523, 421002501, 421002, '沙市农场', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13524, 421002200, 421002, '立新街道', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13525, 421002006, 421002, '联合街道', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13526, 421002004, 421002, '胜利街道', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13527, 421002102, 421002, '观音垱镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13528, 421002003, 421002, '解放路街道', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13529, 421002100, 421002, '锣场镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13530, 421081, 421000, '石首市', 2, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13531, 421081106, 421081, '东升镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13532, 421081200, 421081, '久合垸乡', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13533, 421081108, 421081, '南口镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13534, 421081110, 421081, '团山寺镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13535, 421081102, 421081, '大垸镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13536, 421081500, 421081, '天鹅洲经济开发区', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13537, 421081103, 421081, '小河口镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13538, 421081100, 421081, '新厂镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13539, 421081104, 421081, '桃花山镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13540, 421081101, 421081, '横沟市镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13541, 421081002, 421081, '笔架山街道', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13542, 421081001, 421081, '绣林街道', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13543, 421081105, 421081, '调关镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13544, 421081107, 421081, '高基庙镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13545, 421081109, 421081, '高陵镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13546, 421087, 421000, '松滋市', 2, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13547, 421087200, 421087, '万家乡', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13548, 421087102, 421087, '八宝镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13549, 421087112, 421087, '刘家场镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13550, 421087101, 421087, '南海镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13551, 421087201, 421087, '卸甲坪土家族乡', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13552, 421087107, 421087, '斯家场镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13553, 421087100, 421087, '新江口镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13554, 421087108, 421087, '杨林市镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13555, 421087113, 421087, '沙道观镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13556, 421087111, 421087, '洈水镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13557, 421087103, 421087, '涴市镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13558, 421087106, 421087, '王家桥镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13559, 421087109, 421087, '纸厂河镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13560, 421087104, 421087, '老城镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13561, 421087110, 421087, '街河市镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13562, 421087105, 421087, '陈店镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13563, 429005, 429005, '潜江市', 2, '2022-03-28 15:28:26', '2022-03-29 10:36:10', NULL); +INSERT INTO `address` VALUES (13564, 429005019, 429005, '后湖管理区', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13565, 429005004, 429005, '周矶办事处', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13566, 429005022, 429005, '周矶管理区', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13567, 429005001, 429005, '园林办事处', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13568, 429005003, 429005, '广华办事处', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13569, 429005012, 429005, '张金镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13570, 429005005, 429005, '杨市办事处', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13571, 429005006, 429005, '泰丰办事处', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13572, 429005013, 429005, '浩口镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13573, 429005009, 429005, '渔洋镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13574, 429005020, 429005, '潜江市总口管理区', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13575, 429005002, 429005, '潜江经济开发区', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13576, 429005023, 429005, '熊口管理区', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13577, 429005014, 429005, '熊口镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13578, 429005016, 429005, '王场镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13579, 429005024, 429005, '白鹭湖管理区', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13580, 429005015, 429005, '积玉口镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13581, 429005008, 429005, '竹根滩镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13582, 429005010, 429005, '老新镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13583, 429005021, 429005, '运粮湖管理区', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13584, 429005007, 429005, '高场街道', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13585, 429005017, 429005, '高石碑镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13586, 429005011, 429005, '龙湾镇', 3, '2022-03-28 15:28:26', '2022-03-28 15:28:26', NULL); +INSERT INTO `address` VALUES (13587, 429021, 429021, '神农架林区', 2, '2022-03-28 15:28:26', '2022-03-29 10:36:10', NULL); +INSERT INTO `address` VALUES (13588, 429021203, 429021, '下谷坪土家族乡', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13589, 429021105, 429021, '九湖镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13590, 429021201, 429021, '宋洛乡', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13591, 429021104, 429021, '新华镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13592, 429021103, 429021, '木鱼镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13593, 429021100, 429021, '松柏镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13594, 429021102, 429021, '红坪镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13595, 429021101, 429021, '阳日镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13596, 420300, 42, '十堰市', 1, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13597, 420381, 420300, '丹江口市', 2, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13598, 420381103, 420381, '丁家营镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13599, 420381004, 420381, '三官殿街道', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13600, 420381099, 420381, '丹江口市城区', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13601, 420381003, 420381, '丹赵路街道', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13602, 420381107, 420381, '习家店镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13603, 420381100, 420381, '六里坪镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13604, 420381110, 420381, '凉水河镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13605, 420381106, 420381, '土关垭镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13606, 420381101, 420381, '均县镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13607, 420381001, 420381, '均州路街道', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13608, 420381002, 420381, '大坝路街道', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13609, 420381403, 420381, '大沟林业开发管理区', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13610, 420381102, 420381, '官山镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13611, 420381400, 420381, '新港经济开发管理处', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13612, 420381005, 420381, '武当山街道', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13613, 420381104, 420381, '浪河镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13614, 420381401, 420381, '牛河林业开发管理区', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13615, 420381402, 420381, '白杨坪林业开发管理区', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13616, 420381105, 420381, '盐池河镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13617, 420381109, 420381, '石鼓镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13618, 420381108, 420381, '蒿坪镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13619, 420381111, 420381, '龙山镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13620, 420325, 420300, '房县', 2, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13621, 420325206, 420325, '万峪河乡', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13622, 420325208, 420325, '上龛乡', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13623, 420325209, 420325, '中坝乡', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13624, 420325207, 420325, '九道乡', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13625, 420325212, 420325, '五台乡', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13626, 420325101, 420325, '军店镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13627, 420325102, 420325, '化龙堰镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13628, 420325502, 420325, '国营九口山林场', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13629, 420325106, 420325, '土城镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13630, 420325100, 420325, '城关镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13631, 420325104, 420325, '大木厂镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13632, 420325210, 420325, '姚坪乡', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13633, 420325110, 420325, '尹吉甫镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13634, 420325506, 420325, '房县园艺场', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13635, 420325501, 420325, '杨岔山林场', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13636, 420325205, 420325, '沙河乡', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13637, 420325108, 420325, '白鹤镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13638, 420325111, 420325, '窑淮镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13639, 420325109, 420325, '红塔镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13640, 420325107, 420325, '野人谷镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13641, 420325103, 420325, '门古寺镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13642, 420325105, 420325, '青峰镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13643, 420302, 420300, '茅箭区', 2, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13644, 420302002, 420302, '二堰街道', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13645, 420302001, 420302, '五堰街道', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13646, 420302006, 420302, '大川镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13647, 420302008, 420302, '小川乡', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13648, 420302003, 420302, '武当路街道', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13649, 420302004, 420302, '白浪街道', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13650, 420302007, 420302, '茅塔乡', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13651, 420302009, 420302, '鸳鸯乡', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13652, 420322, 420300, '郧西县', 2, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13653, 420322401, 420322, '三官洞林区', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13654, 420322102, 420322, '上津镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13655, 420322205, 420322, '六郎乡', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13656, 420322202, 420322, '关防乡', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13657, 420322101, 420322, '土门镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13658, 420322100, 420322, '城关镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13659, 420322104, 420322, '夹河镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13660, 420322200, 420322, '安家乡', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13661, 420322103, 420322, '店子镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13662, 420322204, 420322, '景阳乡', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13663, 420322400, 420322, '槐树林特场', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13664, 420322108, 420322, '河夹镇', 3, '2022-03-28 15:28:27', '2022-03-28 15:28:27', NULL); +INSERT INTO `address` VALUES (13665, 420322206, 420322, '涧池乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13666, 420322203, 420322, '湖北口回族乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13667, 420322105, 420322, '羊尾镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13668, 420322106, 420322, '观音镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13669, 420322201, 420322, '香口乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13670, 420322107, 420322, '马安镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13671, 420304, 420300, '郧阳区', 2, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13672, 420304200, 420304, '五峰乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13673, 420304107, 420304, '刘洞镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13674, 420304109, 420304, '南化塘镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13675, 420304202, 420304, '叶大乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13676, 420304100, 420304, '城关镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13677, 420304201, 420304, '大柳乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13678, 420304102, 420304, '安阳镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13679, 420304101, 420304, '杨溪铺镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13680, 420304110, 420304, '柳陂镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13681, 420304106, 420304, '梅铺镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13682, 420304104, 420304, '白桑关镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13683, 420304108, 420304, '白浪镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13684, 420304400, 420304, '红岩背林场', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13685, 420304113, 420304, '胡家营镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13686, 420304115, 420304, '谭家湾镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13687, 420304105, 420304, '谭山镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13688, 420304111, 420304, '郧县经济开发区', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13689, 420304114, 420304, '青山镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13690, 420304103, 420304, '青曲镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13691, 420304112, 420304, '鲍峡镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13692, 420303, 420300, '张湾区', 2, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13693, 420303201, 420303, '方滩乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13694, 420303101, 420303, '柏林镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13695, 420303001, 420303, '汉江路街道', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13696, 420303003, 420303, '红卫街道', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13697, 420303004, 420303, '花果街道', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13698, 420303400, 420303, '西城开发区', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13699, 420303200, 420303, '西沟乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13700, 420303002, 420303, '车城路街道', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13701, 420303100, 420303, '黄龙镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13702, 420323, 420300, '竹山县', 2, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13703, 420323107, 420323, '上庸镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13704, 420323202, 420323, '双台乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13705, 420323100, 420323, '城关镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13706, 420323201, 420323, '大庙乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13707, 420323108, 420323, '官渡镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13708, 420323103, 420323, '宝丰镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13709, 420323106, 420323, '得胜镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13710, 420323104, 420323, '擂鼓镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13711, 420323204, 420323, '文峰乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13712, 420323206, 420323, '柳林乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13713, 420323203, 420323, '楼台乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13714, 420323205, 420323, '深河乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13715, 420323101, 420323, '溢水镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13716, 420323207, 420323, '潘口乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13717, 420323105, 420323, '秦古镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13718, 420323200, 420323, '竹坪乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13719, 420323102, 420323, '麻家渡镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13720, 420324, 420300, '竹溪县', 2, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13721, 420324102, 420324, '中峰镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13722, 420324105, 420324, '丰溪镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13723, 420324109, 420324, '兵营镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13724, 420324104, 420324, '县河镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13725, 420324207, 420324, '向坝乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13726, 420324100, 420324, '城关镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13727, 420324205, 420324, '天宝乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13728, 420324201, 420324, '新洲镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13729, 420324206, 420324, '桃源乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13730, 420324103, 420324, '水坪镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13731, 420324108, 420324, '汇湾镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13732, 420324106, 420324, '泉溪镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13733, 420324101, 420324, '蒋家堰镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13734, 420324203, 420324, '鄂坪乡', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13735, 420324107, 420324, '龙坝镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13736, 421300, 42, '随州市', 1, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13737, 421381, 421300, '广水市', 2, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13738, 421381019, 421381, '三潭风景区', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13739, 421381018, 421381, '中华山林场', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13740, 421381009, 421381, '余店镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13741, 421381010, 421381, '关庙镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13742, 421381002, 421381, '十里街道', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13743, 421381011, 421381, '吴店镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13744, 421381015, 421381, '城郊街道', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13745, 421381014, 421381, '太平镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13746, 421381003, 421381, '广水街道', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13747, 421381001, 421381, '应山街道', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13748, 421381016, 421381, '李店镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13749, 421381005, 421381, '杨寨镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13750, 421381004, 421381, '武胜关镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13751, 421381013, 421381, '蔡河镇', 3, '2022-03-28 15:28:28', '2022-03-28 15:28:28', NULL); +INSERT INTO `address` VALUES (13752, 421381012, 421381, '郝店镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13753, 421381007, 421381, '长岭镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13754, 421381006, 421381, '陈巷镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13755, 421381008, 421381, '马坪镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13756, 421381017, 421381, '骆店镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13757, 421321, 421300, '随县', 2, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13758, 421321106, 421321, '万和镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13759, 421321118, 421321, '万福镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13760, 421321115, 421321, '三里岗镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13761, 421321100, 421321, '厉山镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13762, 421321107, 421321, '吴山镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13763, 421321108, 421321, '唐县镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13764, 421321117, 421321, '均川镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13765, 421321110, 421321, '安居镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13766, 421321104, 421321, '小林镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13767, 421321109, 421321, '尚市镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13768, 421321111, 421321, '新街镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13769, 421321116, 421321, '柳林镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13770, 421321102, 421321, '殷店镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13771, 421321113, 421321, '洪山镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13772, 421321105, 421321, '淮河镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13773, 421321112, 421321, '环潭镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13774, 421321103, 421321, '草店镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13775, 421321114, 421321, '长岗镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13776, 421321101, 421321, '高城镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13777, 421303, 421300, '曾都区', 2, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13778, 421303101, 421303, '万店镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13779, 421303002, 421303, '东城街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13780, 421303120, 421303, '何店镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13781, 421303004, 421303, '北郊街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13782, 421303003, 421303, '南郊街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13783, 421303005, 421303, '城南新区', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13784, 421303122, 421303, '府河镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13785, 421303499, 421303, '曾都区新型工业基地', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13786, 421303123, 421303, '洛阳镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13787, 421303100, 421303, '淅河镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13788, 421303001, 421303, '西城街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13789, 421303587, 421303, '随州经济技术开发区', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13790, 429006, 429006, '天门市', 2, '2022-03-28 15:28:29', '2022-03-29 10:36:10', NULL); +INSERT INTO `address` VALUES (13791, 429006115, 429006, '九真镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13792, 429006119, 429006, '佛子山镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13793, 429006003, 429006, '侨乡街道开发区', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13794, 429006200, 429006, '净潭乡', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13795, 429006113, 429006, '卢市镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13796, 429006100, 429006, '多宝镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13797, 429006110, 429006, '多祥镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13798, 429006114, 429006, '小板镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13799, 429006120, 429006, '岳口镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13800, 429006111, 429006, '干驿镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13801, 429006102, 429006, '张港镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13802, 429006108, 429006, '彭市镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13803, 429006101, 429006, '拖市镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13804, 429006004, 429006, '杨林街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13805, 429006107, 429006, '横林镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13806, 429006104, 429006, '汪场镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13807, 429006402, 429006, '沉湖管委会', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13808, 429006105, 429006, '渔薪镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13809, 429006116, 429006, '皂市镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13810, 429006118, 429006, '石家河镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13811, 429006001, 429006, '竟陵街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13812, 429006117, 429006, '胡市镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13813, 429006103, 429006, '蒋场镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13814, 429006112, 429006, '马湾镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13815, 429006109, 429006, '麻洋镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13816, 429006106, 429006, '黄潭镇', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13817, 420100, 42, '武汉市', 1, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13818, 420114, 420100, '蔡甸区', 2, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13819, 420114404, 420114, '中法武汉生态示范城', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13820, 420114003, 420114, '侏儒山街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13821, 420114406, 420114, '侏儒山街道成功片区', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13822, 420114401, 420114, '侏儒山街道洪北片区', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13823, 420114008, 420114, '军山街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13824, 420114006, 420114, '大集街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13825, 420114005, 420114, '奓山街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13826, 420114002, 420114, '张湾街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13827, 420114400, 420114, '桐湖办事处', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13828, 420114004, 420114, '永安街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13829, 420114007, 420114, '沌口街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13830, 420114009, 420114, '沌阳街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13831, 420114200, 420114, '消泗乡', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13832, 420114102, 420114, '玉贤街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13833, 420114101, 420114, '索河街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13834, 420114402, 420114, '蔡甸经济开发区', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13835, 420114001, 420114, '蔡甸街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13836, 420112, 420100, '东西湖区', 2, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13837, 420112009, 420112, '东山街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13838, 420112001, 420112, '吴家山街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13839, 420112008, 420112, '将军路街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13840, 420112013, 420112, '常青花园新区街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13841, 420112006, 420112, '径河街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13842, 420112005, 420112, '慈惠街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13843, 420112003, 420112, '新沟镇街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13844, 420112010, 420112, '柏泉街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13845, 420112002, 420112, '走马岭街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13846, 420112011, 420112, '辛安渡街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13847, 420112007, 420112, '金银湖街道', 3, '2022-03-28 15:28:29', '2022-03-28 15:28:29', NULL); +INSERT INTO `address` VALUES (13848, 420112004, 420112, '长青街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13849, 420113, 420100, '汉南区', 2, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13850, 420113003, 420113, '东荆街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13851, 420113002, 420113, '湘口街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13852, 420113001, 420113, '纱帽街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13853, 420113100, 420113, '邓南街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13854, 420105, 420100, '汉阳区', 2, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13855, 420105007, 420105, '五里墩街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13856, 420105012, 420105, '四新街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13857, 420105003, 420105, '建桥街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13858, 420105400, 420105, '晴川街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13859, 420105010, 420105, '永丰街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13860, 420105011, 420105, '江堤街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13861, 420105009, 420105, '江汉二桥街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13862, 420105006, 420105, '洲头街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13863, 420105008, 420105, '琴断口街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13864, 420105005, 420105, '鹦鹉街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13865, 420105402, 420105, '龙阳街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13866, 420111, 420100, '洪山区', 2, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13867, 420111005, 420111, '东湖风景区街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13868, 420111011, 420111, '九峰街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13869, 420111013, 420111, '八吉府街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13870, 420111012, 420111, '关东街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13871, 420111001, 420111, '关山街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13872, 420111009, 420111, '卓刀泉街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13873, 420111007, 420111, '和平街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13874, 420111017, 420111, '天兴乡', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13875, 420111010, 420111, '左岭街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13876, 420111004, 420111, '张家湾街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13877, 420111006, 420111, '梨园街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13878, 420111008, 420111, '洪山街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13879, 420111018, 420111, '清潭湖街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13880, 420111003, 420111, '狮子山街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13881, 420111002, 420111, '珞南街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13882, 420111015, 420111, '花山街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13883, 420111016, 420111, '青菱街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13884, 420116, 420100, '黄陂区', 2, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13885, 420116014, 420116, '三里桥街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13886, 420116007, 420116, '六指街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13887, 420116001, 420116, '前川街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13888, 420116018, 420116, '大潭办事处', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13889, 420116006, 420116, '天河街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13890, 420116013, 420116, '姚家集街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13891, 420116016, 420116, '木兰乡', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13892, 420116017, 420116, '木兰山风景区', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13893, 420116011, 420116, '李家集街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13894, 420116002, 420116, '横店街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13895, 420116008, 420116, '武湖街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13896, 420116004, 420116, '滠口街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13897, 420116009, 420116, '王家河街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13898, 420116019, 420116, '盘龙城经济开发区', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13899, 420116003, 420116, '祁家湾街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13900, 420116005, 420116, '罗汉寺街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13901, 420116012, 420116, '蔡家榨街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13902, 420116015, 420116, '蔡店街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13903, 420116010, 420116, '长轩岭街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13904, 420102, 420100, '江岸区', 2, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13905, 420102004, 420102, '一元街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13906, 420102014, 420102, '丹水池街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13907, 420102019, 420102, '二七街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13908, 420102011, 420102, '劳动街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13909, 420102010, 420102, '台北街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13910, 420102016, 420102, '后湖街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13911, 420102006, 420102, '四唯街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13912, 420102018, 420102, '塔子湖街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13913, 420102002, 420102, '大智街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13914, 420102013, 420102, '新村街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13915, 420102005, 420102, '永清街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13916, 420102007, 420102, '球场街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13917, 420102400, 420102, '百步亭花园', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13918, 420102009, 420102, '花桥街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13919, 420102008, 420102, '西马街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13920, 420102015, 420102, '谌家矶街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13921, 420102003, 420102, '车站街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13922, 420103, 420100, '江汉区', 2, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13923, 420103006, 420103, '万松街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13924, 420103003, 420103, '前进街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13925, 420103008, 420103, '北湖街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13926, 420103011, 420103, '唐家墩街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13927, 420103012, 420103, '常青街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13928, 420103007, 420103, '新华街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13929, 420103005, 420103, '民意街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13930, 420103001, 420103, '民族街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13931, 420103004, 420103, '民权街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13932, 420103010, 420103, '水塔街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13933, 420103013, 420103, '汉兴街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13934, 420103002, 420103, '满春街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13935, 420103009, 420103, '花楼街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13936, 420115, 420100, '江夏区', 2, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13937, 420115005, 420115, '乌龙泉街道', 3, '2022-03-28 15:28:30', '2022-03-28 15:28:30', NULL); +INSERT INTO `address` VALUES (13938, 420115006, 420115, '五里界街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13939, 420115013, 420115, '佛祖岭街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13940, 420115007, 420115, '安山街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13941, 420115008, 420115, '山坡街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13942, 420115016, 420115, '江夏区经济开发区庙山街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13943, 420115019, 420115, '江夏区经济开发区梁子湖风景区办事处', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13944, 420115017, 420115, '江夏区经济开发区藏龙岛街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13945, 420115018, 420115, '江夏经济开发区大桥新区街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13946, 420115011, 420115, '法泗街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13947, 420115012, 420115, '湖泗街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13948, 420115014, 420115, '滨湖街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13949, 420115001, 420115, '纸坊街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13950, 420115015, 420115, '舒安街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13951, 420115010, 420115, '豹澥街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13952, 420115003, 420115, '郑店街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13953, 420115004, 420115, '金口街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13954, 420115020, 420115, '金港新区街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13955, 420115002, 420115, '龙泉街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13956, 420104, 420100, '硚口区', 2, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13957, 420104008, 420104, '六角亭街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13958, 420104002, 420104, '古田街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13959, 420104004, 420104, '宗关街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13960, 420104006, 420104, '宝丰街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13961, 420104001, 420104, '易家街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13962, 420104009, 420104, '汉中街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13963, 420104010, 420104, '汉正街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13964, 420104005, 420104, '汉水桥街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13965, 420104007, 420104, '荣华街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13966, 420104011, 420104, '长丰街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13967, 420104003, 420104, '韩家墩街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13968, 420107, 420100, '青山区', 2, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13969, 420107003, 420107, '冶金街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13970, 420107405, 420107, '北湖工业园管理办公室', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13971, 420107008, 420107, '厂前街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13972, 420107006, 420107, '工人村街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13973, 420107004, 420107, '新沟桥街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13974, 420107009, 420107, '武东街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13975, 420107010, 420107, '白玉山街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13976, 420107001, 420107, '红卫路街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13977, 420107005, 420107, '红钢城街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13978, 420107002, 420107, '钢花村街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13979, 420107406, 420107, '钢都花园管理委员会', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13980, 420107007, 420107, '青山镇街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13981, 420106, 420100, '武昌区', 2, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13982, 420106092, 420106, '东湖风景区街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13983, 420106005, 420106, '中华路街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13984, 420106011, 420106, '中南路街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13985, 420106094, 420106, '南湖街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13986, 420106002, 420106, '徐家棚街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13987, 420106001, 420106, '杨园街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13988, 420106012, 420106, '水果湖街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13989, 420106013, 420106, '珞珈山街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13990, 420106009, 420106, '白沙洲街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13991, 420106004, 420106, '积玉桥街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13992, 420106006, 420106, '粮道街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13993, 420106008, 420106, '紫阳街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13994, 420106010, 420106, '首义路街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13995, 420106007, 420106, '黄鹤楼街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13996, 420117, 420100, '新洲区', 2, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13997, 420117005, 420117, '三店街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13998, 420117003, 420117, '仓埠街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (13999, 420117202, 420117, '凤凰镇', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (14000, 420117009, 420117, '双柳街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (14001, 420117201, 420117, '徐古街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (14002, 420117008, 420117, '旧街街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (14003, 420117004, 420117, '李集街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (14004, 420117006, 420117, '汪集街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (14005, 420117010, 420117, '涨渡湖街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (14006, 420117007, 420117, '潘塘街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (14007, 420117200, 420117, '辛冲街道', 3, '2022-03-28 15:28:31', '2022-03-28 15:28:31', NULL); +INSERT INTO `address` VALUES (14008, 420117400, 420117, '道观河风景旅游管理处', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14009, 420117001, 420117, '邾城街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14010, 420117405, 420117, '阳逻开发区', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14011, 420117002, 420117, '阳逻街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14012, 420600, 42, '襄阳市', 1, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14013, 420626, 420600, '保康县', 2, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14014, 420626200, 420626, '两峪乡', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14015, 420626102, 420626, '后坪镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14016, 420626100, 420626, '城关镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14017, 420626109, 420626, '寺坪镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14018, 420626105, 420626, '店垭镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14019, 420626107, 420626, '歇马镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14020, 420626110, 420626, '过渡湾镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14021, 420626108, 420626, '马桥镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14022, 420626106, 420626, '马良镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14023, 420626101, 420626, '黄堡镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14024, 420626103, 420626, '龙坪镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14025, 420606, 420600, '樊城区', 2, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14026, 420606009, 420606, '七里河街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14027, 420606006, 420606, '中原街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14028, 420606101, 420606, '团山镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14029, 420606103, 420606, '太平店镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14030, 420606007, 420606, '定中门街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14031, 420606001, 420606, '屏襄门街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14032, 420606008, 420606, '柿铺街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14033, 420606005, 420606, '汉江街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14034, 420606003, 420606, '清河口街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14035, 420606100, 420606, '牛首镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14036, 420606004, 420606, '王寨街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14037, 420606002, 420606, '米公街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14038, 420606102, 420606, '紫贞街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14039, 420606400, 420606, '经济开发区', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14040, 420625, 420600, '谷城县', 2, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14041, 420625105, 420625, '五山镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14042, 420625103, 420625, '冷集镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14043, 420625107, 420625, '南河镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14044, 420625100, 420625, '城关镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14045, 420625104, 420625, '庙滩镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14046, 420625102, 420625, '盛康镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14047, 420625101, 420625, '石花镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14048, 420625106, 420625, '紫金镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14049, 420625108, 420625, '茨河镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14050, 420625500, 420625, '薤山林场', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14051, 420625109, 420625, '赵湾乡', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14052, 420682, 420600, '老河口市', 2, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14053, 420682100, 420682, '仙人渡镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14054, 420682003, 420682, '光化街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14055, 420682102, 420682, '孟楼镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14056, 420682101, 420682, '张集镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14057, 420682106, 420682, '李楼镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14058, 420682105, 420682, '洪山嘴镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14059, 420682103, 420682, '竹林桥镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14060, 420682104, 420682, '薛集镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14061, 420682200, 420682, '袁冲乡', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14062, 420682002, 420682, '酂阳街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14063, 420624, 420600, '南漳县', 2, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14064, 420624104, 420624, '东巩镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14065, 420624102, 420624, '九集镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14066, 420624100, 420624, '城关镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14067, 420624105, 420624, '巡检镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14068, 420624109, 420624, '李庙镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14069, 420624106, 420624, '板桥镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14070, 420624101, 420624, '武安镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14071, 420624500, 420624, '清河管理区', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14072, 420624103, 420624, '肖堰镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14073, 420624107, 420624, '薛坪镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14074, 420624108, 420624, '长坪镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14075, 420602, 420600, '襄城区', 2, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14076, 420602007, 420602, '余家湖街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14077, 420602006, 420602, '卧龙镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14078, 420602010, 420602, '古城街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14079, 420602009, 420602, '尹集乡', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14080, 420602003, 420602, '庞公街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14081, 420602004, 420602, '檀溪街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14082, 420602008, 420602, '欧庙镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14083, 420602011, 420602, '真武山街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14084, 420602005, 420602, '隆中街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14085, 420607, 420600, '襄州区', 2, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14086, 420607112, 420607, '东津镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14087, 420607104, 420607, '伙牌镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14088, 420607573, 420607, '六两河街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14089, 420607002, 420607, '刘集街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14090, 420607108, 420607, '双沟镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14091, 420607105, 420607, '古驿镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14092, 420607111, 420607, '峪山镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14093, 420607109, 420607, '张家集镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14094, 420607001, 420607, '张湾街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14095, 420607106, 420607, '朱集镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14096, 420607570, 420607, '湖北深圳工业园', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14097, 420607102, 420607, '石桥镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14098, 420607107, 420607, '程河镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14099, 420607113, 420607, '米庄镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14100, 420607572, 420607, '肖湾街道', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14101, 420607103, 420607, '黄集镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14102, 420607110, 420607, '黄龙镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14103, 420607101, 420607, '龙王镇', 3, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14104, 420684, 420600, '宜城市', 2, '2022-03-28 15:28:32', '2022-03-28 15:28:32', NULL); +INSERT INTO `address` VALUES (14105, 420684101, 420684, '刘猴镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14106, 420684002, 420684, '南营街道', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14107, 420684102, 420684, '孔湾镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14108, 420684100, 420684, '小河镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14109, 420684106, 420684, '板桥店镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14110, 420684105, 420684, '流水镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14111, 420684104, 420684, '王集镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14112, 420684103, 420684, '郑集镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14113, 420684001, 420684, '鄢城街道', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14114, 420684107, 420684, '雷河镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14115, 420683, 420600, '枣阳市', 2, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14116, 420683101, 420683, '七方镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14117, 420683109, 420683, '兴隆镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14118, 420683105, 420683, '刘升镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14119, 420683001, 420683, '北城街道', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14120, 420683002, 420683, '南城街道', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14121, 420683106, 420683, '吴店镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14122, 420683102, 420683, '太平镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14123, 420683111, 420683, '平林镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14124, 420683104, 420683, '新市镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14125, 420683100, 420683, '杨垱镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14126, 420683107, 420683, '熊集镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14127, 420683108, 420683, '王城镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14128, 420683003, 420683, '环城街道', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14129, 420683110, 420683, '琚湾镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14130, 420683401, 420683, '车河农场', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14131, 420683500, 420683, '随阳农场', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14132, 420683103, 420683, '鹿头镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14133, 421200, 42, '咸宁市', 1, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14134, 421281, 421200, '赤壁市', 2, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14135, 421281104, 421281, '中伙铺镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14136, 421281200, 421281, '余家桥乡', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14137, 421281401, 421281, '官塘驿林场', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14138, 421281105, 421281, '官塘驿镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14139, 421281101, 421281, '新店镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14140, 421281106, 421281, '柳山湖镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14141, 421281107, 421281, '神山镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14142, 421281103, 421281, '茶庵岭镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14143, 421281003, 421281, '蒲圻街道', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14144, 421281102, 421281, '赤壁镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14145, 421281001, 421281, '赤马港街道', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14146, 421281100, 421281, '赵李桥镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14147, 421281108, 421281, '车埠镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14148, 421281002, 421281, '陆水湖街道', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14149, 421281110, 421281, '黄盖湖镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14150, 421223, 421200, '崇阳县', 2, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14151, 421223100, 421223, '天城镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14152, 421223102, 421223, '桂花泉镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14153, 421223107, 421223, '沙坪镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14154, 421223202, 421223, '港口乡', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14155, 421223103, 421223, '白霓镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14156, 421223101, 421223, '石城镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14157, 421223200, 421223, '肖岭乡', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14158, 421223106, 421223, '路口镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14159, 421223105, 421223, '金塘镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14160, 421223201, 421223, '铜钟乡', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14161, 421223104, 421223, '青山镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14162, 421223203, 421223, '高枧乡', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14163, 421221, 421200, '嘉鱼县', 2, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14164, 421221450, 421221, '头墩农场', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14165, 421221103, 421221, '官桥镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14166, 421221104, 421221, '新街镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14167, 421221106, 421221, '渡普镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14168, 421221105, 421221, '潘家湾镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14169, 421221107, 421221, '簰洲湾镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14170, 421221101, 421221, '陆溪镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14171, 421221102, 421221, '高铁岭镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14172, 421221100, 421221, '鱼岳镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14173, 421222, 421200, '通城县', 2, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14174, 421222103, 421222, '五里镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14175, 421222105, 421222, '关刀镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14176, 421222102, 421222, '北港镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14177, 421222200, 421222, '四庄乡', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14178, 421222107, 421222, '塘湖镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14179, 421222201, 421222, '大坪乡', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14180, 421222108, 421222, '沙堆镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14181, 421222101, 421222, '石南镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14182, 421222100, 421222, '隽水镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14183, 421222104, 421222, '马港镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14184, 421222500, 421222, '鹿角山林场', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14185, 421222106, 421222, '麦市镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14186, 421224, 421200, '通山县', 2, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14187, 421224450, 421224, '九宫山自然保护管理局', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14188, 421224104, 421224, '九宫山镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14189, 421224101, 421224, '南林桥镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14190, 421224102, 421224, '厦铺镇', 3, '2022-03-28 15:28:33', '2022-03-28 15:28:33', NULL); +INSERT INTO `address` VALUES (14191, 421224106, 421224, '大畈镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14192, 421224200, 421224, '大路乡', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14193, 421224203, 421224, '慈口乡', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14194, 421224201, 421224, '杨芳林乡', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14195, 421224105, 421224, '洪港镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14196, 421224202, 421224, '燕厦乡', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14197, 421224100, 421224, '通羊镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14198, 421224103, 421224, '闯王镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14199, 421224107, 421224, '黄沙铺镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14200, 421202, 421200, '咸安区', 2, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14201, 421202101, 421202, '双溪桥镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14202, 421202108, 421202, '向阳湖镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14203, 421202570, 421202, '咸宁经济开发区', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14204, 421202200, 421202, '大幕乡', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14205, 421202107, 421202, '官埠桥镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14206, 421202102, 421202, '桂花镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14207, 421202105, 421202, '横沟桥镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14208, 421202002, 421202, '永安街道', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14209, 421202100, 421202, '汀泗桥镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14210, 421202001, 421202, '浮山街道', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14211, 421202003, 421202, '温泉街道', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14212, 421202106, 421202, '贺胜桥镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14213, 421202103, 421202, '马桥镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14214, 421202104, 421202, '高桥镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14215, 429004, 429004, '仙桃市', 2, '2022-03-28 15:28:34', '2022-03-29 10:36:11', NULL); +INSERT INTO `address` VALUES (14216, 429004103, 429004, '三伏潭镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14217, 429004400, 429004, '仙桃工业园', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14218, 429004102, 429004, '剅河镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14219, 429004002, 429004, '干河街道', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14220, 429004110, 429004, '张沟镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14221, 429004107, 429004, '彭场镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14222, 429004408, 429004, '排湖风景区', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14223, 429004109, 429004, '杨林尾镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14224, 429004101, 429004, '毛嘴镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14225, 429004112, 429004, '沔城回族镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14226, 429004001, 429004, '沙嘴街道', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14227, 429004108, 429004, '沙湖镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14228, 429004104, 429004, '胡场镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14229, 429004106, 429004, '西流河镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14230, 429004113, 429004, '通海口镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14231, 429004100, 429004, '郑场镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14232, 429004111, 429004, '郭河镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14233, 429004105, 429004, '长埫口镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14234, 429004114, 429004, '陈场镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14235, 429004003, 429004, '龙华山街道', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14236, 420900, 42, '孝感市', 1, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14237, 420982, 420900, '安陆市', 2, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14238, 420982002, 420982, '南城街道', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14239, 420982106, 420982, '孛畈镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14240, 420982400, 420982, '安陆市经济开发区', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14241, 420982102, 420982, '巡店镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14242, 420982001, 420982, '府城街道', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14243, 420982203, 420982, '接官乡', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14244, 420982202, 420982, '木梓乡', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14245, 420982101, 420982, '李店镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14246, 420982103, 420982, '棠棣镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14247, 420982108, 420982, '洑水镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14248, 420982107, 420982, '烟店镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14249, 420982104, 420982, '王义贞镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14250, 420982100, 420982, '赵棚镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14251, 420982201, 420982, '辛榨乡', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14252, 420982200, 420982, '陈店乡', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14253, 420982105, 420982, '雷公镇', 3, '2022-03-28 15:28:34', '2022-03-28 15:28:34', NULL); +INSERT INTO `address` VALUES (14254, 420922, 420900, '大悟县', 2, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14255, 420922113, 420922, '三里城镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14256, 420922114, 420922, '东新乡', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14257, 420922111, 420922, '丰店镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14258, 420922105, 420922, '刘集镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14259, 420922107, 420922, '吕王镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14260, 420922106, 420922, '四姑镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14261, 420922100, 420922, '城关镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14262, 420922104, 420922, '夏店镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14263, 420922112, 420922, '大新镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14264, 420922109, 420922, '宣化店镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14265, 420922116, 420922, '彭店乡', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14266, 420922103, 420922, '新城镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14267, 420922110, 420922, '河口镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14268, 420922102, 420922, '芳畈镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14269, 420922101, 420922, '阳平镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14270, 420922115, 420922, '高店乡', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14271, 420922108, 420922, '黄站镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14272, 420984, 420900, '汉川市', 2, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14273, 420984402, 420984, '中洲农场', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14274, 420984001, 420984, '仙女山街道', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14275, 420984102, 420984, '分水镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14276, 420984110, 420984, '刘家隔镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14277, 420984401, 420984, '华严农场', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14278, 420984203, 420984, '南河乡', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14279, 420984113, 420984, '回龙镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14280, 420984107, 420984, '垌冢镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14281, 420984101, 420984, '城隍镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14282, 420984109, 420984, '庙头镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14283, 420984108, 420984, '新堰镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14284, 420984112, 420984, '新河镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14285, 420984103, 420984, '杨林沟镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14286, 420984002, 420984, '汈东街道', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14287, 420984400, 420984, '汈汊湖养殖场', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14288, 420984504, 420984, '汉川市经济技术开发区', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14289, 420984106, 420984, '沉湖镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14290, 420984204, 420984, '湾潭乡', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14291, 420984105, 420984, '田二河镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14292, 420984104, 420984, '脉旺镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14293, 420984202, 420984, '西江乡', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14294, 420984201, 420984, '里潭乡', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14295, 420984205, 420984, '韩集乡', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14296, 420984100, 420984, '马口镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14297, 420984200, 420984, '马鞍乡', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14298, 420984111, 420984, '麻河镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14299, 420921, 420900, '孝昌县', 2, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14300, 420921105, 420921, '丰山镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14301, 420921101, 420921, '卫店镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14302, 420921500, 420921, '双峰山旅游渡假区', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14303, 420921104, 420921, '周巷镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14304, 420921201, 420921, '季店乡', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14305, 420921202, 420921, '小悟乡', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14306, 420921103, 420921, '小河镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14307, 420921400, 420921, '开发区', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14308, 420921102, 420921, '王店镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14309, 420921107, 420921, '白沙镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14310, 420921100, 420921, '花园镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14311, 420921200, 420921, '花西乡', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14312, 420921450, 420921, '观音湖生态文化旅游渡假区', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14313, 420921106, 420921, '邹岗镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14314, 420921203, 420921, '陡山乡', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14315, 420902, 420900, '孝南区', 2, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14316, 420902011, 420902, '三汊镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14317, 420902017, 420902, '东山头街道', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14318, 420902001, 420902, '书院街道', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14319, 420902014, 420902, '卧龙乡', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14320, 420902019, 420902, '孝南经济开发区', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14321, 420902020, 420902, '孝感市经济开发区丹阳街道', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14322, 420902021, 420902, '孝感开发区孝天街道', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14323, 420902022, 420902, '孝感开发区槐荫街道', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14324, 420902004, 420902, '广场街道', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14325, 420902003, 420902, '新华街道', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14326, 420902013, 420902, '新铺镇', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14327, 420902015, 420902, '朋兴乡', 3, '2022-03-28 15:28:35', '2022-03-28 15:28:35', NULL); +INSERT INTO `address` VALUES (14328, 420902018, 420902, '朱湖农场', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14329, 420902007, 420902, '杨店镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14330, 420902010, 420902, '毛陈镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14331, 420902012, 420902, '祝站镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14332, 420902009, 420902, '肖港镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14333, 420902006, 420902, '西河镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14334, 420902002, 420902, '车站街道', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14335, 420902016, 420902, '闵集乡', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14336, 420902008, 420902, '陡岗镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14337, 420981, 420900, '应城市', 2, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14338, 420981102, 420981, '三合镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14339, 420981004, 420981, '东马坊街道', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14340, 420981106, 420981, '义和镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14341, 420981500, 420981, '南垸良种场', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14342, 420981003, 420981, '四里棚街道', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14343, 420981001, 420981, '城中街道', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14344, 420981002, 420981, '城北街道', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14345, 420981105, 420981, '天鹅镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14346, 420981108, 420981, '杨岭镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14347, 420981101, 420981, '杨河镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14348, 420981109, 420981, '汤池镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14349, 420981100, 420981, '田店镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14350, 420981103, 420981, '郎君镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14351, 420981005, 420981, '长江埠街道', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14352, 420981107, 420981, '陈河镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14353, 420981104, 420981, '黄滩镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14354, 420923, 420900, '云梦县', 2, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14355, 420923105, 420923, '下辛店镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14356, 420923101, 420923, '义堂镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14357, 420923450, 420923, '云梦经济开发区', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14358, 420923104, 420923, '伍洛镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14359, 420923200, 420923, '倒店乡', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14360, 420923103, 420923, '吴铺镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14361, 420923100, 420923, '城关镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14362, 420923102, 420923, '曾店镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14363, 420923201, 420923, '沙河乡', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14364, 420923202, 420923, '清明河乡', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14365, 420923108, 420923, '胡金店镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14366, 420923106, 420923, '道桥镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14367, 420923107, 420923, '隔蒲潭镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14368, 420500, 42, '宜昌市', 1, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14369, 420528, 420500, '长阳土家族自治县', 2, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14370, 420528200, 420528, '大堰乡', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14371, 420528105, 420528, '榔坪镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14372, 420528104, 420528, '渔峡口镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14373, 420528202, 420528, '火烧坪乡', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14374, 420528101, 420528, '磨市镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14375, 420528106, 420528, '贺家坪镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14376, 420528103, 420528, '资丘镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14377, 420528102, 420528, '都镇湾镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14378, 420528107, 420528, '高家堰镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14379, 420528201, 420528, '鸭子口乡', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14380, 420528100, 420528, '龙舟坪镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14381, 420582, 420500, '当阳市', 2, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14382, 420582100, 420582, '两河镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14383, 420582105, 420582, '半月镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14384, 420582002, 420582, '坝陵街道', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14385, 420582103, 420582, '庙前镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14386, 420582101, 420582, '河溶镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14387, 420582102, 420582, '淯溪镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14388, 420582003, 420582, '玉泉街道', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14389, 420582001, 420582, '玉阳街道', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14390, 420582104, 420582, '王店镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14391, 420582106, 420582, '草埠湖镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14392, 420504, 420500, '点军区', 2, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14393, 420504201, 420504, '土城乡', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14394, 420504100, 420504, '桥边镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14395, 420504001, 420504, '点军街道', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14396, 420504200, 420504, '联棚乡', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14397, 420504101, 420504, '艾家镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14398, 420529, 420500, '五峰土家族自治县', 2, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14399, 420529100, 420529, '五峰镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14400, 420529103, 420529, '仁和坪镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14401, 420529201, 420529, '傅家堰乡', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14402, 420529102, 420529, '渔洋关镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14403, 420529104, 420529, '湾潭镇', 3, '2022-03-28 15:28:36', '2022-03-28 15:28:36', NULL); +INSERT INTO `address` VALUES (14404, 420529202, 420529, '牛庄乡', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14405, 420529200, 420529, '采花乡', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14406, 420529101, 420529, '长乐坪镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14407, 420503, 420500, '伍家岗区', 2, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14408, 420503002, 420503, '万寿桥街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14409, 420503200, 420503, '伍家乡', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14410, 420503004, 420503, '伍家岗街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14411, 420503001, 420503, '大公桥街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14412, 420503003, 420503, '宝塔河街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14413, 420505, 420500, '猇亭区', 2, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14414, 420505002, 420505, '云池街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14415, 420505001, 420505, '古老背街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14416, 420505003, 420505, '虎牙街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14417, 420502, 420500, '西陵区', 2, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14418, 420502008, 420502, '东苑街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14419, 420502003, 420502, '云集街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14420, 420502010, 420502, '北苑街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14421, 420502009, 420502, '南苑街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14422, 420502006, 420502, '夜明珠街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14423, 420502002, 420502, '学院街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14424, 420502200, 420502, '窑湾街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14425, 420502005, 420502, '葛洲坝街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14426, 420502004, 420502, '西坝街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14427, 420502401, 420502, '西陵峡口风景区', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14428, 420502001, 420502, '西陵街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14429, 420526, 420500, '兴山县', 2, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14430, 420526103, 420526, '南阳镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14431, 420526100, 420526, '古夫镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14432, 420526102, 420526, '峡口镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14433, 420526101, 420526, '昭君镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14434, 420526201, 420526, '榛子乡', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14435, 420526105, 420526, '水月寺镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14436, 420526200, 420526, '高桥乡', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14437, 420526104, 420526, '黄粮镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14438, 420581, 420500, '宜都市', 2, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14439, 420581106, 420581, '五眼泉镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14440, 420581105, 420581, '姚家店镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14441, 420581103, 420581, '松木坪镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14442, 420581104, 420581, '枝城镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14443, 420581202, 420581, '潘家湾土家族乡', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14444, 420581107, 420581, '王家畈镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14445, 420581100, 420581, '红花套镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14446, 420581102, 420581, '聂家河镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14447, 420581001, 420581, '陆城街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14448, 420581101, 420581, '高坝洲镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14449, 420506, 420500, '夷陵区', 2, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14450, 420506103, 420506, '三斗坪镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14451, 420506200, 420506, '下堡坪乡', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14452, 420506104, 420506, '乐天溪镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14453, 420506105, 420506, '分乡镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14454, 420506102, 420506, '太平溪镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14455, 420506002, 420506, '夷陵经济开发区', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14456, 420506001, 420506, '小溪塔街道', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14457, 420506100, 420506, '樟村坪镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14458, 420506202, 420506, '邓村乡', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14459, 420506101, 420506, '雾渡河镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14460, 420506107, 420506, '鸦鹊岭镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14461, 420506108, 420506, '黄花镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14462, 420506106, 420506, '龙泉镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14463, 420525, 420500, '远安县', 2, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14464, 420525105, 420525, '嫘祖镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14465, 420525102, 420525, '旧县镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14466, 420525200, 420525, '河口乡', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14467, 420525103, 420525, '洋坪镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14468, 420525101, 420525, '花林寺镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14469, 420525104, 420525, '茅坪场镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14470, 420525100, 420525, '鸣凤镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14471, 420583, 420500, '枝江市', 2, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14472, 420583100, 420583, '七星台镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14473, 420583107, 420583, '仙女镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14474, 420583103, 420583, '安福寺镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14475, 420583104, 420583, '白洋镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14476, 420583105, 420583, '百里洲镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14477, 420583102, 420583, '董市镇', 3, '2022-03-28 15:28:37', '2022-03-28 15:28:37', NULL); +INSERT INTO `address` VALUES (14478, 420583101, 420583, '问安镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14479, 420583106, 420583, '顾家店镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14480, 420583001, 420583, '马家店街道', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14481, 420527, 420500, '秭归县', 2, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14482, 420527104, 420527, '两河口镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14483, 420527108, 420527, '九畹溪镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14484, 420527101, 420527, '屈原镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14485, 420527102, 420527, '归州镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14486, 420527106, 420527, '杨林桥镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14487, 420527202, 420527, '梅家河乡', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14488, 420527200, 420527, '水田坝乡', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14489, 420527103, 420527, '沙镇溪镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14490, 420527201, 420527, '泄滩乡', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14491, 420527203, 420527, '磨坪乡', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14492, 420527100, 420527, '茅坪镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14493, 420527105, 420527, '郭家坝镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14494, 23, 0, '黑龙江省', 0, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14495, 232700, 23, '大兴安岭地区', 1, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14496, 232724, 232700, '大兴安岭辖区', 2, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14497, 232704, 232724, '呼中镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14498, 232761003, 232724, '东山街道', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14499, 232761001, 232724, '光明街道', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14500, 232761202, 232724, '加北乡', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14501, 232762104, 232724, '劲松镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14502, 232761004, 232724, '卫东街道', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14503, 232762105, 232724, '古源镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14504, 232764106, 232724, '呼源镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14505, 232763111, 232724, '塔尔根镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14506, 232763109, 232724, '塔源镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14507, 232763110, 232724, '大乌苏镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14508, 232764107, 232724, '宏伟镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14509, 232763113, 232724, '宏图镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14510, 232763401, 232724, '富林林场', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14511, 232762103, 232724, '小扬气镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14512, 232763107, 232724, '新林镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14513, 232761002, 232724, '曙光街道', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14514, 232761203, 232724, '白桦乡', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14515, 232763112, 232724, '碧州镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14516, 232764105, 232724, '碧水镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14517, 232761005, 232724, '红旗街道', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14518, 232763108, 232724, '翠岗镇', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14519, 232761006, 232724, '长虹街道', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14520, 232721, 232700, '呼玛县', 2, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14521, 232721200, 232721, '三卡乡', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14522, 232721202, 232721, '兴华乡', 3, '2022-03-28 15:28:38', '2022-03-28 15:28:38', NULL); +INSERT INTO `address` VALUES (14523, 232721205, 232721, '北疆乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14524, 232721100, 232721, '呼玛镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14525, 232721203, 232721, '欧浦乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14526, 232721204, 232721, '白银纳鄂伦春族民族乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14527, 232721201, 232721, '金山乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14528, 232721101, 232721, '韩家园镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14529, 232701, 232700, '漠河市', 2, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14530, 232701103, 232701, '兴安镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14531, 232701104, 232701, '北极镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14532, 232701101, 232701, '图强镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14533, 232701100, 232701, '西林吉镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14534, 232701102, 232701, '阿木尔镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14535, 232722, 232700, '塔河县', 2, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14536, 232722201, 232722, '依西肯乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14537, 232722200, 232722, '十八站鄂伦春族民族乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14538, 232722103, 232722, '古驿镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14539, 232722100, 232722, '塔河镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14540, 232722202, 232722, '开库康乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14541, 232722101, 232722, '瓦拉干镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14542, 232722102, 232722, '盘古镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14543, 230600, 23, '大庆市', 1, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14544, 230606, 230600, '大同区', 2, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14545, 230606205, 230606, '八井子乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14546, 230606206, 230606, '双榆树乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14547, 230606500, 230606, '和平牧场', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14548, 230606100, 230606, '大同镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14549, 230606007, 230606, '大同镇街道', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14550, 230606102, 230606, '太阳升镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14551, 230606001, 230606, '庆葡街道', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14552, 230606006, 230606, '新华街道', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14553, 230606103, 230606, '林源镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14554, 230606004, 230606, '林源镇街道', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14555, 230606200, 230606, '祝三乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14556, 230606005, 230606, '立志街道', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14557, 230606203, 230606, '老山头乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14558, 230606101, 230606, '高台子镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14559, 230606002, 230606, '高台子镇街道', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14560, 230624, 230600, '杜尔伯特蒙古族自治县', 2, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14561, 230624200, 230624, '一心乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14562, 230624103, 230624, '他拉哈镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14563, 230624201, 230624, '克尔台乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14564, 230624204, 230624, '巴彦查干乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14565, 230624203, 230624, '敖林西伯乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14566, 230624100, 230624, '杜尔伯特镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14567, 230624206, 230624, '江湾乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14568, 230624102, 230624, '烟筒屯镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14569, 230624500, 230624, '绿色草原牧场', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14570, 230624101, 230624, '胡吉吐莫镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14571, 230624205, 230624, '腰新乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14572, 230624104, 230624, '连环湖镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14573, 230605, 230600, '红岗区', 2, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14574, 230605004, 230605, '八百垧街道', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14575, 230605007, 230605, '创业街道', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14576, 230605005, 230605, '杏南街道', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14577, 230605100, 230605, '杏树岗镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14578, 230605480, 230605, '红岗区铁人生态工业园区', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14579, 230605001, 230605, '红岗街道', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14580, 230605006, 230605, '解放街道', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14581, 230623, 230600, '林甸县', 2, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14582, 230623103, 230623, '东兴乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14583, 230623106, 230623, '四合乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14584, 230623107, 230623, '四季青镇', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14585, 230623110, 230623, '国营苇场', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14586, 230623104, 230623, '宏伟乡', 3, '2022-03-28 15:28:39', '2022-03-28 15:28:39', NULL); +INSERT INTO `address` VALUES (14587, 230623109, 230623, '巨浪牧场', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14588, 230623100, 230623, '林甸镇', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14589, 230623101, 230623, '红旗镇', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14590, 230623102, 230623, '花园镇', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14591, 230623108, 230623, '长青林场', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14592, 230623105, 230623, '鹤鸣湖镇', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14593, 230603, 230600, '龙凤区', 2, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14594, 230603009, 230603, '三永街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14595, 230603008, 230603, '东光街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14596, 230603002, 230603, '兴化街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14597, 230603007, 230603, '卧里屯街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14598, 230603580, 230603, '高新区农场', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14599, 230603010, 230603, '黎明街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14600, 230603001, 230603, '龙凤街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14601, 230603100, 230603, '龙凤镇', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14602, 230604, 230600, '让胡路区', 2, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14603, 230604009, 230604, '乘风街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14604, 230604101, 230604, '喇嘛甸镇', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14605, 230604004, 230604, '奋斗街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14606, 230604005, 230604, '庆新街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14607, 230604581, 230604, '星火牧场', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14608, 230604580, 230604, '红骥牧场', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14609, 230604007, 230604, '西宾街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14610, 230604582, 230604, '银浪牧场', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14611, 230604002, 230604, '银浪街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14612, 230604001, 230604, '龙岗街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14613, 230602, 230600, '萨尔图区', 2, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14614, 230602012, 230602, '东安街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14615, 230602011, 230602, '东风街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14616, 230602009, 230602, '会战街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14617, 230602006, 230602, '友谊街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14618, 230602007, 230602, '富强街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14619, 230602008, 230602, '拥军街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14620, 230602010, 230602, '火炬街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14621, 230602001, 230602, '萨尔图街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14622, 230602005, 230602, '铁人街道', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14623, 230622, 230600, '肇源县', 2, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14624, 230622101, 230622, '三站镇', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14625, 230622210, 230622, '义顺乡', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14626, 230622102, 230622, '二站镇', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14627, 230622107, 230622, '古恰镇', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14628, 230622104, 230622, '古龙镇', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14629, 230622203, 230622, '和平乡', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14630, 230622212, 230622, '大兴乡', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14631, 230622106, 230622, '头台镇', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14632, 230622105, 230622, '新站镇', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14633, 230622208, 230622, '民意乡', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14634, 230622211, 230622, '浩德乡', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14635, 230622200, 230622, '福兴乡', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14636, 230622581, 230622, '种畜场', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14637, 230622500, 230622, '肇源农场', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14638, 230622100, 230622, '肇源镇', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14639, 230622103, 230622, '茂兴镇', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14640, 230622201, 230622, '薄荷台乡', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14641, 230622207, 230622, '超等乡', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14642, 230621, 230600, '肇州县', 2, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14643, 230621102, 230621, '丰乐镇', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14644, 230621580, 230621, '乐园良种场', 3, '2022-03-28 15:28:40', '2022-03-28 15:28:40', NULL); +INSERT INTO `address` VALUES (14645, 230621105, 230621, '二井镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14646, 230621104, 230621, '兴城镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14647, 230621581, 230621, '卫星牧场总场', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14648, 230621202, 230621, '双发乡', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14649, 230621203, 230621, '托古乡', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14650, 230621211, 230621, '新福乡', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14651, 230621205, 230621, '朝阳乡', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14652, 230621103, 230621, '朝阳沟镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14653, 230621208, 230621, '榆树乡', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14654, 230621101, 230621, '永乐镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14655, 230621206, 230621, '永胜乡', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14656, 230621100, 230621, '肇州镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14657, 230100, 23, '哈尔滨市', 1, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14658, 230112, 230100, '阿城区', 2, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14659, 230112104, 230112, '亚沟街道', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14660, 230112105, 230112, '交界街道', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14661, 230112008, 230112, '双丰街道', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14662, 230112106, 230112, '小岭街道', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14663, 230112107, 230112, '平山镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14664, 230112111, 230112, '料甸街道', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14665, 230112007, 230112, '新利街道', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14666, 230112110, 230112, '杨树街道', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14667, 230112108, 230112, '松峰山镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14668, 230112004, 230112, '河东街道', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14669, 230112006, 230112, '玉泉街道', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14670, 230112109, 230112, '红星镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14671, 230112009, 230112, '舍利街道', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14672, 230112103, 230112, '蜚克图街道', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14673, 230112003, 230112, '通城街道', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14674, 230112001, 230112, '金城街道', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14675, 230112002, 230112, '金都街道', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14676, 230112112, 230112, '金龙山镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14677, 230112005, 230112, '阿什河街道', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14678, 230126, 230100, '巴彦县', 2, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14679, 230126107, 230126, '万发镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14680, 230126205, 230126, '丰乐乡', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14681, 230126101, 230126, '兴隆镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14682, 230126204, 230126, '华山乡', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14683, 230126108, 230126, '天增镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14684, 230126202, 230126, '富江乡', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14685, 230126212, 230126, '山后乡', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14686, 230126105, 230126, '巴彦港镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14687, 230126100, 230126, '巴彦镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14688, 230126209, 230126, '德祥乡', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14689, 230126200, 230126, '松花江乡', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14690, 230126103, 230126, '洼兴镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14691, 230126210, 230126, '红光乡', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14692, 230126102, 230126, '西集镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14693, 230126214, 230126, '镇东乡', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14694, 230126110, 230126, '黑山镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14695, 230126106, 230126, '龙庙镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14696, 230126104, 230126, '龙泉镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14697, 230125, 230100, '宾县', 2, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14698, 230125210, 230125, '三宝乡', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14699, 230125107, 230125, '宁远镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14700, 230125104, 230125, '宾安镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14701, 230125100, 230125, '宾州镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14702, 230125102, 230125, '宾西镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14703, 230125101, 230125, '居仁镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14704, 230125112, 230125, '常安镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14705, 230125110, 230125, '平坊镇', 3, '2022-03-28 15:28:41', '2022-03-28 15:28:41', NULL); +INSERT INTO `address` VALUES (14706, 230125109, 230125, '摆渡镇', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14707, 230125105, 230125, '新甸镇', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14708, 230125204, 230125, '民和乡', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14709, 230125201, 230125, '永和乡', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14710, 230125111, 230125, '满井镇', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14711, 230125103, 230125, '糖坊镇', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14712, 230125205, 230125, '经建乡', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14713, 230125106, 230125, '胜利镇', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14714, 230125203, 230125, '鸟河乡', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14715, 230102, 230100, '道里区', 2, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14716, 230102001, 230102, '兆麟街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14717, 230102004, 230102, '共乐街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14718, 230102006, 230102, '城乡路街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14719, 230102021, 230102, '太平镇', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14720, 230102014, 230102, '安和街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14721, 230102013, 230102, '安静街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14722, 230102008, 230102, '尚志街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14723, 230102007, 230102, '工农街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14724, 230102012, 230102, '工程街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14725, 230102017, 230102, '康安街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14726, 230102016, 230102, '建国街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14727, 230102003, 230102, '抚顺街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14728, 230102009, 230102, '斯大林街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14729, 230102023, 230102, '新农镇', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14730, 230102005, 230102, '新华街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14731, 230102022, 230102, '新发镇', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14732, 230102002, 230102, '新阳路街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14733, 230102024, 230102, '榆树镇', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14734, 230102015, 230102, '正阳河街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14735, 230102019, 230102, '爱建街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14736, 230102011, 230102, '经纬街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14737, 230102018, 230102, '群力街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14738, 230102010, 230102, '通江街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14739, 230104, 230100, '道外区', 2, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14740, 230104027, 230104, '三棵树大街街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14741, 230104009, 230104, '东原街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14742, 230104003, 230104, '东莱街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14743, 230104005, 230104, '仁里街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14744, 230104024, 230104, '化工街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14745, 230104006, 230104, '南市街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14746, 230104023, 230104, '南直路街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14747, 230104012, 230104, '南马街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14748, 230104111, 230104, '团结镇', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14749, 230104010, 230104, '大兴街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14750, 230104022, 230104, '大有坊街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14751, 230104002, 230104, '太古街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14752, 230104029, 230104, '太平大街街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14753, 230104007, 230104, '崇俭街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14754, 230104109, 230104, '巨源镇', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14755, 230104008, 230104, '振江街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14756, 230104026, 230104, '新一街道', 3, '2022-03-28 15:28:42', '2022-03-28 15:28:42', NULL); +INSERT INTO `address` VALUES (14757, 230104031, 230104, '新乐街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14758, 230104200, 230104, '民主乡', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14759, 230104021, 230104, '民强街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14760, 230104028, 230104, '水泥路街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14761, 230104102, 230104, '永源镇', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14762, 230104004, 230104, '滨江街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14763, 230104025, 230104, '火车头街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14764, 230104011, 230104, '胜利街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14765, 230104001, 230104, '靖宇街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14766, 230104030, 230104, '黎华街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14767, 230124, 230100, '方正县', 2, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14768, 230124101, 230124, '会发镇', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14769, 230124102, 230124, '大罗密镇', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14770, 230124200, 230124, '天门乡', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14771, 230124204, 230124, '宝兴乡', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14772, 230124103, 230124, '得莫利镇', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14773, 230124202, 230124, '德善乡', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14774, 230124100, 230124, '方正镇', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14775, 230124201, 230124, '松南乡', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14776, 230111, 230100, '呼兰区', 2, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14777, 230111011, 230111, '二八镇', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14778, 230111002, 230111, '兰河街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14779, 230111018, 230111, '利业街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14780, 230111003, 230111, '利民街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14781, 230111009, 230111, '双井街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14782, 230111001, 230111, '呼兰街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14783, 230111016, 230111, '大用镇', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14784, 230111021, 230111, '孟家乡', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14785, 230111006, 230111, '学院路街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14786, 230111008, 230111, '康金街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14787, 230111004, 230111, '建设路街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14788, 230111014, 230111, '方台镇', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14789, 230111019, 230111, '杨林乡', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14790, 230111010, 230111, '沈家街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14791, 230111013, 230111, '白奎镇', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14792, 230111012, 230111, '石人镇', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14793, 230111005, 230111, '腰堡街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14794, 230111015, 230111, '莲花镇', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14795, 230111020, 230111, '许堡乡', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14796, 230111017, 230111, '长岭街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14797, 230127, 230100, '木兰县', 2, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14798, 230127101, 230127, '东兴镇', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14799, 230127103, 230127, '利东镇', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14800, 230127203, 230127, '吉兴乡', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14801, 230127102, 230127, '大贵镇', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14802, 230127200, 230127, '建国乡', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14803, 230127105, 230127, '新民镇', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14804, 230127100, 230127, '木兰镇', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14805, 230127104, 230127, '柳河镇', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14806, 230103, 230100, '南岗区', 2, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14807, 230103013, 230103, '七政街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14808, 230103017, 230103, '保健路街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14809, 230103018, 230103, '先锋路街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14810, 230103015, 230103, '和兴路街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14811, 230103016, 230103, '哈西街道', 3, '2022-03-28 15:28:43', '2022-03-28 15:28:43', NULL); +INSERT INTO `address` VALUES (14812, 230103005, 230103, '大成街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14813, 230103002, 230103, '奋斗路街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14814, 230103004, 230103, '文化街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14815, 230103019, 230103, '新春街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14816, 230103011, 230103, '曲线街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14817, 230103010, 230103, '松花江街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14818, 230103009, 230103, '燎原街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14819, 230103101, 230103, '王岗镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14820, 230103201, 230103, '红旗满族乡', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14821, 230103006, 230103, '芦家街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14822, 230103001, 230103, '花园街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14823, 230103007, 230103, '荣市街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14824, 230103100, 230103, '跃进街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14825, 230103012, 230103, '通达街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14826, 230103003, 230103, '革新街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14827, 230108, 230100, '平房区', 2, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14828, 230108002, 230108, '保国街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14829, 230108001, 230108, '兴建街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14830, 230108004, 230108, '友协街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14831, 230108101, 230108, '平房镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14832, 230108007, 230108, '平新街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14833, 230108006, 230108, '新伟街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14834, 230108005, 230108, '新疆街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14835, 230108003, 230108, '联盟街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14836, 230183, 230100, '尚志市', 2, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14837, 230183101, 230183, '一面坡镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14838, 230183204, 230183, '乌吉密乡', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14839, 230183103, 230183, '亚布力镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14840, 230183105, 230183, '亮河镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14841, 230183108, 230183, '元宝镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14842, 230183100, 230183, '尚志镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14843, 230183104, 230183, '帽儿山镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14844, 230183106, 230183, '庆阳镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14845, 230183211, 230183, '河东乡', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14846, 230183207, 230183, '珍珠山乡', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14847, 230183107, 230183, '石头河子镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14848, 230183208, 230183, '老街基乡', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14849, 230183102, 230183, '苇河镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14850, 230183202, 230183, '长寿乡', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14851, 230183209, 230183, '马延乡', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14852, 230183206, 230183, '鱼池朝鲜族乡', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14853, 230183109, 230183, '黑龙宫镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14854, 230113, 230100, '双城区', 2, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14855, 230113214, 230113, '万隆乡', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14856, 230113106, 230113, '东官镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14857, 230113209, 230113, '临江乡', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14858, 230113211, 230113, '乐群满族乡', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14859, 230113103, 230113, '五家街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14860, 230113110, 230113, '公正街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14861, 230113101, 230113, '兰棱街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14862, 230113107, 230113, '农丰满族锡伯族镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14863, 230113105, 230113, '单城镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14864, 230113217, 230113, '同心满族乡', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14865, 230113102, 230113, '周家街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14866, 230113216, 230113, '希勤满族乡', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14867, 230113205, 230113, '幸福街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14868, 230113219, 230113, '承恩街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14869, 230113100, 230113, '承旭街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14870, 230113109, 230113, '新兴街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14871, 230113108, 230113, '杏山镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14872, 230113210, 230113, '水泉乡', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14873, 230113221, 230113, '永和街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14874, 230113220, 230113, '永治街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14875, 230113208, 230113, '永胜镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14876, 230113204, 230113, '联兴满族镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14877, 230113200, 230113, '胜丰镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14878, 230113111, 230113, '西官镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14879, 230113201, 230113, '金城乡', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14880, 230113203, 230113, '青岭满族乡', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14881, 230113104, 230113, '韩甸镇', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14882, 230109, 230100, '松北区', 2, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14883, 230109004, 230109, '万宝街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14884, 230109001, 230109, '三电街道', 3, '2022-03-28 15:28:44', '2022-03-28 15:28:44', NULL); +INSERT INTO `address` VALUES (14885, 230109102, 230109, '乐业镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14886, 230109002, 230109, '太阳岛街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14887, 230109101, 230109, '对青山镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14888, 230109005, 230109, '松北街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14889, 230109003, 230109, '松浦街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14890, 230128, 230100, '通河县', 2, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14891, 230128201, 230128, '三站镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14892, 230128101, 230128, '乌鸦泡镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14893, 230128104, 230128, '凤山镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14894, 230128202, 230128, '富林镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14895, 230128103, 230128, '浓河镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14896, 230128102, 230128, '清河镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14897, 230128105, 230128, '祥顺镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14898, 230128100, 230128, '通河镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14899, 230184, 230100, '五常市', 2, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14900, 230184216, 230184, '二河乡', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14901, 230184100, 230184, '五常镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14902, 230184210, 230184, '八家子乡', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14903, 230184200, 230184, '兴盛乡', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14904, 230184215, 230184, '兴隆乡', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14905, 230184108, 230184, '冲河镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14906, 230184202, 230184, '卫国乡', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14907, 230184110, 230184, '向阳镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14908, 230184104, 230184, '安家镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14909, 230184103, 230184, '小山子镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14910, 230184102, 230184, '山河镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14911, 230184203, 230184, '常堡乡', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14912, 230184201, 230184, '志广乡', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14913, 230184101, 230184, '拉林满族镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14914, 230184106, 230184, '杜家镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14915, 230184211, 230184, '民乐朝鲜族乡', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14916, 230184206, 230184, '民意乡', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14917, 230184109, 230184, '沙河子镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14918, 230184105, 230184, '牛家满族镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14919, 230184209, 230184, '红旗满族乡', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14920, 230184107, 230184, '背荫河镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14921, 230184212, 230184, '营城子满族乡', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14922, 230184214, 230184, '长山乡', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14923, 230184111, 230184, '龙凤山镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14924, 230110, 230100, '香坊区', 2, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14925, 230110012, 230110, '健康路街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14926, 230110008, 230110, '六顺街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14927, 230110201, 230110, '向阳镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14928, 230110016, 230110, '和平路街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14929, 230110010, 230110, '哈平路街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14930, 230110013, 230110, '大庆路街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14931, 230110011, 230110, '安乐街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14932, 230110002, 230110, '安埠街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14933, 230110102, 230110, '幸福镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14934, 230110009, 230110, '建筑街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14935, 230110101, 230110, '成高子镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14936, 230110018, 230110, '文政街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14937, 230110006, 230110, '新成街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14938, 230110004, 230110, '新香坊街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14939, 230110103, 230110, '朝阳镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14940, 230110017, 230110, '民生路街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14941, 230110019, 230110, '王兆街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14942, 230110007, 230110, '红旗大街街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14943, 230110014, 230110, '进乡街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14944, 230110015, 230110, '通乡街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14945, 230110003, 230110, '通天街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14946, 230110005, 230110, '铁东街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14947, 230110001, 230110, '香坊大街街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14948, 230110020, 230110, '黎明街道', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14949, 230129, 230100, '延寿县', 2, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14950, 230129102, 230129, '中和镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14951, 230129101, 230129, '六团镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14952, 230129103, 230129, '加信镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14953, 230129400, 230129, '太平川', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14954, 230129204, 230129, '安山乡', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14955, 230129205, 230129, '寿山乡', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14956, 230129500, 230129, '庆阳农场', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14957, 230129100, 230129, '延寿镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14958, 230129104, 230129, '延河镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14959, 230129206, 230129, '玉河镇', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14960, 230129209, 230129, '青川乡', 3, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14961, 230123, 230100, '依兰县', 2, '2022-03-28 15:28:45', '2022-03-28 15:28:45', NULL); +INSERT INTO `address` VALUES (14962, 230123103, 230123, '三道岗镇', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14963, 230123100, 230123, '依兰镇', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14964, 230123200, 230123, '团山子乡', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14965, 230123105, 230123, '宏克力镇', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14966, 230123201, 230123, '愚公乡', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14967, 230123102, 230123, '江湾镇', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14968, 230123101, 230123, '达连河镇', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14969, 230123202, 230123, '迎兰朝鲜族乡', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14970, 230123104, 230123, '道台桥镇', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14971, 230400, 23, '鹤岗市', 1, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14972, 230406, 230400, '东山区', 2, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14973, 230406003, 230406, '三街街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14974, 230406004, 230406, '东山街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14975, 230406202, 230406, '东方红乡', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14976, 230406001, 230406, '工人村街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14977, 230406002, 230406, '新一街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14978, 230406500, 230406, '新华农场街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14979, 230406100, 230406, '新华镇', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14980, 230406201, 230406, '蔬园乡', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14981, 230406005, 230406, '蔬园乡街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14982, 230406400, 230406, '鹤岗市林业局', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14983, 230403, 230400, '工农区', 2, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14984, 230403006, 230403, '团结街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14985, 230403003, 230403, '新南街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14986, 230403004, 230403, '湖滨街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14987, 230403002, 230403, '红旗街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14988, 230403001, 230403, '育才街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14989, 230403005, 230403, '解放街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14990, 230421, 230400, '萝北县', 2, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14991, 230421200, 230421, '东明朝鲜族乡', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14992, 230421105, 230421, '云山镇', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14993, 230421100, 230421, '凤翔镇', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14994, 230421102, 230421, '名山镇', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14995, 230421103, 230421, '团结镇', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14996, 230421203, 230421, '太平沟乡', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14997, 230421104, 230421, '肇兴镇', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14998, 230421099, 230421, '萝北县城区', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (14999, 230421101, 230421, '鹤北镇', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15000, 230404, 230400, '南山区', 2, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15001, 230404003, 230404, '六号街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15002, 230404004, 230404, '大陆街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15003, 230404005, 230404, '富力街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15004, 230404002, 230404, '铁东街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15005, 230404001, 230404, '铁西街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15006, 230404006, 230404, '麓林山街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15007, 230422, 230400, '绥滨县', 2, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15008, 230422500, 230422, '二九0农场', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15009, 230422203, 230422, '北山乡', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15010, 230422201, 230422, '北岗乡', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15011, 230422202, 230422, '富强乡', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15012, 230422102, 230422, '忠仁镇', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15013, 230422205, 230422, '新富乡', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15014, 230422503, 230422, '普阳农场', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15015, 230422204, 230422, '福兴乡', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15016, 230422101, 230422, '绥东镇', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15017, 230422501, 230422, '绥滨农场', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15018, 230422100, 230422, '绥滨镇', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15019, 230422200, 230422, '连生乡', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15020, 230402, 230400, '向阳区', 2, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15021, 230402003, 230402, '光明街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15022, 230402001, 230402, '北山街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15023, 230402005, 230402, '南翼街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15024, 230402002, 230402, '红军街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15025, 230402004, 230402, '胜利街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15026, 230405, 230400, '兴安区', 2, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15027, 230405006, 230405, '光宇街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15028, 230405001, 230405, '兴安路街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15029, 230405002, 230405, '兴建街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15030, 230405003, 230405, '兴长路街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15031, 230405004, 230405, '峻德路街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15032, 230405005, 230405, '河东路街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15033, 230405100, 230405, '红旗镇', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15034, 230407, 230400, '兴山区', 2, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15035, 230407001, 230407, '岭北街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15036, 230407002, 230407, '岭南街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15037, 230407003, 230407, '沟北街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15038, 230407004, 230407, '沟南街道', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15039, 231100, 23, '黑河市', 1, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15040, 231102, 231100, '爱辉区', 2, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15041, 231102203, 231102, '上马厂乡', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15042, 231102207, 231102, '二站乡', 3, '2022-03-28 15:28:46', '2022-03-28 15:28:46', NULL); +INSERT INTO `address` VALUES (15043, 231102002, 231102, '兴安街道', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15044, 231102201, 231102, '四嘉子乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15045, 231102202, 231102, '坤河乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15046, 231102200, 231102, '幸福乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15047, 231102204, 231102, '张地营子乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15048, 231102206, 231102, '新生乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15049, 231102003, 231102, '海兰街道', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15050, 231102102, 231102, '瑗珲镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15051, 231102103, 231102, '罕达汽镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15052, 231102001, 231102, '花园街道', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15053, 231102004, 231102, '西兴街道', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15054, 231102101, 231102, '西岗子镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15055, 231102205, 231102, '西峰山乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15056, 231181, 231100, '北安市', 2, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15057, 231181201, 231181, '东胜乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15058, 231181207, 231181, '主星乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15059, 231181105, 231181, '二井镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15060, 231181001, 231181, '兆麟街道', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15061, 231181003, 231181, '北岗街道', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15062, 231181002, 231181, '和平街道', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15063, 231181200, 231181, '城郊乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15064, 231181004, 231181, '庆华街道', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15065, 231181504, 231181, '建设农场', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15066, 231181203, 231181, '杨家乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15067, 231181103, 231181, '海星镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15068, 231181104, 231181, '石泉镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15069, 231181503, 231181, '红星农场', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15070, 231181502, 231181, '赵光农场', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15071, 231181102, 231181, '赵光镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15072, 231181400, 231181, '通北林业局', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15073, 231181101, 231181, '通北镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15074, 231181006, 231181, '铁南街道', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15075, 231181005, 231181, '铁西街道', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15076, 231181501, 231181, '长水河农场', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15077, 231121, 231100, '嫩江市', 2, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15078, 231183202, 231121, '临江乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15079, 231183101, 231121, '伊拉哈镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15080, 231183105, 231121, '前进镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15081, 231183102, 231121, '双山镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15082, 231183208, 231121, '塔溪乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15083, 231183103, 231121, '多宝山镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15084, 231183100, 231121, '嫩江镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15085, 231183104, 231121, '海江镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15086, 231183207, 231121, '白云乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15087, 231183107, 231121, '科洛镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15088, 231183206, 231121, '联兴乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15089, 231183211, 231121, '长江乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15090, 231183106, 231121, '长福镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15091, 231183210, 231121, '霍龙门镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15092, 231124, 231100, '孙吴县', 2, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15093, 231124204, 231124, '卧牛河乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15094, 231124206, 231124, '奋斗乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15095, 231124100, 231124, '孙吴镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15096, 231124208, 231124, '正阳山乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15097, 231124202, 231124, '沿江满族达斡尔族乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15098, 231124210, 231124, '清溪乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15099, 231124207, 231124, '红旗乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15100, 231124205, 231124, '群山乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15101, 231124203, 231124, '腰屯乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15102, 231124201, 231124, '西兴乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15103, 231124101, 231124, '辰清镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15104, 231182, 231100, '五大连池市', 2, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15105, 231182103, 231182, '五大连池镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15106, 231182208, 231182, '兴安乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15107, 231182202, 231182, '兴隆镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15108, 231182104, 231182, '双泉镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15109, 231182102, 231182, '和平镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15110, 231182207, 231182, '团结镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15111, 231182205, 231182, '太平乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15112, 231182203, 231182, '建设乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15113, 231182105, 231182, '新发镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15114, 231182210, 231182, '朝阳乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15115, 231182418, 231182, '莲花管理委员会', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15116, 231182001, 231182, '青山街道', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15117, 231182101, 231182, '龙镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15118, 231123, 231100, '逊克县', 2, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15119, 231123103, 231123, '克林镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15120, 231123001, 231123, '奇克街道', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15121, 231123102, 231123, '奇克镇', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15122, 231123207, 231123, '宝山乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15123, 231123201, 231123, '干岔子乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15124, 231123205, 231123, '新兴鄂伦春族乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15125, 231123204, 231123, '新鄂乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15126, 231123202, 231123, '松树沟乡', 3, '2022-03-28 15:28:47', '2022-03-28 15:28:47', NULL); +INSERT INTO `address` VALUES (15127, 231123203, 231123, '车陆乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15128, 231123101, 231123, '逊河镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15129, 230800, 23, '佳木斯市', 1, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15130, 230805, 230800, '东风区', 2, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15131, 230805002, 230805, '佳东街道', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15132, 230805004, 230805, '佳南街道', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15133, 230805005, 230805, '建国街道', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15134, 230805100, 230805, '建国镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15135, 230805001, 230805, '晓云街道', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15136, 230805200, 230805, '松江乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15137, 230805003, 230805, '造纸街道', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15138, 230882, 230800, '富锦市', 2, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15139, 230882112, 230882, '上街基镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15140, 230882111, 230882, '二龙山镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15141, 230882108, 230882, '兴隆岗镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15142, 230882110, 230882, '向阳川镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15143, 230882114, 230882, '大榆树镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15144, 230882107, 230882, '头林镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15145, 230882109, 230882, '宏胜镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15146, 230882100, 230882, '富锦镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15147, 230882500, 230882, '建三江分局局直', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15148, 230882106, 230882, '砚山镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15149, 230882113, 230882, '锦山镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15150, 230882103, 230882, '长安镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15151, 230883, 230800, '抚远市', 2, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15152, 230883103, 230883, '乌苏镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15153, 230883502, 230883, '二道河农场', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15154, 230883203, 230883, '别拉洪乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15155, 230883500, 230883, '前哨农场', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15156, 230883501, 230883, '前锋农场', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15157, 230883101, 230883, '寒葱沟镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15158, 230883100, 230883, '抚远镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15159, 230883102, 230883, '浓桥镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15160, 230883201, 230883, '浓江乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15161, 230883202, 230883, '海青乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15162, 230883200, 230883, '通江乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15163, 230883204, 230883, '鸭南乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15164, 230826, 230800, '桦川县', 2, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15165, 230826201, 230826, '东河乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15166, 230826205, 230826, '创业乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15167, 230826106, 230826, '四马架镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15168, 230826501, 230826, '宝山农场', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15169, 230826104, 230826, '悦来镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15170, 230826105, 230826, '新城镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15171, 230826207, 230826, '星火乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15172, 230826202, 230826, '梨丰乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15173, 230826101, 230826, '横头山镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15174, 230826500, 230826, '江川农场', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15175, 230826103, 230826, '苏家店镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15176, 230822, 230800, '桦南县', 2, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15177, 230822582, 230822, '五道岗乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15178, 230822107, 230822, '土龙山镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15179, 230822215, 230822, '大八浪乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15180, 230822108, 230822, '孟家岗镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15181, 230822214, 230822, '明义乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15182, 230822581, 230822, '柳毛河镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15183, 230822106, 230822, '桦南镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15184, 230822213, 230822, '梨树乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15185, 230822104, 230822, '石头河子镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15186, 230822205, 230822, '金沙乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15187, 230822109, 230822, '闫家镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15188, 230822103, 230822, '驼腰子镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15189, 230811, 230800, '郊区', 2, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15190, 230811001, 230811, '佳西街道', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15191, 230811002, 230811, '友谊街道', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15192, 230811210, 230811, '四丰乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15193, 230811101, 230811, '大来镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15194, 230811208, 230811, '平安乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15195, 230811102, 230811, '敖其镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15196, 230811103, 230811, '望江镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15197, 230811201, 230811, '沿江镇', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15198, 230811211, 230811, '群胜乡', 3, '2022-03-28 15:28:48', '2022-03-28 15:28:48', NULL); +INSERT INTO `address` VALUES (15199, 230811105, 230811, '莲江口镇', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15200, 230811202, 230811, '西格木镇', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15201, 230811104, 230811, '长发镇', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15202, 230811200, 230811, '长青乡', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15203, 230804, 230800, '前进区', 2, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15204, 230804401, 230804, '永安街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15205, 230828, 230800, '汤原县', 2, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15206, 230828208, 230828, '吉祥乡', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15207, 230828210, 230828, '太平川乡', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15208, 230828209, 230828, '振兴乡', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15209, 230828211, 230828, '永发乡', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15210, 230828104, 230828, '汤原镇', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15211, 230828201, 230828, '汤旺乡', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15212, 230828103, 230828, '竹帘镇', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15213, 230828203, 230828, '胜利乡', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15214, 230828101, 230828, '香兰镇', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15215, 230828102, 230828, '鹤立镇', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15216, 230881, 230800, '同江市', 2, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15217, 230881102, 230881, '三村镇', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15218, 230881103, 230881, '临江镇', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15219, 230881101, 230881, '乐业镇', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15220, 230881205, 230881, '八岔乡', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15221, 230881502, 230881, '前进农场', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15222, 230881500, 230881, '勤得利农场', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15223, 230881100, 230881, '同江镇', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15224, 230881104, 230881, '向阳镇', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15225, 230881503, 230881, '洪河农场', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15226, 230881204, 230881, '街津口乡', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15227, 230881206, 230881, '金川乡', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15228, 230881207, 230881, '银川乡', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15229, 230881203, 230881, '青河镇', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15230, 230881501, 230881, '青龙山农场', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15231, 230881504, 230881, '鸭绿河农场', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15232, 230803, 230800, '向阳区', 2, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15233, 230803002, 230803, '保卫街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15234, 230803198, 230803, '向阳区(镇)直辖地域', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15235, 230803005, 230803, '建设街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15236, 230803003, 230803, '桥南街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15237, 230803004, 230803, '西南岗街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15238, 230803001, 230803, '西林街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15239, 230803006, 230803, '长安街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15240, 230300, 23, '鸡西市', 1, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15241, 230306, 230300, '城子河区', 2, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15242, 230306003, 230306, '东海街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15243, 230306001, 230306, '城子河街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15244, 230306004, 230306, '城西街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15245, 230306005, 230306, '杏花街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15246, 230306002, 230306, '正阳街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15247, 230306201, 230306, '永丰乡', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15248, 230306200, 230306, '长青乡', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15249, 230304, 230300, '滴道区', 2, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15250, 230304001, 230304, '东兴街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15251, 230304201, 230304, '兰岭乡', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15252, 230304004, 230304, '大通沟街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15253, 230304003, 230304, '洗煤街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15254, 230304200, 230304, '滴道河乡', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15255, 230304002, 230304, '矿里街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15256, 230303, 230300, '恒山区', 2, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15257, 230303004, 230303, '二道河子街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15258, 230303002, 230303, '大恒山街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15259, 230303006, 230303, '奋斗街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15260, 230303003, 230303, '小恒山街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15261, 230303005, 230303, '张新街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15262, 230303201, 230303, '柳毛乡', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15263, 230303007, 230303, '柳毛街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15264, 230303001, 230303, '桦木林街道', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15265, 230303200, 230303, '红旗乡', 3, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15266, 230381, 230300, '虎林市', 2, '2022-03-28 15:28:49', '2022-03-28 15:28:49', NULL); +INSERT INTO `address` VALUES (15267, 230381400, 230381, '东方红林业局', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15268, 230381101, 230381, '东方红镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15269, 230381107, 230381, '东诚镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15270, 230381505, 230381, '云山农场', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15271, 230381204, 230381, '伟光乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15272, 230381503, 230381, '八五八农场', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15273, 230381502, 230381, '八五六农场', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15274, 230381501, 230381, '八五四农场', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15275, 230381500, 230381, '八五零农场', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15276, 230381106, 230381, '宝东镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15277, 230381504, 230381, '庆丰农场', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15278, 230381203, 230381, '新乐乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15279, 230381104, 230381, '杨岗镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15280, 230381206, 230381, '珍宝岛乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15281, 230381103, 230381, '虎头镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15282, 230381100, 230381, '虎林镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15283, 230381401, 230381, '迎春林业局', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15284, 230381102, 230381, '迎春镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15285, 230381207, 230381, '阿北乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15286, 230321, 230300, '鸡东县', 2, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15287, 230321206, 230321, '下亮子乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15288, 230321106, 230321, '东海镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15289, 230321107, 230321, '兴农镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15290, 230321102, 230321, '向阳镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15291, 230321103, 230321, '哈达镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15292, 230321101, 230321, '平阳镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15293, 230321205, 230321, '明德乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15294, 230321105, 230321, '永和镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15295, 230321104, 230321, '永安镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15296, 230321100, 230321, '鸡东镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15297, 230321200, 230321, '鸡林乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15298, 230302, 230300, '鸡冠区', 2, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15299, 230302004, 230302, '东风街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15300, 230302002, 230302, '南山街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15301, 230302001, 230302, '向阳街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15302, 230302003, 230302, '立新街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15303, 230302005, 230302, '红军路街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15304, 230302200, 230302, '红星乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15305, 230302007, 230302, '西山街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15306, 230302201, 230302, '西郊乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15307, 230302006, 230302, '西鸡西街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15308, 230305, 230300, '梨树区', 2, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15309, 230305003, 230305, '平岗街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15310, 230305198, 230305, '梨树区(镇)直辖地域', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15311, 230305005, 230305, '石磷街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15312, 230305004, 230305, '碱场街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15313, 230305002, 230305, '穆棱街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15314, 230305001, 230305, '街里街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15315, 230307, 230300, '麻山区', 2, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15316, 230307001, 230307, '麻山街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15317, 230307199, 230307, '麻山镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15318, 230382, 230300, '密山市', 2, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15319, 230382001, 230382, '中心街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15320, 230382206, 230382, '二人班乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15321, 230382202, 230382, '兴凯湖乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15322, 230382105, 230382, '兴凯镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15323, 230382210, 230382, '和平乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15324, 230382208, 230382, '太平乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15325, 230382100, 230382, '密山镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15326, 230382212, 230382, '富源乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15327, 230382102, 230382, '当壁镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15328, 230382203, 230382, '承紫河乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15329, 230382201, 230382, '杨木乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15330, 230382200, 230382, '柳毛乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15331, 230382107, 230382, '白鱼湾镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15332, 230382103, 230382, '知一镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15333, 230382106, 230382, '裴德镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15334, 230382101, 230382, '连珠山镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15335, 230382104, 230382, '黑台镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15336, 231000, 23, '牡丹江市', 1, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15337, 231004, 231000, '爱民区', 2, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15338, 231004100, 231004, '三道关镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15339, 231004006, 231004, '兴平街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15340, 231004007, 231004, '北山街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15341, 231004001, 231004, '向阳街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15342, 231004005, 231004, '大庆街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15343, 231004004, 231004, '新华街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15344, 231004003, 231004, '铁北街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15345, 231004002, 231004, '黄花街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15346, 231085, 231000, '穆棱市', 2, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15347, 231085102, 231085, '下城子镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15348, 231085100, 231085, '八面通镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15349, 231085202, 231085, '共和乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15350, 231085104, 231085, '兴源镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15351, 231085105, 231085, '河西镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15352, 231085200, 231085, '福禄乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15353, 231085101, 231085, '穆棱镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15354, 231085103, 231085, '马桥河镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15355, 231002, 231000, '东安区', 2, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15356, 231002003, 231002, '七星街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15357, 231002004, 231002, '五星街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15358, 231002100, 231002, '兴隆镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15359, 231002001, 231002, '新安街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15360, 231002002, 231002, '长安街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15361, 231086, 231000, '东宁市', 2, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15362, 231086101, 231086, '三岔口镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15363, 231086100, 231086, '东宁镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15364, 231086102, 231086, '大肚川镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15365, 231086105, 231086, '绥阳镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15366, 231086103, 231086, '老黑山镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15367, 231086104, 231086, '道河镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15368, 231083, 231000, '海林市', 2, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15369, 231083107, 231083, '三道河子镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15370, 231083105, 231083, '二道河镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15371, 231083103, 231083, '山市镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15372, 231083106, 231083, '新安朝鲜族镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15373, 231083401, 231083, '柴河林机厂街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15374, 231083104, 231083, '柴河镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15375, 231083102, 231083, '横道河镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15376, 231083100, 231083, '海林镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15377, 231083101, 231083, '长汀镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15378, 231025, 231000, '林口县', 2, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15379, 231025106, 231025, '三道通镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15380, 231025102, 231025, '刁翎镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15381, 231025101, 231025, '古城镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15382, 231025200, 231025, '奎山镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15383, 231025202, 231025, '建堂镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15384, 231025104, 231025, '朱家镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15385, 231025100, 231025, '林口镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15386, 231025105, 231025, '柳树镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15387, 231025108, 231025, '莲花镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15388, 231025109, 231025, '青山镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15389, 231025107, 231025, '龙爪镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15390, 231084, 231000, '宁安市', 2, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15391, 231084204, 231084, '三陵乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15392, 231084101, 231084, '东京城镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15393, 231084106, 231084, '兰岗镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15394, 231084201, 231084, '卧龙朝鲜族乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15395, 231084001, 231084, '城区街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15396, 231084100, 231084, '宁安镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15397, 231084200, 231084, '江南朝鲜族满族乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15398, 231084104, 231084, '沙兰镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15399, 231084105, 231084, '海浪镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15400, 231084102, 231084, '渤海镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15401, 231084103, 231084, '石岩镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15402, 231084203, 231084, '镜泊镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15403, 231084202, 231084, '马河乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15404, 231081, 231000, '绥芬河市', 2, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15405, 231081100, 231081, '绥芬河镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15406, 231081101, 231081, '阜宁镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15407, 231005, 231000, '西安区', 2, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15408, 231005001, 231005, '先锋街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15409, 231005005, 231005, '江滨街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15410, 231005006, 231005, '沿江街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15411, 231005200, 231005, '海南朝鲜族乡', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15412, 231005100, 231005, '温春镇', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15413, 231005002, 231005, '火炬街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15414, 231005004, 231005, '牡丹街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15415, 231005003, 231005, '立新街道', 3, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15416, 231003, 231000, '阳明区', 2, '2022-03-28 15:28:50', '2022-03-28 15:28:50', NULL); +INSERT INTO `address` VALUES (15417, 231003103, 231003, '五林镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15418, 231003002, 231003, '前进街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15419, 231003003, 231003, '新兴街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15420, 231003004, 231003, '桦林橡胶厂街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15421, 231003101, 231003, '桦林镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15422, 231003102, 231003, '磨刀石镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15423, 231003100, 231003, '铁岭镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15424, 231003001, 231003, '阳明街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15425, 230200, 23, '齐齐哈尔市', 1, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15426, 230205, 230200, '昂昂溪区', 2, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15427, 230205001, 230205, '新兴街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15428, 230205002, 230205, '新建街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15429, 230205005, 230205, '林机街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15430, 230205102, 230205, '榆树屯镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15431, 230205100, 230205, '水师营满族镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15432, 230205006, 230205, '道北街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15433, 230231, 230200, '拜泉县', 2, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15434, 230231101, 230231, '三道镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15435, 230231203, 230231, '上升乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15436, 230231209, 230231, '丰产乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15437, 230231102, 230231, '兴农镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15438, 230231204, 230231, '兴华乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15439, 230231201, 230231, '兴国乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15440, 230231105, 230231, '国富镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15441, 230231206, 230231, '大众乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15442, 230231106, 230231, '富强镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15443, 230231100, 230231, '拜泉镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15444, 230231200, 230231, '新生乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15445, 230231214, 230231, '时中乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15446, 230231210, 230231, '永勤乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15447, 230231212, 230231, '爱农乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15448, 230231103, 230231, '长春镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15449, 230231104, 230231, '龙泉镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15450, 230227, 230200, '富裕县', 2, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15451, 230227103, 230227, '二道湾镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15452, 230227203, 230227, '友谊乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15453, 230227204, 230227, '塔哈镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15454, 230227102, 230227, '富海镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15455, 230227500, 230227, '富裕牧场街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15456, 230227100, 230227, '富裕镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15457, 230227101, 230227, '富路镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15458, 230227202, 230227, '忠厚乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15459, 230227200, 230227, '繁荣乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15460, 230227580, 230227, '繁荣种畜场', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15461, 230227201, 230227, '绍文乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15462, 230227104, 230227, '龙安桥镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15463, 230225, 230200, '甘南县', 2, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15464, 230225103, 230225, '东阳镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15465, 230225202, 230225, '中兴乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15466, 230225101, 230225, '兴十四镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15467, 230225203, 230225, '兴隆乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15468, 230225580, 230225, '双河农场', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15469, 230225204, 230225, '宝山乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15470, 230225104, 230225, '巨宝镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15471, 230225102, 230225, '平阳镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15472, 230225206, 230225, '查哈阳乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15473, 230225500, 230225, '查哈阳农场', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15474, 230225100, 230225, '甘南镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15475, 230225201, 230225, '长山乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15476, 230206, 230200, '富拉尔基区', 2, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15477, 230206007, 230206, '北兴街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15478, 230206009, 230206, '和平街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15479, 230206005, 230206, '幸福街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15480, 230206202, 230206, '杜尔门沁达斡尔族乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15481, 230206003, 230206, '沿江街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15482, 230206004, 230206, '电力街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15483, 230206006, 230206, '红宝石街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15484, 230206001, 230206, '红岸街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15485, 230206008, 230206, '铁北街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15486, 230206200, 230206, '长青乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15487, 230203, 230200, '建华区', 2, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15488, 230203003, 230203, '中华街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15489, 230203005, 230203, '卜奎街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15490, 230203198, 230203, '建华区(镇)直辖地域', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15491, 230203006, 230203, '建设街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15492, 230203007, 230203, '文化街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15493, 230203004, 230203, '西大桥街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15494, 230230, 230200, '克东县', 2, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15495, 230230102, 230230, '乾丰镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15496, 230230100, 230230, '克东镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15497, 230230403, 230230, '发展林场', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15498, 230230101, 230230, '宝泉镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15499, 230230585, 230230, '建业农场', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15500, 230230204, 230230, '昌盛乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15501, 230230202, 230230, '润津乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15502, 230230402, 230230, '爱华林场', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15503, 230230103, 230230, '玉岗镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15504, 230230581, 230230, '第一良种场', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15505, 230230582, 230230, '第二良种繁殖场', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15506, 230230580, 230230, '红旗奶山羊场', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15507, 230230200, 230230, '蒲峪路镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15508, 230229, 230200, '克山县', 2, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15509, 230229500, 230229, '克山农场', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15510, 230229100, 230229, '克山镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15511, 230229101, 230229, '北兴镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15512, 230229104, 230229, '北联镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15513, 230229201, 230229, '双河镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15514, 230229206, 230229, '发展乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15515, 230229204, 230229, '古北乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15516, 230229103, 230229, '古城镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15517, 230229208, 230229, '向华乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15518, 230229210, 230229, '曙光乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15519, 230229203, 230229, '河北乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15520, 230229200, 230229, '河南乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15521, 230229102, 230229, '西城镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15522, 230229207, 230229, '西建乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15523, 230229105, 230229, '西河镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15524, 230229205, 230229, '西联乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15525, 230221, 230200, '龙江县', 2, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15526, 230221104, 230221, '七棵树镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15527, 230221203, 230221, '华民乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15528, 230221204, 230221, '哈拉海乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15529, 230221214, 230221, '头站镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15530, 230221103, 230221, '山泉镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15531, 230221202, 230221, '广厚乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15532, 230221101, 230221, '景星镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15533, 230221105, 230221, '杏山镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15534, 230221217, 230221, '济沁河乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15535, 230221200, 230221, '白山镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15536, 230221215, 230221, '鲁河乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15537, 230221201, 230221, '黑岗乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15538, 230221102, 230221, '龙兴镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15539, 230221100, 230221, '龙江镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15540, 230202, 230200, '龙沙区', 2, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15541, 230202001, 230202, '五龙街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15542, 230202006, 230202, '南航街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15543, 230202007, 230202, '大民街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15544, 230202005, 230202, '彩虹街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15545, 230202004, 230202, '正阳街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15546, 230202003, 230202, '江安街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15547, 230202002, 230202, '湖滨街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15548, 230208, 230200, '梅里斯达斡尔族区', 2, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15549, 230208104, 230208, '共和镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15550, 230208102, 230208, '卧牛吐达斡尔族镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15551, 230208001, 230208, '梅里斯街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15552, 230208105, 230208, '梅里斯镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15553, 230208200, 230208, '莽格吐达斡尔族乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15554, 230208103, 230208, '达呼店镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15555, 230208101, 230208, '雅尔塞镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15556, 230281, 230200, '讷河市', 2, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15557, 230281110, 230281, '九井镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15558, 230281102, 230281, '二克浅镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15559, 230281106, 230281, '六合镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15560, 230281210, 230281, '兴旺鄂温克族乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15561, 230281109, 230281, '同义镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15562, 230281208, 230281, '同心乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15563, 230281207, 230281, '和盛乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15564, 230281201, 230281, '孔国乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15565, 230281103, 230281, '学田镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15566, 230281413, 230281, '学田镇富源林场', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15567, 230281101, 230281, '拉哈镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15568, 230281111, 230281, '老莱镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15569, 230281105, 230281, '讷南镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15570, 230281108, 230281, '通南镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15571, 230281001, 230281, '通江街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15572, 230281107, 230281, '长发镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15573, 230281002, 230281, '雨亭街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15574, 230281104, 230281, '龙河镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15575, 230281402, 230281, '龙河镇国庆林场', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15576, 230281401, 230281, '龙河镇茂山林场', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15577, 230281415, 230281, '龙河镇青色草原种畜场', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15578, 230207, 230200, '碾子山区', 2, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15579, 230207001, 230207, '东安街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15580, 230207002, 230207, '富强街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15581, 230207198, 230207, '碾子山区(镇)直辖地域', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15582, 230207004, 230207, '繁荣街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15583, 230207003, 230207, '跃进街道', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15584, 230224, 230200, '泰来县', 2, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15585, 230224404, 230224, '东方红机械林场', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15586, 230224107, 230224, '克利镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15587, 230224106, 230224, '和平镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15588, 230224104, 230224, '塔子城镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15589, 230224105, 230224, '大兴镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15590, 230224209, 230224, '宁姜蒙古族乡', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15591, 230224101, 230224, '平洋镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15592, 230224103, 230224, '江桥蒙古族镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15593, 230224102, 230224, '汤池镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15594, 230224100, 230224, '泰来镇', 3, '2022-03-28 15:28:51', '2022-03-28 15:28:51', NULL); +INSERT INTO `address` VALUES (15595, 230224200, 230224, '胜利蒙古族乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15596, 230204, 230200, '铁锋区', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15597, 230204008, 230204, '东湖街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15598, 230204004, 230204, '光荣街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15599, 230204006, 230204, '北局宅街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15600, 230204002, 230204, '南浦街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15601, 230204100, 230204, '扎龙镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15602, 230204001, 230204, '站前街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15603, 230204003, 230204, '通东街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15604, 230204005, 230204, '龙华街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15605, 230223, 230200, '依安县', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15606, 230223103, 230223, '三兴镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15607, 230223205, 230223, '上游乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15608, 230223104, 230223, '中心镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15609, 230223100, 230223, '依安镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15610, 230223101, 230223, '依龙镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15611, 230223207, 230223, '先锋乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15612, 230223102, 230223, '双阳镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15613, 230223204, 230223, '太东乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15614, 230223200, 230223, '富饶乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15615, 230223106, 230223, '新兴镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15616, 230223105, 230223, '新发乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15617, 230223208, 230223, '新屯乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15618, 230223206, 230223, '红星乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15619, 230223201, 230223, '解放乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15620, 230223202, 230223, '阳春乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15621, 230900, 23, '七台河市', 1, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15622, 230921, 230900, '勃利县', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15623, 230921104, 230921, '倭肯镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15624, 230921003, 230921, '元明街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15625, 230921100, 230921, '勃利镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15626, 230921103, 230921, '双河镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15627, 230921205, 230921, '吉兴朝鲜族满族乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15628, 230921005, 230921, '城西街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15629, 230921102, 230921, '大四站镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15630, 230921101, 230921, '小五站镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15631, 230921203, 230921, '抢垦乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15632, 230921002, 230921, '新华街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15633, 230921001, 230921, '新起街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15634, 230921204, 230921, '杏树朝鲜族乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15635, 230921202, 230921, '永恒乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15636, 230921004, 230921, '铁西街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15637, 230921200, 230921, '青山乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15638, 230904, 230900, '茄子河区', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15639, 230904001, 230904, '东风街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15640, 230904201, 230904, '中心河乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15641, 230904002, 230904, '向阳街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15642, 230904101, 230904, '宏伟镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15643, 230904003, 230904, '富强街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15644, 230904004, 230904, '新富街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15645, 230904100, 230904, '茄子河镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15646, 230904200, 230904, '铁山乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15647, 230904005, 230904, '龙湖街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15648, 230903, 230900, '桃山区', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15649, 230903100, 230903, '万宝河镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15650, 230903004, 230903, '兴岗街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15651, 230903005, 230903, '桃东街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15652, 230903002, 230903, '桃北街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15653, 230903001, 230903, '桃南街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15654, 230903006, 230903, '桃山街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15655, 230903003, 230903, '桃西街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15656, 230902, 230900, '新兴区', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15657, 230902001, 230902, '兴华街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15658, 230902500, 230902, '北兴农场', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15659, 230902005, 230902, '北山街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15660, 230902007, 230902, '新合街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15661, 230902002, 230902, '新城街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15662, 230902009, 230902, '新安街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15663, 230902004, 230902, '新建街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15664, 230902003, 230902, '新立街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15665, 230902006, 230902, '河南街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15666, 230902100, 230902, '红旗镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15667, 230902008, 230902, '缸窑沟街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15668, 230902010, 230902, '越秀街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15669, 230902200, 230902, '长兴乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15670, 230500, 23, '双鸭山市', 1, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15671, 230523, 230500, '宝清县', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15672, 230523209, 230523, '七星河乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15673, 230523101, 230523, '七星泡镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15674, 230523203, 230523, '万金山乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15675, 230523103, 230523, '夹信子镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15676, 230523100, 230523, '宝清镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15677, 230523105, 230523, '小城子镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15678, 230523204, 230523, '尖山子乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15679, 230523202, 230523, '朝阳乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15680, 230523102, 230523, '青原镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15681, 230523104, 230523, '龙头镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15682, 230506, 230500, '宝山区', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15683, 230506004, 230506, '七星街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15684, 230506101, 230506, '七星镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15685, 230506003, 230506, '东保卫街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15686, 230506005, 230506, '双阳街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15687, 230506500, 230506, '双鸭山农场', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15688, 230506006, 230506, '新安街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15689, 230506007, 230506, '电厂街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15690, 230506001, 230506, '红旗街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15691, 230506002, 230506, '跃进街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15692, 230502, 230500, '尖山区', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15693, 230502003, 230502, '中心站街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15694, 230502001, 230502, '二马路街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15695, 230502002, 230502, '八马路街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15696, 230502005, 230502, '学府街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15697, 230502200, 230502, '安邦乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15698, 230502004, 230502, '富安街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15699, 230502007, 230502, '铁西街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15700, 230502006, 230502, '长安街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15701, 230521, 230500, '集贤县', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15702, 230521103, 230521, '丰乐镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15703, 230521500, 230521, '二九一农场', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15704, 230521202, 230521, '兴安乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15705, 230521102, 230521, '升昌镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15706, 230521104, 230521, '太平镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15707, 230521204, 230521, '永安乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15708, 230521100, 230521, '福利镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15709, 230521201, 230521, '腰屯乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15710, 230521101, 230521, '集贤镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15711, 230521580, 230521, '黑龙江省双鸭山监狱', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15712, 230503, 230500, '岭东区', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15713, 230503004, 230503, '东山街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15714, 230503001, 230503, '中山街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15715, 230503005, 230503, '中心街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15716, 230503002, 230503, '北山街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15717, 230503003, 230503, '南山街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15718, 230503006, 230503, '西山街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15719, 230503200, 230503, '长胜乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15720, 230524, 230500, '饶河县', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15721, 230524103, 230524, '五林洞镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15722, 230524502, 230524, '八五九农场', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15723, 230524201, 230524, '四排乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15724, 230524203, 230524, '大佳河乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15725, 230524207, 230524, '大通河乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15726, 230524101, 230524, '小佳河镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15727, 230524204, 230524, '山里乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15728, 230524504, 230524, '红卫农场', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15729, 230524501, 230524, '红旗岭农场', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15730, 230524503, 230524, '胜利农场', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15731, 230524102, 230524, '西丰镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15732, 230524200, 230524, '西林子乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15733, 230524100, 230524, '饶河镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15734, 230505, 230500, '四方台区', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15735, 230505005, 230505, '东荣街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15736, 230505101, 230505, '太保镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15737, 230505002, 230505, '振兴东路街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15738, 230505001, 230505, '振兴中路街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15739, 230505004, 230505, '集贤街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15740, 230522, 230500, '友谊县', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15741, 230522201, 230522, '东建乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15742, 230522200, 230522, '兴盛乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15743, 230522101, 230522, '兴隆镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15744, 230522103, 230522, '凤岗镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15745, 230522100, 230522, '友谊镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15746, 230522204, 230522, '友邻乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15747, 230522202, 230522, '庆丰乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15748, 230522203, 230522, '建设乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15749, 230522206, 230522, '成富朝鲜族满族乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15750, 230522205, 230522, '新镇乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15751, 230522102, 230522, '龙山镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15752, 231200, 23, '绥化市', 1, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15753, 231281, 231200, '安达市', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15754, 231281103, 231281, '万宝山镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15755, 231281108, 231281, '中本镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15756, 231281101, 231281, '任民镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15757, 231281209, 231281, '先源乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15758, 231281105, 231281, '升平镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15759, 231281204, 231281, '卧里屯镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15760, 231281205, 231281, '古大湖镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15761, 231281110, 231281, '吉星岗镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15762, 231281109, 231281, '太平庄镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15763, 231281003, 231281, '安虹街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15764, 231281500, 231281, '安达畜牧场', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15765, 231281100, 231281, '安达镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15766, 231281002, 231281, '新兴街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15767, 231281104, 231281, '昌德镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15768, 231281202, 231281, '火石山镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15769, 231281106, 231281, '羊草镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15770, 231281107, 231281, '老虎岗镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15771, 231281001, 231281, '铁西街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15772, 231202, 231200, '北林区', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15773, 231202024, 231202, '三井镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15774, 231202015, 231202, '三河镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15775, 231202005, 231202, '东兴街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15776, 231202031, 231202, '东城街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15777, 231202023, 231202, '东富镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15778, 231202019, 231202, '东津镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15779, 231202025, 231202, '五营乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15780, 231202029, 231202, '先锋街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15781, 231202026, 231202, '兴和乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15782, 231202022, 231202, '兴福镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15783, 231202006, 231202, '北林街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15784, 231202034, 231202, '北辰街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15785, 231202014, 231202, '双河镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15786, 231202004, 231202, '吉泰街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15787, 231202016, 231202, '四方台镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15788, 231202003, 231202, '大有街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15789, 231202012, 231202, '太平川镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15790, 231202008, 231202, '宝山镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15791, 231202032, 231202, '康庄街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15792, 231202018, 231202, '张维镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15793, 231202021, 231202, '新华乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15794, 231202030, 231202, '春雷街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15795, 231202033, 231202, '朝旭街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15796, 231202011, 231202, '永安镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15797, 231202017, 231202, '津河镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15798, 231202002, 231202, '爱路街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15799, 231202013, 231202, '秦家镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15800, 231202001, 231202, '紫来街道', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15801, 231202027, 231202, '红旗乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15802, 231202009, 231202, '绥胜镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15803, 231202010, 231202, '西长发镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15804, 231202020, 231202, '连岗乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15805, 231283, 231200, '海伦市', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15806, 231283401, 231283, '东方红水库地区', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15807, 231283205, 231283, '东林乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15808, 231283106, 231283, '东风镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15809, 231283212, 231283, '丰山乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15810, 231283210, 231283, '乐业乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15811, 231283102, 231283, '伦河镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15812, 231283103, 231283, '共合镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15813, 231283209, 231283, '共荣镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15814, 231283202, 231283, '前进镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15815, 231283221, 231283, '双录乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15816, 231283203, 231283, '向荣镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15817, 231283220, 231283, '扎音河乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15818, 231283217, 231283, '永和乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15819, 231283213, 231283, '永富镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15820, 231283500, 231283, '海伦农场', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15821, 231283100, 231283, '海伦镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15822, 231283104, 231283, '海兴镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15823, 231283101, 231283, '海北镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15824, 231283208, 231283, '海南乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15825, 231283218, 231283, '爱民乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15826, 231283215, 231283, '百祥镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15827, 231283105, 231283, '祥富镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15828, 231283211, 231283, '福民乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15829, 231283501, 231283, '红光农场', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15830, 231283216, 231283, '联发镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15831, 231283204, 231283, '长发镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15832, 231222, 231200, '兰西县', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15833, 231222103, 231222, '临江镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15834, 231222204, 231222, '兰河乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15835, 231222101, 231222, '兰西镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15836, 231222202, 231222, '北安乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15837, 231222211, 231222, '奋斗乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15838, 231222104, 231222, '平山镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15839, 231222200, 231222, '康荣镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15840, 231222210, 231222, '星火乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15841, 231222102, 231222, '榆林镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15842, 231222201, 231222, '燎原镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15843, 231222206, 231222, '红光镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15844, 231222205, 231222, '红星乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15845, 231222209, 231222, '远大镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15846, 231222207, 231222, '长岗乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15847, 231222203, 231222, '长江乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15848, 231225, 231200, '明水县', 2, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15849, 231225205, 231225, '光荣乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15850, 231225101, 231225, '兴仁镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15851, 231225201, 231225, '双兴镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15852, 231225103, 231225, '崇德镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15853, 231225100, 231225, '明水镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15854, 231225204, 231225, '树人乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15855, 231225203, 231225, '永久乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15856, 231225102, 231225, '永兴镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15857, 231225206, 231225, '繁荣乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15858, 231225208, 231225, '育林乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15859, 231225207, 231225, '通泉乡', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15860, 231225104, 231225, '通达镇', 3, '2022-03-28 15:28:52', '2022-03-28 15:28:52', NULL); +INSERT INTO `address` VALUES (15861, 231224, 231200, '庆安县', 2, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15862, 231224206, 231224, '丰收乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15863, 231224106, 231224, '久胜镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15864, 231224105, 231224, '勤劳镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15865, 231224208, 231224, '发展乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15866, 231224209, 231224, '同乐镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15867, 231224103, 231224, '大罗镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15868, 231224202, 231224, '巨宝山乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15869, 231224104, 231224, '平安镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15870, 231224400, 231224, '庆安国有林场管理局', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15871, 231224101, 231224, '庆安镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15872, 231224201, 231224, '建民乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15873, 231224204, 231224, '柳河镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15874, 231224211, 231224, '欢胜乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15875, 231224102, 231224, '民乐镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15876, 231224210, 231224, '致富乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15877, 231223, 231200, '青冈县', 2, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15878, 231223101, 231223, '中和镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15879, 231223103, 231223, '兴华镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15880, 231223201, 231223, '劳动镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15881, 231223202, 231223, '建设乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15882, 231223209, 231223, '德胜镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15883, 231223203, 231223, '新村乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15884, 231223206, 231223, '昌盛镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15885, 231223106, 231223, '柞岗镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15886, 231223107, 231223, '民政镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15887, 231223104, 231223, '永丰镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15888, 231223102, 231223, '祯祥镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15889, 231223105, 231223, '芦河镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15890, 231223211, 231223, '迎春镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15891, 231223212, 231223, '连丰乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15892, 231223100, 231223, '青冈镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15893, 231226, 231200, '绥棱县', 2, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15894, 231226101, 231226, '上集镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15895, 231226205, 231226, '克音河乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15896, 231226103, 231226, '双岔河镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15897, 231226201, 231226, '后头乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15898, 231226102, 231226, '四海店镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15899, 231226207, 231226, '泥尔河乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15900, 231226206, 231226, '绥中乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15901, 231226500, 231226, '绥棱农场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15902, 231226404, 231226, '绥棱县林业局', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15903, 231226100, 231226, '绥棱镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15904, 231226203, 231226, '长山镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15905, 231226210, 231226, '阁山镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15906, 231226200, 231226, '靠山乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15907, 231221, 231200, '望奎县', 2, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15908, 231221209, 231221, '东升乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15909, 231221201, 231221, '东郊镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15910, 231221106, 231221, '先锋镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15911, 231221102, 231221, '卫星镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15912, 231221211, 231221, '厢白满族乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15913, 231221203, 231221, '后三乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15914, 231221210, 231221, '恭六乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15915, 231221105, 231221, '惠七满族镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15916, 231221100, 231221, '望奎镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15917, 231221103, 231221, '海丰镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15918, 231221107, 231221, '火箭镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15919, 231221207, 231221, '灯塔镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15920, 231221202, 231221, '灵山满族乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15921, 231221104, 231221, '莲花镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15922, 231221101, 231221, '通江镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15923, 231282, 231200, '肇东市', 2, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15924, 231282002, 231282, '东升区办事处', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15925, 231282103, 231282, '五站镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15926, 231282109, 231282, '五里明镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15927, 231282204, 231282, '向阳乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15928, 231282107, 231282, '四站镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15929, 231282201, 231282, '太平乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15930, 231282105, 231282, '姜家镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15931, 231282214, 231282, '安民乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15932, 231282102, 231282, '宋站镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15933, 231282213, 231282, '宣化乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15934, 231282104, 231282, '尚家镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15935, 231282212, 231282, '德昌乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15936, 231282101, 231282, '昌五镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15937, 231282215, 231282, '明久乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15938, 231282001, 231282, '朝阳区办事处', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15939, 231282004, 231282, '正阳区办事处', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15940, 231282205, 231282, '洪河乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15941, 231282203, 231282, '海城镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15942, 231282108, 231282, '涝洲镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15943, 231282100, 231282, '肇东镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15944, 231282211, 231282, '西八里镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15945, 231282003, 231282, '西园区办事处', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15946, 231282206, 231282, '跃进乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15947, 231282106, 231282, '里木店镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15948, 231282110, 231282, '黎明镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15949, 230700, 23, '伊春市', 1, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15950, 230725, 230700, '大箐山县', 2, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15951, 230725401, 230725, '东方红林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15952, 230725407, 230725, '北列林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15953, 230725408, 230725, '南列林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15954, 230725400, 230725, '大青川林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15955, 230725409, 230725, '寒月林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15956, 230725001, 230725, '带岭街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15957, 230725415, 230725, '明月林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15958, 230725416, 230725, '朗乡镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15959, 230725403, 230725, '永翠林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15960, 230725402, 230725, '秀水林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15961, 230725405, 230725, '红光林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15962, 230722, 230700, '嘉荫县', 2, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15963, 230722101, 230722, '乌云镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15964, 230722102, 230722, '乌拉嘎镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15965, 230722103, 230722, '保兴镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15966, 230722201, 230722, '向阳乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15967, 230722200, 230722, '常胜乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15968, 230722100, 230722, '朝阳镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15969, 230722202, 230722, '沪嘉乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15970, 230722203, 230722, '红光乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15971, 230722205, 230722, '青山乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15972, 230751, 230700, '金林区', 2, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15973, 230751101, 230751, '奋斗街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15974, 230751003, 230751, '新兴街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15975, 230751005, 230751, '苔青街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15976, 230751001, 230751, '西林街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15977, 230751102, 230751, '金山街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15978, 230703, 230700, '南岔县', 2, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15979, 230726005, 230703, '东升街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15980, 230726406, 230703, '奋斗经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15981, 230726101, 230703, '晨明镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15982, 230726102, 230703, '浩良河镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15983, 230726004, 230703, '联合街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15984, 230726002, 230703, '西水街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15985, 230726200, 230703, '迎春乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15986, 230723, 230700, '汤旺县', 2, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15987, 230723418, 230723, '上游林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15988, 230723402, 230723, '东升林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15989, 230723412, 230723, '中心苗卜', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15990, 230723415, 230723, '乌伊岭街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15991, 230723405, 230723, '二清河林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15992, 230723403, 230723, '二龙山林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15993, 230723408, 230723, '峻岭林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15994, 230723419, 230723, '建新林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15995, 230723400, 230723, '日新林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15996, 230723420, 230723, '林海林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15997, 230723422, 230723, '桔源经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15998, 230723426, 230723, '永胜经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (15999, 230723002, 230723, '河北街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16000, 230723001, 230723, '河南街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16001, 230723401, 230723, '石林林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16002, 230723425, 230723, '移山林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16003, 230723417, 230723, '美峰林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16004, 230723404, 230723, '高峰林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16005, 230781, 230700, '铁力市', 2, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16006, 230781101, 230781, '双丰镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16007, 230781201, 230781, '工农乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16008, 230781200, 230781, '年丰乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16009, 230781102, 230781, '桃山镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16010, 230781202, 230781, '王杨乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16011, 230781100, 230781, '铁力镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16012, 230724, 230700, '丰林县', 2, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16013, 230724425, 230724, '三杨林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16014, 230724438, 230724, '丽林经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16015, 230724418, 230724, '二杨经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16016, 230724423, 230724, '五星河经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16017, 230724430, 230724, '五星街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16018, 230724429, 230724, '五营街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16019, 230724419, 230724, '共青经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16020, 230724003, 230724, '兴安街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16021, 230724432, 230724, '前丰林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16022, 230724436, 230724, '平原经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16023, 230724437, 230724, '平山经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16024, 230724001, 230724, '新青街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16025, 230724433, 230724, '杨树河经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16026, 230724401, 230724, '松林林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16027, 230724407, 230724, '桦林经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16028, 230724434, 230724, '永丰经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16029, 230724427, 230724, '汤北林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16030, 230724417, 230724, '汤南林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16031, 230724406, 230724, '汤林林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16032, 230724422, 230724, '汤洪岭林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16033, 230724402, 230724, '泉林林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16034, 230724416, 230724, '红星街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16035, 230724004, 230724, '红林经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16036, 230724408, 230724, '青林林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16037, 230718, 230700, '乌翠区', 2, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16038, 230718410, 230718, '东方红农场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16039, 230718403, 230718, '么河经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16040, 230718409, 230718, '乌马河街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16041, 230718404, 230718, '冲锋经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16042, 230718417, 230718, '前进经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16043, 230718001, 230718, '向阳街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16044, 230718416, 230718, '安全经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16045, 230718407, 230718, '尖山河经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16046, 230718402, 230718, '开源河林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16047, 230718406, 230718, '抚育河经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16048, 230718401, 230718, '昆仑气林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16049, 230718002, 230718, '曙光街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16050, 230718411, 230718, '翠岭经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16051, 230718405, 230718, '翠峦河经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16052, 230718412, 230718, '育苗经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16053, 230718415, 230718, '西岭林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16054, 230718400, 230718, '解放经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16055, 230718418, 230718, '青山林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16056, 230717, 230700, '伊美区', 2, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16057, 230717008, 230717, '东升镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16058, 230717106, 230717, '五道库经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16059, 230717102, 230717, '伊东经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16060, 230717100, 230717, '伊敏林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16061, 230717101, 230717, '伊林经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16062, 230717110, 230717, '兰新经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16063, 230717006, 230717, '前进街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16064, 230717118, 230717, '卧龙河林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16065, 230717105, 230717, '大西林林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16066, 230717108, 230717, '对青山经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16067, 230717001, 230717, '旭日街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16068, 230717007, 230717, '朝阳街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16069, 230717112, 230717, '松岭经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16070, 230717115, 230717, '桦皮羌子林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16071, 230717116, 230717, '碧仓库林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16072, 230717004, 230717, '红升街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16073, 230717103, 230717, '美溪区城区', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16074, 230717104, 230717, '美溪街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16075, 230717114, 230717, '金沙河林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16076, 230717113, 230717, '青山口林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16077, 230717111, 230717, '顺利河林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16078, 230704, 230700, '友好区', 2, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16079, 230719400, 230704, '三合经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16080, 230719409, 230704, '东卡林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16081, 230719402, 230704, '中心经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16082, 230719427, 230704, '卫国林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16083, 230719001, 230704, '友好街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16084, 230719405, 230704, '友谊经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16085, 230719003, 230704, '双子河街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16086, 230719412, 230704, '广川经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16087, 230719413, 230704, '朝阳经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16088, 230719401, 230704, '松园林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16089, 230719419, 230704, '查山经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16090, 230719423, 230704, '永绪经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16091, 230719403, 230704, '永青经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16092, 230719421, 230704, '溪水经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16093, 230719404, 230704, '碧云经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16094, 230719425, 230704, '红山经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16095, 230719415, 230704, '红山街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16096, 230719411, 230704, '绿源林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16097, 230719426, 230704, '美林经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16098, 230719422, 230704, '蔚兰经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16099, 230719004, 230704, '铁林街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16100, 230719420, 230704, '长青经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16101, 230719424, 230704, '青山农场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16102, 230719406, 230704, '青杨经营所', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16103, 230719410, 230704, '鸡爪河林场', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16104, 41, 0, '河南省', 0, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16105, 410500, 41, '安阳市', 1, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16106, 410522, 410500, '安阳县', 2, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16107, 410522107, 410522, '伦掌镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16108, 410522118, 410522, '北郭乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16109, 410522106, 410522, '吕村镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16110, 410522115, 410522, '安丰乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16111, 410522108, 410522, '崔家桥镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16112, 410522105, 410522, '曲沟镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16113, 410522101, 410522, '水冶镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16114, 410522112, 410522, '永和镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16115, 410522116, 410522, '洪河屯乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16116, 410522117, 410522, '瓦店乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16117, 410522104, 410522, '白璧镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16118, 410522113, 410522, '磊口乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16119, 410522114, 410522, '许家沟乡', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16120, 410522109, 410522, '辛村镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16121, 410522111, 410522, '都里镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16122, 410522102, 410522, '铜冶镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16123, 410522110, 410522, '韩陵镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16124, 410522103, 410522, '高庄镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16125, 410503, 410500, '北关区', 2, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16126, 410503008, 410503, '彰东街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16127, 410503009, 410503, '彰北街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16128, 410503011, 410503, '曙光路街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16129, 410503105, 410503, '柏庄镇', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16130, 410503010, 410503, '民航路街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16131, 410503006, 410503, '洹北街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16132, 410503004, 410503, '灯塔路街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16133, 410503001, 410503, '红旗路街道', 3, '2022-03-28 15:28:53', '2022-03-28 15:28:53', NULL); +INSERT INTO `address` VALUES (16134, 410503003, 410503, '解放路街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16135, 410503005, 410503, '豆腐营街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16136, 410526, 410500, '滑县', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16137, 410526106, 410526, '万古镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16138, 410526104, 410526, '上官镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16139, 410526202, 410526, '八里营镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16140, 410526211, 410526, '半坡店镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16141, 410526201, 410526, '四间房镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16142, 410526101, 410526, '城关街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16143, 410526204, 410526, '大寨乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16144, 410526212, 410526, '小铺乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16145, 410526208, 410526, '慈周寨镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16146, 410526200, 410526, '枣村乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16147, 410526205, 410526, '桑村乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16148, 410526210, 410526, '焦虎镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16149, 410526105, 410526, '牛屯镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16150, 410526108, 410526, '王庄镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16151, 410526209, 410526, '瓦岗寨乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16152, 410526103, 410526, '留固镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16153, 410526102, 410526, '白道口镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16154, 410526109, 410526, '老店镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16155, 410526206, 410526, '老爷庙乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16156, 410526203, 410526, '赵营镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16157, 410526100, 410526, '道口镇街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16158, 410526400, 410526, '锦和街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16159, 410526107, 410526, '高平镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16160, 410581, 410500, '林州市', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16161, 410581103, 410581, '东姚镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16162, 410581112, 410581, '东岗镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16163, 410581102, 410581, '临淇镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16164, 410581110, 410581, '五龙镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16165, 410581106, 410581, '任村镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16166, 410581109, 410581, '原康镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16167, 410581101, 410581, '合涧镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16168, 410581107, 410581, '姚村镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16169, 410581001, 410581, '开元街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16170, 410581002, 410581, '振林街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16171, 410581004, 410581, '桂园街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16172, 410581113, 410581, '桂林镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16173, 410581104, 410581, '横水镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16174, 410581105, 410581, '河顺镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16175, 410581203, 410581, '石板岩镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16176, 410581202, 410581, '茶店乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16177, 410581111, 410581, '采桑镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16178, 410581108, 410581, '陵阳镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16179, 410581200, 410581, '黄华镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16180, 410581003, 410581, '龙山街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16181, 410506, 410500, '龙安区', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16182, 410506201, 410506, '东风乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16183, 410506006, 410506, '中州路街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16184, 410506103, 410506, '善应镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16185, 410506005, 410506, '太行小区街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16186, 410506002, 410506, '彰武街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16187, 410506003, 410506, '文昌大道街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16188, 410506004, 410506, '文明大道街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16189, 410506001, 410506, '田村街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16190, 410506205, 410506, '马家乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16191, 410506101, 410506, '马投涧镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16192, 410506100, 410506, '龙泉镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16193, 410527, 410500, '内黄县', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16194, 410527101, 410527, '东庄镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16195, 410527206, 410527, '中召乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16196, 410527204, 410527, '二安乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16197, 410527102, 410527, '井店镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16198, 410527203, 410527, '亳城镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16199, 410527205, 410527, '六村乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16200, 410527104, 410527, '后河镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16201, 410527100, 410527, '城关镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16202, 410527207, 410527, '宋村乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16203, 410527200, 410527, '张龙乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16204, 410527103, 410527, '梁庄镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16205, 410527105, 410527, '楚旺镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16206, 410527106, 410527, '田氏镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16207, 410527209, 410527, '石盘屯乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16208, 410527210, 410527, '豆公镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16209, 410527201, 410527, '马上乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16210, 410527202, 410527, '高堤乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16211, 410523, 410500, '汤阴县', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16212, 410523103, 410523, '五陵镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16213, 410523102, 410523, '任固镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16214, 410523106, 410523, '伏道镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16215, 410523108, 410523, '古贤镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16216, 410523100, 410523, '城关镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16217, 410523104, 410523, '宜沟镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16218, 410523203, 410523, '瓦岗乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16219, 410523105, 410523, '白营镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16220, 410523101, 410523, '菜园镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16221, 410523107, 410523, '韩庄镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16222, 410502, 410500, '文峰区', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16223, 410502004, 410502, '东关街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16224, 410502001, 410502, '东大街街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16225, 410502015, 410502, '中华路街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16226, 410502013, 410502, '光华路街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16227, 410502008, 410502, '北大街街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16228, 410502005, 410502, '南关街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16229, 410502565, 410502, '商颂大街街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16230, 410502002, 410502, '头二三道街街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16231, 410502101, 410502, '宝莲寺镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16232, 410502563, 410502, '峨嵋大街街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16233, 410502014, 410502, '永明路街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16234, 410502003, 410502, '甜水井街街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16235, 410502012, 410502, '紫薇大道街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16236, 410502011, 410502, '西关街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16237, 410502006, 410502, '西大街街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16238, 410502564, 410502, '银杏大街街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16239, 410505, 410500, '殷都区', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16240, 410505008, 410505, '北蒙街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16241, 410505001, 410505, '梅园庄街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16242, 410505007, 410505, '清风街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16243, 410505003, 410505, '电厂路街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16244, 410505009, 410505, '相台街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16245, 410505004, 410505, '纱厂路街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16246, 410505200, 410505, '西郊乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16247, 410505005, 410505, '铁西路街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16248, 410600, 41, '鹤壁市', 1, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16249, 410602, 410600, '鹤山区', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16250, 410602001, 410602, '中北街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16251, 410602002, 410602, '中山路街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16252, 410602005, 410602, '九矿广场街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16253, 410602201, 410602, '姬家山乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16254, 410602003, 410602, '新华街街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16255, 410602100, 410602, '鹤壁集镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16256, 410602004, 410602, '鹤山街街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16257, 410622, 410600, '淇县', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16258, 410622102, 410622, '北阳镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16259, 410622002, 410622, '卫都街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16260, 410622104, 410622, '庙口镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16261, 410622001, 410622, '朝歌街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16262, 410622004, 410622, '桥盟街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16263, 410622003, 410622, '灵山街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16264, 410622103, 410622, '西岗镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16265, 410622101, 410622, '高村镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16266, 410622202, 410622, '黄洞乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16267, 410611, 410600, '淇滨区', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16268, 410611200, 410611, '上峪乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16269, 410611560, 410611, '九州路街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16270, 410611201, 410611, '大河涧乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16271, 410611100, 410611, '大赉店镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16272, 410611001, 410611, '金山办事处', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16273, 410611101, 410611, '钜桥镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16274, 410611562, 410611, '长江路街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16275, 410611561, 410611, '黎阳路街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16276, 410603, 410600, '山城区', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16277, 410603007, 410603, '大胡街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16278, 410603006, 410603, '宝山街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16279, 410603003, 410603, '山城路街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16280, 410603004, 410603, '汤河桥街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16281, 410603008, 410603, '石林镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16282, 410603001, 410603, '红旗街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16283, 410603002, 410603, '长风中路街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16284, 410603005, 410603, '鹿楼街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16285, 410621, 410600, '浚县', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16286, 410621004, 410621, '伾山街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16287, 410621001, 410621, '卫溪街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16288, 410621107, 410621, '卫贤镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16289, 410621101, 410621, '善堂镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16290, 410621105, 410621, '小河镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16291, 410621102, 410621, '屯子镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16292, 410621109, 410621, '新镇镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16293, 410621002, 410621, '浚州街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16294, 410621108, 410621, '王庄镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16295, 410621201, 410621, '白寺镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16296, 410621003, 410621, '黎阳街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16297, 410800, 41, '焦作市', 1, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16298, 410822, 410800, '博爱县', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16299, 410822106, 410822, '孝敬镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16300, 410822200, 410822, '寨豁乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16301, 410822102, 410822, '月山镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16302, 410822101, 410822, '柏山镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16303, 410822100, 410822, '清化街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16304, 410822105, 410822, '磨头镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16305, 410822103, 410822, '许良镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16306, 410822203, 410822, '金城乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16307, 410822402, 410822, '鸿昌街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16308, 410802, 410800, '解放区', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16309, 410802007, 410802, '七百间街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16310, 410802008, 410802, '上白作街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16311, 410802003, 410802, '新华街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16312, 410802002, 410802, '民主街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16313, 410802001, 410802, '民生街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16314, 410802006, 410802, '焦北街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16315, 410802005, 410802, '焦南街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16316, 410802004, 410802, '焦西街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16317, 410802009, 410802, '王褚街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16318, 410804, 410800, '马村区', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16319, 410804004, 410804, '九里山街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16320, 410804003, 410804, '冯营街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16321, 410804002, 410804, '北山街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16322, 410804006, 410804, '安阳城街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16323, 410804005, 410804, '待王街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16324, 410804007, 410804, '演马街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16325, 410804001, 410804, '马村街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16326, 410883, 410800, '孟州市', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16327, 410883002, 410883, '会昌街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16328, 410883100, 410883, '化工镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16329, 410883101, 410883, '南庄镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16330, 410883102, 410883, '城伯镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16331, 410883001, 410883, '大定街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16332, 410883201, 410883, '槐树乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16333, 410883004, 410883, '河阳街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16334, 410883003, 410883, '河雍街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16335, 410883105, 410883, '西虢镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16336, 410883103, 410883, '谷旦镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16337, 410883104, 410883, '赵和镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16338, 410882, 410800, '沁阳市', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16339, 410882003, 410882, '太行街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16340, 410882104, 410882, '山王庄镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16341, 410882100, 410882, '崇义镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16342, 410882200, 410882, '常平乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16343, 410882002, 410882, '怀庆街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16344, 410882103, 410882, '柏香镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16345, 410882004, 410882, '沁园街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16346, 410882201, 410882, '王召乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16347, 410882202, 410882, '王曲乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16348, 410882105, 410882, '紫陵镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16349, 410882102, 410882, '西万镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16350, 410882101, 410882, '西向镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16351, 410882001, 410882, '覃怀街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16352, 410811, 410800, '山阳区', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16353, 410811001, 410811, '东方红街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16354, 410811008, 410811, '中星街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16355, 410811006, 410811, '光亚街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16356, 410811004, 410811, '太行街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16357, 410811101, 410811, '宁郭镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16358, 410811007, 410811, '定和街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16359, 410811061, 410811, '文苑街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16360, 410811009, 410811, '新城街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16361, 410811060, 410811, '李万街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16362, 410811002, 410811, '焦东街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16363, 410811003, 410811, '百间房街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16364, 410811005, 410811, '艺新街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16365, 410811200, 410811, '苏家作乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16366, 410811100, 410811, '阳庙镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16367, 410825, 410800, '温县', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16368, 410825203, 410825, '北冷乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16369, 410825200, 410825, '岳村街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16370, 410825107, 410825, '张羌街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16371, 410825201, 410825, '招贤乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16372, 410825105, 410825, '武德镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16373, 410825100, 410825, '温泉街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16374, 410825102, 410825, '番田镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16375, 410825101, 410825, '祥云镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16376, 410825106, 410825, '赵堡镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16377, 410825104, 410825, '黄庄镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16378, 410825401, 410825, '黄河街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16379, 410823, 410800, '武陟县', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16380, 410823203, 410823, '三阳乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16381, 410823201, 410823, '乔庙镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16382, 410823206, 410823, '北郭乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16383, 410823200, 410823, '嘉应观乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16384, 410823202, 410823, '圪垱店镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16385, 410823104, 410823, '大封镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16386, 410823205, 410823, '大虹桥乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16387, 410823204, 410823, '小董乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16388, 410823002, 410823, '木城街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16389, 410823004, 410823, '木栾街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16390, 410823102, 410823, '西陶镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16391, 410823101, 410823, '詹店镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16392, 410823103, 410823, '谢旗营镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16393, 410823003, 410823, '龙泉街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16394, 410823001, 410823, '龙源街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16395, 410821, 410800, '修武县', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16396, 410821101, 410821, '七贤镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16397, 410821103, 410821, '云台山镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16398, 410821204, 410821, '五里源乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16399, 410821104, 410821, '周庄镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16400, 410821100, 410821, '城关镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16401, 410821400, 410821, '小营工贸区', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16402, 410821202, 410821, '王屯乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16403, 410821206, 410821, '西村乡', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16404, 410821102, 410821, '郇封镇', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16405, 410803, 410800, '中站区', 2, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16406, 410803004, 410803, '冯封街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16407, 410803009, 410803, '府城街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16408, 410803003, 410803, '朱村街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16409, 410803001, 410803, '李封街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16410, 410803002, 410803, '王封街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16411, 410803008, 410803, '许衡街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16412, 410803005, 410803, '龙洞街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16413, 410803010, 410803, '龙翔街道', 3, '2022-03-28 15:28:54', '2022-03-28 15:28:54', NULL); +INSERT INTO `address` VALUES (16414, 419001, 419001, '济源市', 2, '2022-03-28 15:28:54', '2022-03-29 10:36:20', NULL); +INSERT INTO `address` VALUES (16415, 419001017, 419001, '下冶镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16416, 419001008, 419001, '五龙口镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16417, 419001006, 419001, '克井镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16418, 419001003, 419001, '北海街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16419, 419001012, 419001, '坡头镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16420, 419001014, 419001, '大峪镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16421, 419001004, 419001, '天坛街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16422, 419001015, 419001, '思礼镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16423, 419001010, 419001, '承留镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16424, 419001013, 419001, '梨林镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16425, 419001001, 419001, '沁园街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16426, 419001002, 419001, '济水街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16427, 419001007, 419001, '玉泉街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16428, 419001016, 419001, '王屋镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16429, 419001009, 419001, '轵城镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16430, 419001011, 419001, '邵原镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16431, 410200, 41, '开封市', 1, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16432, 410204, 410200, '鼓楼区', 2, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16433, 410204007, 410204, '五一街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16434, 410204008, 410204, '仙人庄街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16435, 410204006, 410204, '南苑街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16436, 410204003, 410204, '卧龙街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16437, 410204004, 410204, '州桥街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16438, 410204002, 410204, '新华街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16439, 410204001, 410204, '相国寺街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16440, 410204005, 410204, '西司门街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16441, 410225, 410200, '兰考县', 2, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16442, 410225201, 410225, '三义寨乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16443, 410225202, 410225, '东坝头镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16444, 410225210, 410225, '仪封镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16445, 410225100, 410225, '兰阳街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16446, 410225102, 410225, '南彰镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16447, 410225101, 410225, '堌阳镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16448, 410225206, 410225, '孟寨乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16449, 410225205, 410225, '小宋镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16450, 410225407, 410225, '惠安街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16451, 410225200, 410225, '桐乡街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16452, 410225104, 410225, '红庙镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16453, 410225103, 410225, '考城镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16454, 410225208, 410225, '葡萄架乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16455, 410225207, 410225, '许河乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16456, 410225204, 410225, '谷营镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16457, 410225209, 410225, '闫楼乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16458, 410202, 410200, '龙亭区', 2, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16459, 410202001, 410202, '北书店街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16460, 410202004, 410202, '北道门街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16461, 410202009, 410202, '北郊乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16462, 410202002, 410202, '午朝门街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16463, 410202006, 410202, '城西街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16464, 410202003, 410202, '大兴街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16465, 410202013, 410202, '杏花营农场', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16466, 410202008, 410202, '杏花营镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16467, 410202010, 410202, '柳园口乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16468, 410202007, 410202, '梁苑街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16469, 410202012, 410202, '水稻乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16470, 410202011, 410202, '西郊乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16471, 410202016, 410202, '金明池街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16472, 410221, 410200, '杞县', 2, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16473, 410221103, 410221, '于镇镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16474, 410221101, 410221, '五里河镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16475, 410221102, 410221, '付集镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16476, 410221213, 410221, '城郊乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16477, 410221202, 410221, '宗店乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16478, 410221205, 410221, '官庄乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16479, 410221209, 410221, '平城乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16480, 410221203, 410221, '板木乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16481, 410221211, 410221, '柿园乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16482, 410221208, 410221, '沙沃乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16483, 410221210, 410221, '泥沟乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16484, 410221206, 410221, '湖岗乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16485, 410221204, 410221, '竹林乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16486, 410221207, 410221, '苏木乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16487, 410221105, 410221, '葛岗镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16488, 410221200, 410221, '裴村店乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16489, 410221212, 410221, '西寨乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16490, 410221107, 410221, '邢口镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16491, 410221100, 410221, '金城街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16492, 410221106, 410221, '阳堌镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16493, 410221104, 410221, '高阳镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16494, 410203, 410200, '顺河回族区', 2, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16495, 410203200, 410203, '东苑街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16496, 410203201, 410203, '土柏岗街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16497, 410203004, 410203, '宋门街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16498, 410203005, 410203, '工业街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16499, 410203003, 410203, '曹门街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16500, 410203001, 410203, '清平街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16501, 410203006, 410203, '苹果园街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16502, 410203002, 410203, '铁塔街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16503, 410222, 410200, '通许县', 2, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16504, 410222200, 410222, '冯庄乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16505, 410222205, 410222, '厉庄乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16506, 410222100, 410222, '咸平街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16507, 410222103, 410222, '四所楼镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16508, 410222202, 410222, '大岗李乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16509, 410222201, 410222, '孙营乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16510, 410222104, 410222, '朱砂镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16511, 410222102, 410222, '玉皇庙镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16512, 410222101, 410222, '竖岗镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16513, 410222204, 410222, '练城乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16514, 410222203, 410222, '邸阁乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16515, 410222105, 410222, '长智镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16516, 410223, 410200, '尉氏县', 2, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16517, 410223106, 410223, '十八里镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16518, 410223207, 410223, '南曹乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16519, 410223100, 410223, '城关镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16520, 410223206, 410223, '大桥乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16521, 410223108, 410223, '大营镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16522, 410223203, 410223, '大马乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16523, 410223208, 410223, '小陈乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16524, 410223204, 410223, '岗李乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16525, 410223201, 410223, '庄头乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16526, 410223105, 410223, '张市镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16527, 410223102, 410223, '朱曲镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16528, 410223107, 410223, '水坡镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16529, 410223104, 410223, '永兴镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16530, 410223101, 410223, '洧川镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16531, 410223103, 410223, '蔡庄镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16532, 410223200, 410223, '邢庄乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16533, 410223205, 410223, '门楼任乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16534, 410212, 410200, '祥符区', 2, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16535, 410212210, 410212, '万隆乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16536, 410212102, 410212, '仇楼镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16537, 410212103, 410212, '八里湾镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16538, 410212206, 410212, '兴隆乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16539, 410212203, 410212, '刘店乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16540, 410212200, 410212, '半坡店乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16541, 410212100, 410212, '城东街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16542, 410212104, 410212, '曲兴镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16543, 410212106, 410212, '朱仙镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16544, 410212205, 410212, '杜良乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16545, 410212202, 410212, '罗王镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16546, 410212211, 410212, '范村乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16547, 410212204, 410212, '袁坊乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16548, 410212208, 410212, '西姜寨乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16549, 410212101, 410212, '陈留镇', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16550, 410205, 410200, '禹王台区', 2, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16551, 410205001, 410205, '三里堡街道', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); +INSERT INTO `address` VALUES (16552, 410205200, 410205, '南郊乡', 3, '2022-03-28 15:28:55', '2022-03-28 15:28:55', NULL); + +-- ---------------------------- +-- Table structure for aws_system_statistics +-- ---------------------------- +DROP TABLE IF EXISTS `aws_system_statistics`; +CREATE TABLE `aws_system_statistics` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `date` datetime(3) NOT NULL COMMENT '统计日期', + `login_member_count` int(11) NOT NULL DEFAULT 0 COMMENT '登录用户数', + `register_member_count` int(11) NOT NULL DEFAULT 0 COMMENT '注册用户数', + `add_cart_member_count` int(11) NOT NULL DEFAULT 0 COMMENT '加购用户数', + `create_order_member_count` int(11) NOT NULL DEFAULT 0 COMMENT '下单用户数', + `deal_member_count` int(11) NOT NULL DEFAULT 0 COMMENT '成交用户数', + `order_count` int(11) NOT NULL DEFAULT 0 COMMENT '下单数', + `deal_count` int(11) NOT NULL DEFAULT 0 COMMENT '成交数', + `deal_amount` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '成交金额', + `aftersale_count` int(11) NOT NULL DEFAULT 0 COMMENT '售后数', + `aftersale_amount` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '售后金额', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 28 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统数据统计' ROW_FORMAT = Dynamic; + + +-- ---------------------------- +-- Table structure for gen_table +-- ---------------------------- +DROP TABLE IF EXISTS `gen_table`; +CREATE TABLE `gen_table` ( + `table_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号', + `table_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '表名称', + `table_comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '表描述', + `sub_table_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关联子表的表名', + `sub_table_fk_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '子表关联的外键名', + `class_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '实体类名称', + `tpl_category` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'crud' COMMENT '使用的模板(crud单表操作 tree树表操作)', + `package_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '生成包路径', + `module_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '生成模块名', + `business_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '生成业务名', + `function_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '生成功能名', + `function_author` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '生成功能作者', + `gen_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '生成代码方式(0zip压缩包 1自定义路径)', + `gen_path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '/' COMMENT '生成路径(不填默认项目路径)', + `options` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '其它生成选项', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`table_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 988 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '代码生成业务表' ROW_FORMAT = Dynamic; + + +-- ---------------------------- +-- Table structure for gen_table_column +-- ---------------------------- +DROP TABLE IF EXISTS `gen_table_column`; +CREATE TABLE `gen_table_column` ( + `column_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号', + `table_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '归属表编号', + `column_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '列名称', + `column_comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '列描述', + `column_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '列类型', + `java_type` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'JAVA类型', + `java_field` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'JAVA字段名', + `is_pk` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否主键(1是)', + `is_increment` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否自增(1是)', + `is_required` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否必填(1是)', + `is_insert` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否为插入字段(1是)', + `is_edit` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否编辑字段(1是)', + `is_list` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否列表字段(1是)', + `is_query` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否查询字段(1是)', + `query_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'EQ' COMMENT '查询方式(等于、不等于、大于、小于、范围)', + `html_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)', + `dict_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典类型', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`column_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 12677 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '代码生成业务表字段' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for oms_aftersale +-- ---------------------------- +DROP TABLE IF EXISTS `oms_aftersale`; +CREATE TABLE `oms_aftersale` ( + `id` bigint(20) NOT NULL, + `member_id` bigint(20) NOT NULL, + `order_id` bigint(20) NULL DEFAULT NULL COMMENT '订单id', + `return_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '退款金额', + `type` int(1) NULL DEFAULT NULL COMMENT '售后类型:1:退款,2:退货退款', + `status` int(1) NULL DEFAULT NULL COMMENT '申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝', + `handle_time` datetime(0) NULL DEFAULT NULL COMMENT '处理时间', + `quantity` int(11) NULL DEFAULT NULL COMMENT '退货数量', + `reason` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '原因', + `description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述', + `proof_pics` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '凭证图片,以逗号隔开', + `handle_note` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '处理备注', + `handle_man` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '处理人员', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单售后' ROW_FORMAT = Dynamic; + + +-- ---------------------------- +-- Table structure for oms_aftersale_item +-- ---------------------------- +DROP TABLE IF EXISTS `oms_aftersale_item`; +CREATE TABLE `oms_aftersale_item` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `member_id` bigint(20) NOT NULL, + `aftersale_id` bigint(20) NULL DEFAULT NULL COMMENT '售后单id', + `order_id` bigint(20) NULL DEFAULT NULL COMMENT '订单id', + `order_item_id` bigint(20) NULL DEFAULT NULL COMMENT '子订单id', + `return_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '退款金额', + `quantity` int(11) NULL DEFAULT NULL COMMENT '退货数量', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 31 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单售后' ROW_FORMAT = Dynamic; + + + +-- ---------------------------- +-- Table structure for oms_order +-- ---------------------------- +DROP TABLE IF EXISTS `oms_order`; +CREATE TABLE `oms_order` ( + `id` bigint(20) NOT NULL COMMENT '订单id', + `order_sn` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '订单编号', + `pay_id` bigint(20) NULL DEFAULT NULL COMMENT '支付id', + `member_id` bigint(20) NOT NULL, + `member_username` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户帐号', + `total_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '订单总金额', + `purchase_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '采购价', + `pay_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '应付金额(实际支付金额)', + `freight_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '运费金额', + `pay_type` int(1) NULL DEFAULT NULL COMMENT '支付方式:0->未支付;1->支付宝;2->微信', + `status` int(1) NULL DEFAULT NULL COMMENT '订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单', + `aftersale_status` int(1) NULL DEFAULT NULL COMMENT '退款状态,枚举值:1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功', + `delivery_company` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物流公司(配送方式)', + `delivery_sn` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物流单号', + `auto_confirm_day` int(11) NULL DEFAULT NULL COMMENT '自动确认时间(天)', + `receiver_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '收货人姓名', + `receiver_phone` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '收货人电话', + `receiver_post_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收货人邮编', + `receiver_province` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '省份/直辖市', + `receiver_city` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '城市', + `receiver_district` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区', + `receiver_province_id` bigint(20) NULL DEFAULT NULL COMMENT '省份/直辖市id', + `receiver_city_id` bigint(20) NULL DEFAULT NULL COMMENT '城市id', + `receiver_district_id` bigint(20) NULL DEFAULT NULL COMMENT '区id', + `receiver_detail_address` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '详细地址', + `note` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单备注', + `merchant_note` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商家备注', + `confirm_status` int(1) NULL DEFAULT NULL COMMENT '确认收货状态:0->未确认;1->已确认', + `delete_status` bit(1) NULL DEFAULT NULL COMMENT '删除状态:0->未删除;1->已删除', + `payment_time` datetime(0) NULL DEFAULT NULL COMMENT '支付时间', + `delivery_time` datetime(0) NULL DEFAULT NULL COMMENT '发货时间', + `receive_time` datetime(0) NULL DEFAULT NULL COMMENT '确认收货时间', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单表' ROW_FORMAT = Dynamic; + + +-- ---------------------------- +-- Table structure for oms_order_delivery_history +-- ---------------------------- +DROP TABLE IF EXISTS `oms_order_delivery_history`; +CREATE TABLE `oms_order_delivery_history` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `order_id` bigint(20) NULL DEFAULT NULL COMMENT '订单id', + `delivery_company` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物流公司(配送方式)', + `delivery_sn` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物流单号', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 22 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单发货记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for oms_order_item +-- ---------------------------- +DROP TABLE IF EXISTS `oms_order_item`; +CREATE TABLE `oms_order_item` ( + `id` bigint(20) NOT NULL, + `order_id` bigint(20) NULL DEFAULT NULL COMMENT '订单id', + `product_id` bigint(20) NULL DEFAULT NULL, + `out_product_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品编码', + `sku_id` bigint(20) NULL DEFAULT NULL COMMENT '商品sku id', + `out_sku_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'sku编码', + `product_snapshot_id` bigint(20) NULL DEFAULT NULL COMMENT '商品快照id', + `sku_snapshot_id` bigint(20) NULL DEFAULT NULL COMMENT 'sku快照id', + `pic` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '展示图片', + `product_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `sale_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '销售价格', + `purchase_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '采购价', + `quantity` int(11) NULL DEFAULT NULL COMMENT '购买数量', + `product_category_id` bigint(20) NULL DEFAULT NULL COMMENT '商品分类id', + `sp_data` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品sku属性:[{\"key\":\"颜色\",\"value\":\"颜色\"},{\"key\":\"容量\",\"value\":\"4G\"}]', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单中所包含的商品' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for oms_order_operate_history +-- ---------------------------- +DROP TABLE IF EXISTS `oms_order_operate_history`; +CREATE TABLE `oms_order_operate_history` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `order_id` bigint(20) NULL DEFAULT NULL COMMENT '订单id', + `order_sn` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单号', + `operate_man` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作人:用户;系统;后台管理员', + `order_status` int(1) NULL DEFAULT NULL COMMENT '订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 11->售后待处理;12->退货中;13->售后已完成;14->售后已拒绝', + `note` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 340 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单操作历史记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for oms_wechat_payment_history +-- ---------------------------- +DROP TABLE IF EXISTS `oms_wechat_payment_history`; +CREATE TABLE `oms_wechat_payment_history` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `payment_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'payment_id', + `member_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '用户 ID', + `openid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'OPENID', + `real_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '真实姓名,提现需要', + `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标题|商品名称', + `order_id` bigint(20) NOT NULL COMMENT '订单号 支付时是payId 其他为orderId', + `money` decimal(10, 2) NOT NULL COMMENT '金额,单位分', + `op_type` tinyint(1) NOT NULL DEFAULT 1 COMMENT '交易类型(1为支付 2为提现 3为退款)', + `payment_status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '状态(0:未完成交易 1:完成关键交易)', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `attach` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附加数据', + `response_body` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '响应内容', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE, + INDEX `payment_id_index`(`payment_id`) USING BTREE, + INDEX `orderid_index`(`order_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 242 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信订单表' ROW_FORMAT = Dynamic; + + +-- ---------------------------- +-- Table structure for pms_brand +-- ---------------------------- +DROP TABLE IF EXISTS `pms_brand`; +CREATE TABLE `pms_brand` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `sort` int(11) NULL DEFAULT NULL, + `show_status` int(1) NULL DEFAULT NULL, + `logo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '品牌logo', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 63 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '品牌管理' ROW_FORMAT = Dynamic; + + +-- ---------------------------- +-- Table structure for pms_product +-- ---------------------------- +DROP TABLE IF EXISTS `pms_product`; +CREATE TABLE `pms_product` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `product_snapshot_id` bigint(20) NULL DEFAULT NULL, + `brand_id` bigint(20) NULL DEFAULT NULL, + `category_id` bigint(20) NULL DEFAULT NULL, + `out_product_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品编码', + `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `pic` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '主图', + `album_pics` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '画册图片,连产品图片限制为5张,以逗号分割', + `publish_status` int(1) NULL DEFAULT NULL COMMENT '上架状态:0->下架;1->上架', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `price` decimal(10, 2) NULL DEFAULT NULL, + `unit` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '单位', + `weight` decimal(10, 2) NULL DEFAULT NULL COMMENT '商品重量,默认为克', + `detail_html` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '产品详情网页内容', + `detail_mobile_html` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '移动端网页详情', + `brand_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '品牌名称', + `product_category_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品分类名称', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', + `product_attr` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品销售属性,json格式', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 62 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商品信息' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for pms_product_category +-- ---------------------------- +DROP TABLE IF EXISTS `pms_product_category`; +CREATE TABLE `pms_product_category` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `parent_id` bigint(20) NULL DEFAULT NULL COMMENT '上机分类的编号:0表示一级分类', + `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `level` int(1) NULL DEFAULT NULL COMMENT '分类级别:0->1级;1->2级', + `show_status` int(1) NULL DEFAULT NULL COMMENT '显示状态:0->不显示;1->显示', + `sort` int(11) NULL DEFAULT NULL, + `icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图标', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 76 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商品分类' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for pms_product_snapshot +-- ---------------------------- +DROP TABLE IF EXISTS `pms_product_snapshot`; +CREATE TABLE `pms_product_snapshot` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `product_id` bigint(20) NULL DEFAULT NULL, + `brand_id` bigint(20) NULL DEFAULT NULL, + `category_id` bigint(20) NULL DEFAULT NULL, + `out_product_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品编码', + `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `pic` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '主图', + `album_pics` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '画册图片,连产品图片限制为5张,以逗号分割', + `publish_status` int(1) NULL DEFAULT NULL COMMENT '上架状态:0->下架;1->上架', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `price` decimal(10, 2) NULL DEFAULT NULL, + `unit` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '单位', + `weight` decimal(10, 2) NULL DEFAULT NULL COMMENT '商品重量,默认为克', + `detail_html` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '产品详情网页内容', + `detail_mobile_html` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '移动端网页详情', + `brand_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '品牌名称', + `product_category_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品分类名称', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', + `product_attr` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品销售属性,json格式', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 37 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商品信息' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for pms_sku +-- ---------------------------- +DROP TABLE IF EXISTS `pms_sku`; +CREATE TABLE `pms_sku` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `sku_snapshot_id` bigint(20) NULL DEFAULT NULL, + `product_id` bigint(20) NULL DEFAULT NULL, + `out_sku_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'sku编码', + `price` decimal(10, 2) NOT NULL, + `pic` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '展示图片', + `sp_data` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品销售属性,json格式', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 399 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'sku信息' ROW_FORMAT = Dynamic; + +ALTER TABLE `pms_sku` + ADD COLUMN `stock` int(11) NULL COMMENT '库存' AFTER `pic`; +-- ---------------------------- +-- Table structure for pms_sku_snapshot +-- ---------------------------- +DROP TABLE IF EXISTS `pms_sku_snapshot`; +CREATE TABLE `pms_sku_snapshot` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `sku_id` bigint(20) NULL DEFAULT NULL, + `product_id` bigint(20) NULL DEFAULT NULL, + `out_sku_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'sku编码', + `price` decimal(10, 2) NOT NULL, + `pic` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '展示图片', + `sp_data` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品销售属性,json格式', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 179 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'sku信息' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for qrtz_locks +-- ---------------------------- +DROP TABLE IF EXISTS `qrtz_locks`; +CREATE TABLE `qrtz_locks` ( + `sched_name` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '调度名称', + `lock_name` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '悲观锁名称', + PRIMARY KEY (`sched_name`, `lock_name`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '存储的悲观锁信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of qrtz_locks +-- ---------------------------- +INSERT INTO `qrtz_locks` VALUES ('RuoyiScheduler', 'TRIGGER_ACCESS'); + +-- ---------------------------- +-- Table structure for sys_config +-- ---------------------------- +DROP TABLE IF EXISTS `sys_config`; +CREATE TABLE `sys_config` ( + `config_id` int(5) NOT NULL AUTO_INCREMENT COMMENT '参数主键', + `config_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '参数名称', + `config_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '参数键名', + `config_value` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '参数键值', + `config_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'N' COMMENT '系统内置(Y是 N否)', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`config_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 101 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '参数配置表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_config +-- ---------------------------- +INSERT INTO `sys_config` VALUES (1, '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', 1, '2022-06-17 17:20:29', NULL, NULL, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow'); +INSERT INTO `sys_config` VALUES (2, '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', 1, '2022-06-17 17:20:29', NULL, NULL, '初始化密码 123456'); +INSERT INTO `sys_config` VALUES (3, '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-dark', 'Y', 1, '2022-06-17 17:20:29', NULL, NULL, '深色主题theme-dark,浅色主题theme-light'); +INSERT INTO `sys_config` VALUES (4, '账号自助-验证码开关', 'sys.account.captchaOnOff', 'true', 'Y', 1, '2022-06-17 17:20:29', 1, '2023-02-27 18:10:17.000', '是否开启验证码功能(true开启,false关闭)'); +INSERT INTO `sys_config` VALUES (5, '账号自助-是否开启用户注册功能', 'sys.account.registerUser', 'false', 'Y', 1, '2022-06-17 17:20:29', NULL, NULL, '是否开启注册用户功能(true开启,false关闭)'); +INSERT INTO `sys_config` VALUES (100, '首页轮播图', 'h5.home.banner', '[{\"id\":1,\"linkUrl\":\"/pages/goods/goods?id=15\",\"imgUrl\":\"https://zyq.mibolive.com/8gv8wmioh4r9ksrqyfwz.jpg\"}]', 'N', NULL, NULL, NULL, NULL, NULL); + +-- ---------------------------- +-- Table structure for sys_dept +-- ---------------------------- +DROP TABLE IF EXISTS `sys_dept`; +CREATE TABLE `sys_dept` ( + `dept_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '部门id', + `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父部门id', + `ancestors` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '祖级列表', + `dept_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '部门名称', + `order_num` int(4) NULL DEFAULT 0 COMMENT '显示顺序', + `leader` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '负责人', + `phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系电话', + `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '部门状态(0正常 1停用)', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`dept_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 200 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '部门表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_dept +-- ---------------------------- +INSERT INTO `sys_dept` VALUES (100, 0, '0', '若依科技', 0, '若依', '15888888888', 'ry@qq.com', '0', '0', 1, '2022-06-17 17:20:19.000', NULL, NULL); +INSERT INTO `sys_dept` VALUES (101, 100, '0,100', '深圳总公司', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 1, '2022-06-17 17:20:19.000', NULL, NULL); +INSERT INTO `sys_dept` VALUES (102, 100, '0,100', '长沙分公司', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 1, '2022-06-17 17:20:19.000', NULL, NULL); +INSERT INTO `sys_dept` VALUES (103, 101, '0,100,101', '研发部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 1, '2022-06-17 17:20:19.000', NULL, NULL); +INSERT INTO `sys_dept` VALUES (104, 101, '0,100,101', '市场部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 1, '2022-06-17 17:20:19.000', NULL, NULL); +INSERT INTO `sys_dept` VALUES (105, 101, '0,100,101', '测试部门', 3, '若依', '15888888888', 'ry@qq.com', '0', '0', 1, '2022-06-17 17:20:19.000', NULL, NULL); +INSERT INTO `sys_dept` VALUES (106, 101, '0,100,101', '财务部门', 4, '若依', '15888888888', 'ry@qq.com', '0', '0', 1, '2022-06-17 17:20:19.000', NULL, NULL); +INSERT INTO `sys_dept` VALUES (107, 101, '0,100,101', '运维部门', 5, '若依', '15888888888', 'ry@qq.com', '0', '0', 1, '2022-06-17 17:20:19.000', NULL, NULL); +INSERT INTO `sys_dept` VALUES (108, 102, '0,100,102', '市场部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 1, '2022-06-17 17:20:19.000', NULL, NULL); +INSERT INTO `sys_dept` VALUES (109, 102, '0,100,102', '财务部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 1, '2022-06-17 17:20:19.000', NULL, NULL); + +-- ---------------------------- +-- Table structure for sys_dict_data +-- ---------------------------- +DROP TABLE IF EXISTS `sys_dict_data`; +CREATE TABLE `sys_dict_data` ( + `dict_code` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典编码', + `dict_sort` int(4) NULL DEFAULT 0 COMMENT '字典排序', + `dict_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典标签', + `dict_value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典键值', + `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典类型', + `css_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '样式属性(其他样式扩展)', + `list_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表格回显样式', + `is_default` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'N' COMMENT '是否默认(Y是 N否)', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`dict_code`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 184 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典数据表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_dict_data +-- ---------------------------- +INSERT INTO `sys_dict_data` VALUES (1, 1, '男', '0', 'sys_user_sex', '', '', 'Y', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '性别男'); +INSERT INTO `sys_dict_data` VALUES (2, 2, '女', '1', 'sys_user_sex', '', '', 'N', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '性别女'); +INSERT INTO `sys_dict_data` VALUES (3, 3, '未知', '2', 'sys_user_sex', '', '', 'N', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '性别未知'); +INSERT INTO `sys_dict_data` VALUES (4, 1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '显示菜单'); +INSERT INTO `sys_dict_data` VALUES (5, 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '隐藏菜单'); +INSERT INTO `sys_dict_data` VALUES (6, 1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '正常状态'); +INSERT INTO `sys_dict_data` VALUES (7, 2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '停用状态'); +INSERT INTO `sys_dict_data` VALUES (8, 1, '正常', '0', 'sys_job_status', '', 'primary', 'Y', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '正常状态'); +INSERT INTO `sys_dict_data` VALUES (9, 2, '暂停', '1', 'sys_job_status', '', 'danger', 'N', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '停用状态'); +INSERT INTO `sys_dict_data` VALUES (10, 1, '默认', 'DEFAULT', 'sys_job_group', '', '', 'Y', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '默认分组'); +INSERT INTO `sys_dict_data` VALUES (11, 2, '系统', 'SYSTEM', 'sys_job_group', '', '', 'N', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '系统分组'); +INSERT INTO `sys_dict_data` VALUES (12, 1, '是', 'Y', 'sys_yes_no', '', 'primary', 'Y', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '系统默认是'); +INSERT INTO `sys_dict_data` VALUES (13, 2, '否', 'N', 'sys_yes_no', '', 'danger', 'N', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '系统默认否'); +INSERT INTO `sys_dict_data` VALUES (14, 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '通知'); +INSERT INTO `sys_dict_data` VALUES (15, 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '公告'); +INSERT INTO `sys_dict_data` VALUES (16, 1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 1, '2022-06-17 17:20:29.000', NULL, NULL, '正常状态'); +INSERT INTO `sys_dict_data` VALUES (17, 2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', '0', 1, '2022-06-17 17:20:29.000', NULL, NULL, '关闭状态'); +INSERT INTO `sys_dict_data` VALUES (18, 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', '0', 1, '2022-06-17 17:20:29.000', NULL, NULL, '新增操作'); +INSERT INTO `sys_dict_data` VALUES (19, 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', '0', 1, '2022-06-17 17:20:29.000', NULL, NULL, '修改操作'); +INSERT INTO `sys_dict_data` VALUES (20, 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', '0', 1, '2022-06-17 17:20:29.000', NULL, NULL, '删除操作'); +INSERT INTO `sys_dict_data` VALUES (21, 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', '0', 1, '2022-06-17 17:20:29.000', NULL, NULL, '授权操作'); +INSERT INTO `sys_dict_data` VALUES (22, 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', '0', 1, '2022-06-17 17:20:29.000', NULL, NULL, '导出操作'); +INSERT INTO `sys_dict_data` VALUES (23, 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', '0', 1, '2022-06-17 17:20:29.000', NULL, NULL, '导入操作'); +INSERT INTO `sys_dict_data` VALUES (24, 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', '0', 1, '2022-06-17 17:20:29.000', NULL, NULL, '强退操作'); +INSERT INTO `sys_dict_data` VALUES (25, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', '0', 1, '2022-06-17 17:20:29.000', NULL, NULL, '生成操作'); +INSERT INTO `sys_dict_data` VALUES (26, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', '0', 1, '2022-06-17 17:20:29.000', NULL, NULL, '清空操作'); +INSERT INTO `sys_dict_data` VALUES (27, 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', '0', 1, '2022-06-17 17:20:29.000', NULL, NULL, '正常状态'); +INSERT INTO `sys_dict_data` VALUES (28, 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', '0', 1, '2022-06-17 17:20:29.000', NULL, NULL, '停用状态'); +INSERT INTO `sys_dict_data` VALUES (131, 0, '上架', '1', 'pms_publish_status', NULL, 'primary', 'N', '0', 1, '2022-12-06 19:57:58.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (132, 0, '下架', '0', 'pms_publish_status', NULL, 'info', 'N', '0', 1, '2022-12-06 19:58:15.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (133, 1, '尺寸', 'sku_sort_list_1', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (134, 2, '型号', 'sku_sort_list_2', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (135, 3, '款式', 'sku_sort_list_3', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (136, 4, '器型', 'sku_sort_list_4', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (137, 5, '材质', 'sku_sort_list_5', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (138, 6, '口味', 'sku_sort_list_6', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (139, 7, '色号', 'sku_sort_list_7', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (140, 8, '适用人群', 'sku_sort_list_8', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (141, 9, '颜色', 'sku_sort_list_9', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (142, 10, '容量', 'sku_sort_list_10', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (143, 11, '花型', 'sku_sort_list_11', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (144, 12, '尺码', 'sku_sort_list_12', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (145, 13, '地点', 'sku_sort_list_13', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (146, 14, '香型', 'sku_sort_list_14', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (147, 15, '货号', 'sku_sort_list_15', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (148, 16, '组合', 'sku_sort_list_16', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (149, 17, '成份', 'sku_sort_list_17', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (150, 18, '版本', 'sku_sort_list_18', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (151, 19, '度数', 'sku_sort_list_19', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (152, 20, '运营商', 'sku_sort_list_20', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (153, 21, '属性', 'sku_sort_list_21', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (154, 22, '重量', 'sku_sort_list_22', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (155, 23, '地区', 'sku_sort_list_23', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (156, 24, '套餐', 'sku_sort_list_24', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (157, 25, '类别', 'sku_sort_list_25', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (158, 26, '适用年龄', 'sku_sort_list_26', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (159, 27, '功效', 'sku_sort_list_27', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (160, 28, '品类', 'sku_sort_list_28', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (161, 29, '时间', 'sku_sort_list_29', 'sku_sort_list', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (162, 1, '展示', '1', 'sys_show_status', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (163, 2, '隐藏', '0', 'sys_show_status', NULL, NULL, 'N', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (164, 0, '未支付', '0', 'oms_pay_type', NULL, 'default', 'N', '0', 1, '2023-06-28 09:38:38.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (165, 1, '支付宝', '1', 'oms_pay_type', NULL, 'default', 'N', '0', 1, '2023-06-28 09:38:46.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (166, 2, '微信', '2', 'oms_pay_type', NULL, 'default', 'N', '0', 1, '2023-06-28 09:38:52.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (167, 0, '待付款', '0', 'oms_order_status', NULL, 'info', 'N', '0', 1, '2023-06-28 09:39:29.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (168, 1, '待发货', '1', 'oms_order_status', NULL, 'info', 'N', '0', 1, '2023-06-28 09:39:49.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (169, 2, '已发货', '2', 'oms_order_status', NULL, 'primary', 'N', '0', 1, '2023-06-28 09:39:59.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (170, 3, '已完成', '3', 'oms_order_status', NULL, 'success', 'N', '0', 1, '2023-06-28 09:40:08.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (171, 4, '已关闭', '4', 'oms_order_status', NULL, 'warning', 'N', '0', 1, '2023-06-28 09:40:18.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (173, 0, '待处理', '0', 'oms_aftersale_status', NULL, 'info', 'N', '0', 1, '2023-07-17 10:19:57.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (174, 1, '退货中', '1', 'oms_aftersale_status', NULL, 'primary', 'N', '0', 1, '2023-07-17 10:20:05.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (175, 2, '已完成', '2', 'oms_aftersale_status', NULL, 'success', 'N', '0', 1, '2023-07-17 10:20:14.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (176, 3, '已拒绝', '3', 'oms_aftersale_status', NULL, 'danger', 'N', '0', 1, '2023-07-17 10:20:24.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (177, 4, '已关闭', '4', 'oms_aftersale_status', NULL, 'warning', 'N', '0', 1, '2023-07-17 10:20:32.000', 1, '2023-07-17 15:20:19.000', NULL); +INSERT INTO `sys_dict_data` VALUES (178, 0, '退款', '1', 'oms_aftersale_type', NULL, 'primary', 'N', '0', 1, '2023-07-17 10:23:08.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (179, 1, '退货退款', '2', 'oms_aftersale_type', NULL, 'warning', 'N', '0', 1, '2023-07-17 10:23:16.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (180, 5, '售后待处理', '11', 'oms_order_status', NULL, 'info', 'N', '0', 1, '2023-07-17 17:21:50.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (181, 6, '退货中', '12', 'oms_order_status', NULL, 'primary', 'N', '0', 1, '2023-07-17 17:22:05.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (182, 7, '售后已完成', '13', 'oms_order_status', NULL, 'success', 'N', '0', 1, '2023-07-17 17:22:19.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (183, 8, '售后已拒绝', '14', 'oms_order_status', NULL, 'danger', 'N', '0', 1, '2023-07-17 17:22:44.000', NULL, NULL, NULL); + +-- ---------------------------- +-- Table structure for sys_dict_type +-- ---------------------------- +DROP TABLE IF EXISTS `sys_dict_type`; +CREATE TABLE `sys_dict_type` ( + `dict_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典主键', + `dict_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典名称', + `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典类型', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`dict_id`) USING BTREE, + UNIQUE INDEX `dict_type`(`dict_type`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 116 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典类型表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_dict_type +-- ---------------------------- +INSERT INTO `sys_dict_type` VALUES (1, '用户性别', 'sys_user_sex', '0', 1, '2022-06-17 17:20:27.000', NULL, NULL, '用户性别列表'); +INSERT INTO `sys_dict_type` VALUES (2, '菜单状态', 'sys_show_hide', '0', 1, '2022-06-17 17:20:27.000', NULL, NULL, '菜单状态列表'); +INSERT INTO `sys_dict_type` VALUES (3, '系统开关', 'sys_normal_disable', '0', 1, '2022-06-17 17:20:27.000', NULL, NULL, '系统开关列表'); +INSERT INTO `sys_dict_type` VALUES (4, '任务状态', 'sys_job_status', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '任务状态列表'); +INSERT INTO `sys_dict_type` VALUES (5, '任务分组', 'sys_job_group', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '任务分组列表'); +INSERT INTO `sys_dict_type` VALUES (6, '系统是否', 'sys_yes_no', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '系统是否列表'); +INSERT INTO `sys_dict_type` VALUES (7, '通知类型', 'sys_notice_type', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '通知类型列表'); +INSERT INTO `sys_dict_type` VALUES (8, '通知状态', 'sys_notice_status', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '通知状态列表'); +INSERT INTO `sys_dict_type` VALUES (9, '操作类型', 'sys_oper_type', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '操作类型列表'); +INSERT INTO `sys_dict_type` VALUES (10, '系统状态', 'sys_common_status', '0', 1, '2022-06-17 17:20:28.000', NULL, NULL, '登录状态列表'); +INSERT INTO `sys_dict_type` VALUES (109, '上架状态', 'pms_publish_status', '0', 1, '2022-12-06 19:57:39.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_type` VALUES (110, '规格类型', 'sku_sort_list', '0', 1, '2022-12-13 21:02:38.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_type` VALUES (111, '系统展示状态', 'sys_show_status', '0', NULL, NULL, NULL, NULL, NULL); +INSERT INTO `sys_dict_type` VALUES (112, '支付方式', 'oms_pay_type', '0', 1, '2023-06-28 09:38:18.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_type` VALUES (113, '订单状态', 'oms_order_status', '0', 1, '2023-06-28 09:39:14.000', NULL, NULL, NULL); +INSERT INTO `sys_dict_type` VALUES (114, '售后申请状态', 'oms_aftersale_status', '0', 1, '2023-07-17 10:19:36.000', 1, '2023-07-17 10:22:40.000', NULL); +INSERT INTO `sys_dict_type` VALUES (115, '售后类型', 'oms_aftersale_type', '0', 1, '2023-07-17 10:22:51.000', NULL, NULL, NULL); + +-- ---------------------------- +-- Table structure for sys_job +-- ---------------------------- +DROP TABLE IF EXISTS `sys_job`; +CREATE TABLE `sys_job` ( + `job_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务ID', + `job_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '任务名称', + `job_group` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'DEFAULT' COMMENT '任务组名', + `invoke_target` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '调用目标字符串', + `cron_expression` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT 'cron执行表达式', + `misfire_policy` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '3' COMMENT '计划执行错误策略(1立即执行 2执行一次 3放弃执行)', + `concurrent` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '是否并发执行(0允许 1禁止)', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '状态(0正常 1暂停)', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注信息', + PRIMARY KEY (`job_id`, `job_name`, `job_group`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 100 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '定时任务调度表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_job +-- ---------------------------- +INSERT INTO `sys_job` VALUES (1, '系统默认(无参)', 'DEFAULT', 'ryTask.ryNoParams', '0/10 * * * * ?', '3', '1', '1', 1, '2022-06-17 17:20:29.000', NULL, NULL, ''); +INSERT INTO `sys_job` VALUES (2, '系统默认(有参)', 'DEFAULT', 'ryTask.ryParams(\'ry\')', '0/15 * * * * ?', '3', '1', '1', 1, '2022-06-17 17:20:29.000', NULL, NULL, ''); +INSERT INTO `sys_job` VALUES (3, '系统默认(多参)', 'DEFAULT', 'ryTask.ryMultipleParams(\'ry\', true, 2000L, 316.50D, 100)', '0/20 * * * * ?', '3', '1', '1', 1, '2022-06-17 17:20:29.000', NULL, NULL, ''); + +-- ---------------------------- +-- Table structure for sys_job_log +-- ---------------------------- +DROP TABLE IF EXISTS `sys_job_log`; +CREATE TABLE `sys_job_log` ( + `job_log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务日志ID', + `job_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务名称', + `job_group` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务组名', + `invoke_target` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '调用目标字符串', + `job_message` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '日志信息', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '执行状态(0正常 1失败)', + `exception_info` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '异常信息', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + PRIMARY KEY (`job_log_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '定时任务调度日志表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_logininfor +-- ---------------------------- +DROP TABLE IF EXISTS `sys_logininfor`; +CREATE TABLE `sys_logininfor` ( + `info_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '访问ID', + `user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '用户账号', + `ipaddr` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '登录IP地址', + `login_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '登录地点', + `browser` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '浏览器类型', + `os` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '操作系统', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '登录状态(0成功 1失败)', + `msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '提示消息', + `login_time` datetime(0) NULL DEFAULT NULL COMMENT '访问时间', + PRIMARY KEY (`info_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 3120 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统访问记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for sys_menu +-- ---------------------------- +DROP TABLE IF EXISTS `sys_menu`; +CREATE TABLE `sys_menu` ( + `menu_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID', + `menu_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜单名称', + `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父菜单ID', + `order_num` int(4) NULL DEFAULT 0 COMMENT '显示顺序', + `path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '路由地址', + `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件路径', + `query` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '路由参数', + `is_frame` int(1) NULL DEFAULT 1 COMMENT '是否为外链(0是 1否)', + `is_cache` int(1) NULL DEFAULT 0 COMMENT '是否缓存(0缓存 1不缓存)', + `menu_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '菜单类型(M目录 C菜单 F按钮)', + `visible` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '菜单状态(0显示 1隐藏)', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '菜单状态(0正常 1停用)', + `perms` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限标识', + `icon` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '#' COMMENT '菜单图标', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注', + PRIMARY KEY (`menu_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2341 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单权限表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_menu +-- ---------------------------- +INSERT INTO `sys_menu` VALUES (1, '系统管理', 0, 300, 'system', NULL, '', 1, 0, 'M', '0', '0', '', 'system', 1, '2022-06-17 17:20:20.000', 1, '2022-10-31 09:09:13.000', '系统管理目录'); +INSERT INTO `sys_menu` VALUES (2, '系统监控', 0, 200, 'monitor', NULL, '', 1, 0, 'M', '0', '0', '', 'monitor', 1, '2022-06-17 17:20:20.000', 1, '2022-10-31 09:09:02.000', '系统监控目录'); +INSERT INTO `sys_menu` VALUES (3, '系统工具', 0, 100, 'tool', NULL, '', 1, 0, 'M', '0', '0', '', 'tool', 1, '2022-06-17 17:20:20.000', 1, '2022-10-31 09:08:48.000', '系统工具目录'); +INSERT INTO `sys_menu` VALUES (100, '用户管理', 1, 1, 'user', 'system/user/index', '', 1, 0, 'C', '0', '0', 'system:user:list', 'user', 1, '2022-06-17 17:20:20.000', NULL, NULL, '用户管理菜单'); +INSERT INTO `sys_menu` VALUES (101, '角色管理', 1, 2, 'role', 'system/role/index', '', 1, 0, 'C', '0', '0', 'system:role:list', 'peoples', 1, '2022-06-17 17:20:20.000', NULL, NULL, '角色管理菜单'); +INSERT INTO `sys_menu` VALUES (102, '菜单管理', 1, 3, 'menu', 'system/menu/index', '', 1, 0, 'C', '0', '0', 'system:menu:list', 'tree-table', 1, '2022-06-17 17:20:20.000', NULL, NULL, '菜单管理菜单'); +INSERT INTO `sys_menu` VALUES (103, '部门管理', 1, 4, 'dept', 'system/dept/index', '', 1, 0, 'C', '0', '0', 'system:dept:list', 'tree', 1, '2022-06-17 17:20:20.000', NULL, NULL, '部门管理菜单'); +INSERT INTO `sys_menu` VALUES (104, '岗位管理', 1, 5, 'post', 'system/post/index', '', 1, 0, 'C', '0', '0', 'system:post:list', 'post', 1, '2022-06-17 17:20:20.000', NULL, NULL, '岗位管理菜单'); +INSERT INTO `sys_menu` VALUES (105, '字典管理', 1, 6, 'dict', 'system/dict/index', '', 1, 0, 'C', '0', '0', 'system:dict:list', 'dict', 1, '2022-06-17 17:20:20.000', NULL, NULL, '字典管理菜单'); +INSERT INTO `sys_menu` VALUES (106, '参数设置', 1, 7, 'config', 'system/config/index', '', 1, 0, 'C', '0', '0', 'system:config:list', 'edit', 1, '2022-06-17 17:20:20.000', NULL, NULL, '参数设置菜单'); +INSERT INTO `sys_menu` VALUES (107, '通知公告', 1, 8, 'notice', 'system/notice/index', '', 1, 0, 'C', '0', '0', 'system:notice:list', 'message', 1, '2022-06-17 17:20:20.000', NULL, NULL, '通知公告菜单'); +INSERT INTO `sys_menu` VALUES (108, '日志管理', 1, 9, 'log', '', '', 1, 0, 'M', '0', '0', '', 'log', 1, '2022-06-17 17:20:20.000', NULL, NULL, '日志管理菜单'); +INSERT INTO `sys_menu` VALUES (109, '在线用户', 2, 1, 'online', 'monitor/online/index', '', 1, 0, 'C', '0', '0', 'monitor:online:list', 'online', 1, '2022-06-17 17:20:20.000', NULL, NULL, '在线用户菜单'); +INSERT INTO `sys_menu` VALUES (110, '定时任务', 2, 2, 'job', 'monitor/job/index', '', 1, 0, 'C', '0', '0', 'monitor:job:list', 'job', 1, '2022-06-17 17:20:20.000', NULL, NULL, '定时任务菜单'); +INSERT INTO `sys_menu` VALUES (111, '数据监控', 2, 3, 'druid', 'monitor/druid/index', '', 1, 0, 'C', '0', '0', 'monitor:druid:list', 'druid', 1, '2022-06-17 17:20:20.000', NULL, NULL, '数据监控菜单'); +INSERT INTO `sys_menu` VALUES (112, '服务监控', 2, 4, 'server', 'monitor/server/index', '', 1, 0, 'C', '0', '0', 'monitor:server:list', 'server', 1, '2022-06-17 17:20:20.000', NULL, NULL, '服务监控菜单'); +INSERT INTO `sys_menu` VALUES (113, '缓存监控', 2, 5, 'cache', 'monitor/cache/index', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 1, '2022-06-17 17:20:20.000', NULL, NULL, '缓存监控菜单'); +INSERT INTO `sys_menu` VALUES (114, '表单构建', 3, 1, 'build', 'tool/build/index', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 1, '2022-06-17 17:20:21.000', NULL, NULL, '表单构建菜单'); +INSERT INTO `sys_menu` VALUES (115, '代码生成', 3, 2, 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 1, '2022-06-17 17:20:21.000', NULL, NULL, '代码生成菜单'); +INSERT INTO `sys_menu` VALUES (116, '系统接口', 3, 3, 'swagger', 'tool/swagger/index', '', 1, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 1, '2022-06-17 17:20:21.000', NULL, NULL, '系统接口菜单'); +INSERT INTO `sys_menu` VALUES (500, '操作日志', 108, 1, 'operlog', 'monitor/operlog/index', '', 1, 0, 'C', '0', '0', 'monitor:operlog:list', 'form', 1, '2022-06-17 17:20:21.000', NULL, NULL, '操作日志菜单'); +INSERT INTO `sys_menu` VALUES (501, '登录日志', 0, 3, 'logininfor', 'monitor/logininfor/index', '', 1, 0, 'C', '0', '0', 'monitor:logininfor:list', 'logininfor', 1, '2022-06-17 17:20:21.000', 1, '2023-07-27 10:02:27.000', '登录日志菜单'); +INSERT INTO `sys_menu` VALUES (1001, '用户查询', 100, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:user:query', '#', 1, '2022-06-17 17:20:21.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1002, '用户新增', 100, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:user:add', '#', 1, '2022-06-17 17:20:21.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1003, '用户修改', 100, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:user:edit', '#', 1, '2022-06-17 17:20:21.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1004, '用户删除', 100, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:user:remove', '#', 1, '2022-06-17 17:20:21.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1005, '用户导出', 100, 5, '', '', '', 1, 0, 'F', '0', '0', 'system:user:export', '#', 1, '2022-06-17 17:20:21.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1006, '用户导入', 100, 6, '', '', '', 1, 0, 'F', '0', '0', 'system:user:import', '#', 1, '2022-06-17 17:20:21.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1007, '重置密码', 100, 7, '', '', '', 1, 0, 'F', '0', '0', 'system:user:resetPwd', '#', 1, '2022-06-17 17:20:21.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1008, '角色查询', 101, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:role:query', '#', 1, '2022-06-17 17:20:21.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1009, '角色新增', 101, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:role:add', '#', 1, '2022-06-17 17:20:21.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1010, '角色修改', 101, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:role:edit', '#', 1, '2022-06-17 17:20:21.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1011, '角色删除', 101, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:role:remove', '#', 1, '2022-06-17 17:20:21.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1012, '角色导出', 101, 5, '', '', '', 1, 0, 'F', '0', '0', 'system:role:export', '#', 1, '2022-06-17 17:20:21.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1013, '菜单查询', 102, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:query', '#', 1, '2022-06-17 17:20:21.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1014, '菜单新增', 102, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:add', '#', 1, '2022-06-17 17:20:21.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1015, '菜单修改', 102, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:edit', '#', 1, '2022-06-17 17:20:21.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1016, '菜单删除', 102, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:remove', '#', 1, '2022-06-17 17:20:21.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1017, '部门查询', 103, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:dept:query', '#', 1, '2022-06-17 17:20:21.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1018, '部门新增', 103, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:dept:add', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1019, '部门修改', 103, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:dept:edit', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1020, '部门删除', 103, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:dept:remove', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1021, '岗位查询', 104, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:post:query', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1022, '岗位新增', 104, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:post:add', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1023, '岗位修改', 104, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:post:edit', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1024, '岗位删除', 104, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:post:remove', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1025, '岗位导出', 104, 5, '', '', '', 1, 0, 'F', '0', '0', 'system:post:export', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1026, '字典查询', 105, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:query', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1027, '字典新增', 105, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:add', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1028, '字典修改', 105, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:edit', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1029, '字典删除', 105, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:remove', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1030, '字典导出', 105, 5, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:export', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1031, '参数查询', 106, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:query', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1032, '参数新增', 106, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:add', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1033, '参数修改', 106, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:edit', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1034, '参数删除', 106, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:remove', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1035, '参数导出', 106, 5, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:export', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1036, '公告查询', 107, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:query', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1037, '公告新增', 107, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:add', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1038, '公告修改', 107, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:edit', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1039, '公告删除', 107, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:remove', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1040, '操作查询', 500, 1, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:query', '#', 1, '2022-06-17 17:20:22.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1041, '操作删除', 500, 2, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:remove', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1042, '日志导出', 500, 4, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:export', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1043, '登录查询', 501, 1, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:query', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1044, '登录删除', 501, 2, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:remove', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1045, '日志导出', 501, 3, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:export', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1046, '在线查询', 109, 1, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:query', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1047, '批量强退', 109, 2, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1048, '单条强退', 109, 3, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1049, '任务查询', 110, 1, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:query', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1050, '任务新增', 110, 2, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:add', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1051, '任务修改', 110, 3, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:edit', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1052, '任务删除', 110, 4, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:remove', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1053, '状态修改', 110, 5, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:changeStatus', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1054, '任务导出', 110, 7, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:export', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1055, '生成查询', 115, 1, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:query', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1056, '生成修改', 115, 2, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:edit', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1057, '生成删除', 115, 3, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:remove', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1058, '导入代码', 115, 2, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:import', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1059, '预览代码', 115, 4, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:preview', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (1060, '生成代码', 115, 5, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:code', '#', 1, '2022-06-17 17:20:23.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (2250, '商品管理', 0, 1, 'pms', NULL, NULL, 1, 0, 'M', '0', '0', '', 'table', 1, '2022-11-18 08:46:30.000', 1, '2022-11-18 08:47:08.000', ''); +INSERT INTO `sys_menu` VALUES (2251, '品牌管理', 2250, 2, 'brand', 'pms/brand/index', NULL, 1, 0, 'C', '0', '0', 'pms:brand:list', '#', 1, '2022-11-18 08:48:35.000', 1, '2022-11-23 16:18:43.000', '品牌表菜单'); +INSERT INTO `sys_menu` VALUES (2252, '品牌表查询', 2251, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:brand:query', '#', 1, '2022-11-18 08:48:35.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2253, '品牌表新增', 2251, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:brand:add', '#', 1, '2022-11-18 08:48:35.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2254, '品牌表修改', 2251, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:brand:edit', '#', 1, '2022-11-18 08:48:35.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2255, '品牌表删除', 2251, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:brand:remove', '#', 1, '2022-11-18 08:48:35.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2256, '品牌表导出', 2251, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:brand:export', '#', 1, '2022-11-18 08:48:35.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2257, '商品列表', 2250, 1, 'product', 'pms/product/index', NULL, 1, 0, 'C', '0', '0', 'pms:product:list', '#', 1, '2022-11-18 08:50:02.000', 1, '2022-11-23 16:18:17.000', '商品信息菜单'); +INSERT INTO `sys_menu` VALUES (2258, '商品信息查询', 2257, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:product:query', '#', 1, '2022-11-18 08:50:02.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2259, '商品信息新增', 2257, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:product:add', '#', 1, '2022-11-18 08:50:02.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2260, '商品信息修改', 2257, 3, 'product/AddProduct', '', NULL, 1, 0, 'F', '0', '0', 'pms:product:edit', '#', 1, '2022-11-18 08:50:02.000', 1, '2023-01-09 18:08:20.000', ''); +INSERT INTO `sys_menu` VALUES (2261, '商品信息删除', 2257, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:product:remove', '#', 1, '2022-11-18 08:50:02.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2262, '商品信息导出', 2257, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:product:export', '#', 1, '2022-11-18 08:50:02.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2263, '商品分类', 2250, 3, 'productCategory', 'pms/productCategory/index', NULL, 1, 0, 'C', '0', '0', 'pms:productCategory:list', '#', 1, '2022-11-18 08:50:16.000', 1, '2022-11-23 16:18:55.000', '产品分类菜单'); +INSERT INTO `sys_menu` VALUES (2264, '产品分类查询', 2263, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:productCategory:query', '#', 1, '2022-11-18 08:50:16.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2265, '产品分类新增', 2263, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:productCategory:add', '#', 1, '2022-11-18 08:50:16.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2266, '产品分类修改', 2263, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:productCategory:edit', '#', 1, '2022-11-18 08:50:16.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2267, '产品分类删除', 2263, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:productCategory:remove', '#', 1, '2022-11-18 08:50:17.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2268, '产品分类导出', 2263, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:productCategory:export', '#', 1, '2022-11-18 08:50:17.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2269, 'sku的库存', 2250, 1, 'sku', 'pms/sku/index', NULL, 1, 0, 'C', '1', '0', 'pms:sku:list', '#', 1, '2022-11-18 08:50:32.000', 1, '2022-11-23 16:16:59.000', 'sku的库存菜单'); +INSERT INTO `sys_menu` VALUES (2270, 'sku的库存查询', 2269, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:sku:query', '#', 1, '2022-11-18 08:50:32.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2271, 'sku的库存新增', 2269, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:sku:add', '#', 1, '2022-11-18 08:50:32.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2272, 'sku的库存修改', 2269, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:sku:edit', '#', 1, '2022-11-18 08:50:32.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2273, 'sku的库存删除', 2269, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:sku:remove', '#', 1, '2022-11-18 08:50:32.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2274, 'sku的库存导出', 2269, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'pms:sku:export', '#', 1, '2022-11-18 08:50:32.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2275, '会员列表', 2293, 1, 'member', 'ums/member/index', NULL, 1, 0, 'C', '0', '0', 'ums:member:list', '#', 1, '2022-11-28 15:37:32.000', 1, '2023-07-26 12:42:06.000', '会员信息菜单'); +INSERT INTO `sys_menu` VALUES (2276, '会员信息查询', 2275, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'ums:member:query', '#', 1, '2022-11-28 15:37:32.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2277, '会员信息新增', 2275, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'ums:member:add', '#', 1, '2022-11-28 15:37:32.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2278, '会员信息修改', 2275, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'ums:member:edit', '#', 1, '2022-11-28 15:37:32.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2279, '会员信息删除', 2275, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'ums:member:remove', '#', 1, '2022-11-28 15:37:32.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2280, '会员信息导出', 2275, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'ums:member:export', '#', 1, '2022-11-28 15:37:32.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2281, '会员收货地址', 2293, 1, 'memberAddress', 'ums/memberAddress/index', NULL, 1, 0, 'C', '1', '0', 'ums:memberAddress:list', '#', 1, '2022-11-28 15:37:43.000', 1, '2023-07-21 08:45:25.000', '会员收货地址菜单'); +INSERT INTO `sys_menu` VALUES (2282, '会员收货地址查询', 2281, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'ums:memberAddress:query', '#', 1, '2022-11-28 15:37:43.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2283, '会员收货地址新增', 2281, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'ums:memberAddress:add', '#', 1, '2022-11-28 15:37:43.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2284, '会员收货地址修改', 2281, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'ums:memberAddress:edit', '#', 1, '2022-11-28 15:37:43.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2285, '会员收货地址删除', 2281, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'ums:memberAddress:remove', '#', 1, '2022-11-28 15:37:44.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2286, '会员收货地址导出', 2281, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'ums:memberAddress:export', '#', 1, '2022-11-28 15:37:44.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2287, '用户微信信息', 2293, 1, 'memberWechat', 'ums/memberWechat/index', NULL, 1, 0, 'C', '1', '0', 'ums:memberWechat:list', '#', 1, '2022-11-28 15:37:54.000', 1, '2023-07-21 08:45:29.000', '用户微信信息菜单'); +INSERT INTO `sys_menu` VALUES (2288, '用户微信信息查询', 2287, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'ums:memberWechat:query', '#', 1, '2022-11-28 15:37:54.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2289, '用户微信信息新增', 2287, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'ums:memberWechat:add', '#', 1, '2022-11-28 15:37:54.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2290, '用户微信信息修改', 2287, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'ums:memberWechat:edit', '#', 1, '2022-11-28 15:37:54.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2291, '用户微信信息删除', 2287, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'ums:memberWechat:remove', '#', 1, '2022-11-28 15:37:54.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2292, '用户微信信息导出', 2287, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'ums:memberWechat:export', '#', 1, '2022-11-28 15:37:54.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2293, '会员管理', 0, 2, 'member', NULL, NULL, 1, 0, 'M', '0', '0', NULL, 'user', 1, '2022-11-28 15:39:56.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (2294, '订单列表', 2330, 1, 'order', 'oms/order/index', NULL, 1, 0, 'C', '0', '0', 'oms:order:list', '#', 1, '2022-12-08 14:13:52.000', 1, '2022-12-08 14:20:13.000', '订单表菜单'); +INSERT INTO `sys_menu` VALUES (2295, '订单表查询', 2294, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:order:query', '#', 1, '2022-12-08 14:13:52.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2296, '订单表新增', 2294, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:order:add', '#', 1, '2022-12-08 14:13:52.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2297, '订单表修改', 2294, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:order:edit', '#', 1, '2022-12-08 14:13:52.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2298, '订单表删除', 2294, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:order:remove', '#', 1, '2022-12-08 14:13:52.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2299, '订单表导出', 2294, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:order:export', '#', 1, '2022-12-08 14:13:52.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2300, '订单发货记录', 2330, 1, 'orderDeliveryHistory', 'oms/orderDeliveryHistory/index', NULL, 1, 0, 'C', '1', '0', 'oms:orderDeliveryHistory:list', '#', 1, '2022-12-08 14:14:02.000', 1, '2022-12-08 14:21:48.000', '订单发货记录菜单'); +INSERT INTO `sys_menu` VALUES (2301, '订单发货记录查询', 2300, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:orderDeliveryHistory:query', '#', 1, '2022-12-08 14:14:02.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2302, '订单发货记录新增', 2300, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:orderDeliveryHistory:add', '#', 1, '2022-12-08 14:14:03.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2303, '订单发货记录修改', 2300, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:orderDeliveryHistory:edit', '#', 1, '2022-12-08 14:14:03.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2304, '订单发货记录删除', 2300, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:orderDeliveryHistory:remove', '#', 1, '2022-12-08 14:14:03.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2305, '订单发货记录导出', 2300, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:orderDeliveryHistory:export', '#', 1, '2022-12-08 14:14:03.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2306, '订单item', 2330, 1, 'orderItem', 'oms/orderItem/index', NULL, 1, 0, 'C', '1', '0', 'oms:orderItem:list', '#', 1, '2022-12-08 14:14:12.000', 1, '2022-12-08 14:18:42.000', '订单中所包含的商品菜单'); +INSERT INTO `sys_menu` VALUES (2307, '订单中所包含的商品查询', 2306, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:orderItem:query', '#', 1, '2022-12-08 14:14:12.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2308, '订单中所包含的商品新增', 2306, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:orderItem:add', '#', 1, '2022-12-08 14:14:12.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2309, '订单中所包含的商品修改', 2306, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:orderItem:edit', '#', 1, '2022-12-08 14:14:12.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2310, '订单中所包含的商品删除', 2306, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:orderItem:remove', '#', 1, '2022-12-08 14:14:12.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2311, '订单中所包含的商品导出', 2306, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:orderItem:export', '#', 1, '2022-12-08 14:14:12.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2312, '订单操作记录', 2330, 3, 'orderOperateHistory', 'oms/orderOperateHistory/index', NULL, 1, 0, 'C', '1', '0', 'oms:orderOperateHistory:list', '#', 1, '2022-12-08 14:14:20.000', 1, '2023-07-26 11:11:21.000', '订单操作历史记录菜单'); +INSERT INTO `sys_menu` VALUES (2313, '订单操作历史记录查询', 2312, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:orderOperateHistory:query', '#', 1, '2022-12-08 14:14:20.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2314, '订单操作历史记录新增', 2312, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:orderOperateHistory:add', '#', 1, '2022-12-08 14:14:20.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2315, '订单操作历史记录修改', 2312, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:orderOperateHistory:edit', '#', 1, '2022-12-08 14:14:21.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2316, '订单操作历史记录删除', 2312, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:orderOperateHistory:remove', '#', 1, '2022-12-08 14:14:21.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2317, '订单操作历史记录导出', 2312, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:orderOperateHistory:export', '#', 1, '2022-12-08 14:14:21.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2318, '售后管理', 2330, 2, 'aftersale', 'oms/aftersale/index', NULL, 1, 0, 'C', '0', '0', 'oms:aftersale:list', '#', 1, '2022-12-08 14:14:30.000', 1, '2022-12-29 12:24:56.000', '订单售后菜单'); +INSERT INTO `sys_menu` VALUES (2319, '订单售后查询', 2318, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:aftersale:query', '#', 1, '2022-12-08 14:14:30.000', 1, '2022-12-29 12:25:43.000', ''); +INSERT INTO `sys_menu` VALUES (2320, '订单售后新增', 2318, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:aftersale:add', '#', 1, '2022-12-08 14:14:30.000', 1, '2022-12-29 12:25:59.000', ''); +INSERT INTO `sys_menu` VALUES (2321, '订单售后修改', 2318, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:aftersale:edit', '#', 1, '2022-12-08 14:14:30.000', 1, '2022-12-29 12:26:13.000', ''); +INSERT INTO `sys_menu` VALUES (2322, '订单售后删除', 2318, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:aftersale:remove', '#', 1, '2022-12-08 14:14:30.000', 1, '2022-12-29 12:26:32.000', ''); +INSERT INTO `sys_menu` VALUES (2323, '订单售后导出', 2318, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:aftersale:export', '#', 1, '2022-12-08 14:14:30.000', 1, '2022-12-29 12:26:46.000', ''); +INSERT INTO `sys_menu` VALUES (2324, '订单售后明细', 2330, 1, 'refundItem', 'oms/refundItem/index', NULL, 1, 0, 'C', '1', '0', 'oms:refundItem:list', '#', 1, '2022-12-08 14:14:38.000', 1, '2022-12-08 14:19:33.000', '订单售后菜单'); +INSERT INTO `sys_menu` VALUES (2325, '订单售后查询', 2324, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:refundItem:query', '#', 1, '2022-12-08 14:14:38.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2326, '订单售后新增', 2324, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:refundItem:add', '#', 1, '2022-12-08 14:14:38.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2327, '订单售后修改', 2324, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:refundItem:edit', '#', 1, '2022-12-08 14:14:38.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2328, '订单售后删除', 2324, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:refundItem:remove', '#', 1, '2022-12-08 14:14:38.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2329, '订单售后导出', 2324, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'oms:refundItem:export', '#', 1, '2022-12-08 14:14:38.000', 0, NULL, ''); +INSERT INTO `sys_menu` VALUES (2330, '订单管理', 0, 1, 'order', NULL, NULL, 1, 0, 'M', '0', '0', '', 'date-range', 1, '2022-12-08 14:17:58.000', 1, '2023-03-20 15:17:53.000', ''); +INSERT INTO `sys_menu` VALUES (2331, '修改会员账户状态', 2275, 6, '', NULL, NULL, 1, 0, 'F', '0', '0', 'ums:member:change:status', '#', 1, '2023-06-27 15:11:14.000', 1, '2023-06-27 15:11:27.000', ''); +INSERT INTO `sys_menu` VALUES (2333, '订单发货', 2294, 6, '', NULL, NULL, 1, 0, 'F', '0', '0', 'oms:order:delivery', '#', 1, '2023-06-30 16:01:32.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (2335, '购物车列表', 2293, 3, 'shoppingCart', 'ums/memberCart/index', NULL, 1, 0, 'C', '0', '0', 'ums:memberCart:list', '#', 1, '2023-07-21 15:35:01.000', 1, '2023-07-26 12:42:16.000', ''); +INSERT INTO `sys_menu` VALUES (2336, '查看日志', 2294, 7, '', NULL, NULL, 1, 0, 'F', '0', '0', 'oms:order:log', '#', 1, '2023-07-24 09:52:16.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (2337, '查看日志', 2318, 6, '', NULL, NULL, 1, 0, 'F', '0', '0', 'oms:aftersale:log', '#', 1, '2023-07-24 12:15:42.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (2338, '查看会员统计数据', 2275, 7, '', NULL, NULL, 1, 0, 'F', '0', '0', 'ums:member:statistics', '#', 1, '2023-07-24 12:16:53.000', NULL, NULL, ''); +INSERT INTO `sys_menu` VALUES (2339, '登录管理', 2293, 4, 'loginInfor', 'ums/memberLogininfor/index', NULL, 1, 0, 'C', '0', '0', 'ums:memberLogininfor:list', '#', 1, '2023-07-26 15:03:06.000', 1, '2023-07-26 16:41:35.000', ''); +INSERT INTO `sys_menu` VALUES (2340, '数据统计', 0, 4, 'systemStatistics', 'aws/systemStatistics/index', NULL, 1, 0, 'C', '0', '0', 'aws:systemStatistics:list', 'chart', 1, '2023-07-31 15:57:38.000', NULL, NULL, ''); + +-- ---------------------------- +-- Table structure for sys_notice +-- ---------------------------- +DROP TABLE IF EXISTS `sys_notice`; +CREATE TABLE `sys_notice` ( + `notice_id` int(4) NOT NULL AUTO_INCREMENT COMMENT '公告ID', + `notice_title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '公告标题', + `notice_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '公告类型(1通知 2公告)', + `notice_content` longblob NULL COMMENT '公告内容', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '公告状态(0正常 1关闭)', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`notice_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通知公告表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_notice +-- ---------------------------- +INSERT INTO `sys_notice` VALUES (1, '温馨提醒:2018-07-01 若依新版本发布啦', '2', 0x3C703E3C696D67207372633D22687474703A2F2F72756F79692D6D616C6C2D737A2E6F73732D636E2D7368656E7A68656E2E616C6979756E63732E636F6D2F323032332F30312F30323734353932336139376532653432313438326266376662663930343661336434E5BEAEE4BFA1E59BBEE789875F32303232303630363131343233312E6A7067223EE696B0E78988E69CACE58685E5AEB93C2F703E, '0', 1, '2022-06-17 17:20:29', 1, '2023-01-02 21:38:22.000', '管理员'); +INSERT INTO `sys_notice` VALUES (2, '维护通知:2018-07-01 若依系统凌晨维护', '1', 0xE7BBB4E68AA4E58685E5AEB9, '0', 1, '2022-06-17 17:20:30', NULL, NULL, '管理员'); + +-- ---------------------------- +-- Table structure for sys_oper_log +-- ---------------------------- +DROP TABLE IF EXISTS `sys_oper_log`; +CREATE TABLE `sys_oper_log` ( + `oper_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志主键', + `title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '模块标题', + `business_type` int(2) NULL DEFAULT 0 COMMENT '业务类型(0其它 1新增 2修改 3删除)', + `method` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '方法名称', + `request_method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '请求方式', + `operator_type` int(1) NULL DEFAULT 0 COMMENT '操作类别(0其它 1后台用户 2手机端用户)', + `oper_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '操作人员', + `dept_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '部门名称', + `oper_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '请求URL', + `oper_ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '主机地址', + `oper_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '操作地点', + `oper_param` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '请求参数', + `json_result` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '返回参数', + `status` int(1) NULL DEFAULT 0 COMMENT '操作状态(0正常 1异常)', + `error_msg` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '错误消息', + `oper_time` datetime(0) NULL DEFAULT NULL COMMENT '操作时间', + PRIMARY KEY (`oper_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1234 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '操作日志记录' ROW_FORMAT = Dynamic; + + +-- ---------------------------- +-- Table structure for sys_post +-- ---------------------------- +DROP TABLE IF EXISTS `sys_post`; +CREATE TABLE `sys_post` ( + `post_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '岗位ID', + `post_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '岗位编码', + `post_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '岗位名称', + `post_sort` int(4) NOT NULL COMMENT '显示顺序', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '状态(0正常 1停用)', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`post_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '岗位信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_post +-- ---------------------------- +INSERT INTO `sys_post` VALUES (1, 'ceo', '董事长', 1, '0', 1, '2022-06-17 17:20:20.000', NULL, NULL, ''); +INSERT INTO `sys_post` VALUES (2, 'se', '项目经理', 2, '0', 1, '2022-06-17 17:20:20.000', NULL, NULL, ''); +INSERT INTO `sys_post` VALUES (3, 'hr', '人力资源', 3, '0', 1, '2022-06-17 17:20:20.000', NULL, NULL, ''); +INSERT INTO `sys_post` VALUES (4, 'user', '普通员工', 4, '0', 1, '2022-06-17 17:20:20.000', NULL, NULL, ''); + +-- ---------------------------- +-- Table structure for sys_role +-- ---------------------------- +DROP TABLE IF EXISTS `sys_role`; +CREATE TABLE `sys_role` ( + `role_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '角色ID', + `role_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '角色名称', + `role_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '角色权限字符串', + `role_sort` int(4) NOT NULL COMMENT '显示顺序', + `data_scope` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)', + `menu_check_strictly` tinyint(1) NULL DEFAULT 1 COMMENT '菜单树选择项是否关联显示', + `dept_check_strictly` tinyint(1) NULL DEFAULT 1 COMMENT '部门树选择项是否关联显示', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '角色状态(0正常 1停用)', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`role_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 102 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_role +-- ---------------------------- +INSERT INTO `sys_role` VALUES (1, '超级管理员', 'admin', 1, '1', 1, 1, '0', '0', 1, '2022-06-17 17:20:20', NULL, NULL, '超级管理员'); +INSERT INTO `sys_role` VALUES (3, '管理员', 'super', 3, '1', 1, 1, '0', '0', 1, '2022-06-28 15:57:51', NULL, NULL, '管理员'); +INSERT INTO `sys_role` VALUES (100, '普通用户', 'common', 2, '2', 1, 1, '0', '0', NULL, '2022-06-20 09:52:16', 1, '2022-11-07 10:38:58.000', NULL); +INSERT INTO `sys_role` VALUES (101, '浏览者', 'viewer', 4, '1', 1, 1, '0', '0', 1, '2022-11-01 17:52:33', 1, '2023-07-31 15:57:48.000', NULL); + +-- ---------------------------- +-- Table structure for sys_role_dept +-- ---------------------------- +DROP TABLE IF EXISTS `sys_role_dept`; +CREATE TABLE `sys_role_dept` ( + `role_id` bigint(20) NOT NULL COMMENT '角色ID', + `dept_id` bigint(20) NOT NULL COMMENT '部门ID', + PRIMARY KEY (`role_id`, `dept_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色和部门关联表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_role_dept +-- ---------------------------- +INSERT INTO `sys_role_dept` VALUES (2, 100); +INSERT INTO `sys_role_dept` VALUES (2, 101); +INSERT INTO `sys_role_dept` VALUES (2, 105); + +-- ---------------------------- +-- Table structure for sys_role_menu +-- ---------------------------- +DROP TABLE IF EXISTS `sys_role_menu`; +CREATE TABLE `sys_role_menu` ( + `role_id` bigint(20) NOT NULL COMMENT '角色ID', + `menu_id` bigint(20) NOT NULL COMMENT '菜单ID', + PRIMARY KEY (`role_id`, `menu_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色和菜单关联表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_role_menu +-- ---------------------------- +INSERT INTO `sys_role_menu` VALUES (2, 1); +INSERT INTO `sys_role_menu` VALUES (2, 2); +INSERT INTO `sys_role_menu` VALUES (2, 3); +INSERT INTO `sys_role_menu` VALUES (2, 4); +INSERT INTO `sys_role_menu` VALUES (2, 100); +INSERT INTO `sys_role_menu` VALUES (2, 101); +INSERT INTO `sys_role_menu` VALUES (2, 102); +INSERT INTO `sys_role_menu` VALUES (2, 103); +INSERT INTO `sys_role_menu` VALUES (2, 104); +INSERT INTO `sys_role_menu` VALUES (2, 105); +INSERT INTO `sys_role_menu` VALUES (2, 106); +INSERT INTO `sys_role_menu` VALUES (2, 107); +INSERT INTO `sys_role_menu` VALUES (2, 108); +INSERT INTO `sys_role_menu` VALUES (2, 109); +INSERT INTO `sys_role_menu` VALUES (2, 110); +INSERT INTO `sys_role_menu` VALUES (2, 111); +INSERT INTO `sys_role_menu` VALUES (2, 112); +INSERT INTO `sys_role_menu` VALUES (2, 113); +INSERT INTO `sys_role_menu` VALUES (2, 114); +INSERT INTO `sys_role_menu` VALUES (2, 115); +INSERT INTO `sys_role_menu` VALUES (2, 116); +INSERT INTO `sys_role_menu` VALUES (2, 500); +INSERT INTO `sys_role_menu` VALUES (2, 501); +INSERT INTO `sys_role_menu` VALUES (2, 1000); +INSERT INTO `sys_role_menu` VALUES (2, 1001); +INSERT INTO `sys_role_menu` VALUES (2, 1002); +INSERT INTO `sys_role_menu` VALUES (2, 1003); +INSERT INTO `sys_role_menu` VALUES (2, 1004); +INSERT INTO `sys_role_menu` VALUES (2, 1005); +INSERT INTO `sys_role_menu` VALUES (2, 1006); +INSERT INTO `sys_role_menu` VALUES (2, 1007); +INSERT INTO `sys_role_menu` VALUES (2, 1008); +INSERT INTO `sys_role_menu` VALUES (2, 1009); +INSERT INTO `sys_role_menu` VALUES (2, 1010); +INSERT INTO `sys_role_menu` VALUES (2, 1011); +INSERT INTO `sys_role_menu` VALUES (2, 1012); +INSERT INTO `sys_role_menu` VALUES (2, 1013); +INSERT INTO `sys_role_menu` VALUES (2, 1014); +INSERT INTO `sys_role_menu` VALUES (2, 1015); +INSERT INTO `sys_role_menu` VALUES (2, 1016); +INSERT INTO `sys_role_menu` VALUES (2, 1017); +INSERT INTO `sys_role_menu` VALUES (2, 1018); +INSERT INTO `sys_role_menu` VALUES (2, 1019); +INSERT INTO `sys_role_menu` VALUES (2, 1020); +INSERT INTO `sys_role_menu` VALUES (2, 1021); +INSERT INTO `sys_role_menu` VALUES (2, 1022); +INSERT INTO `sys_role_menu` VALUES (2, 1023); +INSERT INTO `sys_role_menu` VALUES (2, 1024); +INSERT INTO `sys_role_menu` VALUES (2, 1025); +INSERT INTO `sys_role_menu` VALUES (2, 1026); +INSERT INTO `sys_role_menu` VALUES (2, 1027); +INSERT INTO `sys_role_menu` VALUES (2, 1028); +INSERT INTO `sys_role_menu` VALUES (2, 1029); +INSERT INTO `sys_role_menu` VALUES (2, 1030); +INSERT INTO `sys_role_menu` VALUES (2, 1031); +INSERT INTO `sys_role_menu` VALUES (2, 1032); +INSERT INTO `sys_role_menu` VALUES (2, 1033); +INSERT INTO `sys_role_menu` VALUES (2, 1034); +INSERT INTO `sys_role_menu` VALUES (2, 1035); +INSERT INTO `sys_role_menu` VALUES (2, 1036); +INSERT INTO `sys_role_menu` VALUES (2, 1037); +INSERT INTO `sys_role_menu` VALUES (2, 1038); +INSERT INTO `sys_role_menu` VALUES (2, 1039); +INSERT INTO `sys_role_menu` VALUES (2, 1040); +INSERT INTO `sys_role_menu` VALUES (2, 1041); +INSERT INTO `sys_role_menu` VALUES (2, 1042); +INSERT INTO `sys_role_menu` VALUES (2, 1043); +INSERT INTO `sys_role_menu` VALUES (2, 1044); +INSERT INTO `sys_role_menu` VALUES (2, 1045); +INSERT INTO `sys_role_menu` VALUES (2, 1046); +INSERT INTO `sys_role_menu` VALUES (2, 1047); +INSERT INTO `sys_role_menu` VALUES (2, 1048); +INSERT INTO `sys_role_menu` VALUES (2, 1049); +INSERT INTO `sys_role_menu` VALUES (2, 1050); +INSERT INTO `sys_role_menu` VALUES (2, 1051); +INSERT INTO `sys_role_menu` VALUES (2, 1052); +INSERT INTO `sys_role_menu` VALUES (2, 1053); +INSERT INTO `sys_role_menu` VALUES (2, 1054); +INSERT INTO `sys_role_menu` VALUES (2, 1055); +INSERT INTO `sys_role_menu` VALUES (2, 1056); +INSERT INTO `sys_role_menu` VALUES (2, 1057); +INSERT INTO `sys_role_menu` VALUES (2, 1058); +INSERT INTO `sys_role_menu` VALUES (2, 1059); +INSERT INTO `sys_role_menu` VALUES (2, 1060); +INSERT INTO `sys_role_menu` VALUES (100, 1); +INSERT INTO `sys_role_menu` VALUES (100, 105); +INSERT INTO `sys_role_menu` VALUES (100, 1026); +INSERT INTO `sys_role_menu` VALUES (101, 1); +INSERT INTO `sys_role_menu` VALUES (101, 107); +INSERT INTO `sys_role_menu` VALUES (101, 1036); +INSERT INTO `sys_role_menu` VALUES (101, 2250); +INSERT INTO `sys_role_menu` VALUES (101, 2251); +INSERT INTO `sys_role_menu` VALUES (101, 2252); +INSERT INTO `sys_role_menu` VALUES (101, 2257); +INSERT INTO `sys_role_menu` VALUES (101, 2258); +INSERT INTO `sys_role_menu` VALUES (101, 2263); +INSERT INTO `sys_role_menu` VALUES (101, 2264); +INSERT INTO `sys_role_menu` VALUES (101, 2269); +INSERT INTO `sys_role_menu` VALUES (101, 2270); +INSERT INTO `sys_role_menu` VALUES (101, 2275); +INSERT INTO `sys_role_menu` VALUES (101, 2276); +INSERT INTO `sys_role_menu` VALUES (101, 2281); +INSERT INTO `sys_role_menu` VALUES (101, 2282); +INSERT INTO `sys_role_menu` VALUES (101, 2287); +INSERT INTO `sys_role_menu` VALUES (101, 2288); +INSERT INTO `sys_role_menu` VALUES (101, 2293); +INSERT INTO `sys_role_menu` VALUES (101, 2294); +INSERT INTO `sys_role_menu` VALUES (101, 2295); +INSERT INTO `sys_role_menu` VALUES (101, 2300); +INSERT INTO `sys_role_menu` VALUES (101, 2301); +INSERT INTO `sys_role_menu` VALUES (101, 2306); +INSERT INTO `sys_role_menu` VALUES (101, 2307); +INSERT INTO `sys_role_menu` VALUES (101, 2312); +INSERT INTO `sys_role_menu` VALUES (101, 2313); +INSERT INTO `sys_role_menu` VALUES (101, 2318); +INSERT INTO `sys_role_menu` VALUES (101, 2319); +INSERT INTO `sys_role_menu` VALUES (101, 2324); +INSERT INTO `sys_role_menu` VALUES (101, 2325); +INSERT INTO `sys_role_menu` VALUES (101, 2330); +INSERT INTO `sys_role_menu` VALUES (101, 2333); +INSERT INTO `sys_role_menu` VALUES (101, 2335); +INSERT INTO `sys_role_menu` VALUES (101, 2336); +INSERT INTO `sys_role_menu` VALUES (101, 2337); +INSERT INTO `sys_role_menu` VALUES (101, 2338); +INSERT INTO `sys_role_menu` VALUES (101, 2340); + +-- ---------------------------- +-- Table structure for sys_user +-- ---------------------------- +DROP TABLE IF EXISTS `sys_user`; +CREATE TABLE `sys_user` ( + `user_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID', + `dept_id` bigint(20) NULL DEFAULT NULL COMMENT '部门ID', + `user_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户账号', + `nick_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户昵称', + `user_type` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '00' COMMENT '用户类型(00系统用户)', + `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '用户邮箱', + `phonenumber` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '手机号码', + `sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '用户性别(0男 1女 2未知)', + `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '头像地址', + `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '密码', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '帐号状态(0正常 1停用)', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)', + `login_ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '最后登录IP', + `login_date` datetime(0) NULL DEFAULT NULL COMMENT '最后登录时间', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`user_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 125 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_user +-- ---------------------------- +INSERT INTO `sys_user` VALUES (1, 103, 'admin', '若依', '00', 'ry@163.com', '15888888888', '1', '', '$2a$10$h0bEO.284nSspPALeMTFv.j9JbWd25nCHkNzOyFLBnXsW1HMukp2a', '0', '0', '153.37.195.162', '2023-08-16 02:16:35', 1, '2022-06-17 17:20:19.000', NULL, '2023-08-16 10:16:35.000', '管理员'); +INSERT INTO `sys_user` VALUES (115, 100, 'cyl', 'mall', '00', '', '', '0', '', '$2a$10$h0bEO.284nSspPALeMTFv.j9JbWd25nCHkNzOyFLBnXsW1HMukp2a', '0', '2', '127.0.0.1', '2022-11-17 10:18:24', 1, '2022-11-04 17:06:20.000', 1, '2023-01-09 14:08:29.000', NULL); +-- ---------------------------- +-- Table structure for sys_user_post +-- ---------------------------- +DROP TABLE IF EXISTS `sys_user_post`; +CREATE TABLE `sys_user_post` ( + `user_id` bigint(20) NOT NULL COMMENT '用户ID', + `post_id` bigint(20) NOT NULL COMMENT '岗位ID', + PRIMARY KEY (`user_id`, `post_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户与岗位关联表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_user_post +-- ---------------------------- +INSERT INTO `sys_user_post` VALUES (1, 1); + +-- ---------------------------- +-- Table structure for sys_user_role +-- ---------------------------- +DROP TABLE IF EXISTS `sys_user_role`; +CREATE TABLE `sys_user_role` ( + `user_id` bigint(20) NOT NULL COMMENT '用户ID', + `role_id` bigint(20) NOT NULL COMMENT '角色ID', + PRIMARY KEY (`user_id`, `role_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户和角色关联表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_user_role +-- ---------------------------- +INSERT INTO `sys_user_role` VALUES (1, 1); +INSERT INTO `sys_user_role` VALUES (113, 100); +INSERT INTO `sys_user_role` VALUES (114, 100); +INSERT INTO `sys_user_role` VALUES (116, 101); +INSERT INTO `sys_user_role` VALUES (117, 100); +INSERT INTO `sys_user_role` VALUES (118, 100); +INSERT INTO `sys_user_role` VALUES (119, 100); +INSERT INTO `sys_user_role` VALUES (120, 100); +INSERT INTO `sys_user_role` VALUES (121, 100); +INSERT INTO `sys_user_role` VALUES (122, 100); +INSERT INTO `sys_user_role` VALUES (123, 100); +INSERT INTO `sys_user_role` VALUES (124, 100); + +-- ---------------------------- +-- Table structure for ums_member +-- ---------------------------- +DROP TABLE IF EXISTS `ums_member`; +CREATE TABLE `ums_member` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `nickname` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '昵称', + `password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '密码', + `phone_encrypted` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '加密手机号', + `phone_hidden` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '隐藏前三位后四位的手机号', + `mark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '用户备注', + `status` int(1) NULL DEFAULT NULL COMMENT '帐号启用状态:0->禁用;1->启用', + `avatar` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像', + `gender` int(1) NULL DEFAULT NULL COMMENT '性别:0->未知;1->男;2->女', + `city` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户所在城市', + `province` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户所在省份', + `country` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户所在国家', + `remark` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注', + `birthday` date NULL DEFAULT NULL COMMENT '生日', + `spread_uid` bigint(20) UNSIGNED NULL DEFAULT 0 COMMENT '推广员id', + `spread_time` datetime(0) NULL DEFAULT NULL COMMENT '推广员关联时间', + `level` tinyint(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT '等级', + `integral` decimal(8, 2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '用户剩余积分', + `central_point` decimal(8, 2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '用户集点', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `idx_username`(`nickname`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 47 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员信息' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for ums_member_address +-- ---------------------------- +DROP TABLE IF EXISTS `ums_member_address`; +CREATE TABLE `ums_member_address` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `member_id` bigint(20) NULL DEFAULT NULL, + `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收货人名称', + `phone_hidden` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '隐藏前三位后四位的手机号', + `phone_encrypted` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `default_status` int(1) NULL DEFAULT NULL COMMENT '是否为默认', + `post_code` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮政编码', + `province` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '省份/直辖市', + `city` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '城市', + `district` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '区', + `detail_address` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '详细地址(街道)', + `is_default` tinyint(3) UNSIGNED ZEROFILL NOT NULL DEFAULT 000 COMMENT '是否默认', + `province_id` bigint(20) NULL DEFAULT NULL COMMENT '省份/直辖市id', + `city_id` bigint(20) NULL DEFAULT NULL COMMENT '城市id', + `district_id` bigint(20) NULL DEFAULT NULL COMMENT '区id', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 23 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员收货地址' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for ums_member_cart +-- ---------------------------- +DROP TABLE IF EXISTS `ums_member_cart`; +CREATE TABLE `ums_member_cart` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '购物车表ID', + `status` int(1) NULL DEFAULT NULL COMMENT '0->失效;1->有效', + `member_id` bigint(20) UNSIGNED NOT NULL COMMENT '用户ID', + `product_id` bigint(20) UNSIGNED NOT NULL COMMENT '商品ID', + `pic` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '展示图片', + `sku_id` bigint(20) UNSIGNED NULL DEFAULT NULL COMMENT 'SKU ID', + `product_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `sp_data` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品属性', + `quantity` smallint(5) UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品数量', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE, + INDEX `member_id`(`member_id`) USING BTREE, + INDEX `product_id`(`product_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 219 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '购物车' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for ums_member_logininfor +-- ---------------------------- +DROP TABLE IF EXISTS `ums_member_logininfor`; +CREATE TABLE `ums_member_logininfor` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `phone` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '会员手机号', + `member_id` bigint(20) NULL DEFAULT NULL COMMENT '会员id', + `ipaddr` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '登录IP地址', + `login_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '登录地点', + `browser` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '浏览器类型', + `os` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '操作系统', + `login_time` datetime(0) NULL DEFAULT NULL COMMENT '登陆时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 196 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员登录记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for ums_member_wechat +-- ---------------------------- +DROP TABLE IF EXISTS `ums_member_wechat`; +CREATE TABLE `ums_member_wechat` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `member_id` bigint(20) NULL DEFAULT NULL, + `unionid` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段', + `openid` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户的标识,对当前公众号唯一', + `routine_openid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '小程序唯一身份ID', + `groupid` smallint(5) NULL DEFAULT 0 COMMENT '用户所在的分组ID(兼容旧的用户分组接口)', + `tagid_list` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户被打上的标签ID列表', + `subscribe` tinyint(3) NULL DEFAULT 1 COMMENT '用户是否订阅该公众号标识', + `subscribe_time` int(10) NULL DEFAULT NULL COMMENT '关注公众号时间', + `session_key` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '小程序用户会话密匙', + `access_token` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'token', + `expires_in` int(11) NULL DEFAULT NULL COMMENT '过期时间', + `refresh_token` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '刷新token', + `expire_time` datetime(3) NULL DEFAULT NULL COMMENT '过期时间', + `create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(3) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(3) NULL DEFAULT NULL COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 35 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户微信信息' ROW_FORMAT = Dynamic; + + +SET FOREIGN_KEY_CHECKS = 1;