This commit is contained in:
2026-09-11 11:51:26 +08:00
parent d60689ce02
commit d2cff49b9e
45 changed files with 569 additions and 66 deletions
@@ -4,6 +4,7 @@ import com.baiyue.common.core.api.ApiResponse;
import com.baiyue.common.core.api.ResultCode;
import com.baiyue.common.core.exception.BizException;
import com.baiyue.warehouse.dto.WarehouseDetailResponse;
import com.baiyue.warehouse.dto.DomesticWarehouseOptionResponse;
import com.baiyue.warehouse.dto.OverseasPartnerWarehouseResponse;
import com.baiyue.warehouse.dto.SharedOverseasWarehouseResponse;
import com.baiyue.warehouse.service.WarehouseApplicationService;
@@ -49,6 +50,13 @@ public class InternalWarehouseController {
return ApiResponse.success(service.activeOverseasPartners());
}
@GetMapping("/domestic")
public ApiResponse<List<DomesticWarehouseOptionResponse>> domesticWarehouses(
@RequestHeader(value="X-Internal-Service-Token", required=false) String token) {
verifyToken(token);
return ApiResponse.success(service.activeDomesticWarehouses());
}
@GetMapping("/shared-overseas")
public ApiResponse<List<SharedOverseasWarehouseResponse>> sharedOverseasWarehouses(
@RequestHeader(value="X-Internal-Service-Token", required=false) String token) {
@@ -0,0 +1,11 @@
package com.baiyue.warehouse.dto;
import com.baiyue.warehouse.entity.WarehouseEntity;
/** 国内 PDA 可选择的启用仓库主档。 */
public record DomesticWarehouseOptionResponse(Long id, String warehouseCode, String warehouseName) {
public static DomesticWarehouseOptionResponse of(WarehouseEntity warehouse) {
return new DomesticWarehouseOptionResponse(
warehouse.getId(), warehouse.getWarehouseCode(), warehouse.getWarehouseName());
}
}
@@ -6,6 +6,7 @@ import com.baiyue.common.core.api.PageResult;
import com.baiyue.common.core.api.ResultCode;
import com.baiyue.common.core.exception.BizException;
import com.baiyue.warehouse.dto.WarehouseDetailResponse;
import com.baiyue.warehouse.dto.DomesticWarehouseOptionResponse;
import com.baiyue.warehouse.dto.WarehouseRequests;
import com.baiyue.warehouse.dto.OverseasPartnerWarehouseResponse;
import com.baiyue.warehouse.dto.WarehouseSummaryResponse;
@@ -96,6 +97,14 @@ public class WarehouseApplicationService {
.toList();
}
public List<DomesticWarehouseOptionResponse> activeDomesticWarehouses() {
return repository.findActiveByType(WarehouseSaveNormalizer.PUBLIC_TENANT_ID,
WarehouseSaveNormalizer.TYPE_DOMESTIC)
.stream()
.map(DomesticWarehouseOptionResponse::of)
.toList();
}
public List<SharedOverseasWarehouseResponse> activeSharedOverseasWarehouses() {
return repository.findActiveByType(WarehouseSaveNormalizer.PUBLIC_TENANT_ID,
WarehouseSaveNormalizer.TYPE_OVERSEAS)
@@ -3,6 +3,7 @@ package com.baiyue.warehouse.controller;
import com.baiyue.common.core.api.ResultCode;
import com.baiyue.common.core.exception.BizException;
import com.baiyue.warehouse.dto.WarehouseDetailResponse;
import com.baiyue.warehouse.dto.DomesticWarehouseOptionResponse;
import com.baiyue.warehouse.dto.OverseasPartnerWarehouseResponse;
import com.baiyue.warehouse.dto.SharedOverseasWarehouseResponse;
import com.baiyue.warehouse.entity.WarehouseEntity;
@@ -85,6 +86,17 @@ class InternalWarehouseControllerTest {
verify(service).activeOverseasPartners();
}
@Test
void listsActiveDomesticWarehouseOptionsForInternalCallers() {
var option = new DomesticWarehouseOptionResponse(200001L, "CN-DONGGUAN-01", "东莞仓");
when(service.activeDomesticWarehouses()).thenReturn(List.of(option));
var response = controller.domesticWarehouses(INTERNAL_TOKEN);
assertThat(response.data()).containsExactly(option);
verify(service).activeDomesticWarehouses();
}
@Test
void exposesSharedOverseasReceivingDirectoryOnlyWithInternalToken() {
var warehouse = new SharedOverseasWarehouseResponse(200003L, "US-LAX-01",