|
|
@@ -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;
|
|
|
}
|
|
|
|
|
|
|