Skip to content

Commit 04756a8

Browse files
committed
Second commit
1 parent b416f5b commit 04756a8

27 files changed

Lines changed: 441 additions & 49 deletions

src/main/java/com/example/deliverymanagement/controller/AdminController.java

Lines changed: 68 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,29 @@
11
package com.example.deliverymanagement.controller;
22

3-
import com.example.deliverymanagement.dto.response.CustomerResponseDto;
4-
import com.example.deliverymanagement.dto.response.DriverResponseDto;
5-
import com.example.deliverymanagement.dto.response.ResponseDto;
3+
import com.example.deliverymanagement.dto.request.CategoryRequestDto;
4+
import com.example.deliverymanagement.dto.request.FoodRequestDto;
5+
import com.example.deliverymanagement.dto.response.*;
66
import com.example.deliverymanagement.entity.Driver;
7-
import com.example.deliverymanagement.service.CustomerService;
8-
import com.example.deliverymanagement.service.DriverService;
7+
import com.example.deliverymanagement.repository.CategoryRepository;
8+
import com.example.deliverymanagement.service.*;
99
import lombok.RequiredArgsConstructor;
1010
import org.modelmapper.ModelMapper;
1111
import org.springframework.web.bind.annotation.*;
1212

1313
import java.util.List;
14+
import java.util.stream.Collectors;
1415

