Browse Source

checkAvailability issue fix

master
mohammedThaqi 3 years ago
parent
commit
c0139393a0
  1. 144
      src/main/java/com/gcc/communityHall/controller/TestController.java
  2. 6
      src/main/java/com/gcc/communityHall/repository/BookingCalendarRepository.java
  3. 7
      src/main/java/com/gcc/communityHall/repository/HallDetailsRepository.java
  4. 3
      src/main/java/com/gcc/communityHall/service/BookingService.java
  5. 8
      src/main/java/com/gcc/communityHall/service/CalendarService.java
  6. 2
      src/main/java/com/gcc/communityHall/service/HallDetailService.java
  7. 15
      src/main/java/com/gcc/communityHall/service/Impl/BookingServiceImpl.java
  8. 24
      src/main/java/com/gcc/communityHall/service/Impl/CalendarServiceImpl.java
  9. 10
      src/main/java/com/gcc/communityHall/service/Impl/HallDetailServiceImpl.java

144
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.dto.saveEbDetailsAndDamage;
import com.gcc.communityHall.entity.*; import com.gcc.communityHall.entity.*;
import com.gcc.communityHall.others.UserSession; 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.BookingServiceImpl;
import com.gcc.communityHall.service.Impl.HallDetailServiceImpl; import com.gcc.communityHall.service.Impl.HallDetailServiceImpl;
import com.gcc.communityHall.service.Impl.UserServiceImpl; 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.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.MultipartHttpServletRequest;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
@RestController @RestController
@RequestMapping("/api/test") @RequestMapping("/api/test")
public class TestController { public class TestController {
@ -34,6 +38,9 @@ public class TestController {
@Autowired @Autowired
ReasonMasterService reasonMasterService; ReasonMasterService reasonMasterService;
@Autowired
CalendarService calendarService;
@Autowired @Autowired
private UserSession userSession; private UserSession userSession;
@ -190,6 +197,24 @@ public ResponseEntity<?> saveTheBookingDetails(HttpServletRequest request) {
return ResponseEntity.ok(""); 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<String,Object> splitFormData(MultipartHttpServletRequest multipartRequest){ public Map<String,Object> splitFormData(MultipartHttpServletRequest multipartRequest){
Map<String, Object> formData = new HashMap<>(); Map<String, Object> formData = new HashMap<>();
@ -218,4 +243,123 @@ public ResponseEntity<?> saveTheBookingDetails(HttpServletRequest request) {
} }
@GetMapping("/checkAvail")
public List<HallDetails> 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<BookingCalendar> data = new ArrayList<>();
HashSet<Integer> removeHallId = new HashSet<Integer>();
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<String,String> 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<data.size();i++){
removeHallId.add(data.get(i).getHallId());
}
}
}
data=calendarService.getCalendarByDateAndHallIdAndSlot(fromDate,toDate,starting,ending,hallIdd);
System.out.println("data size :-"+data.size());
if(starting!=null && ending != null ) {
boolean checkAvail =false;
int checkHallId=0;
for(int i=0;i<data.size();i++) {
if((starting.equals("evening") || ending.equals("morning")) && fromDate.equals(data.get(i).getBdate().toString()) && toDate.equals(fromDate)) {
if(data.get(i).isEveningSlot()==false) {
continue;
}
else if(data.get(i).isMorningSlot()==false) {
continue;
}
} else if ((starting.equals(ending) || starting.equals("evening") && ending.equals("morning")) && !toDate.equals(fromDate)) {
if(checkHallId==0 || checkHallId != data.get(i).getHallId()){
checkHallId = data.get(i).getHallId();
checkAvail=false;
}
if(starting.equals("morning") && ending.equals("morning") ) {
if(fromDate.equals(data.get(i).getBdate().toString()) && data.get(i).isMorningSlot()==false){
if(checkHallId == data.get(i).getHallId()){
continue;
}
}
else if(toDate.equals(data.get(i).getBdate().toString()) && data.get(i).isMorningSlot()==false){
if(checkHallId == data.get(i).getHallId() && checkAvail==false){
checkHallId=data.get(i).getHallId();
continue;
}
}
}else if(starting.equals("evening") && ending.equals("morning") ) {
if(fromDate.equals(data.get(i).getBdate().toString()) && data.get(i).isEveningSlot()==false){
if(checkHallId == data.get(i).getHallId()){
continue;
}
}
else if(toDate.equals(data.get(i).getBdate().toString()) && data.get(i).isMorningSlot()==false){
if(checkHallId == data.get(i).getHallId() && checkAvail==false){
checkHallId=data.get(i).getHallId();
continue;
}
}
}else if(starting.equals("evening") && ending.equals("evening") ) {
if(fromDate.equals(data.get(i).getBdate().toString()) && data.get(i).isEveningSlot()==false){
if(checkHallId == data.get(i).getHallId()){
continue;
}
}
else if(toDate.equals(data.get(i).getBdate().toString()) && data.get(i).isEveningSlot()==false){
if(checkHallId == data.get(i).getHallId() && checkAvail==false){
checkHallId=data.get(i).getHallId();
continue;
}
}
}
else{
if(checkHallId == data.get(i).getHallId()) {
checkAvail = true;
}
}
}
removeHallId.add(data.get(i).getHallId());
}
}
List<HallDetails> removeHallByid = hallDetailService.removeHallById(removeHallId);
return removeHallByid;
}
Map<String,String> 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;
}
} }

