1. 统一包名修改
This commit is contained in:
@@ -5,7 +5,7 @@ import com.zt.plat.framework.apilog.core.interceptor.ApiAccessLogInterceptor;
|
||||
import com.zt.plat.framework.common.biz.infra.logger.ApiAccessLogCommonApi;
|
||||
import com.zt.plat.framework.common.enums.WebFilterOrderEnum;
|
||||
import com.zt.plat.framework.web.config.WebProperties;
|
||||
import com.zt.plat.framework.web.config.CloudWebAutoConfiguration;
|
||||
import com.zt.plat.framework.web.config.ZtWebAutoConfiguration;
|
||||
import jakarta.servlet.Filter;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||
@@ -15,14 +15,14 @@ import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
@AutoConfiguration(after = CloudWebAutoConfiguration.class)
|
||||
public class CloudApiLogAutoConfiguration implements WebMvcConfigurer {
|
||||
@AutoConfiguration(after = ZtWebAutoConfiguration.class)
|
||||
public class ZtApiLogAutoConfiguration implements WebMvcConfigurer {
|
||||
|
||||
/**
|
||||
* 创建 ApiAccessLogFilter Bean,记录 API 请求日志
|
||||
*/
|
||||
@Bean
|
||||
@ConditionalOnProperty(prefix = "cloud.access-log", value = "enable", matchIfMissing = true) // 允许使用 cloud.access-log.enable=false 禁用访问日志
|
||||
@ConditionalOnProperty(prefix = "zt.access-log", value = "enable", matchIfMissing = true) // 允许使用 zt.access-log.enable=false 禁用访问日志
|
||||
public FilterRegistrationBean<ApiAccessLogFilter> apiAccessLogFilter(WebProperties webProperties,
|
||||
@Value("${spring.application.name}") String applicationName,
|
||||
ApiAccessLogCommonApi apiAccessLogApi) {
|
||||
@@ -12,5 +12,5 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||
*/
|
||||
@AutoConfiguration
|
||||
@EnableFeignClients(clients = {ApiAccessLogCommonApi.class, ApiErrorLogCommonApi.class}) // 主要是引入相关的 API 服务
|
||||
public class CloudApiLogRpcAutoConfiguration {
|
||||
public class ZtApiLogRpcAutoConfiguration {
|
||||
}
|
||||
@@ -10,7 +10,7 @@ import org.springframework.context.annotation.Bean;
|
||||
* @author ZT
|
||||
*/
|
||||
@AutoConfiguration
|
||||
public class CloudBannerAutoConfiguration {
|
||||
public class ZtBannerAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
public BannerApplicationRunner bannerApplicationRunner() {
|
||||
@@ -28,15 +28,15 @@ public class BannerApplicationRunner implements ApplicationRunner {
|
||||
"http://172.16.46.63:30888");
|
||||
|
||||
// 数据报表
|
||||
System.out.println("[报表模块 cloud-module-report 教程][参考 http://172.16.46.63:30888/report/ 开启]");
|
||||
System.out.println("[报表模块 zt-module-report 教程][参考 http://172.16.46.63:30888/report/ 开启]");
|
||||
// 工作流
|
||||
System.out.println("[工作流模块 cloud-module-bpm 教程][参考 http://172.16.46.63:30888/bpm/ 开启]");
|
||||
System.out.println("[工作流模块 zt-module-bpm 教程][参考 http://172.16.46.63:30888/bpm/ 开启]");
|
||||
|
||||
// 微信公众号
|
||||
System.out.println("[微信公众号 cloud-module-mp 教程][参考 http://172.16.46.63:30888/mp/build/ 开启]");
|
||||
System.out.println("[微信公众号 zt-module-mp 教程][参考 http://172.16.46.63:30888/mp/build/ 开启]");
|
||||
|
||||
// AI 大模型
|
||||
System.out.println("[AI 大模型 cloud-module-ai - 教程][参考 http://172.16.46.63:30888/ai/build/ 开启]");
|
||||
System.out.println("[AI 大模型 zt-module-ai - 教程][参考 http://172.16.46.63:30888/ai/build/ 开启]");
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ import java.util.List;
|
||||
|
||||
@AutoConfiguration
|
||||
@Slf4j
|
||||
public class CloudJacksonAutoConfiguration {
|
||||
public class ZtJacksonAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
@SuppressWarnings("InstantiationOfUtilityClass")
|
||||
@@ -10,7 +10,7 @@ import jakarta.validation.constraints.NotEmpty;
|
||||
*
|
||||
* @author ZT
|
||||
*/
|
||||
@ConfigurationProperties("cloud.swagger")
|
||||
@ConfigurationProperties("zt.swagger")
|
||||
@Data
|
||||
public class SwaggerProperties {
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ import static com.zt.plat.framework.web.core.util.WebFrameworkUtils.HEADER_TENAN
|
||||
@ConditionalOnClass({OpenAPI.class})
|
||||
@EnableConfigurationProperties(SwaggerProperties.class)
|
||||
@ConditionalOnProperty(prefix = "springdoc.api-docs", name = "enabled", havingValue = "true", matchIfMissing = true) // 设置为 false 时,禁用
|
||||
public class CloudSwaggerAutoConfiguration {
|
||||
public class ZtSwaggerAutoConfiguration {
|
||||
|
||||
// ========== 全局 OpenAPI 配置 ==========
|
||||
|
||||
@@ -11,7 +11,7 @@ import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
@ConfigurationProperties(prefix = "cloud.web")
|
||||
@ConfigurationProperties(prefix = "zt.web")
|
||||
@Validated
|
||||
@Data
|
||||
public class WebProperties {
|
||||
@@ -37,7 +37,7 @@ public class WebProperties {
|
||||
* 意义:通过该前缀,避免 Swagger、Actuator 意外通过 Nginx 暴露出来给外部,带来安全性问题
|
||||
* 这样,Nginx 只需要配置转发到 /api/* 的所有接口即可。
|
||||
*
|
||||
* @see CloudWebAutoConfiguration#configurePathMatch(PathMatchConfigurer)
|
||||
* @see ZtWebAutoConfiguration#configurePathMatch(PathMatchConfigurer)
|
||||
*/
|
||||
@NotEmpty(message = "API 前缀不能为空")
|
||||
private String prefix;
|
||||
|
||||
@@ -30,7 +30,7 @@ import jakarta.servlet.Filter;
|
||||
|
||||
@AutoConfiguration
|
||||
@EnableConfigurationProperties(WebProperties.class)
|
||||
public class CloudWebAutoConfiguration implements WebMvcConfigurer {
|
||||
public class ZtWebAutoConfiguration implements WebMvcConfigurer {
|
||||
|
||||
@Resource
|
||||
private WebProperties webProperties;
|
||||
@@ -106,7 +106,7 @@ public class CloudWebAutoConfiguration implements WebMvcConfigurer {
|
||||
* 创建 DemoFilter Bean,演示模式
|
||||
*/
|
||||
@Bean
|
||||
@ConditionalOnProperty(value = "cloud.demo", havingValue = "true")
|
||||
@ConditionalOnProperty(value = "zt.demo", havingValue = "true")
|
||||
public FilterRegistrationBean<DemoFilter> demoFilter() {
|
||||
return createFilterBean(new DemoFilter(), WebFilterOrderEnum.DEMO_FILTER);
|
||||
}
|
||||
@@ -349,57 +349,57 @@ public class GlobalExceptionHandler {
|
||||
}
|
||||
// 1. 数据报表
|
||||
if (message.contains("report_")) {
|
||||
log.error("[报表模块 cloud-module-report - 表结构未导入][参考 http://172.16.46.63:30888/report/ 开启]");
|
||||
log.error("[报表模块 zt-module-report - 表结构未导入][参考 http://172.16.46.63:30888/report/ 开启]");
|
||||
return CommonResult.error(NOT_IMPLEMENTED.getCode(),
|
||||
"[报表模块 cloud-module-report - 表结构未导入][参考 http://172.16.46.63:30888/report/ 开启]");
|
||||
"[报表模块 zt-module-report - 表结构未导入][参考 http://172.16.46.63:30888/report/ 开启]");
|
||||
}
|
||||
// 2. 工作流
|
||||
if (message.contains("bpm_")) {
|
||||
log.error("[工作流模块 cloud-module-bpm - 表结构未导入][参考 http://172.16.46.63:30888/bpm/ 开启]");
|
||||
log.error("[工作流模块 zt-module-bpm - 表结构未导入][参考 http://172.16.46.63:30888/bpm/ 开启]");
|
||||
return CommonResult.error(NOT_IMPLEMENTED.getCode(),
|
||||
"[工作流模块 cloud-module-bpm - 表结构未导入][参考 http://172.16.46.63:30888/bpm/ 开启]");
|
||||
"[工作流模块 zt-module-bpm - 表结构未导入][参考 http://172.16.46.63:30888/bpm/ 开启]");
|
||||
}
|
||||
// 3. 微信公众号
|
||||
if (message.contains("mp_")) {
|
||||
log.error("[微信公众号 cloud-module-mp - 表结构未导入][参考 http://172.16.46.63:30888/mp/build/ 开启]");
|
||||
log.error("[微信公众号 zt-module-mp - 表结构未导入][参考 http://172.16.46.63:30888/mp/build/ 开启]");
|
||||
return CommonResult.error(NOT_IMPLEMENTED.getCode(),
|
||||
"[微信公众号 cloud-module-mp - 表结构未导入][参考 http://172.16.46.63:30888/mp/build/ 开启]");
|
||||
"[微信公众号 zt-module-mp - 表结构未导入][参考 http://172.16.46.63:30888/mp/build/ 开启]");
|
||||
}
|
||||
// 4. 商城系统
|
||||
if (StrUtil.containsAny(message, "product_", "promotion_", "trade_")) {
|
||||
log.error("[商城系统 cloud-module-mall - 已禁用][参考 http://172.16.46.63:30888/mall/build/ 开启]");
|
||||
log.error("[商城系统 zt-module-mall - 已禁用][参考 http://172.16.46.63:30888/mall/build/ 开启]");
|
||||
return CommonResult.error(NOT_IMPLEMENTED.getCode(),
|
||||
"[商城系统 cloud-module-mall - 已禁用][参考 http://172.16.46.63:30888/mall/build/ 开启]");
|
||||
"[商城系统 zt-module-mall - 已禁用][参考 http://172.16.46.63:30888/mall/build/ 开启]");
|
||||
}
|
||||
// 5. ERP 系统
|
||||
if (message.contains("erp_")) {
|
||||
log.error("[ERP 系统 cloud-module-erp - 表结构未导入][参考 http://172.16.46.63:30888/erp/build/ 开启]");
|
||||
log.error("[ERP 系统 zt-module-erp - 表结构未导入][参考 http://172.16.46.63:30888/erp/build/ 开启]");
|
||||
return CommonResult.error(NOT_IMPLEMENTED.getCode(),
|
||||
"[ERP 系统 cloud-module-erp - 表结构未导入][参考 http://172.16.46.63:30888/erp/build/ 开启]");
|
||||
"[ERP 系统 zt-module-erp - 表结构未导入][参考 http://172.16.46.63:30888/erp/build/ 开启]");
|
||||
}
|
||||
// 6. CRM 系统
|
||||
if (message.contains("crm_")) {
|
||||
log.error("[CRM 系统 cloud-module-crm - 表结构未导入][参考 http://172.16.46.63:30888/crm/build/ 开启]");
|
||||
log.error("[CRM 系统 zt-module-crm - 表结构未导入][参考 http://172.16.46.63:30888/crm/build/ 开启]");
|
||||
return CommonResult.error(NOT_IMPLEMENTED.getCode(),
|
||||
"[CRM 系统 cloud-module-crm - 表结构未导入][参考 http://172.16.46.63:30888/crm/build/ 开启]");
|
||||
"[CRM 系统 zt-module-crm - 表结构未导入][参考 http://172.16.46.63:30888/crm/build/ 开启]");
|
||||
}
|
||||
// 7. 支付平台
|
||||
if (message.contains("pay_")) {
|
||||
log.error("[支付模块 cloud-module-pay - 表结构未导入][参考 http://172.16.46.63:30888/pay/build/ 开启]");
|
||||
log.error("[支付模块 zt-module-pay - 表结构未导入][参考 http://172.16.46.63:30888/pay/build/ 开启]");
|
||||
return CommonResult.error(NOT_IMPLEMENTED.getCode(),
|
||||
"[支付模块 cloud-module-pay - 表结构未导入][参考 http://172.16.46.63:30888/pay/build/ 开启]");
|
||||
"[支付模块 zt-module-pay - 表结构未导入][参考 http://172.16.46.63:30888/pay/build/ 开启]");
|
||||
}
|
||||
// 8. AI 大模型
|
||||
if (message.contains("ai_")) {
|
||||
log.error("[AI 大模型 cloud-module-ai - 表结构未导入][参考 http://172.16.46.63:30888/ai/build/ 开启]");
|
||||
log.error("[AI 大模型 zt-module-ai - 表结构未导入][参考 http://172.16.46.63:30888/ai/build/ 开启]");
|
||||
return CommonResult.error(NOT_IMPLEMENTED.getCode(),
|
||||
"[AI 大模型 cloud-module-ai - 表结构未导入][参考 http://172.16.46.63:30888/ai/build/ 开启]");
|
||||
"[AI 大模型 zt-module-ai - 表结构未导入][参考 http://172.16.46.63:30888/ai/build/ 开启]");
|
||||
}
|
||||
// 9. IOT 物联网
|
||||
if (message.contains("iot_")) {
|
||||
log.error("[IoT 物联网 cloud-module-iot - 表结构未导入][参考 https://doc.iocoder.cn/iot/build/ 开启]");
|
||||
log.error("[IoT 物联网 zt-module-iot - 表结构未导入][参考 https://doc.iocoder.cn/iot/build/ 开启]");
|
||||
return CommonResult.error(NOT_IMPLEMENTED.getCode(),
|
||||
"[IoT 物联网 cloud-module-iot - 表结构未导入][参考 https://doc.iocoder.cn/iot/build/ 开启]");
|
||||
"[IoT 物联网 zt-module-iot - 表结构未导入][参考 https://doc.iocoder.cn/iot/build/ 开启]");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ import java.util.List;
|
||||
*
|
||||
* @author ZT
|
||||
*/
|
||||
@ConfigurationProperties(prefix = "cloud.xss")
|
||||
@ConfigurationProperties(prefix = "zt.xss")
|
||||
@Validated
|
||||
@Data
|
||||
public class XssProperties {
|
||||
|
||||
@@ -17,12 +17,12 @@ import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.util.PathMatcher;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
import static com.zt.plat.framework.web.config.CloudWebAutoConfiguration.createFilterBean;
|
||||
import static com.zt.plat.framework.web.config.ZtWebAutoConfiguration.createFilterBean;
|
||||
|
||||
@AutoConfiguration
|
||||
@EnableConfigurationProperties(XssProperties.class)
|
||||
@ConditionalOnProperty(prefix = "cloud.xss", name = "enable", havingValue = "true", matchIfMissing = true) // 设置为 false 时,禁用
|
||||
public class CloudXssAutoConfiguration implements WebMvcConfigurer {
|
||||
@ConditionalOnProperty(prefix = "zt.xss", name = "enable", havingValue = "true", matchIfMissing = true) // 设置为 false 时,禁用
|
||||
public class ZtXssAutoConfiguration implements WebMvcConfigurer {
|
||||
|
||||
/**
|
||||
* Xss 清理者
|
||||
@@ -43,7 +43,7 @@ public class CloudXssAutoConfiguration implements WebMvcConfigurer {
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(name = "xssJacksonCustomizer")
|
||||
@ConditionalOnBean(ObjectMapper.class)
|
||||
@ConditionalOnProperty(value = "cloud.xss.enable", havingValue = "true")
|
||||
@ConditionalOnProperty(value = "zt.xss.enable", havingValue = "true")
|
||||
public Jackson2ObjectMapperBuilderCustomizer xssJacksonCustomizer(XssProperties properties,
|
||||
PathMatcher pathMatcher,
|
||||
XssCleaner xssCleaner) {
|
||||
@@ -1,6 +1,6 @@
|
||||
com.zt.plat.framework.apilog.config.CloudApiLogAutoConfiguration
|
||||
com.zt.plat.framework.jackson.config.CloudJacksonAutoConfiguration
|
||||
com.zt.plat.framework.swagger.config.CloudSwaggerAutoConfiguration
|
||||
com.zt.plat.framework.web.config.CloudWebAutoConfiguration
|
||||
com.zt.plat.framework.apilog.config.CloudApiLogRpcAutoConfiguration
|
||||
com.zt.plat.framework.banner.config.CloudBannerAutoConfiguration
|
||||
com.zt.plat.framework.apilog.config.ZtApiLogAutoConfiguration
|
||||
com.zt.plat.framework.jackson.config.ZtJacksonAutoConfiguration
|
||||
com.zt.plat.framework.swagger.config.ZtSwaggerAutoConfiguration
|
||||
com.zt.plat.framework.web.config.ZtWebAutoConfiguration
|
||||
com.zt.plat.framework.apilog.config.ZtApiLogRpcAutoConfiguration
|
||||
com.zt.plat.framework.banner.config.ZtBannerAutoConfiguration
|
||||
@@ -1,5 +1,5 @@
|
||||
参考文档 http://172.16.46.63:30888/
|
||||
Application Version: ${cloud.info.version}
|
||||
Application Version: ${zt.info.version}
|
||||
Spring Boot Version: ${spring-boot.version}
|
||||
|
||||
.__ __. ______ .______ __ __ _______
|
||||
|
||||
@@ -29,7 +29,7 @@ public class DesensitizeTest {
|
||||
public void test() {
|
||||
// 准备参数
|
||||
DesensitizeDemo desensitizeDemo = new DesensitizeDemo();
|
||||
desensitizeDemo.setNickname("ZT源码");
|
||||
desensitizeDemo.setNickname("芋道源码");
|
||||
desensitizeDemo.setBankCard("9988002866797031");
|
||||
desensitizeDemo.setCarLicense("粤A66666");
|
||||
desensitizeDemo.setFixedPhone("01086551122");
|
||||
@@ -40,9 +40,9 @@ public class DesensitizeTest {
|
||||
desensitizeDemo.setSlider2("ABCDEFG");
|
||||
desensitizeDemo.setSlider3("ABCDEFG");
|
||||
desensitizeDemo.setEmail("1@email.com");
|
||||
desensitizeDemo.setRegex("你好,我是ZT源码");
|
||||
desensitizeDemo.setRegex("你好,我是芋道源码");
|
||||
desensitizeDemo.setAddress("北京市海淀区上地十街10号");
|
||||
desensitizeDemo.setOrigin("ZT源码");
|
||||
desensitizeDemo.setOrigin("芋道源码");
|
||||
|
||||
// 调用
|
||||
DesensitizeDemo d = JsonUtils.parseObject(JsonUtils.toJsonString(desensitizeDemo), DesensitizeDemo.class);
|
||||
@@ -61,7 +61,7 @@ public class DesensitizeTest {
|
||||
assertEquals("1****@email.com", d.getEmail());
|
||||
assertEquals("你好,我是*", d.getRegex());
|
||||
assertEquals("北京市海淀区上地十街10号*", d.getAddress());
|
||||
assertEquals("ZT源码", d.getOrigin());
|
||||
assertEquals("芋道源码", d.getOrigin());
|
||||
}
|
||||
|
||||
@Data
|
||||
@@ -89,7 +89,7 @@ public class DesensitizeTest {
|
||||
private String slider3;
|
||||
@EmailDesensitize
|
||||
private String email;
|
||||
@RegexDesensitize(regex = "ZT源码", replacer = "*")
|
||||
@RegexDesensitize(regex = "芋道源码", replacer = "*")
|
||||
private String regex;
|
||||
@Address
|
||||
private String address;
|
||||
|
||||
@@ -1 +1 @@
|
||||
<http://www.iocoder.cn/Spring-Boot/Swagger/?cloud>
|
||||
<http://www.iocoder.cn/Spring-Boot/Swagger/?zt>
|
||||
|
||||
@@ -1 +1 @@
|
||||
<http://www.iocoder.cn/Spring-Boot/SpringMVC/?cloud>
|
||||
<http://www.iocoder.cn/Spring-Boot/SpringMVC/?zt>
|
||||
|
||||
Reference in New Issue
Block a user