Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 /**
  * 更新邀请码信息
  *
  * @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());
 }
Ejemplo n.º 3
0
 /**
  * 购买邀请码
  *
  * @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)));
 }