Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
java-training-project-final
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Muhammad Abdul Qadeer Farooqui
java-training-project-final
Commits
ccb7a3d5
Commit
ccb7a3d5
authored
2 years ago
by
Muhammad Abdul Qadeer Farooqui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
jsonsent through controller
parent
add30782
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
273 additions
and
70 deletions
+273
-70
pom.xml
customer-service/pom.xml
+10
-0
CustomerController.java
...va/com/qadeer/customer/controller/CustomerController.java
+18
-2
CustomerDto.java
...ce/src/main/java/com/qadeer/customer/dto/CustomerDto.java
+20
-0
CustomerRequest.java
...rc/main/java/com/qadeer/customer/dto/CustomerRequest.java
+17
-0
FeignService.java
...src/main/java/com/qadeer/customer/feign/FeignService.java
+8
-4
CustomerMapper.java
.../main/java/com/qadeer/customer/mapper/CustomerMapper.java
+10
-0
CustomerService.java
...ain/java/com/qadeer/customer/service/CustomerService.java
+9
-3
InventoryController.java
.../com/qadeer/inventory/controller/InventoryController.java
+13
-3
CustomerDto.java
...e/src/main/java/com/qadeer/inventory/dto/CustomerDto.java
+15
-0
CustomerRequest.java
...c/main/java/com/qadeer/inventory/dto/CustomerRequest.java
+16
-0
Product.java
...ice/src/main/java/com/qadeer/inventory/model/Product.java
+1
-1
ProductRepository.java
...va/com/qadeer/inventory/repository/ProductRepository.java
+1
-1
ProductService.java
...ain/java/com/qadeer/inventory/service/ProductService.java
+37
-38
orders.csv
seller-service/orders.csv
+0
-5
Constant.java
...ce/src/main/java/com/qadeer/seller/constant/Constant.java
+5
-0
SellerController.java
...n/java/com/qadeer/seller/controller/SellerController.java
+11
-0
CustomerDto.java
...vice/src/main/java/com/qadeer/seller/dto/CustomerDto.java
+15
-0
CustomerRequest.java
.../src/main/java/com/qadeer/seller/dto/CustomerRequest.java
+15
-0
FeignService.java
...e/src/main/java/com/qadeer/seller/feign/FeignService.java
+7
-0
Order.java
...-service/src/main/java/com/qadeer/seller/model/Order.java
+25
-0
OrderRepository.java
...in/java/com/qadeer/seller/repository/OrderRepository.java
+7
-0
SellerService.java
...rc/main/java/com/qadeer/seller/service/SellerService.java
+13
-13
No files found.
customer-service/pom.xml
View file @
ccb7a3d5
...
@@ -52,6 +52,16 @@
...
@@ -52,6 +52,16 @@
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-validation
</artifactId>
<artifactId>
spring-boot-starter-validation
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
org.mapstruct
</groupId>
<artifactId>
mapstruct
</artifactId>
<version>
1.4.2.Final
</version>
</dependency>
<dependency>
<groupId>
org.mapstruct
</groupId>
<artifactId>
mapstruct-processor
</artifactId>
<version>
1.4.2.Final
</version>
</dependency>
</dependencies>
</dependencies>
<dependencyManagement>
<dependencyManagement>
<dependencies>
<dependencies>
...
...
This diff is collapsed.
Click to expand it.
customer-service/src/main/java/com/qadeer/customer/controller/CustomerController.java
View file @
ccb7a3d5
package
com
.
qadeer
.
customer
.
controller
;
package
com
.
qadeer
.
customer
.
controller
;
import
com.qadeer.customer.dto.CustomerDto
;
import
com.qadeer.customer.dto.ProductDto
;
import
com.qadeer.customer.dto.ProductDto
;
import
com.qadeer.customer.dto.CustomerRequest
;
import
com.qadeer.customer.model.Customer
;
import
com.qadeer.customer.model.Customer
;
import
com.qadeer.customer.service.CustomerService
;
import
com.qadeer.customer.service.CustomerService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.Valid
;
import
java.util.List
;
import
java.util.List
;
@RestController
@RestController
...
@@ -25,10 +27,24 @@ public class CustomerController {
...
@@ -25,10 +27,24 @@ public class CustomerController {
@GetMapping
(
"/buy/{productName}/{quantity}"
)
@GetMapping
(
"/buy/{productName}/{quantity}"
)
public
ResponseEntity
<
List
<
ProductDto
>>
buy
(
@PathVariable
(
"productName"
)
String
productName
,
@PathVariable
(
"quantity"
)
int
productQuantity
)
{
public
ResponseEntity
<
List
<
ProductDto
>>
buy
(
@PathVariable
(
"productName"
)
String
productName
,
@PathVariable
(
"quantity"
)
int
productQuantity
)
{
List
<
ProductDto
>
productDtoList
=
service
.
buyProduct
s
(
productName
,
String
.
valueOf
(
productQuantity
));
List
<
ProductDto
>
productDtoList
=
service
.
buyProduct
ByName
(
productName
,
String
.
valueOf
(
productQuantity
));
return
new
ResponseEntity
<
List
<
ProductDto
>>(
productDtoList
,
HttpStatus
.
OK
);
return
new
ResponseEntity
<
List
<
ProductDto
>>(
productDtoList
,
HttpStatus
.
OK
);
}
}
// current
@PostMapping
(
"product/buy/json"
)
public
ResponseEntity
<?>
buyJson
(
@RequestBody
@Valid
CustomerRequest
customerRequest
)
{
List
<
ProductDto
>
products
=
customerRequest
.
getItems
();
CustomerDto
customerDto
=
customerRequest
.
getCustomerDto
();
System
.
out
.
println
(
customerDto
.
toString
());
// for(ProductDto p : products) {
// System.out.println(p.getName() + " " + p.getQuantity());
// }
List
<
ProductDto
>
availableProducts
=
service
.
buyProducts
(
customerRequest
);
return
new
ResponseEntity
<>(
availableProducts
,
HttpStatus
.
OK
);
}
@GetMapping
(
"/product/{id}"
)
@GetMapping
(
"/product/{id}"
)
public
ResponseEntity
<?>
getProductById
(
@PathVariable
int
id
)
{
public
ResponseEntity
<?>
getProductById
(
@PathVariable
int
id
)
{
ProductDto
productDto
=
service
.
getProductById
(
id
);
ProductDto
productDto
=
service
.
getProductById
(
id
);
...
...
This diff is collapsed.
Click to expand it.
customer-service/src/main/java/com/qadeer/customer/dto/CustomerDto.java
0 → 100644
View file @
ccb7a3d5
package
com
.
qadeer
.
customer
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.validation.constraints.Pattern
;
import
javax.validation.constraints.Positive
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
CustomerDto
{
@Positive
private
int
id
;
private
String
name
;
@Pattern
(
regexp
=
"^((\\(\\d{3}\\))|\\d{3})[- .]?\\d{3}[- .]?\\d{4}$"
)
private
String
phoneNo
;
private
String
creditCardNo
;
}
This diff is collapsed.
Click to expand it.
customer-service/src/main/java/com/qadeer/customer/dto/CustomerRequest.java
0 → 100644
View file @
ccb7a3d5
package
com
.
qadeer
.
customer
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.springframework.validation.annotation.Validated
;
import
java.util.List
;
@Validated
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
CustomerRequest
{
private
CustomerDto
customerDto
;
private
List
<
ProductDto
>
items
;
}
This diff is collapsed.
Click to expand it.
customer-service/src/main/java/com/qadeer/customer/feign/FeignService.java
View file @
ccb7a3d5
package
com
.
qadeer
.
customer
.
feign
;
package
com
.
qadeer
.
customer
.
feign
;
import
com.qadeer.customer.dto.CustomerRequest
;
import
com.qadeer.customer.dto.ProductDto
;
import
com.qadeer.customer.dto.ProductDto
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.http.
ResponseEntity
;
import
org.springframework.http.
HttpHeaders
;
import
org.springframework.
web.bind.annotation.GetMapping
;
import
org.springframework.
http.MediaType
;
import
org.springframework.web.bind.annotation.
PathVariable
;
import
org.springframework.web.bind.annotation.
*
;
import
java.util.List
;
import
java.util.List
;
...
@@ -14,6 +16,8 @@ public interface FeignService {
...
@@ -14,6 +16,8 @@ public interface FeignService {
ProductDto
getProductById
(
@PathVariable
int
id
);
ProductDto
getProductById
(
@PathVariable
int
id
);
@GetMapping
(
"/product/{productName}/{productQuantity}"
)
@GetMapping
(
"/product/{productName}/{productQuantity}"
)
ResponseEntity
<
List
<
ProductDto
>>
buyProducts
(
@PathVariable
(
"productName"
)
String
productName
,
@PathVariable
(
"productQuantity"
)
String
productQuantity
);
List
<
ProductDto
>
buyProductByName
(
@PathVariable
(
"productName"
)
String
productName
,
@PathVariable
(
"productQuantity"
)
String
productQuantity
);
@PostMapping
(
path
=
"/product/buy/json"
)
List
<
ProductDto
>
buyProducts
(
@RequestBody
CustomerRequest
customerRequest
);
}
}
This diff is collapsed.
Click to expand it.
customer-service/src/main/java/com/qadeer/customer/mapper/CustomerMapper.java
0 → 100644
View file @
ccb7a3d5
package
com
.
qadeer
.
customer
.
mapper
;
import
com.qadeer.customer.dto.CustomerDto
;
import
com.qadeer.customer.model.Customer
;
import
org.mapstruct.Mapper
;
@Mapper
(
componentModel
=
"spring"
)
public
interface
CustomerMapper
{
CustomerDto
entityToDto
(
Customer
customer
);
}
This diff is collapsed.
Click to expand it.
customer-service/src/main/java/com/qadeer/customer/service/CustomerService.java
View file @
ccb7a3d5
package
com
.
qadeer
.
customer
.
service
;
package
com
.
qadeer
.
customer
.
service
;
import
com.qadeer.customer.dto.CustomerRequest
;
import
com.qadeer.customer.dto.ProductDto
;
import
com.qadeer.customer.dto.ProductDto
;
import
com.qadeer.customer.feign.FeignService
;
import
com.qadeer.customer.feign.FeignService
;
import
com.qadeer.customer.repository.CustomerRepository
;
import
com.qadeer.customer.repository.CustomerRepository
;
...
@@ -19,9 +20,14 @@ public class CustomerService {
...
@@ -19,9 +20,14 @@ public class CustomerService {
@Autowired
@Autowired
private
FeignService
feignService
;
private
FeignService
feignService
;
public
List
<
ProductDto
>
buyProducts
(
String
productName
,
String
productQuantity
)
{
public
List
<
ProductDto
>
buyProductByName
(
String
productName
,
String
productQuantity
)
{
ResponseEntity
<
List
<
ProductDto
>>
productDto
=
feignService
.
buyProducts
(
productName
,
productQuantity
);
List
<
ProductDto
>
productDto
=
feignService
.
buyProductByName
(
productName
,
productQuantity
);
return
productDto
.
getBody
();
return
productDto
;
}
public
List
<
ProductDto
>
buyProducts
(
CustomerRequest
customerRequest
)
{
List
<
ProductDto
>
products
=
feignService
.
buyProducts
(
customerRequest
);
return
products
;
}
}
public
ProductDto
getProductById
(
int
id
)
{
public
ProductDto
getProductById
(
int
id
)
{
...
...
This diff is collapsed.
Click to expand it.
inventory-service/src/main/java/com/qadeer/inventory/controller/InventoryController.java
View file @
ccb7a3d5
package
com
.
qadeer
.
inventory
.
controller
;
package
com
.
qadeer
.
inventory
.
controller
;
import
com.qadeer.inventory.dto.CustomerDto
;
import
com.qadeer.inventory.dto.CustomerRequest
;
import
com.qadeer.inventory.model.Product
;
import
com.qadeer.inventory.model.Product
;
import
com.qadeer.inventory.service.ProductService
;
import
com.qadeer.inventory.service.ProductService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -9,7 +11,10 @@ import org.springframework.web.bind.annotation.*;
...
@@ -9,7 +11,10 @@ import org.springframework.web.bind.annotation.*;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
@RestController
@RestController
@RequestMapping
(
"/inventory"
)
@RequestMapping
(
"/inventory"
)
...
@@ -36,9 +41,14 @@ public class InventoryController {
...
@@ -36,9 +41,14 @@ public class InventoryController {
}
}
@GetMapping
(
"/product/{productName}/{productQuantity}"
)
@GetMapping
(
"/product/{productName}/{productQuantity}"
)
public
ResponseEntity
<?>
buyProduct
s
(
@PathVariable
(
"productName"
)
String
productName
,
@PathVariable
(
"productQuantity"
)
int
productQuantity
)
{
public
ResponseEntity
<?>
buyProduct
ByName
(
@PathVariable
(
"productName"
)
String
productName
,
@PathVariable
(
"productQuantity"
)
int
productQuantity
)
{
List
<
Product
>
productList
=
service
.
buyProducts
(
productName
,
productQuantity
);
Product
product
=
service
.
buyProductByName
(
productName
,
productQuantity
);
return
new
ResponseEntity
<
List
<
Product
>>(
productLis
t
,
HttpStatus
.
OK
);
return
new
ResponseEntity
<
>(
produc
t
,
HttpStatus
.
OK
);
}
}
@PostMapping
(
"/product/buy/json"
)
public
ResponseEntity
<?>
buyProducts
(
@RequestBody
CustomerRequest
customerRequest
)
{
List
<
Product
>
requestedProducts
=
service
.
buyProducts
(
customerRequest
);
return
new
ResponseEntity
<>(
requestedProducts
,
HttpStatus
.
OK
);
}
}
}
This diff is collapsed.
Click to expand it.
inventory-service/src/main/java/com/qadeer/inventory/dto/CustomerDto.java
0 → 100644
View file @
ccb7a3d5
package
com
.
qadeer
.
inventory
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
CustomerDto
{
private
int
id
;
private
String
name
;
private
String
phoneNo
;
private
String
creditCardNo
;
}
This diff is collapsed.
Click to expand it.
inventory-service/src/main/java/com/qadeer/inventory/dto/CustomerRequest.java
0 → 100644
View file @
ccb7a3d5
package
com
.
qadeer
.
inventory
.
dto
;
import
com.qadeer.inventory.model.Product
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
CustomerRequest
{
private
List
<
Product
>
items
;
private
CustomerDto
customerDto
;
}
This diff is collapsed.
Click to expand it.
inventory-service/src/main/java/com/qadeer/inventory/model/Product.java
View file @
ccb7a3d5
...
@@ -15,7 +15,7 @@ import javax.persistence.Id;
...
@@ -15,7 +15,7 @@ import javax.persistence.Id;
@NoArgsConstructor
@NoArgsConstructor
public
class
Product
{
public
class
Product
{
@Id
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
@GeneratedValue
(
strategy
=
GenerationType
.
AUTO
)
private
int
id
;
private
int
id
;
private
String
name
;
private
String
name
;
private
int
price
;
private
int
price
;
...
...
This diff is collapsed.
Click to expand it.
inventory-service/src/main/java/com/qadeer/inventory/repository/ProductRepository.java
View file @
ccb7a3d5
...
@@ -8,5 +8,5 @@ import java.util.List;
...
@@ -8,5 +8,5 @@ import java.util.List;
@Repository
@Repository
public
interface
ProductRepository
extends
JpaRepository
<
Product
,
Integer
>
{
public
interface
ProductRepository
extends
JpaRepository
<
Product
,
Integer
>
{
List
<
Product
>
findByName
(
String
productName
);
Product
findByName
(
String
productName
);
}
}
This diff is collapsed.
Click to expand it.
inventory-service/src/main/java/com/qadeer/inventory/service/ProductService.java
View file @
ccb7a3d5
package
com
.
qadeer
.
inventory
.
service
;
package
com
.
qadeer
.
inventory
.
service
;
import
com.qadeer.inventory.dto.CustomerRequest
;
import
com.qadeer.inventory.model.Product
;
import
com.qadeer.inventory.model.Product
;
import
com.qadeer.inventory.repository.ProductRepository
;
import
com.qadeer.inventory.repository.ProductRepository
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -10,9 +11,7 @@ import java.io.BufferedReader;
...
@@ -10,9 +11,7 @@ import java.io.BufferedReader;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.InputStreamReader
;
import
java.io.InputStreamReader
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
@Service
@Service
public
class
ProductService
{
public
class
ProductService
{
...
@@ -51,42 +50,42 @@ public class ProductService {
...
@@ -51,42 +50,42 @@ public class ProductService {
return
productList
;
return
productList
;
}
}
public
List
<
Product
>
buyProducts
(
String
productName
,
int
requiredQuant
)
{
public
Product
buyProductByName
(
String
productName
,
int
requiredQuantity
)
{
List
<
Product
>
productList
=
repository
.
findByName
(
productName
);
Product
product
=
repository
.
findByName
(
productName
);
List
<
Product
>
myProducts
=
new
ArrayList
<>();
int
restockQuantity
=
0
;
int
requiredProducts
=
0
;
Product
productRequested
=
new
Product
();
for
(
Product
product:
productList
)
{
if
(
product
.
getQuantity
()
>=
requiredQuantity
)
{
if
(
product
.
getQuantity
()
>=
requiredQuant
)
{
// create copy of product object.
// create copy of product object.
productRequested
.
setId
(
product
.
getId
());
Product
deliverProduct
=
new
Product
();
productRequested
.
setName
(
product
.
getName
());
deliverProduct
.
setId
(
product
.
getId
());
productRequested
.
setPrice
(
product
.
getPrice
());
deliverProduct
.
setName
(
product
.
getName
());
productRequested
.
setQuantity
(
requiredQuantity
);
deliverProduct
.
setPrice
(
product
.
getPrice
());
product
.
setQuantity
(
product
.
getQuantity
()
-
requiredQuantity
);
deliverProduct
.
setQuantity
(
requiredQuant
);
repository
.
save
(
product
);
myProducts
.
add
(
deliverProduct
);
}
product
.
setQuantity
(
product
.
getQuantity
()
-
requiredQuant
);
else
if
(
product
.
getQuantity
()
>
0
&&
product
.
getQuantity
()
<
requiredQuantity
){
repository
.
save
(
product
);
restockQuantity
=
requiredQuantity
-
product
.
getQuantity
();
}
// create copy of product object.
else
if
(
product
.
getQuantity
()
>
0
&&
product
.
getQuantity
()
<
requiredQuant
){
productRequested
.
setId
(
product
.
getId
());
requiredProducts
=
requiredQuant
-
product
.
getQuantity
();
productRequested
.
setName
(
product
.
getName
());
// create copy of product object.
productRequested
.
setPrice
(
product
.
getPrice
());
Product
deliverProduct
=
new
Product
();
productRequested
.
setQuantity
(
product
.
getQuantity
());
deliverProduct
.
setId
(
product
.
getId
());
product
.
setQuantity
(
0
);
deliverProduct
.
setName
(
product
.
getName
());
repository
.
save
(
product
);
deliverProduct
.
setPrice
(
product
.
getPrice
());
}
deliverProduct
.
setQuantity
(
product
.
getQuantity
());
System
.
out
.
println
(
requiredProducts
);
return
productRequested
;
myProducts
.
add
(
deliverProduct
);
}
product
.
setQuantity
(
0
);
repository
.
save
(
product
);
public
List
<
Product
>
buyProducts
(
CustomerRequest
customerRequest
)
{
}
List
<
Product
>
productDtoList
=
customerRequest
.
getItems
();
else
{
System
.
out
.
println
(
customerRequest
);
myProducts
.
add
(
null
);
List
<
Product
>
requestedProducts
=
new
ArrayList
<>();
}
for
(
Product
p
:
productDtoList
)
{
Product
product
=
buyProductByName
(
p
.
getName
(),
p
.
getQuantity
());
requestedProducts
.
add
(
product
);
}
}
return
my
Products
;
return
requested
Products
;
}
}
Map
<
String
,
ProductDto
>
productMap
=
new
HashMap
<>();
List
<
ProductDto
>
productDtoList
=
(
List
<
ProductDto
>)
productMap
.
values
();
repository
.
saveAll
(
productDtoList
);
}
}
This diff is collapsed.
Click to expand it.
seller-service/orders.csv
View file @
ccb7a3d5
id=11, name='Cheese', price=120, quantity=0 28/Jul/2022 20:20:30
id=12, name='Cream', price=250, quantity=5 28/Jul/2022 20:20:31
id=13, name='Shortbread', price=200, quantity=0 28/Jul/2022 20:20:33
id=14, name='Sprite', price=230, quantity=5 28/Jul/2022 20:20:34
id=15, name='Vinegar', price=400, quantity=3 28/Jul/2022 20:20:34
This diff is collapsed.
Click to expand it.
seller-service/src/main/java/com/qadeer/seller/constant/Constant.java
0 → 100644
View file @
ccb7a3d5
package
com
.
qadeer
.
seller
.
constant
;
public
class
Constant
{
public
static
final
String
FILE_PATH
=
"/Users/aqadeer/Desktop/java-training-project-final/seller-service/orders.csv"
;
}
This diff is collapsed.
Click to expand it.
seller-service/src/main/java/com/qadeer/seller/controller/SellerController.java
View file @
ccb7a3d5
package
com
.
qadeer
.
seller
.
controller
;
package
com
.
qadeer
.
seller
.
controller
;
import
com.qadeer.seller.dto.CustomerRequest
;
import
com.qadeer.seller.dto.ProductDto
;
import
com.qadeer.seller.dto.ProductDto
;
import
com.qadeer.seller.feign.FeignService
;
import
com.qadeer.seller.model.Seller
;
import
com.qadeer.seller.model.Seller
;
import
com.qadeer.seller.service.SellerService
;
import
com.qadeer.seller.service.SellerService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
@RestController
@RestController
@RequestMapping
(
"/seller"
)
@RequestMapping
(
"/seller"
)
public
class
SellerController
{
public
class
SellerController
{
...
@@ -33,7 +39,12 @@ public class SellerController {
...
@@ -33,7 +39,12 @@ public class SellerController {
public
ResponseEntity
<?>
getProductById
(
@PathVariable
int
id
)
{
public
ResponseEntity
<?>
getProductById
(
@PathVariable
int
id
)
{
ProductDto
productDto
=
service
.
getProductById
(
id
);
ProductDto
productDto
=
service
.
getProductById
(
id
);
return
ResponseEntity
.
ok
(
productDto
);
return
ResponseEntity
.
ok
(
productDto
);
}
@PostMapping
(
"/product/buy/json"
)
public
ResponseEntity
<?>
buyProducts
(
@RequestBody
CustomerRequest
customerRequest
)
{
List
<
ProductDto
>
productDtoList
=
service
.
buyProducts
(
customerRequest
);
return
new
ResponseEntity
<>(
productDtoList
,
HttpStatus
.
OK
);
}
}
}
}
This diff is collapsed.
Click to expand it.
seller-service/src/main/java/com/qadeer/seller/dto/CustomerDto.java
0 → 100644
View file @
ccb7a3d5
package
com
.
qadeer
.
seller
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
CustomerDto
{
private
int
id
;
private
String
name
;
private
String
phoneNo
;
private
String
creditCardNo
;
}
This diff is collapsed.
Click to expand it.
seller-service/src/main/java/com/qadeer/seller/dto/CustomerRequest.java
0 → 100644
View file @
ccb7a3d5
package
com
.
qadeer
.
seller
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
CustomerRequest
{
private
CustomerDto
customerDto
;
private
List
<
ProductDto
>
items
;
}
This diff is collapsed.
Click to expand it.
seller-service/src/main/java/com/qadeer/seller/feign/FeignService.java
View file @
ccb7a3d5
package
com
.
qadeer
.
seller
.
feign
;
package
com
.
qadeer
.
seller
.
feign
;
import
com.qadeer.seller.dto.CustomerRequest
;
import
com.qadeer.seller.dto.ProductDto
;
import
com.qadeer.seller.dto.ProductDto
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
java.util.List
;
@FeignClient
(
name
=
"inventory-api"
,
url
=
"http://localhost:8083/inventory"
)
@FeignClient
(
name
=
"inventory-api"
,
url
=
"http://localhost:8083/inventory"
)
public
interface
FeignService
{
public
interface
FeignService
{
...
@@ -11,4 +16,6 @@ public interface FeignService {
...
@@ -11,4 +16,6 @@ public interface FeignService {
@GetMapping
(
"/product/{id}"
)
@GetMapping
(
"/product/{id}"
)
ProductDto
getProductById
(
@PathVariable
int
id
);
ProductDto
getProductById
(
@PathVariable
int
id
);
@PostMapping
(
"/product/buy/json"
)
List
<
ProductDto
>
buyProducts
(
@RequestBody
CustomerRequest
customerRequest
);
}
}
This diff is collapsed.
Click to expand it.
seller-service/src/main/java/com/qadeer/seller/model/Order.java
0 → 100644
View file @
ccb7a3d5
package
com
.
qadeer
.
seller
.
model
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
import
javax.persistence.Id
;
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
Order
{
@GeneratedValue
(
strategy
=
GenerationType
.
AUTO
)
@Id
private
int
id
;
private
int
customerId
;
private
int
sellerId
;
private
String
productName
;
private
int
productPrice
;
private
int
productQuantity
;
}
This diff is collapsed.
Click to expand it.
seller-service/src/main/java/com/qadeer/seller/repository/OrderRepository.java
0 → 100644
View file @
ccb7a3d5
package
com
.
qadeer
.
seller
.
repository
;
import
com.qadeer.seller.model.Order
;
import
org.springframework.data.jpa.repository.JpaRepository
;
public
interface
OrderRepository
extends
JpaRepository
<
Order
,
Integer
>
{
}
This diff is collapsed.
Click to expand it.
seller-service/src/main/java/com/qadeer/seller/service/SellerService.java
View file @
ccb7a3d5
package
com
.
qadeer
.
seller
.
service
;
package
com
.
qadeer
.
seller
.
service
;
import
com.qadeer.seller.dto.CustomerRequest
;
import
com.qadeer.seller.dto.ProductDto
;
import
com.qadeer.seller.dto.ProductDto
;
import
com.qadeer.seller.feign.FeignService
;
import
com.qadeer.seller.feign.FeignService
;
import
com.qadeer.seller.model.Seller
;
import
com.qadeer.seller.model.Seller
;
...
@@ -7,44 +8,37 @@ import com.qadeer.seller.repository.SellerRepository;
...
@@ -7,44 +8,37 @@ import com.qadeer.seller.repository.SellerRepository;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.io.BufferedWriter
;
import
java.io.File
;
import
java.io.FileWriter
;
import
java.io.FileWriter
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.nio.file.Files
;
import
java.nio.file.Files
;
import
java.nio.file.Paths
;
import
java.nio.file.Paths
;
import
java.nio.file.StandardOpenOption
;
import
java.nio.file.StandardOpenOption
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.time.LocalTime
;
import
java.time.format.DateTimeFormatter
;
import
java.time.format.DateTimeFormatter
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
static
java
.
awt
.
SystemColor
.
text
;
import
static
com
.
qadeer
.
seller
.
constant
.
Constant
.
FILE_PATH
;
@Service
@Service
public
class
SellerService
{
public
class
SellerService
{
@Autowired
@Autowired
private
SellerRepository
r
epository
;
private
SellerRepository
sellerR
epository
;
@Autowired
@Autowired
private
FeignService
feignService
;
private
FeignService
feignService
;
String
path
=
"/Users/aqadeer/Desktop/java-training-project-final/seller-service/orders.csv"
;
FileWriter
fw
=
new
FileWriter
(
FILE_PATH
);
FileWriter
fw
=
new
FileWriter
(
path
);
public
SellerService
()
throws
IOException
{
public
SellerService
()
throws
IOException
{
}
}
public
void
saveProduct
(
Seller
seller
){
public
void
saveProduct
(
Seller
seller
){
r
epository
.
save
(
seller
);
sellerR
epository
.
save
(
seller
);
};
};
public
Seller
getProduct
(
int
id
)
{
public
Seller
getProduct
(
int
id
)
{
return
r
epository
.
findById
(
id
).
get
();
return
sellerR
epository
.
findById
(
id
).
get
();
}
}
public
ProductDto
getProductById
(
int
id
)
{
public
ProductDto
getProductById
(
int
id
)
{
...
@@ -62,7 +56,7 @@ public class SellerService {
...
@@ -62,7 +56,7 @@ public class SellerService {
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
now
=
LocalDateTime
.
now
();
String
myTime
=
dtf
.
format
(
now
);
String
myTime
=
dtf
.
format
(
now
);
String
text
=
productDto
.
toString
()
+
" "
+
myTime
+
"\n"
;
String
text
=
productDto
.
toString
()
+
" "
+
myTime
+
"\n"
;
Files
.
write
(
Paths
.
get
(
path
),
text
.
getBytes
(),
StandardOpenOption
.
APPEND
);
Files
.
write
(
Paths
.
get
(
FILE_PATH
),
text
.
getBytes
(),
StandardOpenOption
.
APPEND
);
// bw = new BufferedWriter(fw);
// bw = new BufferedWriter(fw);
// bw.append(productDto.toString());
// bw.append(productDto.toString());
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
...
@@ -73,4 +67,10 @@ public class SellerService {
...
@@ -73,4 +67,10 @@ public class SellerService {
}
}
}
}
public
List
<
ProductDto
>
buyProducts
(
CustomerRequest
customerRequest
)
{
List
<
ProductDto
>
productDtoList
=
feignService
.
buyProducts
(
customerRequest
);
return
productDtoList
;
}
}
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment