Browse Source

confirmSlot&ApplicationLogs_added

master
mohammedThaqi 3 years ago
parent
commit
ef87ca606c
  1. 27
      src/main/java/com/gcc/communityHall/controller/TestController.java
  2. 81
      src/main/java/com/gcc/communityHall/entity/ApplicationLogs.java
  3. 83
      src/main/java/com/gcc/communityHall/entity/BookingCalendar.java
  4. 48
      src/main/java/com/gcc/communityHall/entity/BookingHistory.java
  5. 63
      src/main/java/com/gcc/communityHall/entity/EbDetails.java
  6. 13
      src/main/java/com/gcc/communityHall/entity/HallDetails.java
  7. 47
      src/main/java/com/gcc/communityHall/paymentService/controller/PaymentController.java
  8. 5
      src/main/java/com/gcc/communityHall/paymentService/service/PaymentGatewayServiceImpl.java
  9. 9
      src/main/java/com/gcc/communityHall/repository/ApplicationLogsRepository.java
  10. 8
      src/main/java/com/gcc/communityHall/repository/BookingCalendarRepository.java
  11. 5
      src/main/java/com/gcc/communityHall/service/ApplicationLogService.java
  12. 11
      src/main/java/com/gcc/communityHall/service/BookingService.java
  13. 23
      src/main/java/com/gcc/communityHall/service/Impl/ApplicationLogServiceImpl.java
  14. 240
      src/main/java/com/gcc/communityHall/service/Impl/BookingServiceImpl.java

27
src/main/java/com/gcc/communityHall/controller/TestController.java

@ -1,8 +1,6 @@
package com.gcc.communityHall.controller;
import com.gcc.communityHall.entity.HallDetails;
import com.gcc.communityHall.entity.ReasonMaster;
import com.gcc.communityHall.entity.Users;
import com.gcc.communityHall.entity.*;
import com.gcc.communityHall.others.UserSession;
import com.gcc.communityHall.service.Impl.BookingServiceImpl;
import com.gcc.communityHall.service.Impl.HallDetailServiceImpl;
@ -161,6 +159,28 @@ public ResponseEntity<?> saveTheBookingDetails(HttpServletRequest request) {
return ResponseEntity.ok(bookingService.getBookingsById(bookingId));
}
@GetMapping("/updateBookingStatusById")
private ResponseEntity<?> updateBookingStatusById(@RequestParam int bookingId,
@RequestParam BookingDetails.BookingStatus status,
@RequestParam String comments){
return ResponseEntity.ok(bookingService.updateBookingStatusById(bookingId,status,comments));
}
@GetMapping("/updateEbDetailsByBookingId")
private ResponseEntity<?> updateEbDetailsByBookingId(@RequestParam int bookingId,
@RequestParam(required = false) double startUnit,
@RequestParam(required = false) double endUnit,
@RequestParam char status ){
EbDetails ed =bookingService.updateEbDetails(bookingId,startUnit,endUnit,status);
return ResponseEntity.ok(ed);
}
@GetMapping("/confirmSlot")
public ResponseEntity<?> getBookingSlotById(@RequestParam int bookingId){
return ResponseEntity.ok(bookingService.confirmBooking(bookingId));
}
public Map<String,Object> splitFormData(MultipartHttpServletRequest multipartRequest){
Map<String, Object> formData = new HashMap<>();
@ -188,5 +208,4 @@ public ResponseEntity<?> saveTheBookingDetails(HttpServletRequest request) {
}
}

81
src/main/java/com/gcc/communityHall/entity/ApplicationLogs.java

