-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathSubscriberService.java
More file actions
51 lines (40 loc) · 1.84 KB
/
SubscriberService.java
File metadata and controls
51 lines (40 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package ceos.backend.domain.subscriber.service;
import ceos.backend.domain.recruitment.repository.RecruitmentRepository;
import ceos.backend.domain.subscriber.domain.Subscriber;
import ceos.backend.domain.subscriber.dto.request.SubscribeRequest;
import ceos.backend.domain.subscriber.helper.SubscriberHelper;
import ceos.backend.domain.subscriber.repository.SubscriberRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.util.List;
@Slf4j
@Service
@RequiredArgsConstructor
public class SubscriberService {
private final SubscriberHelper subscriberHelper;
private final RecruitmentRepository recruitmentRepository;
private final SubscriberRepository subscriberRepository;
@Transactional
public void subscribeMail(SubscribeRequest subscribeRequest) {
//이메일 중복 검증
subscriberHelper.validateEmail(subscribeRequest.getEmail());
Subscriber subscriber = Subscriber.from(subscribeRequest.getEmail(), subscribeRequest.getPhoneNum());
subscriberRepository.save(subscriber);
}
@Transactional(readOnly = true)
public void sendRecruitingMail() {
LocalDate startDate = recruitmentRepository.findAll().get(0).getStartDateDoc().toLocalDate();
LocalDate endDate = recruitmentRepository.findAll().get(0).getEndDateDoc().toLocalDate();
LocalDate now = LocalDate.now();
List<Subscriber> subscribers = subscriberRepository.findAll();
//리쿠르팅 기간 검증
subscriberHelper.validateDate(startDate, endDate, now);
// 메일 보내기
for (Subscriber subscriber : subscribers) {
subscriberHelper.sendRecruitEmail(subscriber.getEmail());
}
}
}