add
This commit is contained in:
@ -3,14 +3,17 @@ package com.qiaoba.module.tenant.filter;
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.qiaoba.api.tenant.entity.SysTenant;
|
||||
import com.qiaoba.api.tenant.enums.TenantModeEnum;
|
||||
import com.qiaoba.api.tenant.enums.TenantStatusEnum;
|
||||
import com.qiaoba.api.tenant.utils.TenantUtil;
|
||||
import com.qiaoba.common.base.code.DatasourceErrorCode;
|
||||
import com.qiaoba.common.base.code.TenantErrorCode;
|
||||
import com.qiaoba.common.base.constant.BaseConstant;
|
||||
import com.qiaoba.common.base.constant.TenantConstant;
|
||||
import com.qiaoba.common.base.context.BaseContext;
|
||||
import com.qiaoba.common.base.order.FilterOrder;
|
||||
import com.qiaoba.common.database.config.DynamicDataSourceConfig;
|
||||
import com.qiaoba.common.database.context.PrimaryDatasourceContext;
|
||||
import com.qiaoba.common.web.util.ResponseUtil;
|
||||
import com.qiaoba.common.web.util.UriUtil;
|
||||
import com.qiaoba.module.tenant.service.SysTenantService;
|
||||
@ -61,6 +64,7 @@ public class DynamicDataSourceFilter extends OncePerRequestFilter {
|
||||
try {
|
||||
log.debug("Start run DynamicDataSourceFilter, Uri: {}", request.getRequestURI());
|
||||
String tenantId = request.getHeader(TenantConstant.HEADER_KEY_TENANT);
|
||||
|
||||
// 主系统 or 登录入口获取租户列表
|
||||
if (TenantConstant.DEFAULT_TENANT_ID.equals(tenantId) || TenantConstant.LOGIN_TENANT_LIST_URI.equals(request.getRequestURI())) {
|
||||
dynamicDataSourceConfig.setDefaultSetting();
|
||||
@ -113,6 +117,14 @@ public class DynamicDataSourceFilter extends OncePerRequestFilter {
|
||||
return true;
|
||||
}
|
||||
|
||||
// 检查租户数据源是否正常
|
||||
if (TenantModeEnum.isDatasource(sysTenant.getMode())
|
||||
&& !PrimaryDatasourceContext.exist(sysTenant.getTenantId())) {
|
||||
// 无主数据
|
||||
log.debug("租户数据源不可用, 租户ID: {}", sysTenant.getTenantId());
|
||||
ResponseUtil.errorAuth(response, DatasourceErrorCode.CONNECT_ERROR.getCode(), DatasourceErrorCode.CONNECT_ERROR.getMsg());
|
||||
return true;
|
||||
}
|
||||
if (TenantStatusEnum.isDisable(sysTenant.getStatus())) {
|
||||
// 封禁状态
|
||||
log.debug("租户已封禁, 租户ID: {}", sysTenant.getTenantId());
|
||||
|
Reference in New Issue
Block a user