From e45f6ea03cc7df97b148680731b2a57648aa21b7 Mon Sep 17 00:00:00 2001
From: rani0808 <s.durgaranicvr@gmail.com>
Date: Thu, 23 Apr 2020 20:20:33 +0530
Subject: [PATCH] order generation to create orders

---
 omd-checkout-service/pom.xml                  |  5 ++
 .../omd/OmdCheckoutServiceApplication.java    |  3 +-
 .../java/com/nisum/omd/OrderGenerator.java    | 47 ++++++++++++
 .../java/com/nisum/omd/domain/BillingTo.java  | 15 ----
 .../java/com/nisum/omd/domain/LineItem.java   | 20 ++----
 .../main/java/com/nisum/omd/domain/Order.java | 49 +++++--------
 .../com/nisum/omd/domain/OrderCharges.java    |  7 --
 .../java/com/nisum/omd/domain/OrderTaxes.java |  9 ---
 .../java/com/nisum/omd/domain/Promotions.java |  7 --
 .../java/com/nisum/omd/domain/ShipTo.java     | 14 ----
 .../com/nisum/omd/domain/ShippingInfo.java    | 10 ---
 .../omd/service/RandomDataGenerator.java      | 11 +++
 .../omd/service/RandomDataGeneratorImpl.java  | 65 +++++++++++++++++
 .../src/main/resources/application.properties | 72 ++++++++++++++++++-
 14 files changed, 224 insertions(+), 110 deletions(-)
 create mode 100644 omd-checkout-service/src/main/java/com/nisum/omd/OrderGenerator.java
 create mode 100644 omd-checkout-service/src/main/java/com/nisum/omd/service/RandomDataGenerator.java
 create mode 100644 omd-checkout-service/src/main/java/com/nisum/omd/service/RandomDataGeneratorImpl.java

diff --git a/omd-checkout-service/pom.xml b/omd-checkout-service/pom.xml
index 7db490b..fd1a182 100644
--- a/omd-checkout-service/pom.xml
+++ b/omd-checkout-service/pom.xml
@@ -55,6 +55,11 @@
 				</exclusion>
 			</exclusions>
 		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-configuration-processor</artifactId>
