Parcourir la source

Merge remote-tracking branch 'origin/master'

whitefang il y a 1 an
Parent
commit
b4532586c3

+ 10 - 2
app/adminapi/lists/master_worker/MasterWorkerLists.php

@@ -64,13 +64,20 @@ class MasterWorkerLists extends BaseAdminDataLists implements ListsSearchInterfa
      */
     public function lists(): array
     {
-        return MasterWorker::alias('mw')
+         return MasterWorker::alias('mw')
             ->join('master_worker_register mwr', 'mwr.master_worker_id = mw.id')
+             ->leftJoin('service_work sw','sw.master_worker_id = mw.id and sw.service_status !=4')
             ->where($this->searchWhere)
             ->where($this->queryWhere())
 //            ->field(['mw.id', 'mw.sn', 'mw.avatar', 'mw.real_avatar','mw.worker_number', 'mw.real_name', 'mw.nickname', 'mw.account', 'mw.password', 'mw.mobile', 'mw.sex', 'mw.channel', 'mw.is_disable', 'mw.login_ip', 'mw.login_time', 'mw.is_new_user', 'mw.estimate_money', 'mw.user_money', 'mw.earnest_money', 'mw.exp'])
+             ->field([
+                 'mw.*',
+                 'mwr.maintain_exp_type',
+                 'mwr.other_exp_type',
+                 'SUM(CASE WHEN sw.work_status NOT IN (7,8) THEN 1 ELSE 0 END) work_total'])
             ->limit($this->limitOffset, $this->limitLength)
             ->order(['mw.id' => 'desc'])
+            ->group(['sw.master_worker_id'])
             ->select()
             ->toArray();
     }
@@ -86,7 +93,8 @@ class MasterWorkerLists extends BaseAdminDataLists implements ListsSearchInterfa
     {
         return MasterWorker::alias('mw')
             ->join('master_worker_register mwr', 'mwr.master_worker_id = mw.id')
-            ->where($this->searchWhere)->where($this->queryWhere())->count();
+            ->leftJoin('service_work sw','sw.master_worker_id = mw.id and sw.service_status !=4')
+            ->where($this->searchWhere)->where($this->queryWhere()) ->group(['sw.master_worker_id'])->count();
     }
 
 }

+ 7 - 0
app/adminapi/lists/works/ServiceWorkLists.php

@@ -98,7 +98,14 @@ class ServiceWorkLists extends BaseAdminDataLists implements ListsSearchInterfac
             },
             'goodsCategory' =>function (Query $query) {
                 $query->field('id,name');
+            },
+            'allocateWorkerLog' =>function(Query $query){
+                $query->field('id,work_id,opera_log,create_time');
+            },
+            'serviceWorkLog' =>function(Query $query){
+                $query->field('id,work_id,opera_log,create_time');
             }
+
         ])
             ->where($this->searchWhere)
             ->where($this->queryWhere())

+ 9 - 0
app/adminapi/logic/works/ServiceWorkLogic.php

@@ -274,6 +274,8 @@ class ServiceWorkLogic extends BaseLogic
                 throw new \Exception('师傅不存在或被禁用');
             }
             $work->master_worker_id = $params['master_worker_id'];
+            $work->work_status = 1;
+            $work->dispatch_time = time();
             $work->save();
             $work_log = [
                 'work_id'=>$work->id,
@@ -300,7 +302,14 @@ class ServiceWorkLogic extends BaseLogic
             $result = ServiceWork::with([
                 'worker'=> function(Query $query) {
                     $query->field('id,worker_number,real_name');
+                },
+                'allocateWorkerLog' =>function(Query $query){
+                    $query->field('id,work_id,opera_log,create_time');
+                },
+                'serviceWorkLog' =>function(Query $query){
+                    $query->field('id,work_id,opera_log,create_time');
                 }
+
             ])->append(['id','work_status_text','service_status_text'])
                 ->findOrEmpty($params['id'])->toArray();
 

+ 10 - 1
app/common/model/works/ServiceWork.php

@@ -39,7 +39,16 @@ class ServiceWork extends BaseModel
             PerformanceLogic::calculatePerformance($model);
         }
     }
-
+    //分配记录
+    public function allocateWorkerLog()
+    {
+        return $this->hasMany(ServiceWorkAllocateWorkerLog::class,'work_id','id')->order(['id'=>'desc']);
+    }
+    //跟进记录
+    public function serviceWorkLog()
+    {
+        return $this->hasMany(ServiceWorkLog::class,'work_id','id')->order(['id'=>'desc']);
+    }
     public function rechargeOrder()
     {
         return $this->hasMany(RechargeOrder::class,'work_id','id');