diff --git a/app/Admin/Actions/Tools/ReportCommunityExport.php b/app/Admin/Actions/Tools/ReportCommunityExport.php index 727e37b..162276e 100644 --- a/app/Admin/Actions/Tools/ReportCommunityExport.php +++ b/app/Admin/Actions/Tools/ReportCommunityExport.php @@ -33,6 +33,7 @@ class ReportCommunityExport extends AbstractTool $storeId = $request->get('user_id',0); $startTime = $request->get('start_time',''); $endTime = $request->get('end_time',''); + $position = $request->get('position',''); if(empty($startTime) && empty($endTime)){ return $this->response()->error('请先选择时间查询!'); } @@ -52,10 +53,12 @@ class ReportCommunityExport extends AbstractTool if(!empty($startTime)){ $url .= '&start_time='.$startTime; } - if(!empty($endTime)){ $url .= '&end_time='.$endTime; } + if(!empty($position)){ + $url .= '&position='.$position; + } return $this->response() ->success('导出中~') ->redirect($url); @@ -68,7 +71,8 @@ class ReportCommunityExport extends AbstractTool 'market_id' => request()->input('market_id',0), 'user_id' => request()->input('user_id',0), 'start_time' => request()->input('start_time',''), - 'end_time' => request()->input('end_time',''), + 'end_time' => request()->input('end_time',''), + 'position' => request()->input('position',''), ]; } /** diff --git a/app/Admin/Controllers/v3/ReportCommunityController.php b/app/Admin/Controllers/v3/ReportCommunityController.php index 49dc670..94453bb 100644 --- a/app/Admin/Controllers/v3/ReportCommunityController.php +++ b/app/Admin/Controllers/v3/ReportCommunityController.php @@ -73,6 +73,7 @@ class ReportCommunityController extends AdminController $grid->column('plat_new_user_order_online_count','平台新增用户线上订单数'); $grid->filter(function (Filter $filter) use($marketList) { + $positionList = config('role.select_show'); // 更改为 panel 布局 $filter->panel(); $filter->where('start_time',function(){ @@ -81,10 +82,12 @@ class ReportCommunityController extends AdminController $filter->equal('end_time','结束时间')->date()->width(2); $filter->equal('user_id','懒ID')->placeholder('多个懒ID使用英文逗号隔开')->width(2); - $filter->equal('name','姓名')->width(2); + if(!$this->marketId){ $filter->equal('market_id','市场')->select($marketList)->width(2); } + $filter->equal('name','姓名')->width(2); + $filter->in('position','职位')->select($positionList)->default(9)->width(2); $filter->equal('status','状态')->select(EmployeesModel::$_STATUS)->width(2); }); @@ -128,7 +131,7 @@ class ReportCommunityController extends AdminController }else{ $this->tools[] = new ReportCommunityExport(); } - + return $content->title('社区代理点统计报表') ->body(function(Row $row){ $row->column(12,$this->grid()); @@ -149,6 +152,7 @@ class ReportCommunityController extends AdminController 'user_id' => $request->input('user_id',null), 'start_time' => $request->input('start_time',null), 'end_time' => $request->input('end_time',null), + 'position' => $request->input('position',null), ]; $name = date('Y-m-d-His',time()); diff --git a/app/Admin/Repositories/v3/ReportCommunity.php b/app/Admin/Repositories/v3/ReportCommunity.php index f6a92f9..8f2bf4c 100644 --- a/app/Admin/Repositories/v3/ReportCommunity.php +++ b/app/Admin/Repositories/v3/ReportCommunity.php @@ -61,6 +61,7 @@ class ReportCommunity extends EloquentRepository 'user_id' => $params['user_id'] ?? request()->input('user_id', null), 'market_id' => $params['market_id'] ?? request()->input('market_id',null), 'name' => $params['name'] ?? request()->input('name',false), + 'position' => $params['position'] ?? request()->input('position',false), ]; if(empty($startTime) && empty($endTime)){ return []; @@ -76,9 +77,10 @@ class ReportCommunity extends EloquentRepository }else{ $endTime = $endTime . ' 23:59:59'; } - + // 获取懒族员工 $employeesData = $this->getEmployeesData($selectsEmp,$params); + $employeesData->orderBy('id','desc'); if($isPerPage){ $employeeList = $employeesData->paginate($this->perPage); @@ -90,7 +92,7 @@ class ReportCommunity extends EloquentRepository 'data' => $list ]; } - + if(!isset($employeeList['data']) || count($employeeList['data']) <= 0 ) { return $employeeList; } @@ -169,7 +171,8 @@ class ReportCommunity extends EloquentRepository */ public function getEmployeesData($selects, $params = []) { - + $departments = config('role.department_value'); + $positions = explode(',', $departments[9]); $model = Model::select(DB::raw($selects)); if(isset($params['status']) && is_numeric($params['status'])){ @@ -185,6 +188,23 @@ class ReportCommunity extends EloquentRepository if(isset($params['market_id']) && is_numeric($params['market_id'])){ $model->where('market_id', $params['market_id']); } + + if(!(isset($params['position']) && $params['position'] == 0)){ + // $model->whereJsonContains('position', $positions); + + $model->where(function ($query) use ($positions) { + foreach($positions as $key => $value){ + if($key == 0){ + $query->whereJsonContains('position', [$value]); + }else{ + $query->orWhere(function ($query) use($value){ + $query->whereJsonContains('position', $value); + }); + } + } + }); + } + return $model; } diff --git a/config/role.php b/config/role.php index 97aa17e..afecfd8 100644 --- a/config/role.php +++ b/config/role.php @@ -38,5 +38,35 @@ return [ 29 => '骑手', 30 => '服务专员', + ], + + 'department_list' => [ + 0 => '全部', + 1 => '总经办', + 2 => '人力资源部', + 3 => '金融投资部', + 4 => '技术研发中心', + // 5 => '运营中心', + 6 => '招商营销部', + 7 => '策划部', + 8 => '运维部', + 9 => '市场部' + ], + 'department_value' => [ + 0 => '', + 1 => '1,2', + 2 => '3,27', + 3 => '5,28', + 4 => '4,8,14,19,20,21,22', + // 5 => '', + 6 => '7,23', + 7 => '15,17,18', + 8 => '13,16,25', + 9 => '9,10,11,12,26,29,30' + ], + + 'select_show' => [ + 0 => '全部', + 9 => '市场部' ] ];