1516
@RestController
1617
@RequestMapping("/admin")
1718
@RequiredArgsConstructor
1819
public class AdminController {
1920
private final DriverService driverService;
21+
private final FoodService foodService;
2022
private final CustomerService customerService;
23+
private final CategoryService categoryService;
24+
private final CategoryRepository categoryRepository;
2125
private final ModelMapper modelMapper;
26+
private final OrderService orderService;
2227

2328
@GetMapping("/drivers")
2429
public List<DriverResponseDto> getAllDrivers(){
@@ -53,4 +58,62 @@ public List<CustomerResponseDto> getAllCustomers(){
5358
public CustomerResponseDto getCustomer(@PathVariable Long id){
5459
return customerService.findById(id);
5560
}
61+
@GetMapping("/foods")
62+
public List<FoodResponseDto> allFoods(){
63+
return foodService.foods();
64+
}
65+
@GetMapping("/foods/{id}")
66+
public FoodResponseDto getFood(@PathVariable Long id){
67+
return foodService.getById(id);
68+
}
69+
@PostMapping("/category/{cat_id}/foods")
70+
public ResponseDto saveFood(@PathVariable Long cat_id, @RequestBody FoodRequestDto foodRequestDto){
71+
ResponseDto save = foodService.save(cat_id,foodRequestDto);
72+
return save!=null? new ResponseDto("Save is successfull!"):
73+
new ResponseDto("Save is unsuccessfull!!!");
74+
}
75+
@PutMapping("/foods/{id}")
76+
public ResponseDto updateFood(@PathVariable Long id,@RequestBody FoodRequestDto foodRequestDto){
77+
return foodService.put(id,foodRequestDto);
78+
}
79+
@DeleteMapping("/foods/{id}")
80+
public ResponseDto deleteFood(@PathVariable Long id){
81+
return foodService.delete(id);
82+
}
83+
@PostMapping("/category")
84+
public ResponseDto saveCategory(@RequestBody CategoryRequestDto categoryRequestDto){
85+
ResponseDto save = categoryService.save(categoryRequestDto);
86+
return save!=null? new ResponseDto("Save is successfull!"):
87+
new ResponseDto("Save is unsuccessfull!!!");
88+
}
89+
@PutMapping("/category/{id}")
90+
public ResponseDto updateCategory(@PathVariable Long id,@RequestBody CategoryRequestDto categoryRequestDto){
91+
return categoryService.put(id,categoryRequestDto);
92+
}
93+
@DeleteMapping("/category/{id}")
94+
public ResponseDto deleteCategory(@PathVariable Long id){
95+
return categoryService.delete(id);
96+
}
97+
@GetMapping("/category")
98+
public List<CategoryResponseDto> allCategory(){
99+
return categoryService.getAll();
100+
}
101+
@GetMapping("/category/{id}")
102+
public CategoryResponseDto getCategory(@PathVariable Long id){
103+
return categoryService.getById(id);
104+
}
105+
@GetMapping("/category/{id}/food")
106+
public List<FoodResponseDto> getCategoryFoods(@PathVariable Long id){
107+
return categoryRepository.getCategoryById(id).getFoods().stream()
108+
.map(food -> modelMapper.map(food,FoodResponseDto.class))
109+
.collect(Collectors.toList());
110+
}
111+
@GetMapping("/orders")
112+
public List<OrderResponseDto> getAllOrders(){
113+
return orderService.getAll();
114+
}
115+
@GetMapping("/orders/{id}")
116+
public OrderResponseDto getOrder(@PathVariable Long id){
117+
return orderService.getById(id);
118+
}
56119
}

src/main/java/com/example/deliverymanagement/controller/CustomerController.java

Lines changed: 60 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,25 @@
11
package com.example.deliverymanagement.controller;
22

33
import com.example.deliverymanagement.dto.request.CustomerRequestDto;
4-
import com.example.deliverymanagement.dto.request.FoodRequestDto;
4+
import com.example.deliverymanagement.dto.request.OrderRequestDto;
55
import com.example.deliverymanagement.dto.response.CustomerResponseDto;
6+
import com.example.deliverymanagement.dto.response.FoodResponseDto;
67
import com.example.deliverymanagement.dto.response.ResponseDto;
78
import com.example.deliverymanagement.entity.*;
89
import com.example.deliverymanagement.repository.CartRepository;
910
import com.example.deliverymanagement.repository.CustomerRepository;
11+
import com.example.deliverymanagement.repository.FoodRepository;
1012
import com.example.deliverymanagement.service.*;
1113
import lombok.RequiredArgsConstructor;
1214
import org.modelmapper.ModelMapper;
13-
import org.springframework.ui.Model;
1415
import org.springframework.web.bind.annotation.*;
1516

1617
import java.sql.Date;
1718
import java.time.LocalDate;
1819
import java.util.List;
1920
import java.util.Map;
2021
import java.util.UUID;
22+
import java.util.stream.Collectors;
2123

2224
@RestController
2325
@RequestMapping("/customers")
@@ -32,6 +34,8 @@ public class CustomerController {
3234
private final CartRepository cartRepository;
3335
private final FoodService foodService;
3436
private final CartService cartService;
37+
private final FoodRepository foodRepository;
38+
private final OrderService orderService;
3539

3640
@GetMapping
3741
public List<CustomerResponseDto> user(){
@@ -40,7 +44,15 @@ public List<CustomerResponseDto> user(){
4044

4145
@PostMapping
4246
public ResponseDto saveCustomer(@RequestBody CustomerRequestDto customerRequestDto){
43-
return customerService.save(customerRequestDto);
47+
customerService.save(customerRequestDto);
48+
Customer customer=customerService.findByEmail(customerRequestDto.getEmail());
49+
Cart cart=Cart.builder()
50+
.customer(customer)
51+
.build();
52+
cartService.save(cart);
53+
customer.setCart(cart);
54+
customerService.put(customer);
55+
return new ResponseDto("Save is successfully!");
4456
}
4557
@GetMapping("/{uuid}")
4658
public ResponseDto confirmCustomer(@PathVariable UUID uuid){
@@ -107,30 +119,61 @@ public ResponseDto resetPassword(@RequestBody Map<String, String> requestBody ){
107119
return new ResponseDto("Customer not found!!!");
108120
}
109121
}//*********************
110-
@PostMapping("/{id}/cart")
111-
public ResponseDto addFoodToCart(@PathVariable Long id,@RequestBody FoodRequestDto foodRequestDto){
122+
@GetMapping("/foods")
123+
public List<FoodResponseDto> allFoods(){
124+
return foodService.foods();
125+
}
126+
@GetMapping("/foods/{id}")
127+
public FoodResponseDto getFood(@PathVariable Long id){
128+
return foodService.getById(id);
129+
}
130+
@GetMapping("/{id}/foods/cart")
131+
public List<FoodResponseDto> allCartFoods(@PathVariable Long id){
112132
Customer customer=customerRepository.getCustomerById(id);
113133
Cart cart=cartRepository.findCartByCustomer(customer);
114134
if (cart!=null){
115-
cart.getCustomer().getCart().getFoods().add(modelMapper.map(foodRequestDto, Food.class));
116-
ResponseDto save = cartService.save(cart);
117-
return new ResponseDto("Adding successfull!");
135+
return cart.getFoods().stream()
136+
.map(food -> modelMapper.map(food,FoodResponseDto.class))
137+
.collect(Collectors.toList());
118138
}else {
119-
return new ResponseDto("Cart not found!!!");
139+
throw new RuntimeException("Cart is not found");
140+
}
141+
142+
}
143+
144+
@PostMapping("/{id}/foods/{food_id}/cart")
145+
public ResponseDto addFoodToCart(@PathVariable Long id,@PathVariable Long food_id){
146+
Cart cart = cartRepository.findCartByCustomerId(id);
147+
Food food = foodRepository.getFoodById(food_id);
148+
food.setCart(cart);
149+
foodRepository.save(food);
150+
if (cart != null) {
151+
cart.getFoods().add(modelMapper.map(food, Food.class));
152+
int foodCount = cart.getCount()+1;
153+
Double totalAmount = cart.getTotalAmount()+food.getAmount();
154+
155+
cart.setCount(foodCount);
156+
cart.setTotalAmount(totalAmount);
157+
cartService.save(cart);
158+
return new ResponseDto("Adding successful!");
159+
} else {
160+
return new ResponseDto("Cart not found!");
120161
}
121162

122163
}
123164
@DeleteMapping("/{id}/cart/{food_id}")
124165
public ResponseDto deleteFoodInCart(@PathVariable Long id,@PathVariable Long food_id){
166+
foodService.delete(food_id);
167+
return new ResponseDto("Food deleting successfull!");
168+
}
169+
170+
@PostMapping("/{id}/cart/checkout")
171+
public void checkout(@PathVariable Long id, @RequestBody OrderRequestDto orderRequestDto){
125172
Customer customer=customerRepository.getCustomerById(id);
126-
Cart cart=cartRepository.findCartByCustomer(customer);
127-
if (cart!=null){
128-
cart.getCustomer().getCart().getFoods().remove(food_id.intValue()-1);
129-
ResponseDto save = cartService.save(cart);
130-
return new ResponseDto("Food deleting successfull!");
131-
}else {
132-
return new ResponseDto("Cart not found!!!");
133-
}
173+
Cart cart = cartRepository.findCartByCustomerId(id);
174+
orderService.save(cart,customer,orderRequestDto);
134175
}
135176

177+
178+
136179
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.example.deliverymanagement.dto.request;
2+
3+
import lombok.AccessLevel;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Data;
6+
import lombok.NoArgsConstructor;
7+
import lombok.experimental.FieldDefaults;
8+
9+
@Data
10+
@AllArgsConstructor
11+
@NoArgsConstructor
12+
@FieldDefaults(level = AccessLevel.PRIVATE)
13+
public class CategoryRequestDto {
14+
String name;
15+
String description;
16+
}

src/main/java/com/example/deliverymanagement/dto/request/FoodRequestDto.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ public class FoodRequestDto {
1515
String name;
1616
String description;
1717
Double amount;
18+
Integer calorie;
1819
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.example.deliverymanagement.dto.request;
2+
3+
import lombok.AccessLevel;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Data;
6+
import lombok.NoArgsConstructor;
7+
import lombok.experimental.FieldDefaults;
8+
9+
@Data
10+
@AllArgsConstructor
11+
@NoArgsConstructor
12+
@FieldDefaults(level = AccessLevel.PRIVATE)
13+
public class OrderRequestDto {
14+
String place;
15+
String cardNumber;
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.example.deliverymanagement.dto.response;
2+
3+
import lombok.AccessLevel;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Data;
6+
import lombok.NoArgsConstructor;
7+
import lombok.experimental.FieldDefaults;
8+
9+
@Data
10+
@AllArgsConstructor
11+
@NoArgsConstructor
12+
@FieldDefaults(level = AccessLevel.PRIVATE)
13+
public class CategoryResponseDto {
14+
String name;
15+
String description;
16+
}

src/main/java/com/example/deliverymanagement/dto/response/FoodResponseDto.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ public class FoodResponseDto {
1414
String name;
1515
String description;
1616
Double amount;
17+
Integer calorie;
1718
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.example.deliverymanagement.dto.response;
2+
3+
import lombok.AccessLevel;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Data;
6+
import lombok.NoArgsConstructor;
7+
import lombok.experimental.FieldDefaults;
8+
9+
@Data
10+
@AllArgsConstructor
11+
@NoArgsConstructor
12+
@FieldDefaults(level = AccessLevel.PRIVATE)
13+
public class OrderResponseDto {
14+
String place;
15+
Integer status;
16+
}
Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
package com.example.deliverymanagement.entity;
22

33
import javax.persistence.*;
4-
import lombok.AccessLevel;
5-
import lombok.AllArgsConstructor;
6-
import lombok.Data;
7-
import lombok.NoArgsConstructor;
4+
5+
import lombok.*;
86
import lombok.experimental.FieldDefaults;
97

108
import java.util.List;
119

1210
@Entity
11+
@Builder
1312
@Data
1413
@AllArgsConstructor
1514
@NoArgsConstructor
@@ -18,14 +17,16 @@ public class Cart {
1817
@Id
1918
@GeneratedValue(strategy = GenerationType.IDENTITY)
2019
Long id;
21-
Integer count;
22-
Double totalAmount;
20+
@Builder.Default
21+
Integer count=0;
22+
@Builder.Default
23+
Double totalAmount=0.0;
2324

2425
@OneToOne
2526
Customer customer;
2627
@OneToMany
2728
List<Delivery_order> deliveryorders;
28-
@OneToMany
29+
@OneToMany(mappedBy = "cart",cascade = CascadeType.ALL)
2930
List<Food> foods;
3031

3132
}

src/main/java/com/example/deliverymanagement/entity/Customer.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import lombok.*;
99
import lombok.experimental.FieldDefaults;
10+
import org.hibernate.criterion.Order;
1011

1112
import javax.persistence.Entity;
1213
import java.util.List;
@@ -38,10 +39,15 @@ public class Customer {
3839
@Builder.Default
3940
Boolean resetEnabled=false;
4041

41-
@OneToOne
42+
@OneToOne(mappedBy = "customer",fetch = FetchType.LAZY)
43+
@ToString.Exclude
4244
Cart cart;
45+
4346
@OneToMany
4447
List<Role> roles;
4548

49+
@OneToMany(mappedBy = "customer",fetch = FetchType.LAZY)
50+
List<Delivery_order> orders;
51+
4652

4753
}

0 commit comments

Comments
 (0)