@ -1,23 +1,94 @@
package com.gcc.communityHall.entity;
import jakarta.persistence.Column;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.gcc.communityHall.others.UserSession;
import jakarta.persistence.*;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Date;
@Entity
public class ApplicationLogs {
@Autowired
@Transient
private UserSession userSession;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long logId;
private String logType;
private int bookingId;
private int loginId;
private int loginId = userSession.getUserId();
private String comments;
@Column(name = "cdate",nullable = false, columnDefinition = "DATETIME DEFAULT CURRENT_TIMESTAMP")
private Date cdate = new Date();
public Long getLogId() {
return logId;
}
public void setLogId(Long logId) {
this.logId = logId;
}
public String getLogType() {
return logType;
}
public void setLogType(String logType) {
this.logType = logType;
}
public int getBookingId() {
return bookingId;
}
public void setBookingId(int bookingId) {
this.bookingId = bookingId;
}
public int getLoginId() {
return loginId;
}
public void setLoginId(int loginId) {
this.loginId = loginId;
}
public String getComments() {
return comments;
}
public void setComments(String comments) {
this.comments = comments;
}
public Date getCdate() {
return cdate;
}
public void setCdate(Date cdate) {
this.cdate = cdate;
}
public enum logsOfMsg{
SENDING_SMS,USER_CANCELLED_BOOKING,USER_INVALID,PAYMENT_STARTED,PAYMENT_COMPLETED,PAYMENT,FAILURE,
GCC_REJECTED,GCC_BLOCKED_DATE
};
@Transient
private ApplicationLogs.logsOfMsg logsOfMsg;
public ApplicationLogs.logsOfMsg getLogsOfMsg() {
return logsOfMsg;
}
public void setLogsOfMsg(ApplicationLogs.logsOfMsg logsOfMsg) {
this.logsOfMsg = logsOfMsg;
}
}

83
src/main/java/com/gcc/communityHall/entity/BookingCalendar.java

