From 8ea16953908450f8dcf1d9b8dccb2d4b636c5a21 Mon Sep 17 00:00:00 2001 From: weizong song Date: Sun, 4 Apr 2021 00:31:33 +0800 Subject: [PATCH] up --- .../Controllers/Manager/OrdersController.php | 21 ++++++------ .../Manager/TrainingController.php | 33 ++++++++++++++++--- app/Models/Orders.php | 16 +++++---- routes/web.php | 3 +- 4 files changed, 49 insertions(+), 24 deletions(-) diff --git a/app/Http/Controllers/Manager/OrdersController.php b/app/Http/Controllers/Manager/OrdersController.php index e037c51..46cda82 100644 --- a/app/Http/Controllers/Manager/OrdersController.php +++ b/app/Http/Controllers/Manager/OrdersController.php @@ -129,10 +129,11 @@ class OrdersController extends CommonController /** * @OA\Get( - * path="/manager/get-orders", - * summary="获取订单列表", + * path="/manager/get-projcet-orders/{project_id}", + * summary="V2-获取订单列表", * description="获取订单列表", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), + * @OA\Parameter(name="project_id", in="path", @OA\Schema(type="integer"), required=false, description="医院ID"), * @OA\Parameter(name="keyword", in="query", @OA\Schema(type="string"), required=false, description="查询关键词"), * @OA\Parameter(name="page", in="query", @OA\Schema(type="integer"), required=false, description="当前页码,默认为1"), * @OA\Parameter(name="pageLength", in="query", @OA\Schema(type="integer"), required=false, description="每页数量,默认为5"), @@ -181,22 +182,20 @@ class OrdersController extends CommonController $pageLength = request()->pageLength ? (int)request()->pageLength : 5; $data = $data ->with([ - "project", - "product", - "customer", - "manager", - "patient", + "patient" => function ($query) { + $query->select("id", "customer_id", "name", "sex", "age"); + }, "productItem", "productParamedicLevel", "bed" => function ($query) { - $query->with(["room", "building"]); + $query->with(["room", "building"])->select("id", "room_id", "building_id"); }, - "paramedic", - "handlingApprovalItem" => function ($query) { - $query->with("approval"); + "paramedic" => function ($query) { + $query->select(); } ]) ->orderBy("id", "desc") + ->select("id", "serial", "customer_id", "patient_id", "project_id", "product_id", "manager_id", "from_date", "to_date", "remark", "status", "contact", "mobile", "price", "patient_quantity") ->paginate($pageLength); foreach ($data as $order) { $order = $order->refreshTotal(); diff --git a/app/Http/Controllers/Manager/TrainingController.php b/app/Http/Controllers/Manager/TrainingController.php index ce4c159..3d62f52 100644 --- a/app/Http/Controllers/Manager/TrainingController.php +++ b/app/Http/Controllers/Manager/TrainingController.php @@ -11,12 +11,11 @@ class TrainingController extends CommonController /** * @OA\Get( * path="/manager/get-videos", - * summary="获取视频列表", + * summary="V2-获取视频列表", * description="获取视频列表", - * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), * @OA\Parameter(name="keyword", in="query", @OA\Schema(type="string"), required=false, description="查询关键词"), * @OA\Parameter(name="page", in="query", @OA\Schema(type="integer"), required=false, description="当前页码,默认为1"), - * @OA\Parameter(name="pageLength", in="query", @OA\Schema(type="integer"), required=false, description="每页数量,默认为5"), + * @OA\Parameter(name="pageLength", in="query", @OA\Schema(type="integer"), required=false, description="每页数量,默认为3"), * @OA\Response( * response="200", * description="获取视频列表" @@ -37,9 +36,33 @@ class TrainingController extends CommonController }); }); } - $pageLength = request()->pageLength ? (int)request()->pageLength : 5; - $data = $data->paginate($pageLength); + $pageLength = request()->pageLength ? (int)request()->pageLength : 3; + $data = $data->with(["type" => function ($query) { + $query->select("id", "name"); + }])->select("id", "type_id", "title", "poster", "video", "published_at")->orderBy("published_at")->paginate($pageLength); return response()->json($data->toArray()); } + /** + * @OA\Get( + * path="/manager/get-video/{id}", + * summary="V2-获取单条视频数据", + * description="获取单条视频数据", + * @OA\Parameter(name="id", in="path", @OA\Schema(type="integer"), required=true, description="视频内容ID"), + * @OA\Response( + * response="200", + * description="获取单条视频数据" + * ) + * ) + */ + + public function getVideo($id) + { + $video = Training::with(["type" => function ($query) { + $query->select("id", "name"); + }])->select("id", "type_id", "title", "poster", "video", "published_at")->find($id); + + return response()->json($video->toArray()); + } + } diff --git a/app/Models/Orders.php b/app/Models/Orders.php index f9ec2e8..dd2cd64 100755 --- a/app/Models/Orders.php +++ b/app/Models/Orders.php @@ -242,15 +242,17 @@ class Orders extends SoftDeletesModel public function refreshTotal() { + $order_items = $this->orderItems()->get(); + switch ($this->status) { case self::STATUS_UNCONFIRMED: case self::STATUS_UNASSIGNED: case self::STATUS_ONGOING: default: - $items_total = $this->orderItems->sum("total"); + $items_total = $order_items->sum("total"); $price = $this->price; - if ($this->lastItem) { - $days = max(0, Carbon::parse($this->lastItem->service_date)->diffInDays($this->to_date, false)); + if ($order_items->last()) { + $days = max(0, Carbon::parse($order_items->last()->service_date)->diffInDays($this->to_date, false)); } else { $days = max(0, Carbon::parse($this->from_date)->diffInDays($this->to_date, false) + 1); } @@ -261,13 +263,13 @@ class Orders extends SoftDeletesModel $total = $this->orderItems()->sum("total"); } - if ($this->orderItems->last()) { - if (!$this->to_date || Carbon::parse($this->to_date)->diffInDays($this->orderItems->last()->service_date, false) > 0) { - $this->to_date = $this->orderItems->last()->service_date; + if ($order_items->last()) { + if (!$this->to_date || Carbon::parse($this->to_date)->diffInDays($order_items->last()->service_date, false) > 0) { + $this->to_date = $order_items->last()->service_date; } } - $paid_total = $this->orderItems->filter(function ($item) { + $paid_total = $order_items->filter(function ($item) { return $item->paid_at; })->sum("total"); diff --git a/routes/web.php b/routes/web.php index cafb4b9..0d11f0a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -126,6 +126,7 @@ Route::group(["namespace" => "Manager", "prefix" => "manager"], function () { Route::post('login-by-code', 'AuthController@loginByCode'); Route::post('login-by-username', 'AuthController@loginByUsername'); Route::get('get-videos', 'TrainingController@index'); + Route::get('get-video/{id}', 'TrainingController@getVideo'); Route::group(['middleware' => ['authorize.jwt:manager']], function () { Route::get('get-projects', 'OrdersController@getProjects'); @@ -135,7 +136,7 @@ Route::group(["namespace" => "Manager", "prefix" => "manager"], function () { Route::get('get-badges', 'OrdersController@getBadges'); Route::post('create-patient', 'OrdersController@createPatient'); Route::post('create-order', 'OrdersController@createOrder'); - Route::get('get-orders', 'OrdersController@list'); + Route::get('get-project-orders/{project_id}', 'OrdersController@list'); Route::get('get-order/{id}', 'OrdersController@getOrder'); Route::get('get-beds-by-project/{id}', 'OrdersController@getBedsByProject'); Route::get('get-approvals', 'OrdersController@getApprovals');