|
|
@@ -29,6 +29,8 @@ class Employee extends Controller
|
|
|
public function list(Request $request, EmployeeModel $EmployeeModel, DepartmentModel $DepartmentModel, RolesModel $RolesModel, CitysModel $CitysModel, EmployeeAreaModel $EmployeeAreaModel, EmployeeDepartmentModel $EmployeeDepartmentModel)
|
|
|
{
|
|
|
$request->scene('list')->validate();
|
|
|
+ $company_id = request('access_token.company_id', '0');
|
|
|
+ $is_admin = request('access_token.is_admin', '0');
|
|
|
// 查询条件
|
|
|
$map = [];
|
|
|
$limit = request('limit', config('page_num', 10));
|
|
|
@@ -57,12 +59,16 @@ class Employee extends Controller
|
|
|
if ($employee_code) $map[] = ['employee_code', 'like', "%$employee_code%"];
|
|
|
if ($city_id) $map[] = ['city_ids', 'like', "%,$city_id,%"];
|
|
|
if ($role_name) {
|
|
|
- $role_ids = $RolesModel->where('name', 'like', "%$role_name%")->pluck('id')->toarray();
|
|
|
+ $role_where = [['name', 'like', "%$role_name%"]];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) $role_where[] = ['company_id', '=', $company_id];
|
|
|
+ $role_ids = $RolesModel->where($role_where)->pluck('id')->toarray();
|
|
|
}
|
|
|
$field = ['id', 'employee_code', 'name', 'mobile', 'department_ids', 'role_id', 'city_ids', 'open_notice', 'insert_time', 'update_time', 'status'];
|
|
|
// 查询数据
|
|
|
- if ($role_name) {
|
|
|
- $EmployeeModel = $EmployeeModel->whereIn('role_id', $role_ids);
|
|
|
+ if (count($role_ids) > 0) {
|
|
|
+ $employee_where = [];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) $employee_where[] = ['company_id', '=', $company_id];
|
|
|
+ $EmployeeModel = $EmployeeModel->whereIn('role_id', $role_ids)->where($employee_where);
|
|
|
}
|
|
|
//多选查询地区
|
|
|
if ($city_ids && is_string($city_ids)) {
|
|
|
@@ -75,11 +81,14 @@ class Employee extends Controller
|
|
|
//多选部门查询
|
|
|
if ($department_ids && is_string($department_ids)) {
|
|
|
$department_ids = explode(',', $department_ids);
|
|
|
- $subQuery = $EmployeeDepartmentModel->whereIn('department_id', $department_ids)->distinct('employee_id')->select('employee_id');
|
|
|
+ $employee_department_where = [];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) $employee_department_where[] = ['company_id', '=', $company_id];
|
|
|
+ $subQuery = $EmployeeDepartmentModel->whereIn('department_id', $department_ids)->where($employee_department_where)->distinct('employee_id')->select('employee_id');
|
|
|
$EmployeeModel = $EmployeeModel->whereIn('id', function ($query1) use ($subQuery) {
|
|
|
$query1->select('employee_id')->fromSub($subQuery, 'sub1');
|
|
|
});
|
|
|
}
|
|
|
+ if ($is_admin != 1 && $company_id != 0) $map[] = ['company_id', '=', $company_id];
|
|
|
$result = $EmployeeModel
|
|
|
->where($map)
|
|
|
->select($field)
|
|
|
@@ -100,7 +109,7 @@ class Employee extends Controller
|
|
|
if (count($city_ids) > 0) {
|
|
|
$city_info = $CitysModel->whereIn('id', $city_ids)->pluck('name');
|
|
|
}
|
|
|
- $result['data'][$key]['department_ids'] = $value['department_ids'] != '' ? substr($value['department_ids'], 1, strlen($value['department_ids']) -2):'';
|
|
|
+ $result['data'][$key]['department_ids'] = $value['department_ids'] != '' ? substr($value['department_ids'], 1, strlen($value['department_ids']) - 2) : '';
|
|
|
$result['data'][$key]['department_name'] = $department_name;
|
|
|
$result['data'][$key]['role_name'] = isset($role_info['name']) ? $role_info['name'] : '';
|
|
|
$result['data'][$key]['city_info'] = $city_info;
|
|
|
@@ -120,6 +129,8 @@ class Employee extends Controller
|
|
|
public function all(Request $request, EmployeeModel $EmployeeModel, RolesModel $RolesModel, EmployeeAreaModel $EmployeeAreaModel, EmployeeDepartmentModel $EmployeeDepartmentModel)
|
|
|
{
|
|
|
$request->scene('all')->validate();
|
|
|
+ $company_id = request('access_token.company_id', '0');
|
|
|
+ $is_admin = request('access_token.is_admin', '0');
|
|
|
// 查询条件
|
|
|
$map = [];
|
|
|
$limit = request('limit', config('page_num', 10));
|
|
|
@@ -147,13 +158,18 @@ class Employee extends Controller
|
|
|
if (is_numeric($open_notice)) $map[] = ['open_notice', '=', $open_notice];
|
|
|
if ($employee_code) $map[] = ['employee_code', 'like', "%$employee_code%"];
|
|
|
if ($city_id) $map[] = ['city_ids', 'like', "%,$city_id,%"];
|
|
|
+ // 权限判断
|
|
|
if ($role_name) {
|
|
|
- $role_ids = $RolesModel->where('name', 'like', "%$role_name%")->pluck('id')->toarray();
|
|
|
+ $role_where = [['name', 'like', "%$role_name%"]];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) $role_where[] = ['company_id', '=', $company_id];
|
|
|
+ $role_ids = $RolesModel->where($role_where)->pluck('id')->toarray();
|
|
|
}
|
|
|
$field = ['id', 'name'];
|
|
|
// 查询数据
|
|
|
- if ($role_name) {
|
|
|
- $EmployeeModel = $EmployeeModel->whereIn('role_id', $role_ids);
|
|
|
+ if (count($role_ids) > 0) {
|
|
|
+ $employee_where = [];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) $employee_where[] = ['company_id', '=', $company_id];
|
|
|
+ $EmployeeModel = $EmployeeModel->whereIn('role_id', $role_ids)->where($employee_where);
|
|
|
}
|
|
|
//多选查询地区
|
|
|
if ($city_ids && is_string($city_ids)) {
|
|
|
@@ -166,11 +182,14 @@ class Employee extends Controller
|
|
|
//多选部门查询
|
|
|
if ($department_ids && is_string($department_ids)) {
|
|
|
$department_ids = explode(',', $department_ids);
|
|
|
- $subQuery = $EmployeeDepartmentModel->whereIn('department_id', $department_ids)->distinct('employee_id')->select('employee_id');
|
|
|
+ $employee_department_where = [];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) $employee_department_where[] = ['company_id', '=', $company_id];
|
|
|
+ $subQuery = $EmployeeDepartmentModel->whereIn('department_id', $department_ids)->where($employee_department_where)->distinct('employee_id')->select('employee_id');
|
|
|
$EmployeeModel = $EmployeeModel->whereIn('id', function ($query1) use ($subQuery) {
|
|
|
$query1->select('employee_id')->fromSub($subQuery, 'sub1');
|
|
|
});
|
|
|
}
|
|
|
+ if ($is_admin != 1 && $company_id != 0) $map[] = ['company_id', '=', $company_id];
|
|
|
$result = $EmployeeModel
|
|
|
->where($map)
|
|
|
->select($field)
|
|
|
@@ -191,9 +210,13 @@ class Employee extends Controller
|
|
|
public function detail(Request $request, EmployeeModel $EmployeeModel, DepartmentModel $DepartmentModel, RolesModel $RolesModel, CitysModel $CitysModel)
|
|
|
{
|
|
|
$request->scene('detail')->validate();
|
|
|
+ $company_id = request('access_token.company_id', '0');
|
|
|
+ $is_admin = request('access_token.is_admin', '0');//是否管理员操作 0=是1=否
|
|
|
// 接收参数
|
|
|
$id = request('id', 0);
|
|
|
$map = ['id' => $id];
|
|
|
+ // 权限判断
|
|
|
+ if ($is_admin != 1 && $company_id != 0) $map[] = ['company_id', '=', $company_id];
|
|
|
$field = ['id', 'employee_code', 'name', 'mobile', 'department_ids', 'duty_type', 'role_id', 'city_ids', 'open_notice', 'insert_time', 'update_time', 'status'];
|
|
|
$data = $EmployeeModel->where($map)->select($field)->first();
|
|
|
if (!$data) return json_send(['code' => 'error', 'msg' => '记录不存在']);
|
|
|
@@ -209,7 +232,7 @@ class Employee extends Controller
|
|
|
$city_info = $CitysModel->whereIn('id', $city_ids)->pluck('name');
|
|
|
}
|
|
|
//截取字符串
|
|
|
- $data['department_ids'] = $data['department_ids'] !='' ? substr($data['department_ids'], 1, strlen($data['department_ids']) -2) : '';
|
|
|
+ $data['department_ids'] = $data['department_ids'] != '' ? substr($data['department_ids'], 1, strlen($data['department_ids']) - 2) : '';
|
|
|
$data['department_name'] = isset($department_info) ? array_column($department_info, 'name') : '';
|
|
|
$data['role_name'] = isset($role_info['name']) ? $role_info['name'] : '';
|
|
|
$data['city_info'] = $city_info;
|
|
|
@@ -227,8 +250,11 @@ class Employee extends Controller
|
|
|
public function add(Request $request, EmployeeModel $EmployeeModel)
|
|
|
{
|
|
|
$request->scene('add')->validate();
|
|
|
+ $company_id = request('access_token.company_id', '0');
|
|
|
+ $is_admin = request('access_token.is_admin', '0');//是否管理员操作 0=是1=否
|
|
|
// 接收数据
|
|
|
$all_data = request()->all();
|
|
|
+ $user_company_id = request('access_token.company_id', '0');
|
|
|
$email = request('email', '');
|
|
|
$all_data['email'] = $email;
|
|
|
//查询是否存在
|
|
|
@@ -237,6 +263,9 @@ class Employee extends Controller
|
|
|
$all_data['department_ids'] = $department_ids;
|
|
|
$city_ids = request('city_ids', '');
|
|
|
$all_data['city_ids'] = $city_ids;
|
|
|
+ // 权限判断
|
|
|
+ if ($is_admin != 1 && $company_id != 0) $map[] = ['company_id', '=', $company_id];
|
|
|
+ $all_data['company_id'] = $company_id;
|
|
|
$data = $EmployeeModel->where($map)->first();
|
|
|
if ($data) return json_send(['code' => 'error', 'msg' => '员工姓名记录已存在']);
|
|
|
$map = ['mobile' => $all_data['mobile']];
|
|
|
@@ -248,10 +277,9 @@ class Employee extends Controller
|
|
|
if (!$result) return json_send(['code' => 'error', 'msg' => '新增失败']);
|
|
|
// 记录行为
|
|
|
$admin_id = request('access_token.uid', 0); //用户ID
|
|
|
- $is_admin = request('access_token.is_admin'); //是否管理员操作 0=是1=否
|
|
|
$table_name = $EmployeeModel->getTable();
|
|
|
$notes_type = 1; //操作类型,1添加,2修改,3=删除
|
|
|
- $this->addAdminHistory('人员信息管理-员工管理', $admin_id, $is_admin, $table_name, $notes_type, [], $all_data, '新增了员工' . $all_data['name'] . '信息');
|
|
|
+ $this->addAdminHistory('人员信息管理-员工管理',$user_company_id, $admin_id, $is_admin, $table_name, $notes_type, [], $all_data, '新增了员工' . $all_data['name'] . '信息');
|
|
|
// 告知结果
|
|
|
return json_send(['code' => 'success', 'msg' => '新增成功']);
|
|
|
}
|
|
|
@@ -266,6 +294,8 @@ class Employee extends Controller
|
|
|
public function edit(Request $request, EmployeeModel $EmployeeModel)
|
|
|
{
|
|
|
$request->scene('edit')->validate();
|
|
|
+ $company_id = request('access_token.company_id', '0');
|
|
|
+ $is_admin = request('access_token.is_admin', '0');//是否管理员操作 0=是1=否
|
|
|
// 接收参数
|
|
|
$id = request('id', 0);
|
|
|
// 接收数据
|
|
|
@@ -278,14 +308,18 @@ class Employee extends Controller
|
|
|
$all_data['city_ids'] = $city_ids;
|
|
|
$all_data['password'] = request('password', '');
|
|
|
$where = ['id' => $id];
|
|
|
+ // 权限判断
|
|
|
+ if ($is_admin != 1 && $company_id != 0) $where[] = ['company_id', '=', $company_id];
|
|
|
$Employee = $EmployeeModel->where($where)->first();
|
|
|
if (!$Employee) return json_send(['code' => 'error', 'msg' => '记录不存在']);
|
|
|
$oldData = $Employee->toArray();
|
|
|
//查询是否存在
|
|
|
$map = ['name' => $all_data['name']];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) $map[] = ['company_id', '=', $company_id];
|
|
|
$data = $EmployeeModel->where($map)->where('id', '!=', $id)->first();
|
|
|
if ($data) return json_send(['code' => 'error', 'msg' => '员工姓名记录已存在']);
|
|
|
$map = ['mobile' => $all_data['mobile']];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) $map[] = ['company_id', '=', $company_id];
|
|
|
$data = $EmployeeModel->where($map)->where('id', '!=', $id)->first();
|
|
|
if ($data) return json_send(['code' => 'error', 'msg' => '员工手机号记录已存在']);
|
|
|
// 更新数据表
|
|
|
@@ -294,10 +328,9 @@ class Employee extends Controller
|
|
|
if (!$result) return json_send(['code' => 'error', 'msg' => '修改失败']);
|
|
|
// 记录行为
|
|
|
$admin_id = request('access_token.uid', 0); //用户ID
|
|
|
- $is_admin = request('access_token.is_admin'); //是否管理员操作 0=是1=否
|
|
|
$table_name = $EmployeeModel->getTable();
|
|
|
$notes_type = 2; //操作类型,1添加,2修改,3=删除
|
|
|
- $this->addAdminHistory('人员信息管理-员工管理', $admin_id, $is_admin, $table_name, $notes_type,$oldData, $all_data, '修改了员工' .$oldData['name'] . '信息');
|
|
|
+ $this->addAdminHistory('人员信息管理-员工管理', $admin_id, $is_admin, $table_name, $notes_type, $oldData, $all_data, '修改了员工' . $oldData['name'] . '信息');
|
|
|
// 告知结果
|
|
|
return json_send(['code' => 'success', 'msg' => '修改成功']);
|
|
|
}
|
|
|
@@ -313,19 +346,22 @@ class Employee extends Controller
|
|
|
{
|
|
|
// 验证参数
|
|
|
$request->scene('set_status')->validate();
|
|
|
+ $company_id = request('access_token.company_id', '0');
|
|
|
+ $is_admin = request('access_token.is_admin', '0');//是否管理员操作 0=是1=否
|
|
|
// 接收数据
|
|
|
$id = request('id', 0);
|
|
|
$status = request('status', 0);
|
|
|
$admin_id = request('access_token.uid', 0); //用户ID
|
|
|
- $is_admin = request('access_token.is_admin');//是否管理员操作 0=是1=否
|
|
|
// 查询用户
|
|
|
$where = ['id' => $id];
|
|
|
+ // 权限判断
|
|
|
+ if ($is_admin != 1 && $company_id != 0) $where[] = ['company_id', '=', $company_id];
|
|
|
// 执行修改
|
|
|
$Employee = $EmployeeModel->where($where)->first();
|
|
|
if (!$Employee) {
|
|
|
return json_send(['code' => 'error', 'msg' => '记录不存在']);
|
|
|
}
|
|
|
- if($is_admin == 1 && $admin_id == $Employee->id){
|
|
|
+ if ($is_admin == 1 && $admin_id == $Employee->id) {
|
|
|
return json_send(['code' => 'error', 'msg' => '不能修改自己的状态']);
|
|
|
}
|
|
|
$Employee->status = $status;
|
|
|
@@ -336,7 +372,7 @@ class Employee extends Controller
|
|
|
// 记录行为
|
|
|
$table_name = $EmployeeModel->getTable();
|
|
|
$notes_type = 2; //操作类型,1添加,2修改,3=删除
|
|
|
- $this->addAdminHistory('人员信息管理-员工管理', $admin_id, $is_admin, $table_name, $notes_type, [], ['status' => $status], '修改了员工' . $Employee->name . '状态');
|
|
|
+ $this->addAdminHistory('人员信息管理-员工管理',$company_id, $admin_id, $is_admin, $table_name, $notes_type, [], ['status' => $status], '修改了员工' . $Employee->name . '状态');
|
|
|
// 告知结果
|
|
|
return json_send(['code' => 'success', 'msg' => '设置成功']);
|
|
|
}
|
|
|
@@ -353,18 +389,23 @@ class Employee extends Controller
|
|
|
{
|
|
|
// 验证参数
|
|
|
$request->scene('delete')->validate();
|
|
|
+ $company_id = request('access_token.company_id', '0');
|
|
|
+ $is_admin = request('access_token.is_admin', '0');//是否管理员操作 0=是1=否
|
|
|
// 接收数据
|
|
|
$id = request('id', 0);
|
|
|
$admin_id = request('access_token.uid', 0); //用户ID
|
|
|
- $is_admin = request('access_token.is_admin');//是否管理员操作 0=是1=否
|
|
|
// 查询用户
|
|
|
$where = ['id' => $id];
|
|
|
+ $company_id = request('access_token.company_id', '0');
|
|
|
+ $is_admin = request('access_token.is_admin', '0');
|
|
|
+ // 权限判断
|
|
|
+ if ($is_admin != 1 && $company_id != 0) $where[] = ['company_id', '=', $company_id];
|
|
|
// 执行删除
|
|
|
$Employee = $EmployeeModel->where($where)->first();
|
|
|
if (!$Employee) {
|
|
|
return json_send(['code' => 'error', 'msg' => '记录不存在']);
|
|
|
}
|
|
|
- if($is_admin == 1 && $admin_id == $Employee->id){
|
|
|
+ if ($is_admin == 1 && $admin_id == $Employee->id) {
|
|
|
return json_send(['code' => 'error', 'msg' => '不能删除自己']);
|
|
|
}
|
|
|
$result = $Employee->delete();
|