Parcourir la source

add - work_total

liugc il y a 1 an
Parent
commit
41e50a2143
1 fichiers modifiés avec 12 ajouts et 1 suppressions
  1. 12 1
      app/workerapi/lists/MasterWorkerRegisterLists.php

+ 12 - 1
app/workerapi/lists/MasterWorkerRegisterLists.php

@@ -3,7 +3,9 @@ namespace app\workerapi\lists;
 
 use app\common\model\master_worker_register\MasterWorkerRegister;
 use app\common\lists\ListsSearchInterface;
+use app\common\model\works\ServiceWork;
 use app\workerapi\logic\SaleLogic;
+use think\facade\Db;
 
 
 /**
@@ -43,12 +45,21 @@ class MasterWorkerRegisterLists extends BaseWorkerDataLists implements ListsSear
      */
     public function lists(): array
     {
-        return MasterWorkerRegister::where($this->searchWhere)
+        $list = MasterWorkerRegister::where($this->searchWhere)
             ->field(['*'])
             ->limit($this->limitOffset, $this->limitLength)
             ->order(['id' => 'desc'])
             ->select()
             ->toArray();
+        $workCount = array_column(ServiceWork::where('master_worker_id','>',0)
+            ->whereIn('master_worker_id', array_filter(array_column($list, 'worker_id'), function($value) { return $value != 0; })??[-1])
+            ->field(['master_worker_id',Db::raw('COUNT(id) as work_total')])
+            ->group('master_worker_id')
+            ->select()->toArray(),'work_total','master_worker_id');
+        foreach ($list as &$item) {
+            $item['work_total'] = $workCount[$item['worker_id']]??0;
+        }
+        return $list;
     }