Kaynağa Gözat

地铁盘查后台首次提交

马哲 3 yıl önce
ebeveyn
işleme
e17fdd64f0
82 değiştirilmiş dosya ile 2653 ekleme ve 907 silme
  1. 2 2
      pom.xml
  2. 5 8
      src/main/java/com/metro/MetroApplication.java
  3. 1 1
      src/main/java/com/metro/annotation/NoRepeatSubmit.java
  4. 5 2
      src/main/java/com/metro/aop/ExceptionAdvice.java
  5. 5 5
      src/main/java/com/metro/aop/NoRepeatSubmitAop.java
  6. 22 0
      src/main/java/com/metro/baseRe/BaseEntity.java
  7. 1 1
      src/main/java/com/metro/baseRe/BaseException.java
  8. 1 1
      src/main/java/com/metro/baseRe/EnvEnum.java
  9. 1 1
      src/main/java/com/metro/baseRe/ErrorCode.java
  10. 1 1
      src/main/java/com/metro/baseRe/ResultCode.java
  11. 1 1
      src/main/java/com/metro/baseRe/Ret.java
  12. 1 1
      src/main/java/com/metro/baseRe/ServiceException.java
  13. 1 1
      src/main/java/com/metro/cache/CacheUtil.java
  14. 1 1
      src/main/java/com/metro/cache/ICache.java
  15. 2 2
      src/main/java/com/metro/cache/StarshowCacheManager.java
  16. 2 2
      src/main/java/com/metro/cache/redis/RedisCacheImpl.java
  17. 2 2
      src/main/java/com/metro/config/CorsConfig.java
  18. 1 1
      src/main/java/com/metro/config/MybatisConfig.java
  19. 1 1
      src/main/java/com/metro/config/SaTokenConfigure.java
  20. 2 2
      src/main/java/com/metro/config/SwaggerConfiguration.java
  21. 1 1
      src/main/java/com/metro/config/WebSocketConfig.java
  22. 28 0
      src/main/java/com/metro/controller/AccountController.java
  23. 24 0
      src/main/java/com/metro/controller/AddressController.java
  24. 26 0
      src/main/java/com/metro/controller/CanRecord.java
  25. 41 0
      src/main/java/com/metro/controller/CompanysController.java
  26. 44 0
      src/main/java/com/metro/controller/MetroController.java
  27. 40 0
      src/main/java/com/metro/controller/PassreCordsController.java
  28. 24 0
      src/main/java/com/metro/controller/PoliceController.java
  29. 49 0
      src/main/java/com/metro/entity/po/Companys.java
  30. 66 0
      src/main/java/com/metro/entity/po/Devices.java
  31. 40 0
      src/main/java/com/metro/entity/po/Metro.java
  32. 77 0
      src/main/java/com/metro/entity/po/PassreCords.java
  33. 33 0
      src/main/java/com/metro/entity/ro/SelectCompanysPageReq.java
  34. 39 0
      src/main/java/com/metro/entity/ro/SelectCompanysPageResp.java
  35. 37 0
      src/main/java/com/metro/entity/ro/SelectMetroReq.java
  36. 41 0
      src/main/java/com/metro/entity/ro/SelectMetroResp.java
  37. 28 0
      src/main/java/com/metro/entity/ro/SelectPassreCordsPageListReq.java
  38. 104 0
      src/main/java/com/metro/entity/ro/SelectPassreCordsPageListResp.java
  39. 16 0
      src/main/java/com/metro/mapper/CompanysMapper.java
  40. 16 0
      src/main/java/com/metro/mapper/MetroMapper.java
  41. 15 0
      src/main/java/com/metro/mapper/PassreCordsMapper.java
  42. 12 0
      src/main/java/com/metro/service/AccountService.java
  43. 12 0
      src/main/java/com/metro/service/AddressService.java
  44. 12 0
      src/main/java/com/metro/service/CanRecordService.java
  45. 26 0
      src/main/java/com/metro/service/CompanysService.java
  46. 27 0
      src/main/java/com/metro/service/MetroService.java
  47. 24 0
      src/main/java/com/metro/service/PassreCordsService.java
  48. 12 0
      src/main/java/com/metro/service/PoliceService.java
  49. 16 0
      src/main/java/com/metro/service/impl/AccountServiceImpl.java
  50. 16 0
      src/main/java/com/metro/service/impl/AddressServiceImpl.java
  51. 16 0
      src/main/java/com/metro/service/impl/CanRecordServiceImpl.java
  52. 53 0
      src/main/java/com/metro/service/impl/CompanysServiceImpl.java
  53. 128 0
      src/main/java/com/metro/service/impl/MetroServiceImpl.java
  54. 52 0
      src/main/java/com/metro/service/impl/PassreCordsServiceImpl.java
  55. 16 0
      src/main/java/com/metro/service/impl/PoliceServiceImpl.java
  56. 208 0
      src/main/java/com/metro/utils/HttpClientUtil.java
  57. 240 0
      src/main/java/com/metro/utils/HttpUtil.java
  58. 71 0
      src/main/java/com/metro/utils/ImageRepair.java
  59. 100 0
      src/main/java/com/metro/utils/JsonUtil.java
  60. 59 0
      src/main/java/com/metro/utils/MD5UtilNew.java
  61. 110 0
      src/main/java/com/metro/utils/PageUtils.java
  62. 55 0
      src/main/java/com/metro/utils/R.java
  63. 99 0
      src/main/java/com/metro/utils/SearchPager.java
  64. 61 0
      src/main/java/com/metro/utils/Sha1Util.java
  65. 40 0
      src/main/java/com/metro/utils/Sha256Util.java
  66. 97 0
      src/main/java/com/metro/utils/SignUtil.java
  67. 198 0
      src/main/java/com/metro/utils/StringUtil.java
  68. 0 100
      src/main/java/com/rshy/project/hy/mpGenerator/MpGenerator.java
  69. 0 35
      src/main/java/com/rshy/project/hy/server/MyThread.java
  70. 0 539
      src/main/java/com/rshy/project/hy/server/RshyServer.java
  71. 0 27
      src/main/java/com/rshy/project/hy/server/param/RshyParam.java
  72. 0 21
      src/main/java/com/rshy/project/hy/server/vo/RshyTypeVo.java
  73. 0 66
      src/main/java/com/rshy/project/hy/server/vo/RshyVo.java
  74. 0 19
      src/main/java/com/rshy/project/hy/server/vo/RshyWarningVo.java
  75. 0 37
      src/main/java/com/rshy/project/hy/web/controller/RshyController.java
  76. 3 3
      src/main/resources/application-dev.yml
  77. 4 7
      src/main/resources/application.yml
  78. 6 0
      src/main/resources/mapper/CompanysMapper.xml
  79. 6 0
      src/main/resources/mapper/PassreCordsMapper.xml
  80. 6 0
      src/main/resources/mapper/mapper/CompanysMapper.xml
  81. 6 0
      src/main/resources/mapper/mapper/PassreCordsMapper.xml
  82. 15 16
      src/main/resources/mybatis-plus.properties

+ 2 - 2
pom.xml

@@ -10,8 +10,8 @@
 
     <packaging>jar</packaging>
     <modelVersion>4.0.0</modelVersion>
-    <artifactId>rshy-project-hy</artifactId>
-    <description>人身核验</description>
+    <artifactId>metro-question-system</artifactId>
+    <description>地铁盘查后台</description>
 
     <profiles>
         <profile>

+ 5 - 8
src/main/java/com/rshy/project/hy/RshyApplication.java → src/main/java/com/metro/MetroApplication.java

@@ -1,4 +1,4 @@
-package com.rshy.project.hy;
+package com.metro;
 
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
@@ -7,16 +7,13 @@ import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.context.annotation.ComponentScan;
 
 
-
-@MapperScan(basePackages = {"com.rshy.project.hy.mapper"})
-@ComponentScan(basePackages = {"com.rshy.**"})
+@MapperScan(basePackages = {"com.metro.mapper"})
+@ComponentScan(basePackages = {"com.metro.**"})
 @SpringBootApplication
