diff --git a/omd-checkout-service/pom.xml b/omd-checkout-service/pom.xml index 33a4a0897f9f852344f2d06df6f9afc1dbe7c8ae..7db490bc653f1520c6aaa6acbac478bac4a4375e 100644 --- a/omd-checkout-service/pom.xml +++ b/omd-checkout-service/pom.xml @@ -16,6 +16,7 @@ <properties> <java.version>1.8</java.version> + <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> </properties> <dependencies> @@ -23,7 +24,26 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> - + <dependency> + <groupId>com.fasterxml.jackson.core</groupId> + <artifactId>jackson-databind</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-devtools</artifactId> + <scope>runtime</scope> + <optional>true</optional> + </dependency> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>com.github.javafaker</groupId> + <artifactId>javafaker</artifactId> + <version>1.0.2</version> +</dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> 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 c79b1c8d9978c2f9a3f602c319851cf703c1e53f..9a558f8701fbf85799f41684f046837f82f29aee 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 @@ -1,13 +1,38 @@ package com.nisum.omd; +import java.io.File; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.nisum.omd.domain.Order; + @SpringBootApplication -public class OmdCheckoutServiceApplication { +public class OmdCheckoutServiceApplication implements CommandLineRunner { + + @Autowired + RandomDataGenerateImpl rdg; public static void main(String[] args) { SpringApplication.run(OmdCheckoutServiceApplication.class, args); } + @Override + public void run(String... args) throws Exception { + // TODO Auto-generated method stub + ObjectMapper objectMapper = new ObjectMapper(); + Order order = objectMapper.readValue(new File("src/main/resources/Order.json"), Order.class); + + for (int i=0; i< 100; i++) { + order.setOrderNum(rdg.generateOrderNumber()); + order.setCustomerId(rdg.generateCustomerId()); + order.setLineItem(rdg.genetateLineItem()); + + System.out.println(order); + } + } + } diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/RandomDataGenerateImpl.java b/omd-checkout-service/src/main/java/com/nisum/omd/RandomDataGenerateImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..f960a231ade4d8aa125430337def20c137b632e6 --- /dev/null +++ b/omd-checkout-service/src/main/java/com/nisum/omd/RandomDataGenerateImpl.java @@ -0,0 +1,34 @@ +package com.nisum.omd; + +import org.springframework.stereotype.Component; + +import com.github.javafaker.Faker; +import com.nisum.omd.domain.LineItem; + +@Component +//@Scope(value="prototype", proxyMode=ScopedProxyMode.TARGET_CLASS) + +public class RandomDataGenerateImpl implements RandomDataGenerator { + + Faker fk = new Faker(); + + public String generateOrderNumber() { + + return String.valueOf(fk.number().numberBetween(1000000, 9999999)); + } + + public String generateCustomerId() { + // TODO Auto-generated method stub + return String.valueOf(fk.number().numberBetween(10000, 99999)); + } + + public LineItem genetateLineItem() { + // TODO Auto-generated method stub + + LineItem li = new LineItem(); + li.setProductName(fk.commerce().productName()); + li.setTaxCode(String.valueOf(fk.number().numberBetween(100, 1000))); + return li; + } + +} diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/RandomDataGenerator.java b/omd-checkout-service/src/main/java/com/nisum/omd/RandomDataGenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..ecac4b5bc9546fa497fb7ad54f3a4fad05672421 --- /dev/null +++ b/omd-checkout-service/src/main/java/com/nisum/omd/RandomDataGenerator.java @@ -0,0 +1,11 @@ +package com.nisum.omd; + +import com.nisum.omd.domain.LineItem; + +public interface RandomDataGenerator { + + String generateOrderNumber(); + String generateCustomerId(); + LineItem genetateLineItem(); + +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..0313bc3fa0a1c2e6c19fd9a7fc48ec56d4ee38e3 --- /dev/null +++ b/omd-checkout-service/src/main/java/com/nisum/omd/domain/LineItem.java @@ -0,0 +1,141 @@ +package com.nisum.omd.domain; + + +import java.util.Map; + +public class LineItem { + private String lineItemNumber; + private String skuNumber; + private String itemColorDesc; + private String size; + private String orderedQty; + private String productName; + private String itemType; + 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; + private String brandCode; + private String eligibleReturnLocationCode; + public String getLineItemNumber() { + return lineItemNumber; + } + public void setLineItemNumber(String lineItemNumber) { + this.lineItemNumber = lineItemNumber; + } + public String getSkuNumber() { + return skuNumber; + } + public void setSkuNumber(String skuNumber) { + this.skuNumber = skuNumber; + } + public String getItemColorDesc() { + return itemColorDesc; + } + public void setItemColorDesc(String itemColorDesc) { + this.itemColorDesc = itemColorDesc; + } + public String getSize() { + return size; + } + public void setSize(String size) { + this.size = size; + } + public String getOrderedQty() { + return orderedQty; + } + public void setOrderedQty(String orderedQty) { + this.orderedQty = orderedQty; + } + public String getProductName() { + return productName; + } + public void setProductName(String productName) { + this.productName = productName; + } + public String getItemType() { + return itemType; + } + public void setItemType(String itemType) { + this.itemType = itemType; + } + public boolean isShipChrgApplInd() { + return shipChrgApplInd; + } + public void setShipChrgApplInd(boolean shipChrgApplInd) { + this.shipChrgApplInd = shipChrgApplInd; + } + public String getEstimatedShipDate() { + return estimatedShipDate; + } + public void setEstimatedShipDate(String estimatedShipDate) { + this.estimatedShipDate = estimatedShipDate; + } + public Map<String, Object> getLinePriceInfo() { + return linePriceInfo; + } + 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; + } + public void setLineTax(Map<String, Object> lineTax) { + this.lineTax = lineTax; + } + public String getOriginalLineItemId() { + return originalLineItemId; + } + public void setOriginalLineItemId(String originalLineItemId) { + this.originalLineItemId = originalLineItemId; + } + public String getVendorUpcCode() { + return vendorUpcCode; + } + public void setVendorUpcCode(String vendorUpcCode) { + this.vendorUpcCode = vendorUpcCode; + } + public String getBrandCode() { + return brandCode; + } + public void setBrandCode(String brandCode) { + this.brandCode = brandCode; + } + public String getEligibleReturnLocationCode() { + return eligibleReturnLocationCode; + } + public void setEligibleReturnLocationCode(String eligibleReturnLocationCode) { + this.eligibleReturnLocationCode = eligibleReturnLocationCode; + } + @Override + public String toString() { + return "LineItem [lineItemNumber=" + lineItemNumber + ", skuNumber=" + skuNumber + ", itemColorDesc=" + + itemColorDesc + ", size=" + size + ", orderedQty=" + orderedQty + ", productName=" + productName + + ", itemType=" + itemType + ", shipChrgApplInd=" + shipChrgApplInd + ", estimatedShipDate=" + + estimatedShipDate + ", linePriceInfo=" + linePriceInfo + ", taxCode=" + taxCode + ", autoAddInd=" + + autoAddInd + ", lineTax=" + lineTax + ", originalLineItemId=" + originalLineItemId + + ", vendorUpcCode=" + vendorUpcCode + ", brandCode=" + brandCode + ", eligibleReturnLocationCode=" + + eligibleReturnLocationCode + "]"; + } + + + + + +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..e4011968783e8add6df97322efd5ed9ca067aaa1 --- /dev/null +++ b/omd-checkout-service/src/main/java/com/nisum/omd/domain/Order.java @@ -0,0 +1,127 @@ +package com.nisum.omd.domain; + +import java.util.Map; + +public class Order { + + + private String orderNum; + private String orderDate; + private String currency; + private String shipMethod; + private String customerId; + private String customerType; + private Promotions promotions; + private String gift; + private LineItem lineItem; + private Map<String,Object> shippingInfo; + private Map<String,Object> shipTo; + private Map<String,Object> billingTo; + private Map<String,Object> orderCharges; + private Map<String,Object> OrderTaxes; + private PaymentMethod paymentMethod; + + + public String getOrderNum() { + return orderNum; + } + public void setOrderNum(String orderNum) { + this.orderNum = orderNum; //rdg.generateOrderNumber(); + } + public String getOrderDate() { + return orderDate; + } + public void setOrderDate(String orderDate) { + this.orderDate = orderDate; + } + public String getCurrency() { + return currency; + } + public void setCurrency(String currency) { + this.currency = currency; + } + public String getShipMethod() { + return shipMethod; + } + public void setShipMethod(String shipMethod) { + this.shipMethod = shipMethod; + } + public String getCustomerId() { + return customerId; + } + public void setCustomerId(String customerId) { + this.customerId = customerId;//rdg.generateCustomerId(); + } + public String getCustomerType() { + return customerType; + } + public void setCustomerType(String customerType) { + this.customerType = customerType; + } + public Promotions getPromotions() { + return promotions; + } + public void setPromotions(Promotions promotions) { + this.promotions = promotions; + } + public String getGift() { + return gift; + } + public void setGift(String gift) { + this.gift = gift; + } + public LineItem getLineItem() { + return lineItem; + } + public void setLineItem(LineItem lineItem) { + //this.lineItem = rdg.genetateLineItem(); + this.lineItem = lineItem; + } + public Map<String, Object> getShippingInfo() { + return shippingInfo; + } + public void setShippingInfo(Map<String, Object> shippingInfo) { + this.shippingInfo = shippingInfo; + } + public Map<String, Object> getShipTo() { + return shipTo; + } + public void setShipTo(Map<String, Object> shipTo) { + this.shipTo = shipTo; + } + public Map<String, Object> getBillingTo() { + return billingTo; + } + public void setBillingTo(Map<String, Object> billingTo) { + this.billingTo = billingTo; + } + public Map<String, Object> getOrderCharges() { + return orderCharges; + } + public void setOrderCharges(Map<String, Object> orderCharges) { + this.orderCharges = orderCharges; + } + public Map<String, Object> getOrderTaxes() { + return OrderTaxes; + } + public void setOrderTaxes(Map<String, Object> orderTaxes) { + OrderTaxes = orderTaxes; + } + public PaymentMethod getPaymentMethod() { + return paymentMethod; + } + public void setPaymentMethod(PaymentMethod paymentMethod) { + this.paymentMethod = paymentMethod; + } + @Override + public String toString() { + return "Order [orderNum=" + orderNum + ", orderDate=" + orderDate + ", currency=" + currency + ", shipMethod=" + + shipMethod + ", customerId=" + customerId + ", customerType=" + customerType + ", promotions=" + + promotions + ", gift=" + gift + ", lineItem=" + lineItem + ", shippingInfo=" + shippingInfo + + ", shipTo=" + shipTo + ", billingTo=" + billingTo + ", orderCharges=" + orderCharges + ", OrderTaxes=" + + OrderTaxes + ", paymentMethod=" + paymentMethod + "]"; + } + + + +} diff --git a/omd-checkout-service/src/main/java/com/nisum/omd/domain/PaymentMethod.java b/omd-checkout-service/src/main/java/com/nisum/omd/domain/PaymentMethod.java new file mode 100644 index 0000000000000000000000000000000000000000..b5fd48a6614d0009afee6b991e5b66e95079446e --- /dev/null +++ b/omd-checkout-service/src/main/java/com/nisum/omd/domain/PaymentMethod.java @@ -0,0 +1,57 @@ +package com.nisum.omd.domain; + +import java.util.Map; + +public class PaymentMethod { + private String paymetMethod; + private String creditCardNo; + private String creditCardType; + private String displayCreditCardNo; + private String paymentStatus; + private Map<String,Object> paymentDetail; + public String getPaymetMethod() { + return paymetMethod; + } + public void setPaymetMethod(String paymetMethod) { + this.paymetMethod = paymetMethod; + } + public String getCreditCardNo() { + return creditCardNo; + } + public void setCreditCardNo(String creditCardNo) { + this.creditCardNo = creditCardNo; + } + public String getCreditCardType() { + return creditCardType; + } + public void setCreditCardType(String creditCardType) { + this.creditCardType = creditCardType; + } + public String getDisplayCreditCardNo() { + return displayCreditCardNo; + } + public void setDisplayCreditCardNo(String displayCreditCardNo) { + this.displayCreditCardNo = displayCreditCardNo; + } + public String getPaymentStatus() { + return paymentStatus; + } + public void setPaymentStatus(String paymentStatus) { + this.paymentStatus = paymentStatus; + } + public Map<String, Object> getPaymentDetail() { + return paymentDetail; + } + public void setPaymentDetail(Map<String, Object> paymentDetail) { + this.paymentDetail = paymentDetail; + } + @Override + public String toString() { + return "PaymentMethod [paymetMethod=" + paymetMethod + ", creditCardNo=" + creditCardNo + ", creditCardType=" + + creditCardType + ", displayCreditCardNo=" + displayCreditCardNo + ", paymentStatus=" + paymentStatus + + ", paymentDetail=" + paymentDetail + "]"; + } + + + +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..6e592ab7e550b13f65078930022cc1c133e23f3c --- /dev/null +++ b/omd-checkout-service/src/main/java/com/nisum/omd/domain/Promotions.java @@ -0,0 +1,27 @@ +package com.nisum.omd.domain; + +import java.util.Map; + +public class Promotions { + private Map<String,Object> PromotionDetails; + private Map<String,Object> Awards; + + public Map<String, Object> getPromotionDetails() { + return PromotionDetails; + } + 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; + } + @Override + public String toString() { + return "Promotions [PromotionDetails=" + PromotionDetails + ", Awards=" + Awards + "]"; + } + + +} diff --git a/omd-checkout-service/src/main/resources/Order.json b/omd-checkout-service/src/main/resources/Order.json new file mode 100644 index 0000000000000000000000000000000000000000..75f2d5cee05a22429b840900bddac5e1c467caba --- /dev/null +++ b/omd-checkout-service/src/main/resources/Order.json @@ -0,0 +1,101 @@ +{ + "orderNum": "1000A1BX", + "orderDate": "2020-04-15T13:33:15.657-05:00", + "currency": "INR", + "shipMethod": "1", + "customerId": "189359", + "customerType": "01", + "promotions": { + "promotionDetails": { + "promotionDesc": "Electronic Items Ship Free", + "promotionApplied": "false", + "awards": { + "awardId": "1000", + "awardAmt": "0.00" + } + } + }, + "gift": "false", + "lineItem": { + "lineItemNumber": "5475", + "skuNumber": "22222222", + "itemColorDesc": "White", + "size": "6", + "orderedQty": "2", + "productName": "Apple Mobile", + "itemType": "7", + "shipChrgApplInd": "true", + "estimatedShipDate": "2020-04-15T00:00:00-05:00", + "linePriceInfo": { + "listPrice": "29.50", + "retailPrice": "29.50", + "unitPrice": "20.00", + "linePriceType": "03" + }, + + "lineTax": { + "chargeCategory": "Price", + "chargeName": "Price", + "taxName": "SalesTax", + "tax": "3.40", + "taxPercentage": "8.50", + "taxCode": "C1", + "unitTaxAmount": "1.70" + } + }, + "shippingInfo": { + "vaildShipTo": "true", + "maxDaysToDeliver": "9", + "minDaysToDeliver": "6" + }, + "shipTo": { + "firstName": "Narendra", + "lastName": "Modi", + "addressLine1": "2 Folsom St", + "city": "Delhi", + "state": "DL", + "zipCode": "110001", + "country": "IN", + "mobile": "9988776655", + "eMailID": "modi@india.com", + "residentialAddr": "false" + }, + "billingTo": { + "firstName": "Narendra", + "fastName": "Modi", + "addressLine1": "2 Folsom St", + "city": "Delhi", + "state": "DL", + "zipCode": "110001", + "country": "IN", + "mobile": "9988776655", + "eMailID": "modi@india.com", + "residentialAddr": "false" + }, + "orderCharges": { + "ChargeAmount": "10.00", + "ChargeCategory": "Ship", + "ChargeName": "Ship" + }, + "orderTaxes": { + "ChargeCategory": "Shipping", + "TaxName": "GST", + "Tax": "0.00", + "taxCode": "C1", + "TaxPercentage": "12" + }, + "paymentMethod": { + "paymetMethod": "CC", + "creditCardNo": "12345678987665", + "creditCardType": "VISA", + "displayCreditCardNo": "8277", + "paymentStatus": "AUTH", + "paymentDetail": { + "TransactionId": "021361475199", + "ProcessedAmount": "1000.00", + "RequestAmount": "1000.00" + } + } + +} +