From abca6882c3da65ddcc34b1da7804fe70a43c58ca Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Tue, 22 Sep 2026 14:36:07 +0800 Subject: [PATCH] fix: handle empty mojia sku sync filter --- .../repository/MojiaSkuSyncRepository.java | 3 +- .../MojiaSkuSyncRepositoryTest.java | 32 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 firstleg/src/test/java/com/baiyue/firstleg/repository/MojiaSkuSyncRepositoryTest.java diff --git a/firstleg/src/main/java/com/baiyue/firstleg/repository/MojiaSkuSyncRepository.java b/firstleg/src/main/java/com/baiyue/firstleg/repository/MojiaSkuSyncRepository.java index c62fc772a..4b7697f53 100644 --- a/firstleg/src/main/java/com/baiyue/firstleg/repository/MojiaSkuSyncRepository.java +++ b/firstleg/src/main/java/com/baiyue/firstleg/repository/MojiaSkuSyncRepository.java @@ -16,11 +16,12 @@ public class MojiaSkuSyncRepository { public PageResult page(String skuCode, String syncStatus, long page, long size) { + String normalizedSkuCode = StringUtils.hasText(skuCode) ? skuCode.trim() : null; return PageResult.from(mapper.selectPage(new Page<>(page, size), new LambdaQueryWrapper() .eq(MojiaMeasurementReceiptEntity::getMeasurementKind, "SKU") .eq(StringUtils.hasText(syncStatus), MojiaMeasurementReceiptEntity::getSyncStatus, syncStatus) - .like(StringUtils.hasText(skuCode), MojiaMeasurementReceiptEntity::getBoxCode, skuCode.trim()) + .like(normalizedSkuCode != null, MojiaMeasurementReceiptEntity::getBoxCode, normalizedSkuCode) .orderByDesc(MojiaMeasurementReceiptEntity::getMeasuredAt) .orderByDesc(MojiaMeasurementReceiptEntity::getId))); } diff --git a/firstleg/src/test/java/com/baiyue/firstleg/repository/MojiaSkuSyncRepositoryTest.java b/firstleg/src/test/java/com/baiyue/firstleg/repository/MojiaSkuSyncRepositoryTest.java new file mode 100644 index 000000000..faeaece6c --- /dev/null +++ b/firstleg/src/test/java/com/baiyue/firstleg/repository/MojiaSkuSyncRepositoryTest.java @@ -0,0 +1,32 @@ +package com.baiyue.firstleg.repository; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baiyue.firstleg.entity.MojiaMeasurementReceiptEntity; +import com.baiyue.firstleg.mapper.MojiaMeasurementReceiptMapper; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +@SpringJUnitConfig(MojiaSkuSyncRepository.class) +class MojiaSkuSyncRepositoryTest { + @MockBean private MojiaMeasurementReceiptMapper mapper; + @Autowired private MojiaSkuSyncRepository repository; + + @Test + @SuppressWarnings({"rawtypes", "unchecked"}) + void blankSkuCodeDoesNotTrimNullOrAddFilter() { + when(mapper.selectPage(any(Page.class), any(Wrapper.class))) + .thenReturn(new Page(1, 20)); + + repository.page(null, null, 1, 20); + + verify(mapper).selectPage(any(Page.class), any(Wrapper.class)); + } +}