Changeset 62bba0c for src/main/java/com


Ignore:
Timestamp:
02/23/25 20:37:56 (3 months ago)
Author:
ste08 <sjovanoska@…>
Branches:
master
Children:
fda671c
Parents:
de83113
git-author:
ste08 <sjovanoska@…> (02/23/25 20:37:23)
git-committer:
ste08 <sjovanoska@…> (02/23/25 20:37:56)
Message:

Report working, Wishlist partly working.

Location:
src/main/java/com/example/skychasemk
Files:
1 added
13 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/com/example/skychasemk/controller/TopMonthlyReportController.java

    rde83113 r62bba0c  
    22
    33import com.example.skychasemk.model.TopMonthlyReport;
    4 import com.example.skychasemk.services.TopMonthlyReportService;
     4import com.example.skychasemk.repository.TopMonthlyReportRepository;
    55import org.springframework.beans.factory.annotation.Autowired;
     6import org.springframework.ui.Model;
    67import org.springframework.web.bind.annotation.*;
    78
    8 import java.time.LocalDate;
    99import java.util.List;
    1010
    1111@RestController
    12 @RequestMapping("/api/reports")
    13 @CrossOrigin("*")
     12@RequestMapping("/api/views")
    1413public class TopMonthlyReportController {
    1514    @Autowired
    16     private TopMonthlyReportService service;
     15    private TopMonthlyReportRepository repository;
     16
     17
    1718    @GetMapping
    18     public String getReportsPage() {
    19         return "TopMonthlyReport";
     19    public List<TopMonthlyReport> getAllReports() {
     20        return repository.findAll();
    2021    }
    2122
    22     @GetMapping("/top-monthly")
    23     public List<TopMonthlyReport> getAllReports() {
    24         return service.getAllReports();
    25     }
    26 
    27     @GetMapping("/top-monthly/{month}")
    28     public List<TopMonthlyReport> getReportsByMonth(@PathVariable String month) {
    29         return service.getReportsByMonth(LocalDate.parse(month));
    30     }
    3123}
  • src/main/java/com/example/skychasemk/controller/WishlistController.java

    rde83113 r62bba0c  
    1818    private WishlistService wishlistService;
    1919
    20     @GetMapping("/wishlists-all")
     20    @GetMapping
    2121    public List<Wishlist> getAllWishlists() {
    2222        return wishlistService.getAllWishlists();
     
    2727    }
    2828
    29     @DeleteMapping("/wishlist/{id}")
    30     public void deleteWishlist(@PathVariable("id") Integer wishlistID) {
    31         wishlistService.deleteWishlist(wishlistID);
     29    @DeleteMapping
     30    public void deleteWishlist(@RequestParam("userId") Integer userId, @RequestParam("targetId") Integer targetId) {
     31        wishlistService.deleteRecordFromWishlist(userId, targetId);
     32    }
     33
     34    @GetMapping("/{userId}")
     35    public ResponseEntity<List<Wishlist>> getWishlist(@RequestParam("userId") Long userId) {
     36        List<Wishlist> wishlist = wishlistService.getAllItems(userId);
     37        return ResponseEntity.ok(wishlist);
    3238    }
    3339
  • src/main/java/com/example/skychasemk/dto/SupportTicketDTO.java

    rde83113 r62bba0c  
    11package com.example.skychasemk.dto;
     2
     3import lombok.Getter;
     4import lombok.Setter;
    25
    36import java.time.LocalDate;
     
    58public class SupportTicketDTO {
    69
     10    // Getters and Setters
     11    @Setter
     12    @Getter
    713    private Integer ticketID;
    8     private Integer userID;
     14    private Integer userId;
    915    private String subject;
    1016    private String description;
     
    2026    }
    2127
    22     // Getters and Setters
    23     public Integer getTicketID() {
    24         return ticketID;
     28    public Integer getUserId() {
     29        return userId;
    2530    }
    2631
    27     public void setTicketID(Integer ticketID) {
    28         this.ticketID = ticketID;
    29     }
    30 
    31     public Integer getUserID() {
    32         return userID;
    33     }
    34 
    35     public void setUserID(Integer userID) {
    36         this.userID = userID;
     32    public void setUserId(Integer userId) {
     33        this.userId = userId;
    3734    }
    3835
  • src/main/java/com/example/skychasemk/dto/WishlistDTO.java

    rde83113 r62bba0c  
    11package com.example.skychasemk.dto;
     2
     3import lombok.Getter;
     4import lombok.Setter;
    25
    36public class WishlistDTO {
    47
    5     private Integer userID;
    6     private Integer targetID;
     8    private Integer userId;
     9    private Integer targetId;
     10    @Setter
     11    @Getter
    712    private boolean wishlisted;
    813
    914    public Integer getUserID() {
    10         return userID;
     15        return userId;
    1116    }
    1217
    1318    public void setUserID(Integer userID) {
    14         this.userID = userID;
     19        this.userId = userID;
    1520    }
    1621
    1722    public Integer getTargetID() {
    18         return targetID;
     23        return targetId;
    1924    }
    2025
    2126    public void setTargetID(Integer targetID) {
    22         this.targetID = targetID;
     27        this.targetId = targetID;
    2328    }
    2429
    25     public boolean isWishlisted() {
    26         return wishlisted;
    27     }
    28 
    29     public void setWishlisted(boolean wishlisted) {
    30         this.wishlisted = wishlisted;
    31     }
    3230}
  • src/main/java/com/example/skychasemk/model/SupportTicket.java

    rde83113 r62bba0c  
    33import jakarta.persistence.*;
    44import lombok.Getter;
     5import lombok.Setter;
    56
    67import java.time.LocalDate;
     
    1011public class SupportTicket {
    1112
     13    @Setter
    1214    @Id
    1315    @GeneratedValue(strategy = GenerationType.IDENTITY)
     
    1517
    1618    private Integer ticketID;
     19    @Setter
    1720    @Getter
    18     @Column(name = "UserID")
     21    @Column(name = "userid")
    1922
    20     private Integer userID;
     23    private Integer userId;
    2124
     25    @Setter
    2226    @Getter
    2327    @Column(name = "Description")
    2428
    2529    private String description;
     30    @Setter
     31
    2632    @Getter
    2733    @Column(name = "status")
    2834    @Enumerated(EnumType.STRING)
    2935    private TicketStatus status;
     36    @Setter
    3037    @Column(name = "date_created")
    3138
    3239    private LocalDate dateCreated;
     40    @Setter
    3341    @Getter
    3442    @Column(name = "date_resolved")
    3543
    3644    private LocalDate dateResolved;
     45    @Setter
    3746    @Column(name = "assigned_to")
    3847
     
    4453    }
    4554
    46     public TicketStatus getStatus() {
    47         return status;
    48     }
    49 
    50     public Integer getTicketID() {
    51         return ticketID;
    52     }
    53 
    54     public void setTicketID(Integer ticketID) {
    55         this.ticketID = ticketID;
    56     }
    57 
    58     public void setUserID(Integer userID) {
    59         this.userID = userID;
    60     }
    61 
    62 
    63     public void setDescription(String description) {
    64         this.description = description;
    65     }
    66 
    67     public void setStatus(TicketStatus status) {
    68         this.status = status;
    69     }
    7055
    7156    public LocalDate getDateCreated(LocalDate now) {
     
    7358    }
    7459
    75     public void setDateCreated(LocalDate dateCreated) {
    76         this.dateCreated = dateCreated;
    77     }
    78 
    79     public void setDateResolved(LocalDate dateResolved) {
    80         this.dateResolved = dateResolved;
    81     }
    82 
    83     public void setAssignedTo(Integer assignedTo) {
    84         this.assignedTo = assignedTo;
    85     }
    8660}
  • src/main/java/com/example/skychasemk/model/TopMonthlyReport.java

    rde83113 r62bba0c  
    11package com.example.skychasemk.model;
    22
    3 import jakarta.persistence.Column;
    4 import jakarta.persistence.Entity;
    5 import jakarta.persistence.Id;
    6 import jakarta.persistence.Table;
     3import jakarta.persistence.*;
     4import lombok.Getter;
     5import lombok.Setter;
     6import org.hibernate.annotations.Immutable;
    77
    88import java.time.LocalDate;
    9 
     9@Setter
     10@Getter
    1011@Entity
    1112@Table(name="topmonhtlyreport")
     13@IdClass(TopMonthlyReportId.class) // Define composite key
     14
    1215public class TopMonthlyReport {
     16    // Getters and Setters
    1317    @Id
    1418    @Column(name = "month")
    1519    private LocalDate month;
    16 
     20    @Id
    1721    @Column(name = "category")
    1822    private String category;
    19 
     23    @Id
    2024    @Column(name = "name")
    2125    private String name;
    22 
    2326    @Column(name = "count")
    2427    private int count;
    2528
    26     // Getters and Setters
    27     public LocalDate getMonth() {
    28         return month;
    29     }
    30 
    31     public void setMonth(LocalDate month) {
    32         this.month = month;
    33     }
    34 
    35     public String getCategory() {
    36         return category;
    37     }
    38 
    39     public void setCategory(String category) {
    40         this.category = category;
    41     }
    42 
    43     public String getName() {
    44         return name;
    45     }
    46 
    47     public void setName(String name) {
    48         this.name = name;
    49     }
    50 
    51     public int getCount() {
    52         return count;
    53     }
    54 
    55     public void setCount(int count) {
    56         this.count = count;
    57     }
    5829}
  • src/main/java/com/example/skychasemk/model/WebConfig.java

    rde83113 r62bba0c  
    3434        registry.addViewController("/transaction").setViewName("forward:/TransactionPage.html");
    3535        registry.addViewController("/login").setViewName("forward:/UserLogin.html");
    36         registry.addViewController("/wishlist").setViewName("forward:/WishlistPage.html");
     36        registry.addViewController("/wishlist").setViewName("forward:/Wishlist.html");
    3737        registry.addViewController("/signup").setViewName("forward:/UserSignup.html");
     38        registry.addViewController("/views").setViewName("forward:/ViewReport.html");
    3839    }
    3940
  • src/main/java/com/example/skychasemk/model/Wishlist.java

    rde83113 r62bba0c  
    33import jakarta.persistence.*;
    44import lombok.Getter;
     5import lombok.Setter;
    56
    67import java.time.LocalDate;
     
    1617
    1718    private Integer wishlistID;
    18     @Column(name = "userId")
     19    @Setter
     20    @Column(name = "userid")
    1921
    20     private Integer userID;
    21     @Column(name = "targetId")
     22    private Integer userId;
     23    @Setter
     24    @Column(name = "targetid")
    2225
    23     private Integer targetID;
     26    private Integer targetId;
     27    @Setter
     28    @Getter
    2429    @Column(name = "date_added")
     30    private LocalDate date_added;
    2531
    26     private LocalDate dateAdded;
    2732
    28     public Integer getWishlistID() {
    29         return wishlistID;
    30     }
    31 
    32     public void setWishlistID(Integer wishlistID) {
    33         this.wishlistID = wishlistID;
    34     }
    35 
    36     public Integer getUserID() {
    37         return userID;
    38     }
    39 
    40     public void setUserID(Integer userID) {
    41         this.userID = userID;
    42     }
    43 
    44     public Integer getTargetID() {
    45         return targetID;
    46     }
    47 
    48     public void setTargetID(Integer targetID) {
    49         this.targetID = targetID;
    50     }
    51 
    52     public LocalDate getDateAdded() {
    53         return dateAdded;
    54     }
    55 
    56     public void setDateAdded(LocalDate dateAdded) {
    57         this.dateAdded = dateAdded;
    58     }
    5933}
    6034
  • src/main/java/com/example/skychasemk/repository/TopMonthlyReportRepository.java

    rde83113 r62bba0c  
    33import com.example.skychasemk.model.TopMonthlyReport;
    44import org.springframework.data.jpa.repository.JpaRepository;
     5import org.springframework.data.jpa.repository.Query;
    56import org.springframework.stereotype.Repository;
    67
     
    1011@Repository
    1112public interface TopMonthlyReportRepository extends JpaRepository<TopMonthlyReport, LocalDate> {
    12     List<TopMonthlyReport> findByMonth(LocalDate month);
     13    @Query("SELECT v FROM TopMonthlyReport v")
     14    List<TopMonthlyReport> findAllRecords();
     15
    1316}
  • src/main/java/com/example/skychasemk/repository/WishlistRepository.java

    rde83113 r62bba0c  
    44import com.example.skychasemk.model.Flight;
    55import com.example.skychasemk.model.Wishlist;
     6import jakarta.transaction.Transactional;
    67import org.springframework.beans.factory.annotation.Autowired;
    78import org.springframework.data.jpa.repository.JpaRepository;
     9import org.springframework.data.jpa.repository.Modifying;
    810import org.springframework.data.jpa.repository.Query;
     11import org.springframework.data.repository.query.Param;
    912import org.springframework.jdbc.core.JdbcTemplate;
    1013import org.springframework.stereotype.Repository;
     14
     15import java.util.List;
    1116
    1217@Repository
    1318public interface WishlistRepository extends JpaRepository<Wishlist, Integer> {
    1419
    15     @Query("SELECT w FROM Wishlist w WHERE w.targetID = :targetId AND w.userID = :userId")
     20    @Query("SELECT w FROM Wishlist w WHERE w.targetId = :targetId AND w.userId = :userId")
    1621    Wishlist findByTargetIdAndUserId(Integer targetId, Integer userId);
     22
     23    @Query("SELECT w FROM Wishlist w WHERE w.userId = :userId")
     24    List<Wishlist> findWishlistByUserId(@Param("userId") Long userId);
     25
     26    @Modifying
     27    @Transactional
     28    @Query("DELETE FROM Wishlist w WHERE w.userId = :userId AND w.targetId = :targetId")
     29    void deleteByUserIdAndTargetId(@Param("userId") Integer userId, @Param("targetId") Integer targetId);
     30
    1731}
  • src/main/java/com/example/skychasemk/services/SupportTicketService.java

    rde83113 r62bba0c  
    3939    public SupportTicket createTicket(@RequestBody SupportTicketDTO dto) {
    4040        SupportTicket ticket = new SupportTicket();
     41        ticket.setUserId(dto.getUserId());
    4142        ticket.setDateCreated(LocalDate.now());
    4243        ticket.setStatus(OPEN);
    4344        ticket.setDescription(dto.getDescription());
    44 
    4545        return supportTicketRepository.save(ticket);
    4646    }
  • src/main/java/com/example/skychasemk/services/TopMonthlyReportService.java

    rde83113 r62bba0c  
    1515
    1616    public List<TopMonthlyReport> getAllReports() {
    17         return repository.findAll();
    18     }
    19 
    20     public List<TopMonthlyReport> getReportsByMonth(LocalDate month) {
    21         return repository.findByMonth(month);
     17        return repository.findAllRecords();
    2218    }
    2319}
  • src/main/java/com/example/skychasemk/services/WishlistService.java

    rde83113 r62bba0c  
    22
    33import com.example.skychasemk.dto.WishlistDTO;
     4import com.example.skychasemk.model.Booking;
    45import com.example.skychasemk.model.Flight;
    56import com.example.skychasemk.model.Wishlist;
     
    78import com.example.skychasemk.repository.WishlistRepository;
    89import org.springframework.beans.factory.annotation.Autowired;
     10import org.springframework.http.HttpStatus;
     11import org.springframework.http.ResponseEntity;
    912import org.springframework.stereotype.Service;
     13import org.springframework.web.bind.annotation.PostMapping;
     14import org.springframework.web.bind.annotation.RequestBody;
    1015
    1116import java.time.LocalDate;
     
    2631    }
    2732
     33
    2834    public Wishlist saveWishlist(Wishlist wishlist) {
     35        if (wishlist == null) {
     36            throw new IllegalArgumentException("Wishlist cannot be null");
     37        }
     38        wishlist.setDate_added(LocalDate.now());
    2939        return wishlistRepository.save(wishlist);
    3040    }
    3141
    32     public void deleteWishlist(Integer wishlistID) {
    33         wishlistRepository.deleteById(wishlistID);
    34     }
    3542
    3643    public void updateWishlist(WishlistDTO wishlistRequest) {
     
    4350            if (existingItem == null) {
    4451                Wishlist newWishlistItem = new Wishlist();
    45                 newWishlistItem.setTargetID(Math.toIntExact(wishlistRequest.getTargetID()));
    46                 newWishlistItem.setUserID(wishlistRequest.getUserID());
    47                 newWishlistItem.setDateAdded(LocalDate.now());
     52                newWishlistItem.setTargetId(Math.toIntExact(wishlistRequest.getTargetID()));
     53                newWishlistItem.setUserId(wishlistRequest.getUserID());
     54                newWishlistItem.setDate_added(LocalDate.now());
    4855                wishlistRepository.save(newWishlistItem);
    4956            }
     
    5764    }
    5865
     66    public List<Wishlist> getAllItems(Long userId) {
     67        return wishlistRepository.findWishlistByUserId(userId);
     68    }
     69
     70    public void deleteRecordFromWishlist(Integer userId, Integer targetId) {
     71        wishlistRepository.deleteByUserIdAndTargetId(userId, targetId);
     72    }
    5973}
    6074
Note: See TracChangeset for help on using the changeset viewer.