1

我正在研究我的单层多层次营销。

现在我可以成功推荐用户并显示如下:

我的等级

级别 1 = 我推荐的成员 级别 2 = 我的级别 1 用户推荐的成员 级别 3 = 我的级别 2 用户推荐的成员 级别 4 = 我的级别 3 用户推荐的成员

我的问题是,如果“4 级”下的任何用户推荐了新成员

它看起来像这样。

::Level 1::  ::Level 2::    ::Level 3::  ::Level 4::  
 - user_1        - user_2    - user_3     - user_4

如果 4 级以下的“user_4”推荐了一个新成员..

我需要给 user_3、user_2 和 user_1 100 个奖励奖金。

注意:唯一将获得奖金奖励的用户是将用户从级别 4 推荐到级别 2 的用户。

user_1 推荐了 user_2,user_2 推荐了 user_3 和 user_3 推荐了 user_4

所以 user_3 到 user_1 将获得奖金奖励......

4

1 回答 1

0

您也可以将上线级别存储在用户表中。在注册期间,您先获取上线,然后获取上线的上线等,以便稍后在查询用户表时获取它们。

我做了 6 个级别的深度,所以还有 6 个查询,但我真的不在乎,每天注册不会发生一百万次。

在此处输入图像描述

这是我的流量交换中的用户表......希望它有所帮助。正如您所看到的,我还使用 upline_val 列来存储冲浪积分,以后可以通过他们的上线使用“从推荐人那里获得积分”按钮来申请这些积分。

并注册模型代码以创建成员:

$data = array(
      'username' => $username,
      'password' => password_hash($password, PASSWORD_DEFAULT),
      'email' => $email,
      'first_name' => $first_name,
      'last_name' => $last_name,
      'active' => $active,
      'referred_by_id' => $referred_by_id,
      'referral_url' => $this->session->userdata('referral_url'),
      'next_subscription_update' => $now->format("Y-m-d H:i:s"),
      'email_newsletter' => $newsletter,
      'autoassign_pct' => Settings_model::$db_config['autoassign_value']
  );
    // select upline ids
    $this->db->select('referred_by_id')->from(DB_PREFIX .'user')->where('user_id', $data['referred_by_id']); // $data['referred_by_id'] is passed in the url e.g. http://example.com/register/1867
            $q = $this->db->get();

      if ($q->num_rows() == 1) {
          $data['upline_lvl2'] = $q->row()->referred_by_id;
          $this->db->select('referred_by_id')->from(DB_PREFIX .'user')->where('user_id', $data['upline_lvl2']);
          $q = $this->db->get();

          if ($q->num_rows() == 1) {
              $data['upline_lvl3'] = $q->row()->referred_by_id;
              $this->db->select('referred_by_id')->from(DB_PREFIX .'user')->where('user_id', $data['upline_lvl3']);
              $q = $this->db->get();

               if ($q->num_rows() == 1) {
                  $data['upline_lvl4'] = $q->row()->referred_by_id;
                  $this->db->select('referred_by_id')->from(DB_PREFIX .'user')->where('user_id', $data['upline_lvl4']);
                  $q = $this->db->get();

                  if ($q->num_rows() == 1) {
                      $data['upline_lvl5'] = $q->row()->referred_by_id;
                      $this->db->select('referred_by_id')->from(DB_PREFIX .'user')->where('user_id', $data['upline_lvl5']);
                      $q = $this->db->get();

                      if ($q->num_rows() == 1) {
                          $data['upline_lvl6'] = $q->row()->referred_by_id;
                      }
                  }
              }
          }
      }

// ...etc...

$this->db->insert(DB_PREFIX .'user', $data); // $data is inserted here

我想这就是我能做的。

于 2017-08-29T17:39:12.183 回答