1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- <?php
- namespace app\sys\controller;
- use app\model\Footprints;
- use app\model\User;
- use app\model\Employee;
- use think\facade\View;
- class EmployeeCard
- {
- public function index(){
- $where[] = ['pipe_type', '=', 'card'];
- $org_ids = orgSubIds(request()->employee['root_id']);
- $where[] = ['org_id', 'in', $org_ids];
- if (!request()->isAjax()) {
- $employee_id = Footprints::where($where)->group('employee_id')->column('employee_id');
- $employee_data = Employee::where('id', 'in', $employee_id)->field('id,name')->select();
- View::assign('employee_data',$employee_data);
- return View::fetch();
- }
- $page = input('page', 1, 'intval');
- $limit = input('limit', 10, 'intval');
- $employee_id = input('employee_id');
- if(!empty($employee_id)){
- $where[] = ['employee_id','=',$employee_id];
- }
- $uid_employee = Footprints::where($where)->group('uid,employee_id')->order('uid asc')->column('uid,employee_id');
- $count = count($uid_employee);
- $list_where = array_slice($uid_employee, ($page-1) * $limit, $limit);
- foreach ($list_where as $k => $v) {
- $v['pipe_type'] = 'card';
- $list = Footprints::where($v)->order('addtime asc')->select()->toArray();
- $list_where[$k]['user_name'] = User::where('id', '=', $v['uid'])->value('nickname');
- $list_where[$k]['employee_name'] = Employee::where('id', '=', $v['employee_id'])->value('name');
- $list_where[$k]['visit_count'] = count($list);
- $visit_long = 0;
- foreach ($list as $l) {
- if ($l['visit_due_time']) {
- $visit_long += $l['visit_due_time'];
- }
- }
- $list_where[$k]['visit_long'] = $visit_long;
- $visit_latest = end($list);
- $list_where[$k]['visit_latest'] = !empty($visit_latest) ? $visit_latest['addtime'] : '';
- }
- return json(['code'=> 0, 'data'=> $list_where, 'count'=> $count]);
- }
- }
|