贴标申请,仓储转运
This commit is contained in:
+1
@@ -87,6 +87,7 @@ class MerchantOverseasCustomerApiContractTest {
|
||||
"create", OverseasPermissions.MERCHANT_RETURN_ORDER_CREATE,
|
||||
"page", OverseasPermissions.MERCHANT_RETURN_ORDER_LIST,
|
||||
"detail", OverseasPermissions.MERCHANT_RETURN_ORDER_LIST,
|
||||
"downloadPhoto", OverseasPermissions.MERCHANT_RETURN_ORDER_LIST,
|
||||
"relabelCandidates", OverseasPermissions.MERCHANT_RETURN_ORDER_RELABEL,
|
||||
"createRelabel", OverseasPermissions.MERCHANT_RETURN_ORDER_RELABEL));
|
||||
assertPermissions(MerchantRelabelApplicationController.class, Map.of(
|
||||
|
||||
+2
-1
@@ -32,7 +32,8 @@ class MerchantOverseasOpenApiContractTest {
|
||||
"/api/merchant/v1/last-leg/local-looseboard-orders:",
|
||||
"/api/merchant/v1/last-leg/local-looseboard-orders/{orderNo}:",
|
||||
"/api/merchant/v1/last-leg/inbound-plans:",
|
||||
"/api/merchant/v1/last-leg/inbound-plans/{planNo}:"}) {
|
||||
"/api/merchant/v1/last-leg/inbound-plans/{planNo}:",
|
||||
"/api/merchant/v1/last-leg/return-orders/{returnNo}/photos/files/{fileId}/download:"}) {
|
||||
assertThat(yaml).contains(path);
|
||||
assertThat(pathBlock(yaml, path)).doesNotContain("name: customerId");
|
||||
}
|
||||
|
||||
+26
@@ -22,6 +22,7 @@ import com.baiyue.lastleg.relabel.mapper.RelabelApplicationMapper;
|
||||
import com.baiyue.lastleg.relabel.mapper.RelabelItemMapper;
|
||||
import com.baiyue.lastleg.relabel.entity.RelabelApplication;
|
||||
import com.baiyue.lastleg.relabel.entity.RelabelItem;
|
||||
import com.baiyue.lastleg.relabel.pda.gateway.RelabelPhotoFileGateway;
|
||||
import com.baiyue.lastleg.service.FbaWarehouseValidator;
|
||||
import com.baiyue.lastleg.service.LastlegOrderNoGenerator;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
@@ -67,6 +68,7 @@ class ReturnReceiptServiceTest {
|
||||
@Mock RelabelApplicationMapper relabelApplications;
|
||||
@Mock RelabelItemMapper relabelItems;
|
||||
@Mock FbaWarehouseValidator fbaWarehouseValidator;
|
||||
@Mock RelabelPhotoFileGateway photoFiles;
|
||||
|
||||
ReturnReceiptService service;
|
||||
PdaWarehouseIdentity identity;
|
||||
@@ -91,6 +93,30 @@ class ReturnReceiptServiceTest {
|
||||
identity = new PdaWarehouseIdentity("operator-1", "仓管员", 10L);
|
||||
}
|
||||
|
||||
@Test
|
||||
void merchantPhotoDownloadUsesAuthenticatedCustomerAndResolvedReturnOrder() {
|
||||
ReflectionTestUtils.setField(service, "photoFiles", photoFiles);
|
||||
ReturnOrder order = order("RT-1", "10", ReturnReceiptService.COMPLETED, 2, 2);
|
||||
var downloaded = new RelabelPhotoFileGateway.DownloadedFile(new byte[] { 1, 2 }, "proof.jpg", "image/jpeg");
|
||||
when(orders.findNo("customer-1", "RT-1")).thenReturn(order);
|
||||
when(photoFiles.download("customer-1", 1L, 99L)).thenReturn(downloaded);
|
||||
|
||||
assertEquals(downloaded, service.downloadPhoto("customer-1", "RT-1", 99L));
|
||||
verify(photoFiles).download("customer-1", 1L, 99L);
|
||||
}
|
||||
|
||||
@Test
|
||||
void merchantPhotoDownloadRejectsUnknownCustomerOrderBeforeFileAccess() {
|
||||
ReflectionTestUtils.setField(service, "photoFiles", photoFiles);
|
||||
when(orders.findNo("other-customer", "RT-1")).thenReturn(null);
|
||||
|
||||
ResponseStatusException error = assertThrows(ResponseStatusException.class,
|
||||
() -> service.downloadPhoto("other-customer", "RT-1", 99L));
|
||||
|
||||
assertEquals(404, error.getStatusCode().value());
|
||||
verifyNoInteractions(photoFiles);
|
||||
}
|
||||
|
||||
@Test
|
||||
void multiSkuPartialRelabelLocksOnlyRequestedQuantities() {
|
||||
verifyMultiSkuRelabel(30, 15);
|
||||
|
||||
Reference in New Issue
Block a user