/** * 过滤id列表 * * @param array|int $id id列表 * @return array */ private function _filterIds($id) { !is_array($id) && ($id = array($id)); $clearIds = array(); foreach ($id as $item) { if (WindValidator::isPositive($item)) { $clearIds[] = $item; } } return $clearIds; }
/** * 判断用户是否可以购买邀请码 * * @param PwUserBo $user 购买的用户 * @param int $num 购买的数量 * @param int $creditType 用于购买的积分类型 * @return boolean|PwError */ public function allowBuyInviteCode(PwUserBo $user, $num, $creditType) { if (!WindValidator::isPositive($num)) { return new PwError('USER:invite.buy.num.error'); } $num = intval($num); //用户组能购买的邀请码数量限制 $startTime = Pw::str2time(Pw::time2str(Pw::getTime(), 'Y-m-d')); $readyBuy = $this->_getDs()->countByUidAndTime($user->uid, $startTime); $gidLimit = abs(ceil($user->getPermission('invite_limit_24h'))); if ($readyBuy + $num > $gidLimit) { return new PwError('USER:invite.buy.num.24h.limit', array('{num}' => $gidLimit, '{readynum}' => $readyBuy)); } $price = abs(ceil($user->getPermission('invite_buy_credit_num'))); if ($price * $num > $user->getCredit($creditType)) { return new PwError('USER:invite.buy.credit.no.enough', array('{num}' => $user->getCredit($creditType), '{buynum}' => $num)); } return true; }