-public class RshyApplication {
+public class MetroApplication {
 
     public static void main(String[] args) {
-        ConfigurableApplicationContext applicationContext = SpringApplication.run(RshyApplication.class, args);
-        //解决websocket不能注入bean的问题
-        //WebSocketServer.setApplicationContext(applicationContext);
+        ConfigurableApplicationContext applicationContext = SpringApplication.run(MetroApplication.class, args);
     }
 
 

+ 1 - 1
src/main/java/com/rshy/project/hy/annotation/NoRepeatSubmit.java → src/main/java/com/metro/annotation/NoRepeatSubmit.java

@@ -1,4 +1,4 @@
-package com.rshy.project.hy.annotation;
+package com.metro.annotation;
 
 
 import java.lang.annotation.ElementType;

+ 5 - 2
src/main/java/com/rshy/project/hy/aop/ExceptionAdvice.java → src/main/java/com/metro/aop/ExceptionAdvice.java

@@ -1,8 +1,11 @@
-package com.rshy.project.hy.aop;
+package com.metro.aop;
 
 import cn.dev33.satoken.exception.NotLoginException;
 import cn.hutool.core.util.StrUtil;
-import com.rshy.project.hy.baseRe.*;
+import com.metro.baseRe.BaseException;
+import com.metro.baseRe.EnvEnum;
+import com.metro.baseRe.ResultCode;
+import com.metro.baseRe.Ret;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.dao.DuplicateKeyException;

+ 5 - 5
src/main/java/com/rshy/project/hy/aop/NoRepeatSubmitAop.java → src/main/java/com/metro/aop/NoRepeatSubmitAop.java

@@ -1,8 +1,8 @@
-package com.rshy.project.hy.aop;
+package com.metro.aop;
 
-import com.rshy.project.hy.annotation.NoRepeatSubmit;
-import com.rshy.project.hy.baseRe.Ret;
-import com.rshy.project.hy.cache.CacheUtil;
+import com.metro.annotation.NoRepeatSubmit;
+import com.metro.baseRe.Ret;
+import com.metro.cache.CacheUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
@@ -20,7 +20,7 @@ public class NoRepeatSubmitAop {
 
     private static final String CACHE_NAME = "";
 
-    @Around("execution(* com.rshy..*Controller.*(..)) && @annotation(nrs)")
+    @Around("execution(* com.metro..*Controller.*(..)) && @annotation(nrs)")
     public Object arround(ProceedingJoinPoint pjp, NoRepeatSubmit nrs) throws Throwable{
         try {
             ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();

+ 22 - 0
src/main/java/com/metro/baseRe/BaseEntity.java

@@ -0,0 +1,22 @@
+package com.metro.baseRe;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClassName: BaseEntity
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/8 12:33
+ * ...
+ */
+@Data
+public class BaseEntity {
+
+    @ApiModelProperty("当前页数")
+    private Integer pageNo;
+
+    @ApiModelProperty("每页条数")
+    private Integer pageSize;
+}

+ 1 - 1
src/main/java/com/rshy/project/hy/baseRe/BaseException.java → src/main/java/com/metro/baseRe/BaseException.java

@@ -1,4 +1,4 @@
-package com.rshy.project.hy.baseRe;
+package com.metro.baseRe;
 
 import lombok.Getter;
 

+ 1 - 1
src/main/java/com/rshy/project/hy/baseRe/EnvEnum.java → src/main/java/com/metro/baseRe/EnvEnum.java

@@ -1,4 +1,4 @@
-package com.rshy.project.hy.baseRe;
+package com.metro.baseRe;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;

+ 1 - 1
src/main/java/com/rshy/project/hy/baseRe/ErrorCode.java → src/main/java/com/metro/baseRe/ErrorCode.java

@@ -1,4 +1,4 @@
-package com.rshy.project.hy.baseRe;
+package com.metro.baseRe;
 
 public interface ErrorCode {
     /**

+ 1 - 1
src/main/java/com/rshy/project/hy/baseRe/ResultCode.java → src/main/java/com/metro/baseRe/ResultCode.java

@@ -1,4 +1,4 @@
-package com.rshy.project.hy.baseRe;
+package com.metro.baseRe;
 
 import lombok.Getter;
 

+ 1 - 1
src/main/java/com/rshy/project/hy/baseRe/Ret.java → src/main/java/com/metro/baseRe/Ret.java

@@ -1,4 +1,4 @@
-package com.rshy.project.hy.baseRe;
+package com.metro.baseRe;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonInclude;

+ 1 - 1
src/main/java/com/rshy/project/hy/baseRe/ServiceException.java → src/main/java/com/metro/baseRe/ServiceException.java

@@ -1,4 +1,4 @@
-package com.rshy.project.hy.baseRe;
+package com.metro.baseRe;
 
 public class ServiceException extends BaseException {
 

+ 1 - 1
src/main/java/com/rshy/project/hy/cache/CacheUtil.java → src/main/java/com/metro/cache/CacheUtil.java

@@ -1,4 +1,4 @@
-package com.rshy.project.hy.cache;
+package com.metro.cache;
 
 import cn.hutool.extra.spring.SpringUtil;
 import org.springframework.stereotype.Component;

+ 1 - 1
src/main/java/com/rshy/project/hy/cache/ICache.java → src/main/java/com/metro/cache/ICache.java

@@ -1,4 +1,4 @@
-package com.rshy.project.hy.cache;
+package com.metro.cache;
 
 /**
  * @author dxy

+ 2 - 2
src/main/java/com/rshy/project/hy/cache/StarshowCacheManager.java → src/main/java/com/metro/cache/StarshowCacheManager.java

@@ -1,6 +1,6 @@
-package com.rshy.project.hy.cache;
+package com.metro.cache;
 
-import com.rshy.project.hy.cache.redis.RedisCacheImpl;
+import com.metro.cache.redis.RedisCacheImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 

+ 2 - 2
src/main/java/com/rshy/project/hy/cache/redis/RedisCacheImpl.java → src/main/java/com/metro/cache/redis/RedisCacheImpl.java

@@ -1,6 +1,6 @@
-package com.rshy.project.hy.cache.redis;
+package com.metro.cache.redis;
 
-import com.rshy.project.hy.cache.ICache;
+import com.metro.cache.ICache;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;

+ 2 - 2
src/main/java/com/rshy/project/hy/config/CorsConfig.java → src/main/java/com/metro/config/CorsConfig.java

@@ -1,6 +1,6 @@
-package com.rshy.project.hy.config;
+package com.metro.config;
 
-import com.rshy.project.hy.baseRe.EnvEnum;
+import com.metro.baseRe.EnvEnum;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;

+ 1 - 1
src/main/java/com/rshy/project/hy/config/MybatisConfig.java → src/main/java/com/metro/config/MybatisConfig.java

@@ -1,4 +1,4 @@
-package com.rshy.project.hy.config;
+package com.metro.config;
 
 import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;

+ 1 - 1
src/main/java/com/rshy/project/hy/config/SaTokenConfigure.java → src/main/java/com/metro/config/SaTokenConfigure.java

@@ -1,4 +1,4 @@
-package com.rshy.project.hy.config;
+package com.metro.config;
 
 import org.springframework.beans.factory.annotation.Configurable;
 import org.springframework.stereotype.Component;

+ 2 - 2
src/main/java/com/rshy/project/hy/config/SwaggerConfiguration.java → src/main/java/com/metro/config/SwaggerConfiguration.java

@@ -1,4 +1,4 @@
-package com.rshy.project.hy.config;
+package com.metro.config;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
@@ -20,7 +20,7 @@ public class SwaggerConfiguration {
     public Docket defaultApi2() {
         return new Docket(DocumentationType.SWAGGER_2)
                 .apiInfo(new ApiInfoBuilder()
-                        .title("人身核验 RESTful APIs")
+                        .title("地铁盘查后台 RESTful APIs")
                         .description("# Starshow RESTful APIs")
                         .termsOfServiceUrl("http://127.0.0.1:8081/")
                         .version("0.1")

+ 1 - 1
src/main/java/com/rshy/project/hy/config/WebSocketConfig.java → src/main/java/com/metro/config/WebSocketConfig.java

@@ -1,4 +1,4 @@
-package com.rshy.project.hy.config;
+package com.metro.config;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;

+ 28 - 0
src/main/java/com/metro/controller/AccountController.java

@@ -0,0 +1,28 @@
+package com.metro.controller;
+
+
+import com.metro.service.AccountService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName: AccountController
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 10:59
+ * ...
+ */
+@RestController
+@RequestMapping("/account")
+@Api(tags = "账号管理")
+public class AccountController {
+
+    @Autowired
+    private AccountService service;
+
+
+
+}

+ 24 - 0
src/main/java/com/metro/controller/AddressController.java

@@ -0,0 +1,24 @@
+package com.metro.controller;
+
+import com.metro.service.AddressService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName: AddressController
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 11:07
+ * ...
+ */
+@RestController
+@RequestMapping("/address")
+@Api(tags = "地址库管理")
+public class AddressController {
+
+    @Autowired
+    private AddressService service;
+}

+ 26 - 0
src/main/java/com/metro/controller/CanRecord.java

@@ -0,0 +1,26 @@
+package com.metro.controller;
+
+import com.metro.service.CanRecordService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName: CanRecord
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 11:01
+ * ...
+ */
+@RestController
+@RequestMapping("/canRecord")
+@Api(tags = "盘查记录")
+public class CanRecord {
+
+    @Autowired
+    private CanRecordService service;
+    
+
+}

+ 41 - 0
src/main/java/com/metro/controller/CompanysController.java

@@ -0,0 +1,41 @@
+package com.metro.controller;
+
+import com.metro.baseRe.Ret;
+import com.metro.entity.ro.SelectCompanysPageReq;
+import com.metro.entity.ro.SelectCompanysPageResp;
+import com.metro.service.CompanysService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @ClassName: ConpanysController
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/8 13:38
+ * ...
+ */
+@RestController
+@RequestMapping("/companys")
+@Api(tags = "根据id查询公安局和派出所")
+public class CompanysController {
+
+    @Autowired
+    private CompanysService service;
+
+    /**
+     * 公安查询
+     * @param req 查询条件
+     * @return 返回结果
+     */
+    @PostMapping("/selectCompanysList")
+    @ApiOperation("公安查询")
+    public Ret<List<SelectCompanysPageResp>> selectCompanys(@Valid @RequestBody SelectCompanysPageReq req){
+        return Ret.success(service.page(req));
+    }
+}

+ 44 - 0
src/main/java/com/metro/controller/MetroController.java

@@ -0,0 +1,44 @@
+package com.metro.controller;
+
+import com.metro.baseRe.Ret;
+import com.metro.entity.ro.SelectCompanysPageReq;
+import com.metro.entity.ro.SelectCompanysPageResp;
+import com.metro.entity.ro.SelectMetroReq;
+import com.metro.entity.ro.SelectMetroResp;
+import com.metro.service.CompanysService;
+import com.metro.service.MetroService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @ClassName: 地铁
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/8 13:38
+ * ...
+ */
+@RestController
+@RequestMapping("/metro")
+@Api(tags = "地铁")
+public class MetroController {
+
+    @Autowired
+    private MetroService service;
+
+    /**
+     * 地铁查询
+     * @param req 查询条件
+     * @return 返回结果
+     */
+    @GetMapping("/selectMetro")
+    @ApiOperation("地铁查询一二级三级")
+    public Ret<List<SelectMetroResp>> selectMetro(SelectMetroReq req){
+        return Ret.success(service.list(req));
+    }
+}

+ 40 - 0
src/main/java/com/metro/controller/PassreCordsController.java

@@ -0,0 +1,40 @@
+package com.metro.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.metro.baseRe.Ret;
+import com.metro.entity.ro.SelectPassreCordsPageListReq;
+import com.metro.entity.ro.SelectPassreCordsPageListResp;
+import com.metro.service.PassreCordsService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * @ClassName: PassreCordsController
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/8 12:13
+ * ...
+ */
+@RestController
+@RequestMapping("/passrecords")
+public class PassreCordsController {
+
+    @Autowired
+    private PassreCordsService passreCordsservice;
+
+    /**
+     * 查询公司信息
+     * @param req 查询条件
+     * @return page列表
+     */
+    @PostMapping("/page")
+    @ApiOperation("查询公司信息")
+    public Ret<IPage<SelectPassreCordsPageListResp>> page (@Valid @RequestBody SelectPassreCordsPageListReq req) {
+        return Ret.success(passreCordsservice.page(req));
+    }
+
+}

+ 24 - 0
src/main/java/com/metro/controller/PoliceController.java

@@ -0,0 +1,24 @@
+package com.metro.controller;
+
+import com.metro.service.PoliceService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName: PoliceController
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 11:06
+ * ...
+ */
+@RestController
+@RequestMapping("/police")
+@Api(tags = "派出所管理")
+public class PoliceController {
+
+    @Autowired
+    private PoliceService service;
+}

+ 49 - 0
src/main/java/com/metro/entity/po/Companys.java

@@ -0,0 +1,49 @@
+package com.metro.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName: Companys
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/8 10:50
+ * ...
+ */
+@Data
+@TableName("j_companys")
+public class Companys implements Serializable {
+
+    @TableId(value = "id")
+    private Integer id;
+
+    /**
+     * 公安id
+     */
+    @TableField("company_id")
+    private String companyId;
+
+    /**
+     * 公安局名称
+     */
+    @TableField("company_name")
+    private String companyName;
+
+    /**
+     * 派出所Id
+     */
+    @TableField("branch_id")
+    private String  branchId;
+
+    /**
+     * 分局(派出所Id)
+     */
+    @TableField("branch_name")
+    private String brachName;
+
+}

+ 66 - 0
src/main/java/com/metro/entity/po/Devices.java

@@ -0,0 +1,66 @@
+package com.metro.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @ClassName: Devices
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/8 11:19
+ * ...
+ */
+@Data
+@TableName("j_devices")
+public class Devices {
+
+    private int id;
+
+    private String deviceId;
+
+    private String fullId;
+
+    private String deviceType;
+
+    private String appVersion;
+
+    private String xzqh;
+
+    private String area;
+
+    private String addRess;
+
+    private String wxId;
+
+    private String companyId;
+
+    private String branchId;
+
+    private String contactPeople;
+
+    private String contactPhone;
+
+    private String entry;
+
+    private String useScene;
+
+    private String ip;
+
+    private int state;
+
+    private int enabled;
+
+    private int licensed;
+
+    private Date licenseStart;
+
+    private Date licenseEnd;
+
+    private Date   firstBoot;
+
+    private String licenseData;
+
+}

+ 40 - 0
src/main/java/com/metro/entity/po/Metro.java

@@ -0,0 +1,40 @@
+package com.metro.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @ClassName: Metro
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 1:24
+ * ...
+ */
+@Data
+@TableName("j_metro")
+public class Metro implements Serializable {
+
+    @TableId(value = "id")
+    private Integer Id;
+
+
+    private Integer LineId;
+
+
+    private String lineName;
+
+    private Integer metroId;
+
+    private String metroName;
+
+    private Integer questionId;
+
+    private String questionName;
+
+}

+ 77 - 0
src/main/java/com/metro/entity/po/PassreCords.java

@@ -0,0 +1,77 @@
+package com.metro.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @ClassName: PassreCords
+ * @Description: 公司表
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/8 11:36
+ * ...
+ */
+@TableName("j_passrecords")
+@Data
+public class PassreCords {
+
+    private int id;
+
+    private String carId;
+
+    private String carType;
+
+    private String xm;
+
+    private String engXm;
+
+    private String xb;
+
+    private String phone;
+
+    private String mz;
+
+    private String csrq;
+
+    private Date passTime;
+
+    private String passAddr;
+
+    private String pass;
+
+    private String kind;
+
+    private String waringMsg;
+
+    private int idPhoto;
+
+    private int scenePhoto;
+
+    private String cardAddr;
+
+    private String branchName;
+
+    private String staffName;
+
+    private String staffCardId;
+
+    private String msgId;
+
+    private String companyId;
+
+    private String barCode;
+
+    private String issue;
+
+    private String validRange;
+
+    private String displayMsg;
+
+    private String companId;
+
+    private String branchId;
+
+
+}

+ 33 - 0
src/main/java/com/metro/entity/ro/SelectCompanysPageReq.java

@@ -0,0 +1,33 @@
+package com.metro.entity.ro;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName: Companys
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/8 10:50
+ * ...
+ */
+@Data
+@ApiModel
+public class SelectCompanysPageReq implements Serializable {
+
+    @ApiModelProperty("公安id")
+    private String companyId;
+
+    @ApiModelProperty("公安局name")
+    private String companyName;
+
+    @ApiModelProperty("派出所Id")
+    private String branchId;
+
+    @ApiModelProperty("分局(派出所Id)")
+    private String brachName;
+
+}

+ 39 - 0
src/main/java/com/metro/entity/ro/SelectCompanysPageResp.java

@@ -0,0 +1,39 @@
+package com.metro.entity.ro;
+
+import com.metro.baseRe.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName: Companys
+ * @Description: TODO
+ * @Author: lws
+ * @CreateName: lws
+ * @Date 2022/3/8 10:50
+ * ...
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel
+public class SelectCompanysPageResp extends BaseEntity implements Serializable {
+
+    @ApiModelProperty("主键")
+    private Integer id;
+
+    @ApiModelProperty("公安id")
+    private String companyId;
+
+    @ApiModelProperty("公安局name")
+    private String companyName;
+
+    @ApiModelProperty("派出所Id")
+    private String branchId;
+
+    @ApiModelProperty("分局(派出所Id)")
+    private String brachName;
+
+}

+ 37 - 0
src/main/java/com/metro/entity/ro/SelectMetroReq.java

@@ -0,0 +1,37 @@
+package com.metro.entity.ro;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.models.auth.In;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import java.io.Serializable;
+import java.net.Inet4Address;
+import java.util.Set;
+
+/**
+ * @ClassName: Metro
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 1:24
+ * ...
+ */
+@Data
+public class SelectMetroReq implements Serializable {
+
+    private Integer LineIds;
+
+    private String lineName;
+
+    private Integer metroId;
+
+    private String metroName;
+
+    private Integer questionId;
+
+    private String questionName;
+
+    private Integer level;
+}

+ 41 - 0
src/main/java/com/metro/entity/ro/SelectMetroResp.java

@@ -0,0 +1,41 @@
+package com.metro.entity.ro;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.metro.entity.po.Metro;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @ClassName: Metro
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 1:24
+ * ...
+ */
+@Data
+public class SelectMetroResp implements Serializable {
+
+    @ApiModelProperty("主键")
+    private Integer Id;
+
+    @ApiModelProperty("线路Id")
+    private Integer LineId;
+
+    @ApiModelProperty("线路名称")
+    private String lineName;
+
+    @ApiModelProperty("地铁名称")
+    private String metroName;
+
+    @ApiModelProperty("盘查口名称")
+    private String questionName;
+    /**
+     * 子菜单
+     */
+    private List<SelectMetroResp> children = new ArrayList<SelectMetroResp>();
+}

+ 28 - 0
src/main/java/com/metro/entity/ro/SelectPassreCordsPageListReq.java

@@ -0,0 +1,28 @@
+package com.metro.entity.ro;
+
+import com.metro.baseRe.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName: Companys
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/8 10:50
+ * ...
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class SelectPassreCordsPageListReq extends BaseEntity implements Serializable {
+
+    @ApiModelProperty("")
+    private String branchName;
+
+    @ApiModelProperty("")
+    private String staffName;
+
+}

+ 104 - 0
src/main/java/com/metro/entity/ro/SelectPassreCordsPageListResp.java

@@ -0,0 +1,104 @@
+package com.metro.entity.ro;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName: Companys
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/8 10:50
+ * ...
+ */
+@Data
+public class SelectPassreCordsPageListResp implements Serializable {
+
+    @ApiModelProperty("主键")
+    private Integer id;
+
+    @ApiModelProperty("")
+    private String carId;
+
+    @ApiModelProperty("")
+    private String carType;
+
+    @ApiModelProperty("")
+    private String xm;
+
+    @ApiModelProperty("")
+    private String engXm;
+
+    @ApiModelProperty("")
+    private String xb;
+
+    @ApiModelProperty("")
+    private String phone;
+
+    @ApiModelProperty("")
+    private String mz;
+
+    @ApiModelProperty("")
+    private String csrq;
+
+    @ApiModelProperty("")
+    private Date passTime;
+
+    @ApiModelProperty("")
+    private String passAddr;
+
+    @ApiModelProperty("")
+    private String pass;
+
+    @ApiModelProperty("")
+    private String kind;
+
+    @ApiModelProperty("")
+    private String waringMsg;
+
+    @ApiModelProperty("")
+    private int idPhoto;
+
+    @ApiModelProperty("")
+    private int scenePhoto;
+
+    @ApiModelProperty("")
+    private String cardAddr;
+
+    @ApiModelProperty("")
+    private String branchName;
+
+    @ApiModelProperty("")
+    private String staffName;
+
+    @ApiModelProperty("")
+    private String staffCardId;
+
+    @ApiModelProperty("")
+    private String msgId;
+
+    @ApiModelProperty("")
+    private String companyId;
+
+    @ApiModelProperty("")
+    private String barCode;
+
+    @ApiModelProperty("")
+    private String issue;
+
+    @ApiModelProperty("")
+    private String validRange;
+
+    @ApiModelProperty("")
+    private String displayMsg;
+
+    @ApiModelProperty("")
+    private String companId;
+
+    @ApiModelProperty("")
+    private String branchId;
+
+}

+ 16 - 0
src/main/java/com/metro/mapper/CompanysMapper.java

@@ -0,0 +1,16 @@
+package com.metro.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.metro.entity.po.Companys;
+
+/**
+ * @ClassName: CompanysMapper
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/8 13:52
+ * ...
+ */
+public interface CompanysMapper extends BaseMapper<Companys> {
+
+}

+ 16 - 0
src/main/java/com/metro/mapper/MetroMapper.java

@@ -0,0 +1,16 @@
+package com.metro.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.metro.entity.po.Metro;
+
+/**
+ * @ClassName: MetroMapper
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 1:40
+ * ...
+ */
+public interface MetroMapper extends BaseMapper<Metro> {
+
+}

+ 15 - 0
src/main/java/com/metro/mapper/PassreCordsMapper.java

@@ -0,0 +1,15 @@
+package com.metro.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.metro.entity.po.PassreCords;
+
+/**
+ * @ClassName: PassreCordsMapper
+ * @Description: 公司mapper
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/8 12:16
+ * ...
+ */
+public interface PassreCordsMapper extends BaseMapper<PassreCords> {
+}

+ 12 - 0
src/main/java/com/metro/service/AccountService.java

@@ -0,0 +1,12 @@
+package com.metro.service;
+
+/**
+ * @ClassName: AccountService
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 11:10
+ * ...
+ */
+public interface AccountService {
+}

+ 12 - 0
src/main/java/com/metro/service/AddressService.java

@@ -0,0 +1,12 @@
+package com.metro.service;
+
+/**
+ * @ClassName: AddressService
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 11:15
+ * ...
+ */
+public interface AddressService {
+}

+ 12 - 0
src/main/java/com/metro/service/CanRecordService.java

@@ -0,0 +1,12 @@
+package com.metro.service;
+
+/**
+ * @ClassName: CanRecordService
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 11:16
+ * ...
+ */
+public interface CanRecordService {
+}

+ 26 - 0
src/main/java/com/metro/service/CompanysService.java

@@ -0,0 +1,26 @@
+package com.metro.service;
+
+import com.metro.entity.ro.SelectCompanysPageReq;
+import com.metro.entity.ro.SelectCompanysPageResp;
+import com.metro.entity.ro.SelectMetroReq;
+
+import java.util.List;
+
+/**
+ * @ClassName: CompanysService
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/8 13:39
+ * ...
+ */
+public interface CompanysService {
+
+    /**
+     * 公安查询
+     * @param req 查询条件
+     * @return 返回结果
+     */
+    List<SelectCompanysPageResp> page(SelectCompanysPageReq req);
+
+}

+ 27 - 0
src/main/java/com/metro/service/MetroService.java

@@ -0,0 +1,27 @@
+package com.metro.service;
+
+import com.metro.entity.ro.SelectMetroReq;
+import com.metro.entity.ro.SelectMetroResp;
+
+import java.util.List;
+
+/**
+ * @ClassName: MetroService
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 1:38
+ * ...
+ */
+public interface MetroService {
+
+    /**
+     * 地铁查询
+     *
+     * @param req 查询条件
+     * @return 返回结果
+     */
+    //一二级
+    List<SelectMetroResp> list(SelectMetroReq req);
+
+}

+ 24 - 0
src/main/java/com/metro/service/PassreCordsService.java

@@ -0,0 +1,24 @@
+package com.metro.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.metro.entity.ro.SelectPassreCordsPageListResp;
+import com.metro.entity.ro.SelectPassreCordsPageListReq;
+
+/**
+ * @ClassName: PassreCordsService
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/8 12:14
+ * ...
+ */
+public interface PassreCordsService {
+
+    /**
+     * 查询公司信息
+     * @param req 查询条件
+     * @return page列表
+     */
+    IPage<SelectPassreCordsPageListResp> page(SelectPassreCordsPageListReq req);
+
+}

+ 12 - 0
src/main/java/com/metro/service/PoliceService.java

@@ -0,0 +1,12 @@
+package com.metro.service;
+
+/**
+ * @ClassName: PoliceService
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 11:25
+ * ...
+ */
+public interface PoliceService {
+}

+ 16 - 0
src/main/java/com/metro/service/impl/AccountServiceImpl.java

@@ -0,0 +1,16 @@
+package com.metro.service.impl;
+
+import com.metro.service.AccountService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @ClassName: AccountServiceImpl
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 11:11
+ * ...
+ */
+@Service
+public class AccountServiceImpl implements AccountService {
+}

+ 16 - 0
src/main/java/com/metro/service/impl/AddressServiceImpl.java

@@ -0,0 +1,16 @@
+package com.metro.service.impl;
+
+import com.metro.service.AddressService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @ClassName: AddressServiceImpl
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 11:15
+ * ...
+ */
+@Service
+public class AddressServiceImpl  implements AddressService {
+}

+ 16 - 0
src/main/java/com/metro/service/impl/CanRecordServiceImpl.java

@@ -0,0 +1,16 @@
+package com.metro.service.impl;
+
+import com.metro.service.CanRecordService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @ClassName: CanRecordServiceImpl
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 11:22
+ * ...
+ */
+@Service
+public class CanRecordServiceImpl implements CanRecordService {
+}

+ 53 - 0
src/main/java/com/metro/service/impl/CompanysServiceImpl.java

@@ -0,0 +1,53 @@
+package com.metro.service.impl;
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.metro.entity.po.Companys;
+import com.metro.entity.ro.SelectCompanysPageReq;
+import com.metro.entity.ro.SelectCompanysPageResp;
+import com.metro.mapper.CompanysMapper;
+import com.metro.service.CompanysService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @ClassName: ConpanysServiceImpl
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/8 13:40
+ * ...
+ */
+@Service
+public class CompanysServiceImpl implements CompanysService {
+
+    @Autowired
+    private CompanysMapper companysMapper;
+
+    /**
+     * 公安查询
+     * @param req 查询条件
+     * @return 返回结果
+     */
+    @Override
+    public List<SelectCompanysPageResp> page(SelectCompanysPageReq req) {
+        List<Companys> companys = companysMapper.selectList(selectCompanysWrapper(req));
+        if(CollectionUtils.isEmpty(companys)) {
+            return new ArrayList<>();
+        }
+        return companys.stream().map(p -> BeanUtil.toBean(p,SelectCompanysPageResp.class)).collect(Collectors.toList());
+    }
+
+    // 根据id查公安列表wrapper
+    private Wrapper<Companys> selectCompanysWrapper(SelectCompanysPageReq req) {
+        LambdaQueryWrapper<Companys> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(StringUtils.isNotEmpty(req.getCompanyId()),Companys::getBranchId,req.getCompanyId());
+        return wrapper;
+    }
+}

+ 128 - 0
src/main/java/com/metro/service/impl/MetroServiceImpl.java

@@ -0,0 +1,128 @@
+package com.metro.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.metro.entity.po.Companys;
+import com.metro.entity.po.Metro;
+import com.metro.entity.ro.SelectCompanysPageReq;
+import com.metro.entity.ro.SelectMetroReq;
+import com.metro.entity.ro.SelectMetroResp;
+import com.metro.mapper.MetroMapper;
+import com.metro.service.MetroService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import javax.naming.Name;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * @ClassName: MetroServiceImpl
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 1:39
+ * ...
+ */
+@Service
+public class MetroServiceImpl implements MetroService {
+
+    @Autowired
+    private MetroMapper metroMapper;
+
+    /**
+     * 地铁查询
+     *
+     * @param req 查询条件
+     * @return 返回结果
+     */
+    @Override
+    public List<SelectMetroResp> list(SelectMetroReq req) {
+        List<Metro> metros = metroMapper.selectList(selectListWrapper(req));
+        List<SelectMetroResp> metroRespList = metros.stream().map(p -> BeanUtil.toBean(p, SelectMetroResp.class)).collect(Collectors.toList());
+        return buildMenuTree(metroRespList);
+    }
+
+    // 地铁查询wrapper
+
+
+    private Wrapper<Metro> selectListWrapper(SelectMetroReq req) {
+        LambdaQueryWrapper<Metro> wrapper = new LambdaQueryWrapper<>();
+        Integer level = req.getLevel();
+        if (level == 2) {
+            wrapper.eq(Metro::getLineId, req.getLineIds());
+        }
+        if(level == 3) {
+            wrapper.eq(Metro::getQuestionId, req.getLineIds());
+        }
+        return wrapper;
+
+}
+    /**
+     * 构建前端所需要树结构
+     *
+     * @param menus 菜单列表
+     * @return 树结构列表
+     */
+    public List<SelectMetroResp> buildMenuTree(List<SelectMetroResp> menus) {
+        List<SelectMetroResp> returnList = new ArrayList<SelectMetroResp>();
+        List<Integer> tempList = new ArrayList();
+        for (SelectMetroResp dept : menus) {
+            tempList.add(dept.getId());
+        }
+        for (Iterator<SelectMetroResp> iterator = menus.iterator(); iterator.hasNext(); ) {
+            SelectMetroResp menu = (SelectMetroResp) iterator.next();
+            // 如果是顶级节点, 遍历该父节点的所有子节点 父节点id
+            if (!tempList.contains(menu.getLineId())) {
+              recursionFn(menus, menu);
+                returnList.add(menu);
+            }
+        }
+        if (returnList.isEmpty()) {
+            returnList = menus;
+        }
+        return returnList;
+    }
+    /**
+     * 递归列表
+     *
+     * @param list
+     * @param t
+     */
+    private void recursionFn(List<SelectMetroResp> list, SelectMetroResp t) {
+        // 得到子节点列表
+        List<SelectMetroResp> childList = getChildList(list, t);
+        t.setChildren(childList);
+        for (SelectMetroResp tChild : childList) {
+            if (hasChild(list, tChild)) {
+                recursionFn(list, tChild);
+            }
+        }
+    }
+    /**
+     * 得到子节点列表
+     */
+    private List<SelectMetroResp> getChildList(List<SelectMetroResp> list, SelectMetroResp t) {
+        List<SelectMetroResp> tlist = new ArrayList<SelectMetroResp>();
+        Iterator<SelectMetroResp> it = list.iterator();
+        while (it.hasNext()) {
+            SelectMetroResp n = (SelectMetroResp) it.next();
+            if (n.getLineId().longValue() == t.getId().longValue()) {
+                tlist.add(n);
+            }
+        }
+        return tlist;
+    }
+    /**
+     * 判断是否有子节点
+     */
+    private boolean hasChild(List<SelectMetroResp> list, SelectMetroResp t) {
+        return getChildList(list, t).size() > 0;
+    }
+}

+ 52 - 0
src/main/java/com/metro/service/impl/PassreCordsServiceImpl.java

@@ -0,0 +1,52 @@
+package com.metro.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.metro.entity.po.PassreCords;
+import com.metro.entity.ro.SelectPassreCordsPageListReq;
+import com.metro.entity.ro.SelectPassreCordsPageListResp;
+import com.metro.mapper.PassreCordsMapper;
+import com.metro.service.PassreCordsService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+/**
+ * @ClassName: PassreCordsServiceImpl
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/8 12:14
+ * ...
+ */
+@Service
+public class PassreCordsServiceImpl implements PassreCordsService {
+
+    @Autowired
+    private PassreCordsMapper passreCordsMapper;
+
+    /**
+     * 查询公司信息
+     * @param req 查询条件
+     * @return page列表
+     */
+    @Override
+    public IPage<SelectPassreCordsPageListResp> page(SelectPassreCordsPageListReq req) {
+        IPage<SelectPassreCordsPageListResp> respPage = new Page<>(req.getPageNo(), req.getPageSize());
+        Page<PassreCords> selectPage = passreCordsMapper.selectPage(new Page<>(req.getPageNo(), req.getPageSize()), pageWrapper(req));
+        if(CollectionUtils.isEmpty(selectPage.getRecords())) return respPage;
+        return selectPage.convert(p -> BeanUtil.toBean(p,SelectPassreCordsPageListResp.class));
+    }
+
+    // page Wrapper
+    private LambdaQueryWrapper<PassreCords> pageWrapper(SelectPassreCordsPageListReq req) {
+        LambdaQueryWrapper<PassreCords> wrapper = new LambdaQueryWrapper<>();
+        wrapper.like(StringUtils.isNotEmpty(req.getBranchName()),PassreCords::getBranchName,req.getBranchName());
+        wrapper.like(StringUtils.isNotEmpty(req.getStaffName()),PassreCords::getStaffName,req.getStaffName());
+        return wrapper;
+    }
+
+}

+ 16 - 0
src/main/java/com/metro/service/impl/PoliceServiceImpl.java

@@ -0,0 +1,16 @@
+package com.metro.service.impl;
+
+import com.metro.service.PoliceService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @ClassName: PoliceServiceImpl
+ * @Description: TODO
+ * @Author: ZS
+ * @CreateName: lws
+ * @Date 2022/3/9 11:26
+ * ...
+ */
+@Service
+public class PoliceServiceImpl implements PoliceService {
+}

+ 208 - 0
src/main/java/com/metro/utils/HttpClientUtil.java

@@ -0,0 +1,208 @@
+package com.metro.utils;
+
+
+
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.NameValuePair;
+import org.apache.commons.httpclient.methods.GetMethod;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.commons.httpclient.params.HttpMethodParams;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.ResponseHandler;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.BasicResponseHandler;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+
+import java.io.*;
+import java.net.URLEncoder;
+import java.util.Iterator;
+import java.util.Map;
+
+public class HttpClientUtil {
+
+
+    public static String post(String url, String data) throws ClientProtocolException, IOException {
+        CloseableHttpClient httpClient = HttpClients.createDefault();
+        HttpPost httpPost = new HttpPost(url);
+        //设置请求和传输超时时间
+        RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000).build();
+        httpPost.setConfig(requestConfig);
+        httpPost.setHeader("Content-Type", "text/plain; charset=utf-8");
+        httpPost.setEntity(new StringEntity(URLEncoder.encode(data, "UTF-8")));
+        HttpResponse response = httpClient.execute(httpPost);
+        String httpEntityContent = getHttpEntityContent(response);
+        httpPost.abort();
+        return httpEntityContent;
+    }
+
+    private static String getHttpEntityContent(HttpResponse response) throws IOException, UnsupportedEncodingException {
+        HttpEntity entity = response.getEntity();
+        if (entity != null) {
+            InputStream is = entity.getContent();
+            BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+            String line = br.readLine();
+            StringBuilder sb = new StringBuilder();
+            while (line != null) {
+                sb.append(line + "\n");
+                line = br.readLine();
+            }
+            return sb.toString();
+        }
+        return "";
+    }
+
+
+    public static String httpReader(String url, String code) {
+        System.out.println("GetPage:" + url);
+
+        HttpClient client = new HttpClient();
+        GetMethod method = new GetMethod(url);
+
+        String result = null;
+        try {
+            client.executeMethod(method);
+            int status = method.getStatusCode();
+            if (status == HttpStatus.SC_OK) {
+                result = method.getResponseBodyAsString();
+            } else {
+                System.out.println("Method failed: " + method.getStatusLine());
+            }
+        } catch (HttpException e) {
+            // 发生致命的异常,可能是协议不对或者返回的内容有问题
+            System.out.println("Please check your provided http address!");
+            e.printStackTrace();
+        } catch (IOException e) {
+            // 发生网络异常
+            System.out.println("发生网络异常!");
+            e.printStackTrace();
+        } finally {
+            // 释放连接
+            if (method != null)
+                method.releaseConnection();
+            method = null;
+            client = null;
+        }
+        return result;
+    }
+
+    public static String httpGet(String url, String code) {
+        System.out.println("GetPage:" + url);
+        String content = null;
+        HttpClient httpClient = new HttpClient();
+        // 设置header
+        httpClient.getParams().setParameter(HttpMethodParams.USER_AGENT,
+                "Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.1.2) Gecko/20090803 Fedora/3.5.2-2.fc11 Firefox/3.5.2");
+        GetMethod method = new GetMethod(url);
+        try {
+            int statusCode = httpClient.executeMethod(method);
+            System.out.println("httpClientUtils::statusCode=" + statusCode);
+            System.out.println(method.getStatusLine());
+            content = new String(method.getResponseBody(), code);
+
+        } catch (Exception e) {
+            System.out.println("time out");
+            e.printStackTrace();
+        } finally {
+            if (method != null){
+                method.releaseConnection();
+            }
+            method = null;
+            httpClient = null;
+        }
+        return content;
+    }
+
+    public static String httpPost(String url, Map paramMap, String code) {
+        System.out.println("GetPage:" + url);
+        String content = null;
+        if (url == null || url.trim().length() == 0 || paramMap == null || paramMap.isEmpty()){
+            return null;
+        }
+        HttpClient httpClient = new HttpClient();
+        // 设置header
+        httpClient.getParams().setParameter(HttpMethodParams.USER_AGENT,
+                "Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.1.2) Gecko/20090803 Fedora/3.5.2-2.fc11 Firefox/3.5.2");//
+
+        // 代理设置
+        // httpClient.getHostConfiguration().setProxy("128.128.176.74", 808);
+
+        PostMethod method = new PostMethod(url);
+        Iterator it = paramMap.keySet().iterator();
+
+        while (it.hasNext()) {
+            String key = it.next() + "";
+            Object o = paramMap.get(key);
+            if (o != null && o instanceof String) {
+                method.addParameter(new NameValuePair(key, o.toString()));
+            }
+            if (o != null && o instanceof String[]) {
+                String[] s = (String[]) o;
+                if (s != null)
+                    for (int i = 0; i < s.length; i++) {
+                        method.addParameter(new NameValuePair(key, s[i]));
+                    }
+            }
+        }
+        try {
+
+
+            int statusCode = httpClient.executeMethod(method);
+
+            System.out.println("httpClientUtils::statusCode=" + statusCode);
+
+            System.out.println(method.getStatusLine());
+            content = new String(method.getResponseBody(), code);
+
+        } catch (Exception e) {
+            System.out.println("time out");
+            e.printStackTrace();
+        } finally {
+            if (method != null)
+                method.releaseConnection();
+            method = null;
+            httpClient = null;
+        }
+        return content;
+
+    }
+
+    public static String httpPost(String url, Map paramMap) {
+        // 编码:UTF-8
+        return HttpClientUtil.httpPost(url, paramMap, "UTF-8");
+    }
+
+    public static String httpPost(String url, String json) {
+        String returnValue = null;
+        CloseableHttpClient httpClient = HttpClients.createDefault();
+        ResponseHandler<String> responseHandler = new BasicResponseHandler();
+        try {
+            httpClient = HttpClients.createDefault();
+            HttpPost httpPost = new HttpPost(url);
+            StringEntity requestEntity = new StringEntity(json, "utf-8");
+            requestEntity.setContentEncoding("UTF-8");
+            httpPost.setHeader("Content-type", "application/json");
+            httpPost.setEntity(requestEntity);
+            returnValue = httpClient.execute(httpPost, responseHandler);
+
+
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                httpClient.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        return returnValue;
+    }
+
+}

+ 240 - 0
src/main/java/com/metro/utils/HttpUtil.java

@@ -0,0 +1,240 @@
+package com.metro.utils;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpDelete;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpPut;
+import org.apache.http.client.utils.URLEncodedUtils;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicNameValuePair;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.*;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Created by Administrator on 2018/3/12.
+ */
+public class HttpUtil {
+
+
+    private static final Logger logger = LoggerFactory.getLogger(HttpClientUtil.class);
+
+    /**
+     * װHTTP POST
+     *
+     * @param
+     * @param
+     * @return
+     * @throws ClientProtocolException
+     * @throws IOException
+     */
+    public static String post(String url, Map<String, String> paramMap) throws ClientProtocolException, IOException {
+        HttpClient httpClient = HttpClients.createDefault();
+        HttpPost httpPost = new HttpPost(url);
+        //                        ʹ      䳬ʱʱ
+        RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000).build();
+        httpPost.setConfig(requestConfig);
+        List<NameValuePair> formparams = setHttpParams(paramMap);
+        UrlEncodedFormEntity param = new UrlEncodedFormEntity(formparams, "UTF-8");
+        httpPost.setEntity(param);
+        HttpResponse response = httpClient.execute(httpPost);
+        logger.info("************{}", response);
+        String httpEntityContent = getHttpEntityContent(response);
+        logger.info("************{}", httpEntityContent);
+        httpPost.abort();
+        logger.info("************{}", httpEntityContent);
+        return httpEntityContent;
+
+    }
+
+    /**
+     * װHTTP POST
+     *
+     * @param
+     * @param JSON
+     * @return
+     * @throws ClientProtocolException
+     * @throws IOException
+     */
+    public static String postData(String url, String data) throws ClientProtocolException, IOException {
+        HttpClient httpClient = HttpClients.createDefault();
+        HttpPost httpPost = new HttpPost(url);
+        //                        ʹ      䳬ʱʱ
+        RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000).build();
+        httpPost.setConfig(requestConfig);
+        httpPost.setHeader("Content-Type", "text/json; charset=utf-8");
+        httpPost.setEntity(new StringEntity(data, "UTF-8"));
+        HttpResponse response = httpClient.execute(httpPost);
+        String httpEntityContent = getHttpEntityContent(response);
+        httpPost.abort();
+        return httpEntityContent;
+    }
+
+    /**
+     * װHTTP GET
+     *
+     * @param
+     * @return
+     * @throws ClientProtocolException
+     * @throws IOException
+     */
+    public static String get(String url) throws ClientProtocolException, IOException {
+        HttpClient httpClient = HttpClients.createDefault();
+        HttpGet httpGet = new HttpGet();
+        //                        ʹ      䳬ʱʱ
+        RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000).build();
+        httpGet.setConfig(requestConfig);
+        httpGet.setURI(URI.create(url));
+        HttpResponse response = httpClient.execute(httpGet);
+        String httpEntityContent = getHttpEntityContent(response);
+        httpGet.abort();
+        return httpEntityContent;
+    }
+
+    /**
+     * װHTTP GET
+     *
+     * @param
+     * @param
+     * @return
+     * @throws ClientProtocolException
+     * @throws IOException
+     */
+    public static String get(String url, Map<String, String> paramMap) throws ClientProtocolException, IOException {
+        HttpClient httpClient = HttpClients.createDefault();
+        HttpGet httpGet = new HttpGet();
+        //                        ʹ      䳬ʱʱ
+        RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000).build();
+        httpGet.setConfig(requestConfig);
+        List<NameValuePair> formparams = setHttpParams(paramMap);
+        String param = URLEncodedUtils.format(formparams, "UTF-8");
+        httpGet.setURI(URI.create(url + "?" + param));
+        HttpResponse response = httpClient.execute(httpGet);
+        String httpEntityContent = getHttpEntityContent(response);
+        httpGet.abort();
+        return httpEntityContent;
+    }
+
+    /**
+     * װHTTP PUT
+     *
+     * @param
+     * @param
+     * @return
+     * @throws ClientProtocolException
+     * @throws IOException
+     */
+    public static String put(String url, Map<String, String> paramMap) throws ClientProtocolException, IOException {
+        HttpClient httpClient = HttpClients.createDefault();
+        HttpPut httpPut = new HttpPut(url);
+        //                        ʹ      䳬ʱʱ
+        RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000).build();
+        httpPut.setConfig(requestConfig);
+        List<NameValuePair> formparams = setHttpParams(paramMap);
+        UrlEncodedFormEntity param = new UrlEncodedFormEntity(formparams, "UTF-8");
+        httpPut.setEntity(param);
+        HttpResponse response = httpClient.execute(httpPut);
+        String httpEntityContent = getHttpEntityContent(response);
+        httpPut.abort();
+        return httpEntityContent;
+    }
+
+    /**
+     * װHTTP DELETE
+     *
+     * @param
+     * @return
+     * @throws ClientProtocolException
+     * @throws IOException
+     */
+    public static String delete(String url) throws ClientProtocolException, IOException {
+        HttpClient httpClient = HttpClients.createDefault();
+        HttpDelete httpDelete = new HttpDelete();
+        //                        ʹ      䳬ʱʱ
+        RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000).build();
+        httpDelete.setConfig(requestConfig);
+        httpDelete.setURI(URI.create(url));
+        HttpResponse response = httpClient.execute(httpDelete);
+        String httpEntityContent = getHttpEntityContent(response);
+        httpDelete.abort();
+        return httpEntityContent;
+    }
+
+    /**
+     * װHTTP DELETE
+     *
+     * @param
+     * @param
+     * @return
+     * @throws ClientProtocolException
+     * @throws IOException
+     */
+    public static String delete(String url, Map<String, String> paramMap) throws ClientProtocolException, IOException {
+        HttpClient httpClient = HttpClients.createDefault();
+        HttpDelete httpDelete = new HttpDelete();
+        //                        ʹ      䳬ʱʱ
+        RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000).build();
+        httpDelete.setConfig(requestConfig);
+        List<NameValuePair> formparams = setHttpParams(paramMap);
+        String param = URLEncodedUtils.format(formparams, "UTF-8");
+        httpDelete.setURI(URI.create(url + "?" + param));
+        HttpResponse response = httpClient.execute(httpDelete);
+        String httpEntityContent = getHttpEntityContent(response);
+        httpDelete.abort();
+        return httpEntityContent;
+    }
+
+
+    /**
+     * @param
+     * @return
+     */
+    private static List<NameValuePair> setHttpParams(Map<String, String> paramMap) {
+        List<NameValuePair> formparams = new ArrayList<NameValuePair>();
+        Set<Map.Entry<String, String>> set = paramMap.entrySet();
+        for (Map.Entry<String, String> entry : set) {
+            formparams.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
+        }
+        return formparams;
+    }
+
+    /**
+     * ӦHTTPʵ
+     *
+     * @param response
+     * @return
+     * @throws IOException
+     * @throws UnsupportedEncodingException
+     */
+    private static String getHttpEntityContent(HttpResponse response) throws IOException, UnsupportedEncodingException {
+        HttpEntity entity = response.getEntity();
+        if (entity != null) {
+            InputStream is = entity.getContent();
+            BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+            String line = br.readLine();
+            StringBuilder sb = new StringBuilder();
+            while (line != null) {
+                sb.append(line + "\n");
+                line = br.readLine();
+            }
+            return sb.toString();
+        }
+        return "";
+    }
+
+
+}

