Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
d2f829f
[FEAT] FCM 의존성 추가
wook099 Dec 9, 2025
2cc2e94
[FEAT] FCM config 추가
wook099 Dec 9, 2025
b2c7c9d
[CHORE] fcm service 생성
wook099 Dec 9, 2025
6588117
Merge branch 'developer' into ART-140
wook099 Dec 9, 2025
5cdb3fa
[FEAT] deviceToken 엔티티 생성
wook099 Dec 9, 2025
574068a
[FIX] device token, topic token 엔티티 수정
wook099 Dec 10, 2025
b38fa79
[FEAT] query dsl 랜덤 전시 조회
wook099 Dec 12, 2025
95c5eb7
[chore] Changing the keyword and exhibit_hall columns
0626-6 Dec 13, 2025
d8e50e1
Merge pull request #144 from ProjectArTrip/ART-143
wook099 Dec 13, 2025
df74379
[chore] 공공데이터 및 어드민 inseret 수정
0626-6 Dec 13, 2025
caf1b83
Merge pull request #145 from ProjectArTrip/ART-143
wook099 Dec 13, 2025
c008984
[FEAT] 사용자 맞춤 전시 랜덤 조회V2
wook099 Dec 13, 2025
49b85d6
Merge branch 'developer' into ART-142
wook099 Dec 13, 2025
61bec21
[CHORE] 사용자 맞춤 랜덤 조회api 메서드 명 수정
wook099 Dec 13, 2025
4375f12
[FEAT] 기존 nativequery기반 api 주석처리
wook099 Dec 13, 2025
2990764
[FEAT] 이번주 전시 일정 랜덤 조회 querydsl
wook099 Dec 13, 2025
b8b221f
[FIX] 전시 일정 랜덤 조회 로직 수정
wook099 Dec 14, 2025
970752b
[FEAT] 장르별 전시 랜덤 조회
wook099 Dec 14, 2025
087cc76
[CHORE] 기존 로직 삭제
wook099 Dec 14, 2025
ad71a82
[FIX] 오늘의 전시 추천 구조 수정
wook099 Dec 14, 2025
9b01d5c
[CHORE] 오늘의 전시 기존 코드 삭제
wook099 Dec 14, 2025
bdf1e98
[REFACTOR] HOME 패키지의 전시 API -> EXHIBIT도메인으로 분리
wook099 Dec 14, 2025
0d4043a
Merge pull request #146 from ProjectArTrip/ART-142
08166 Dec 14, 2025
f9fd617
[REFACTOR] requestparam -> requestbody 랜덤 전시 조회 dto통합
wook099 Dec 14, 2025
80f8fd7
[REFACTOR] 전시 조회 구조 개선: DTO/Converter 통합 및 단일/다중 장르 랜덤 조회 최적화
wook099 Dec 15, 2025
5a375c1
[FIX] RandomExhibitFilterRequestDto vaildgroup컬럼 해제
wook099 Dec 15, 2025
c4eb3dc
[FEAT] 전시 상세 api 전시홀 위/경도 추가
wook099 Dec 15, 2025
73949c5
[FEAT] 전시 상세 위/경도 타입 Double 변경"
wook099 Dec 15, 2025
7694e67
Merge pull request #148 from ProjectArTrip/ART-147
08166 Dec 15, 2025
a7b62d8
[FEAT] 국내 해외 전시 동시 입력방지
wook099 Dec 16, 2025
a3df332
[FEAT] 랜덤 전시 api swagger 요청 예시 설명 추가
wook099 Dec 16, 2025
c9f9029
[CHORE] swagger 설명 수정
wook099 Dec 16, 2025
71c83c0
Merge pull request #149 from ProjectArTrip/ART-147
08166 Dec 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,9 @@ application-stage.yml
application-prod.yml
application-local.yml
!/docker/elasticsearch
/src/main/resources/firebase/

