delivery_api finished
This commit is contained in:
11
delivery/src/main/java/org/hso/ecommerce/supplier/App.java
Normal file
11
delivery/src/main/java/org/hso/ecommerce/supplier/App.java
Normal file
@ -0,0 +1,11 @@
|
||||
package org.hso.ecommerce.supplier;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class App {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(App.class, args);
|
||||
}
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package org.hso.ecommerce.supplier;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonFactoryBuilder;
|
||||
import netscape.javascript.JSObject;
|
||||
import org.hso.ecommerce.supplier.data.Delivery;
|
||||
import org.hso.ecommerce.supplier.data.DeliveryManager;
|
||||
import org.json.JSONObject;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
@RestController
|
||||
public class RequestController {
|
||||
|
||||
|
||||
|
||||
@PostMapping("/newDelivery")
|
||||
public String supplier(HttpServletResponse response, HttpServletRequest request, @RequestBody Delivery delivery) {
|
||||
DeliveryManager.getInstance().add(delivery);
|
||||
|
||||
return delivery.getUuid().toString();
|
||||
}
|
||||
|
||||
@GetMapping("/status")
|
||||
public String searchArticles(@RequestParam(value = "trackingID") String trackingID, HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
Delivery delivery = DeliveryManager.getInstance().getDeliveryByeID(trackingID);
|
||||
|
||||
return new JSONObject().put("status",delivery.getStatus()).put("estimatedArrival",delivery.getEstimatedArrival()).toString();
|
||||
}
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
package org.hso.ecommerce.supplier.data;
|
||||
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.UUID;
|
||||
|
||||
public class Delivery {
|
||||
|
||||
private String[] states = {"Bestellung eingegangen","Bestellung auf dem Weg","Lieferung erfolgreich"};
|
||||
private double[] timeBorder = {4,24};
|
||||
|
||||
private String name;
|
||||
private String address;
|
||||
private String estimatedArrival;
|
||||
private Date creationTime;
|
||||
private UUID uuid;
|
||||
|
||||
public Delivery(String name, String address)
|
||||
{
|
||||
this.name = name;
|
||||
this.address = address;
|
||||
this.uuid = UUID.randomUUID();
|
||||
this.creationTime = new Date();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
|
||||
this.estimatedArrival = formatter.format(addDays((Date)this.creationTime.clone(),1));
|
||||
}
|
||||
|
||||
|
||||
public String getStatus()
|
||||
{
|
||||
Date now = new Date();
|
||||
Long timeNow = now.getTime();
|
||||
Long creationTime = this.creationTime.getTime();
|
||||
|
||||
Long diff = timeNow - creationTime;
|
||||
double hour = (((diff / 1000) / 3600));
|
||||
|
||||
for (int i = 0; i < timeBorder.length; i++) {
|
||||
|
||||
if(hour < timeBorder[i])
|
||||
return states[i];
|
||||
}
|
||||
|
||||
return states[timeBorder.length];
|
||||
}
|
||||
|
||||
public String getEstimatedArrival() {
|
||||
|
||||
return estimatedArrival;
|
||||
}
|
||||
|
||||
private Date addDays(Date date, int days)
|
||||
{
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(date);
|
||||
cal.add(Calendar.DATE, days);
|
||||
return cal.getTime();
|
||||
}
|
||||
|
||||
public UUID getUuid() {
|
||||
return uuid;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package org.hso.ecommerce.supplier.data;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class DeliveryManager {
|
||||
|
||||
private List<Delivery> deliveryList;
|
||||
private static DeliveryManager deliveryManager;
|
||||
|
||||
private DeliveryManager()
|
||||
{
|
||||
deliveryList = new ArrayList<>();
|
||||
}
|
||||
|
||||
public static DeliveryManager getInstance () {
|
||||
|
||||
if (DeliveryManager.deliveryManager == null) {
|
||||
DeliveryManager.deliveryManager = new DeliveryManager();
|
||||
}
|
||||
return DeliveryManager.deliveryManager;
|
||||
}
|
||||
|
||||
public boolean add(Delivery delivery)
|
||||
{
|
||||
return deliveryList.add(delivery);
|
||||
}
|
||||
|
||||
public Delivery getDeliveryByeID(String uuid)
|
||||
{
|
||||
return deliveryList.parallelStream().filter(d -> d.getUuid().equals(UUID.fromString(uuid))).findAny().get();
|
||||
}
|
||||
}
|
2
delivery/src/main/resources/application.properties
Normal file
2
delivery/src/main/resources/application.properties
Normal file
@ -0,0 +1,2 @@
|
||||
server.address=::1
|
||||
server.port=8081
|
Reference in New Issue
Block a user