/** * @title 更新学校信息 * * @param int $majorId 专业编号 '' 为空或跟原来值一样时,则表示不更新 * @param int $campusId 校区编号 '' 校区可更新无限次,其它只能更新2次 * @param int $startYear 入学年份 '' 为空或跟原来值一样时,则表示不更新 * @method post */ public function updateUniversity() { $user = get_user() or ajax_error('USER_NOT_LOGIN', '登录超时,请重新登录!'); $majorId = I('post.majorId'); $startYear = I('post.startYear'); $campusId = I('post.campusId'); $infoModel = M('userInfo'); $userInfo = $infoModel->field('university_id,update_university_num,campus_id,major_id,start_year')->find($user['uid']); $userInfo or ajax_error('USER_NOT_FOUND', '找不到此用户信息!'); $change_campus_only = !$majorId && !$startYear || $userInfo['major_id'] == $majorId && $userInfo['start_year'] == $startYear; if (!$change_campus_only) { // 学校和入学年份仅允许更新2此,而校区则不限 $update_university_num = $userInfo['update_university_num']; APP_STATUS != 'product' or $update_university_num < 2 or ajax_error('专业和学年仅允许修改一次!'); // 根据专业编号,查询大学、学院编号 $majorModel = M('university_college_major'); $major = $majorModel->where(['id' => $majorId, 'status' => 1])->find() or ajax_error('MAJOR_NOT_FOUND', '找不到此专业信息!'); // 获取学院信息 $collegeModel = M('university_college'); $college = $collegeModel->where(['id' => $major['college_id'], 'university_id' => $major['university_id'], 'status' => 1])->find() or ajax_error('COLLEGE_NOT_FOUND', '找不到此学院信息!'); // 获取大学信息 $universityModel = M('university'); $university = $universityModel->where(['id' => $major['university_id'], 'status' => 1])->find() or ajax_error('MAJOR_NOT_FOUND', '找不到此学院信息!'); // 获取校区信息 $campusModel = M('university_campus'); $campus = $campusModel->where(['id' => $campusId, 'university_id' => $major['university_id']])->find(); if (!$campus) { system_warn('更新用户学校信息失败:找不到校区信息(编号:' . $campusId . ')'); ajax_error('MAJOR_NOT_FOUND', '找不到此校区信息!'); } // 确认更新 $infoModel->where(['uid' => $user['uid']])->save(['university_id' => $university['id'], 'university_name' => $university['name'], 'college_id' => $college['id'], 'college_name' => $college['name'], 'major_id' => $major['id'], 'major_name' => $major['name'], 'campus_id' => $campus['id'], 'campus_name' => $campus['name'], 'start_year' => $startYear, 'update_university_num' => $update_university_num + 1]) === FALSE and ajax_error('SYSTEM_ERROR', '系统错误,请联系系统管理员处理!'); } else { // 获取校区信息 $campusModel = M('university_campus'); $campus = $campusModel->where(['id' => $campusId, 'university_id' => $userInfo['university_id']])->find(); if (!$campus) { system_warn('更新用户学校信息失败:找不到校区信息(编号:' . $campusId . ')'); ajax_error('MAJOR_NOT_FOUND', '找不到此校区信息!'); } // 确认更新 $infoModel->where(['uid' => $user['uid']])->save(['campus_id' => $campus['id'], 'campus_name' => $campus['name']]) === FALSE and ajax_error('SYSTEM_ERROR', '系统错误,请联系系统管理员处理!'); } // 更新学校注册统计 D('User')->updateStat($user['uid'], $userInfo['university_id'], $userInfo['campus_id']); // 更新此用户的学校标签 $model = new \Common\Model\CommonPushModel(); $model->updateUniversityTag($user['uid']) or system_warn($model->getError()); ajax_success(); }
public function edit($uid = 0) { $uid = intval($uid); if (IS_POST) { $userModel = D('User'); $password = I('post.password'); $repassword = I('post.repassword'); /* 检测密码 */ if (check_auth('User/User/editAdv')) { if ($password) { if ($password != $repassword) { $this->error('密码和重复密码不一致!'); } $user_salt = $userModel->salt($uid) or $this->error('找不到此记录信息!'); $_POST['password'] = $userModel->password($password, $user_salt); } else { unset($_POST['password']); } } else { unset($_POST['password']); } // 禁止修改手机号 unset($_POST['mobile']); $this->_relaField(true); $infoModel = M('user_info'); if ($userModel->create() && $userModel->save() !== false && $infoModel->create() && $infoModel->save() !== false) { // 更新此用户的学校标签 $model = new \Common\Model\CommonPushModel(); $model->updateUniversityTag(I('uid')) or system_warn($model->getError()); $this->success('编辑成功!', U('index')); } else { $error = $userModel->getError(); $error = $error ? $error : $userModel->getDbError(); $this->error(empty($error) ? '未知错误!' : $error); } } else { $this->_initForm(); $userModel = M()->table('zj_user u')->join('zj_user_info i on i.uid=u.uid'); $info = $userModel->where('u.uid=' . $uid)->find() or $this->error('找不到此记录信息!'); $this->assign('info', $info); $this->meta_title = '编辑用户'; $this->display(); } }