Skip to content

Commit

Permalink
release/v1.1.1 (#237)
Browse files Browse the repository at this point in the history
* [IDLE-000] Production CI 스크립트 작성

* [IDLE-000] 센터 공고 수정 API 내 접수 방법 null 비허용

* [IDLE-000] 공고 지원자 조회 시, 삭제된 유저는 조회되지 않도록 수정

* [IDLE-363] 센터 관리자 전화 인증 요청 API

* [IDLE-363] 개발 환경 ddl-auto 옵션 임시로 create 옵션으로 변경

* [IDLE-365] 공고 크롤러 selenium 로직 수정 및 로컬 동작 확인

* [IDLE-365] 테스트를 위한 스케줄러 기준 시각 변경

* [IDLE-365] batch job enable 옵션 비활성화

* [IDLE-365] ddl-auto update로 변경

* [IDLE-365] 크롤링 공고 필드 null 비허용

* [IDLE-365] 스케줄러 시간 02시로 설정

* [IDLE-366] spring batch selenium 크롤링을 위한 빌드 스크립트 수정

* [IDLE-366] worknet 사이트가 고용 24 사이트로 통합됨에 따라, 크롤링 스크립트 수정

* [IDLE-366] 크롤러 동작 스케줄링 시간 변경

* [IDLE-366] 스프링 초기 실행 시, spring batch 자동 실행 방지 옵션 추가

* [IDLE-366] spring batch 5 버전에서 업데이트 된 변경사항 적용 및 별도의 JobLauncher 구현

* [IDLE-366] 불필요 의존성 및 옵션 제거

* [IDLE-366] 크롤링 조회 API 내 entity status 필드 추가 및 쿼리 수정

* [IDLE-358] 운영 환경 CD 구축 및 운영 환경 profile 설정 추가

* [IDLE-358] 운영 환경 docker run 실행 시 예외 처리

* [IDLE-000] 크롤링 전체 조회 DTO 생성자 추가

* [IDLE-000] 공고 전체 조회 fetchJoin() 중복 이슈 해결을 위한 subquery 분리

* [IDLE-000] AI 코드리뷰 coderabbit 도입

* [IDLE-000] 크롤링 공고 반경범위 조회 필터를 위한 where절 추가

* [IDLE-000] TimeZone 설정이 적용되지 않는 문제 해결

* [IDLE-000] TimeZone 지정 및 @EnableScheduling 설정

* [IDLE-000] TimeZone 설정 제거

* [IDLE-000] 공고 전체 조회 쿼리 롤백

* [IDLE-000] 기존 공고 내 location을 기반으로 위.경도 값을 decoding하도록 변경

* [IDLE-000] 배포 전 최종 QA

* [IDLE-000] 크롤링 공고 생성일자 필드 type 변경(timestamp -> date)

* [IDLE-000] Redis 비밀번호 설정 추가 (#171)

* [IDLE-000] Redis 비밀번호 설정 추가

* [IDLE-000] yaml 파일에 password 필드 추가

* [IDLE-000] redis local default password 설정

* [IDLE-000] compose 파일 내, 비밀번호 지정 command 설정

* [IDLE-000] Redis 볼륨 설정

* [IDLE-000] ci triggering branch 임시 변경

* [IDLE-000] ci triggering branch 롤백

* [IDLE-000] 테스트 심사 통과를 위한 전화번호 검증 로직 추가

* [IDLE-000] 테스트 심사 통과를 위한 전화번호 검증 로직 추가

* [IDLE-389] 센터 인증 요청 이벤트 발생 시, 디스코드 웹훅 알림을 전송하는 로직 작성

* [IDLE-389] 사업자 등록번호 client properties 클래스명 변경

* [IDLE-389] 코드 리뷰 반영

* [IDLE-000] 트랜잭션 전파 레벨 변경(REQUIRED -> REQUIRES_NEW)

* [IDLE-396] FCM 모듈 추가 및 firebase 의존성 설정

* readme 제목 수정

* readme 제목 수정

* [IDLE-399] FCM Device Token 관리 API

* [IDLE-399] 알림 도메인 설계

* [IDLE-000] fcm service 설정값 주입을 위한 디렉토리 구조 변경

* [IDLE-000] fcm service 설정값 주입을 위한 디렉토리 구조 변경

* [IDLE-400] 채용 공고 지원자 발생 시, 센터 관리자에게 알림을 발송한다.

* [IDLE-400] fcm 모듈 설정 추가

* [IDLE-400] 공고 지원자 발생 시, 모든 센터 관리자들에게 다중 알림을 발송한다.

* [IDLE-415] 알림 조회 처리 API

* [IDLE-417] 읽지 않은 알림 수 집계 API

* [IDLE-418] 알림 목록 조회 API

* [IDLE-418] 피드백 반영

* [IDLE-423] soft-delete가 적용된 즐겨찾기 entity에서, 즐겨찾기 해제 후 다시 설정하는 경우 발생하는 버그를 해결한다.

* [IDLE-424] 요양 보호사 공고 전체 조회 시, 삭제된 공고가 함께 보이는 문제 해결

* [IDLE-400] 채용 공고 지원자 발생 시, 센터 관리자에게 알림을 발송한다. (#183)

* [IDLE-400] 채용 공고 지원자 발생 시, 센터 관리자에게 알림을 발송한다.

* [IDLE-400] fcm 모듈 설정 추가

* [IDLE-400] 공고 지원자 발생 시, 모든 센터 관리자들에게 다중 알림을 발송한다.

* [IDLE-400] 채용 공고 지원자 발생 시, 센터 관리자에게 알림을 발송한다.

* [IDLE-400] fcm 모듈 설정 추가

* [IDLE-400] 공고 지원자 발생 시, 모든 센터 관리자들에게 다중 알림을 발송한다.

* [IDLE-415] 알림 조회 처리 API

* [IDLE-417] 읽지 않은 알림 수 집계 API

* [IDLE-418] 알림 목록 조회 API

* [IDLE-418] 피드백 반영

* [IDLE-423] soft-delete가 적용된 즐겨찾기 entity에서, 즐겨찾기 해제 후 다시 설정하는 경우 발생하는 버그를 해결한다.

* [IDLE-424] 요양 보호사 공고 전체 조회 시, 삭제된 공고가 함께 보이는 문제 해결

* [IDLE-400] 알림 명세 변경

* [IDLE-400] fcm 설정 파일 디렉토리 path 변경

* [IDLE-400] ddl 옵션 변경

* [IDLE-400] ci/cd 옵션 변경

* [IDLE-000] ci triggering branch 복구

* [IDLE-000] develop 환경에서 fcm service 설정 파일 path 수정

* [IDLE-000] fcm service json 파일명 변경

* [IDLE-000] firebase service key 설정 경로 체크를 위해, cd 스크립트를 수정합니다.

* Update README.md

* [IDLE-000] fcm service key 경로를 class path 경로로 수정 시도

* [IDLE-000] ci triggering branch 임시 변경

* [IDLE-000] firebaseApp 초기화 임시 비활성화

* [IDLE-000] firebaseApp 초기화 임시 비활성화

* [IDLE-000] firebaseApp 초기화 임시 비활성화

* [IDLE-000] file path 앞에 ./ 제외

* [IDLE-000] 절대 경로로 변경 시도

* [IDLE-000] fcm service key 생성 path 수정

* [IDLE-000] fcm service key json file 생성 스크립트 작성

* [IDLE-000] ci triggering branch develop으로 롤백

* [IDLE-000] 불필요 스크립트 제거

* [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가 (#197)

* [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가

* [IDLE-000] ci triggering branch 수정

* [IDLE-000] ci triggering branch 수정

* [IDLE-000] firebase app 초기화 로직 주석 처리

* [IDLE-000] firebase app 초기화 로직 주석 처리

* [IDLE-000] firebase app 초기화 로직 주석 처리

* [IDLE-000] file 대신 string으로 주입받아 초기화하는 방식으로 전환

* [IDLE-000] 일반 string 대신 base64 인코딩 된 문자열을 주입하도록 처리

* [IDLE-000] 일반 string 주입으로 rollback

* [IDLE-000] json string log 추가

* [IDLE-000] base64 문자열로 재 변경

* [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가

* [IDLE-429] DB 형상관리를 위한 Flyway 적용

* [IDLE-429] Flyway latest version으로 설정

* [IDLE-429] 피드백 반영

* [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가

* [IDLE-000] 알림 조회 처리 로직에 @transactional 추가

* [IDLE-000] 알림 조회 시, 생성 시각 기준이 아닌 uuid v7 id 기준으로 내림차순 정렬하도록 변경

* [IDLE-000] CI 트리거 브랜치 복구

* [IDLE-454] 테스트를 위한 크롤링 수행 시각 변경 및 로깅 추가

* [IDLE-000] 공고 범위 검색 내 중복 데이터 발생 방지

* [IDLE-000] ci 트리거 브랜치 변경

* [IDLE-000] ci 트리거 브랜치 롤백

* [IDLE-000] monitoring 모듈 추가 및 actuator, prometheus 의존성 추가

* [IDLE-456] monitoring.yml 작성

* [IDLE-456] monitoring profile 추가

* [IDLE-456] actuator dependency group name 수정

* [IDLE-000] 크롤링 주기 하루 2회로 변경

* [IDLE-000] 불필요 로그 제거

* [IDLE-000] 인증번호 SMS 내용 수정

* [IDLE-000] classPath 하위 yaml 파일 확장자 모두 .yml로 통일

* [IDLE-000] 즐겨찾기 facade service에 트랜잭션 추가 (#206)

* [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가

* [IDLE-000] facade service에 transaction 추가

* [IDLE-461] 유저가 다중 디바이스에서 알림을 받을 수 있도록 개선한다. (#207)

* [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가

* [IDLE-461] 한 유저가 다중 디바이스 설정이 가능하도록 한다.

* [IDLE-000] firebase config의 현재 경로를 출력하도록 print문 추가

* [IDLE-000] presentation module의 gradle 파일에 monitoring 모듈 dependency 추가

* [IDLE-000] deviceToken 서비스에서 트랜잭션 어노테이션 추가

* [IDLE-000] batch 테스트를 위해 30분마다 동작하도록 변경

* [IDLE-475] 채팅, 채팅방 도메인 설계

* [IDLE-475] 채팅 메세지 최소, 최대 길이 제한 설정

* [IDLE-000] Batch 메타데이터 테이블 스크립트 변경 및 크롤링 수행 주기 설정

* [IDLE-000] 운영 환경 CD 스크립트에서 불필요한 step 제거

* [IDLE-000] 도텐브 파일 공백 제거 스크립트 작성, 크롤링 대상일자 전날 등록된 공고로 변경

* [IDLE-000] 크롤링 기준 시각 15시로 임시 변경

* [IDLE-000] cd env 파일 생성 스크립트 변경

* [IDLE-492] 동일 유저가 여러 개의 디바이스를 사용 시, 알림이 중복해서 누적되는 현상

* [IDLE-493] flyway 스크립트 오탈자 수정

* [IDLE-493] flyway 스크립트 오탈자 수정

* [IDLE-494] 요양 보호사 및 센터 프로필에서 긴 텍스트를 입력 가능한 항목을 TEXT 컬럼으로 지정한다.

* [IDLE-495] 요양 보호사는 마감된 공고에 지원이 불가능하다.

* [IDLE-495] 공고 마감 처리 메서드명 변경 complete -> completed

* [IDLE-496] 스프링 프로파일 지정을 위한 환경변수 주입

* [IDLE-496] 로그 일부 수정

* [IDLE-000] 안드로이드 app link를 위한 asset 추가

* [IDLE-190] 센터 관리자 인증 요청 목록 조회 API

* [IDLE-000] 크롤링 주기 변경 및 테스트용 에러 로그 추가

* [IDLE-000] 크롤링 대상 사이트에 알림창(alert)이 뜨는 케이스에 대한 처리

* [IDLE-509] 크롤링 전체 조회 시, 공고가 중복 노출되는 현상 해결

* [IDLE-509] 피드백 반영

* [IDLE-509] 사용하지 않는 하위 서비스 의존성 제거

* [IDLE-000] 크롤링 진행 시각 저녁 11시로 변경
  • Loading branch information
wonjunYou authored Nov 9, 2024
1 parent 58127f9 commit 31bc703
Show file tree
Hide file tree
Showing 15 changed files with 153 additions and 330 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,13 @@ class CrawlingJobPostingService(
}

fun findAllByCarerLocationInRange(
carerId: UUID,
location: Point,
next: UUID?,
limit: Long,
): List<CrawlingJobPostingPreviewDto> {
return crawlingJobPostingSpatialQueryRepository.findAllInRange(
carerId = carerId,
location = location,
next = next,
limit = limit,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import com.swm.idle.domain.jobposting.enums.PayType
import com.swm.idle.domain.jobposting.repository.jpa.JobPostingJpaRepository
import com.swm.idle.domain.jobposting.repository.querydsl.JobPostingQueryRepository
import com.swm.idle.domain.jobposting.repository.querydsl.JobPostingSpatialQueryRepository
import com.swm.idle.domain.user.carer.entity.jpa.Carer
import com.swm.idle.domain.user.common.enum.GenderType
import com.swm.idle.domain.user.common.vo.BirthYear
import org.locationtech.jts.geom.Point
Expand Down Expand Up @@ -195,13 +194,13 @@ class JobPostingService(
}

fun findAllByCarerLocationInRange(
carer: Carer,
carerId: UUID,
location: Point,
next: UUID?,
limit: Long,
): List<JobPostingPreviewDto> {
return jobPostingSpatialQueryRepository.findAllWithWeekdaysInRange(
carer = carer,
carerId = carerId,
location = location,
next = next,
limit = limit,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,19 +106,17 @@ class CarerJobPostingFacadeService(
}

val jobPostingPreviewDtos = jobPostingService.findAllByCarerLocationInRange(
carer = carer,
carerId = carer.id,
location = location,
next = next,
limit = limit + 1,
)


val carerLocation = PointConverter.convertToPoint(
latitude = carer.latitude.toDouble(),
longitude = carer.longitude.toDouble(),
)


for (jobPostingPreviewDto in jobPostingPreviewDtos) {
jobPostingPreviewDto.distance = jobPostingService.calculateDistance(
jobPostingPreviewDto.jobPosting,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import com.swm.idle.application.jobposting.domain.JobPostingFavoriteService
import com.swm.idle.application.user.carer.domain.CarerService
import com.swm.idle.domain.common.dto.CrawlingJobPostingPreviewDto
import com.swm.idle.domain.user.carer.entity.jpa.Carer
import com.swm.idle.infrastructure.client.geocode.service.GeoCodeService
import com.swm.idle.support.transfer.common.CursorScrollRequest
import com.swm.idle.support.transfer.jobposting.carer.CrawlingJobPostingFavoriteResponse
import com.swm.idle.support.transfer.jobposting.carer.CrawlingJobPostingScrollResponse
Expand All @@ -19,7 +18,6 @@ import java.util.*
@Service
class CrawlingJobPostingFacadeService(
private val crawlingJobPostingService: CrawlingJobPostingService,
private val geoCodeService: GeoCodeService,
private val carerService: CarerService,
private val jobPostingFavoriteService: JobPostingFavoriteService,
) {
Expand Down Expand Up @@ -99,20 +97,21 @@ class CrawlingJobPostingFacadeService(
next: UUID?,
limit: Long,
): Pair<List<CrawlingJobPostingPreviewDto>, UUID?> {
val carer = getUserAuthentication().userId.let {
carerService.getById(it)
}

val crawlingJobPostingPreviewDtos = crawlingJobPostingService.findAllByCarerLocationInRange(
carerId = carer.id,
location = location,
next = next,
limit = limit + 1,
)

val carerLocation = getUserAuthentication().userId.let {
carerService.getById(it)
}.let {
PointConverter.convertToPoint(
latitude = it.latitude.toDouble(),
longitude = it.longitude.toDouble(),
)
}
val carerLocation = PointConverter.convertToPoint(
latitude = carer.latitude.toDouble(),
longitude = carer.longitude.toDouble(),
)

for (crawlingJobPostingPreviewDto in crawlingJobPostingPreviewDtos) {
crawlingJobPostingPreviewDto.distance = crawlingJobPostingService.calculateDistance(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,4 +91,8 @@ class CenterManagerService(
)
}

fun findAllByStatusPending(): List<CenterManager>? {
return centerManagerJpaRepository.findAllByStatusPending()
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import com.swm.idle.infrastructure.client.businessregistration.exception.Busines
import com.swm.idle.infrastructure.client.businessregistration.service.BusinessRegistrationNumberValidationService
import com.swm.idle.support.common.encrypt.PasswordEncryptor
import com.swm.idle.support.security.exception.SecurityException
import com.swm.idle.support.transfer.auth.center.CenterManagerForPendingResponse
import com.swm.idle.support.transfer.auth.center.ValidateBusinessRegistrationNumberResponse
import com.swm.idle.support.transfer.auth.common.LoginResponse
import com.swm.idle.support.transfer.user.center.JoinStatusInfoResponse
Expand Down Expand Up @@ -151,4 +152,14 @@ class CenterAuthFacadeService(
}
}

fun getCenterManagerForPending(): CenterManagerForPendingResponse {
val centerManagers = centerManagerService.findAllByStatusPending()

return centerManagers?.map { centerManager ->
CenterManagerForPendingResponse.PendingCenterManagerDto.of(centerManager)
}?.let {
CenterManagerForPendingResponse.of(it)
} ?: CenterManagerForPendingResponse.of(emptyList())
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class CrawlingJobScheduler(
private val crawlingJobConfig: CrawlingJobConfig,
) {

@Scheduled(cron = "0 05 15 * * *")
@Scheduled(cron = "0 0 23 * * *")
fun scheduleJob() {
val jobParameters: JobParameters = JobParametersBuilder()
.addLong("timestamp", System.currentTimeMillis())
Expand Down
Loading

0 comments on commit 31bc703

Please sign in to comment.