up
This commit is contained in:
@@ -340,11 +340,38 @@ class Crawler extends BaseController
|
||||
|
||||
$treeData = $service->getPositionTree($dsdm, $examid, $bmid, $userid, (string)$aa, $cookies);
|
||||
|
||||
// 若接口返回包装结构 { "data": [...] } / { "tree": [...] } 则取内层节点数组
|
||||
if (is_array($treeData) && isset($treeData['data']) && is_array($treeData['data'])) {
|
||||
$treeData = $treeData['data'];
|
||||
}
|
||||
if (is_array($treeData) && isset($treeData['tree']) && is_array($treeData['tree'])) {
|
||||
$treeData = $treeData['tree'];
|
||||
}
|
||||
|
||||
$zwdmList = [];
|
||||
$collectCodes = function (array $nodes) use (&$collectCodes, &$zwdmList) {
|
||||
$isNocheck = function ($node) {
|
||||
if (isset($node['nocheck'])) {
|
||||
$v = $node['nocheck'];
|
||||
if ($v === true || $v === 'true' || $v === 1) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (isset($node['noCheck'])) {
|
||||
$v = $node['noCheck'];
|
||||
if ($v === true || $v === 'true' || $v === 1) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
$collectCodes = function (array $nodes) use (&$collectCodes, &$zwdmList, $isNocheck) {
|
||||
foreach ($nodes as $item) {
|
||||
if (!is_array($item)) {
|
||||
continue;
|
||||
}
|
||||
// 跳过包含 nocheck: true 的节点(如分组节点,不参与爬取)
|
||||
if (!empty($item['nocheck'])) {
|
||||
if ($isNocheck($item)) {
|
||||
if (!empty($item['children']) && is_array($item['children'])) {
|
||||
$collectCodes($item['children']);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user