Просмотр исходного кода

订单查询师傅详情接口

whitefang 1 год назад
Родитель
Сommit
2f73aff98d

+ 12 - 0
app/api/controller/ServiceOrderController.php

@@ -35,6 +35,18 @@ class ServiceOrderController extends BaseApiController
         return $this->data($result);
     }
 
+    public function getMasterWorker()
+    {
+        $params = (new ServiceOrderValidate())->goCheck('worker',[
+            'user_id' => $this->userId,
+        ]);
+        $result = ServiceOrderLogic::getMasterWorker($params);
+        if (false === $result) {
+            return $this->fail(ServiceOrderLogic::getError());
+        }
+        return $this->data($result);
+    }
+
     /**
      * 提交订单
      * @return \think\response\Json

+ 43 - 0
app/api/logic/ServiceOrderLogic.php

@@ -125,6 +125,47 @@ class ServiceOrderLogic extends BaseLogic
         ];
     }
 
+    /**
+     * 获取订单工程师信息
+     * * @param $params
+     * * @return array|false
+ */
+    public static function getMasterWorker($params)
+    {
+        try {
+            $order_info =  \app\common\model\recharge\RechargeOrder::with(['order_goods'=>function ($query) {
+                $query->visible(['goods_name','goods_image','goods_number','good_unit']);
+            },'service_work'=>function ($query) {
+                $query->visible(['real_name','mobile','address','service_status','appointment_time','master_worker_id','work_images','finished_images','finished_time'])->append(['service_status_text','user_service_status','user_service_status_text']);
+            }])
+                ->visible(['id','sn','payment_type','order_total','order_amount','pay_status','create_time','title','work_id'])
+                ->where([
+                    'order_type' => 0,
+                    'user_id' => $params['user_id'],
+                    'sn'=>$params['sn']
+                ])->findOrEmpty()->toArray();
+
+            $data = [];
+            //获取师傅参数
+            if(!empty($order_info['service_work']['master_worker_id'])){
+                $worker = MasterWorker::find($order_info['service_work']['master_worker_id']);
+                $data['avatar'] = $worker['avatar'];
+                $data['real_name'] = $worker['real_name'];
+                $data['worker_number'] = $worker['worker_number'];
+                $data['mobile'] = $worker['mobile'];
+                $maintain_exp_type = !empty($worker->worker_register->maintain_exp_type)?$worker->worker_register->maintain_exp_type:'';
+                $data['worker_exp'] = DictData::where(['type_value'=>'worker_exp_type','value'=>$maintain_exp_type])->value('name');
+            }
+
+            return  $data;
+
+        }
+        catch (\Exception $e) {
+            self::setError($e->getMessage());
+            return false;
+        }
+    }
+
     /**
      * 获取订单详情
      * @param $params
@@ -146,6 +187,7 @@ class ServiceOrderLogic extends BaseLogic
                 ])->findOrEmpty()->toArray();
 
             $order_info['master_worker'] = [
+                'avatar' => '',
                 'real_name'=>'',
                 'worker_number'=>'',
                 'mobile'=>'',
@@ -159,6 +201,7 @@ class ServiceOrderLogic extends BaseLogic
             //获取师傅参数
             if(!empty($order_info['service_work']['master_worker_id'])){
                 $worker = MasterWorker::find($order_info['service_work']['master_worker_id']);
+                $order_info['master_worker']['avatar'] = $worker['avatar'];
                 $order_info['master_worker']['real_name'] = $worker['real_name'];
                 $order_info['master_worker']['worker_number'] = $worker['worker_number'];
                 $order_info['master_worker']['mobile'] = $worker['mobile'];

+ 6 - 0
app/api/validate/ServiceOrderValidate.php

@@ -41,11 +41,17 @@ class ServiceOrderValidate extends BaseValidate
         return $this->only(['address','appointment_time','pay_way','goods_id','contact_number','contact_people']);
     }
 
+
     public function sceneDetail()
     {
         return $this->only(['sn']);
     }
 
+    public function sceneWorker()
+    {
+        return $this->only(['sn']);
+    }
+
     public function sceneCancel()
     {
         return $this->only(['sn']);