+ 71 - 0
src/main/java/com/metro/utils/ImageRepair.java

@@ -0,0 +1,71 @@
+package com.metro.utils;/*
+package com.game.project.fbgame.utils;
+
+import org.opencv.core.Core;
+import org.opencv.core.Mat;
+import org.opencv.core.Size;
+import org.opencv.highgui.HighGui;
+import org.opencv.imgcodecs.Imgcodecs;
+import org.opencv.imgproc.Imgproc;
+import org.opencv.photo.Photo;
+
+import static org.opencv.imgproc.Imgproc.threshold;
+
+*/
+/**
+ * @author shihongbo
+ * @description:
+ * @date 2021/12/21 15:04
+ *//*
+
+public class ImageRepair {
+    static {
+        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
+    }
+
+    public static void main(String[] args) {
+
+        String filePath = "D:\\upload\\white.jpg";
+        Mat img = Imgcodecs.imread(filePath);
+        // 先灰度化下
+        Mat gray = new Mat();
+        Imgproc.cvtColor(img, gray, Imgproc.COLOR_BGRA2GRAY);
+        // 高斯模糊
+        Imgproc.GaussianBlur(gray, gray, new Size(3, 3), 0);
+
+        int height = img.height();
+        int width = img.width();
+
+        // 图片二值化处理,把[240, 240, 240] ~ [255, 255, 255]以外的颜色变成0
+        Mat thresh = new Mat();
+        // 二值化处理
+        // inRange(img, new Scalar(240, 240, 240), new Scalar(255, 255, 255), thresh);
+
+        // 二值化处理 ,两种方式都可以实现二值化操作
+        threshold(gray, thresh, 0, 255,  Imgproc.THRESH_BINARY | Imgproc.THRESH_OTSU);
+        // 创建形状和尺寸的结构元素
+        Mat hiMask = new Mat();
+        Mat kernel = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(3, 3));
+
+        // 对Mask膨胀处理, 扩张待修复区域
+        Imgproc.dilate(thresh, hiMask, kernel);
+        //图像修复
+        Mat specular = new Mat();
+        Photo.inpaint(img, hiMask, specular, 5, Photo.INPAINT_TELEA);
+
+        // 显示原图
+        HighGui.namedWindow("Image", 0);
+        HighGui.resizeWindow("Image", width / 2, height / 2);
+        HighGui.imshow("Image", img);
+
+        // 显示修复后的图
+        HighGui.namedWindow("newImage", 0);
+        HighGui.resizeWindow("newImage", width / 2, height / 2);
+        HighGui.imshow("newImage", specular);
+
+        HighGui.waitKey(0);
+        // 释放所有的窗体资源
+        HighGui.destroyAllWindows();
+    }
+}
+*/

