package com.cpop.core.strategy.dataSourceSharding;

import com.mybatisflex.core.datasource.DataSourceShardingStrategy;

import java.lang.reflect.Method;

/**
 * @author DB
 * @version 1.0.0
 * @since 2024-02-05 9:27
 */
public class CpopDataSourceShardingStrategy implements DataSourceShardingStrategy {

    @Override
    public String doSharding(String currentDataSourceKey, Object mapper, Method mapperMethod, Object[] methodArgs){
        // 不管 other 数据源的情况
        if ("jambox".equals(currentDataSourceKey)){
            return currentDataSourceKey;
        }

        // 如果 mapper 的方法属于 增删改，使用 master 数据源
        /*if (StringUtils.startWithAny(mapperMethod.getName(), "insert", "delete", "update")){
            return "master";
        }*/
        return "oam";
        //其他场景，使用 slave1 或者 slave2 进行负载均衡
        //return "slave";
    }

}
