sth
This commit is contained in:
parent
b9c7d3ecc0
commit
a95d38be92
|
|
@ -371,4 +371,9 @@ class Ajax extends Backend
|
|||
|
||||
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\OrderDispatch;
|
||||
use app\admin\model\OrderReview;
|
||||
use app\admin\model\WorkerItem;
|
||||
use app\common\controller\Backend;
|
||||
use PDOStatement;
|
||||
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);
|
||||
//订单表
|
||||
|
|
@ -141,6 +148,7 @@ class Worker extends Backend
|
|||
//评分表
|
||||
$viewSubsql = $this->viewSubsql($filter);
|
||||
|
||||
|
||||
[$where, $sort, $order, $offset, $limit] = $this->buildparams();
|
||||
$list = $this->model->alias('fa_worker')
|
||||
->with(['area2','items'])
|
||||
|
|
@ -167,6 +175,50 @@ class Worker extends Backend
|
|||
->order($sort, $order)
|
||||
->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);
|
||||
$result = ['total' => $list->total(), 'rows' => $list->items()];
|
||||
return json($result);
|
||||
|
|
@ -187,6 +239,11 @@ class Worker extends Backend
|
|||
if(!empty($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();
|
||||
}
|
||||
|
||||
|
|
@ -218,6 +275,11 @@ class Worker extends Backend
|
|||
$builder->where('create_time','<=',$filter['end_time']);
|
||||
}
|
||||
|
||||
if(!empty($filter['worker_ids'])){
|
||||
$builder->where('worker_id','in',$filter['worker_ids']);
|
||||
}
|
||||
|
||||
|
||||
$builder->group('worker_id');
|
||||
return $builder->buildSql();
|
||||
}
|
||||
|
|
@ -260,6 +322,9 @@ class Worker extends Backend
|
|||
if(!empty($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);
|
||||
return $builder->group('worker_id')->buildSql();
|
||||
|
|
@ -363,8 +428,16 @@ class Worker extends Backend
|
|||
$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['fa_worker.area_id'] = 'LIKE%';
|
||||
$op['fa_worker.id'] = 'IN';
|
||||
|
||||
$filter = $filter ? $filter : [];
|
||||
$where = [];
|
||||
|
|
|
|||
|
|
@ -29,10 +29,12 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'echarts', 'echarts-t
|
|||
columns: [
|
||||
[
|
||||
//{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: 'tel', title: __('电话'),operate: "like"},
|
||||
{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: 'performance', title: __('总业绩(¥)'), operate: false},
|
||||
{field: 'get_count', title: __('接单数'),operate: false,sortable:true},
|
||||
|
|
@ -81,6 +83,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'echarts', 'echarts-t
|
|||
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,
|
||||
buttons: [
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user