6
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 org.springframework.stereotype.Repository;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List;
@Repository @Repository
public interface BookingCalendarRepository extends JpaRepository<BookingCalendar,Integer> { public interface BookingCalendarRepository extends JpaRepository<BookingCalendar,Integer> {
BookingCalendar findByBdateAndHallId(LocalDate bdate, int hallId); 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<BookingCalendar> 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<BookingCalendar> getCalendarByBDate(String fromDate, String toDate);
} }

7
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 com.gcc.communityHall.entity.HallDetails;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Set;
@Repository @Repository
public interface HallDetailsRepository extends JpaRepository<HallDetails,Integer> { public interface HallDetailsRepository extends JpaRepository<HallDetails,Integer> {
@Query(value = "SELECT * FROM hall_details where hall_id NOT IN (:groupByHallIdToRemov) ",nativeQuery = true)
List<HallDetails> removeHallById(Set<Integer> groupByHallIdToRemov);
} }

3
src/main/java/com/gcc/communityHall/service/BookingService.java

@ -9,11 +9,12 @@ import java.util.Map;
public interface BookingService { public interface BookingService {
BookingDetails getBookingsById(int BookingId); BookingDetails getBookingsById(int BookingId);
BookingDetails updateBookingHistory(BookingDetails bd);
BookingDetails updateBookingDetails(BookingDetails bd);
public String saveBookingDetails(Map<String,Object> formData); public String saveBookingDetails(Map<String,Object> formData);
public BookingDetails updateBookingStatusById( int bookingId, BookingDetails.BookingStatus status,String comments); public BookingDetails updateBookingStatusById( int bookingId, BookingDetails.BookingStatus status,String comments);
public EbDetails updateEbDetails(int bookingId,double startUnit,double endUnit,char status); public EbDetails updateEbDetails(int bookingId,double startUnit,double endUnit,char status);
public String confirmBooking(int bookingId);
//typeOfCancel depends { } //typeOfCancel depends { }
String cancelBooking(int bookingId,BookingDetails.BookingStatus currentStatus,String comments); String cancelBooking(int bookingId,BookingDetails.BookingStatus currentStatus,String comments);

8
src/main/java/com/gcc/communityHall/service/CalendarService.java

@ -1,4 +1,12 @@
package com.gcc.communityHall.service; package com.gcc.communityHall.service;
import com.gcc.communityHall.entity.BookingCalendar;
import java.util.List;
public interface CalendarService { public interface CalendarService {
List<BookingCalendar> getCalendarByDateAndHallIdAndSlot(
String fromDate,String toDate,String startingSlot,String endingSlot,
int hallId);
} }

2
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.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.HashSet;
import java.util.List; import java.util.List;
public interface HallDetailService { public interface HallDetailService {
@ -28,4 +29,5 @@ public interface HallDetailService {
String updatedId, String updatedId,
MultipartFile hallImages[] ); MultipartFile hallImages[] );
List<HallDetails> removeHallById(HashSet<Integer> hallIds);
} }

15
src/main/java/com/gcc/communityHall/service/Impl/BookingServiceImpl.java

@ -65,15 +65,20 @@ public class BookingServiceImpl implements BookingService {
@Override @Override
public BookingDetails getBookingsById(int BookingId) { public BookingDetails getBookingsById(int BookingId) {
return bookingDetailsRepository.findById(BookingId).get();
Optional<BookingDetails> OPBookingDetails =bookingDetailsRepository.findById(BookingId);
if(OPBookingDetails.isPresent()) {
return OPBookingDetails.get();
}
return null;
} }
@Override @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()); TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition());
try { try {
Optional<BookingDetails> bookingDet = bookingDetailsRepository.findById(bookingId); Optional<BookingDetails> bookingDet = bookingDetailsRepository.findById(bookingId);
@ -278,7 +283,7 @@ public String confirmBooking(int bookingId) {
} }
@Override @Override
public BookingDetails updateBookingStatusById( int bookingId, BookingDetails.BookingStatus status,String comments) {
public BookingDetails updateBookingStatusById( int bookingId, BookingDetails.BookingStatus status,String comments) {
Optional<BookingDetails> bookingDetails= bookingDetailsRepository.findById(bookingId); Optional<BookingDetails> bookingDetails= bookingDetailsRepository.findById(bookingId);
if(bookingDetails.isPresent()){ if(bookingDetails.isPresent()){
BookingDetails bookDet = bookingDetails.get(); BookingDetails bookDet = bookingDetails.get();

24
src/main/java/com/gcc/communityHall/service/Impl/CalendarServiceImpl.java

@ -1,4 +1,26 @@
package com.gcc.communityHall.service.Impl; 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<BookingCalendar> 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);
}
}
} }

10
src/main/java/com/gcc/communityHall/service/Impl/HallDetailServiceImpl.java

@ -14,6 +14,7 @@ import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Date; import java.util.Date;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -111,4 +112,13 @@ public class HallDetailServiceImpl implements HallDetailService {
return null; return null;
} }
@Override
public List<HallDetails> removeHallById(HashSet<Integer> hallIds) {
if(hallIds.isEmpty()){
hallIds.add(0);
}
System.out.println(hallIds);
return hallDetailsRepository.removeHallById(hallIds);
}
} }
Loading…
Cancel
Save