简体   繁体   English

Codeigniter获取推荐用户并给予奖励

[英]Codeigniter Get Referral user and give bonus reward

I am working on my unilevel multi level marketing. 我正在从事单级多层次营销。

Now I can successfully referred users and show them as below: 现在,我可以成功地介绍用户并向他们显示如下:

My Levels 我的水平

Level 1 = member referred by me Level 2 = member referred by my level 1 user Level 3 = member referred by my level 2 user Leve 4 = member referred by my level 3 user 1级=我推荐的成员2级=我1级用户推荐的成员3级= 2级用户推荐的成员Leve 4 = 3级用户推荐的成员

My Problem is If Any of of the user under "Level 4" referred a New Member 我的问题是“级别4”下的任何用户是否推荐了新成员

It will look like this. 它看起来像这样。

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

And if "user_4" under Level 4 referred a new member.. 如果级别4下的“ user_4”引用了新成员。

I need to give 100 reward bonus the user_3, user_2, and user_1. 我需要给user_3,user_2和user_1 100个奖励。

Note: The only user that will receive the bonus reward is the users who referred the user from level 4 to level 2. 注意:唯一将获得奖励的用户是将用户从4级推荐到2级的用户。

user_1 referred user_2, user_2 referred user_3 and user_3 referred user_4 user_1引用了user_2,user_2引用了user_3,user_3引用了user_4

so the user_3 down to user_1 will receive the bonus reward... 因此user_3(直到user_1)将获得奖励奖励...

You can store upline levels in your user table, too. 您也可以在用户表中存储上线级别。 During registration you grab upline, then upline of upline, etc so that later you can get them when querying the user table. 在注册过程中,您抢上线,然后抢上线,等等,以便稍后在查询用户表时可以获取它们。

I do this 6 levels deep so it is 6 more queries but I don't really care, registering doesn't happen a million times a day. 我会深入进行这6个级别的查询,因此又要查询6个查询,但是我并不在乎,每天注册不会发生一百万次。

在此处输入图片说明

Here's my user table from my traffic exchange ... hope it helps. 这是我的流量交换中的用户表,希望对您有所帮助。 As you can see I also use an upline_val column to store surf credits which can later be claimed by their uplines with a button "claim credits from referrals". 如您所见,我还使用upline_val列来存储冲浪点数,以后可以通过其点击按钮“从推荐中获得点数”来声明冲浪点数。

and register model code to create member: 并注册模型代码以创建成员:

$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

That's about all I can do I guess. 我想这就是我能做的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM