sth
This commit is contained in:
parent
b9c7d3ecc0
commit
a95d38be92
|
|
@ -371,4 +371,9 @@ class Ajax extends Backend
|
||||||
|
|
||||||
return json_encode($rs);
|
return json_encode($rs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function getItems(){
|
||||||
|
return $items = \app\admin\model\Item::where('level',1)->field('id,title as name')->select();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ use app\admin\model\Aftersale;
|
||||||
use app\admin\model\Order;
|
use app\admin\model\Order;
|
||||||
use app\admin\model\OrderDispatch;
|
use app\admin\model\OrderDispatch;
|
||||||
use app\admin\model\OrderReview;
|
use app\admin\model\OrderReview;
|
||||||
|
use app\admin\model\WorkerItem;
|
||||||
use app\common\controller\Backend;
|
use app\common\controller\Backend;
|
||||||
use PDOStatement;
|
use PDOStatement;
|
||||||
use think\Collection;
|
use think\Collection;
|
||||||
|
|
@ -134,6 +135,12 @@ class Worker extends Backend
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!empty($filter['item_id']))
|
||||||
|
{
|
||||||
|
$item_id = $filter['item_id'];
|
||||||
|
$filter['worker_ids'] = WorkerItem::where('item_id',$item_id)->column('worker_id');
|
||||||
|
}
|
||||||
|
|
||||||
//派单表
|
//派单表
|
||||||
$dispatchSubsql = $this->dispatchSubsql($filter);
|
$dispatchSubsql = $this->dispatchSubsql($filter);
|
||||||
//订单表
|
//订单表
|
||||||
|
|
@ -141,6 +148,7 @@ class Worker extends Backend
|
||||||
//评分表
|
//评分表
|
||||||
$viewSubsql = $this->viewSubsql($filter);
|
$viewSubsql = $this->viewSubsql($filter);
|
||||||
|
|
||||||
|
|
||||||
[$where, $sort, $order, $offset, $limit] = $this->buildparams();
|
[$where, $sort, $order, $offset, $limit] = $this->buildparams();
|
||||||
$list = $this->model->alias('fa_worker')
|
$list = $this->model->alias('fa_worker')
|
||||||
->with(['area2','items'])
|
->with(['area2','items'])
|
||||||
|
|
@ -167,6 +175,50 @@ class Worker extends Backend
|
||||||
->order($sort, $order)
|
->order($sort, $order)
|
||||||
->paginate($limit);
|
->paginate($limit);
|
||||||
|
|
||||||
|
$data = [];
|
||||||
|
$worker_ids = [];
|
||||||
|
foreach ($list->items() as $item){
|
||||||
|
$dt = $item->toArray();
|
||||||
|
$tel = $dt['tel'];
|
||||||
|
if (preg_match('/^\d{7,}$/', $tel)) {
|
||||||
|
$dt['tel'] = mb_substr($tel, 0, 3, 'UTF-8') . '****' . mb_substr($tel, -4, null, 'UTF-8');
|
||||||
|
} else {
|
||||||
|
// 不处理非手机号,比如中文名称
|
||||||
|
$dt['tel'] = $tel;
|
||||||
|
}
|
||||||
|
$data[] = $dt;
|
||||||
|
$worker_ids [] = $item['id'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$worker_item = WorkerItem::whereIn('worker_id',$worker_ids)->where('item_path_id',1)
|
||||||
|
->field('worker_id,item_id')->select();
|
||||||
|
|
||||||
|
$allItemList = \app\admin\model\Item::where('level',1)->select();
|
||||||
|
|
||||||
|
$allItems= [];
|
||||||
|
foreach ($allItemList as $item){
|
||||||
|
$allItems[$item->id] = $item->title;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$worker_item_map = [];
|
||||||
|
// dd($worker_item);
|
||||||
|
foreach ($worker_item as $item){
|
||||||
|
$worker_item_map[$item->worker_id] [] = $item->item_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($list as &$datum){
|
||||||
|
$worker_item = [];
|
||||||
|
// dd($worker_item_map);
|
||||||
|
if (key_exists($datum['id'],$worker_item_map)){
|
||||||
|
foreach ($worker_item_map[$datum['id']] as $item){
|
||||||
|
$worker_item[] = $allItems[$item]??'';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$datum['worker_item'] = implode(',',$worker_item);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$this->_toList($list);
|
$this->_toList($list);
|
||||||
$result = ['total' => $list->total(), 'rows' => $list->items()];
|
$result = ['total' => $list->total(), 'rows' => $list->items()];
|
||||||
return json($result);
|
return json($result);
|
||||||
|
|
@ -187,6 +239,11 @@ class Worker extends Backend
|
||||||
if(!empty($filter['end_time'])){
|
if(!empty($filter['end_time'])){
|
||||||
$viewSubsql->where('create_time','<=',$filter['end_time']);
|
$viewSubsql->where('create_time','<=',$filter['end_time']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!empty($filter['worker_ids'])){
|
||||||
|
$viewSubsql->where('worker_id','in',$filter['worker_ids']);
|
||||||
|
}
|
||||||
|
|
||||||
return $viewSubsql->group('worker_id')->buildSql();
|
return $viewSubsql->group('worker_id')->buildSql();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -218,6 +275,11 @@ class Worker extends Backend
|
||||||
$builder->where('create_time','<=',$filter['end_time']);
|
$builder->where('create_time','<=',$filter['end_time']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!empty($filter['worker_ids'])){
|
||||||
|
$builder->where('worker_id','in',$filter['worker_ids']);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$builder->group('worker_id');
|
$builder->group('worker_id');
|
||||||
return $builder->buildSql();
|
return $builder->buildSql();
|
||||||
}
|
}
|
||||||
|
|
@ -260,6 +322,9 @@ class Worker extends Backend
|
||||||
if(!empty($filter['end_time'])){
|
if(!empty($filter['end_time'])){
|
||||||
$builder->where('create_time','<=',$filter['end_time']);
|
$builder->where('create_time','<=',$filter['end_time']);
|
||||||
}
|
}
|
||||||
|
if(!empty($filter['worker_ids'])){
|
||||||
|
$builder->where('worker_id','in',$filter['worker_ids']);
|
||||||
|
}
|
||||||
|
|
||||||
//->where('dispatch_admin_id','>',0);
|
//->where('dispatch_admin_id','>',0);
|
||||||
return $builder->group('worker_id')->buildSql();
|
return $builder->group('worker_id')->buildSql();
|
||||||
|
|
@ -363,8 +428,16 @@ class Worker extends Backend
|
||||||
$filter['fa_worker.area_id'] = $this->getSelectAreaCode($area_id);
|
$filter['fa_worker.area_id'] = $this->getSelectAreaCode($area_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!empty($filter['item_id']))
|
||||||
|
{
|
||||||
|
$item_id = $filter['item_id'];
|
||||||
|
$filter['fa_worker.id'] = WorkerItem::where('item_id',$item_id)->column('worker_id');
|
||||||
|
unset($filter['item_id']);
|
||||||
|
}
|
||||||
|
|
||||||
$op = (array)json_decode($op, true);
|
$op = (array)json_decode($op, true);
|
||||||
$op['fa_worker.area_id'] = 'LIKE%';
|
$op['fa_worker.area_id'] = 'LIKE%';
|
||||||
|
$op['fa_worker.id'] = 'IN';
|
||||||
|
|
||||||
$filter = $filter ? $filter : [];
|
$filter = $filter ? $filter : [];
|
||||||
$where = [];
|
$where = [];
|
||||||
|
|
|
||||||
|
|
@ -29,10 +29,12 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'echarts', 'echarts-t
|
||||||
columns: [
|
columns: [
|
||||||
[
|
[
|
||||||
//{field: 'id', title: __('Id')},
|
//{field: 'id', title: __('Id')},
|
||||||
{field: 'id', title: __('ID'),visible:true},
|
{field: 'id', title: __('ID'),operate:false,visible:true},
|
||||||
{field: 'name', title: __('姓名'), class: 'autocontent', formatter: Table.api.formatter.content,operate: "like"},
|
{field: 'name', title: __('姓名'), class: 'autocontent', formatter: Table.api.formatter.content,operate: "like"},
|
||||||
{field: 'tel', title: __('电话'),operate: "like"},
|
{field: 'tel', title: __('电话'),operate: "like"},
|
||||||
{field: 'area2.merge_name', title: __('城市'), class: 'autocontent', formatter: Table.api.formatter.content,operate: false},
|
{field: 'area2.merge_name', title: __('城市'), class: 'autocontent', formatter: Table.api.formatter.content,operate: false},
|
||||||
|
{field: 'worker_item', title: __('工种'), class: 'autocontent', formatter: Table.api.formatter.content,operate: false},
|
||||||
|
|
||||||
{field: 'star', title: __('评分'),operate: false},
|
{field: 'star', title: __('评分'),operate: false},
|
||||||
{field: 'performance', title: __('总业绩(¥)'), operate: false},
|
{field: 'performance', title: __('总业绩(¥)'), operate: false},
|
||||||
{field: 'get_count', title: __('接单数'),operate: false,sortable:true},
|
{field: 'get_count', title: __('接单数'),operate: false,sortable:true},
|
||||||
|
|
@ -81,6 +83,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'echarts', 'echarts-t
|
||||||
visible: false
|
visible: false
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{field: 'item_id', title: __('工程'), searchList:$.getJSON("ajax/getItems"),operate: 'IN',visible:false},
|
||||||
|
|
||||||
|
|
||||||
{field: 'operate', title: __('Operate'), table: table2, events: Table.api.events.operate, formatter: Table.api.formatter.operate,
|
{field: 'operate', title: __('Operate'), table: table2, events: Table.api.events.operate, formatter: Table.api.formatter.operate,
|
||||||
buttons: [
|
buttons: [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user