|
|
@@ -14,6 +14,7 @@ use think\facade\Db;
|
|
|
class MasterWorkerServiceOrderLists extends BaseAdminDataLists implements ListsSearchInterface
|
|
|
{
|
|
|
|
|
|
+ public $sqlJoin = '';
|
|
|
|
|
|
/**
|
|
|
* @notes 设置搜索条件
|
|
|
@@ -26,6 +27,29 @@ class MasterWorkerServiceOrderLists extends BaseAdminDataLists implements ListsS
|
|
|
return [];
|
|
|
}
|
|
|
|
|
|
+ public function queryWhere()
|
|
|
+ {
|
|
|
+ $where = [];
|
|
|
+ if (isset($this->params['real_name']) && !empty($this->params['real_name'])) {
|
|
|
+ $where[] = ['a.real_name','like' ,"%".$this->params['real_name']."%"];
|
|
|
+ }
|
|
|
+ if (isset($this->params['worker_number']) && !empty($this->params['worker_number'])) {
|
|
|
+ $where[] = ['a.worker_number','like' ,"%".$this->params['worker_number']."%"];
|
|
|
+ }
|
|
|
+ if (isset($this->params['recruiting_behalf']) && !empty($this->params['recruiting_behalf'])) {
|
|
|
+ $where[] = ['a.recruiting_behalf','like' ,"%".$this->params['recruiting_behalf']."%"];
|
|
|
+ }
|
|
|
+ if (!empty($this->params['start_time'])) {
|
|
|
+ //$where[] = ['b.update_time', '>=', strtotime($this->params['start_time'])];
|
|
|
+ $this->sqlJoin .= ' AND b.update_time >= '.strtotime($this->params['start_time']);
|
|
|
+ }
|
|
|
+ if (!empty($this->params['end_time'])) {
|
|
|
+ //$where[] = ['b.update_time', '<=', strtotime($this->params['end_time'])];
|
|
|
+ $this->sqlJoin .= ' AND b.update_time <= '.strtotime($this->params['end_time']);
|
|
|
+ }
|
|
|
+ return $where;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* @notes 获取列表
|
|
|
@@ -38,15 +62,19 @@ class MasterWorkerServiceOrderLists extends BaseAdminDataLists implements ListsS
|
|
|
*/
|
|
|
public function lists(): array
|
|
|
{
|
|
|
+ $queryWhere = $this->queryWhere();
|
|
|
return Db::name('master_worker')->alias('a')->field([
|
|
|
'a.id','a.real_name','a.nickname','a.worker_number','a.recruiting_behalf',
|
|
|
Db::raw("SUM(CASE WHEN b.service_status = 3 THEN 1 ELSE 0 END) AS success_count"),
|
|
|
Db::raw("SUM(CASE WHEN b.service_status = 4 OR b.service_status = 5 THEN 1 ELSE 0 END) AS fail_count"),
|
|
|
Db::raw("SUM(b.work_total) work_total"),
|
|
|
+ Db::raw("SUM(b.worker_price) worker_price"),
|
|
|
])
|
|
|
- ->leftJoin('service_work b', 'a.id = b.master_worker_id')
|
|
|
- //->where('a.left_amount', '>', 0)
|
|
|
+ ->leftJoin('service_work b', 'a.id = b.master_worker_id'.$this->sqlJoin)
|
|
|
+ ->where($queryWhere)
|
|
|
->group('a.id')
|
|
|
+ ->order('a.id desc')
|
|
|
+ ->limit($this->limitOffset, $this->limitLength)
|
|
|
->select()->toArray();
|
|
|
}
|
|
|
|
|
|
@@ -59,14 +87,16 @@ class MasterWorkerServiceOrderLists extends BaseAdminDataLists implements ListsS
|
|
|
*/
|
|
|
public function count(): int
|
|
|
{
|
|
|
+ $queryWhere = $this->queryWhere();
|
|
|
return Db::name('master_worker')->alias('a')->field([
|
|
|
'a.id','a.real_name','a.nickname','a.worker_number','a.recruiting_behalf',
|
|
|
Db::raw("SUM(CASE WHEN b.service_status = 3 THEN 1 ELSE 0 END) AS success_count"),
|
|
|
Db::raw("SUM(CASE WHEN b.service_status = 4 OR b.service_status = 5 THEN 1 ELSE 0 END) AS fail_count"),
|
|
|
Db::raw("SUM(b.work_total) work_total"),
|
|
|
+ Db::raw("SUM(b.worker_price) worker_price"),
|
|
|
])
|
|
|
- ->leftJoin('service_work b', 'a.id = b.master_worker_id')
|
|
|
- //->where('a.left_amount', '>', 0)
|
|
|
+ ->leftJoin('service_work b', 'a.id = b.master_worker_id'.$this->sqlJoin)
|
|
|
+ ->where($queryWhere)
|
|
|
->group('a.id')
|
|
|
->count();
|
|
|
}
|