From ac36bcd41519764d9a79eaffca3fe41e6ecb89f9 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期四, 09 十一月 2023 11:30:17 +0800 Subject: [PATCH] 1、增加是否为开发阶段的配置,基于此配置,进行判断,若开发阶段设置临时数据源名称,及不进行登录及权限验证。 2、分配各个子系统id生成器的后缀 --- pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/config/WebFilterConfiguration.java | 45 +++ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webListener/GenerateIdSetSuffixListener.java | 3 pipIrr-platform/pom.xml | 5 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/config/WebListenerConfiguration.java | 49 +++ pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/application.yml | 2 pipIrr-platform/文档/pipIrr-web的pom/pom(不带version).xml | 5 pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaDistrictMapper.xml | 81 +++++ pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/resources/application.yml | 2 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/DevOfDataSourceNameSetFilter.java | 26 + pipIrr-platform/文档/在线需求文件访问地址.txt | 1 pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/config/WebListenerConfiguration.java | 8 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/UserTokenFilter.java | 7 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAop.java | 1 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java | 98 +++++++ pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java | 15 pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/config/WebFilterConfiguration.java | 45 ++- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/TypeConversionDistrict.java | 38 ++ pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictSv.java | 24 + pipIrr-platform/pipIrr-global/pom.xml | 54 +++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoDemo/DemoMpMapper.java | 3 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java | 73 +++-- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/multiDataSource/DataSourceAspect.java | 2 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaDistrict.java | 30 ++ pipIrr-platform/pipIrr-global/pipIrr-global.iml | 7 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaDistrictMapper.java | 51 +++ pipIrr-platform/pipIrr-web/pom.xml | 6 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVoMapper.java | 21 + pipIrr-platform/pipIrr-common/pipIrr-common.iml | 2 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application.yml | 2 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application.yml | 2 /dev/null | 31 -- pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVo.java | 29 ++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml | 5 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoRestTemplateConfiguration.java | 8 pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/test/java/com/dy/pipIrrDemo/mp/MpTest2.java | 1 pipIrr-platform/pipIrr-common/pom.xml | 6 pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml | 3 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/DistrictLevel.java | 36 ++ 38 files changed, 709 insertions(+), 118 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/pipIrr-common.iml b/pipIrr-platform/pipIrr-common/pipIrr-common.iml index 2eb4fee..cfc160c 100644 --- a/pipIrr-platform/pipIrr-common/pipIrr-common.iml +++ b/pipIrr-platform/pipIrr-common/pipIrr-common.iml @@ -75,7 +75,7 @@ <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-models:2.2.9" level="project" /> <orderEntry type="library" name="Maven: org.springframework.security:spring-security-core:6.1.2" level="project" /> <orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:6.1.2" level="project" /> - <orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.48" level="project" /> + <orderEntry type="library" name="Maven: com.mysql:mysql-connector-j:8.0.33" level="project" /> <orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.20" level="project" /> <orderEntry type="library" name="Maven: com.alibaba:druid:1.2.20" level="project" /> <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:2.0.7" level="project" /> diff --git a/pipIrr-platform/pipIrr-common/pom.xml b/pipIrr-platform/pipIrr-common/pom.xml index 6f0479a..2ad1d84 100644 --- a/pipIrr-platform/pipIrr-common/pom.xml +++ b/pipIrr-platform/pipIrr-common/pom.xml @@ -73,10 +73,10 @@ <!--mysql椹卞姩--> <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - <!--瀵瑰簲鑷繁鐢佃剳瀹夎鐨刴ysql鐗堟湰--> + <groupId>com.mysql</groupId> + <artifactId>mysql-connector-j</artifactId> </dependency> + <!--druid-spring-boot杩炴帴姹�--> <dependency> <groupId>com.alibaba</groupId> diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAop.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAop.java index 9ada78f..c2f143a 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAop.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAop.java @@ -6,6 +6,7 @@ @Target(ElementType.METHOD) @Inherited public @interface SsoAop { + String value() default "" ; //浼樺厛绾�1(鏈�楂�)锛屽鏋滃叾鏈夊�硷紝鍒欎笉鍦ㄥ垽鏂互涓嬪彉閲忓彇鍊� String power() default "" ; //浼樺厛绾�2锛屾嫢鏈夊叏閮ㄦ潈闄愭墠鍙� , 濡傛灉鍏舵湁鍊硷紝鍒欎笉鍦ㄥ垽鏂互涓嬪彉閲忓彇鍊� diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java index 8ff3393..fbfa354 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoAspect.java @@ -4,7 +4,7 @@ import com.dy.common.multiDataSource.DataSourceContext; import com.dy.common.webFilter.UserTokenContext; import com.dy.common.webUtil.BaseResponseUtils; -import com.mysql.jdbc.StringUtils; +import com.mysql.cj.util.StringUtils; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; @@ -31,6 +31,9 @@ @Component public class SsoAspect { + @Value("${pipIrr.global.dev}") + public String isDevStage ;//鏄惁涓哄紑鍙戦樁娈� + @Value("${pipIrr.sso.checkUrl}") public String SsoCheckUrl ; @@ -47,43 +50,55 @@ @Around("dyPointCut()") public Object execute(ProceedingJoinPoint point) throws Throwable { - MethodSignature signature = (MethodSignature) point.getSignature(); - Method method = signature.getMethod(); - SsoAop aop = method.getAnnotation(SsoAop.class) ; - if (Objects.nonNull(aop)){ - String token = UserTokenContext.get() ; - String power = aop.power() ; - String[] allPower = aop.ifAllPower() ; - String[] anyPower = aop.ifAnyPower() ; - Object rObj = this.check(token, power, allPower, anyPower); - if(rObj != null){ - if(rObj instanceof SsoVo ssoVo){ - if(ssoVo.logined){ - if(ssoVo.hasPower){ - if(!StringUtils.isNullOrEmpty(ssoVo.dataSourceName)){ - DataSourceContext.set(ssoVo.dataSourceName); - return point.proceed(); + if(isDevStage != null && !isDevStage.trim().equals("") && isDevStage.trim().equalsIgnoreCase("true")){ + return point.proceed(); + }else{ + MethodSignature signature = (MethodSignature) point.getSignature(); + Method method = signature.getMethod(); + SsoAop aop = method.getAnnotation(SsoAop.class) ; + if (Objects.nonNull(aop)){ + String power = aop.value() ; + if(power.trim().equals("")){ + power = aop.power() ; + } + if(power.trim().equals("-1")){ + //涓嶈繘琛岀櫥褰曞強鏉冮檺楠岃瘉 + return point.proceed(); + }else{ + String[] allPower = aop.ifAllPower() ; + String[] anyPower = aop.ifAnyPower() ; + String token = UserTokenContext.get() ; + Object rObj = this.check(token, power, allPower, anyPower); + if(rObj != null){ + if(rObj instanceof SsoVo ssoVo){ + if(ssoVo.logined){ + if(ssoVo.hasPower){ + if(!StringUtils.isNullOrEmpty(ssoVo.dataSourceName)){ + DataSourceContext.set(ssoVo.dataSourceName); + return point.proceed(); + }else{ + //鏃犳暟鎹簮 + return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屾湭寰楀埌褰撳墠鐧诲綍鐢ㄦ埛鎵�灞炴満鏋勬爣绛撅紙鏁版嵁婧愬悕锛�") ; + } + }else{ + //鏃犳潈闄� + return BaseResponseUtils.buildNoPower() ; + } }else{ - //鏃犳暟鎹簮 - return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屾湭寰楀埌褰撳墠鐧诲綍鐢ㄦ埛鎵�灞炴満鏋勬爣绛撅紙鏁版嵁婧愬悕锛�") ; + //鏈櫥褰� + return BaseResponseUtils.buildToLogin() ; } }else{ - //鏃犳潈闄� - return BaseResponseUtils.buildNoPower() ; + return rObj ; } }else{ - //鏈櫥褰� - return BaseResponseUtils.buildToLogin() ; + return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛宑heck鏂规硶杩斿洖null") ; } - }else{ - return rObj ; } }else{ - return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛宑heck鏂规硶杩斿洖null") ; + //宸茬粡杩涘叆娉ㄨВ澶勭悊浜嗭紝杩樺緱涓嶅埌娉ㄨВ锛岃繖绉嶆儏鍐垫槸涓嶅彲鑳界殑銆� + return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛孌yAop娉ㄨВ涓簄ull") ; } - }else{ - //宸茬粡杩涘叆娉ㄨВ澶勭悊浜嗭紝杩樺緱涓嶅埌娉ㄨВ锛岃繖绉嶆儏鍐垫槸涓嶅彲鑳界殑銆� - return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛孌yAop娉ㄨВ涓簄ull") ; } } diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoRestTemplateConfiguration.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoRestTemplateConfiguration.java index 2f7515a..d61098d 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoRestTemplateConfiguration.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoRestTemplateConfiguration.java @@ -1,16 +1,18 @@ package com.dy.common.aop; -import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate; +/** + * 涓篠soAspect璁块棶鍗曠偣鐧诲綍绯荤粺鎻愪緵 RestTemplate + */ @Configuration public class SsoRestTemplateConfiguration { @Bean - public RestTemplate restTemplate(RestTemplateBuilder builder){ - return builder.build(); + public RestTemplate restTemplate(){ + return new RestTemplate(); } } diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/multiDataSource/DataSourceAspect.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/multiDataSource/DataSourceAspect.java index 82f3ea4..610dbcf 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/multiDataSource/DataSourceAspect.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/multiDataSource/DataSourceAspect.java @@ -1,7 +1,7 @@ package com.dy.common.multiDataSource; import com.dy.common.contant.Constant; -import com.mysql.jdbc.StringUtils; +import com.mysql.cj.util.StringUtils; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/DevOfDataSourceNameSetFilter.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/DevOfDataSourceNameSetFilter.java new file mode 100644 index 0000000..5ae7e4d --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/DevOfDataSourceNameSetFilter.java @@ -0,0 +1,26 @@ +package com.dy.common.webFilter; + +import com.dy.common.multiDataSource.DataSourceContext; +import jakarta.servlet.*; +import lombok.extern.slf4j.Slf4j; +import java.io.IOException; + +@Slf4j +public class DevOfDataSourceNameSetFilter implements Filter { + private String devOfDataSourceName ; + @Override + public void init(FilterConfig filterConfig) throws ServletException { + devOfDataSourceName = filterConfig.getInitParameter("dataSourceName"); + log.info("寮�鍙戦樁娈碉紝璁剧疆鏁版嵁婧愬悕绉颁负:" + devOfDataSourceName); + } + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + log.info("寮�鍙戦樁娈碉紝璁剧疆鏁版嵁婧愬悕绉颁负:" + devOfDataSourceName); + DataSourceContext.set(devOfDataSourceName); + filterChain.doFilter(servletRequest, servletResponse); + } + + @Override + public void destroy() { + } +} diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/UserTokerFilter.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/UserTokenFilter.java similarity index 88% rename from pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/UserTokerFilter.java rename to pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/UserTokenFilter.java index 0481216..7fc1185 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/UserTokerFilter.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webFilter/UserTokenFilter.java @@ -4,7 +4,7 @@ import com.dy.common.contant.Constant; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; -import com.mysql.jdbc.StringUtils; +import com.mysql.cj.util.StringUtils ; import jakarta.servlet.*; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @@ -14,10 +14,9 @@ import java.io.PrintWriter; @Slf4j -public class UserTokerFilter implements Filter { +public class UserTokenFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { - //log.info("UserTokerFilter init: name:" + filterConfig.getInitParameter("name")); } @Override @@ -31,7 +30,7 @@ }else{ PrintWriter pw = null ; try { - BaseResponse res = BaseResponseUtils.buildToLogin() ; + BaseResponse<?> res = BaseResponseUtils.buildToLogin() ; String jsonString = JSON.toJSONString(res); response.setCharacterEncoding("UTF-8"); response.setContentType("application/json; charset=utf-8"); diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webListener/GenerateIdSetSuffixListener.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webListener/GenerateIdSetSuffixListener.java index 3de19d4..f64190d 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webListener/GenerateIdSetSuffixListener.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webListener/GenerateIdSetSuffixListener.java @@ -28,7 +28,6 @@ /** * 瑙f瀽绯荤粺閰嶇疆 - * @return */ private void init(ServletContext con){ try { @@ -39,7 +38,7 @@ if(!NumUtil.isPlusIntNumber(idSuffix)){ throw new Exception("閰嶇疆ID鍚庣紑鏍煎紡涓嶆纭�") ; }else{ - IDLongGenerator.setSuffix(Integer.valueOf(idSuffix)); + IDLongGenerator.setSuffix(Integer.parseInt(idSuffix)); } } } catch (Exception e) { diff --git a/pipIrr-platform/pipIrr-global/pipIrr-global.iml b/pipIrr-platform/pipIrr-global/pipIrr-global.iml index ecb090e..2f45e45 100644 --- a/pipIrr-platform/pipIrr-global/pipIrr-global.iml +++ b/pipIrr-platform/pipIrr-global/pipIrr-global.iml @@ -48,12 +48,13 @@ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:3.1.3" level="project" /> <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.28" level="project" /> <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.20" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-log4j2:3.1.3" level="project" /> - <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-slf4j2-impl:2.20.0" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-log4j2:2.7.9" level="project" /> + <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-slf4j-impl:2.20.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.20.0" level="project" /> <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:2.0.7" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.20.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-jul:2.20.0" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:2.0.7" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.15.2" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.15.2" level="project" /> @@ -76,5 +77,7 @@ <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2:2.0.40" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension-spring6:2.0.40" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension:2.0.40" level="project" /> + <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.5.5.Final" level="project" /> + <orderEntry type="library" name="Maven: org.mapstruct:mapstruct-processor:1.5.5.Final" level="project" /> </component> </module> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/pom.xml b/pipIrr-platform/pipIrr-global/pom.xml index a440ad1..e984ab5 100644 --- a/pipIrr-platform/pipIrr-global/pom.xml +++ b/pipIrr-platform/pipIrr-global/pom.xml @@ -26,6 +26,7 @@ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> + <version>3.1.3</version> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> @@ -41,45 +42,98 @@ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> + <version>3.1.3</version> <scope>runtime</scope> </dependency> <!-- lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> + <version>1.18.28</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> + <version>1.9.20</version> </dependency> <!--log4j2鏃ュ織--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> + <version>2.7.9</version> </dependency> <!-- 鐢ㄤ簬杈ㄨlog4j2.yml鏂囦欢 --> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-yaml</artifactId> + <version>2.15.2</version> </dependency> <!--mybatis-plus-spring-boot--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> + <version>3.5.3.2</version> </dependency> <!-- 闃块噷fastjson --> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> + <version>3.3.0</version> </dependency> <dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2</artifactId> + <version>2.0.40</version> </dependency> <dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2-extension-spring6</artifactId> + <version>2.0.40</version> </dependency> + <!-- vo po杞崲 鍏ㄥ眬娌℃湁涓嬮潰渚濊禆锛屾墍浠ユ澶勫繀椤诲姞鐗堟湰鍙�--> + <dependency> + <groupId>org.mapstruct</groupId> + <artifactId>mapstruct</artifactId> + <version>1.5.5.Final</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.mapstruct</groupId> + <artifactId>mapstruct-processor</artifactId> + <version>1.5.5.Final</version> + <scope>compile</scope> + </dependency> </dependencies> + + <build> + <plugins> + <plugin> + <!-- spring boot鎻愪緵鐨刴aven鎵撳寘鎻掍欢 --> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <configuration> + <excludes> + <exclude> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + </exclude> + </excludes> + </configuration> + </plugin> + <plugin> + <!-- maven閲屾墽琛屾祴璇曠敤渚嬬殑鎻掍欢 --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <skipTests>true</skipTests> + </configuration> + </plugin> + <plugin> + <!-- 寮哄埗璁惧畾 java缂栬瘧鐗堟湰锛岃繍琛岀幆澧冪増鏈� --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + </plugin> + </plugins> + </build> </project> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaDistrictMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaDistrictMapper.java new file mode 100644 index 0000000..9e342c8 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaDistrictMapper.java @@ -0,0 +1,51 @@ +package com.dy.pipIrrGlobal.daoBa; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoBa.BaDistrict; +import com.dy.pipIrrGlobal.pojoBa.BaPrivilege; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface BaDistrictMapper extends BaseMapper<BaPrivilege> { + /** + * delete by primary key + * @param id primaryKey + * @return deleteCount + */ + int deleteByPrimaryKey(Long id); + + /** + * insert record to table + * @param record the record + * @return insert count + */ + int insert(BaDistrict record); + + /** + * insert record to table selective + * @param record the record + * @return insert count + */ + int insertSelective(BaDistrict record); + + /** + * select by primary key + * @param id primary key + * @return object by primary key + */ + BaDistrict selectByPrimaryKey(Long id); + + /** + * update record selective + * @param record the updated record + * @return update count + */ + int updateByPrimaryKeySelective(BaDistrict record); + + /** + * update record + * @param record the updated record + * @return update count + */ + int updateByPrimaryKey(BaDistrict record); +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoDemo/DemoMpMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoDemo/DemoMpMapper.java index c55b0da..c7bebbe 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoDemo/DemoMpMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoDemo/DemoMpMapper.java @@ -4,6 +4,9 @@ import com.dy.pipIrrGlobal.pojoDemo.DemoMp; import org.apache.ibatis.annotations.Mapper; +/** + * 婕旂ず娌℃湁DemoMpMapper.xml瀹炵幇鏂瑰紡 + */ @Mapper public interface DemoMpMapper extends BaseMapper<DemoMp> { } diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaDistrict.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaDistrict.java new file mode 100644 index 0000000..ea2cc1d --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaDistrict.java @@ -0,0 +1,30 @@ +package com.dy.pipIrrGlobal.pojoBa; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.dy.common.po.BaseEntity; +import com.dy.pipIrrGlobal.util.DistrictLevel; +import lombok.*; + +@TableName(value="ba_district", autoResultMap = true) +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +public class BaDistrict implements BaseEntity { + + public static final long serialVersionUID = 202311081046001L; + + @JSONField(serializeUsing= ObjectWriterImplToString.class) + @TableId(type = IdType.INPUT) + public Long id ; + + public String name; + + public DistrictLevel level; + +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/DistrictLevel.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/DistrictLevel.java new file mode 100644 index 0000000..f841907 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/DistrictLevel.java @@ -0,0 +1,36 @@ +package com.dy.pipIrrGlobal.util; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.dy.common.mybatis.envm.IEnum; + +/** + * 琛屾斂鍖哄垝绾у埆 + * Provinces, cities, counties, towns, and village groups + */ +public enum DistrictLevel implements IEnum { + + City((byte)1, "甯�"), + County((byte)2, "鍘�"), + Town((byte)3, "闀�"), + Village((byte)4, "鏉�"), + Group((byte)5, "缁�"); + + @EnumValue + public Byte code ; + public String name ; + + DistrictLevel(Byte code, String name){ + this.code = code ; + this.name = name ; + } + + @Override + public Byte getCode() { + return this.code ; + } + + @Override + public String getName() { + return this.name ; + } +} diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/TypeConversionDistrict.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/TypeConversionDistrict.java new file mode 100644 index 0000000..85b2944 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/TypeConversionDistrict.java @@ -0,0 +1,38 @@ +package com.dy.pipIrrGlobal.util; + +import org.mapstruct.Named; +import org.springframework.stereotype.Component; +import java.util.Objects; + +/** + * Mapping閫氱敤杞崲 + */ +@Component +@SuppressWarnings("") +public class TypeConversionDistrict { + /** + * @param obj 鍙傛暟 + * @return 杞崲鎴愮殑瀵硅薄 + */ + @Named("districtLevelByteToObj") + public DistrictLevel converseDistrictLevel(Object obj) { + if (Objects.isNull(obj)) { + return null; + }else{ + byte sourceObj = (obj instanceof Byte?(Byte)obj: DistrictLevel.City.code); + DistrictLevel rObj = null ; + if(sourceObj == DistrictLevel.City.code){ + rObj = DistrictLevel.City ; + }else if(sourceObj == DistrictLevel.County.code){ + rObj = DistrictLevel.County ; + }else if(sourceObj == DistrictLevel.Town.code){ + rObj = DistrictLevel.Town ; + }else if(sourceObj == DistrictLevel.Village.code){ + rObj = DistrictLevel.Village ; + }else if(sourceObj == DistrictLevel.Group.code){ + rObj = DistrictLevel.Group ; + } + return rObj ; + } + } +} diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml index ac26181..1af34b2 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml @@ -70,6 +70,9 @@ default-enum-type-handler: com.dy.common.mybatis.envm.EnumCodeTypeHandler pipIrr: + global: + dev: true #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse + dsName: ym #寮�鍙戦樁娈碉紝璁剧疆涓存椂鐨勬暟鎹簱鍚嶇О demo: webPort: 8000 actutorPort: 9000 diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaDistrictMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaDistrictMapper.xml new file mode 100644 index 0000000..e434616 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaDistrictMapper.xml @@ -0,0 +1,81 @@ +<?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.dy.pipIrrGlobal.daoBa.BaDistrictMapper"> + <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaDistrict"> + <!--@mbg.generated--> + <!--@Table ba_district--> + <id column="id" jdbcType="BIGINT" property="id" /> + <result column="name" jdbcType="VARCHAR" property="name" /> + <result property="level" column="level" typeHandler="com.dy.common.mybatis.envm.EnumCodeTypeHandler" javaType="com.dy.pipIrrGlobal.util.DistrictLevel"/> + + </resultMap> + <sql id="Base_Column_List"> + <!--@mbg.generated--> + id, `name`, `level` + </sql> + <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> + <!--@mbg.generated--> + select + <include refid="Base_Column_List" /> + from ba_district + where id = #{id,jdbcType=BIGINT} + </select> + <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> + <!--@mbg.generated--> + delete from ba_district + where id = #{id,jdbcType=BIGINT} + </delete> + <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoBa.BaDistrict"> + <!--@mbg.generated--> + insert into ba_district (id, `name`, `level` + ) + values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{level,jdbcType=TINYINT} + ) + </insert> + <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaDistrict"> + <!--@mbg.generated--> + insert into ba_district + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null"> + id, + </if> + <if test="name != null"> + `name`, + </if> + <if test="level != null"> + `level`, + </if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null"> + #{id,jdbcType=BIGINT}, + </if> + <if test="name != null"> + #{name,jdbcType=VARCHAR}, + </if> + <if test="level != null"> + #{level,jdbcType=TINYINT}, + </if> + </trim> + </insert> + <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaDistrict"> + <!--@mbg.generated--> + update ba_district + <set> + <if test="name != null"> + `name` = #{name,jdbcType=VARCHAR}, + </if> + <if test="level != null"> + `level` = #{level,jdbcType=TINYINT}, + </if> + </set> + where id = #{id,jdbcType=BIGINT} + </update> + <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoBa.BaDistrict"> + <!--@mbg.generated--> + update ba_district + set `name` = #{name,jdbcType=VARCHAR}, + `level` = #{level,jdbcType=TINYINT} + where id = #{id,jdbcType=BIGINT} + </update> +</mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml index af96f76..3eb39b3 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml @@ -12,7 +12,8 @@ <result property="password" column="password"/> <result property="orgTag" column="orgTag"/> <result property="supperAdmin" column="supperAdmin"/> - <result property="disabled" column="deleted"/> + <result property="disabled" column="disabled" typeHandler="com.dy.common.mybatis.envm.EnumCodeTypeHandler" javaType="com.dy.common.mybatis.envm.Disabled"/> + <result property="deleted" column="deleted" typeHandler="com.dy.common.mybatis.envm.EnumCodeTypeHandler" javaType="com.dy.common.mybatis.envm.Deleted"/> </resultMap> <resultMap id="login" type="com.dy.pipIrrGlobal.pojoBa.BaUser"> @@ -25,7 +26,7 @@ <sql id="Base_Column_List"> <!--@mbg.generated--> - id, name, phone, password, orgTag, supperAdmin, deleted + id, name, phone, password, orgTag, supperAdmin, disabled, deleted </sql> <sql id="Login_Column_List"> diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/config/WebFilterConfiguration.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/config/WebFilterConfiguration.java new file mode 100644 index 0000000..cab864c --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/config/WebFilterConfiguration.java @@ -0,0 +1,45 @@ +package com.dy.pipIrrBase.config; + +import com.dy.common.webFilter.DevOfDataSourceNameSetFilter; +import com.dy.common.webFilter.UserTokenFilter; +import jakarta.servlet.Filter; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class WebFilterConfiguration { + + @Value("${pipIrr.global.dev}") + public String isDevStage ;//鏄惁涓哄紑鍙戦樁娈� + @Value("${pipIrr.global.dsName}") + public String dsName ;//寮�鍙戦樁娈电殑鏁版嵁婧愬悕绉� + + /** + * DevOfDataSourceNameSetFilter涓嶶serTokenFilter鍙兘涓�涓閰嶇疆涓婏紝 + * 鎵�浠ヤ粬浠殑order閮芥槸1 + */ + private static final int order_UserTokenFilter = 1 ;//涓庝笅闈� + private static final int order_DevOfDataSourceNameSetFilter = 1 ; + + + @Bean + public FilterRegistrationBean<? extends Filter> RegFilter() { + FilterRegistrationBean<Filter> filterRegistrationBean = new FilterRegistrationBean<>(); + if(this.isDevStage != null && !this.isDevStage.trim().equals("") && this.isDevStage.trim().equalsIgnoreCase("true")){ + filterRegistrationBean.setFilter(new DevOfDataSourceNameSetFilter()); + filterRegistrationBean.addUrlPatterns("/*");//閰嶇疆杩囨护瑙勫垯 + filterRegistrationBean.addInitParameter("dataSourceName",dsName);//璁剧疆init鍙傛暟 + filterRegistrationBean.setName("DevOfDataSourceNameSetFilter");//璁剧疆杩囨护鍣ㄥ悕绉� + filterRegistrationBean.setOrder(order_DevOfDataSourceNameSetFilter);//鎵ц娆″簭 + }else{ + filterRegistrationBean.setFilter(new UserTokenFilter()); + filterRegistrationBean.addUrlPatterns("/*");//閰嶇疆杩囨护瑙勫垯 + filterRegistrationBean.setName("UserTokenFilter");//璁剧疆杩囨护鍣ㄥ悕绉� + filterRegistrationBean.setOrder(order_UserTokenFilter);//鎵ц娆″簭 + } + return filterRegistrationBean; + } + +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/config/WebListenerConfiguration.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/config/WebListenerConfiguration.java new file mode 100644 index 0000000..cb50fca --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/config/WebListenerConfiguration.java @@ -0,0 +1,49 @@ +package com.dy.pipIrrBase.config; + +import com.dy.common.webListener.GenerateIdSetSuffixListener; +import jakarta.servlet.ServletContextListener; +import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class WebListenerConfiguration { + + /** + * 鍚姩椤哄簭 + */ + //private static final int order_config = 0 ; + private static final int order_idSetSuffix = 1 ; + + /* + * 瑙f瀽鍚勭***.config閰嶇疆鐨凜onfigListener锛屾殏鏃朵笉閲囩敤姝ょ閰嶇疆鏂瑰紡 + * + @Bean + public ConfigListener getGlConfigListener(){ + return new ConfigListener() ; + } + /** + * 澶栭儴鎻愪緵Listener + * @param listener 澶栭儴鎻愪緵Listener + * @return 娉ㄥ唽Bean + @Bean + public ServletListenerRegistrationBean<? extends ServletContextListener> regConfigListener(ConfigListener listener) { + ServletListenerRegistrationBean<ConfigListener> listenerRegistrationBean = new ServletListenerRegistrationBean<>(); + listenerRegistrationBean.setListener(listener); + listenerRegistrationBean.setOrder(order_config); + return listenerRegistrationBean; + } + */ + + /** + * 鍐呴儴鎻愪緵listener锛岃listener鍦ㄧ郴缁熷惎鍔ㄦ椂锛屾牴鎹厤缃缃甀D浜х敓鍣ㄧ殑鍚庣紑 + * @return 娉ㄥ唽Bean + */ + @Bean + public ServletListenerRegistrationBean<? extends ServletContextListener> reqSsoListener() { + ServletListenerRegistrationBean<GenerateIdSetSuffixListener> listenerRegistrationBean = new ServletListenerRegistrationBean<>(); + listenerRegistrationBean.setListener(new GenerateIdSetSuffixListener()); + listenerRegistrationBean.setOrder(order_idSetSuffix); + return listenerRegistrationBean; + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java new file mode 100644 index 0000000..a274591 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java @@ -0,0 +1,98 @@ +package com.dy.pipIrrBase.district; + +import com.dy.common.aop.SsoAop; +import com.dy.common.webUtil.BaseResponse; +import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.common.webUtil.ResultCodeMsg; +import com.dy.pipIrrGlobal.pojoBa.BaDistrict; +import com.dy.pipIrrGlobal.util.DistrictLevel; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +@Slf4j +@Tag(name = "琛屾斂鍖哄垝绠$悊", description = "琛屾斂鍖哄垝澧炲垹鏀规煡绛夋搷浣�") +@RestController +@RequestMapping(path="district") +@SuppressWarnings("unchecked")//java鐗堟湰瓒婇珮锛屽娉涘瀷绾︽潫瓒婁弗锛屾墍浠ラ厤缃甋uppressWarnings("unchecked") +public class DistrictCtrl { + + private DistrictSv sv ; + + @Autowired + private void setSv(DistrictSv sv){ + this.sv = sv ; + } + + /** + * 瀹㈡埛绔姹傚緱鍒版墍鏈夎鏀垮尯鍒掔骇鍒暟鎹� + * @return 鎵�鏈夎鏀垮尯鍒掔骇鍒暟鎹� + */ + @Operation(summary = "琛屾斂鍖哄垝绾у埆", description = "杩斿洖鎵�鏈夎鏀垮尯鍒掔骇鍒暟鎹�") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "杩斿洖鎵�鏈夎鏀垮尯鍒掔骇鍒暟鎹紙BaseResponse.content:[ { \"code\":1, \"name\":\"甯俓" }, { \"code\":2, \"name\":\"鍘縗" }]锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = DistrictLevel.class))} + ) + }) + @GetMapping(path = "allLevel") + public BaseResponse<List<DistrictLevel>> allDistrictLevels(){ + List<DistrictLevel> list = Arrays.asList(DistrictLevel.City, DistrictLevel.County, DistrictLevel.Town, DistrictLevel.Village, DistrictLevel.Group) ; + return BaseResponseUtils.buildSuccess(list); + } + + + /** + * 淇濆瓨琛屾斂鍖� + * @param vo 淇濆瓨琛屾斂鍖篺orm琛ㄥ崟瀵硅薄 + * @return 鏄惁鎴愬姛 + */ + @Operation(summary = "淇濆瓨琛屾斂鍖�", description = "鎻愪氦琛屾斂鍖烘暟鎹紙form琛ㄥ崟锛夛紝杩涜淇濆瓨") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "淇濆瓨琛屾斂鍖鸿繑鍥烇細true锛氭垚鍔燂紝false锛氬け璐ワ紙鏁版嵁鍩虹被鐨刢ontent锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = Boolean.class))} + ) + }) + @PostMapping(path = "save", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + @SsoAop("-1")//@SsoAop(power = "-1") + public BaseResponse<Boolean> save(@Parameter(description = "form琛ㄥ崟鏁版嵁", required = true) @Valid DistrictVo vo, @Parameter(hidden = true) BindingResult bindingResult){ + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + BaDistrict po = DistrictVoMapper.INSTANCT.convert(vo); + int count; + try { + count = this.sv.save(po); + } catch (Exception e) { + log.error("淇濆瓨琛屾斂鍖哄紓甯�", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + if(count <= 0){ + return BaseResponseUtils.buildSuccess(true) ; + }else{ + return BaseResponseUtils.buildSuccess(true) ; + } + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictSv.java new file mode 100644 index 0000000..9faba57 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictSv.java @@ -0,0 +1,24 @@ +package com.dy.pipIrrBase.district; + +import com.dy.pipIrrGlobal.daoBa.BaDistrictMapper; +import com.dy.pipIrrGlobal.pojoBa.BaDistrict; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +public class DistrictSv { + + private BaDistrictMapper baDistrictMapper ; + + @Autowired + private void setBaDistrictMapper(BaDistrictMapper baDistrictMapper){ + this.baDistrictMapper = baDistrictMapper ; + } + + + public int save(BaDistrict po){ + return this.baDistrictMapper.insert(po) ; + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVo.java new file mode 100644 index 0000000..91d043c --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVo.java @@ -0,0 +1,29 @@ +package com.dy.pipIrrBase.district; + +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import lombok.*; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.NotEmpty; +import org.hibernate.validator.constraints.Length; + +@Data +@ToString +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Schema(name = "琛屾斂鍖哄垝鍊煎璞�") +public class DistrictVo { + @Schema(description = "琛屾斂鍖哄悕绉�", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "琛屾斂鍖哄悕绉颁笉鑳戒负绌�") //涓嶈兘涓虹┖涔熶笉鑳戒负null + @Length(message = "琛屾斂鍖哄悕绉板皬浜巤max}瀛�", min = 1, max = 25) + public String name ; + + @Schema(description = "琛屾斂鍖虹骇鍒�", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "琛屾斂鍖虹骇鍒笉鑳戒负绌�") //涓嶈兘涓虹┖涔熶笉鑳戒负null + @Max(message = "琛屾斂鍖虹骇鍒笉姝g‘", value = 10) + @Min(message = "琛屾斂鍖虹骇鍒笉姝g‘",value = 0) + public Byte level ; + +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVoMapper.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVoMapper.java new file mode 100644 index 0000000..3b79344 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVoMapper.java @@ -0,0 +1,21 @@ +package com.dy.pipIrrBase.district; + +import com.dy.pipIrrGlobal.pojoBa.BaDistrict; +import com.dy.pipIrrGlobal.util.TypeConversionDistrict; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +@Mapper(uses = {TypeConversionDistrict.class}) +public interface DistrictVoMapper { + DistrictVoMapper INSTANCT = Mappers.getMapper(DistrictVoMapper.class); + /** + * vo杞琾o + * @param vo 鍊煎璞� + * @return po + */ + @Mapping(target = "id", ignore = true) + @Mapping(target = "name", source = "name") + @Mapping(target = "level", source = "level", qualifiedByName = "districtLevelByteToObj") + BaDistrict convert(DistrictVo vo); +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/config/DemoSetDataSourceFilter.java b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/config/DemoSetDataSourceFilter.java deleted file mode 100644 index 1456c44..0000000 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/config/DemoSetDataSourceFilter.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.dy.pipIrrDemo.config; - -import com.dy.common.multiDataSource.DataSourceContext; -import jakarta.servlet.*; -import lombok.extern.slf4j.Slf4j; - -import java.io.IOException; - -@Slf4j -public class DemoSetDataSourceFilter implements Filter { - @Override - public void init(FilterConfig filterConfig) throws ServletException { - log.info("DemoSetDataSourceFilter init: name:" + filterConfig.getInitParameter("name")); - } - - @Override - public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { - log.info("in DemoSetDataSourceFilter"); - - DataSourceContext.set("ym"); - - filterChain.doFilter(servletRequest, servletResponse); - - } - - @Override - public void destroy() { - System.out.println("DemoSetDataSourceFilter destroy"); - } - -} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/config/WebFilterConfiguration.java b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/config/WebFilterConfiguration.java index def798f..c4f1e2e 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/config/WebFilterConfiguration.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/config/WebFilterConfiguration.java @@ -1,31 +1,44 @@ package com.dy.pipIrrDemo.config; +import com.dy.common.webFilter.DevOfDataSourceNameSetFilter; +import com.dy.common.webFilter.UserTokenFilter; import jakarta.servlet.Filter; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration -@SuppressWarnings("unchecked")//涓嶅姞姝ゆ敞瑙o紝缂栬瘧鏃惰鍛婏細鈥滀娇鐢ㄤ簡鏈粡妫�鏌ユ垨涓嶅畨鍏ㄧ殑鎿嶄綔銆傗�� public class WebFilterConfiguration { - private static final int orger_demoSetDataSourceFilter = 1 ; + @Value("${pipIrr.global.dev}") + public String isDevStage ;//鏄惁涓哄紑鍙戦樁娈� + @Value("${pipIrr.global.dsName}") + public String dsName ;//寮�鍙戦樁娈电殑鏁版嵁婧愬悕绉� + + /** + * DevOfDataSourceNameSetFilter涓嶶serTokenFilter鍙兘涓�涓閰嶇疆涓婏紝 + * 鎵�浠ヤ粬浠殑order閮芥槸1 + */ + private static final int order_UserTokenFilter = 1 ;//涓庝笅闈� + private static final int order_DevOfDataSourceNameSetFilter = 1 ; + @Bean - public DemoSetDataSourceFilter getDemoSetDataSourceFilter(){ - return new DemoSetDataSourceFilter() ; - } - - @Bean - public FilterRegistrationBean<? extends Filter> reqDemoSetDataSourceFilter(DemoSetDataSourceFilter filter) { - FilterRegistrationBean<DemoSetDataSourceFilter> filterRegistrationBean = new FilterRegistrationBean(); - - filterRegistrationBean.setFilter(filter); - filterRegistrationBean.addUrlPatterns("/*");//閰嶇疆杩囨护瑙勫垯 - filterRegistrationBean.addInitParameter("name","I am DemoSetDataSourceFilter");//璁剧疆init鍙傛暟 - filterRegistrationBean.setName("demoSetDataSourceFilter");//璁剧疆杩囨护鍣ㄥ悕绉� - filterRegistrationBean.setOrder(orger_demoSetDataSourceFilter);//鎵ц娆″簭 - + public FilterRegistrationBean<? extends Filter> RegFilter() { + FilterRegistrationBean<Filter> filterRegistrationBean = new FilterRegistrationBean<>(); + if(this.isDevStage != null && !this.isDevStage.trim().equals("") && this.isDevStage.trim().equalsIgnoreCase("true")){ + filterRegistrationBean.setFilter(new DevOfDataSourceNameSetFilter()); + filterRegistrationBean.addUrlPatterns("/*");//閰嶇疆杩囨护瑙勫垯 + filterRegistrationBean.addInitParameter("dataSourceName",dsName);//璁剧疆init鍙傛暟 + filterRegistrationBean.setName("DevOfDataSourceNameSetFilter");//璁剧疆杩囨护鍣ㄥ悕绉� + filterRegistrationBean.setOrder(order_DevOfDataSourceNameSetFilter);//鎵ц娆″簭 + }else{ + filterRegistrationBean.setFilter(new UserTokenFilter()); + filterRegistrationBean.addUrlPatterns("/*");//閰嶇疆杩囨护瑙勫垯 + filterRegistrationBean.setName("UserTokenFilter");//璁剧疆杩囨护鍣ㄥ悕绉� + filterRegistrationBean.setOrder(order_UserTokenFilter);//鎵ц娆″簭 + } return filterRegistrationBean; } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/config/WebListenerConfiguration.java b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/config/WebListenerConfiguration.java index 753e643..d0dd81a 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/config/WebListenerConfiguration.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/config/WebListenerConfiguration.java @@ -1,6 +1,5 @@ package com.dy.pipIrrDemo.config; -import com.dy.common.webListener.ConfigListener; import com.dy.common.webListener.GenerateIdSetSuffixListener; import jakarta.servlet.ServletContextListener; import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; @@ -8,13 +7,13 @@ import org.springframework.context.annotation.Configuration; @Configuration -@SuppressWarnings("unchecked")//涓嶅姞缂栬緫鏃惰鍛婏細鈥滀娇鐢ㄤ簡鏈粡妫�鏌ユ垨涓嶅畨鍏ㄧ殑鎿嶄綔銆傗�� +//@SuppressWarnings("unchecked")//涓嶅姞缂栬緫鏃惰鍛婏細鈥滀娇鐢ㄤ簡鏈粡妫�鏌ユ垨涓嶅畨鍏ㄧ殑鎿嶄綔銆傗�� public class WebListenerConfiguration { /** * 鍚姩椤哄簭 */ - private static final int order_config = 1 ; + //private static final int order_config = 1 ; private static final int order_idSetSuffix = 2 ; // @Bean @@ -42,8 +41,7 @@ @Bean public ServletListenerRegistrationBean<? extends ServletContextListener> reqSsoListener() { ServletListenerRegistrationBean<GenerateIdSetSuffixListener> listenerRegistrationBean = new ServletListenerRegistrationBean<>(); - GenerateIdSetSuffixListener listener = new GenerateIdSetSuffixListener(); - listenerRegistrationBean.setListener(listener); + listenerRegistrationBean.setListener(new GenerateIdSetSuffixListener()); listenerRegistrationBean.setOrder(order_idSetSuffix); return listenerRegistrationBean; } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/resources/application.yml b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/resources/application.yml index a2ba7a3..7e250e8 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/resources/application.yml +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/resources/application.yml @@ -13,7 +13,7 @@ context-path: /demo #web璁块棶涓婁笅鏂囪矾寰� context-parameters: #GenerateIdSetSuffixListener涓簲鐢紝鍙栧�艰寖鍥存槸0-99 - idSuffix: 1 + idSuffix: 99 #ConfigListener涓簲鐢� #configFileNames: config-global.xml,config-demo.xml diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/test/java/com/dy/pipIrrDemo/mp/MpTest2.java b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/test/java/com/dy/pipIrrDemo/mp/MpTest2.java index 05a5b86..0136946 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/test/java/com/dy/pipIrrDemo/mp/MpTest2.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/test/java/com/dy/pipIrrDemo/mp/MpTest2.java @@ -1,7 +1,6 @@ package com.dy.pipIrrDemo.mp; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.dy.common.multiDataSource.DataSourceContext; import com.dy.pipIrrGlobal.daoDemo.DemoMpMapper; import com.dy.pipIrrGlobal.pojoDemo.DemoMp; diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/application.yml b/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/application.yml index eab3c3a..5c74c10 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/application.yml +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/application.yml @@ -13,6 +13,6 @@ context-path: /gis #web璁块棶涓婁笅鏂囪矾寰� context-parameters: #GenerateIdSetSuffixListener涓簲鐢紝鍙栧�艰寖鍥存槸0-99 - idSuffix: 1 + idSuffix: 4 #ConfigListener涓簲鐢� #configFileNames: config-global.xml,config-demo.xml diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application.yml b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application.yml index 895fc77..08ac119 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application.yml +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application.yml @@ -13,6 +13,6 @@ context-path: /remote #web璁块棶涓婁笅鏂囪矾寰� context-parameters: #GenerateIdSetSuffixListener涓簲鐢紝鍙栧�艰寖鍥存槸0-99 - idSuffix: 1 + idSuffix: 2 #ConfigListener涓簲鐢� #configFileNames: config-global.xml,config-demo.xml diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java index aead030..6ca0341 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java @@ -205,12 +205,17 @@ if(userPo.supperAdmin != null && userPo.supperAdmin == 1){ vo.hasPower = true ; }else{ - if(userPo.privileges != null && userPo.privileges.size() > 0){ - vo.hasPower = this.hasOnePrivilege(privilege, userPo) ; - if(!vo.hasPower){ - vo.hasPower = this.hasAllPrivilege(allPrivilege, userPo) ; + if(privilege.equals("-1")){ + //鏃犻渶鏉冮檺楠岃瘉 + vo.hasPower = true ; + }else{ + if(userPo.privileges != null && userPo.privileges.size() > 0){ + vo.hasPower = this.hasOnePrivilege(privilege, userPo) ; if(!vo.hasPower){ - vo.hasPower = this.hasAnyPrivilege(anyPrivilege, userPo) ; + vo.hasPower = this.hasAllPrivilege(allPrivilege, userPo) ; + if(!vo.hasPower){ + vo.hasPower = this.hasAnyPrivilege(anyPrivilege, userPo) ; + } } } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application.yml b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application.yml index 71047d4..2d5cddc 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application.yml +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application.yml @@ -13,6 +13,6 @@ context-path: /sso #web璁块棶涓婁笅鏂囪矾寰� context-parameters: #GenerateIdSetSuffixListener涓簲鐢紝鍙栧�艰寖鍥存槸0-99 - IdSuffix: 0 + IdSuffix: 3 #ConfigListener涓簲鐢� configFileNames: config-global.xml,config-sso.xml diff --git a/pipIrr-platform/pipIrr-web/pom.xml b/pipIrr-platform/pipIrr-web/pom.xml index 865fb08..114f342 100644 --- a/pipIrr-platform/pipIrr-web/pom.xml +++ b/pipIrr-platform/pipIrr-web/pom.xml @@ -105,8 +105,8 @@ <!--mysql椹卞姩--> <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> + <groupId>com.mysql</groupId> + <artifactId>mysql-connector-j</artifactId> <version>8.0.33</version> </dependency> <!--druid-spring-boot杩炴帴姹�--> @@ -138,7 +138,7 @@ <version>2.0.40</version> </dependency> - <!-- vo po杞崲 --> + <!-- vo po杞崲 鍏ㄥ眬娌℃湁涓嬮潰渚濊禆锛屾墍浠ユ澶勫繀椤诲姞鐗堟湰鍙�--> <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct</artifactId> diff --git a/pipIrr-platform/pom.xml b/pipIrr-platform/pom.xml index ea0ae6b..3f80fb0 100644 --- a/pipIrr-platform/pom.xml +++ b/pipIrr-platform/pom.xml @@ -152,8 +152,8 @@ <!--mysql椹卞姩--> <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> + <groupId>com.mysql</groupId> + <artifactId>mysql-connector-j</artifactId> <!--瀵瑰簲鑷繁鐢佃剳瀹夎鐨刴ysql鐗堟湰--> <version>8.0.33</version> <type>pom</type> @@ -248,6 +248,7 @@ <type>pom</type> <scope>import</scope> </dependency> + </dependencies> </dependencyManagement> diff --git "a/pipIrr-platform/\346\226\207\346\241\243/pipIrr-web\347\232\204pom/pom\050\344\270\215\345\270\246version\051.xml" "b/pipIrr-platform/\346\226\207\346\241\243/pipIrr-web\347\232\204pom/pom\050\344\270\215\345\270\246version\051.xml" index e2bd74f..9fa5067 100644 --- "a/pipIrr-platform/\346\226\207\346\241\243/pipIrr-web\347\232\204pom/pom\050\344\270\215\345\270\246version\051.xml" +++ "b/pipIrr-platform/\346\226\207\346\241\243/pipIrr-web\347\232\204pom/pom\050\344\270\215\345\270\246version\051.xml" @@ -99,10 +99,7 @@ <!--mysql椹卞姩--> - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - </dependency> + <!--druid-spring-boot杩炴帴姹�--> <dependency> <groupId>com.alibaba</groupId> diff --git "a/pipIrr-platform/\346\226\207\346\241\243/\345\234\250\347\272\277\351\234\200\346\261\202\346\226\207\344\273\266\350\256\277\351\227\256\345\234\260\345\235\200.txt" "b/pipIrr-platform/\346\226\207\346\241\243/\345\234\250\347\272\277\351\234\200\346\261\202\346\226\207\344\273\266\350\256\277\351\227\256\345\234\260\345\235\200.txt" new file mode 100644 index 0000000..61ce6a3 --- /dev/null +++ "b/pipIrr-platform/\346\226\207\346\241\243/\345\234\250\347\272\277\351\234\200\346\261\202\346\226\207\344\273\266\350\256\277\351\227\256\345\234\260\345\235\200.txt" @@ -0,0 +1 @@ +https://docs.qq.com/doc/DRHBkeVlCekp1d1RU \ No newline at end of file -- Gitblit v1.8.0