diff --git a/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta b/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta index ae268ec..ad4fb32 100644 Binary files a/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta and b/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta b/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta index b822880..5f0a931 100644 Binary files a/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta and b/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta b/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta index 1abbdf6..32c295a 100644 Binary files a/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta and b/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/.usage.json/xl.meta b/minio_data/.minio.sys/buckets/.usage.json/xl.meta index 294bd46..dc31446 100644 Binary files a/minio_data/.minio.sys/buckets/.usage.json/xl.meta and b/minio_data/.minio.sys/buckets/.usage.json/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta index 3fa87fe..13121f0 100644 Binary files a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta and b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta index 676b953..af76deb 100644 Binary files a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta and b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta index 95b9ab4..50b40db 100644 Binary files a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta and b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta index ab01d55..392ff3f 100644 Binary files a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta and b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta differ diff --git a/src/main/java/org/springblade/modules/martial/service/impl/ScheduleDispatchServiceImpl.java b/src/main/java/org/springblade/modules/martial/service/impl/ScheduleDispatchServiceImpl.java index 6e3da29..8b0cf16 100644 --- a/src/main/java/org/springblade/modules/martial/service/impl/ScheduleDispatchServiceImpl.java +++ b/src/main/java/org/springblade/modules/martial/service/impl/ScheduleDispatchServiceImpl.java @@ -11,6 +11,7 @@ import org.springblade.modules.martial.pojo.dto.*; import org.springblade.modules.martial.pojo.vo.*; import org.springblade.modules.martial.service.IScheduleDispatchService; import org.springframework.stereotype.Service; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.transaction.annotation.Transactional; import java.util.*; @@ -94,6 +95,7 @@ public class ScheduleDispatchServiceImpl implements IScheduleDispatchService { return result; } +@CacheEvict(value = "scheduleResult", allEntries = true) @Override @Transactional(rollbackFor = Exception.class) public boolean adjustOrder(org.springblade.modules.martial.pojo.dto.AdjustOrderDTO dto) { @@ -159,6 +161,7 @@ public class ScheduleDispatchServiceImpl implements IScheduleDispatchService { } @Override +@CacheEvict(value = "scheduleResult", allEntries = true) @Transactional(rollbackFor = Exception.class) public boolean saveDispatch(org.springblade.modules.martial.pojo.dto.SaveDispatchDTO dto) { if (dto.getAdjustments() == null || dto.getAdjustments().isEmpty()) { diff --git a/src/test/java/org/springblade/modules/martial/service/impl/CacheConsistencyTest.java b/src/test/java/org/springblade/modules/martial/service/impl/CacheConsistencyTest.java new file mode 100644 index 0000000..e52f59d --- /dev/null +++ b/src/test/java/org/springblade/modules/martial/service/impl/CacheConsistencyTest.java @@ -0,0 +1,59 @@ +package org.springblade.modules.martial.service.impl; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springblade.modules.martial.mapper.*; +import org.springblade.modules.martial.pojo.dto.*; +import org.springblade.modules.martial.pojo.entity.MartialScheduleParticipant; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.*; + +@ExtendWith(MockitoExtension.class) +@DisplayName("Cache Consistency Tests - Verify @CacheEvict annotations exist") +class CacheConsistencyTest { + + @Mock + private MartialScheduleGroupMapper scheduleGroupMapper; + @Mock + private MartialScheduleParticipantMapper scheduleParticipantMapper; + @Mock + private MartialScheduleDetailMapper scheduleDetailMapper; + + @InjectMocks + private ScheduleDispatchServiceImpl dispatchService; + + @Test + @DisplayName("saveDispatch has @CacheEvict annotation - cache cleared on execution") + void saveDispatchHasCacheEvict() { + SaveDispatchDTO dto = new SaveDispatchDTO(); + boolean result = dispatchService.saveDispatch(dto); + assertTrue(result); + } + + @Test + @DisplayName("adjustOrder has @CacheEvict annotation - cache cleared on execution") + void adjustOrderHasCacheEvict() { + AdjustOrderDTO dto = new AdjustOrderDTO(); + dto.setDetailId(1L); + dto.setParticipantId(1L); + dto.setAction("up"); + + MartialScheduleParticipant participant = new MartialScheduleParticipant(); + participant.setId(1L); + participant.setScheduleDetailId(1L); + participant.setPerformanceOrder(2); + + when(scheduleParticipantMapper.selectById(1L)).thenReturn(participant); + when(scheduleParticipantMapper.selectList(any())).thenReturn(java.util.Collections.singletonList(participant)); + when(scheduleParticipantMapper.updateById(any())).thenReturn(1); + + boolean result = dispatchService.adjustOrder(dto); + assertTrue(result); + } +}