all(); $where = []; if (empty($param["org_id"])) { return sparkSuccess(dataReturn(-1, '组织org_id未传入')); } // dump($param["limit"]); if(!empty($param["username"])){ $where[] = ['admin_user.name','like','%'.$param['username'].'%']; } #连表查询 $list = (new AdminOrgUser) ->select( 'admin_org_user_role.*', 'admin_user.name', 'admin_user.nickname', 'admin_role.name as roleName','admin_role.id as roleId','admin_user.id as userId' ) ->where('admin_org_user_role.org_id', '=', $param["org_id"]) ->where($where) ->leftJoin('admin_user', 'admin_org_user_role.user_id', '=', 'admin_user.id') ->leftJoin('admin_role', 'admin_org_user_role.role_id', '=', 'admin_role.id') ->orderBy('admin_org_user_role.id', 'desc') ->paginate($param["limit"] ?? 10); return sparkSuccess(dataReturn(0, 'success', $list)); } public function getRoleList(){ $list = (new AdminRole())->select('*')->where('name','like','%项目部%')->get(); return sparkSuccess(dataReturn(0, 'success', $list)); } public function edit(){ $param = request()->post(); $saveData = []; $adminOrgUserModel = new AdminOrgUser(); if (!empty($param['role_id'])){ $adminOrgUserModel->updateById([ 'role_id' => $param['role_id'] ], $param['id']); $saveData['role_id'] = $param['role_id']; } // 更新角色 $AdminUser = new AdminUser(); if (!empty($param['password'])){ $saveData['password'] = makePassword($param['password']); } $saveData['name'] = $param['name']; $saveData['nickname']=$param['nickname']; $res = $AdminUser->updateById($saveData, $param['user_id']); return sparkSuccess(dataReturn(0, '修改成功',[])); } public function delete(){ try { $param = request()->all(); $orgUser = (new AdminOrgUser()) ->where('id', '=', $param['id']) ->first(); $orgUser->delete(); $userDel = (new AdminUser()) ->where('id','=',$orgUser['user_id']) ->first(); $userDel->delete(); return sparkSuccess(dataReturn(0, '删除成功', [])); } catch (\Exception $e) { return sparkSuccess(dataReturn(-1, $e->getMessage())); } } public function add(){ $param = request()->post(); if (empty($param["org_id"])) { return sparkSuccess(dataReturn(-1, '组织org_id未传入')); } if(empty($param['name'])){ return sparkSuccess(dataReturn(-1, '请填写用户名')); } $adminUser = new AdminUser(); $orgRoleUser = (new AdminOrgUser()); $has = $adminUser->where('name', $param['name'])->first(); if (!empty($has)){ $whereOrg[] = ['user_id', '=',$has['id']]; }else{ //如果不存在此用户则从org表中查看是否存在用户 $org_user = (new AdminUserOriginal())->where('name', '=', $param['name'])->first(); $whereOrg[] = ['user_id', '=',$org_user['id']]; } $whereOrg[] = ['org_id', '=', $param['org_id']]; $hasOrg = $orgRoleUser->where($whereOrg)->first(); //如果同一部门下用户存在 if (!empty($hasOrg)){ return sparkSuccess(dataReturn(-1, '添加失败,该人员已经存在')); } //如果用户表存在此用户则直接更新组织角色表 if (!empty($has)) { $addOrgUser = ['org_id'=>$param['org_id'],'user_id'=>$has['id'],'role_id'=>$param['role_id']]; $orgRoleUser->insertOne($addOrgUser); $adminUser->updateById(['password'=>makePassword($param['password']),'name' => $param["name"],'role_id'=>$param['role_id'], 'nickname' => $param["nickname"], 'status'=>1,'mobile' => $param["mobile"]],$has['id']); return sparkSuccess(dataReturn(0, '添加成功')); } if (empty($org_user)){ return sparkSuccess(dataReturn(-1, '添加失败,请核对用户名')); } $users = ['name' => $param["name"], 'nickname' => $param["nickname"],'role_id'=>$param['role_id'],'status'=>1,'mobile' => $param["mobile"],'password'=>trim($param['password'])]; //添加用户所用参数 $keysToExclude = ["org_id", "is_removed", "version", "use_count"]; $user = array_diff_key($users, array_flip($keysToExclude)); // 去除指定键后赋值给$user变量 //添加用户 $adminService = new AdminService(); $adminService->addAdmin($user); $addUser = $adminUser->where('name','=',$param['name'])->first(); $addOrgUser = ['org_id'=>$param['org_id'],'user_id'=>$addUser['id'],'role_id'=>$param['role_id']]; $orgRoleUser->insertOne($addOrgUser); return sparkSuccess(dataReturn(0, '添加成功', [])); } public function getUserList(){ $param = request()->all(); $userList = (new AdminUserOriginal())->where('name','like',$param['name'].'%')->get(); return sparkSuccess(dataReturn(0, 'success', $userList)); } public function addNewAccount(){ $param = request()->all(); $orgid= $param["org_id"]; if(strlen($param["password"])<6){ return sparkSuccess(dataReturn(-1, '密码长度必须大于6')); } //添加用户所用参数 $keysToExclude = ["org_id", "is_removed", "version", "use_count"]; $user = array_diff_key($param, array_flip($keysToExclude)); // 去除指定键后赋值给$user变量 //添加用户 $adminService = new AdminService(); $res = $adminService->addAdmin($user); //分配组织 分配角色 $adminOrgUserModel = new AdminOrgUser(); //获取userid $userid = (new AdminUser())->select("id") ->where("name","=",$param["name"])->get(); $orgRole=[ "org_id"=>$orgid, "user_id"=>$userid[0]["id"], "role_id"=>$param['role_id'] ]; //判断角色组织表是否存在 $where[] = ['user_id', '=', $userid[0]["id"]]; $where[] = ['org_id', '=', $orgid]; $has = $adminOrgUserModel->checkUnique($where); if (!empty($has)) { throw new ApiException('该用户已经存在', -1); } //插入角色组织表 $insertId = $adminOrgUserModel->insertOne($orgRole); return sparkSuccess(dataReturn(0, '添加成功')); } }