Esempio n. 1
0
 /**
  * 获取活动成员列表
  */
 public function index($id = 0)
 {
     $data = $this->get_data();
     if ($this->get_method() != 'GET') {
         $this->send_response(405, NULL, '请求的方法不存在');
     } elseif (empty($id)) {
         $this->send_response(400, NULL, '400501:活动ID为空');
     }
     $data = $this->get_data();
     $apply_type = (int) $this->input->get('type', 0);
     $result = array();
     if ($apply_type < -1 || $apply_type > Kohana::config('activity.apply_type.interest')) {
         $this->send_response(400, NULL, '400508:活动报名类型非法');
     }
     $activityInfo = $this->model->getActivityInfo($id);
     if (!$activityInfo) {
         $this->send_response(400, NULL, '400502:活动不存在');
     }
     $grade = $this->model->getMemberGrade($id, $this->user_id);
     if ($grade < Kohana::config('activity.grade.normal')) {
         $this->send_response(400, NULL, '400509:非活动报名者,无权限查看报名成员');
     }
     $invitationList = $this->model->getMembersInviteUser($id);
     $inviteArray = array();
     foreach ($invitationList as $value) {
         if (!array_key_exists($value['uid'], $inviteArray)) {
             $inviteArray[$value['uid']] = array('id' => floatval($value['invite_uid']), 'name' => $value['realname']);
         }
     }
     if ($apply_type == -1) {
         //未确认成员
         $memberList = $this->model->getInviteUnset($id);
     } else {
         if ($apply_type == 0) {
             //全部成员
             $apply_member = $this->model->getActivityAllMember($id);
             $invite_member = $this->model->getInviteUnset($id);
             $memberList = array_merge($apply_member, $invite_member);
         } else {
             //各报名类型成员
             $memberList = $this->model->getActivityMember($id, $apply_type);
         }
     }
     foreach ($memberList as $value) {
         $member = array();
         $user = array();
         $user['id'] = floatval($value['uid']);
         $user['name'] = $value['realname'];
         $user['avatar'] = sns::getavatar($value['uid']);
         $user['mobile'] = "";
         $userGrade = intval($value['grade']);
         if ($grade > Kohana::config('activity.grade.normal') || $userGrade > Kohana::config('activity.grade.normal')) {
             $user['mobile'] = $value['mobile'];
         }
         $member['user'] = $user;
         $invite_user = array();
         if (array_key_exists($value['uid'], $inviteArray)) {
             $invite_user = $inviteArray[$value['uid']];
         }
         $member['invite_user'] = $invite_user;
         $member['apply_type'] = intval($value['apply_type']);
         $member['grade'] = $userGrade;
         $result[] = $member;
         unset($user);
         unset($member);
     }
     $this->send_response(200, $result);
 }