|
@@ -1541,19 +1541,36 @@ class NewsService implements NewsServiceInterface
|
|
|
/*
|
|
/*
|
|
|
* 获取职位
|
|
* 获取职位
|
|
|
* */
|
|
* */
|
|
|
- public function getPositionList(array $data): array
|
|
|
|
|
- {
|
|
|
|
|
- if(isset($data['zwpid']) && $data['zwpid']!=null){
|
|
|
|
|
- $result = JobPosition::where('zwpid',$data['zwpid'])->get()->all();
|
|
|
|
|
- }else{
|
|
|
|
|
- $result = JobPosition::where('zwpid',0)->get()->all();
|
|
|
|
|
- }
|
|
|
|
|
- if (empty($result)) {
|
|
|
|
|
- return Result::error("暂无此职位", 0);
|
|
|
|
|
- }
|
|
|
|
|
- return Result::success($result);
|
|
|
|
|
|
|
+ public function getPositionList(array $data): array
|
|
|
|
|
+ {
|
|
|
|
|
+ if (isset($data['zwpid']) && $data['zwpid'] != null) {
|
|
|
|
|
+ $result = JobPosition::where('zwpid', $data['zwpid'])->get()->all();
|
|
|
|
|
+
|
|
|
|
|
+ }else{
|
|
|
|
|
+ // 获取所有职位,按 zwpid 分组,pid=0 的为顶级
|
|
|
|
|
+ $all = JobPosition::get();
|
|
|
|
|
+ // $roots = $all->where('pid', 0)->values(); // 顶级职位集合(对象)
|
|
|
|
|
+ // 从已查询出的集合里直接过滤出 zwpid=0 的记录,不再每条重新查库
|
|
|
|
|
+ $pid_onejob = $all->filter(function ($item) {
|
|
|
|
|
+ return $item->zwpid == 0;
|
|
|
|
|
+ })->values();
|
|
|
|
|
+ $pid_otherjob = $all->filter(function ($item) {
|
|
|
|
|
+ return $item->zwpid != 0;
|
|
|
|
|
+ })->values()->all();
|
|
|
|
|
+ $other_pid = array_column($pid_otherjob,'zwpid');
|
|
|
|
|
+ $result = [];
|
|
|
|
|
+ foreach ($pid_onejob as $key => $value) {
|
|
|
|
|
+ if(in_array($value['zwid'],$other_pid)){
|
|
|
|
|
+ $result[$key] = $value;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- /*
|
|
|
|
|
|
|
+ if (empty($result)) {
|
|
|
|
|
+ return Result::error("暂无此职位", 0);
|
|
|
|
|
+ }
|
|
|
|
|
+ return Result::success($result);
|
|
|
|
|
+ }
|
|
|
|
|
+ /*
|
|
|
* 获取工作性质-菜单
|
|
* 获取工作性质-菜单
|
|
|
* */
|
|
* */
|
|
|
public function getJobNature(array $data): array
|
|
public function getJobNature(array $data): array
|
|
@@ -1797,120 +1814,265 @@ class NewsService implements NewsServiceInterface
|
|
|
return Result::success($result);
|
|
return Result::success($result);
|
|
|
}
|
|
}
|
|
|
// 20250306 招聘
|
|
// 20250306 招聘
|
|
|
- // 封装处理由问题
|
|
|
|
|
- function processJob($job, $data)
|
|
|
|
|
- {
|
|
|
|
|
- return $job->map(function ($job) use ($data) {
|
|
|
|
|
- $category = $job->cat_arr_id ?? '';
|
|
|
|
|
- $cityid = $job->city_arr_id ?? '';
|
|
|
|
|
- $city = json_decode($cityid, true);
|
|
|
|
|
- $pinyin = '';
|
|
|
|
|
- $level = json_decode($category, true);
|
|
|
|
|
- // 路由
|
|
|
|
|
- if (!empty($level) && is_array($level)) {
|
|
|
|
|
- $pinyin = WebsiteCategory::whereIn('category_id', $level)
|
|
|
|
|
- ->where('website_id', $data['website_id']) // 添加网站ID条件
|
|
|
|
|
- ->orderByRaw('FIELD(category_id, ' . implode(',', $level) . ')')
|
|
|
|
|
- ->get(['aLIas_pinyin'])
|
|
|
|
|
- ->pluck('aLIas_pinyin')
|
|
|
|
|
- ->implode('/');
|
|
|
|
|
- if (empty($pinyin)) {
|
|
|
|
|
- $pinyin = $pinyin->aLIas_pinyin ?? '';
|
|
|
|
|
- }
|
|
|
|
|
- $job->pinyin = $pinyin;
|
|
|
|
|
- }
|
|
|
|
|
- // 取职位城市-市??省
|
|
|
|
|
- if (!empty($city) && is_array($city)) {
|
|
|
|
|
- if (isset($city[1]) && !empty($city[1])) {
|
|
|
|
|
- $city = District::where('id', $city[1])->first(['name']);
|
|
|
|
|
- $job->city_name = $city->name ?? '';
|
|
|
|
|
- } else if (isset($city[0]) && !empty($city[0])) {
|
|
|
|
|
- $city = District::where('id', $city[0])->first(['name']);
|
|
|
|
|
- $job->city_name = $city->name ?? '';
|
|
|
|
|
- } else {
|
|
|
|
|
- $job->city_name = '全国';
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- // 取公司详细地址拼接
|
|
|
|
|
- if (isset($job->address_arr_id) && !empty($job->address_arr_id)) {
|
|
|
|
|
- $address_id = json_decode($job->address_arr_id, true) ?? [];
|
|
|
|
|
- if (is_array($address_id) && !empty($address_id)) {
|
|
|
|
|
- $address = District::whereIn('id', $address_id)
|
|
|
|
|
- ->orderBy('level', 'asc')
|
|
|
|
|
- ->get(['name'])
|
|
|
|
|
- ->pluck('name')
|
|
|
|
|
- ->implode('');
|
|
|
|
|
- // $job->address_name = $address ?? '';
|
|
|
|
|
- $job->address_name = ($address ?? '') . ($job->address ?? '');
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- // 获取简历地址最后一级
|
|
|
|
|
- if(isset($job->city_id) &&!empty($job->city_id)){
|
|
|
|
|
- $city_name = District::where('id', $job->city_id)->first(['name']);
|
|
|
|
|
- $job->hunt_cityname = $city_name->name?? '';
|
|
|
|
|
|
|
+ // 封装处理由问题
|
|
|
|
|
+ function processJob($job, $data)
|
|
|
|
|
+ {
|
|
|
|
|
+ return $job->map(function ($job) use ($data) {
|
|
|
|
|
+ $category = $job->cat_arr_id ?? '';
|
|
|
|
|
+ $cityid = $job->city_arr_id ?? '';
|
|
|
|
|
+ $city = json_decode($cityid, true);
|
|
|
|
|
+ $pinyin = '';
|
|
|
|
|
+ $level = json_decode($category, true);
|
|
|
|
|
+ // 路由
|
|
|
|
|
+ if (!empty($level) && is_array($level)) {
|
|
|
|
|
+ $pinyin = WebsiteCategory::whereIn('category_id', $level)
|
|
|
|
|
+ ->where('website_id', $data['website_id']) // 添加网站ID条件
|
|
|
|
|
+ ->orderByRaw('FIELD(category_id, ' . implode(',', $level) . ')')
|
|
|
|
|
+ ->get(['aLIas_pinyin'])
|
|
|
|
|
+ ->pluck('aLIas_pinyin')
|
|
|
|
|
+ ->implode('/');
|
|
|
|
|
+ if (empty($pinyin)) {
|
|
|
|
|
+ $pinyin = $pinyin->aLIas_pinyin ?? '';
|
|
|
|
|
+ }
|
|
|
|
|
+ $job->pinyin = $pinyin;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 取职位城市-市??省
|
|
|
|
|
+ if (!empty($city) && is_array($city)) {
|
|
|
|
|
+ if (isset($city[1]) && !empty($city[1])) {
|
|
|
|
|
+ $city = District::where('id', $city[1])->first(['name']);
|
|
|
|
|
+ $job->city_name = $city->name ?? '';
|
|
|
|
|
+ } else if (isset($city[0]) && !empty($city[0])) {
|
|
|
|
|
+ $city = District::where('id', $city[0])->first(['name']);
|
|
|
|
|
+ $job->city_name = $city->name ?? '';
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $job->city_name = '全国';
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 取公司详细地址拼接
|
|
|
|
|
+ if (isset($job->address_arr_id) && !empty($job->address_arr_id)) {
|
|
|
|
|
+ $address_id = json_decode($job->address_arr_id, true) ?? [];
|
|
|
|
|
+ if (is_array($address_id) && !empty($address_id)) {
|
|
|
|
|
+ $address = District::whereIn('id', $address_id)
|
|
|
|
|
+ ->orderBy('level', 'asc')
|
|
|
|
|
+ ->get(['name'])
|
|
|
|
|
+ ->pluck('name')
|
|
|
|
|
+ ->implode('');
|
|
|
|
|
+ // $job->address_name = $address ?? '';
|
|
|
|
|
+ $job->address_name = ($address ?? '') . ($job->address ?? '');
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 获取简历地址最后一级
|
|
|
|
|
+ if(isset($job->city_id) &&!empty($job->city_id)){
|
|
|
|
|
+ $city_name = District::where('id', $job->city_id)->first(['name']);
|
|
|
|
|
+ $job->hunt_cityname = $city_name->name?? '';
|
|
|
|
|
+ }
|
|
|
|
|
+ // 取行业
|
|
|
|
|
+ if (!empty($job->hy_id) || !empty($job->industry) || !empty($job->company_hy_id)) {
|
|
|
|
|
+ $hy_name = JobIndustry::when($job, function ($query) use ($job) {
|
|
|
|
|
+ if (!empty($job->industry)) {
|
|
|
|
|
+ $query->where('hyid', $job->industry);
|
|
|
|
|
+ } else if (!empty($job->hy_id)) {
|
|
|
|
|
+ $query->where('hyid', $job->hy_id);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $query->where('hyid', $job->company_hy_id);
|
|
|
|
|
+ }
|
|
|
|
|
+ })->first(['hyname']);
|
|
|
|
|
+ $job->hy_name = $hy_name->hyname ?? '';
|
|
|
|
|
+ }
|
|
|
|
|
+ // 取职位
|
|
|
|
|
+ if ((isset($job->zw_id) && !empty($job->zw_id)) || (isset($job->job) && !empty($job->job))) {
|
|
|
|
|
+ $zwid = $job->job ?? $job->zw_id;
|
|
|
|
|
+ $zw_name = JobPosition::where('zwid', $zwid)->first(['zwname']);
|
|
|
|
|
+ $job->zw_name = $zw_name->zwname ?? '';
|
|
|
|
|
+ }
|
|
|
|
|
+ // 取具体职位
|
|
|
|
|
+ if ((isset($job->jtzw_id) && !empty($job->jtzw_id)) || (isset($job->job_name_get) && !empty($job->job_name_get))) {
|
|
|
|
|
+ $jtzwid = $job->job_name_get ?? $job->jtzw_id;
|
|
|
|
|
+ $jtzw_name = JobPosition::where('zwid', $jtzwid)->first(['zwname']);
|
|
|
|
|
+ $job->jtzw_name = $jtzw_name->zwname ?? '';
|
|
|
|
|
+ }
|
|
|
|
|
+ // 取工作经验
|
|
|
|
|
+ if (isset($job->experience) && !empty($job->experience)) {
|
|
|
|
|
+ $experience = JobEnum::where('egroup', 'years')->where('evalue', $job->experience)->first(['ename']);
|
|
|
|
|
+ $job->experience_name = $experience->ename ?? '';
|
|
|
|
|
+ }
|
|
|
|
|
+ // 取学历
|
|
|
|
|
+ if (isset($job->educational) && !empty($job->educational)) {
|
|
|
|
|
+ $education = JobEnum::where('egroup', 'education')->where('evalue', $job->educational)->first(['ename']);
|
|
|
|
|
+ $job->education_name = $education->ename ?? '';
|
|
|
|
|
+ }
|
|
|
|
|
+ // 语言
|
|
|
|
|
+ if (isset($job->language) && !empty($job->language)) {
|
|
|
|
|
+ $language = JobEnum::where('egroup', 'language')->where('evalue', $job->language)->first(['ename']);
|
|
|
|
|
+ $job->language_name = $language->ename ?? '';
|
|
|
|
|
+ }
|
|
|
|
|
+ // 薪资
|
|
|
|
|
+ if (isset($job->salary) && !empty($job->salary)) {
|
|
|
|
|
+ $salary = JobEnum::where('egroup', 'income')->where('evalue', $job->salary)->first(['ename']);
|
|
|
|
|
+ $job->salary_name = $salary->ename ?? '';
|
|
|
|
|
+ }
|
|
|
|
|
+ // 职位性质
|
|
|
|
|
+ if (isset($job->nature_id) && !empty($job->nature_id)) {
|
|
|
|
|
+ $job_nature = JobEnum::where('egroup', 'nature')->where('evalue', $job->nature_id)->first(['ename']);
|
|
|
|
|
+ $job->job_nature_name = $job_nature->ename ?? '';
|
|
|
|
|
+ }
|
|
|
|
|
+ // 公司规模
|
|
|
|
|
+ if (isset($job->company_size) && !empty($job->company_size)) {
|
|
|
|
|
+ $company_size = JobEnum::where('egroup', 'cosize')->where('evalue', $job->company_size)->first(['ename']);
|
|
|
|
|
+ $job->company_size_name = $company_size->ename ?? '';
|
|
|
|
|
+ }
|
|
|
|
|
+ // 公司性质
|
|
|
|
|
+ if (isset($job->company_nature) && !empty($job->company_nature)) {
|
|
|
|
|
+ $company_nature = JobNature::where('id', $job->company_nature)->first(['nature_name']);
|
|
|
|
|
+ $job->company_nature_name = $company_nature->nature_name ?? '';
|
|
|
|
|
+ }
|
|
|
|
|
+ // $job->pinyin = $pinyin;
|
|
|
|
|
+ return $job;
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 行业分类管理 ------1121
|
|
|
|
|
+ * @param array $data
|
|
|
|
|
+ * @return array
|
|
|
|
|
+ */
|
|
|
|
|
+ public function getJobIndustryList(array $data):array
|
|
|
|
|
+ {
|
|
|
|
|
+ $page = $data['page'] ?? 1;
|
|
|
|
|
+ $page_size = $data['page_size'] ?? 10;
|
|
|
|
|
+ if(isset($data['hyname']) && !empty($data['hyname'])){
|
|
|
|
|
+ $where = ['hyname', 'like', '%' . $data['hyname'] . '%'];
|
|
|
|
|
+ }else{
|
|
|
|
|
+ $where = [];
|
|
|
|
|
+ }
|
|
|
|
|
+ $rs_query = JobIndustry::when(!empty($where), function ($query) use ($where) {
|
|
|
|
|
+ $query->where([$where]); // 修复:将条件包装成二维数组
|
|
|
|
|
+ })
|
|
|
|
|
+ ->orderBy('updated_at', 'desc');
|
|
|
|
|
+ $count = $rs_query->count();
|
|
|
|
|
+ $hy = $rs_query->offset(($page - 1) * $page_size)->limit($page_size)->get()->all();
|
|
|
|
|
+ $result = [
|
|
|
|
|
+ 'count' => $count,
|
|
|
|
|
+ 'list' => $hy,
|
|
|
|
|
+ ];
|
|
|
|
|
+ if(empty($hy)){
|
|
|
|
|
+ return Result::success('暂无数据');
|
|
|
|
|
+ }
|
|
|
|
|
+ return Result::success($result);
|
|
|
|
|
+ }
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 添加行业分类
|
|
|
|
|
+ * @param array $data
|
|
|
|
|
+ * @return array
|
|
|
|
|
+ */
|
|
|
|
|
+ public function addJobIndustry(array $data):array
|
|
|
|
|
+ {
|
|
|
|
|
+ $hy_name = JobIndustry::where('hyname', $data['hyname'])->first(['hyid']);
|
|
|
|
|
+ if(!empty($hy_name)){
|
|
|
|
|
+ return Result::error('行业分类已存在');
|
|
|
|
|
+ }
|
|
|
|
|
+ $hy = JobIndustry::insertGetId($data);
|
|
|
|
|
+ if(empty($hy)){
|
|
|
|
|
+ return Result::error('添加失败');
|
|
|
|
|
+ }
|
|
|
|
|
+ return Result::success($hy);
|
|
|
|
|
+ }
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 更新行业分类
|
|
|
|
|
+ * @param array $data
|
|
|
|
|
+ * @return array
|
|
|
|
|
+ */
|
|
|
|
|
+ public function upJobIndustry(array $data):array
|
|
|
|
|
+ {
|
|
|
|
|
+ $hy_query = JobIndustry::get();
|
|
|
|
|
+ $hy_ids = $hy_query->pluck('hyid')->toArray();
|
|
|
|
|
+ $hy_names = $hy_query->pluck('hyname')->toArray();
|
|
|
|
|
+ if(!in_array($data['hyid'], $hy_ids)){
|
|
|
|
|
+ return Result::error('行业分类不存在');
|
|
|
|
|
+ }
|
|
|
|
|
+ if(isset($data['hyname']) && !empty($data['hyname'])){
|
|
|
|
|
+ $other_key_hy = array_search($data['hyid'], $hy_ids);
|
|
|
|
|
+ // return Result::success($other_key_hy);
|
|
|
|
|
+ unset($hy_names[$other_key_hy]);
|
|
|
|
|
+ if(in_array($data['hyname'], $hy_names)){
|
|
|
|
|
+ return Result::error('行业分类名称已存在');
|
|
|
}
|
|
}
|
|
|
- // 取行业
|
|
|
|
|
- if (!empty($job->hy_id) || !empty($job->industry) || !empty($job->company_hy_id)) {
|
|
|
|
|
- $hy_name = JobIndustry::when($job, function ($query) use ($job) {
|
|
|
|
|
- if (!empty($job->industry)) {
|
|
|
|
|
- $query->where('hyid', $job->industry);
|
|
|
|
|
- } else if (!empty($job->hy_id)) {
|
|
|
|
|
- $query->where('hyid', $job->hy_id);
|
|
|
|
|
- } else {
|
|
|
|
|
- $query->where('hyid', $job->company_hy_id);
|
|
|
|
|
- }
|
|
|
|
|
- })->first(['hyname']);
|
|
|
|
|
- $job->hy_name = $hy_name->hyname ?? '';
|
|
|
|
|
- }
|
|
|
|
|
- // 取职位
|
|
|
|
|
- if ((isset($job->zw_id) && !empty($job->zw_id)) || (isset($job->job) && !empty($job->job))) {
|
|
|
|
|
- $zwid = $job->job ?? $job->zw_id;
|
|
|
|
|
- $zw_name = JobPosition::where('zwid', $zwid)->first(['zwname']);
|
|
|
|
|
- $job->zw_name = $zw_name->zwname ?? '';
|
|
|
|
|
- }
|
|
|
|
|
- // 取具体职位
|
|
|
|
|
- if ((isset($job->jtzw_id) && !empty($job->jtzw_id)) || (isset($job->job_name_get) && !empty($job->job_name_get))) {
|
|
|
|
|
- $jtzwid = $job->job_name_get ?? $job->jtzw_id;
|
|
|
|
|
- $jtzw_name = JobPosition::where('zwid', $jtzwid)->first(['zwname']);
|
|
|
|
|
- $job->jtzw_name = $jtzw_name->zwname ?? '';
|
|
|
|
|
- }
|
|
|
|
|
- // 取工作经验
|
|
|
|
|
- if (isset($job->experience) && !empty($job->experience)) {
|
|
|
|
|
- $experience = JobEnum::where('egroup', 'years')->where('evalue', $job->experience)->first(['ename']);
|
|
|
|
|
- $job->experience_name = $experience->ename ?? '';
|
|
|
|
|
- }
|
|
|
|
|
- // 取学历
|
|
|
|
|
- if (isset($job->educational) && !empty($job->educational)) {
|
|
|
|
|
- $education = JobEnum::where('egroup', 'education')->where('evalue', $job->educational)->first(['ename']);
|
|
|
|
|
- $job->education_name = $education->ename ?? '';
|
|
|
|
|
- }
|
|
|
|
|
- // 语言
|
|
|
|
|
- if (isset($job->language) && !empty($job->language)) {
|
|
|
|
|
- $language = JobEnum::where('egroup', 'language')->where('evalue', $job->language)->first(['ename']);
|
|
|
|
|
- $job->language_name = $language->ename ?? '';
|
|
|
|
|
- }
|
|
|
|
|
- // 薪资
|
|
|
|
|
- if (isset($job->salary) && !empty($job->salary)) {
|
|
|
|
|
- $salary = JobEnum::where('egroup', 'income')->where('evalue', $job->salary)->first(['ename']);
|
|
|
|
|
- $job->salary_name = $salary->ename ?? '';
|
|
|
|
|
- }
|
|
|
|
|
- // 职位性质
|
|
|
|
|
- if (isset($job->nature_id) && !empty($job->nature_id)) {
|
|
|
|
|
- $job_nature = JobEnum::where('egroup', 'nature')->where('evalue', $job->nature_id)->first(['ename']);
|
|
|
|
|
- $job->job_nature_name = $job_nature->ename ?? '';
|
|
|
|
|
- }
|
|
|
|
|
- // 公司规模
|
|
|
|
|
- if (isset($job->company_size) && !empty($job->company_size)) {
|
|
|
|
|
- $company_size = JobEnum::where('egroup', 'cosize')->where('evalue', $job->company_size)->first(['ename']);
|
|
|
|
|
- $job->company_size_name = $company_size->ename ?? '';
|
|
|
|
|
- }
|
|
|
|
|
- // 公司性质
|
|
|
|
|
- if (isset($job->company_nature) && !empty($job->company_nature)) {
|
|
|
|
|
- $company_nature = JobNature::where('id', $job->company_nature)->first(['nature_name']);
|
|
|
|
|
- $job->company_nature_name = $company_nature->nature_name ?? '';
|
|
|
|
|
- }
|
|
|
|
|
- // $job->pinyin = $pinyin;
|
|
|
|
|
- return $job;
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ $hy = JobIndustry::where('hyid', $data['hyid'])->update($data);
|
|
|
|
|
+ if(empty($hy)){
|
|
|
|
|
+ return Result::error('更新失败');
|
|
|
|
|
+ }
|
|
|
|
|
+ return Result::success($hy);
|
|
|
|
|
+ }
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 删除行业分类
|
|
|
|
|
+ * @param array $data
|
|
|
|
|
+ * @return array
|
|
|
|
|
+ */
|
|
|
|
|
+ public function delJobIndustry(array $data):array
|
|
|
|
|
+ {
|
|
|
|
|
+ $hy_id = JobIndustry::where('hyid', $data['hyid'])->first(['hyid']);
|
|
|
|
|
+ if(empty($hy_id)){
|
|
|
|
|
+ return Result::error('行业分类不存在');
|
|
|
|
|
+ }
|
|
|
|
|
+ $hy = JobIndustry::where('hyid', $data['hyid'])->delete();
|
|
|
|
|
+ if(empty($hy)){
|
|
|
|
|
+ return Result::error('删除失败');
|
|
|
|
|
+ }
|
|
|
|
|
+ return Result::success($hy);
|
|
|
|
|
+ }
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 职位分类-列表
|
|
|
|
|
+ * @param array $data
|
|
|
|
|
+ * @return array
|
|
|
|
|
+ */
|
|
|
|
|
+ public function getJobPositionList(array $data):array
|
|
|
|
|
+ {
|
|
|
|
|
+ $page = $data['page'] ?? 1;
|
|
|
|
|
+ $page_size = $data['page_size'] ?? 10;
|
|
|
|
|
+ if(isset($data['zwname']) && !empty($data['zwname'])){
|
|
|
|
|
+ $where = ['zwname', 'like', '%' . $data['zwname'] . '%'];
|
|
|
|
|
+ }else{
|
|
|
|
|
+ $where = [];
|
|
|
|
|
+ }
|
|
|
|
|
+ if($data['is_pid'] == 0){
|
|
|
|
|
+ $zwids = JobPosition::where('zwpid', 0)
|
|
|
|
|
+ ->when(!empty($where), function ($query) use ($where) {
|
|
|
|
|
+ $query->where([$where]); // 修复:将条件包装成二维数组
|
|
|
|
|
+ })
|
|
|
|
|
+ ->orderBy('updated_at', 'desc')
|
|
|
|
|
+ ->pluck('zwid');
|
|
|
|
|
+ }else{
|
|
|
|
|
+ $zwids = JobPosition::where('zwpid', '!=', 0)
|
|
|
|
|
+ ->when(!empty($where), function ($query) use ($where) {
|
|
|
|
|
+ $query->where([$where]); // 修复:将条件包装成二维数组
|
|
|
|
|
+ })
|
|
|
|
|
+ ->orderBy('updated_at', 'desc')
|
|
|
|
|
+ ->pluck('zwpid');
|
|
|
|
|
+ $zwids = array_values(array_unique($zwids->toArray()));
|
|
|
|
|
+ }
|
|
|
|
|
+ // return Result::success($rs_query);
|
|
|
|
|
+ $count = JobPosition::whereIn('zwid', $zwids)->count();
|
|
|
|
|
+ $position = JobPosition::whereIn('zwid', $zwids)
|
|
|
|
|
+ ->offset(($page - 1) * $page_size)
|
|
|
|
|
+ ->limit($page_size)->get()
|
|
|
|
|
+ ->map(function ($item) use ($data, $where) {
|
|
|
|
|
+ $item->children = $item->where('zwpid', $item->zwid)
|
|
|
|
|
+ ->when(!empty($where) && $data['is_pid'] == 1, function ($query) use ($where) {
|
|
|
|
|
+ $query->where([$where]); // 修复:将条件包装成二维数组
|
|
|
|
|
+ })
|
|
|
|
|
+ ->get();
|
|
|
|
|
+ return $item;
|
|
|
|
|
+ })
|
|
|
|
|
+ ->all();
|
|
|
|
|
+ $result = [
|
|
|
|
|
+ 'count' => $count,
|
|
|
|
|
+ 'list' => $position,
|
|
|
|
|
+ ];
|
|
|
|
|
+ if(empty($result)){
|
|
|
|
|
+ return Result::success('暂无数据');
|
|
|
|
|
+ }
|
|
|
|
|
+ return Result::success($result);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
}
|
|
}
|