+ 100 - 0
src/main/java/com/metro/utils/JsonUtil.java

@@ -0,0 +1,100 @@
+package com.metro.utils;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class JsonUtil {
+    private static final Logger logger = LoggerFactory.getLogger(JsonUtil.class);
+
+    public static Map<String, Object> toMapFromJsonStr(String jsonStr) {
+        if (StringUtil.isEmpty(jsonStr)) {
+            return new HashMap();
+        }
+        Map<String, Object> argsMap;
+        try {
+            argsMap = (Map) com.alibaba.fastjson.JSONObject.parseObject(jsonStr, Map.class);
+        } catch (Exception ex) {
+            if (jsonStr.contains("\\")) {
+                try {
+                    jsonStr = jsonStr.replace("\\", "\\\\");
+                    argsMap = (Map) com.alibaba.fastjson.JSONObject.parseObject(jsonStr, Map.class);
+                } catch (Exception e) {
+                    logger.error("JSON转Map出错,jsonStr=" + jsonStr, e);
+                    argsMap = new HashMap();
+                }
+            } else {
+                logger.error("JSON转Map出错,jsonStr=" + jsonStr, ex);
+                argsMap = new HashMap();
+            }
+        }
+        return argsMap;
+    }
+
+    public static String toJsonFromObject(Object obj) {
+        if ((obj == null) || ("".equals(obj))) {
+            return "";
+        }
+        try {
+            return JSON.toJSONString(obj, new SerializerFeature[]{SerializerFeature.WriteNullStringAsEmpty});
+        } catch (Exception e) {
+            logger.error("Json转对象出错,obj=" + obj, e);
+        }
+        return null;
+    }
+
+    public static String toSqlJsonFromObject(Object obj) {
+        String sqlStr = toJsonFromObject(obj);
+        return sqlStr == null ? null : sqlStr.replaceAll("\\\\", "\\\\\\\\");
+    }
+
+    public static <T> T toBeanFromStr(String jsonStr, Class<T> c) {
+        if (StringUtil.isEmpty(jsonStr)) {
+            return null;
+        }
+        try {
+            return (T) com.alibaba.fastjson.JSONObject.parseObject(jsonStr, c);
+        } catch (Exception ex) {
+            if (jsonStr.contains("\\")) {
+                try {
+                    jsonStr = jsonStr.replace("\\", "\\\\");
+                    return (T) com.alibaba.fastjson.JSONObject.parseObject(jsonStr, c);
+                } catch (Exception e) {
+                    logger.error("JSON转对象出错,jsonStr=" + jsonStr, e);
+                }
+            } else {
+                logger.error("JSON转对象出错,jsonStr=" + jsonStr, ex);
+            }
+        }
+        return null;
+    }
+
+    public static <T> List<T> toListFromJsonStr(String jsonStr) {
+        if (StringUtil.isEmpty(jsonStr)) {
+            return new ArrayList();
+        }
+        List<T> argsMap;
+        try {
+            argsMap = (List) com.alibaba.fastjson.JSONObject.parseObject(jsonStr, List.class);
+        } catch (Exception ex) {
+            if (jsonStr.contains("\\")) {
+                try {
+                    jsonStr = jsonStr.replace("\\", "\\\\");
+                    return (List) com.alibaba.fastjson.JSONObject.parseObject(jsonStr, List.class);
+                } catch (Exception e) {
+                    logger.error("JSON转list出错,jsonStr=" + jsonStr, e);
+                }
+            } else {
+                logger.error("JSON转list出错,jsonStr=" + jsonStr, ex);
+            }
+            return new ArrayList();
+        }
+        return argsMap;
+    }
+}

