rajeevkgp

Cleanup groups in filter failure - India

Oct 17th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.80 KB | None | 0 0
  1. <?php
  2.         $veneno_dp_ip = $argv[1];
  3.         $veneno_username = $argv[2];
  4.         $veneno_password = $argv[3];
  5.  
  6.         $master_s1_dp_ip = $argv[4];
  7.         $master_s2_dp_ip = $argv[5];
  8.  
  9.         $master_username = $argv[6];
  10.         $master_password = $argv[7];
  11.  
  12.         $veneno_conn = new mysqli($veneno_dp_ip, $veneno_username, $veneno_password);
  13.  
  14.         if($veneno_conn->connect_errno) {
  15.                 printf("Connect to veneno  $veneno_conn failed: %s\n", $mysqli->connect_error);
  16.                 exit();
  17.         }
  18.  
  19.         $master_s1_conn = new mysqli($master_s1_dp_ip, $master_username, $master_password);
  20.  
  21.         $master_s2_conn = new mysqli($master_s2_dp_ip, $master_username, $master_password);
  22.  
  23.         if($master_s1_conn->connect_errno) {
  24.                 printf("Connect to master shard1 failed: %s\n", $mysqli->connect_error);
  25.                 exit();
  26.         }
  27.  
  28.         if($master_s2_conn->connect_errno) {
  29.                 printf("Connect to master shard2 failed: %s\n", $mysqli->connect_error);
  30.                 exit();
  31.         }
  32.  
  33.         $uneven_group_ids_query = "SELECT org_id, campaign_id, group_id, max(IF(target_type='TEST',version_number,0)) as mxt, max(IF(target_type='CONTROL',version_number,0)) as mxc FROM campaign_meta_details.group_version_details GROUP BY group_id HAVING mxt <> mxc AND mxt > 0 AND mxc > 0";
  34.  
  35.         echo "group id query \n $uneven_group_ids_query";
  36.  
  37.         $uneven_group_ids_result = $veneno_conn->query($uneven_group_ids_query);
  38.  
  39.         while ($row = mysqli_fetch_assoc($uneven_group_ids_result)) {
  40.  
  41.                 echo " \n\n=======\n\n ";
  42.  
  43.                 $org_id = $row['org_id'];
  44.                 $campaign_id = $row['campaign_id'];
  45.                 $group_id = $row['group_id'];
  46.  
  47.                 $master_conn = $master_s1_conn;
  48.  
  49.                 if($org_id > 1135) {
  50.  
  51.                         $master_conn = $master_s2_conn;
  52.                         echo "using master shard 2 connection";
  53.                        
  54.                 }
  55.  
  56.                 echo "org id : $org_id campaign id : $campaign_id group id : $group_id\n";
  57.  
  58.                 $last_control_id_query = "SELECT id FROM campaign_meta_details.group_version_details WHERE org_id = ".$org_id." AND campaign_id = ".$campaign_id." AND group_id = ".$group_id." AND target_type = 'CONTROL'";
  59.  
  60.                 echo "(((last control id query))) : $last_control_id_query\n";
  61.  
  62.                 $last_control_id_result = $veneno_conn->query($last_control_id_query);
  63.  
  64.                 $lci_result = mysqli_fetch_assoc($last_control_id_result);
  65.  
  66.                 $last_control_id = $lci_result['id'];
  67.  
  68.                 echo "last control id : $last_control_id\n";
  69.  
  70.                 $mark_control_inactive_query = "UPDATE campaign_meta_details.group_version_details SET is_active = 0 WHERE org_id = ".$org_id." AND campaign_id = ".$campaign_id." AND group_id = ".$group_id." AND target_type = 'CONTROL' AND is_active = 1";
  71.  
  72.                 echo "(((mark control inactive query))) : $mark_control_inactive_query\n";
  73.  
  74.                 $veneno_conn->query($mark_control_inactive_query);
  75.  
  76.                 echo "Affected rows : " . mysqli_affected_rows($veneno_conn) ."\n";
  77.  
  78.                 $copy_control_query = "INSERT INTO campaign_meta_details.group_version_details (org_id, campaign_id, group_id, created_date, params, target_type, customer_count, version_number, is_active, last_updated_by) SELECT org_id, campaign_id, group_id, NOW(), params, target_type, customer_count, version_number, 1, last_updated_by FROM campaign_meta_details.group_version_details WHERE id = (SELECT id FROM campaign_meta_details.group_version_details WHERE org_id = ".$org_id." AND campaign_id = ".$campaign_id." AND group_id = ".$group_id." AND target_type = 'CONTROL' ORDER BY id DESC LIMIT 1)";
  79.  
  80.                 echo "(((copy control query))) : $copy_control_query\n";
  81.  
  82.                 $veneno_conn->query($copy_control_query);
  83.  
  84.                 echo "Affected rows : " . mysqli_affected_rows($veneno_conn) ."\n";
  85.  
  86.                 $new_control_id = $veneno_conn->insert_id;
  87.  
  88.                 echo "new control id : $new_control_id\n";
  89.  
  90.                 $update_control_version_number_query = "UPDATE campaign_meta_details.group_version_details SET version_number = version_number + 1 WHERE id = ".$new_control_id;
  91.  
  92.                 echo "(((update control version number query))) : $update_control_version_number_query\n";
  93.  
  94.                 $veneno_conn->query($update_control_version_number_query);
  95.  
  96.                 echo "Affected rows : " . mysqli_affected_rows($veneno_conn) ."\n";
  97.  
  98.                 $update_audience_group_query = "UPDATE campaigns.audience_groups SET params = ".$new_control_id." WHERE org_id = ".$org_id." AND campaign_id = ".$campaign_id." AND params = ".$last_control_id;
  99.  
  100.                 echo "(((update audience group query))) : $update_audience_group_query\n";
  101.  
  102.                 $master_conn->query($update_audience_group_query);
  103.  
  104.                 echo "Affected rows : " . mysqli_affected_rows($master_conn)."\n";
  105.  
  106.                 $last_two_test_ids_query = "SELECT id FROM campaign_meta_details.group_version_details WHERE group_id = ".$group_id."  AND org_id = ".$org_id." AND campaign_id =".$campaign_id." AND target_type = 'TEST' ORDER BY id DESC LIMIT 2";
  107.  
  108.                 echo "(((last two test ids query))) : $last_two_test_ids_query\n";
  109.  
  110.                 $last_two_test_ids_result = $veneno_conn->query($last_two_test_ids_query);
  111.  
  112.                 $last_test_id = 0;
  113.                 $second_last_test_id = 0;
  114.  
  115.                 while($id = mysqli_fetch_assoc($last_two_test_ids_result)) {
  116.                         if(!$last_test_id) $last_test_id = $id['id'];
  117.                         else $second_last_test_id = $id['id'];
  118.                 }
  119.  
  120.                 echo "last_test_id : $last_test_id, second_last_test_id : $second_last_test_id\n";
  121.  
  122.                 $update_message_queue_query = "UPDATE msging.message_queue SET group_id = ".$last_test_id." WHERE org_id = ".$org_id." AND campaign_id = ".$campaign_id." AND group_id = ".$second_last_test_id;
  123.  
  124.                 echo "(((update message queue query))) : $update_message_queue_query\n";
  125.  
  126.                 $master_conn->query($update_message_queue_query);
  127.  
  128.                 echo "Affected rows : " . mysqli_affected_rows($master_conn)."\n";
  129.  
  130.                 $update_reminder_query = "UPDATE user_management.reminder SET group_id = ".$last_test_id." WHERE org_id = ".$org_id." AND group_id = ".$second_last_test_id;
  131.  
  132.                 echo "(((update reminder query))) : $update_reminder_query\n";
  133.  
  134.                 $master_conn->query($update_reminder_query);
  135.  
  136.                 echo "Affected rows : " . mysqli_affected_rows($master_conn)."\n";
  137.  
  138.         }
  139.  
  140.         $veneno_conn->close();
  141.         $master_s1_conn->close();
  142.         $master_s2_conn->close();
  143.        
  144.  
  145. ?>
Add Comment
Please, Sign In to add comment