/** * 检查用户是否有查看活动的权限 * @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; }
public static function &instance() { if (!is_object(Activity_Model::$instances)) { // Create a new instance Activity_Model::$instances = new Activity_Model(); } return Activity_Model::$instances; }
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(); }
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(); }
/** * 创建活动 */ 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:活动信息非法'); }
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); }
/** * 更新关联数据的排序值 * @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); } }