diff --git a/app/Actions/AttachAffectedOrders.php b/app/Actions/AttachAffectedOrders.php index 08c637f..031f4d9 100644 --- a/app/Actions/AttachAffectedOrders.php +++ b/app/Actions/AttachAffectedOrders.php @@ -26,6 +26,11 @@ class AttachAffectedOrders $order->affected_orders = $affected_orders; return $order; } + //护工没换 + if ($order->paramedic_id == $from_paramedic) { + $order->affected_orders = $affected_orders; + return $order; + } //更换护工,查询从原护工手上退出订单后,原护工的其他订单是否变成了1对1 if ($from_paramedic) { diff --git a/app/Http/Controllers/Manager/OrdersController.php b/app/Http/Controllers/Manager/OrdersController.php index 68252f0..dd25466 100644 --- a/app/Http/Controllers/Manager/OrdersController.php +++ b/app/Http/Controllers/Manager/OrdersController.php @@ -35,7 +35,7 @@ class OrdersController extends CommonController /** * @OA\Get( * path="/manager/get-projects", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2 获取医院列表", * description="获取医院列表", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -60,7 +60,7 @@ class OrdersController extends CommonController /** * @OA\Get( * path="/manager/get-care-product/{project_id}", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-获取产品详情", * description="获取产品详情", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -98,7 +98,7 @@ class OrdersController extends CommonController /** * @OA\Get( * path="/manager/get-project-orders-count/{project_id}", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-获取医院订单数量角标", * description="获取医院订单数量角标", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -124,7 +124,7 @@ class OrdersController extends CommonController /** * @OA\Get( * path="/manager/get-projcet-orders/{project_id}", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-获取订单列表", * description="获取订单列表", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -181,7 +181,7 @@ class OrdersController extends CommonController /** * @OA\Get( * path="/manager/get-order/{id}", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-获取订单详情", * description="获取订单详情", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -226,7 +226,7 @@ class OrdersController extends CommonController /** * @OA\Get( * path="/manager/get-order-item/{id}", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-获取子订单详情", * description="获取子订单详情", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -321,7 +321,7 @@ class OrdersController extends CommonController /** * @OA\Get( * path="/manager/get-project-areas/{project_id}", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-获取医院病区", * description="获取医院病区", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -350,7 +350,7 @@ class OrdersController extends CommonController /** * @OA\Get( * path="/manager/get-area-beds/{area_id}", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-根据病区获取病床", * description="根据病区获取病床", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -378,7 +378,7 @@ class OrdersController extends CommonController /** * @OA\Get( * path="/manager/get-available-paramedics", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-获取可用护工列表(已基本准确,需进一步打磨)", * description="获取可用护工列表", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -402,7 +402,7 @@ class OrdersController extends CommonController /** * @OA\POST( * path="/manager/create-patient", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-创建被护理人", * description="创建被护理人", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -431,7 +431,7 @@ class OrdersController extends CommonController /** * @OA\POST( * path="/manager/create-order", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-创建订单", * description="创建订单", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -534,7 +534,7 @@ class OrdersController extends CommonController /** * @OA\POST( * path="/manager/update-order/{id}", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-订单修改(静态修改不影响当前所有子订单)", * description="订单修改", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -623,7 +623,8 @@ class OrdersController extends CommonController } //更新订单基本信息 - $update = (new Orders())->filterRequestColumns(request(), ["id", "paramedic_id"]); + $from_paramedic = $order->paramedic_id; + $update = (new Orders())->filterRequestColumns(request(), ["id"]); if (request()->has("contact", "patient_name") && !request()->contact) { $update["contact"] = request()->patient_name; } @@ -635,12 +636,15 @@ class OrdersController extends CommonController } $order->update($update); - //更换护工的处理 - if ($order->isOngoing()) { - return response()->json([ - "errorcode" => "103", - "errormsg" => request()->available_day - ]); + //正在进行中的订单修改子订单 + if ($order->isOngoing() && request()->available_day == "today") { + $res = (new OrderItems())->updateTodayItem($order->id); + if (!$res["status"]) { + return response()->json([ + "errorcode" => "103", + "errormsg" => $res["msg"] + ]); + } } //如果原本的护工id为空且新提交了护工id,视同为派单 @@ -650,10 +654,10 @@ class OrdersController extends CommonController "status" => Orders::STATUS_ONGOING ]); event(new OrderAssigned($order)); - $order = (new AttachAffectedOrders)($order); } DB::commit(); + $order = (new AttachAffectedOrders)($order, $from_paramedic); return response()->json($order->toArray()); } catch (\Exception $exception) { DB::rollBack(); @@ -667,7 +671,7 @@ class OrdersController extends CommonController /** * @OA\POST( * path="/manager/update-order-items", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-子订单修改(覆盖单条修改)", * description="子订单修改", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -811,7 +815,7 @@ class OrdersController extends CommonController /** * @OA\POST( * path="/manager/checkout-order-items/{order_id}", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-中途结算(即只依次结算子订单,并不结束订单,只需余额刚好)", * description="交互流程如下:初次请求带上just_check参数,将返回to_recharge_total值;如果to_recharge_total大于0表示需要充值,充值完成之后,去除just_check参数再次提交;如果to_recharge_total <= 0,直接去除just_check参数再次提交", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -986,7 +990,7 @@ class OrdersController extends CommonController /** * @OA\POST( * path="/manager/checkout-order/{id}", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-订单结算", * description="交互流程如下:初次请求带上just_check参数,将返回to_recharge_total和to_refund_total值;仅在to_recharge_total和to_refund_total都为0的情况下才可以结算成功;如果to_recharge_total大于0表示需要充值,充值完成之后,剔除just_check参数再次提交;如果to_refund_total大于0表示需要退款,根据返回的退款方式操作后,剔除just_check参数再次提交", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -1221,7 +1225,7 @@ class OrdersController extends CommonController /** * @OA\POST( * path="/manager/scan-pay/{order_id}", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-扫用户支付码收款", * description="扫用户支付码收款", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -1360,7 +1364,7 @@ class OrdersController extends CommonController /** * @OA\POST( * path="/manager/cancel-order/{id}", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-取消订单", * description="取消订单", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -1402,7 +1406,7 @@ class OrdersController extends CommonController /** * @OA\POST( * path="/manager/get-balance/{customer_id}", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="获取用户余额", * description="获取用户余额", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -1430,7 +1434,7 @@ class OrdersController extends CommonController /** * @OA\POST( * path="/manager/recharge-for-order/{id}", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-现金或pos刷卡充值", * description="现金或pos刷卡充值", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -1510,7 +1514,7 @@ class OrdersController extends CommonController /** * @OA\POST( * path="/manager/refund-for-order/{id}", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-退款", * description="退款", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), @@ -1590,7 +1594,7 @@ class OrdersController extends CommonController /** * @OA\Get( * path="/manager/get-project-paramedic-levels/{project_id}", - * tags={"管理端订单处理"}, + * tags={"管理端订单处理"}, * summary="V2-获取医院护工等级", * description="获取医院护工等级", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), diff --git a/app/Models/OrderItems.php b/app/Models/OrderItems.php index d9aa41e..34cca4f 100755 --- a/app/Models/OrderItems.php +++ b/app/Models/OrderItems.php @@ -112,6 +112,50 @@ class OrderItems extends SoftDeletesModel return $this->create($order_item); } + public function updateTodayItem($order_id) + { + $service_date = date("Y-m-d"); + $record = (new OrderItems())->where([ + "order_id" => $order_id, + "service_date" => $service_date + ])->first(); + if (!$record) { + return [ + "status" => 0, + "msg" => "没找到当日子订单" + ]; + } + if ($record->paid_at) { + return [ + "status" => 0, + "msg" => "当日子订单已扣款,请移步至子订单修改" + ]; + } + + $order = (new Orders())->find($order_id); + $patient_quantity = (new Orders()) + ->where("status", Orders::STATUS_ONGOING) + ->where("paramedic_id", $order->paramedic_id) + ->count(); + + $update = [ + "product_item_id" => $order->product_item_id, + "product_paramedic_level_id" => $order->product_paramedic_level_id, + "bed_id" => $order->bed_id, + "paramedic_id" => $order->paramedic_id, + "patient_quantity" => $patient_quantity, + "total" => $order->price, + "factors" => $order->factors + ]; + + $record->update($update); + + return [ + "status" => 1, + "msg" => "当日子订单同步成功" + ]; + } + public function calculateFee() { $factors = json_decode($this->factors);