/** * 根据用户ID获得该用户的教育经历 * * @param int $uid * @param int $num * @param boolean $buildArea 是否需要查询获取学校地区的层级 * @return array */ public function getEducationByUid($uid, $num = 10, $buildArea = false) { $educations = $this->_getDs()->getByUid($uid, $num); if (!$educations) { return array(); } $schoolids = array(); foreach ($educations as $key => $education) { $educations[$key]['degreeid'] = $education['degree']; $educations[$key]['degree'] = PwEducationHelper::getDegrees($education['degree']); $schoolids[] = $education['schoolid']; } $schools = $this->_getSchoolDs()->fetchSchool($schoolids); $areaids = array(); foreach ($educations as $key => $education) { $educations[$key]['school'] = isset($schools[$education['schoolid']]) ? $schools[$education['schoolid']]['name'] : ''; $buildArea && ($educations[$key]['areaid'] = $schools[$education['schoolid']]['areaid']); $areaids[] = $schools[$education['schoolid']]['areaid']; } if ($buildArea) { $areaSrv = WindidApi::api('area'); $areas = $areaSrv->fetchAreaRout($areaids); foreach ($educations as $key => $education) { $educations[$key]['areaid'] = $areas[$educations[$key]['areaid']]; } } return $educations; }
public function run() { $list = $this->_getService()->getEducationByUid($this->loginUser->uid, 100, true); $this->setOutput($list, 'list'); $this->setOutput(PwEducationHelper::getDegrees(), 'degrees'); $this->setOutput(PwEducationHelper::getEducationYear(), 'years'); $this->setCurrentLeft(); $this->setOutput(array('_tab' => 'education'), 'args'); }
/** * 用户教育经历 * * @param PwEducation $ds * @param int $uid * @return array */ private function _buildEducation(PwEducation $ds, $uid) { $list = $ds->getByUid($uid, 10, 0); $educateList = $schoolids = array(); $degree = PwEducationHelper::getDegrees(); foreach ($list as $id => $_item) { $_one = array(); $schoolids[] = $_item['schoolid']; $_one['school'] = ''; $_one['schoolid'] = $_item['schoolid']; $_one['degree'] = $degree[$_item['degree']]; $_one['start'] = $_item['start_time']; $educateList[] = $_one; } return array($schoolids, $educateList); }
/** * 检查数据 * * @return PwError */ protected function check() { if (!isset($this->_data['uid'])) { return new PwError('USER:education.illegal.request'); } if (!isset($this->_data['schoolid']) || !$this->_data['schoolid']) { return new PwError('USER:education.update.school.require'); } if (!isset($this->_data['start_time']) || !$this->_data['start_time']) { return new PwError('USER:education.update.start_time.require'); } $this->_data['start_time'] = PwEducationHelper::checkEducationYear($this->_data['start_time']); if (!PwEducationHelper::checkDegree($this->_data['degree'])) { return new PwError('USER:education.update.degree.error'); } return true; }