@Override public String getTargetTableName(String baseTableName, Object params, String mapperId) { if (params == null) { return baseTableName; } if (baseTableName == null || !BASE_TABLE_NAMES_FOR_SHARD.contains(baseTableName.toUpperCase())) { return baseTableName; } String targetTableName = baseTableName; if (params instanceof DubboMethodDayIP) { DubboMethodDayIP day = (DubboMethodDayIP) params; String appName = day.getAppName(); if (!StringUtil.isEmpty(appName)) { targetTableName = baseTableName + "_" + appName.toString().toUpperCase(); } } else if (params instanceof Map) { Map map = (Map) params; Object appName = map.get("appName"); if (appName != null && !StringUtil.isEmpty(appName.toString())) { targetTableName = baseTableName + "_" + appName.toString().toUpperCase(); } } if (!existsTableNames.contains(targetTableName)) { if (!isTableExists(targetTableName)) { createTable(targetTableName); } existsTableNames.add(targetTableName); } return targetTableName; }