public function afterRegister($userDm) { if ($this->bp->config['type'] != 2) { return false; } /* @var $inviteDs PwInviteCode */ $inviteDs = Wekit::load('invite.PwInviteCode'); if ($this->inviteInfo['created_userid']) { $codeDm = new PwInviteCodeDm(); $codeDm->setInvitedUid($userDm->uid)->setModifiedTime(Pw::getTime())->setIfused(1)->setCode($this->code); //别人赠送的邀请码 $inviteDs->updateCode($codeDm); $creditType = $this->bp->config['invite.reward.credit.type']; $creditNum = $this->bp->config['invite.reward.credit.num']; //邀请人获得加奖励 //[积分日志] 成功邀请好友积分奖励 /* @var $creditBo PwCreditBo */ $creditBo = PwCreditBo::getInstance(); $creditBo->addLog('invite_reward', array($creditType => $creditNum), new PwUserBo($this->inviteInfo['created_userid']), array('friend' => $userDm->getField('username'))); $creditBo->set($this->inviteInfo['created_userid'], $creditType, $creditNum); //邀请成功相互关注 被邀请者关注邀请者 /* @var $attention PwAttentionService */ $attention = Wekit::load('attention.srv.PwAttentionService'); $attention->addFollow($userDm->uid, $this->inviteInfo['created_userid']); // $attention->addFollow($this->inviteInfo['created_userid'], $userDm->uid); } else { $codeDm = new PwInviteCodeDm(); $codeDm->setInvitedUid($userDm->uid)->setIfused(1)->setModifiedTime(Pw::getTime())->setCreateUid($userDm->uid)->setCode($this->code); //自己购买的邀请码 $inviteDs->updateCode($codeDm); } return true; }
/** * 更新邀请码信息 * * @param PwInviteCodeDm $dm 邀请码的购买者---当注册用户购买邀请码注册,成功之后更新该邀请码的购买者 * @return boolean */ public function updateCode(PwInviteCodeDm $dm) { if (($r = $dm->beforeUpdate()) instanceof PwError) { return $r; } return $this->_getDao()->updateCode($dm->code, $dm->getData()); }
/** * 购买邀请码 * * @param PwUserBo $user 购买的用户 * @param int $num 购买的数量 * @param int $creditType 用于购买的积分类型 * @return boolean */ public function buyInviteCodes(PwUserBo $user, $num, $creditType) { if (true !== ($r = $this->allowBuyInviteCode($user, $num, $creditType))) { return $r; } $num = intval(ceil($num)); $codes = $this->createCodes(array(), $user->uid, $num); $data = array(); $time = Pw::getTime(); foreach ($codes as $_code) { $dm = new PwInviteCodeDm(); $dm->setCode($_code)->setCreateUid($user->uid)->setCreatedTime($time); $data[] = $dm; } $r = $this->_getDs()->batchAddCode($data); if ($r instanceof PwError) { return $r; } $gidCreditNum = $user->getPermission('invite_buy_credit_num'); //TODO【积分日志】购买邀请码 /* @var $credit PwCreditBo */ $credit = PwCreditBo::getInstance(); $credit->sets($user->uid, array($creditType => -($gidCreditNum * $num))); }