diff --git a/src/main/java/com/gcc/communityHall/controller/TestController.java b/src/main/java/com/gcc/communityHall/controller/TestController.java index fd205ff..374f963 100644 --- a/src/main/java/com/gcc/communityHall/controller/TestController.java +++ b/src/main/java/com/gcc/communityHall/controller/TestController.java @@ -3,6 +3,7 @@ package com.gcc.communityHall.controller; import com.gcc.communityHall.dto.saveEbDetailsAndDamage; import com.gcc.communityHall.entity.*; import com.gcc.communityHall.others.UserSession; +import com.gcc.communityHall.service.CalendarService; import com.gcc.communityHall.service.Impl.BookingServiceImpl; import com.gcc.communityHall.service.Impl.HallDetailServiceImpl; import com.gcc.communityHall.service.Impl.UserServiceImpl; @@ -16,8 +17,11 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.*; + @RestController @RequestMapping("/api/test") public class TestController { @@ -34,6 +38,9 @@ public class TestController { @Autowired ReasonMasterService reasonMasterService; + @Autowired + CalendarService calendarService; + @Autowired private UserSession userSession; @@ -190,6 +197,24 @@ public ResponseEntity saveTheBookingDetails(HttpServletRequest request) { return ResponseEntity.ok(""); } + @GetMapping(path = "/saveEbDetails") + public ResponseEntity saveEbDetails(@RequestParam int bookingId,@RequestParam double startingReading) { + BookingDetails bd =bookingService.getBookingsById(bookingId); + if(bd!=null){ + if(bd.getEbDetails()==null){ + EbDetails eb = new EbDetails(); + eb.setCdate(new Date()); + eb.setStartingReading(startingReading); + bd.setEbDetails(eb); + ResponseEntity.ok(bookingService.updateBookingDetails(bd)); + } + System.out.println(bd.getEbDetails()); + } + + return ResponseEntity.ok(""); + } + + public Map splitFormData(MultipartHttpServletRequest multipartRequest){ Map formData = new HashMap<>(); @@ -218,4 +243,123 @@ public ResponseEntity saveTheBookingDetails(HttpServletRequest request) { } + @GetMapping("/checkAvail") + public List checkAvail(@RequestParam("fromDate") String fromDate, + @RequestParam("toDate") String toDate, + @RequestParam("starting") String starting, + @RequestParam("ending") String ending, + @RequestParam(name = "hallId",required = false) String hallId){ + List data = new ArrayList<>(); + HashSet removeHallId = new HashSet(); + int hallIdd=0; + if(hallId != null && !hallId.equals("")){ + hallIdd = Integer.parseInt(hallId); + } + if(!fromDate.equals(toDate) && (starting.equals(ending) || starting.equals("evening") && ending.equals("morning"))){ + Map mp =incrementAndDecrementAndDaysCount(fromDate,toDate); + long noOfDays= Long.parseLong(mp.get("NoOfDays").toString()); + if(noOfDays>2){ + data = calendarService.getCalendarByDateAndHallIdAndSlot(mp.get("fromDate"),mp.get("toDate"),starting,ending,hallIdd); + for(int i=0;i removeHallByid = hallDetailService.removeHallById(removeHallId); + return removeHallByid; + } + + Map incrementAndDecrementAndDaysCount(String fromdate, String todate){ + Map mp = new HashMap<>(); + LocalDate increasement = LocalDate.parse(fromdate); + LocalDate decrement = LocalDate.parse(todate); + + LocalDate outputDateFrom =increasement; + LocalDate outputDateToday = decrement; + + long daysDifference = increasement.until(decrement).getDays(); + daysDifference = Math.abs(daysDifference); + + if(fromdate!=todate) { + outputDateFrom = increasement.plusDays(1); + outputDateToday = decrement.minusDays(1); + } + + mp.put("fromDate", outputDateFrom.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + mp.put("toDate",outputDateToday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + mp.put("NoOfDays",daysDifference+""); + return mp; + } + } diff --git a/src/main/java/com/gcc/communityHall/repository/BookingCalendarRepository.java b/src/main/java/com/gcc/communityHall/repository/BookingCalendarRepository.java index 28a6035..24713e6 100644 --- a/src/main/java/com/gcc/communityHall/repository/BookingCalendarRepository.java +++ b/src/main/java/com/gcc/communityHall/repository/BookingCalendarRepository.java @@ -6,12 +6,18 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; import java.time.LocalDate; +import java.util.List; @Repository public interface BookingCalendarRepository extends JpaRepository { BookingCalendar findByBdateAndHallId(LocalDate bdate, int hallId); + @Query(value = " select * from booking_calendar where hall_id =:hallId and bdate BETWEEN :fromDate and :toDate order by hall_id", nativeQuery = true) + List getCalendarByBDateAndHAllId(String fromDate, String toDate, int hallId); + + @Query(value = " select * from booking_calendar where bdate BETWEEN :fromDate and :toDate order by hall_id", nativeQuery = true) + List getCalendarByBDate(String fromDate, String toDate); } diff --git a/src/main/java/com/gcc/communityHall/repository/HallDetailsRepository.java b/src/main/java/com/gcc/communityHall/repository/HallDetailsRepository.java index 2744c31..2a09fb6 100644 --- a/src/main/java/com/gcc/communityHall/repository/HallDetailsRepository.java +++ b/src/main/java/com/gcc/communityHall/repository/HallDetailsRepository.java @@ -3,8 +3,15 @@ package com.gcc.communityHall.repository; import com.gcc.communityHall.entity.HallDetails; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; +import java.util.List; +import java.util.Set; + @Repository public interface HallDetailsRepository extends JpaRepository { + + @Query(value = "SELECT * FROM hall_details where hall_id NOT IN (:groupByHallIdToRemov) ",nativeQuery = true) + List removeHallById(Set groupByHallIdToRemov); } diff --git a/src/main/java/com/gcc/communityHall/service/BookingService.java b/src/main/java/com/gcc/communityHall/service/BookingService.java index 4045bb8..ba477ca 100644 --- a/src/main/java/com/gcc/communityHall/service/BookingService.java +++ b/src/main/java/com/gcc/communityHall/service/BookingService.java @@ -9,11 +9,12 @@ import java.util.Map; public interface BookingService { BookingDetails getBookingsById(int BookingId); - BookingDetails updateBookingHistory(BookingDetails bd); + BookingDetails updateBookingDetails(BookingDetails bd); public String saveBookingDetails(Map formData); public BookingDetails updateBookingStatusById( int bookingId, BookingDetails.BookingStatus status,String comments); public EbDetails updateEbDetails(int bookingId,double startUnit,double endUnit,char status); + public String confirmBooking(int bookingId); //typeOfCancel depends { } String cancelBooking(int bookingId,BookingDetails.BookingStatus currentStatus,String comments); diff --git a/src/main/java/com/gcc/communityHall/service/CalendarService.java b/src/main/java/com/gcc/communityHall/service/CalendarService.java index 3b65e11..93d20d2 100644 --- a/src/main/java/com/gcc/communityHall/service/CalendarService.java +++ b/src/main/java/com/gcc/communityHall/service/CalendarService.java @@ -1,4 +1,12 @@ package com.gcc.communityHall.service; +import com.gcc.communityHall.entity.BookingCalendar; + +import java.util.List; + public interface CalendarService { + + List getCalendarByDateAndHallIdAndSlot( + String fromDate,String toDate,String startingSlot,String endingSlot, + int hallId); } diff --git a/src/main/java/com/gcc/communityHall/service/HallDetailService.java b/src/main/java/com/gcc/communityHall/service/HallDetailService.java index a681098..8fa2aa6 100644 --- a/src/main/java/com/gcc/communityHall/service/HallDetailService.java +++ b/src/main/java/com/gcc/communityHall/service/HallDetailService.java @@ -4,6 +4,7 @@ import com.gcc.communityHall.entity.HallDetails; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; +import java.util.HashSet; import java.util.List; public interface HallDetailService { @@ -28,4 +29,5 @@ public interface HallDetailService { String updatedId, MultipartFile hallImages[] ); + List removeHallById(HashSet hallIds); } diff --git a/src/main/java/com/gcc/communityHall/service/Impl/BookingServiceImpl.java b/src/main/java/com/gcc/communityHall/service/Impl/BookingServiceImpl.java index 3cc9181..77d2f60 100644 --- a/src/main/java/com/gcc/communityHall/service/Impl/BookingServiceImpl.java +++ b/src/main/java/com/gcc/communityHall/service/Impl/BookingServiceImpl.java @@ -65,15 +65,20 @@ public class BookingServiceImpl implements BookingService { @Override public BookingDetails getBookingsById(int BookingId) { - return bookingDetailsRepository.findById(BookingId).get(); + Optional OPBookingDetails =bookingDetailsRepository.findById(BookingId); + if(OPBookingDetails.isPresent()) { + return OPBookingDetails.get(); + } + return null; } @Override - public BookingDetails updateBookingHistory(BookingDetails bd) { - return null; + public BookingDetails updateBookingDetails(BookingDetails bd) { + return bookingDetailsRepository.save(bd); } -public String confirmBooking(int bookingId) { + @Override + public String confirmBooking(int bookingId) { TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition()); try { Optional bookingDet = bookingDetailsRepository.findById(bookingId); @@ -278,7 +283,7 @@ public String confirmBooking(int bookingId) { } @Override - public BookingDetails updateBookingStatusById( int bookingId, BookingDetails.BookingStatus status,String comments) { + public BookingDetails updateBookingStatusById( int bookingId, BookingDetails.BookingStatus status,String comments) { Optional bookingDetails= bookingDetailsRepository.findById(bookingId); if(bookingDetails.isPresent()){ BookingDetails bookDet = bookingDetails.get(); diff --git a/src/main/java/com/gcc/communityHall/service/Impl/CalendarServiceImpl.java b/src/main/java/com/gcc/communityHall/service/Impl/CalendarServiceImpl.java index ed56b15..763a548 100644 --- a/src/main/java/com/gcc/communityHall/service/Impl/CalendarServiceImpl.java +++ b/src/main/java/com/gcc/communityHall/service/Impl/CalendarServiceImpl.java @@ -1,4 +1,26 @@ package com.gcc.communityHall.service.Impl; -public class CalendarServiceImpl { +import com.gcc.communityHall.entity.BookingCalendar; +import com.gcc.communityHall.repository.BookingCalendarRepository; +import com.gcc.communityHall.service.CalendarService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class CalendarServiceImpl implements CalendarService { + + @Autowired + BookingCalendarRepository bookingCalendarRepository; + @Override + public List getCalendarByDateAndHallIdAndSlot( + String fromDate, String toDate, String startingSlot, String endingSlot, int hallId) { + if(hallId!=0){ + return bookingCalendarRepository.getCalendarByBDateAndHAllId(fromDate,toDate,hallId); + }else{ + return bookingCalendarRepository.getCalendarByBDate(fromDate,toDate); + } + + } } diff --git a/src/main/java/com/gcc/communityHall/service/Impl/HallDetailServiceImpl.java b/src/main/java/com/gcc/communityHall/service/Impl/HallDetailServiceImpl.java index 7f0d9ef..95f08d7 100644 --- a/src/main/java/com/gcc/communityHall/service/Impl/HallDetailServiceImpl.java +++ b/src/main/java/com/gcc/communityHall/service/Impl/HallDetailServiceImpl.java @@ -14,6 +14,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.time.LocalDate; import java.util.Date; +import java.util.HashSet; import java.util.List; import java.util.Optional; @@ -111,4 +112,13 @@ public class HallDetailServiceImpl implements HallDetailService { return null; } + + @Override + public List removeHallById(HashSet hallIds) { + if(hallIds.isEmpty()){ + hallIds.add(0); + } + System.out.println(hallIds); + return hallDetailsRepository.removeHallById(hallIds); + } }