Bước 1 : Do hệ thống có nhiều người bị trùng nên sẽ chạy hàm này trong controller để gộp các sdt và khách hàng lại với nhau :

function Gopsdt()
  {
    $data = $this->companies_model->getAllCompanyCustomer();
    foreach ($data as $row)
    {
      foreach ($data as $row1)
        {
          if ($row->phone == $row1->phone  )
          {
            if ($row->id != $row1->id)
            {
              $res = $this->companies_model->ChangerCustomerSales($row->id,$row1->id);
              $point_old = $this->companies_model->getCompanyByID($row->id);
              $total_award_points = $point_old->award_points + $row1->award_points;
              $this->companies_model->Update_award_points($row->id,$total_award_points);
              $this->companies_model->deleteCustomer($row1->id);
            }
          }
        }
    }
  }

Trong models :

// lấy danh sách tất cả khách hàng
  public function getAllCompanyCustomer($group = 'customer')
    {
    $this->db->select('*');
        $this->db->from('companies');
    
    $this->db->where('group_name',$group);
    $q = $this->db->get();
    
        if ($q->num_rows() > 0) {
            foreach (($q->result()) as $row) {
                $data[] = $row;
            }

            return $data;
        }
    }
  // UpdateLevel Khách hàng
  public function Update_Level_Customer()
  {
    $this->db->select('*');
        $this->db->from('companies');
    $this->db->where('group_name','customer');
    $q = $this->db->get();
    if ($q->num_rows() > 0) {
            foreach (($q->result()) as $row) {
        //echo $row->id;
        //echo $row->award_points;
        if ($row->award_points >=8000)
        {
          $data = ['customer_group_id'=>15,'customer_group_name'=>'Khách mua trên 8 triệu'];
        }
        elseif ($row->award_points >=5000)
        {
          $data = ['customer_group_id'=>14,'customer_group_name'=>'Khách mua trên 5 triệu'];
        }
        elseif ($row->award_points >=3500)
        {
          $data = ['customer_group_id'=>13,'customer_group_name'=>'Khách mua trên 3,5 triệu'];
        }
        elseif ($row->award_points >=2000)
        {
          $data = ['customer_group_id'=>12,'customer_group_name'=>'Khách mua trên 2 triệu'];
        }
        elseif ($row->award_points >=1000)
        {
          $data = ['customer_group_id'=>11,'customer_group_name'=>'Khách mua trên 1 triệu'];
        }
        else
        {
          $data = ['customer_group_id'=>6,'customer_group_name'=>'Khách thường'];
        }
        $this->db->where('id', $row->id);
        $this->db->update('companies', $data) ;
            }
    }
  }
  // update id người mua hàng cũ sang người mua hàng mới
  public function ChangerCustomerSales($customer_id_old,$customer_id_new)
    {
      $this->db->where('customer_id', $customer_id_new);
      $this->db->update('sales', ['customer_id'=>$customer_id_old]) ;
      return $customer_id_new;
    }
  public function Update_award_points($id,$award_points)
  {
      $this->db->where('id', $id);
      $this->db->update('companies', ['award_points'=>$award_points]) ;
  }

Bước 2 : Chạy cron thực hiện function :

function CronUPdateLeveCustomers()
  {
    $data = $this->companies_model->Update_Level_Customer();
    
  }

Để auto up nhóm khách hàng cho khách nên cho vào cron

Posted in dev

Leave a Reply

Your email address will not be published. Required fields are marked *