diff --git a/cms-api/cms-admin-svc/src/main/java/com/qs/serve/controller/AdminPortalController.java b/cms-api/cms-admin-svc/src/main/java/com/qs/serve/controller/AdminPortalController.java index c3b53cd..1e96e5a 100644 --- a/cms-api/cms-admin-svc/src/main/java/com/qs/serve/controller/AdminPortalController.java +++ b/cms-api/cms-admin-svc/src/main/java/com/qs/serve/controller/AdminPortalController.java @@ -52,6 +52,7 @@ import com.qs.serve.modules.tbs.entity.TbsActivity; import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.service.TbsActivityService; import com.qs.serve.modules.tbs.service.TbsCostApplyService; +import com.qs.serve.modules.tzc.api.TzcRebateApi; import com.qs.serve.modules.tzc.entity.TzcPolicy; import com.qs.serve.modules.tzc.service.TzcPolicyService; import com.qs.serve.modules.vtb.entity.VtbVerification; @@ -109,6 +110,14 @@ public class AdminPortalController { private GoodsSkuService goodsSkuService; private GoodsCategoryService goodsCategoryService; + TzcRebateApi tzcRebateAPI; + + + @GetMapping("/test222") + public R getSystemTime2(){ + return R.ok(tzcRebateAPI.getRebateById(111L)); + } + @GetMapping("/getSystemTime") public R getSystemTime(){ return R.ok(DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME)); diff --git a/cms-api/cms-admin-svc/src/main/resources/application-dev.yml b/cms-api/cms-admin-svc/src/main/resources/application-dev.yml index 66d7d10..7842a8d 100644 --- a/cms-api/cms-admin-svc/src/main/resources/application-dev.yml +++ b/cms-api/cms-admin-svc/src/main/resources/application-dev.yml @@ -8,10 +8,12 @@ feign: enabled: true # 服务列表 service-list: - policy-svc: http://localhost:8081 + policy-svc: http://localhost:7403 #项目配置 project: + tenant: + enable: true bir-service: 'false' bir-service-sync: 'false' bir-service-url: 'http://192.168.0.9:7401' diff --git a/cms-api/cms-admin-svc/src/main/resources/application.yml b/cms-api/cms-admin-svc/src/main/resources/application.yml index a9d4c58..c1a1312 100644 --- a/cms-api/cms-admin-svc/src/main/resources/application.yml +++ b/cms-api/cms-admin-svc/src/main/resources/application.yml @@ -21,6 +21,7 @@ project: - /favicon.ico - /error - /portal/syKeyLogin + - /portal/test222 - /bir/roiRate/test - /static/* - /api/wx/login/getCpSignature diff --git a/cms-api/cms-policy-svc/pom.xml b/cms-api/cms-policy-svc/pom.xml index e151a51..9b63a23 100644 --- a/cms-api/cms-policy-svc/pom.xml +++ b/cms-api/cms-policy-svc/pom.xml @@ -17,6 +17,11 @@ + + com.qs + cms-framework-mvc + 1.0-SNAPSHOT + com.qs cms-framework-mybatis-plus @@ -27,6 +32,10 @@ cms-policy-bus 1.0-SNAPSHOT + + mysql + mysql-connector-java + diff --git a/cms-api/cms-policy-svc/src/main/resources/application-dev.yml b/cms-api/cms-policy-svc/src/main/resources/application-dev.yml index 780783e..1993bf6 100644 --- a/cms-api/cms-policy-svc/src/main/resources/application-dev.yml +++ b/cms-api/cms-policy-svc/src/main/resources/application-dev.yml @@ -6,13 +6,18 @@ feign: readTimeout: 5000 # 读取超时时间 httpclient: enabled: true + +#项目配置 +project: + tenant: + enable: false # 服务列表 service-list: policy-svc: http://localhost:8081 #服务配置 server: - port: 7500 + port: 7403 servlet: context-path: / @@ -20,13 +25,14 @@ server: spring: datasource: dynamic: + primary: crm_db #设置默认的数据源或者数据源组,默认值即为master + strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源 datasource: - master: + crm_db: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://192.168.0.9:3306/jsl_mall_qs_dev?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true username: kpjsl password: 123456 -#SpringBoot相关 hikari: #连接池名 pool-name: DateHikariCP diff --git a/cms-api/cms-policy-svc/src/main/resources/application.yml b/cms-api/cms-policy-svc/src/main/resources/application.yml index a9d4c58..9fbb99b 100644 --- a/cms-api/cms-policy-svc/src/main/resources/application.yml +++ b/cms-api/cms-policy-svc/src/main/resources/application.yml @@ -59,9 +59,6 @@ logging: level: ROOT: debug com.qs.serve: debug - com.qs.serve.modules.his: debug - com.qs.serve.modules.sys: debug - com.qs.serve.modules.tag: info org.xnio.nio: info org.springframework: info com.baomidou: info diff --git a/cms-api/cms-policy-svc/src/main/resources/log4j2.xml b/cms-api/cms-policy-svc/src/main/resources/log4j2.xml index f7d1bce..c389994 100644 --- a/cms-api/cms-policy-svc/src/main/resources/log4j2.xml +++ b/cms-api/cms-policy-svc/src/main/resources/log4j2.xml @@ -7,7 +7,7 @@ - + diff --git a/cms-common/pom.xml b/cms-common/pom.xml index 058287d..4e3655f 100644 --- a/cms-common/pom.xml +++ b/cms-common/pom.xml @@ -18,6 +18,11 @@ + + org.springframework.boot + spring-boot-starter-log4j2 + + org.springframework.cloud spring-cloud-starter-openfeign diff --git a/cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/context/SecurityUserUtil.java b/cms-common/src/main/java/com/qs/serve/common/context/SecurityUserUtil.java similarity index 95% rename from cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/context/SecurityUserUtil.java rename to cms-common/src/main/java/com/qs/serve/common/context/SecurityUserUtil.java index f11f7c2..b24dc25 100644 --- a/cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/context/SecurityUserUtil.java +++ b/cms-common/src/main/java/com/qs/serve/common/context/SecurityUserUtil.java @@ -1,4 +1,4 @@ -package com.qs.serve.mbp.context; +package com.qs.serve.common.context; import lombok.experimental.UtilityClass; diff --git a/cms-framework/cms-framework-base/pom.xml b/cms-framework/cms-framework-base/pom.xml index b4b1a2a..de936c4 100644 --- a/cms-framework/cms-framework-base/pom.xml +++ b/cms-framework/cms-framework-base/pom.xml @@ -60,11 +60,6 @@ spring-boot-starter-validation - - org.springframework.boot - spring-boot-starter-log4j2 - - com.squareup.okhttp3 okhttp diff --git a/cms-framework/cms-framework-feign/pom.xml b/cms-framework/cms-framework-feign/pom.xml new file mode 100644 index 0000000..6e78585 --- /dev/null +++ b/cms-framework/cms-framework-feign/pom.xml @@ -0,0 +1,27 @@ + + + + cms-framework + com.qs + 1.0-SNAPSHOT + + 4.0.0 + + cms-framework-feign + + + 8 + 8 + + + + + com.qs + cms-common + 1.0-SNAPSHOT + + + + diff --git a/cms-framework/cms-framework-feign/src/main/java/com/qs/serve/feign/FeignRequestInterceptor.java b/cms-framework/cms-framework-feign/src/main/java/com/qs/serve/feign/FeignRequestInterceptor.java new file mode 100644 index 0000000..9d79da9 --- /dev/null +++ b/cms-framework/cms-framework-feign/src/main/java/com/qs/serve/feign/FeignRequestInterceptor.java @@ -0,0 +1,21 @@ +package com.qs.serve.feign; + +import com.qs.serve.common.context.SecurityUserUtil; +import feign.RequestInterceptor; +import feign.RequestTemplate; +import org.springframework.context.annotation.Configuration; + +/** + * @author YenHex + * @since 2025/4/17 + */ +@Configuration +public class FeignRequestInterceptor implements RequestInterceptor { + + @Override + public void apply(RequestTemplate template) { + template.header("userId", SecurityUserUtil.getUserId()); + template.header("tenant-id", SecurityUserUtil.getTenant()); + } + +} diff --git a/cms-framework/cms-framework-mvc/pom.xml b/cms-framework/cms-framework-mvc/pom.xml index 8f833d2..345c061 100644 --- a/cms-framework/cms-framework-mvc/pom.xml +++ b/cms-framework/cms-framework-mvc/pom.xml @@ -16,4 +16,44 @@ 8 + + + com.qs + cms-common + 1.0-SNAPSHOT + + + + org.projectlombok + lombok + + + + org.springframework.boot + spring-boot-starter + + + org.springframework.boot + spring-boot-starter-logging + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + org.springframework.boot + spring-boot-starter-undertow + + + diff --git a/cms-framework/cms-framework-mvc/src/main/java/com/qs/serve/framework/mvc/HttpServletRequestFilter.java b/cms-framework/cms-framework-mvc/src/main/java/com/qs/serve/framework/mvc/HttpServletRequestFilter.java new file mode 100644 index 0000000..322b923 --- /dev/null +++ b/cms-framework/cms-framework-mvc/src/main/java/com/qs/serve/framework/mvc/HttpServletRequestFilter.java @@ -0,0 +1,57 @@ +package com.qs.serve.framework.mvc; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; + +import javax.annotation.Resource; +import javax.servlet.*; +import javax.servlet.annotation.WebFilter; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +/** + * HttpServletRequest 过滤器 + * 解决: request.getInputStream()只能读取一次的问题 + * 目标: 流可重复读 + * @Author YenHex + * @Date 2021/4/9 + * @Version: 1.0 + **/ +@Slf4j +@Component +@WebFilter(filterName = "HttpServletRequestFilter", urlPatterns = "/") +@Order(10000) +public class HttpServletRequestFilter implements Filter{ + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + + } + + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + filterChain.doFilter(servletRequest, servletResponse); + long endTime = System.currentTimeMillis(); + assert servletRequest instanceof HttpServletRequest; + HttpServletRequest request = (HttpServletRequest)servletRequest; + String url = request.getRequestURL().toString(); + String method = request.getMethod(); + String queryStr = request.getQueryString(); + log.info("url:{}",url); + } + + @Override + public void destroy() { + + } + +} diff --git a/cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/config/MyBatisConfig.java b/cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/config/MyBatisConfig.java index 0621eb3..a33055f 100644 --- a/cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/config/MyBatisConfig.java +++ b/cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/config/MyBatisConfig.java @@ -6,10 +6,15 @@ import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor; +import com.qs.serve.mbp.config.props.ProjectTenantProperties; +import com.qs.serve.mbp.handler.SysMetaHandler; +import com.qs.serve.mbp.handler.SysTenantHandler; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import javax.annotation.Resource; + /** * @author YenHex * @since 2022/3/1 @@ -18,13 +23,18 @@ import org.springframework.context.annotation.Configuration; @Configuration(proxyBeanMethods = false) public class MyBatisConfig { + @Resource + ProjectTenantProperties projectTenantProperties; + @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); // 翻页拦截器 interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 多租户、乐观锁等配置拦截 - interceptor.addInnerInterceptor(buildTenantHandler()); + if(projectTenantProperties.getEnable()!=null && projectTenantProperties.getEnable()){ + interceptor.addInnerInterceptor(buildTenantHandler()); + } // 添加动态表名插件 // DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor(); // dynamicTableNameInnerInterceptor.setTableNameHandler(tableNameAppendHandler()); diff --git a/cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/config/props/ProjectTenantProperties.java b/cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/config/props/ProjectTenantProperties.java new file mode 100644 index 0000000..4bfcdcd --- /dev/null +++ b/cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/config/props/ProjectTenantProperties.java @@ -0,0 +1,21 @@ +package com.qs.serve.mbp.config.props; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +/** + * @Author: YenHex + * @Date: 2021/3/3 + * @Version: 1.0 + **/ +@Getter +@Setter +@Component +@ConfigurationProperties(prefix = "project.tenant") +public class ProjectTenantProperties { + + private Boolean enable; + +} diff --git a/cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/handler/SysMetaHandler.java b/cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/handler/SysMetaHandler.java index d6de852..39f1f0f 100644 --- a/cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/handler/SysMetaHandler.java +++ b/cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/handler/SysMetaHandler.java @@ -1,7 +1,7 @@ package com.qs.serve.mbp.handler; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; -import com.qs.serve.mbp.context.SecurityUserUtil; +import com.qs.serve.common.context.SecurityUserUtil; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.reflection.MetaObject; diff --git a/cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/handler/SysTenantHandler.java b/cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/handler/SysTenantHandler.java index 403d5ed..deb1789 100644 --- a/cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/handler/SysTenantHandler.java +++ b/cms-framework/cms-framework-mybatis-plus/src/main/java/com/qs/serve/mbp/handler/SysTenantHandler.java @@ -3,7 +3,7 @@ package com.qs.serve.mbp.handler; import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler; import com.qs.serve.common.enums.HttpCode; import com.qs.serve.common.exception.Assert; -import com.qs.serve.mbp.context.SecurityUserUtil; +import com.qs.serve.common.context.SecurityUserUtil; import net.sf.jsqlparser.expression.Expression; import net.sf.jsqlparser.expression.StringValue; @@ -34,7 +34,7 @@ public class SysTenantHandler implements TenantLineHandler { @Override public String getTenantIdColumn() { - return "TENANT_COLUMN"; + return "tenant_id"; } /** diff --git a/cms-framework/pom.xml b/cms-framework/pom.xml index 7e3229e..6320cb6 100644 --- a/cms-framework/pom.xml +++ b/cms-framework/pom.xml @@ -15,6 +15,7 @@ cms-framework-security cms-framework-mvc cms-framework-base + cms-framework-feign cms-framework diff --git a/cms-modules/cms-actuator/src/main/java/com/qs/serve/actuator/HttpServletRequestFilter.java b/cms-modules/cms-actuator/src/main/java/com/qs/serve/actuator/HttpServletRequestFilter.java index 311dd8c..4274132 100644 --- a/cms-modules/cms-actuator/src/main/java/com/qs/serve/actuator/HttpServletRequestFilter.java +++ b/cms-modules/cms-actuator/src/main/java/com/qs/serve/actuator/HttpServletRequestFilter.java @@ -1,10 +1,10 @@ package com.qs.serve.actuator; +import com.qs.serve.common.utils.ServletUtils; import com.qs.serve.framework.base.config.DevEnvironmentConfig; import com.qs.serve.framework.base.framework.redis.RedisService; import com.qs.serve.framework.base.framework.security.model.LoginUser; import com.qs.serve.framework.base.util.DateUtils; -import com.qs.serve.common.utils.ServletUtils; import com.qs.serve.modules.sys.common.AuthContextUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.core.annotation.Order; diff --git a/cms-modules/cms-policy/cms-policy-api/pom.xml b/cms-modules/cms-policy/cms-policy-api/pom.xml index 2fddb54..816f12e 100644 --- a/cms-modules/cms-policy/cms-policy-api/pom.xml +++ b/cms-modules/cms-policy/cms-policy-api/pom.xml @@ -18,6 +18,13 @@ + + + com.qs + cms-framework-feign + 1.0-SNAPSHOT + + com.qs cms-common diff --git a/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/api/TzcRebateAPI.java b/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/api/TzcRebateApi.java similarity index 80% rename from cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/api/TzcRebateAPI.java rename to cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/api/TzcRebateApi.java index e66f1ed..ebddd87 100644 --- a/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/api/TzcRebateAPI.java +++ b/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/api/TzcRebateApi.java @@ -9,8 +9,8 @@ import org.springframework.web.bind.annotation.PathVariable; * @author YenHex * @since 2025/4/15 */ -@FeignClient(name = "policy-svc", url = "${service-list.policy}") -public interface TzcRebateAPI { +@FeignClient(name = "policy-svc", url = "${service-list.policy-svc}") +public interface TzcRebateApi { @GetMapping("/api/tzc/rebate/{id}") TzcRebate getRebateById(@PathVariable("id") Long id); diff --git a/cms-modules/cms-policy/cms-policy-bus/src/main/java/com/qs/serve/modules/tzc/api/TzcRebateApiImpl.java b/cms-modules/cms-policy/cms-policy-bus/src/main/java/com/qs/serve/modules/tzc/api/TzcRebateApiImpl.java new file mode 100644 index 0000000..88b70e3 --- /dev/null +++ b/cms-modules/cms-policy/cms-policy-bus/src/main/java/com/qs/serve/modules/tzc/api/TzcRebateApiImpl.java @@ -0,0 +1,21 @@ +package com.qs.serve.modules.tzc.api; + +import com.qs.serve.modules.tzc.entity.TzcRebate; +import com.qs.serve.modules.tzc.service.TzcRebateService; +import org.springframework.stereotype.Service; + +/** + * @author YenHex + * @since 2025/4/17 + */ +@Service +public class TzcRebateApiImpl implements TzcRebateApi { + + TzcRebateService tzcRebateService; + + @Override + public TzcRebate getRebateById(Long id) { + return tzcRebateService.getById(id); + } + +} diff --git a/cms-modules/cms-system/pom.xml b/cms-modules/cms-system/pom.xml index b1d5410..c72b42c 100644 --- a/cms-modules/cms-system/pom.xml +++ b/cms-modules/cms-system/pom.xml @@ -18,6 +18,18 @@ + + com.qs + cms-policy-api + 1.0-SNAPSHOT + + + + com.qs + cms-framework-feign + 1.0-SNAPSHOT + + com.qs cms-framework-mybatis-plus diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/sys/common/AuthContextUtils.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/sys/common/AuthContextUtils.java index a77297f..96f78a5 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/sys/common/AuthContextUtils.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/sys/common/AuthContextUtils.java @@ -8,7 +8,7 @@ import com.qs.serve.common.exception.Assert; import com.qs.serve.common.utils.ServletUtils; import com.qs.serve.framework.base.util.SpringUtils; import com.qs.serve.common.utils.StringUtils; -import com.qs.serve.mbp.context.SecurityUserUtil; +import com.qs.serve.common.context.SecurityUserUtil; import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.service.BmsSupplierService; import lombok.experimental.UtilityClass;