/**
  * @title 新的信鸽绑定
  *
  * @param string $deviceToken 设备token
  *       
  * @method get
  */
 public function registerPush($token)
 {
     list($app, $os, $version) = app_info() or ajax_error('无法识别客户端系统及版本!');
     $model = new \Common\Model\CommonPushModel();
     $model->updateAppTag($app, $token, $os, $version) or ajax_error($model->getError());
     ajax_success();
 }
 /**
  * @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();
     }
 }