package com.taais.common.tenant.handle;

import cn.hutool.core.util.ObjectUtil;
import com.taais.common.security.utils.LoginHelper;
import com.taais.common.tenant.helper.TenantHelper;
import com.mybatisflex.core.tenant.TenantFactory;
import lombok.AllArgsConstructor;

/**
 * 自定义租户工厂
 *
 * @author wgk
 */
@AllArgsConstructor
public class MyTenantFactory implements TenantFactory {

    @Override
    public Object[] getTenantIds() {
        Long tenantId = LoginHelper.getTenantId();
        if (ObjectUtil.isNull(tenantId)) {
            return null;
        }
        Long dynamicTenantId = TenantHelper.getDynamic();
        if (ObjectUtil.isNotNull(dynamicTenantId)) {
            // 返回动态租户
            return new Object[]{dynamicTenantId};
        }
        // 返回固定租户
        return new Object[]{tenantId};
    }

}
