|
|
@@ -10,6 +10,10 @@ use App\Models\Manager\Personnel\Roles as RolesModel;
|
|
|
use App\Models\Manager\Citys as CitysModel;
|
|
|
use App\Models\Manager\Personnel\EmployeeArea as EmployeeAreaModel;
|
|
|
use App\Models\Manager\Personnel\EmployeeDepartment as EmployeeDepartmentModel;
|
|
|
+use App\Models\Manager\Personnel\EmployeeProvince as EmployeeProvinceModel;
|
|
|
+use App\Models\Manager\Personnel\EmployeePlatform as EmployeePlatformModel;
|
|
|
+use App\Models\Manager\Personnel\EmployeeOpenid as EmployeeOpenidModel;
|
|
|
+use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
/**
|
|
|
* 人员信息管理-员工管理
|
|
|
@@ -26,7 +30,7 @@ class Employee extends Controller
|
|
|
* @date 2025-12-04
|
|
|
*
|
|
|
*/
|
|
|
- public function list(Request $request, EmployeeModel $EmployeeModel, DepartmentModel $DepartmentModel, RolesModel $RolesModel, CitysModel $CitysModel, EmployeeAreaModel $EmployeeAreaModel, EmployeeDepartmentModel $EmployeeDepartmentModel)
|
|
|
+ public function list(Request $request, EmployeeModel $EmployeeModel, DepartmentModel $DepartmentModel, RolesModel $RolesModel, CitysModel $CitysModel, EmployeeAreaModel $EmployeeAreaModel, EmployeeDepartmentModel $EmployeeDepartmentModel,EmployeeProvinceModel $EmployeeProvinceModel)
|
|
|
{
|
|
|
$request->scene('list')->validate();
|
|
|
$admin_company_id = request('admin_company_id', '0');
|
|
|
@@ -132,10 +136,15 @@ class Employee extends Controller
|
|
|
if (count($city_ids) > 0) {
|
|
|
$city_info = $CitysModel->whereIn('id', $city_ids)->pluck('name');
|
|
|
}
|
|
|
+ $province_info = [];
|
|
|
+ if (count($city_ids) > 0) {
|
|
|
+ $province_info = $EmployeeProvinceModel->where('employee_id', $value['id'])->select(['id','province_id','province_name','is_city_all'])->get()->toarray();
|
|
|
+ }
|
|
|
$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;
|
|
|
+ $result['data'][$key]['province_info'] = $province_info;
|
|
|
}
|
|
|
}
|
|
|
// 加载模板
|
|
|
@@ -339,9 +348,11 @@ class Employee extends Controller
|
|
|
return json_send(['code' => 'error', 'msg' => '手机号码已绑定其它公司']);
|
|
|
}
|
|
|
//校验邮箱号码是否绑定其它公司
|
|
|
- $other_company_user = $EmployeeModel->where(['email' => $all_data['email']])->first();
|
|
|
- if ($other_company_user && $other_company_user->company_id != $all_data['company_id']) {
|
|
|
- return json_send(['code' => 'error', 'msg' => '邮箱号码已绑定其它公司']);
|
|
|
+ if (isset($all_data['email']) && $all_data['email']) {
|
|
|
+ $other_company_user = $EmployeeModel->where(['email' => $all_data['email']])->first();
|
|
|
+ if ($other_company_user && $other_company_user->company_id != $all_data['company_id']) {
|
|
|
+ return json_send(['code' => 'error', 'msg' => '邮箱号码已绑定其它公司']);
|
|
|
+ }
|
|
|
}
|
|
|
$data = $EmployeeModel->where($map)->first();
|
|
|
if ($data) return json_send(['code' => 'error', 'msg' => '员工手机号记录已存在']);
|
|
|
@@ -417,10 +428,12 @@ class Employee extends Controller
|
|
|
if ($other_company_user && $other_company_user->company_id != $all_data['company_id']) {
|
|
|
return json_send(['code' => 'error', 'msg' => '手机号码已绑定其它公司']);
|
|
|
}
|
|
|
- //校验邮箱号码是否绑定其它公司
|
|
|
- $other_company_user = $EmployeeModel->where(['email' => $all_data['email']])->first();
|
|
|
- if ($other_company_user && $other_company_user->company_id != $all_data['company_id']) {
|
|
|
- return json_send(['code' => 'error', 'msg' => '邮箱号码已绑定其它公司']);
|
|
|
+ //校验邮箱号码是否绑定其它公司
|
|
|
+ if (isset($all_data['email']) && $all_data['email']) {
|
|
|
+ $other_company_user = $EmployeeModel->where(['email' => $all_data['email']])->first();
|
|
|
+ if ($other_company_user && $other_company_user->company_id != $all_data['company_id']) {
|
|
|
+ return json_send(['code' => 'error', 'msg' => '邮箱号码已绑定其它公司']);
|
|
|
+ }
|
|
|
}
|
|
|
$data = $EmployeeModel->where($map)->where('id', '!=', $id)->first();
|
|
|
if ($data) return json_send(['code' => 'error', 'msg' => '员工手机号记录已存在']);
|
|
|
@@ -492,7 +505,7 @@ class Employee extends Controller
|
|
|
* @date 2025-12-04
|
|
|
*
|
|
|
*/
|
|
|
- public function delete(Request $request, EmployeeModel $EmployeeModel)
|
|
|
+ public function delete(Request $request, EmployeeModel $EmployeeModel, EmployeeAreaModel $EmployeeAreaModel, EmployeeDepartmentModel $EmployeeDepartmentModel, EmployeePlatformModel $EmployeePlatformModel, EmployeeOpenidModel $EmployeeOpenidModel, EmployeeProvinceModel $EmployeeProvinceModel)
|
|
|
{
|
|
|
// 验证参数
|
|
|
$request->scene('delete')->validate();
|
|
|
@@ -516,18 +529,50 @@ class Employee extends Controller
|
|
|
if (!$Employee) {
|
|
|
return json_send(['code' => 'error', 'msg' => '记录不存在']);
|
|
|
}
|
|
|
- if ($is_admin == 1 && $admin_id == $Employee->id) {
|
|
|
+ if ($is_admin == 0 && $admin_id == $Employee->id) {
|
|
|
return json_send(['code' => 'error', 'msg' => '不能删除自己']);
|
|
|
}
|
|
|
- $result = $Employee->delete();
|
|
|
- // 提示删除失败
|
|
|
- if (!$result) return json_send(['code' => 'error', 'msg' => '删除失败']);
|
|
|
- // 记录行为
|
|
|
- $table_name = $EmployeeModel->getTable();
|
|
|
- $notes_type = 3; //操作类型,1添加,2修改,3=删除
|
|
|
- $this->addAdminHistory('人员信息管理-员工管理', $admin_id, $is_admin, $table_name, $notes_type, $Employee->toarray(), [], '删除了员工' . $Employee->name . '信息');
|
|
|
- // 告知结果
|
|
|
- return json_send(['code' => 'success', 'msg' => '删除成功']);
|
|
|
+ $old_user_data = $Employee->toArray();
|
|
|
+ DB::beginTransaction();
|
|
|
+ try {
|
|
|
+ $result = $Employee->delete();
|
|
|
+ //查询用户绑定地区
|
|
|
+ $user_city_totle = $EmployeeAreaModel->where(['employee_id' => $id])->count();
|
|
|
+ if ($user_city_totle > 0) {
|
|
|
+ $EmployeeAreaModel->where(['employee_id' => $id])->delete();
|
|
|
+ }
|
|
|
+ //查询用户绑定省份
|
|
|
+ $user_province_totle = $EmployeeProvinceModel->where(['employee_id' => $id])->count();
|
|
|
+ if ($user_province_totle > 0) {
|
|
|
+ $EmployeeProvinceModel->where(['employee_id' => $id])->delete();
|
|
|
+ }
|
|
|
+ //查询用户绑定部门
|
|
|
+ $user_department_totle = $EmployeeDepartmentModel->where(['employee_id' => $id])->count();
|
|
|
+ if ($user_department_totle > 0) {
|
|
|
+ $EmployeeDepartmentModel->where(['employee_id' => $id])->delete();
|
|
|
+ }
|
|
|
+ //查询用户绑定平台
|
|
|
+ $user_platform_totle = $EmployeePlatformModel->where(['employee_id' => $id])->count();
|
|
|
+ if ($user_platform_totle > 0) {
|
|
|
+ $EmployeePlatformModel->where(['employee_id' => $id])->delete();
|
|
|
+ }
|
|
|
+ //查询用户绑定openid
|
|
|
+ $user_openid_totle = $EmployeeOpenidModel->where(['employee_id' => $id])->count();
|
|
|
+ if ($user_openid_totle > 0) {
|
|
|
+ $EmployeeOpenidModel->where(['employee_id' => $id])->delete();
|
|
|
+ }
|
|
|
+ // 记录行为
|
|
|
+ $table_name = $EmployeeModel->getTable();
|
|
|
+ $notes_type = 3; //操作类型,1添加,2修改,3=删除
|
|
|
+ $this->addAdminHistory('人员信息管理-员工管理', $admin_id, $is_admin, $table_name, $notes_type, $old_user_data, [], '删除了员工' . $old_user_data['name'] . '信息');
|
|
|
+ DB::commit();
|
|
|
+ // 告知结果
|
|
|
+ return json_send(['code' => 'success', 'msg' => '删除成功']);
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ DB::rollBack();
|
|
|
+ // 提示删除失败
|
|
|
+ if (!$result) return json_send(['code' => 'error', 'msg' => '删除失败', 'data' => $e->getMessage()]);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|