Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.example.RealMatch.campaign.application.service;

import java.time.LocalDate;
import java.time.ZoneId;
import java.util.List;

import org.springframework.stereotype.Service;
Expand Down Expand Up @@ -40,6 +42,7 @@ public CampaignDetailResponse getCampaignDetail(Long userId, Long campaignId) {

String imageUrl = attachmentUrlService.getAccessUrl(campaign.getImageUrl());

return CampaignDetailResponse.from(campaign, imageUrl, isLike, tags);
LocalDate today = LocalDate.now(ZoneId.of("Asia/Seoul"));
return CampaignDetailResponse.from(campaign, imageUrl, isLike, today, tags);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ public class CampaignController {
description = """
캠페인 상세 정보를 조회합니다.

* dday가 -1인 것은 dday가 지난 상태를 말합니다.
* 카테고리는 브랜드의 카테고리를 따라갑니다. (데모데이 이후 캠페인 카테고리로 수정 예정)

formats : 형식,
categories : 종류,
tones : 톤,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;

import com.example.RealMatch.brand.domain.entity.enums.IndustryType;
import com.example.RealMatch.campaign.domain.entity.Campaign;
import com.example.RealMatch.campaign.domain.entity.CampaignContentTag;
import com.example.RealMatch.tag.domain.enums.ContentTagType;
Expand All @@ -19,10 +21,11 @@
@Builder
public class CampaignDetailResponse {

private Long campaignId;
private Long campaignId;
private String title;
private String description;
private String imageUrl;
private IndustryType category;

private String preferredSkills;
private String schedule;
Expand All @@ -42,6 +45,7 @@ public class CampaignDetailResponse {

private LocalDateTime recruitStartDate;
private LocalDateTime recruitEndDate;
private int dday;

private Integer quota;

Expand All @@ -51,13 +55,19 @@ public static CampaignDetailResponse from(
Campaign campaign,
String imageUrl,
boolean isLike,
LocalDate today,
List<CampaignContentTag> tags
) {
int dday = (int) ChronoUnit.DAYS.between(
today, campaign.getRecruitEndDate().toLocalDate()
);

return CampaignDetailResponse.builder()
.campaignId(campaign.getId())
.title(campaign.getTitle())
.description(campaign.getDescription())
.imageUrl(imageUrl)
.category(campaign.getBrand().getIndustryType())
.preferredSkills(campaign.getPreferredSkills())
.schedule(campaign.getSchedule())
.videoSpec(campaign.getVideoSpec())
Expand All @@ -68,6 +78,7 @@ public static CampaignDetailResponse from(
.endDate(campaign.getEndDate())
.recruitStartDate(campaign.getRecruitStartDate())
.recruitEndDate(campaign.getRecruitEndDate())
.dday(Math.max(dday, -1))
.quota(campaign.getQuota())
.contentTags(toContentTagResponse(tags))
.build();
Expand Down
Loading