## FCM
secrets/
secrets/
**/firebase*.json
8 changes: 8 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
implementation 'org.flywaydb:flyway-core'
implementation 'org.flywaydb:flyway-mysql'
implementation 'org.springframework.boot:spring-boot-starter-webflux'
implementation 'io.github.resilience4j:resilience4j-spring-boot3:2.2.0'
implementation 'io.github.resilience4j:resilience4j-reactor:2.2.0'
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml'

implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.9'

Expand All @@ -66,6 +70,10 @@ dependencies {
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"

//FCM
implementation 'com.google.firebase:firebase-admin:9.2.0'

}

tasks.named('test') {
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/org/atdev/artrip/domain/Enum/KeywordType.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.atdev.artrip.domain.Enum;
package org.atdev.artrip.domain.Enum;

public enum KeywordType {
GENRE,
STYLE
}
public enum KeywordType {
GENRE,
STYLE
}
6 changes: 6 additions & 0 deletions src/main/java/org/atdev/artrip/domain/Enum/Platform.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package org.atdev.artrip.domain.Enum;

public enum Platform {
ANDROID,
IOS
}
2 changes: 1 addition & 1 deletion src/main/java/org/atdev/artrip/domain/Notification.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import java.time.LocalDateTime;

@Entity
@Table(name = "notification", schema = "art_dev")
@Table(name = "notification")
@Getter
@Setter
@NoArgsConstructor
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/atdev/artrip/domain/RecentExhibit.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import java.time.LocalDateTime;

@Entity
@Table(name = "recent_exhibit", schema = "art_dev")
@Table(name = "recent_exhibit")
@Data
public class RecentExhibit {
@Id
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/atdev/artrip/domain/Stamp.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import java.time.LocalDateTime;

@Entity
@Table(name = "stamp", schema = "art_dev")
@Table(name = "stamp")
@Getter
@Setter
@NoArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,29 +10,17 @@
@Data
public class CreateExhibitRequest {

private Long exhibitHallId;
private String title;
private String description;

private Long exhibitHallId;
private String exhibitHallName;
private String address;
private String country;
private String region;
private String phone;
private String ticketUrl;
private String posterUrl;

private LocalDateTime startDate;
private LocalDateTime endDate;

private String openingHours;

private Status status;

private String posterUrl; // 이미지 URL
private String ticketUrl;

private BigDecimal latitude;
private BigDecimal longitude;

private List<Long> keywordIds;

}
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,6 @@ public class ExhibitAdminResponse {
private String posterUrl;
private String ticketUrl;

private BigDecimal latitude;
private BigDecimal longitude;

private List<keywordInfo> keywords;

private LocalDateTime createdAt;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,17 +71,10 @@ public ExhibitAdminResponse getExhibit (Long exhibitId) {
public Long createExhibit(CreateExhibitRequest request) {
log.info("Admin Creating exhibit : title={}", request);

ExhibitHall exhibitHall = getOrCreateExhibitHall(
request.getExhibitHallId(),
request.getExhibitHallName(),
request.getAddress(),
request.getCountry(),
request.getRegion(),
request.getPhone(),
request.getOpeningHours());
ExhibitHall exhibitHall = exhibitHallRepository.findById(request.getExhibitHallId())
.orElseThrow(() -> new GeneralException(ExhibitError._EXHIBIT_HALL_NOT_FOUND));

List<Keyword> keywords = List.of();

if (request.getKeywordIds() != null && !request.getKeywordIds().isEmpty()) {
keywords = keywordRepository.findAllById(request.getKeywordIds());
if (keywords.size() != request.getKeywordIds().size()) {
Expand All @@ -98,8 +91,6 @@ public Long createExhibit(CreateExhibitRequest request) {
.status(request.getStatus())
.ticketUrl(request.getTicketUrl())
.posterUrl(request.getPosterUrl())
.latitude(request.getLatitude())
.longitude(request.getLongitude())
.createdAt(LocalDateTime.now())
.updatedAt(LocalDateTime.now())
.build();
Expand Down Expand Up @@ -242,8 +233,6 @@ public ExhibitAdminResponse convertToAdminResponse(Exhibit exhibit) {
.status(exhibit.getStatus())
.posterUrl(exhibit.getPosterUrl())
.ticketUrl(exhibit.getTicketUrl())
.latitude(exhibit.getLatitude())
.longitude(exhibit.getLongitude())
.keywords(exhibit.getKeywords().stream()
.map(this::convertToKeywordInfo)
.collect(Collectors.toList()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import lombok.Data;

import java.math.BigDecimal;

@Data
public class CreateExhibitHallRequest {

Expand All @@ -14,4 +16,6 @@ public class CreateExhibitHallRequest {
private String openingHours;
private Boolean isDomestic;
private String closedDays;
private BigDecimal longitude;
private BigDecimal latitude;
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import lombok.Builder;
import lombok.Data;

import java.math.BigDecimal;

@Data
@Builder
public class ExhibitHallResponse {
Expand All @@ -18,5 +20,7 @@ public class ExhibitHallResponse {
private Boolean isDomestic;
private Long exhibitCount;
private String closedDays;
private BigDecimal longitude;
private BigDecimal latitude;

}
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ public Long createExhibitHall(CreateExhibitHallRequest request) {
.openingHours(request.getOpeningHours())
.closedDays(request.getClosedDays())
.isDomestic(request.getIsDomestic())
.longitude(request.getLongitude())
.latitude(request.getLatitude())
.createdAt(LocalDateTime.now())
.updatedAt(LocalDateTime.now())
.build();
Expand Down Expand Up @@ -153,6 +155,8 @@ private ExhibitHallResponse convertToResponse(ExhibitHall hall) {
.isDomestic(hall.getIsDomestic())
.exhibitCount(exhibitCount)
.closedDays(hall.getClosedDays())
.latitude(hall.getLatitude())
.longitude(hall.getLongitude())
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import lombok.RequiredArgsConstructor;
import org.atdev.artrip.domain.Enum.Provider;
import org.atdev.artrip.domain.Enum.Role;
import org.atdev.artrip.domain.SocialAccounts;
import org.atdev.artrip.domain.auth.data.SocialAccounts;
import org.atdev.artrip.domain.auth.data.User;
import org.atdev.artrip.domain.auth.repository.UserRepository;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
package org.atdev.artrip.domain;
package org.atdev.artrip.domain.auth.data;

import jakarta.persistence.*;
import lombok.*;
import org.atdev.artrip.domain.Enum.Provider;
import org.atdev.artrip.domain.auth.data.User;
import org.hibernate.annotations.CreationTimestamp;

import java.time.LocalDateTime;

@Entity
@Table(name = "social_accounts", schema = "art_dev")
@Table(name = "social_accounts")
@Getter
@Setter
@NoArgsConstructor
Expand Down
4 changes: 1 addition & 3 deletions src/main/java/org/atdev/artrip/domain/auth/data/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,9 @@
import jakarta.validation.constraints.Email;
import lombok.*;
import org.atdev.artrip.domain.Enum.Role;
import org.atdev.artrip.domain.SocialAccounts;
import org.hibernate.annotations.CreationTimestamp;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
Expand Down Expand Up @@ -48,6 +45,7 @@ public class User {
@Column(name = "push_token")
private String pushToken;

@Builder.Default
@Column(nullable = false)
private boolean onboardingCompleted=false;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import io.jsonwebtoken.security.Keys;
import lombok.extern.slf4j.Slf4j;
import org.atdev.artrip.domain.auth.jwt.exception.JwtAuthenticationException;
import org.atdev.artrip.domain.auth.web.dto.ReissueRequest;
import org.atdev.artrip.global.apipayload.code.status.UserError;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.atdev.artrip.domain.auth.repository;

import org.atdev.artrip.domain.SocialAccounts;
import org.atdev.artrip.domain.auth.data.SocialAccounts;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,16 @@
import lombok.extern.slf4j.Slf4j;
import org.atdev.artrip.domain.Enum.Provider;
import org.atdev.artrip.domain.Enum.Role;
import org.atdev.artrip.domain.SocialAccounts;
import org.atdev.artrip.domain.auth.data.SocialAccounts;
import org.atdev.artrip.domain.auth.data.User;
import org.atdev.artrip.domain.auth.jwt.JwtGenerator;
import org.atdev.artrip.domain.auth.jwt.JwtProvider;
import org.atdev.artrip.domain.auth.jwt.JwtToken;
import org.atdev.artrip.domain.auth.jwt.repository.RefreshTokenRedisRepository;
import org.atdev.artrip.domain.auth.repository.UserRepository;
import org.atdev.artrip.domain.auth.web.dto.ReissueRequest;
import org.atdev.artrip.domain.auth.web.dto.SocialLoginResponse;
import org.atdev.artrip.domain.auth.web.dto.SocialUserInfo;
import org.atdev.artrip.domain.auth.web.dto.request.ReissueRequest;
import org.atdev.artrip.domain.auth.web.dto.response.SocialLoginResponse;
import org.atdev.artrip.domain.auth.web.dto.response.SocialUserInfo;
import org.atdev.artrip.global.apipayload.code.status.UserError;
import org.atdev.artrip.global.apipayload.exception.GeneralException;
import org.springframework.beans.factory.annotation.Value;
Expand All @@ -34,7 +34,6 @@
import java.net.URL;
import java.security.interfaces.RSAPublicKey;
import java.util.List;
import java.util.Optional;

@Slf4j
@Service
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,13 @@
package org.atdev.artrip.domain.auth.web.controller;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import jakarta.annotation.security.PermitAll;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.atdev.artrip.domain.auth.jwt.JwtToken;
import org.atdev.artrip.domain.auth.jwt.repository.RefreshTokenRedisRepository;
import org.atdev.artrip.domain.auth.service.AuthService;
import org.atdev.artrip.domain.auth.web.dto.ReissueRequest;
import org.atdev.artrip.domain.auth.web.dto.SocialLoginRequest;
import org.atdev.artrip.domain.auth.web.dto.SocialLoginResponse;
import org.atdev.artrip.domain.auth.web.dto.request.ReissueRequest;
import org.atdev.artrip.domain.auth.web.dto.request.SocialLoginRequest;
import org.atdev.artrip.domain.auth.web.dto.response.SocialLoginResponse;
import org.atdev.artrip.global.apipayload.CommonResponse;
import org.atdev.artrip.global.apipayload.code.status.CommonError;
import org.atdev.artrip.global.apipayload.code.status.UserError;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.atdev.artrip.domain.auth.web.dto;
package org.atdev.artrip.domain.auth.web.dto.request;

import lombok.Data;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.atdev.artrip.domain.auth.web.dto;
package org.atdev.artrip.domain.auth.web.dto.request;

import lombok.Data;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.atdev.artrip.domain.auth.web.dto;
package org.atdev.artrip.domain.auth.web.dto.response;


import lombok.AllArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.atdev.artrip.domain.auth.web.dto;
package org.atdev.artrip.domain.auth.web.dto.response;

import lombok.AllArgsConstructor;
import lombok.Data;
Expand Down
10 changes: 1 addition & 9 deletions src/main/java/org/atdev/artrip/domain/exhibit/data/Exhibit.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import java.util.Set;

@Entity
@Table(name = "exhibit", schema = "art_dev")
@Table(name = "exhibit")
@EntityListeners(ExhibitEntityListener.class)
@Getter
@Setter
Expand Down Expand Up @@ -59,14 +59,6 @@ public class Exhibit {
@Column(name = "updated_at")
private LocalDateTime updatedAt;

@Column(name = "latitude")
private BigDecimal latitude;

@Column(name = "longitude")
private BigDecimal longitude;

//enum 생성 정렬 등등

@ManyToMany
@Builder.Default
@JoinTable(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import lombok.Getter;
import org.atdev.artrip.domain.Enum.Status;

import java.math.BigDecimal;

@Getter
@Builder
public class ExhibitDetailResponse {
Expand All @@ -21,4 +23,7 @@ public class ExhibitDetailResponse {
private String hallAddress;
private String hallOpeningHours;
private String hallPhone;
private Double hallLatitude;
private Double hallLongitude;

}
Loading
Loading