|
|
@@ -29,6 +29,7 @@ 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();
|
|
|
+ $admin_company_id = request('admin_company_id', '0');
|
|
|
$company_id = request('access_token.company_id', '0');
|
|
|
$is_admin = request('access_token.is_admin', '0');
|
|
|
// 查询条件
|
|
|
@@ -60,14 +61,22 @@ class Employee extends Controller
|
|
|
if ($city_id) $map[] = ['city_ids', 'like', "%,$city_id,%"];
|
|
|
if ($role_name) {
|
|
|
$role_where = [['name', 'like', "%$role_name%"]];
|
|
|
- if ($is_admin != 1 && $company_id != 0) $role_where[] = ['company_id', '=', $company_id];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) {
|
|
|
+ $role_where[] = ['company_id', '=', $company_id];
|
|
|
+ } else {
|
|
|
+ $role_where[] = ['company_id', '=', $admin_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 (count($role_ids) > 0) {
|
|
|
$employee_where = [];
|
|
|
- if ($is_admin != 1 && $company_id != 0) $employee_where[] = ['company_id', '=', $company_id];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) {
|
|
|
+ $employee_where[] = ['company_id', '=', $company_id];
|
|
|
+ } else {
|
|
|
+ $employee_where[] = ['company_id', '=', $admin_company_id];
|
|
|
+ }
|
|
|
$EmployeeModel = $EmployeeModel->whereIn('role_id', $role_ids)->where($employee_where);
|
|
|
}
|
|
|
//多选查询地区
|
|
|
@@ -82,13 +91,21 @@ class Employee extends Controller
|
|
|
if ($department_ids && is_string($department_ids)) {
|
|
|
$department_ids = explode(',', $department_ids);
|
|
|
$employee_department_where = [];
|
|
|
- if ($is_admin != 1 && $company_id != 0) $employee_department_where[] = ['company_id', '=', $company_id];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) {
|
|
|
+ $employee_department_where[] = ['company_id', '=', $company_id];
|
|
|
+ } else {
|
|
|
+ $employee_department_where[] = ['company_id', '=', $admin_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];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) {
|
|
|
+ $map[] = ['company_id', '=', $company_id];
|
|
|
+ } else {
|
|
|
+ $map[] = ['company_id', '=', $admin_company_id];
|
|
|
+ }
|
|
|
$result = $EmployeeModel
|
|
|
->where($map)
|
|
|
->select($field)
|
|
|
@@ -101,8 +118,14 @@ class Employee extends Controller
|
|
|
//查询部门信息
|
|
|
$department_ids = $value['department_ids'] != '' ? explode(',', $value['department_ids']) : '';
|
|
|
$department_name = $department_ids ? $DepartmentModel->whereIn('id', $department_ids)->pluck('name')->toarray() : '';
|
|
|
+ $role_where =['id' => $value['role_id']];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) {
|
|
|
+ $role_where['company_id'] = $company_id;
|
|
|
+ } else {
|
|
|
+ $role_where['company_id'] = $admin_company_id;
|
|
|
+ }
|
|
|
//查询角色信息
|
|
|
- $role_info = $RolesModel->where(['id' => $value['role_id']])->first();
|
|
|
+ $role_info = $RolesModel->where($role_where)->first();
|
|
|
//查询城市信息
|
|
|
$city_ids = explode(',', $value['city_ids']);
|
|
|
$city_info = [];
|
|
|
@@ -129,6 +152,7 @@ class Employee extends Controller
|
|
|
public function all(Request $request, EmployeeModel $EmployeeModel, RolesModel $RolesModel, EmployeeAreaModel $EmployeeAreaModel, EmployeeDepartmentModel $EmployeeDepartmentModel)
|
|
|
{
|
|
|
$request->scene('all')->validate();
|
|
|
+ $admin_company_id = request('admin_company_id', '0');
|
|
|
$company_id = request('access_token.company_id', '0');
|
|
|
$is_admin = request('access_token.is_admin', '0');
|
|
|
// 查询条件
|
|
|
@@ -160,15 +184,23 @@ class Employee extends Controller
|
|
|
if ($city_id) $map[] = ['city_ids', 'like', "%,$city_id,%"];
|
|
|
// 权限判断
|
|
|
if ($role_name) {
|
|
|
- $role_where = [['name', 'like', "%$role_name%"]];
|
|
|
- if ($is_admin != 1 && $company_id != 0) $role_where[] = ['company_id', '=', $company_id];
|
|
|
+ $role_where = [['name', 'like', "%$role_name%"]];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) {
|
|
|
+ $role_where[] = ['company_id', '=', $company_id];
|
|
|
+ } else {
|
|
|
+ $role_where[] = ['company_id', '=', $admin_company_id];
|
|
|
+ }
|
|
|
$role_ids = $RolesModel->where($role_where)->pluck('id')->toarray();
|
|
|
}
|
|
|
$field = ['id', 'name'];
|
|
|
// 查询数据
|
|
|
if (count($role_ids) > 0) {
|
|
|
- $employee_where = [];
|
|
|
- if ($is_admin != 1 && $company_id != 0) $employee_where[] = ['company_id', '=', $company_id];
|
|
|
+ $employee_where = [];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) {
|
|
|
+ $employee_where[] = ['company_id', '=', $company_id];
|
|
|
+ } else {
|
|
|
+ $employee_where[] = ['company_id', '=', $admin_company_id];
|
|
|
+ }
|
|
|
$EmployeeModel = $EmployeeModel->whereIn('role_id', $role_ids)->where($employee_where);
|
|
|
}
|
|
|
//多选查询地区
|
|
|
@@ -183,13 +215,21 @@ class Employee extends Controller
|
|
|
if ($department_ids && is_string($department_ids)) {
|
|
|
$department_ids = explode(',', $department_ids);
|
|
|
$employee_department_where = [];
|
|
|
- if ($is_admin != 1 && $company_id != 0) $employee_department_where[] = ['company_id', '=', $company_id];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) {
|
|
|
+ $employee_department_where[] = ['company_id', '=', $company_id];
|
|
|
+ } else {
|
|
|
+ $employee_department_where[] = ['company_id', '=', $admin_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];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) {
|
|
|
+ $map[] = ['company_id', '=', $company_id];
|
|
|
+ } else {
|
|
|
+ $map[] = ['company_id', '=', $admin_company_id];
|
|
|
+ }
|
|
|
$result = $EmployeeModel
|
|
|
->where($map)
|
|
|
->select($field)
|
|
|
@@ -210,21 +250,33 @@ class Employee extends Controller
|
|
|
public function detail(Request $request, EmployeeModel $EmployeeModel, DepartmentModel $DepartmentModel, RolesModel $RolesModel, CitysModel $CitysModel)
|
|
|
{
|
|
|
$request->scene('detail')->validate();
|
|
|
+ $admin_company_id = request('admin_company_id', '0');
|
|
|
$company_id = request('access_token.company_id', '0');
|
|
|
- $is_admin = request('access_token.is_admin', '0');//是否管理员操作 0=是1=否
|
|
|
+ $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'];
|
|
|
+ // 权限判断
|
|
|
+ if ($is_admin != 1 && $company_id != 0) {
|
|
|
+ $map['company_id'] = $company_id;
|
|
|
+ } else {
|
|
|
+ $map['company_id'] = $admin_company_id;
|
|
|
+ }
|
|
|
$data = $EmployeeModel->where($map)->select($field)->first();
|
|
|
if (!$data) return json_send(['code' => 'error', 'msg' => '记录不存在']);
|
|
|
// 查询部门信息
|
|
|
$department_ids = explode(',', $data['department_ids']);
|
|
|
$department_info = $DepartmentModel->whereIn('id', $department_ids)->select(['id', 'name'])->get()->toarray();
|
|
|
// 查询角色信息
|
|
|
- $role_info = $RolesModel->where(['id' => $data['role_id']])->first();
|
|
|
+ $role_where = ['id' => $data['role_id']];
|
|
|
+ // 权限判断
|
|
|
+ if ($is_admin != 1 && $company_id != 0) {
|
|
|
+ $role_where['company_id'] = $company_id;
|
|
|
+ } else {
|
|
|
+ $role_where['company_id'] = $admin_company_id;
|
|
|
+ }
|
|
|
+ $role_info = $RolesModel->where($role_where)->first();
|
|
|
// 查询城市信息
|
|
|
$city_ids = explode(',', $data['city_ids']);
|
|
|
$city_info = [];
|
|
|
@@ -250,8 +302,9 @@ class Employee extends Controller
|
|
|
public function add(Request $request, EmployeeModel $EmployeeModel)
|
|
|
{
|
|
|
$request->scene('add')->validate();
|
|
|
+ $admin_company_id = request('admin_company_id', '0');
|
|
|
$company_id = request('access_token.company_id', '0');
|
|
|
- $is_admin = request('access_token.is_admin', '0');//是否管理员操作 0=是1=否
|
|
|
+ $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
|
|
|
// 接收数据
|
|
|
$all_data = request()->all();
|
|
|
$user_company_id = request('access_token.company_id', '0');
|
|
|
@@ -263,15 +316,23 @@ 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;
|
|
|
+ if ($is_admin != 1 && $company_id != 0) {
|
|
|
+ $map['company_id'] = $company_id;
|
|
|
+ } else {
|
|
|
+ $map['company_id'] = $admin_company_id;
|
|
|
+ }
|
|
|
$data = $EmployeeModel->where($map)->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;
|
|
|
+ } else {
|
|
|
+ $map['company_id'] = $admin_company_id;
|
|
|
+ }
|
|
|
$data = $EmployeeModel->where($map)->first();
|
|
|
if ($data) return json_send(['code' => 'error', 'msg' => '员工手机号记录已存在']);
|
|
|
// 写入数据表
|
|
|
+ $all_data['company_id'] = $company_id;
|
|
|
$result = $EmployeeModel->addEmployee($all_data);
|
|
|
// 如果操作失败
|
|
|
if (!$result) return json_send(['code' => 'error', 'msg' => '新增失败']);
|
|
|
@@ -279,7 +340,7 @@ class Employee extends Controller
|
|
|
$admin_id = request('access_token.uid', 0); //用户ID
|
|
|
$table_name = $EmployeeModel->getTable();
|
|
|
$notes_type = 1; //操作类型,1添加,2修改,3=删除
|
|
|
- $this->addAdminHistory('人员信息管理-员工管理',$user_company_id, $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' => '新增成功']);
|
|
|
}
|
|
|
@@ -294,8 +355,9 @@ class Employee extends Controller
|
|
|
public function edit(Request $request, EmployeeModel $EmployeeModel)
|
|
|
{
|
|
|
$request->scene('edit')->validate();
|
|
|
+ $admin_company_id = request('admin_company_id', '0');
|
|
|
$company_id = request('access_token.company_id', '0');
|
|
|
- $is_admin = request('access_token.is_admin', '0');//是否管理员操作 0=是1=否
|
|
|
+ $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
|
|
|
// 接收参数
|
|
|
$id = request('id', 0);
|
|
|
// 接收数据
|
|
|
@@ -309,20 +371,34 @@ class Employee extends Controller
|
|
|
$all_data['password'] = request('password', '');
|
|
|
$where = ['id' => $id];
|
|
|
// 权限判断
|
|
|
- if ($is_admin != 1 && $company_id != 0) $where[] = ['company_id', '=', $company_id];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) {
|
|
|
+ $where['company_id'] = $company_id;
|
|
|
+ } else {
|
|
|
+ $where['company_id'] = $admin_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];
|
|
|
+ // 权限判断
|
|
|
+ if ($is_admin != 1 && $company_id != 0) {
|
|
|
+ $map['company_id'] = $company_id;
|
|
|
+ } else {
|
|
|
+ $map['company_id'] = $admin_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];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) {
|
|
|
+ $map['company_id'] = $company_id;
|
|
|
+ } else {
|
|
|
+ $map['company_id'] = $admin_company_id;
|
|
|
+ }
|
|
|
$data = $EmployeeModel->where($map)->where('id', '!=', $id)->first();
|
|
|
if ($data) return json_send(['code' => 'error', 'msg' => '员工手机号记录已存在']);
|
|
|
// 更新数据表
|
|
|
+ $all_data['company_id'] = $company_id;
|
|
|
$result = $EmployeeModel->updateEmployee($Employee, $all_data);
|
|
|
// 如果操作失败
|
|
|
if (!$result) return json_send(['code' => 'error', 'msg' => '修改失败']);
|
|
|
@@ -346,8 +422,9 @@ class Employee extends Controller
|
|
|
{
|
|
|
// 验证参数
|
|
|
$request->scene('set_status')->validate();
|
|
|
+ $admin_company_id = request('admin_company_id', '0');
|
|
|
$company_id = request('access_token.company_id', '0');
|
|
|
- $is_admin = request('access_token.is_admin', '0');//是否管理员操作 0=是1=否
|
|
|
+ $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
|
|
|
// 接收数据
|
|
|
$id = request('id', 0);
|
|
|
$status = request('status', 0);
|
|
|
@@ -355,7 +432,11 @@ class Employee extends Controller
|
|
|
// 查询用户
|
|
|
$where = ['id' => $id];
|
|
|
// 权限判断
|
|
|
- if ($is_admin != 1 && $company_id != 0) $where[] = ['company_id', '=', $company_id];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) {
|
|
|
+ $where['company_id'] = $company_id;
|
|
|
+ } else {
|
|
|
+ $where['company_id'] = $admin_company_id;
|
|
|
+ }
|
|
|
// 执行修改
|
|
|
$Employee = $EmployeeModel->where($where)->first();
|
|
|
if (!$Employee) {
|
|
|
@@ -372,7 +453,7 @@ class Employee extends Controller
|
|
|
// 记录行为
|
|
|
$table_name = $EmployeeModel->getTable();
|
|
|
$notes_type = 2; //操作类型,1添加,2修改,3=删除
|
|
|
- $this->addAdminHistory('人员信息管理-员工管理',$company_id, $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' => '设置成功']);
|
|
|
}
|
|
|
@@ -389,17 +470,21 @@ class Employee extends Controller
|
|
|
{
|
|
|
// 验证参数
|
|
|
$request->scene('delete')->validate();
|
|
|
+ $admin_company_id = request('admin_company_id', '0');
|
|
|
$company_id = request('access_token.company_id', '0');
|
|
|
- $is_admin = request('access_token.is_admin', '0');//是否管理员操作 0=是1=否
|
|
|
+ $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
|
|
|
// 接收数据
|
|
|
$id = request('id', 0);
|
|
|
$admin_id = request('access_token.uid', 0); //用户ID
|
|
|
// 查询用户
|
|
|
$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];
|
|
|
+ if ($is_admin != 1 && $company_id != 0) {
|
|
|
+ $where['company_id'] = $company_id;
|
|
|
+ } else {
|
|
|
+ $where['company_id'] = $admin_company_id;
|
|
|
+ }
|
|
|
// 执行删除
|
|
|
$Employee = $EmployeeModel->where($where)->first();
|
|
|
if (!$Employee) {
|