+ 59 - 0
src/main/java/com/metro/utils/MD5UtilNew.java

@@ -0,0 +1,59 @@
+package com.metro.utils;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * @Auther yequanjun
+ * @Date 2020-05-22 16:37
+ * description:
+ */
+public class MD5UtilNew {
+    private static ThreadLocal<MessageDigest> messageDigestHolder = new
+            ThreadLocal();
+    static Logger log =
+            LoggerFactory.getLogger(MD5UtilNew.class);
+    static final char[] hexDigits = new char[]{'0', '1', '2', '3', '4',
+            '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
+
+    public static String md5(String data) {
+        try {
+            MessageDigest message = (MessageDigest)
+                    messageDigestHolder.get();
+            if (message == null) {
+                message = MessageDigest.getInstance("MD5");
+                messageDigestHolder.set(message);
+            }
+            message.update(data.getBytes());
+            byte[] b = message.digest();
+            String digestHexStr = "";
+            for (int i = 0; i < 16; ++i) {
+                digestHexStr = digestHexStr + byteHEX(b[i]);
+            }
+            return digestHexStr;
+        } catch (Exception var5) {
+            System.out.print("MD5: " + data);
+            return null;
+        }
+    }
+
+    private static String byteHEX(byte ib) {
+        char[] ob = new char[]{hexDigits[ib >>> 4 & 15], hexDigits[ib &
+                15]};
+        String s = new String(ob);
+        return s;
+    }
+
+    static {
+        try {
+            MessageDigest message = MessageDigest.getInstance("MD5");
+            messageDigestHolder.set(message);
+        } catch (NoSuchAlgorithmException var1) {
+            System.out.print("java.security.MessageDigest");
+        }
+    }
+
+}

+ 110 - 0
src/main/java/com/metro/utils/PageUtils.java

@@ -0,0 +1,110 @@
+/**
+ * Copyright 2018 renren opensource http://www.renren.io
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.metro.utils;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 分页工具类
+ * 
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2016年11月4日 下午12:59:00
+ */
+public class PageUtils implements Serializable {
+	private static final long serialVersionUID = 1L;
+	//总记录数
+	private int totalCount;
+	//每页记录数
+	private long pageSize;
+	//总页数
+	private int totalPage;
+	//当前页数
+	private long currPage;
+	//列表数据
+	private List<?> list;
+	
+	/**
+	 * 分页
+	 * @param list        列表数据
+	 * @param totalCount  总记录数
+	 * @param pageSize    每页记录数
+	 * @param currPage    当前页数
+	 */
+	public PageUtils(List<?> list, int totalCount, int pageSize, int currPage) {
+		this.list = list;
+		this.totalCount = totalCount;
+		this.pageSize = pageSize;
+		this.currPage = currPage;
+		this.totalPage = (int)Math.ceil((double)totalCount/pageSize);
+	}
+
+	/**
+	 * 分页
+	 */
+	public PageUtils(Page<?> page) {
+		this.list = page.getRecords();
+		this.totalCount = (int)page.getTotal();
+		this.pageSize = page.getSize();
+		this.currPage = page.getCurrent();
+		this.totalPage = (int)page.getPages();
+	}
+
+	public int getTotalCount() {
+		return totalCount;
+	}
+
+	public void setTotalCount(int totalCount) {
+		this.totalCount = totalCount;
+	}
+
+	public long getPageSize() {
+		return pageSize;
+	}
+
+	public void setPageSize(int pageSize) {
+		this.pageSize = pageSize;
+	}
+
+	public int getTotalPage() {
+		return totalPage;
+	}
+
+	public void setTotalPage(int totalPage) {
+		this.totalPage = totalPage;
+	}
+
+	public long getCurrPage() {
+		return currPage;
+	}
+
+	public void setCurrPage(int currPage) {
+		this.currPage = currPage;
+	}
+
+	public List<?> getList() {
+		return list;
+	}
+
+	public void setList(List<?> list) {
+		this.list = list;
+	}
+	
+}

+ 55 - 0
src/main/java/com/metro/utils/R.java

@@ -0,0 +1,55 @@
+package com.metro.utils;
+
+import org.apache.http.HttpStatus;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 返回数据
+ *
+ * @author zhao
+ * @date 2020年8月17日
+ */
+
+public class R extends HashMap<String, Object> {
+	private static final long serialVersionUID = 1L;
+
+	public R() {
+		put("code", HttpStatus.SC_OK);
+		put("msg", "success");
+	}
+
+	public static R error(String msg) {
+		return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, msg);
+	}
+
+	public static R error(int code, String msg) {
+		R r = new R();
+		r.put("code", code);
+		r.put("msg", msg);
+		return r;
+	}
+
+	public static R ok(String msg) {
+		R r = new R();
+		r.put("msg", msg);
+		return r;
+	}
+
+	public static R ok(Map<String, Object> map) {
+		R r = new R();
+		r.putAll(map);
+		return r;
+	}
+
+	public static R ok() {
+		return new R();
+	}
+
+	@Override
+	public R put(String key, Object value) {
+		super.put(key, value);
+		return this;
+	}
+}

+ 99 - 0
src/main/java/com/metro/utils/SearchPager.java

@@ -0,0 +1,99 @@
+package com.metro.utils;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * 分页查询相关参数。
+ *
+ * @author 永芬
+ */
+public class SearchPager {
+    private int pageNumber = 1;// 查询页码
+
+    private int pageSize = 10;// 每页大小
+
+    // 查询表达式,注意:表达式中不能有空格
+    private String expression;
+
+    // 是否计算总数, 这里使用Boolean而不是boolean的原因:
+    // 页面请求不一定每次都会有countTotal参数, 即countTotal参数有可能为null,
+    // 而boolean类型只能是true或者false, 所以这里需要修改为Boolean类型
+    private Boolean countTotal = null;
+
+    private boolean autoSearch = false;// 是否自动查询
+
+    /**
+     * 获取查询页面,默认为第一页。
+     */
+    public int getPageNumber() {
+        return pageNumber;
+    }
+
+    /**
+     * 设置查询页码。
+     */
+    public void setPageNumber(int pageNumber) {
+        this.pageNumber = pageNumber;
+    }
+
+    /**
+     * 获取每页记录数,默认为每页10条记录。
+     */
+    public int getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(int pageSize) {
+        this.pageSize = pageSize;
+    }
+
+    /**
+     * 获取查询条件表达式,主要用于自定义查询。
+     */
+    public String getExpression() {
+        if (StringUtils.isNotBlank(expression)) {
+            expression = StringUtils.replace(expression, " ", "+");
+        }
+        return expression;
+    }
+
+    /**
+     * 设置查询条件表达式。
+     */
+    public void setExpression(String expression) {
+        this.expression = expression;
+    }
+
+    /**
+     * 判断是否计算总数,true表示计算,false表示不计算,默认为true。
+     */
+    public Boolean isCountTotal() {
+        return countTotal;
+    }
+
+    /**
+     * 设置是否记录总数,true表示计算,false表示不计算,默认为true。
+     */
+    public void setCountTotal(Boolean countTotal) {
+        this.countTotal = countTotal;
+    }
+
+    /**
+     * 判断是否自动查询,true表示自动查询,false表示不自动查询,默认为true。
+     */
+    public boolean isAutoSearch() {
+        return autoSearch;
+    }
+
+    /**
+     * 设置是否自动查询,true表示自动查询,false表示不自动查询,默认为true。
+     */
+    public void setAutoSearch(boolean autoSearch) {
+        this.autoSearch = autoSearch;
+    }
+
+    public Page toPage() {
+        return new Page<>(getPageNumber(), getPageSize());
+    }
+}

+ 61 - 0
src/main/java/com/metro/utils/Sha1Util.java

@@ -0,0 +1,61 @@
+package com.metro.utils;
+
+import cn.hutool.core.util.ArrayUtil;
+import com.alibaba.fastjson.JSONObject;
+
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+import java.nio.charset.StandardCharsets;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.util.Arrays;
+import java.util.Base64;
+
+/**
+ * <h3>TestUtil</h3>
+ * <p></p>
+ *
+ * @author : zxc
+ * @version : 1.0
+ * @date : 2021-07-13 15:16
+ **/
+public class Sha1Util {
+
+    public static JSONObject decrypt(String encryptedData, String sessionKey, String iv) throws NoSuchPaddingException,
+            NoSuchAlgorithmException, InvalidAlgorithmParameterException, InvalidKeyException, BadPaddingException,
+            IllegalBlockSizeException {
+        Base64.Decoder decoder = Base64.getDecoder();
+        byte[] sessionKeyBytes = decoder.decode(sessionKey);
+        byte[] ivBytes = decoder.decode(iv);
+        byte[] encryptedBytes = decoder.decode(encryptedData);
+        // 密钥需16位(16的倍数),如果不是16位,补齐16位
+        int base = 16;
+        if (sessionKeyBytes.length % base != 0) {
+            int groups = sessionKeyBytes.length / base + 1;
+            byte[] temp = new byte[groups * base];
+            Arrays.fill(temp, (byte) 0);
+            System.arraycopy(sessionKeyBytes, 0, temp, 0, sessionKeyBytes.length);
+            sessionKeyBytes = temp;
+        }
+
+        // JDK does not support PKCS7Padding, use PKCS5Padding instead
+        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
+        SecretKeySpec skeySpec = new SecretKeySpec(sessionKeyBytes, "AES");
+        IvParameterSpec ivSpec = new IvParameterSpec(ivBytes);
+        cipher.init(Cipher.DECRYPT_MODE, skeySpec, ivSpec);
+        byte[] ret = cipher.doFinal(encryptedBytes);
+        if (ArrayUtil.isNotEmpty(ret)) {
+            return JSONObject.parseObject(new String(ret, StandardCharsets.UTF_8));
+        }
+        return null;
+    }
+
+    public static void main(String[] args) {
+
+    }
+}

+ 40 - 0
src/main/java/com/metro/utils/Sha256Util.java

@@ -0,0 +1,40 @@
+package com.metro.utils;
+
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * @Auther yequanjun
+ * @Date 2020-05-22 16:22
+ * description:
+ */
+public class Sha256Util {
+
+    public static String getSHA256StrJava(String str) {
+        MessageDigest messageDigest;
+        String encodeStr = "";
+        try {
+            messageDigest = MessageDigest.getInstance("SHA-256");
+            messageDigest.update(str.getBytes(StandardCharsets.UTF_8));
+            encodeStr = byte2Hex(messageDigest.digest());
+        } catch (NoSuchAlgorithmException e) {
+            /*LogManager.exception(ExceptionType.BUSINESS.getValue(), e,
+                    "getSHA256StrJava error", "params", str);*/
+        }
+        return encodeStr;
+    }
+
+    private static String byte2Hex(byte[] bytes) {
+        StringBuilder stringBuffer = new StringBuilder();
+        String temp = null;
+        for (int i = 0; i < bytes.length; i++) {
+            temp = Integer.toHexString(bytes[i] & 0xFF);
+            if (temp.length() == 1) {
+                stringBuffer.append("0");
+            }
+            stringBuffer.append(temp);
+        }
+        return stringBuffer.toString();
+    }
+}

+ 97 - 0
src/main/java/com/metro/utils/SignUtil.java

