diff --git a/.flattened-pom.xml b/.flattened-pom.xml index 0cf8d24..9c53190 100644 --- a/.flattened-pom.xml +++ b/.flattened-pom.xml @@ -1,119 +1,119 @@ - - - 4.0.0 - cn.hangtag - hangtag - 2.1.0-jdk8-snapshot - pom - ${project.artifactId} - 嘉晋OMS系统 - - hangtag-dependencies - hangtag-framework - hangtag-server - hangtag-module-system - hangtag-module-infra - hangtag-module-oms - - - 1.18.30 - 1.8 - 3.8.1 - 3.0.0-M5 - ${java.version} - 1.5.5.Final - UTF-8 - 1.5.0 - 2.1.0-jdk8-snapshot - 2.7.18 - ${java.version} - - - - - cn.hangtag - hangtag-dependencies - 2.1.0-jdk8-snapshot - pom - import - - - - - - huaweicloud - huawei - https://mirrors.huaweicloud.com/repository/maven/ - - - aliyunmaven - aliyun - https://maven.aliyun.com/repository/public - - - - - - - maven-surefire-plugin - ${maven-surefire-plugin.version} - - - maven-compiler-plugin - ${maven-compiler-plugin.version} - - - - org.springframework.boot - spring-boot-configuration-processor - ${spring.boot.version} - - - org.projectlombok - lombok - ${lombok.version} - - - org.mapstruct - mapstruct-processor - ${mapstruct.version} - - - - - - org.codehaus.mojo - flatten-maven-plugin - - - - - - org.codehaus.mojo - flatten-maven-plugin - ${flatten-maven-plugin.version} - - - flatten - process-resources - - flatten - - - - flatten.clean - clean - - clean - - - - - resolveCiFriendliesOnly - true - - - - - + + + 4.0.0 + cn.hangtag + hangtag + 2.1.0-jdk8-snapshot + pom + ${project.artifactId} + 嘉晋OMS系统 + + hangtag-dependencies + hangtag-framework + hangtag-server + hangtag-module-system + hangtag-module-infra + hangtag-module-oms + + + 1.18.30 + 1.8 + 3.8.1 + 3.0.0-M5 + ${java.version} + 1.5.5.Final + UTF-8 + 1.5.0 + 2.1.0-jdk8-snapshot + 2.7.18 + ${java.version} + + + + + cn.hangtag + hangtag-dependencies + 2.1.0-jdk8-snapshot + pom + import + + + + + + huaweicloud + huawei + https://mirrors.huaweicloud.com/repository/maven/ + + + aliyunmaven + aliyun + https://maven.aliyun.com/repository/public + + + + + + + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + maven-compiler-plugin + ${maven-compiler-plugin.version} + + + + org.springframework.boot + spring-boot-configuration-processor + ${spring.boot.version} + + + org.projectlombok + lombok + ${lombok.version} + + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + + + + + + org.codehaus.mojo + flatten-maven-plugin + + + + + + org.codehaus.mojo + flatten-maven-plugin + ${flatten-maven-plugin.version} + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + + resolveCiFriendliesOnly + true + + + + + diff --git a/hangtag-dependencies/.flattened-pom.xml b/hangtag-dependencies/.flattened-pom.xml index 23ddf1b..0dce2b3 100644 --- a/hangtag-dependencies/.flattened-pom.xml +++ b/hangtag-dependencies/.flattened-pom.xml @@ -1,547 +1,547 @@ - - - 4.0.0 - cn.hangtag - hangtag-dependencies - 2.1.0-jdk8-snapshot - pom - ${project.artifactId} - 基础 bom 文件,管理整个项目的依赖版本 - https://github.com/YunaiV/ruoyi-vue-pro - - 1.4.10 - 7.2.11.RELEASE - 2.3 - 2.7.18 - 2.9.1 - 2.2.7 - 3.5.0 - 5.1.0 - 1.18.30 - 2.12.2 - 1.17.2 - 1.2.83 - 3.10.0 - 5.8.25 - 2.14.5 - 6.8.0 - 3.18.0 - 2.2.11 - 4.11.0 - 3.0.6 - 3.5.5 - 1.2.21 - 2.15.1 - 3.3.3 - 1.6.15 - 8.5.7 - 4.11.0 - 1.0.13 - 3.1.880 - 8.1.3.62 - 2.2.3 - 2.7.0 - 0.1.55 - 4.6.0 - 4.6.4 - 1.0.10 - 4.3.0 - 2.5 - 4.3.0 - 2.7.15 - 1.5.5.Final - 1.6.6 - 2.2.1 - 1.0.8 - 1.0.5 - 33.0.0-jre - 8.12.0 - 0.33.0 - 3.5.5 - 1.5.0 - 2.1.0-jdk8-snapshot - - - - - org.springframework.boot - spring-boot-dependencies - ${spring.boot.version} - pom - import - - - io.github.mouzt - bizlog-sdk - ${bizlog-sdk.version} - - - spring-boot-starter - org.springframework.boot - - - - - cn.hangtag - hangtag-spring-boot-starter-biz-tenant - 2.1.0-jdk8-snapshot - - - cn.hangtag - hangtag-spring-boot-starter-biz-data-permission - 2.1.0-jdk8-snapshot - - - cn.hangtag - hangtag-spring-boot-starter-biz-ip - 2.1.0-jdk8-snapshot - - - org.springframework.boot - spring-boot-configuration-processor - ${spring.boot.version} - - - cn.hangtag - hangtag-spring-boot-starter-web - 2.1.0-jdk8-snapshot - - - cn.hangtag - hangtag-spring-boot-starter-security - 2.1.0-jdk8-snapshot - - - cn.hangtag - hangtag-spring-boot-starter-websocket - 2.1.0-jdk8-snapshot - - - com.github.xiaoymin - knife4j-openapi3-spring-boot-starter - ${knife4j.version} - - - org.springdoc - springdoc-openapi-ui - ${springdoc.version} - - - cn.hangtag - hangtag-spring-boot-starter-mybatis - 2.1.0-jdk8-snapshot - - - com.alibaba - druid-spring-boot-starter - ${druid.version} - - - com.baomidou - mybatis-plus-boot-starter - ${mybatis-plus.version} - - - com.baomidou - mybatis-plus-generator - ${mybatis-plus-generator.version} - - - com.baomidou - dynamic-datasource-spring-boot-starter - ${dynamic-datasource.version} - - - com.github.yulichang - mybatis-plus-join-boot-starter - ${mybatis-plus-join.version} - - - com.fhs-opensource - easy-trans-spring-boot-starter - ${easy-trans.version} - - - spring-context - org.springframework - - - spring-cloud-commons - org.springframework.cloud - - - - - com.fhs-opensource - easy-trans-mybatis-plus-extend - ${easy-trans.version} - - - com.fhs-opensource - easy-trans-anno - ${easy-trans.version} - - - cn.hangtag - hangtag-spring-boot-starter-redis - 2.1.0-jdk8-snapshot - - - org.redisson - redisson-spring-boot-starter - ${redisson.version} - - - spring-boot-starter-actuator - org.springframework.boot - - - - - com.dameng - DmJdbcDriver18 - ${dm8.jdbc.version} - - - cn.hangtag - hangtag-spring-boot-starter-job - 2.1.0-jdk8-snapshot - - - cn.hangtag - hangtag-spring-boot-starter-mq - 2.1.0-jdk8-snapshot - - - org.apache.rocketmq - rocketmq-spring-boot-starter - ${rocketmq-spring.version} - - - cn.hangtag - hangtag-spring-boot-starter-protection - 2.1.0-jdk8-snapshot - - - com.baomidou - lock4j-redisson-spring-boot-starter - ${lock4j.version} - - - redisson-spring-boot-starter - org.redisson - - - - - cn.hangtag - hangtag-spring-boot-starter-monitor - 2.1.0-jdk8-snapshot - - - org.apache.skywalking - apm-toolkit-trace - ${skywalking.version} - - - org.apache.skywalking - apm-toolkit-logback-1.x - ${skywalking.version} - - - org.apache.skywalking - apm-toolkit-opentracing - ${skywalking.version} - - - io.opentracing - opentracing-api - ${opentracing.version} - - - io.opentracing - opentracing-util - ${opentracing.version} - - - io.opentracing - opentracing-noop - ${opentracing.version} - - - de.codecentric - spring-boot-admin-starter-server - ${spring-boot-admin.version} - - - spring-boot-admin-server-cloud - de.codecentric - - - - - de.codecentric - spring-boot-admin-starter-client - ${spring-boot-admin.version} - - - cn.hangtag - hangtag-spring-boot-starter-test - 2.1.0-jdk8-snapshot - test - - - org.mockito - mockito-inline - ${mockito-inline.version} - - - org.springframework.boot - spring-boot-starter-test - ${spring.boot.version} - - - asm - org.ow2.asm - - - mockito-core - org.mockito - - - - - com.github.fppt - jedis-mock - ${jedis-mock.version} - - - uk.co.jemos.podam - podam - ${podam.version} - - - org.flowable - flowable-spring-boot-starter-process - ${flowable.version} - - - org.flowable - flowable-spring-boot-starter-actuator - ${flowable.version} - - - cn.hangtag - hangtag-common - 2.1.0-jdk8-snapshot - - - cn.hangtag - hangtag-spring-boot-starter-excel - 2.1.0-jdk8-snapshot - - - org.projectlombok - lombok - ${lombok.version} - - - org.mapstruct - mapstruct - ${mapstruct.version} - - - org.mapstruct - mapstruct-jdk8 - ${mapstruct.version} - - - org.mapstruct - mapstruct-processor - ${mapstruct.version} - - - cn.hutool - hutool-all - ${hutool.version} - - - com.alibaba - easyexcel - ${easyexcel.verion} - - - commons-io - commons-io - ${commons-io.version} - - - org.apache.tika - tika-core - ${tika-core.version} - - - org.apache.velocity - velocity-engine-core - ${velocity.version} - - - com.alibaba - fastjson - ${fastjson.version} - - - com.google.guava - guava - ${guava.version} - - - com.google.inject - guice - ${guice.version} - - - com.alibaba - transmittable-thread-local - ${transmittable-thread-local.version} - - - commons-net - commons-net - ${commons-net.version} - - - com.jcraft - jsch - ${jsch.version} - - - com.xingyuv - spring-boot-starter-captcha-plus - ${captcha-plus.version} - - - org.lionsoul - ip2region - ${ip2region.version} - - - org.jsoup - jsoup - ${jsoup.version} - - - com.squareup.okio - okio - ${okio.version} - - - com.squareup.okhttp3 - okhttp - ${okhttp3.version} - - - io.minio - minio - ${minio.version} - - - com.aliyun - aliyun-java-sdk-core - ${aliyun-java-sdk-core.version} - - - opentracing-api - io.opentracing - - - opentracing-util - io.opentracing - - - - - com.aliyun - aliyun-java-sdk-dysmsapi - ${aliyun-java-sdk-dysmsapi.version} - - - com.tencentcloudapi - tencentcloud-sdk-java-sms - ${tencentcloud-sdk-java.version} - - - com.xingyuv - spring-boot-starter-justauth - ${justauth.version} - - - hutool-core - cn.hutool - - - - - com.github.binarywang - weixin-java-pay - ${weixin-java.version} - - - com.github.binarywang - wx-java-mp-spring-boot-starter - ${weixin-java.version} - - - com.github.binarywang - wx-java-miniapp-spring-boot-starter - ${weixin-java.version} - - - org.jeecgframework.jimureport - jimureport-spring-boot-starter - ${jimureport.version} - - - druid - com.alibaba - - - - - xerces - xercesImpl - ${xercesImpl.version} - - - - - - - org.codehaus.mojo - flatten-maven-plugin - ${flatten-maven-plugin.version} - - - flatten - process-resources - - flatten - - - - flatten.clean - clean - - clean - - - - - resolveCiFriendliesOnly - true - - - - - + + + 4.0.0 + cn.hangtag + hangtag-dependencies + 2.1.0-jdk8-snapshot + pom + ${project.artifactId} + 基础 bom 文件,管理整个项目的依赖版本 + https://github.com/YunaiV/ruoyi-vue-pro + + 1.4.10 + 7.2.11.RELEASE + 2.3 + 2.7.18 + 2.9.1 + 2.2.7 + 3.5.0 + 5.1.0 + 1.18.30 + 2.12.2 + 1.17.2 + 1.2.83 + 3.10.0 + 5.8.25 + 2.14.5 + 6.8.0 + 3.18.0 + 2.2.11 + 4.11.0 + 3.0.6 + 3.5.5 + 1.2.21 + 2.15.1 + 3.3.3 + 1.6.15 + 8.5.7 + 4.11.0 + 1.0.13 + 3.1.880 + 8.1.3.62 + 2.2.3 + 2.7.0 + 0.1.55 + 4.6.0 + 4.6.4 + 1.0.10 + 4.3.0 + 2.5 + 4.3.0 + 2.7.15 + 1.5.5.Final + 1.6.6 + 2.2.1 + 1.0.8 + 1.0.5 + 33.0.0-jre + 8.12.0 + 0.33.0 + 3.5.5 + 1.5.0 + 2.1.0-jdk8-snapshot + + + + + org.springframework.boot + spring-boot-dependencies + ${spring.boot.version} + pom + import + + + io.github.mouzt + bizlog-sdk + ${bizlog-sdk.version} + + + org.springframework.boot + spring-boot-starter + + + + + cn.hangtag + hangtag-spring-boot-starter-biz-tenant + 2.1.0-jdk8-snapshot + + + cn.hangtag + hangtag-spring-boot-starter-biz-data-permission + 2.1.0-jdk8-snapshot + + + cn.hangtag + hangtag-spring-boot-starter-biz-ip + 2.1.0-jdk8-snapshot + + + org.springframework.boot + spring-boot-configuration-processor + ${spring.boot.version} + + + cn.hangtag + hangtag-spring-boot-starter-web + 2.1.0-jdk8-snapshot + + + cn.hangtag + hangtag-spring-boot-starter-security + 2.1.0-jdk8-snapshot + + + cn.hangtag + hangtag-spring-boot-starter-websocket + 2.1.0-jdk8-snapshot + + + com.github.xiaoymin + knife4j-openapi3-spring-boot-starter + ${knife4j.version} + + + org.springdoc + springdoc-openapi-ui + ${springdoc.version} + + + cn.hangtag + hangtag-spring-boot-starter-mybatis + 2.1.0-jdk8-snapshot + + + com.alibaba + druid-spring-boot-starter + ${druid.version} + + + com.baomidou + mybatis-plus-boot-starter + ${mybatis-plus.version} + + + com.baomidou + mybatis-plus-generator + ${mybatis-plus-generator.version} + + + com.baomidou + dynamic-datasource-spring-boot-starter + ${dynamic-datasource.version} + + + com.github.yulichang + mybatis-plus-join-boot-starter + ${mybatis-plus-join.version} + + + com.fhs-opensource + easy-trans-spring-boot-starter + ${easy-trans.version} + + + org.springframework + spring-context + + + org.springframework.cloud + spring-cloud-commons + + + + + com.fhs-opensource + easy-trans-mybatis-plus-extend + ${easy-trans.version} + + + com.fhs-opensource + easy-trans-anno + ${easy-trans.version} + + + cn.hangtag + hangtag-spring-boot-starter-redis + 2.1.0-jdk8-snapshot + + + org.redisson + redisson-spring-boot-starter + ${redisson.version} + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.dameng + DmJdbcDriver18 + ${dm8.jdbc.version} + + + cn.hangtag + hangtag-spring-boot-starter-job + 2.1.0-jdk8-snapshot + + + cn.hangtag + hangtag-spring-boot-starter-mq + 2.1.0-jdk8-snapshot + + + org.apache.rocketmq + rocketmq-spring-boot-starter + ${rocketmq-spring.version} + + + cn.hangtag + hangtag-spring-boot-starter-protection + 2.1.0-jdk8-snapshot + + + com.baomidou + lock4j-redisson-spring-boot-starter + ${lock4j.version} + + + org.redisson + redisson-spring-boot-starter + + + + + cn.hangtag + hangtag-spring-boot-starter-monitor + 2.1.0-jdk8-snapshot + + + org.apache.skywalking + apm-toolkit-trace + ${skywalking.version} + + + org.apache.skywalking + apm-toolkit-logback-1.x + ${skywalking.version} + + + org.apache.skywalking + apm-toolkit-opentracing + ${skywalking.version} + + + io.opentracing + opentracing-api + ${opentracing.version} + + + io.opentracing + opentracing-util + ${opentracing.version} + + + io.opentracing + opentracing-noop + ${opentracing.version} + + + de.codecentric + spring-boot-admin-starter-server + ${spring-boot-admin.version} + + + de.codecentric + spring-boot-admin-server-cloud + + + + + de.codecentric + spring-boot-admin-starter-client + ${spring-boot-admin.version} + + + cn.hangtag + hangtag-spring-boot-starter-test + 2.1.0-jdk8-snapshot + test + + + org.mockito + mockito-inline + ${mockito-inline.version} + + + org.springframework.boot + spring-boot-starter-test + ${spring.boot.version} + + + org.ow2.asm + asm + + + org.mockito + mockito-core + + + + + com.github.fppt + jedis-mock + ${jedis-mock.version} + + + uk.co.jemos.podam + podam + ${podam.version} + + + org.flowable + flowable-spring-boot-starter-process + ${flowable.version} + + + org.flowable + flowable-spring-boot-starter-actuator + ${flowable.version} + + + cn.hangtag + hangtag-common + 2.1.0-jdk8-snapshot + + + cn.hangtag + hangtag-spring-boot-starter-excel + 2.1.0-jdk8-snapshot + + + org.projectlombok + lombok + ${lombok.version} + + + org.mapstruct + mapstruct + ${mapstruct.version} + + + org.mapstruct + mapstruct-jdk8 + ${mapstruct.version} + + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + + + cn.hutool + hutool-all + ${hutool.version} + + + com.alibaba + easyexcel + ${easyexcel.verion} + + + commons-io + commons-io + ${commons-io.version} + + + org.apache.tika + tika-core + ${tika-core.version} + + + org.apache.velocity + velocity-engine-core + ${velocity.version} + + + com.alibaba + fastjson + ${fastjson.version} + + + com.google.guava + guava + ${guava.version} + + + com.google.inject + guice + ${guice.version} + + + com.alibaba + transmittable-thread-local + ${transmittable-thread-local.version} + + + commons-net + commons-net + ${commons-net.version} + + + com.jcraft + jsch + ${jsch.version} + + + com.xingyuv + spring-boot-starter-captcha-plus + ${captcha-plus.version} + + + org.lionsoul + ip2region + ${ip2region.version} + + + org.jsoup + jsoup + ${jsoup.version} + + + com.squareup.okio + okio + ${okio.version} + + + com.squareup.okhttp3 + okhttp + ${okhttp3.version} + + + io.minio + minio + ${minio.version} + + + com.aliyun + aliyun-java-sdk-core + ${aliyun-java-sdk-core.version} + + + io.opentracing + opentracing-api + + + io.opentracing + opentracing-util + + + + + com.aliyun + aliyun-java-sdk-dysmsapi + ${aliyun-java-sdk-dysmsapi.version} + + + com.tencentcloudapi + tencentcloud-sdk-java-sms + ${tencentcloud-sdk-java.version} + + + com.xingyuv + spring-boot-starter-justauth + ${justauth.version} + + + cn.hutool + hutool-core + + + + + com.github.binarywang + weixin-java-pay + ${weixin-java.version} + + + com.github.binarywang + wx-java-mp-spring-boot-starter + ${weixin-java.version} + + + com.github.binarywang + wx-java-miniapp-spring-boot-starter + ${weixin-java.version} + + + org.jeecgframework.jimureport + jimureport-spring-boot-starter + ${jimureport.version} + + + com.alibaba + druid + + + + + xerces + xercesImpl + ${xercesImpl.version} + + + + + + + org.codehaus.mojo + flatten-maven-plugin + ${flatten-maven-plugin.version} + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + + resolveCiFriendliesOnly + true + + + + + diff --git a/hangtag-framework/.flattened-pom.xml b/hangtag-framework/.flattened-pom.xml index 812e593..0ee0d8a 100644 --- a/hangtag-framework/.flattened-pom.xml +++ b/hangtag-framework/.flattened-pom.xml @@ -1,40 +1,40 @@ - - - 4.0.0 - - cn.hangtag - hangtag - 2.1.0-jdk8-snapshot - - cn.hangtag - hangtag-framework - 2.1.0-jdk8-snapshot - pom - 该包是技术组件,每个子包,代表一个组件。每个组件包括两部分: - 1. core 包:是该组件的核心封装 - 2. config 包:是该组件基于 Spring 的配置 - - 技术组件,也分成两类: - 1. 框架组件:和我们熟悉的 MyBatis、Redis 等等的拓展 - 2. 业务组件:和业务相关的组件的封装,例如说数据字典、操作日志等等。 - 如果是业务组件,Maven 名字会包含 biz - https://github.com/YunaiV/ruoyi-vue-pro - - hangtag-common - hangtag-spring-boot-starter-mybatis - hangtag-spring-boot-starter-redis - hangtag-spring-boot-starter-web - hangtag-spring-boot-starter-security - hangtag-spring-boot-starter-websocket - hangtag-spring-boot-starter-monitor - hangtag-spring-boot-starter-protection - hangtag-spring-boot-starter-job - hangtag-spring-boot-starter-mq - hangtag-spring-boot-starter-excel - hangtag-spring-boot-starter-test - hangtag-spring-boot-starter-biz-tenant - hangtag-spring-boot-starter-biz-data-permission - hangtag-spring-boot-starter-biz-ip - - + + + 4.0.0 + + cn.hangtag + hangtag + 2.1.0-jdk8-snapshot + + cn.hangtag + hangtag-framework + 2.1.0-jdk8-snapshot + pom + 该包是技术组件,每个子包,代表一个组件。每个组件包括两部分: + 1. core 包:是该组件的核心封装 + 2. config 包:是该组件基于 Spring 的配置 + + 技术组件,也分成两类: + 1. 框架组件:和我们熟悉的 MyBatis、Redis 等等的拓展 + 2. 业务组件:和业务相关的组件的封装,例如说数据字典、操作日志等等。 + 如果是业务组件,Maven 名字会包含 biz + https://github.com/YunaiV/ruoyi-vue-pro + + hangtag-common + hangtag-spring-boot-starter-mybatis + hangtag-spring-boot-starter-redis + hangtag-spring-boot-starter-web + hangtag-spring-boot-starter-security + hangtag-spring-boot-starter-websocket + hangtag-spring-boot-starter-monitor + hangtag-spring-boot-starter-protection + hangtag-spring-boot-starter-job + hangtag-spring-boot-starter-mq + hangtag-spring-boot-starter-excel + hangtag-spring-boot-starter-test + hangtag-spring-boot-starter-biz-tenant + hangtag-spring-boot-starter-biz-data-permission + hangtag-spring-boot-starter-biz-ip + + diff --git a/hangtag-framework/hangtag-common/.flattened-pom.xml b/hangtag-framework/hangtag-common/.flattened-pom.xml index 045cb0f..1134d01 100644 --- a/hangtag-framework/hangtag-common/.flattened-pom.xml +++ b/hangtag-framework/hangtag-common/.flattened-pom.xml @@ -1,125 +1,125 @@ - - - 4.0.0 - - cn.hangtag - hangtag-framework - 2.1.0-jdk8-snapshot - - cn.hangtag - hangtag-common - 2.1.0-jdk8-snapshot - ${project.artifactId} - 定义基础 pojo 类、枚举、工具类等等 - https://github.com/YunaiV/ruoyi-vue-pro - - - org.springframework - spring-core - provided - - - org.springframework - spring-expression - provided - - - org.springframework - spring-aop - provided - - - org.aspectj - aspectjweaver - provided - - - org.springframework.boot - spring-boot-configuration-processor - true - - - org.springframework - spring-web - provided - - - jakarta.servlet - jakarta.servlet-api - provided - - - org.springdoc - springdoc-openapi-ui - provided - - - org.apache.skywalking - apm-toolkit-trace - - - org.projectlombok - lombok - - - org.mapstruct - mapstruct - - - org.mapstruct - mapstruct-jdk8 - - - org.mapstruct - mapstruct-processor - - - com.google.guava - guava - provided - - - com.fasterxml.jackson.core - jackson-databind - provided - - - com.fasterxml.jackson.core - jackson-core - provided - - - com.fasterxml.jackson.datatype - jackson-datatype-jsr310 - provided - - - org.slf4j - slf4j-api - provided - - - jakarta.validation - jakarta.validation-api - provided - - - cn.hutool - hutool-all - - - com.alibaba - transmittable-thread-local - - - com.fhs-opensource - easy-trans-anno - - - org.springframework.boot - spring-boot-starter-test - test - - - + + + 4.0.0 + + cn.hangtag + hangtag-framework + 2.1.0-jdk8-snapshot + + cn.hangtag + hangtag-common + 2.1.0-jdk8-snapshot + ${project.artifactId} + 定义基础 pojo 类、枚举、工具类等等 + https://github.com/YunaiV/ruoyi-vue-pro + + + org.springframework + spring-core + provided + + + org.springframework + spring-expression + provided + + + org.springframework + spring-aop + provided + + + org.aspectj + aspectjweaver + provided + + + org.springframework.boot + spring-boot-configuration-processor + true + + + org.springframework + spring-web + provided + + + jakarta.servlet + jakarta.servlet-api + provided + + + org.springdoc + springdoc-openapi-ui + provided + + + org.apache.skywalking + apm-toolkit-trace + + + org.projectlombok + lombok + + + org.mapstruct + mapstruct + + + org.mapstruct + mapstruct-jdk8 + + + org.mapstruct + mapstruct-processor + + + com.google.guava + guava + provided + + + com.fasterxml.jackson.core + jackson-databind + provided + + + com.fasterxml.jackson.core + jackson-core + provided + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + provided + + + org.slf4j + slf4j-api + provided + + + jakarta.validation + jakarta.validation-api + provided + + + cn.hutool + hutool-all + + + com.alibaba + transmittable-thread-local + + + com.fhs-opensource + easy-trans-anno + + + org.springframework.boot + spring-boot-starter-test + test + + + diff --git a/hangtag-framework/hangtag-spring-boot-starter-biz-data-permission/src/test/java/cn/hangtag/framework/datapermission/core/aop/DataPermissionAnnotationInterceptorTest.java b/hangtag-framework/hangtag-spring-boot-starter-biz-data-permission/src/test/java/cn/hangtag/framework/datapermission/core/aop/DataPermissionAnnotationInterceptorTest.java index 240f442..9de018d 100644 --- a/hangtag-framework/hangtag-spring-boot-starter-biz-data-permission/src/test/java/cn/hangtag/framework/datapermission/core/aop/DataPermissionAnnotationInterceptorTest.java +++ b/hangtag-framework/hangtag-spring-boot-starter-biz-data-permission/src/test/java/cn/hangtag/framework/datapermission/core/aop/DataPermissionAnnotationInterceptorTest.java @@ -1,108 +1,108 @@ -package cn.hangtag.framework.datapermission.core.aop; - -import cn.hutool.core.collection.CollUtil; -import cn.hangtag.framework.datapermission.core.annotation.DataPermission; -import cn.hangtag.framework.test.core.ut.BaseMockitoUnitTest; -import org.aopalliance.intercept.MethodInvocation; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; - -import java.lang.reflect.Method; - -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.when; - -/** - * {@link DataPermissionAnnotationInterceptor} 的单元测试 - * - * @author 芋道源码 - */ -public class DataPermissionAnnotationInterceptorTest extends BaseMockitoUnitTest { - - @InjectMocks - private DataPermissionAnnotationInterceptor interceptor; - - @Mock - private MethodInvocation methodInvocation; - - @BeforeEach - public void setUp() { - interceptor.getDataPermissionCache().clear(); - } - - @Test // 无 @DataPermission 注解 - public void testInvoke_none() throws Throwable { - // 参数 - mockMethodInvocation(TestNone.class); - - // 调用 - Object result = interceptor.invoke(methodInvocation); - // 断言 - assertEquals("none", result); - assertEquals(1, interceptor.getDataPermissionCache().size()); - assertTrue(CollUtil.getFirst(interceptor.getDataPermissionCache().values()).enable()); - } - - @Test // 在 Method 上有 @DataPermission 注解 - public void testInvoke_method() throws Throwable { - // 参数 - mockMethodInvocation(TestMethod.class); - - // 调用 - Object result = interceptor.invoke(methodInvocation); - // 断言 - assertEquals("method", result); - assertEquals(1, interceptor.getDataPermissionCache().size()); - assertFalse(CollUtil.getFirst(interceptor.getDataPermissionCache().values()).enable()); - } - - @Test // 在 Class 上有 @DataPermission 注解 - public void testInvoke_class() throws Throwable { - // 参数 - mockMethodInvocation(TestClass.class); - - // 调用 - Object result = interceptor.invoke(methodInvocation); - // 断言 - assertEquals("class", result); - assertEquals(1, interceptor.getDataPermissionCache().size()); - assertFalse(CollUtil.getFirst(interceptor.getDataPermissionCache().values()).enable()); - } - - private void mockMethodInvocation(Class clazz) throws Throwable { - Object targetObject = clazz.newInstance(); - Method method = targetObject.getClass().getMethod("echo"); - when(methodInvocation.getThis()).thenReturn(targetObject); - when(methodInvocation.getMethod()).thenReturn(method); - when(methodInvocation.proceed()).then(invocationOnMock -> method.invoke(targetObject)); - } - - static class TestMethod { - - @DataPermission(enable = false) - public String echo() { - return "method"; - } - - } - - @DataPermission(enable = false) - static class TestClass { - - public String echo() { - return "class"; - } - - } - - static class TestNone { - - public String echo() { - return "none"; - } - - } - -} +//package cn.hangtag.framework.datapermission.core.aop; +// +//import cn.hutool.core.collection.CollUtil; +//import cn.hangtag.framework.datapermission.core.annotation.DataPermission; +//import cn.hangtag.framework.test.core.ut.BaseMockitoUnitTest; +//import org.aopalliance.intercept.MethodInvocation; +//import org.junit.jupiter.api.BeforeEach; +//import org.junit.jupiter.api.Test; +//import org.mockito.InjectMocks; +//import org.mockito.Mock; +// +//import java.lang.reflect.Method; +// +//import static org.junit.jupiter.api.Assertions.*; +//import static org.mockito.Mockito.when; +// +///** +// * {@link DataPermissionAnnotationInterceptor} 的单元测试 +// * +// * @author 芋道源码 +// */ +//public class DataPermissionAnnotationInterceptorTest extends BaseMockitoUnitTest { +// +// @InjectMocks +// private DataPermissionAnnotationInterceptor interceptor; +// +// @Mock +// private MethodInvocation methodInvocation; +// +// @BeforeEach +// public void setUp() { +// interceptor.getDataPermissionCache().clear(); +// } +// +// @Test // 无 @DataPermission 注解 +// public void testInvoke_none() throws Throwable { +// // 参数 +// mockMethodInvocation(TestNone.class); +// +// // 调用 +// Object result = interceptor.invoke(methodInvocation); +// // 断言 +// assertEquals("none", result); +// assertEquals(1, interceptor.getDataPermissionCache().size()); +// assertTrue(CollUtil.getFirst(interceptor.getDataPermissionCache().values()).enable()); +// } +// +// @Test // 在 Method 上有 @DataPermission 注解 +// public void testInvoke_method() throws Throwable { +// // 参数 +// mockMethodInvocation(TestMethod.class); +// +// // 调用 +// Object result = interceptor.invoke(methodInvocation); +// // 断言 +// assertEquals("method", result); +// assertEquals(1, interceptor.getDataPermissionCache().size()); +// assertFalse(CollUtil.getFirst(interceptor.getDataPermissionCache().values()).enable()); +// } +// +// @Test // 在 Class 上有 @DataPermission 注解 +// public void testInvoke_class() throws Throwable { +// // 参数 +// mockMethodInvocation(TestClass.class); +// +// // 调用 +// Object result = interceptor.invoke(methodInvocation); +// // 断言 +// assertEquals("class", result); +// assertEquals(1, interceptor.getDataPermissionCache().size()); +// assertFalse(CollUtil.getFirst(interceptor.getDataPermissionCache().values()).enable()); +// } +// +// private void mockMethodInvocation(Class clazz) throws Throwable { +// Object targetObject = clazz.newInstance(); +// Method method = targetObject.getClass().getMethod("echo"); +// when(methodInvocation.getThis()).thenReturn(targetObject); +// when(methodInvocation.getMethod()).thenReturn(method); +// when(methodInvocation.proceed()).then(invocationOnMock -> method.invoke(targetObject)); +// } +// +// static class TestMethod { +// +// @DataPermission(enable = false) +// public String echo() { +// return "method"; +// } +// +// } +// +// @DataPermission(enable = false) +// static class TestClass { +// +// public String echo() { +// return "class"; +// } +// +// } +// +// static class TestNone { +// +// public String echo() { +// return "none"; +// } +// +// } +// +//} diff --git a/hangtag-framework/hangtag-spring-boot-starter-biz-data-permission/src/test/java/cn/hangtag/framework/datapermission/core/db/DataPermissionDatabaseInterceptorTest.java b/hangtag-framework/hangtag-spring-boot-starter-biz-data-permission/src/test/java/cn/hangtag/framework/datapermission/core/db/DataPermissionDatabaseInterceptorTest.java index 39fec80..cb7dfb7 100644 --- a/hangtag-framework/hangtag-spring-boot-starter-biz-data-permission/src/test/java/cn/hangtag/framework/datapermission/core/db/DataPermissionDatabaseInterceptorTest.java +++ b/hangtag-framework/hangtag-spring-boot-starter-biz-data-permission/src/test/java/cn/hangtag/framework/datapermission/core/db/DataPermissionDatabaseInterceptorTest.java @@ -1,190 +1,190 @@ -package cn.hangtag.framework.datapermission.core.db; - -import cn.hangtag.framework.common.util.collection.SetUtils; -import cn.hangtag.framework.datapermission.core.rule.DataPermissionRule; -import cn.hangtag.framework.datapermission.core.rule.DataPermissionRuleFactory; -import cn.hangtag.framework.mybatis.core.util.MyBatisUtils; -import cn.hangtag.framework.test.core.ut.BaseMockitoUnitTest; -import com.baomidou.mybatisplus.core.toolkit.PluginUtils; -import net.sf.jsqlparser.expression.Alias; -import net.sf.jsqlparser.expression.Expression; -import net.sf.jsqlparser.expression.LongValue; -import net.sf.jsqlparser.expression.operators.relational.EqualsTo; -import net.sf.jsqlparser.schema.Column; -import org.apache.ibatis.executor.Executor; -import org.apache.ibatis.executor.statement.StatementHandler; -import org.apache.ibatis.mapping.BoundSql; -import org.apache.ibatis.mapping.MappedStatement; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.MockedStatic; - -import java.sql.Connection; -import java.util.*; - -import static java.util.Collections.singletonList; -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.*; - -/** - * {@link DataPermissionDatabaseInterceptor} 的单元测试 - * 主要测试 {@link DataPermissionDatabaseInterceptor#beforePrepare(StatementHandler, Connection, Integer)} - * 和 {@link DataPermissionDatabaseInterceptor#beforeUpdate(Executor, MappedStatement, Object)} - * 以及在这个过程中,ContextHolder 和 MappedStatementCache - * - * @author 芋道源码 - */ -public class DataPermissionDatabaseInterceptorTest extends BaseMockitoUnitTest { - - @InjectMocks - private DataPermissionDatabaseInterceptor interceptor; - - @Mock - private DataPermissionRuleFactory ruleFactory; - - @BeforeEach - public void setUp() { - // 清理上下文 - DataPermissionDatabaseInterceptor.ContextHolder.clear(); - // 清空缓存 - interceptor.getMappedStatementCache().clear(); - } - - @Test // 不存在规则,且不匹配 - public void testBeforeQuery_withoutRule() { - try (MockedStatic pluginUtilsMock = mockStatic(PluginUtils.class)) { - // 准备参数 - MappedStatement mappedStatement = mock(MappedStatement.class); - BoundSql boundSql = mock(BoundSql.class); - - // 调用 - interceptor.beforeQuery(null, mappedStatement, null, null, null, boundSql); - // 断言 - pluginUtilsMock.verify(() -> PluginUtils.mpBoundSql(boundSql), never()); - } - } - - @Test // 存在规则,且不匹配 - public void testBeforeQuery_withMatchRule() { - try (MockedStatic pluginUtilsMock = mockStatic(PluginUtils.class)) { - // 准备参数 - MappedStatement mappedStatement = mock(MappedStatement.class); - BoundSql boundSql = mock(BoundSql.class); - // mock 方法(数据权限) - when(ruleFactory.getDataPermissionRule(same(mappedStatement.getId()))) - .thenReturn(singletonList(new DeptDataPermissionRule())); - // mock 方法(MPBoundSql) - PluginUtils.MPBoundSql mpBs = mock(PluginUtils.MPBoundSql.class); - pluginUtilsMock.when(() -> PluginUtils.mpBoundSql(same(boundSql))).thenReturn(mpBs); - // mock 方法(SQL) - String sql = "select * from t_user where id = 1"; - when(mpBs.sql()).thenReturn(sql); - // 针对 ContextHolder 和 MappedStatementCache 暂时不 mock,主要想校验过程中,数据是否正确 - - // 调用 - interceptor.beforeQuery(null, mappedStatement, null, null, null, boundSql); - // 断言 - verify(mpBs, times(1)).sql( - eq("SELECT * FROM t_user WHERE id = 1 AND t_user.dept_id = 100")); - // 断言缓存 - assertTrue(interceptor.getMappedStatementCache().getNoRewritableMappedStatements().isEmpty()); - } - } - - @Test // 存在规则,但不匹配 - public void testBeforeQuery_withoutMatchRule() { - try (MockedStatic pluginUtilsMock = mockStatic(PluginUtils.class)) { - // 准备参数 - MappedStatement mappedStatement = mock(MappedStatement.class); - BoundSql boundSql = mock(BoundSql.class); - // mock 方法(数据权限) - when(ruleFactory.getDataPermissionRule(same(mappedStatement.getId()))) - .thenReturn(singletonList(new DeptDataPermissionRule())); - // mock 方法(MPBoundSql) - PluginUtils.MPBoundSql mpBs = mock(PluginUtils.MPBoundSql.class); - pluginUtilsMock.when(() -> PluginUtils.mpBoundSql(same(boundSql))).thenReturn(mpBs); - // mock 方法(SQL) - String sql = "select * from t_role where id = 1"; - when(mpBs.sql()).thenReturn(sql); - // 针对 ContextHolder 和 MappedStatementCache 暂时不 mock,主要想校验过程中,数据是否正确 - - // 调用 - interceptor.beforeQuery(null, mappedStatement, null, null, null, boundSql); - // 断言 - verify(mpBs, times(1)).sql( - eq("SELECT * FROM t_role WHERE id = 1")); - // 断言缓存 - assertFalse(interceptor.getMappedStatementCache().getNoRewritableMappedStatements().isEmpty()); - } - } - - @Test - public void testAddNoRewritable() { - // 准备参数 - MappedStatement ms = mock(MappedStatement.class); - List rules = singletonList(new DeptDataPermissionRule()); - // mock 方法 - when(ms.getId()).thenReturn("selectById"); - - // 调用 - interceptor.getMappedStatementCache().addNoRewritable(ms, rules); - // 断言 - Map, Set> noRewritableMappedStatements = - interceptor.getMappedStatementCache().getNoRewritableMappedStatements(); - assertEquals(1, noRewritableMappedStatements.size()); - assertEquals(SetUtils.asSet("selectById"), noRewritableMappedStatements.get(DeptDataPermissionRule.class)); - } - - @Test - public void testNoRewritable() { - // 准备参数 - MappedStatement ms = mock(MappedStatement.class); - // mock 方法 - when(ms.getId()).thenReturn("selectById"); - // mock 数据 - List rules = singletonList(new DeptDataPermissionRule()); - interceptor.getMappedStatementCache().addNoRewritable(ms, rules); - - // 场景一,rules 为空 - assertTrue(interceptor.getMappedStatementCache().noRewritable(ms, null)); - // 场景二,rules 非空,可重写 - assertFalse(interceptor.getMappedStatementCache().noRewritable(ms, singletonList(new EmptyDataPermissionRule()))); - // 场景三,rule 非空,不可重写 - assertTrue(interceptor.getMappedStatementCache().noRewritable(ms, rules)); - } - - private static class DeptDataPermissionRule implements DataPermissionRule { - - private static final String COLUMN = "dept_id"; - - @Override - public Set getTableNames() { - return SetUtils.asSet("t_user"); - } - - @Override - public Expression getExpression(String tableName, Alias tableAlias) { - Column column = MyBatisUtils.buildColumn(tableName, tableAlias, COLUMN); - LongValue value = new LongValue(100L); - return new EqualsTo(column, value); - } - - } - - private static class EmptyDataPermissionRule implements DataPermissionRule { - - @Override - public Set getTableNames() { - return Collections.emptySet(); - } - - @Override - public Expression getExpression(String tableName, Alias tableAlias) { - return null; - } - - } - -} +//package cn.hangtag.framework.datapermission.core.db; +// +//import cn.hangtag.framework.common.util.collection.SetUtils; +//import cn.hangtag.framework.datapermission.core.rule.DataPermissionRule; +//import cn.hangtag.framework.datapermission.core.rule.DataPermissionRuleFactory; +//import cn.hangtag.framework.mybatis.core.util.MyBatisUtils; +//import cn.hangtag.framework.test.core.ut.BaseMockitoUnitTest; +//import com.baomidou.mybatisplus.core.toolkit.PluginUtils; +//import net.sf.jsqlparser.expression.Alias; +//import net.sf.jsqlparser.expression.Expression; +//import net.sf.jsqlparser.expression.LongValue; +//import net.sf.jsqlparser.expression.operators.relational.EqualsTo; +//import net.sf.jsqlparser.schema.Column; +//import org.apache.ibatis.executor.Executor; +//import org.apache.ibatis.executor.statement.StatementHandler; +//import org.apache.ibatis.mapping.BoundSql; +//import org.apache.ibatis.mapping.MappedStatement; +//import org.junit.jupiter.api.BeforeEach; +//import org.junit.jupiter.api.Test; +//import org.mockito.InjectMocks; +//import org.mockito.Mock; +//import org.mockito.MockedStatic; +// +//import java.sql.Connection; +//import java.util.*; +// +//import static java.util.Collections.singletonList; +//import static org.junit.jupiter.api.Assertions.*; +//import static org.mockito.Mockito.*; +// +///** +// * {@link DataPermissionDatabaseInterceptor} 的单元测试 +// * 主要测试 {@link DataPermissionDatabaseInterceptor#beforePrepare(StatementHandler, Connection, Integer)} +// * 和 {@link DataPermissionDatabaseInterceptor#beforeUpdate(Executor, MappedStatement, Object)} +// * 以及在这个过程中,ContextHolder 和 MappedStatementCache +// * +// * @author 芋道源码 +// */ +//public class DataPermissionDatabaseInterceptorTest extends BaseMockitoUnitTest { +// +// @InjectMocks +// private DataPermissionDatabaseInterceptor interceptor; +// +// @Mock +// private DataPermissionRuleFactory ruleFactory; +// +// @BeforeEach +// public void setUp() { +// // 清理上下文 +// DataPermissionDatabaseInterceptor.ContextHolder.clear(); +// // 清空缓存 +// interceptor.getMappedStatementCache().clear(); +// } +// +// @Test // 不存在规则,且不匹配 +// public void testBeforeQuery_withoutRule() { +// try (MockedStatic pluginUtilsMock = mockStatic(PluginUtils.class)) { +// // 准备参数 +// MappedStatement mappedStatement = mock(MappedStatement.class); +// BoundSql boundSql = mock(BoundSql.class); +// +// // 调用 +// interceptor.beforeQuery(null, mappedStatement, null, null, null, boundSql); +// // 断言 +// pluginUtilsMock.verify(() -> PluginUtils.mpBoundSql(boundSql), never()); +// } +// } +// +// @Test // 存在规则,且不匹配 +// public void testBeforeQuery_withMatchRule() { +// try (MockedStatic pluginUtilsMock = mockStatic(PluginUtils.class)) { +// // 准备参数 +// MappedStatement mappedStatement = mock(MappedStatement.class); +// BoundSql boundSql = mock(BoundSql.class); +// // mock 方法(数据权限) +// when(ruleFactory.getDataPermissionRule(same(mappedStatement.getId()))) +// .thenReturn(singletonList(new DeptDataPermissionRule())); +// // mock 方法(MPBoundSql) +// PluginUtils.MPBoundSql mpBs = mock(PluginUtils.MPBoundSql.class); +// pluginUtilsMock.when(() -> PluginUtils.mpBoundSql(same(boundSql))).thenReturn(mpBs); +// // mock 方法(SQL) +// String sql = "select * from t_user where id = 1"; +// when(mpBs.sql()).thenReturn(sql); +// // 针对 ContextHolder 和 MappedStatementCache 暂时不 mock,主要想校验过程中,数据是否正确 +// +// // 调用 +// interceptor.beforeQuery(null, mappedStatement, null, null, null, boundSql); +// // 断言 +// verify(mpBs, times(1)).sql( +// eq("SELECT * FROM t_user WHERE id = 1 AND t_user.dept_id = 100")); +// // 断言缓存 +// assertTrue(interceptor.getMappedStatementCache().getNoRewritableMappedStatements().isEmpty()); +// } +// } +// +// @Test // 存在规则,但不匹配 +// public void testBeforeQuery_withoutMatchRule() { +// try (MockedStatic pluginUtilsMock = mockStatic(PluginUtils.class)) { +// // 准备参数 +// MappedStatement mappedStatement = mock(MappedStatement.class); +// BoundSql boundSql = mock(BoundSql.class); +// // mock 方法(数据权限) +// when(ruleFactory.getDataPermissionRule(same(mappedStatement.getId()))) +// .thenReturn(singletonList(new DeptDataPermissionRule())); +// // mock 方法(MPBoundSql) +// PluginUtils.MPBoundSql mpBs = mock(PluginUtils.MPBoundSql.class); +// pluginUtilsMock.when(() -> PluginUtils.mpBoundSql(same(boundSql))).thenReturn(mpBs); +// // mock 方法(SQL) +// String sql = "select * from t_role where id = 1"; +// when(mpBs.sql()).thenReturn(sql); +// // 针对 ContextHolder 和 MappedStatementCache 暂时不 mock,主要想校验过程中,数据是否正确 +// +// // 调用 +// interceptor.beforeQuery(null, mappedStatement, null, null, null, boundSql); +// // 断言 +// verify(mpBs, times(1)).sql( +// eq("SELECT * FROM t_role WHERE id = 1")); +// // 断言缓存 +// assertFalse(interceptor.getMappedStatementCache().getNoRewritableMappedStatements().isEmpty()); +// } +// } +// +// @Test +// public void testAddNoRewritable() { +// // 准备参数 +// MappedStatement ms = mock(MappedStatement.class); +// List rules = singletonList(new DeptDataPermissionRule()); +// // mock 方法 +// when(ms.getId()).thenReturn("selectById"); +// +// // 调用 +// interceptor.getMappedStatementCache().addNoRewritable(ms, rules); +// // 断言 +// Map, Set> noRewritableMappedStatements = +// interceptor.getMappedStatementCache().getNoRewritableMappedStatements(); +// assertEquals(1, noRewritableMappedStatements.size()); +// assertEquals(SetUtils.asSet("selectById"), noRewritableMappedStatements.get(DeptDataPermissionRule.class)); +// } +// +// @Test +// public void testNoRewritable() { +// // 准备参数 +// MappedStatement ms = mock(MappedStatement.class); +// // mock 方法 +// when(ms.getId()).thenReturn("selectById"); +// // mock 数据 +// List rules = singletonList(new DeptDataPermissionRule()); +// interceptor.getMappedStatementCache().addNoRewritable(ms, rules); +// +// // 场景一,rules 为空 +// assertTrue(interceptor.getMappedStatementCache().noRewritable(ms, null)); +// // 场景二,rules 非空,可重写 +// assertFalse(interceptor.getMappedStatementCache().noRewritable(ms, singletonList(new EmptyDataPermissionRule()))); +// // 场景三,rule 非空,不可重写 +// assertTrue(interceptor.getMappedStatementCache().noRewritable(ms, rules)); +// } +// +// private static class DeptDataPermissionRule implements DataPermissionRule { +// +// private static final String COLUMN = "dept_id"; +// +// @Override +// public Set getTableNames() { +// return SetUtils.asSet("t_user"); +// } +// +// @Override +// public Expression getExpression(String tableName, Alias tableAlias) { +// Column column = MyBatisUtils.buildColumn(tableName, tableAlias, COLUMN); +// LongValue value = new LongValue(100L); +// return new EqualsTo(column, value); +// } +// +// } +// +// private static class EmptyDataPermissionRule implements DataPermissionRule { +// +// @Override +// public Set getTableNames() { +// return Collections.emptySet(); +// } +// +// @Override +// public Expression getExpression(String tableName, Alias tableAlias) { +// return null; +// } +// +// } +// +//} diff --git a/hangtag-framework/hangtag-spring-boot-starter-excel/src/test/java/cn/hangtag/framework/dict/core/util/DictFrameworkUtilsTest.java b/hangtag-framework/hangtag-spring-boot-starter-excel/src/test/java/cn/hangtag/framework/dict/core/util/DictFrameworkUtilsTest.java index 94244c9..b223331 100644 --- a/hangtag-framework/hangtag-spring-boot-starter-excel/src/test/java/cn/hangtag/framework/dict/core/util/DictFrameworkUtilsTest.java +++ b/hangtag-framework/hangtag-spring-boot-starter-excel/src/test/java/cn/hangtag/framework/dict/core/util/DictFrameworkUtilsTest.java @@ -1,51 +1,50 @@ -package cn.hangtag.framework.dict.core.util; - -import cn.hangtag.framework.common.enums.CommonStatusEnum; -import cn.hangtag.framework.dict.core.DictFrameworkUtils; -import cn.hangtag.framework.test.core.ut.BaseMockitoUnitTest; -import cn.hangtag.module.system.api.dict.DictDataApi; -import cn.hangtag.module.system.api.dict.dto.DictDataRespDTO; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.Mock; - -import static cn.hangtag.framework.test.core.util.RandomUtils.randomPojo; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.mockito.Mockito.when; - -/** - * {@link DictFrameworkUtils} 的单元测试 - */ -public class DictFrameworkUtilsTest extends BaseMockitoUnitTest { - - @Mock - private DictDataApi dictDataApi; - - @BeforeEach - public void setUp() { - DictFrameworkUtils.init(dictDataApi); - } - - @Test - public void testGetDictDataLabel() { - // mock 数据 - DictDataRespDTO dataRespDTO = randomPojo(DictDataRespDTO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); - // mock 方法 - when(dictDataApi.getDictData(dataRespDTO.getDictType(), dataRespDTO.getValue())).thenReturn(dataRespDTO); - - // 断言返回值 - assertEquals(dataRespDTO.getLabel(), DictFrameworkUtils.getDictDataLabel(dataRespDTO.getDictType(), dataRespDTO.getValue())); - } - - @Test - public void testParseDictDataValue() { - // mock 数据 - DictDataRespDTO resp = randomPojo(DictDataRespDTO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); - // mock 方法 - when(dictDataApi.parseDictData(resp.getDictType(), resp.getLabel())).thenReturn(resp); - - // 断言返回值 - assertEquals(resp.getValue(), DictFrameworkUtils.parseDictDataValue(resp.getDictType(), resp.getLabel())); - } - -} +//package cn.hangtag.framework.dict.core.util; +// +//import cn.hangtag.framework.common.enums.CommonStatusEnum; +//import cn.hangtag.framework.dict.core.DictFrameworkUtils; +//import cn.hangtag.module.system.api.dict.DictDataApi; +//import cn.hangtag.module.system.api.dict.dto.DictDataRespDTO; +//import org.junit.jupiter.api.BeforeEach; +//import org.junit.jupiter.api.Test; +//import org.mockito.Mock; +// +//import static cn.hangtag.framework.test.core.util.RandomUtils.randomPojo; +//import static org.junit.jupiter.api.Assertions.assertEquals; +//import static org.mockito.Mockito.when; +// +///** +// * {@link DictFrameworkUtils} 的单元测试 +// */ +//public class DictFrameworkUtilsTest extends BaseMockitoUnitTest { +// +// @Mock +// private DictDataApi dictDataApi; +// +// @BeforeEach +// public void setUp() { +// DictFrameworkUtils.init(dictDataApi); +// } +// +// @Test +// public void testGetDictDataLabel() { +// // mock 数据 +// DictDataRespDTO dataRespDTO = randomPojo(DictDataRespDTO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); +// // mock 方法 +// when(dictDataApi.getDictData(dataRespDTO.getDictType(), dataRespDTO.getValue())).thenReturn(dataRespDTO); +// +// // 断言返回值 +// assertEquals(dataRespDTO.getLabel(), DictFrameworkUtils.getDictDataLabel(dataRespDTO.getDictType(), dataRespDTO.getValue())); +// } +// +// @Test +// public void testParseDictDataValue() { +// // mock 数据 +// DictDataRespDTO resp = randomPojo(DictDataRespDTO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); +// // mock 方法 +// when(dictDataApi.parseDictData(resp.getDictType(), resp.getLabel())).thenReturn(resp); +// +// // 断言返回值 +// assertEquals(resp.getValue(), DictFrameworkUtils.parseDictDataValue(resp.getDictType(), resp.getLabel())); +// } +// +//} diff --git a/hangtag-framework/hangtag-spring-boot-starter-mybatis/.flattened-pom.xml b/hangtag-framework/hangtag-spring-boot-starter-mybatis/.flattened-pom.xml index 2dbfe45..70e8a08 100644 --- a/hangtag-framework/hangtag-spring-boot-starter-mybatis/.flattened-pom.xml +++ b/hangtag-framework/hangtag-spring-boot-starter-mybatis/.flattened-pom.xml @@ -1,75 +1,75 @@ - - - 4.0.0 - - cn.hangtag - hangtag-framework - 2.1.0-jdk8-snapshot - - cn.hangtag - hangtag-spring-boot-starter-mybatis - 2.1.0-jdk8-snapshot - ${project.artifactId} - 数据库连接池、多数据源、事务、MyBatis 拓展 - https://github.com/YunaiV/ruoyi-vue-pro - - - cn.hangtag - hangtag-common - - - cn.hangtag - hangtag-spring-boot-starter-web - provided - - - com.mysql - mysql-connector-j - - - com.oracle.database.jdbc - ojdbc8 - true - - - org.postgresql - postgresql - true - - - com.microsoft.sqlserver - mssql-jdbc - true - - - com.dameng - DmJdbcDriver18 - true - - - com.alibaba - druid-spring-boot-starter - - - com.baomidou - mybatis-plus-boot-starter - - - com.baomidou - dynamic-datasource-spring-boot-starter - - - com.github.yulichang - mybatis-plus-join-boot-starter - - - com.fhs-opensource - easy-trans-spring-boot-starter - - - com.fhs-opensource - easy-trans-mybatis-plus-extend - - - + + + 4.0.0 + + cn.hangtag + hangtag-framework + 2.1.0-jdk8-snapshot + + cn.hangtag + hangtag-spring-boot-starter-mybatis + 2.1.0-jdk8-snapshot + ${project.artifactId} + 数据库连接池、多数据源、事务、MyBatis 拓展 + https://github.com/YunaiV/ruoyi-vue-pro + + + cn.hangtag + hangtag-common + + + cn.hangtag + hangtag-spring-boot-starter-web + provided + + + com.mysql + mysql-connector-j + + + com.oracle.database.jdbc + ojdbc8 + true + + + org.postgresql + postgresql + true + + + com.microsoft.sqlserver + mssql-jdbc + true + + + com.dameng + DmJdbcDriver18 + true + + + com.alibaba + druid-spring-boot-starter + + + com.baomidou + mybatis-plus-boot-starter + + + com.baomidou + dynamic-datasource-spring-boot-starter + + + com.github.yulichang + mybatis-plus-join-boot-starter + + + com.fhs-opensource + easy-trans-spring-boot-starter + + + com.fhs-opensource + easy-trans-mybatis-plus-extend + + + diff --git a/hangtag-framework/hangtag-spring-boot-starter-redis/.flattened-pom.xml b/hangtag-framework/hangtag-spring-boot-starter-redis/.flattened-pom.xml index 88432cb..4c15b0a 100644 --- a/hangtag-framework/hangtag-spring-boot-starter-redis/.flattened-pom.xml +++ b/hangtag-framework/hangtag-spring-boot-starter-redis/.flattened-pom.xml @@ -1,34 +1,34 @@ - - - 4.0.0 - - cn.hangtag - hangtag-framework - 2.1.0-jdk8-snapshot - - cn.hangtag - hangtag-spring-boot-starter-redis - 2.1.0-jdk8-snapshot - ${project.artifactId} - Redis 封装拓展 - https://github.com/YunaiV/ruoyi-vue-pro - - - cn.hangtag - hangtag-common - - - org.redisson - redisson-spring-boot-starter - - - org.springframework.boot - spring-boot-starter-cache - - - com.fasterxml.jackson.datatype - jackson-datatype-jsr310 - - - + + + 4.0.0 + + cn.hangtag + hangtag-framework + 2.1.0-jdk8-snapshot + + cn.hangtag + hangtag-spring-boot-starter-redis + 2.1.0-jdk8-snapshot + ${project.artifactId} + Redis 封装拓展 + https://github.com/YunaiV/ruoyi-vue-pro + + + cn.hangtag + hangtag-common + + + org.redisson + redisson-spring-boot-starter + + + org.springframework.boot + spring-boot-starter-cache + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + + + diff --git a/hangtag-framework/hangtag-spring-boot-starter-security/.flattened-pom.xml b/hangtag-framework/hangtag-spring-boot-starter-security/.flattened-pom.xml index 376e654..8a017d4 100644 --- a/hangtag-framework/hangtag-spring-boot-starter-security/.flattened-pom.xml +++ b/hangtag-framework/hangtag-spring-boot-starter-security/.flattened-pom.xml @@ -1,53 +1,53 @@ - - - 4.0.0 - - cn.hangtag - hangtag-framework - 2.1.0-jdk8-snapshot - - cn.hangtag - hangtag-spring-boot-starter-security - 2.1.0-jdk8-snapshot - ${project.artifactId} - 1. security:用户的认证、权限的校验,实现「谁」可以做「什么事」 - 2. operatelog:操作日志,实现「谁」在「什么时间」对「什么」做了「什么事」 - https://github.com/YunaiV/ruoyi-vue-pro - - - cn.hangtag - hangtag-common - - - org.springframework.boot - spring-boot-starter-aop - - - cn.hangtag - hangtag-spring-boot-starter-web - - - org.springframework.boot - spring-boot-configuration-processor - true - - - org.springframework.boot - spring-boot-starter-security - - - com.google.guava - guava - - - io.github.mouzt - bizlog-sdk - - - cn.hangtag - hangtag-module-system-api - ${revision} - - - + + + 4.0.0 + + cn.hangtag + hangtag-framework + 2.1.0-jdk8-snapshot + + cn.hangtag + hangtag-spring-boot-starter-security + 2.1.0-jdk8-snapshot + ${project.artifactId} + 1. security:用户的认证、权限的校验,实现「谁」可以做「什么事」 + 2. operatelog:操作日志,实现「谁」在「什么时间」对「什么」做了「什么事」 + https://github.com/YunaiV/ruoyi-vue-pro + + + cn.hangtag + hangtag-common + + + org.springframework.boot + spring-boot-starter-aop + + + cn.hangtag + hangtag-spring-boot-starter-web + + + org.springframework.boot + spring-boot-configuration-processor + true + + + org.springframework.boot + spring-boot-starter-security + + + com.google.guava + guava + + + io.github.mouzt + bizlog-sdk + + + cn.hangtag + hangtag-module-system-api + ${revision} + + + diff --git a/hangtag-framework/hangtag-spring-boot-starter-web/.flattened-pom.xml b/hangtag-framework/hangtag-spring-boot-starter-web/.flattened-pom.xml index b9082bc..db34a29 100644 --- a/hangtag-framework/hangtag-spring-boot-starter-web/.flattened-pom.xml +++ b/hangtag-framework/hangtag-spring-boot-starter-web/.flattened-pom.xml @@ -1,68 +1,68 @@ - - - 4.0.0 - - cn.hangtag - hangtag-framework - 2.1.0-jdk8-snapshot - - cn.hangtag - hangtag-spring-boot-starter-web - 2.1.0-jdk8-snapshot - ${project.artifactId} - Web 框架,全局异常、API 日志、脱敏、错误码等 - https://github.com/YunaiV/ruoyi-vue-pro - - - cn.hangtag - hangtag-common - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-configuration-processor - true - - - com.github.xiaoymin - knife4j-openapi3-spring-boot-starter - - - org.springdoc - springdoc-openapi-ui - - - org.springframework.security - spring-security-core - provided - - - cn.hangtag - hangtag-module-infra-api - ${revision} - - - cn.hangtag - hangtag-module-system-api - ${revision} - - - org.jsoup - jsoup - - - org.springframework.boot - spring-boot-starter-test - test - - - org.mockito - mockito-inline - test - - - + + + 4.0.0 + + cn.hangtag + hangtag-framework + 2.1.0-jdk8-snapshot + + cn.hangtag + hangtag-spring-boot-starter-web + 2.1.0-jdk8-snapshot + ${project.artifactId} + Web 框架,全局异常、API 日志、脱敏、错误码等 + https://github.com/YunaiV/ruoyi-vue-pro + + + cn.hangtag + hangtag-common + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-configuration-processor + true + + + com.github.xiaoymin + knife4j-openapi3-spring-boot-starter + + + org.springdoc + springdoc-openapi-ui + + + org.springframework.security + spring-security-core + provided + + + cn.hangtag + hangtag-module-infra-api + ${revision} + + + cn.hangtag + hangtag-module-system-api + ${revision} + + + org.jsoup + jsoup + + + org.springframework.boot + spring-boot-starter-test + test + + + org.mockito + mockito-inline + test + + + diff --git a/hangtag-module-infra/.flattened-pom.xml b/hangtag-module-infra/.flattened-pom.xml index d56de3b..59b5806 100644 --- a/hangtag-module-infra/.flattened-pom.xml +++ b/hangtag-module-infra/.flattened-pom.xml @@ -1,22 +1,22 @@ - - - 4.0.0 - - cn.hangtag - hangtag - 2.1.0-jdk8-snapshot - - cn.hangtag - hangtag-module-infra - 2.1.0-jdk8-snapshot - pom - ${project.artifactId} - infra 模块,主要提供两块能力: - 1. 我们放基础设施的运维与管理,支撑上层的通用与核心业务。 例如说:定时任务的管理、服务器的信息等等 - 2. 研发工具,提升研发效率与质量。 例如说:代码生成器、接口文档等等 - - hangtag-module-infra-api - hangtag-module-infra-biz - - + + + 4.0.0 + + cn.hangtag + hangtag + 2.1.0-jdk8-snapshot + + cn.hangtag + hangtag-module-infra + 2.1.0-jdk8-snapshot + pom + ${project.artifactId} + infra 模块,主要提供两块能力: + 1. 我们放基础设施的运维与管理,支撑上层的通用与核心业务。 例如说:定时任务的管理、服务器的信息等等 + 2. 研发工具,提升研发效率与质量。 例如说:代码生成器、接口文档等等 + + hangtag-module-infra-api + hangtag-module-infra-biz + + diff --git a/hangtag-module-infra/hangtag-module-infra-api/.flattened-pom.xml b/hangtag-module-infra/hangtag-module-infra-api/.flattened-pom.xml index aea6350..87703c9 100644 --- a/hangtag-module-infra/hangtag-module-infra-api/.flattened-pom.xml +++ b/hangtag-module-infra/hangtag-module-infra-api/.flattened-pom.xml @@ -1,26 +1,26 @@ - - - 4.0.0 - - cn.hangtag - hangtag-module-infra - 2.1.0-jdk8-snapshot - - cn.hangtag - hangtag-module-infra-api - 2.1.0-jdk8-snapshot - ${project.artifactId} - infra 模块 API,暴露给其它模块调用 - - - cn.hangtag - hangtag-common - - - org.springframework.boot - spring-boot-starter-validation - true - - - + + + 4.0.0 + + cn.hangtag + hangtag-module-infra + 2.1.0-jdk8-snapshot + + cn.hangtag + hangtag-module-infra-api + 2.1.0-jdk8-snapshot + ${project.artifactId} + infra 模块 API,暴露给其它模块调用 + + + cn.hangtag + hangtag-common + + + org.springframework.boot + spring-boot-starter-validation + true + + + diff --git a/hangtag-module-system/.flattened-pom.xml b/hangtag-module-system/.flattened-pom.xml index 140afb4..8c54891 100644 --- a/hangtag-module-system/.flattened-pom.xml +++ b/hangtag-module-system/.flattened-pom.xml @@ -1,21 +1,21 @@ - - - 4.0.0 - - cn.hangtag - hangtag - 2.1.0-jdk8-snapshot - - cn.hangtag - hangtag-module-system - 2.1.0-jdk8-snapshot - pom - ${project.artifactId} - system 模块下,我们放通用业务,支撑上层的核心业务。 - 例如说:用户、部门、权限、数据字典等等 - - hangtag-module-system-api - hangtag-module-system-biz - - + + + 4.0.0 + + cn.hangtag + hangtag + 2.1.0-jdk8-snapshot + + cn.hangtag + hangtag-module-system + 2.1.0-jdk8-snapshot + pom + ${project.artifactId} + system 模块下,我们放通用业务,支撑上层的核心业务。 + 例如说:用户、部门、权限、数据字典等等 + + hangtag-module-system-api + hangtag-module-system-biz + + diff --git a/hangtag-module-system/hangtag-module-system-api/.flattened-pom.xml b/hangtag-module-system/hangtag-module-system-api/.flattened-pom.xml index 5bc7302..3577b43 100644 --- a/hangtag-module-system/hangtag-module-system-api/.flattened-pom.xml +++ b/hangtag-module-system/hangtag-module-system-api/.flattened-pom.xml @@ -1,26 +1,26 @@ - - - 4.0.0 - - cn.hangtag - hangtag-module-system - 2.1.0-jdk8-snapshot - - cn.hangtag - hangtag-module-system-api - 2.1.0-jdk8-snapshot - ${project.artifactId} - system 模块 API,暴露给其它模块调用 - - - cn.hangtag - hangtag-common - - - org.springframework.boot - spring-boot-starter-validation - true - - - + + + 4.0.0 + + cn.hangtag + hangtag-module-system + 2.1.0-jdk8-snapshot + + cn.hangtag + hangtag-module-system-api + 2.1.0-jdk8-snapshot + ${project.artifactId} + system 模块 API,暴露给其它模块调用 + + + cn.hangtag + hangtag-common + + + org.springframework.boot + spring-boot-starter-validation + true + + + diff --git a/hangtag-ui/hangtag-ui-admin/src/views/oms/produceorder/ProduceOrderForm.vue b/hangtag-ui/hangtag-ui-admin/src/views/oms/produceorder/ProduceOrderForm.vue index f45b09a..e0cb5e7 100644 --- a/hangtag-ui/hangtag-ui-admin/src/views/oms/produceorder/ProduceOrderForm.vue +++ b/hangtag-ui/hangtag-ui-admin/src/views/oms/produceorder/ProduceOrderForm.vue @@ -159,7 +159,7 @@ - +