+			<optional>true</optional>
+		</dependency>
 	</dependencies>
 
 	<build>
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/OmdCheckoutServiceApplication.java b/omd-checkout-service/src/main/java/com/nisum/omd/OmdCheckoutServiceApplication.java
index 33660fa..98d2554 100644
--- a/omd-checkout-service/src/main/java/com/nisum/omd/OmdCheckoutServiceApplication.java
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/OmdCheckoutServiceApplication.java
@@ -5,10 +5,11 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 
 @SpringBootApplication
 public class OmdCheckoutServiceApplication {
-	
 
 	public static void main(String[] args) {
 		SpringApplication.run(OmdCheckoutServiceApplication.class, args);
+		
 	}
+	
 
 }
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/OrderGenerator.java b/omd-checkout-service/src/main/java/com/nisum/omd/OrderGenerator.java
new file mode 100644
index 0000000..5ec6a27
--- /dev/null
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/OrderGenerator.java
@@ -0,0 +1,47 @@
+package com.nisum.omd;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.stereotype.Component;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.nisum.omd.domain.Order;
+import com.nisum.omd.service.RandomDataGeneratorImpl;
+
+@Component
+public class OrderGenerator implements CommandLineRunner{
+
+	@Autowired
+	RandomDataGeneratorImpl rdg;
+	@Autowired
+	Order order;
+	Boolean orderGenerateFlag =  true;
+	
+	public Boolean getOrderGenerateFlag() {
+		return orderGenerateFlag;
+	}
+
+	public void setOrderGenerateFlag(Boolean orderGenerateFlag) {
+		this.orderGenerateFlag = orderGenerateFlag;
+	}
+
+	public void run(String... args) throws Exception {
+
+		  while(orderGenerateFlag){
+		  order=getObjectData(order);
+		  ObjectMapper objectMapper = new ObjectMapper();
+		  String jsonOrderStr = objectMapper.writeValueAsString(order);		
+		  System.out.println(jsonOrderStr);
+		  }
+	}
+
+	public Order getObjectData(Order order2) {
+		
+    	order.setOrderNum(rdg.generateOrderNumber());
+		order.setCustomerId(rdg.generateCustomerId());
+		order.setLineItem(rdg.genetateLineItem(order.getLineItem()));
+        return order;
+	}
+
+
+}
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/domain/BillingTo.java b/omd-checkout-service/src/main/java/com/nisum/omd/domain/BillingTo.java
index 37fbe09..eb39e7f 100644
--- a/omd-checkout-service/src/main/java/com/nisum/omd/domain/BillingTo.java
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/domain/BillingTo.java
@@ -13,21 +13,6 @@ public class BillingTo {
 	private String eMailID;
 	private boolean residentialAddr;
 	
-	public BillingTo(String firstName, String lastName, String addressLine1, String city, String state, String zipCode,
-			String country, int mobileNum, String eMailID, boolean residentialAddr) {
-		super();
-		this.firstName = firstName;
-		this.lastName = lastName;
-		this.addressLine1 = addressLine1;
-		this.city = city;
-		this.state = state;
-		this.zipCode = zipCode;
-		this.country = country;
-		this.mobileNum = mobileNum;
-		this.eMailID = eMailID;
-		this.residentialAddr = residentialAddr;
-	}
-
 	public String getFirstName() {
 		return firstName;
 	}
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/domain/LineItem.java b/omd-checkout-service/src/main/java/com/nisum/omd/domain/LineItem.java
index 65754bb..b90e7d2 100644
--- a/omd-checkout-service/src/main/java/com/nisum/omd/domain/LineItem.java
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/domain/LineItem.java
@@ -3,6 +3,9 @@ package com.nisum.omd.domain;
 
 import java.util.Map;
 
+import org.springframework.stereotype.Component;
+
+@Component
 public class LineItem {
 	private String lineItemNumber;
 	private String skuNumber;
@@ -14,8 +17,6 @@ public class LineItem {
 	private boolean shipChrgApplInd;
 	private String estimatedShipDate;
 	private Map<String,Object> linePriceInfo;
-	private String taxCode;
-	private boolean autoAddInd;
 	private Map<String,Object> lineTax;
 	private String originalLineItemId;
 	private String vendorUpcCode;
@@ -55,7 +56,8 @@ public class LineItem {
 		return productName;
 	}
 	public void setProductName(String productName) {
-		this.productName = productName;
+		
+		  this.productName = productName;
 	}
 	public String getItemType() {
 		return itemType;
@@ -81,18 +83,6 @@ public class LineItem {
 	public void setLinePriceInfo(Map<String, Object> linePriceInfo) {
 		this.linePriceInfo = linePriceInfo;
 	}
-	public String getTaxCode() {
-		return taxCode;
-	}
-	public void setTaxCode(String taxCode) {
-		this.taxCode = taxCode;
-	}
-	public boolean isAutoAddInd() {
-		return autoAddInd;
-	}
-	public void setAutoAddInd(boolean autoAddInd) {
-		this.autoAddInd = autoAddInd;
-	}
 	public Map<String, Object> getLineTax() {
 		return lineTax;
 	}
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/domain/Order.java b/omd-checkout-service/src/main/java/com/nisum/omd/domain/Order.java
index 6fb7269..870c56f 100644
--- a/omd-checkout-service/src/main/java/com/nisum/omd/domain/Order.java
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/domain/Order.java
@@ -1,8 +1,10 @@
 package com.nisum.omd.domain;
 
-import java.util.List;
-import java.util.Map;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
 
+@Component
+@ConfigurationProperties("app")
 public class Order {
 	
 	
@@ -14,36 +16,27 @@ public class Order {
 	private String customerType;
 	private String gift;
 	private Promotions promotions;
-	private List<LineItem> lineItem;
+	private LineItem lineItem;
 	private BillingTo billingTo;
 	private OrderCharges orderCharges;
 	private OrderTaxes orderTaxes;
 	private ShippingInfo shippingInfo;
 	private ShipTo shipTo;
 	private PaymentMethod paymentMethod;
-	
-	public Order(String orderNum, String orderDate, String currency, String shipMethod, String customerId,
-			String customerType, String gift, Promotions promotions, List<LineItem> lineItem, BillingTo billingTo,
-			OrderCharges orderCharges, OrderTaxes orderTaxes, ShippingInfo shippingInfo, ShipTo shipTo,
-			PaymentMethod paymentMethod) {
-		super();
-		this.orderNum = orderNum;
-		this.orderDate = orderDate;
-		this.currency = currency;
-		this.shipMethod = shipMethod;
+
+
+	public String getCustomerId() {
+		return customerId;
+	}
+
+
+
+	public void setCustomerId(String customerId) {
 		this.customerId = customerId;
-		this.customerType = customerType;
-		this.gift = gift;
-		this.promotions = promotions;
-		this.lineItem = lineItem;
-		this.billingTo = billingTo;
-		this.orderCharges = orderCharges;
-		this.orderTaxes = orderTaxes;
-		this.shippingInfo = shippingInfo;
-		this.shipTo = shipTo;
-		this.paymentMethod = paymentMethod;
 	}
 
+
+
 	public String getOrderNum() {
 		return orderNum;
 	}
@@ -76,13 +69,7 @@ public class Order {
 		this.shipMethod = shipMethod;
 	}
 
-	public String getCustomerId() {
-		return customerId;
-	}
 
-	public void setCustomerId(String customerId) {
-		this.customerId = customerId;
-	}
 
 	public String getCustomerType() {
 		return customerType;
@@ -108,11 +95,11 @@ public class Order {
 		this.promotions = promotions;
 	}
 
-	public List<LineItem> getLineItem() {
+	public LineItem getLineItem() {
 		return lineItem;
 	}
 
-	public void setLineItem(List<LineItem> lineItem) {
+	public void setLineItem(LineItem lineItem) {
 		this.lineItem = lineItem;
 	}
 
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/domain/OrderCharges.java b/omd-checkout-service/src/main/java/com/nisum/omd/domain/OrderCharges.java
index 591b4ac..121ceff 100644
--- a/omd-checkout-service/src/main/java/com/nisum/omd/domain/OrderCharges.java
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/domain/OrderCharges.java
@@ -5,13 +5,6 @@ public class OrderCharges {
 	private float chargeAmount;
 	private String chargeCategory;
 	private String chargeName;
-	
-	public OrderCharges(float chargeAmount, String chargeCategory, String chargeName) {
-		super();
-		this.chargeAmount = chargeAmount;
-		this.chargeCategory = chargeCategory;
-		this.chargeName = chargeName;
-	}
 
 	public float getChargeAmount() {
 		return chargeAmount;
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/domain/OrderTaxes.java b/omd-checkout-service/src/main/java/com/nisum/omd/domain/OrderTaxes.java
index f97eb2b..89d9c8f 100644
--- a/omd-checkout-service/src/main/java/com/nisum/omd/domain/OrderTaxes.java
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/domain/OrderTaxes.java
@@ -7,15 +7,6 @@ public class OrderTaxes {
 	private float tax;
 	private String taxCode;
 	private int taxPercentage;
-	
-	public OrderTaxes(String chargeCategory, String taxName, float tax, String taxCode, int taxPercentage) {
-		super();
-		this.chargeCategory = chargeCategory;
-		this.taxName = taxName;
-		this.tax = tax;
-		this.taxCode = taxCode;
-		this.taxPercentage = taxPercentage;
-	}
 
 	public String getChargeCategory() {
 		return chargeCategory;
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/domain/Promotions.java b/omd-checkout-service/src/main/java/com/nisum/omd/domain/Promotions.java
index 8f84cee..a8c0a23 100644
--- a/omd-checkout-service/src/main/java/com/nisum/omd/domain/Promotions.java
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/domain/Promotions.java
@@ -4,7 +4,6 @@ import java.util.Map;
 
 public class Promotions {
 	private Map<String,Object> PromotionDetails;
-	private Map<String,Object> Awards;
 	
 	public Map<String, Object> getPromotionDetails() {
 		return PromotionDetails;
@@ -12,11 +11,5 @@ public class Promotions {
 	public void setPromotionDetails(Map<String, Object> promotionDetails) {
 		PromotionDetails = promotionDetails;
 	}
-	public Map<String, Object> getAwards() {
-		return Awards;
-	}
-	public void setAwards(Map<String, Object> awards) {
-		Awards = awards;
-	}	
 	
 }
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/domain/ShipTo.java b/omd-checkout-service/src/main/java/com/nisum/omd/domain/ShipTo.java
index 4d986ae..bd426aa 100644
--- a/omd-checkout-service/src/main/java/com/nisum/omd/domain/ShipTo.java
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/domain/ShipTo.java
@@ -13,20 +13,6 @@ public class ShipTo {
 	private String eMailID;
 	private boolean residentialAddr;
 	
-	public ShipTo(String firstName, String lastName, String addressLine1, String city, String state, String zipCode,
-			String country, int mobileNum, String eMailID, boolean residentialAddr) {
-		super();
-		this.firstName = firstName;
-		this.lastName = lastName;
-		this.addressLine1 = addressLine1;
-		this.city = city;
-		this.state = state;
-		this.zipCode = zipCode;
-		this.country = country;
-		this.mobileNum = mobileNum;
-		this.eMailID = eMailID;
-		this.residentialAddr = residentialAddr;
-	}
 
 	public String getFirstName() {
 		return firstName;
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/domain/ShippingInfo.java b/omd-checkout-service/src/main/java/com/nisum/omd/domain/ShippingInfo.java
index 1f55e02..456ddc1 100644
--- a/omd-checkout-service/src/main/java/com/nisum/omd/domain/ShippingInfo.java
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/domain/ShippingInfo.java
@@ -7,13 +7,6 @@ public class ShippingInfo {
 	private int minDaysToDeliver;
 	
 	
-	public ShippingInfo(Boolean vaildShipTo, int maxDaysToDeliver, int minDaysToDeliver) {
-		super();
-		this.vaildShipTo = vaildShipTo;
-		this.maxDaysToDeliver = maxDaysToDeliver;
-		this.minDaysToDeliver = minDaysToDeliver;
-	}
-	
 	public Boolean getVaildShipTo() {
 		return vaildShipTo;
 	}
@@ -32,8 +25,5 @@ public class ShippingInfo {
 	public void setMinDaysToDeliver(int minDaysToDeliver) {
 		this.minDaysToDeliver = minDaysToDeliver;
 	}
-	
-	
-	
 
 }
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/service/RandomDataGenerator.java b/omd-checkout-service/src/main/java/com/nisum/omd/service/RandomDataGenerator.java
new file mode 100644
index 0000000..be5c346
--- /dev/null
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/service/RandomDataGenerator.java
@@ -0,0 +1,11 @@
+package com.nisum.omd.service;
+
+import com.nisum.omd.domain.LineItem;
+
+public interface RandomDataGenerator {
+	
+	String generateOrderNumber();
+	String generateCustomerId();
+	LineItem genetateLineItem(LineItem li);
+
+}
diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/service/RandomDataGeneratorImpl.java b/omd-checkout-service/src/main/java/com/nisum/omd/service/RandomDataGeneratorImpl.java
new file mode 100644
index 0000000..702faf5
--- /dev/null
+++ b/omd-checkout-service/src/main/java/com/nisum/omd/service/RandomDataGeneratorImpl.java
@@ -0,0 +1,65 @@
+package com.nisum.omd.service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import com.github.javafaker.Faker;
+import com.nisum.omd.domain.LineItem;
+import com.nisum.omd.domain.Order;
+
+
+@Component
+@RequestMapping("app")
+public class RandomDataGeneratorImpl implements RandomDataGenerator {
+
+	@Autowired
+	Order order;
+
+	
+	Faker fk = new Faker();
+	
+	public String generateOrderNumber() {
+		// TODO Auto-generated method stub
+		return String.valueOf(fk.number().numberBetween(1000000, 9999999));
+	}
+
+	@Override
+	public String generateCustomerId() {
+		// TODO Auto-generated method stub
+		return String.valueOf(fk.number().numberBetween(1, 1000));
+	}
+	
+	 @GetMapping("/orderDate")
+	 public String getOrderDate()
+	 {
+	  return order.getOrderDate();
+	 }
+	 
+	
+	@Override
+	public LineItem genetateLineItem(LineItem li) {
+		List<String> productname = new ArrayList<String>();
+		
+		productname.add("Easy Heavyweight T-Shirt");
+		productname.add("Classic stripe T-Shirt");
+		productname.add("Icon denim jacket");
+		productname.add("Graphic crewneck T-Shirt");
+		productname.add("Classic V T-Shirt");
+		
+		Random rand = new Random(); 
+		int randomIndex = rand.nextInt(productname.size());
+		String randomElement = productname.get(randomIndex);
+		li.setProductName(randomElement);
+		
+		return li;
+	}
+	
+
+	
+}
diff --git a/omd-checkout-service/src/main/resources/application.properties b/omd-checkout-service/src/main/resources/application.properties
index 8b13789..6b7dcc1 100644
--- a/omd-checkout-service/src/main/resources/application.properties
+++ b/omd-checkout-service/src/main/resources/application.properties
@@ -1 +1,71 @@
-
+app.orderDate=2020-04-26T13:33:15.657-05:00
+app.currency=INR
+app.shipMethod=1
+app.customerType=01
+app.promotionDesc=Electronic Items Ship Free
+app.promotionApplied=false
+app.awardId=1000
+app.awardAmt=0.00
+app.gift=false
+app.promotions.promotionDetails.promotionDesc=Electronic Items Ship Free
+app.promotions.promotionDetails.promotionApplied=false
+app.promotions.promotionDetails.awards.awardId=1000
+app.promotions.promotionDetails.awards.awardAmt=0.00
+app.lineItem.lineItemNumber=5475
+app.lineItem.skuNumber=22222222
+app.lineItem.itemColorDesc=White
+app.lineItem.size=6
+app.lineItem.orderedQty=2
+app.lineItem.itemType=7
+app.lineItem.shipChrgApplInd=true
+app.lineItem.estimatedShipDate=2020-04-26T00:00:00-05:00
+app.lineItem.linePriceInfo.listPrice=29.50
+app.lineItem.linePriceInfo.retailPrice=29.50
+app.lineItem.linePriceInfo.unitPrice=20.00
+app.lineItem.linePriceInfo.linePriceType=03
+app.lineItem.lineTax.chargeCategory=Price
+app.lineItem.lineTax.chargeName=Price
+app.lineItem.lineTax.taxName=SalesTax
+app.lineItem.lineTax.tax=3.40
+app.lineItem.lineTax.taxPercentage=8.50
+app.lineItem.lineTax.taxCode=C1
+app.lineItem.lineTax.unitTaxAmount=1.70
+app.shippingInfo.vaildShipTo=true
+app.shippingInfo.maxDaysToDeliver=9
+app.shippingInfo.minDaysToDeliver=6
+app.shipTo.firstName=Narendra
+app.shipTo.lastName=Modi
+app.shipTo.addressLine1=2 Folsom St
+app.shipTo.city=Delhi
+app.shipTo.state=DL
+app.shipTo.zipCode=110001
+app.shipTo.country=IN
+app.shipTo.mobile=9988776655
+app.shipTo.eMailID=modi@india.com
+app.shipTo.residentialAddr=false
+app.billingTo.firstName=Narendra
+app.billingTo.lastName=Modi
+app.billingTo.addressLine1=2 Folsom St
+app.billingTo.city=Delhi
+app.billingTo.state=DL
+app.billingTo.zipCode=110001
+app.billingTo.country=IN
+app.billingTo.mobile=9988776655
+app.billingTo.eMailID=modi@india.com
+app.billingTo.residentialAddr=false
+app.orderCharges.ChargeAmount=10.00
+app.orderCharges.ChargeCategory=Ship
+app.orderCharges.ChargeName=Ship
+app.orderTaxes.ChargeCategory=Shipping
+app.orderTaxes.TaxName=GST
+app.orderTaxes.Tax=0.00
+app.orderTaxes.taxCode=C1
+app.orderTaxes.TaxPercentage=12
+app.paymentMethod.paymentMethod=CC
+app.paymentMethod.creditCardNo=12345678987665
+app.paymentMethod.creditCardType=VISA
+app.paymentMethod.displayCreditCardNo=8277
+app.paymentMethod.paymentStatus=AUTH
+app.paymentMethod.paymentDetail.TransactionId=021361475199
+app.paymentMethod.paymentDetail.ProcessedAmount=1000.00
+app.paymentMethod.paymentDetail.RequestAmount=1000.00
-- 
2.18.1