收口V4 OWNER RATE目录数据

This commit is contained in:
andy
2026-07-21 19:11:57 +07:00
parent f3b6adda17
commit 6e97778633
19 changed files with 520 additions and 188 deletions

View File

@@ -25,7 +25,8 @@ import org.springframework.transaction.annotation.Transactional;
@Order(Ordered.HIGHEST_PRECEDENCE + 100)
public class ReservationV4CatalogBootstrapRunner implements ApplicationRunner {
private static final String SEED_CATALOG_VERSION = "seed-20260719-v1";
private static final String ACCOUNT_SEED_CATALOG_VERSION = "seed-20260719-v1";
private static final String OWNER_RATE_CATALOG_VERSION = "owner-rate-20260721-v1";
private static final String MARKET_CODE = "LEISURE";
private static final String SOURCE_CODE = "TRAVEL_AGENT";
@@ -35,21 +36,112 @@ public class ReservationV4CatalogBootstrapRunner implements ApplicationRunner {
new AccountSeed("HANATOUR_TD", "HANATOUR TD CO., LTD."));
private static final List<CodeSeed> CODE_SEEDS = List.of(
new CodeSeed(ReservationV4CatalogType.ROOM_TYPE.name(), "TWN", "TWN", 10, "{\"adult_capacity\":2}"),
new CodeSeed(ReservationV4CatalogType.ROOM_TYPE.name(), "KING", "KING", 20, "{\"adult_capacity\":2}"),
new CodeSeed(ReservationV4CatalogType.ROOM_TYPE.name(), "DBL", "DBL", 30, "{\"adult_capacity\":2}"),
new CodeSeed(ReservationV4CatalogType.ROOM_TYPE.name(), "SGL", "SGL", 40, "{\"adult_capacity\":1}"),
new CodeSeed(ReservationV4CatalogType.ROOM_TYPE.name(), "TRP", "TRP", 50, "{\"adult_capacity\":3}"),
new CodeSeed(ReservationV4CatalogType.ROOM_TYPE.name(), "RM1", "RM1", 60, "{\"adult_capacity\":2}"),
new CodeSeed(ReservationV4CatalogType.ROOM_TYPE.name(), "RM2", "RM2", 70, "{\"adult_capacity\":2}"),
new CodeSeed(ReservationV4CatalogType.ROOM_TYPE.name(), "RM3", "RM3", 80, "{\"adult_capacity\":2}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "BAR", "BAR", 10, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "RACK", "RACK", 20, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "PACKAGE", "PACKAGE", 30, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "GROUP", "GROUP", 40, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "FIT", "FIT", 50, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.MARKET.name(), MARKET_CODE, MARKET_CODE, 10, null),
new CodeSeed(ReservationV4CatalogType.SOURCE.name(), SOURCE_CODE, SOURCE_CODE, 10, null));
new CodeSeed(ReservationV4CatalogType.ROOM_TYPE.name(), "RM2", "RM2", 10,
OWNER_RATE_CATALOG_VERSION, "{\"adult_capacity\":2}"),
new CodeSeed(ReservationV4CatalogType.ROOM_TYPE.name(), "RM3", "RM3", 20,
OWNER_RATE_CATALOG_VERSION, "{\"adult_capacity\":2}"),
new CodeSeed(ReservationV4CatalogType.ROOM_TYPE.name(), "RM4", "RM4", 30,
OWNER_RATE_CATALOG_VERSION, "{\"adult_capacity\":4}"),
new CodeSeed(ReservationV4CatalogType.ROOM_TYPE.name(), "SU1", "SU1", 40,
OWNER_RATE_CATALOG_VERSION, "{\"adult_capacity\":2}"),
new CodeSeed(ReservationV4CatalogType.ROOM_TYPE.name(), "SU2", "SU2", 50,
OWNER_RATE_CATALOG_VERSION, "{\"adult_capacity\":2}"),
new CodeSeed(ReservationV4CatalogType.ROOM_TYPE.name(), "SU3", "SU3", 60,
OWNER_RATE_CATALOG_VERSION, "{\"adult_capacity\":4}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "GRPA2-850UP", "GRPA2-850UP", 10,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "GRPA2-1275", "GRPA2-1275", 20,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "GRPA2-1400", "GRPA2-1400", 30,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "GRPA2-1800", "GRPA2-1800", 40,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "GRPA2-2400", "GRPA2-2400", 50,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "GRPA1-900", "GRPA1-900", 60,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "GRPA1-1400", "GRPA1-1400", 70,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "GRPA1-1300", "GRPA1-1300", 80,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "GRPA1-1150", "GRPA1-1150", 90,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "GRPA1-1725", "GRPA1-1725", 100,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "GRPA1-2300", "GRPA1-2300", 110,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(),
"GRPA3-1200*B'FAST BUALUANG", "GRPA3-1200*B'FAST BUALUANG", 120,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(),
"GRPA3-2000*B'FAST BUALUANG", "GRPA3-2000*B'FAST BUALUANG", 130,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(),
"GRPA3-1400*B'FAST BUALUANG", "GRPA3-1400*B'FAST BUALUANG", 140,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(),
"GRPA3-1800*B'FAST BUALUANG", "GRPA3-1800*B'FAST BUALUANG", 150,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(),
"GRPA3-2400*B'FAST BUALUANG", "GRPA3-2400*B'FAST BUALUANG", 160,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(),
"GRPA4-1200*B'FAST LEELA", "GRPA4-1200*B'FAST LEELA", 170,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(),
"GRPA4-2000*B'FAST LEELA", "GRPA4-2000*B'FAST LEELA", 180,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(),
"GRPA4-1400*B'FAST LEELA", "GRPA4-1400*B'FAST LEELA", 190,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(),
"GRPA4-1800*B'FAST LEELA", "GRPA4-1800*B'FAST LEELA", 200,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(),
"GRPA4-2400*B'FAST LEELA", "GRPA4-2400*B'FAST LEELA", 210,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "WHO1-850UP", "WHO1-850UP", 220,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "WHO1-1275", "WHO1-1275", 230,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "WHO1-1400", "WHO1-1400", 240,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "WHO1-1800", "WHO1-1800", 250,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "WHO1-2400", "WHO1-2400", 260,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "GRP1-900", "GRP1-900", 270,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "GRP1-1400", "GRP1-1400", 280,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "GRP1-1300", "GRP1-1300", 290,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "GRP1-1800", "GRP1-1800", 300,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "GRP1-2400", "GRP1-2400", 310,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "WHO2-1100", "WHO2-1100", 320,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "WHO2-1600", "WHO2-1600", 330,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "WHO2-1400", "WHO2-1400", 340,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "WHO2-1800", "WHO2-1800", 350,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "WHO2-2400", "WHO2-2400", 360,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "WHO3-1200", "WHO3-1200", 370,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "WHO3-1800", "WHO3-1800", 380,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "WHO3-1400", "WHO3-1400", 390,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.RATE_CODE.name(), "WHO3-2400", "WHO3-2400", 400,
OWNER_RATE_CATALOG_VERSION, "{\"pricing_available\":false}"),
new CodeSeed(ReservationV4CatalogType.MARKET.name(), MARKET_CODE, MARKET_CODE, 10,
ACCOUNT_SEED_CATALOG_VERSION, null),
new CodeSeed(ReservationV4CatalogType.SOURCE.name(), SOURCE_CODE, SOURCE_CODE, 10,
ACCOUNT_SEED_CATALOG_VERSION, null));
private final PlatformHotelRepository hotelRepository;
private final ReservationV4CatalogRepository catalogRepository;
@@ -112,7 +204,7 @@ public class ReservationV4CatalogBootstrapRunner implements ApplicationRunner {
entity.setSourceCode(SOURCE_CODE);
entity.setStatus(ReservationV4CatalogStatus.ACTIVE.name());
entity.setSourceSystem(ReservationV4CatalogSourceSystem.FIXED_SEED_IMPORT.name());
entity.setCatalogVersion(SEED_CATALOG_VERSION);
entity.setCatalogVersion(ACCOUNT_SEED_CATALOG_VERSION);
entity.setVersion(0L);
entity.setCreatedAt(now);
entity.setUpdatedAt(now);
@@ -131,7 +223,7 @@ public class ReservationV4CatalogBootstrapRunner implements ApplicationRunner {
entity.setStatus(ReservationV4CatalogStatus.ACTIVE.name());
entity.setSourceSystem(ReservationV4CatalogSourceSystem.FIXED_SEED_IMPORT.name());
entity.setSortOrder(seed.sortOrder());
entity.setCatalogVersion(SEED_CATALOG_VERSION);
entity.setCatalogVersion(seed.catalogVersion());
entity.setMetadataJson(seed.metadataJson());
entity.setVersion(0L);
entity.setCreatedAt(now);
@@ -152,6 +244,12 @@ public class ReservationV4CatalogBootstrapRunner implements ApplicationRunner {
private record AccountSeed(String accountCode, String accountName) {
}
private record CodeSeed(String catalogType, String code, String displayName, int sortOrder, String metadataJson) {
private record CodeSeed(
String catalogType,
String code,
String displayName,
int sortOrder,
String catalogVersion,
String metadataJson) {
}
}