feat(fleet): enforce reviewed trips and original fee coverage for dispatch

This commit is contained in:
2026-10-03 04:18:52 +08:00
parent c50e9f97d1
commit 5e683da3b9
162 changed files with 9642 additions and 218 deletions
@@ -64,7 +64,8 @@ class OutboxLeaseDatabaseTest {
var factory = new MybatisSqlSessionFactoryBean();
factory.setDataSource(dataSource); factory.setConfiguration(configuration);
var mapper = new SqlSessionTemplate(factory.getObject()).getMapper(LastlegEventOutboxMapper.class);
var repository = new com.baiyue.lastleg.financefee.repository.OverseasFeeOutboxRepository(mapper);
var repository = new com.baiyue.lastleg.financefee.repository.OverseasFeeOutboxRepository(mapper,
org.mockito.Mockito.mock(com.baiyue.lastleg.financefee.state.OverseasFeeCancellation.class));
var journal = new EventDeliveryJournal(jdbc, new DataSourceTransactionManager(dataSource));
LocalDateTime now = LocalDateTime.of(2026, 9, 29, 12, 0);
jdbc.update("INSERT INTO ll_event_outbox(id,event_type,status,retry_count,next_retry_at,created_at) VALUES(1,?,'PENDING',0,?,?)", "BusinessFeeSourceChanged", now.minusSeconds(1), now.minusMinutes(3));
@@ -23,7 +23,8 @@ class UnloadCompletedOutboxRepositoryTest {
void feeClaimAlsoRechecksRetryWindow() {
TableInfoHelper.initTableInfo(new MapperBuilderAssistant(new MybatisConfiguration(), "test"), LastlegEventOutbox.class);
LastlegEventOutboxMapper mapper = mock(LastlegEventOutboxMapper.class);
var repository = new com.baiyue.lastleg.financefee.repository.OverseasFeeOutboxRepository(mapper);
var repository = new com.baiyue.lastleg.financefee.repository.OverseasFeeOutboxRepository(mapper,
mock(com.baiyue.lastleg.financefee.state.OverseasFeeCancellation.class));
ArgumentCaptor<LambdaUpdateWrapper> wrapper = ArgumentCaptor.forClass(LambdaUpdateWrapper.class);
when(mapper.update(isNull(LastlegEventOutbox.class), wrapper.capture())).thenReturn(1);
LocalDateTime now = LocalDateTime.of(2026, 9, 29, 12, 0);