Ignore:
Timestamp:
01/06/23 02:51:45 (23 months ago)
Author:
andrejtodorovski <82031894+andrejtodorovski@…>
Branches:
main
Children:
d4b888e
Parents:
1bd8d1e
Message:

Added full functionality for creating order

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/com/example/autopartz/controller/PartController.java

    r1bd8d1e rf484b14  
    11package com.example.autopartz.controller;
    22
    3 import com.example.autopartz.model.Client;
    4 import com.example.autopartz.model.Order;
    5 import com.example.autopartz.model.Part;
    6 import com.example.autopartz.model.User;
     3import com.example.autopartz.model.*;
    74import com.example.autopartz.model.manytomany.OrderContainsPart;
    8 import com.example.autopartz.repository.OrderContainsPartRepository;
     5import com.example.autopartz.model.manytomany.RsForCm;
     6import com.example.autopartz.repository.*;
    97import com.example.autopartz.service.*;
    108import org.springframework.stereotype.Controller;
     
    1614import javax.servlet.http.HttpSession;
    1715import java.io.IOException;
     16import java.util.ArrayList;
     17import java.util.List;
    1818
    1919@Controller
     
    2626    private final UserService userService;
    2727    private final OrderContainsPartRepository orderContainsPartRepository;
    28     public PartController(PartService partService, RepairShopService repairShopService, PriceService priceService, OrderService orderService, UserService userService, OrderContainsPartRepository orderContainsPartRepository) {
     28    private final DeliveryRepository deliveryRepository;
     29    private final RepairRepository repairRepository;
     30    private final CarSampleRepository carSampleRepository;
     31    private final ServiceBookRepository serviceBookRepository;
     32    private final DeliverymanRepository deliverymanRepository;
     33    private final RsForCmRepository rsForCmRepository;
     34    public PartController(PartService partService, RepairShopService repairShopService, PriceService priceService, OrderService orderService, UserService userService, OrderContainsPartRepository orderContainsPartRepository, DeliveryRepository deliveryRepository, RepairRepository repairRepository, CarSampleRepository carSampleRepository, ServiceBookRepository serviceBookRepository, DeliverymanRepository deliverymanRepository, RsForCmRepository rsForCmRepository) {
    2935        this.partService = partService;
    3036        this.repairShopService = repairShopService;
     
    3339        this.userService = userService;
    3440        this.orderContainsPartRepository = orderContainsPartRepository;
     41        this.deliveryRepository = deliveryRepository;
     42        this.repairRepository = repairRepository;
     43        this.carSampleRepository = carSampleRepository;
     44        this.serviceBookRepository = serviceBookRepository;
     45        this.deliverymanRepository = deliverymanRepository;
     46        this.rsForCmRepository = rsForCmRepository;
    3547    }
    3648    @GetMapping("/{id}")
     
    4456    }
    4557    @GetMapping("/delivery")
    46     public String getDeliveryPage(Model model){
    47         model.addAttribute("repairShops",repairShopService.findAll());
     58    public String getDeliveryPage(Model model, HttpServletRequest request){
     59        Client cl = (Client) userService.findByUsername(request.getRemoteUser());
     60        List<CarSample> cs = carSampleRepository.findAllByClient(cl);
     61        model.addAttribute("cars",cs);
     62        if(cs.size()==0){
     63                model.addAttribute("hasError",true);
     64                model.addAttribute("error","Внеси твоја кола");
     65        }
     66        else {
     67            model.addAttribute("hasError",false);
     68        }
    4869        model.addAttribute("bodyContent","deliveryForPart");
    4970        return "master-template";
    5071    }
    5172    @PostMapping("/repairshopdelivery")
    52     public void setRepairShopDelivery(@RequestParam String name, HttpServletResponse response, HttpSession session){
     73    public void setRepairShopDelivery(@RequestParam Integer vin, HttpServletResponse response, HttpSession session, HttpServletRequest request){
    5374        // insert into project.repair (vin, id_repair_shop, id_service_book) values (1111,3,1)
     75        session.setAttribute("carVin",vin);
     76        try {
     77            response.sendRedirect("/part/chooseRepairShop");
     78        } catch (IOException e) {
     79            throw new RuntimeException(e);
     80        }
     81    }
     82    @GetMapping("/chooseRepairShop")
     83    public String chooseRepairShop(Model model, HttpSession session){
     84        if(session.getAttribute("carVin")==null){
     85            model.addAttribute("hasError",true);
     86            model.addAttribute("error","Внеси твоја кола");
     87        }
     88        else {
     89            model.addAttribute("hasError", false);
     90            CarSample cs = carSampleRepository.findById((Integer) session.getAttribute("carVin")).get();
     91            Integer idCM = cs.getCar().getCar_manufacturer().getID_car_manufacturer();
     92            List<RsForCm> rsForCm = rsForCmRepository.findAllByCmid(idCM);
     93            List<RepairShop> newRepairShopList = new ArrayList<>();
     94            for (RsForCm forCm : rsForCm) {
     95                newRepairShopList.add(repairShopService.getById(forCm.getRsid()));
     96            }
     97            model.addAttribute("authorized", newRepairShopList);
     98        }
     99        model.addAttribute("bodyContent", "chooseRepairShop");
     100        return "master-template";
     101    }
     102    @PostMapping("/chooseRepairShop")
     103    public void chooseRepairShop(@RequestParam Integer rs,HttpSession session, HttpServletResponse response){
     104        Order o = (Order) session.getAttribute("order");
     105        CarSample cs = (CarSample)session.getAttribute("car");
     106        ServiceBook sb = serviceBookRepository.findByCarSample(cs);
     107        RepairShop repairShop = repairShopService.getById(rs);
     108        repairRepository.save(new Repair(o,repairShop,sb));
    54109        session.removeAttribute("order");
    55110        try {
     
    62117    public void setHomeDelivery(@RequestParam String address, HttpServletResponse response, HttpSession session){
    63118        // insert into delivery (delivery_status, delivery_address,id_user,id_order) values ('in progress','Aerodrom',4,1)
     119        Order o = (Order) session.getAttribute("order");
     120        List<Deliveryman> deliverymanList = deliverymanRepository.findAll().stream().filter(dm->dm.getAuthorities().contains(Role.ROLE_DELIVERYMAN)).toList();
     121        int num = deliverymanList.size();
     122        int deliverer =  (int) ((Math.random() * (num)));
     123        Deliveryman dm = deliverymanList.get(deliverer);
     124        deliveryRepository.save(new Delivery("in progress",address,dm,o));
    64125        session.removeAttribute("order");
    65126        try {
Note: See TracChangeset for help on using the changeset viewer.