Commit 9e924f12 authored by rani0808's avatar rani0808

rest api for current hrs,mins and secs

parent d35fafa7
No preview for this file type
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
......@@ -16,6 +16,7 @@
<properties>
<java.version>1.8</java.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
</properties>
<dependencies>
......@@ -38,7 +39,12 @@
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
......
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
package com.nisum.omd.controllers;
import com.nisum.omd.pojo.OrdersSummary;
import com.nisum.omd.service.OrdersSummaryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("api")
public class OrdersSummaryController {
@Autowired
OrdersSummaryService ordersSummaryService;
@GetMapping("/orderCount")
public OrdersSummary getOrderSummary(){
OrdersSummary ordersSummary=ordersSummaryService.getOrderSummaryCount();
return ordersSummary;
}
}
package com.nisum.omd.dto;
import lombok.Data;
@Data
public class BillingTo {
private String firstName;
private String lastName;
private String addressLine1;
private String city;
private String state;
private String zipCode;
private String country;
private int mobileNum;
private String eMailID;
private boolean residentialAddr;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getAddressLine1() {
return addressLine1;
}
public void setAddressLine1(String addressLine1) {
this.addressLine1 = addressLine1;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getZipCode() {
return zipCode;
}
public void setZipCode(String zipCode) {
this.zipCode = zipCode;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public int getMobileNum() {
return mobileNum;
}
public void setMobileNum(int mobileNum) {
this.mobileNum = mobileNum;
}
public String geteMailID() {
return eMailID;
}
public void seteMailID(String eMailID) {
this.eMailID = eMailID;
}
public boolean isResidentialAddr() {
return residentialAddr;
}
public void setResidentialAddr(boolean residentialAddr) {
this.residentialAddr = residentialAddr;
}
}
package com.nisum.omd.dto;
import lombok.Data;
import java.util.Map;
@Data
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 Map<String,Object> lineTax;
}
package com.nisum.omd.dto;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.Date;
@Data
@Document(collection = "orders")
public class Order {
@Id
private String id;
private String orderNum;
private Date orderDate;
private String currency;
private String shipMethod;
private String customerId;
private String customerType;
private String gift;
private Promotions promotions;
private LineItem lineItem;
private BillingTo billingTo;
private OrderCharges orderCharges;
private OrderTaxes orderTaxes;
private ShippingInfo shippingInfo;
private ShipTo shipTo;
private PaymentMethod paymentMethod;
}
package com.nisum.omd.dto;
import lombok.Data;
@Data
public class OrderCharges {
private float chargeAmount;
private String chargeCategory;
private String chargeName;
}
package com.nisum.omd.dto;
import lombok.Data;
@Data
public class OrderTaxes {
private String chargeCategory;
private String taxName;
private float tax;
private String taxCode;
private int taxPercentage;
}
package com.nisum.omd.dto;
import lombok.Data;
import java.util.Map;
@Data
public class PaymentMethod {
private String paymentMethod;
private String creditCardNo;
private String creditCardType;
private String displayCreditCardNo;
private String paymentStatus;
private Map<String,Object> paymentDetail;
}
package com.nisum.omd.dto;
import lombok.Data;
import java.util.Map;
@Data
public class Promotions {
private Map<String,Object> PromotionDetails;
}
package com.nisum.omd.dto;
import lombok.Data;
@Data
public class ShipTo {
private String firstName;
private String lastName;
private String addressLine1;
private String city;
private String state;
private String zipCode;
private String country;
private int mobileNum;
private String eMailID;
private boolean residentialAddr;
}
package com.nisum.omd.dto;
import lombok.Data;
@Data
public class ShippingInfo {
private Boolean vaildShipTo;
private int maxDaysToDeliver;
private int minDaysToDeliver;
}
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
package com.nisum.omd.pojo;
import lombok.Data;
import java.util.Date;
import java.util.Map;
@Data
public class OrdersSummary {
private Long orderCountInMinute;
private Long orderCountInHour;
private Long orderCountInDay;
private Integer totalCustomers;
private String CurrentDate;
private String currentHour;
private String currentMinute;
private Map<Date,Integer> weeklyOrders;
}
package com.nisum.omd.repository;
import lombok.Data;
@Data
public class DynamicQuery {
private Long orderDateFrom;
private Long orderDateTo;
}
package com.nisum.omd.repository;
import java.util.List;
public interface OrderRepositoryCustom {
Long query(DynamicQuery dynamicQuery);
List<String> queryCustomerCount();
}
package com.nisum.omd.repository;
import com.mongodb.client.DistinctIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.nisum.omd.dto.Order;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.util.List;
@Repository
public class OrderRepositoryCustomImpl implements OrderRepositoryCustom {
private final MongoTemplate mongoTemplate;
@Autowired
public OrderRepositoryCustomImpl(MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}
@Override
public Long query(DynamicQuery dynamicQuery) {
final Query query = new Query();
final List<Criteria> criteria = new ArrayList<>();
if(dynamicQuery.getOrderDateFrom() != null) {
criteria.add(Criteria.where("orderDate").gte(dynamicQuery.getOrderDateFrom()));
}
if(dynamicQuery.getOrderDateTo() != null) {
criteria.add(Criteria.where("orderDate").lte(dynamicQuery.getOrderDateTo()));
}
if(!criteria.isEmpty()) {
query.addCriteria(new Criteria().andOperator(criteria.toArray(new Criteria[criteria.size()])));
}
long OrderCount = mongoTemplate.count(query, Order.class);;
List<Order> orderList = mongoTemplate.find(query, Order.class);
return OrderCount;
}
public List<String> queryCustomerCount() {
List<String> categoryList = new ArrayList<>();
MongoCollection mongoCollection = mongoTemplate.getCollection("orders");
DistinctIterable distinctIterable = mongoCollection.distinct("customerId",String.class);
MongoCursor cursor = distinctIterable.iterator();
while (cursor.hasNext()) {
String category = (String)cursor.next();
categoryList.add(category);
}
return categoryList;
}
}
package com.nisum.omd.repository;
import com.nisum.omd.dto.Order;
import org.springframework.data.mongodb.repository.MongoRepository;
public interface OrdersSummaryRepository extends MongoRepository<Order, String>, OrderRepositoryCustom {
}
package com.nisum.omd.service;
import com.nisum.omd.pojo.OrdersSummary;
import java.util.Date;
import java.util.Map;
public interface OrdersSummaryService {
OrdersSummary getOrderSummaryCount();
}
package com.nisum.omd.service;
import com.nisum.omd.pojo.OrdersSummary;
import com.nisum.omd.repository.DynamicQuery;
import com.nisum.omd.repository.OrdersSummaryRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.time.*;
import java.util.Date;
import java.util.Map;
@Service
public class OrdersSummaryServiceImpl implements OrdersSummaryService {
@Autowired
private OrdersSummaryRepository ordersSummaryRepository;
private Long orderCountInMinute(){
LocalDateTime localTime = LocalDateTime.now();
LocalTime fromMin = LocalTime.of(localTime.getHour(), localTime.getMinute(),00);
LocalTime toMin = LocalTime.of(localTime.getHour(), localTime.getMinute(),59);
Instant instant = fromMin .atDate(LocalDate.now()).
atZone(ZoneId.systemDefault()).toInstant();
Date time1 = Date.from(instant);
Long fromMinute=time1.getTime();
Instant instant2 = toMin .atDate(LocalDate.now()).
atZone(ZoneId.systemDefault()).toInstant();
Date time2 = Date.from(instant2);
Long toMinute=time2.getTime();
DynamicQuery dynamicQuery = new DynamicQuery();
dynamicQuery.setOrderDateFrom(fromMinute);
dynamicQuery.setOrderDateTo(toMinute);
Long orderCount = ordersSummaryRepository.query(dynamicQuery);
return orderCount;
}
private Long orderCountInHour(){
LocalDateTime localTime = LocalDateTime.now();
LocalTime fromHr = LocalTime.of(localTime.getHour(), 00,00);
LocalTime toHr = LocalTime.of(localTime.getHour(), 59,59);
Instant instant = fromHr.atDate(LocalDate.now()).
atZone(ZoneId.systemDefault()).toInstant();
Date time1 = Date.from(instant);
Long fromHour=time1.getTime();
Instant instant2 = toHr.atDate(LocalDate.now()).
atZone(ZoneId.systemDefault()).toInstant();
Date time2 = Date.from(instant2);
Long toHour=time2.getTime();
DynamicQuery dynamicQuery = new DynamicQuery();
dynamicQuery.setOrderDateFrom(fromHour);
dynamicQuery.setOrderDateTo(toHour);
Long orderCount = ordersSummaryRepository.query(dynamicQuery);
return orderCount;
}
private Long orderCountInDay(){
LocalTime fromdt = LocalTime.of(00, 00,00);
LocalTime todt = LocalTime.of(23, 59,59);
Instant instant = fromdt.atDate(LocalDate.now()).
atZone(ZoneId.systemDefault()).toInstant();
Date time1 = Date.from(instant);
Long fromDate=time1.getTime();
Instant instant2 = todt.atDate(LocalDate.now()).
atZone(ZoneId.systemDefault()).toInstant();
Date time2 = Date.from(instant2);
Long toDate=time2.getTime();
DynamicQuery dynamicQuery = new DynamicQuery();
dynamicQuery.setOrderDateFrom(fromDate);
dynamicQuery.setOrderDateTo(toDate);
Long orderCount = ordersSummaryRepository.query(dynamicQuery);
return orderCount;
}
public OrdersSummary getOrderSummaryCount(){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd-YYYY");
LocalDateTime localTime = LocalDateTime.now();
OrdersSummary ordersSummary=new OrdersSummary();
ordersSummary.setOrderCountInMinute(this.orderCountInMinute());
ordersSummary.setOrderCountInHour(this.orderCountInHour());
ordersSummary.setOrderCountInDay(this.orderCountInDay());
ordersSummary.setTotalCustomers(ordersSummaryRepository.queryCustomerCount().size());
ordersSummary.setCurrentMinute(LocalTime.of(localTime.getHour(), localTime.getMinute(),00).toString());
ordersSummary.setCurrentHour(LocalTime.of(localTime.getHour(), 00,00).toString());
ordersSummary.setCurrentDate(simpleDateFormat.format(new Date()));
return ordersSummary;
}
}
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment