Skip to content

Commit

Permalink
Hotfix/v1.2.3-release2
Browse files Browse the repository at this point in the history
commit ac2072b
Merge: 19386df 92eccc4
Author: min9805 <[email protected]>
Date:   Tue Aug 27 20:02:47 2024 +0900

    Merge branch 'master' into hotfix/#223-bug-fix

    # Conflicts:
    #	src/main/java/com/hyundai/softeer/backend/domain/lottery/drawing/controller/PreviewController.java
    #	src/main/java/com/hyundai/softeer/backend/domain/lottery/drawing/service/DrawingLotteryService.java
    #	src/main/java/com/hyundai/softeer/backend/domain/lottery/drawing/service/PreviewService.java

commit 19386df
Author: mjmj <[email protected]>
Date:   Tue Aug 27 20:00:27 2024 +0900

    fix: s3 디렉토리 주소를 "/preview/"에서 "preview"로 변경

commit 6fd9cb5
Author: mjmj <[email protected]>
Date:   Tue Aug 27 19:32:15 2024 +0900

    fix: 이미 사용된 드로잉 이미지 삭제 로직, 드로잉 이미지 디렉토리에 따로 저장

commit 4c6a1a1
Author: mjmj <[email protected]>
Date:   Tue Aug 27 19:21:01 2024 +0900

    fix: 미리보기 api 주소 변경 (/api/v1/lottery/drawing/preview -> /{sharedUrl})

commit 92eccc4
Author: mjmj <[email protected]>
Date:   Mon Aug 26 10:52:23 2024 +0900

    Hotfix/v1.2.3-release1 (#222)

    * 결과 미리보기를 위한 이미지 저장 및 동적 템플릿 생성합니다. (#208)

    * feat: thymeleaf 의존성 추가 (#208)

    * feat: 드로잉 이벤트를 아직 참여하지 않았을 경우 (#208)

    * feat: 드로잉 이벤트 결과 이미지 저장 (#208)

    * feat: 공유할 때 플랫폼에서 결과를 미리 볼 수 있게하는 로직 (#208)

    * feat: s3 설정 (#208)

    * feat: 미리보기 로직 문서화 (#208)

    * 드로잉 게임 전 기대평 작성 시 버그 해결합니다. (#215)

    fix: 드로잉에 대한 이벤트 유저가 없을 시 Event_user 생성 (#214)

    * aws s3 의존성 충돌 및 og html 코드 수정합니다. (#217)

    * fix: aws s3 Jackson 의존성 충돌 해결 (#216)

    * fix: 버전 정보 1.2.1 -> 1.2.2로 변경 (#216)

    * fix: logback 삭제 (#216)

    * fix: preview 제목, 내용 변경 및 자바스크립트 요청 코드 변경 (#216)

    * fix: baseUrl(서버 도메인), ogURl(요청 url), sharedUrl(공유 코드) 추가 (#216)

    * fix: 그리기 점수를 소수점 1번째까지 자르는 로직 작성 (#216)

    * 어드민 리액트 페이지 및 API 추가합니다.  (#218)

    * feat: [FE] Admin 이벤트 관리 페이지 구현 (#153)

    * feat: [FE] 이벤트 상세 조회 버튼 생성 및 상세 조회 페이지 생성 (#153)

    * feat: SubEvent 조회를 위한 API 생성 (#153)

    * feat: Event Detail 페이지 생성 (#153)

    * feat: Url fix (#153)

    * feat: error 및 Swagger Tag 변경 (#153)

    * feat: 유저 정보 조회를 위한 API 생성

    * feat: 유저 조회 페이지 생성 (#153)

    * feat: 이벤트 참여자 조회 및 반환값 변경 (#153)

    * feat: 이벤트 참여자 페이지 구현 (#153)

    * feat: 당첨자를 조회하는 API 생성 (#153)

    * feat 당첨자 조회 모달 추가 (#153)

    * feat: 차량 구매자 엔티티 생성 (#153)

    * feat: 차량 구매자 페이지 생성 (#153)

    * feat: 로그 정리 (#153)

    * feat: create 를 위한 s3 연결 (#153)

    * feat: 이미지 저장 및 테스트 작성 (#153)

    * feat: Event 생성 API 생성 (#153)

    * test: test 코드 변경 (#153)

    * feat: 이벤트 edit 구현 (#153)

    * feat: 기간 업데이트 API 생성 (#153)

    * feat: event 별 총 참여자 수 쿼리 사용 (#153)

    * feat: 이벤트 별 총 구매자 조회 생성 (#153)

    * feat: 서브이벤트 업데이트 API 생성 (#153)

    * feat: 추첨 시 Set 으로 중복 당첨자 방지 (#153)

    * feat: [FE] 어드민 프론트 페이지 작업 (#153)

    * test: Set 변경으로 인한 테스트 코드 변경 (#153)

    * feat: API 정리 및 dev 파일 정리. (#153)

    * feat: JWT filter 변경 (#153)

    * feat: 페이지네이션 초과 부분 처리 (#153)

    * feat: logger 삭제 (#153)

    * feat: JWT 토큰에 대한 주석 추가 (#153)

    * lua script와 배치를 활용한 당첨자 추첨 로직 작성합니다. (#201)

    * feat: 비동기 insert 저장 당첨자 추첨 구현체 (#197)

    * feat: lua를 이용한 당첨자 추첨 구현체 (#197)

    * fix: lua 구현체를 쓰기위해 @service 제거 (#197)

    * feat: reids set과 hash 사용 (#197)

    * feat: SQL 런타임 예외 (#197)

    * feat: 레디스에 당첨자 저장하기 위한 Dto (#197)

    * feat: 시간 측정 어노테이션 작성 (#197)

    * fix: db만을 사용한 당첨자 추첨 로직을 주입 (#197)

    * fix: 자정에만 배치작업을 수행하도록 변경 (#197)

    * Release v1.2.3

    commit 59c7b27
    Author: min9805 <[email protected]>
    Date:   Sun Aug 25 22:00:36 2024 +0900

        feat: versioning

    commit 96daf21
    Author: min9805 <[email protected]>
    Date:   Sun Aug 25 22:00:23 2024 +0900

        feat: 삭제되지 않은 테스트 삭제

    commit fe2e9f2
    Author: min9805 <[email protected]>
    Date:   Sun Aug 25 22:00:06 2024 +0900

        feat: sql 문 수정

    * fix: 미리보기 api 화이트리스트 추가

    * feat: Update README.md (#221)

    * feat: Update README.md

    * feat: Update README.md (#221)

    * feat: Update README.md (#221)

    * feat: Update README.md (#221)

    * feat: Update README.md (#221)

    * feat: Update README.md (#221)

    ---------

    Co-authored-by: min9805 <[email protected]>
    Co-authored-by: min9805 <[email protected]>

commit 8668948
Author: min9805 <[email protected]>
Date:   Sun Aug 25 22:02:06 2024 +0900

    Release/v1.2.3 (#220)

    * 결과 미리보기를 위한 이미지 저장 및 동적 템플릿 생성합니다. (#208)

    * feat: thymeleaf 의존성 추가 (#208)

    * feat: 드로잉 이벤트를 아직 참여하지 않았을 경우 (#208)

    * feat: 드로잉 이벤트 결과 이미지 저장 (#208)

    * feat: 공유할 때 플랫폼에서 결과를 미리 볼 수 있게하는 로직 (#208)

    * feat: s3 설정 (#208)

    * feat: 미리보기 로직 문서화 (#208)

    * 드로잉 게임 전 기대평 작성 시 버그 해결합니다. (#215)

    fix: 드로잉에 대한 이벤트 유저가 없을 시 Event_user 생성 (#214)

    * aws s3 의존성 충돌 및 og html 코드 수정합니다. (#217)

    * fix: aws s3 Jackson 의존성 충돌 해결 (#216)

    * fix: 버전 정보 1.2.1 -> 1.2.2로 변경 (#216)

    * fix: logback 삭제 (#216)

    * fix: preview 제목, 내용 변경 및 자바스크립트 요청 코드 변경 (#216)

    * fix: baseUrl(서버 도메인), ogURl(요청 url), sharedUrl(공유 코드) 추가 (#216)

    * fix: 그리기 점수를 소수점 1번째까지 자르는 로직 작성 (#216)

    * 어드민 리액트 페이지 및 API 추가합니다.  (#218)

    * feat: [FE] Admin 이벤트 관리 페이지 구현 (#153)

    * feat: [FE] 이벤트 상세 조회 버튼 생성 및 상세 조회 페이지 생성 (#153)

    * feat: SubEvent 조회를 위한 API 생성 (#153)

    * feat: Event Detail 페이지 생성 (#153)

    * feat: Url fix (#153)

    * feat: error 및 Swagger Tag 변경 (#153)

    * feat: 유저 정보 조회를 위한 API 생성

    * feat: 유저 조회 페이지 생성 (#153)

    * feat: 이벤트 참여자 조회 및 반환값 변경 (#153)

    * feat: 이벤트 참여자 페이지 구현 (#153)

    * feat: 당첨자를 조회하는 API 생성 (#153)

    * feat 당첨자 조회 모달 추가 (#153)

    * feat: 차량 구매자 엔티티 생성 (#153)

    * feat: 차량 구매자 페이지 생성 (#153)

    * feat: 로그 정리 (#153)

    * feat: create 를 위한 s3 연결 (#153)

    * feat: 이미지 저장 및 테스트 작성 (#153)

    * feat: Event 생성 API 생성 (#153)

    * test: test 코드 변경 (#153)

    * feat: 이벤트 edit 구현 (#153)

    * feat: 기간 업데이트 API 생성 (#153)

    * feat: event 별 총 참여자 수 쿼리 사용 (#153)

    * feat: 이벤트 별 총 구매자 조회 생성 (#153)

    * feat: 서브이벤트 업데이트 API 생성 (#153)

    * feat: 추첨 시 Set 으로 중복 당첨자 방지 (#153)

    * feat: [FE] 어드민 프론트 페이지 작업 (#153)

    * test: Set 변경으로 인한 테스트 코드 변경 (#153)

    * feat: API 정리 및 dev 파일 정리. (#153)

    * feat: JWT filter 변경 (#153)

    * feat: 페이지네이션 초과 부분 처리 (#153)

    * feat: logger 삭제 (#153)

    * feat: JWT 토큰에 대한 주석 추가 (#153)

    * lua script와 배치를 활용한 당첨자 추첨 로직 작성합니다. (#201)

    * feat: 비동기 insert 저장 당첨자 추첨 구현체 (#197)

    * feat: lua를 이용한 당첨자 추첨 구현체 (#197)

    * fix: lua 구현체를 쓰기위해 @service 제거 (#197)

    * feat: reids set과 hash 사용 (#197)

    * feat: SQL 런타임 예외 (#197)

    * feat: 레디스에 당첨자 저장하기 위한 Dto (#197)

    * feat: 시간 측정 어노테이션 작성 (#197)

    * fix: db만을 사용한 당첨자 추첨 로직을 주입 (#197)

    * fix: 자정에만 배치작업을 수행하도록 변경 (#197)

    * feat: sql 문 수정

    * feat: 삭제되지 않은 테스트 삭제

    * feat: versioning

    ---------

    Co-authored-by: mjmj <[email protected]>
  • Loading branch information
min9805 committed Aug 27, 2024
1 parent d8f0318 commit 52911c5
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,11 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/api/v1/lottery/drawing")
@RequiredArgsConstructor
public class PreviewController {

Expand All @@ -40,18 +39,18 @@ public class PreviewController {
@ApiResponse(responseCode = "200", description = "html 렌더링 성공 시", useReturnTypeSchema = true),
@ApiResponse(responseCode = "400", description = "이벤트를 참여하지 않은 sharedUrl이 들어올 경우", useReturnTypeSchema = true)
})
@GetMapping("/preview")
@GetMapping("/{sharedUrl}")
public String preview(
@Validated PreviewRequest previewRequest,
@PathVariable String sharedUrl,
Model model
) {
EventUser eventUser = previewService.preview(previewRequest, model);
EventUser eventUser = previewService.preview(sharedUrl, model);

model.addAttribute("resultImgUrl", eventUser.getResultImgUrl());
model.addAttribute("name", eventUser.getUser().getName());
model.addAttribute("apiUrl", baseUrl + "/api/v1");
model.addAttribute("ogUrl", baseUrl + "/api/v1/lottery/drawing/preview?sharedUrl=" + previewRequest.getSharedUrl());
model.addAttribute("sharedUrl", previewRequest.getSharedUrl());
model.addAttribute("ogUrl", baseUrl + "/" + sharedUrl);
model.addAttribute("sharedUrl", sharedUrl);

return "preview";
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ public class DrawingLotteryService implements LotteryService {
private final Random random = new Random();

public static final int RANK_COUNT = 20;
public static final String BUCKET_DIR = "preview/";

@Value("${properties.event-id}")
private Long eventId;
Expand Down Expand Up @@ -237,18 +238,24 @@ public void saveDrawImage(MultipartFile file, Long eventId, User authenticatedUs
EventUser eventUser = eventUserRepository.findByUserIdAndSubEventId(authenticatedUser.getId(), subEvent.getId())
.orElseThrow(() -> new EventUserNotFoundException());

String resultImgUrl = eventUser.getResultImgUrl();

if(resultImgUrl != null) {
amazonS3Client.deleteObject(bucket, BUCKET_DIR + resultImgUrl);
}

String fileName = createFileName(file.getOriginalFilename());
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentLength(file.getSize());
metadata.setContentType(file.getContentType());

try {
amazonS3Client.putObject(bucket, fileName, file.getInputStream(), metadata);
amazonS3Client.putObject(bucket, BUCKET_DIR + fileName, file.getInputStream(), metadata);
} catch (IOException e) {
throw new RuntimeException(e);
}

String fileUrl = amazonS3Client.getUrl(bucket, fileName).toString();
String fileUrl = amazonS3Client.getUrl(bucket, BUCKET_DIR + fileName).toString();

eventUser.setResultImgUrl(fileUrl);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@ public class PreviewService {

private final EventUserRepository eventUserRepository;

public EventUser preview(PreviewRequest previewRequest, Model model) {
String sharedUrl = previewRequest.getSharedUrl();

public EventUser preview(String sharedUrl, Model model) {
EventUser eventUser = eventUserRepository.findBySharedUrl(sharedUrl)
.orElseThrow(() -> new EventUserNotFoundException());

Expand Down

0 comments on commit 52911c5

Please sign in to comment.