zilong 4 anni fa
parent
commit
b25638cfd4

+ 6 - 0
app/Http/Controllers/Api/V1/EvaluateController.php

xqd xqd
@@ -8,7 +8,9 @@
 
 namespace App\Http\Controllers\Api\V1;
 
+use App\Models\DocterMessage;
 use App\Models\Evaluate;
+use App\Models\Order;
 
 class EvaluateController extends AuthController
 {
@@ -47,6 +49,10 @@ class EvaluateController extends AuthController
         $req['user_id'] = $user['id'];
         Evaluate::create($req);
 
+        //发送医生端消息
+        $order = Order::select(['order_sn'])->where('id', $req['order_id'])->first();
+        DocterMessage::saveMessage($req['docter_id'], $req['user_id'], 4, $req['order_id'], [$order['order_sn']]);
+
         return out();
     }
 }

+ 2 - 2
app/Http/Controllers/Api/V1/SuggestController.php

xqd xqd
@@ -16,7 +16,7 @@ class SuggestController extends AuthController
     {
         $user = $this->user;
 
-        $data = Suggest::with('order.docter')->where('user_id', $user['id'])->orderBy('id', 'desc')->paginate();
+        $data = Suggest::with(['suggestsDetail', 'order.docter'])->where('user_id', $user['id'])->orderBy('id', 'desc')->paginate();
 
         return out($data);
     }
@@ -28,7 +28,7 @@ class SuggestController extends AuthController
             'suggest_id' => 'required|integer',
         ]);
 
-        $data = Suggest::with('order.docter')->where('id', $req['suggest_id'])->first();
+        $data = Suggest::with(['suggestsDetail', 'order.docter'])->where('id', $req['suggest_id'])->first();
 
         return out($data);
     }

+ 24 - 0
app/Models/DocterMessage.php

xqd
@@ -0,0 +1,24 @@
+<?php
+
+namespace App\Models;
+
+class DocterMessage extends BaseModel
+{
+    public static function saveMessage($docter_id, $user_id, $type, $relation_id = 0, $param = [], $content = '')
+    {
+        if (empty($content)) {
+            $content = config('config.docter_message_map')[$type] ?? '';
+            $content = vsprintf($content, $param);
+        }
+        DocterMessage::create([
+            'docter_id' => $docter_id,
+            'status' => 1,
+            'user_id' => $user_id,
+            'type' => $type,
+            'relation_id' => $relation_id,
+            'content' => $content,
+        ]);
+
+        return true;
+    }
+}

+ 3 - 1
app/Models/Order.php

xqd xqd
@@ -62,7 +62,7 @@ class Order extends BaseModel
     //支付完成的处理方法
     public static function payCompletedHandle($order_id)
     {
-        $order = Order::select(['user_id', 'product_type', 'total_amount', 'payment_type', 'payment_amount'])->where('id', $order_id)->first();
+        $order = Order::select(['user_id', 'docter_id', 'product_type', 'total_amount', 'payment_type', 'payment_amount', 'order_sn'])->where('id', $order_id)->first();
         //发送下单消息
         if ($order['product_type'] < 6) {
             $product_type_text = config('config.product_type_map')[$order['product_type']];
@@ -81,6 +81,8 @@ class Order extends BaseModel
             $user = User::select(['balance'])->where('id', $order['user_id'])->first();
             UserMessage::saveMessage($order['user_id'], 8, $order_id, [round($order['payment_amount']/100, 2), round($user['balance']/100, 2)]);
         }
+        //发送医生端消息
+        DocterMessage::saveMessage($order['docter_id'], $order['user_id'], 1, $order_id, [$order['order_sn']]);
 
         return true;
     }

+ 5 - 0
app/Models/Suggest.php

xqd
@@ -14,4 +14,9 @@ class Suggest extends BaseModel
     {
         return $this->belongsTo(Order::class);
     }
+
+    public function suggestsDetail()
+    {
+        return $this->hasMany(SuggestsDetail::class);
+    }
 }

+ 8 - 0
app/Models/SuggestsDetail.php

xqd
@@ -0,0 +1,8 @@
+<?php
+
+namespace App\Models;
+
+class SuggestsDetail extends BaseModel
+{
+    protected $table = 'suggests_detail';
+}

+ 5 - 0
config/config.php

xqd
@@ -44,5 +44,10 @@ return [
         11 => '您已成功修改支付密码',
     ],
 
+    'docter_message_map' => [
+        1 => '您接到一个新订单,订单号%s,请尽快确认(点击查看订单详情)',
+        4 => '您的订单号为%s的订单,用户已完成评价(点击查看评价详情)',
+    ],
+
     'no_auth_function_map' => ['docter/docterList', 'docter/docterDetail'],
 ];