fix(orders): filter tax mode before unified order pagination

This commit is contained in:
2026-10-02 14:44:51 +08:00
parent 2d73ce9f37
commit f532e5ee7e
16 changed files with 250 additions and 15 deletions
@@ -35,7 +35,9 @@ public record UnifiedInboundQuery(
LocalDateTime createdFrom,
LocalDateTime createdTo,
@Min(1) long page,
@Min(1) @Max(200) long size
@Min(1) @Max(200) long size,
@Schema(allowableValues = {"TAX_REFUND", "BUY_DECLARATION"})
@jakarta.validation.constraints.Pattern(regexp = "TAX_REFUND|BUY_DECLARATION") String taxMode
) {
public UnifiedInboundQuery {
if (page == 0) page = 1;
@@ -118,6 +118,7 @@ public class InboundOrderRepository {
public Page<InboundOrderEntity> pageUnifiedEntities(UnifiedInboundQuery query, List<String> processStatuses) {
LambdaQueryWrapper<InboundOrderEntity> wrapper = new LambdaQueryWrapper<InboundOrderEntity>()
.eq(query.tenantId() != null, InboundOrderEntity::getTenantId, query.tenantId())
.eq(query.taxMode() != null, InboundOrderEntity::getTaxMode, query.taxMode())
.in(processStatuses != null && !processStatuses.isEmpty(), InboundOrderEntity::getProcessStatus, processStatuses)
.like(StringUtils.hasText(query.orderNo()), InboundOrderEntity::getOrderNo, query.orderNo())
.like(StringUtils.hasText(query.inboundCode()), InboundOrderEntity::getInboundCode, query.inboundCode())
@@ -222,6 +222,10 @@ public class UnifiedInboundQueryService {
}
private void validate(UnifiedInboundQuery query) {
if (query.taxMode() != null && !java.util.Set.of("TAX_REFUND", "BUY_DECLARATION").contains(query.taxMode())) {
throw new com.baiyue.common.core.exception.BizException(
com.baiyue.common.core.api.ResultCode.BAD_REQUEST, "taxMode仅支持TAX_REFUND或BUY_DECLARATION");
}
if (StringUtils.hasText(query.mainStatus())
&& !MAIN_STATUSES.contains(query.mainStatus())
) {