コード例 #1
0
ファイル: activity_member.php プロジェクト: momoim/momo-api
 /**
  * 检查用户是否有查看活动的权限
  * @param array $activity 
  * @param float $uid
  * return boolean
  */
 private function _check_activity_view_permission($activity, $uid)
 {
     $permit = true;
     if ($activity['gid'] == 0) {
         $permit = false;
         $friendModel = Friend_Model::instance();
         $isFriend = $friendModel->check_isfriend($activity['creator_id'], $uid);
         $fidList = $friendModel->getAllFriendIDs($uid);
         $friendsIsJoin = false;
         if ($fidList) {
             $fids = implode(',', $fidList);
             $friendsIsJoin = $this->model->checkFriendsIsJoined($activity['aid'], $fids);
         }
         $invite = $this->model->getUserInviteUnset($activity['aid'], $uid);
         $isCompanyMember = false;
         if ($activity['belong_type'] == Kohana::config('activity.belongType.company')) {
             $companyModel = new Company_Model();
             $companyId = floatval($activity['belong_id']);
             $isCompanyMember = $companyModel->isCompanyMember($companyId, $uid);
         }
         if ($invite || $isCompanyMember) {
             $permit = true;
         } else {
             if ($activity['is_allow_invite'] && $friendsIsJoin) {
                 $permit = true;
             }
         }
     }
     return $permit;
 }
コード例 #2
0
ファイル: activity.php プロジェクト: momoim/momo-api
 public static function &instance()
 {
     if (!is_object(Activity_Model::$instances)) {
         // Create a new instance
         Activity_Model::$instances = new Activity_Model();
     }
     return Activity_Model::$instances;
 }
コード例 #3
0
ファイル: statuses.php プロジェクト: momoim/momo-api
 public function __construct()
 {
     parent::__construct();
     $this->uid = $this->getUid();
     $this->feedModel = Feed_Model::instance();
     $this->new_format = $this->input->get('new_format', 0);
     $this->friendModel = Friend_Model::instance();
     $this->groupModel = Group_Model::instance();
     $this->activityModel = Activity_Model::instance();
 }
コード例 #4
0
ファイル: message.php プロジェクト: momoim/momo-api
 public function __construct()
 {
     parent::__construct();
     $this->model = new Message_Model();
     $this->message_type = null;
     $this->activityModel = Activity_Model::instance();
     $this->friendModel = Friend_Model::instance();
     $this->groupModel = Group_Model::instance();
     $this->groupContactModel = Group_Contact_Model::instance();
     $this->contactModel = Contact_Model::instance();
 }
コード例 #5
0
ファイル: activity.php プロジェクト: momoim/momo-api
 /**
  * 创建活动
  */
 public function create()
 {
     if ($this->get_method() != 'POST') {
         $this->send_response(405, NULL, '请求的方法不存在');
     }
     $data = $this->get_data();
     if (!$data) {
         $this->send_response(400, NULL, '400505:活动信息非法');
     }
     $post = new Validation($data);
     $post->add_rules('title', 'required', 'length[1, 30]');
     $post->add_rules('start_at', 'required', 'numeric');
     $post->add_rules('end_at', 'required', 'numeric');
     $post->add_rules('spot', 'required', 'length[1, 30]');
     $post->add_rules('type', 'required', 'numeric', array($this, '_check_type_validation'));
     $post->add_rules('is_allow_invite', 'required', 'numeric', array($this, '_check_allow_invite_validation'));
     $post->add_rules('content', 'length[0, 300]');
     $post->add_rules('group_ids', array($this, '_check_group_ids_validation'));
     $post->add_callbacks(TRUE, array($this, '_check_time_validation'));
     if ($post->validate()) {
         $activity = array();
         $form = $post->as_array();
         $activity['creator_id'] = $this->user_id;
         $activity['title'] = $form['title'];
         $activity['start_time'] = $form['start_at'];
         $activity['end_time'] = $form['end_at'];
         $nowTime = time();
         $activity['create_time'] = $nowTime;
         $activity['spot'] = $form['spot'];
         $activity['type'] = $form['type'];
         $activity['is_allow_invite'] = $form['is_allow_invite'];
         if (isset($form['content'])) {
             $activity['content'] = $form['content'];
         }
         $groupIds = array();
         if (isset($form['group_ids'])) {
             $groupIds = $form['group_ids'];
         }
         $groupModel = new Group_Model();
         $gidArray = array();
         foreach ($groupIds as $id) {
             $id = floatval($id);
             if ($id != -1) {
                 $groupInfo = $groupModel->getGroupInfo($id);
                 if (!$groupInfo) {
                     $this->send_response(400, NULL, '400506:活动发布到的群不存在');
                 }
                 $grade = $groupModel->getMemberGrade($id, $this->user_id);
                 if ($grade < 1) {
                     $this->send_response(400, NULL, '400507:您不是活动指定发布到群的成员');
                 }
             }
             $gidArray[] = $id;
         }
         if (!$gidArray) {
             $activity['is_publish'] = 0;
         } else {
             $activity['is_publish'] = 1;
         }
         $activity_id = $this->model->add($activity);
         $activityMember = array('aid' => $activity_id, 'uid' => $this->user_id, 'apply_type' => Kohana::config('activity.apply_type.join'), 'apply_time' => $nowTime, 'grade' => Kohana::config('activity.grade.creator'));
         $result = $this->model->applyActivity($activityMember);
         $this->model->addActivityUser($activity_id, $this->user_id);
         $friendModel = new Friend_Model();
         $fidList = $friendModel->getAllFriendIDs($this->user_id, false);
         //活动动态发送到指定momo成员
         foreach ($gidArray as $gid) {
             $this->model->addActivityGroup($activity_id, $gid);
             if ($gid == -1) {
                 $friendModel = new Friend_Model();
                 $fidList = $friendModel->getAllFriendIDs($this->user_id, false);
                 foreach ($fidList as $fid) {
                     $this->model->addActivityUser($activity_id, $fid);
                 }
             } else {
                 $this->model->addActivityGroup($activity_id, $gid);
                 $members = $groupModel->getGroupAllMember($gid);
                 foreach ($members as $value) {
                     $this->model->addActivityUser($activity_id, $value['uid']);
                 }
             }
         }
         $feedModel = new Feed_Model();
         $title = array('uid' => $this->user_id, 'name' => sns::getrealname($this->user_id), 'id' => $activity_id, 'title' => $activity['title']);
         $messageModel = new Message_Model();
         if ($activity['is_publish']) {
             $feedModel->addFeed($this->user_id, 'action_add', Kohana::config('uap.app.action'), $title, array(), $activity_id);
         }
         $this->send_response(200, array('id' => floatval($activity_id)));
     }
     $errors = $post->errors();
     $this->send_response(400, NULL, '400505:活动信息非法');
 }
