up
This commit is contained in:
@@ -281,18 +281,9 @@ class Crawler extends BaseController
|
||||
|
||||
$treeData = $service->getPositionTree($dsdm, $examid, $bmid, $userid, (string)$aa, $cookies);
|
||||
|
||||
// 提取所有CODE作为zwdm
|
||||
$zwdmList = [];
|
||||
if (is_array($treeData)) {
|
||||
foreach ($treeData as $item) {
|
||||
if (isset($item['CODE']) && !empty($item['CODE'])) {
|
||||
$zwdmList[] = [
|
||||
'zwdm' => $item['CODE'],
|
||||
'title' => $item['TITLE'] ?? $item['CODE'],
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
$zwdmList = is_array($treeData)
|
||||
? $service->collectPositionListExcludingNocheck($treeData)
|
||||
: [];
|
||||
|
||||
return json([
|
||||
'code' => 1,
|
||||
|
||||
@@ -196,6 +196,38 @@ class CrawlerService
|
||||
return $codes;
|
||||
}
|
||||
|
||||
/**
|
||||
* 从职位树数据中收集可爬取的职位列表(排除 nocheck: true 的节点),用于下拉/勾选展示
|
||||
* @param array $treeData getPositionTree 的返回值
|
||||
* @return array[] 每项为 [ 'zwdm' => CODE, 'title' => TITLE ]
|
||||
*/
|
||||
public function collectPositionListExcludingNocheck(array $treeData): array
|
||||
{
|
||||
$list = [];
|
||||
$nodes = $treeData;
|
||||
if (isset($treeData['data']) && is_array($treeData['data'])) {
|
||||
$nodes = $treeData['data'];
|
||||
} elseif (isset($treeData['tree']) && is_array($treeData['tree'])) {
|
||||
$nodes = $treeData['tree'];
|
||||
}
|
||||
foreach ($nodes as $item) {
|
||||
if (!is_array($item)) {
|
||||
continue;
|
||||
}
|
||||
$nocheck = $item['nocheck'] ?? $item['noCheck'] ?? null;
|
||||
if ($nocheck === true || $nocheck === 1 || (is_string($nocheck) && strtolower($nocheck) === 'true')) {
|
||||
continue;
|
||||
}
|
||||
if (isset($item['CODE']) && $item['CODE'] !== '') {
|
||||
$list[] = [
|
||||
'zwdm' => $item['CODE'],
|
||||
'title' => $item['TITLE'] ?? $item['CODE'],
|
||||
];
|
||||
}
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取职位详细信息
|
||||
* @param string $zwdm 职位代码
|
||||
|
||||
@@ -836,13 +836,10 @@
|
||||
continue;
|
||||
}
|
||||
|
||||
// 过滤掉152开头的职位代码
|
||||
const codes = listResp.data
|
||||
.map(it => it.zwdm)
|
||||
.filter(code => !code.startsWith('152'));
|
||||
|
||||
// 后端已排除 nocheck: true 的节点,直接使用返回的职位代码
|
||||
const codes = listResp.data.map(it => it.zwdm);
|
||||
totalCodes += codes.length;
|
||||
showMessage('result-message', `地区 ${dsdm}: 共 ${codes.length} 个职位(已跳过152开头),开始逐条获取...`, 'info');
|
||||
showMessage('result-message', `地区 ${dsdm}: 共 ${codes.length} 个职位,开始逐条获取...`, 'info');
|
||||
|
||||
// 逐条获取职位详情
|
||||
for (let i = 0; i < codes.length; i++) {
|
||||
|
||||
Reference in New Issue
Block a user