fix: handle empty mojia sku sync filter

This commit is contained in:
2026-09-22 14:36:07 +08:00
parent 81517945f6
commit abca6882c3
2 changed files with 34 additions and 1 deletions
@@ -16,11 +16,12 @@ public class MojiaSkuSyncRepository {
public PageResult<MojiaMeasurementReceiptEntity> 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<MojiaMeasurementReceiptEntity>()
.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)));
}
@@ -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<MojiaMeasurementReceiptEntity>(1, 20));
repository.page(null, null, 1, 20);
verify(mapper).selectPage(any(Page.class), any(Wrapper.class));
}
}