/** * 用户前台生成邀请码 * @param array $data * @param int $num * @return mixed * @author 郑钟良<*****@*****.**> */ public function createCodeUser($data = array(), $num = 1) { $map['status'] = 1; $map['id'] = $data['invite_type']; $invite_type = D('Ucenter/InviteType')->getSimpleList($map, 'length,time'); $data['end_time'] = unitTime_to_time($invite_type[0]['time'], '+'); $data['uid'] = is_login(); //用户前台生成,以正数uid标记 $dataList = array(); do { $dataList[] = $this->createOneCode($data, $invite_type[0]['length']); } while (count($dataList) < $num); $res = $this->addAll($dataList); if ($res) { $result['status'] = 1; $result['url'] = U('Ucenter/Invite/invite'); } else { $result['status'] = 0; $result['info'] = "生成邀请码时失败!" . $this->getError(); } return $result; }
/** * 获取可兑换最大值 * @param int $inviteType * @return int * @author 郑钟良<*****@*****.**> */ private function _getCanBuyNum($inviteType = 0) { $inviteType = $this->mInviteTypeModel->where(array('id' => $inviteType))->find(); $this->assign('long', unitTime_to_showUnitTime($inviteType['cycle_time'])); $this->assign('num_buy', $inviteType['cycle_num']); //以周期算,获取最多购买 $map['uid'] = is_login(); $map['invite_type'] = $inviteType['id']; $map['create_time'] = array('gt', unitTime_to_time($inviteType['cycle_time'], '-')); $buyList = $this->mInviteBuyLogModel->where($map)->select(); $can_buy_num = 0; foreach ($buyList as $val) { $can_buy_num += $val['num']; } $can_buy_num = $inviteType['cycle_num'] - $can_buy_num; //以周期算,获取最多购买 end $max_num_score = query_user('score' . $inviteType['pay_score_type']); if ($inviteType['pay_score'] != 0) { $max_num_score = intval($max_num_score / $inviteType['pay_score']); //以积分算,获取最多购买 $can_buy_num = $max_num_score > $can_buy_num ? $can_buy_num : $max_num_score; } if ($can_buy_num < 0) { $can_buy_num = 0; } return $can_buy_num; }