feat: complete overseas customer and PDA workflows

This commit is contained in:
2026-09-04 12:59:37 +08:00
parent a274d029bb
commit 54cb9ceade
60 changed files with 1598 additions and 277 deletions
@@ -6,9 +6,11 @@ import com.baiyue.common.security.AuthenticatedUser;
import com.baiyue.lastleg.trucking.dto.UsTruckOrderRequests;
import com.baiyue.lastleg.trucking.dto.UsTruckOrderResponses;
import com.baiyue.lastleg.trucking.service.UsTruckOrderService;
import com.baiyue.lastleg.security.OverseasPermissions;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.http.HttpStatus;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
@@ -21,6 +23,7 @@ import org.springframework.web.server.ResponseStatusException;
@RestController
@RequestMapping("/api/merchant/v1/last-leg/us-truck-orders")
@PreAuthorize("hasAuthority('" + OverseasPermissions.MERCHANT_TRUCKING + "')")
public class MerchantUsTruckOrderController {
@Resource private UsTruckOrderService service;
@@ -32,8 +35,8 @@ public class MerchantUsTruckOrderController {
@GetMapping
public ApiResponse<PageResult<UsTruckOrderResponses.Summary>> page(@AuthenticationPrincipal AuthenticatedUser user,
@Valid UsTruckOrderRequests.Query query) {
return ApiResponse.success(service.page(customer(user), query));
@Valid UsTruckOrderRequests.MerchantQuery query) {
return ApiResponse.success(service.page(customer(user), query.scoped()));
}
@GetMapping("/{orderNo}")
@@ -53,6 +53,16 @@ public final class UsTruckOrderRequests {
String orderNo, String routeKeyword, String status, String transportType,
String customerId, LocalDate requestedFrom, LocalDate requestedTo) {}
public record MerchantQuery(
@Min(1) long page, @Min(1) @Max(200) long size,
String orderNo, String routeKeyword, String status, String transportType,
LocalDate requestedFrom, LocalDate requestedTo) {
public Query scoped() {
return new Query(page, size, orderNo, routeKeyword, status, transportType,
null, requestedFrom, requestedTo);
}
}
public record Update(
@NotNull @Min(0) Long version,
@Size(max = 32) String transportType,