コード例 #6
0
 public function join(Request $request, Response $response)
 {
     $res = ['flag' => 'FAIL', 'msg' => ''];
     if (Member::isLogined()) {
         $user = Member::getUser();
         $uid = $user['uid'];
     } else {
         $res['msg'] = '请先登录';
         $response->sendJSON($res);
     }
     $aid = $request->post('aid', 0);
     $act = $request->post('act', '');
     $info = Activity_Model::getActivityByAid($aid);
     if (empty($info)) {
         $res['msg'] = '该活动不存在';
         $response->sendJson($res);
     }
     if (!in_array($act, ['join', 'vote'])) {
         $res['msg'] = '未知操作';
         $response->sendJson($res);
     }
     $inc = 1;
     if ($act == 'join') {
         $cur_time = time();
         if ($info['start_time'] > $cur_time) {
             $res['msg'] = '活动还没有开始';
             $response->sendJson($res);
         }
         if ($info['end_time'] < $cur_time) {
             $res['msg'] = '活动已结束';
             $response->sendJson($res);
         }
         if (Activity_Model::isJoin($aid, $uid, 'join')) {
             $inc = -1;
             $res['msg'] = '您已经参与过本次活动了';
             $response->sendJson($res);
         }
     } elseif ($act == 'vote') {
         if (Activity_Model::isJoin($aid, $uid, 'vote')) {
             $inc = -1;
             /*
                     $res['msg'] = '已赞'; 
                     $response->sendJson($res);*/
         }
     }
     $jid = Activity_Model::joinActivity(['aid' => $aid, 'uid' => $uid, 'act' => $act, 'timeline' => time()], $inc);
     if ($jid > 0) {
         $res['flag'] = 'SUC';
         if ($act == 'join') {
             $res['msg'] = '参与成功';
         } elseif ($act == 'vote') {
             if ($inc > 0) {
                 $res['msg'] = '已赞';
             } else {
                 $res['msg'] = '已取消赞';
             }
         }
     } else {
         $res['msg'] = '系统繁忙,请稍后再试';
     }
     $response->sendJson($res);
 }
コード例 #7
0
 /**
  * 更新关联数据的排序值
  * @param  Request  $request  [description]
  * @param  Response $response [description]
  * @return [type]             [description]
  */
 public function relatedRank(Request $request, Response $response)
 {
     if ($request->is_post()) {
         $res = ['flag' => 'FAIL', 'msg' => ''];
         $aid = $request->post('aid', '');
         $nid = $request->post('nid', '');
         $new_rank = $request->post('new_rank', 0);
         if (Activity_Model::updateRelatedRank($aid, $nid, $new_rank)) {
             $res['flag'] = 'SUC';
             $res['msg'] = '更新成功';
         } else {
             $res['msg'] = '系统繁忙,请稍后再试';
         }
         $response->sendJSON($res);
     }
 }