Exemple #1
0
 /**
  * 
  * 修改成员状态
  * @param $id
  */
 public function user_update($id = NULL)
 {
     if ($this->get_method() != 'POST') {
         $this->send_response(405, NULL, '请求的方法不存在');
     }
     if (empty($id)) {
         $this->send_response(400, NULL, '400501:活动ID为空');
     }
     $data = $this->get_data();
     if (!$data) {
         $this->send_response(400, NULL, '400412:活动信息非法');
     }
     $event_info = $this->model->get($id);
     if (!$event_info) {
         $this->send_response(400, NULL, '400502:活动不存在');
     }
     if ($this->user_id != $event_info['organizer']) {
         $this->send_response(400, NULL, '400512:限活动创建者使用');
     }
     $type_array = Kohana::config('event.apply_type');
     if (!$data['user']) {
         $this->send_response(400, NULL, '400415:用户数据非法');
     }
     foreach ($data['user'] as $user) {
         if (!in_array($user['apply_type'], $type_array)) {
             $this->send_response(400, NULL, '400504:活动类型非法');
         }
         $a = array('eid' => $id, 'uid' => $user['id']);
         $apply_doc = $user['apply_doc'] ? $user['apply_doc'] : array();
         $dependent = $user['dependent'] ? $user['dependent'] : array();
         $apply_type = $this->model->getApplyType(array('eid' => $id, 'uid' => $user['id']));
         if ($event_info['organizer'] == $user['id'] && $user['apply_type'] == Kohana::config('event.apply_type.refused')) {
             $this->send_response(400, NULL, '400507:活动创建者不能改状态为不参加');
         }
         $user_update = array('apply_type' => $user['apply_type']);
         if ($apply_doc) {
             $user_update['apply_doc'] = serialize($apply_doc);
         }
         if (!empty($apply_doc)) {
             if (!$this->_check_user_apply_doc_valid($id, $apply_doc)) {
                 $this->send_response(400, NULL, '400531:报名信息非法');
             }
             $this->model->addUserApplyDoc($id, $user['id'], 0, '', $apply_doc);
         }
         $this->model->updateApplyEvent($id, $user['id'], $user_update);
         $this->_dependent_apply_event($dependent, $id, $user['id'], $user['apply_type']);
         if (Tab_Model::instance()->get($user['id'], Kohana::config('group.type.event'), $id)) {
             if ($user['apply_type'] == Kohana::config('event.apply_type.refused')) {
                 $this->_del_group_user($id, $user['id']);
             }
         } else {
             $this->_add_group_user($id, $user['id'], Kohana::config('group.grade.normal'));
         }
     }
     $this->send_response(200);
 }