Advertisement
Guest User

Untitled

a guest
May 31st, 2022
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 14.97 KB | None | 0 0
  1. ```public class Use_To_Import_From_CDP {
  2.     static ArrayList<Card> cards = new ArrayList<Card>();
  3.     static ArrayList<String> tempList = new ArrayList<String>();
  4.     private static Map<String,String> passToSQL = new HashMap<String,String>();
  5.     public Map<String, String> getSQLMap() {
  6.          return passToSQL;
  7.     }
  8.    
  9.     //Change this to "false" instead of "true" to disable the visible updates displaying in console
  10.     static boolean showupdates = false;
  11.    
  12.    
  13.     public static void main(String[] args) {
  14.        
  15.         long startTime = System.nanoTime();
  16.         System.out.println("Program Starting and Working... Please do not close this until you see 'DONE'... This may take a while, please be patient.");
  17.         System.out.println();
  18.         System.out.println();
  19.         System.out.println("Inserting/Updating cards to MasterCardRecord table... Inserting new cards to AddNewCards table... Updating Qty of duplicate cards in Inventory Update table...");
  20.         exportFile();
  21.         SQL();
  22.         System.out.println("DONE");
  23.         long endTime = System.nanoTime();
  24.         System.out.println("Took "+(endTime - startTime)/1000000000  + " Seconds");
  25.        
  26.     }
  27.     public static void exportFile() {
  28.         // define the variables
  29.         String inputFile = "resources/0000003-Export-04-28-22.csv";
  30.         String outputFile = "resources/output.csv";
  31.         String tags = "collectable"; // use collectable, comics, or CARDS
  32.         boolean writeheader;
  33.         String img2url = "";
  34.         boolean overwrite = false;
  35.        
  36.  
  37.        
  38.        
  39.        
  40.         //--------------------------------------------------------------------------------------------------------------------------------------------------------------------
  41.         //Information to be exported to SQL
  42.        
  43.         String Vendor1 = "the10thinningva.com";
  44.         String Published1 = "TRUE";
  45.         String Option1Name1 = "Title";
  46.         String Option1Value1 = "Default Title";
  47.         String VariantGrams1 = "45";
  48.         String VariantInventoryTracker1 = "shopify";
  49.         String VariantInventoryQty1 = "1";
  50.         String VariantInventoryPolicy1 = "deny";
  51.         String VariantFufillmentService1 = "manual";
  52.         String VariantRequiresShipping1 = "TRUE";
  53.         String VariantTaxable1 = "TRUE";
  54.         String GiftCard1 = "FALSE";
  55.         String Status1 = "active";
  56.        
  57.         //--------------------------------------------------------------------------------------------------------------------------------------------------------------------
  58.        
  59.        
  60.        
  61.        
  62.        
  63.         // read the csv file using filereader and bufferedreader using a loop and splitting each line into an array before splitting it at the delimiter
  64.         try {
  65.             FileReader fileReader = new FileReader(inputFile);
  66.             BufferedReader bufferedReader = new BufferedReader(fileReader);
  67.             String line;
  68.             // get rid of first line
  69.             line = bufferedReader.readLine();
  70.             while ((line = bufferedReader.readLine()) != null) {
  71.  
  72.                //for (String str : row){
  73.                    
  74.                 tempList.add(line);
  75.                 //}
  76.  
  77.                 // append the result of row to output file using bufferedwriter
  78.             }
  79.         }
  80.                  catch (IOException e) {
  81.                     e.printStackTrace();
  82.             }
  83.             for (String line : tempList) {
  84.                 String[] row = line.split(",");
  85.                 Card card = new Card();
  86.                 //line just added -----
  87.                 card.setFrontImage(row[10]);
  88.                 //purchase price makes second entry wrong, this makes first right
  89.                 card.setStartPrice(row[26]);
  90.                 //---------------------------
  91.                 card.setBackImage(row[11]);
  92.    
  93.              
  94.                 if(row[60].equals(" # ")) {
  95.                     card.setTitle("N/A");
  96.                 }
  97.                 else {
  98.                     card.setTitle(row[60]);
  99.                 }
  100.  
  101.                 String handle = card.getTitle().toLowerCase();
  102.                 handle = handle.replace(" ", "-");
  103.                 card.setHandle(handle);
  104.  
  105.                 if(row[61].equals("") || row[61].equals(null)) {
  106.                     card.setDescription("N/A");
  107.                 }
  108.                 else {
  109.                     card.setDescription(row[61]);
  110.                 }
  111.                 card.tags = tags;
  112.                 cards.add(card);
  113.             }
  114.            
  115.            
  116.             // Start New Code Here and pass card data to database
  117.            
  118.            
  119.             for (Card card : cards) {
  120.                 String information = card.outputSQLInformation(Vendor1,Published1, Option1Name1, Option1Value1,
  121.                      VariantGrams1, VariantInventoryTracker1, VariantInventoryQty1, VariantInventoryPolicy1,
  122.                      VariantFufillmentService1, VariantRequiresShipping1, VariantTaxable1, GiftCard1, Status1);
  123.                
  124.                 String finalinfostring = information.split(",")[0] + "," + information.split(",")[1] + "," + information.split(",")[2] + "," + information.split(",")[3] + ","
  125.                 + information.split(",")[4] + "," + information.split(",")[5] + "," + information.split(",")[6] + "," + information.split(",")[7] + "," + information.split(",")[8] + ","
  126.                 + information.split(",")[9] + "," + information.split(",")[10] + "," + information.split(",")[11] + "," + information.split(",")[12] + "," + information.split(",")[13] + ","
  127.                 + information.split(",")[14] + "," + information.split(",")[15] + "," + information.split(",")[16] + "," + information.split(",")[17] + "," + information.split(",")[18] + ","
  128.                 + information.split(",")[19];
  129.                
  130.                 passToSQL.put(card.Handle, finalinfostring);
  131.                  
  132.             }
  133.            
  134.            
  135.         }
  136.            
  137. public static void SQL() {
  138.         int handleqty = -1;
  139.         String url = "jdbc:MYURL/MYDB";
  140.         String username = "username";
  141.         String password = "password";
  142.  
  143.         try{
  144.            
  145.        
  146.         for(Entry<String, String> entry: passToSQL.entrySet()) {
  147.             Connection conn1 = DriverManager.getConnection(url, username, password);
  148.             //System.out.println(entry);
  149.  
  150.             String cardinfo = entry.getValue();
  151.            
  152.             String Handle = cardinfo.split(",")[0];
  153.             String Title = cardinfo.split(",")[1];
  154.             String Vendor = cardinfo.split(",")[2];
  155.             String Tags = cardinfo.split(",")[3];
  156.             String Published = cardinfo.split(",")[4];
  157.             String Option1Name = cardinfo.split(",")[5];
  158.             String Option1Value = cardinfo.split(",")[6];
  159.             int VariantGrams = Integer.parseInt(cardinfo.split(",")[7]);
  160.             String VariantInventoryTracker = cardinfo.split(",")[8];
  161.             String VariantInventoryQty = cardinfo.split(",")[9];
  162.             String VariantInventoryPolicy = cardinfo.split(",")[10];
  163.             String VariantFufillmentService = cardinfo.split(",")[11];
  164.             float VariantPrice =  Float.parseFloat(cardinfo.split(",")[12]);
  165.             String VariantRequiresShipping = cardinfo.split(",")[13];
  166.             String VariantTaxable = cardinfo.split(",")[14];
  167.             String ImgSrcfront = cardinfo.split(",")[15];
  168.             String ImgSrcback = cardinfo.split(",")[16];
  169.             String GiftCard = cardinfo.split(",")[17];
  170.             String Status = cardinfo.split(",")[18];
  171.             String Description = cardinfo.split(",")[19];
  172.            
  173.             String checkexists = "SELECT EXISTS(SELECT 1 FROM MasterCardRecord WHERE Handle = ? LIMIT 1)";
  174.             PreparedStatement statement1 = conn1.prepareStatement(checkexists);
  175.             statement1.setString(1, Handle);
  176.             ResultSet exists = statement1.executeQuery();
  177.             exists.next();
  178.             //System.out.println(exists.getString(1));
  179.             boolean handleexists = false;
  180.             if(exists.getString(1).equals("1")) {
  181.                 handleexists = true;
  182.                 Connection conn2 = DriverManager.getConnection(url, username, password);
  183.                 String sql2 = "SELECT `Variant Inventory Qty` FROM MasterCardRecord WHERE Handle = ? LIMIT 1";
  184.                 PreparedStatement getqty = conn2.prepareStatement(sql2);
  185.                 getqty.setString(1, Handle);
  186.                 ResultSet handleqtyrs = getqty.executeQuery();
  187.                 handleqtyrs.next();
  188.                 handleqty = handleqtyrs.getInt(1);
  189.                
  190.             }
  191.             if(exists.getString(1).equals("0")) {
  192.                 handleexists = false;
  193.             }
  194.            
  195.             statement1.close();
  196.             conn1.close();
  197.            
  198.             //NEW CODE --------------------------------------------------------------------------------
  199.             if (handleexists == true) {
  200.                 Connection connInvUpdate= DriverManager.getConnection(url, username, password);
  201.                 String InvUpdate = "INSERT INTO InventoryUpdate (Handle, `Variant Inventory Qty`) VALUES (?,?) ON DUPLICATE KEY UPDATE `Variant Inventory Qty` = ?";
  202.                 PreparedStatement InvStatement = connInvUpdate.prepareStatement(InvUpdate);
  203.                 InvStatement.setString(1,Handle);
  204.                 InvStatement.setInt(2, handleqty + 1);
  205.                 InvStatement.setInt(3, handleqty + 1);
  206.                 int updatedInv = InvStatement.executeUpdate();
  207.                 connInvUpdate.close();
  208.                 InvStatement.close();
  209.            
  210.            
  211.            
  212.            
  213.            
  214.             }
  215.             //-----------------------------------------------------------------------------------------
  216.            
  217.             if(handleexists == false) {
  218.                 // Handle doesnt exist within database
  219.                  Connection conn3 = DriverManager.getConnection(url, username, password);
  220.                  String sql = "INSERT INTO MasterCardRecord (Handle, Title, Vendor, Tags, Published, Option1Name, Option1Value, VariantGrams, `Variant Inventory Tracker`, `Variant Inventory Qty`, `Variant Inventory Policy`, `Variant Fufillment Service`, `Variant Price`, `Variant Requires Shipping`, `Variant Taxable`, `Img Src(front)`, `Img Src(back)`, `Gift Card`, Status, Description) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
  221.                  PreparedStatement statement2 = conn3.prepareStatement(sql);
  222.                  statement2.setString(1, Handle);
  223.                  statement2.setString(2, Title);
  224.                  statement2.setString(3, Vendor);
  225.                  statement2.setString(4, Tags);
  226.                  statement2.setString(5, Published);
  227.                  statement2.setString(6, Option1Name);
  228.                  statement2.setString(7, Option1Value);
  229.                  statement2.setInt(8, VariantGrams);
  230.                  statement2.setString(9, VariantInventoryTracker);
  231.                  statement2.setString(10, VariantInventoryQty);
  232.                  statement2.setString(11, VariantInventoryPolicy);
  233.                  statement2.setString(12, VariantFufillmentService);
  234.                  statement2.setFloat(13, VariantPrice);
  235.                  statement2.setString(14, VariantRequiresShipping);
  236.                  statement2.setString(15, VariantTaxable);
  237.                  statement2.setString(16, ImgSrcfront);
  238.                  statement2.setString(17, ImgSrcback);
  239.                  statement2.setString(18, GiftCard);
  240.                  statement2.setString(19, Status);
  241.                  statement2.setString(20, Description);
  242.                  
  243.                  int rows = statement2.executeUpdate();
  244.                  if (rows > 0 && showupdates == true) {
  245.                      System.out.println("Item Added: " + Handle);
  246.                  }
  247.                  statement2.close();
  248.                  conn3.close();
  249.                  
  250.                  // Put into AddNewCards as well, for export and adding ONLY those cards that dont exist yet.
  251.                  Connection AddNewCardConn = DriverManager.getConnection(url, username, password);
  252.                  String AddNewCardSQL = "INSERT INTO AddNewCards (Handle, Title, Vendor, Tags, Published, Option1Name, Option1Value, VariantGrams, `Variant Inventory Tracker`, `Variant Inventory Qty`, `Variant Inventory Policy`, `Variant Fufillment Service`, `Variant Price`, `Variant Requires Shipping`, `Variant Taxable`, `Img Src(front)`, `Img Src(back)`, `Gift Card`, Status, Description) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
  253.                  PreparedStatement AddNewCardStatement = AddNewCardConn.prepareStatement(AddNewCardSQL);
  254.                  AddNewCardStatement.setString(1, Handle);
  255.                  AddNewCardStatement.setString(2, Title);
  256.                  AddNewCardStatement.setString(3, Vendor);
  257.                  AddNewCardStatement.setString(4, Tags);
  258.                  AddNewCardStatement.setString(5, Published);
  259.                  AddNewCardStatement.setString(6, Option1Name);
  260.                  AddNewCardStatement.setString(7, Option1Value);
  261.                  AddNewCardStatement.setInt(8, VariantGrams);
  262.                  AddNewCardStatement.setString(9, VariantInventoryTracker);
  263.                  AddNewCardStatement.setString(10, VariantInventoryQty);
  264.                  AddNewCardStatement.setString(11, VariantInventoryPolicy);
  265.                  AddNewCardStatement.setString(12, VariantFufillmentService);
  266.                  AddNewCardStatement.setFloat(13, VariantPrice);
  267.                  AddNewCardStatement.setString(14, VariantRequiresShipping);
  268.                  AddNewCardStatement.setString(15, VariantTaxable);
  269.                  AddNewCardStatement.setString(16, ImgSrcfront);
  270.                  AddNewCardStatement.setString(17, ImgSrcback);
  271.                  AddNewCardStatement.setString(18, GiftCard);
  272.                  AddNewCardStatement.setString(19, Status);
  273.                  AddNewCardStatement.setString(20, Description);
  274.                  
  275.                  
  276.                  int AddCardRows = AddNewCardStatement.executeUpdate();
  277.                  AddNewCardStatement.close();
  278.                  AddNewCardConn.close();
  279.                  
  280.                  
  281.                  
  282.             }
  283.             if (handleexists == true) {
  284.                 // Handle DOES exist within database
  285.                  Connection conn3 = DriverManager.getConnection(url, username, password);
  286.                  String sql = "UPDATE MasterCardRecord SET `Variant Inventory Qty` = ? WHERE Handle = ?";
  287.                  PreparedStatement statement2 = conn3.prepareStatement(sql);
  288.                  statement2.setInt(1,handleqty + 1);
  289.                  statement2.setString(2, Handle);
  290.                  int rows = statement2.executeUpdate();
  291.                  if (rows > 0 && showupdates == true) {
  292.                      System.out.println("Inventory of: " + Handle + "has been updated from " + handleqty + " to %d".formatted(handleqty + 1));
  293.                  }
  294.                  statement2.close();
  295.                  conn3.close();
  296.             }            
  297.        
  298.         }
  299.         }
  300.         catch(Exception e){
  301.             System.out.println("Database connection failed!\n" + e);
  302.         }
  303.  
  304.     }
  305.  
  306. }
  307. ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement