diff --git a/app/Http/Controllers/Manager/OrdersController.php b/app/Http/Controllers/Manager/OrdersController.php index 25d22f2..8459dd0 100644 --- a/app/Http/Controllers/Manager/OrdersController.php +++ b/app/Http/Controllers/Manager/OrdersController.php @@ -13,6 +13,7 @@ use App\Libs\WxMicroPay; use App\Models\Area; use App\Models\Balance; use App\Models\Bed; +use App\Models\OrderAgreement; use App\Models\OrderItems; use App\Models\Orders; use App\Models\Paramedic; @@ -407,6 +408,9 @@ class OrdersController extends CommonController "productItem" => function ($query) { $query->select("id", "name"); }, + "orderAgreements" => function ($query) { + $query->with('paramedicSign', 'customerSign', 'companySign', 'file')->orderBy("id", "desc"); + }, "paramedicLevel" => function ($query) { $query->select("paramedic_level.id", "paramedic_level.name"); }, @@ -1891,4 +1895,33 @@ class OrdersController extends CommonController } } + + /** + * @OA\Post( + * path="/manager/create-order-agreements", + * tags={"管理端订单处理"}, + * summary="创建协议", + * description="创建协议", + * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), + * @OA\Parameter(name="order_id", in="query", @OA\Schema(type="integer"), required=true, description="订单id"), + * @OA\Parameter(name="paramedic_id", in="query", @OA\Schema(type="integer"), required=true, description="护工id"), + * @OA\Parameter(name="paramedic_id", in="query", @OA\Schema(type="integer"), required=true, description="护工id"), + * @OA\Parameter(name="paramedic_sign_id", in="query", @OA\Schema(type="integer"), required=true, description="护工签名图片id"), + * @OA\Parameter(name="customer_id", in="query", @OA\Schema(type="integer"), required=true, description="客户id"), + * @OA\Parameter(name="customer_sign_id", in="query", @OA\Schema(type="integer"), required=true, description="客户签名图片id"), + * @OA\Parameter(name="company_sign_id", in="query", @OA\Schema(type="integer"), required=true, description="公司签名图片id"), + * @OA\Parameter(name="file_id", in="query", @OA\Schema(type="integer"), required=true, description="协议文件id"), + * @OA\Response( + * response="200", + * description="更新订单状态" + * ) + * ) + */ + public function createOrderAgreements() + { + $all = \request()->all(); + $orderAgreement = orderAgreement::create($all); + return response()->json($orderAgreement->toArray()); + } + } diff --git a/app/Models/CommonModel.php b/app/Models/CommonModel.php index 11f2281..11fcead 100755 --- a/app/Models/CommonModel.php +++ b/app/Models/CommonModel.php @@ -16,7 +16,7 @@ class CommonModel extends Model use DynamicallyTableModelTrait; protected $table; - protected $guarded = []; + protected $guarded = ['id']; public $split = ","; // Overrides datetime object serialization diff --git a/app/Models/OrderAgreement.php b/app/Models/OrderAgreement.php index 305e24a..2b1c660 100755 --- a/app/Models/OrderAgreement.php +++ b/app/Models/OrderAgreement.php @@ -5,4 +5,25 @@ namespace App\Models; class OrderAgreement extends SoftDeletesModel { protected $table = "order_agreements"; + + public function paramedicSign() + { + return $this->hasOne(Uploads::class, 'id', 'paramedic_sign_id'); + } + + public function customerSign() + { + return $this->hasOne(Uploads::class, 'id', 'customer_sign_id'); + } + + public function companySign() + { + return $this->hasOne(Uploads::class, 'id', 'company_sign_id'); + } + + public function file() + { + return $this->hasOne(Uploads::class, 'id', 'file_id'); + } + } diff --git a/app/Models/Orders.php b/app/Models/Orders.php index 3a2e799..4df5eda 100755 --- a/app/Models/Orders.php +++ b/app/Models/Orders.php @@ -52,6 +52,11 @@ class Orders extends SoftDeletesModel return in_array($this->status, [self::STATUS_UNCONFIRMED, self::STATUS_UNASSIGNED]); } + public function orderAgreements() + { + return $this->hasMany(OrderAgreement::class, "order_id","id"); + } + public function isOngoing() { return $this->status == self::STATUS_ONGOING; diff --git a/app/Models/Uploads.php b/app/Models/Uploads.php index b76ca17..8e0b0bf 100755 --- a/app/Models/Uploads.php +++ b/app/Models/Uploads.php @@ -5,4 +5,6 @@ namespace App\Models; class Uploads extends SoftDeletesModel { protected $table = "uploads"; + + } diff --git a/database/migrations/2025_08_19_180151_update_project_add_mobile.php b/database/migrations/2025_08_19_180151_update_project_add_mobile.php index 9dfa2ed..37203df 100644 --- a/database/migrations/2025_08_19_180151_update_project_add_mobile.php +++ b/database/migrations/2025_08_19_180151_update_project_add_mobile.php @@ -20,7 +20,7 @@ class UpdateProjectAddMobile extends Migration // 投诉电话 $table->string("complaint_mobile")->nullable()->comment("投诉电话"); // 协议 - $table->mediumText("agreement")->nullable()->comment("协议"); + $table->mediumText("content")->nullable()->comment("协议"); }); } diff --git a/routes/web.php b/routes/web.php index d5b15d9..1670b0f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -190,6 +190,8 @@ Route::group(["namespace" => "Manager", "prefix" => "manager"], function () { Route::post('create-patient', 'OrdersController@createPatient'); Route::post('create-order', 'OrdersController@createOrder'); + Route::post('create-order-agreements', 'OrdersController@createOrderAgreements'); + Route::post('update-order/{id}', 'OrdersController@updateOrder'); Route::post('checkout-order/{id}', 'OrdersController@checkoutOrder'); Route::post('update-order-items', 'OrdersController@updateOrderItems');