@@ -0,0 +1,97 @@
+package com.metro.utils;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import java.security.MessageDigest;
+import java.util.Arrays;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * <h3>SignUtil</h3>
+ * <p></p>
+ *
+ * @author : lishuo
+ * @version : 1.0
+ * @date : 2021-05-25 13:47
+ **/
+public class SignUtil {
+
+    /**
+     * 生成签名. 注意,若含有sign_type字段,必须和signType参数保持一致。
+     *
+     * @param data     待签名数据
+     * @param key      API密钥
+     * @param signType 签名方式
+     * @return 签名
+     */
+    public static String generateSignature(final Map<String, String> data, String key, String signType) throws Exception {
+
+        Set<String> keySet = data.keySet();
+        String[] keyArray = keySet.toArray(new String[keySet.size()]);
+        Arrays.sort(keyArray);
+        StringBuilder sb = new StringBuilder();
+        for (String k : keyArray) {
+            if (k.equals("sign")) {
+                continue;
+            }
+            if (data.get(k).trim().length() > 0)  {
+                // 参数值为空,则不参与签名
+                sb.append(k).append("=").append(data.get(k).trim()).append("&");
+            }
+
+        }
+        sb.append("key=").append(key);
+        if ("MD5".equals(signType)) {
+            return MD5(sb.toString()).toUpperCase();
+        } else if ("HMACSHA256".equals(signType)) {
+            return HMACSHA256(sb.toString(), key);
+        } else {
+            throw new Exception(String.format("Invalid sign_type: %s", signType));
+        }
+    }
+    /**
+     * 生成 MD5
+     *
+     * @param data 待处理数据
+     * @return MD5结果
+     */
+    public static String MD5(String data) throws Exception {
+        MessageDigest md = MessageDigest.getInstance("MD5");
+        byte[] array = md.digest(data.getBytes("UTF-8"));
+        StringBuilder sb = new StringBuilder();
+        for (byte item : array) {
+            sb.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3));
+        }
+        return sb.toString().toUpperCase();
+    }
+    /**
+     * 生成 HMACSHA256
+     *
+     * @param data 待处理数据
+     * @param key  密钥
+     * @return 加密结果
+     * @throws Exception
+     */
+    public static String HMACSHA256(String data, String key) throws Exception {
+        Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
+        SecretKeySpec secret_key = new SecretKeySpec(key.getBytes("UTF-8"), "HmacSHA256");
+        sha256_HMAC.init(secret_key);
+        byte[] array = sha256_HMAC.doFinal(data.getBytes("UTF-8"));
+        StringBuilder sb = new StringBuilder();
+        for (byte item : array) {
+            sb.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3));
+        }
+        return sb.toString().toUpperCase();
+    }
+
+    public static Long getGameRoomCode() {
+        Long randNum = (long)(Math.random()* (999999)+1);
+        return randNum;
+    }
+
+    public static void main(String[] args) {
+
+        System.out.println(getGameRoomCode());
+    }
+}

+ 198 - 0
src/main/java/com/metro/utils/StringUtil.java

