<?php /** * 员工信息接口 */ namespace app\api\controller\v1\common; use app\api\exception\DbLinkException; use app\api\exception\StaffIsNotFoundException; use app\api\validate\IdMustBeIntValidate; use think\Db; class Staff { /** * 接口一:需要获取登陆人信息的接口 返回值: id name 工号 部门id 角色id(多个的话,逗号分隔) */ public function getCurrentStaff(){ (new IdMustBeIntValidate())->verify(); $id = request()->get('id'); //如果不是超级管理员 $staff = Db::table('staff') ->field('staff.id,name,email,d_id,iden_id,si.title as iden_name') ->leftJoin(['staff_identity'=>'si'],'si.id = staff.iden_id') ->where('staff.id','=',$id) ->find(); if(!$staff) throw new StaffIsNotFoundException; $staff_roles = Db::table('staff_role')->where('staff_id', '=', $staff['id'])->column('role_id'); $staff['roles'] = implode(',',$staff_roles); return json([ 'code' => 200, 'message' => 'ok', 'data' => $staff ]); } //获取员工列表信息 public function getStaffs(){ $staffs = Db::table('staff') ->field('staff.id,name,email,d_id,iden_id,si.title as iden_name') ->leftJoin(['staff_identity'=>'si'],'si.id = staff.iden_id') ->select(); if(!$staffs){ throw new DbLinkException; } foreach ($staffs as $k => $v){ //获取角色信息 $staff_roles = Db::table('staff_role')->where('staff_id', '=', $v['id'])->column('role_id'); if(is_array($staff_roles) && count($staff_roles) > 0){ $roles = implode(',',$staff_roles); } else { $roles = $staff_roles ?: ''; } $staffs[$k]['roles'] = $roles; } return json([ 'code' => 200, 'message' => 'ok', 'data' => $staffs ]); } public function getIdentities(){ $data = Db::table('staff_identity')->column('id,title,level'); if(!$data){ throw new DbLinkException; } return json([ 'code' => 200, 'message' => 'ok', 'data' => $data ]); } }