diff --git a/app/Http/Controllers/Admin/StatisticsController.php b/app/Http/Controllers/Admin/StatisticsController.php index 283c92b..aee76c3 100755 --- a/app/Http/Controllers/Admin/StatisticsController.php +++ b/app/Http/Controllers/Admin/StatisticsController.php @@ -253,7 +253,6 @@ class StatisticsController extends CommonController $before_datetime = strtotime($before_date . " 23:59:59"); DB::enableQueryLog(); - $customers = (new Customer()) ->whereNull("deleted_at") ->with([ diff --git a/app/Http/Controllers/Customer/OrdersController.php b/app/Http/Controllers/Customer/OrdersController.php index 04e63af..bd4d70e 100644 --- a/app/Http/Controllers/Customer/OrdersController.php +++ b/app/Http/Controllers/Customer/OrdersController.php @@ -662,4 +662,106 @@ class OrdersController extends CommonController ])->select("id", "customer_id", "money", "balance", "belongs_type", "belongs_id", "remark", "order_id", "created_at")->orderBy("id", "desc")->paginate(10); return response()->json($balances->toArray()); } + + /** + * @OA\POST( + * path="/customer/score-order/{id}", + * tags={"用户端订单处理"}, + * summary="评价订单", + * description="评价订单", + * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), + * @OA\Parameter(name="id", in="path", @OA\Schema(type="integer"), required=true, description="订单id"), + * @OA\Parameter(name="score", in="query", @OA\Schema(type="number"), required=true, description="分数,5分制,0.5分为一个阶梯"), + * @OA\Parameter(name="comment", in="query", @OA\Schema(type="string"), required=false, description="评语,不超过255字节"), + * @OA\Response( + * response="200", + * description="评价订单" + * ) + * ) + */ + + public function scoreOrder($id) + { + $order = (new Orders())->where("customer_id", $this->customer->id)->find($id); + if (!$order) { + return response()->json([ + "errorcode" => 40004, + "errormsg" => "没找到订单" + ]); + } + + if ($order->status !== Orders::STATUS_FINISHED) { + return response()->json([ + "errorcode" => 50001, + "errormsg" => "订单状态不适配" + ]); + } + + DB::beginTransaction(); + try { + $order->update([ + "score" => request()->score, + "comment" => request()->comment, + "scored_at" => date("Y-m-d H:i:s"), + ]); + DB::commit(); + return response()->json($order); + } catch (\Exception $exception) { + DB::rollBack(); + return response()->json([ + "errorcode" => $exception->getCode(), + "errormsg" => $exception->getMessage() + ]); + } + } + + /** + * @OA\POST( + * path="/customer/delete-score-order/{id}", + * tags={"用户端订单处理"}, + * summary="删除订单评价", + * description="删除订单评价", + * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), + * @OA\Parameter(name="id", in="path", @OA\Schema(type="integer"), required=true, description="订单id"), + * @OA\Response( + * response="200", + * description="删除订单评价" + * ) + * ) + */ + + public function deleteScoreOrder($id) + { + $order = (new Orders())->where("customer_id", $this->customer->id)->find($id); + if (!$order) { + return response()->json([ + "errorcode" => 40004, + "errormsg" => "没找到订单" + ]); + } + + if ($order->status !== Orders::STATUS_FINISHED) { + return response()->json([ + "errorcode" => 50001, + "errormsg" => "订单状态不适配" + ]); + } + + DB::beginTransaction(); + try { + $order->update([ + "score" => null, + "comment" => null, + "scored_at" =>null + ]); + DB::commit(); + return response()->json($order); + } catch (\Exception $exception) { + DB::rollBack(); + return response()->json([ + "errorcode" => $exception->getCode(), + "errormsg" => $exception->getMessage() + ]); + } + } } diff --git a/database/migrations/2023_07_11_111443_update_orders_add_score.php b/database/migrations/2023_07_11_111443_update_orders_add_score.php new file mode 100644 index 0000000..55e479a --- /dev/null +++ b/database/migrations/2023_07_11_111443_update_orders_add_score.php @@ -0,0 +1,32 @@ +decimal("score")->nullable(); + $table->timestamp("scored_at")->nullable(); + $table->string("comment")->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} diff --git a/routes/web.php b/routes/web.php index 7a8e163..dfd27c2 100644 --- a/routes/web.php +++ b/routes/web.php @@ -119,6 +119,8 @@ Route::group(["namespace" => "Customer", "prefix" => "customer"], function () { Route::post('create-order', 'OrdersController@createOrder'); Route::post('cancel-order/{id}', 'OrdersController@cancelOrder'); Route::post('reserve-order/{id}', 'OrdersController@reserveOrder'); + Route::post('score-order/{id}', 'OrdersController@scoreOrder'); + Route::post('delete-score-order/{id}', 'OrdersController@deleteScoreOrder'); Route::get('recharge', 'OrdersController@recharge'); Route::get('get-balances', 'OrdersController@getBalances'); });