orderRejectedBillRelationService = $orderRejectedBillRelationService; } /** * 添加连接 * @param OrderIssue $orderIssue * @param $logistic_number_return * @return Builder|Model|object|null|boolean */ public function joinRejectedBill(OrderIssue $orderIssue, $logistic_number_return) { OrderIssueRejectedBill::query()->create( ['order_id' => $orderIssue->order_id,'order_issue_id' => $orderIssue->id,'logistic_number_return' => $logistic_number_return] ); $this->orderRejectedBillRelationService->orderSyncRejectedBill($orderIssue->order); return OrderIssueRejectedBill::query()->with('rejectedBill.items') ->where('order_issue_id', $orderIssue->id) ->where('logistic_number_return', $logistic_number_return)->first() ?? false; } /** * 删除连接 * @param OrderIssue $orderIssue * @param $logistic_number_return * @return boolean */ public function unJoinRejectedBill(OrderIssue $orderIssue, $logistic_number_return): bool { OrderIssueRejectedBill::query() ->where('order_id', $orderIssue->order_id) ->where('logistic_number_return', $logistic_number_return)->delete(); $this->orderRejectedBillRelationService->orderSyncRejectedBill($orderIssue->order); if ($orderIssue->rejectedBills()->count() == 0) { $orderIssue->update(['is_new_rejecting' => '无']); $orderIssue->orderDetail()->update(['is_new_rejecting' => '无']); } return true; } /** * 修改连接 * @param OrderIssue $orderIssue * @param $logistic_number_return * @param $logistic_number_return_update * @return null|boolean|Builder|Model|object */ public function reviseJoinRejectedBill(OrderIssue $orderIssue, $logistic_number_return, $logistic_number_return_update) { OrderIssueRejectedBill::query()->where('logistic_number_return' , $logistic_number_return) ->update(['logistic_number_return'=>$logistic_number_return_update]); $this->orderRejectedBillRelationService->orderSyncRejectedBill($orderIssue->order); return OrderIssueRejectedBill::query()->with('rejectedBill') ->where('order_issue_id', $orderIssue->id) ->where('logistic_number_return', $logistic_number_return_update)->first() ?? false; } /** * 退回件同步问题件 * @param RejectedBill|Controller $rejectedBills * @return void */ public function syncOrderIssue($rejectedBills) { if (!$rejectedBills) return; if (is_array($rejectedBills)) { foreach ($rejectedBills as $rejectedBill) { $this->orderRejectedBillRelationService->rejectedBillSyncOrder($rejectedBill); } return; } $this->orderRejectedBillRelationService->rejectedBillSyncOrder($rejectedBills); } }