@ -2,7 +2,8 @@ package com.gcc.communityHall.entity;
import jakarta.persistence.*;
import java.util.Date;
import java.time.LocalDate;
@Entity
public class BookingCalendar {
@ -10,7 +11,7 @@ public class BookingCalendar {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private Date date;
private LocalDate bdate;
private boolean morningSlot;
private boolean eveningSlot;
private String bookingId_1;
@ -22,5 +23,83 @@ public class BookingCalendar {
private int hallId;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public LocalDate getBdate() {
return bdate;
}
public void setBdate(LocalDate bdate) {
this.bdate = bdate;
}
public boolean isMorningSlot() {
return morningSlot;
}
public void setMorningSlot(boolean morningSlot) {
this.morningSlot = morningSlot;
}
public boolean isEveningSlot() {
return eveningSlot;
}
public void setEveningSlot(boolean eveningSlot) {
this.eveningSlot = eveningSlot;
}
public String getBookingId_1() {
return bookingId_1;
}
public void setBookingId_1(String bookingId_1) {
this.bookingId_1 = bookingId_1;
}
public String getBookingId_2() {
return bookingId_2;
}
public void setBookingId_2(String bookingId_2) {
this.bookingId_2 = bookingId_2;
}
public boolean isIs_active() {
return is_active;
}
public void setIs_active(boolean is_active) {
this.is_active = is_active;
}
public boolean isIs_delete() {
return is_delete;
}
public void setIs_delete(boolean is_delete) {
this.is_delete = is_delete;
}
public int getIs_booked() {
return is_booked;
}
public void setIs_booked(int is_booked) {
this.is_booked = is_booked;
}
public int getHallId() {
return hallId;
}
public void setHallId(int hallId) {
this.hallId = hallId;
}
}

48
src/main/java/com/gcc/communityHall/entity/BookingHistory.java

@ -23,4 +23,52 @@ public class BookingHistory {
private String updatedBy;
@ManyToOne(cascade = CascadeType.ALL,fetch = FetchType.EAGER)
private BookingDetails bookingDetails;
public int getHistoryId() {
return HistoryId;
}
public void setHistoryId(int historyId) {
HistoryId = historyId;
}
public Date getCdate() {
return cdate;
}
public void setCdate(Date cdate) {
this.cdate = cdate;
}
public BookingDetails.BookingStatus getBookingStatus() {
return bookingStatus;
}
public void setBookingStatus(BookingDetails.BookingStatus bookingStatus) {
this.bookingStatus = bookingStatus;
}
public String getComments() {
return comments;
}
public void setComments(String comments) {
this.comments = comments;
}
public String getUpdatedBy() {
return updatedBy;
}
public void setUpdatedBy(String updatedBy) {
this.updatedBy = updatedBy;
}
public BookingDetails getBookingDetails() {
return bookingDetails;
}
public void setBookingDetails(BookingDetails bookingDetails) {
this.bookingDetails = bookingDetails;
}
}

63
src/main/java/com/gcc/communityHall/entity/EbDetails.java

@ -1,5 +1,6 @@
package com.gcc.communityHall.entity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.persistence.*;
import java.util.Date;
@ -12,6 +13,7 @@ public class EbDetails {
private int ebId;
@OneToOne(cascade = CascadeType.ALL,fetch = FetchType.LAZY)
@JsonIgnore
private BookingDetails bookingDetails;
private double startingReading;
@ -22,6 +24,67 @@ public class EbDetails {
private Date cdate;
private Date updatedDate;
public int getEbId() {
return ebId;
}
public void setEbId(int ebId) {
this.ebId = ebId;
}
public BookingDetails getBookingDetails() {
return bookingDetails;
}
public void setBookingDetails(BookingDetails bookingDetails) {
this.bookingDetails = bookingDetails;
}
public double getStartingReading() {
return startingReading;
}
public void setStartingReading(double startingReading) {
this.startingReading = startingReading;
}
public double getEndingReading() {
return endingReading;
}
public void setEndingReading(double endingReading) {
this.endingReading = endingReading;
}
public float getUsedUnit() {
return usedUnit;
}
public void setUsedUnit(float usedUnit) {
this.usedUnit = usedUnit;
}
public double getEbAmount() {
return ebAmount;
}
public void setEbAmount(double ebAmount) {
this.ebAmount = ebAmount;
}
public Date getCdate() {
return cdate;
}
public void setCdate(Date cdate) {
this.cdate = cdate;
}
public Date getUpdatedDate() {
return updatedDate;
}
public void setUpdatedDate(Date updatedDate) {
this.updatedDate = updatedDate;
}
}

13
src/main/java/com/gcc/communityHall/entity/HallDetails.java

@ -65,6 +65,7 @@ public class HallDetails {
@Column(name="update_date")
private Date updatedDate = new Date();
private String ebNumber;
private float ebCostPerUnit;
private String city;
public int getHallId() {
@ -282,4 +283,16 @@ public class HallDetails {
public void setCity(String city) {
this.city = city;
}
public void setLandMark(String landMark) {
this.landMark = landMark;
}
public float getEbCostPerUnit() {
return ebCostPerUnit;
}
public void setEbCostPerUnit(float ebCostPerUnit) {
this.ebCostPerUnit = ebCostPerUnit;
}
}

47
src/main/java/com/gcc/communityHall/paymentService/controller/PaymentController.java

@ -77,52 +77,7 @@ public class PaymentController {
response.setResponse(msg);
response.setStatusCode(res[0]);
if(paymentService.generateToken(c).equals(confirmToken) && status.equals(res[0])){
int bookingId = response.getBookingId();
System.out.println("payment confirmed for booking Id:-"+bookingId);
//set logic here after payment confirmation..
BookingDetails bookingsById = bookser.getBookingsById(bookingId);
int fromStartingSlot =0;
int fromEndingSlot=0;
int toStartingSlot =0;
int toEndingSlot =0;
int startingSlot = bookingsById.getStartingSlot();
int endingSlot = bookingsById.getEndingSlot();
int noOfDays = bookingsById.getNoOfDays();
if(startingSlot ==1 && endingSlot ==2 && noOfDays==1){
fromStartingSlot =1;
fromEndingSlot=1;
}
else if(startingSlot ==1 && endingSlot ==1 && noOfDays==1){
fromStartingSlot=1;
}else if( startingSlot ==2 && endingSlot ==2 && noOfDays==1){
fromEndingSlot=1;
}else if(noOfDays>1 && startingSlot ==1 && endingSlot ==2 ){
fromStartingSlot =1;
fromEndingSlot=1;
toStartingSlot =1;
toEndingSlot =1;
}else if(noOfDays>1 && startingSlot ==1 && endingSlot==1){
fromStartingSlot=1;
fromEndingSlot=1;
toStartingSlot =1;
}
else if(noOfDays>1 && startingSlot ==2 && endingSlot==1){
fromEndingSlot=1;
toStartingSlot =1;
}
else if(noOfDays>1 && startingSlot ==2 && endingSlot==2){
fromEndingSlot=1;
toStartingSlot =1;
toEndingSlot =1;
}
String bookingStatus=bookser.confirmTheDateAndSlot(bookingsById.getStartDate(), bookingsById.getEndDate(), noOfDays, fromStartingSlot, fromEndingSlot, toStartingSlot, toEndingSlot, bookingsById.getBookingId(),bookingsById.getUsers().getUserId());
System.out.println("booking Status ="+bookingStatus);
System.out.println(response.getId());
System.out.println(response.toString());
bookser.confirmBooking(response.getBookingId());
}
System.out.println(response.toString());

5
src/main/java/com/gcc/communityHall/paymentService/service/PaymentGatewayServiceImpl.java

@ -212,11 +212,6 @@ public class PaymentGatewayServiceImpl implements PaymentGatewayService {
TransactionRefundResponse myObject = objectMapper.readValue(decryptHxTRefund, TransactionRefundResponse.class);
System.out.println(myObject.toString());
// if(myObject.getPaymentMethod().getPaymentTransaction().getStatusCode().equals(this.paymentConfig.getRefundSuccessCode())) {
// System.out.println("Refund Process complete........"+bookingId);
// recordRefundResponse.setAmount(myObject.getPaymentMethod().getPaymentTransaction().getAmount());
// recordRefundResponse.setBalaceAmount(myObject.getPaymentMethod().getPaymentTransaction().getBalanceAmount());
// }
recordRefundResponse.setStatusCode(myObject.getPaymentMethod().getPaymentTransaction().getStatusCode());
recordRefundResponse.setTxansactionId(myObject.getMerchantTransactionIdentifier());
if(myObject.getPaymentMethod().getPaymentTransaction().getStatusCode().equals(this.paymentConfig.getRefundSuccessCode())) {

9
src/main/java/com/gcc/communityHall/repository/ApplicationLogsRepository.java

@ -0,0 +1,9 @@
package com.gcc.communityHall.repository;
import com.gcc.communityHall.entity.ApplicationLogs;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface ApplicationLogsRepository extends JpaRepository<ApplicationLogs,Long> {
}

8
src/main/java/com/gcc/communityHall/repository/BookingCalendarRepository.java

@ -2,8 +2,16 @@ package com.gcc.communityHall.repository;
import com.gcc.communityHall.entity.BookingCalendar;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.time.LocalDate;
@Repository
public interface BookingCalendarRepository extends JpaRepository<BookingCalendar,Integer> {
BookingCalendar findByBdateAndHallId(LocalDate bdate, int hallId);
}

5
src/main/java/com/gcc/communityHall/service/ApplicationLogService.java

@ -0,0 +1,5 @@
package com.gcc.communityHall.service;
public interface ApplicationLogService {
void saveLog(int bookingId,String logType,String comments);
}

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

@ -1,14 +1,21 @@
package com.gcc.communityHall.service;
import com.gcc.communityHall.entity.BookingCalendar;
import com.gcc.communityHall.entity.BookingDetails;
import com.gcc.communityHall.entity.EbDetails;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Map;
public interface BookingService {
BookingDetails getBookingsById(int BookingId);
BookingDetails updateBookingHistory(BookingDetails bd);
public String confirmTheDateAndSlot(String fromDate, String toDate, int days, int fromStartingSlot, int fromEndingSlot, int toStartingSlot, int toEndingSlot, int bookingId,int userId);
public String saveBookingDetails(Map<String,Object> formData);
public BookingDetails updateBookingStatusById( int bookingId, BookingDetails.BookingStatus status,String comments);
public EbDetails updateEbDetails(int bookingId,double startUnit,double endUnit,char status);
//typeOfCancel depends { }
String cancelBooking(int bookingId,BookingDetails.BookingStatus currentStatus,String comments);
}

23
src/main/java/com/gcc/communityHall/service/Impl/ApplicationLogServiceImpl.java

@ -0,0 +1,23 @@
package com.gcc.communityHall.service.Impl;
import com.gcc.communityHall.entity.ApplicationLogs;
import com.gcc.communityHall.repository.ApplicationLogsRepository;
import com.gcc.communityHall.service.ApplicationLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class ApplicationLogServiceImpl implements ApplicationLogService {
@Autowired
private ApplicationLogsRepository applicationLogsRepository;
@Override
public void saveLog(int bookingId, String logType, String comments) {
ApplicationLogs applicationLogs = new ApplicationLogs();
applicationLogs.setBookingId(bookingId);
applicationLogs.setLogType(logType);
applicationLogs.setComments(comments);
applicationLogsRepository.save(applicationLogs);
}
}

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

@ -2,23 +2,23 @@ package com.gcc.communityHall.service.Impl;
import com.gcc.communityHall.entity.*;
import com.gcc.communityHall.others.UserSession;
import com.gcc.communityHall.repository.BookingDetailsRepository;
import com.gcc.communityHall.repository.BookingDocumentsRepository;
import com.gcc.communityHall.repository.ReasonDocMasterRepository;
import com.gcc.communityHall.service.BookingService;
import com.gcc.communityHall.service.HallDetailService;
import com.gcc.communityHall.service.ReasonMasterService;
import com.gcc.communityHall.service.UserService;
import com.gcc.communityHall.paymentService.service.PaymentGatewayServiceImpl;
import com.gcc.communityHall.repository.*;
import com.gcc.communityHall.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.time.format.DateTimeFormatter;
import java.util.*;
@Service
public class BookingServiceImpl implements BookingService {
@ -28,11 +28,24 @@ public class BookingServiceImpl implements BookingService {
@Autowired
private BookingDocumentsRepository bookingDocumentsRepository;
@Autowired
private BookingHistoryRepository bookingHistoryRepository;
@Autowired
private BookingCalendarRepository bookingCalendarRepository;
@Autowired
private EbDetailsRepository ebDetailsRepository;
@Autowired
private ApplicationLogService applicationLogService;
@Autowired
private ReasonMasterService reasonMasterService;
@Autowired
private HallDetailService hallDetailService;
@Autowired
private PaymentGatewayServiceImpl paymentGatewayService;
@Autowired
private UserService userService;
@ -44,7 +57,11 @@ public class BookingServiceImpl implements BookingService {
@Value("${file.fullpath}")
private String serverPath;
private final PlatformTransactionManager transactionManager;
public BookingServiceImpl( PlatformTransactionManager transactionManager) {
this.transactionManager = transactionManager;
}
@Override
public BookingDetails getBookingsById(int BookingId) {
@ -56,10 +73,123 @@ public class BookingServiceImpl implements BookingService {
return null;
}
@Override
public String confirmTheDateAndSlot(String fromDate, String toDate, int days, int fromStartingSlot, int fromEndingSlot, int toStartingSlot, int toEndingSlot, int bookingId, int userId) {
public String confirmBooking(int bookingId) {
TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition());
try {
Optional<BookingDetails> bookingDet = bookingDetailsRepository.findById(bookingId);
if (!bookingDet.isPresent()){
// Handle invalid booking ID
return "Invalid booking ID";
}
BookingDetails bookingDetails=bookingDet.get();
// Validate booking details
int hallId =bookingDetails.getHallDetails().getHallId();
LocalDate startDate = LocalDate.parse(bookingDetails.getStartDate());
LocalDate endDate = LocalDate.parse(bookingDetails.getEndDate());
// Iterate through each date of the booking
for (LocalDate date = startDate; !date.isAfter(endDate); date = date.plusDays(1)) {
BookingCalendar bookingCalendar = bookingCalendarRepository.findByBdateAndHallId(date, hallId);
if (bookingCalendar != null) {
// Check if the slot is already occupied
if ((date.equals(startDate) && bookingDetails.getStartingSlot() == 1 && bookingCalendar.isMorningSlot()) ||
(date.equals(startDate) && bookingDetails.getStartingSlot() == 2 && bookingCalendar.isEveningSlot()) ||
(date.equals(endDate) && bookingDetails.getEndingSlot() == 1 && bookingCalendar.isMorningSlot()) ||
(date.equals(endDate) && bookingDetails.getEndingSlot() == 2 && bookingCalendar.isEveningSlot())) {
transactionManager.rollback(status);
return "Slot occupied";
}else if(bookingCalendar.isMorningSlot() ==true && bookingCalendar.isEveningSlot()==true ) {
transactionManager.rollback(status);
return "Slot occupied";
}
} else {
bookingCalendar = new BookingCalendar();
bookingCalendar.setBdate(date);
bookingCalendar.setHallId(hallId);
bookingCalendar.setIs_booked(0);
bookingCalendar.setIs_active(true);
}
// Mark the appropriate slot as booked based on starting and ending slots
if (date.equals(startDate)) {
if (bookingDetails.getStartingSlot() == 1) {
bookingCalendar.setMorningSlot(true);
bookingCalendar.setBookingId_1(String.valueOf(bookingId));
bookingCalendar.setIs_booked(bookingCalendar.getIs_booked()+1);
if(!date.equals(endDate)){
bookingCalendar.setEveningSlot(true);
bookingCalendar.setBookingId_2(String.valueOf(bookingId));
bookingCalendar.setIs_booked(bookingCalendar.getIs_booked()+1);
}
} else {
bookingCalendar.setEveningSlot(true);
bookingCalendar.setBookingId_2(String.valueOf(bookingId));
bookingCalendar.setIs_booked(bookingCalendar.getIs_booked()+1);
}
} else if (date.equals(endDate)) {
if (bookingDetails.getEndingSlot() == 1) {
bookingCalendar.setMorningSlot(true);
bookingCalendar.setBookingId_1(String.valueOf(bookingId));
bookingCalendar.setIs_booked(bookingCalendar.getIs_booked()+1);
} else {
bookingCalendar.setEveningSlot(true);
bookingCalendar.setBookingId_2(String.valueOf(bookingId));
bookingCalendar.setIs_booked(bookingCalendar.getIs_booked()+1);
if(bookingDetails.getEndingSlot()==2){
bookingCalendar.setMorningSlot(true);
bookingCalendar.setBookingId_1(String.valueOf(bookingId));
bookingCalendar.setIs_booked(bookingCalendar.getIs_booked()+1);
}
}
} else {
// For dates between start and end date, mark both slots as booked
bookingCalendar.setMorningSlot(true);
bookingCalendar.setEveningSlot(true);
bookingCalendar.setBookingId_1(String.valueOf(bookingId));
bookingCalendar.setBookingId_2(String.valueOf(bookingId));
bookingCalendar.setIs_booked(bookingCalendar.getIs_booked()+2);
}
bookingCalendarRepository.save(bookingCalendar);
}
// transactionManager.commit(status);
return "Booking confirmed successfully";
} catch (Exception e) {
transactionManager.rollback(status);
e.printStackTrace();
return "Error confirming booking";
}finally {
transactionManager.commit(status);
}
}
public String plusDateFromGivenDate(String dateString){
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date = LocalDate.parse(dateString, formatter);
// Incrementing date by 1 day
LocalDate incrementedDate = date.plusDays(1);
System.out.println("increment date:-"+incrementedDate.toString());
return incrementedDate.toString();
}
public Date convertStringToDate(String dateString){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = dateFormat.parse(dateString);
System.out.println("Date object: " + date);
return date;
} catch (Exception e) {
System.out.println("Error parsing date: " + e.getMessage());
return null;
}
}
@Override
public String saveBookingDetails(Map<String, Object> formData) {
@ -146,4 +276,90 @@ public class BookingServiceImpl implements BookingService {
return hallAmount;
}
@Override
public BookingDetails updateBookingStatusById( int bookingId, BookingDetails.BookingStatus status,String comments) {
Optional<BookingDetails> bookingDetails= bookingDetailsRepository.findById(bookingId);
if(bookingDetails.isPresent()){
BookingDetails bookDet = bookingDetails.get();
BookingHistory bookHistory = new BookingHistory();
bookHistory.setBookingDetails(bookDet);
bookHistory.setBookingStatus(status);
bookHistory.setComments(comments);
bookHistory.setCdate(new Date());
bookingHistoryRepository.save(bookHistory);
bookDet.setBookingStatus(status);
BookingDetails bookingDetails1 = bookingDetailsRepository.save(bookDet);
return bookingDetails1;
}
return null;
}
@Override
public EbDetails updateEbDetails(int bookingId,double startUnit,double endUnit,char status) {
Optional<BookingDetails> bookingDetails= bookingDetailsRepository.findById(bookingId);
if(bookingDetails.isPresent()){
BookingDetails bd = bookingDetails.get();
EbDetails ed = bd.getEbDetails();
if(ed==null){
ed= new EbDetails();
ed.setBookingDetails(bd);
}
if(status=='S') {
ed.setCdate(new Date());
ed.setStartingReading(startUnit);
return ebDetailsRepository.save(ed);
} else if (status=='E') {
double startReading = ed.getStartingReading();
if(startReading != 0 && endUnit != 0 ){
ed.setEndingReading(endUnit);
double usedUnit= endUnit - startReading;
ed.setUsedUnit(Float.parseFloat(usedUnit+""));
float costPerUnit = bd.getHallDetails().getEbCostPerUnit();
ed.setEbAmount(usedUnit * costPerUnit);
ed.setUpdatedDate(new Date());
return ebDetailsRepository.save(ed);
}
}
}
return null;
}
@Override
public String cancelBooking(int bookingId, BookingDetails.BookingStatus currentStatus,String comments) {
Optional<BookingDetails> bd =bookingDetailsRepository.findById(bookingId);
if(bd.isPresent()){
BookingDetails bookingDetails = bd.get();
if(bookingDetails.getBookingStatus().equals(BookingDetails.BookingStatus.APPROVED)){
if(currentStatus.equals(BookingDetails.BookingStatus.CANCELED)){
try{
applicationLogService.saveLog(bookingDetails.getBookingId(),ApplicationLogs.logsOfMsg.USER_CANCELLED_BOOKING.toString(),comments);
paymentGatewayService.refundTheDepositAmount(bookingDetails.getBookingId(),bookingDetails.getUsers().getUserId(),bookingDetails.getDepositAmount());
}catch (Exception e){
e.printStackTrace();
}
} else if (currentStatus.equals(BookingDetails.BookingStatus.REJECTED)) {
try{
applicationLogService.saveLog(bookingDetails.getBookingId(),ApplicationLogs.logsOfMsg.GCC_REJECTED.toString(),comments);
paymentGatewayService.refundTheAmount(bookingDetails.getBookingId(),bookingDetails.getUsers().getUserId());
}catch (Exception e){
e.printStackTrace();
}
} else if (currentStatus.equals(BookingDetails.BookingStatus.GCC_BLOCKED)) {
try{
applicationLogService.saveLog(bookingDetails.getBookingId(),ApplicationLogs.logsOfMsg.GCC_BLOCKED_DATE.toString(),comments);
paymentGatewayService.refundTheAmount(bookingDetails.getBookingId(),bookingDetails.getUsers().getUserId());
}catch (Exception e){
e.printStackTrace();
}
}
}
}
return null;
}
}
Loading…
Cancel
Save