|
|
@@ -5,24 +5,64 @@ namespace App\Http\Controllers\api\thirdPart\hengli;
|
|
|
|
|
|
|
|
|
use App\Http\Controllers\Controller;
|
|
|
+use App\OrderIssue;
|
|
|
+use App\OrderPackage;
|
|
|
use App\Services\OrderIssueService;
|
|
|
use App\Services\WorkOrderService;
|
|
|
+use App\WorkOrder;
|
|
|
use Illuminate\Http\Request;
|
|
|
|
|
|
class OrderIssueController extends Controller
|
|
|
{
|
|
|
- public function checkInterceptPackage(Request $request)
|
|
|
+ public function checkInterceptPackage(Request $request): array
|
|
|
{
|
|
|
/** @var WorkOrderService $workOrderService */
|
|
|
$workOrderService = app(WorkOrderService::class);
|
|
|
/** @var OrderIssueService $workOrderService */
|
|
|
$orderIssueService = app(OrderIssueService::class);
|
|
|
$logisticNumber = $request['expressCode'] ?? null;
|
|
|
- if ($workOrderService->isIntercept($logisticNumber) || $workOrderService->isExists($logisticNumber)) {
|
|
|
+ if ($workOrderService->isIntercept($logisticNumber) || $orderIssueService->isExists($logisticNumber)) {
|
|
|
// 显示在问题件已拦截
|
|
|
$orderIssueService->intercept($logisticNumber);
|
|
|
return ['success' => 'true','data'=> true];
|
|
|
}
|
|
|
return ['success' => 'true','data'=> false];
|
|
|
}
|
|
|
+
|
|
|
+ public function interceptExpressCodes(): array
|
|
|
+ {
|
|
|
+ $interceptExpressCodes = [];
|
|
|
+
|
|
|
+ $orderIssueQuery = OrderIssue::query()
|
|
|
+ ->select("order_id")
|
|
|
+ ->where('order_issue_type_id',1)
|
|
|
+ ->where(function ($query) {
|
|
|
+ $query->whereNotIn('order_issues.final_status', ['已解决', '已归档'])
|
|
|
+ ->orWhereNull('order_issues.final_status');
|
|
|
+ });
|
|
|
+
|
|
|
+ $orderPackages = OrderPackage::query()
|
|
|
+ ->select('logistic_number')
|
|
|
+ ->whereIn('order_id',$orderIssueQuery)
|
|
|
+ ->get();
|
|
|
+
|
|
|
+ foreach ($orderPackages as $orderPackage){
|
|
|
+ $interceptExpressCodes[] = $orderPackage->logistic_number;
|
|
|
+ }
|
|
|
+
|
|
|
+ $workOrderQuery = WorkOrder::query()
|
|
|
+ ->select("order_id")
|
|
|
+ ->where('order_issue_type_id',1)
|
|
|
+ ->where('status','!=',5);
|
|
|
+
|
|
|
+ $orderPackages = OrderPackage::query()
|
|
|
+ ->select('logistic_number')
|
|
|
+ ->whereIn('order_id',$workOrderQuery)
|
|
|
+ ->get();
|
|
|
+
|
|
|
+ foreach ($orderPackages as $orderPackage){
|
|
|
+ $interceptExpressCodes[] = $orderPackage->logistic_number;
|
|
|
+ }
|
|
|
+ return array_values(array_unique($interceptExpressCodes));
|
|
|
+ }
|
|
|
}
|