getData($data); } elseif (!$data) { $page = Dever::db('ad/page')->one(array('key' => $key)); if ($page) { $info = Dever::db('ad/info')->getAll(array('page_id' => $page['id'])); if ($info) { foreach ($info as $k => $v) { $info[$k]['data'] = Dever::db('ad/data')->getAll(array('info_id' => $v['id'])); } Dever::cache($cache, $info); return $this->getData($info); } } } return false; } private function getData($data) { if ($data) { $time = time(); $source_type = $this->config(Dever::input('source_type', 'h5')); foreach ($data as $k => $v) { $child = $v['data']; $data[$k]['data'] = array(); $i = 0; foreach ($child as $k1 => $v1) { if ($v1['type'] == 2 && ($time < $v1['sdate'] || $time > $v1['edate'])) { //unset($data[$k]['data'][$k1]); } elseif ($v1['system'] > 0 && $source_type != $v1['system']) { //unset($data[$k]['data'][$k1]); } else { $data[$k]['data'][$i] = $v1; $i++; } } } } return $data; } private function config($type) { if ($type == 'ios') { return 3; } if ($type == 'android') { return 2; } if ($type == 'applet') { return 4; } if ($type == 'h5') { return 1; } return -1; } }