request->token['uid']; $Employee = Employee::with(['org'])->where(['uid'=>$uid])->find(); if(!$Employee) return json(['code'=>1 , 'msg'=>'获取信息失败']); $where = [ 'org_id' => $Employee['is_manager'] == 0 ? $Employee['org_id'] : $Employee['org']['pid'], 'is_manager' => 1 ]; $lastId = Employee::where($where)->column('id'); if(!empty($keyword)) { $condition[] = ['name','like','%'.$keyword.'%']; } if($Employee['org']['pid'] == 0){ $condition[] = ['org_id' , '=' , $Employee['org']['id']]; }else{ $orgId = orgParentIds($Employee['org_id']); $condition[] = ['org_id','in',$orgId]; } $condition[] = ['is_manager', '=', 1]; $condition[] = ['state', '=', '在职']; $condition[] = ['grant_id', '=', '0']; $list = Employee::with(['user' => function ($query) { $query->field('id,headimgurl'); }])->where('uid','<>',$uid) ->where($condition) ->group('id') ->field('id,name,uid') ->select()->toArray(); $SortArray = []; foreach($list as $rs) { if ($rs['name']) { $letter = strtoupper(hanziInitials($rs['name'])); $data = [ 'id'=>$rs['id'], 'name'=>$rs['name'], 'uid'=>$rs['uid'], 'headimgurl'=>$rs['user']['headimgurl'], 'checked'=>in_array($rs['id'] , $lastId) ? true : false ]; $SortArray[$letter][] = $data; } } //首字母排序 ksort($SortArray); // 上次选择的审核人 $last_where['uid'] = $uid; $last = (new DailyWorkModel())->where($last_where)->order('addtime desc')->findOrEmpty(); if (!$last->isEmpty()) { $last_user = explode(',', $last['reporting_object']); } else { $last_user = []; } return json(['code'=>0 , 'msg'=>'抄送人员列表' , 'data'=>$SortArray, 'last'=> $last_user]); } /* * 提交日报 * type: day每天 , week周 , month月 */ public function submit_daily() { $data = Request::only(['type' , 'current_work' , 'next_plan' , 'other_matters' , 'enclosure_file' , 'reporting_object','weixin_media'=>'','media_id'=>'']); $data['uid'] = $this->request->token['uid']; DailyWorkModel::insert($data); return json(['code'=>0 , 'msg'=>'汇报成功']); } /* * 我发送、收到的列表 * option : sendout 发送 , received 收到 */ public function send_record($page , $option) { $uid = $this->request->token['uid']; $list = DailyWorkModel::with(['user' => function ($query) { $query->field('id,headimgurl'); },'employee']); $option == 'received' ? $list->whereRaw("FIND_IN_SET($uid , reporting_object) and del=0") : $list->where(['uid'=>$uid , 'del'=>0]); $data = $list->field('id,uid,current_work,next_plan,addtime,unread_comments,type,reporting_object_view')->order('addtime','desc')->page($page , 20)->select()->toArray(); $dateArray = []; foreach($data as &$rs) { //我收到的日报记录是否已经阅读 $rs['view'] = in_array($uid , explode(',',$rs['reporting_object_view'])) ? true : false; $rs['date'] = date('Y-m-d',strtotime($rs['addtime'])); $rs['time'] = date('H:i',strtotime($rs['addtime'])); if($rs['date'] == date('Y-m-d')){ $dateArray['今天'][] = $rs; }elseif($rs['date'] == date("Y-m-d",strtotime("-1 day"))){ $dateArray['昨天'][] = $rs; }else{ $dateArray[$rs['date']][] = $rs; } } return json(['code'=>0 , 'msg'=>'发送列表' , 'data'=>$dateArray]); } /* * 日报内容详情 */ public function details($id) { $uid = $this->request->token['uid']; $data = DailyWorkModel::with(['user' => function ($query) { $query->field('id,headimgurl'); },'employee']) ->where(['id'=>$id , 'del'=>0]) ->field('id,uid,type,current_work,next_plan,other_matters,enclosure_file,reporting_object,addtime,unread_comments,reporting_object_view') ->find(); $reporting_object = Employee::with(['user' => function ($query) { $query->field('id,headimgurl'); }])->where('uid','in',$data['reporting_object'])->field('name,uid')->select(); //自己查看详情评论阅读数清零 if($data['uid'] == $uid && $data['unread_comments'] > 0) { $data->unread_comments = 0; $data->save(); } //抄送人查看详情浏览记录 $rs = array_values(explode(',',$data['reporting_object'])); $rsview = array_values(explode(',',$data['reporting_object_view'])); if(in_array($uid , $rs) && !in_array($uid , $rsview)) { $data->reporting_object_view = empty($data['reporting_object_view']) ? $uid : $data['reporting_object_view'].','.$uid; $data->save(); } //汇报对象展示 $data['reporting_object'] = $reporting_object; return json(['code'=>0 , 'msg'=>'详情' , 'data'=>$data]); } /* * 评论列表 */ public function comment_list() { $param = Request::only(['id','page']); $list = DailyWorkComment::with(['employee','joinemployee','user'])->where(['join_id'=>$param['id']])->field('id,uid,comment,pid,parent_uid,addtime')->page($param['page'] , 20)->order('addtime')->select(); return json(['code'=>0 , 'msg'=>'评论列表' , 'data'=>$list]); } /* * 发送评论 */ public function send_comments() { $param = Request::only(['daily_work_id','parent_id','parent_uid','comment']); $work = DailyWorkModel::where(['id'=>$param['daily_work_id'] , 'del'=>0])->field('id,unread_comments')->find(); if(!$work) return json(['code'=>1 , 'msg'=>'日报内容不存在']); if(empty($param['comment'])) return json(['code'=>1 , 'msg'=>'请输入评论内容']); $data = [ 'uid' => $this->request->token['uid'], 'comment' => $param['comment'], 'join_id' => $param['daily_work_id'], 'pid' => $param['parent_id'], 'parent_uid' => $param['parent_uid'] ]; DailyWorkComment::insert($data); //评论时日报评论数增加 $work->unread_comments += 1; $work->save(); return json(['code'=>0 , 'msg'=>'评论成功']); } } ?>