@@ -0,0 +1,198 @@
+package com.metro.utils;
+
+import java.text.DecimalFormat;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * <h3>StringUtil</h3>
+ * <p>字符串工具类</p>
+ *
+ * @author : zouxucheng
+ * @version : 1.0
+ * @date : 2021-05-20 11:05
+ **/
+public class StringUtil {
+
+    public static boolean isEmpty(String s) {
+        return (s == null) || (s.trim().isEmpty()) || ("null".equalsIgnoreCase(s));
+    }
+
+    public static boolean isNotEmpty(String s) {
+        return !isEmpty(s);
+    }
+
+    public static String toString(Object obj) {
+        return obj == null ? null : obj.toString().trim();
+    }
+
+    public static String toStringNotNull(Object obj) {
+        if (obj == null) {
+            return "";
+        }
+        String s = obj.toString();
+        return isEmpty(s) ? "" : s;
+    }
+
+    public static Integer toIntegerFromObj(Object obj) {
+        String str = toStringNotNull(obj);
+        return validate(str, "[+-]?\\d+") ? Integer.parseInt(str) : 0;
+    }
+
+    public static Long toLongFromObj(Object obj) {
+        String str = toStringNotNull(obj);
+        return validate(str, "[+-]?\\d+") ? Long.parseLong(str) : 0L;
+    }
+
+    public static Double toDoubleFromObj(Object obj) {
+        String str = toStringNotNull(obj);
+        return validate(str, "([+-]?\\d+(\\.\\d+)?)|(([-+]?\\d+\\.?\\d*)[Ee]{1}([-+]?\\d+))") ? Double.parseDouble(str) : 0.0D;
+    }
+
+    public static boolean validate(String arg, String regex) {
+        return (StringUtil.isNotEmpty(arg)) && (arg.matches(regex));
+    }
+
+    public static String toDoubleStrFromObj(Object obj) {
+        return toStrFromDouble(toDoubleFromObj(obj));
+    }
+
+    public static String toStrFromDouble(Double d) {
+        return (d == null) || (d.doubleValue() == 0.0D) ? "" : String.format("%.2f", new Object[]{d});
+    }
+
+    public static String toStrFromList(List<Object> list, String separator) {
+        if ((list == null) || (list.isEmpty())) {
+            return "";
+        }
+        StringBuffer sb = new StringBuffer();
+        for (Object s : list) {
+            if (isNotEmpty(toStringNotNull(s))) {
+                sb.append(s.toString());
+                sb.append(separator);
+            }
+        }
+        return sb.length() <= 0 ? "" : sb.substring(0, sb.length() - 1);
+    }
+
+    public static boolean isNumeric(String str) {
+        if (isEmpty(str)) {
+            return false;
+        }
+        int sz = str.length();
+        for (int i = 0; i < sz; i++) {
+            if (!Character.isDigit(str.charAt(i))) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    public static boolean isChinese(String strName) {
+        char[] ch = strName.toCharArray();
+        for (int i = 0; i < ch.length; i++) {
+            char c = ch[i];
+            if (isChinese(c)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public static boolean isChinese(char c) {
+        Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
+        if ((ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS) || (ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS) || (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A) || (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B) || (ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION) || (ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) || (ub == Character.UnicodeBlock.GENERAL_PUNCTUATION)) {
+            return true;
+        }
+        return false;
+    }
+
+    public static String toSqlStrFromList(List<String> list) {
+        if ((list == null) || (list.isEmpty())) {
+            return "";
+        }
+        StringBuffer sb = new StringBuffer();
+        for (String s : list) {
+            if (isNotEmpty(s)) {
+                sb.append("'");
+                sb.append(convertSqlValue(s));
+                sb.append("',");
+            }
+        }
+        return sb.length() <= 0 ? "" : sb.substring(0, sb.length() - 1);
+    }
+
+    public static String convertSqlValue(String value) {
+        if (null == value) {
+            return null;
+        }
+        if (isEmpty(value)) {
+            return "";
+        }
+        if (value.contains("'")) {
+            value = value.replace("'", "''");
+        }
+        if (value.endsWith("\\")) {
+            char[] arr = value.toCharArray();
+            int count = 0;
+            for (int i = arr.length; i > 0; i--) {
+                if ('\\' != arr[(i - 1)]) {
+                    break;
+                }
+                count++;
+            }
+            if ((count & 0x1) != 0) {
+                value = value + "\\";
+            }
+        }
+        return value;
+    }
+
+    public static String divition(double divisor, double dividend) {
+        return divition(divisor, dividend, 2);
+    }
+
+    public static String divition(double divisor, double dividend, int num) {
+        if (dividend == 0.0D) {
+            return "";
+        }
+        return String.format("%." + num + "f", divisor / dividend);
+    }
+
+    public static String moneyFormat(String s) {
+        if ((isEmpty(s)) || (!validate(s, "([+-]?\\d+(\\.\\d+)?)|(([-+]?\\d+\\.?\\d*)[Ee]{1}([-+]?\\d+))"))) {
+            return "";
+        }
+        DecimalFormat df = new DecimalFormat("#,###.####");
+        Double d = Double.parseDouble(s);
+        return df.format(d);
+    }
+
+    public static String moneyFormat(String s, String unit) {
+        if ((isEmpty(s)) || (!validate(s, "([+-]?\\d+(\\.\\d+)?)|(([-+]?\\d+\\.?\\d*)[Ee]{1}([-+]?\\d+))"))) {
+            return "";
+        }
+        return moneyFormat(s).concat(unit);
+    }
+
+    public static String getNumFromStr(String s) {
+        if (isEmpty(s)) {
+            return "";
+        }
+        String regEx = "[^0-9.]";
+        Pattern p = Pattern.compile(regEx);
+        Matcher m = p.matcher(s);
+        return m.replaceAll("").trim();
+    }
+
+    public static String getRandom() {
+        String str = "";
+        for (int i = 0;i<2;i++){
+            str = str+ (char)(Math.random()*26+'A');
+        }
+        System.out.println(str);
+        return str;
+    }
+
+}

+ 0 - 100
src/main/java/com/rshy/project/hy/mpGenerator/MpGenerator.java

@@ -1,100 +0,0 @@
-package com.zjjcnt.zhgd.mybatisGenerator;
-
-import com.baomidou.mybatisplus.annotation.DbType;
-import com.baomidou.mybatisplus.core.toolkit.StringPool;
-import com.baomidou.mybatisplus.generator.AutoGenerator;
-import com.baomidou.mybatisplus.generator.InjectionConfig;
-import com.baomidou.mybatisplus.generator.config.*;
-import com.baomidou.mybatisplus.generator.config.po.TableInfo;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
-
-import java.io.BufferedInputStream;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.*;
-
-/**
- * 代码生成器
- */
-public class MpGenerator {
-
-    public static void main(String[] args) throws InterruptedException, IOException {
-
-        InputStream is = new BufferedInputStream(new FileInputStream("F:\\mybatisplug\\src\\main\\resources\\mybatis-plus.properties"));
-        ResourceBundle rb = new PropertyResourceBundle(is);
-        System.out.println(rb.getObject("OutputDir"));
-
-
-        //用来获取Mybatis-Plus.properties文件的配置信息
-//        final ResourceBundle rb = ResourceBundle.getBundle("mybatis-plus");
-
-        // 代码生成器
-        AutoGenerator mpg = new AutoGenerator();
-
-        // 全局配置
-        GlobalConfig gc = new GlobalConfig();
-        gc.setOutputDir(rb.getString("OutputDir"));
-        gc.setOpen(false);
-        gc.setBaseResultMap(true);
-        gc.setBaseColumnList(true);
-        gc.setAuthor(rb.getString("author"));
-        gc.setSwagger2(true);
-        gc.setMapperName("%sMapper");
-        gc.setXmlName("%sMapper");
-        gc.setServiceName("%sService");
-        gc.setServiceImplName("%sServiceImpl");
-        gc.setControllerName("%sController");
-        mpg.setGlobalConfig(gc);
-
-        // 数据源配置
-        DataSourceConfig dsc = new DataSourceConfig();
-        dsc.setDbType(DbType.MYSQL);
-        dsc.setUrl(rb.getString("url"));
-        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
-        dsc.setUsername(rb.getString("userName"));
-        dsc.setPassword(rb.getString("password"));
-        mpg.setDataSource(dsc);
-
-        // 包配置
-        PackageConfig pc = new PackageConfig();
-        pc.setParent(rb.getString("parent"));
-        pc.setController("web.controller" );
-        pc.setService("service" );
-        pc.setServiceImpl("service" + ".impl");
-        pc.setEntity("entity");
-        pc.setMapper("mapper" );
-        mpg.setPackageInfo(pc);
-
-        // 自定义配置
-        InjectionConfig cfg = new InjectionConfig() {
-            @Override
-            public void initMap() {
-                // to do nothing
-            }
-        };
-        List<FileOutConfig> focList = new ArrayList<>();
-        focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {
-            @Override
-            public String outputFile(TableInfo tableInfo) {
-                // 自定义输入文件名称
-                return rb.getString("OutputDirXml") + "/mapper/" + "/" + tableInfo.getEntityName() + StringPool.DOT_XML;
-            }
-        });
-        cfg.setFileOutConfigList(focList);
-        mpg.setCfg(cfg);
-        mpg.setTemplate(new TemplateConfig().setXml(null));
-
-        // 策略配置
-        StrategyConfig strategy = new StrategyConfig();
-        strategy.setNaming(NamingStrategy.underline_to_camel);
-        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
-        strategy.setEntityLombokModel(true);
-        strategy.setInclude(new String[]{rb.getString("tableName")});
-        mpg.setStrategy(strategy);
-        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
-        mpg.execute();
-
-    }
-}

+ 0 - 35
src/main/java/com/rshy/project/hy/server/MyThread.java

@@ -1,35 +0,0 @@
-package com.rshy.project.hy.server;
-
-import com.alibaba.fastjson.JSONObject;
-
-import java.util.concurrent.Callable;
-
-/**
- * @ProjectName: rshy
- * @Package: com.rshy.project.hy.server
- * @ClassName: MyThread
- * @Author: shihongbo
- * @Description:
- * @Date: 2022/3/2 14:41
- * @Version: 1.0
- */
-public class MyThread implements Callable<JSONObject> {
-
-    private String name;
-    private JSONObject parameter;
-
-    public MyThread(JSONObject parameter, String name) {
-        this.parameter=parameter;
-        this.name=name;
-    }
-
-    //数据回调
-    public JSONObject call() throws Exception {
-        System.out.println("-------------------------线程"+name+"---等待----2000毫秒-----模拟接口调用消耗的时间(这里可以调用接口传参数parameter)");
-        Thread.sleep(2000);
-        this.parameter.put("returnData","ok");
-        this.parameter.put("threadName",name);
-        return this.parameter;
-    }
-
-}

+ 0 - 539
src/main/java/com/rshy/project/hy/server/RshyServer.java

@@ -1,539 +0,0 @@
-package com.rshy.project.hy.server;
-
-import cn.hutool.http.HttpUtil;
-import com.alibaba.fastjson.JSONObject;
-import com.rshy.project.hy.baseRe.BaseException;
-import com.rshy.project.hy.baseRe.Ret;
-import com.rshy.project.hy.server.param.RshyParam;
-import com.rshy.project.hy.server.vo.RshyTypeVo;
-import com.rshy.project.hy.server.vo.RshyVo;
-import com.rshy.project.hy.server.vo.RshyWarningVo;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.concurrent.BasicThreadFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-import org.springframework.util.CollectionUtils;
-
-import java.io.IOException;
-import java.util.*;
-import java.util.concurrent.*;
-
-/**
- * @ProjectName: rshy
- * @Package: com.rshy.project.hy.server
- * @ClassName: RshyServer
- * @Author: shihongbo
- * @Description:
- * @Date: 2022/3/1 17:37
- * @Version: 1.0
- */
-@Component
-public class RshyServer {
-
-    @Value("${base.url}")
-    private String baseUrl;
-
-    /**
-     * 请求接口
-     */
-    private static final List<String> API_TYPE = new ArrayList<>();
-
-    private static ScheduledExecutorService pool = new ScheduledThreadPoolExecutor(10,
-            new BasicThreadFactory.Builder().namingPattern("moreHttpApiDemo-pool-%d").daemon(Boolean.TRUE).build());
-
-    static {
-        API_TYPE.add("pctdfk");
-        API_TYPE.add("pctjsry");
-        API_TYPE.add("pctxdry");
-        API_TYPE.add("pctqkry");
-        API_TYPE.add("pctjkm");
-        API_TYPE.add("pctzt");
-        API_TYPE.add("pctzfba");
-        API_TYPE.add("pctzdry");
-    }
-
-
-    /***
-     * 核验接口
-     * @param rshyParam
-     * @return
-     */
-    public RshyVo getRshyInfo(RshyParam rshyParam) {
-        if (Objects.isNull(rshyParam) || (StringUtils.isBlank(rshyParam.getSfzh()) && StringUtils.isBlank(rshyParam.getBarCode()) && StringUtils.isBlank(rshyParam.getXm()))) {
-            throw new BaseException("参数错误,请检验参数");
-        }
-        return getMoreHttpApi(rshyParam);
-    }
-
-
-    private RshyVo getMoreHttpApi(RshyParam rshyParam) {
-        List<RshyTypeVo> returnMap = new CopyOnWriteArrayList<>();
-        RshyVo rshyVo = new RshyVo();
-        try {
-            API_TYPE.forEach(url -> pool.submit(() -> {
-                try {
-                    returnMap.add(getHttp(rshyParam,url));
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }));
-            pool.shutdown();
-            pool.awaitTermination(1, TimeUnit.HOURS);
-            List<RshyWarningVo> rshyWarningVoList = new ArrayList<>();
-            StringBuilder stringBuilder = new StringBuilder();
-            RshyWarningVo rshyWarningVoByAll = null;
-            for (int i = 0;i< returnMap.size();i++) {
-                if ((Objects.nonNull(rshyParam.getSfzh()) && Objects.isNull(rshyParam.getXm())) || Objects.nonNull(rshyParam.getBarCode())) {
-                 if ("pctjkm".equals(returnMap.get(i).getType()) && Objects.nonNull(returnMap.get(i).getMap())) {
-                     Map<String, String> map = returnMap.get(i).getMap();
-                     rshyVo.setXm(map.get("USER_NAME"));
-                     rshyVo.setAddress(map.get("CURRENT_ADDR"));
-                     rshyVo.setSfzh(map.get("ID_NUM"));
-                     rshyVo.setPhone(map.get("PN"));
-                     rshyVo.setHealthCode(map.get("COLOR_CODE_LABEL"));
-                 }
-                 if ("pctdfk".equals(returnMap.get(i).getType()) && Objects.nonNull(returnMap.get(i).getMap())) {
-                     Map<String, String> map = returnMap.get(i).getMap();
-                     rshyVo.setXm(map.get("USER_NAME"));
-                     rshyVo.setAddress(map.get("CURRENT_ADDR"));
-                     rshyVo.setSfzh(map.get("ID_NUM"));
-                     rshyVo.setPhone(map.get("PN"));
-                 }
-                }
-                //在逃人员
-                if ("pctzt".equals(returnMap.get(i).getType()) && Objects.nonNull(returnMap.get(i).getMap())) {
-                    rshyVo.setPass(0);
-                    Map<String, String> map = returnMap.get(i).getMap();
-                    rshyVo.setKind(map.get("ztrylxmc"));
-                    RshyWarningVo rshyWarningVo = new RshyWarningVo();
-                    rshyWarningVo.setTitle("是否为逃犯");
-                    rshyWarningVo.setTitle("是");
-                    rshyVo.setWarning(Arrays.asList(rshyWarningVo));
-                    rshyVo.setTts("核验不通过");
-                    break;
-                }
-                rshyWarningVoByAll = new RshyWarningVo();
-                switch (returnMap.get(i).getType()) {
-                    case "pctdfk":
-                        if (Objects.nonNull(returnMap.get(i).getMap())) {
-                            Map<String, String> map = returnMap.get(i).getMap();
-                            rshyWarningVoByAll.setDescription(map.get("jyaq"));
-                            rshyWarningVoByAll.setTitle("打防控记录");
-                            stringBuilder.append("打防控");
-                            rshyWarningVoList.add(rshyWarningVoByAll);
-                        }
-                        break;
-                    case "pctjsry":
-                        if (Objects.nonNull(returnMap.get(i).getMap())) {
-                            Map<String, String> map = returnMap.get(i).getMap();
-                            rshyWarningVoByAll.setDescription(map.get("jyaq"));
-                            rshyWarningVoByAll.setTitle("监所人员记录");
-                            rshyWarningVoList.add(rshyWarningVoByAll);
-                            stringBuilder.append("监所人员");
-                        }
-                        break;
-                    case "pctxdry":
-                        if (Objects.nonNull(returnMap.get(i).getMap())) {
-                            Map<String, String> map = returnMap.get(i).getMap();
-                            rshyWarningVoByAll.setDescription(map.get("xdcsmc"));
-                            rshyWarningVoByAll.setTitle("吸毒人员记录");
-                            rshyWarningVoList.add(rshyWarningVoByAll);
-                            stringBuilder.append("吸毒人员");
-                        }
-                        break;
-                    case "pctqkry":
-                        if (Objects.nonNull(returnMap.get(i).getMap())) {
-                            Map<String, String> map = returnMap.get(i).getMap();
-                            rshyWarningVoByAll.setDescription(map.get("lsqkqk"));
-                            rshyWarningVoByAll.setTitle("前科人员记录");
-                            rshyWarningVoList.add(rshyWarningVoByAll);
-                            stringBuilder.append("前科人员");
-                        }
-                        break;
-                    case "pctjkm":
-                        if (Objects.nonNull(returnMap.get(i).getMap())) {
-                            Map<String, String> map = returnMap.get(i).getMap();
-                            rshyVo.setHealthCode(map.get("COLOR_CODE_LABEL"));
-                        }
-                        break;
-                    case "pctzfba":
-                        if (Objects.nonNull(returnMap.get(i).getMap())) {
-                            Map<String, String> map = returnMap.get(i).getMap();
-                            rshyWarningVoByAll.setDescription(map.get("ajmc"));
-                            rshyWarningVoByAll.setTitle("执法办案记录");
-                            rshyWarningVoList.add(rshyWarningVoByAll);
-                            stringBuilder.append("执法办案");
-                        }
-                        break;
-                    case "pctzdry":
-                        if (Objects.nonNull(returnMap.get(i).getMap())) {
-                            Map<String, String> map = returnMap.get(i).getMap();
-                            rshyWarningVoByAll.setDescription(map.get("ajlbmc"));
-                            rshyWarningVoByAll.setTitle("重点人员");
-                            rshyWarningVoList.add(rshyWarningVoByAll);
-                            stringBuilder.append("重点人员");
-                        }
-                        break;
-                    default:
-                        break;
-                }
-                if (Objects.isNull(rshyVo.getPass()) && CollectionUtils.isEmpty(rshyWarningVoList)) {
-                    rshyVo.setPass(2);
-                } else {
-                    rshyVo.setPass(1);
-                    rshyVo.setWarning(rshyWarningVoList);
-                    rshyVo.setKind(stringBuilder.toString());
-                }
-            }
-        } catch (InterruptedException e) {
-            e.printStackTrace();
-        }
-        return rshyVo;
-    }
-
-
-
-
-    /***
-     * 请求第三方接口
-     * @param rshyParam
-     * @param type
-     * @return
-     * @throws IOException
-     */
-    private RshyTypeVo getHttp(RshyParam rshyParam, String type) throws IOException {
-        Map<String, String> map = new ConcurrentHashMap<>();
-        RshyTypeVo rshyTypeVo = new RshyTypeVo();
-        switch (type) {
-            case "pctdfk":
-                map = getPctdfk(rshyParam.getSfzh(), "");
-                rshyTypeVo.setType("pctdfk");
-                if (Objects.nonNull(map)) {
-                    rshyTypeVo.setMap(map);
-                }
-                break;
-            case "pctjsry":
-                map = getPctjsry(rshyParam.getSfzh());
-                rshyTypeVo.setType("pctjsry");
-                if (Objects.nonNull(map)) {
-                    rshyTypeVo.setMap(map);
-                }
-                break;
-            case "pctxdry":
-                map = getPctxdry(rshyParam.getSfzh(),rshyParam.getXm());
-                rshyTypeVo.setType("pctxdry");
-                if (Objects.nonNull(map)) {
-                    rshyTypeVo.setMap(map);
-                }
-                break;
-            case "pctqkry":
-                map = getPctqkry(rshyParam.getSfzh());
-                rshyTypeVo.setType("pctqkry");
-                if (Objects.nonNull(map)) {
-                    rshyTypeVo.setMap(map);
-                }
-                break;
-            case "pctjkm":
-                map = getPctjkm(rshyParam.getBarCode());
-                rshyTypeVo.setType("pctjkm");
-                if (Objects.nonNull(map)) {
-                    rshyTypeVo.setMap(map);
-                }
-                break;
-            case "pctzt":
-                map = getPctzt(rshyParam.getSfzh());
-                rshyTypeVo.setType("pctzt");
-                if (Objects.nonNull(map)) {
-                    rshyTypeVo.setMap(map);
-                }
-                break;
-            case "pctzfba":
-                map = getPctzfba(rshyParam.getSfzh());
-                rshyTypeVo.setType("pctzfba");
-                if (Objects.nonNull(map)) {
-                    rshyTypeVo.setMap(map);
-                }
-                break;
-            case "pctzdry":
-                map = getPctzdry(rshyParam.getSfzh());
-                rshyTypeVo.setType("pctzdry");
-                if (Objects.nonNull(map)) {
-                    rshyTypeVo.setMap(map);
-                }
-                break;
-            default:
-                break;
-        }
-        return rshyTypeVo;
-    }
-
-
-    /**
-     * 打防控信息
-     * @param zjhm
-     * @param ajbh
-     * @return
-     */
-    public Map<String,String> getPctdfk(String zjhm,String ajbh) {
-        if (StringUtils.isBlank(zjhm)) {
-            return null;
-        }
-        Map<String,Object> map = new HashMap<>();
-        map.put("appCode","pctdfk");
-        map.put("apiPath","/aiss/idm_zfba_dfkajxx_df");
-        map.put("apiConfig","1618208939768204,9d98c9d9d14d4d298f4408c0338c1af5,03719cc7f2fd49578e7b5ded284fdc7a.apigateway.cn-deqing-zjzfy01-zjga01.hzs.zj,HTTP");
-        map.put("method","GET");
-        Map<String,Object> queryMap = new HashMap<>();
-        queryMap.put("zjhm",zjhm);
-        queryMap.put("ajbh",ajbh);
-        queryMap.put("offset",0);
-        queryMap.put("count",10);
-        map.put("query", JSONObject.toJSONString(queryMap));
-        String post = HttpUtil.post(baseUrl, JSONObject.toJSONString(map),5000);
-        if (StringUtils.isBlank(post)) {
-            return null;
-        }
-        JSONObject jsonObject = JSONObject.parseObject(post);
-        String data = jsonObject.getString("data");
-        if (StringUtils.isBlank(data)) {
-            return null;
-        }
-        List<Map<String,String>> list = JSONObject.parseObject(data, List.class);
-        return list.get(0);
-    }
-
-    /**
-     * 监所人员
-     * @param zjhm
-     * @return
-     */
-    public Map<String,String> getPctjsry(String zjhm) {
-        if (StringUtils.isBlank(zjhm)) {
-            return null;
-        }
-        Map<String,Object> map = new HashMap<>();
-        map.put("appCode","pctjsry");
-        map.put("apiPath","/aiss/idm_wfcf_jsryxx_df/sql");
-        map.put("apiConfig","1618208939768204,9d98c9d9d14d4d298f4408c0338c1af5,03719cc7f2fd49578e7b5ded284fdc7a.apigateway.cn-deqing-zjzfy01-zjga01.hzs.zj,HTTP");
-        map.put("method","GET");
-        Map<String,Object> queryMap = new HashMap<>();
-        queryMap.put("zjhm",zjhm);
-        queryMap.put("offset",0);
-        queryMap.put("rowCount",10);
-        map.put("query", JSONObject.toJSONString(queryMap));
-        String post = HttpUtil.post(baseUrl, JSONObject.toJSONString(map),5000);
-        if (StringUtils.isBlank(post)) {
-            return null;
-        }
-        JSONObject jsonObject = JSONObject.parseObject(post);
-        String data = jsonObject.getString("data");
-        if (StringUtils.isBlank(data)) {
-            return null;
-        }
-        List<Map<String,String>> list = JSONObject.parseObject(data, List.class);
-        return list.get(0);
-    }
-
-
-    /**
-     * 吸毒人员
-     * @param zjhm
-     * @return
-     */
-    public Map<String,String> getPctxdry(String zjhm,String xm) {
-        if (StringUtils.isBlank(zjhm)) {
-            return null;
-        }
-        Map<String,Object> map = new HashMap<>();
-        map.put("appCode","pctxdry");
-        map.put("apiPath","/aiss/idm_zfba_xdrychjl_df/sql");
-        map.put("apiConfig","1618208939768204,9d98c9d9d14d4d298f4408c0338c1af5,03719cc7f2fd49578e7b5ded284fdc7a.apigateway.cn-deqing-zjzfy01-zjga01.hzs.zj,HTTP");
-        map.put("method","GET");
-        Map<String,Object> queryMap = new HashMap<>();
-        queryMap.put("zjid","");
-        queryMap.put("xm",xm);
-        queryMap.put("zjhm",zjhm);
-        queryMap.put("zjzldm","");
-        queryMap.put("zjzl","");
-        queryMap.put("chrq","");
-        queryMap.put("offset",0);
-        queryMap.put("rowCount",10);
-        map.put("query", JSONObject.toJSONString(queryMap));
-        String post = HttpUtil.post(baseUrl, JSONObject.toJSONString(map),5000);
-        if (StringUtils.isBlank(post)) {
-            return null;
-        }
-        JSONObject jsonObject = JSONObject.parseObject(post);
-        String data = jsonObject.getString("data");
-        if (StringUtils.isBlank(data)) {
-            return null;
-        }
-        List<Map<String,String>> list = JSONObject.parseObject(data, List.class);
-        return list.get(0);
-    }
-
-
-    /**
-     * 前科人员
-     * @param zjhm
-     * @return
-     */
-    public Map<String,String> getPctqkry(String zjhm) {
-        if (StringUtils.isBlank(zjhm)) {
-            return null;
-        }
-        Map<String,Object> map = new HashMap<>();
-        map.put("appCode","pctqkry");
-        map.put("apiPath","/code014/ids_obj_qkryjbxx_df/sql");
-        map.put("apiConfig","1618208939768204,9d98c9d9d14d4d298f4408c0338c1af5,03719cc7f2fd49578e7b5ded284fdc7a.apigateway.cn-deqing-zjzfy01-zjga01.hzs.zj,HTTP");
-        map.put("method","POST_BODY");
-        Map<String,Object> queryMap = new HashMap<>();
-        queryMap.put("zjhm",zjhm);
-        queryMap.put("offset",0);
-        queryMap.put("count",10);
-        map.put("query", JSONObject.toJSONString(queryMap));
-        String post = HttpUtil.post(baseUrl, JSONObject.toJSONString(map),5000);
-        if (StringUtils.isBlank(post)) {
-            return null;
-        }
-        JSONObject jsonObject = JSONObject.parseObject(post);
-        String data = jsonObject.getString("data");
-        if (StringUtils.isBlank(data)) {
-            return null;
-        }
-        List<Map<String,String>> list = JSONObject.parseObject(data, List.class);
-        return list.get(0);
-    }
-
-    /**
-     * 健康码
-     * @param barCode
-     * @return
-     */
-    public Map<String,String> getPctjkm(String barCode) {
-        if (StringUtils.isBlank(barCode)) {
-            return null;
-        }
-        Map<String,Object> map = new HashMap<>();
-        map.put("appCode","pctjkm");
-        map.put("apiPath","/fhdaassjfw/projectA/healthy_code_baisc_chars");
-        map.put("apiConfig","1618208939768204,9d98c9d9d14d4d298f4408c0338c1af5,03719cc7f2fd49578e7b5ded284fdc7a.apigateway.cn-deqing-zjzfy01-zjga01.hzs.zj,HTTP");
-        map.put("method","GET");
-        Map<String,Object> queryMap = new HashMap<>();
-        queryMap.put("bar_code",barCode);
-        queryMap.put("offset",0);
-        queryMap.put("count",10);
-        map.put("query", JSONObject.toJSONString(queryMap));
-        String post = HttpUtil.post(baseUrl, JSONObject.toJSONString(map),5000);
-        if (StringUtils.isBlank(post)) {
-            return null;
-        }
-        JSONObject jsonObject = JSONObject.parseObject(post);
-        String data = jsonObject.getString("data");
-        if (StringUtils.isBlank(data)) {
-            return null;
-        }
-        JSONObject dataJsonObject = JSONObject.parseObject(data);
-        String result = dataJsonObject.getString("result");
-        List<Map<String,String>> list = JSONObject.parseObject(result, List.class);
-        return list.get(0);
-    }
-
-    /**
-     * 人员劣迹
-     * @param zjhm
-     * @return
-     */
-    public Map<String,String> getPctzt(String zjhm) {
-        if (StringUtils.isBlank(zjhm)) {
-            return null;
-        }
-        Map<String,Object> map = new HashMap<>();
-        map.put("appCode","pctzt");
-        map.put("apiPath","/aiss/dm_event_zaitao/sql");
-        map.put("apiConfig","1618208939768204,9d98c9d9d14d4d298f4408c0338c1af5,03719cc7f2fd49578e7b5ded284fdc7a.apigateway.cn-deqing-zjzfy01-zjga01.hzs.zj,HTTP");
-        map.put("method","GET");
-        Map<String,Object> queryMap = new HashMap<>();
-        queryMap.put("zjhm",zjhm);
-        queryMap.put("offset",0);
-        queryMap.put("count",10);
-        map.put("query", JSONObject.toJSONString(queryMap));
-        String post = HttpUtil.post(baseUrl, JSONObject.toJSONString(map),5000);
-        if (StringUtils.isBlank(post)) {
-            return null;
-        }
-        JSONObject jsonObject = JSONObject.parseObject(post);
-        String data = jsonObject.getString("data");
-        if (StringUtils.isBlank(data)) {
-            return null;
-        }
-        List<Map<String,String>> list = JSONObject.parseObject(data, List.class);
-        return list.get(0);
-    }
-
-    /**
-     * 新的执法办案
-     * @param zjhm
-     * @return
-     */
-    public Map<String,String> getPctzfba(String zjhm) {
-        if (StringUtils.isBlank(zjhm)) {
-            return null;
-        }
-        Map<String,Object> map = new HashMap<>();
-        map.put("appCode","pctzfba");
-        map.put("apiPath","/code014/idm_zfba_xbzfbaajxx_df/sql_new");
-        map.put("apiConfig","1618208939768204,9d98c9d9d14d4d298f4408c0338c1af5,03719cc7f2fd49578e7b5ded284fdc7a.apigateway.cn-deqing-zjzfy01-zjga01.hzs.zj,HTTP");
-        map.put("method","POST_BODY");
-        Map<String,Object> queryMap = new HashMap<>();
-        queryMap.put("zjhm",zjhm);
-        queryMap.put("bar_zjhm","");
-        queryMap.put("ajbh","ajbh");
-        queryMap.put("offset",0);
-        queryMap.put("count",10);
-        map.put("query", JSONObject.toJSONString(queryMap));
-        String post = HttpUtil.post(baseUrl, JSONObject.toJSONString(map),5000);
-        if (StringUtils.isBlank(post)) {
-            return null;
-        }
-        JSONObject jsonObject = JSONObject.parseObject(post);
-        String data = jsonObject.getString("data");
-        if (StringUtils.isBlank(data)) {
-            return null;
-        }
-        List<Map<String,String>> list = JSONObject.parseObject(data, List.class);
-        return list.get(0);
-    }
-
-    /**
-     * 重点人员
-     * @param zjhm
-     * @return
-     */
-    public Map<String,String> getPctzdry(String zjhm) {
-        if (StringUtils.isBlank(zjhm)) {
-            return null;
-        }
-        Map<String,Object> map = new HashMap<>();
-        map.put("appCode","pctzdry");
-        map.put("apiPath","/aiss/idm_zfba_zdryxx_df/sql");
-        map.put("apiConfig","1618208939768204,9d98c9d9d14d4d298f4408c0338c1af5,03719cc7f2fd49578e7b5ded284fdc7a.apigateway.cn-deqing-zjzfy01-zjga01.hzs.zj,HTTP");
-        map.put("method","POST_BODY");
-        Map<String,Object> queryMap = new HashMap<>();
-        queryMap.put("zjhm",zjhm);
-        queryMap.put("offset",0);
-        queryMap.put("count",10);
-        map.put("query", JSONObject.toJSONString(queryMap));
-        String post = HttpUtil.post(baseUrl, JSONObject.toJSONString(map),5000);
-        if (StringUtils.isBlank(post)) {
-            return null;
-        }
-        JSONObject jsonObject = JSONObject.parseObject(post);
-        String data = jsonObject.getString("data");
-        if (StringUtils.isBlank(data)) {
-            return null;
-        }
-        List<Map<String,String>> list = JSONObject.parseObject(data, List.class);
-        return list.get(0);
-    }
-}

+ 0 - 27
src/main/java/com/rshy/project/hy/server/param/RshyParam.java

@@ -1,27 +0,0 @@
-package com.rshy.project.hy.server.param;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-/**
- * @ProjectName: rshy
- * @Package: com.rshy.project.hy.server.param
- * @ClassName: RshyParam
- * @Author: shihongbo
- * @Description:
- * @Date: 2022/3/2 14:48
- * @Version: 1.0
- */
-@Data
-@ApiModel("请求人员盘查请求参数")
-public class RshyParam {
-    @ApiModelProperty("身份证号")
-    private String sfzh;
-
-    @ApiModelProperty("姓名")
-    private String xm;
-
-    @ApiModelProperty("健康码")
-    private String barCode;
-}

+ 0 - 21
src/main/java/com/rshy/project/hy/server/vo/RshyTypeVo.java

@@ -1,21 +0,0 @@
-package com.rshy.project.hy.server.vo;
-
-import lombok.Data;
-
-import java.util.Map;
-
-/**
- * @ProjectName: rshy
- * @Package: com.rshy.project.hy.server.vo
- * @ClassName: RshyTypeVo
- * @Author: shihongbo
- * @Description:
- * @Date: 2022/3/3 14:11
- * @Version: 1.0
- */
-@Data
-public class RshyTypeVo {
-    private String type;
-
-    private Map<String,String> map;
-}

+ 0 - 66
src/main/java/com/rshy/project/hy/server/vo/RshyVo.java

@@ -1,66 +0,0 @@
-package com.rshy.project.hy.server.vo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @ProjectName: rshy
- * @Package: com.rshy.project.hy.server.vo
- * @ClassName: RshyVo
- * @Author: shihongbo
- * @Description:
- * @Date: 2022/3/2 14:53
- * @Version: 1.0
- */
-@Data
-@ApiModel("返回数据")
-public class RshyVo {
-    @ApiModelProperty("是否通行")
-    private Integer pass;
-
-    @ApiModelProperty("人员类型简要概述")
-    private String kind;
-
-    @ApiModelProperty("警示信息")
-    private List<RshyWarningVo> warning;
-
-    @ApiModelProperty("主屏显示信息")
-    private String displayMsg;
-
-    @ApiModelProperty("语音播报文字")
-    private String tts;
-
-    @ApiModelProperty("健康码")
-    private String healthCode;
-
-    @ApiModelProperty("身份证号")
-    private String sfzh;
-
-    @ApiModelProperty("姓名")
-    private String xm;
-
-    @ApiModelProperty("性别")
-    private String xb;
-
-    @ApiModelProperty("民族")
-    private String mz;
-
-    @ApiModelProperty("手机号码")
-    private String phone;
-
-    @ApiModelProperty("住址")
-    private String address;
-
-    @ApiModelProperty("照片")
-    private String photo;
-
-    @ApiModelProperty("错误标识 1成功 其他错误")
-    private Integer errCode;
-
-    @ApiModelProperty("错误信息")
-    private String errMsg;
-}

+ 0 - 19
src/main/java/com/rshy/project/hy/server/vo/RshyWarningVo.java

@@ -1,19 +0,0 @@
-package com.rshy.project.hy.server.vo;
-
-import lombok.Data;
-
-/**
- * @ProjectName: rshy
- * @Package: com.rshy.project.hy.server.vo
- * @ClassName: RshyWarningVo
- * @Author: shihongbo
- * @Description:
- * @Date: 2022/3/3 16:03
- * @Version: 1.0
- */
-@Data
-public class RshyWarningVo {
-    private String title;
-
-    private String description;
-}

+ 0 - 37
src/main/java/com/rshy/project/hy/web/controller/RshyController.java

@@ -1,37 +0,0 @@
-package com.rshy.project.hy.web.controller;
-
-import com.rshy.project.hy.baseRe.Ret;
-import com.rshy.project.hy.server.RshyServer;
-import com.rshy.project.hy.server.param.RshyParam;
-import com.rshy.project.hy.server.vo.RshyVo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-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;
-
-/**
- * @ProjectName: rshy
- * @Package: com.rshy.project.hy.web.controller
- * @ClassName: RshyController
- * @Author: shihongbo
- * @Description:
- * @Date: 2022/3/2 15:22
- * @Version: 1.0
- */
-@RestController
-@Api(tags = "人身核验控制层")
-@RequestMapping("/rshy")
-public class RshyController {
-
-    @Autowired
-    private RshyServer rshyServer;
-
-    @ApiOperation("查询普通盘查")
-    @PostMapping("getRyhyInfo")
-    public Ret<RshyVo> getRyhyInfo(@RequestBody RshyParam rshyParam) {
-        return Ret.success(rshyServer.getRshyInfo(rshyParam));
-    }
-}

+ 3 - 3
src/main/resources/application-dev.yml

@@ -1,8 +1,8 @@
 spring:
   datasource:
-    url: jdbc:mysql://127.0.0.1:3306/rshy?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&pinGlobalTxToPhysicalConnection=true&serverTimezone=UTC
-    username: rshy
-    password: rshy
+    url: jdbc:mysql://61.243.3.209:8903/hxserver?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&pinGlobalTxToPhysicalConnection=true&serverTimezone=UTC
+    username: root
+    password: xingxing12345678
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
   redis:

+ 4 - 7
src/main/resources/application.yml

@@ -1,12 +1,12 @@
 server:
-  port: 8081
+  port: 8110
   servlet:
-    context-path: /rshy
+    context-path: /metro
   http2:
     enabled: true
 spring:
   application:
-    name: rshy
+    name: metro
 
   # sa-token配置
   sa-token:
@@ -33,7 +33,7 @@ spring:
       max-request-size: 10MB
 
 mybatis-plus:
-  mapper-locations: classpath*:/mapper/**/*.xml
+  mapper-locations: classpath*:/mapper/*Mapper.xml
   configuration:
     map-underscore-to-camel-case: true
     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
@@ -44,6 +44,3 @@ swagger:
   enabled: true
   # 请求前缀
   pathMapping:
-
-base:
-  url: "http://10.118.128.114/agentProxy/agent/agentApi"

+ 6 - 0
src/main/resources/mapper/CompanysMapper.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.metro.mapper.CompanysMapper">
+
+
+</mapper>

+ 6 - 0
src/main/resources/mapper/PassreCordsMapper.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.metro.mapper.PassreCordsMapper">
+
+    
+</mapper>

+ 6 - 0
src/main/resources/mapper/mapper/CompanysMapper.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.metro.mapper.CompanysMapper">
+
+
+</mapper>

+ 6 - 0
src/main/resources/mapper/mapper/PassreCordsMapper.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.metro.mapper.PassreCordsMapper">
+
+    
+</mapper>

+ 15 - 16
src/main/resources/mybatis-plus.properties

@@ -1,22 +1,21 @@
-#此处为本项目src所在路径(代码生成器输出路径)
-OutputDir=F://mybatisplug//src//main//java
-
-#mapper.xml的生成位置
-OutputDirXml=F://mybatisplug//src//main//resources
-#数据库表名(此处切不可为空,如果为空,则默认读取数据库的所有表名)
-tableName=battle_user_bind
-#装代码的文件夹名
+#锟剿达拷为锟斤拷锟斤拷目src锟斤拷锟斤拷路锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟铰凤拷锟斤拷锟�
+OutputDir=D://CMC//YXCODE//rshy//src//main//java
+#mapper.xml锟斤拷锟斤拷锟斤拷位锟斤拷
+OutputDirXml=D://CMC//YXCODE//rshy//src//main//resources
+#锟斤拷锟捷匡拷锟斤拷锟�(锟剿达拷锟叫诧拷锟斤拷为锟秸o拷锟斤拷锟轿�拷眨锟斤拷锟侥�拷隙锟饺★拷锟斤拷菘锟斤拷锟斤拷锟叫憋拷锟斤拷)
+tableName=rshy_jk
+#装锟斤拷锟斤拷锟斤拷募锟斤拷锟斤拷锟�
 className=user
-#设置作者
+#锟斤拷锟斤拷锟斤拷锟斤拷
 author=xiaopi
-#正常情况下,下面的代码无需修改!!!!!!!!!!
-#自定义包路径
-parent=com.game.project.fbgame
+#锟斤拷锟斤拷锟斤拷锟斤拷拢锟斤拷锟斤拷锟侥达拷锟斤拷锟斤拷锟斤拷锟睫改o拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷
+#锟皆讹拷锟斤拷锟铰凤拷锟�
+parent=com.rshy.project.hy
 jdbcDriver=com.mysql.cj.jdbc.Driver
-#数据库地址
+#锟斤拷锟捷匡拷锟街�
 #url=jdbc:mysql://localhost:3306/zhgd?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
 #userName=root
 #password=123456
-url=jdbc:mysql://39.97.104.18:3306/game?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
-userName=fbsql
-password=fb123456
+url=jdbc:mysql://192.168.9.170:3306/rshy?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
+userName=root
+password=yx2021